@seedgrid/fe-components 2026.4.12 → 2026.4.13
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.
- package/dist/ai/seedgrid-components.manifest.json +12888 -0
- package/dist/ai-meta/types.d.ts +58 -0
- package/dist/ai-meta/types.d.ts.map +1 -0
- package/dist/ai-meta/types.js +1 -0
- package/dist/buttons/SgButton.meta.d.ts +4 -0
- package/dist/buttons/SgButton.meta.d.ts.map +1 -0
- package/dist/buttons/SgButton.meta.js +139 -0
- package/dist/buttons/SgFloatActionButton.meta.d.ts +4 -0
- package/dist/buttons/SgFloatActionButton.meta.d.ts.map +1 -0
- package/dist/buttons/SgFloatActionButton.meta.js +132 -0
- package/dist/buttons/SgSplitButton.meta.d.ts +4 -0
- package/dist/buttons/SgSplitButton.meta.d.ts.map +1 -0
- package/dist/buttons/SgSplitButton.meta.js +132 -0
- package/dist/commons/SgAvatar.meta.d.ts +4 -0
- package/dist/commons/SgAvatar.meta.d.ts.map +1 -0
- package/dist/commons/SgAvatar.meta.js +123 -0
- package/dist/commons/SgAvatarGroup.meta.d.ts +4 -0
- package/dist/commons/SgAvatarGroup.meta.d.ts.map +1 -0
- package/dist/commons/SgAvatarGroup.meta.js +46 -0
- package/dist/commons/SgBadge.meta.d.ts +4 -0
- package/dist/commons/SgBadge.meta.d.ts.map +1 -0
- package/dist/commons/SgBadge.meta.js +132 -0
- package/dist/commons/SgBadgeOverlay.meta.d.ts +4 -0
- package/dist/commons/SgBadgeOverlay.meta.d.ts.map +1 -0
- package/dist/commons/SgBadgeOverlay.meta.js +46 -0
- package/dist/commons/SgSkeleton.meta.d.ts +4 -0
- package/dist/commons/SgSkeleton.meta.d.ts.map +1 -0
- package/dist/commons/SgSkeleton.meta.js +114 -0
- package/dist/commons/SgToastHost.meta.d.ts +4 -0
- package/dist/commons/SgToastHost.meta.d.ts.map +1 -0
- package/dist/commons/SgToastHost.meta.js +46 -0
- package/dist/commons/SgToaster.meta.d.ts +4 -0
- package/dist/commons/SgToaster.meta.d.ts.map +1 -0
- package/dist/commons/SgToaster.meta.js +48 -0
- package/dist/commons/SgWhistleHost.meta.d.ts +4 -0
- package/dist/commons/SgWhistleHost.meta.d.ts.map +1 -0
- package/dist/commons/SgWhistleHost.meta.js +46 -0
- package/dist/digits/discard-digit/SgDiscardDigit.meta.d.ts +4 -0
- package/dist/digits/discard-digit/SgDiscardDigit.meta.d.ts.map +1 -0
- package/dist/digits/discard-digit/SgDiscardDigit.meta.js +48 -0
- package/dist/digits/fade-digit/SgFadeDigit.meta.d.ts +4 -0
- package/dist/digits/fade-digit/SgFadeDigit.meta.d.ts.map +1 -0
- package/dist/digits/fade-digit/SgFadeDigit.meta.js +48 -0
- package/dist/digits/flip-digit/SgFlipDigit.meta.d.ts +4 -0
- package/dist/digits/flip-digit/SgFlipDigit.meta.d.ts.map +1 -0
- package/dist/digits/flip-digit/SgFlipDigit.meta.js +48 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.meta.d.ts +4 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.meta.d.ts.map +1 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.meta.js +48 -0
- package/dist/digits/neon-digit/SgNeonDigit.meta.d.ts +4 -0
- package/dist/digits/neon-digit/SgNeonDigit.meta.d.ts.map +1 -0
- package/dist/digits/neon-digit/SgNeonDigit.meta.js +48 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.meta.d.ts +4 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.meta.d.ts.map +1 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.meta.js +48 -0
- package/dist/digits/segment-digit/SgSegmentDigit.meta.d.ts +4 -0
- package/dist/digits/segment-digit/SgSegmentDigit.meta.d.ts.map +1 -0
- package/dist/digits/segment-digit/SgSegmentDigit.meta.js +48 -0
- package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.meta.d.ts +4 -0
- package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.meta.d.ts.map +1 -0
- package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.meta.js +48 -0
- package/dist/environment/SgEnvironmentProvider.meta.d.ts +4 -0
- package/dist/environment/SgEnvironmentProvider.meta.d.ts.map +1 -0
- package/dist/environment/SgEnvironmentProvider.meta.js +53 -0
- package/dist/gadgets/calendar/SgCalendar.meta.d.ts +4 -0
- package/dist/gadgets/calendar/SgCalendar.meta.d.ts.map +1 -0
- package/dist/gadgets/calendar/SgCalendar.meta.js +51 -0
- package/dist/gadgets/clock/SgClock.meta.d.ts +4 -0
- package/dist/gadgets/clock/SgClock.meta.d.ts.map +1 -0
- package/dist/gadgets/clock/SgClock.meta.js +50 -0
- package/dist/gadgets/clock/SgTimeProvider.meta.d.ts +4 -0
- package/dist/gadgets/clock/SgTimeProvider.meta.d.ts.map +1 -0
- package/dist/gadgets/clock/SgTimeProvider.meta.js +49 -0
- package/dist/gadgets/clock/themes/SgClockThemePicker.meta.d.ts +4 -0
- package/dist/gadgets/clock/themes/SgClockThemePicker.meta.d.ts.map +1 -0
- package/dist/gadgets/clock/themes/SgClockThemePicker.meta.js +56 -0
- package/dist/gadgets/clock/themes/SgClockThemePreview.meta.d.ts +4 -0
- package/dist/gadgets/clock/themes/SgClockThemePreview.meta.d.ts.map +1 -0
- package/dist/gadgets/clock/themes/SgClockThemePreview.meta.js +50 -0
- package/dist/gadgets/clock/themes/SgClockThemeProvider.meta.d.ts +4 -0
- package/dist/gadgets/clock/themes/SgClockThemeProvider.meta.d.ts.map +1 -0
- package/dist/gadgets/clock/themes/SgClockThemeProvider.meta.js +51 -0
- package/dist/gadgets/gauge/SgLinearGauge.meta.d.ts +4 -0
- package/dist/gadgets/gauge/SgLinearGauge.meta.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgLinearGauge.meta.js +57 -0
- package/dist/gadgets/gauge/SgRadialGauge.meta.d.ts +4 -0
- package/dist/gadgets/gauge/SgRadialGauge.meta.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgRadialGauge.meta.js +57 -0
- package/dist/gadgets/qr-code/SgQRCode.meta.d.ts +4 -0
- package/dist/gadgets/qr-code/SgQRCode.meta.d.ts.map +1 -0
- package/dist/gadgets/qr-code/SgQRCode.meta.js +48 -0
- package/dist/gadgets/string-animator/SgStringAnimator.meta.d.ts +4 -0
- package/dist/gadgets/string-animator/SgStringAnimator.meta.d.ts.map +1 -0
- package/dist/gadgets/string-animator/SgStringAnimator.meta.js +48 -0
- package/dist/i18n/SgComponentsI18nProvider.meta.d.ts +4 -0
- package/dist/i18n/SgComponentsI18nProvider.meta.d.ts.map +1 -0
- package/dist/i18n/SgComponentsI18nProvider.meta.js +50 -0
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/inputs/SgAutocomplete.meta.d.ts +4 -0
- package/dist/inputs/SgAutocomplete.meta.d.ts.map +1 -0
- package/dist/inputs/SgAutocomplete.meta.js +52 -0
- package/dist/inputs/SgCheckboxGroup.meta.d.ts +4 -0
- package/dist/inputs/SgCheckboxGroup.meta.d.ts.map +1 -0
- package/dist/inputs/SgCheckboxGroup.meta.js +51 -0
- package/dist/inputs/SgCombobox.meta.d.ts +4 -0
- package/dist/inputs/SgCombobox.meta.d.ts.map +1 -0
- package/dist/inputs/SgCombobox.meta.js +52 -0
- package/dist/inputs/SgDatatable.meta.d.ts +4 -0
- package/dist/inputs/SgDatatable.meta.d.ts.map +1 -0
- package/dist/inputs/SgDatatable.meta.js +51 -0
- package/dist/inputs/SgInputBirthDate.meta.d.ts +4 -0
- package/dist/inputs/SgInputBirthDate.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputBirthDate.meta.js +80 -0
- package/dist/inputs/SgInputCNPJ.meta.d.ts +4 -0
- package/dist/inputs/SgInputCNPJ.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputCNPJ.meta.js +81 -0
- package/dist/inputs/SgInputCPF.meta.d.ts +4 -0
- package/dist/inputs/SgInputCPF.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputCPF.meta.js +80 -0
- package/dist/inputs/SgInputCPFCNPJ.meta.d.ts +4 -0
- package/dist/inputs/SgInputCPFCNPJ.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputCPFCNPJ.meta.js +80 -0
- package/dist/inputs/SgInputCurrency.meta.d.ts +4 -0
- package/dist/inputs/SgInputCurrency.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputCurrency.meta.js +136 -0
- package/dist/inputs/SgInputDate.meta.d.ts +4 -0
- package/dist/inputs/SgInputDate.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputDate.meta.js +136 -0
- package/dist/inputs/SgInputEmail.meta.d.ts +4 -0
- package/dist/inputs/SgInputEmail.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputEmail.meta.js +81 -0
- package/dist/inputs/SgInputNumber.meta.d.ts +4 -0
- package/dist/inputs/SgInputNumber.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputNumber.meta.js +137 -0
- package/dist/inputs/SgInputOTP.js +1 -1
- package/dist/inputs/SgInputOTP.meta.d.ts +4 -0
- package/dist/inputs/SgInputOTP.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputOTP.meta.js +80 -0
- package/dist/inputs/SgInputPassword.meta.d.ts +4 -0
- package/dist/inputs/SgInputPassword.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputPassword.meta.js +81 -0
- package/dist/inputs/SgInputPhone.meta.d.ts +4 -0
- package/dist/inputs/SgInputPhone.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputPhone.meta.js +80 -0
- package/dist/inputs/SgInputPostalCode.meta.d.ts +4 -0
- package/dist/inputs/SgInputPostalCode.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputPostalCode.meta.js +81 -0
- package/dist/inputs/SgInputText.meta.d.ts +4 -0
- package/dist/inputs/SgInputText.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputText.meta.js +138 -0
- package/dist/inputs/SgInputTextarea.meta.d.ts +4 -0
- package/dist/inputs/SgInputTextarea.meta.d.ts.map +1 -0
- package/dist/inputs/SgInputTextarea.meta.js +136 -0
- package/dist/inputs/SgOrderList.meta.d.ts +4 -0
- package/dist/inputs/SgOrderList.meta.d.ts.map +1 -0
- package/dist/inputs/SgOrderList.meta.js +51 -0
- package/dist/inputs/SgPickList.meta.d.ts +4 -0
- package/dist/inputs/SgPickList.meta.d.ts.map +1 -0
- package/dist/inputs/SgPickList.meta.js +51 -0
- package/dist/inputs/SgRadioGroup.meta.d.ts +4 -0
- package/dist/inputs/SgRadioGroup.meta.d.ts.map +1 -0
- package/dist/inputs/SgRadioGroup.meta.js +51 -0
- package/dist/inputs/SgRating.meta.d.ts +4 -0
- package/dist/inputs/SgRating.meta.d.ts.map +1 -0
- package/dist/inputs/SgRating.meta.js +51 -0
- package/dist/inputs/SgSlider.meta.d.ts +4 -0
- package/dist/inputs/SgSlider.meta.d.ts.map +1 -0
- package/dist/inputs/SgSlider.meta.js +51 -0
- package/dist/inputs/SgStepperInput.meta.d.ts +4 -0
- package/dist/inputs/SgStepperInput.meta.d.ts.map +1 -0
- package/dist/inputs/SgStepperInput.meta.js +51 -0
- package/dist/inputs/SgTextEditor.meta.d.ts +4 -0
- package/dist/inputs/SgTextEditor.meta.d.ts.map +1 -0
- package/dist/inputs/SgTextEditor.meta.js +51 -0
- package/dist/inputs/SgToggleSwitch.meta.d.ts +4 -0
- package/dist/inputs/SgToggleSwitch.meta.d.ts.map +1 -0
- package/dist/inputs/SgToggleSwitch.meta.js +51 -0
- package/dist/layout/SgAccordion.meta.d.ts +4 -0
- package/dist/layout/SgAccordion.meta.d.ts.map +1 -0
- package/dist/layout/SgAccordion.meta.js +131 -0
- package/dist/layout/SgBreadcrumb.meta.d.ts +4 -0
- package/dist/layout/SgBreadcrumb.meta.d.ts.map +1 -0
- package/dist/layout/SgBreadcrumb.meta.js +125 -0
- package/dist/layout/SgCard.meta.d.ts +4 -0
- package/dist/layout/SgCard.meta.d.ts.map +1 -0
- package/dist/layout/SgCard.meta.js +132 -0
- package/dist/layout/SgCarousel.meta.d.ts +4 -0
- package/dist/layout/SgCarousel.meta.d.ts.map +1 -0
- package/dist/layout/SgCarousel.meta.js +50 -0
- package/dist/layout/SgDockLayout.meta.d.ts +4 -0
- package/dist/layout/SgDockLayout.meta.d.ts.map +1 -0
- package/dist/layout/SgDockLayout.meta.js +47 -0
- package/dist/layout/SgDockScreen.meta.d.ts +4 -0
- package/dist/layout/SgDockScreen.meta.d.ts.map +1 -0
- package/dist/layout/SgDockScreen.meta.js +49 -0
- package/dist/layout/SgDockZone.meta.d.ts +4 -0
- package/dist/layout/SgDockZone.meta.d.ts.map +1 -0
- package/dist/layout/SgDockZone.meta.js +43 -0
- package/dist/layout/SgExpandablePanel.meta.d.ts +4 -0
- package/dist/layout/SgExpandablePanel.meta.d.ts.map +1 -0
- package/dist/layout/SgExpandablePanel.meta.js +50 -0
- package/dist/layout/SgGrid.meta.d.ts +4 -0
- package/dist/layout/SgGrid.meta.d.ts.map +1 -0
- package/dist/layout/SgGrid.meta.js +124 -0
- package/dist/layout/SgGroupBox.meta.d.ts +4 -0
- package/dist/layout/SgGroupBox.meta.d.ts.map +1 -0
- package/dist/layout/SgGroupBox.meta.js +99 -0
- package/dist/layout/SgMenu.meta.d.ts +4 -0
- package/dist/layout/SgMenu.meta.d.ts.map +1 -0
- package/dist/layout/SgMenu.meta.js +137 -0
- package/dist/layout/SgPageControl.meta.d.ts +4 -0
- package/dist/layout/SgPageControl.meta.d.ts.map +1 -0
- package/dist/layout/SgPageControl.meta.js +50 -0
- package/dist/layout/SgPageControlPage.meta.d.ts +4 -0
- package/dist/layout/SgPageControlPage.meta.d.ts.map +1 -0
- package/dist/layout/SgPageControlPage.meta.js +47 -0
- package/dist/layout/SgPanel.meta.d.ts +4 -0
- package/dist/layout/SgPanel.meta.d.ts.map +1 -0
- package/dist/layout/SgPanel.meta.js +140 -0
- package/dist/layout/SgScreen.meta.d.ts +4 -0
- package/dist/layout/SgScreen.meta.d.ts.map +1 -0
- package/dist/layout/SgScreen.meta.js +113 -0
- package/dist/layout/SgStack.meta.d.ts +4 -0
- package/dist/layout/SgStack.meta.d.ts.map +1 -0
- package/dist/layout/SgStack.meta.js +126 -0
- package/dist/layout/SgToolBar.meta.d.ts +4 -0
- package/dist/layout/SgToolBar.meta.d.ts.map +1 -0
- package/dist/layout/SgToolBar.meta.js +131 -0
- package/dist/layout/SgToolbarIconButton.meta.d.ts +4 -0
- package/dist/layout/SgToolbarIconButton.meta.d.ts.map +1 -0
- package/dist/layout/SgToolbarIconButton.meta.js +48 -0
- package/dist/layout/SgTreeView.meta.d.ts +4 -0
- package/dist/layout/SgTreeView.meta.d.ts.map +1 -0
- package/dist/layout/SgTreeView.meta.js +132 -0
- package/dist/menus/SgDockMenu.meta.d.ts +4 -0
- package/dist/menus/SgDockMenu.meta.d.ts.map +1 -0
- package/dist/menus/SgDockMenu.meta.js +135 -0
- package/dist/overlay/SgConfirmationDialog.meta.d.ts +4 -0
- package/dist/overlay/SgConfirmationDialog.meta.d.ts.map +1 -0
- package/dist/overlay/SgConfirmationDialog.meta.js +128 -0
- package/dist/overlay/SgDialog.meta.d.ts +4 -0
- package/dist/overlay/SgDialog.meta.d.ts.map +1 -0
- package/dist/overlay/SgDialog.meta.js +130 -0
- package/dist/overlay/SgPopup.meta.d.ts +4 -0
- package/dist/overlay/SgPopup.meta.d.ts.map +1 -0
- package/dist/overlay/SgPopup.meta.js +129 -0
- package/dist/sandbox.cjs +31 -31
- package/dist/wizard/SgWizard.meta.d.ts +4 -0
- package/dist/wizard/SgWizard.meta.d.ts.map +1 -0
- package/dist/wizard/SgWizard.meta.js +50 -0
- package/dist/wizard/SgWizardPage.meta.d.ts +4 -0
- package/dist/wizard/SgWizardPage.meta.d.ts.map +1 -0
- package/dist/wizard/SgWizardPage.meta.js +44 -0
- package/package.json +2 -2
- package/dist/inputs/SgInputSelect.d.ts +0 -18
- package/dist/inputs/SgInputSelect.d.ts.map +0 -1
- package/dist/inputs/SgInputSelect.js +0 -139
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.otp",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputOTP",
|
|
6
|
+
slug: "sg-input-otp",
|
|
7
|
+
displayName: "SgInputOTP",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "otp",
|
|
10
|
+
description: "Campo OTP multi-slot para codigos de verificacao com suporte a mascara, colagem, eventos de conclusao e acesso por ref.",
|
|
11
|
+
tags: ["form", "otp", "verification", "code", "security", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "mask", "multi-slot", "paste-support", "on-complete", "clearable"],
|
|
13
|
+
fieldSemantics: ["otp", "verificationCode", "authCode", "securityCode", "tokenCode"],
|
|
14
|
+
props: [
|
|
15
|
+
{ name: "id", type: "string", required: true, description: "Identificador unico do componente.", semanticRole: "data", bindable: false },
|
|
16
|
+
{ name: "name", type: "string", description: "Nome do campo em formularios.", semanticRole: "data", bindable: true },
|
|
17
|
+
{ name: "label", type: "string", description: "Rotulo exibido ao usuario.", semanticRole: "label", bindable: true },
|
|
18
|
+
{ name: "mask", type: "string", default: "999999", description: "Mascara de slots para o codigo.", semanticRole: "behavior", bindable: true },
|
|
19
|
+
{ name: "required", type: "boolean", default: false, description: "Marca o campo como obrigatorio.", semanticRole: "validation", bindable: true },
|
|
20
|
+
{ name: "validateOnBlur", type: "boolean", default: true, description: "Executa validacao no blur.", semanticRole: "behavior", bindable: true },
|
|
21
|
+
{ name: "onRawChange", type: "(rawValue: string) => void", description: "Callback com o valor bruto do codigo.", semanticRole: "event", bindable: false },
|
|
22
|
+
{ name: "onComplete", type: "(value: string) => void", description: "Callback disparado ao completar o codigo.", semanticRole: "event", bindable: false },
|
|
23
|
+
{ name: "onValidation", type: "(message: string | null) => void", description: "Callback para estado de validacao.", semanticRole: "event", bindable: false }
|
|
24
|
+
],
|
|
25
|
+
states: ["default", "focused", "disabled", "readOnly", "error", "complete"],
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
id: "basic",
|
|
29
|
+
title: "Basico",
|
|
30
|
+
file: "apps/showcase/src/app/components/sg-input-otp/samples/basico.tsx.sample",
|
|
31
|
+
kind: "sample"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "playground",
|
|
35
|
+
title: "Playground",
|
|
36
|
+
file: "apps/showcase/src/app/components/sg-input-otp/sg-input-otp.tsx.playground",
|
|
37
|
+
kind: "playground"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
showcase: {
|
|
41
|
+
route: "/components/sg-input-otp",
|
|
42
|
+
hasPlayground: true,
|
|
43
|
+
hasPropsTable: true
|
|
44
|
+
},
|
|
45
|
+
sdui: {
|
|
46
|
+
rendererType: "field.otp",
|
|
47
|
+
acceptsDataBinding: true,
|
|
48
|
+
defaultProps: {
|
|
49
|
+
mask: "999999",
|
|
50
|
+
validateOnBlur: true,
|
|
51
|
+
enabled: true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export const aiHints = {
|
|
56
|
+
version: "0.1",
|
|
57
|
+
preferredUseCases: [
|
|
58
|
+
"Captura de codigo temporario de verificacao.",
|
|
59
|
+
"Fluxos de autenticacao em dois fatores e confirmacao de login.",
|
|
60
|
+
"Entradas curtas e estruturadas com conclusao automatica."
|
|
61
|
+
],
|
|
62
|
+
avoidUseCases: [
|
|
63
|
+
"Senha permanente; nesses casos prefira SgInputPassword.",
|
|
64
|
+
"Texto livre, email ou telefone.",
|
|
65
|
+
"Selecoes estruturadas ou valores monetarios."
|
|
66
|
+
],
|
|
67
|
+
synonyms: ["otp", "one time password", "verification code", "auth code", "token input"],
|
|
68
|
+
relatedEntityFields: ["otp", "verificationCode", "token", "authCode", "pinCode"],
|
|
69
|
+
compositionHints: [
|
|
70
|
+
"Combinar com SgInputEmail ou SgInputPhone em fluxos de verificacao.",
|
|
71
|
+
"Usar com SgButton para reenvio de codigo e confirmacao."
|
|
72
|
+
],
|
|
73
|
+
rankingSignals: {
|
|
74
|
+
freeText: 0.05,
|
|
75
|
+
structuredChoice: 0,
|
|
76
|
+
date: 0,
|
|
77
|
+
number: 0.72,
|
|
78
|
+
denseLayout: 0.9
|
|
79
|
+
}
|
|
80
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgInputPassword.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgInputPassword.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QAuDpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.password",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputPassword",
|
|
6
|
+
slug: "sg-input-password",
|
|
7
|
+
displayName: "SgInputPassword",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "password",
|
|
10
|
+
description: "Campo especializado para senha com validacoes de politica, alternancia de visibilidade e indicacao de forca.",
|
|
11
|
+
tags: ["form", "password", "security", "auth", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "validation", "password-policy", "strength-bar", "hide-show", "clearable"],
|
|
13
|
+
fieldSemantics: ["password", "secret", "credential", "loginPassword", "newPassword"],
|
|
14
|
+
props: [
|
|
15
|
+
{ name: "id", type: "string", required: true, description: "Identificador unico do campo.", semanticRole: "data", bindable: false },
|
|
16
|
+
{ name: "name", type: "string", description: "Nome do campo em formularios.", semanticRole: "data", bindable: true },
|
|
17
|
+
{ name: "label", type: "string", description: "Rotulo exibido ao usuario.", semanticRole: "label", bindable: true },
|
|
18
|
+
{ name: "required", type: "boolean", default: false, description: "Marca o campo como obrigatorio.", semanticRole: "validation", bindable: true },
|
|
19
|
+
{ name: "minSize", type: "number", default: 8, description: "Tamanho minimo esperado da senha.", semanticRole: "validation", bindable: true },
|
|
20
|
+
{ name: "showStrengthBar", type: "boolean", default: true, description: "Exibe barra de forca da senha.", semanticRole: "appearance", bindable: true },
|
|
21
|
+
{ name: "commonPasswordCheck", type: "boolean", default: true, description: "Bloqueia senhas comuns.", semanticRole: "validation", bindable: true },
|
|
22
|
+
{ name: "hidePassword", type: "boolean", default: true, description: "Oculta a senha inicialmente.", semanticRole: "behavior", bindable: true },
|
|
23
|
+
{ name: "onValidation", type: "(message: string | null) => void", description: "Callback para estado de validacao.", semanticRole: "event", bindable: false }
|
|
24
|
+
],
|
|
25
|
+
states: ["default", "focused", "disabled", "readOnly", "error"],
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
id: "basic",
|
|
29
|
+
title: "Basico",
|
|
30
|
+
file: "apps/showcase/src/app/components/sg-input-password/samples/basico.tsx.sample",
|
|
31
|
+
kind: "sample"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "playground",
|
|
35
|
+
title: "Playground",
|
|
36
|
+
file: "apps/showcase/src/app/components/sg-input-password/sg-input-password.tsx.playground",
|
|
37
|
+
kind: "playground"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
showcase: {
|
|
41
|
+
route: "/components/sg-input-password",
|
|
42
|
+
hasPlayground: true,
|
|
43
|
+
hasPropsTable: true
|
|
44
|
+
},
|
|
45
|
+
sdui: {
|
|
46
|
+
rendererType: "field.password",
|
|
47
|
+
acceptsDataBinding: true,
|
|
48
|
+
defaultProps: {
|
|
49
|
+
hidePassword: true,
|
|
50
|
+
showStrengthBar: true,
|
|
51
|
+
minSize: 8,
|
|
52
|
+
validateOnBlur: true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export const aiHints = {
|
|
57
|
+
version: "0.1",
|
|
58
|
+
preferredUseCases: [
|
|
59
|
+
"Captura de senha em login, cadastro e redefinicao de credencial.",
|
|
60
|
+
"Campos que exigem politica minima de seguranca.",
|
|
61
|
+
"Fluxos que precisam exibir forca de senha ou alternar visibilidade."
|
|
62
|
+
],
|
|
63
|
+
avoidUseCases: [
|
|
64
|
+
"OTP ou codigo temporario; nesses casos prefira SgInputOTP.",
|
|
65
|
+
"Texto livre, email ou identificadores publicos.",
|
|
66
|
+
"Valores numericos, monetarios ou datas."
|
|
67
|
+
],
|
|
68
|
+
synonyms: ["password", "secret", "credential input", "login password"],
|
|
69
|
+
relatedEntityFields: ["password", "newPassword", "currentPassword", "credential"],
|
|
70
|
+
compositionHints: [
|
|
71
|
+
"Combinar com SgInputEmail em login e cadastro.",
|
|
72
|
+
"Usar com SgButton para submit de autenticacao ou troca de senha."
|
|
73
|
+
],
|
|
74
|
+
rankingSignals: {
|
|
75
|
+
freeText: 0.78,
|
|
76
|
+
structuredChoice: 0,
|
|
77
|
+
date: 0,
|
|
78
|
+
number: 0,
|
|
79
|
+
denseLayout: 0.65
|
|
80
|
+
}
|
|
81
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgInputPhone.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgInputPhone.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QAsDpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.phone",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputPhone",
|
|
6
|
+
slug: "sg-input-phone",
|
|
7
|
+
displayName: "SgInputPhone",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "phone",
|
|
10
|
+
description: "Campo especializado para telefone com mascara, validacao de comprimento e integracao com formularios.",
|
|
11
|
+
tags: ["form", "phone", "contact", "mask", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "mask", "validation", "phone-format", "clearable"],
|
|
13
|
+
fieldSemantics: ["phone", "mobilePhone", "contactPhone", "telephoneNumber"],
|
|
14
|
+
props: [
|
|
15
|
+
{ name: "id", type: "string", required: true, description: "Identificador unico do campo.", semanticRole: "data", bindable: false },
|
|
16
|
+
{ name: "name", type: "string", description: "Nome do campo em formularios.", semanticRole: "data", bindable: true },
|
|
17
|
+
{ name: "label", type: "string", description: "Rotulo exibido ao usuario.", semanticRole: "label", bindable: true },
|
|
18
|
+
{ name: "required", type: "boolean", default: false, description: "Marca o campo como obrigatorio.", semanticRole: "validation", bindable: true },
|
|
19
|
+
{ name: "lengthMessage", type: "string", description: "Mensagem para telefone com tamanho invalido.", semanticRole: "validation", bindable: true },
|
|
20
|
+
{ name: "invalidMessage", type: "string", description: "Mensagem para telefone invalido.", semanticRole: "validation", bindable: true },
|
|
21
|
+
{ name: "validateOnBlur", type: "boolean", default: true, description: "Executa validacao no blur.", semanticRole: "behavior", bindable: true },
|
|
22
|
+
{ name: "inputProps", type: "InputHTMLAttributes<HTMLInputElement>", description: "Props nativos do input.", semanticRole: "appearance", bindable: false },
|
|
23
|
+
{ name: "onValidation", type: "(message: string | null) => void", description: "Callback para estado de validacao.", semanticRole: "event", bindable: false }
|
|
24
|
+
],
|
|
25
|
+
states: ["default", "focused", "disabled", "readOnly", "error"],
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
id: "basic",
|
|
29
|
+
title: "Basico",
|
|
30
|
+
file: "apps/showcase/src/app/components/sg-input-phone/samples/basico.tsx.sample",
|
|
31
|
+
kind: "sample"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "playground",
|
|
35
|
+
title: "Playground",
|
|
36
|
+
file: "apps/showcase/src/app/components/sg-input-phone/sg-input-phone.tsx.playground",
|
|
37
|
+
kind: "playground"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
showcase: {
|
|
41
|
+
route: "/components/sg-input-phone",
|
|
42
|
+
hasPlayground: true,
|
|
43
|
+
hasPropsTable: true
|
|
44
|
+
},
|
|
45
|
+
sdui: {
|
|
46
|
+
rendererType: "field.phone",
|
|
47
|
+
acceptsDataBinding: true,
|
|
48
|
+
defaultProps: {
|
|
49
|
+
clearButton: true,
|
|
50
|
+
labelPosition: "float",
|
|
51
|
+
validateOnBlur: true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export const aiHints = {
|
|
56
|
+
version: "0.1",
|
|
57
|
+
preferredUseCases: [
|
|
58
|
+
"Captura de telefone ou celular de contato.",
|
|
59
|
+
"Formularios de cadastro e atendimento com validacao basica de comprimento.",
|
|
60
|
+
"Campos que exigem mascara e inputMode numerico."
|
|
61
|
+
],
|
|
62
|
+
avoidUseCases: [
|
|
63
|
+
"Email ou outros contatos estruturados; nesses casos prefira o componente especifico.",
|
|
64
|
+
"Texto livre, observacoes ou codigos internos.",
|
|
65
|
+
"Valores monetarios, datas e selecoes estruturadas."
|
|
66
|
+
],
|
|
67
|
+
synonyms: ["phone", "telephone", "mobile", "phone input", "contact phone"],
|
|
68
|
+
relatedEntityFields: ["phone", "mobilePhone", "telephone", "contactPhone", "whatsapp"],
|
|
69
|
+
compositionHints: [
|
|
70
|
+
"Combinar com SgInputEmail e SgButton em formularios de contato.",
|
|
71
|
+
"Usar dentro de SgPanel em blocos de dados cadastrais."
|
|
72
|
+
],
|
|
73
|
+
rankingSignals: {
|
|
74
|
+
freeText: 0.1,
|
|
75
|
+
structuredChoice: 0,
|
|
76
|
+
date: 0,
|
|
77
|
+
number: 0.72,
|
|
78
|
+
denseLayout: 0.7
|
|
79
|
+
}
|
|
80
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgInputPostalCode.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgInputPostalCode.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QAuDpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.postalCode",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputPostalCode",
|
|
6
|
+
slug: "sg-input-postal-code",
|
|
7
|
+
displayName: "SgInputPostalCode",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "postal-code",
|
|
10
|
+
description: "Campo especializado para CEP e codigos postais com suporte a multiplos paises, mascaras e consulta opcional ao ViaCEP.",
|
|
11
|
+
tags: ["form", "postal-code", "cep", "address", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "mask", "validation", "country-aware", "viacep", "clearable"],
|
|
13
|
+
fieldSemantics: ["postalCode", "zipCode", "cep", "addressCode", "locationCode"],
|
|
14
|
+
props: [
|
|
15
|
+
{ name: "id", type: "string", required: true, description: "Identificador unico do campo.", semanticRole: "data", bindable: false },
|
|
16
|
+
{ name: "name", type: "string", description: "Nome do campo em formularios.", semanticRole: "data", bindable: true },
|
|
17
|
+
{ name: "label", type: "string", description: "Rotulo exibido ao usuario.", semanticRole: "label", bindable: true },
|
|
18
|
+
{ name: "country", type: "\"BR\" | \"PT\" | \"US\" | \"ES\" | \"UY\" | \"AR\" | \"PY\"", default: "BR", description: "Pais usado para mascara e validacao.", semanticRole: "behavior", bindable: true },
|
|
19
|
+
{ name: "required", type: "boolean", default: false, description: "Marca o campo como obrigatorio.", semanticRole: "validation", bindable: true },
|
|
20
|
+
{ name: "validateWithViaCep", type: "boolean", default: false, description: "Ativa consulta ao ViaCEP para BR.", semanticRole: "behavior", bindable: true },
|
|
21
|
+
{ name: "lengthMessage", type: "string", description: "Mensagem para tamanho invalido.", semanticRole: "validation", bindable: true },
|
|
22
|
+
{ name: "invalidMessage", type: "string", description: "Mensagem para codigo invalido.", semanticRole: "validation", bindable: true },
|
|
23
|
+
{ name: "onViaCepResult", type: "(data: ViaCepResponse) => void", description: "Callback com resposta da consulta ViaCEP.", semanticRole: "event", bindable: false }
|
|
24
|
+
],
|
|
25
|
+
states: ["default", "focused", "disabled", "readOnly", "error"],
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
id: "basic",
|
|
29
|
+
title: "Basico",
|
|
30
|
+
file: "apps/showcase/src/app/components/sg-input-postal-code/samples/basico.tsx.sample",
|
|
31
|
+
kind: "sample"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "playground",
|
|
35
|
+
title: "Playground",
|
|
36
|
+
file: "apps/showcase/src/app/components/sg-input-postal-code/sg-input-postal-code.tsx.playground",
|
|
37
|
+
kind: "playground"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
showcase: {
|
|
41
|
+
route: "/components/sg-input-postal-code",
|
|
42
|
+
hasPlayground: true,
|
|
43
|
+
hasPropsTable: true
|
|
44
|
+
},
|
|
45
|
+
sdui: {
|
|
46
|
+
rendererType: "field.postalCode",
|
|
47
|
+
acceptsDataBinding: true,
|
|
48
|
+
defaultProps: {
|
|
49
|
+
country: "BR",
|
|
50
|
+
clearButton: true,
|
|
51
|
+
labelPosition: "float",
|
|
52
|
+
validateWithViaCep: false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export const aiHints = {
|
|
57
|
+
version: "0.1",
|
|
58
|
+
preferredUseCases: [
|
|
59
|
+
"Captura de CEP ou codigo postal em formularios de endereco.",
|
|
60
|
+
"Campos de localizacao com comportamento dependente do pais.",
|
|
61
|
+
"Fluxos brasileiros com enriquecimento via ViaCEP."
|
|
62
|
+
],
|
|
63
|
+
avoidUseCases: [
|
|
64
|
+
"Texto livre de endereco completo; nesses casos use campo textual complementar.",
|
|
65
|
+
"Documentos pessoais, telefone ou email.",
|
|
66
|
+
"Valores monetarios, datas ou selecoes estruturadas."
|
|
67
|
+
],
|
|
68
|
+
synonyms: ["postal code", "zip code", "cep", "zipcode", "address code"],
|
|
69
|
+
relatedEntityFields: ["postalCode", "zipCode", "cep", "addressPostalCode"],
|
|
70
|
+
compositionHints: [
|
|
71
|
+
"Combinar com SgInputText para logradouro e complemento.",
|
|
72
|
+
"Usar com SgPanel em blocos de endereco."
|
|
73
|
+
],
|
|
74
|
+
rankingSignals: {
|
|
75
|
+
freeText: 0.08,
|
|
76
|
+
structuredChoice: 0,
|
|
77
|
+
date: 0,
|
|
78
|
+
number: 0.76,
|
|
79
|
+
denseLayout: 0.72
|
|
80
|
+
}
|
|
81
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgInputText.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgInputText.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QAgHpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.text",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputText",
|
|
6
|
+
slug: "sg-input-text",
|
|
7
|
+
displayName: "SgInputText",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "text",
|
|
10
|
+
description: "Campo textual de uso geral com suporte a react-hook-form, validacao, contador de caracteres e prefixo/sufixo.",
|
|
11
|
+
tags: ["form", "text", "field", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "controlled", "validation", "clearable", "prefix-suffix", "char-counter"],
|
|
13
|
+
fieldSemantics: ["freeText", "shortText", "name", "title", "code", "identifier"],
|
|
14
|
+
props: [
|
|
15
|
+
{
|
|
16
|
+
name: "id",
|
|
17
|
+
type: "string",
|
|
18
|
+
required: true,
|
|
19
|
+
description: "Identificador unico do campo.",
|
|
20
|
+
semanticRole: "data",
|
|
21
|
+
bindable: false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "name",
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Nome do campo para formularios.",
|
|
27
|
+
semanticRole: "data",
|
|
28
|
+
bindable: true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "label",
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Rotulo principal exibido ao usuario.",
|
|
34
|
+
semanticRole: "label",
|
|
35
|
+
bindable: true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "placeholder",
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Texto de apoio dentro do input.",
|
|
41
|
+
semanticRole: "label",
|
|
42
|
+
bindable: true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "required",
|
|
46
|
+
type: "boolean",
|
|
47
|
+
default: false,
|
|
48
|
+
description: "Marca o campo como obrigatorio.",
|
|
49
|
+
semanticRole: "validation",
|
|
50
|
+
bindable: true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "readOnly",
|
|
54
|
+
type: "boolean",
|
|
55
|
+
default: false,
|
|
56
|
+
description: "Impede edicao mantendo foco e leitura.",
|
|
57
|
+
semanticRole: "appearance",
|
|
58
|
+
bindable: true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "maxLength",
|
|
62
|
+
type: "number",
|
|
63
|
+
description: "Limite maximo de caracteres.",
|
|
64
|
+
semanticRole: "validation",
|
|
65
|
+
bindable: true
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "minLength",
|
|
69
|
+
type: "number",
|
|
70
|
+
description: "Limite minimo de caracteres.",
|
|
71
|
+
semanticRole: "validation",
|
|
72
|
+
bindable: true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "onChange",
|
|
76
|
+
type: "(value: string) => void",
|
|
77
|
+
description: "Callback com o valor textual atual.",
|
|
78
|
+
semanticRole: "event",
|
|
79
|
+
bindable: false
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
states: ["default", "focused", "disabled", "readOnly", "error"],
|
|
83
|
+
examples: [
|
|
84
|
+
{
|
|
85
|
+
id: "basic-rhf",
|
|
86
|
+
title: "Basico com react-hook-form",
|
|
87
|
+
file: "apps/showcase/src/app/components/sg-input-text/samples/basico-rhf.tsx.sample",
|
|
88
|
+
kind: "sample"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "playground",
|
|
92
|
+
title: "Playground",
|
|
93
|
+
file: "apps/showcase/src/app/components/sg-input-text/sg-input-text.tsx.playground",
|
|
94
|
+
kind: "playground"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
showcase: {
|
|
98
|
+
route: "/components/sg-input-text",
|
|
99
|
+
hasPlayground: true,
|
|
100
|
+
hasPropsTable: true
|
|
101
|
+
},
|
|
102
|
+
sdui: {
|
|
103
|
+
rendererType: "field.text",
|
|
104
|
+
acceptsDataBinding: true,
|
|
105
|
+
defaultProps: {
|
|
106
|
+
clearButton: true,
|
|
107
|
+
labelPosition: "float",
|
|
108
|
+
withBorder: true,
|
|
109
|
+
validateOnBlur: true
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
export const aiHints = {
|
|
114
|
+
version: "0.1",
|
|
115
|
+
preferredUseCases: [
|
|
116
|
+
"Campos textuais curtos em formularios CRUD.",
|
|
117
|
+
"Captura de nome, titulo, codigo ou identificador textual.",
|
|
118
|
+
"Entradas livres que precisam de validacao e integracao com react-hook-form."
|
|
119
|
+
],
|
|
120
|
+
avoidUseCases: [
|
|
121
|
+
"Texto longo ou rico; nesses casos prefira SgInputTextArea ou SgTextEditor.",
|
|
122
|
+
"Escolhas fechadas; nesses casos prefira SgCombobox, SgAutocomplete ou SgRadioGroup.",
|
|
123
|
+
"Datas, numeros ou valores com mascara especializada."
|
|
124
|
+
],
|
|
125
|
+
synonyms: ["text field", "text input", "campo texto", "campo livre"],
|
|
126
|
+
relatedEntityFields: ["name", "title", "code", "nickname", "shortDescription"],
|
|
127
|
+
compositionHints: [
|
|
128
|
+
"Combinar com SgButton para acoes de submit.",
|
|
129
|
+
"Agrupar com SgPanel ou SgGroupBox em secoes de formulario."
|
|
130
|
+
],
|
|
131
|
+
rankingSignals: {
|
|
132
|
+
freeText: 0.95,
|
|
133
|
+
structuredChoice: 0.1,
|
|
134
|
+
date: 0,
|
|
135
|
+
number: 0.1,
|
|
136
|
+
denseLayout: 0.7
|
|
137
|
+
}
|
|
138
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgInputTextarea.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgInputTextarea.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QA8GpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
export const sgMeta = {
|
|
2
|
+
version: "0.1",
|
|
3
|
+
componentId: "form.input.textarea",
|
|
4
|
+
package: "@seedgrid/fe-components",
|
|
5
|
+
exportName: "SgInputTextArea",
|
|
6
|
+
slug: "sg-input-text-area",
|
|
7
|
+
displayName: "SgInputTextArea",
|
|
8
|
+
category: "input",
|
|
9
|
+
subcategory: "textarea",
|
|
10
|
+
description: "Campo textual multi-linha para descricoes, observacoes e conteudos longos com suporte a contagem e validacao.",
|
|
11
|
+
tags: ["form", "textarea", "long-text", "notes", "rhf"],
|
|
12
|
+
capabilities: ["rhf", "controlled", "multiline", "validation", "char-counter", "word-count"],
|
|
13
|
+
fieldSemantics: ["longText", "description", "notes", "comments", "details"],
|
|
14
|
+
props: [
|
|
15
|
+
{
|
|
16
|
+
name: "id",
|
|
17
|
+
type: "string",
|
|
18
|
+
required: true,
|
|
19
|
+
description: "Identificador unico do campo multi-linha.",
|
|
20
|
+
semanticRole: "data",
|
|
21
|
+
bindable: false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "name",
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Nome do campo para formularios.",
|
|
27
|
+
semanticRole: "data",
|
|
28
|
+
bindable: true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "label",
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Rotulo principal exibido ao usuario.",
|
|
34
|
+
semanticRole: "label",
|
|
35
|
+
bindable: true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "placeholder",
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Texto de apoio para orientar o conteudo esperado.",
|
|
41
|
+
semanticRole: "label",
|
|
42
|
+
bindable: true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "required",
|
|
46
|
+
type: "boolean",
|
|
47
|
+
default: false,
|
|
48
|
+
description: "Marca o campo como obrigatorio.",
|
|
49
|
+
semanticRole: "validation",
|
|
50
|
+
bindable: true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "rows",
|
|
54
|
+
type: "number",
|
|
55
|
+
description: "Quantidade inicial de linhas visiveis.",
|
|
56
|
+
semanticRole: "appearance",
|
|
57
|
+
bindable: true
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "maxLength",
|
|
61
|
+
type: "number",
|
|
62
|
+
description: "Limite maximo de caracteres.",
|
|
63
|
+
semanticRole: "validation",
|
|
64
|
+
bindable: true
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "minLength",
|
|
68
|
+
type: "number",
|
|
69
|
+
description: "Limite minimo de caracteres.",
|
|
70
|
+
semanticRole: "validation",
|
|
71
|
+
bindable: true
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "onChange",
|
|
75
|
+
type: "(value: string) => void",
|
|
76
|
+
description: "Callback com o texto multi-linha atual.",
|
|
77
|
+
semanticRole: "event",
|
|
78
|
+
bindable: false
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
states: ["default", "focused", "disabled", "readOnly", "error"],
|
|
82
|
+
examples: [
|
|
83
|
+
{
|
|
84
|
+
id: "basic",
|
|
85
|
+
title: "Basico",
|
|
86
|
+
file: "apps/showcase/src/app/components/sg-input-text-area/samples/basico.tsx.sample",
|
|
87
|
+
kind: "sample"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: "playground",
|
|
91
|
+
title: "Playground",
|
|
92
|
+
file: "apps/showcase/src/app/components/sg-input-text-area/sg-input-text-area.tsx.playground",
|
|
93
|
+
kind: "playground"
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
showcase: {
|
|
97
|
+
route: "/components/sg-input-text-area",
|
|
98
|
+
hasPlayground: true,
|
|
99
|
+
hasPropsTable: true
|
|
100
|
+
},
|
|
101
|
+
sdui: {
|
|
102
|
+
rendererType: "field.textarea",
|
|
103
|
+
acceptsDataBinding: true,
|
|
104
|
+
defaultProps: {
|
|
105
|
+
labelPosition: "top",
|
|
106
|
+
rows: 4,
|
|
107
|
+
validateOnBlur: true
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
export const aiHints = {
|
|
112
|
+
version: "0.1",
|
|
113
|
+
preferredUseCases: [
|
|
114
|
+
"Captura de descricoes, observacoes, notas e comentarios longos.",
|
|
115
|
+
"Campos multi-linha em formularios CRUD e fluxos de atendimento.",
|
|
116
|
+
"Textos livres que exigem mais espaco e semantica de conteudo longo."
|
|
117
|
+
],
|
|
118
|
+
avoidUseCases: [
|
|
119
|
+
"Campos curtos como nome, titulo ou codigo; nesses casos prefira SgInputText.",
|
|
120
|
+
"Valores numericos ou monetarios; nesses casos prefira SgInputNumber ou SgInputCurrency.",
|
|
121
|
+
"Datas e horarios; nesses casos prefira SgInputDate."
|
|
122
|
+
],
|
|
123
|
+
synonyms: ["textarea", "long text field", "notes field", "description input"],
|
|
124
|
+
relatedEntityFields: ["description", "notes", "comments", "details", "summary"],
|
|
125
|
+
compositionHints: [
|
|
126
|
+
"Combinar com SgButton em formularios de cadastro ou atendimento.",
|
|
127
|
+
"Usar dentro de SgPanel para blocos de observacoes e descricoes."
|
|
128
|
+
],
|
|
129
|
+
rankingSignals: {
|
|
130
|
+
freeText: 0.98,
|
|
131
|
+
structuredChoice: 0,
|
|
132
|
+
date: 0,
|
|
133
|
+
number: 0,
|
|
134
|
+
denseLayout: 0.45
|
|
135
|
+
}
|
|
136
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgOrderList.meta.d.ts","sourceRoot":"","sources":["../../src/inputs/SgOrderList.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,QA8BpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAmBrB,CAAC"}
|