xertica-ui 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +19 -11
  3. package/bin/generate-tokens.ts +25 -9
  4. package/components/assistant/xertica-assistant/xertica-assistant.tsx +1 -1
  5. package/components/ui/button/button.test.tsx +2 -2
  6. package/components/ui/button/button.tsx +6 -6
  7. package/components/ui/card/card.tsx +14 -2
  8. package/components/ui/input/input.tsx +1 -1
  9. package/components/ui/input-otp/input-otp.tsx +1 -1
  10. package/components/ui/search/search.tsx +1 -1
  11. package/components/ui/select/select.tsx +2 -2
  12. package/components/ui/switch/switch.tsx +1 -1
  13. package/components/ui/textarea/textarea.tsx +1 -1
  14. package/contexts/BrandColorsContext.tsx +50 -2
  15. package/contexts/theme-data.ts +100 -3
  16. package/dist/AssistantChart-BFBJXVcm.js +3383 -0
  17. package/dist/AssistantChart-BTnE94FR.cjs +3551 -0
  18. package/dist/AssistantChart-BvccsQMx.cjs +3551 -0
  19. package/dist/AssistantChart-CkskcBVD.js +3383 -0
  20. package/dist/AssistantChart-CrPkO9ip.js +3383 -0
  21. package/dist/AssistantChart-DKz2O1R8.cjs +3551 -0
  22. package/dist/AssistantChart-DYL6UEvo.cjs +3551 -0
  23. package/dist/AssistantChart-keo-ogKi.js +3383 -0
  24. package/dist/AudioPlayer-AoU5MTiM.cjs +1282 -0
  25. package/dist/AudioPlayer-Bx1vrblm.js +1278 -0
  26. package/dist/AudioPlayer-D0-I6J3J.cjs +1282 -0
  27. package/dist/AudioPlayer-DIWX_Yg7.cjs +1282 -0
  28. package/dist/AudioPlayer-DrWJnS7c.js +1278 -0
  29. package/dist/AudioPlayer-_P-Z7pAK.js +1278 -0
  30. package/dist/BrandColorsContext-B25Bpr3b.cjs +819 -0
  31. package/dist/BrandColorsContext-BCieATdW.js +812 -0
  32. package/dist/BrandColorsContext-DP0DXAXS.js +824 -0
  33. package/dist/BrandColorsContext-DjpC9wR_.cjs +798 -0
  34. package/dist/BrandColorsContext-MpXFhte7.cjs +831 -0
  35. package/dist/BrandColorsContext-V3tOc-Zw.js +791 -0
  36. package/dist/CodeBlock-CK4rO6lM.js +221 -0
  37. package/dist/CodeBlock-CKXamfVd.cjs +223 -0
  38. package/dist/CodeBlock-CVmE7isS.cjs +223 -0
  39. package/dist/CodeBlock-D7i5-cMv.js +221 -0
  40. package/dist/CodeBlock-Dg56j2ut.cjs +223 -0
  41. package/dist/CodeBlock-Dt6nUQoo.js +221 -0
  42. package/dist/CustomTooltipContent-Bxynuq7T.js +33 -0
  43. package/dist/CustomTooltipContent-BzjOSA0P.cjs +54 -0
  44. package/dist/CustomTooltipContent-C-ZeCNsf.js +33 -0
  45. package/dist/CustomTooltipContent-CON_QrXm.cjs +54 -0
  46. package/dist/CustomTooltipContent-UR_n2QfW.js +33 -0
  47. package/dist/CustomTooltipContent-v1SXjoFn.cjs +54 -0
  48. package/dist/FeatureCard-4n_8a63v.cjs +497 -0
  49. package/dist/FeatureCard-BLiAWT3w.js +485 -0
  50. package/dist/FeatureCard-BXRW97Ef.cjs +497 -0
  51. package/dist/FeatureCard-CDgLlWE2.js +485 -0
  52. package/dist/FeatureCard-CgQ8lq-I.cjs +497 -0
  53. package/dist/FeatureCard-Cp8cVC6T.cjs +497 -0
  54. package/dist/FeatureCard-D0MwrTRP.js +485 -0
  55. package/dist/FeatureCard-uE5i0in_.js +485 -0
  56. package/dist/ImageWithFallback-BOh1FM3I.js +98 -0
  57. package/dist/ImageWithFallback-BQO7952C.js +98 -0
  58. package/dist/ImageWithFallback-BkMXHCvV.cjs +122 -0
  59. package/dist/ImageWithFallback-C72nwszA.cjs +122 -0
  60. package/dist/ImageWithFallback-CCUMDuEC.cjs +122 -0
  61. package/dist/ImageWithFallback-DQD5TTlY.js +98 -0
  62. package/dist/LanguageSelector-1XhM7R1i.cjs +48 -0
  63. package/dist/LanguageSelector-B3ZVNc55.js +46 -0
  64. package/dist/LanguageSelector-Cj6zl0CM.js +46 -0
  65. package/dist/LanguageSelector-DK1zD4VH.cjs +48 -0
  66. package/dist/LanguageSelector-DseCAa0p.cjs +48 -0
  67. package/dist/LanguageSelector-Du09anfM.js +46 -0
  68. package/dist/LanguageSelector-PZHlFfEs.cjs +48 -0
  69. package/dist/LanguageSelector-SB-NJSmx.js +46 -0
  70. package/dist/PasswordStrengthMeter-B3S6i_k4.cjs +179 -0
  71. package/dist/PasswordStrengthMeter-B8ky1nJI.js +173 -0
  72. package/dist/PasswordStrengthMeter-C5VEopH-.cjs +179 -0
  73. package/dist/PasswordStrengthMeter-CIm7_jNT.js +173 -0
  74. package/dist/PasswordStrengthMeter-DKSAbQzu.js +173 -0
  75. package/dist/PasswordStrengthMeter-DxLu54p-.cjs +179 -0
  76. package/dist/PasswordStrengthMeter-k-e9Pole.cjs +179 -0
  77. package/dist/PasswordStrengthMeter-pAi2viq5.js +173 -0
  78. package/dist/ThemeToggle-4pQbVkpK.js +215 -0
  79. package/dist/ThemeToggle-B6rIVLvC.cjs +219 -0
  80. package/dist/ThemeToggle-BUOTps5l.cjs +219 -0
  81. package/dist/ThemeToggle-CO5mPl6e.js +215 -0
  82. package/dist/ThemeToggle-DbZQ0JSV.cjs +219 -0
  83. package/dist/ThemeToggle-vLXEq2TS.js +215 -0
  84. package/dist/VerifyEmailPage-BTjI2c9n.js +2954 -0
  85. package/dist/VerifyEmailPage-CJGfDSOx.js +2954 -0
  86. package/dist/VerifyEmailPage-DOlZUNc0.cjs +2963 -0
  87. package/dist/VerifyEmailPage-DQPRl_RJ.js +2954 -0
  88. package/dist/VerifyEmailPage-DrdqMbLC.cjs +2963 -0
  89. package/dist/VerifyEmailPage-hyDfeCRa.cjs +2963 -0
  90. package/dist/VerifyEmailPage-kKSXl8vu.cjs +2963 -0
  91. package/dist/VerifyEmailPage-w4N-bDhU.js +2954 -0
  92. package/dist/XerticaOrbe-B9tegV1n.js +1925 -0
  93. package/dist/XerticaOrbe-BQ_NjwPS.cjs +1927 -0
  94. package/dist/XerticaOrbe-BdUX171Q.cjs +1927 -0
  95. package/dist/XerticaOrbe-BdlKXRHU.cjs +1927 -0
  96. package/dist/XerticaOrbe-CByPAFE5.js +1925 -0
  97. package/dist/XerticaOrbe-Ccu9eFMu.js +1925 -0
  98. package/dist/XerticaProvider-BVid1oqn.cjs +46 -0
  99. package/dist/XerticaProvider-Bz_YfNY4.js +44 -0
  100. package/dist/XerticaProvider-CtvYfRbZ.cjs +46 -0
  101. package/dist/XerticaProvider-DMiyExQS.js +44 -0
  102. package/dist/XerticaProvider-DP2lzKip.cjs +46 -0
  103. package/dist/XerticaProvider-De79hhgp.js +44 -0
  104. package/dist/XerticaProvider-Dkk1Vbsy.js +44 -0
  105. package/dist/XerticaProvider-EdzH9Nrw.cjs +46 -0
  106. package/dist/alert-dialog-9XYAn5z5.js +819 -0
  107. package/dist/alert-dialog-B281hud0.cjs +872 -0
  108. package/dist/alert-dialog-BVWbrcrw.cjs +872 -0
  109. package/dist/alert-dialog-B_Ko1xpu.js +819 -0
  110. package/dist/alert-dialog-CIxE8T-J.cjs +872 -0
  111. package/dist/alert-dialog-DW-_iPuf.js +819 -0
  112. package/dist/assistant.cjs.js +2 -2
  113. package/dist/assistant.es.js +2 -2
  114. package/dist/avatar-BJwIMbZ_.js +54 -0
  115. package/dist/avatar-C4Zh5fAJ.cjs +77 -0
  116. package/dist/avatar-CTEUKZUT.js +54 -0
  117. package/dist/avatar-D1bZhlhL.cjs +77 -0
  118. package/dist/avatar-DKIxHeKG.cjs +77 -0
  119. package/dist/avatar-v16eZC8p.js +54 -0
  120. package/dist/blocks.cjs.js +2 -2
  121. package/dist/blocks.es.js +2 -2
  122. package/dist/brand.cjs.js +4 -4
  123. package/dist/brand.es.js +4 -4
  124. package/dist/breadcrumb-B1mUiaWB.cjs +98 -0
  125. package/dist/breadcrumb-BIRgmem-.js +90 -0
  126. package/dist/breadcrumb-BSng-oUf.cjs +98 -0
  127. package/dist/breadcrumb-CES7furU.js +90 -0
  128. package/dist/breadcrumb-CP275kbF.cjs +98 -0
  129. package/dist/breadcrumb-D7hr1EvJ.js +90 -0
  130. package/dist/button-BYtQygX5.cjs +85 -0
  131. package/dist/button-BnAW-a_w.js +62 -0
  132. package/dist/button-CUPDQews.js +62 -0
  133. package/dist/button-DFa-rtPy.js +62 -0
  134. package/dist/button-DV1G6XrI.cjs +85 -0
  135. package/dist/button-Kd9Fj53S.cjs +85 -0
  136. package/dist/cli.js +94 -10
  137. package/dist/components/ui/card/card.d.ts +11 -1
  138. package/dist/contexts/theme-data.d.ts +15 -1
  139. package/dist/dropdown-menu-B9wTZ0uX.cjs +225 -0
  140. package/dist/dropdown-menu-BeBtZOrs.cjs +225 -0
  141. package/dist/dropdown-menu-D7mRDGis.js +190 -0
  142. package/dist/dropdown-menu-D8ZmqHB7.js +190 -0
  143. package/dist/dropdown-menu-_AWBeOts.cjs +225 -0
  144. package/dist/dropdown-menu-qGzLO_HO.js +190 -0
  145. package/dist/hooks.cjs.js +1 -1
  146. package/dist/hooks.es.js +1 -1
  147. package/dist/index.cjs.js +24 -24
  148. package/dist/index.es.js +24 -24
  149. package/dist/input-B53E6K8G.js +65 -0
  150. package/dist/input-B7Q7vcoG.cjs +91 -0
  151. package/dist/input-BysqLMK1.js +65 -0
  152. package/dist/input-CStdFsaH.cjs +91 -0
  153. package/dist/input-CXYth6nW.cjs +91 -0
  154. package/dist/input-CX_fWE2D.cjs +91 -0
  155. package/dist/input-CitUVnEn.js +65 -0
  156. package/dist/input-wkBYTp-B.js +65 -0
  157. package/dist/layout.cjs.js +1 -1
  158. package/dist/layout.es.js +1 -1
  159. package/dist/media.cjs.js +1 -1
  160. package/dist/media.es.js +1 -1
  161. package/dist/pages.cjs.js +1 -1
  162. package/dist/pages.es.js +1 -1
  163. package/dist/rich-text-editor-BHiRUzWZ.js +2894 -0
  164. package/dist/rich-text-editor-BWMRUMJ2.js +2894 -0
  165. package/dist/rich-text-editor-BoE6Ks5x.cjs +2968 -0
  166. package/dist/rich-text-editor-BzuEwR_X.js +2894 -0
  167. package/dist/rich-text-editor-CcopGbQ-.js +2894 -0
  168. package/dist/rich-text-editor-CmxSRJIi.cjs +2968 -0
  169. package/dist/rich-text-editor-DyYAu28v.cjs +2968 -0
  170. package/dist/rich-text-editor-JS_eMQCC.cjs +2968 -0
  171. package/dist/select-BNfFJwYp.js +130 -0
  172. package/dist/select-CN8IDjGB.js +130 -0
  173. package/dist/select-CwRzQHA7.cjs +161 -0
  174. package/dist/select-CwgD3nMD.js +130 -0
  175. package/dist/select-DEHUm_AC.cjs +161 -0
  176. package/dist/select-DJDgpVm3.cjs +161 -0
  177. package/dist/select-DSLWQLmo.cjs +161 -0
  178. package/dist/select-YFx0wCYT.js +130 -0
  179. package/dist/sidebar-BF7JEL7U.js +1151 -0
  180. package/dist/sidebar-Bjr2doX5.cjs +1154 -0
  181. package/dist/sidebar-CMrNCmhb.cjs +1154 -0
  182. package/dist/sidebar-CO9x8AVn.cjs +1154 -0
  183. package/dist/sidebar-Cn_KB4c6.js +1151 -0
  184. package/dist/sidebar-Db_C30ph.cjs +1154 -0
  185. package/dist/sidebar-miPHsRz4.js +1151 -0
  186. package/dist/sidebar-pZF8mLLu.js +1151 -0
  187. package/dist/skeleton-BX2XTjMO.cjs +87 -0
  188. package/dist/skeleton-BoLK0iV7.js +78 -0
  189. package/dist/skeleton-Bysq8yeB.js +79 -0
  190. package/dist/skeleton-C7nspYnC.cjs +87 -0
  191. package/dist/skeleton-DL4V5Vub.cjs +87 -0
  192. package/dist/skeleton-DSMhdqp1.js +78 -0
  193. package/dist/skeleton-DhJswvTW.cjs +88 -0
  194. package/dist/skeleton-DicUfozA.js +78 -0
  195. package/dist/slider-77T_Eqw4.js +56 -0
  196. package/dist/slider-B6puMLXS.cjs +78 -0
  197. package/dist/slider-B785N7lZ.js +56 -0
  198. package/dist/slider-C6yssKyZ.cjs +78 -0
  199. package/dist/slider-CKZO9gVh.cjs +78 -0
  200. package/dist/slider-Cn-ImSze.js +56 -0
  201. package/dist/tooltip-BiJVGob3.cjs +72 -0
  202. package/dist/tooltip-D2OPn-1v.cjs +72 -0
  203. package/dist/tooltip-DlCHQuh1.js +48 -0
  204. package/dist/tooltip-fQ2Va0G8.cjs +72 -0
  205. package/dist/tooltip-oAw00FX2.js +48 -0
  206. package/dist/tooltip-u147L0wD.js +48 -0
  207. package/dist/ui.cjs.js +13 -13
  208. package/dist/ui.es.js +13 -13
  209. package/dist/xertica-assistant-C2A0R94j.js +2173 -0
  210. package/dist/xertica-assistant-CSUprvTR.js +2173 -0
  211. package/dist/xertica-assistant-Caubm0HR.js +2173 -0
  212. package/dist/xertica-assistant-DEexPM2u.cjs +2180 -0
  213. package/dist/xertica-assistant-Dh1dmEx3.cjs +2180 -0
  214. package/dist/xertica-assistant-GGcyHEZG.cjs +2180 -0
  215. package/dist/xertica-assistant-USefPe2L.js +2173 -0
  216. package/dist/xertica-assistant-cwSHFwfv.cjs +2180 -0
  217. package/dist/xertica-ui.css +1 -1
  218. package/package.json +3 -2
  219. package/styles/xertica/base.css +38 -0
  220. package/styles/xertica/tokens.css +9 -0
  221. package/templates/src/app/App.tsx +5 -1
  222. package/templates/src/features/home/ui/HomeContent.tsx +12 -13
  223. package/templates/src/features/template/ui/TemplateContent.tsx +569 -26
  224. package/templates/src/locales/en/pages/templates.json +112 -4
  225. package/templates/src/locales/es/pages/templates.json +112 -4
  226. package/templates/src/locales/pt-BR/pages/templates.json +112 -4
  227. package/templates/src/styles/xertica/tokens.css +9 -0
  228. package/templates/vite.config.ts +25 -0
