@seedgrid/fe-components 2026.6.7 → 2026.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/ai/seedgrid-components.manifest.json +8003 -696
  2. package/dist/commons/SgToaster.d.ts +2 -0
  3. package/dist/commons/SgToaster.d.ts.map +1 -1
  4. package/dist/commons/SgToaster.js +2 -2
  5. package/dist/commons/SgToaster.meta.d.ts.map +1 -1
  6. package/dist/commons/SgToaster.meta.js +2 -1
  7. package/dist/commons/SgWhistleHost.d.ts +16 -15
  8. package/dist/commons/SgWhistleHost.d.ts.map +1 -1
  9. package/dist/commons/SgWhistleHost.js +38 -147
  10. package/dist/commons/SgWhistleHost.meta.d.ts.map +1 -1
  11. package/dist/commons/SgWhistleHost.meta.js +17 -15
  12. package/dist/commons/SgWhistler.d.ts +20 -0
  13. package/dist/commons/SgWhistler.d.ts.map +1 -0
  14. package/dist/commons/SgWhistler.js +168 -0
  15. package/dist/commons/SgWhistler.meta.d.ts +4 -0
  16. package/dist/commons/SgWhistler.meta.d.ts.map +1 -0
  17. package/dist/commons/SgWhistler.meta.js +47 -0
  18. package/dist/commons/sgWhistleHostRegistry.d.ts +7 -0
  19. package/dist/commons/sgWhistleHostRegistry.d.ts.map +1 -0
  20. package/dist/commons/sgWhistleHostRegistry.js +42 -0
  21. package/dist/gadgets/clock/themes/SgClockThemePicker.d.ts.map +1 -1
  22. package/dist/gadgets/clock/themes/SgClockThemePicker.js +1 -1
  23. package/dist/i18n/en-US.d.ts.map +1 -1
  24. package/dist/i18n/en-US.js +2 -0
  25. package/dist/i18n/es.d.ts.map +1 -1
  26. package/dist/i18n/es.js +2 -0
  27. package/dist/i18n/fr.d.ts.map +1 -1
  28. package/dist/i18n/fr.js +2 -0
  29. package/dist/i18n/pt-BR.d.ts.map +1 -1
  30. package/dist/i18n/pt-BR.js +2 -0
  31. package/dist/i18n/pt-PT.d.ts.map +1 -1
  32. package/dist/i18n/pt-PT.js +2 -0
  33. package/dist/index.d.ts +10 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -0
  36. package/dist/inputs/SgCombobox.d.ts.map +1 -1
  37. package/dist/inputs/SgCombobox.js +6 -2
  38. package/dist/inputs/SgInputPassword.d.ts +1 -0
  39. package/dist/inputs/SgInputPassword.d.ts.map +1 -1
  40. package/dist/inputs/SgInputTextSearch.d.ts +11 -0
  41. package/dist/inputs/SgInputTextSearch.d.ts.map +1 -0
  42. package/dist/inputs/SgInputTextSearch.js +47 -0
  43. package/dist/inputs/SgInputTextSearch.meta.d.ts +4 -0
  44. package/dist/inputs/SgInputTextSearch.meta.d.ts.map +1 -0
  45. package/dist/inputs/SgInputTextSearch.meta.js +50 -0
  46. package/dist/inputs/SgMultiSelect.d.ts +23 -0
  47. package/dist/inputs/SgMultiSelect.d.ts.map +1 -0
  48. package/dist/inputs/SgMultiSelect.js +117 -0
  49. package/dist/inputs/SgMultiSelect.meta.d.ts +4 -0
  50. package/dist/inputs/SgMultiSelect.meta.d.ts.map +1 -0
  51. package/dist/inputs/SgMultiSelect.meta.js +56 -0
  52. package/dist/inputs/SgMultiSelectChips.d.ts +27 -0
  53. package/dist/inputs/SgMultiSelectChips.d.ts.map +1 -0
  54. package/dist/inputs/SgMultiSelectChips.js +127 -0
  55. package/dist/inputs/SgMultiSelectChips.meta.d.ts +4 -0
  56. package/dist/inputs/SgMultiSelectChips.meta.d.ts.map +1 -0
  57. package/dist/inputs/SgMultiSelectChips.meta.js +55 -0
  58. package/dist/inputs/SgMultiSelectDropdown.d.ts +28 -0
  59. package/dist/inputs/SgMultiSelectDropdown.d.ts.map +1 -0
  60. package/dist/inputs/SgMultiSelectDropdown.js +41 -0
  61. package/dist/inputs/SgPeriodSelector.d.ts +103 -0
  62. package/dist/inputs/SgPeriodSelector.d.ts.map +1 -0
  63. package/dist/inputs/SgPeriodSelector.js +368 -0
  64. package/dist/inputs/SgPeriodSelector.meta.d.ts +4 -0
  65. package/dist/inputs/SgPeriodSelector.meta.d.ts.map +1 -0
  66. package/dist/inputs/SgPeriodSelector.meta.js +55 -0
  67. package/dist/inputs/useSgMultiSelect.d.ts +48 -0
  68. package/dist/inputs/useSgMultiSelect.d.ts.map +1 -0
  69. package/dist/inputs/useSgMultiSelect.js +202 -0
  70. package/dist/layout/SgMenu.d.ts.map +1 -1
  71. package/dist/layout/SgMenu.js +1 -1
  72. package/dist/sandbox.cjs +53 -53
  73. package/package.json +3 -3
