@inspirare/design-system 0.0.23 → 0.0.25

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 (297) hide show
  1. package/README.md +82 -61
  2. package/dist/book-logo-filled.svg +55 -0
  3. package/dist/components/ui/accessibility-improvements.js +26 -23
  4. package/dist/components/ui/accordion.js +34 -24
  5. package/dist/components/ui/alert-dialog.js +91 -57
  6. package/dist/components/ui/alert.js +38 -26
  7. package/dist/components/ui/aspect-ratio.js +11 -3
  8. package/dist/components/ui/avatar.js +30 -8
  9. package/dist/components/ui/badge.js +20 -14
  10. package/dist/components/ui/breadcrumb.js +69 -56
  11. package/dist/components/ui/button-group.js +17 -13
  12. package/dist/components/ui/button.js +19 -15
  13. package/dist/components/ui/calendar.js +63 -59
  14. package/dist/components/ui/card.js +11 -9
  15. package/dist/components/ui/carousel.js +70 -75
  16. package/dist/components/ui/chart.js +75 -72
  17. package/dist/components/ui/checkbox.js +4 -5
  18. package/dist/components/ui/collapsible.js +12 -14
  19. package/dist/components/ui/color-picker.js +60 -80
  20. package/dist/components/ui/combobox.js +153 -33
  21. package/dist/components/ui/command.js +50 -48
  22. package/dist/components/ui/context-menu.js +129 -68
  23. package/dist/components/ui/dialog.js +65 -60
  24. package/dist/components/ui/drawer.js +81 -40
  25. package/dist/components/ui/dropdown-menu.js +100 -87
  26. package/dist/components/ui/empty.js +7 -6
  27. package/dist/components/ui/field.js +44 -47
  28. package/dist/components/ui/form.js +22 -23
  29. package/dist/components/ui/hover-card.js +14 -11
  30. package/dist/components/ui/input-group.js +16 -13
  31. package/dist/components/ui/input-otp.js +37 -32
  32. package/dist/components/ui/input.js +9 -7
  33. package/dist/components/ui/item.js +42 -36
  34. package/dist/components/ui/kbd.js +2 -1
  35. package/dist/components/ui/label.js +6 -7
  36. package/dist/components/ui/menubar.js +124 -93
  37. package/dist/components/ui/navigation-menu.js +79 -54
  38. package/dist/components/ui/pagination.js +78 -58
  39. package/dist/components/ui/popover.js +35 -16
  40. package/dist/components/ui/progress.js +37 -13
  41. package/dist/components/ui/radio-group.js +14 -14
  42. package/dist/components/ui/resizable.js +24 -15
  43. package/dist/components/ui/scroll-area.js +29 -11
  44. package/dist/components/ui/select.js +116 -56
  45. package/dist/components/ui/separator.js +5 -7
  46. package/dist/components/ui/sheet.js +47 -42
  47. package/dist/components/ui/sidebar.js +279 -248
  48. package/dist/components/ui/skeleton.js +4 -40
  49. package/dist/components/ui/slider.js +27 -29
  50. package/dist/components/ui/sonner.js +27 -10
  51. package/dist/components/ui/spinner.js +2 -0
  52. package/dist/components/ui/switch.js +3 -4
  53. package/dist/components/ui/table.js +6 -6
  54. package/dist/components/ui/tabs.js +45 -22
  55. package/dist/components/ui/textarea.js +3 -2
  56. package/dist/components/ui/theme-toggle.js +38 -41
  57. package/dist/components/ui/toggle-group.js +30 -21
  58. package/dist/components/ui/toggle.js +8 -9
  59. package/dist/components/ui/tooltip.js +28 -23
  60. package/dist/index.css +1 -1
  61. package/dist/index.d.ts +446 -468
  62. package/dist/index.js +58 -58
  63. package/package.json +38 -37
  64. package/src/App.tsx +28 -34
  65. package/src/components/branding/assets/book-logo-filled.svg +55 -0
  66. package/src/components/branding/logo/logo.tsx +56 -0
  67. package/src/components/ui/accessibility-improvements.stories.tsx +18 -0
  68. package/src/components/ui/accessibility-improvements.test.tsx +13 -0
  69. package/src/components/ui/accessibility-improvements.tsx +16 -6
  70. package/src/components/ui/accordion.stories.tsx +19 -0
  71. package/src/components/ui/accordion.test.tsx +14 -0
  72. package/src/components/ui/accordion.tsx +28 -20
  73. package/src/components/ui/alert-dialog.stories.tsx +19 -0
  74. package/src/components/ui/alert-dialog.test.tsx +14 -0
  75. package/src/components/ui/alert-dialog.tsx +159 -123
  76. package/src/components/ui/alert.stories.tsx +19 -0
  77. package/src/components/ui/alert.test.tsx +14 -0
  78. package/src/components/ui/alert.tsx +60 -41
  79. package/src/components/ui/aspect-ratio.stories.tsx +19 -0
  80. package/src/components/ui/aspect-ratio.test.tsx +14 -0
  81. package/src/components/ui/aspect-ratio.tsx +19 -2
  82. package/src/components/ui/attachment.stories.tsx +19 -0
  83. package/src/components/ui/attachment.test.tsx +14 -0
  84. package/src/components/ui/attachment.tsx +209 -0
  85. package/src/components/ui/avatar.stories.tsx +19 -0
  86. package/src/components/ui/avatar.test.tsx +14 -0
  87. package/src/components/ui/avatar.tsx +73 -17
  88. package/src/components/ui/badge.stories.tsx +19 -0
  89. package/src/components/ui/badge.test.tsx +14 -0
  90. package/src/components/ui/badge.tsx +33 -25
  91. package/src/components/ui/breadcrumb.stories.tsx +19 -0
  92. package/src/components/ui/breadcrumb.test.tsx +14 -0
  93. package/src/components/ui/breadcrumb.tsx +98 -86
  94. package/src/components/ui/bubble.stories.tsx +19 -0
  95. package/src/components/ui/bubble.test.tsx +14 -0
  96. package/src/components/ui/bubble.tsx +130 -0
  97. package/src/components/ui/button-group.stories.tsx +19 -0
  98. package/src/components/ui/button-group.test.tsx +14 -0
  99. package/src/components/ui/button-group.tsx +26 -20
  100. package/src/components/ui/button.stories.tsx +19 -0
  101. package/src/components/ui/button.test.tsx +14 -0
  102. package/src/components/ui/button.tsx +30 -31
  103. package/src/components/ui/calendar.stories.tsx +19 -0
  104. package/src/components/ui/calendar.test.tsx +14 -0
  105. package/src/components/ui/calendar.tsx +28 -26
  106. package/src/components/ui/card.stories.tsx +19 -0
  107. package/src/components/ui/card.test.tsx +14 -0
  108. package/src/components/ui/card.tsx +30 -17
  109. package/src/components/ui/carousel.stories.tsx +19 -0
  110. package/src/components/ui/carousel.test.tsx +14 -0
  111. package/src/components/ui/carousel.tsx +115 -135
  112. package/src/components/ui/chart.stories.tsx +18 -0
  113. package/src/components/ui/chart.test.tsx +13 -0
  114. package/src/components/ui/chart.tsx +220 -216
  115. package/src/components/ui/checkbox.stories.tsx +19 -0
  116. package/src/components/ui/checkbox.test.tsx +14 -0
  117. package/src/components/ui/checkbox.tsx +7 -10
  118. package/src/components/ui/collapsible.stories.tsx +19 -0
  119. package/src/components/ui/collapsible.test.tsx +14 -0
  120. package/src/components/ui/collapsible.tsx +11 -26
  121. package/src/components/ui/color-picker.stories.tsx +19 -0
  122. package/src/components/ui/color-picker.test.tsx +14 -0
  123. package/src/components/ui/color-picker.tsx +36 -26
  124. package/src/components/ui/combobox.stories.tsx +19 -0
  125. package/src/components/ui/combobox.test.tsx +14 -0
  126. package/src/components/ui/combobox.tsx +281 -96
  127. package/src/components/ui/command.stories.tsx +19 -0
  128. package/src/components/ui/command.test.tsx +14 -0
  129. package/src/components/ui/command.tsx +59 -47
  130. package/src/components/ui/context-menu.stories.tsx +19 -0
  131. package/src/components/ui/context-menu.test.tsx +14 -0
  132. package/src/components/ui/context-menu.tsx +231 -160
  133. package/src/components/ui/dialog.stories.tsx +19 -0
  134. package/src/components/ui/dialog.test.tsx +14 -0
  135. package/src/components/ui/dialog.tsx +81 -72
  136. package/src/components/ui/direction.stories.tsx +19 -0
  137. package/src/components/ui/direction.test.tsx +14 -0
  138. package/src/components/ui/direction.tsx +6 -0
  139. package/src/components/ui/drawer.stories.tsx +19 -0
  140. package/src/components/ui/drawer.test.tsx +14 -0
  141. package/src/components/ui/drawer.tsx +143 -64
  142. package/src/components/ui/dropdown-menu.stories.tsx +19 -0
  143. package/src/components/ui/dropdown-menu.test.tsx +14 -0
  144. package/src/components/ui/dropdown-menu.tsx +199 -153
  145. package/src/components/ui/empty.stories.tsx +18 -0
  146. package/src/components/ui/empty.test.tsx +13 -0
  147. package/src/components/ui/empty.tsx +11 -9
  148. package/src/components/ui/field.stories.tsx +18 -0
  149. package/src/components/ui/field.test.tsx +13 -0
  150. package/src/components/ui/field.tsx +26 -32
  151. package/src/components/ui/form.stories.tsx +22 -0
  152. package/src/components/ui/form.test.tsx +15 -0
  153. package/src/components/ui/form.tsx +1 -2
  154. package/src/components/ui/hover-card.stories.tsx +19 -0
  155. package/src/components/ui/hover-card.test.tsx +14 -0
  156. package/src/components/ui/hover-card.tsx +34 -32
  157. package/src/components/ui/input-group.stories.tsx +18 -0
  158. package/src/components/ui/input-group.test.tsx +13 -0
  159. package/src/components/ui/input-group.tsx +21 -28
  160. package/src/components/ui/input-otp.stories.tsx +19 -0
  161. package/src/components/ui/input-otp.test.tsx +14 -0
  162. package/src/components/ui/input-otp.tsx +58 -42
  163. package/src/components/ui/input.stories.tsx +19 -0
  164. package/src/components/ui/input.test.tsx +14 -0
  165. package/src/components/ui/input.tsx +9 -8
  166. package/src/components/ui/item.stories.tsx +18 -0
  167. package/src/components/ui/item.test.tsx +13 -0
  168. package/src/components/ui/item.tsx +38 -28
  169. package/src/components/ui/kbd.stories.tsx +18 -0
  170. package/src/components/ui/kbd.test.tsx +13 -0
  171. package/src/components/ui/kbd.tsx +3 -3
  172. package/src/components/ui/label.stories.tsx +18 -0
  173. package/src/components/ui/label.test.tsx +13 -0
  174. package/src/components/ui/label.tsx +7 -11
  175. package/src/components/ui/marker.stories.tsx +19 -0
  176. package/src/components/ui/marker.test.tsx +14 -0
  177. package/src/components/ui/marker.tsx +73 -0
  178. package/src/components/ui/menubar.stories.tsx +19 -0
  179. package/src/components/ui/menubar.test.tsx +14 -0
  180. package/src/components/ui/menubar.tsx +226 -202
  181. package/src/components/ui/message-scroller.stories.tsx +19 -0
  182. package/src/components/ui/message-scroller.test.tsx +14 -0
  183. package/src/components/ui/message-scroller.tsx +131 -0
  184. package/src/components/ui/message.stories.tsx +19 -0
  185. package/src/components/ui/message.test.tsx +14 -0
  186. package/src/components/ui/message.tsx +94 -0
  187. package/src/components/ui/native-select.stories.tsx +18 -0
  188. package/src/components/ui/native-select.test.tsx +13 -0
  189. package/src/components/ui/native-select.tsx +63 -0
  190. package/src/components/ui/navigation-menu.stories.tsx +19 -0
  191. package/src/components/ui/navigation-menu.test.tsx +14 -0
  192. package/src/components/ui/navigation-menu.tsx +145 -103
  193. package/src/components/ui/pagination.stories.tsx +19 -0
  194. package/src/components/ui/pagination.test.tsx +14 -0
  195. package/src/components/ui/pagination.tsx +114 -83
  196. package/src/components/ui/popover.stories.tsx +19 -0
  197. package/src/components/ui/popover.test.tsx +14 -0
  198. package/src/components/ui/popover.tsx +68 -33
  199. package/src/components/ui/progress.stories.tsx +19 -0
  200. package/src/components/ui/progress.test.tsx +14 -0
  201. package/src/components/ui/progress.tsx +67 -15
  202. package/src/components/ui/questionnaire.stories.tsx +19 -0
  203. package/src/components/ui/questionnaire.test.tsx +14 -0
  204. package/src/components/ui/questionnaire.tsx +324 -0
  205. package/src/components/ui/radio-group.stories.tsx +19 -0
  206. package/src/components/ui/radio-group.test.tsx +14 -0
  207. package/src/components/ui/radio-group.tsx +15 -20
  208. package/src/components/ui/resizable.stories.tsx +19 -0
  209. package/src/components/ui/resizable.test.tsx +14 -0
  210. package/src/components/ui/resizable.tsx +37 -30
  211. package/src/components/ui/scroll-area.stories.tsx +19 -0
  212. package/src/components/ui/scroll-area.test.tsx +14 -0
  213. package/src/components/ui/scroll-area.tsx +41 -19
  214. package/src/components/ui/select.stories.tsx +19 -0
  215. package/src/components/ui/select.test.tsx +32 -0
  216. package/src/components/ui/select.tsx +172 -78
  217. package/src/components/ui/separator.stories.tsx +19 -0
  218. package/src/components/ui/separator.test.tsx +14 -0
  219. package/src/components/ui/separator.tsx +8 -11
  220. package/src/components/ui/sheet.stories.tsx +19 -0
  221. package/src/components/ui/sheet.test.tsx +14 -0
  222. package/src/components/ui/sheet.tsx +56 -71
  223. package/src/components/ui/sidebar.stories.tsx +18 -0
  224. package/src/components/ui/sidebar.test.tsx +13 -0
  225. package/src/components/ui/sidebar.tsx +469 -513
  226. package/src/components/ui/skeleton.stories.tsx +19 -0
  227. package/src/components/ui/skeleton.test.tsx +14 -0
  228. package/src/components/ui/skeleton.tsx +8 -114
  229. package/src/components/ui/slider.stories.tsx +19 -0
  230. package/src/components/ui/slider.test.tsx +14 -0
  231. package/src/components/ui/slider.tsx +31 -40
  232. package/src/components/ui/sonner.stories.tsx +19 -0
  233. package/src/components/ui/sonner.test.tsx +14 -0
  234. package/src/components/ui/sonner.tsx +39 -7
  235. package/src/components/ui/spinner.stories.tsx +18 -0
  236. package/src/components/ui/spinner.test.tsx +13 -0
  237. package/src/components/ui/spinner.tsx +3 -7
  238. package/src/components/ui/switch.stories.tsx +19 -0
  239. package/src/components/ui/switch.test.tsx +14 -0
  240. package/src/components/ui/switch.tsx +4 -7
  241. package/src/components/ui/table.stories.tsx +19 -0
  242. package/src/components/ui/table.test.tsx +14 -0
  243. package/src/components/ui/table.tsx +17 -17
  244. package/src/components/ui/tabs.stories.tsx +19 -0
  245. package/src/components/ui/tabs.test.tsx +14 -0
  246. package/src/components/ui/tabs.tsx +71 -31
  247. package/src/components/ui/textarea.stories.tsx +19 -0
  248. package/src/components/ui/textarea.test.tsx +14 -0
  249. package/src/components/ui/textarea.tsx +7 -5
  250. package/src/components/ui/theme-toggle.stories.tsx +18 -0
  251. package/src/components/ui/theme-toggle.test.tsx +13 -0
  252. package/src/components/ui/theme-toggle.tsx +35 -37
  253. package/src/components/ui/toggle-group.stories.tsx +19 -0
  254. package/src/components/ui/toggle-group.test.tsx +14 -0
  255. package/src/components/ui/toggle-group.tsx +41 -25
  256. package/src/components/ui/toggle.stories.tsx +19 -0
  257. package/src/components/ui/toggle.test.tsx +14 -0
  258. package/src/components/ui/toggle.tsx +17 -19
  259. package/src/components/ui/tooltip.stories.tsx +19 -0
  260. package/src/components/ui/tooltip.test.tsx +14 -0
  261. package/src/components/ui/tooltip.tsx +53 -44
  262. package/src/demo/AIDemo.tsx +50 -0
  263. package/src/demo/ButtonsDemo.tsx +41 -18
  264. package/src/demo/CalendarDemo.tsx +1 -1
  265. package/src/demo/FeedbackDemo.tsx +4 -6
  266. package/src/demo/FormsDemo.tsx +34 -11
  267. package/src/demo/NavigationDemo.tsx +38 -13
  268. package/src/demo/OverlaysDemo.tsx +22 -36
  269. package/src/demo/update-demos.js +82 -0
  270. package/src/index.css +66 -46
  271. package/src/lib/utils.ts +3 -3
  272. package/src/stories/Button.stories.ts +54 -0
  273. package/src/stories/Button.tsx +36 -0
  274. package/src/stories/Configure.mdx +388 -0
  275. package/src/stories/Header.stories.ts +34 -0
  276. package/src/stories/Header.tsx +55 -0
  277. package/src/stories/Page.stories.ts +33 -0
  278. package/src/stories/Page.tsx +73 -0
  279. package/src/stories/assets/accessibility.png +0 -0
  280. package/src/stories/assets/accessibility.svg +1 -0
  281. package/src/stories/assets/addon-library.png +0 -0
  282. package/src/stories/assets/assets.png +0 -0
  283. package/src/stories/assets/avif-test-image.avif +0 -0
  284. package/src/stories/assets/context.png +0 -0
  285. package/src/stories/assets/discord.svg +1 -0
  286. package/src/stories/assets/docs.png +0 -0
  287. package/src/stories/assets/figma-plugin.png +0 -0
  288. package/src/stories/assets/github.svg +1 -0
  289. package/src/stories/assets/share.png +0 -0
  290. package/src/stories/assets/styling.png +0 -0
  291. package/src/stories/assets/testing.png +0 -0
  292. package/src/stories/assets/theming.png +0 -0
  293. package/src/stories/assets/tutorials.svg +1 -0
  294. package/src/stories/assets/youtube.svg +1 -0
  295. package/src/stories/button.css +30 -0
  296. package/src/stories/header.css +32 -0
  297. package/src/stories/page.css +68 -0