@@ -2,8 +2,116 @@
2
2
  "breadcrumb": "Template Page",
3
3
  "title": "Template Page",
4
4
  "subtitle": "Starting point for your own pages",
5
- "exampleTitle": "Example",
6
- "exampleInputLabel": "Name",
7
- "exampleInputPlaceholder": "Type something...",
8
- "exampleButton": "Submit"
5
+ "sections": {
6
+ "overview": "Overview",
7
+ "buttons": "Buttons",
8
+ "badges": "Badges",
9
+ "alerts": "Alerts",
10
+ "forms": "Form Elements",
11
+ "data": "Data Table",
12
+ "dialogs": "Dialogs",
13
+ "overlays": "Overlays & Feedback",
14
+ "accordion": "Accordion"
15
+ },
16
+ "overview": {
17
+ "activeUsers": "Active Users",
18
+ "revenue": "Revenue",
19
+ "engagement": "Engagement"
20
+ },
21
+ "buttons": {
22
+ "title": "Buttons",
23
+ "description": "All button variants, sizes, and states",
24
+ "variants": "Variants",
25
+ "sizes": "Sizes",
26
+ "withIcons": "Icons & States",
27
+ "sendEmail": "Send Email",
28
+ "loading": "Loading",
29
+ "disabled": "Disabled"
30
+ },
31
+ "badges": {
32
+ "title": "Badges",
33
+ "description": "Status and label badges"
34
+ },
35
+ "alerts": {
36
+ "infoTitle": "Information",
37
+ "infoDescription": "This is an informational message for the user.",
38
+ "successTitle": "Success",
39
+ "successDescription": "The operation completed successfully.",
40
+ "warningTitle": "Warning",
41
+ "warningDescription": "Please review this before continuing.",
42
+ "errorTitle": "Error",
43
+ "errorDescription": "Something went wrong. Please try again."
44
+ },
45
+ "forms": {
46
+ "title": "Example Form",
47
+ "description": "Common form controls working together",
48
+ "name": "Name",
49
+ "namePlaceholder": "Enter your name",
50
+ "role": "Role",
51
+ "rolePlaceholder": "Select a role",
52
+ "roles": {
53
+ "developer": "Developer",
54
+ "designer": "Designer",
55
+ "manager": "Manager"
56
+ },
57
+ "bio": "Bio",
58
+ "bioPlaceholder": "Tell us a bit about yourself...",
59
+ "newsletter": "Subscribe to the newsletter",
60
+ "pushNotifications": "Push notifications",
61
+ "accountType": "Account type",
62
+ "accountPersonal": "Personal",
63
+ "accountBusiness": "Business",
64
+ "cancel": "Cancel",
65
+ "submit": "Submit",
66
+ "submitSuccess": "Form submitted successfully"
67
+ },
68
+ "data": {
69
+ "title": "Team Members",
70
+ "description": "Filterable data table example",
71
+ "searchPlaceholder": "Search by name or email...",
72
+ "columns": {
73
+ "name": "Name",
74
+ "email": "Email",
75
+ "status": "Status"
76
+ },
77
+ "status": {
78
+ "active": "Active",
79
+ "invited": "Invited",
80
+ "inactive": "Inactive"
81
+ }
82
+ },
83
+ "dialogs": {
84
+ "dialogTitle": "Dialog",
85
+ "dialogDescription": "A modal dialog for focused tasks",
86
+ "editProfile": "Edit Profile",
87
+ "editProfileDescription": "Make changes to your profile here.",
88
+ "name": "Name",
89
+ "update": "Save changes",
90
+ "alertDialogTitle": "Alert Dialog",
91
+ "alertDialogDescription": "Confirmation for destructive actions",
92
+ "deleteAccount": "Delete Account",
93
+ "areYouSure": "Are you absolutely sure?",
94
+ "deleteWarning": "This action cannot be undone. This will permanently delete the account.",
95
+ "cancel": "Cancel",
96
+ "continue": "Continue"
97
+ },
98
+ "overlays": {
99
+ "title": "Overlays & Feedback",
100
+ "description": "Tooltips, avatars, progress, and sliders",
101
+ "avatarLabel": "User avatar",
102
+ "tooltipLabel": "Like",
103
+ "tooltipContent": "Add to favorites",
104
+ "progressLabel": "Upload progress",
105
+ "sliderLabel": "Volume"
106
+ },
107
+ "accordion": {
108
+ "title": "Frequently Asked Questions",
109
+ "description": "Collapsible content sections",
110
+ "q1": "What is xertica-ui?",
111
+ "a1": "xertica-ui is an enterprise React design system built on Tailwind CSS and Radix UI.",
112
+ "q2": "Can I customize the theme?",
113
+ "a2": "Yes, colors and tokens can be customized in src/styles/xertica/tokens.css.",
114
+ "q3": "Does it support multiple languages?",
115
+ "a3": "Yes, every component supports i18n out of the box through react-i18next."
116
+ }
9
117
  }
