@shohojdhara/atomix 0.5.1 → 0.5.2
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/atomix.config.ts +12 -0
- package/build-tools/webpack-loader.js +5 -4
- package/dist/atomix.css +138 -17
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +1 -1
- package/dist/atomix.min.css.map +1 -1
- package/dist/build-tools/webpack-loader.js +5 -4
- package/dist/charts.d.ts +23 -23
- package/dist/charts.js +40 -37
- package/dist/charts.js.map +1 -1
- package/dist/config.d.ts +624 -0
- package/dist/config.js +59 -0
- package/dist/config.js.map +1 -0
- package/dist/core.d.ts +2 -2
- package/dist/core.js +111 -50
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +3 -6
- package/dist/forms.js +2 -2
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +1 -1
- package/dist/heavy.js +173 -111
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +98 -65
- package/dist/index.esm.js +427 -422
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +394 -391
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/layout.js +59 -60
- package/dist/layout.js.map +1 -1
- package/dist/theme.js +4 -4
- package/dist/theme.js.map +1 -1
- package/package.json +14 -9
- package/scripts/atomix-cli.js +15 -1
- package/scripts/cli/__tests__/complexity-utils.test.js +24 -0
- package/scripts/cli/__tests__/detector.test.js +50 -0
- package/scripts/cli/__tests__/template-engine.test.js +23 -0
- package/scripts/cli/__tests__/test-setup.js +3 -0
- package/scripts/cli/commands/doctor.js +15 -3
- package/scripts/cli/commands/generate.js +113 -51
- package/scripts/cli/internal/ai-engine.js +30 -10
- package/scripts/cli/internal/complexity-utils.js +60 -0
- package/scripts/cli/internal/component-validator.js +49 -16
- package/scripts/cli/internal/generator.js +89 -36
- package/scripts/cli/internal/hook-generator.js +5 -2
- package/scripts/cli/internal/itcss-generator.js +16 -12
- package/scripts/cli/templates/next-templates.js +81 -30
- package/scripts/cli/templates/storybook-templates.js +12 -2
- package/scripts/cli/utils/detector.js +45 -7
- package/scripts/cli/utils/diagnostics.js +78 -0
- package/scripts/cli/utils/telemetry.js +13 -0
- package/src/components/Accordion/Accordion.stories.tsx +4 -0
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +1 -1
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +219 -0
- package/src/components/AtomixGlass/glass-utils.ts +1 -1
- package/src/components/Button/Button.tsx +114 -57
- package/src/components/Callout/Callout.tsx +4 -4
- package/src/components/Chart/ChartRenderer.tsx +1 -1
- package/src/components/Chart/DonutChart.tsx +11 -8
- package/src/components/EdgePanel/EdgePanel.tsx +119 -115
- package/src/components/Form/Select.tsx +4 -4
- package/src/components/List/List.tsx +4 -4
- package/src/components/Navigation/SideMenu/SideMenu.tsx +6 -6
- package/src/components/PhotoViewer/PhotoViewerImage.tsx +1 -1
- package/src/components/ProductReview/ProductReview.tsx +4 -2
- package/src/components/Rating/Rating.tsx +4 -2
- package/src/components/SectionIntro/SectionIntro.tsx +4 -2
- package/src/components/Steps/Steps.tsx +1 -1
- package/src/components/Tabs/Tabs.tsx +5 -5
- package/src/components/Testimonial/Testimonial.tsx +4 -2
- package/src/components/VideoPlayer/VideoPlayer.tsx +4 -2
- package/src/layouts/CssGrid/CssGrid.stories.tsx +464 -0
- package/src/layouts/CssGrid/CssGrid.tsx +215 -0
- package/src/layouts/CssGrid/index.ts +8 -0
- package/src/layouts/CssGrid/scripts/CssGrid.js +284 -0
- package/src/layouts/CssGrid/scripts/index.js +43 -0
- package/src/layouts/Grid/scripts/Container.js +139 -0
- package/src/layouts/Grid/scripts/Grid.js +184 -0
- package/src/layouts/Grid/scripts/GridCol.js +273 -0
- package/src/layouts/Grid/scripts/Row.js +154 -0
- package/src/layouts/Grid/scripts/index.js +48 -0
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +71 -59
- package/src/lib/composables/atomix-glass/useGlassSize.ts +1 -1
- package/src/lib/composables/useAccordion.ts +5 -5
- package/src/lib/composables/useAtomixGlass.ts +3 -3
- package/src/lib/composables/useBarChart.ts +2 -2
- package/src/lib/composables/useChart.ts +3 -2
- package/src/lib/composables/useChartToolbar.ts +48 -66
- package/src/lib/composables/useDataTable.ts +1 -1
- package/src/lib/composables/useDatePicker.ts +2 -2
- package/src/lib/composables/useEdgePanel.ts +45 -54
- package/src/lib/composables/useHeroBackgroundSlider.ts +5 -5
- package/src/lib/composables/usePhotoViewer.ts +2 -3
- package/src/lib/composables/usePieChart.ts +1 -1
- package/src/lib/composables/usePopover.ts +151 -139
- package/src/lib/composables/useSideMenu.ts +28 -41
- package/src/lib/composables/useSlider.ts +2 -6
- package/src/lib/composables/useTooltip.ts +2 -2
- package/src/lib/config/index.ts +39 -0
- package/src/lib/theme/devtools/Comparator.tsx +1 -1
- package/src/lib/theme/devtools/Inspector.tsx +1 -1
- package/src/lib/theme/devtools/LiveEditor.tsx +1 -1
- package/src/lib/theme/runtime/ThemeProvider.tsx +1 -1
- package/src/styles/01-settings/_index.scss +1 -0
- package/src/styles/01-settings/_settings.atomix-glass.scss +174 -0
- package/src/styles/01-settings/_settings.masonry-grid.scss +42 -6
- package/src/styles/02-tools/_tools.glass.scss +6 -0
- package/src/styles/05-objects/_objects.masonry-grid.scss +162 -24
- package/src/styles/06-components/_components.atomix-glass.scss +4 -4
- package/src/lib/composables/useBreadcrumb.ts +0 -81
- package/src/lib/composables/useChartInteractions.ts +0 -123
- package/src/lib/composables/useChartPerformance.ts +0 -347
- package/src/lib/composables/useDropdown.ts +0 -338
- package/src/lib/composables/useModal.ts +0 -110
- package/src/lib/hooks/usePerformanceMonitor.ts +0 -148
- package/src/lib/utils/displacement-generator.ts +0 -92
- package/src/lib/utils/memoryMonitor.ts +0 -191
- package/src/styles/01-settings/_settings.testtypecheck.scss +0 -53
- package/src/styles/01-settings/_settings.typedbutton.scss +0 -53
- package/src/styles/06-components/_components.testbutton.scss +0 -212
- package/src/styles/06-components/_components.testtypecheck.scss +0 -212
- package/src/styles/06-components/_components.typedbutton.scss +0 -212
package/dist/layout.js
CHANGED
|
@@ -45,7 +45,7 @@ Grid.displayName = "Grid";
|
|
|
45
45
|
*/
|
|
46
46
|
const MasonryGrid = forwardRef((({children: children, className: className = "", xs: xs = 1, sm: sm, md: md, lg: lg, xl: xl, xxl: xxl, gap: gap = 16, animate: animate = !0, imagesLoaded: imagesLoaded = !0, onLayoutComplete: onLayoutComplete, onImageLoad: onImageLoad, ...props}, ref) => {
|
|
47
47
|
// === REFS & STATE ===
|
|
48
|
-
const [columns, setColumns] = useState(xs), [positions, setPositions] = useState([]), [
|
|
48
|
+
const [columns, setColumns] = useState(xs), [positions, setPositions] = useState([]), [, setLayoutComplete] = useState(!1), [loadingImages, setLoadingImages] = useState(!1), containerRef = useRef(null), columnHeights = useRef([]), imagesLoadedCount = useRef(0), totalImagesCount = useRef(0), imageElements = useRef(new Map);
|
|
49
49
|
useEffect((() => {
|
|
50
50
|
setLoadingImages(!!imagesLoaded);
|
|
51
51
|
}), [ columns, imagesLoaded ]),
|
|
@@ -74,34 +74,45 @@ const MasonryGrid = forwardRef((({children: children, className: className = ""
|
|
|
74
74
|
});
|
|
75
75
|
})), setItems(newItems);
|
|
76
76
|
}), [ children ]);
|
|
77
|
-
// ===
|
|
78
|
-
const
|
|
79
|
-
if (!
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
// === MANAGE ITEM LAYOUT ===
|
|
78
|
+
const calculateLayout = useCallback((() => {
|
|
79
|
+
if (!containerRef.current || 0 === items.length) return;
|
|
80
|
+
const colWidth = (containerRef.current.offsetWidth - gap * (columns - 1)) / columns;
|
|
81
|
+
columnHeights.current = Array(columns).fill(0);
|
|
82
|
+
const newPositions = [];
|
|
83
|
+
items.forEach(((item, index) => {
|
|
84
|
+
if (item.ref.current) {
|
|
85
|
+
// Find the shortest column
|
|
86
|
+
const shortestCol = columnHeights.current.indexOf(Math.min(...columnHeights.current)), left = shortestCol * (colWidth + gap), top = columnHeights.current[shortestCol] ?? 0, height = item.ref.current.offsetHeight;
|
|
87
|
+
columnHeights.current[shortestCol] = top + height + gap, newPositions[index] = {
|
|
88
|
+
left: left,
|
|
89
|
+
top: top,
|
|
90
|
+
width: colWidth,
|
|
91
|
+
height: height
|
|
92
|
+
};
|
|
85
93
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
setLoadingImages(!1), // This ensures the loading class is removed *immediately* after images load
|
|
95
|
-
// Force a double requestAnimationFrame for final layout calculation after all images are loaded (guarantees DOM paint)
|
|
96
|
-
requestAnimationFrame((() => {
|
|
97
|
-
requestAnimationFrame((() => {
|
|
98
|
-
calculateLayout(),
|
|
99
|
-
// As a failsafe, if still present for some render lag, force another setLoadingImages(false)
|
|
100
|
-
setLoadingImages(!1);
|
|
101
|
-
}));
|
|
102
|
-
})), onLayoutComplete?.());
|
|
94
|
+
})), setPositions(newPositions);
|
|
95
|
+
}), [ items, columns, gap ]), handleImageLoad = useCallback((img => {
|
|
96
|
+
if (imageElements.current.get(img)) return;
|
|
97
|
+
// Add loaded class for animation
|
|
98
|
+
if (imageElements.current.set(img, !0), imagesLoadedCount.current += 1, containerRef.current && imagesLoaded) {
|
|
99
|
+
const itemElement = img.closest(".o-masonry-grid > div");
|
|
100
|
+
itemElement && (itemElement.offsetHeight, itemElement.classList.add("o-masonry-grid__item-loaded"),
|
|
101
|
+
itemElement.classList.remove("o-masonry-grid__item-loading"));
|
|
103
102
|
}
|
|
104
|
-
|
|
103
|
+
// Schedule layout recalculation after next paint to prevent overlap
|
|
104
|
+
const scheduleLayoutUpdate = () => {
|
|
105
|
+
const frameId = requestAnimationFrame((() => {
|
|
106
|
+
onImageLoad?.(imagesLoadedCount.current, totalImagesCount.current), calculateLayout();
|
|
107
|
+
}));
|
|
108
|
+
return () => cancelAnimationFrame(frameId);
|
|
109
|
+
}, cleanup = scheduleLayoutUpdate();
|
|
110
|
+
// Clean up previous scheduled updates
|
|
111
|
+
// If all images have loaded, update loading state and complete layout
|
|
112
|
+
imagesLoadedCount.current >= totalImagesCount.current && totalImagesCount.current > 0 && (setLayoutComplete(!0),
|
|
113
|
+
setLoadingImages(!1), setTimeout((() => cleanup()), 0), // Clean up after current execution
|
|
114
|
+
scheduleLayoutUpdate(), onLayoutComplete?.());
|
|
115
|
+
}), [ onImageLoad, onLayoutComplete, imagesLoaded, calculateLayout ]), trackImages = useCallback((() => {
|
|
105
116
|
if (!imagesLoaded || !containerRef.current) return;
|
|
106
117
|
imageElements.current.clear(), imagesLoadedCount.current = 0;
|
|
107
118
|
const images = containerRef.current.querySelectorAll("img");
|
|
@@ -120,30 +131,21 @@ const MasonryGrid = forwardRef((({children: children, className: className = ""
|
|
|
120
131
|
img.removeEventListener("error", masonryImg._masonryLoadHandler), delete masonryImg._masonryLoadHandler);
|
|
121
132
|
}));
|
|
122
133
|
});
|
|
123
|
-
}), [ imagesLoaded, handleImageLoad, onLayoutComplete ])
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
columnHeights.current = Array(columns).fill(0);
|
|
127
|
-
const newPositions = [];
|
|
128
|
-
items.forEach(((item, index) => {
|
|
129
|
-
if (item.ref.current) {
|
|
130
|
-
// Find the shortest column
|
|
131
|
-
const shortestCol = columnHeights.current.indexOf(Math.min(...columnHeights.current)), left = shortestCol * (colWidth + gap), top = columnHeights.current[shortestCol] ?? 0, height = item.ref.current.offsetHeight;
|
|
132
|
-
columnHeights.current[shortestCol] = top + height + gap, newPositions[index] = {
|
|
133
|
-
left: left,
|
|
134
|
-
top: top,
|
|
135
|
-
width: colWidth,
|
|
136
|
-
height: height
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
})), setPositions(newPositions);
|
|
140
|
-
}), [ items, columns, gap ]);
|
|
141
|
-
// === OBSERVE CONTAINER RESIZE ===
|
|
134
|
+
}), [ imagesLoaded, handleImageLoad, onLayoutComplete ]);
|
|
135
|
+
// === TRACK & MANAGE IMAGES ===
|
|
136
|
+
// === OBSERVE CONTAINER RESIZE ===
|
|
142
137
|
useEffect((() => {
|
|
143
138
|
if (!containerRef.current) return;
|
|
144
|
-
let animationFrame = null;
|
|
145
|
-
const observer = new ResizeObserver((
|
|
146
|
-
|
|
139
|
+
let animationFrame = null, lastWidth = 0;
|
|
140
|
+
const observer = new ResizeObserver((entries => {
|
|
141
|
+
const entry = entries[0];
|
|
142
|
+
if (!entry) return;
|
|
143
|
+
const currentWidth = entry.contentRect.width;
|
|
144
|
+
// Only recalculate if width actually changed (prevents excessive calculations)
|
|
145
|
+
Math.abs(currentWidth - lastWidth) > 1 && (animationFrame && cancelAnimationFrame(animationFrame),
|
|
146
|
+
animationFrame = requestAnimationFrame((() => {
|
|
147
|
+
calculateLayout(), lastWidth = currentWidth;
|
|
148
|
+
})));
|
|
147
149
|
}));
|
|
148
150
|
return observer.observe(containerRef.current), () => {
|
|
149
151
|
observer.disconnect(), animationFrame && cancelAnimationFrame(animationFrame);
|
|
@@ -154,24 +156,21 @@ const MasonryGrid = forwardRef((({children: children, className: className = ""
|
|
|
154
156
|
setLayoutComplete(!0), void setLoadingImages(!1))
|
|
155
157
|
// Only reset layoutComplete when items or columns change
|
|
156
158
|
), [ items, columns, calculateLayout, imagesLoaded, trackImages ]),
|
|
157
|
-
// ===
|
|
159
|
+
// === ADD RESIZEOBSERVERS TO GRID ITEMS FOR DYNAMIC CONTENT MEASUREMENT ===
|
|
158
160
|
React.useEffect((() => {
|
|
159
|
-
// Clean up old observers if items ever change
|
|
160
161
|
const observers = [];
|
|
162
|
+
let animationFrame = null;
|
|
163
|
+
// Debounced layout calculation for item resize events
|
|
164
|
+
const debouncedCalculateLayout = () => {
|
|
165
|
+
animationFrame && cancelAnimationFrame(animationFrame), animationFrame = requestAnimationFrame(calculateLayout);
|
|
166
|
+
};
|
|
161
167
|
return items.forEach((item => {
|
|
162
168
|
if (item.ref.current) {
|
|
163
|
-
const obs = new ResizeObserver(
|
|
164
|
-
// Double rAF: ensures layout only runs after DOM/paint/async renders
|
|
165
|
-
requestAnimationFrame((() => {
|
|
166
|
-
requestAnimationFrame((() => {
|
|
167
|
-
calculateLayout();
|
|
168
|
-
}));
|
|
169
|
-
}));
|
|
170
|
-
}));
|
|
169
|
+
const obs = new ResizeObserver(debouncedCalculateLayout);
|
|
171
170
|
obs.observe(item.ref.current), observers.push(obs);
|
|
172
171
|
}
|
|
173
172
|
})), () => {
|
|
174
|
-
observers.forEach((obs => obs.disconnect()));
|
|
173
|
+
observers.forEach((obs => obs.disconnect())), animationFrame && cancelAnimationFrame(animationFrame);
|
|
175
174
|
};
|
|
176
175
|
}), [ items, calculateLayout ]);
|
|
177
176
|
// Ensure loadingImages state resets when items/columns/imagesLoaded change
|
package/dist/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../src/layouts/Grid/Grid.tsx","../src/layouts/MasonryGrid/MasonryGrid.tsx","../src/layouts/Grid/GridCol.tsx","../src/layouts/Grid/Container.tsx","../src/layouts/Grid/Row.tsx","../src/layouts/MasonryGrid/MasonryGridItem.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["Grid","forwardRef","children","className","justifyContent","alignItems","noGutters","direction","wrap","props","ref","classes","push","_jsx","join","displayName","MasonryGrid","xs","sm","md","lg","xl","xxl","gap","animate","imagesLoaded","onLayoutComplete","onImageLoad","columns","setColumns","useState","positions","setPositions","
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../src/layouts/Grid/Grid.tsx","../src/layouts/MasonryGrid/MasonryGrid.tsx","../src/layouts/Grid/GridCol.tsx","../src/layouts/Grid/Container.tsx","../src/layouts/Grid/Row.tsx","../src/layouts/MasonryGrid/MasonryGridItem.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["Grid","forwardRef","children","className","justifyContent","alignItems","noGutters","direction","wrap","props","ref","classes","push","_jsx","join","displayName","MasonryGrid","xs","sm","md","lg","xl","xxl","gap","animate","imagesLoaded","onLayoutComplete","onImageLoad","columns","setColumns","useState","positions","setPositions","setLayoutComplete","loadingImages","setLoadingImages","containerRef","useRef","columnHeights","imagesLoadedCount","totalImagesCount","imageElements","Map","useEffect","useImperativeHandle","current","getResponsiveColumns","useCallback","width","window","innerWidth","undefined","handleResize","addEventListener","removeEventListener","items","setItems","newItems","Children","forEach","child","index","isValidElement","id","key","toString","element","position","React","createRef","calculateLayout","length","colWidth","offsetWidth","Array","fill","newPositions","item","shortestCol","indexOf","Math","min","left","top","height","offsetHeight","handleImageLoad","img","get","set","itemElement","closest","classList","add","remove","scheduleLayoutUpdate","frameId","requestAnimationFrame","cancelAnimationFrame","cleanup","setTimeout","trackImages","clear","images","querySelectorAll","masonryImg","complete","loadHandler","_masonryLoadHandler","animationFrame","lastWidth","observer","ResizeObserver","entries","entry","currentWidth","contentRect","abs","observe","disconnect","useLayoutEffect","observers","debouncedCalculateLayout","obs","containerHeight","max","filter","Boolean","style","map","opacity","GridCol","offsetXs","offsetSm","offsetMd","offsetLg","offsetXl","offsetXxl","grow","shrink","basis","align","processResponsiveProp","value","breakpoint","Container","type","containerClass","trim","Row","MasonryGridItem"],"mappings":"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"}
|
package/dist/theme.js
CHANGED
|
@@ -2253,7 +2253,7 @@ const logger = getLogger(), ThemeProvider = ({children: children, defaultTheme:
|
|
|
2253
2253
|
// If defaultTheme is provided, use it
|
|
2254
2254
|
return null != defaultTheme ? defaultTheme : "default";
|
|
2255
2255
|
// Default fallback
|
|
2256
|
-
}), [ defaultTheme, enablePersistence, storageKey ]), [currentTheme, setCurrentTheme] = useState((() => "string" == typeof initialDefaultTheme ? initialDefaultTheme : "tokens-theme")), [activeTokens, setActiveTokens] = useState((() => {
|
|
2256
|
+
}), [ defaultTheme, enablePersistence, storageKey, storageAdapter ]), [currentTheme, setCurrentTheme] = useState((() => "string" == typeof initialDefaultTheme ? initialDefaultTheme : "tokens-theme")), [activeTokens, setActiveTokens] = useState((() => {
|
|
2257
2257
|
// If defaultTheme is DesignTokens, validate and store them
|
|
2258
2258
|
if (defaultTheme && "string" != typeof defaultTheme) {
|
|
2259
2259
|
const {tokens: tokens, validation: validation} = validateAndMergeTokens(defaultTheme);
|
|
@@ -3554,7 +3554,7 @@ class ThemeValidator {
|
|
|
3554
3554
|
*
|
|
3555
3555
|
* Provides detailed inspection and debugging information for themes
|
|
3556
3556
|
*/ const ThemeInspector = ({theme: theme, showValidation: showValidation = !0, showCSSVariables: showCSSVariables = !0, showStructure: showStructure = !0, className: className, style: style}) => {
|
|
3557
|
-
const [activeTab, setActiveTab] = useState("overview"), [expandedSections, setExpandedSections] = useState(new Set([ "palette" ])), [searchQuery, setSearchQuery] = useState(""), [debouncedSearchQuery, setDebouncedSearchQuery] = useState(""), [copiedPath, setCopiedPath] = useState(null), searchTimeoutRef = useRef();
|
|
3557
|
+
const [activeTab, setActiveTab] = useState("overview"), [expandedSections, setExpandedSections] = useState(new Set([ "palette" ])), [searchQuery, setSearchQuery] = useState(""), [debouncedSearchQuery, setDebouncedSearchQuery] = useState(""), [copiedPath, setCopiedPath] = useState(null), searchTimeoutRef = useRef(void 0);
|
|
3558
3558
|
// Debounce search query
|
|
3559
3559
|
useEffect((() => (searchTimeoutRef.current && clearTimeout(searchTimeoutRef.current),
|
|
3560
3560
|
searchTimeoutRef.current = setTimeout((() => {
|
|
@@ -3960,7 +3960,7 @@ class ThemeValidator {
|
|
|
3960
3960
|
}) ]
|
|
3961
3961
|
});
|
|
3962
3962
|
}, ThemeComparator = ({themeA: themeA, themeB: themeB, showOnlyDifferences: showOnlyDifferences = !1, className: className, style: style}) => {
|
|
3963
|
-
const [searchQuery, setSearchQuery] = useState(""), [debouncedSearchQuery, setDebouncedSearchQuery] = useState(""), [filterType, setFilterType] = useState("all"), [filterCategory, setFilterCategory] = useState("all"), searchTimeoutRef = useRef();
|
|
3963
|
+
const [searchQuery, setSearchQuery] = useState(""), [debouncedSearchQuery, setDebouncedSearchQuery] = useState(""), [filterType, setFilterType] = useState("all"), [filterCategory, setFilterCategory] = useState("all"), searchTimeoutRef = useRef(void 0);
|
|
3964
3964
|
// Debounce search query
|
|
3965
3965
|
useEffect((() => (searchTimeoutRef.current && clearTimeout(searchTimeoutRef.current),
|
|
3966
3966
|
searchTimeoutRef.current = setTimeout((() => {
|
|
@@ -4812,7 +4812,7 @@ const ThemeLiveEditor = ({initialTheme: initialTheme, onChange: onChange, classN
|
|
|
4812
4812
|
} catch (err) {
|
|
4813
4813
|
setError(err instanceof Error ? err.message : "Invalid JSON");
|
|
4814
4814
|
}
|
|
4815
|
-
}), [ updateTheme ]), jsonUpdateTimeoutRef = useRef();
|
|
4815
|
+
}), [ updateTheme ]), jsonUpdateTimeoutRef = useRef(void 0);
|
|
4816
4816
|
// Debounced JSON update to history
|
|
4817
4817
|
useEffect((() => {
|
|
4818
4818
|
if (!error) {
|