@nextsparkjs/core 0.1.0-beta.187 → 0.1.0-beta.189

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 (414) hide show
  1. package/dist/components/api/keys/ApiKeyDisplay.js +19 -19
  2. package/dist/components/api/keys/CreateApiKeyDialog.js +21 -21
  3. package/dist/components/app/layouts/PublicNavbar.d.ts.map +1 -1
  4. package/dist/components/app/layouts/PublicNavbar.js +34 -16
  5. package/dist/components/app/misc/ThemeToggle.d.ts.map +1 -1
  6. package/dist/components/app/misc/ThemeToggle.js +3 -4
  7. package/dist/components/auth/SessionCookieRefresher.d.ts +5 -0
  8. package/dist/components/auth/SessionCookieRefresher.d.ts.map +1 -1
  9. package/dist/components/auth/SessionCookieRefresher.js +7 -1
  10. package/dist/components/auth/forms/LoginForm.d.ts.map +1 -1
  11. package/dist/components/auth/forms/LoginForm.js +49 -12
  12. package/dist/components/auth/forms/SignupForm.d.ts.map +1 -1
  13. package/dist/components/auth/forms/SignupForm.js +4 -3
  14. package/dist/components/dashboard/block-editor/block-settings-panel.js +1 -1
  15. package/dist/components/dashboard/block-editor/floating-block-toolbar.js +1 -1
  16. package/dist/components/dashboard/block-editor/sortable-block.js +1 -1
  17. package/dist/components/dashboard/layouts/Sidebar.d.ts.map +1 -1
  18. package/dist/components/dashboard/layouts/Sidebar.js +8 -6
  19. package/dist/components/dashboard/layouts/TopNavbar.d.ts.map +1 -1
  20. package/dist/components/dashboard/layouts/TopNavbar.js +51 -54
  21. package/dist/components/dashboard/misc/NotificationsDropdown.d.ts.map +1 -1
  22. package/dist/components/dashboard/misc/NotificationsDropdown.js +17 -15
  23. package/dist/components/dashboard/misc/SearchDropdown.d.ts.map +1 -1
  24. package/dist/components/dashboard/misc/SearchDropdown.js +19 -22
  25. package/dist/components/dashboard/mobile/MobileBottomNav.js +1 -1
  26. package/dist/components/dashboard/mobile/MobileTopBar.d.ts +10 -1
  27. package/dist/components/dashboard/mobile/MobileTopBar.d.ts.map +1 -1
  28. package/dist/components/dashboard/mobile/MobileTopBar.js +4 -3
  29. package/dist/components/dashboard/navigation/DynamicNavigation.js +5 -5
  30. package/dist/components/devtools/BlockDetailViewer.js +1 -1
  31. package/dist/components/devtools/BlocksViewer.js +1 -1
  32. package/dist/components/entities/EntityChildManager.js +5 -5
  33. package/dist/components/entities/EntityDetailPage.d.ts.map +1 -1
  34. package/dist/components/entities/EntityDetailPage.js +16 -15
  35. package/dist/components/entities/EntityFieldRenderer.d.ts.map +1 -1
  36. package/dist/components/entities/EntityFieldRenderer.js +12 -7
  37. package/dist/components/entities/EntityPageHeader.js +5 -5
  38. package/dist/components/entities/ErrorBoundary.d.ts.map +1 -1
  39. package/dist/components/entities/ErrorBoundary.js +20 -21
  40. package/dist/components/entities/wrappers/EntityDetailWrapper.js +5 -5
  41. package/dist/components/entities/wrappers/EntityFormWrapper.js +2 -2
  42. package/dist/components/entities/wrappers/EntityListWrapper.js +3 -3
  43. package/dist/components/permissions/NoPermission.js +10 -10
  44. package/dist/components/public/pageBuilder/PageRenderer.d.ts.map +1 -1
  45. package/dist/components/public/pageBuilder/PageRenderer.js +2 -1
  46. package/dist/components/settings/SettingsPageSkeleton.js +4 -4
  47. package/dist/components/settings/layouts/SettingsSidebar.js +6 -6
  48. package/dist/components/shared/MultiSelectFilter.d.ts +3 -1
  49. package/dist/components/shared/MultiSelectFilter.d.ts.map +1 -1
  50. package/dist/components/shared/MultiSelectFilter.js +7 -3
  51. package/dist/components/shared/SearchInput.d.ts +2 -0
  52. package/dist/components/shared/SearchInput.d.ts.map +1 -1
  53. package/dist/components/shared/SearchInput.js +64 -6
  54. package/dist/components/ui/address-input.js +18 -18
  55. package/dist/components/ui/audio-upload.js +9 -9
  56. package/dist/components/ui/combobox.d.ts.map +1 -1
  57. package/dist/components/ui/combobox.js +4 -4
  58. package/dist/components/ui/country-select.d.ts.map +1 -1
  59. package/dist/components/ui/country-select.js +3 -3
  60. package/dist/components/ui/currency-select.d.ts.map +1 -1
  61. package/dist/components/ui/currency-select.js +3 -3
  62. package/dist/components/ui/dynamic-icon.d.ts.map +1 -1
  63. package/dist/components/ui/dynamic-icon.js +3 -2
  64. package/dist/components/ui/file-upload.js +7 -7
  65. package/dist/components/ui/image-upload.js +8 -8
  66. package/dist/components/ui/multi-select.d.ts +2 -1
  67. package/dist/components/ui/multi-select.d.ts.map +1 -1
  68. package/dist/components/ui/multi-select.js +4 -3
  69. package/dist/components/ui/phone-input.d.ts.map +1 -1
  70. package/dist/components/ui/phone-input.js +3 -3
  71. package/dist/components/ui/relation-display.js +1 -1
  72. package/dist/components/ui/simple-relation-select.d.ts +2 -1
  73. package/dist/components/ui/simple-relation-select.d.ts.map +1 -1
  74. package/dist/components/ui/simple-relation-select.js +7 -6
  75. package/dist/components/ui/tags-input.d.ts.map +1 -1
  76. package/dist/components/ui/tags-input.js +1 -1
  77. package/dist/components/ui/timezone-select.d.ts.map +1 -1
  78. package/dist/components/ui/timezone-select.js +3 -3
  79. package/dist/components/ui/user-display.js +4 -4
  80. package/dist/components/ui/user-select.d.ts.map +1 -1
  81. package/dist/components/ui/user-select.js +9 -9
  82. package/dist/components/ui/video-upload.js +9 -9
  83. package/dist/contexts/SubscriptionContext.d.ts.map +1 -1
  84. package/dist/contexts/SubscriptionContext.js +5 -1
  85. package/dist/contexts/TeamContext.d.ts.map +1 -1
  86. package/dist/contexts/TeamContext.js +83 -26
  87. package/dist/emails/otp-verification.d.ts.map +1 -1
  88. package/dist/emails/otp-verification.js +3 -2
  89. package/dist/hooks/useAccountPreferencesSync.d.ts +13 -0
  90. package/dist/hooks/useAccountPreferencesSync.d.ts.map +1 -0
  91. package/dist/hooks/useAccountPreferencesSync.js +95 -0
  92. package/dist/hooks/useAuth.d.ts +202 -15
  93. package/dist/hooks/useAuth.d.ts.map +1 -1
  94. package/dist/hooks/useAuth.js +49 -13
  95. package/dist/hooks/useEntityConfig.js +2 -2
  96. package/dist/hooks/useEntitySearch.js +10 -10
  97. package/dist/hooks/useNotifications.js +12 -12
  98. package/dist/hooks/usePrefetch.d.ts.map +1 -1
  99. package/dist/hooks/usePrefetch.js +6 -2
  100. package/dist/hooks/useSearch.js +15 -15
  101. package/dist/hooks/useSessionCookieRefresh.d.ts +18 -1
  102. package/dist/hooks/useSessionCookieRefresh.d.ts.map +1 -1
  103. package/dist/hooks/useSessionCookieRefresh.js +17 -4
  104. package/dist/hooks/useSessionHint.d.ts +12 -0
  105. package/dist/hooks/useSessionHint.d.ts.map +1 -0
  106. package/dist/hooks/useSessionHint.js +15 -0
  107. package/dist/hooks/useTranslationPreload.js +6 -6
  108. package/dist/i18n.d.ts +13 -0
  109. package/dist/i18n.d.ts.map +1 -1
  110. package/dist/i18n.js +2 -27
  111. package/dist/lib/actions/entity.actions.d.ts.map +1 -1
  112. package/dist/lib/actions/entity.actions.js +3 -2
  113. package/dist/lib/api/auth/dual-auth.d.ts +4 -1
  114. package/dist/lib/api/auth/dual-auth.d.ts.map +1 -1
  115. package/dist/lib/api/auth/dual-auth.js +5 -16
  116. package/dist/lib/api/entities.js +33 -33
  117. package/dist/lib/api/keys.d.ts +27 -27
  118. package/dist/lib/api/keys.js +27 -27
  119. package/dist/lib/auth/callback-url.d.ts +11 -0
  120. package/dist/lib/auth/callback-url.d.ts.map +1 -0
  121. package/dist/lib/auth/callback-url.js +14 -0
  122. package/dist/lib/auth/otp-config.d.ts +55 -0
  123. package/dist/lib/auth/otp-config.d.ts.map +1 -0
  124. package/dist/lib/auth/otp-config.js +48 -0
  125. package/dist/lib/auth/registration-helpers.d.ts.map +1 -1
  126. package/dist/lib/auth/registration-helpers.js +3 -1
  127. package/dist/lib/auth/session-hint.d.ts +31 -0
  128. package/dist/lib/auth/session-hint.d.ts.map +1 -0
  129. package/dist/lib/auth/session-hint.js +37 -0
  130. package/dist/lib/auth.d.ts.map +1 -1
  131. package/dist/lib/auth.js +6 -4
  132. package/dist/lib/blocks/loader.d.ts +3 -11
  133. package/dist/lib/blocks/loader.d.ts.map +1 -1
  134. package/dist/lib/blocks/loader.js +1 -9
  135. package/dist/lib/blocks/loader.server.d.ts +18 -0
  136. package/dist/lib/blocks/loader.server.d.ts.map +1 -0
  137. package/dist/lib/blocks/loader.server.js +11 -0
  138. package/dist/lib/blocks/sanitize-html.d.ts +31 -0
  139. package/dist/lib/blocks/sanitize-html.d.ts.map +1 -0
  140. package/dist/lib/blocks/sanitize-html.js +60 -0
  141. package/dist/lib/config/config-sync.d.ts +1 -0
  142. package/dist/lib/config/config-sync.d.ts.map +1 -1
  143. package/dist/lib/config/config-sync.js +4 -1
  144. package/dist/lib/config/types.d.ts +48 -0
  145. package/dist/lib/config/types.d.ts.map +1 -1
  146. package/dist/lib/email/types.d.ts +6 -0
  147. package/dist/lib/email/types.d.ts.map +1 -1
  148. package/dist/lib/entities/serialization.d.ts.map +1 -1
  149. package/dist/lib/entities/serialization.js +3 -6
  150. package/dist/lib/icons.d.ts +12 -0
  151. package/dist/lib/icons.d.ts.map +1 -0
  152. package/dist/lib/icons.js +30 -0
  153. package/dist/lib/locale.d.ts +25 -1
  154. package/dist/lib/locale.d.ts.map +1 -1
  155. package/dist/lib/locale.js +49 -35
  156. package/dist/lib/mcp/engine.js +1 -1
  157. package/dist/lib/mcp/errors.js +17 -17
  158. package/dist/lib/mcp/schema-builder.js +16 -16
  159. package/dist/lib/mcp/tool-generator.js +18 -18
  160. package/dist/lib/search-highlighting.d.ts +7 -0
  161. package/dist/lib/search-highlighting.d.ts.map +1 -1
  162. package/dist/lib/search-highlighting.js +6 -2
  163. package/dist/lib/selectors/core-selectors.d.ts +2 -0
  164. package/dist/lib/selectors/core-selectors.d.ts.map +1 -1
  165. package/dist/lib/selectors/domains/auth.selectors.d.ts +1 -0
  166. package/dist/lib/selectors/domains/auth.selectors.d.ts.map +1 -1
  167. package/dist/lib/selectors/domains/auth.selectors.js +1 -0
  168. package/dist/lib/selectors/domains/entities.selectors.d.ts +2 -0
  169. package/dist/lib/selectors/domains/entities.selectors.d.ts.map +1 -1
  170. package/dist/lib/selectors/domains/entities.selectors.js +2 -0
  171. package/dist/lib/selectors/selectors.d.ts +4 -0
  172. package/dist/lib/selectors/selectors.d.ts.map +1 -1
  173. package/dist/lib/services/block.service.js +1 -1
  174. package/dist/lib/teams/active-team-cookie.d.ts +24 -0
  175. package/dist/lib/teams/active-team-cookie.d.ts.map +1 -0
  176. package/dist/lib/teams/active-team-cookie.js +17 -0
  177. package/dist/lib/teams/dashboard-team.d.ts +20 -0
  178. package/dist/lib/teams/dashboard-team.d.ts.map +1 -0
  179. package/dist/lib/teams/dashboard-team.js +38 -0
  180. package/dist/lib/teams/schema.d.ts.map +1 -1
  181. package/dist/lib/teams/schema.js +1 -1
  182. package/dist/lib/template-resolver.d.ts.map +1 -1
  183. package/dist/lib/template-resolver.js +0 -1
  184. package/dist/lib/theme/get-default-theme-mode.d.ts +7 -4
  185. package/dist/lib/theme/get-default-theme-mode.d.ts.map +1 -1
  186. package/dist/lib/theme/get-default-theme-mode.js +2 -44
  187. package/dist/messages/de/auth.json +4 -2
  188. package/dist/messages/de/common.json +83 -3
  189. package/dist/messages/de/email.json +1 -1
  190. package/dist/messages/de/index.d.ts +87 -0
  191. package/dist/messages/de/index.d.ts.map +1 -1
  192. package/dist/messages/de/settings.json +5 -0
  193. package/dist/messages/en/auth.json +4 -2
  194. package/dist/messages/en/common.json +83 -3
  195. package/dist/messages/en/email.json +1 -1
  196. package/dist/messages/en/index.d.ts +86 -0
  197. package/dist/messages/en/index.d.ts.map +1 -1
  198. package/dist/messages/en/settings.json +4 -0
  199. package/dist/messages/es/auth.json +4 -2
  200. package/dist/messages/es/common.json +83 -3
  201. package/dist/messages/es/email.json +1 -1
  202. package/dist/messages/es/index.d.ts +86 -0
  203. package/dist/messages/es/index.d.ts.map +1 -1
  204. package/dist/messages/es/settings.json +4 -0
  205. package/dist/messages/fr/auth.json +4 -2
  206. package/dist/messages/fr/common.json +83 -3
  207. package/dist/messages/fr/email.json +1 -1
  208. package/dist/messages/fr/index.d.ts +87 -0
  209. package/dist/messages/fr/index.d.ts.map +1 -1
  210. package/dist/messages/fr/settings.json +5 -0
  211. package/dist/messages/it/auth.json +4 -2
  212. package/dist/messages/it/common.json +83 -3
  213. package/dist/messages/it/email.json +1 -1
  214. package/dist/messages/it/index.d.ts +87 -0
  215. package/dist/messages/it/index.d.ts.map +1 -1
  216. package/dist/messages/it/settings.json +5 -0
  217. package/dist/messages/pt/auth.json +4 -2
  218. package/dist/messages/pt/common.json +83 -3
  219. package/dist/messages/pt/email.json +1 -1
  220. package/dist/messages/pt/index.d.ts +87 -0
  221. package/dist/messages/pt/index.d.ts.map +1 -1
  222. package/dist/messages/pt/settings.json +5 -0
  223. package/dist/nextspark-registries.d.ts +54 -0
  224. package/dist/providers/DashboardProviders.d.ts +13 -10
  225. package/dist/providers/DashboardProviders.d.ts.map +1 -1
  226. package/dist/providers/DashboardProviders.js +7 -1
  227. package/dist/templates/app/(auth)/forgot-password/page.tsx +2 -2
  228. package/dist/templates/app/(auth)/reset-password/page.tsx +6 -6
  229. package/dist/templates/app/403/page.tsx +6 -6
  230. package/dist/templates/app/api/v1/teams/switch/route.ts +24 -5
  231. package/dist/templates/app/dashboard/(main)/[entity]/layout.tsx +9 -7
  232. package/dist/templates/app/dashboard/(main)/layout.tsx +4 -3
  233. package/dist/templates/app/dashboard/settings/api-keys/page.tsx +36 -34
  234. package/dist/templates/app/dashboard/settings/profile/page.tsx +7 -6
  235. package/dist/templates/app/dashboard/settings/security/page.tsx +5 -4
  236. package/dist/templates/app/layout.ppr.tsx +8 -8
  237. package/dist/templates/app/layout.tsx +12 -17
  238. package/dist/templates/blocks/cta-section/component.tsx +5 -2
  239. package/dist/templates/blocks/cta-section/config.ts +3 -2
  240. package/dist/templates/blocks/cta-section/fields.ts +2 -2
  241. package/dist/templates/blocks/cta-section/schema.ts +2 -2
  242. package/dist/templates/blocks/features-grid/component.tsx +10 -2
  243. package/dist/templates/blocks/features-grid/config.ts +3 -2
  244. package/dist/templates/blocks/features-grid/fields.ts +2 -2
  245. package/dist/templates/blocks/features-grid/schema.ts +2 -2
  246. package/dist/templates/blocks/hero/component.tsx +6 -3
  247. package/dist/templates/blocks/hero/config.ts +3 -2
  248. package/dist/templates/blocks/hero/fields.ts +2 -2
  249. package/dist/templates/blocks/hero/schema.ts +2 -2
  250. package/dist/templates/blocks/testimonials/component.tsx +6 -3
  251. package/dist/templates/blocks/testimonials/config.ts +3 -2
  252. package/dist/templates/blocks/testimonials/fields.ts +2 -2
  253. package/dist/templates/blocks/testimonials/schema.ts +2 -2
  254. package/dist/templates/blocks/text-content/component.tsx +7 -3
  255. package/dist/templates/blocks/text-content/config.ts +3 -2
  256. package/dist/templates/blocks/text-content/fields.ts +2 -2
  257. package/dist/templates/blocks/text-content/schema.ts +2 -2
  258. package/dist/templates/contents/themes/starter/blocks/cta-section/component.tsx +102 -0
  259. package/dist/templates/contents/themes/starter/blocks/cta-section/config.ts +11 -0
  260. package/dist/templates/contents/themes/starter/blocks/cta-section/fields.ts +89 -0
  261. package/dist/templates/contents/themes/starter/blocks/cta-section/index.ts +6 -0
  262. package/dist/templates/contents/themes/starter/blocks/cta-section/schema.ts +32 -0
  263. package/dist/templates/contents/themes/starter/blocks/cta-section/thumbnail.png +0 -0
  264. package/dist/templates/contents/themes/starter/blocks/features-grid/component.tsx +119 -0
  265. package/dist/templates/contents/themes/starter/blocks/features-grid/config.ts +11 -0
  266. package/dist/templates/contents/themes/starter/blocks/features-grid/fields.ts +97 -0
  267. package/dist/templates/contents/themes/starter/blocks/features-grid/index.ts +6 -0
  268. package/dist/templates/contents/themes/starter/blocks/features-grid/schema.ts +40 -0
  269. package/dist/templates/contents/themes/starter/blocks/features-grid/thumbnail.png +0 -0
  270. package/dist/templates/contents/themes/starter/blocks/hero/component.tsx +105 -0
  271. package/dist/templates/contents/themes/starter/blocks/hero/config.ts +11 -0
  272. package/dist/templates/contents/themes/starter/blocks/hero/fields.ts +60 -0
  273. package/dist/templates/contents/themes/starter/blocks/hero/index.ts +6 -0
  274. package/dist/templates/contents/themes/starter/blocks/hero/schema.ts +33 -0
  275. package/dist/templates/contents/themes/starter/blocks/hero/thumbnail.png +0 -0
  276. package/dist/templates/contents/themes/starter/blocks/testimonials/component.tsx +116 -0
  277. package/dist/templates/contents/themes/starter/blocks/testimonials/config.ts +11 -0
  278. package/dist/templates/contents/themes/starter/blocks/testimonials/fields.ts +105 -0
  279. package/dist/templates/contents/themes/starter/blocks/testimonials/index.ts +6 -0
  280. package/dist/templates/contents/themes/starter/blocks/testimonials/schema.ts +41 -0
  281. package/dist/templates/contents/themes/starter/blocks/testimonials/thumbnail.png +0 -0
  282. package/dist/templates/contents/themes/starter/blocks/text-content/component.tsx +100 -0
  283. package/dist/templates/contents/themes/starter/blocks/text-content/config.ts +11 -0
  284. package/dist/templates/contents/themes/starter/blocks/text-content/fields.ts +88 -0
  285. package/dist/templates/contents/themes/starter/blocks/text-content/index.ts +6 -0
  286. package/dist/templates/contents/themes/starter/blocks/text-content/schema.ts +30 -0
  287. package/dist/templates/contents/themes/starter/blocks/text-content/thumbnail.png +0 -0
  288. package/dist/templates/contents/themes/starter/config/app.config.ts +8 -0
  289. package/dist/templates/contents/themes/starter/entities/tasks/tasks.config.ts +7 -0
  290. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +9 -1
  291. package/dist/templates/contents/themes/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +2 -2
  292. package/dist/templates/contents/themes/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +45 -38
  293. package/dist/templates/contents/themes/starter/tests/cypress/fixtures/entities.json +16 -0
  294. package/dist/templates/contents/themes/starter/tests/cypress/src/components/DevKeyringPOM.ts +3 -1
  295. package/dist/templates/contents/themes/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +3 -3
  296. package/dist/templates/contents/themes/starter/tests/cypress/src/entities/PagesPOM.ts +137 -0
  297. package/dist/templates/contents/themes/starter/tests/cypress/src/entities/index.ts +2 -0
  298. package/dist/templates/contents/themes/starter/tests/cypress/src/index.ts +1 -0
  299. package/dist/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +42 -11
  300. package/dist/templates/contents/themes/starter/tests/cypress/support/commands.ts +29 -18
  301. package/dist/templates/features/blog/blocks/post-content/component.tsx +5 -1
  302. package/dist/templates/features/blog/blocks/post-content/schema.ts +1 -1
  303. package/dist/templates/features/pages/blocks/hero/component.tsx +3 -0
  304. package/dist/templates/features/pages/blocks/hero/schema.ts +1 -1
  305. package/dist/templates/proxy.ts +138 -53
  306. package/dist/types/blocks.d.ts.map +1 -1
  307. package/dist/types/blocks.js +1 -1
  308. package/dist/types/task.types.d.ts +1 -1
  309. package/dist/types/task.types.js +7 -7
  310. package/dist/utils/dev/TranslationDebugger.js +2 -2
  311. package/package.json +14 -5
  312. package/scripts/build/registry/__tests__/block-registry.test.mjs +73 -0
  313. package/scripts/build/registry/__tests__/icons-discovery.test.mjs +130 -0
  314. package/scripts/build/registry/__tests__/identifier.test.mjs +65 -0
  315. package/scripts/build/registry/__tests__/page-generator.test.mjs +430 -0
  316. package/scripts/build/registry/__tests__/scheduled-actions-registry.test.mjs +41 -0
  317. package/scripts/build/registry/__tests__/template-registry.test.mjs +89 -0
  318. package/scripts/build/registry/discovery/icons.mjs +275 -0
  319. package/scripts/build/registry/discovery/index.mjs +1 -0
  320. package/scripts/build/registry/generators/block-registry.mjs +203 -55
  321. package/scripts/build/registry/generators/feature-registry.mjs +9 -2
  322. package/scripts/build/registry/generators/icon-registry.mjs +56 -0
  323. package/scripts/build/registry/generators/identifier.mjs +28 -0
  324. package/scripts/build/registry/generators/index.mjs +1 -0
  325. package/scripts/build/registry/generators/plugin-registry.mjs +4 -3
  326. package/scripts/build/registry/generators/scheduled-actions-registry.mjs +4 -2
  327. package/scripts/build/registry/generators/template-registry.mjs +49 -41
  328. package/scripts/build/registry/generators/theme-registry.mjs +6 -7
  329. package/scripts/build/registry/post-build/page-generator.mjs +380 -59
  330. package/scripts/build/registry.mjs +9 -1
  331. package/templates/app/(auth)/forgot-password/page.tsx +2 -2
  332. package/templates/app/(auth)/reset-password/page.tsx +6 -6
  333. package/templates/app/403/page.tsx +6 -6
  334. package/templates/app/api/v1/teams/switch/route.ts +24 -5
  335. package/templates/app/dashboard/(main)/[entity]/layout.tsx +9 -7
  336. package/templates/app/dashboard/(main)/layout.tsx +4 -3
  337. package/templates/app/dashboard/settings/api-keys/page.tsx +36 -34
  338. package/templates/app/dashboard/settings/profile/page.tsx +7 -6
  339. package/templates/app/dashboard/settings/security/page.tsx +5 -4
  340. package/templates/app/layout.ppr.tsx +8 -8
  341. package/templates/app/layout.tsx +12 -17
  342. package/templates/blocks/cta-section/component.tsx +5 -2
  343. package/templates/blocks/cta-section/config.ts +3 -2
  344. package/templates/blocks/cta-section/fields.ts +2 -2
  345. package/templates/blocks/cta-section/schema.ts +2 -2
  346. package/templates/blocks/features-grid/component.tsx +10 -2
  347. package/templates/blocks/features-grid/config.ts +3 -2
  348. package/templates/blocks/features-grid/fields.ts +2 -2
  349. package/templates/blocks/features-grid/schema.ts +2 -2
  350. package/templates/blocks/hero/component.tsx +6 -3
  351. package/templates/blocks/hero/config.ts +3 -2
  352. package/templates/blocks/hero/fields.ts +2 -2
  353. package/templates/blocks/hero/schema.ts +2 -2
  354. package/templates/blocks/testimonials/component.tsx +6 -3
  355. package/templates/blocks/testimonials/config.ts +3 -2
  356. package/templates/blocks/testimonials/fields.ts +2 -2
  357. package/templates/blocks/testimonials/schema.ts +2 -2
  358. package/templates/blocks/text-content/component.tsx +7 -3
  359. package/templates/blocks/text-content/config.ts +3 -2
  360. package/templates/blocks/text-content/fields.ts +2 -2
  361. package/templates/blocks/text-content/schema.ts +2 -2
  362. package/templates/contents/themes/starter/blocks/cta-section/component.tsx +102 -0
  363. package/templates/contents/themes/starter/blocks/cta-section/config.ts +11 -0
  364. package/templates/contents/themes/starter/blocks/cta-section/fields.ts +89 -0
  365. package/templates/contents/themes/starter/blocks/cta-section/index.ts +6 -0
  366. package/templates/contents/themes/starter/blocks/cta-section/schema.ts +32 -0
  367. package/templates/contents/themes/starter/blocks/cta-section/thumbnail.png +0 -0
  368. package/templates/contents/themes/starter/blocks/features-grid/component.tsx +119 -0
  369. package/templates/contents/themes/starter/blocks/features-grid/config.ts +11 -0
  370. package/templates/contents/themes/starter/blocks/features-grid/fields.ts +97 -0
  371. package/templates/contents/themes/starter/blocks/features-grid/index.ts +6 -0
  372. package/templates/contents/themes/starter/blocks/features-grid/schema.ts +40 -0
  373. package/templates/contents/themes/starter/blocks/features-grid/thumbnail.png +0 -0
  374. package/templates/contents/themes/starter/blocks/hero/component.tsx +105 -0
  375. package/templates/contents/themes/starter/blocks/hero/config.ts +11 -0
  376. package/templates/contents/themes/starter/blocks/hero/fields.ts +60 -0
  377. package/templates/contents/themes/starter/blocks/hero/index.ts +6 -0
  378. package/templates/contents/themes/starter/blocks/hero/schema.ts +33 -0
  379. package/templates/contents/themes/starter/blocks/hero/thumbnail.png +0 -0
  380. package/templates/contents/themes/starter/blocks/testimonials/component.tsx +116 -0
  381. package/templates/contents/themes/starter/blocks/testimonials/config.ts +11 -0
  382. package/templates/contents/themes/starter/blocks/testimonials/fields.ts +105 -0
  383. package/templates/contents/themes/starter/blocks/testimonials/index.ts +6 -0
  384. package/templates/contents/themes/starter/blocks/testimonials/schema.ts +41 -0
  385. package/templates/contents/themes/starter/blocks/testimonials/thumbnail.png +0 -0
  386. package/templates/contents/themes/starter/blocks/text-content/component.tsx +100 -0
  387. package/templates/contents/themes/starter/blocks/text-content/config.ts +11 -0
  388. package/templates/contents/themes/starter/blocks/text-content/fields.ts +88 -0
  389. package/templates/contents/themes/starter/blocks/text-content/index.ts +6 -0
  390. package/templates/contents/themes/starter/blocks/text-content/schema.ts +30 -0
  391. package/templates/contents/themes/starter/blocks/text-content/thumbnail.png +0 -0
  392. package/templates/contents/themes/starter/config/app.config.ts +8 -0
  393. package/templates/contents/themes/starter/entities/tasks/tasks.config.ts +7 -0
  394. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +9 -1
  395. package/templates/contents/themes/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +2 -2
  396. package/templates/contents/themes/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +45 -38
  397. package/templates/contents/themes/starter/tests/cypress/fixtures/entities.json +16 -0
  398. package/templates/contents/themes/starter/tests/cypress/src/components/DevKeyringPOM.ts +3 -1
  399. package/templates/contents/themes/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +3 -3
  400. package/templates/contents/themes/starter/tests/cypress/src/entities/PagesPOM.ts +137 -0
  401. package/templates/contents/themes/starter/tests/cypress/src/entities/index.ts +2 -0
  402. package/templates/contents/themes/starter/tests/cypress/src/index.ts +1 -0
  403. package/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +42 -11
  404. package/templates/contents/themes/starter/tests/cypress/support/commands.ts +29 -18
  405. package/templates/features/blog/blocks/post-content/component.tsx +5 -1
  406. package/templates/features/blog/blocks/post-content/schema.ts +1 -1
  407. package/templates/features/pages/blocks/hero/component.tsx +3 -0
  408. package/templates/features/pages/blocks/hero/schema.ts +1 -1
  409. package/templates/proxy.ts +138 -53
  410. package/tests/jest/__mocks__/@nextsparkjs/registries/block-registry.client.ts +9 -0
  411. package/tests/jest/__mocks__/@nextsparkjs/registries/block-registry.lazy.ts +5 -0
  412. package/tests/jest/__mocks__/@nextsparkjs/registries/icon-registry.ts +42 -0
  413. package/tests/jest/__mocks__/next-intl-server.js +85 -5
  414. package/tests/jest/__mocks__/next-server.js +32 -0