package/README.md CHANGED
@@ -1,73 +1,94 @@
1
- # React + TypeScript + Vite
1
+ # @inspirare/design-system
2
2
 
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
3
+ Design system oficial do ecossistema **Inspirare**. Pacote NPM (`@inspirare/design-system`, atualmente `v0.0.21`) que centraliza tokens visuais, tipografia e componentes de UI compartilhados entre os projetos Inspirare (app principal e MFE Editor).
4
4
 
5
- Currently, two official plugins are available:
5
+ Stack: React 19 + TypeScript + Vite + Tailwind CSS v4 + Radix UI, componentes baseados em shadcn/ui.
6
6
 
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
7
+ ---
9
8
 
10
- ## React Compiler
9
+ ## Por que existe
11
10
 
12
- The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
11
+ Um pacote único, versionado, publicado no NPM (escopo `@inspirare`), consumido via `import "@inspirare/design-system/style.css"` + `import { Button, Card, ... } from "@inspirare/design-system"`.
13
12
 
14
- ## Expanding the ESLint configuration
13
+ Isso garante pro ecossistema:
15
14
 
16
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
15
+ - **Consistência visual** todos os apps (Inspirare principal, MFE Editor) compartilham a mesma versão de design, sem drift entre times/repos.
16
+ - **Manutenção centralizada** — mudar uma cor, radius ou escala de fonte acontece em um lugar, propaga via bump de versão.
17
+ - **Isolamento** — componentes testáveis fora da lógica de negócio de cada app consumidor.
18
+ - **Tree-shaking real** — build com `preserveModules` faz code-split por componente, consumidor importa só o que usa.
17
19
 
