@seedgrid/fe-components 0.2.4

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 (270) hide show
  1. package/dist/blocked-email-domains.json +41 -0
  2. package/dist/buttons/SgButton.d.ts +43 -0
  3. package/dist/buttons/SgButton.d.ts.map +1 -0
  4. package/dist/buttons/SgButton.js +123 -0
  5. package/dist/buttons/SgFloatActionButton.d.ts +60 -0
  6. package/dist/buttons/SgFloatActionButton.d.ts.map +1 -0
  7. package/dist/buttons/SgFloatActionButton.js +532 -0
  8. package/dist/buttons/SgSpeedDial.d.ts +40 -0
  9. package/dist/buttons/SgSpeedDial.d.ts.map +1 -0
  10. package/dist/buttons/SgSpeedDial.js +149 -0
  11. package/dist/buttons/SgSplitButton.d.ts +32 -0
  12. package/dist/buttons/SgSplitButton.d.ts.map +1 -0
  13. package/dist/buttons/SgSplitButton.js +81 -0
  14. package/dist/clock/SgClock.d.ts +28 -0
  15. package/dist/clock/SgClock.d.ts.map +1 -0
  16. package/dist/clock/SgClock.js +280 -0
  17. package/dist/clock/SgTimeProvider.d.ts +13 -0
  18. package/dist/clock/SgTimeProvider.d.ts.map +1 -0
  19. package/dist/clock/SgTimeProvider.js +44 -0
  20. package/dist/clock/themes/SgClockThemePicker.d.ts +14 -0
  21. package/dist/clock/themes/SgClockThemePicker.d.ts.map +1 -0
  22. package/dist/clock/themes/SgClockThemePicker.js +71 -0
  23. package/dist/clock/themes/SgClockThemePreview.d.ts +7 -0
  24. package/dist/clock/themes/SgClockThemePreview.d.ts.map +1 -0
  25. package/dist/clock/themes/SgClockThemePreview.js +11 -0
  26. package/dist/clock/themes/builtins.d.ts +3 -0
  27. package/dist/clock/themes/builtins.d.ts.map +1 -0
  28. package/dist/clock/themes/builtins.js +241 -0
  29. package/dist/clock/themes/index.d.ts +9 -0
  30. package/dist/clock/themes/index.d.ts.map +1 -0
  31. package/dist/clock/themes/index.js +7 -0
  32. package/dist/clock/themes/provider.d.ts +19 -0
  33. package/dist/clock/themes/provider.d.ts.map +1 -0
  34. package/dist/clock/themes/provider.js +54 -0
  35. package/dist/clock/themes/registry.d.ts +9 -0
  36. package/dist/clock/themes/registry.d.ts.map +1 -0
  37. package/dist/clock/themes/registry.js +25 -0
  38. package/dist/clock/themes/renderTheme.d.ts +7 -0
  39. package/dist/clock/themes/renderTheme.d.ts.map +1 -0
  40. package/dist/clock/themes/renderTheme.js +41 -0
  41. package/dist/clock/themes/types.d.ts +21 -0
  42. package/dist/clock/themes/types.d.ts.map +1 -0
  43. package/dist/clock/themes/types.js +1 -0
  44. package/dist/clock/themes/urlThemeCache.d.ts +2 -0
  45. package/dist/clock/themes/urlThemeCache.d.ts.map +1 -0
  46. package/dist/clock/themes/urlThemeCache.js +11 -0
  47. package/dist/clock/themes/useDarkFlag.d.ts +2 -0
  48. package/dist/clock/themes/useDarkFlag.d.ts.map +1 -0
  49. package/dist/clock/themes/useDarkFlag.js +14 -0
  50. package/dist/commons/SgBadge.d.ts +51 -0
  51. package/dist/commons/SgBadge.d.ts.map +1 -0
  52. package/dist/commons/SgBadge.js +141 -0
  53. package/dist/commons/SgBadgeOverlay.d.ts +13 -0
  54. package/dist/commons/SgBadgeOverlay.d.ts.map +1 -0
  55. package/dist/commons/SgBadgeOverlay.js +20 -0
  56. package/dist/commons/SgButton.d.ts +39 -0
  57. package/dist/commons/SgButton.d.ts.map +1 -0
  58. package/dist/commons/SgButton.js +116 -0
  59. package/dist/commons/SgPopup.d.ts +42 -0
  60. package/dist/commons/SgPopup.d.ts.map +1 -0
  61. package/dist/commons/SgPopup.js +218 -0
  62. package/dist/commons/SgToast.d.ts +44 -0
  63. package/dist/commons/SgToast.d.ts.map +1 -0
  64. package/dist/commons/SgToast.js +97 -0
  65. package/dist/commons/SgToaster.d.ts +11 -0
  66. package/dist/commons/SgToaster.d.ts.map +1 -0
  67. package/dist/commons/SgToaster.js +85 -0
  68. package/dist/commons/common-passwords.d.ts +2 -0
  69. package/dist/commons/common-passwords.d.ts.map +1 -0
  70. package/dist/commons/common-passwords.js +167 -0
  71. package/dist/environment/SgEnvironmentProvider.d.ts +31 -0
  72. package/dist/environment/SgEnvironmentProvider.d.ts.map +1 -0
  73. package/dist/environment/SgEnvironmentProvider.js +120 -0
  74. package/dist/environment/persistence.d.ts +44 -0
  75. package/dist/environment/persistence.d.ts.map +1 -0
  76. package/dist/environment/persistence.js +149 -0
  77. package/dist/gadgets/clock/SgClock.d.ts +18 -0
  78. package/dist/gadgets/clock/SgClock.d.ts.map +1 -0
  79. package/dist/gadgets/clock/SgClock.js +407 -0
  80. package/dist/gadgets/clock/SgTimeProvider.d.ts +13 -0
  81. package/dist/gadgets/clock/SgTimeProvider.d.ts.map +1 -0
  82. package/dist/gadgets/clock/SgTimeProvider.js +44 -0
  83. package/dist/gadgets/clock/themes/SgClockThemePicker.d.ts +14 -0
  84. package/dist/gadgets/clock/themes/SgClockThemePicker.d.ts.map +1 -0
  85. package/dist/gadgets/clock/themes/SgClockThemePicker.js +71 -0
  86. package/dist/gadgets/clock/themes/SgClockThemePreview.d.ts +7 -0
  87. package/dist/gadgets/clock/themes/SgClockThemePreview.d.ts.map +1 -0
  88. package/dist/gadgets/clock/themes/SgClockThemePreview.js +11 -0
  89. package/dist/gadgets/clock/themes/builtins.d.ts +3 -0
  90. package/dist/gadgets/clock/themes/builtins.d.ts.map +1 -0
  91. package/dist/gadgets/clock/themes/builtins.js +241 -0
  92. package/dist/gadgets/clock/themes/index.d.ts +9 -0
  93. package/dist/gadgets/clock/themes/index.d.ts.map +1 -0
  94. package/dist/gadgets/clock/themes/index.js +7 -0
  95. package/dist/gadgets/clock/themes/provider.d.ts +19 -0
  96. package/dist/gadgets/clock/themes/provider.d.ts.map +1 -0
  97. package/dist/gadgets/clock/themes/provider.js +54 -0
  98. package/dist/gadgets/clock/themes/registry.d.ts +9 -0
  99. package/dist/gadgets/clock/themes/registry.d.ts.map +1 -0
  100. package/dist/gadgets/clock/themes/registry.js +25 -0
  101. package/dist/gadgets/clock/themes/renderTheme.d.ts +7 -0
  102. package/dist/gadgets/clock/themes/renderTheme.d.ts.map +1 -0
  103. package/dist/gadgets/clock/themes/renderTheme.js +41 -0
  104. package/dist/gadgets/clock/themes/types.d.ts +21 -0
  105. package/dist/gadgets/clock/themes/types.d.ts.map +1 -0
  106. package/dist/gadgets/clock/themes/types.js +1 -0
  107. package/dist/gadgets/clock/themes/urlThemeCache.d.ts +2 -0
  108. package/dist/gadgets/clock/themes/urlThemeCache.d.ts.map +1 -0
  109. package/dist/gadgets/clock/themes/urlThemeCache.js +11 -0
  110. package/dist/gadgets/clock/themes/useDarkFlag.d.ts +2 -0
  111. package/dist/gadgets/clock/themes/useDarkFlag.d.ts.map +1 -0
  112. package/dist/gadgets/clock/themes/useDarkFlag.js +14 -0
  113. package/dist/gadgets/flip-digit/SgFlipDigit.d.ts +23 -0
  114. package/dist/gadgets/flip-digit/SgFlipDigit.d.ts.map +1 -0
  115. package/dist/gadgets/flip-digit/SgFlipDigit.js +118 -0
  116. package/dist/gadgets/flip-digit/index.d.ts +3 -0
  117. package/dist/gadgets/flip-digit/index.d.ts.map +1 -0
  118. package/dist/gadgets/flip-digit/index.js +1 -0
  119. package/dist/i18n/en-US.json +76 -0
  120. package/dist/i18n/es.json +76 -0
  121. package/dist/i18n/index.d.ts +328 -0
  122. package/dist/i18n/index.d.ts.map +1 -0
  123. package/dist/i18n/index.js +87 -0
  124. package/dist/i18n/pt-BR.json +76 -0
  125. package/dist/i18n/pt-PT.json +76 -0
  126. package/dist/index.d.ts +88 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +46 -0
  129. package/dist/inputs/FloatingInput.d.ts +13 -0
  130. package/dist/inputs/FloatingInput.d.ts.map +1 -0
  131. package/dist/inputs/FloatingInput.js +53 -0
  132. package/dist/inputs/FloatingSelect.d.ts +15 -0
  133. package/dist/inputs/FloatingSelect.d.ts.map +1 -0
  134. package/dist/inputs/FloatingSelect.js +52 -0
  135. package/dist/inputs/FloatingTextArea.d.ts +11 -0
  136. package/dist/inputs/FloatingTextArea.d.ts.map +1 -0
  137. package/dist/inputs/FloatingTextArea.js +34 -0
  138. package/dist/inputs/InputBirthDate.d.ts +13 -0
  139. package/dist/inputs/InputBirthDate.d.ts.map +1 -0
  140. package/dist/inputs/InputBirthDate.js +46 -0
  141. package/dist/inputs/InputDate.d.ts +8 -0
  142. package/dist/inputs/InputDate.d.ts.map +1 -0
  143. package/dist/inputs/InputDate.js +23 -0
  144. package/dist/inputs/InputEmail.d.ts +14 -0
  145. package/dist/inputs/InputEmail.d.ts.map +1 -0
  146. package/dist/inputs/InputEmail.js +43 -0
  147. package/dist/inputs/InputPassword.d.ts +12 -0
  148. package/dist/inputs/InputPassword.d.ts.map +1 -0
  149. package/dist/inputs/InputPassword.js +42 -0
  150. package/dist/inputs/MaskedInputs.d.ts +27 -0
  151. package/dist/inputs/MaskedInputs.d.ts.map +1 -0
  152. package/dist/inputs/MaskedInputs.js +161 -0
  153. package/dist/inputs/SgAutocomplete.d.ts +42 -0
  154. package/dist/inputs/SgAutocomplete.d.ts.map +1 -0
  155. package/dist/inputs/SgAutocomplete.js +241 -0
  156. package/dist/inputs/SgCurrencyEdit.d.ts +56 -0
  157. package/dist/inputs/SgCurrencyEdit.d.ts.map +1 -0
  158. package/dist/inputs/SgCurrencyEdit.js +496 -0
  159. package/dist/inputs/SgInputBirthDate.d.ts +13 -0
  160. package/dist/inputs/SgInputBirthDate.d.ts.map +1 -0
  161. package/dist/inputs/SgInputBirthDate.js +48 -0
  162. package/dist/inputs/SgInputCEP.d.ts +33 -0
  163. package/dist/inputs/SgInputCEP.d.ts.map +1 -0
  164. package/dist/inputs/SgInputCEP.js +117 -0
  165. package/dist/inputs/SgInputCNPJ.d.ts +20 -0
  166. package/dist/inputs/SgInputCNPJ.d.ts.map +1 -0
  167. package/dist/inputs/SgInputCNPJ.js +133 -0
  168. package/dist/inputs/SgInputCPF.d.ts +15 -0
  169. package/dist/inputs/SgInputCPF.d.ts.map +1 -0
  170. package/dist/inputs/SgInputCPF.js +70 -0
  171. package/dist/inputs/SgInputCPFCNPJ.d.ts +15 -0
  172. package/dist/inputs/SgInputCPFCNPJ.d.ts.map +1 -0
  173. package/dist/inputs/SgInputCPFCNPJ.js +92 -0
  174. package/dist/inputs/SgInputDate.d.ts +8 -0
  175. package/dist/inputs/SgInputDate.d.ts.map +1 -0
  176. package/dist/inputs/SgInputDate.js +120 -0
  177. package/dist/inputs/SgInputEmail.d.ts +16 -0
  178. package/dist/inputs/SgInputEmail.d.ts.map +1 -0
  179. package/dist/inputs/SgInputEmail.js +74 -0
  180. package/dist/inputs/SgInputFone.d.ts +15 -0
  181. package/dist/inputs/SgInputFone.d.ts.map +1 -0
  182. package/dist/inputs/SgInputFone.js +60 -0
  183. package/dist/inputs/SgInputMasked.d.ts +27 -0
  184. package/dist/inputs/SgInputMasked.d.ts.map +1 -0
  185. package/dist/inputs/SgInputMasked.js +161 -0
  186. package/dist/inputs/SgInputNumber.d.ts +49 -0
  187. package/dist/inputs/SgInputNumber.d.ts.map +1 -0
  188. package/dist/inputs/SgInputNumber.js +438 -0
  189. package/dist/inputs/SgInputPassword.d.ts +26 -0
  190. package/dist/inputs/SgInputPassword.d.ts.map +1 -0
  191. package/dist/inputs/SgInputPassword.js +278 -0
  192. package/dist/inputs/SgInputPhone.d.ts +15 -0
  193. package/dist/inputs/SgInputPhone.d.ts.map +1 -0
  194. package/dist/inputs/SgInputPhone.js +66 -0
  195. package/dist/inputs/SgInputPostalCode.d.ts +37 -0
  196. package/dist/inputs/SgInputPostalCode.d.ts.map +1 -0
  197. package/dist/inputs/SgInputPostalCode.js +193 -0
  198. package/dist/inputs/SgInputSelect.d.ts +16 -0
  199. package/dist/inputs/SgInputSelect.d.ts.map +1 -0
  200. package/dist/inputs/SgInputSelect.js +104 -0
  201. package/dist/inputs/SgInputText.d.ts +49 -0
  202. package/dist/inputs/SgInputText.d.ts.map +1 -0
  203. package/dist/inputs/SgInputText.js +336 -0
  204. package/dist/inputs/SgInputTextArea.d.ts +41 -0
  205. package/dist/inputs/SgInputTextArea.d.ts.map +1 -0
  206. package/dist/inputs/SgInputTextArea.js +216 -0
  207. package/dist/inputs/SgTextEditor.d.ts +27 -0
  208. package/dist/inputs/SgTextEditor.d.ts.map +1 -0
  209. package/dist/inputs/SgTextEditor.js +201 -0
  210. package/dist/integration/module.d.ts +39 -0
  211. package/dist/integration/module.d.ts.map +1 -0
  212. package/dist/integration/module.js +1 -0
  213. package/dist/layout/GroupBox.d.ts +10 -0
  214. package/dist/layout/GroupBox.d.ts.map +1 -0
  215. package/dist/layout/GroupBox.js +14 -0
  216. package/dist/layout/SgCard.d.ts +35 -0
  217. package/dist/layout/SgCard.d.ts.map +1 -0
  218. package/dist/layout/SgCard.js +106 -0
  219. package/dist/layout/SgDockLayout.d.ts +37 -0
  220. package/dist/layout/SgDockLayout.d.ts.map +1 -0
  221. package/dist/layout/SgDockLayout.js +101 -0
  222. package/dist/layout/SgDockZone.d.ts +12 -0
  223. package/dist/layout/SgDockZone.d.ts.map +1 -0
  224. package/dist/layout/SgDockZone.js +20 -0
  225. package/dist/layout/SgGrid.d.ts +18 -0
  226. package/dist/layout/SgGrid.d.ts.map +1 -0
  227. package/dist/layout/SgGrid.js +101 -0
  228. package/dist/layout/SgGroupBox.d.ts +10 -0
  229. package/dist/layout/SgGroupBox.d.ts.map +1 -0
  230. package/dist/layout/SgGroupBox.js +14 -0
  231. package/dist/layout/SgMainPanel.d.ts +11 -0
  232. package/dist/layout/SgMainPanel.d.ts.map +1 -0
  233. package/dist/layout/SgMainPanel.js +70 -0
  234. package/dist/layout/SgPanel.d.ts +22 -0
  235. package/dist/layout/SgPanel.d.ts.map +1 -0
  236. package/dist/layout/SgPanel.js +33 -0
  237. package/dist/layout/SgScreen.d.ts +11 -0
  238. package/dist/layout/SgScreen.d.ts.map +1 -0
  239. package/dist/layout/SgScreen.js +18 -0
  240. package/dist/layout/SgStack.d.ts +15 -0
  241. package/dist/layout/SgStack.d.ts.map +1 -0
  242. package/dist/layout/SgStack.js +32 -0
  243. package/dist/layout/SgToolBar.d.ts +46 -0
  244. package/dist/layout/SgToolBar.d.ts.map +1 -0
  245. package/dist/layout/SgToolBar.js +199 -0
  246. package/dist/layout/SgTreeView.d.ts +80 -0
  247. package/dist/layout/SgTreeView.d.ts.map +1 -0
  248. package/dist/layout/SgTreeView.js +338 -0
  249. package/dist/manifest.d.ts +3 -0
  250. package/dist/manifest.d.ts.map +1 -0
  251. package/dist/manifest.js +19 -0
  252. package/dist/masks.d.ts +14 -0
  253. package/dist/masks.d.ts.map +1 -0
  254. package/dist/masks.js +91 -0
  255. package/dist/overlay/SgDialog.d.ts +39 -0
  256. package/dist/overlay/SgDialog.d.ts.map +1 -0
  257. package/dist/overlay/SgDialog.js +177 -0
  258. package/dist/overlay/SgPopup.d.ts +42 -0
  259. package/dist/overlay/SgPopup.d.ts.map +1 -0
  260. package/dist/overlay/SgPopup.js +218 -0
  261. package/dist/rhf.d.ts +6 -0
  262. package/dist/rhf.d.ts.map +1 -0
  263. package/dist/rhf.js +1 -0
  264. package/dist/validators.d.ts +27 -0
  265. package/dist/validators.d.ts.map +1 -0
  266. package/dist/validators.js +218 -0
  267. package/dist/wizard/SGWizard.d.ts +28 -0
  268. package/dist/wizard/SGWizard.d.ts.map +1 -0
  269. package/dist/wizard/SGWizard.js +124 -0
  270. package/package.json +53 -0
