ics-ui-kit 1.0.0 → 1.0.2

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 (175) hide show
  1. package/README.md +73 -73
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/AlertIcon-BphnEYvV.js.map +1 -1
  4. package/dist/Button-_qdP4hSf.js.map +1 -1
  5. package/dist/ButtonBase-CbWrYcx-.js.map +1 -1
  6. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js.map +1 -1
  7. package/dist/CheckboxField-xDqHgXHh.js.map +1 -1
  8. package/dist/Combination-DeIugdgY.js.map +1 -1
  9. package/dist/{Command-WsAKNQrY.js → Command-hVL9sUnd.js} +3 -3
  10. package/dist/Command-hVL9sUnd.js.map +1 -0
  11. package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
  12. package/dist/Description-BTPMlTT-.js.map +1 -1
  13. package/dist/{Dialog-i_Y-phdM.js → Dialog-BKCZO7T_.js} +2 -2
  14. package/dist/Dialog-BKCZO7T_.js.map +1 -0
  15. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  16. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  17. package/dist/ErrorState-B26k67-z.js.map +1 -1
  18. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  19. package/dist/Field-BcwUtgGr.js.map +1 -1
  20. package/dist/FieldLabel-DYu1AcGH.js.map +1 -1
  21. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  22. package/dist/{FormFooterTemplate-CHlas_Pp.js → FormFooterTemplate-CRkxi-Mh.js} +2 -2
  23. package/dist/FormFooterTemplate-CRkxi-Mh.js.map +1 -0
  24. package/dist/{FormHeader-PE63OqG9.js → FormHeader-CX2jsIcI.js} +2 -2
  25. package/dist/FormHeader-CX2jsIcI.js.map +1 -0
  26. package/dist/FormStack-DfoaOry7.js.map +1 -1
  27. package/dist/HintState-BxrCAWqq.js.map +1 -1
  28. package/dist/Icon-DH3ev9GK.js.map +1 -1
  29. package/dist/IconButton-DAg1oMwz.js.map +1 -1
  30. package/dist/IconTooltip-R6_6_f40.js.map +1 -1
  31. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  32. package/dist/InputGroup-CW55G5nE.js.map +1 -1
  33. package/dist/InputOTP-DkVh6bBz.js.map +1 -1
  34. package/dist/Loader-BpHiL6W-.js.map +1 -1
  35. package/dist/MenuItem-C51uFz3V.js.map +1 -1
  36. package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
  37. package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
  38. package/dist/Overlay-E0UvxzIc.js.map +1 -1
  39. package/dist/Popover-XrJa7lyb.js.map +1 -1
  40. package/dist/RichButton-Bt0yUShU.js.map +1 -1
  41. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  42. package/dist/{ScrollShadowContainer-DdrnF8qU.js → ScrollShadowContainer-KUmqA25a.js} +11 -11
  43. package/dist/ScrollShadowContainer-KUmqA25a.js.map +1 -0
  44. package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -1
  45. package/dist/Select-DO02vXt3.js.map +1 -1
  46. package/dist/Sheet-C2UoHLL0.js.map +1 -1
  47. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  48. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  49. package/dist/TableFillHandle-CHHoUi6s.js.map +1 -1
  50. package/dist/Tag-Cf6HftP-.js.map +1 -1
  51. package/dist/Text-DeBE8AKl.js.map +1 -1
  52. package/dist/TextInput-CoL8nOyt.js.map +1 -1
  53. package/dist/TextOverflowTooltip-XPDdO9Dz.js.map +1 -1
  54. package/dist/Toggle-CmalMf4O.js.map +1 -1
  55. package/dist/Tooltip-D2XvRS0c.js.map +1 -1
  56. package/dist/TriggerButton-CoAgB4lx.js.map +1 -1
  57. package/dist/blocks/auth/otp-form.js.map +1 -1
  58. package/dist/cn-dsXlqdJg.js.map +1 -1
  59. package/dist/components/alert-dialog.js.map +1 -1
  60. package/dist/components/alert.js.map +1 -1
  61. package/dist/components/avatar.js.map +1 -1
  62. package/dist/components/background-pattern.js.map +1 -1
  63. package/dist/components/badge.js.map +1 -1
  64. package/dist/components/banner.js.map +1 -1
  65. package/dist/components/breadcrumb.js.map +1 -1
  66. package/dist/components/button.js.map +1 -1
  67. package/dist/components/calendar-scroll.js +28 -27
  68. package/dist/components/calendar-scroll.js.map +1 -1
  69. package/dist/components/calendar.js.map +1 -1
  70. package/dist/components/card.js.map +1 -1
  71. package/dist/components/carousel.js.map +1 -1
  72. package/dist/components/collapsible.js.map +1 -1
  73. package/dist/components/color-tile.js.map +1 -1
  74. package/dist/components/command.js +1 -1
  75. package/dist/components/container.js.map +1 -1
  76. package/dist/components/context-menu.js.map +1 -1
  77. package/dist/components/counter.js.map +1 -1
  78. package/dist/components/dialog.js +3 -3
  79. package/dist/components/dialog.js.map +1 -1
  80. package/dist/components/divider.js.map +1 -1
  81. package/dist/components/drawer.js +1 -1
  82. package/dist/components/drawer.js.map +1 -1
  83. package/dist/components/dropdown.js.map +1 -1
  84. package/dist/components/error-state.js.map +1 -1
  85. package/dist/components/file-upload.js.map +1 -1
  86. package/dist/components/form.js +2 -2
  87. package/dist/components/form.js.map +1 -1
  88. package/dist/components/glass-toolbar.js.map +1 -1
  89. package/dist/components/image-placeholder.js.map +1 -1
  90. package/dist/components/image-preview.js.map +1 -1
  91. package/dist/components/image-uploader.js.map +1 -1
  92. package/dist/components/input.js.map +1 -1
  93. package/dist/components/menu-item.js.map +1 -1
  94. package/dist/components/page-state.js.map +1 -1
  95. package/dist/components/progress-circle.js.map +1 -1
  96. package/dist/components/progress.js.map +1 -1
  97. package/dist/components/prose.js.map +1 -1
  98. package/dist/components/radio-group.js.map +1 -1
  99. package/dist/components/resizable.js +26 -1530
  100. package/dist/components/resizable.js.map +1 -1
  101. package/dist/components/scheduler/components/hour-rows/HourRows.stories.d.ts +1 -1
  102. package/dist/components/scheduler/components/week-days/WeekDays.stories.d.ts +1 -0
  103. package/dist/components/scheduler.js.map +1 -1
  104. package/dist/components/scroll-shadow-container.js +1 -1
  105. package/dist/components/search-select.js +1 -1
  106. package/dist/components/search-select.js.map +1 -1
  107. package/dist/components/sidebar.js +142 -141
  108. package/dist/components/sidebar.js.map +1 -1
  109. package/dist/components/slider.js.map +1 -1
  110. package/dist/components/stepper.js.map +1 -1
  111. package/dist/components/switch.js.map +1 -1
  112. package/dist/components/system-state.js.map +1 -1
  113. package/dist/components/table/tree.js +1 -1
  114. package/dist/components/table.js +1 -1
  115. package/dist/components/tabs.js.map +1 -1
  116. package/dist/components/tag-input.js.map +1 -1
  117. package/dist/components/textarea.js +30 -189
  118. package/dist/components/textarea.js.map +1 -1
  119. package/dist/components/timer.js.map +1 -1
  120. package/dist/components/toast.js.map +1 -1
  121. package/dist/components/toggle-group.js.map +1 -1
  122. package/dist/components/toolbar.js.map +1 -1
  123. package/dist/docs/tailwind-utilities/ScrollFade.stories.d.ts +1 -0
  124. package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
  125. package/dist/font-smoothing.css +4 -4
  126. package/dist/formatBytes-C4QXq5lC.js.map +1 -1
  127. package/dist/index-0ioNhtNM.js.map +1 -1
  128. package/dist/index-1SnkxfPR.js.map +1 -1
  129. package/dist/index-437EL2iq.js.map +1 -1
  130. package/dist/index-BDrapWDv.js.map +1 -1
  131. package/dist/index-BGQepRFJ.js.map +1 -1
  132. package/dist/index-BVqs-uqP.js.map +1 -1
  133. package/dist/index-BZPx6jYI.js.map +1 -1
  134. package/dist/index-Bb23HztA.js.map +1 -1
  135. package/dist/index-BjtNfqNq.js.map +1 -1
  136. package/dist/index-BpWB3aFK.js.map +1 -1
  137. package/dist/index-ByaXH_ih.js.map +1 -1
  138. package/dist/index-CCKe-Mpx.js.map +1 -1
  139. package/dist/index-CFaU3UXv.js.map +1 -1
  140. package/dist/index-CLuiUUQ8.js.map +1 -1
  141. package/dist/index-CMxHunQ4.js.map +1 -1
  142. package/dist/index-CmBeyp2d.js.map +1 -1
  143. package/dist/index-DFZozV_h.js.map +1 -1
  144. package/dist/index-DHsfW5Rj.js.map +1 -1
  145. package/dist/index-DHyZ_0Ut.js.map +1 -1
  146. package/dist/index-DLcqcWxM.js.map +1 -1
  147. package/dist/index-DnnQs07z.js.map +1 -1
  148. package/dist/index-Uiy0Xwy2.js.map +1 -1
  149. package/dist/index-_ITz1IyW.js.map +1 -1
  150. package/dist/index.js.map +1 -1
  151. package/dist/inputBaseStyles-CZwQWSub.js.map +1 -1
  152. package/dist/lib/utils.js.map +1 -1
  153. package/dist/opaqueCell-D95h1mFM.js.map +1 -1
  154. package/dist/scroll-fade-fix.css +120 -0
  155. package/dist/ssr.test.d.ts +1 -0
  156. package/dist/tailwind.css +408 -407
  157. package/dist/theme.css +360 -360
  158. package/dist/{treeModel-CUO1A5s7.js → treeModel-BH6Jg8rm.js} +2 -2
  159. package/dist/treeModel-BH6Jg8rm.js.map +1 -0
  160. package/dist/types/css.d.ts +4 -4
  161. package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
  162. package/dist/useDebounce-BRah78CF.js.map +1 -1
  163. package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
  164. package/dist/useIsomorphicLayoutEffect-MNxJD61V.js +6 -0
  165. package/dist/useIsomorphicLayoutEffect-MNxJD61V.js.map +1 -0
  166. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  167. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  168. package/package.json +213 -210
  169. package/dist/Command-WsAKNQrY.js.map +0 -1
  170. package/dist/Dialog-i_Y-phdM.js.map +0 -1
  171. package/dist/FormFooterTemplate-CHlas_Pp.js.map +0 -1
  172. package/dist/FormHeader-PE63OqG9.js.map +0 -1
  173. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +0 -1
  174. package/dist/design-tokens.source.json +0 -1
  175. package/dist/treeModel-CUO1A5s7.js.map +0 -1