@@ -2,8 +2,116 @@
2
2
  "breadcrumb": "Página de Plantilla",
3
3
  "title": "Página de Plantilla",
4
4
  "subtitle": "Punto de partida para tus propias páginas",
5
- "exampleTitle": "Ejemplo",
6
- "exampleInputLabel": "Nombre",
7
- "exampleInputPlaceholder": "Escribe algo...",
8
- "exampleButton": "Enviar"
5
+ "sections": {
6
+ "overview": "Resumen",
7
+ "buttons": "Botones",
8
+ "badges": "Badges",
9
+ "alerts": "Alertas",
10
+ "forms": "Elementos de Formulario",
11
+ "data": "Tabla de Datos",
12
+ "dialogs": "Diálogos",
13
+ "overlays": "Overlays & Feedback",
14
+ "accordion": "Acordeón"
15
+ },
16
+ "overview": {
17
+ "activeUsers": "Usuarios Activos",
18
+ "revenue": "Ingresos",
19
+ "engagement": "Interacción"
20
+ },
21
+ "buttons": {
22
+ "title": "Botones",
23
+ "description": "Todas las variantes, tamaños y estados de botón",
24
+ "variants": "Variantes",
25
+ "sizes": "Tamaños",
26
+ "withIcons": "Iconos & Estados",
27
+ "sendEmail": "Enviar Correo",
28
+ "loading": "Cargando",
29
+ "disabled": "Deshabilitado"
30
+ },
31
+ "badges": {
32
+ "title": "Badges",
33
+ "description": "Badges de estado y etiquetas"
34
+ },
35
+ "alerts": {
36
+ "infoTitle": "Información",
37
+ "infoDescription": "Este es un mensaje informativo para el usuario.",
38
+ "successTitle": "Éxito",
39
+ "successDescription": "La operación se completó con éxito.",
40
+ "warningTitle": "Advertencia",
41
+ "warningDescription": "Revisa esto antes de continuar.",
42
+ "errorTitle": "Error",
43
+ "errorDescription": "Algo salió mal. Inténtalo de nuevo."
44
+ },
45
+ "forms": {
46
+ "title": "Formulario de Ejemplo",
47
+ "description": "Controles de formulario comunes funcionando juntos",
48
+ "name": "Nombre",
49
+ "namePlaceholder": "Escribe tu nombre",
50
+ "role": "Cargo",
51
+ "rolePlaceholder": "Selecciona un cargo",
52
+ "roles": {
53
+ "developer": "Desarrollador(a)",
54
+ "designer": "Diseñador(a)",
55
+ "manager": "Gerente"
56
+ },
57
+ "bio": "Bio",
58
+ "bioPlaceholder": "Cuéntanos un poco sobre ti...",
59
+ "newsletter": "Suscribirse al boletín",
60
+ "pushNotifications": "Notificaciones push",
61
+ "accountType": "Tipo de cuenta",
62
+ "accountPersonal": "Personal",
63
+ "accountBusiness": "Empresarial",
64
+ "cancel": "Cancelar",
65
+ "submit": "Enviar",
66
+ "submitSuccess": "Formulario enviado con éxito"
67
+ },
68
+ "data": {
69
+ "title": "Miembros del Equipo",
70
+ "description": "Ejemplo de tabla de datos filtrable",
71
+ "searchPlaceholder": "Buscar por nombre o correo...",
72
+ "columns": {
73
+ "name": "Nombre",
74
+ "email": "Correo",
75
+ "status": "Estado"
76
+ },
77
+ "status": {
78
+ "active": "Activo",
79
+ "invited": "Invitado",
80
+ "inactive": "Inactivo"
81
+ }
82
+ },
83
+ "dialogs": {
84
+ "dialogTitle": "Diálogo",
85
+ "dialogDescription": "Un diálogo modal para tareas enfocadas",
86
+ "editProfile": "Editar Perfil",
87
+ "editProfileDescription": "Realiza cambios en tu perfil aquí.",
88
+ "name": "Nombre",
89
+ "update": "Guardar cambios",
90
+ "alertDialogTitle": "Diálogo de Alerta",
91
+ "alertDialogDescription": "Confirmación para acciones destructivas",
92
+ "deleteAccount": "Eliminar Cuenta",
93
+ "areYouSure": "¿Estás completamente seguro?",
94
+ "deleteWarning": "Esta acción no se puede deshacer. Esto eliminará permanentemente la cuenta.",
95
+ "cancel": "Cancelar",
96
+ "continue": "Continuar"
97
+ },
98
+ "overlays": {
99
+ "title": "Overlays & Feedback",
100
+ "description": "Tooltips, avatares, progreso y sliders",
101
+ "avatarLabel": "Avatar del usuario",
102
+ "tooltipLabel": "Me gusta",
103
+ "tooltipContent": "Agregar a favoritos",
104
+ "progressLabel": "Progreso de carga",
105
+ "sliderLabel": "Volumen"
106
+ },
107
+ "accordion": {
108
+ "title": "Preguntas Frecuentes",
109
+ "description": "Secciones de contenido colapsables",
110
+ "q1": "¿Qué es xertica-ui?",
111
+ "a1": "xertica-ui es un design system empresarial en React construido sobre Tailwind CSS y Radix UI.",
112
+ "q2": "¿Puedo personalizar el tema?",
113
+ "a2": "Sí, los colores y tokens se pueden personalizar en src/styles/xertica/tokens.css.",
114
+ "q3": "¿Soporta múltiples idiomas?",
115
+ "a3": "Sí, cada componente ya viene con soporte i18n a través de react-i18next."
116
+ }
9
117
  }
