@seedgrid/fe-components 0.2.10 → 2026.3.1
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/buttons/SgFloatActionButton.d.ts.map +1 -1
- package/dist/buttons/SgFloatActionButton.js +168 -38
- package/dist/commons/SgAvatar.d.ts +66 -0
- package/dist/commons/SgAvatar.d.ts.map +1 -0
- package/dist/commons/SgAvatar.js +136 -0
- package/dist/commons/SgSkeleton.d.ts +16 -0
- package/dist/commons/SgSkeleton.d.ts.map +1 -0
- package/dist/commons/SgSkeleton.js +58 -0
- package/dist/digits/discard-digit/SgDiscardDigit.d.ts +39 -0
- package/dist/digits/discard-digit/SgDiscardDigit.d.ts.map +1 -0
- package/dist/digits/discard-digit/SgDiscardDigit.js +303 -0
- package/dist/digits/discard-digit/index.d.ts +3 -0
- package/dist/digits/discard-digit/index.d.ts.map +1 -0
- package/dist/digits/discard-digit/index.js +1 -0
- package/dist/digits/fade-digit/SgFadeDigit.d.ts +27 -0
- package/dist/digits/fade-digit/SgFadeDigit.d.ts.map +1 -0
- package/dist/digits/fade-digit/SgFadeDigit.js +85 -0
- package/dist/digits/fade-digit/index.d.ts +3 -0
- package/dist/digits/fade-digit/index.d.ts.map +1 -0
- package/dist/digits/fade-digit/index.js +1 -0
- package/dist/digits/flip-digit/SgFlipDigit.d.ts +27 -0
- package/dist/digits/flip-digit/SgFlipDigit.d.ts.map +1 -0
- package/dist/digits/flip-digit/SgFlipDigit.js +70 -0
- package/dist/digits/flip-digit/index.d.ts.map +1 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.d.ts +32 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.d.ts.map +1 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.js +86 -0
- package/dist/digits/matrix-digit/index.d.ts +3 -0
- package/dist/digits/matrix-digit/index.d.ts.map +1 -0
- package/dist/digits/matrix-digit/index.js +1 -0
- package/dist/digits/neon-digit/SgNeonDigit.d.ts +37 -0
- package/dist/digits/neon-digit/SgNeonDigit.d.ts.map +1 -0
- package/dist/digits/neon-digit/SgNeonDigit.js +59 -0
- package/dist/digits/neon-digit/index.d.ts +3 -0
- package/dist/digits/neon-digit/index.d.ts.map +1 -0
- package/dist/digits/neon-digit/index.js +1 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts +37 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts.map +1 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.js +47 -0
- package/dist/digits/roller3d-digit/index.d.ts +3 -0
- package/dist/digits/roller3d-digit/index.d.ts.map +1 -0
- package/dist/digits/roller3d-digit/index.js +1 -0
- package/dist/environment/SgEnvironmentProvider.d.ts +1 -0
- package/dist/environment/SgEnvironmentProvider.d.ts.map +1 -1
- package/dist/environment/SgEnvironmentProvider.js +51 -12
- package/dist/gadgets/clock/SgClock.d.ts +3 -1
- package/dist/gadgets/clock/SgClock.d.ts.map +1 -1
- package/dist/gadgets/clock/SgClock.js +111 -180
- package/dist/gadgets/clock/SgTimeProvider.d.ts +1 -0
- package/dist/gadgets/clock/SgTimeProvider.d.ts.map +1 -1
- package/dist/gadgets/clock/SgTimeProvider.js +11 -4
- package/dist/gadgets/gauge/SgLinearGauge.d.ts +59 -0
- package/dist/gadgets/gauge/SgLinearGauge.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgLinearGauge.js +258 -0
- package/dist/gadgets/gauge/SgRadialGauge.d.ts +73 -0
- package/dist/gadgets/gauge/SgRadialGauge.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgRadialGauge.js +311 -0
- package/dist/gadgets/gauge/index.d.ts +5 -0
- package/dist/gadgets/gauge/index.d.ts.map +1 -0
- package/dist/gadgets/gauge/index.js +2 -0
- package/dist/gadgets/string-animator/SgStringAnimator.d.ts +91 -0
- package/dist/gadgets/string-animator/SgStringAnimator.d.ts.map +1 -0
- package/dist/gadgets/string-animator/SgStringAnimator.js +145 -0
- package/dist/gadgets/string-animator/index.d.ts +3 -0
- package/dist/gadgets/string-animator/index.d.ts.map +1 -0
- package/dist/gadgets/string-animator/index.js +1 -0
- package/dist/i18n/en-US.json +9 -1
- package/dist/i18n/es.json +55 -47
- package/dist/i18n/index.d.ts +32 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/pt-BR.json +9 -1
- package/dist/i18n/pt-PT.json +9 -1
- package/dist/index.d.ts +46 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1
- package/dist/inputs/SgAutocomplete.js +21 -5
- package/dist/inputs/SgCombobox.d.ts.map +1 -1
- package/dist/inputs/SgCombobox.js +8 -3
- package/dist/inputs/SgRadioGroup.d.ts +37 -0
- package/dist/inputs/SgRadioGroup.d.ts.map +1 -0
- package/dist/inputs/SgRadioGroup.js +139 -0
- package/dist/inputs/SgRating.d.ts +55 -0
- package/dist/inputs/SgRating.d.ts.map +1 -0
- package/dist/inputs/SgRating.js +135 -0
- package/dist/inputs/SgSlider.d.ts +20 -0
- package/dist/inputs/SgSlider.d.ts.map +1 -0
- package/dist/inputs/SgSlider.js +40 -0
- package/dist/inputs/SgStepperInput.d.ts +22 -0
- package/dist/inputs/SgStepperInput.d.ts.map +1 -0
- package/dist/inputs/SgStepperInput.js +51 -0
- package/dist/inputs/SgTextEditor.d.ts +1 -0
- package/dist/inputs/SgTextEditor.d.ts.map +1 -1
- package/dist/inputs/SgTextEditor.js +19 -3
- package/dist/layout/SgAccordion.d.ts +39 -0
- package/dist/layout/SgAccordion.d.ts.map +1 -0
- package/dist/layout/SgAccordion.js +116 -0
- package/dist/layout/SgBreadcrumb.d.ts +33 -0
- package/dist/layout/SgBreadcrumb.d.ts.map +1 -0
- package/dist/layout/SgBreadcrumb.js +121 -0
- package/dist/layout/SgCarousel.d.ts +43 -0
- package/dist/layout/SgCarousel.d.ts.map +1 -0
- package/dist/layout/SgCarousel.js +166 -0
- package/dist/layout/SgDockLayout.d.ts +14 -0
- package/dist/layout/SgDockLayout.d.ts.map +1 -1
- package/dist/layout/SgDockLayout.js +145 -13
- package/dist/layout/SgDockScreen.d.ts +15 -0
- package/dist/layout/SgDockScreen.d.ts.map +1 -0
- package/dist/layout/SgDockScreen.js +13 -0
- package/dist/layout/SgDockZone.d.ts.map +1 -1
- package/dist/layout/SgDockZone.js +36 -2
- package/dist/layout/SgExpandablePanel.d.ts +50 -0
- package/dist/layout/SgExpandablePanel.d.ts.map +1 -0
- package/dist/layout/SgExpandablePanel.js +302 -0
- package/dist/layout/SgMainPanel.d.ts.map +1 -1
- package/dist/layout/SgMainPanel.js +36 -14
- package/dist/layout/SgMenu.d.ts +91 -0
- package/dist/layout/SgMenu.d.ts.map +1 -0
- package/dist/layout/SgMenu.js +939 -0
- package/dist/layout/SgPageControl.d.ts +49 -0
- package/dist/layout/SgPageControl.d.ts.map +1 -0
- package/dist/layout/SgPageControl.js +152 -0
- package/dist/layout/SgPanel.d.ts.map +1 -1
- package/dist/layout/SgPanel.js +10 -1
- package/dist/layout/SgScreen.d.ts +2 -0
- package/dist/layout/SgScreen.d.ts.map +1 -1
- package/dist/layout/SgScreen.js +4 -2
- package/dist/layout/SgToolBar.d.ts +9 -3
- package/dist/layout/SgToolBar.d.ts.map +1 -1
- package/dist/layout/SgToolBar.js +461 -55
- package/dist/menus/SgDockMenu.d.ts +62 -0
- package/dist/menus/SgDockMenu.d.ts.map +1 -0
- package/dist/menus/SgDockMenu.js +480 -0
- package/dist/others/SgPlayground.js +72 -72
- package/package.json +72 -63
- package/dist/gadgets/flip-digit/SgFlipDigit.d.ts +0 -23
- package/dist/gadgets/flip-digit/SgFlipDigit.d.ts.map +0 -1
- package/dist/gadgets/flip-digit/SgFlipDigit.js +0 -118
- package/dist/gadgets/flip-digit/index.d.ts.map +0 -1
- /package/dist/{gadgets → digits}/flip-digit/index.d.ts +0 -0
- /package/dist/{gadgets → digits}/flip-digit/index.js +0 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,20 +11,27 @@ export { SgInputPhone } from "./inputs/SgInputPhone";
|
|
|
11
11
|
export { SgInputEmail } from "./inputs/SgInputEmail";
|
|
12
12
|
export { SgInputPassword } from "./inputs/SgInputPassword";
|
|
13
13
|
export { SgInputOTP } from "./inputs/SgInputOTP";
|
|
14
|
+
export { SgSlider } from "./inputs/SgSlider";
|
|
15
|
+
export { SgStepperInput } from "./inputs/SgStepperInput";
|
|
14
16
|
export { SgInputDate } from "./inputs/SgInputDate";
|
|
15
17
|
export { SgInputBirthDate } from "./inputs/SgInputBirthDate";
|
|
16
18
|
export { SgToggleSwitch, SgSwitch } from "./inputs/SgToggleSwitch";
|
|
17
19
|
export { SgAutocomplete } from "./inputs/SgAutocomplete";
|
|
18
20
|
export { SgCombobox } from "./inputs/SgCombobox";
|
|
19
21
|
export { SgTextEditor } from "./inputs/SgTextEditor";
|
|
22
|
+
export { SgRating } from "./inputs/SgRating";
|
|
23
|
+
export { SgRadioGroup } from "./inputs/SgRadioGroup";
|
|
20
24
|
export { SgButton } from "./buttons/SgButton";
|
|
21
25
|
export { SgSplitButton } from "./buttons/SgSplitButton";
|
|
22
26
|
export { SgFloatActionButton } from "./buttons/SgFloatActionButton";
|
|
27
|
+
export { SgDockMenu } from "./menus/SgDockMenu";
|
|
23
28
|
export { SgToaster } from "./commons/SgToaster";
|
|
24
29
|
export { SgPopup } from "./overlay/SgPopup";
|
|
25
30
|
export { SgDialog } from "./overlay/SgDialog";
|
|
26
31
|
export { SgBadge } from "./commons/SgBadge";
|
|
27
32
|
export { SgBadgeOverlay } from "./commons/SgBadgeOverlay";
|
|
33
|
+
export { SgSkeleton } from "./commons/SgSkeleton";
|
|
34
|
+
export { SgAvatar, SgAvatarGroup } from "./commons/SgAvatar";
|
|
28
35
|
export { toast } from "./commons/SgToast";
|
|
29
36
|
export { onlyDigits, maskCpf, maskCnpj, maskCpfCnpj, maskCep, maskPostalCodeBR, maskPostalCodePT, maskPostalCodeUS, maskPostalCodeES, maskPostalCodeUY, maskPostalCodeAR, maskPostalCodePY, maskPhone } from "./masks";
|
|
30
37
|
export { isValidCpf, isValidCnpj, isValidEmail, isBlockedEmailDomain, getBlockedEmailDomains, DEFAULT_BLOCKED_EMAIL_DOMAINS, validatePassword, validateBirthDate, isDateAfter, isDateBefore } from "./validators";
|
|
@@ -35,15 +42,29 @@ export { SgPanel } from "./layout/SgPanel";
|
|
|
35
42
|
export { SgGrid } from "./layout/SgGrid";
|
|
36
43
|
export { SgStack } from "./layout/SgStack";
|
|
37
44
|
export { SgCard } from "./layout/SgCard";
|
|
45
|
+
export { SgAccordion } from "./layout/SgAccordion";
|
|
46
|
+
export { SgCarousel } from "./layout/SgCarousel";
|
|
47
|
+
export { SgExpandablePanel } from "./layout/SgExpandablePanel";
|
|
48
|
+
export { SgBreadcrumb } from "./layout/SgBreadcrumb";
|
|
49
|
+
export { SgPageControl, SgPageControlPage } from "./layout/SgPageControl";
|
|
50
|
+
export { SgMenu } from "./layout/SgMenu";
|
|
38
51
|
export { default as SgPlayground } from "./others/SgPlayground";
|
|
39
52
|
export { SgToolBar, SgToolbarIconButton } from "./layout/SgToolBar";
|
|
40
53
|
export { SgDockLayout } from "./layout/SgDockLayout";
|
|
41
54
|
export { SgDockZone } from "./layout/SgDockZone";
|
|
55
|
+
export { SgDockScreen } from "./layout/SgDockScreen";
|
|
42
56
|
export { SgTreeView, sgTreeFromJson, sgTreeFromJsonWithChecked } from "./layout/SgTreeView";
|
|
43
57
|
export { SgTimeProvider, useSgTime } from "./gadgets/clock/SgTimeProvider";
|
|
44
58
|
export { SgClock } from "./gadgets/clock/SgClock";
|
|
45
|
-
export { SgFlipDigit } from "./
|
|
59
|
+
export { SgFlipDigit } from "./digits/flip-digit";
|
|
60
|
+
export { SgFadeDigit } from "./digits/fade-digit";
|
|
61
|
+
export { SgRoller3DDigit } from "./digits/roller3d-digit";
|
|
62
|
+
export { SgMatrixDigit } from "./digits/matrix-digit";
|
|
63
|
+
export { SgNeonDigit } from "./digits/neon-digit";
|
|
64
|
+
export { SgDiscardDigit } from "./digits/discard-digit";
|
|
65
|
+
export { SgStringAnimator, SG_STRING_ANIMATOR_DEFAULT_CHARSET } from "./gadgets/string-animator";
|
|
46
66
|
export { SgQRCode } from "./gadgets/qr-code";
|
|
67
|
+
export { SgLinearGauge, SgRadialGauge } from "./gadgets/gauge";
|
|
47
68
|
export { registerTheme, registerThemes, getTheme, hasTheme, listThemes, unregisterTheme, clearThemes, createThemeResolver, SgClockThemeProvider, useSgClockThemeResolver, ThemeLayer, resolveTheme, useDarkFlag, SgClockThemePicker, SgClockThemePreview, sgClockThemesBuiltIn } from "./gadgets/clock/themes";
|
|
48
69
|
export { SgWizard, SgWizardPage } from "./wizard/SgWizard";
|
|
49
70
|
export { SgEnvironmentProvider, useSgEnvironment, useSgNamespaceProvider, buildSgPersistenceKey, createLocalStorageStrategy, createApiPersistenceStrategy, createCompositePersistenceStrategy, useSgPersistence, useSgPersistentState } from "./environment/SgEnvironmentProvider";
|
|
@@ -16,7 +16,7 @@ export function SgAutocomplete(props) {
|
|
|
16
16
|
return _jsx(SgAutocompleteBase, { ...rest });
|
|
17
17
|
}
|
|
18
18
|
function SgAutocompleteBase(props) {
|
|
19
|
-
const { value, onChange, source, mapItem, minLengthForSearch = 2, delay = 300, maxResult = 50, cacheEnabled = true, cacheTTL = 5 * 60 * 1000, showDropDownButton = false, openOnFocus = false, clearOnSelect = false, allowCustomValue = false, grouped, groupped, placeholderEmpty: placeholderEmptyProp, loadingText: loadingTextProp, onSelect, onSearch, onOpenChange, renderItem, renderGroupHeader, renderFooter, renderEmpty, formatSelection, itemTooltip, inputProps, iconButtons, enabled, readOnly, ...rest } = props;
|
|
19
|
+
const { value, onChange, source, mapItem, minLengthForSearch = 2, delay = 300, maxResult = 50, cacheEnabled = true, cacheTTL = 5 * 60 * 1000, showDropDownButton = false, openOnFocus = false, clearOnSelect = false, allowCustomValue = false, grouped, groupped, placeholderEmpty: placeholderEmptyProp, loadingText: loadingTextProp, onSelect, onSearch, onOpenChange, renderItem, renderGroupHeader, renderFooter, renderEmpty, formatSelection, itemTooltip, inputProps, iconButtons, enabled, readOnly, borderRadius, ...rest } = props;
|
|
20
20
|
const i18n = useComponentsI18n();
|
|
21
21
|
const placeholderEmpty = placeholderEmptyProp ?? t(i18n, "components.autocomplete.empty");
|
|
22
22
|
const loadingText = loadingTextProp ?? t(i18n, "components.autocomplete.loading");
|
|
@@ -33,6 +33,11 @@ function SgAutocompleteBase(props) {
|
|
|
33
33
|
const requestIdRef = React.useRef(0);
|
|
34
34
|
const openRef = React.useRef(false);
|
|
35
35
|
openRef.current = open;
|
|
36
|
+
const resolvedBorderRadius = React.useMemo(() => {
|
|
37
|
+
if (borderRadius === undefined)
|
|
38
|
+
return undefined;
|
|
39
|
+
return typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
|
|
40
|
+
}, [borderRadius]);
|
|
36
41
|
React.useEffect(() => {
|
|
37
42
|
if (value === undefined)
|
|
38
43
|
return;
|
|
@@ -95,11 +100,11 @@ function SgAutocompleteBase(props) {
|
|
|
95
100
|
}
|
|
96
101
|
}, [cacheEnabled, cacheTTL, maxResult, minLengthForSearch, onOpenChange, onSearch, source, toItem]);
|
|
97
102
|
React.useEffect(() => {
|
|
98
|
-
if (!openRef.current
|
|
103
|
+
if (!openRef.current)
|
|
99
104
|
return;
|
|
100
105
|
const handler = setTimeout(() => runSearch(inputValue), delay);
|
|
101
106
|
return () => clearTimeout(handler);
|
|
102
|
-
}, [delay, inputValue,
|
|
107
|
+
}, [delay, inputValue, runSearch]);
|
|
103
108
|
const selectItem = (item) => {
|
|
104
109
|
if (item.disabled)
|
|
105
110
|
return;
|
|
@@ -118,6 +123,13 @@ function SgAutocompleteBase(props) {
|
|
|
118
123
|
const handleInputChange = (next) => {
|
|
119
124
|
setInputValue(next);
|
|
120
125
|
onChange?.(next);
|
|
126
|
+
if (next.length === 0) {
|
|
127
|
+
setItems([]);
|
|
128
|
+
setOpen(false);
|
|
129
|
+
onOpenChange?.(false);
|
|
130
|
+
setActiveIndex(-1);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
121
133
|
if (!open && (openOnFocus || next.length >= minLengthForSearch)) {
|
|
122
134
|
setOpen(true);
|
|
123
135
|
onOpenChange?.(true);
|
|
@@ -221,8 +233,12 @@ function SgAutocompleteBase(props) {
|
|
|
221
233
|
}, onClick: () => selectItem(item), children: [renderItem ? renderItem(item, isActive) : item.label, itemTooltip ? (_jsx("div", { className: "pointer-events-none absolute left-full top-1/2 z-20 ml-2 -translate-y-1/2 rounded border border-border bg-white px-2 py-1 text-xs shadow-md opacity-0 transition-opacity group-hover:opacity-100", children: itemTooltip(item) })) : null] }, item.id));
|
|
222
234
|
});
|
|
223
235
|
};
|
|
224
|
-
return (_jsxs("div", { className: "relative", ref: wrapperRef, children: [_jsx(SgInputText, { ...rest, enabled: enabled, readOnly: readOnly, iconButtons: mergedIconButtons, inputProps: {
|
|
236
|
+
return (_jsxs("div", { className: "relative", ref: wrapperRef, children: [_jsx(SgInputText, { ...rest, enabled: enabled, readOnly: readOnly, borderRadius: borderRadius, iconButtons: mergedIconButtons, inputProps: {
|
|
225
237
|
...inputProps,
|
|
238
|
+
autoComplete: "off",
|
|
239
|
+
autoCorrect: "off",
|
|
240
|
+
autoCapitalize: "off",
|
|
241
|
+
spellCheck: false,
|
|
226
242
|
value: inputValue,
|
|
227
243
|
onChange: (event) => handleInputChange(event.currentTarget.value),
|
|
228
244
|
onBlur: (event) => {
|
|
@@ -237,5 +253,5 @@ function SgAutocompleteBase(props) {
|
|
|
237
253
|
inputProps?.onKeyDown?.(event);
|
|
238
254
|
handleKeyDown(event);
|
|
239
255
|
}
|
|
240
|
-
} }), open && !(enabled === false || readOnly) ? (_jsxs("div", { className: "absolute left-0 right-0 z-30 mt-1 overflow-hidden rounded-md border border-border bg-white shadow-lg", children: [_jsx("div", { className: "max-h-64 overflow-auto", children: listContent() }), renderFooter ? (_jsx("div", { className: "border-t border-border bg-white px-3 py-2", children: renderFooter(inputValue, items.length > 0) })) : null] })) : null] }));
|
|
256
|
+
} }), open && !(enabled === false || readOnly) ? (_jsxs("div", { className: "absolute left-0 right-0 z-30 mt-1 overflow-hidden rounded-md border border-border bg-white shadow-lg", style: resolvedBorderRadius ? { borderRadius: resolvedBorderRadius } : undefined, children: [_jsx("div", { className: "max-h-64 overflow-auto", children: listContent() }), renderFooter ? (_jsx("div", { className: "border-t border-border bg-white px-3 py-2", children: renderFooter(inputValue, items.length > 0) })) : null] })) : null] }));
|
|
241
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SgCombobox.d.ts","sourceRoot":"","sources":["../../src/inputs/SgCombobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGtF,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE5C,KAAK,mBAAmB,GAAG,IAAI,CAC7B,gBAAgB,EAChB,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAC1F,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,kBAAkB,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,kBAAkB,IAAI,mBAAmB,GAAG;IAC1E,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,kBAAkB,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACvE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5D,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC7C,CAAC;AA4DF,wBAAgB,UAAU,CAAC,CAAC,GAAG,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"SgCombobox.d.ts","sourceRoot":"","sources":["../../src/inputs/SgCombobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGtF,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE5C,KAAK,mBAAmB,GAAG,IAAI,CAC7B,gBAAgB,EAChB,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAC1F,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,kBAAkB,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,kBAAkB,IAAI,mBAAmB,GAAG;IAC1E,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,kBAAkB,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACvE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5D,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC7C,CAAC;AA4DF,wBAAgB,UAAU,CAAC,CAAC,GAAG,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,2CA6brF"}
|
|
@@ -49,7 +49,7 @@ function findTypeAheadMatchIndex(entries, query, startIndex) {
|
|
|
49
49
|
return -1;
|
|
50
50
|
}
|
|
51
51
|
export function SgCombobox(props) {
|
|
52
|
-
const { source, mapItem: mapItemProp, value, onValueChange, grouped, groupped, loadingText: loadingTextProp, emptyText: emptyTextProp, openOnFocus = false, onSelect, renderItem, renderGroupHeader, renderFooter, itemTooltip, inputProps, enabled, ...rest } = props;
|
|
52
|
+
const { source, mapItem: mapItemProp, value, onValueChange, grouped, groupped, loadingText: loadingTextProp, emptyText: emptyTextProp, openOnFocus = false, onSelect, renderItem, renderGroupHeader, renderFooter, itemTooltip, inputProps, enabled, borderRadius, ...rest } = props;
|
|
53
53
|
const i18n = useComponentsI18n();
|
|
54
54
|
const loadingText = loadingTextProp ?? t(i18n, "components.autocomplete.loading");
|
|
55
55
|
const emptyText = emptyTextProp ?? t(i18n, "components.autocomplete.empty");
|
|
@@ -68,6 +68,11 @@ export function SgCombobox(props) {
|
|
|
68
68
|
const [activeIndex, setActiveIndex] = React.useState(-1);
|
|
69
69
|
const [internalValue, setInternalValue] = React.useState(null);
|
|
70
70
|
const [lastSelectedLabel, setLastSelectedLabel] = React.useState("");
|
|
71
|
+
const resolvedBorderRadius = React.useMemo(() => {
|
|
72
|
+
if (borderRadius === undefined)
|
|
73
|
+
return undefined;
|
|
74
|
+
return typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
|
|
75
|
+
}, [borderRadius]);
|
|
71
76
|
const resolvedValue = isControlled ? value : internalValue;
|
|
72
77
|
const isDisabled = enabled === false;
|
|
73
78
|
const mapItem = React.useCallback((raw) => {
|
|
@@ -254,7 +259,7 @@ export function SgCombobox(props) {
|
|
|
254
259
|
}
|
|
255
260
|
openDropdown();
|
|
256
261
|
}, "aria-label": "Abrir lista", children: _jsx(ChevronDown, { size: 16 }) }));
|
|
257
|
-
return (_jsxs("div", { className: "relative", ref: wrapperRef, children: [_jsx(SgInputText, { ...rest, enabled: enabled, clearButton: false, readOnly: true, iconButtons: [dropdownButton], inputProps: {
|
|
262
|
+
return (_jsxs("div", { className: "relative", ref: wrapperRef, children: [_jsx(SgInputText, { ...rest, enabled: enabled, borderRadius: borderRadius, clearButton: false, readOnly: true, iconButtons: [dropdownButton], inputProps: {
|
|
258
263
|
...inputProps,
|
|
259
264
|
value: displayedValue,
|
|
260
265
|
onMouseDown: (event) => {
|
|
@@ -333,7 +338,7 @@ export function SgCombobox(props) {
|
|
|
333
338
|
}
|
|
334
339
|
}
|
|
335
340
|
}
|
|
336
|
-
} }), open && !isDisabled ? (_jsxs("div", { className: "absolute left-0 right-0 z-30 mt-1 overflow-hidden rounded-md border border-border bg-white shadow-lg", children: [_jsx("div", { className: "max-h-64 overflow-auto", children: loading ? (_jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: loadingText })) : entries.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: emptyText })) : groupedEntries ? (groupedEntries.map(({ group, list }) => (_jsxs("div", { className: "border-b border-border last:border-b-0", children: [_jsx("div", { className: "px-3 py-1 text-xs font-semibold text-muted-foreground", children: renderGroupHeader ? renderGroupHeader(group) : group || " " }), list.map(({ entry, index }) => {
|
|
341
|
+
} }), open && !isDisabled ? (_jsxs("div", { className: "absolute left-0 right-0 z-30 mt-1 overflow-hidden rounded-md border border-border bg-white shadow-lg", style: resolvedBorderRadius ? { borderRadius: resolvedBorderRadius } : undefined, children: [_jsx("div", { className: "max-h-64 overflow-auto", children: loading ? (_jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: loadingText })) : entries.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: emptyText })) : groupedEntries ? (groupedEntries.map(({ group, list }) => (_jsxs("div", { className: "border-b border-border last:border-b-0", children: [_jsx("div", { className: "px-3 py-1 text-xs font-semibold text-muted-foreground", children: renderGroupHeader ? renderGroupHeader(group) : group || " " }), list.map(({ entry, index }) => {
|
|
337
342
|
const isActive = activeIndex === index;
|
|
338
343
|
return (_jsxs("div", { className: `group relative cursor-pointer px-3 py-2 text-sm ${isActive ? "bg-muted/60" : ""} ${entry.item.disabled ? "cursor-not-allowed opacity-50" : "hover:bg-muted/40"}`, onMouseEnter: () => setActiveIndex(index), onMouseDown: (event) => {
|
|
339
344
|
event.preventDefault();
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { UseFormRegister, FieldValues } from "react-hook-form";
|
|
3
|
+
import { type SgGroupBoxProps } from "../layout/SgGroupBox";
|
|
4
|
+
export type SgRadioGroupOrientation = "horizontal" | "vertical";
|
|
5
|
+
export type SgRadioGroupSelectionStyle = "radio" | "highlight";
|
|
6
|
+
export interface SgRadioGroupOption {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string | number;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface SgRadioGroupProps {
|
|
13
|
+
id?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
source: SgRadioGroupOption[];
|
|
16
|
+
value?: string | number;
|
|
17
|
+
orientation?: SgRadioGroupOrientation;
|
|
18
|
+
selectionStyle?: SgRadioGroupSelectionStyle;
|
|
19
|
+
iconOnly?: boolean;
|
|
20
|
+
showCancel?: boolean;
|
|
21
|
+
cancelLabel?: string;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
readOnly?: boolean;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
onChange?: (value: string | number | null) => void;
|
|
26
|
+
name?: string;
|
|
27
|
+
control?: any;
|
|
28
|
+
register?: UseFormRegister<FieldValues>;
|
|
29
|
+
error?: string;
|
|
30
|
+
className?: string;
|
|
31
|
+
optionClassName?: string;
|
|
32
|
+
groupBoxProps?: Omit<Partial<SgGroupBoxProps>, "children" | "title"> & {
|
|
33
|
+
title?: string;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export declare function SgRadioGroup(props: SgRadioGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=SgRadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgRadioGroup.d.ts","sourceRoot":"","sources":["../../src/inputs/SgRadioGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAc,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGxE,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,UAAU,CAAC;AAChE,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAGnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAsUpD"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { Controller } from "react-hook-form";
|
|
5
|
+
import { SgGroupBox } from "../layout/SgGroupBox";
|
|
6
|
+
import { t, useComponentsI18n } from "../i18n";
|
|
7
|
+
export function SgRadioGroup(props) {
|
|
8
|
+
const i18n = useComponentsI18n();
|
|
9
|
+
const { id, title, source, value: controlledValue, orientation = "vertical", selectionStyle = "radio", iconOnly = false, showCancel = false, cancelLabel, disabled = false, readOnly = false, required = false, onChange, name, control, register, error, className = "", optionClassName = "", groupBoxProps = {} } = props;
|
|
10
|
+
const resolvedGroupBoxTitle = (() => {
|
|
11
|
+
const baseTitle = groupBoxProps.title ?? title ?? "";
|
|
12
|
+
if (!required || !baseTitle.trim())
|
|
13
|
+
return baseTitle;
|
|
14
|
+
return baseTitle.includes("*") ? baseTitle : `${baseTitle} *`;
|
|
15
|
+
})();
|
|
16
|
+
const [internalValue, setInternalValue] = React.useState(controlledValue ?? null);
|
|
17
|
+
const isControlled = controlledValue !== undefined;
|
|
18
|
+
const currentValue = isControlled ? controlledValue : internalValue;
|
|
19
|
+
const isHighlightSelection = selectionStyle === "highlight";
|
|
20
|
+
const handleChange = (newValue) => {
|
|
21
|
+
if (disabled || readOnly)
|
|
22
|
+
return;
|
|
23
|
+
if (!isControlled) {
|
|
24
|
+
setInternalValue(newValue);
|
|
25
|
+
}
|
|
26
|
+
onChange?.(newValue);
|
|
27
|
+
};
|
|
28
|
+
const renderRadioOption = (option, index, registration) => {
|
|
29
|
+
const isSelected = currentValue === option.value;
|
|
30
|
+
const isDisabled = disabled || option.disabled;
|
|
31
|
+
const inputClassName = isHighlightSelection
|
|
32
|
+
? "sr-only"
|
|
33
|
+
: "w-4 h-4 text-[rgb(var(--sg-primary-500))] border-[rgb(var(--sg-border))] focus:ring-[rgb(var(--sg-ring))] focus:ring-2 cursor-pointer disabled:cursor-not-allowed";
|
|
34
|
+
if (isHighlightSelection) {
|
|
35
|
+
return (_jsxs("label", { className: `
|
|
36
|
+
flex items-center gap-2 border px-3 py-2 transition-all duration-150 select-none
|
|
37
|
+
${orientation === "vertical" ? "w-full -mt-px rounded-none first:mt-0 first:rounded-t-md last:rounded-b-md" : "inline-flex rounded-md"}
|
|
38
|
+
${iconOnly ? "justify-center" : ""}
|
|
39
|
+
${isSelected
|
|
40
|
+
? "relative z-10 translate-y-px rounded-md border-[rgb(var(--sg-primary-300))] bg-[rgb(var(--sg-primary-100))] ring-1 ring-[rgb(var(--sg-primary-200))] shadow-[inset_0_2px_4px_rgba(15,23,42,0.18),inset_0_1px_0_rgba(255,255,255,0.75),0_1px_2px_rgba(15,23,42,0.08)]"
|
|
41
|
+
: "border-[rgb(var(--sg-primary-200))] bg-[rgb(var(--sg-primary-50))] shadow-[0_2px_0_rgba(148,163,184,0.32),0_6px_10px_rgba(15,23,42,0.07)]"}
|
|
42
|
+
${isDisabled
|
|
43
|
+
? "cursor-not-allowed opacity-50"
|
|
44
|
+
: readOnly
|
|
45
|
+
? "cursor-default"
|
|
46
|
+
: `cursor-pointer ${isSelected ? "hover:bg-[rgb(var(--sg-primary-200))]" : "hover:-translate-y-px hover:bg-[rgb(var(--sg-primary-100))] hover:shadow-[0_3px_0_rgba(148,163,184,0.32),0_10px_14px_rgba(15,23,42,0.1)]"}`}
|
|
47
|
+
focus-within:outline-none
|
|
48
|
+
focus-within:ring-2
|
|
49
|
+
focus-within:ring-[rgb(var(--sg-ring))]
|
|
50
|
+
${optionClassName}
|
|
51
|
+
`, children: [_jsx("input", { type: "radio", ...(registration ? registration : { name: name || id }), value: option.value, checked: isSelected, disabled: isDisabled || readOnly, onChange: (event) => {
|
|
52
|
+
if (registration)
|
|
53
|
+
registration.onChange(event);
|
|
54
|
+
handleChange(option.value);
|
|
55
|
+
}, className: inputClassName }), option.icon ? (_jsx("span", { className: `
|
|
56
|
+
flex items-center justify-center transition-transform duration-150
|
|
57
|
+
${isSelected ? "scale-110" : "scale-100"}
|
|
58
|
+
`, children: option.icon })) : null, !iconOnly ? (_jsx("span", { className: `
|
|
59
|
+
text-[rgb(var(--sg-text))] transition-[font-size] duration-150
|
|
60
|
+
${isSelected ? "text-[15px] font-medium" : "text-sm"}
|
|
61
|
+
`, children: option.label })) : null] }, `${option.value}-${index}`));
|
|
62
|
+
}
|
|
63
|
+
return (_jsxs("label", { className: `
|
|
64
|
+
inline-flex items-center gap-2 cursor-pointer select-none
|
|
65
|
+
${isDisabled ? "opacity-50 cursor-not-allowed" : ""}
|
|
66
|
+
${readOnly ? "cursor-default" : ""}
|
|
67
|
+
${optionClassName}
|
|
68
|
+
`, children: [_jsx("input", { type: "radio", ...(registration ? registration : { name: name || id }), value: option.value, checked: isSelected, disabled: isDisabled || readOnly, onChange: (event) => {
|
|
69
|
+
if (registration)
|
|
70
|
+
registration.onChange(event);
|
|
71
|
+
handleChange(option.value);
|
|
72
|
+
}, className: inputClassName }), option.icon && (_jsx("span", { className: "flex items-center justify-center", children: option.icon })), !iconOnly && (_jsx("span", { className: "text-sm text-[rgb(var(--sg-text))]", children: option.label }))] }, `${option.value}-${index}`));
|
|
73
|
+
};
|
|
74
|
+
const renderCancelOption = (registration) => {
|
|
75
|
+
if (!showCancel)
|
|
76
|
+
return null;
|
|
77
|
+
const isSelected = currentValue === null;
|
|
78
|
+
const inputClassName = isHighlightSelection
|
|
79
|
+
? "sr-only"
|
|
80
|
+
: "w-4 h-4 text-[rgb(var(--sg-primary-500))] border-[rgb(var(--sg-border))] focus:ring-[rgb(var(--sg-ring))] focus:ring-2 cursor-pointer disabled:cursor-not-allowed";
|
|
81
|
+
if (isHighlightSelection) {
|
|
82
|
+
return (_jsxs("label", { className: `
|
|
83
|
+
flex items-center gap-2 border px-3 py-2 transition-all duration-150 select-none
|
|
84
|
+
${orientation === "vertical" ? "w-full -mt-px rounded-none first:mt-0 first:rounded-t-md last:rounded-b-md" : "inline-flex rounded-md"}
|
|
85
|
+
${iconOnly ? "justify-center" : ""}
|
|
86
|
+
${isSelected
|
|
87
|
+
? "relative z-10 translate-y-px rounded-md border-[rgb(var(--sg-primary-300))] bg-[rgb(var(--sg-primary-100))] ring-1 ring-[rgb(var(--sg-primary-200))] shadow-[inset_0_2px_4px_rgba(15,23,42,0.18),inset_0_1px_0_rgba(255,255,255,0.75),0_1px_2px_rgba(15,23,42,0.08)]"
|
|
88
|
+
: "border-[rgb(var(--sg-primary-200))] bg-[rgb(var(--sg-primary-50))] shadow-[0_2px_0_rgba(148,163,184,0.32),0_6px_10px_rgba(15,23,42,0.07)]"}
|
|
89
|
+
${disabled
|
|
90
|
+
? "cursor-not-allowed opacity-50"
|
|
91
|
+
: readOnly
|
|
92
|
+
? "cursor-default"
|
|
93
|
+
: `cursor-pointer ${isSelected ? "hover:bg-[rgb(var(--sg-primary-200))]" : "hover:-translate-y-px hover:bg-[rgb(var(--sg-primary-100))] hover:shadow-[0_3px_0_rgba(148,163,184,0.32),0_10px_14px_rgba(15,23,42,0.1)]"}`}
|
|
94
|
+
focus-within:outline-none
|
|
95
|
+
focus-within:ring-2
|
|
96
|
+
focus-within:ring-[rgb(var(--sg-ring))]
|
|
97
|
+
${optionClassName}
|
|
98
|
+
`, children: [_jsx("input", { type: "radio", ...(registration ? registration : { name: name || id }), value: "", checked: isSelected, disabled: disabled || readOnly, onChange: (event) => {
|
|
99
|
+
if (registration)
|
|
100
|
+
registration.onChange(event);
|
|
101
|
+
handleChange(null);
|
|
102
|
+
}, className: inputClassName }), !iconOnly ? (_jsx("span", { className: `
|
|
103
|
+
text-[rgb(var(--sg-text))] transition-[font-size] duration-150
|
|
104
|
+
${isSelected ? "text-[15px] font-medium" : "text-sm"}
|
|
105
|
+
`, children: cancelLabel || t(i18n, "components.radiogroup.cancel") })) : null] }));
|
|
106
|
+
}
|
|
107
|
+
return (_jsxs("label", { className: `
|
|
108
|
+
inline-flex items-center gap-2 cursor-pointer select-none
|
|
109
|
+
${disabled ? "opacity-50 cursor-not-allowed" : ""}
|
|
110
|
+
${readOnly ? "cursor-default" : ""}
|
|
111
|
+
${optionClassName}
|
|
112
|
+
`, children: [_jsx("input", { type: "radio", ...(registration ? registration : { name: name || id }), value: "", checked: isSelected, disabled: disabled || readOnly, onChange: (event) => {
|
|
113
|
+
if (registration)
|
|
114
|
+
registration.onChange(event);
|
|
115
|
+
handleChange(null);
|
|
116
|
+
}, className: inputClassName }), !iconOnly && (_jsx("span", { className: "text-sm text-[rgb(var(--sg-text))]", children: cancelLabel || t(i18n, "components.radiogroup.cancel") }))] }));
|
|
117
|
+
};
|
|
118
|
+
const content = (_jsxs("div", { className: className, children: [_jsx(SgGroupBox, { ...groupBoxProps, title: resolvedGroupBoxTitle || " ", className: groupBoxProps.className || "", children: _jsxs("div", { className: `
|
|
119
|
+
flex ${isHighlightSelection ? "gap-0" : "gap-4"}
|
|
120
|
+
${orientation === "vertical" ? "flex-col" : "flex-row flex-wrap"}
|
|
121
|
+
`, role: "radiogroup", "aria-disabled": disabled || undefined, "aria-readonly": readOnly || undefined, "aria-required": required || undefined, children: [source.map((option, index) => renderRadioOption(option, index)), renderCancelOption()] }) }), error && (_jsx("div", { className: "mt-1 text-sm text-red-500", children: error }))] }));
|
|
122
|
+
// React Hook Form integration
|
|
123
|
+
if (control && name) {
|
|
124
|
+
return (_jsx(Controller, { name: name, control: control, rules: { required: required ? t(i18n, "components.inputs.required") : false }, render: ({ field, fieldState }) => (_jsx(SgRadioGroup, { ...props, value: field.value, onChange: (val) => {
|
|
125
|
+
field.onChange(val);
|
|
126
|
+
onChange?.(val);
|
|
127
|
+
}, error: fieldState.error?.message, control: undefined })) }));
|
|
128
|
+
}
|
|
129
|
+
if (register && name) {
|
|
130
|
+
const registration = register(name, {
|
|
131
|
+
required: required ? t(i18n, "components.inputs.required") : false
|
|
132
|
+
});
|
|
133
|
+
return (_jsxs("div", { className: className, children: [_jsx(SgGroupBox, { ...groupBoxProps, title: resolvedGroupBoxTitle || " ", children: _jsxs("div", { className: `
|
|
134
|
+
flex ${isHighlightSelection ? "gap-0" : "gap-4"}
|
|
135
|
+
${orientation === "vertical" ? "flex-col" : "flex-row flex-wrap"}
|
|
136
|
+
`, role: "radiogroup", "aria-disabled": disabled || undefined, "aria-readonly": readOnly || undefined, "aria-required": required || undefined, children: [source.map((option, index) => renderRadioOption(option, index, registration)), renderCancelOption(registration)] }) }), error && (_jsx("div", { className: "mt-1 text-sm text-red-500", children: error }))] }));
|
|
137
|
+
}
|
|
138
|
+
return content;
|
|
139
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { FieldValues, UseFormRegister } from "react-hook-form";
|
|
3
|
+
export type SgRatingSize = "sm" | "md" | "lg" | "xl";
|
|
4
|
+
export interface SgRatingProps {
|
|
5
|
+
/** Unique identifier */
|
|
6
|
+
id?: string;
|
|
7
|
+
/** Label text */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Current rating value */
|
|
10
|
+
value?: number;
|
|
11
|
+
/** Number of stars */
|
|
12
|
+
stars?: number;
|
|
13
|
+
/** Enable half stars */
|
|
14
|
+
allowHalf?: boolean;
|
|
15
|
+
/** Show cancel button */
|
|
16
|
+
cancel?: boolean;
|
|
17
|
+
/** Disabled state */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Read only mode */
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
/** Size of the stars */
|
|
22
|
+
size?: SgRatingSize;
|
|
23
|
+
/** Custom class name */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Custom icon for filled state */
|
|
26
|
+
onIcon?: React.ReactNode;
|
|
27
|
+
/** Custom icon for empty state */
|
|
28
|
+
offIcon?: React.ReactNode;
|
|
29
|
+
/** Custom icon for cancel button */
|
|
30
|
+
cancelIcon?: React.ReactNode;
|
|
31
|
+
/** Color for filled stars */
|
|
32
|
+
color?: string;
|
|
33
|
+
/** Color for empty stars */
|
|
34
|
+
emptyColor?: string;
|
|
35
|
+
/** Show tooltips with value */
|
|
36
|
+
showTooltip?: boolean;
|
|
37
|
+
/** Callback when value changes */
|
|
38
|
+
onChange?: (value: number) => void;
|
|
39
|
+
/** Callback when hovering over stars */
|
|
40
|
+
onHover?: (value: number | null) => void;
|
|
41
|
+
/** React Hook Form integration */
|
|
42
|
+
register?: UseFormRegister<FieldValues>;
|
|
43
|
+
/** React Hook Form field name */
|
|
44
|
+
name?: string;
|
|
45
|
+
/** React Hook Form control */
|
|
46
|
+
control?: any;
|
|
47
|
+
/** Error message */
|
|
48
|
+
error?: string;
|
|
49
|
+
/** Required field */
|
|
50
|
+
required?: boolean;
|
|
51
|
+
/** Required message */
|
|
52
|
+
requiredMessage?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare function SgRating(props: SgRatingProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
//# sourceMappingURL=SgRating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgRating.d.ts","sourceRoot":"","sources":["../../src/inputs/SgRating.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAGV,WAAW,EACX,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,kCAAkC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACxC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8QD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAkC5C"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { Controller } from "react-hook-form";
|
|
5
|
+
import { t, useComponentsI18n } from "../i18n";
|
|
6
|
+
const STAR_SIZES = {
|
|
7
|
+
sm: 16,
|
|
8
|
+
md: 24,
|
|
9
|
+
lg: 32,
|
|
10
|
+
xl: 40
|
|
11
|
+
};
|
|
12
|
+
function StarIcon({ size, filled = false }) {
|
|
13
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: filled ? "currentColor" : "none", stroke: "currentColor", strokeWidth: filled ? 0 : 2, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }) }));
|
|
14
|
+
}
|
|
15
|
+
function CancelIcon({ size }) {
|
|
16
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "m15 9-6 6" }), _jsx("path", { d: "m9 9 6 6" })] }));
|
|
17
|
+
}
|
|
18
|
+
function ErrorText(props) {
|
|
19
|
+
if (!props.message)
|
|
20
|
+
return null;
|
|
21
|
+
return _jsx("p", { className: "text-xs text-red-600", children: props.message });
|
|
22
|
+
}
|
|
23
|
+
function SgRatingBase(props) {
|
|
24
|
+
const i18n = useComponentsI18n();
|
|
25
|
+
const { id, label, value = 0, stars = 5, allowHalf = false, cancel = true, disabled = false, readOnly = false, size = "md", className = "", onIcon, offIcon, cancelIcon, color = "hsl(var(--primary))", emptyColor = "hsl(var(--muted-foreground))", showTooltip = false, onChange, onHover, error, required = false, requiredMessage } = props;
|
|
26
|
+
const [hoverValue, setHoverValue] = React.useState(null);
|
|
27
|
+
const [internalValue, setInternalValue] = React.useState(value);
|
|
28
|
+
const [internalError, setInternalError] = React.useState(null);
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
setInternalValue(value);
|
|
31
|
+
}, [value]);
|
|
32
|
+
const handleStarClick = (starIndex, isHalf) => {
|
|
33
|
+
if (disabled || readOnly)
|
|
34
|
+
return;
|
|
35
|
+
const newValue = allowHalf && isHalf ? starIndex + 0.5 : starIndex + 1;
|
|
36
|
+
setInternalValue(newValue);
|
|
37
|
+
onChange?.(newValue);
|
|
38
|
+
// Validation
|
|
39
|
+
if (required && newValue === 0) {
|
|
40
|
+
const message = requiredMessage ?? t(i18n, "components.rating.required");
|
|
41
|
+
setInternalError(message);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
setInternalError(null);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const handleStarHover = (starIndex, isHalf) => {
|
|
48
|
+
if (disabled || readOnly)
|
|
49
|
+
return;
|
|
50
|
+
const newHoverValue = allowHalf && isHalf ? starIndex + 0.5 : starIndex + 1;
|
|
51
|
+
setHoverValue(newHoverValue);
|
|
52
|
+
onHover?.(newHoverValue);
|
|
53
|
+
};
|
|
54
|
+
const handleMouseLeave = () => {
|
|
55
|
+
setHoverValue(null);
|
|
56
|
+
onHover?.(null);
|
|
57
|
+
};
|
|
58
|
+
const handleCancel = () => {
|
|
59
|
+
if (disabled || readOnly)
|
|
60
|
+
return;
|
|
61
|
+
setInternalValue(0);
|
|
62
|
+
onChange?.(0);
|
|
63
|
+
if (required) {
|
|
64
|
+
const message = requiredMessage ?? t(i18n, "components.rating.required");
|
|
65
|
+
setInternalError(message);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
setInternalError(null);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const displayValue = hoverValue ?? internalValue;
|
|
72
|
+
const starSize = STAR_SIZES[size];
|
|
73
|
+
const isInteractive = !disabled && !readOnly;
|
|
74
|
+
const getStarFillPercentage = (starIndex) => {
|
|
75
|
+
const starValue = starIndex + 1;
|
|
76
|
+
if (displayValue >= starValue)
|
|
77
|
+
return 100;
|
|
78
|
+
if (displayValue > starIndex && displayValue < starValue) {
|
|
79
|
+
return (displayValue - starIndex) * 100;
|
|
80
|
+
}
|
|
81
|
+
return 0;
|
|
82
|
+
};
|
|
83
|
+
return (_jsxs("div", { className: `sg-rating ${className}`, children: [label && (_jsxs("label", { htmlFor: id, className: "mb-2 block text-sm font-medium", children: [label, required && _jsx("span", { className: "ml-1 text-red-600", children: "*" })] })), _jsxs("div", { className: "flex items-center gap-1", onMouseLeave: handleMouseLeave, style: {
|
|
84
|
+
opacity: disabled ? 0.5 : 1,
|
|
85
|
+
cursor: isInteractive ? "pointer" : "default"
|
|
86
|
+
}, children: [cancel && (_jsx("button", { type: "button", onClick: handleCancel, disabled: disabled || readOnly, className: "mr-1 transition-opacity hover:opacity-80", style: {
|
|
87
|
+
color: emptyColor,
|
|
88
|
+
cursor: isInteractive ? "pointer" : "default"
|
|
89
|
+
}, title: t(i18n, "components.rating.cancel"), children: cancelIcon ?? _jsx(CancelIcon, { size: starSize }) })), Array.from({ length: stars }).map((_, index) => {
|
|
90
|
+
const fillPercentage = getStarFillPercentage(index);
|
|
91
|
+
const tooltipValue = showTooltip ? (hoverValue ?? internalValue) : null;
|
|
92
|
+
return (_jsxs("div", { className: "relative inline-block", style: { position: "relative" }, children: [showTooltip && hoverValue !== null && Math.floor(hoverValue - 0.5) === index && (_jsx("div", { className: "absolute -top-8 left-1/2 -translate-x-1/2 rounded bg-black/80 px-2 py-1 text-xs text-white", style: { whiteSpace: "nowrap", zIndex: 10 }, children: tooltipValue })), _jsxs("div", { className: "relative inline-flex", style: { width: starSize, height: starSize }, children: [_jsx("div", { style: { color: emptyColor, position: "absolute", top: 0, left: 0 }, children: offIcon ?? _jsx(StarIcon, { size: starSize, filled: false }) }), _jsx("div", { style: {
|
|
93
|
+
color: color,
|
|
94
|
+
position: "absolute",
|
|
95
|
+
top: 0,
|
|
96
|
+
left: 0,
|
|
97
|
+
clipPath: `inset(0 ${100 - fillPercentage}% 0 0)`,
|
|
98
|
+
transition: "clip-path 0.2s ease"
|
|
99
|
+
}, children: onIcon ?? _jsx(StarIcon, { size: starSize, filled: true }) }), allowHalf ? (_jsxs(_Fragment, { children: [_jsx("div", { style: {
|
|
100
|
+
position: "absolute",
|
|
101
|
+
top: 0,
|
|
102
|
+
left: 0,
|
|
103
|
+
width: "50%",
|
|
104
|
+
height: "100%",
|
|
105
|
+
cursor: isInteractive ? "pointer" : "default"
|
|
106
|
+
}, onClick: () => handleStarClick(index, true), onMouseEnter: () => handleStarHover(index, true) }), _jsx("div", { style: {
|
|
107
|
+
position: "absolute",
|
|
108
|
+
top: 0,
|
|
109
|
+
right: 0,
|
|
110
|
+
width: "50%",
|
|
111
|
+
height: "100%",
|
|
112
|
+
cursor: isInteractive ? "pointer" : "default"
|
|
113
|
+
}, onClick: () => handleStarClick(index, false), onMouseEnter: () => handleStarHover(index, false) })] })) : (_jsx("div", { style: {
|
|
114
|
+
position: "absolute",
|
|
115
|
+
top: 0,
|
|
116
|
+
left: 0,
|
|
117
|
+
width: "100%",
|
|
118
|
+
height: "100%",
|
|
119
|
+
cursor: isInteractive ? "pointer" : "default"
|
|
120
|
+
}, onClick: () => handleStarClick(index, false), onMouseEnter: () => handleStarHover(index, false) }))] })] }, index));
|
|
121
|
+
})] }), _jsx(ErrorText, { message: error ?? internalError ?? undefined })] }));
|
|
122
|
+
}
|
|
123
|
+
export function SgRating(props) {
|
|
124
|
+
const { control, name, register, ...rest } = props;
|
|
125
|
+
if (name && register) {
|
|
126
|
+
return _jsx(SgRatingBase, { ...rest });
|
|
127
|
+
}
|
|
128
|
+
if (control && name) {
|
|
129
|
+
return (_jsx(Controller, { name: name, control: control, render: ({ field, fieldState }) => (_jsx(SgRatingBase, { ...rest, value: field.value ?? 0, onChange: (value) => {
|
|
130
|
+
field.onChange(value);
|
|
131
|
+
rest.onChange?.(value);
|
|
132
|
+
}, error: rest.error ?? fieldState.error?.message })) }));
|
|
133
|
+
}
|
|
134
|
+
return _jsx(SgRatingBase, { ...rest });
|
|
135
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type SgSliderProps = {
|
|
3
|
+
id: string;
|
|
4
|
+
minValue: number;
|
|
5
|
+
maxValue: number;
|
|
6
|
+
value?: number;
|
|
7
|
+
defaultValue?: number;
|
|
8
|
+
step?: number;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
onChange?: (value: number) => void;
|
|
11
|
+
ariaLabel?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
width?: number | string;
|
|
14
|
+
inputProps?: Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "id" | "min" | "max" | "step" | "value" | "defaultValue" | "onChange" | "disabled" | "aria-label">;
|
|
15
|
+
};
|
|
16
|
+
export declare function SgSlider(props: Readonly<SgSliderProps>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare namespace SgSlider {
|
|
18
|
+
var displayName: string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SgSlider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgSlider.d.ts","sourceRoot":"","sources":["../../src/inputs/SgSlider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,IAAI,CACf,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACzC,MAAM,GACN,IAAI,GACJ,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,cAAc,GACd,UAAU,GACV,UAAU,GACV,YAAY,CACf,CAAC;CACH,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,2CA0DtD;yBA1De,QAAQ"}
|