18
- ```js
19
- export default defineConfig([
20
- globalIgnores(['dist']),
21
- {
22
- files: ['**/*.{ts,tsx}'],
23
- extends: [
24
- // Other configs...
20
+ ---
25
21
 
26
- // Remove tseslint.configs.recommended and replace with this
27
- tseslint.configs.recommendedTypeChecked,
28
- // Alternatively, use this for stricter rules
29
- tseslint.configs.strictTypeChecked,
30
- // Optionally, add this for stylistic rules
31
- tseslint.configs.stylisticTypeChecked,
22
+ ## O que tem hoje
32
23
 
33
- // Other configs...
34
- ],
35
- languageOptions: {
36
- parserOptions: {
37
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
38
- tsconfigRootDir: import.meta.dirname,
39
- },
40
- // other options...
41
- },
42
- },
43
- ])
44
- ```
24
+ ### Componentes (57 arquivos em `src/components/ui`)
25
+
26
+ Cobertura ampla de padrões shadcn/Radix: `accordion`, `alert`, `alert-dialog`, `aspect-ratio`, `avatar`, `badge`, `breadcrumb`, `button` / `button-group`, `calendar`, `card`, `carousel`, `chart`, `checkbox`, `collapsible`, `color-picker`, `combobox`, `command`, `context-menu`, `dialog`, `drawer`, `dropdown-menu`, `empty`, `field`, `form`, `hover-card`, `input` / `input-group` / `input-otp`, `item`, `kbd`, `label`, `menubar`, `navigation-menu`, `pagination`, `popover`, `progress`, `radio-group`, `resizable`, `scroll-area`, `select`, `separator`, `sheet`, `sidebar`, `skeleton`, `slider`, `sonner` (toast), `spinner`, `switch`, `table`, `tabs`, `textarea`, `theme-toggle`, `toggle` / `toggle-group`, `tooltip`, além de `accessibility-improvements` (util de acessibilidade).
27
+
28
+ Todos exportados via `src/index.ts` (barrel), junto com `lib/utils` e o hook `use-mobile`.
29
+
30
+ ### Tokens de design (`src/index.css`, Tailwind v4)
31
+
32
+ - **Cores**: paleta completa via CSS custom properties (`--background`, `--primary`, `--secondary`, `--muted`, `--accent`, `--destructive`, `--border`, `--sidebar-*`, `--chart-1..5`) com tema light (tons quentes creme/terracota — `#dc663e` primary sobre `#F9F5F2`) e tema `.dark` completo espelhado.
33
+ - **Tipografia**: `--font-sans` (Josefin Sans), `--font-serif` (Special Elite), `--font-mono` (Fira Code). Base rem explícita (`html { font-size: 16px }`) — escala documentada 12/14/16/18/24/32px (0.75 a 2rem).
34
+ - **Ícones**: grid de tokens de 8px — `--icon-xs` (16px) a `--icon-lg` (40px) — pra manter ritmo visual consistente entre lucide-react e o design system.
35
+ - **Radius, shadows, spacing, tracking**: tokens completos (`--radius`, `--shadow-2xs` a `--shadow-2xl`, `--spacing`, `--tracking-normal`).
36
+ - **Variáveis extras do editor** (`--tt-radius-*`, `--tt-transition-*`) — suporte a features específicas do MFE Editor (provável Tiptap/rich-text).
37
+ - **Content scan restrito à lib**: `@source not` exclui `App.tsx`/`main.tsx`/`demo` do playground Vite local — o dist.css publicado só contém utilitários realmente usados pelos componentes, sem peso morto do ambiente de dev.
38
+
39
+ ### Build e distribuição
40
+
41
+ - `tsc -b && vite build` com `preserveModules` → code-split por componente (tree-shaking real no consumidor, desde v0.0.18/0.0.19).
42
+ - `dist/` + `src/` publicados no pacote; exporta `./style.css` (fonte) e `./dist.css` (compilado).
43
+ - Script `postbuild-use-client.mjs` — injeta diretiva `"use client"` onde necessário (compat Next.js/RSC).
44
+ - `npm run deploy` → build + bump patch + publish `--access public`.
45
+
46
+ ---
47
+
48
+ ## Evolução (histórico de versões)
49
+
50
+ | Versão | Marco |
51
+ |---|---|
52
+ | 0.0.8–0.0.12 | Base inicial: componentes, ajustes de CSS, melhorias incrementais |
53
+ | 0.0.13 | Paleta light suavizada com tons cream quentes |
54
+ | 0.0.14–0.0.16 | Melhorias no light mode, ajustes de config |
55
+ | 0.0.17 | Novas exportações, melhorias gerais |
56
+ | 0.0.18–0.0.19 | **Code-split por componente** (`preserveModules`) — tree-shaking real |
57
+ | 0.0.20 | Melhoria de minificação de CSS, `.npmrc` para publish no escopo `@inspirare` |
58
+ | **0.0.21** (atual) | Base rem explícita (16px), tokens de tamanho de ícone (grid 8px), escala de fonte documentada 12/14/16/18px |
59
+
60
+ Tendência da evolução: de um conjunto solto de componentes para um **sistema de tokens disciplinado** (rem base, grid de ícones, escala tipográfica formal) — cada versão recente reduz decisões arbitrárias de estilo nos apps consumidores.
45
61
 