@@ -2,8 +2,116 @@
2
2
  "breadcrumb": "Página de Template",
3
3
  "title": "Página de Template",
4
4
  "subtitle": "Ponto de partida para suas próprias páginas",
5
- "exampleTitle": "Exemplo",
6
- "exampleInputLabel": "Nome",
7
- "exampleInputPlaceholder": "Digite algo...",
8
- "exampleButton": "Enviar"
5
+ "sections": {
6
+ "overview": "Visão Geral",
7
+ "buttons": "Botões",
8
+ "badges": "Badges",
9
+ "alerts": "Alertas",
10
+ "forms": "Elementos de Formulário",
11
+ "data": "Tabela de Dados",
12
+ "dialogs": "Diálogos",
13
+ "overlays": "Overlays & Feedback",
14
+ "accordion": "Acordeão"
15
+ },
16
+ "overview": {
17
+ "activeUsers": "Usuários Ativos",
18
+ "revenue": "Receita",
19
+ "engagement": "Engajamento"
20
+ },
21
+ "buttons": {
22
+ "title": "Botões",
23
+ "description": "Todas as variantes, tamanhos e estados de botão",
24
+ "variants": "Variantes",
25
+ "sizes": "Tamanhos",
26
+ "withIcons": "Ícones & Estados",
27
+ "sendEmail": "Enviar Email",
28
+ "loading": "Carregando",
29
+ "disabled": "Desabilitado"
30
+ },
31
+ "badges": {
32
+ "title": "Badges",
33
+ "description": "Badges de status e rótulos"
34
+ },
35
+ "alerts": {
36
+ "infoTitle": "Informação",
37
+ "infoDescription": "Esta é uma mensagem informativa para o usuário.",
38
+ "successTitle": "Sucesso",
39
+ "successDescription": "A operação foi concluída com sucesso.",
40
+ "warningTitle": "Atenção",
41
+ "warningDescription": "Revise isso antes de continuar.",
42
+ "errorTitle": "Erro",
43
+ "errorDescription": "Algo deu errado. Tente novamente."
44
+ },
45
+ "forms": {
46
+ "title": "Formulário de Exemplo",
47
+ "description": "Controles de formulário comuns funcionando juntos",
48
+ "name": "Nome",
49
+ "namePlaceholder": "Digite seu nome",
50
+ "role": "Cargo",
51
+ "rolePlaceholder": "Selecione um cargo",
52
+ "roles": {
53
+ "developer": "Desenvolvedor(a)",
54
+ "designer": "Designer",
55
+ "manager": "Gerente"
56
+ },
57
+ "bio": "Bio",
58
+ "bioPlaceholder": "Conte um pouco sobre você...",
59
+ "newsletter": "Assinar a newsletter",
60
+ "pushNotifications": "Notificações push",
61
+ "accountType": "Tipo de conta",
62
+ "accountPersonal": "Pessoal",
63
+ "accountBusiness": "Empresarial",
64
+ "cancel": "Cancelar",
65
+ "submit": "Enviar",
66
+ "submitSuccess": "Formulário enviado com sucesso"
67
+ },
68
+ "data": {
69
+ "title": "Membros da Equipe",
70
+ "description": "Exemplo de tabela de dados filtrável",
71
+ "searchPlaceholder": "Buscar por nome ou email...",
72
+ "columns": {
73
+ "name": "Nome",
74
+ "email": "Email",
75
+ "status": "Status"
76
+ },
77
+ "status": {
78
+ "active": "Ativo",
79
+ "invited": "Convidado",
80
+ "inactive": "Inativo"
81
+ }
82
+ },
83
+ "dialogs": {
84
+ "dialogTitle": "Diálogo",
85
+ "dialogDescription": "Um diálogo modal para tarefas focadas",
86
+ "editProfile": "Editar Perfil",
87
+ "editProfileDescription": "Faça alterações no seu perfil aqui.",
88
+ "name": "Nome",
89
+ "update": "Salvar alterações",
90
+ "alertDialogTitle": "Diálogo de Alerta",
91
+ "alertDialogDescription": "Confirmação para ações destrutivas",
92
+ "deleteAccount": "Excluir Conta",
93
+ "areYouSure": "Você tem certeza absoluta?",
94
+ "deleteWarning": "Esta ação não pode ser desfeita. Isso excluirá permanentemente a conta.",
95
+ "cancel": "Cancelar",
96
+ "continue": "Continuar"
97
+ },
98
+ "overlays": {
99
+ "title": "Overlays & Feedback",
100
+ "description": "Tooltips, avatares, progresso e sliders",
101
+ "avatarLabel": "Avatar do usuário",
102
+ "tooltipLabel": "Curtir",
103
+ "tooltipContent": "Adicionar aos favoritos",
104
+ "progressLabel": "Progresso do upload",
105
+ "sliderLabel": "Volume"
106
+ },
107
+ "accordion": {
108
+ "title": "Perguntas Frequentes",
109
+ "description": "Seções de conteúdo recolhíveis",
110
+ "q1": "O que é o xertica-ui?",
111
+ "a1": "xertica-ui é um design system corporativo em React construído sobre Tailwind CSS e Radix UI.",
112
+ "q2": "Posso customizar o tema?",
113
+ "a2": "Sim, cores e tokens podem ser customizados em src/styles/xertica/tokens.css.",
114
+ "q3": "Ele suporta múltiplos idiomas?",
115
+ "a3": "Sim, todo componente já vem com suporte a i18n via react-i18next."
116
+ }
9
117
  }