@@ -0,0 +1,87 @@
1
+ "use client";
2
+ import React from "react";
3
+ import ptBr from "./pt-BR.json";
4
+ import ptPt from "./pt-PT.json";
5
+ import enUs from "./en-US.json";
6
+ import es from "./es.json";
7
+ const DEFAULT_I18N = {
8
+ locale: "pt-BR",
9
+ messages: ptBr
10
+ };
11
+ function resolveMessages(messages) {
12
+ if (!messages)
13
+ return {};
14
+ const asNamespaces = messages;
15
+ if (asNamespaces.components)
16
+ return asNamespaces.components ?? {};
17
+ return messages;
18
+ }
19
+ function getRuntimeI18n() {
20
+ if (typeof globalThis === "undefined")
21
+ return null;
22
+ const globalConfig = globalThis;
23
+ return globalConfig.__seedgridComponentsI18n ?? null;
24
+ }
25
+ export function setComponentsI18n(input) {
26
+ if (typeof globalThis === "undefined")
27
+ return;
28
+ const current = getRuntimeI18n() ?? DEFAULT_I18N;
29
+ const mergedMessages = {
30
+ ...current.messages,
31
+ ...resolveMessages(input.messages)
32
+ };
33
+ const next = {
34
+ locale: input.locale ?? current.locale,
35
+ messages: mergedMessages
36
+ };
37
+ globalThis.__seedgridComponentsI18n = next;
38
+ }
39
+ export function getComponentsI18n() {
40
+ const runtime = getRuntimeI18n();
41
+ if (!runtime)
42
+ return DEFAULT_I18N;
43
+ return {
44
+ locale: runtime.locale ?? DEFAULT_I18N.locale,
45
+ messages: { ...DEFAULT_I18N.messages, ...(runtime.messages ?? {}) }
46
+ };
47
+ }
48
+ export function resolveComponentsI18n(input) {
49
+ if (!input)
50
+ return getComponentsI18n();
51
+ const base = getComponentsI18n();
52
+ return {
53
+ locale: input.locale ?? base.locale,
54
+ messages: { ...base.messages, ...resolveMessages(input.messages) }
55
+ };
56
+ }
57
+ const ComponentsI18nContext = React.createContext(null);
58
+ export function SgComponentsI18nProvider(props) {
59
+ const value = React.useMemo(() => {
60
+ const mergedMessages = { ...DEFAULT_I18N.messages, ...resolveMessages(props.messages) };
61
+ return {
62
+ locale: props.locale ?? DEFAULT_I18N.locale,
63
+ messages: mergedMessages
64
+ };
65
+ }, [props.locale, props.messages]);
66
+ return React.createElement(ComponentsI18nContext.Provider, { value }, props.children);
67
+ }
68
+ export function useComponentsI18n() {
69
+ return React.useContext(ComponentsI18nContext) ?? getComponentsI18n();
70
+ }
71
+ export function formatMessage(template, params) {
72
+ if (!params)
73
+ return template;
74
+ return template.replace(/\{(\w+)\}/g, (match, key) => {
75
+ const value = params[key];
76
+ return value === undefined || value === null ? match : String(value);
77
+ });
78
+ }
79
+ export function t(i18n, key, params) {
80
+ const messages = i18n?.messages ?? getComponentsI18n().messages;
81
+ const template = messages[key] ?? DEFAULT_I18N.messages[key] ?? key;
82
+ return formatMessage(template, params);
83
+ }
84
+ export const componentsMessagesPtBr = ptBr;
85
+ export const componentsMessagesPtPt = ptPt;
86
+ export const componentsMessagesEnUs = enUs;
87
+ export const componentsMessagesEs = es;
@@ -0,0 +1,76 @@
1
+ {
2
+ "components.actions.clear": "Limpar",
3
+ "components.wizard.next": "Próximo",
4
+ "components.wizard.previous": "Anterior",
5
+ "components.wizard.finish": "Finalizar",
6
+ "components.password.show": "Mostrar senha",
7
+ "components.password.hide": "Ocultar senha",
8
+ "components.password.generate": "Gerar senha",
9
+ "components.password.common": "Senha muito comum. Escolha uma mais forte.",
10
+ "components.password.minSize": "Mínimo {min} caracteres.",
11
+ "components.password.upper": "Pelo menos 1 letra maiúscula.",
12
+ "components.password.lower": "Pelo menos 1 letra minúscula.",
13
+ "components.password.number": "Pelo menos 1 número.",
14
+ "components.password.special": "Pelo menos 1 caractere especial.",
15
+ "components.password.noRepeat": "Não repetir caracteres em sequência.",
16
+ "components.password.noSeqAsc": "Não usar sequências crescentes (ex: 1234, abcd).",
17
+ "components.password.noSeqDesc": "Não usar sequências decrescentes (ex: 4321, dcba).",
18
+ "components.inputs.required": "Campo obrigatório.",
19
+ "components.inputs.maxLength": "Campo deve ter no máximo {max} letra(s).",
20
+ "components.inputs.minLength": "Campo tem de ter no mínimo {min} letra(s).",
21
+ "components.inputs.minWords": "Campo tem de ter no mínimo {min} palavra(s).",
22
+ "components.inputs.textarea.required": "Campo de preenchimento obrigatório.",
23
+ "components.inputs.textarea.maxLength": "Texto deve ter no máximo {max} letra(s).",
24
+ "components.inputs.textarea.minLength": "Texto tem de ter no mínimo {min} letra(s).",
25
+ "components.inputs.textarea.minWords": "Texto tem de ter no mínimo {min} palavra(s).",
26
+ "components.inputs.textarea.minLines": "Texto tem de ter no mínimo {min} linha(s).",
27
+ "components.inputs.cpf.length": "CPF deve ter 11 dígitos.",
28
+ "components.inputs.cpf.invalid": "CPF inválido.",
29
+ "components.inputs.cnpj.length": "CNPJ deve ter 14 dígitos.",
30
+ "components.inputs.cnpj.invalid": "CNPJ inválido.",
31
+ "components.inputs.postalCode.BR.length": "CEP deve ter 8 dígitos.",
32
+ "components.inputs.postalCode.BR.invalid": "CEP inválido.",
33
+ "components.inputs.postalCode.PT.length": "Código postal deve ter 7 dígitos.",
34
+ "components.inputs.postalCode.PT.invalid": "Código postal inválido.",
35
+ "components.inputs.postalCode.US.length": "ZIP code deve ter 5 ou 9 dígitos.",
36
+ "components.inputs.postalCode.US.invalid": "ZIP code inválido.",
37
+ "components.inputs.postalCode.ES.length": "Código postal deve ter 5 dígitos.",
38
+ "components.inputs.postalCode.ES.invalid": "Código postal inválido.",
39
+ "components.inputs.postalCode.UY.length": "Código postal deve ter 5 dígitos.",
40
+ "components.inputs.postalCode.UY.invalid": "Código postal inválido.",
41
+ "components.inputs.postalCode.AR.length": "Código postal deve ter 4 ou 8 caracteres.",
42
+ "components.inputs.postalCode.AR.invalid": "Código postal inválido.",
43
+ "components.inputs.postalCode.PY.length": "Código postal deve ter 6 dígitos.",
44
+ "components.inputs.postalCode.PY.invalid": "Código postal inválido.",
45
+ "components.inputs.phone.invalid": "Telefone inválido.",
46
+ "components.inputs.email.invalid": "Email inválido.",
47
+ "components.inputs.email.tempInvalid": "Email temporário inválido.",
48
+ "components.inputs.date.invalid": "Data inválida.",
49
+ "components.inputs.date.range": "Data deve estar entre {min} e {max}.",
50
+ "components.inputs.date.min": "Data deve ser a partir de {min}.",
51
+ "components.inputs.date.max": "Data deve ser até {max}.",
52
+ "components.inputs.birthdate.required": "Informe a data de nascimento.",
53
+ "components.validators.password.empty": "Senha não pode ser vazia.",
54
+ "components.validators.password.minSize": "mínimo de {min} caracteres",
55
+ "components.validators.password.upper": "deve conter letra maiúscula",
56
+ "components.validators.password.lower": "deve conter letra minúscula",
57
+ "components.validators.password.number": "deve conter número",
58
+ "components.validators.password.special": "deve conter caractere especial",
59
+ "components.validators.password.sequence": "não pode conter sequências (ex.: abc, 123)",
60
+ "components.validators.password.repeated": "não pode conter caracteres repetidos em série (ex.: aaa, 1111)",
61
+ "components.validators.password.invalid": "Senha inválida: {reasons}",
62
+ "components.validators.birthdate.configMissing": "Configuração inválida: informe minAge e/ou maxAge.",
63
+ "components.validators.birthdate.configRange": "Configuração inválida: minAge deve ser <= maxAge.",
64
+ "components.validators.birthdate.invalidDate": "Data inválida.",
65
+ "components.validators.birthdate.ageBetween": "A idade deve estar entre {min} e {max} anos.",
66
+ "components.validators.birthdate.ageMin": "A idade deve ser de pelo menos {min} anos.",
67
+ "components.validators.birthdate.ageMax": "A idade deve ser de no máximo {max} anos.",
68
+ "components.autocomplete.empty": "Nenhum registro encontrado.",
69
+ "components.autocomplete.loading": "Carregando...",
70
+ "components.inputs.number.min": "Valor deve ser no m\u00ednimo {min}.",
71
+ "components.inputs.number.max": "Valor deve ser no m\u00e1ximo {max}.",
72
+ "components.fab.resetConfirm": "Resetar posi\u00e7\u00e3o do bot\u00e3o?",
73
+ "components.fab.resetPosition": "Resetar posi\u00e7\u00e3o",
74
+ "components.fab.yes": "Sim",
75
+ "components.fab.no": "N\u00e3o"
76
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "components.actions.clear": "Limpar",
3
+ "components.wizard.next": "Próximo",
4
+ "components.wizard.previous": "Anterior",
5
+ "components.wizard.finish": "Finalizar",
6
+ "components.password.show": "Mostrar senha",
7
+ "components.password.hide": "Ocultar senha",
8
+ "components.password.generate": "Gerar senha",
9
+ "components.password.common": "Senha muito comum. Escolha uma mais forte.",
10
+ "components.password.minSize": "Mínimo {min} caracteres.",
11
+ "components.password.upper": "Pelo menos 1 letra maiúscula.",
12
+ "components.password.lower": "Pelo menos 1 letra minúscula.",
13
+ "components.password.number": "Pelo menos 1 número.",
14
+ "components.password.special": "Pelo menos 1 caractere especial.",
15
+ "components.password.noRepeat": "Não repetir caracteres em sequência.",
16
+ "components.password.noSeqAsc": "Não usar sequências crescentes (ex: 1234, abcd).",
17
+ "components.password.noSeqDesc": "Não usar sequências decrescentes (ex: 4321, dcba).",
18
+ "components.inputs.required": "Campo obrigatório.",
19
+ "components.inputs.maxLength": "Campo deve ter no máximo {max} letra(s).",
20
+ "components.inputs.minLength": "Campo tem de ter no mínimo {min} letra(s).",
21
+ "components.inputs.minWords": "Campo tem de ter no mínimo {min} palavra(s).",
22
+ "components.inputs.textarea.required": "Campo de preenchimento obrigatório.",
23
+ "components.inputs.textarea.maxLength": "Texto deve ter no máximo {max} letra(s).",
24
+ "components.inputs.textarea.minLength": "Texto tem de ter no mínimo {min} letra(s).",
25
+ "components.inputs.textarea.minWords": "Texto tem de ter no mínimo {min} palavra(s).",
26
+ "components.inputs.textarea.minLines": "Texto tem de ter no mínimo {min} linha(s).",
27
+ "components.inputs.cpf.length": "CPF deve ter 11 dígitos.",
28
+ "components.inputs.cpf.invalid": "CPF inválido.",
29
+ "components.inputs.cnpj.length": "CNPJ deve ter 14 dígitos.",
30
+ "components.inputs.cnpj.invalid": "CNPJ inválido.",
31
+ "components.inputs.postalCode.BR.length": "CEP deve ter 8 dígitos.",
32
+ "components.inputs.postalCode.BR.invalid": "CEP inválido.",
33
+ "components.inputs.postalCode.PT.length": "Código postal deve ter 7 dígitos.",
34
+ "components.inputs.postalCode.PT.invalid": "Código postal inválido.",
35
+ "components.inputs.postalCode.US.length": "ZIP code deve ter 5 ou 9 dígitos.",
36
+ "components.inputs.postalCode.US.invalid": "ZIP code inválido.",
37
+ "components.inputs.postalCode.ES.length": "Código postal deve ter 5 dígitos.",
38
+ "components.inputs.postalCode.ES.invalid": "Código postal inválido.",
39
+ "components.inputs.postalCode.UY.length": "Código postal deve ter 5 dígitos.",
40
+ "components.inputs.postalCode.UY.invalid": "Código postal inválido.",
41
+ "components.inputs.postalCode.AR.length": "Código postal deve ter 4 ou 8 caracteres.",
42
+ "components.inputs.postalCode.AR.invalid": "Código postal inválido.",
43
+ "components.inputs.postalCode.PY.length": "Código postal deve ter 6 dígitos.",
44
+ "components.inputs.postalCode.PY.invalid": "Código postal inválido.",
45
+ "components.inputs.phone.invalid": "Telefone inválido.",
46
+ "components.inputs.email.invalid": "Email inválido.",
47
+ "components.inputs.email.tempInvalid": "Email temporário inválido.",
48
+ "components.inputs.date.invalid": "Data inválida.",
49
+ "components.inputs.date.range": "Data deve estar entre {min} e {max}.",
50
+ "components.inputs.date.min": "Data deve ser a partir de {min}.",
51
+ "components.inputs.date.max": "Data deve ser até {max}.",
52
+ "components.inputs.birthdate.required": "Informe a data de nascimento.",
53
+ "components.validators.password.empty": "Senha não pode ser vazia.",
54
+ "components.validators.password.minSize": "mínimo de {min} caracteres",
55
+ "components.validators.password.upper": "deve conter letra maiúscula",
56
+ "components.validators.password.lower": "deve conter letra minúscula",
57
+ "components.validators.password.number": "deve conter número",
58
+ "components.validators.password.special": "deve conter caractere especial",
59
+ "components.validators.password.sequence": "não pode conter sequências (ex.: abc, 123)",
60
+ "components.validators.password.repeated": "não pode conter caracteres repetidos em série (ex.: aaa, 1111)",
61
+ "components.validators.password.invalid": "Senha inválida: {reasons}",
62
+ "components.validators.birthdate.configMissing": "Configuração inválida: informe minAge e/ou maxAge.",
63
+ "components.validators.birthdate.configRange": "Configuração inválida: minAge deve ser <= maxAge.",
64
+ "components.validators.birthdate.invalidDate": "Data inválida.",
65
+ "components.validators.birthdate.ageBetween": "A idade deve estar entre {min} e {max} anos.",
66
+ "components.validators.birthdate.ageMin": "A idade deve ser de pelo menos {min} anos.",
67
+ "components.validators.birthdate.ageMax": "A idade deve ser de no máximo {max} anos.",
68
+ "components.autocomplete.empty": "Nenhum registo encontrado.",
69
+ "components.autocomplete.loading": "A carregar...",
70
+ "components.inputs.number.min": "O valor deve ser no m\u00ednimo {min}.",
71
+ "components.inputs.number.max": "O valor deve ser no m\u00e1ximo {max}.",
72
+ "components.fab.resetConfirm": "Repor a posi\u00e7\u00e3o do bot\u00e3o?",
73
+ "components.fab.resetPosition": "Repor posi\u00e7\u00e3o",
74
+ "components.fab.yes": "Sim",
75
+ "components.fab.no": "N\u00e3o"
76
+ }
@@ -0,0 +1,88 @@
1
+ export { SgInputText } from "./inputs/SgInputText";
2
+ export type { SgInputTextProps } from "./inputs/SgInputText";
3
+ export { SgInputNumber } from "./inputs/SgInputNumber";
4
+ export type { SgInputNumberProps } from "./inputs/SgInputNumber";
5
+ export { SgCurrencyEdit } from "./inputs/SgCurrencyEdit";
6
+ export type { SgCurrencyEditProps } from "./inputs/SgCurrencyEdit";
7
+ export { SgInputTextArea } from "./inputs/SgInputTextArea";
8
+ export type { SgInputTextAreaProps } from "./inputs/SgInputTextArea";
9
+ export { SgInputSelect } from "./inputs/SgInputSelect";
10
+ export type { SgInputSelectProps } from "./inputs/SgInputSelect";
11
+ export { SgInputCPF } from "./inputs/SgInputCPF";
12
+ export type { SgInputCPFProps } from "./inputs/SgInputCPF";
13
+ export { SgInputCNPJ } from "./inputs/SgInputCNPJ";
14
+ export type { SgInputCNPJProps } from "./inputs/SgInputCNPJ";
15
+ export { SgInputCPFCNPJ } from "./inputs/SgInputCPFCNPJ";
16
+ export type { SgInputCPFCNPJProps } from "./inputs/SgInputCPFCNPJ";
17
+ export { SgInputPostalCode } from "./inputs/SgInputPostalCode";
18
+ export type { SgInputPostalCodeProps, PostalCodeCountry, ViaCepResponse } from "./inputs/SgInputPostalCode";
19
+ export { SgInputPhone } from "./inputs/SgInputPhone";
20
+ export type { SgInputPhoneProps } from "./inputs/SgInputPhone";
21
+ export { SgInputEmail } from "./inputs/SgInputEmail";
22
+ export { SgInputPassword } from "./inputs/SgInputPassword";
23
+ export { SgInputDate } from "./inputs/SgInputDate";
24
+ export { SgInputBirthDate } from "./inputs/SgInputBirthDate";
25
+ export { SgAutocomplete } from "./inputs/SgAutocomplete";
26
+ export type { SgAutocompleteItem, SgAutocompleteProps } from "./inputs/SgAutocomplete";
27
+ export { SgTextEditor } from "./inputs/SgTextEditor";
28
+ export type { SgTextEditorProps, SgTextEditorSaveMeta } from "./inputs/SgTextEditor";
29
+ export { SgButton } from "./buttons/SgButton";
30
+ export type { SgButtonProps, SgButtonCustomColors } from "./buttons/SgButton";
31
+ export { SgSplitButton } from "./buttons/SgSplitButton";
32
+ export type { SgSplitButtonProps, SgSplitButtonItem } from "./buttons/SgSplitButton";
33
+ export { SgFloatActionButton } from "./buttons/SgFloatActionButton";
34
+ export type { SgFloatActionButtonProps, SgFABAction, FABPosition, FABSeverity, FABVariant, FABSize, FABShape, FABElevation, FABAnimation, FABAnimationTrigger, FABLayoutType } from "./buttons/SgFloatActionButton";
35
+ export { SgToaster } from "./commons/SgToaster";
36
+ export type { SgToasterProps } from "./commons/SgToaster";
37
+ export { SgPopup } from "./overlay/SgPopup";
38
+ export type { SgPopupProps, SgPopupAction, SgPopupPlacement, SgPopupPreferPlacement, SgPopupAlign, SgPopupSeverity } from "./overlay/SgPopup";
39
+ export { SgDialog } from "./overlay/SgDialog";
40
+ export type { SgDialogProps, SgDialogSize, SgDialogSeverity, SgDialogAnimation } from "./overlay/SgDialog";
41
+ export { SgBadge } from "./commons/SgBadge";
42
+ export { SgBadgeOverlay } from "./commons/SgBadgeOverlay";
43
+ export type { SgBadgeProps, SgBadgeSeverity, SgBadgeVariant, SgBadgeSize, SgBadgeCustomColors, SgBadgePartsClassName } from "./commons/SgBadge";
44
+ export type { SgBadgeOverlayProps, SgBadgeOverlayPlacement } from "./commons/SgBadgeOverlay";
45
+ export { toast } from "./commons/SgToast";
46
+ export type { SgToastFn, SgToastId, SgToastType, SgToastAction, SgToastOptions, SgToastRecord, SgToastPromiseMessages } from "./commons/SgToast";
47
+ export { onlyDigits, maskCpf, maskCnpj, maskCpfCnpj, maskCep, maskPostalCodeBR, maskPostalCodePT, maskPostalCodeUS, maskPostalCodeES, maskPostalCodeUY, maskPostalCodeAR, maskPostalCodePY, maskPhone } from "./masks";
48
+ export { isValidCpf, isValidCnpj, isValidEmail, isBlockedEmailDomain, getBlockedEmailDomains, DEFAULT_BLOCKED_EMAIL_DOMAINS, validatePassword, validateBirthDate, isDateAfter, isDateBefore } from "./validators";
49
+ export type { PasswordPolicy, BirthDatePolicy } from "./validators";
50
+ export { SgGroupBox } from "./layout/SgGroupBox";
51
+ export type { SgGroupBoxProps } from "./layout/SgGroupBox";
52
+ export { SgScreen } from "./layout/SgScreen";
53
+ export type { SgScreenProps } from "./layout/SgScreen";
54
+ export { SgMainPanel } from "./layout/SgMainPanel";
55
+ export type { SgMainPanelProps } from "./layout/SgMainPanel";
56
+ export { SgPanel } from "./layout/SgPanel";
57
+ export type { SgPanelProps, SgPanelAlign, SgPanelBorderStyle, SgPanelScrollable, SgPanelPercent } from "./layout/SgPanel";
58
+ export { SgGrid } from "./layout/SgGrid";
59
+ export type { SgGridProps, SgGridColumns } from "./layout/SgGrid";
60
+ export { SgStack } from "./layout/SgStack";
61
+ export type { SgStackProps } from "./layout/SgStack";
62
+ export { SgCard } from "./layout/SgCard";
63
+ export type { SgCardProps, SgCardVariant, SgCardSize } from "./layout/SgCard";
64
+ export { SgToolBar, SgToolbarIconButton } from "./layout/SgToolBar";
65
+ export type { SgToolBarProps, SgToolBarOrientation, SgToolBarSeverity, SgToolBarSize, SgToolbarIconButtonProps } from "./layout/SgToolBar";
66
+ export { SgDockLayout } from "./layout/SgDockLayout";
67
+ export type { SgDockLayoutProps, SgDockLayoutState, SgDockToolbarState, SgDockZoneId } from "./layout/SgDockLayout";
68
+ export { SgDockZone } from "./layout/SgDockZone";
69
+ export type { SgDockZoneProps } from "./layout/SgDockZone";
70
+ export { SgTreeView, sgTreeFromJson, sgTreeFromJsonWithChecked } from "./layout/SgTreeView";
71
+ export type { SgTreeViewProps, SgTreeViewRef, SgTreeNode, SgTreeNodeJson, SgTreeIconRegistry, SgTreeConfirmBar, SgSize, SgDensity, SgTone } from "./layout/SgTreeView";
72
+ export { SgTimeProvider, useSgTime } from "./gadgets/clock/SgTimeProvider";
73
+ export { SgClock } from "./gadgets/clock/SgClock";
74
+ export type { SgTimeContextValue } from "./gadgets/clock/SgTimeProvider";
75
+ export type { SgClockProps } from "./gadgets/clock/SgClock";
76
+ export { SgFlipDigit } from "./gadgets/flip-digit";
77
+ export type { SgFlipDigitProps } from "./gadgets/flip-digit";
78
+ export { registerTheme, registerThemes, getTheme, hasTheme, listThemes, unregisterTheme, clearThemes, createThemeResolver, SgClockThemeProvider, useSgClockThemeResolver, ThemeLayer, resolveTheme, useDarkFlag, SgClockThemePicker, SgClockThemePreview, sgClockThemesBuiltIn } from "./gadgets/clock/themes";
79
+ export type { SgClockTheme, SgClockThemeRenderArgs, SgClockThemeResolveMode, SgClockThemeResolver } from "./gadgets/clock/themes";
80
+ export { SgWizard, SgWizardPage } from "./wizard/SgWizard";
81
+ export type { SgWizardProps, SgWizardPageProps, SgWizardLabels, SgWizardStepper } from "./wizard/SgWizard";
82
+ export { SgEnvironmentProvider, useSgEnvironment, useSgNamespaceProvider, buildSgPersistenceKey, createLocalStorageStrategy, createApiPersistenceStrategy, createCompositePersistenceStrategy, useSgPersistence, useSgPersistentState } from "./environment/SgEnvironmentProvider";
83
+ export type { NamespaceProvider, PersistenceStrategy, SgEnvironment, SgEnvironmentValue, SgPersistenceMode, SgPersistenceConfig, SgPersistenceRecordDTO } from "./environment/SgEnvironmentProvider";
84
+ export type { SeedGridModuleId, SeedGridProvider, SeedGridNavItem, SeedGridRoute, SeedGridI18nBundle, SeedGridRegistry, SeedGridModuleManifest } from "./integration/module";
85
+ export { componentsManifest } from "./manifest";
86
+ export { SgComponentsI18nProvider, setComponentsI18n, getComponentsI18n, resolveComponentsI18n, useComponentsI18n, t as tComponents, formatMessage as formatComponentsMessage, componentsMessagesPtBr, componentsMessagesPtPt, componentsMessagesEnUs, componentsMessagesEs } from "./i18n";
87
+ export type { SgComponentsI18n, SgComponentsI18nInput, SgComponentsLocale, SgComponentsMessages, SgComponentsMessagesByNamespace } from "./i18n";
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,46 @@
1
+ export { SgInputText } from "./inputs/SgInputText";
2
+ export { SgInputNumber } from "./inputs/SgInputNumber";
3
+ export { SgCurrencyEdit } from "./inputs/SgCurrencyEdit";
4
+ export { SgInputTextArea } from "./inputs/SgInputTextArea";
5
+ export { SgInputSelect } from "./inputs/SgInputSelect";
6
+ export { SgInputCPF } from "./inputs/SgInputCPF";
7
+ export { SgInputCNPJ } from "./inputs/SgInputCNPJ";
8
+ export { SgInputCPFCNPJ } from "./inputs/SgInputCPFCNPJ";
9
+ export { SgInputPostalCode } from "./inputs/SgInputPostalCode";
10
+ export { SgInputPhone } from "./inputs/SgInputPhone";
11
+ export { SgInputEmail } from "./inputs/SgInputEmail";
12
+ export { SgInputPassword } from "./inputs/SgInputPassword";
13
+ export { SgInputDate } from "./inputs/SgInputDate";
14
+ export { SgInputBirthDate } from "./inputs/SgInputBirthDate";
15
+ export { SgAutocomplete } from "./inputs/SgAutocomplete";
16
+ export { SgTextEditor } from "./inputs/SgTextEditor";
17
+ export { SgButton } from "./buttons/SgButton";
18
+ export { SgSplitButton } from "./buttons/SgSplitButton";
19
+ export { SgFloatActionButton } from "./buttons/SgFloatActionButton";
20
+ export { SgToaster } from "./commons/SgToaster";
21
+ export { SgPopup } from "./overlay/SgPopup";
22
+ export { SgDialog } from "./overlay/SgDialog";
23
+ export { SgBadge } from "./commons/SgBadge";
24
+ export { SgBadgeOverlay } from "./commons/SgBadgeOverlay";
25
+ export { toast } from "./commons/SgToast";
26
+ export { onlyDigits, maskCpf, maskCnpj, maskCpfCnpj, maskCep, maskPostalCodeBR, maskPostalCodePT, maskPostalCodeUS, maskPostalCodeES, maskPostalCodeUY, maskPostalCodeAR, maskPostalCodePY, maskPhone } from "./masks";
27
+ export { isValidCpf, isValidCnpj, isValidEmail, isBlockedEmailDomain, getBlockedEmailDomains, DEFAULT_BLOCKED_EMAIL_DOMAINS, validatePassword, validateBirthDate, isDateAfter, isDateBefore } from "./validators";
28
+ export { SgGroupBox } from "./layout/SgGroupBox";
29
+ export { SgScreen } from "./layout/SgScreen";
30
+ export { SgMainPanel } from "./layout/SgMainPanel";
31
+ export { SgPanel } from "./layout/SgPanel";
32
+ export { SgGrid } from "./layout/SgGrid";
33
+ export { SgStack } from "./layout/SgStack";
34
+ export { SgCard } from "./layout/SgCard";
35
+ export { SgToolBar, SgToolbarIconButton } from "./layout/SgToolBar";
36
+ export { SgDockLayout } from "./layout/SgDockLayout";
37
+ export { SgDockZone } from "./layout/SgDockZone";
38
+ export { SgTreeView, sgTreeFromJson, sgTreeFromJsonWithChecked } from "./layout/SgTreeView";
39
+ export { SgTimeProvider, useSgTime } from "./gadgets/clock/SgTimeProvider";
40
+ export { SgClock } from "./gadgets/clock/SgClock";
41
+ export { SgFlipDigit } from "./gadgets/flip-digit";
42
+ export { registerTheme, registerThemes, getTheme, hasTheme, listThemes, unregisterTheme, clearThemes, createThemeResolver, SgClockThemeProvider, useSgClockThemeResolver, ThemeLayer, resolveTheme, useDarkFlag, SgClockThemePicker, SgClockThemePreview, sgClockThemesBuiltIn } from "./gadgets/clock/themes";
43
+ export { SgWizard, SgWizardPage } from "./wizard/SgWizard";
44
+ export { SgEnvironmentProvider, useSgEnvironment, useSgNamespaceProvider, buildSgPersistenceKey, createLocalStorageStrategy, createApiPersistenceStrategy, createCompositePersistenceStrategy, useSgPersistence, useSgPersistentState } from "./environment/SgEnvironmentProvider";
45
+ export { componentsManifest } from "./manifest";
46
+ export { SgComponentsI18nProvider, setComponentsI18n, getComponentsI18n, resolveComponentsI18n, useComponentsI18n, t as tComponents, formatMessage as formatComponentsMessage, componentsMessagesPtBr, componentsMessagesPtPt, componentsMessagesEnUs, componentsMessagesEs } from "./i18n";
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export type SgFloatingInputProps = {
3
+ id: string;
4
+ label: string;
5
+ error?: string;
6
+ type?: React.HTMLInputTypeAttribute;
7
+ placeholder?: string;
8
+ className?: string;
9
+ labelClassName?: string;
10
+ inputProps: React.InputHTMLAttributes<HTMLInputElement>;
11
+ };
12
+ export declare function SgFloatingInput(props: SgFloatingInputProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=FloatingInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingInput.d.ts","sourceRoot":"","sources":["../../src/inputs/FloatingInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CACzD,CAAC;AAOF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAwE1D"}
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ function ErrorText(props) {
5
+ if (!props.message)
6
+ return null;
7
+ return _jsx("p", { className: "text-xs text-red-600", children: props.message });
8
+ }
9
+ export function SgFloatingInput(props) {
10
+ const placeholder = props.placeholder ?? props.label;
11
+ const inputRef = React.useRef(null);
12
+ const [isFilled, setIsFilled] = React.useState(() => {
13
+ const value = props.inputProps.value ?? props.inputProps.defaultValue ?? "";
14
+ return String(value).length > 0;
15
+ });
16
+ React.useEffect(() => {
17
+ const next = (inputRef.current?.value ?? "").length > 0;
18
+ if (next !== isFilled)
19
+ setIsFilled(next);
20
+ });
21
+ React.useEffect(() => {
22
+ if (props.inputProps.value === undefined)
23
+ return;
24
+ setIsFilled(String(props.inputProps.value ?? "").length > 0);
25
+ }, [props.inputProps.value]);
26
+ const setRefs = React.useCallback((node) => {
27
+ inputRef.current = node;
28
+ const ref = props.inputProps.ref;
29
+ if (!ref)
30
+ return;
31
+ if (typeof ref === "function") {
32
+ ref(node);
33
+ }
34
+ else if (typeof ref === "object") {
35
+ ref.current = node;
36
+ }
37
+ }, [props.inputProps]);
38
+ const handleChange = (event) => {
39
+ setIsFilled(event.currentTarget.value.length > 0);
40
+ props.inputProps.onChange?.(event);
41
+ };
42
+ const handleBlur = (event) => {
43
+ setIsFilled(event.currentTarget.value.length > 0);
44
+ props.inputProps.onBlur?.(event);
45
+ };
46
+ return (_jsxs("div", { children: [_jsxs("div", { className: "relative", children: [_jsx("input", { id: props.id, type: props.type ?? "text", placeholder: placeholder, className: props.className ??
47
+ "peer h-11 w-full rounded-md border border-border bg-white px-3 pt-4 text-sm shadow-sm placeholder-transparent focus:border-[hsl(var(--primary))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--primary)/0.25)]", ...props.inputProps, ref: setRefs, onChange: handleChange, onBlur: handleBlur }), _jsx("label", { htmlFor: props.id, className: [
48
+ "absolute left-3 bg-white px-1 transition-all",
49
+ isFilled ? "-top-2 text-xs text-[hsl(var(--primary))]" : "top-3 text-sm text-foreground/60",
50
+ "peer-focus:-top-2 peer-focus:text-xs peer-focus:text-[hsl(var(--primary))]",
51
+ props.labelClassName ?? ""
52
+ ].join(" "), children: props.label })] }), _jsx(ErrorText, { message: props.error })] }));
53
+ }
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ export type SgFloatingSelectProps = {
3
+ id: string;
4
+ label: string;
5
+ error?: string;
6
+ className?: string;
7
+ options: Array<{
8
+ value: string;
9
+ label: string;
10
+ }>;
11
+ selectProps: React.SelectHTMLAttributes<HTMLSelectElement>;
12
+ alwaysFloat?: boolean;
13
+ };
14
+ export declare function SgFloatingSelect(props: SgFloatingSelectProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=FloatingSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingSelect.d.ts","sourceRoot":"","sources":["../../src/inputs/FloatingSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAOF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA4F5D"}
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ function ErrorText(props) {
5
+ if (!props.message)
6
+ return null;
7
+ return _jsx("p", { className: "text-xs text-red-600", children: props.message });
8
+ }
9
+ export function SgFloatingSelect(props) {
10
+ const selectRef = React.useRef(null);
11
+ const [isFilled, setIsFilled] = React.useState(() => {
12
+ const value = props.selectProps.value ?? props.selectProps.defaultValue ?? "";
13
+ return String(value).length > 0;
14
+ });
15
+ React.useEffect(() => {
16
+ const next = (selectRef.current?.value ?? "").length > 0;
17
+ if (next !== isFilled)
18
+ setIsFilled(next);
19
+ });
20
+ React.useEffect(() => {
21
+ if (props.selectProps.value === undefined)
22
+ return;
23
+ setIsFilled(String(props.selectProps.value ?? "").length > 0);
24
+ }, [props.selectProps.value]);
25
+ const setRefs = React.useCallback((node) => {
26
+ selectRef.current = node;
27
+ const ref = props.selectProps.ref;
28
+ if (!ref)
29
+ return;
30
+ if (typeof ref === "function") {
31
+ ref(node);
32
+ }
33
+ else if (typeof ref === "object") {
34
+ ref.current = node;
35
+ }
36
+ }, [props.selectProps]);
37
+ const handleChange = (event) => {
38
+ setIsFilled(event.currentTarget.value.length > 0);
39
+ props.selectProps.onChange?.(event);
40
+ };
41
+ const handleBlur = (event) => {
42
+ setIsFilled(event.currentTarget.value.length > 0);
43
+ props.selectProps.onBlur?.(event);
44
+ };
45
+ const alwaysFloat = props.alwaysFloat ?? (props.selectProps?.["data-floating"] === "always");
46
+ return (_jsxs("div", { children: [_jsxs("div", { className: "relative", children: [alwaysFloat ? (_jsx("label", { htmlFor: props.id, className: "pointer-events-none absolute left-3 top-0 z-10 -translate-y-1/2 bg-white px-1 text-[11px] font-medium leading-none text-foreground/70", children: props.label })) : null, _jsxs("select", { id: props.id, className: props.className ??
47
+ "peer h-11 w-full rounded-md border border-border bg-white px-3 pt-4 text-sm shadow-sm focus:border-[hsl(var(--primary))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--primary)/0.25)]", ...props.selectProps, ref: setRefs, onChange: handleChange, onBlur: handleBlur, children: [_jsx("option", { value: "", children: "Selecione" }), props.options.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value)))] }), alwaysFloat ? (_jsx("label", { htmlFor: props.id, className: "sr-only", children: props.label })) : (_jsx("label", { htmlFor: props.id, className: [
48
+ "absolute left-3 bg-white px-1 transition-all",
49
+ isFilled ? "-top-2 text-xs text-[hsl(var(--primary))]" : "top-3 text-sm text-foreground/60",
50
+ "peer-focus:-top-2 peer-focus:text-xs peer-focus:text-[hsl(var(--primary))]"
51
+ ].join(" "), children: props.label }))] }), _jsx(ErrorText, { message: props.error })] }));
52
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ export type SgFloatingTextAreaProps = {
3
+ id: string;
4
+ label: string;
5
+ error?: string;
6
+ placeholder?: string;
7
+ className?: string;
8
+ textareaProps: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
9
+ };
10
+ export declare function SgFloatingTextArea(props: SgFloatingTextAreaProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=FloatingTextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingTextArea.d.ts","sourceRoot":"","sources":["../../src/inputs/FloatingTextArea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;CAClE,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAkDhE"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ function ErrorText(props) {
5
+ if (!props.message)
6
+ return null;
7
+ return _jsx("p", { className: "text-xs text-red-600", children: props.message });
8
+ }
9
+ export function SgFloatingTextArea(props) {
10
+ const placeholder = props.placeholder ?? props.label;
11
+ const [isFilled, setIsFilled] = React.useState(() => {
12
+ const value = props.textareaProps.value ?? props.textareaProps.defaultValue ?? "";
13
+ return String(value).length > 0;
14
+ });
15
+ React.useEffect(() => {
16
+ if (props.textareaProps.value === undefined)
17
+ return;
18
+ setIsFilled(String(props.textareaProps.value ?? "").length > 0);
19
+ }, [props.textareaProps.value]);
20
+ const handleChange = (event) => {
21
+ setIsFilled(event.currentTarget.value.length > 0);
22
+ props.textareaProps.onChange?.(event);
23
+ };
24
+ const handleBlur = (event) => {
25
+ setIsFilled(event.currentTarget.value.length > 0);
26
+ props.textareaProps.onBlur?.(event);
27
+ };
28
+ return (_jsxs("div", { children: [_jsxs("div", { className: "relative", children: [_jsx("textarea", { id: props.id, placeholder: placeholder, className: props.className ??
29
+ "peer min-h-[120px] w-full rounded-md border border-border bg-white px-3 pt-5 text-sm shadow-sm placeholder-transparent focus:border-[hsl(var(--primary))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--primary)/0.25)]", ...props.textareaProps, onChange: handleChange, onBlur: handleBlur }), _jsx("label", { htmlFor: props.id, className: [
30
+ "absolute left-3 bg-white px-1 transition-all",
31
+ isFilled ? "-top-2 text-xs text-[hsl(var(--primary))]" : "top-3 text-sm text-foreground/60",
32
+ "peer-focus:-top-2 peer-focus:text-xs peer-focus:text-[hsl(var(--primary))]"
33
+ ].join(" "), children: props.label })] }), _jsx(ErrorText, { message: props.error })] }));
34
+ }
@@ -0,0 +1,13 @@
1
+ import { type SgInputDateProps } from "./InputDate";
2
+ import { type BirthDatePolicy } from "../validators";
3
+ export type SgInputBirthDateProps = Omit<SgInputDateProps, "maxDate" | "minDate"> & BirthDatePolicy & {
4
+ maxDate?: string | Date;
5
+ minDate?: string | Date;
6
+ onValidation?: (message: string | null) => void;
7
+ required?: boolean;
8
+ requiredMessage?: string;
9
+ validateOnBlur?: boolean;
10
+ error?: string;
11
+ };
12
+ export declare function SgInputBirthDate(props: SgInputBirthDateProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=InputBirthDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputBirthDate.d.ts","sourceRoot":"","sources":["../../src/inputs/InputBirthDate.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC,GAC/E,eAAe,GAAG;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAyD5D"}