package/README.md CHANGED
@@ -1,73 +1,73 @@
1
- # ICS UI Kit
2
-
3
- Библиотека React-компонентов для создания пользовательских интерфейсов.
4
-
5
- ## Установка
6
-
7
- Руководство относится к **UI Kit 1.0 на Tailwind CSS 4**. Для установки стабильной ветки 1.x:
8
-
9
- ```bash
10
- npm install ics-ui-kit@^1.0.0
11
- npm install -D tailwindcss@^4 @tailwindcss/vite@^4 tw-animate-css @tailwindcss/typography
12
- ```
13
-
14
- React и React DOM должны быть установлены в приложении. `tw-animate-css` и `@tailwindcss/typography` обязательны для сборки CSS, даже если вы не используете анимации или `Prose`. Для `Calendar` / `CalendarScroll` дополнительно установите `react-day-picker@^9`, а для компонентов формы, связанных с `react-hook-form`, — `react-hook-form@^7`.
15
-
16
- Требования к браузерам: Safari 16.4+, Chrome 111+, Firefox 128+.
17
-
18
- ## Подключение стилей
19
-
20
- Пример для React-приложения с Vite: добавьте Tailwind в существующий список плагинов, сохранив остальные плагины проекта.
21
-
22
- ```ts
23
- // vite.config.ts
24
- import { defineConfig } from "vite";
25
- import react from "@vitejs/plugin-react-swc";
26
- import tailwindcss from "@tailwindcss/vite";
27
-
28
- export default defineConfig({
29
- plugins: [react(), tailwindcss()]
30
- });
31
- ```
32
-
33
- ```css
34
- /* src/app.css */
35
- @import "tailwindcss";
36
- @import "ics-ui-kit/tailwind.css";
37
- @source "../node_modules/ics-ui-kit/dist";
38
- ```
39
-
40
- Путь `@source` считается от CSS-файла: для другой структуры проекта скорректируйте его. Без этого Tailwind не сгенерирует классы из компонентов кита. Импортируйте CSS один раз в точке входа приложения:
41
-
42
- ```ts
43
- // src/main.tsx
44
- import "./app.css";
45
- ```
46
-
47
- Кит поставляет токены, тему и базовый слой через `tailwind.css`; итоговые стили компонентов собирает Tailwind приложения. `styles.css`, `styles-scoped.css` и `tailwind.preset` удалены. Отдельный импорт `theme.css` для компонентов не требуется.
48
-
49
- ## Использование
50
-
51
- ```tsx
52
- import { Button } from "ics-ui-kit/components/button";
53
- import { Card } from "ics-ui-kit/components/card";
54
-
55
- export function App() {
56
- return (
57
- <Card>
58
- <Button>Нажми меня</Button>
59
- </Card>
60
- );
61
- }
62
- ```
63
-
64
- ## Переход с UI Kit 0.x
65
-
66
- Пошаговое подключение, настройка PostCSS, темы, safelist и замены удалённых API описаны в [руководстве по интеграции и миграции](src/docs/tailwind-integration.mdx). Список несовместимых изменений — в [CHANGELOG.md](CHANGELOG.md).
67
-
68
- ## Ссылки
69
-
70
- - **Примеры приложений**: [ics-ui-kit-examples](https://github.com/RomanKozelkov/ics-ui-kit-examples). Приложение устанавливает опубликованный npm-пакет; инструкция запуска и версия кита указаны в его README и `package.json`.
71
- - **Репозиторий**: [GitLab](https://gitlab.ics-it.ru/ics/ui-kit)
72
- - **NPM пакет**: [ics-ui-kit](https://www.npmjs.com/package/ics-ui-kit)
73
- - **Storybook**: [Опубликованная документация и примеры](https://ui-kit.ics-it.ru) — обновляются после успешного деплоя из `master`.
1
+ # ICS UI Kit
2
+
3
+ Библиотека React-компонентов для создания пользовательских интерфейсов.
4
+
5
+ ## Установка
6
+
7
+ Руководство относится к **UI Kit 1.0 на Tailwind CSS 4**. Для установки стабильной ветки 1.x:
8
+
9
+ ```bash
10
+ npm install ics-ui-kit@^1.0.0
11
+ npm install -D tailwindcss@^4 @tailwindcss/vite@^4 tw-animate-css @tailwindcss/typography
12
+ ```
13
+
14
+ React и React DOM должны быть установлены в приложении. `tw-animate-css` и `@tailwindcss/typography` обязательны для сборки CSS, даже если вы не используете анимации или `Prose`. Для `Calendar` / `CalendarScroll` дополнительно установите `react-day-picker@^9`, а для компонентов формы, связанных с `react-hook-form`, — `react-hook-form@^7`.
15
+
16
+ Требования к браузерам: Safari 16.4+, Chrome 111+, Firefox 128+.
17
+
18
+ ## Подключение стилей
19
+
20
+ Пример для React-приложения с Vite: добавьте Tailwind в существующий список плагинов, сохранив остальные плагины проекта.
21
+
22
+ ```ts
23
+ // vite.config.ts
24
+ import { defineConfig } from "vite";
25
+ import react from "@vitejs/plugin-react-swc";
26
+ import tailwindcss from "@tailwindcss/vite";
27
+
28
+ export default defineConfig({
29
+ plugins: [react(), tailwindcss()]
30
+ });
31
+ ```
32
+
33
+ ```css
34
+ /* src/app.css */
35
+ @import "tailwindcss";
36
+ @import "ics-ui-kit/tailwind.css";
37
+ @source "../node_modules/ics-ui-kit/dist";
38
+ ```
39
+
40
+ Путь `@source` считается от CSS-файла: для другой структуры проекта скорректируйте его. Без этого Tailwind не сгенерирует классы из компонентов кита. Импортируйте CSS один раз в точке входа приложения:
41
+
42
+ ```ts
43
+ // src/main.tsx
44
+ import "./app.css";
45
+ ```
46
+
47
+ Кит поставляет токены, тему и базовый слой через `tailwind.css`; итоговые стили компонентов собирает Tailwind приложения. `styles.css`, `styles-scoped.css` и `tailwind.preset` удалены. Отдельный импорт `theme.css` для компонентов не требуется.
48
+
49
+ ## Использование
50
+
51
+ ```tsx
52
+ import { Button } from "ics-ui-kit/components/button";
53
+ import { Card } from "ics-ui-kit/components/card";
54
+
55
+ export function App() {
56
+ return (
57
+ <Card>
58
+ <Button>Нажми меня</Button>
59
+ </Card>
60
+ );
61
+ }
62
+ ```
63
+
64
+ ## Переход с UI Kit 0.x
65
+
66
+ Пошаговое подключение, настройка PostCSS, темы, safelist и замены удалённых API описаны в [руководстве по интеграции и миграции](src/docs/tailwind-integration.mdx). Список несовместимых изменений — в [CHANGELOG.md](CHANGELOG.md).
67
+
68
+ ## Ссылки
69
+
70
+ - **Примеры приложений**: [ics-ui-kit-examples](https://github.com/RomanKozelkov/ics-ui-kit-examples). Приложение устанавливает опубликованный npm-пакет; инструкция запуска и версия кита указаны в его README и `package.json`.
71
+ - **Репозиторий**: [GitLab](https://gitlab.ics-it.ru/ics/ui-kit)
72
+ - **NPM пакет**: [ics-ui-kit](https://www.npmjs.com/package/ics-ui-kit)
73
+ - **Storybook**: [Опубликованная документация и примеры](https://ui-kit.ics-it.ru) — обновляются после успешного деплоя из `master`.
@@ -1 +1 @@
1
- {"version":3,"file":"AlertContext-CxjW1LVL.js","sources":["../src/components/alert/AlertContext.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { AlertVariants } from \"./Alert\";\r\n\r\nexport const AlertContext = React.createContext<AlertVariants>({});\r\n\r\n/**\r\n * Хук для получения значений контекста Alert\r\n * Если переданы props, они имеют приоритет над значениями из контекста\r\n *\r\n * @example\r\n * ```tsx\r\n * const { status, focus } = useAlert({ status: props.status, focus: props.focus });\r\n * ```\r\n */\r\n\r\nexport const useAlert = (props?: AlertVariants) => {\r\n\tconst context = React.useContext(AlertContext);\r\n\r\n\treturn {\r\n\t\tstatus: props?.status ?? context.status,\r\n\t\tfocus: props?.focus ?? context.focus\r\n\t};\r\n};\r\n"],"names":["AlertContext","React","useAlert","props","context"],"mappings":";AAGO,MAAMA,IAAeC,EAAM,cAA6B,CAAE,CAAA,GAYpDC,IAAW,CAACC,MAA0B;AAC5C,QAAAC,IAAUH,EAAM,WAAWD,CAAY;AAEtC,SAAA;AAAA,IACN,QAAQG,GAAO,UAAUC,EAAQ;AAAA,IACjC,OAAOD,GAAO,SAASC,EAAQ;AAAA,EAChC;AACD;"}
1
+ {"version":3,"file":"AlertContext-CxjW1LVL.js","sources":["../src/components/alert/AlertContext.tsx"],"sourcesContent":["import React from \"react\";\nimport { AlertVariants } from \"./Alert\";\n\nexport const AlertContext = React.createContext<AlertVariants>({});\n\n/**\n * Хук для получения значений контекста Alert\n * Если переданы props, они имеют приоритет над значениями из контекста\n *\n * @example\n * ```tsx\n * const { status, focus } = useAlert({ status: props.status, focus: props.focus });\n * ```\n */\n\nexport const useAlert = (props?: AlertVariants) => {\n\tconst context = React.useContext(AlertContext);\n\n\treturn {\n\t\tstatus: props?.status ?? context.status,\n\t\tfocus: props?.focus ?? context.focus\n\t};\n};\n"],"names":["AlertContext","React","useAlert","props","context"],"mappings":";AAGO,MAAMA,IAAeC,EAAM,cAA6B,CAAE,CAAA,GAYpDC,IAAW,CAACC,MAA0B;AAC5C,QAAAC,IAAUH,EAAM,WAAWD,CAAY;AAEtC,SAAA;AAAA,IACN,QAAQG,GAAO,UAAUC,EAAQ;AAAA,IACjC,OAAOD,GAAO,SAASC,EAAQ;AAAA,EAChC;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertIcon-BphnEYvV.js","sources":["../src/components/alert/Alert.tsx","../src/components/alert/components/AlertDescription.tsx","../src/components/alert/components/AlertIcon.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { AlertContext } from \"./AlertContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface AlertVariants {\r\n\t/** Статус алерта */\r\n\tstatus?: \"success\" | \"warning\" | \"error\" | \"info\";\r\n\t/** Состояние фокуса */\r\n\tfocus?: \"low\" | \"medium\" | \"high\";\r\n}\r\n\r\nconst alertStyles = tv({\r\n\tbase: [\r\n\t\t\"group relative w-full min-w-80 items-start rounded-xl border border-secondary-border bg-secondary-bg px-4 py-3 text-sm\",\r\n\t\t\"@container @sm:grid-cols-[auto_1fr_auto] grid grid-cols-[auto_1fr] gap-y-1.5\"\r\n\t],\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"border-status-success-secondary-border bg-status-success-bg\",\r\n\t\t\twarning: \"border-status-warning-secondary-border bg-status-warning-bg\",\r\n\t\t\terror: \"border-status-error-secondary-border bg-status-error-bg\",\r\n\t\t\tinfo: \"border-status-info-secondary-border bg-status-info-bg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"border-secondary-border bg-secondary-bg\",\r\n\t\t\tmedium: \"bg-secondary-bg\",\r\n\t\t\t// Не задаем bg, чтобы не переопределять status. Определяем в compoundVariants.\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertVariants>,\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\tstatus: undefined,\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"bg-status-neutral-bg\"\r\n\t\t}\r\n\t],\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\nexport type AlertProps = React.HTMLAttributes<HTMLDivElement> & AlertVariants;\r\n\r\n/**\r\n * Компонент Alert для отображения уведомлений и сообщений\r\n *\r\n * Является container query контейнером: при ширине меньше `@sm` (384px) кнопка\r\n * переносится под заголовок и описание. Минимальная ширина — 320px (`min-w-80`);\r\n * снимается через `className=\"min-w-0\"`.\r\n */\r\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\r\n\t({ className, status, focus = \"low\", children, ...props }, ref) => {\r\n\t\tconst contextValue = React.useMemo(\r\n\t\t\t() => ({\r\n\t\t\t\tstatus,\r\n\t\t\t\tfocus\r\n\t\t\t}),\r\n\t\t\t[status, focus]\r\n\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t<AlertContext.Provider value={contextValue}>\r\n\t\t\t\t<div ref={ref} role=\"alert\" className={alertStyles({ status, focus, className })} {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</AlertContext.Provider>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAlert.displayName = \"Alert\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport React from \"react\";\r\nimport { useAlert } from \"../AlertContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { AlertVariants } from \"../Alert\";\r\n\r\nconst alertDescriptionStyles = tv({\r\n\tbase: \"col-start-2 text-sm text-muted\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success-fg\",\r\n\t\t\twarning: \"text-status-warning-fg\",\r\n\t\t\terror: \"text-status-error-fg\",\r\n\t\t\tinfo: \"text-status-info-fg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"text-muted\",\r\n\t\t\tmedium: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertVariants>,\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement> & AlertVariants;\r\n\r\n/**\r\n * Компонент AlertDescription для отображения описания алерта\r\n */\r\nexport const AlertDescription = React.forwardRef<HTMLParagraphElement, AlertDescriptionProps>(\r\n\t({ className, focus: focusProp, status: statusProp, ...props }, ref) => {\r\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\r\n\r\n\t\treturn <div ref={ref} className={alertDescriptionStyles({ className, focus, status })} {...props} />;\r\n\t}\r\n);\r\n\r\nAlertDescription.displayName = \"AlertDescription\";\r\n","import { Icon, IconProps } from \"@/components/icon/Icon\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useAlert } from \"../AlertContext\";\r\nimport { AlertVariants } from \"../Alert\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\ntype AlertIconVariants = Omit<AlertVariants, \"focus\">;\r\n\r\nconst alertIconStyles = tv({\r\n\tbase: \"text-status-default mr-3 translate-y-0.5\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success-hover\",\r\n\t\t\twarning: \"text-status-warning-hover\",\r\n\t\t\terror: \"text-status-error-hover\",\r\n\t\t\tinfo: \"text-status-info-hover\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertIconVariants>\r\n});\r\n\r\nexport type AlertIconProps = IconProps & AlertIconVariants;\r\n\r\n/**\r\n * Компонент AlertIcon для отображения иконки алерта\r\n */\r\nexport const AlertIcon = React.forwardRef<SVGSVGElement, AlertIconProps>(\r\n\t({ className, status: statusProp, ...props }, ref) => {\r\n\t\tconst { status } = useAlert({ status: statusProp });\r\n\r\n\t\treturn <Icon ref={ref} className={alertIconStyles({ status, className })} {...props} />;\r\n\t}\r\n);\r\n\r\nAlertIcon.displayName = \"AlertIcon\";\r\n"],"names":["alertStyles","tv","Alert","React","className","status","focus","children","props","ref","contextValue","jsx","AlertContext","alertDescriptionStyles","AlertDescription","focusProp","statusProp","useAlert","alertIconStyles","AlertIcon","Icon"],"mappings":";;;;;;AAYA,MAAMA,IAAcC,EAAG;AAAA,EACtB,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA;AAAA,MAER,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,kBAAkB;AAAA,IACjB;AAAA,MACC,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EAET;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAWYC,IAAQC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,QAAAC,GAAQ,OAAAC,IAAQ,OAAO,UAAAC,GAAU,GAAGC,EAAM,GAAGC,MAAQ;AAClE,UAAMC,IAAeP,EAAM;AAAA,MAC1B,OAAO;AAAA,QACN,QAAAE;AAAA,QACA,OAAAC;AAAA,MAAA;AAAA,MAED,CAACD,GAAQC,CAAK;AAAA,IACf;AAGC,WAAA,gBAAAK,EAACC,EAAa,UAAb,EAAsB,OAAOF,GAC7B,UAAA,gBAAAC,EAAC,OAAI,EAAA,KAAAF,GAAU,MAAK,SAAQ,WAAWT,EAAY,EAAE,QAAAK,GAAQ,OAAAC,GAAO,WAAAF,EAAW,CAAA,GAAI,GAAGI,GACpF,UAAAD,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAL,EAAM,cAAc;AClEpB,MAAMW,IAAyBZ,EAAG;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAOYa,IAAmBX,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,OAAOW,GAAW,QAAQC,GAAY,GAAGR,EAAM,GAAGC,MAAQ;AACjE,UAAA,EAAE,QAAAJ,GAAQ,OAAAC,EAAA,IAAUW,EAAS,EAAE,QAAQD,GAAY,OAAOD,GAAW;AAE3E,WAAQ,gBAAAJ,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWI,EAAuB,EAAE,WAAAT,GAAW,OAAAE,GAAO,QAAAD,EAAO,CAAC,GAAI,GAAGG,EAAO,CAAA;AAAA,EAAA;AAEpG;AAEAM,EAAiB,cAAc;AC9B/B,MAAMI,IAAkBjB,EAAG;AAAA,EAC1B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAOYkB,IAAYhB,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAC,GAAW,QAAQY,GAAY,GAAGR,KAASC,MAAQ;AACrD,UAAM,EAAE,QAAAJ,EAAO,IAAIY,EAAS,EAAE,QAAQD,GAAY;AAE3C,WAAA,gBAAAL,EAACS,GAAK,EAAA,KAAAX,GAAU,WAAWS,EAAgB,EAAE,QAAAb,GAAQ,WAAAD,EAAU,CAAC,GAAI,GAAGI,EAAO,CAAA;AAAA,EAAA;AAEvF;AAEAW,EAAU,cAAc;"}
1
+ {"version":3,"file":"AlertIcon-BphnEYvV.js","sources":["../src/components/alert/Alert.tsx","../src/components/alert/components/AlertDescription.tsx","../src/components/alert/components/AlertIcon.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { AlertContext } from \"./AlertContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface AlertVariants {\n\t/** Статус алерта */\n\tstatus?: \"success\" | \"warning\" | \"error\" | \"info\";\n\t/** Состояние фокуса */\n\tfocus?: \"low\" | \"medium\" | \"high\";\n}\n\nconst alertStyles = tv({\n\tbase: [\n\t\t\"group relative w-full min-w-80 items-start rounded-xl border border-secondary-border bg-secondary-bg px-4 py-3 text-sm\",\n\t\t\"@container @sm:grid-cols-[auto_1fr_auto] grid grid-cols-[auto_1fr] gap-y-1.5\"\n\t],\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"border-status-success-secondary-border bg-status-success-bg\",\n\t\t\twarning: \"border-status-warning-secondary-border bg-status-warning-bg\",\n\t\t\terror: \"border-status-error-secondary-border bg-status-error-bg\",\n\t\t\tinfo: \"border-status-info-secondary-border bg-status-info-bg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"border-secondary-border bg-secondary-bg\",\n\t\t\tmedium: \"bg-secondary-bg\",\n\t\t\t// Не задаем bg, чтобы не переопределять status. Определяем в compoundVariants.\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertVariants>,\n\tcompoundVariants: [\n\t\t{\n\t\t\tstatus: undefined,\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"bg-status-neutral-bg\"\n\t\t}\n\t],\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\nexport type AlertProps = React.HTMLAttributes<HTMLDivElement> & AlertVariants;\n\n/**\n * Компонент Alert для отображения уведомлений и сообщений\n *\n * Является container query контейнером: при ширине меньше `@sm` (384px) кнопка\n * переносится под заголовок и описание. Минимальная ширина — 320px (`min-w-80`);\n * снимается через `className=\"min-w-0\"`.\n */\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n\t({ className, status, focus = \"low\", children, ...props }, ref) => {\n\t\tconst contextValue = React.useMemo(\n\t\t\t() => ({\n\t\t\t\tstatus,\n\t\t\t\tfocus\n\t\t\t}),\n\t\t\t[status, focus]\n\t\t);\n\n\t\treturn (\n\t\t\t<AlertContext.Provider value={contextValue}>\n\t\t\t\t<div ref={ref} role=\"alert\" className={alertStyles({ status, focus, className })} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</AlertContext.Provider>\n\t\t);\n\t}\n);\n\nAlert.displayName = \"Alert\";\n","import { tv } from \"tailwind-variants\";\nimport React from \"react\";\nimport { useAlert } from \"../AlertContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { AlertVariants } from \"../Alert\";\n\nconst alertDescriptionStyles = tv({\n\tbase: \"col-start-2 text-sm text-muted\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\",\n\t\t\tinfo: \"text-status-info-fg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"text-muted\",\n\t\t\tmedium: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertVariants>,\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement> & AlertVariants;\n\n/**\n * Компонент AlertDescription для отображения описания алерта\n */\nexport const AlertDescription = React.forwardRef<HTMLParagraphElement, AlertDescriptionProps>(\n\t({ className, focus: focusProp, status: statusProp, ...props }, ref) => {\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\n\n\t\treturn <div ref={ref} className={alertDescriptionStyles({ className, focus, status })} {...props} />;\n\t}\n);\n\nAlertDescription.displayName = \"AlertDescription\";\n","import { Icon, IconProps } from \"@/components/icon/Icon\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { useAlert } from \"../AlertContext\";\nimport { AlertVariants } from \"../Alert\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype AlertIconVariants = Omit<AlertVariants, \"focus\">;\n\nconst alertIconStyles = tv({\n\tbase: \"text-status-default mr-3 translate-y-0.5\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success-hover\",\n\t\t\twarning: \"text-status-warning-hover\",\n\t\t\terror: \"text-status-error-hover\",\n\t\t\tinfo: \"text-status-info-hover\"\n\t\t}\n\t} satisfies VariantsConfig<AlertIconVariants>\n});\n\nexport type AlertIconProps = IconProps & AlertIconVariants;\n\n/**\n * Компонент AlertIcon для отображения иконки алерта\n */\nexport const AlertIcon = React.forwardRef<SVGSVGElement, AlertIconProps>(\n\t({ className, status: statusProp, ...props }, ref) => {\n\t\tconst { status } = useAlert({ status: statusProp });\n\n\t\treturn <Icon ref={ref} className={alertIconStyles({ status, className })} {...props} />;\n\t}\n);\n\nAlertIcon.displayName = \"AlertIcon\";\n"],"names":["alertStyles","tv","Alert","React","className","status","focus","children","props","ref","contextValue","jsx","AlertContext","alertDescriptionStyles","AlertDescription","focusProp","statusProp","useAlert","alertIconStyles","AlertIcon","Icon"],"mappings":";;;;;;AAYA,MAAMA,IAAcC,EAAG;AAAA,EACtB,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA;AAAA,MAER,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,kBAAkB;AAAA,IACjB;AAAA,MACC,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EAET;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAWYC,IAAQC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,QAAAC,GAAQ,OAAAC,IAAQ,OAAO,UAAAC,GAAU,GAAGC,EAAM,GAAGC,MAAQ;AAClE,UAAMC,IAAeP,EAAM;AAAA,MAC1B,OAAO;AAAA,QACN,QAAAE;AAAA,QACA,OAAAC;AAAA,MAAA;AAAA,MAED,CAACD,GAAQC,CAAK;AAAA,IACf;AAGC,WAAA,gBAAAK,EAACC,EAAa,UAAb,EAAsB,OAAOF,GAC7B,UAAA,gBAAAC,EAAC,OAAI,EAAA,KAAAF,GAAU,MAAK,SAAQ,WAAWT,EAAY,EAAE,QAAAK,GAAQ,OAAAC,GAAO,WAAAF,EAAW,CAAA,GAAI,GAAGI,GACpF,UAAAD,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAL,EAAM,cAAc;AClEpB,MAAMW,IAAyBZ,EAAG;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAOYa,IAAmBX,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,OAAOW,GAAW,QAAQC,GAAY,GAAGR,EAAM,GAAGC,MAAQ;AACjE,UAAA,EAAE,QAAAJ,GAAQ,OAAAC,EAAA,IAAUW,EAAS,EAAE,QAAQD,GAAY,OAAOD,GAAW;AAE3E,WAAQ,gBAAAJ,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWI,EAAuB,EAAE,WAAAT,GAAW,OAAAE,GAAO,QAAAD,EAAO,CAAC,GAAI,GAAGG,EAAO,CAAA;AAAA,EAAA;AAEpG;AAEAM,EAAiB,cAAc;AC9B/B,MAAMI,IAAkBjB,EAAG;AAAA,EAC1B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAOYkB,IAAYhB,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAC,GAAW,QAAQY,GAAY,GAAGR,KAASC,MAAQ;AACrD,UAAM,EAAE,QAAAJ,EAAO,IAAIY,EAAS,EAAE,QAAQD,GAAY;AAE3C,WAAA,gBAAAL,EAACS,GAAK,EAAA,KAAAX,GAAU,WAAWS,EAAgB,EAAE,QAAAb,GAAQ,WAAAD,EAAU,CAAC,GAAI,GAAGI,EAAO,CAAA;AAAA,EAAA;AAEvF;AAEAW,EAAU,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button-_qdP4hSf.js","sources":["../src/components/button/button/Button.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\ntype ButtonVariants = Pick<ButtonBaseVariants, \"size\">;\r\n\r\nconst buttonStyles = tv({\r\n\tslots: {\r\n\t\tcontainer: \"flex items-center justify-center gap-2 overflow-hidden\",\r\n\t\ticon: \"h-4 w-4\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: { icon: \"h-3 w-3\" },\r\n\t\t\tsm: { icon: \"h-3.5 w-3.5\" },\r\n\t\t\tmd: {},\r\n\t\t\tlg: {},\r\n\t\t\txl: { icon: \"h-5 w-5\", container: \"gap-3\" }\r\n\t\t}\r\n\t} satisfies VariantsConfig<ButtonVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ButtonProps = PropsWithChildren<\r\n\tButtonBaseProps &\r\n\t\tButtonVariants & {\r\n\t\t\tstartIcon?: React.ElementType;\r\n\t\t\tendIcon?: React.ElementType;\r\n\t\t\tcontainerClassName?: string;\r\n\t\t\ticonClassName?: string;\r\n\t\t}\r\n>;\r\n\r\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n\t({ startIcon: StartIcon, endIcon: EndIcon, size, children, iconClassName, containerClassName, ...props }, ref) => {\r\n\t\tconst styles = buttonStyles({ size });\r\n\r\n\t\tconst startIconEl = StartIcon && <StartIcon className={styles.icon({ className: iconClassName })} />;\r\n\t\tconst endIconEl = EndIcon && <EndIcon className={styles.icon({ className: iconClassName })} />;\r\n\r\n\t\treturn (\r\n\t\t\t<ButtonBase {...props} size={size} ref={ref}>\r\n\t\t\t\t<div className={styles.container({ className: containerClassName })}>\r\n\t\t\t\t\t{startIconEl}\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\t{endIconEl}\r\n\t\t\t\t</div>\r\n\t\t\t</ButtonBase>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nButton.displayName = \"Button\";\r\n"],"names":["buttonStyles","tv","Button","React","StartIcon","EndIcon","size","children","iconClassName","containerClassName","props","ref","styles","startIconEl","jsx","endIconEl","ButtonBase","jsxs"],"mappings":";;;;AAOA,MAAMA,IAAeC,EAAG;AAAA,EACvB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,MAAM,UAAU;AAAA,MACtB,IAAI,EAAE,MAAM,cAAc;AAAA,MAC1B,IAAI,CAAC;AAAA,MACL,IAAI,CAAC;AAAA,MACL,IAAI,EAAE,MAAM,WAAW,WAAW,QAAQ;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAYYC,IAASC,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAWC,GAAW,SAASC,GAAS,MAAAC,GAAM,UAAAC,GAAU,eAAAC,GAAe,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAAQ;AACjH,UAAMC,IAASZ,EAAa,EAAE,MAAAM,GAAM,GAE9BO,IAAcT,KAAa,gBAAAU,EAACV,GAAU,EAAA,WAAWQ,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA,GAC5FO,IAAYV,KAAW,gBAAAS,EAACT,GAAQ,EAAA,WAAWO,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA;AAE5F,WACE,gBAAAM,EAAAE,GAAA,EAAY,GAAGN,GAAO,MAAAJ,GAAY,KAAAK,GAClC,UAAA,gBAAAM,EAAC,OAAI,EAAA,WAAWL,EAAO,UAAU,EAAE,WAAWH,EAAA,CAAoB,GAChE,UAAA;AAAA,MAAAI;AAAA,MACAN;AAAA,MACAQ;AAAA,IAAA,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAb,EAAO,cAAc;"}
1
+ {"version":3,"file":"Button-_qdP4hSf.js","sources":["../src/components/button/button/Button.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype ButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst buttonStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex items-center justify-center gap-2 overflow-hidden\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { icon: \"h-3 w-3\" },\n\t\t\tsm: { icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: {},\n\t\t\tlg: {},\n\t\t\txl: { icon: \"h-5 w-5\", container: \"gap-3\" }\n\t\t}\n\t} satisfies VariantsConfig<ButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ButtonProps = PropsWithChildren<\n\tButtonBaseProps &\n\t\tButtonVariants & {\n\t\t\tstartIcon?: React.ElementType;\n\t\t\tendIcon?: React.ElementType;\n\t\t\tcontainerClassName?: string;\n\t\t\ticonClassName?: string;\n\t\t}\n>;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ startIcon: StartIcon, endIcon: EndIcon, size, children, iconClassName, containerClassName, ...props }, ref) => {\n\t\tconst styles = buttonStyles({ size });\n\n\t\tconst startIconEl = StartIcon && <StartIcon className={styles.icon({ className: iconClassName })} />;\n\t\tconst endIconEl = EndIcon && <EndIcon className={styles.icon({ className: iconClassName })} />;\n\n\t\treturn (\n\t\t\t<ButtonBase {...props} size={size} ref={ref}>\n\t\t\t\t<div className={styles.container({ className: containerClassName })}>\n\t\t\t\t\t{startIconEl}\n\t\t\t\t\t{children}\n\t\t\t\t\t{endIconEl}\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nButton.displayName = \"Button\";\n"],"names":["buttonStyles","tv","Button","React","StartIcon","EndIcon","size","children","iconClassName","containerClassName","props","ref","styles","startIconEl","jsx","endIconEl","ButtonBase","jsxs"],"mappings":";;;;AAOA,MAAMA,IAAeC,EAAG;AAAA,EACvB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,MAAM,UAAU;AAAA,MACtB,IAAI,EAAE,MAAM,cAAc;AAAA,MAC1B,IAAI,CAAC;AAAA,MACL,IAAI,CAAC;AAAA,MACL,IAAI,EAAE,MAAM,WAAW,WAAW,QAAQ;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAYYC,IAASC,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAWC,GAAW,SAASC,GAAS,MAAAC,GAAM,UAAAC,GAAU,eAAAC,GAAe,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAAQ;AACjH,UAAMC,IAASZ,EAAa,EAAE,MAAAM,GAAM,GAE9BO,IAAcT,KAAa,gBAAAU,EAACV,GAAU,EAAA,WAAWQ,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA,GAC5FO,IAAYV,KAAW,gBAAAS,EAACT,GAAQ,EAAA,WAAWO,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA;AAE5F,WACE,gBAAAM,EAAAE,GAAA,EAAY,GAAGN,GAAO,MAAAJ,GAAY,KAAAK,GAClC,UAAA,gBAAAM,EAAC,OAAI,EAAA,WAAWL,EAAO,UAAU,EAAE,WAAWH,EAAA,CAAoB,GAChE,UAAA;AAAA,MAAAI;AAAA,MACAN;AAAA,MACAQ;AAAA,IAAA,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAb,EAAO,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase-CbWrYcx-.js","sources":["../src/components/button/button-base/ButtonBase.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport React, { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface ButtonBaseVariants {\r\n\tvariant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"link\" | \"text\";\r\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\r\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n}\r\n\r\nconst buttonBaseStyles = tv({\r\n\tbase: \"inline-flex cursor-pointer select-none items-center justify-center overflow-hidden rounded-lg font-medium text-primary-fg transition-all focus-visible:shadow-focus focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\",\r\n\tvariants: {\r\n\t\tvariant: {\r\n\t\t\tprimary:\r\n\t\t\t\t\"bg-primary-accent text-primary-bg shadow-soft-base hover:bg-primary-accent-hover active:bg-primary-accent-hover\",\r\n\t\t\tsecondary: \"bg-secondary-bg-hover hover:bg-primary-bg-hover active:bg-primary-bg-hover\",\r\n\t\t\toutline:\r\n\t\t\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm hover:border-primary-border hover:bg-secondary-bg-hover active:border-primary-border active:bg-secondary-bg-hover\",\r\n\t\t\tghost: \"bg-transparent hover:bg-secondary-bg-hover active:bg-secondary-bg-hover\",\r\n\t\t\tlink: \"bg-transparent text-muted underline hover:text-primary-fg active:text-primary-fg\",\r\n\t\t\ttext: \"bg-transparent text-muted hover:text-primary-fg active:text-primary-fg\"\r\n\t\t},\r\n\t\tstatus: {\r\n\t\t\tdefault: \"\",\r\n\t\t\tinfo: \"text-status-info-fg\",\r\n\t\t\tsuccess: \"text-status-success-fg\",\r\n\t\t\twarning: \"text-status-warning-fg\",\r\n\t\t\terror: \"text-status-error-fg\"\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\txs: \"h-7 gap-2 px-2.5 py-1.5 text-xs\",\r\n\t\t\tsm: \"h-8 gap-2 px-3 py-2 text-xs\",\r\n\t\t\tmd: \"h-9 gap-2 px-4 py-2 text-sm\",\r\n\t\t\tlg: \"h-10 gap-2 px-5 py-2 text-sm\",\r\n\t\t\txl: \"h-11 gap-3 px-6 py-3 text-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<ButtonBaseVariants>,\r\n\tdefaultVariants: {\r\n\t\tvariant: \"primary\",\r\n\t\tsize: \"md\",\r\n\t\tstatus: \"default\"\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t/*\r\n\t\t * Statuses\r\n\t\t */\r\n\t\t// Primary\r\n\t\t{\r\n\t\t\tvariant: \"primary\",\r\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\r\n\t\t\tclass: \"text-white hover:text-white active:text-white\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"primary\",\r\n\t\t\tstatus: \"info\",\r\n\t\t\tclass: \"bg-status-info hover:bg-status-info-hover active:bg-status-info-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"primary\",\r\n\t\t\tstatus: \"success\",\r\n\t\t\tclass: \"bg-status-success hover:bg-status-success-hover active:bg-status-success-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"primary\",\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tclass: \"bg-status-warning hover:bg-status-warning-hover active:bg-status-warning-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"primary\",\r\n\t\t\tstatus: \"error\",\r\n\t\t\tclass: \"bg-status-error hover:bg-status-error-hover active:bg-status-error-hover\"\r\n\t\t},\r\n\t\t// Secondary\r\n\t\t{\r\n\t\t\tvariant: \"secondary\",\r\n\t\t\tstatus: \"info\",\r\n\t\t\tclass: \"bg-status-info-bg hover:bg-status-info-bg-hover active:bg-status-info-bg-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"secondary\",\r\n\t\t\tstatus: \"success\",\r\n\t\t\tclass: \"bg-status-success-bg hover:bg-status-success-bg-hover active:bg-status-success-bg-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"secondary\",\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tclass: \"bg-status-warning-bg hover:bg-status-warning-bg-hover active:bg-status-warning-bg-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"secondary\",\r\n\t\t\tstatus: \"error\",\r\n\t\t\tclass: \"bg-status-error-bg hover:bg-status-error-bg-hover active:bg-status-error-bg-hover\"\r\n\t\t},\r\n\t\t// Outline\r\n\t\t{\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tstatus: \"info\",\r\n\t\t\tclass: \"border-status-info-secondary-border hover:border-status-info-primary-border hover:bg-status-info-bg active:border-status-info-secondary-border active:bg-status-info-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tstatus: \"success\",\r\n\t\t\tclass: \"border-status-success-secondary-border hover:border-status-success-primary-border hover:bg-status-success-bg active:border-status-success-secondary-border active:bg-status-success-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tclass: \"border-status-warning-secondary-border hover:border-status-warning-primary-border hover:bg-status-warning-bg active:border-status-warning-secondary-border active:bg-status-warning-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tstatus: \"error\",\r\n\t\t\tclass: \"border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg active:border-status-error-secondary-border active:bg-status-error-bg\"\r\n\t\t},\r\n\t\t// Ghost\r\n\t\t{\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tstatus: \"info\",\r\n\t\t\tclass: \"text-status-info-fg hover:bg-status-info-bg active:bg-status-info-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tstatus: \"success\",\r\n\t\t\tclass: \"text-status-success-fg hover:bg-status-success-bg active:bg-status-success-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tclass: \"text-status-warning-fg hover:bg-status-warning-bg active:bg-status-warning-bg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tstatus: \"error\",\r\n\t\t\tclass: \"text-status-error-fg hover:bg-status-error-bg active:bg-status-error-bg\"\r\n\t\t},\r\n\t\t// Text & Link\r\n\t\t{\r\n\t\t\tvariant: [\"text\", \"link\"],\r\n\t\t\tstatus: \"info\",\r\n\t\t\tclass: \"text-status-info-fg/70 hover:text-status-info-fg active:text-status-info-fg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: [\"text\", \"link\"],\r\n\t\t\tstatus: \"success\",\r\n\t\t\tclass: \"text-status-success-fg/70 hover:text-status-success-fg active:text-status-success-fg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: [\"text\", \"link\"],\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tclass: \"text-status-warning-fg/70 hover:text-status-warning-fg active:text-status-warning-fg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tvariant: [\"text\", \"link\"],\r\n\t\t\tstatus: \"error\",\r\n\t\t\tclass: \"text-status-error-fg/70 hover:text-status-error-fg active:text-status-error-fg\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nexport type ButtonBaseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\r\n\tButtonBaseVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, PropsWithChildren<ButtonBaseProps>>(\r\n\t({ variant, size, children, status, className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : \"button\";\r\n\t\treturn (\r\n\t\t\t<Comp className={buttonBaseStyles({ variant, size, status, className })} ref={ref} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</Comp>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n"],"names":["buttonBaseStyles","tv","ButtonBase","React","variant","size","children","status","className","asChild","props","ref","jsx","Slot"],"mappings":"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"}
1
+ {"version":3,"file":"ButtonBase-CbWrYcx-.js","sources":["../src/components/button/button-base/ButtonBase.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface ButtonBaseVariants {\n\tvariant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"link\" | \"text\";\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst buttonBaseStyles = tv({\n\tbase: \"inline-flex cursor-pointer select-none items-center justify-center overflow-hidden rounded-lg font-medium text-primary-fg transition-all focus-visible:shadow-focus focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tvariant: {\n\t\t\tprimary:\n\t\t\t\t\"bg-primary-accent text-primary-bg shadow-soft-base hover:bg-primary-accent-hover active:bg-primary-accent-hover\",\n\t\t\tsecondary: \"bg-secondary-bg-hover hover:bg-primary-bg-hover active:bg-primary-bg-hover\",\n\t\t\toutline:\n\t\t\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm hover:border-primary-border hover:bg-secondary-bg-hover active:border-primary-border active:bg-secondary-bg-hover\",\n\t\t\tghost: \"bg-transparent hover:bg-secondary-bg-hover active:bg-secondary-bg-hover\",\n\t\t\tlink: \"bg-transparent text-muted underline hover:text-primary-fg active:text-primary-fg\",\n\t\t\ttext: \"bg-transparent text-muted hover:text-primary-fg active:text-primary-fg\"\n\t\t},\n\t\tstatus: {\n\t\t\tdefault: \"\",\n\t\t\tinfo: \"text-status-info-fg\",\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\"\n\t\t},\n\t\tsize: {\n\t\t\txs: \"h-7 gap-2 px-2.5 py-1.5 text-xs\",\n\t\t\tsm: \"h-8 gap-2 px-3 py-2 text-xs\",\n\t\t\tmd: \"h-9 gap-2 px-4 py-2 text-sm\",\n\t\t\tlg: \"h-10 gap-2 px-5 py-2 text-sm\",\n\t\t\txl: \"h-11 gap-3 px-6 py-3 text-base\"\n\t\t}\n\t} satisfies VariantsConfig<ButtonBaseVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"primary\",\n\t\tsize: \"md\",\n\t\tstatus: \"default\"\n\t},\n\tcompoundVariants: [\n\t\t/*\n\t\t * Statuses\n\t\t */\n\t\t// Primary\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\n\t\t\tclass: \"text-white hover:text-white active:text-white\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"bg-status-info hover:bg-status-info-hover active:bg-status-info-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"bg-status-success hover:bg-status-success-hover active:bg-status-success-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"bg-status-warning hover:bg-status-warning-hover active:bg-status-warning-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"bg-status-error hover:bg-status-error-hover active:bg-status-error-hover\"\n\t\t},\n\t\t// Secondary\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"bg-status-info-bg hover:bg-status-info-bg-hover active:bg-status-info-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"bg-status-success-bg hover:bg-status-success-bg-hover active:bg-status-success-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"bg-status-warning-bg hover:bg-status-warning-bg-hover active:bg-status-warning-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"bg-status-error-bg hover:bg-status-error-bg-hover active:bg-status-error-bg-hover\"\n\t\t},\n\t\t// Outline\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"border-status-info-secondary-border hover:border-status-info-primary-border hover:bg-status-info-bg active:border-status-info-secondary-border active:bg-status-info-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"border-status-success-secondary-border hover:border-status-success-primary-border hover:bg-status-success-bg active:border-status-success-secondary-border active:bg-status-success-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"border-status-warning-secondary-border hover:border-status-warning-primary-border hover:bg-status-warning-bg active:border-status-warning-secondary-border active:bg-status-warning-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg active:border-status-error-secondary-border active:bg-status-error-bg\"\n\t\t},\n\t\t// Ghost\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"text-status-info-fg hover:bg-status-info-bg active:bg-status-info-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"text-status-success-fg hover:bg-status-success-bg active:bg-status-success-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"text-status-warning-fg hover:bg-status-warning-bg active:bg-status-warning-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"text-status-error-fg hover:bg-status-error-bg active:bg-status-error-bg\"\n\t\t},\n\t\t// Text & Link\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"text-status-info-fg/70 hover:text-status-info-fg active:text-status-info-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"text-status-success-fg/70 hover:text-status-success-fg active:text-status-success-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"text-status-warning-fg/70 hover:text-status-warning-fg active:text-status-warning-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"text-status-error-fg/70 hover:text-status-error-fg active:text-status-error-fg\"\n\t\t}\n\t]\n});\n\nexport type ButtonBaseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n\tButtonBaseVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, PropsWithChildren<ButtonBaseProps>>(\n\t({ variant, size, children, status, className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\t\treturn (\n\t\t\t<Comp className={buttonBaseStyles({ variant, size, status, className })} ref={ref} {...props}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n);\n\nButtonBase.displayName = \"ButtonBase\";\n"],"names":["buttonBaseStyles","tv","ButtonBase","React","variant","size","children","status","className","asChild","props","ref","jsx","Slot"],"mappings":"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"}