@@ -44,6 +44,7 @@
44
44
  --warning-foreground: rgba(28, 25, 23, 1);
45
45
 
46
46
  --border: rgba(228, 228, 231, 1);
47
+ --input-border: var(--border);
47
48
  --input: rgba(244, 244, 245, 0.5);
48
49
  --input-background: rgba(244, 244, 245, 0.5);
49
50
  --ring: rgba(161, 161, 170, 1);
@@ -84,6 +85,14 @@
84
85
  --radius-button: 12px;
85
86
  --radius-card: 12px;
86
87
 
88
+ /* Button stroke & secondary (theme-overridable; defaults preserve the flat look) */
89
+ --button-stroke-width: 0px;
90
+ --button-stroke-color: transparent;
91
+ --button-secondary-bg: var(--secondary);
92
+ --button-secondary-foreground: var(--secondary-foreground);
93
+ --button-primary-bg: var(--primary);
94
+ --button-primary-foreground: var(--primary-foreground);
95
+
87
96
  /* Mobile Content Padding — global horizontal padding on small screens.
88
97
  Change this value to adjust content padding on mobile across the entire project. */
89
98
  --mobile-content-padding: 1.25rem;
@@ -30,16 +30,41 @@ const libAliases = isMonorepo
30
30
  { find: 'xertica-ui/media', replacement: path.join(LIB_ROOT, 'components/media/index.ts') },