@@ -0,0 +1,202 @@
1
+ "use client";
2
+ import React from "react";
3
+ export function valueEquals(left, right) {
4
+ return String(left) === String(right);
5
+ }
6
+ /**
7
+ * Logica compartilhada entre SgMultiSelect e SgMultiSelectChips: estado de
8
+ * abertura, selecao, busca, posicionamento do dropdown via portal e navegacao
9
+ * por teclado. Os componentes apenas renderizam o trigger e reaproveitam o
10
+ * dropdown a partir do que este hook expoe.
11
+ */
12
+ export function useSgMultiSelect(params) {
13
+ const { options, value, onChange, searchable = false, maxSelected, isDisabled, borderRadius } = params;
14
+ const isControlled = value !== undefined;
15
+ const wrapperRef = React.useRef(null);
16
+ const inputRef = React.useRef(null);
17
+ const dropdownRef = React.useRef(null);
18
+ const searchRef = React.useRef(null);
19
+ const ignoreBlurRef = React.useRef(false);
20
+ const [open, setOpen] = React.useState(false);
21
+ const [internalValue, setInternalValue] = React.useState([]);
22
+ const [activeIndex, setActiveIndex] = React.useState(-1);
23
+ const [query, setQuery] = React.useState("");
24
+ const [dropdownStyle, setDropdownStyle] = React.useState({});
25
+ const resolvedBorderRadius = React.useMemo(() => {
26
+ if (borderRadius === undefined)
27
+ return undefined;
28
+ return typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
29
+ }, [borderRadius]);
30
+ const resolvedValue = isControlled ? (value ?? []) : internalValue;
31
+ const isSelected = React.useCallback((optionValue) => resolvedValue.some((entry) => valueEquals(entry, optionValue)), [resolvedValue]);
32
+ const visibleOptions = React.useMemo(() => {
33
+ if (!searchable || !query.trim())
34
+ return options;
35
+ const normalized = query.trim().toLowerCase();
36
+ return options.filter((option) => option.label.toLowerCase().includes(normalized));
37
+ }, [options, query, searchable]);
38
+ const selectedLabels = React.useMemo(() => {
39
+ return resolvedValue
40
+ .map((entry) => options.find((option) => valueEquals(option.value, entry))?.label)
41
+ .filter((label) => Boolean(label));
42
+ }, [options, resolvedValue]);
43
+ const selectedOptions = React.useMemo(() => {
44
+ return resolvedValue
45
+ .map((entry) => options.find((option) => valueEquals(option.value, entry)))
46
+ .filter((option) => Boolean(option));
47
+ }, [options, resolvedValue]);
48
+ const setSelectedValue = React.useCallback((nextValue) => {
49
+ if (!isControlled) {
50
+ setInternalValue(nextValue);
51
+ }
52
+ onChange?.(nextValue);
53
+ }, [isControlled, onChange]);
54
+ const closeDropdown = React.useCallback(() => {
55
+ setOpen(false);
56
+ setActiveIndex(-1);
57
+ setQuery("");
58
+ }, []);
59
+ const openDropdown = React.useCallback(() => {
60
+ if (isDisabled)
61
+ return;
62
+ setOpen(true);
63
+ }, [isDisabled]);
64
+ const toggleOption = React.useCallback((option) => {
65
+ if (option.disabled)
66
+ return;
67
+ const already = resolvedValue.some((entry) => valueEquals(entry, option.value));
68
+ if (already) {
69
+ setSelectedValue(resolvedValue.filter((entry) => !valueEquals(entry, option.value)));
70
+ return;
71
+ }
72
+ if (maxSelected !== undefined && resolvedValue.length >= maxSelected) {
73
+ return;
74
+ }
75
+ setSelectedValue([...resolvedValue, option.value]);
76
+ }, [maxSelected, resolvedValue, setSelectedValue]);
77
+ const removeValue = React.useCallback((optionValue) => {
78
+ setSelectedValue(resolvedValue.filter((entry) => !valueEquals(entry, optionValue)));
79
+ }, [resolvedValue, setSelectedValue]);
80
+ const clearSelection = React.useCallback(() => {
81
+ setSelectedValue([]);
82
+ }, [setSelectedValue]);
83
+ const syncDropdownPosition = React.useCallback(() => {
84
+ const anchor = wrapperRef.current?.querySelector("input") ?? inputRef.current ?? wrapperRef.current;
85
+ if (!anchor)
86
+ return;
87
+ const rect = anchor.getBoundingClientRect();
88
+ setDropdownStyle({
89
+ position: "fixed",
90
+ top: rect.bottom + 4,
91
+ left: rect.left,
92
+ minWidth: rect.width,
93
+ width: rect.width,
94
+ maxWidth: "min(32rem, calc(100vw - 24px))",
95
+ borderRadius: resolvedBorderRadius
96
+ });
97
+ }, [resolvedBorderRadius]);
98
+ React.useEffect(() => {
99
+ if (!open)
100
+ return;
101
+ const handleOutside = (event) => {
102
+ if (wrapperRef.current?.contains(event.target))
103
+ return;
104
+ if (dropdownRef.current?.contains(event.target))
105
+ return;
106
+ closeDropdown();
107
+ };
108
+ document.addEventListener("mousedown", handleOutside);
109
+ return () => document.removeEventListener("mousedown", handleOutside);
110
+ }, [closeDropdown, open]);
111
+ React.useEffect(() => {
112
+ if (!open)
113
+ return;
114
+ syncDropdownPosition();
115
+ const handleLayoutChange = () => {
116
+ syncDropdownPosition();
117
+ };
118
+ window.addEventListener("resize", handleLayoutChange);
119
+ window.addEventListener("scroll", handleLayoutChange, true);
120
+ return () => {
121
+ window.removeEventListener("resize", handleLayoutChange);
122
+ window.removeEventListener("scroll", handleLayoutChange, true);
123
+ };
124
+ }, [open, syncDropdownPosition]);
125
+ React.useEffect(() => {
126
+ if (!open) {
127
+ return;
128
+ }
129
+ if (searchable && searchRef.current) {
130
+ searchRef.current.focus();
131
+ }
132
+ setActiveIndex(visibleOptions.length > 0 ? 0 : -1);
133
+ // eslint-disable-next-line react-hooks/exhaustive-deps
134
+ }, [open, searchable]);
135
+ React.useEffect(() => {
136
+ if (!open)
137
+ return;
138
+ if (activeIndex >= visibleOptions.length) {
139
+ setActiveIndex(visibleOptions.length - 1);
140
+ }
141
+ }, [activeIndex, open, visibleOptions.length]);
142
+ const handleListKeyDown = React.useCallback((event) => {
143
+ if (isDisabled)
144
+ return;
145
+ if (event.key === "Escape") {
146
+ event.preventDefault();
147
+ closeDropdown();
148
+ inputRef.current?.focus();
149
+ return;
150
+ }
151
+ if (event.key === "Tab") {
152
+ closeDropdown();
153
+ return;
154
+ }
155
+ if (event.key === "ArrowDown") {
156
+ event.preventDefault();
157
+ setActiveIndex((prev) => Math.min(prev + 1, visibleOptions.length - 1));
158
+ return;
159
+ }
160
+ if (event.key === "ArrowUp") {
161
+ event.preventDefault();
162
+ setActiveIndex((prev) => Math.max(prev - 1, 0));
163
+ return;
164
+ }
165
+ if (event.key === "Enter" || event.key === " ") {
166
+ if (activeIndex < 0)
167
+ return;
168
+ const option = visibleOptions[activeIndex];
169
+ if (!option)
170
+ return;
171
+ event.preventDefault();
172
+ toggleOption(option);
173
+ }
174
+ }, [activeIndex, closeDropdown, isDisabled, toggleOption, visibleOptions]);
175
+ return {
176
+ // refs
177
+ wrapperRef,
178
+ inputRef,
179
+ dropdownRef,
180
+ searchRef,
181
+ ignoreBlurRef,
182
+ // state
183
+ open,
184
+ activeIndex,
185
+ query,
186
+ dropdownStyle,
187
+ resolvedValue,
188
+ selectedLabels,
189
+ selectedOptions,
190
+ visibleOptions,
191
+ // setters / actions
192
+ setQuery,
193
+ setActiveIndex,
194
+ isSelected,
195
+ toggleOption,
196
+ removeValue,
197
+ clearSelection,
198
+ closeDropdown,
199
+ openDropdown,
200
+ handleListKeyDown
201
+ };
202
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SgMenu.d.ts","sourceRoot":"","sources":["../../src/layout/SgMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SgMenu.d.ts","sourceRoot":"","sources":["../../src/layout/SgMenu.tsx"],"names":[],"mappings":"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"}
@@ -826,7 +826,7 @@ export function SgMenu(props) {
826
826
  if (menuStyle === "hybrid" && next)
827
827
  setDrawerOpen(false);
828
828
  }, "aria-label": pinnedState ? t(i18n, "components.menu.unpin") : t(i18n, "components.menu.pin"), className: cn("inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-border", "bg-background hover:bg-muted/60", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/35"), children: _jsx(PinIcon, { pinned: pinnedState }) })) : null, !collapseOnLeft ? collapseButton : null] })) : null;
829
- const shellContentArea = (_jsxs(_Fragment, { children: [searchEnabled && !isCollapsed ? (_jsx("div", { className: cn("border-b border-border", densityCfg.section), children: _jsx(SgAutocomplete, { id: `${searchInputId}-menu-search`, label: search?.placeholder ?? t(i18n, "components.actions.search"), placeholder: search?.placeholder ?? t(i18n, "components.actions.search"), value: searchValue, onChange: setSearchValue, source: autocompleteSource, minLengthForSearch: 0, openOnFocus: true, showDropDownButton: true, clearOnSelect: true, grouped: true, onSelect: (item) => {
829
+ const shellContentArea = (_jsxs(_Fragment, { children: [searchEnabled && !isCollapsed ? (_jsx("div", { className: cn("border-b border-border", densityCfg.section), children: _jsx(SgAutocomplete, { id: `${searchInputId}-menu-search`, label: search?.placeholder ?? t(i18n, "components.actions.search"), placeholder: search?.placeholder ?? t(i18n, "components.actions.search"), value: searchValue, onChange: setSearchValue, source: autocompleteSource, allowCustomValue: true, minLengthForSearch: 0, openOnFocus: true, showDropDownButton: true, clearOnSelect: true, grouped: true, onSelect: (item) => {
830
830
  const nodeId = item.data?.nodeId;
831
831
  if (!nodeId)
832
832
  return;