46
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47
-
48
- ```js
49
- // eslint.config.js
50
- import reactX from 'eslint-plugin-react-x'
51
- import reactDom from 'eslint-plugin-react-dom'
52
-
53
- export default defineConfig([
54
- globalIgnores(['dist']),
55
- {
56
- files: ['**/*.{ts,tsx}'],
57
- extends: [
58
- // Other configs...
59
- // Enable lint rules for React
60
- reactX.configs['recommended-typescript'],
61
- // Enable lint rules for React DOM
62
- reactDom.configs.recommended,
63
- ],
64
- languageOptions: {
65
- parserOptions: {
66
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
67
- tsconfigRootDir: import.meta.dirname,
68
- },
69
- // other options...
70
- },
71
- },
72
- ])
62
+ ---
63
+
64
+ ## Papel no ecossistema Inspirare
65
+
66
+ Consumido por pelo menos dois projetos:
67
+
68
+ - **Inspirare (app principal)**
69
+ - **Inspirare Editor (MFE)** — as variáveis `--tt-*` no CSS indicam integração direta com o editor de texto rico do MFE.
70
+
71
+ Fluxo de consumo (ver `docs/PUBLISHING.md` e `docs/README.md`):
72
+
73
+ 1. `npm install @inspirare/design-system`
74
+ 2. `import "@inspirare/design-system/style.css"` no entry point
75
+ 3. Apontar o `content` do Tailwind do consumidor pra `./node_modules/@inspirare/design-system/dist/**/*.js`
76
+ 4. Usar componentes e classes utilitárias nativas (`bg-card`, `text-primary`) em vez de hex hard-coded
77
+
78
+ Isso faz do pacote o **único ponto de verdade visual** do ecossistema — qualquer decisão de marca (cor, tipografia, radius, densidade de ícone) se propaga a partir daqui, versão a versão, pros dois apps sem duplicação de CSS ou drift de tema entre light/dark.
79
+
80
+ ---
81
+
82
+ ## Desenvolvimento local
83
+
84
+ ```bash
85
+ npm run dev # Vite dev server (playground em App.tsx/demo)
86
+ npm run build # tsc -b + vite build + postbuild use-client
87
+ npm run lint # eslint
88
+ npm run preview # preview do build
89
+ npm run deploy # build + bump patch + publish
73
90
  ```
91
+
92
+ Pra testar mudanças em app consumidor antes de publicar: `npm link` (ver `docs/PUBLISHING.md` seção 5).
93
+
94
+ Docs completas: [`docs/README.md`](docs/README.md), [`docs/PUBLISHING.md`](docs/PUBLISHING.md), [`docs/MIGRATION.md`](docs/MIGRATION.md).
@@ -0,0 +1,55 @@
1
+ <svg width="664" height="721" viewBox="0 0 664 721" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M368.557 684.54C384.05 685.991 399.59 685.332 415.103 685.346C493.287 685.413 571.47 685.264 649.654 685.192C651.596 685.19 653.54 685.152 655.48 685.224C660.859 685.42 663.603 688.773 663.683 693.624C663.765 698.629 660.662 701.666 655.484 702.032C653.066 702.203 650.63 702.144 648.203 702.143C558.85 702.115 469.497 702.112 380.144 701.973C374.752 701.964 370.681 703.18 366.617 707.192C348.861 724.721 315.177 724.724 296.065 707.213C291.93 703.424 287.877 702.003 282.461 702.01C193.351 702.121 104.241 702.089 15.1308 702.094C4.03607 702.094 -0.17262 699.606 0.00539744 693.105C0.171233 687.048 3.64939 685.167 15.218 685.171C106.756 685.196 198.293 685.28 289.831 685.221C295.947 685.217 300.974 686.771 305.909 690.551C324.991 705.167 338.253 704.934 357.158 690.327C360.222 687.96 363.173 685.377 367.589 684.133C368.229 684.149 368.557 684.54 368.557 684.54Z" fill="#DC663E"/>
3
+ <path d="M415.108 442.441C417.815 440.023 419.752 437.42 423.897 436.192C429.868 444.782 437.285 452.197 446.687 457.623C456.274 463.154 466.661 464.208 478.148 463.883C476.489 469.177 472.799 471.263 469.762 473.771C454.375 486.478 437.289 496.765 420.772 507.853C377.417 536.959 349.317 576.313 339.48 628.055C339.216 629.441 339.186 631.035 336.016 631.507C335.186 607.849 338.17 584.842 343.427 562.052C354.365 514.64 378.407 475.043 415.108 442.441Z" fill="#DC663E"/>
4
+ <path d="M284.683 461.675C276.705 432.714 257.803 412.041 236.95 392.686C223.269 379.988 208.492 368.421 197.451 353.027C174.551 321.1 180.823 285.758 202.917 258.281C203.629 257.395 204.707 256.804 205.387 256.258C207.614 256.926 207.841 258.438 207.95 259.862C210.052 287.342 226.058 305.158 248.917 317.78C254.561 320.897 256.282 323.399 254.437 330.059C247.919 353.593 252.929 375.729 264.805 396.528C272.146 409.384 280.001 421.923 285.298 435.872C291.101 451.156 292.474 466.789 290.979 482.781C290.314 482.922 289.648 483.062 288.983 483.203C287.587 476.221 286.192 469.239 284.683 461.675Z" fill="#DC663E"/>
5
+ <path d="M177.314 458.658C193.094 463.309 207.552 461.017 221.343 453.535C224.948 451.579 228.063 450.438 231.783 453.858C265.642 484.985 295.665 518.923 313.148 562.348C321.846 583.954 325.917 606.46 327.054 629.595C327.084 630.203 326.52 630.839 326.224 631.481C323.572 631.434 323.8 629.184 323.473 627.815C312.06 580.055 282.875 546.145 241.443 521.451C224.168 511.155 206.915 500.697 192.123 486.798C183.094 478.313 175.292 468.93 169.54 457.828C172.748 455.557 174.593 458.257 177.314 458.658Z" fill="#DC663E"/>
6
+ <path d="M323.834 485.336C321.442 496.991 320.626 508.254 319.646 520.486C315.548 514.897 314.736 508.696 313.805 494.869C310.525 446.169 328.186 405.12 359.403 369.047C371.001 355.645 383.798 343.38 397.25 331.807C400.073 329.379 402.353 328.721 405.503 331.225C418.916 341.885 433.915 346.598 451.055 342.903C451.674 342.769 452.422 343.238 453.436 343.515C452.696 347.654 449.262 349.359 446.463 351.32C427.595 364.544 408.203 377.06 389.786 390.878C357.753 414.912 333.019 444.417 323.834 485.336Z" fill="#DC663E"/>
7
+ <path d="M215.15 566.017C243.01 580.765 268.669 597.666 290.25 620.174C306.723 637.353 320.023 656.586 327.787 679.311C328.414 681.145 329.039 682.983 329.557 684.85C329.736 685.495 329.586 686.232 329.586 687.378C326.005 687.635 324.514 684.893 323.062 682.69C297.507 643.917 261.529 617.189 221.704 594.938C183.458 573.57 142.343 558.592 102.183 541.487C93.839 537.933 85.0783 535.188 76.6433 530.116C92.2736 522.822 170.215 543.382 215.15 566.017Z" fill="#DC663E"/>
8
+ <path d="M541.516 533.666C556.497 530.726 570.919 528.42 586.86 528.476C584.473 532.759 581.179 533.196 578.521 534.288C536.997 551.337 495.255 567.877 454.941 587.724C409.154 610.265 369.481 640.301 339.236 681.939C337.877 683.811 336.793 686.261 332.916 686.319C334.019 677.31 338.392 669.733 342.308 662.189C361.021 626.142 390.176 600.277 424.297 579.482C460.474 557.434 499.245 541.879 541.516 533.666Z" fill="#DC663E"/>
9
+ <path d="M270.229 651.028C230.902 628.144 189.097 614.492 144.522 608.58C114.037 604.537 83.5736 604.89 53.0232 606.508C51.3506 606.596 49.6263 607.001 47.5332 604.903C50.6435 598.671 57.329 595.659 61.906 590.723C66.6119 585.647 72.6419 583.694 79.5398 583.532C139.537 582.122 196.845 592.304 249.609 622.483C276.056 637.609 298.446 657.456 317.873 680.772C319.302 682.487 321.393 684.139 320.459 688.097C303.933 675.083 288.268 661.849 270.229 651.028Z" fill="#DC663E"/>
10
+ <path d="M567.863 605.258C502.721 605.655 442.203 620.402 386.849 654.185C372.918 662.687 360.329 672.95 348.025 683.599C346.259 685.128 344.644 687.032 341.546 687.399C341.503 683.783 344.028 681.952 345.712 679.883C381.141 636.342 426.952 609.196 480.757 594.876C512.362 586.464 544.579 583.138 577.272 583.339C587.629 583.403 596.329 586.018 603.401 593.609C607.144 597.626 612.593 599.901 615.552 605.257C599.637 605.257 584.114 605.257 567.863 605.258Z" fill="#DC663E"/>
11
+ <path d="M368.063 683.955C379.907 674.536 394.303 670.567 408.366 666.355C485.65 643.206 561.719 650.305 636.873 676.517C638.181 676.973 639.746 677.242 640.11 679.435C637.259 681.06 634.093 680.205 631.119 680.164C567.307 679.291 503.522 676.33 439.686 677.307C416.183 677.667 392.648 678.403 369.118 684.456C368.557 684.54 368.229 684.149 368.063 683.955Z" fill="#DC663E"/>
12
+ <path d="M486.985 624.758C530.215 619.027 572.236 622.633 613.888 632.464C618.244 633.492 621.342 635.599 623.281 639.641C625.903 645.105 628.713 650.48 631.38 655.923C631.67 656.514 631.55 657.305 631.786 659.669C536.203 633.57 443.271 633.95 354.607 685.1C362.524 669.17 425.898 632.641 486.985 624.758Z" fill="#DC663E"/>
13
+ <path d="M175.866 677.248C124.587 678.22 74.0364 679.19 23.4858 680.16C23.4173 679.504 23.3488 678.848 23.2803 678.193C65.8931 661.402 110.264 652.484 156.069 652.215C203.04 651.939 248.414 660.774 291.212 681.575C253.08 676.567 214.833 677.028 175.866 677.248Z" fill="#DC663E"/>
14
+ <path d="M35.2003 649.991C39.6023 637.972 47.7636 632.732 59.9199 630.105C131.645 614.604 200.598 620.774 266.427 654.358C279.408 660.981 291.288 669.433 303.42 677.442C305.731 678.968 308.357 680.573 309.558 685.579C220.441 635.342 127.777 632.766 32.3278 659.66C31.0361 655.432 33.9186 653.218 35.2003 649.991Z" fill="#DC663E"/>
15
+ <path d="M341.878 480.305C355.871 442.503 381.853 415.44 414.058 393.487C432.695 380.784 452.328 369.508 469.773 355.095C483.556 343.708 495.773 330.919 502.724 314.088C505.065 308.42 506.321 302.305 508.499 294.955C515.023 305.922 514.535 316.159 511.997 326.322C506.701 347.528 492.087 361.903 475.518 374.746C456.266 389.669 434.245 400.202 414.057 413.648C387.064 431.625 363.439 452.836 347.66 481.708C344.639 487.236 341.933 492.936 339.031 498.531C338.865 498.852 338.25 498.94 336.951 499.568C336.638 492.5 340.346 486.92 341.878 480.305Z" fill="#DC663E"/>
16
+ <path d="M132.931 270.022C127.239 306.184 143.803 332.287 168.886 354.857C187.864 371.933 209.418 385.776 228.506 402.725C241.714 414.452 252.835 427.781 261.631 443.066C262.958 445.373 264.055 447.819 265.144 450.252C265.397 450.82 265.181 451.597 265.181 452.595C264.352 452.329 263.473 452.328 263.19 451.917C244.71 425.019 218.518 407.073 191.592 389.908C172.748 377.894 154.019 365.675 139.4 348.32C123.901 329.921 115.374 309.469 122.073 285.172C123.738 279.136 124.981 271.875 132.931 270.022Z" fill="#DC663E"/>
17
+ <path d="M478.058 246.515C497.762 275.252 494.717 305.829 470.287 328.348C457.738 339.916 435.268 342.994 422.052 334.028C452.381 310.036 470.862 279.899 468.904 239.939C474.033 240.919 475.552 243.916 478.058 246.515Z" fill="#DC663E"/>
18
+ <path d="M149.432 191.287C150.629 191.583 151.375 191.881 152.049 191.765C171.185 188.463 180.045 195.397 180.478 214.579C180.584 219.263 183.733 221.95 185.556 225.521C186.971 228.291 189.375 231.222 186.89 234.191C184.56 236.976 180.91 236.266 178.078 235.012C171.581 232.134 165.243 231.212 157.933 231.767C147.348 232.569 137.455 222.26 138.112 211.882C138.448 206.568 137.249 202.571 134.22 198.576C133.089 197.084 132.275 195.151 131.926 193.305C130.991 188.356 133.054 185.483 138.245 186.741C141.947 187.638 145.389 189.607 149.432 191.287Z" fill="#DC663E"/>
19
+ <path d="M436.117 130.013C442.748 123.555 446.658 116.556 448.941 107.78C451.495 97.9624 463.09 93.3287 473.419 96.9058C479.123 98.8817 484.387 100.027 490.327 98.2445C493.255 97.3654 496.946 97.1571 498.937 100.304C501.218 103.91 498.776 107.064 496.382 109.298C491.476 113.877 488.584 119.01 486.956 125.726C484.652 135.229 473.183 141.569 464.014 138.709C457.368 136.637 451.12 135.963 444.269 136.996C440.124 137.621 434.98 137.412 436.117 130.013ZM445.204 127.979C444.16 131.086 446.03 131.255 448.243 130.909C456.473 129.623 463.977 126.591 472.649 120.712C462.812 123.819 456.082 131.288 446.777 126.384C446.622 126.303 446.077 126.96 445.204 127.979ZM485.935 109.105C484.82 110.807 483.705 112.508 482.59 114.21C486.199 111.669 489.85 109.342 491.466 104.973C487.013 104.677 487.013 104.677 485.935 109.105Z" fill="#DC663E"/>
20
+ <path d="M346.146 225.201C341.572 225.276 340.682 227.847 341.01 231.108C341.632 237.299 338.612 239.373 332.859 238.863C329.863 238.597 327.526 239.612 327.394 243.124C327.256 246.801 326.019 249.16 321.75 248.823C317.576 248.494 317.638 245.514 317.445 242.552C317.384 241.62 317.094 240.704 316.945 239.966C316.281 239.57 315.889 239.15 315.459 239.107C302.916 237.83 302.142 236.722 302.813 220.291C302.921 217.639 303.805 214.949 303.526 212.364C302.741 205.089 305.256 201.205 313.036 201.714C316.791 201.959 318.188 199.814 318.164 196.315C318.144 193.419 319.522 191.698 322.573 191.853C325.299 191.992 326.401 193.821 326.318 196.269C326.153 201.095 329.146 201.902 332.94 201.658C338.72 201.287 341.662 203.598 341.017 209.69C340.612 213.517 341.533 216.372 346.182 216.646C348.503 216.783 350.402 217.912 350.501 220.647C350.596 223.246 349.221 224.682 346.146 225.201ZM332.958 216.135C332.929 213.568 332.459 211.604 329.345 210.815C315.886 207.407 309.931 212.533 311.793 226.039C312.126 228.459 312.841 229.902 315.498 230.509C329.108 233.615 332.872 230.865 332.958 216.135Z" fill="#DC663E"/>
21
+ <path d="M463.834 444.549C473.592 433.322 478.237 420.271 480.909 404.085C488.333 412.246 491.164 419.904 492.442 428.214C492.952 431.529 492.835 434.984 492.636 438.354C492.175 446.164 490.249 453.791 482.26 456.831C473.331 460.228 464.056 460.142 455.044 455.519C456.698 450.396 461.102 448.482 463.834 444.549Z" fill="#DC663E"/>
22
+ <path d="M483.604 200.603C480.754 199.406 477.648 200.066 475.779 196.877C479.905 193.445 485.134 193.331 489.847 192.446C496.417 191.212 499.991 188.223 500.991 181.31C501.727 176.223 502.381 170.787 505.966 165.854C509.752 170.989 510.012 176.714 511.015 181.961C512.202 188.172 515.391 191.036 521.342 192.256C526.391 193.29 531.792 193.604 537.021 196.9C531.88 201.118 526.076 200.884 520.915 201.988C515.13 203.226 512.289 205.929 511.14 211.761C510.098 217.055 509.492 222.654 506.421 227.97C502.863 225.109 502.461 221.179 502.26 217.946C501.536 206.32 495.022 201.383 483.604 200.603Z" fill="#DC663E"/>
23
+ <path d="M171.257 449.905C163.415 443.942 162.372 436.35 164.684 428.068C167.397 418.351 173.04 410.628 182.275 404.653C181.656 423.278 186.894 439.694 198.747 454.659C187.806 457.309 179.501 455.235 171.257 449.905Z" fill="#DC663E"/>
24
+ <path d="M319.487 34.729C313.344 32.6273 307.076 32.7713 301.354 29.2363C305.894 25.0195 311.437 24.9068 316.374 24.0565C322.641 22.9771 325.638 19.8845 326.615 13.8286C327.371 9.13932 328.153 4.35375 330.635 0C334.387 2.00913 334.359 5.67433 334.587 8.43721C335.496 19.4758 341.419 24.6376 352.116 25.65C354.718 25.8962 357.95 25.9286 360.408 28.8067C356.621 32.4121 351.812 32.374 347.584 33.0672C340.733 34.1902 336.834 37.1421 335.881 44.4362C335.256 49.2141 334.52 54.2879 331.647 59.3292C327.096 53.8282 327.525 47.7025 325.886 42.3153C324.843 38.8878 323.975 35.8056 319.487 34.729Z" fill="#DC663E"/>
25
+ <path d="M344.428 316.747C348.029 317.802 348.273 320.222 348.28 322.72C348.299 329.987 348.154 337.257 348.322 344.521C348.431 349.249 346.306 351.17 341.739 350.831C337.931 350.548 334.962 351.277 335.056 356.112C335.112 358.984 333.092 359.624 330.632 359.656C327.989 359.691 326.25 358.498 326.386 355.869C326.618 351.37 324.1 350.552 320.462 350.792C315.416 351.124 313.58 348.596 313.731 343.74C313.941 336.964 313.998 330.169 313.752 323.396C313.572 318.433 315.475 316.307 320.501 316.456C328.246 316.685 336.001 316.589 344.428 316.747ZM334.798 342.644C337.909 342.691 340.19 341.543 339.968 338.084C339.697 333.849 341.512 329.334 338.533 325.448C338.178 324.985 337.21 324.965 336.513 324.797C324.885 322.006 321.527 324.9 321.842 336.526C322.101 346.101 329.147 341.578 334.798 342.644Z" fill="#DC663E"/>
26
+ <path d="M232.12 87.3238C228.163 81.4574 220.824 84.1446 216.138 79.6886C220.131 75.1272 227.141 77.5937 230.845 73.5262C234.435 69.5832 233.08 63.3106 236.726 58.5243C240.974 63.0517 239.647 69.7568 243.477 73.6277C247.184 77.3733 253.735 75.3902 260.224 80.9834C245.323 80.9241 238.897 88.1838 238.523 102.807C233.84 96.6895 234.053 91.8787 232.12 87.3238Z" fill="#DC663E"/>
27
+ <path d="M286.175 302.876C285.518 304.48 285.321 305.757 282.409 306.518C281.462 295.33 276.232 287.385 262.479 288.086C266.889 281.383 273.673 283.907 277.337 280.348C281.005 276.785 279.142 270.473 284.78 265.133C286.339 277.595 292.047 285.172 305.14 285.35C296.986 289.903 285.647 289.709 286.175 302.876Z" fill="#DC663E"/>
28
+ <path d="M528.042 241.323C528.72 231.893 535.445 235.863 539.734 235.377C544.495 234.838 544.843 238.541 544.962 242.215C545.285 252.207 543.666 253.592 533.873 252.821C525.866 252.19 528.592 246.335 528.042 241.323Z" fill="#DC663E"/>
29
+ <path d="M167.427 275.909C165.984 282.127 162.199 284.571 156.7 283.597C151.846 282.737 149.27 279.253 149.356 274.341C149.438 269.666 152.236 266.792 156.691 265.786C162.112 264.563 165.92 268.033 167.427 275.909Z" fill="#DC663E"/>
30
+ <path d="M417.765 62.3123C410.274 60.119 407.444 56.1251 409.15 51.0033C410.808 46.027 415.826 43.6475 420.893 45.4421C424.819 46.8325 426.905 49.8397 426.672 53.7754C426.381 58.6956 423.464 61.7286 417.765 62.3123Z" fill="#DC663E"/>
31
+ <path d="M405.721 265.64C407.651 260.852 409.372 256.582 411.168 252.344C412.199 249.913 413.87 247.964 416.725 249.1C419.635 250.258 418.405 252.74 417.67 254.716C414.799 262.436 411.879 270.138 408.856 277.8C407.736 280.638 405.96 283.46 402.396 281.811C398.606 280.058 401.402 277.265 402.159 274.993C403.154 272.008 404.403 269.109 405.721 265.64Z" fill="#DC663E"/>
32
+ <path d="M270.424 187.118C266.654 182.374 265.723 175.064 256.322 175.371C263.368 172.349 268.327 168.83 269.554 161.113C272.098 167.897 274.852 173.585 283.566 174.197C276.52 176.767 271.881 180.209 270.424 187.118Z" fill="#DC663E"/>
33
+ <path d="M306.987 382.374C308.058 387.15 308.088 391.219 303.485 393.474C299.289 395.53 295.361 394.867 292.557 391.033C289.76 387.211 289.937 382.847 293.571 379.973C298.167 376.339 302.995 376.855 306.987 382.374Z" fill="#DC663E"/>
34
+ <path d="M234.604 207.132C227.296 196.952 219.135 187.963 214.33 176.672C226.706 187.456 235.875 200.669 246.053 214.773C238.467 215.68 237.941 209.973 234.604 207.132Z" fill="#DC663E"/>
35
+ <path d="M427.344 277.049C420.829 271.03 428.628 269.586 430.825 265.763C429.316 262.028 421.767 260.559 425.781 253.97C431.68 255.024 435.616 259.511 440.131 262.844C443.029 264.983 441.898 267.548 439.303 269.35C435.546 271.958 431.691 274.427 427.344 277.049Z" fill="#DC663E"/>
36
+ <path d="M394.695 273.32C394.588 275.712 393.795 277.809 391.778 276.851C386.345 274.274 380.89 271.431 377.437 266.226C376.324 264.549 378.014 263.039 379.423 262.057C383.548 259.183 387.287 255.635 392.595 254.159C397.251 260.232 389.801 261.593 388.381 265.27C389.076 268.891 393.733 269.32 394.695 273.32Z" fill="#DC663E"/>
37
+ <path d="M510.493 263.929C510.903 255.418 516.918 258.214 520.748 258.492C526.835 258.933 524.144 264.241 524.601 267.603C525.228 272.223 522.24 272.91 518.387 273.338C511.275 274.127 509.289 270.927 510.493 263.929Z" fill="#DC663E"/>
38
+ <path d="M274.615 362.268C274.909 354.608 280.251 355.931 284.221 356.372C290.617 357.082 288.116 362.482 288.374 366.154C288.727 371.169 284.978 370.962 281.474 371.205C275.166 371.644 274.251 367.869 274.615 362.268Z" fill="#DC663E"/>
39
+ <path d="M366.808 310.636C365.802 303.025 369.37 301.266 375.66 301.696C382.106 302.137 381.007 306.678 381.075 310.595C381.123 313.289 379.832 315.445 376.862 315.418C373.052 315.383 368.277 317.215 366.808 310.636Z" fill="#DC663E"/>
40
+ <path d="M291.89 114.347C305.859 114.072 319.216 113.327 332.54 115.838C318.002 117.81 303.5 119.771 288.962 118.237C288.311 115.055 290.044 114.979 291.89 114.347Z" fill="#DC663E"/>
41
+ <path d="M254.91 220.281C258.63 223.066 259.87 226.337 257.755 229.972C255.929 233.11 252.938 234.781 249.175 233.306C245.497 231.863 244.001 228.847 245.061 225.17C246.376 220.607 249.44 218.392 254.91 220.281Z" fill="#DC663E"/>
42
+ <path d="M373.473 162.323C374.083 157.178 376.759 154.747 381.364 155.196C384.512 155.503 386.702 157.59 387.247 160.819C387.904 164.707 386.103 167.682 382.576 168.93C377.2 170.832 374.311 168.182 373.473 162.323Z" fill="#DC663E"/>
43
+ <path d="M208.567 159.07C212.799 161.191 214.169 164.317 212.803 168.221C211.537 171.84 208.533 173.496 204.814 172.809C200.938 172.093 199.024 169.108 199.525 165.415C200.154 160.784 202.947 158.109 208.567 159.07Z" fill="#DC663E"/>
44
+ <path d="M279.781 112.111C283.05 116.846 281.902 120.533 277.794 123.002C274.841 124.777 271.635 124.136 269.339 121.269C266.813 118.116 267.263 114.803 269.758 112.011C272.685 108.735 276.094 108.976 279.781 112.111Z" fill="#DC663E"/>
45
+ <path d="M395.58 213.755C401.452 216.588 402.016 220.773 399.204 225.396C397.306 228.515 394.105 229.085 390.95 227.076C387.431 224.836 386.303 221.558 387.957 217.639C389.248 214.58 391.84 213.493 395.58 213.755Z" fill="#DC663E"/>
46
+ <path d="M443.767 185.406C442.079 189.552 439.319 191.004 435.551 190.346C432.665 189.842 430.825 188.016 430.464 185.083C429.975 181.113 431.018 177.613 435.449 176.926C441.264 176.025 443.726 179.384 443.767 185.406Z" fill="#DC663E"/>
47
+ <path d="M164.002 119.029C159.573 119.661 159.408 124.028 156.39 126.7C154.967 121.755 151.499 119.49 146.858 117.661C150.254 114.005 155.773 113.491 156.132 107.589C159.096 111.348 160.956 114.559 164.972 115.817C167.13 116.493 165.76 118.007 164.002 119.029Z" fill="#DC663E"/>
48
+ <path d="M425.64 191.927C426.352 192.716 427.007 193.719 426.798 193.955C420.437 201.128 413.784 208.002 405.539 213.07C405.162 213.301 404.267 212.689 401.897 211.895C409.136 203.701 416.275 196.816 425.64 191.927Z" fill="#DC663E"/>
49
+ <path d="M352.38 119.008C351.524 119.969 351.049 120.626 350.413 120.888C346.697 122.416 343.176 122.201 340.636 118.787C338.998 116.586 339.524 114.125 341.226 112.068C343.684 109.099 347.018 109.6 349.938 110.711C353.515 112.072 354.143 115.076 352.38 119.008Z" fill="#DC663E"/>
50
+ <path d="M361.801 132.505C365.838 139.121 371.562 144.195 372.468 152.087C364.344 144.829 358.251 136.155 352.726 125.931C358.765 125.132 359.117 129.919 361.801 132.505Z" fill="#DC663E"/>
51
+ <path d="M456.755 416.67C453.093 417.932 451.906 420.932 450.089 424.234C447.442 420.916 445.094 417.825 440.761 415.815C444.779 413.188 447.365 410.317 449.652 405.374C451.114 410.829 455.098 412.742 456.755 416.67Z" fill="#DC663E"/>
52
+ <path d="M326.018 538.153C330.375 535.793 332.913 537.526 334.505 541.019C335.639 543.509 334.672 545.651 332.556 547.301C330.338 549.032 328.084 548.93 326.043 547.159C322.968 544.492 322.826 541.522 326.018 538.153Z" fill="#DC663E"/>
53
+ <path d="M352.263 274.75C352.296 279.279 350.195 280.913 346.423 280.715C343.518 280.563 342.221 278.748 341.881 276.138C341.559 273.674 341.714 271.048 344.509 270.199C348.094 269.11 351.163 269.852 352.263 274.75Z" fill="#DC663E"/>
54
+ <path d="M325.525 218.694C326.58 222.299 325.781 224.705 322.218 224.647C319.706 224.606 318.133 222.484 318.725 220.109C319.677 216.295 322.197 215.874 325.525 218.694Z" fill="#DC663E"/>
55
+ </svg>
@@ -1,56 +1,59 @@
1
1
  "use client";
2
- import { useEffect as e } from "react";
3
- import { jsx as t } from "react/jsx-runtime";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ import { useEffect as t } from "react";
4
4
  //#region src/components/ui/accessibility-improvements.tsx
5
- function n(t, n) {
6
- e(() => {
7
- if (!t) return;
8
- let e = (e) => {
5
+ function n(e, n) {
6
+ t(() => {
7
+ if (!e) return;
8
+ let t = (e) => {
9
9
  e.key === "Escape" && n();
10
10
  };
11
- document.addEventListener("keydown", e);
11
+ document.addEventListener("keydown", t);
12
12
  let r = document.querySelectorAll("button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])");
13
13
  return r.length > 0 && r[0].focus(), () => {
14
- document.removeEventListener("keydown", e);
14
+ document.removeEventListener("keydown", t);
15
15
  };
16
- }, [t, n]);
16
+ }, [e, n]);
17
17
  }
18
- function r(t, n, r) {
19
- e(() => {
20
- let e = (e) => {
18
+ function r(e, n, r, i) {
19
+ t(() => {
20
+ let t = e.current;
21
+ if (!t) return;
22
+ let a = (e) => {
21
23
  if (e.target && e.target.getAttribute("role") === "tab") {
22
- let i = n.findIndex((e) => e.id === t);
24
+ let t = r.findIndex((e) => e.id === n);
23
25
  switch (e.key) {
24
26
  case "ArrowRight":
25
27
  case "ArrowDown":
26
- e.preventDefault(), r(n[(i + 1) % n.length].id);
28
+ e.preventDefault(), i(r[(t + 1) % r.length].id);
27
29
  break;
28
30
  case "ArrowLeft":
29
31
  case "ArrowUp":
30
- e.preventDefault(), r(n[i === 0 ? n.length - 1 : i - 1].id);
32
+ e.preventDefault(), i(r[t === 0 ? r.length - 1 : t - 1].id);
31
33
  break;
32
34
  case "Home":
33
- e.preventDefault(), r(n[0].id);
35
+ e.preventDefault(), i(r[0].id);
34
36
  break;
35
37
  case "End":
36
- e.preventDefault(), r(n[n.length - 1].id);
38
+ e.preventDefault(), i(r[r.length - 1].id);
37
39
  break;
38
40
  }
39
41
  }
40
42
  };
41
- return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
43
+ return t.addEventListener("keydown", a), () => t.removeEventListener("keydown", a);
42
44
  }, [
43
- t,
45
+ e,
44
46
  n,
45
- r
47
+ r,
48
+ i
46
49
  ]);
47
50
  }
48
- function i({ message: e, priority: n = "polite" }) {
49
- return /* @__PURE__ */ t("div", {
51
+ function i({ message: t, priority: n = "polite" }) {
52
+ return /* @__PURE__ */ e("div", {
50
53
  "aria-live": n,
51
54
  "aria-atomic": "true",
52
55
  className: "sr-only",
53
- children: e
56
+ children: t
54
57
  });
55
58
  }
56
59
  function a(e, t) {
@@ -1,44 +1,54 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../lib/utils.js";
3
- import "react";
4
- import * as t from "@radix-ui/react-accordion";
5
- import { ChevronDownIcon as n } from "lucide-react";
6
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
3
+ import { Accordion as t } from "@base-ui/react/accordion";
4
+ import { ChevronDownIcon as n, ChevronUpIcon as r } from "lucide-react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
6
  //#region src/components/ui/accordion.tsx
8
- function a({ ...e }) {
9
- return /* @__PURE__ */ r(t.Root, {
7
+ function o({ className: n, ...r }) {
8
+ return /* @__PURE__ */ i(t.Root, {
10
9
  "data-slot": "accordion",
11
- ...e
10
+ className: e("flex w-full flex-col", n),
11
+ ...r
12
12
  });
13
13
  }
14
- function o({ className: n, ...i }) {
15
- return /* @__PURE__ */ r(t.Item, {
14
+ function s({ className: n, ...r }) {
15
+ return /* @__PURE__ */ i(t.Item, {
16
16
  "data-slot": "accordion-item",
17
- className: e("border-b last:border-b-0", n),
18
- ...i
17
+ className: e("not-last:border-b", n),
18
+ ...r
19
19
  });
20
20
  }
21
- function s({ className: a, children: o, ...s }) {
22
- return /* @__PURE__ */ r(t.Header, {
21
+ function c({ className: o, children: s, ...c }) {
22
+ return /* @__PURE__ */ i(t.Header, {
23
23
  className: "flex",
24
- children: /* @__PURE__ */ i(t.Trigger, {
24
+ children: /* @__PURE__ */ a(t.Trigger, {
25
25
  "data-slot": "accordion-trigger",
26
- className: e("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 cursor-pointer items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", a),
27
- ...s,
28
- children: [o, /* @__PURE__ */ r(n, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })]
26
+ className: e("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none cursor-pointer hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", o),
27
+ ...c,
28
+ children: [
29
+ s,
30
+ /* @__PURE__ */ i(n, {
31
+ "data-slot": "accordion-trigger-icon",
32
+ className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
33
+ }),
34
+ /* @__PURE__ */ i(r, {
35
+ "data-slot": "accordion-trigger-icon",
36
+ className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
37
+ })
38
+ ]
29
39
  })
30
40
  });
31
41
  }
32
- function c({ className: n, children: i, ...a }) {
33
- return /* @__PURE__ */ r(t.Content, {
42
+ function l({ className: n, children: r, ...a }) {
43
+ return /* @__PURE__ */ i(t.Panel, {
34
44
  "data-slot": "accordion-content",
35
- className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
45
+ className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
36
46
  ...a,
37
- children: /* @__PURE__ */ r("div", {
38
- className: e("pt-0 pb-4", n),
39
- children: i
47
+ children: /* @__PURE__ */ i("div", {
48
+ className: e("h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", n),
49
+ children: r
40
50
  })
41
51
  });
42
52
  }
43
53
  //#endregion
44
- export { a as Accordion, c as AccordionContent, o as AccordionItem, s as AccordionTrigger };
54
+ export { o as Accordion, l as AccordionContent, s as AccordionItem, c as AccordionTrigger };
@@ -1,61 +1,95 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../lib/utils.js";
3
- import { buttonVariants as t } from "./button.js";
4
- import * as n from "react";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
- import * as a from "@radix-ui/react-alert-dialog";
3
+ import { Button as t } from "./button.js";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import "react";
6
+ import { AlertDialog as i } from "@base-ui/react/alert-dialog";
7
7
  //#region src/components/ui/alert-dialog.tsx
8
- var o = a.Root, s = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(a.Trigger, {
9
- className: e("cursor-pointer", t),
10
- ...n,
11
- ref: i
12
- }));
13
- s.displayName = a.Trigger.displayName;
14
- var c = a.Portal, l = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(a.Overlay, {
15
- className: e("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", t),
16
- ...n,
17
- ref: i
18
- }));
19
- l.displayName = a.Overlay.displayName;
20
- var u = n.forwardRef(({ className: t, ...n }, o) => /* @__PURE__ */ i(c, { children: [/* @__PURE__ */ r(l, {}), /* @__PURE__ */ r(a.Content, {
21
- ref: o,
22
- className: e("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg", t),
23
- ...n
24
- })] }));
25
- u.displayName = a.Content.displayName;
26
- var d = ({ className: t, ...n }) => /* @__PURE__ */ r("div", {
27
- className: e("flex flex-col space-y-2 text-center sm:text-left", t),
28
- ...n
29
- });
30
- d.displayName = "AlertDialogHeader";
31
- var f = ({ className: t, ...n }) => /* @__PURE__ */ r("div", {
32
- className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
33
- ...n
34
- });
35
- f.displayName = "AlertDialogFooter";
36
- var p = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(a.Title, {
37
- ref: i,
38
- className: e("text-lg font-semibold", t),
39
- ...n
40
- }));
41
- p.displayName = a.Title.displayName;
42
- var m = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(a.Description, {
43
- ref: i,
44
- className: e("text-sm text-muted-foreground", t),
45
- ...n
46
- }));
47
- m.displayName = a.Description.displayName;
48
- var h = n.forwardRef(({ className: n, ...i }, o) => /* @__PURE__ */ r(a.Action, {
49
- ref: o,
50
- className: e(t(), n),
51
- ...i
52
- }));
53
- h.displayName = a.Action.displayName;
54
- var g = n.forwardRef(({ className: n, ...i }, o) => /* @__PURE__ */ r(a.Cancel, {
55
- ref: o,
56
- className: e(t({ variant: "outline" }), "mt-2 sm:mt-0", n),
57
- ...i
58
- }));
59
- g.displayName = a.Cancel.displayName;
8
+ function a({ ...e }) {
9
+ return /* @__PURE__ */ n(i.Root, {
10
+ "data-slot": "alert-dialog",
11
+ ...e
12
+ });
13
+ }
14
+ function o({ ...e }) {
15
+ return /* @__PURE__ */ n(i.Trigger, {
16
+ "data-slot": "alert-dialog-trigger",
17
+ ...e
18
+ });
19
+ }
20
+ function s({ ...e }) {
21
+ return /* @__PURE__ */ n(i.Portal, {
22
+ "data-slot": "alert-dialog-portal",
23
+ ...e
24
+ });
25
+ }
26
+ function c({ className: t, ...r }) {
27
+ return /* @__PURE__ */ n(i.Backdrop, {
28
+ "data-slot": "alert-dialog-overlay",
29
+ className: e("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", t),
30
+ ...r
31
+ });
32
+ }
33
+ function l({ className: t, size: a = "default", ...o }) {
34
+ return /* @__PURE__ */ r(s, { children: [/* @__PURE__ */ n(c, {}), /* @__PURE__ */ n(i.Popup, {
35
+ "data-slot": "alert-dialog-content",
36
+ "data-size": a,
37
+ className: e("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", t),
38
+ ...o
39
+ })] });
40
+ }
41
+ function u({ className: t, ...r }) {
42
+ return /* @__PURE__ */ n("div", {
43
+ "data-slot": "alert-dialog-header",
44
+ className: e("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", t),
45
+ ...r
46
+ });
47
+ }
48
+ function d({ className: t, ...r }) {
49
+ return /* @__PURE__ */ n("div", {
50
+ "data-slot": "alert-dialog-footer",
51
+ className: e("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", t),
52
+ ...r
53
+ });
54
+ }
55
+ function f({ className: t, ...r }) {
56
+ return /* @__PURE__ */ n("div", {
57
+ "data-slot": "alert-dialog-media",
58
+ className: e("mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", t),
59
+ ...r
60
+ });
61
+ }
62
+ function p({ className: t, ...r }) {
63
+ return /* @__PURE__ */ n(i.Title, {
64
+ "data-slot": "alert-dialog-title",
65
+ className: e("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", t),
66
+ ...r
67
+ });
68
+ }
69
+ function m({ className: t, ...r }) {
70
+ return /* @__PURE__ */ n(i.Description, {
71
+ "data-slot": "alert-dialog-description",
72
+ className: e("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", t),
73
+ ...r
74
+ });
75
+ }
76
+ function h({ className: r, ...i }) {
77
+ return /* @__PURE__ */ n(t, {
78
+ "data-slot": "alert-dialog-action",
79
+ className: e(r),
80
+ ...i
81
+ });
82
+ }
83
+ function g({ className: r, variant: a = "outline", size: o = "default", ...s }) {
84
+ return /* @__PURE__ */ n(i.Close, {
85
+ "data-slot": "alert-dialog-cancel",
86
+ className: e(r),
87
+ render: /* @__PURE__ */ n(t, {
88
+ variant: a,
89
+ size: o
90
+ }),
91
+ ...s
92
+ });
93
+ }
60
94
  //#endregion
61
- export { o as AlertDialog, h as AlertDialogAction, g as AlertDialogCancel, u as AlertDialogContent, m as AlertDialogDescription, f as AlertDialogFooter, d as AlertDialogHeader, l as AlertDialogOverlay, c as AlertDialogPortal, p as AlertDialogTitle, s as AlertDialogTrigger };
95
+ export { a as AlertDialog, h as AlertDialogAction, g as AlertDialogCancel, l as AlertDialogContent, m as AlertDialogDescription, d as AlertDialogFooter, u as AlertDialogHeader, f as AlertDialogMedia, c as AlertDialogOverlay, s as AlertDialogPortal, p as AlertDialogTitle, o as AlertDialogTrigger };