31
31
  { find: 'xertica-ui/hooks', replacement: path.join(LIB_ROOT, 'components/hooks/index.ts') },
32
32
  { find: 'xertica-ui/pages', replacement: path.join(LIB_ROOT, 'components/pages/index.ts') },
33
+ { find: 'xertica-ui/style.css', replacement: path.join(LIB_ROOT, 'styles/globals.css') },
33
34
  // Bare `xertica-ui` must come AFTER subpaths (most-specific first).
34
35
  { find: 'xertica-ui', replacement: path.join(LIB_ROOT, 'components/index.ts') },
35
36
  ]
36
37
  : [];
37
38
 
39
+ // ── Monorepo-only Tailwind @source shim ─────────────────────────────────────
40
+ // Tailwind's content scanner walks down from the project root and never
41
+ // reaches `LIB_ROOT/components` — a sibling of `templates/`, not a
42
+ // descendant — even though the aliases above resolve `xertica-ui/*` imports
43
+ // there. Without this, any Tailwind class used only inside library source
44
+ // (and not duplicated elsewhere under templates/src) never gets generated in
45
+ // this dev server. Only active in monorepo mode; scaffolded projects never
46
+ // satisfy `isMonorepo`, so this plugin becomes a no-op and they keep relying
47
+ // solely on the `@source` line already inside src/styles/index.css (which
48
+ // targets node_modules/xertica-ui/components).
49
+ const monorepoTailwindSourcePlugin = isMonorepo
50
+ ? {
51
+ name: 'xertica-monorepo-tailwind-source',
52
+ enforce: 'pre' as const,
53
+ transform(code: string, id: string) {
54
+ if (id.replace(/\\/g, '/').endsWith('src/styles/index.css')) {
55
+ const componentsPath = path.join(LIB_ROOT, 'components').replace(/\\/g, '/');
56
+ return `${code}\n@source '${componentsPath}';\n`;
57
+ }
58
+ },
59
+ }
60
+ : null;
61
+
38
62
  export default defineConfig({
39
63
  plugins: [
40
64
  // The React and Tailwind plugins are both required for Make, even if
41
65
  // Tailwind is not being actively used — do not remove them.
42
66
  react(),
67
+ monorepoTailwindSourcePlugin,
43
68
  tailwindcss(),
44
69
  ],
45
70
  resolve: {