@mks2508/mks-ui 0.5.7 → 0.6.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.
- package/dist/react-ui/index.js +2 -2
- package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts +2 -0
- package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts.map +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +173 -43
- package/dist/react-ui/ui/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/Dialog.styles.js +1 -0
- package/dist/react-ui/ui/Dialog/Dialog.types.d.ts +20 -1
- package/dist/react-ui/ui/Dialog/Dialog.types.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/index.d.ts +28 -7
- package/dist/react-ui/ui/Dialog/index.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/index.js +32 -5
- package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-DOR3Ld-k.css → DynamicToggle-DJLwEkHr.css} +12 -19
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +12 -20
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +7 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +55 -31
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
- package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.js +47 -34
- package/dist/react-ui/ui/index.js +1 -1
- package/package.json +52 -13
- package/src/assets/react.svg +0 -1
- package/src/core/index.ts +0 -7
- package/src/core/types.ts +0 -82
- package/src/css.d.ts +0 -7
- package/src/index.css +0 -129
- package/src/index.ts +0 -29
- package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
- package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
- package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
- package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
- package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
- package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
- package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
- package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
- package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
- package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
- package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
- package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
- package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
- package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
- package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
- package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
- package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
- package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
- package/src/react-ui/blocks/Terminal/display.ts +0 -46
- package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
- package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
- package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
- package/src/react-ui/blocks/Terminal/index.ts +0 -111
- package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
- package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
- package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
- package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
- package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
- package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
- package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
- package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
- package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
- package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
- package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
- package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
- package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
- package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
- package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
- package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
- package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
- package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
- package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
- package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
- package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
- package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
- package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
- package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
- package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
- package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
- package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
- package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
- package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
- package/src/react-ui/blocks/index.ts +0 -11
- package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
- package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
- package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
- package/src/react-ui/components/index.ts +0 -9
- package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
- package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
- package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
- package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
- package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
- package/src/react-ui/hooks/index.ts +0 -20
- package/src/react-ui/icons/index.ts +0 -12
- package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
- package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
- package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
- package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
- package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
- package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
- package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
- package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
- package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
- package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
- package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
- package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
- package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
- package/src/react-ui/icons/lucide-animated/index.ts +0 -38
- package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
- package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
- package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
- package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
- package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
- package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
- package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
- package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
- package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
- package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
- package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
- package/src/react-ui/index.ts +0 -30
- package/src/react-ui/lib/get-strict-context.tsx +0 -56
- package/src/react-ui/lib/icon-wrapper.tsx +0 -70
- package/src/react-ui/lib/index.ts +0 -9
- package/src/react-ui/lib/utils.ts +0 -24
- package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
- package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
- package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
- package/src/react-ui/primitives/Highlight/index.tsx +0 -577
- package/src/react-ui/primitives/Slot/index.tsx +0 -128
- package/src/react-ui/primitives/index.ts +0 -16
- package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -141
- package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -217
- package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
- package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
- package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -253
- package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
- package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
- package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
- package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
- package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
- package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
- package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
- package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
- package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
- package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
- package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
- package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
- package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
- package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
- package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
- package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
- package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
- package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
- package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
- package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
- package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
- package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
- package/src/react-ui/primitives/waapi/core/index.ts +0 -53
- package/src/react-ui/primitives/waapi/core/types.ts +0 -200
- package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
- package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
- package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
- package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
- package/src/react-ui/primitives/waapi/index.ts +0 -139
- package/src/react-ui/styles/animations.css +0 -369
- package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
- package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
- package/src/react-ui/ui/Accordion/index.tsx +0 -362
- package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
- package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
- package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
- package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
- package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
- package/src/react-ui/ui/Badge/index.tsx +0 -34
- package/src/react-ui/ui/Button/Button.styles.ts +0 -57
- package/src/react-ui/ui/Button/Button.types.ts +0 -63
- package/src/react-ui/ui/Button/index.tsx +0 -155
- package/src/react-ui/ui/Card/Card.styles.ts +0 -32
- package/src/react-ui/ui/Card/Card.types.ts +0 -39
- package/src/react-ui/ui/Card/index.tsx +0 -130
- package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
- package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
- package/src/react-ui/ui/Checkbox/index.tsx +0 -233
- package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
- package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
- package/src/react-ui/ui/Combobox/index.tsx +0 -331
- package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
- package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
- package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
- package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
- package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
- package/src/react-ui/ui/DataCard/index.tsx +0 -340
- package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
- package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
- package/src/react-ui/ui/Dialog/index.tsx +0 -452
- package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
- package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
- package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -376
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -180
- package/src/react-ui/ui/DynamicToggle/index.tsx +0 -316
- package/src/react-ui/ui/DynamicToggle/prototype-v7-ios.html +0 -413
- package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
- package/src/react-ui/ui/DynamicToggle/prototype-v8-gooey-safari.html +0 -560
- package/src/react-ui/ui/DynamicToggle/prototype-v8b-react-structure.html +0 -227
- package/src/react-ui/ui/DynamicToggle/prototype.html +0 -419
- package/src/react-ui/ui/Field/Field.styles.ts +0 -47
- package/src/react-ui/ui/Field/Field.types.ts +0 -60
- package/src/react-ui/ui/Field/index.tsx +0 -254
- package/src/react-ui/ui/Input/Input.styles.ts +0 -11
- package/src/react-ui/ui/Input/Input.types.ts +0 -10
- package/src/react-ui/ui/Input/index.tsx +0 -32
- package/src/react-ui/ui/InputGroup/InputGroup.styles.ts +0 -53
- package/src/react-ui/ui/InputGroup/InputGroup.types.ts +0 -44
- package/src/react-ui/ui/InputGroup/index.tsx +0 -149
- package/src/react-ui/ui/Label/Label.styles.ts +0 -10
- package/src/react-ui/ui/Label/Label.types.ts +0 -9
- package/src/react-ui/ui/Label/index.tsx +0 -27
- package/src/react-ui/ui/Menu/Menu.styles.ts +0 -71
- package/src/react-ui/ui/Menu/Menu.types.ts +0 -425
- package/src/react-ui/ui/Menu/index.tsx +0 -900
- package/src/react-ui/ui/Popover/Popover.styles.ts +0 -55
- package/src/react-ui/ui/Popover/Popover.types.ts +0 -261
- package/src/react-ui/ui/Popover/index.tsx +0 -422
- package/src/react-ui/ui/Progress/Progress.styles.ts +0 -36
- package/src/react-ui/ui/Progress/Progress.types.ts +0 -162
- package/src/react-ui/ui/Progress/index.tsx +0 -254
- package/src/react-ui/ui/Select/Select.styles.ts +0 -30
- package/src/react-ui/ui/Select/Select.types.ts +0 -51
- package/src/react-ui/ui/Select/index.tsx +0 -225
- package/src/react-ui/ui/Separator/Separator.styles.ts +0 -10
- package/src/react-ui/ui/Separator/Separator.types.ts +0 -10
- package/src/react-ui/ui/Separator/index.tsx +0 -37
- package/src/react-ui/ui/Switch/Switch.styles.ts +0 -50
- package/src/react-ui/ui/Switch/Switch.types.ts +0 -155
- package/src/react-ui/ui/Switch/index.tsx +0 -253
- package/src/react-ui/ui/Tabs/Tabs.css +0 -39
- package/src/react-ui/ui/Tabs/Tabs.styles.ts +0 -148
- package/src/react-ui/ui/Tabs/Tabs.types.ts +0 -255
- package/src/react-ui/ui/Tabs/index.tsx +0 -529
- package/src/react-ui/ui/TextFlow/TextFlow.styles.ts +0 -36
- package/src/react-ui/ui/TextFlow/TextFlow.types.ts +0 -118
- package/src/react-ui/ui/TextFlow/index.tsx +0 -276
- package/src/react-ui/ui/Textarea/Textarea.styles.ts +0 -10
- package/src/react-ui/ui/Textarea/Textarea.types.ts +0 -9
- package/src/react-ui/ui/Textarea/index.tsx +0 -27
- package/src/react-ui/ui/Tooltip/Tooltip.styles.ts +0 -43
- package/src/react-ui/ui/Tooltip/Tooltip.types.ts +0 -253
- package/src/react-ui/ui/Tooltip/index.tsx +0 -394
- package/src/react-ui/ui/index.ts +0 -41
- package/src/types/css-modules.d.ts +0 -18
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion, useAnimation } from "motion/react";
|
|
4
|
-
import type { HTMLAttributes } from "react";
|
|
5
|
-
import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/react-ui/lib/utils";
|
|
8
|
-
|
|
9
|
-
export interface LayoutPanelTopIconHandle {
|
|
10
|
-
startAnimation: () => void;
|
|
11
|
-
stopAnimation: () => void;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface LayoutPanelTopIconProps extends HTMLAttributes<HTMLDivElement> {
|
|
15
|
-
size?: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const LayoutPanelTopIcon = forwardRef<
|
|
19
|
-
LayoutPanelTopIconHandle,
|
|
20
|
-
LayoutPanelTopIconProps
|
|
21
|
-
>(({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
|
|
22
|
-
const controls = useAnimation();
|
|
23
|
-
const isControlledRef = useRef(false);
|
|
24
|
-
|
|
25
|
-
useImperativeHandle(ref, () => {
|
|
26
|
-
isControlledRef.current = true;
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
startAnimation: () => controls.start("animate"),
|
|
30
|
-
stopAnimation: () => controls.start("normal"),
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const handleMouseEnter = useCallback(
|
|
35
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
36
|
-
if (isControlledRef.current) {
|
|
37
|
-
onMouseEnter?.(e);
|
|
38
|
-
} else {
|
|
39
|
-
controls.start("animate");
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
[controls, onMouseEnter]
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const handleMouseLeave = useCallback(
|
|
46
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
47
|
-
if (isControlledRef.current) {
|
|
48
|
-
onMouseLeave?.(e);
|
|
49
|
-
} else {
|
|
50
|
-
controls.start("normal");
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
[controls, onMouseLeave]
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<div
|
|
58
|
-
className={cn(className)}
|
|
59
|
-
onMouseEnter={handleMouseEnter}
|
|
60
|
-
onMouseLeave={handleMouseLeave}
|
|
61
|
-
{...props}
|
|
62
|
-
>
|
|
63
|
-
<svg
|
|
64
|
-
fill="none"
|
|
65
|
-
height={size}
|
|
66
|
-
stroke="currentColor"
|
|
67
|
-
strokeLinecap="round"
|
|
68
|
-
strokeLinejoin="round"
|
|
69
|
-
strokeWidth="2"
|
|
70
|
-
viewBox="0 0 24 24"
|
|
71
|
-
width={size}
|
|
72
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
73
|
-
>
|
|
74
|
-
<motion.rect
|
|
75
|
-
animate={controls}
|
|
76
|
-
height="7"
|
|
77
|
-
initial="normal"
|
|
78
|
-
rx="1"
|
|
79
|
-
variants={{
|
|
80
|
-
normal: { opacity: 1, translateY: 0 },
|
|
81
|
-
animate: {
|
|
82
|
-
opacity: [0, 1],
|
|
83
|
-
translateY: [-5, 0],
|
|
84
|
-
transition: {
|
|
85
|
-
opacity: { duration: 0.5, times: [0.2, 1] },
|
|
86
|
-
duration: 0.5,
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
}}
|
|
90
|
-
width="18"
|
|
91
|
-
x="3"
|
|
92
|
-
y="3"
|
|
93
|
-
/>
|
|
94
|
-
<motion.rect
|
|
95
|
-
animate={controls}
|
|
96
|
-
height="7"
|
|
97
|
-
initial="normal"
|
|
98
|
-
rx="1"
|
|
99
|
-
variants={{
|
|
100
|
-
normal: { opacity: 1, translateX: 0 },
|
|
101
|
-
animate: {
|
|
102
|
-
opacity: [0, 1],
|
|
103
|
-
translateX: [-10, 0],
|
|
104
|
-
transition: {
|
|
105
|
-
opacity: { duration: 0.7, times: [0.5, 1] },
|
|
106
|
-
translateX: { delay: 0.3 },
|
|
107
|
-
duration: 0.5,
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
}}
|
|
111
|
-
width="7"
|
|
112
|
-
x="3"
|
|
113
|
-
y="14"
|
|
114
|
-
/>
|
|
115
|
-
<motion.rect
|
|
116
|
-
animate={controls}
|
|
117
|
-
height="7"
|
|
118
|
-
initial="normal"
|
|
119
|
-
rx="1"
|
|
120
|
-
variants={{
|
|
121
|
-
normal: { opacity: 1, translateX: 0 },
|
|
122
|
-
animate: {
|
|
123
|
-
opacity: [0, 1],
|
|
124
|
-
translateX: [10, 0],
|
|
125
|
-
transition: {
|
|
126
|
-
opacity: { duration: 0.8, times: [0.5, 1] },
|
|
127
|
-
translateX: { delay: 0.4 },
|
|
128
|
-
duration: 0.5,
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
}}
|
|
132
|
-
width="7"
|
|
133
|
-
x="14"
|
|
134
|
-
y="14"
|
|
135
|
-
/>
|
|
136
|
-
</svg>
|
|
137
|
-
</div>
|
|
138
|
-
);
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
LayoutPanelTopIcon.displayName = "LayoutPanelTopIcon";
|
|
142
|
-
|
|
143
|
-
export { LayoutPanelTopIcon };
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* List Icon.
|
|
3
|
-
*
|
|
4
|
-
* Simple SVG icon for line numbers.
|
|
5
|
-
*
|
|
6
|
-
* @module components/icons/list
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
'use client';
|
|
10
|
-
|
|
11
|
-
import type { HTMLAttributes } from 'react';
|
|
12
|
-
|
|
13
|
-
export interface IListIconProps extends HTMLAttributes<SVGSVGElement> {
|
|
14
|
-
size?: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* List Icon component.
|
|
19
|
-
*
|
|
20
|
-
* Use for line numbers toggle.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```tsx
|
|
24
|
-
* <ListIcon className="w-4 h-4 text-primary" />
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export function ListIcon({
|
|
28
|
-
className,
|
|
29
|
-
size = 24,
|
|
30
|
-
...props
|
|
31
|
-
}: IListIconProps) {
|
|
32
|
-
return (
|
|
33
|
-
<svg
|
|
34
|
-
className={className}
|
|
35
|
-
width={size}
|
|
36
|
-
height={size}
|
|
37
|
-
viewBox="0 0 24 24"
|
|
38
|
-
fill="none"
|
|
39
|
-
stroke="currentColor"
|
|
40
|
-
strokeWidth="2"
|
|
41
|
-
strokeLinecap="round"
|
|
42
|
-
strokeLinejoin="round"
|
|
43
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
44
|
-
{...props}
|
|
45
|
-
>
|
|
46
|
-
<line x1="8" x2="21" y1="6" y2="6" />
|
|
47
|
-
<line x1="8" x2="21" y1="12" y2="12" />
|
|
48
|
-
<line x1="8" x2="21" y1="18" y2="18" />
|
|
49
|
-
<line x1="3" x2="3.01" y1="6" y2="6" />
|
|
50
|
-
<line x1="3" x2="3.01" y1="12" y2="12" />
|
|
51
|
-
<line x1="3" x2="3.01" y1="18" y2="18" />
|
|
52
|
-
</svg>
|
|
53
|
-
);
|
|
54
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package Icon
|
|
3
|
-
*
|
|
4
|
-
* Package/box icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function Package(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<path d="m7.5 4.27 9 5.15" />
|
|
19
|
-
<path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z" />
|
|
20
|
-
<path d="m3.3 7 8.7 5 8.7-5" />
|
|
21
|
-
<path d="M12 22v-9" />
|
|
22
|
-
</svg>
|
|
23
|
-
);
|
|
24
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Palette Icon
|
|
3
|
-
*
|
|
4
|
-
* Palette/colors icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function Palette(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<circle cx="13.5" cy="6.5" r="0.5" fill="currentColor" />
|
|
19
|
-
<circle cx="17.5" cy="10.5" r="0.5" fill="currentColor" />
|
|
20
|
-
<circle cx="8.5" cy="7.5" r="0.5" fill="currentColor" />
|
|
21
|
-
<circle cx="6.5" cy="12.5" r="0.5" fill="currentColor" />
|
|
22
|
-
<path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z" />
|
|
23
|
-
</svg>
|
|
24
|
-
);
|
|
25
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion, useAnimation } from "motion/react";
|
|
4
|
-
import type { HTMLAttributes } from "react";
|
|
5
|
-
import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/react-ui/lib/utils";
|
|
8
|
-
|
|
9
|
-
export interface PlusIconHandle {
|
|
10
|
-
startAnimation: () => void;
|
|
11
|
-
stopAnimation: () => void;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface PlusIconProps extends HTMLAttributes<HTMLDivElement> {
|
|
15
|
-
size?: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const PlusIcon = forwardRef<PlusIconHandle, PlusIconProps>(
|
|
19
|
-
({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
|
|
20
|
-
const controls = useAnimation();
|
|
21
|
-
const isControlledRef = useRef(false);
|
|
22
|
-
|
|
23
|
-
useImperativeHandle(ref, () => {
|
|
24
|
-
isControlledRef.current = true;
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
startAnimation: () => controls.start("animate"),
|
|
28
|
-
stopAnimation: () => controls.start("normal"),
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const handleMouseEnter = useCallback(
|
|
33
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
34
|
-
if (isControlledRef.current) {
|
|
35
|
-
onMouseEnter?.(e);
|
|
36
|
-
} else {
|
|
37
|
-
controls.start("animate");
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
[controls, onMouseEnter]
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const handleMouseLeave = useCallback(
|
|
44
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
45
|
-
if (isControlledRef.current) {
|
|
46
|
-
onMouseLeave?.(e);
|
|
47
|
-
} else {
|
|
48
|
-
controls.start("normal");
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
[controls, onMouseLeave]
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div
|
|
56
|
-
className={cn(className)}
|
|
57
|
-
onMouseEnter={handleMouseEnter}
|
|
58
|
-
onMouseLeave={handleMouseLeave}
|
|
59
|
-
{...props}
|
|
60
|
-
>
|
|
61
|
-
<motion.svg
|
|
62
|
-
animate={controls}
|
|
63
|
-
fill="none"
|
|
64
|
-
height={size}
|
|
65
|
-
stroke="currentColor"
|
|
66
|
-
strokeLinecap="round"
|
|
67
|
-
strokeLinejoin="round"
|
|
68
|
-
strokeWidth="2"
|
|
69
|
-
transition={{ type: "spring", stiffness: 100, damping: 15 }}
|
|
70
|
-
variants={{
|
|
71
|
-
normal: {
|
|
72
|
-
rotate: 0,
|
|
73
|
-
},
|
|
74
|
-
animate: {
|
|
75
|
-
rotate: 180,
|
|
76
|
-
},
|
|
77
|
-
}}
|
|
78
|
-
viewBox="0 0 24 24"
|
|
79
|
-
width={size}
|
|
80
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
81
|
-
>
|
|
82
|
-
<path d="M5 12h14" />
|
|
83
|
-
<path d="M12 5v14" />
|
|
84
|
-
</motion.svg>
|
|
85
|
-
</div>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
PlusIcon.displayName = "PlusIcon";
|
|
91
|
-
|
|
92
|
-
export { PlusIcon };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RefreshCw Icon
|
|
3
|
-
*
|
|
4
|
-
* Refresh/rotate icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function RefreshCw(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" />
|
|
19
|
-
<path d="M21 3v5h-5" />
|
|
20
|
-
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" />
|
|
21
|
-
<path d="M8 16H3v5" />
|
|
22
|
-
</svg>
|
|
23
|
-
);
|
|
24
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rocket Icon
|
|
3
|
-
*
|
|
4
|
-
* Rocket/launch icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function Rocket(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z" />
|
|
19
|
-
<path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z" />
|
|
20
|
-
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" />
|
|
21
|
-
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" />
|
|
22
|
-
</svg>
|
|
23
|
-
);
|
|
24
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Save Icon
|
|
3
|
-
*
|
|
4
|
-
* Save/floppy disk icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function Save(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" />
|
|
19
|
-
<polyline points="17 21 17 13 7 13 7 21" />
|
|
20
|
-
<polyline points="7 3 7 8 15 8" />
|
|
21
|
-
</svg>
|
|
22
|
-
);
|
|
23
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion, useAnimation } from "motion/react";
|
|
4
|
-
import type { HTMLAttributes } from "react";
|
|
5
|
-
import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/react-ui/lib/utils";
|
|
8
|
-
|
|
9
|
-
export interface SearchIconHandle {
|
|
10
|
-
startAnimation: () => void;
|
|
11
|
-
stopAnimation: () => void;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface SearchIconProps extends HTMLAttributes<HTMLDivElement> {
|
|
15
|
-
size?: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const SearchIcon = forwardRef<SearchIconHandle, SearchIconProps>(
|
|
19
|
-
({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
|
|
20
|
-
const controls = useAnimation();
|
|
21
|
-
const isControlledRef = useRef(false);
|
|
22
|
-
|
|
23
|
-
useImperativeHandle(ref, () => {
|
|
24
|
-
isControlledRef.current = true;
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
startAnimation: () => controls.start("animate"),
|
|
28
|
-
stopAnimation: () => controls.start("normal"),
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const handleMouseEnter = useCallback(
|
|
33
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
34
|
-
if (isControlledRef.current) {
|
|
35
|
-
onMouseEnter?.(e);
|
|
36
|
-
} else {
|
|
37
|
-
controls.start("animate");
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
[controls, onMouseEnter]
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const handleMouseLeave = useCallback(
|
|
44
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
45
|
-
if (isControlledRef.current) {
|
|
46
|
-
onMouseLeave?.(e);
|
|
47
|
-
} else {
|
|
48
|
-
controls.start("normal");
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
[controls, onMouseLeave]
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div
|
|
56
|
-
className={cn(className)}
|
|
57
|
-
onMouseEnter={handleMouseEnter}
|
|
58
|
-
onMouseLeave={handleMouseLeave}
|
|
59
|
-
{...props}
|
|
60
|
-
>
|
|
61
|
-
<motion.svg
|
|
62
|
-
animate={controls}
|
|
63
|
-
fill="none"
|
|
64
|
-
height={size}
|
|
65
|
-
stroke="currentColor"
|
|
66
|
-
strokeLinecap="round"
|
|
67
|
-
strokeLinejoin="round"
|
|
68
|
-
strokeWidth="2"
|
|
69
|
-
transition={{
|
|
70
|
-
duration: 1,
|
|
71
|
-
bounce: 0.3,
|
|
72
|
-
}}
|
|
73
|
-
variants={{
|
|
74
|
-
normal: { x: 0, y: 0 },
|
|
75
|
-
animate: {
|
|
76
|
-
x: [0, 0, -3, 0],
|
|
77
|
-
y: [0, -4, 0, 0],
|
|
78
|
-
},
|
|
79
|
-
}}
|
|
80
|
-
viewBox="0 0 24 24"
|
|
81
|
-
width={size}
|
|
82
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
83
|
-
>
|
|
84
|
-
<circle cx="11" cy="11" r="8" />
|
|
85
|
-
<path d="m21 21-4.3-4.3" />
|
|
86
|
-
</motion.svg>
|
|
87
|
-
</div>
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
|
|
92
|
-
SearchIcon.displayName = "SearchIcon";
|
|
93
|
-
|
|
94
|
-
export { SearchIcon };
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion, useAnimation } from "motion/react";
|
|
4
|
-
import type { HTMLAttributes } from "react";
|
|
5
|
-
import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/react-ui/lib/utils";
|
|
8
|
-
|
|
9
|
-
export interface SettingsIconHandle {
|
|
10
|
-
startAnimation: () => void;
|
|
11
|
-
stopAnimation: () => void;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface SettingsIconProps extends HTMLAttributes<HTMLDivElement> {
|
|
15
|
-
size?: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const SettingsIcon = forwardRef<SettingsIconHandle, SettingsIconProps>(
|
|
19
|
-
({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
|
|
20
|
-
const controls = useAnimation();
|
|
21
|
-
const isControlledRef = useRef(false);
|
|
22
|
-
|
|
23
|
-
useImperativeHandle(ref, () => {
|
|
24
|
-
isControlledRef.current = true;
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
startAnimation: () => controls.start("animate"),
|
|
28
|
-
stopAnimation: () => controls.start("normal"),
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const handleMouseEnter = useCallback(
|
|
33
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
34
|
-
if (isControlledRef.current) {
|
|
35
|
-
onMouseEnter?.(e);
|
|
36
|
-
} else {
|
|
37
|
-
controls.start("animate");
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
[controls, onMouseEnter]
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const handleMouseLeave = useCallback(
|
|
44
|
-
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
45
|
-
if (isControlledRef.current) {
|
|
46
|
-
onMouseLeave?.(e);
|
|
47
|
-
} else {
|
|
48
|
-
controls.start("normal");
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
[controls, onMouseLeave]
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div
|
|
56
|
-
className={cn(className)}
|
|
57
|
-
onMouseEnter={handleMouseEnter}
|
|
58
|
-
onMouseLeave={handleMouseLeave}
|
|
59
|
-
{...props}
|
|
60
|
-
>
|
|
61
|
-
<motion.svg
|
|
62
|
-
animate={controls}
|
|
63
|
-
fill="none"
|
|
64
|
-
height={size}
|
|
65
|
-
stroke="currentColor"
|
|
66
|
-
strokeLinecap="round"
|
|
67
|
-
strokeLinejoin="round"
|
|
68
|
-
strokeWidth="2"
|
|
69
|
-
transition={{ type: "spring", stiffness: 50, damping: 10 }}
|
|
70
|
-
variants={{
|
|
71
|
-
normal: {
|
|
72
|
-
rotate: 0,
|
|
73
|
-
},
|
|
74
|
-
animate: {
|
|
75
|
-
rotate: 180,
|
|
76
|
-
},
|
|
77
|
-
}}
|
|
78
|
-
viewBox="0 0 24 24"
|
|
79
|
-
width={size}
|
|
80
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
81
|
-
>
|
|
82
|
-
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" />
|
|
83
|
-
<circle cx="12" cy="12" r="3" />
|
|
84
|
-
</motion.svg>
|
|
85
|
-
</div>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
SettingsIcon.displayName = "SettingsIcon";
|
|
91
|
-
|
|
92
|
-
export { SettingsIcon };
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Terminal icon component.
|
|
3
|
-
*
|
|
4
|
-
* Lucide icon for terminal/console display.
|
|
5
|
-
*
|
|
6
|
-
* @module components/icons/terminal
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type { SVGProps } from 'react';
|
|
10
|
-
|
|
11
|
-
export function TerminalIcon(props: SVGProps<SVGSVGElement>) {
|
|
12
|
-
return (
|
|
13
|
-
<svg
|
|
14
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
-
width="24"
|
|
16
|
-
height="24"
|
|
17
|
-
viewBox="0 0 24 24"
|
|
18
|
-
fill="none"
|
|
19
|
-
stroke="currentColor"
|
|
20
|
-
strokeWidth="2"
|
|
21
|
-
strokeLinecap="round"
|
|
22
|
-
strokeLinejoin="round"
|
|
23
|
-
{...props}
|
|
24
|
-
>
|
|
25
|
-
<polyline points="4 17 10 11 4 5" />
|
|
26
|
-
<line x1="12" x2="20" y1="19" y2="19" />
|
|
27
|
-
<rect width="20" height="14" x="2" y="3" rx="2" />
|
|
28
|
-
</svg>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Terminal icon handle type for imperative access.
|
|
34
|
-
*/
|
|
35
|
-
export type TerminalIconHandle = {
|
|
36
|
-
/** Icon element reference */
|
|
37
|
-
icon: 'terminal';
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Terminal icon props type for customization.
|
|
42
|
-
*/
|
|
43
|
-
export interface TerminalIconProps extends SVGProps<SVGSVGElement> {
|
|
44
|
-
/** Optional size prop */
|
|
45
|
-
size?: number;
|
|
46
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Trash2 Icon
|
|
3
|
-
*
|
|
4
|
-
* Delete/trash icon.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function Trash2(props: React.SVGProps<SVGSVGElement>) {
|
|
8
|
-
return (
|
|
9
|
-
<svg
|
|
10
|
-
{...props}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
fill="none"
|
|
13
|
-
stroke="currentColor"
|
|
14
|
-
strokeWidth="2"
|
|
15
|
-
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
>
|
|
18
|
-
<polyline points="3 6 5 6 21 6" />
|
|
19
|
-
<path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" />
|
|
20
|
-
<path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" />
|
|
21
|
-
<line x1="10" x2="10" y1="11" y2="17" />
|
|
22
|
-
<line x1="14" x2="14" y1="11" y2="17" />
|
|
23
|
-
</svg>
|
|
24
|
-
);
|
|
25
|
-
}
|