@@ -52,7 +52,7 @@ function AddressInput({
52
52
  /* @__PURE__ */ jsx(
53
53
  Input,
54
54
  {
55
- placeholder: "Direcci\xF3n completa...",
55
+ placeholder: "Full address...",
56
56
  value: value.fullAddress || "",
57
57
  onChange: (e) => handleFullAddressChange(e.target.value),
58
58
  disabled,
@@ -64,7 +64,7 @@ function AddressInput({
64
64
  /* @__PURE__ */ jsx(
65
65
  Input,
66
66
  {
67
- placeholder: "Calle",
67
+ placeholder: "Street",
68
68
  value: value.street,
69
69
  onChange: (e) => updateField("street", e.target.value),
70
70
  disabled
@@ -73,7 +73,7 @@ function AddressInput({
73
73
  /* @__PURE__ */ jsx(
74
74
  Input,
75
75
  {
76
- placeholder: "Ciudad",
76
+ placeholder: "City",
77
77
  value: value.city,
78
78
  onChange: (e) => updateField("city", e.target.value),
79
79
  disabled
@@ -82,7 +82,7 @@ function AddressInput({
82
82
  /* @__PURE__ */ jsx(
83
83
  Input,
84
84
  {
85
- placeholder: "Estado/Provincia",
85
+ placeholder: "State/Province",
86
86
  value: value.state,
87
87
  onChange: (e) => updateField("state", e.target.value),
88
88
  disabled
@@ -91,7 +91,7 @@ function AddressInput({
91
91
  /* @__PURE__ */ jsx(
92
92
  Input,
93
93
  {
94
- placeholder: "C\xF3digo Postal",
94
+ placeholder: "Zip Code",
95
95
  value: value.zipCode,
96
96
  onChange: (e) => updateField("zipCode", e.target.value),
97
97
  disabled
@@ -101,7 +101,7 @@ function AddressInput({
101
101
  /* @__PURE__ */ jsx(
102
102
  Input,
103
103
  {
104
- placeholder: "Pa\xEDs",
104
+ placeholder: "Country",
105
105
  value: value.country,
106
106
  onChange: (e) => updateField("country", e.target.value),
107
107
  disabled
@@ -111,14 +111,14 @@ function AddressInput({
111
111
  }
112
112
  return /* @__PURE__ */ jsx(Card, { className, children: /* @__PURE__ */ jsxs(CardContent, { className: "p-4 space-y-4", children: [
113
113
  showFullAddress && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
114
- /* @__PURE__ */ jsx(Label, { htmlFor: "full-address", children: "Direcci\xF3n Completa" }),
114
+ /* @__PURE__ */ jsx(Label, { htmlFor: "full-address", children: "Full Address" }),
115
115
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
116
116
  /* @__PURE__ */ jsx(MapPin, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
117
117
  /* @__PURE__ */ jsx(
118
118
  Input,
119
119
  {
120
120
  id: "full-address",
121
- placeholder: "Ingresa la direcci\xF3n completa...",
121
+ placeholder: "Enter the full address...",
122
122
  value: value.fullAddress || "",
123
123
  onChange: (e) => handleFullAddressChange(e.target.value),
124
124
  disabled,
@@ -129,12 +129,12 @@ function AddressInput({
129
129
  ] }),
130
130
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
131
131
  /* @__PURE__ */ jsxs("div", { className: "space-y-2 md:col-span-2", children: [
132
- /* @__PURE__ */ jsx(Label, { htmlFor: "street", children: "Calle y N\xFAmero" }),
132
+ /* @__PURE__ */ jsx(Label, { htmlFor: "street", children: "Street and Number" }),
133
133
  /* @__PURE__ */ jsx(
134
134
  Input,
135
135
  {
136
136
  id: "street",
137
- placeholder: "Ej: Av. Corrientes 1234",
137
+ placeholder: "E.g.: 123 Main St",
138
138
  value: value.street,
139
139
  onChange: (e) => updateField("street", e.target.value),
140
140
  disabled
@@ -142,12 +142,12 @@ function AddressInput({
142
142
  )
143
143
  ] }),
144
144
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
145
- /* @__PURE__ */ jsx(Label, { htmlFor: "city", children: "Ciudad" }),
145
+ /* @__PURE__ */ jsx(Label, { htmlFor: "city", children: "City" }),
146
146
  /* @__PURE__ */ jsx(
147
147
  Input,
148
148
  {
149
149
  id: "city",
150
- placeholder: "Ej: Buenos Aires",
150
+ placeholder: "E.g.: New York",
151
151
  value: value.city,
152
152
  onChange: (e) => updateField("city", e.target.value),
153
153
  disabled
@@ -155,12 +155,12 @@ function AddressInput({
155
155
  )
156
156
  ] }),
157
157
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
158
- /* @__PURE__ */ jsx(Label, { htmlFor: "state", children: "Estado/Provincia" }),
158
+ /* @__PURE__ */ jsx(Label, { htmlFor: "state", children: "State/Province" }),
159
159
  /* @__PURE__ */ jsx(
160
160
  Input,
161
161
  {
162
162
  id: "state",
163
- placeholder: "Ej: CABA",
163
+ placeholder: "E.g.: NY",
164
164
  value: value.state,
165
165
  onChange: (e) => updateField("state", e.target.value),
166
166
  disabled
@@ -168,12 +168,12 @@ function AddressInput({
168
168
  )
169
169
  ] }),
170
170
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
171
- /* @__PURE__ */ jsx(Label, { htmlFor: "zipCode", children: "C\xF3digo Postal" }),
171
+ /* @__PURE__ */ jsx(Label, { htmlFor: "zipCode", children: "Zip Code" }),
172
172
  /* @__PURE__ */ jsx(
173
173
  Input,
174
174
  {
175
175
  id: "zipCode",
176
- placeholder: "Ej: C1043",
176
+ placeholder: "E.g.: 10001",
177
177
  value: value.zipCode,
178
178
  onChange: (e) => updateField("zipCode", e.target.value),
179
179
  disabled
@@ -181,12 +181,12 @@ function AddressInput({
181
181
  )
182
182
  ] }),
183
183
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
184
- /* @__PURE__ */ jsx(Label, { htmlFor: "country", children: "Pa\xEDs" }),
184
+ /* @__PURE__ */ jsx(Label, { htmlFor: "country", children: "Country" }),
185
185
  /* @__PURE__ */ jsx(
186
186
  Input,
187
187
  {
188
188
  id: "country",
189
- placeholder: "Ej: Argentina",
189
+ placeholder: "E.g.: United States",
190
190
  value: value.country,
191
191
  onChange: (e) => updateField("country", e.target.value),
192
192
  disabled
@@ -38,16 +38,16 @@ function AudioUpload({
38
38
  return new Promise((resolve) => {
39
39
  var _a;
40
40
  if (maxSize && file.size > maxSize * 1024 * 1024) {
41
- resolve(`El audio es muy grande. M\xE1ximo ${maxSize}MB.`);
41
+ resolve(`Audio file is too large. Maximum ${maxSize}MB.`);
42
42
  return;
43
43
  }
44
44
  if (!file.type.startsWith("audio/")) {
45
- resolve("El archivo debe ser un audio.");
45
+ resolve("The file must be an audio file.");
46
46
  return;
47
47
  }
48
48
  const fileExtension = (_a = file.name.split(".").pop()) == null ? void 0 : _a.toLowerCase();
49
49
  if (fileExtension && !acceptedFormats.includes(fileExtension)) {
50
- resolve(`Formato no soportado. Formatos aceptados: ${acceptedFormats.join(", ")}`);
50
+ resolve(`Unsupported format. Accepted formats: ${acceptedFormats.join(", ")}`);
51
51
  return;
52
52
  }
53
53
  resolve(null);
@@ -72,7 +72,7 @@ function AudioUpload({
72
72
  const errors = [];
73
73
  for (const file of Array.from(files)) {
74
74
  if (value.length + newAudios.length >= maxAudios) {
75
- errors.push(`M\xE1ximo ${maxAudios} audios permitidos`);
75
+ errors.push(`Maximum ${maxAudios} audio files allowed`);
76
76
  break;
77
77
  }
78
78
  const error = await validateAudio(file);
@@ -181,16 +181,16 @@ function AudioUpload({
181
181
  children: [
182
182
  /* @__PURE__ */ jsx(Music, { className: "mx-auto h-8 w-8 text-muted-foreground" }),
183
183
  /* @__PURE__ */ jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: [
184
- "Arrastra audios aqu\xED o",
184
+ "Drag audio files here or",
185
185
  " ",
186
- /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "haz clic para seleccionar" })
186
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "click to select" })
187
187
  ] }),
188
188
  /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground mt-1", children: [
189
- maxAudios > 1 ? `Hasta ${maxAudios} audios` : "Un audio",
190
- maxSize && `, m\xE1ximo ${maxSize}MB cada uno`
189
+ maxAudios > 1 ? `Up to ${maxAudios} audio files` : "One audio file",
190
+ maxSize && `, maximum ${maxSize}MB each`
191
191
  ] }),
192
192
  /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
193
- "Formatos: ",
193
+ "Formats: ",
194
194
  acceptedFormats.join(", ")
195
195
  ] }),
196
196
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAqC,EACrC,iBAA+B,EAC/B,YAA4C,EAC5C,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,EAAE,EACF,UAAgC,GACjC,EAAE,aAAa,2CAiGf"}
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAgC,EAChC,iBAA+B,EAC/B,YAAkC,EAClC,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,EAAE,EACF,UAA8B,GAC/B,EAAE,aAAa,2CAiGf"}
@@ -20,14 +20,14 @@ function Combobox({
20
20
  options,
21
21
  value,
22
22
  onChange,
23
- placeholder = "Seleccionar opci\xF3n...",
24
- searchPlaceholder = "Buscar...",
25
- emptyMessage = "No se encontraron opciones.",
23
+ placeholder = "Select option...",
24
+ searchPlaceholder = "Search...",
25
+ emptyMessage = "No options found.",
26
26
  disabled = false,
27
27
  clearable = false,
28
28
  className,
29
29
  id,
30
- clearLabel = "Limpiar selecci\xF3n"
30
+ clearLabel = "Clear selection"
31
31
  }) {
32
32
  const [open, setOpen] = React.useState(false);
33
33
  const selectedOption = options.find((option) => option.value === value);
@@ -1 +1 @@
1
- {"version":3,"file":"country-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/country-select.tsx"],"names":[],"mappings":"AAoHA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,WAAmC,EACnC,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,kBAAkB,2CAkBpB"}
1
+ {"version":3,"file":"country-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/country-select.tsx"],"names":[],"mappings":"AAoHA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,WAAiC,EACjC,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,kBAAkB,2CAkBpB"}
@@ -113,7 +113,7 @@ const countries = [
113
113
  function CountrySelect({
114
114
  value,
115
115
  onChange,
116
- placeholder = "Seleccionar pa\xEDs...",
116
+ placeholder = "Select country...",
117
117
  disabled = false,
118
118
  className,
119
119
  clearable = true,
@@ -128,8 +128,8 @@ function CountrySelect({
128
128
  value,
129
129
  onChange: (value2) => onChange(value2),
130
130
  placeholder,
131
- searchPlaceholder: "Buscar pa\xEDs...",
132
- emptyMessage: "No se encontraron pa\xEDses.",
131
+ searchPlaceholder: "Search country...",
132
+ emptyMessage: "No countries found.",
133
133
  disabled,
134
134
  clearable,
135
135
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"currency-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/currency-select.tsx"],"names":[],"mappings":"AA6CA,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAAqC,EACrC,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,mBAAmB,2CAkBrB"}
1
+ {"version":3,"file":"currency-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/currency-select.tsx"],"names":[],"mappings":"AA6CA,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAAkC,EAClC,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,mBAAmB,2CAkBrB"}
@@ -42,7 +42,7 @@ const currencies = [
42
42
  function CurrencySelect({
43
43
  value,
44
44
  onChange,
45
- placeholder = "Seleccionar moneda...",
45
+ placeholder = "Select currency...",
46
46
  disabled = false,
47
47
  className,
48
48
  clearable = true,
@@ -57,8 +57,8 @@ function CurrencySelect({
57
57
  value,
58
58
  onChange: (value2) => onChange(value2),
59
59
  placeholder,
60
- searchPlaceholder: "Buscar moneda...",
61
- emptyMessage: "No se encontraron monedas.",
60
+ searchPlaceholder: "Search currency...",
61
+ emptyMessage: "No currencies found.",
62
62
  disabled,
63
63
  clearable,
64
64
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-icon.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dynamic-icon.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAuB,EAAE,EAAE,gBAAgB,2CAKzF"}
1
+ {"version":3,"file":"dynamic-icon.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dynamic-icon.tsx"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAuB,EAAE,EAAE,gBAAgB,2CAIzF"}
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { icons } from "lucide-react";
3
+ import { LayoutGrid } from "lucide-react";
4
4
  import { cn } from "../../lib/utils/index.js";
5
+ import { resolveIcon } from "../../lib/icons.js";
5
6
  function DynamicIcon({ name, className, fallback = "LayoutGrid" }) {
6
- const IconComponent = icons[name] || icons[fallback] || icons.LayoutGrid;
7
+ const IconComponent = resolveIcon(name, resolveIcon(fallback, LayoutGrid));
7
8
  return /* @__PURE__ */ jsx(IconComponent, { className: cn("h-4 w-4", className) });
8
9
  }
9
10
  export {
@@ -29,7 +29,7 @@ function FileUpload({
29
29
  const validateFile = (file) => {
30
30
  var _a;
31
31
  if (maxSize && file.size > maxSize * 1024 * 1024) {
32
- return `El archivo es muy grande. M\xE1ximo ${maxSize}MB.`;
32
+ return `File is too large. Maximum ${maxSize}MB.`;
33
33
  }
34
34
  if (acceptedTypes.length > 0 && !acceptedTypes.includes("*")) {
35
35
  const fileExtension = "." + ((_a = file.name.split(".").pop()) == null ? void 0 : _a.toLowerCase());
@@ -38,7 +38,7 @@ function FileUpload({
38
38
  (type) => type === mimeType || type === fileExtension || type.endsWith("/*") && mimeType.startsWith(type.replace("/*", ""))
39
39
  );
40
40
  if (!isValid) {
41
- return `Tipo de archivo no permitido. Tipos aceptados: ${acceptedTypes.join(", ")}`;
41
+ return `File type not allowed. Accepted types: ${acceptedTypes.join(", ")}`;
42
42
  }
43
43
  }
44
44
  return null;
@@ -49,7 +49,7 @@ function FileUpload({
49
49
  const errors = [];
50
50
  Array.from(files).forEach((file) => {
51
51
  if (value.length + newFiles.length >= maxFiles) {
52
- errors.push(`M\xE1ximo ${maxFiles} archivos permitidos`);
52
+ errors.push(`Maximum ${maxFiles} files allowed`);
53
53
  return;
54
54
  }
55
55
  const error = validateFile(file);
@@ -125,12 +125,12 @@ function FileUpload({
125
125
  children: [
126
126
  /* @__PURE__ */ jsx(Upload, { className: "mx-auto h-8 w-8 text-muted-foreground" }),
127
127
  /* @__PURE__ */ jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: [
128
- dragDrop ? "Arrastra archivos aqu\xED o " : "",
129
- /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "haz clic para seleccionar" })
128
+ dragDrop ? "Drag files here or " : "",
129
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "click to select" })
130
130
  ] }),
131
131
  /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground mt-1", children: [
132
- maxFiles > 1 ? `Hasta ${maxFiles} archivos` : "Un archivo",
133
- maxSize && `, m\xE1ximo ${maxSize}MB cada uno`
132
+ maxFiles > 1 ? `Up to ${maxFiles} files` : "One file",
133
+ maxSize && `, maximum ${maxSize}MB each`
134
134
  ] }),
135
135
  /* @__PURE__ */ jsx(
136
136
  "input",
@@ -30,11 +30,11 @@ function ImageUpload({
30
30
  const validateImage = (file) => {
31
31
  return new Promise((resolve) => {
32
32
  if (maxSize && file.size > maxSize * 1024 * 1024) {
33
- resolve(`La imagen es muy grande. M\xE1ximo ${maxSize}MB.`);
33
+ resolve(`Image is too large. Maximum ${maxSize}MB.`);
34
34
  return;
35
35
  }
36
36
  if (!file.type.startsWith("image/")) {
37
- resolve("El archivo debe ser una imagen.");
37
+ resolve("The file must be an image.");
38
38
  return;
39
39
  }
40
40
  const img = document.createElement("img");
@@ -42,7 +42,7 @@ function ImageUpload({
42
42
  resolve(null);
43
43
  };
44
44
  img.onerror = () => {
45
- resolve("No se pudo cargar la imagen.");
45
+ resolve("Could not load the image.");
46
46
  };
47
47
  img.src = URL.createObjectURL(file);
48
48
  });
@@ -53,7 +53,7 @@ function ImageUpload({
53
53
  const errors = [];
54
54
  for (const file of Array.from(files)) {
55
55
  if (value.length + newImages.length >= maxImages) {
56
- errors.push(`M\xE1ximo ${maxImages} im\xE1genes permitidas`);
56
+ errors.push(`Maximum ${maxImages} images allowed`);
57
57
  break;
58
58
  }
59
59
  const error = await validateImage(file);
@@ -141,13 +141,13 @@ function ImageUpload({
141
141
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center h-full", children: [
142
142
  /* @__PURE__ */ jsx(Image, { className: "h-8 w-8 text-muted-foreground" }),
143
143
  /* @__PURE__ */ jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: [
144
- "Arrastra im\xE1genes aqu\xED o",
144
+ "Drag images here or",
145
145
  " ",
146
- /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "haz clic para seleccionar" })
146
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-primary", children: "click to select" })
147
147
  ] }),
148
148
  /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground mt-1", children: [
149
- maxImages > 1 ? `Hasta ${maxImages} im\xE1genes` : "Una imagen",
150
- maxSize && `, m\xE1ximo ${maxSize}MB cada una`
149
+ maxImages > 1 ? `Up to ${maxImages} images` : "One image",
150
+ maxSize && `, maximum ${maxSize}MB each`
151
151
  ] })
152
152
  ] }),
153
153
  /* @__PURE__ */ jsx(
@@ -9,10 +9,11 @@ interface MultiSelectProps {
9
9
  value: (string | number)[];
10
10
  onChange: (value: (string | number)[]) => void;
11
11
  placeholder?: string;
12
+ searchPlaceholder?: string;
12
13
  maxSelected?: number;
13
14
  disabled?: boolean;
14
15
  className?: string;
15
16
  }
16
- export declare function MultiSelect({ options, value, onChange, placeholder, maxSelected, disabled, className, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function MultiSelect({ options, value, onChange, placeholder, searchPlaceholder, maxSelected, disabled, className, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
17
18
  export {};
18
19
  //# sourceMappingURL=multi-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/multi-select.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAA;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,KAAU,EACV,QAAQ,EACR,WAAuC,EACvC,WAAW,EACX,QAAgB,EAChB,SAAS,GACV,EAAE,gBAAgB,2CAuGlB"}
1
+ {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/multi-select.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAA;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,KAAU,EACV,QAAQ,EACR,WAAiC,EACjC,iBAAuC,EACvC,WAAW,EACX,QAAgB,EAChB,SAAS,GACV,EAAE,gBAAgB,2CAuGlB"}
@@ -21,7 +21,8 @@ function MultiSelect({
21
21
  options,
22
22
  value = [],
23
23
  onChange,
24
- placeholder = "Seleccionar opciones...",
24
+ placeholder = "Select options...",
25
+ searchPlaceholder = "Search options...",
25
26
  maxSelected,
26
27
  disabled = false,
27
28
  className
@@ -87,8 +88,8 @@ function MultiSelect({
87
88
  }
88
89
  ) }),
89
90
  /* @__PURE__ */ jsx(PopoverContent, { className: "p-0", align: "start", style: { width: "var(--radix-popover-trigger-width)" }, children: /* @__PURE__ */ jsxs(Command, { children: [
90
- /* @__PURE__ */ jsx(CommandInput, { placeholder: "Buscar opciones..." }),
91
- /* @__PURE__ */ jsx(CommandEmpty, { children: "No se encontraron opciones." }),
91
+ /* @__PURE__ */ jsx(CommandInput, { placeholder: searchPlaceholder }),
92
+ /* @__PURE__ */ jsx(CommandEmpty, { children: "No options found." }),
92
93
  /* @__PURE__ */ jsx(CommandGroup, { className: "max-h-64 overflow-auto", children: availableOptions.map((option) => /* @__PURE__ */ jsx(
93
94
  CommandItem,
94
95
  {
@@ -1 +1 @@
1
- {"version":3,"file":"phone-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/phone-input.tsx"],"names":[],"mappings":"AAOA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAgBD,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,WAAkC,EAClC,QAAgB,EAChB,SAAS,EACT,eAAsB,EACtB,cAAqB,GACtB,EAAE,eAAe,2CAqEjB"}
1
+ {"version":3,"file":"phone-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/phone-input.tsx"],"names":[],"mappings":"AAOA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAgBD,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,WAA4B,EAC5B,QAAgB,EAChB,SAAS,EACT,eAAsB,EACtB,cAAqB,GACtB,EAAE,eAAe,2CAqEjB"}
@@ -7,8 +7,8 @@ import { cn } from "../../lib/utils/index.js";
7
7
  const countryCodes = [
8
8
  { code: "+54", country: "AR", name: "Argentina" },
9
9
  { code: "+1", country: "US", name: "United States" },
10
- { code: "+34", country: "ES", name: "Espa\xF1a" },
11
- { code: "+52", country: "MX", name: "M\xE9xico" },
10
+ { code: "+34", country: "ES", name: "Spain" },
11
+ { code: "+52", country: "MX", name: "Mexico" },
12
12
  { code: "+44", country: "GB", name: "United Kingdom" },
13
13
  { code: "+33", country: "FR", name: "France" },
14
14
  { code: "+49", country: "DE", name: "Germany" },
@@ -19,7 +19,7 @@ const countryCodes = [
19
19
  function PhoneInput({
20
20
  value = "",
21
21
  onChange,
22
- placeholder = "N\xFAmero de tel\xE9fono",
22
+ placeholder = "Phone number",
23
23
  disabled = false,
24
24
  className,
25
25
  showCountryCode = true,
@@ -108,7 +108,7 @@ function RelationDisplay({
108
108
  return /* @__PURE__ */ jsx("span", { children: "-" });
109
109
  }
110
110
  if (loading && Object.keys(titles).length === 0) {
111
- return /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Cargando..." });
111
+ return /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Loading..." });
112
112
  }
113
113
  const displayValues = ids.map((id) => titles[id] || id);
114
114
  if (multiple) {
@@ -31,6 +31,7 @@ export interface SimpleRelationSelectProps {
31
31
  filter?: Record<string, string>;
32
32
  /** HTML id for the trigger button (enables label[for] association) */
33
33
  id?: string;
34
+ searchPlaceholder?: string;
34
35
  }
35
- export declare function SimpleRelationSelect({ value, onChange, entityType, titleField, multiple, placeholder, disabled, parentId, propField, usePropertyMode, propertyOptions, userFiltered, teamId, limit, filter, id, }: SimpleRelationSelectProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function SimpleRelationSelect({ value, onChange, entityType, titleField, multiple, placeholder, searchPlaceholder, disabled, parentId, propField, usePropertyMode, propertyOptions, userFiltered, teamId, limit, filter, id, }: SimpleRelationSelectProps): import("react/jsx-runtime").JSX.Element;
36
37
  //# sourceMappingURL=simple-relation-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simple-relation-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/simple-relation-select.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAA;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAEzD,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,sEAAsE;IACtE,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,WAA8B,EAC9B,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,eAAuB,EACvB,eAAoB,EACpB,YAAoB,EACpB,MAAM,EACN,KAAU,EACV,MAAM,EACN,EAAE,GACH,EAAE,yBAAyB,2CAylB3B"}
1
+ {"version":3,"file":"simple-relation-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/simple-relation-select.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAA;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAEzD,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,sEAAsE;IACtE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,WAAyB,EACzB,iBAA+B,EAC/B,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,eAAuB,EACvB,eAAoB,EACpB,YAAoB,EACpB,MAAM,EACN,KAAU,EACV,MAAM,EACN,EAAE,GACH,EAAE,yBAAyB,2CAylB3B"}
@@ -25,7 +25,8 @@ function SimpleRelationSelect({
25
25
  entityType,
26
26
  titleField,
27
27
  multiple = false,
28
- placeholder = "Seleccionar...",
28
+ placeholder = "Select...",
29
+ searchPlaceholder = "Search...",
29
30
  disabled = false,
30
31
  parentId,
31
32
  propField,
@@ -372,7 +373,7 @@ function SimpleRelationSelect({
372
373
  if (selectedPropertyValues.length > 0) {
373
374
  return selectedPropertyValues.map((opt) => opt.label).join(", ");
374
375
  }
375
- return `${selectedValues.length} seleccionado${selectedValues.length !== 1 ? "s" : ""}`;
376
+ return `${selectedValues.length} selected`;
376
377
  }
377
378
  const selectedPropertyItem = selectedPropertyValues.find((item) => item.value === selectedValues[0]);
378
379
  return selectedPropertyItem ? selectedPropertyItem.label : selectedValues[0];
@@ -381,7 +382,7 @@ function SimpleRelationSelect({
381
382
  if (selectedOptions.length > 0) {
382
383
  return selectedOptions.map((opt) => opt.title).join(", ");
383
384
  }
384
- return `${selectedValues.length} seleccionado${selectedValues.length !== 1 ? "s" : ""}`;
385
+ return `${selectedValues.length} selected`;
385
386
  }
386
387
  const selectedOption = selectedOptions.find((opt) => opt.id === selectedValues[0]);
387
388
  return selectedOption ? selectedOption.title : selectedValues[0];
@@ -444,9 +445,9 @@ function SimpleRelationSelect({
444
445
  }
445
446
  ) }),
446
447
  /* @__PURE__ */ jsx(PopoverContent, { className: "w-full p-0", children: /* @__PURE__ */ jsxs(Command, { children: [
447
- /* @__PURE__ */ jsx(CommandInput, { placeholder: "Buscar..." }),
448
+ /* @__PURE__ */ jsx(CommandInput, { placeholder: searchPlaceholder }),
448
449
  /* @__PURE__ */ jsxs(CommandList, { children: [
449
- /* @__PURE__ */ jsx(CommandEmpty, { children: loading ? "Cargando..." : "No se encontraron opciones." }),
450
+ /* @__PURE__ */ jsx(CommandEmpty, { children: loading ? "Loading..." : "No options found." }),
450
451
  /* @__PURE__ */ jsx(CommandGroup, { children: usePropertyMode ? (
451
452
  // Render property options - combine static and dynamic options
452
453
  (() => {
@@ -475,7 +476,7 @@ function SimpleRelationSelect({
475
476
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2 w-full", children: [
476
477
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
477
478
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: option.label }),
478
- !option.isStatic && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Din\xE1mico" })
479
+ !option.isStatic && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: "Dynamic" })
479
480
  ] }),
480
481
  selectedValues.includes(option.value) && /* @__PURE__ */ jsx("div", { className: "text-primary", children: "\u2713" })
481
482
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tags-input.tsx"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAU,EACV,QAAQ,EACR,WAA+B,EAC/B,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,eAAuB,EACvB,SAAe,GAChB,EAAE,cAAc,2CA0GhB"}
1
+ {"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tags-input.tsx"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAU,EACV,QAAQ,EACR,WAA2B,EAC3B,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,eAAuB,EACvB,SAAe,GAChB,EAAE,cAAc,2CA0GhB"}
@@ -8,7 +8,7 @@ import { cn } from "../../lib/utils/index.js";
8
8
  function TagsInput({
9
9
  value = [],
10
10
  onChange,
11
- placeholder = "Agregar tags...",
11
+ placeholder = "Add tags...",
12
12
  maxTags,
13
13
  disabled = false,
14
14
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"timezone-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/timezone-select.tsx"],"names":[],"mappings":"AAwCA,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAA2C,EAC3C,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,mBAAmB,2CAkBrB"}
1
+ {"version":3,"file":"timezone-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/timezone-select.tsx"],"names":[],"mappings":"AAwCA,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,WAAmC,EACnC,QAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,EAAE,GACH,EAAE,mBAAmB,2CAkBrB"}
@@ -37,7 +37,7 @@ const timezones = [
37
37
  function TimezoneSelect({
38
38
  value,
39
39
  onChange,
40
- placeholder = "Seleccionar zona horaria...",
40
+ placeholder = "Select time zone...",
41
41
  disabled = false,
42
42
  className,
43
43
  clearable = true,
@@ -52,8 +52,8 @@ function TimezoneSelect({
52
52
  value,
53
53
  onChange: (value2) => onChange(value2),
54
54
  placeholder,
55
- searchPlaceholder: "Buscar zona horaria...",
56
- emptyMessage: "No se encontraron zonas horarias.",
55
+ searchPlaceholder: "Search time zone...",
56
+ emptyMessage: "No time zones found.",
57
57
  disabled,
58
58
  clearable,
59
59
  id,
@@ -54,15 +54,15 @@ function UserDisplay({
54
54
  });
55
55
  loadedRef.current = { userId: value, teamId: effectiveTeamId };
56
56
  } else {
57
- setError("Usuario no encontrado");
57
+ setError("User not found");
58
58
  }
59
59
  }
60
60
  } else {
61
- setError("Error al cargar usuario");
61
+ setError("Error loading user");
62
62
  }
63
63
  } catch (err) {
64
64
  console.error("[UserDisplay] Error fetching user:", err);
65
- setError("Error al cargar usuario");
65
+ setError("Error loading user");
66
66
  } finally {
67
67
  setLoading(false);
68
68
  }
@@ -73,7 +73,7 @@ function UserDisplay({
73
73
  return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", className), children: "-" });
74
74
  }
75
75
  if (loading) {
76
- return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", className), children: "Cargando..." });
76
+ return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", className), children: "Loading..." });
77
77
  }
78
78
  if (error || !userData) {
79
79
  return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", className), children: value });
@@ -1 +1 @@
1
- {"version":3,"file":"user-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/user-select.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,KAAK,aAAa,GAAG,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAElF,UAAU,eAAe;IACvB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,QAAgB,EAChB,QAAQ,EACR,QAAgB,EAChB,SAAS,EACT,WAAuC,EACvC,iBAAwC,EACxC,QAAQ,EACR,QAAQ,EACR,WAAmB,EACnB,UAAe,EACf,MAAM,GACP,EAAE,eAAe,2CAmXjB"}
1
+ {"version":3,"file":"user-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/user-select.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,KAAK,aAAa,GAAG,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAElF,UAAU,eAAe;IACvB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,QAAgB,EAChB,QAAQ,EACR,QAAgB,EAChB,SAAS,EACT,WAA+B,EAC/B,iBAAqC,EACrC,QAAQ,EACR,QAAQ,EACR,WAAmB,EACnB,UAAe,EACf,MAAM,GACP,EAAE,eAAe,2CAmXjB"}