@sportswik/icons-react 1.0.0 → 1.1.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/README.md +21 -1
- package/dist/animated.d.mts +42 -0
- package/dist/animated.d.ts +42 -0
- package/dist/animated.js +403 -0
- package/dist/animated.mjs +367 -0
- package/dist/index.d.mts +201 -202
- package/dist/index.d.ts +201 -202
- package/package.json +26 -4
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm i @sportswik/icons-react
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```tsx
|
|
14
|
-
import PlayCircle from "@sportswik/icons-react
|
|
14
|
+
import { PlayCircle } from "@sportswik/icons-react";
|
|
15
15
|
|
|
16
16
|
export function Button() {
|
|
17
17
|
return <PlayCircle width={24} height={24} />;
|
|
@@ -24,6 +24,26 @@ All icons inherit color via `currentColor`. Use CSS or inline styles to tint:
|
|
|
24
24
|
<PlayCircle style={{ color: "#0EA5E9" }} />
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
## Animated icons
|
|
28
|
+
|
|
29
|
+
A hand-written subset animates on hover. Same names and props as the static
|
|
30
|
+
icons, plus `animate`:
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { Settings } from "@sportswik/icons-react/animated";
|
|
34
|
+
|
|
35
|
+
<Settings /> // animates on its own mouse hover
|
|
36
|
+
<Settings animate={hovered} /> // a parent (e.g. a nav row) drives it
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- `animate={true}` plays once and holds; `false` eases back to rest.
|
|
40
|
+
- Touch never plays, and `prefers-reduced-motion` keeps icons at rest.
|
|
41
|
+
- Requires React 18+ and `motion` (`npm i motion`), an optional peer dependency.
|
|
42
|
+
- The entry is a client module (`"use client"`); the static entry is not.
|
|
43
|
+
|
|
44
|
+
Available: AlertTriangle, Box, Dashboard, Database, Idea, Menu, Puzzle, Rocket,
|
|
45
|
+
Settings, Ticket, UserShield.
|
|
46
|
+
|
|
27
47
|
## Storybook & Chromatic
|
|
28
48
|
|
|
29
49
|
View all icons in Storybook:
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ComponentType, SVGProps } from 'react';
|
|
2
|
+
|
|
3
|
+
declare const animatedIconBrand: unique symbol;
|
|
4
|
+
type AnimatedIconProps = SVGProps<SVGSVGElement> & {
|
|
5
|
+
/**
|
|
6
|
+
* `true` plays the animation once and holds its end state; `false` eases back
|
|
7
|
+
* to rest. Leave it out and the icon animates on its own mouse hover.
|
|
8
|
+
*/
|
|
9
|
+
animate?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* An animated icon. The brand exists only in the type system: it stops a static
|
|
13
|
+
* icon, whose props are a subset of these, from being accepted wherever a
|
|
14
|
+
* consumer means to pass `animate`.
|
|
15
|
+
*/
|
|
16
|
+
type AnimatedIcon = ComponentType<AnimatedIconProps> & {
|
|
17
|
+
readonly [animatedIconBrand]: true;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
declare const _default$a: AnimatedIcon;
|
|
21
|
+
|
|
22
|
+
declare const _default$9: AnimatedIcon;
|
|
23
|
+
|
|
24
|
+
declare const _default$8: AnimatedIcon;
|
|
25
|
+
|
|
26
|
+
declare const _default$7: AnimatedIcon;
|
|
27
|
+
|
|
28
|
+
declare const _default$6: AnimatedIcon;
|
|
29
|
+
|
|
30
|
+
declare const _default$5: AnimatedIcon;
|
|
31
|
+
|
|
32
|
+
declare const _default$4: AnimatedIcon;
|
|
33
|
+
|
|
34
|
+
declare const _default$3: AnimatedIcon;
|
|
35
|
+
|
|
36
|
+
declare const _default$2: AnimatedIcon;
|
|
37
|
+
|
|
38
|
+
declare const _default$1: AnimatedIcon;
|
|
39
|
+
|
|
40
|
+
declare const _default: AnimatedIcon;
|
|
41
|
+
|
|
42
|
+
export { _default$a as AlertTriangle, type AnimatedIcon, type AnimatedIconProps, _default$9 as Box, _default$8 as Dashboard, _default$7 as Database, _default$6 as Idea, _default$5 as Menu, _default$4 as Puzzle, _default$3 as Rocket, _default$2 as Settings, _default$1 as Ticket, _default as UserShield };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ComponentType, SVGProps } from 'react';
|
|
2
|
+
|
|
3
|
+
declare const animatedIconBrand: unique symbol;
|
|
4
|
+
type AnimatedIconProps = SVGProps<SVGSVGElement> & {
|
|
5
|
+
/**
|
|
6
|
+
* `true` plays the animation once and holds its end state; `false` eases back
|
|
7
|
+
* to rest. Leave it out and the icon animates on its own mouse hover.
|
|
8
|
+
*/
|
|
9
|
+
animate?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* An animated icon. The brand exists only in the type system: it stops a static
|
|
13
|
+
* icon, whose props are a subset of these, from being accepted wherever a
|
|
14
|
+
* consumer means to pass `animate`.
|
|
15
|
+
*/
|
|
16
|
+
type AnimatedIcon = ComponentType<AnimatedIconProps> & {
|
|
17
|
+
readonly [animatedIconBrand]: true;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
declare const _default$a: AnimatedIcon;
|
|
21
|
+
|
|
22
|
+
declare const _default$9: AnimatedIcon;
|
|
23
|
+
|
|
24
|
+
declare const _default$8: AnimatedIcon;
|
|
25
|
+
|
|
26
|
+
declare const _default$7: AnimatedIcon;
|
|
27
|
+
|
|
28
|
+
declare const _default$6: AnimatedIcon;
|
|
29
|
+
|
|
30
|
+
declare const _default$5: AnimatedIcon;
|
|
31
|
+
|
|
32
|
+
declare const _default$4: AnimatedIcon;
|
|
33
|
+
|
|
34
|
+
declare const _default$3: AnimatedIcon;
|
|
35
|
+
|
|
36
|
+
declare const _default$2: AnimatedIcon;
|
|
37
|
+
|
|
38
|
+
declare const _default$1: AnimatedIcon;
|
|
39
|
+
|
|
40
|
+
declare const _default: AnimatedIcon;
|
|
41
|
+
|
|
42
|
+
export { _default$a as AlertTriangle, type AnimatedIcon, type AnimatedIconProps, _default$9 as Box, _default$8 as Dashboard, _default$7 as Database, _default$6 as Idea, _default$5 as Menu, _default$4 as Puzzle, _default$3 as Rocket, _default$2 as Settings, _default$1 as Ticket, _default as UserShield };
|
package/dist/animated.js
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/animated/index.ts
|
|
22
|
+
var animated_exports = {};
|
|
23
|
+
__export(animated_exports, {
|
|
24
|
+
AlertTriangle: () => AlertTriangle_default,
|
|
25
|
+
Box: () => Box_default,
|
|
26
|
+
Dashboard: () => Dashboard_default,
|
|
27
|
+
Database: () => Database_default,
|
|
28
|
+
Idea: () => Idea_default,
|
|
29
|
+
Menu: () => Menu_default,
|
|
30
|
+
Puzzle: () => Puzzle_default,
|
|
31
|
+
Rocket: () => Rocket_default,
|
|
32
|
+
Settings: () => Settings_default,
|
|
33
|
+
Ticket: () => Ticket_default,
|
|
34
|
+
UserShield: () => UserShield_default
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(animated_exports);
|
|
37
|
+
|
|
38
|
+
// src/animated/AlertTriangle.tsx
|
|
39
|
+
var import_react4 = require("motion/react");
|
|
40
|
+
|
|
41
|
+
// src/animated/AnimatedSvg.tsx
|
|
42
|
+
var import_react3 = require("motion/react");
|
|
43
|
+
|
|
44
|
+
// src/animated/useIconAnimation.ts
|
|
45
|
+
var import_react = require("react");
|
|
46
|
+
var import_react2 = require("motion/react");
|
|
47
|
+
function useIconAnimation(animate, { onPointerEnter, onPointerLeave }) {
|
|
48
|
+
const [hovered, setHovered] = (0, import_react.useState)(false);
|
|
49
|
+
const reducedMotion = (0, import_react2.useReducedMotion)();
|
|
50
|
+
const playing = !reducedMotion && (animate ?? hovered);
|
|
51
|
+
const handlers = {
|
|
52
|
+
onPointerEnter(event) {
|
|
53
|
+
if (event.pointerType === "mouse") setHovered(true);
|
|
54
|
+
onPointerEnter?.(event);
|
|
55
|
+
},
|
|
56
|
+
onPointerLeave(event) {
|
|
57
|
+
setHovered(false);
|
|
58
|
+
onPointerLeave?.(event);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return { state: playing ? "play" : "rest", handlers };
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// src/animated/AnimatedSvg.tsx
|
|
65
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
66
|
+
function AnimatedSvg({
|
|
67
|
+
animate,
|
|
68
|
+
children,
|
|
69
|
+
onPointerEnter,
|
|
70
|
+
onPointerLeave,
|
|
71
|
+
...props
|
|
72
|
+
}) {
|
|
73
|
+
const { state, handlers } = useIconAnimation(animate, {
|
|
74
|
+
onPointerEnter,
|
|
75
|
+
onPointerLeave
|
|
76
|
+
});
|
|
77
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
"svg",
|
|
79
|
+
{
|
|
80
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
81
|
+
fill: "none",
|
|
82
|
+
viewBox: "0 0 24 24",
|
|
83
|
+
overflow: "visible",
|
|
84
|
+
focusable: "false",
|
|
85
|
+
"aria-hidden": "true",
|
|
86
|
+
"data-animating": state === "play",
|
|
87
|
+
...props,
|
|
88
|
+
...handlers,
|
|
89
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react3.motion.g, { initial: false, animate: state, children })
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/animated/transition.ts
|
|
95
|
+
var holdSpring = { type: "spring", stiffness: 260, damping: 15 };
|
|
96
|
+
var settleSpring = { type: "spring", stiffness: 320, damping: 26 };
|
|
97
|
+
var settleTween = { duration: 0.2, ease: "easeOut" };
|
|
98
|
+
var gesture = { duration: 0.45, ease: "easeInOut" };
|
|
99
|
+
var stagger = 0.06;
|
|
100
|
+
|
|
101
|
+
// src/animated/AlertTriangle.tsx
|
|
102
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
103
|
+
var shake = {
|
|
104
|
+
rest: { rotate: 0, transition: settleSpring },
|
|
105
|
+
play: { rotate: [0, -8, 8, -6, 6, -3, 0], transition: { ...gesture, duration: 0.5 } }
|
|
106
|
+
};
|
|
107
|
+
var AlertTriangle = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
108
|
+
AnimatedSvg,
|
|
109
|
+
{
|
|
110
|
+
stroke: "currentColor",
|
|
111
|
+
strokeLinecap: "round",
|
|
112
|
+
strokeLinejoin: "round",
|
|
113
|
+
strokeWidth: 1.8,
|
|
114
|
+
...props,
|
|
115
|
+
children: [
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
117
|
+
import_react4.motion.path,
|
|
118
|
+
{
|
|
119
|
+
variants: shake,
|
|
120
|
+
style: { originX: 0.5, originY: 1 },
|
|
121
|
+
d: "M21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"
|
|
122
|
+
}
|
|
123
|
+
),
|
|
124
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 9v4M12 17h.01" })
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
var AlertTriangle_default = AlertTriangle;
|
|
129
|
+
|
|
130
|
+
// src/animated/Box.tsx
|
|
131
|
+
var import_react5 = require("motion/react");
|
|
132
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
133
|
+
var lid = {
|
|
134
|
+
rest: { y: 0, rotate: 0, transition: settleSpring },
|
|
135
|
+
play: { y: -2, rotate: -8, transition: holdSpring }
|
|
136
|
+
};
|
|
137
|
+
var Box = (props) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AnimatedSvg, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.8, children: [
|
|
138
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M19.364 8v13H4.636V8M10.364 12h3.272" }),
|
|
139
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
140
|
+
import_react5.motion.path,
|
|
141
|
+
{
|
|
142
|
+
variants: lid,
|
|
143
|
+
style: { originX: 0, originY: 1 },
|
|
144
|
+
d: "M3 3h18v5H3z"
|
|
145
|
+
}
|
|
146
|
+
)
|
|
147
|
+
] }) });
|
|
148
|
+
var Box_default = Box;
|
|
149
|
+
|
|
150
|
+
// src/animated/Dashboard.tsx
|
|
151
|
+
var import_react6 = require("motion/react");
|
|
152
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
153
|
+
var TILE = "a1.1 1.1 0 0 0-1.1-1.1h-4a1.1 1.1 0 0 0-1.1 1.1v4a1.1 1.1 0 0 0 1.1 1.1h4a1.1 1.1 0 0 0 1.1-1.1zm1.8 4a2.9 2.9 0 0 1-2.9 2.9h-4a2.9 2.9 0 0 1-2.9-2.9v-4a2.9 2.9 0 0 1 2.9-2.9h4a2.9 2.9 0 0 1 2.9 2.9z";
|
|
154
|
+
var STARTS = ["M9.6 4.5", "M20.6 4.5", "M20.6 15.5", "M9.6 15.5"];
|
|
155
|
+
var pulse = {
|
|
156
|
+
rest: { scale: 1, transition: settleTween },
|
|
157
|
+
play: (i) => ({
|
|
158
|
+
scale: [1, 0.85, 1],
|
|
159
|
+
transition: { ...gesture, duration: 0.35, delay: i * stagger }
|
|
160
|
+
})
|
|
161
|
+
};
|
|
162
|
+
var Dashboard = (props) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AnimatedSvg, { ...props, children: STARTS.map((start, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
163
|
+
import_react6.motion.path,
|
|
164
|
+
{
|
|
165
|
+
custom: i,
|
|
166
|
+
variants: pulse,
|
|
167
|
+
fill: "currentColor",
|
|
168
|
+
d: `${start}${TILE}`
|
|
169
|
+
},
|
|
170
|
+
start
|
|
171
|
+
)) });
|
|
172
|
+
var Dashboard_default = Dashboard;
|
|
173
|
+
|
|
174
|
+
// src/animated/Database.tsx
|
|
175
|
+
var import_react7 = require("motion/react");
|
|
176
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
177
|
+
var topDisc = {
|
|
178
|
+
rest: { y: 0, transition: settleSpring },
|
|
179
|
+
play: { y: [0, -1, 0], transition: gesture }
|
|
180
|
+
};
|
|
181
|
+
var band = {
|
|
182
|
+
rest: { y: 0, transition: settleSpring },
|
|
183
|
+
play: { y: [0, 1.5, 0], transition: { ...gesture, delay: stagger } }
|
|
184
|
+
};
|
|
185
|
+
var Database = (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
186
|
+
AnimatedSvg,
|
|
187
|
+
{
|
|
188
|
+
stroke: "currentColor",
|
|
189
|
+
strokeLinecap: "round",
|
|
190
|
+
strokeLinejoin: "round",
|
|
191
|
+
strokeWidth: 1.8,
|
|
192
|
+
...props,
|
|
193
|
+
children: [
|
|
194
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M21 5v14c0 1.66-4 3-9 3s-9-1.34-9-3V5" }),
|
|
195
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react7.motion.path, { variants: band, d: "M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" }),
|
|
196
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
197
|
+
import_react7.motion.path,
|
|
198
|
+
{
|
|
199
|
+
variants: topDisc,
|
|
200
|
+
d: "M21 5c0 1.657-4.03 3-9 3S3 6.657 3 5M21 5c0-1.657-4.03-3-9-3S3 3.343 3 5"
|
|
201
|
+
}
|
|
202
|
+
)
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
var Database_default = Database;
|
|
207
|
+
|
|
208
|
+
// src/animated/Idea.tsx
|
|
209
|
+
var import_react8 = require("motion/react");
|
|
210
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
211
|
+
var RAYS = [
|
|
212
|
+
"M3.9 10.889H3",
|
|
213
|
+
"M6.272 5.232l-.636-.628",
|
|
214
|
+
"M12 2.889V2",
|
|
215
|
+
"M17.4 4.667l.45-.445",
|
|
216
|
+
"M20.1 10.889h.9"
|
|
217
|
+
];
|
|
218
|
+
var ray = {
|
|
219
|
+
rest: { pathLength: 1, opacity: 1, transition: settleTween },
|
|
220
|
+
play: (i) => ({
|
|
221
|
+
pathLength: [0, 1],
|
|
222
|
+
opacity: [0, 1],
|
|
223
|
+
transition: { ...gesture, duration: 0.3, delay: i * stagger }
|
|
224
|
+
})
|
|
225
|
+
};
|
|
226
|
+
var Idea = (props) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
227
|
+
AnimatedSvg,
|
|
228
|
+
{
|
|
229
|
+
stroke: "currentColor",
|
|
230
|
+
strokeLinecap: "round",
|
|
231
|
+
strokeLinejoin: "round",
|
|
232
|
+
strokeWidth: 1.8,
|
|
233
|
+
...props,
|
|
234
|
+
children: [
|
|
235
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M14.25 15.778c.15-.778.525-1.322 1.125-1.945.75-.7 1.125-1.71 1.125-2.722a4.76 4.76 0 0 0-1.318-3.3A4.42 4.42 0 0 0 12 6.444a4.42 4.42 0 0 0-3.182 1.367 4.76 4.76 0 0 0-1.318 3.3c0 .778.15 1.711 1.125 2.722.525.545.975 1.167 1.125 1.945M9.75 18.888h4.5M10.5 22h3" }),
|
|
236
|
+
RAYS.map((d, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react8.motion.path, { d, custom: i, variants: ray }, d))
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
);
|
|
240
|
+
var Idea_default = Idea;
|
|
241
|
+
|
|
242
|
+
// src/animated/Menu.tsx
|
|
243
|
+
var import_react9 = require("motion/react");
|
|
244
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
245
|
+
var LINES = ["M4 6h16", "M4 12h16", "M4 18h16"];
|
|
246
|
+
var shrink = {
|
|
247
|
+
rest: { pathLength: 1, transition: settleTween },
|
|
248
|
+
play: (i) => ({
|
|
249
|
+
pathLength: [1, 0.6, 1],
|
|
250
|
+
transition: { ...gesture, delay: i * stagger }
|
|
251
|
+
})
|
|
252
|
+
};
|
|
253
|
+
var Menu = (props) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
254
|
+
AnimatedSvg,
|
|
255
|
+
{
|
|
256
|
+
stroke: "currentColor",
|
|
257
|
+
strokeLinecap: "round",
|
|
258
|
+
strokeLinejoin: "round",
|
|
259
|
+
strokeWidth: 1.8,
|
|
260
|
+
...props,
|
|
261
|
+
children: LINES.map((d, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react9.motion.path, { d, custom: i, variants: shrink }, d))
|
|
262
|
+
}
|
|
263
|
+
);
|
|
264
|
+
var Menu_default = Menu;
|
|
265
|
+
|
|
266
|
+
// src/animated/Puzzle.tsx
|
|
267
|
+
var import_react10 = require("motion/react");
|
|
268
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
269
|
+
var snap = {
|
|
270
|
+
rest: { x: 0, y: 0, transition: settleSpring },
|
|
271
|
+
play: { x: [0, 1, 0], y: [0, -1, 0], transition: gesture }
|
|
272
|
+
};
|
|
273
|
+
var Puzzle = (props) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(AnimatedSvg, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
274
|
+
import_react10.motion.path,
|
|
275
|
+
{
|
|
276
|
+
variants: snap,
|
|
277
|
+
stroke: "currentColor",
|
|
278
|
+
strokeWidth: 1.8,
|
|
279
|
+
d: "M10.15 2.25a2.25 2.25 0 0 1 1.717 3.703c-.284.334-.321.925.048 1.16.088.057.19.087.295.087h3.69a.9.9 0 0 1 .9.9v3.69c0 .104.03.207.086.295.236.37.827.332 1.16.048a2.25 2.25 0 1 1 0 3.433c-.333-.283-.924-.32-1.16.049a.55.55 0 0 0-.086.295v4.69a.9.9 0 0 1-.9.9h-3.69a.55.55 0 0 1-.295-.086c-.37-.236-.332-.827-.048-1.16a2.25 2.25 0 1 0-3.433 0c.283.333.32.924-.049 1.16a.55.55 0 0 1-.295.086H3.4a.9.9 0 0 1-.9-.9v-4.69c0-.104.03-.207.086-.295.236-.37.827-.332 1.16-.049a2.25 2.25 0 1 0 0-3.433c-.333.284-.924.321-1.16-.048a.55.55 0 0 1-.086-.295V8.1a.9.9 0 0 1 .9-.9h4.69c.104 0 .207-.03.295-.086.37-.236.332-.827.049-1.16A2.25 2.25 0 0 1 10.15 2.25Z"
|
|
280
|
+
}
|
|
281
|
+
) });
|
|
282
|
+
var Puzzle_default = Puzzle;
|
|
283
|
+
|
|
284
|
+
// src/animated/Rocket.tsx
|
|
285
|
+
var import_react11 = require("motion/react");
|
|
286
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
287
|
+
var liftOff = {
|
|
288
|
+
rest: { x: 0, y: 0, transition: settleSpring },
|
|
289
|
+
play: { x: 2, y: -2, transition: holdSpring }
|
|
290
|
+
};
|
|
291
|
+
var Rocket = (props) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
292
|
+
AnimatedSvg,
|
|
293
|
+
{
|
|
294
|
+
stroke: "currentColor",
|
|
295
|
+
strokeLinecap: "round",
|
|
296
|
+
strokeLinejoin: "round",
|
|
297
|
+
strokeWidth: 1.8,
|
|
298
|
+
...props,
|
|
299
|
+
children: [
|
|
300
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
301
|
+
import_react11.motion.path,
|
|
302
|
+
{
|
|
303
|
+
variants: liftOff,
|
|
304
|
+
d: "M12 15l-3-3m3 3a22.4 22.4 0 0 0 4-2m-4 2v5s3.03-.55 4-2c1.08-1.62 0-5 0-5m-7-1a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11m-7-1H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"
|
|
305
|
+
}
|
|
306
|
+
),
|
|
307
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("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-.09" })
|
|
308
|
+
]
|
|
309
|
+
}
|
|
310
|
+
);
|
|
311
|
+
var Rocket_default = Rocket;
|
|
312
|
+
|
|
313
|
+
// src/animated/Settings.tsx
|
|
314
|
+
var import_react12 = require("motion/react");
|
|
315
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
316
|
+
var gear = {
|
|
317
|
+
rest: { rotate: 0, transition: settleSpring },
|
|
318
|
+
play: { rotate: 90, transition: holdSpring }
|
|
319
|
+
};
|
|
320
|
+
var Settings = (props) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
321
|
+
AnimatedSvg,
|
|
322
|
+
{
|
|
323
|
+
stroke: "currentColor",
|
|
324
|
+
strokeLinecap: "round",
|
|
325
|
+
strokeLinejoin: "round",
|
|
326
|
+
strokeWidth: 1.8,
|
|
327
|
+
...props,
|
|
328
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react12.motion.g, { variants: gear, children: [
|
|
329
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("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-2" }),
|
|
330
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6" })
|
|
331
|
+
] })
|
|
332
|
+
}
|
|
333
|
+
);
|
|
334
|
+
var Settings_default = Settings;
|
|
335
|
+
|
|
336
|
+
// src/animated/Ticket.tsx
|
|
337
|
+
var import_react13 = require("motion/react");
|
|
338
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
339
|
+
var tilt = {
|
|
340
|
+
rest: { rotate: 0, transition: settleSpring },
|
|
341
|
+
play: { rotate: [0, -10, 4, 0], transition: gesture }
|
|
342
|
+
};
|
|
343
|
+
var Ticket = (props) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
344
|
+
AnimatedSvg,
|
|
345
|
+
{
|
|
346
|
+
stroke: "currentColor",
|
|
347
|
+
strokeLinecap: "round",
|
|
348
|
+
strokeLinejoin: "round",
|
|
349
|
+
strokeWidth: 1.8,
|
|
350
|
+
...props,
|
|
351
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
352
|
+
import_react13.motion.path,
|
|
353
|
+
{
|
|
354
|
+
variants: tilt,
|
|
355
|
+
d: "M13 5v2m0 10v2m0-8v2M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2z"
|
|
356
|
+
}
|
|
357
|
+
)
|
|
358
|
+
}
|
|
359
|
+
);
|
|
360
|
+
var Ticket_default = Ticket;
|
|
361
|
+
|
|
362
|
+
// src/animated/UserShield.tsx
|
|
363
|
+
var import_react14 = require("motion/react");
|
|
364
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
365
|
+
var bob = {
|
|
366
|
+
rest: { y: 0, transition: settleSpring },
|
|
367
|
+
play: { y: [0, -1.5, 0], transition: gesture }
|
|
368
|
+
};
|
|
369
|
+
var UserShield = (props) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(AnimatedSvg, { ...props, children: [
|
|
370
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
371
|
+
"path",
|
|
372
|
+
{
|
|
373
|
+
stroke: "currentColor",
|
|
374
|
+
strokeLinecap: "round",
|
|
375
|
+
strokeLinejoin: "round",
|
|
376
|
+
strokeWidth: 1.8,
|
|
377
|
+
d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10"
|
|
378
|
+
}
|
|
379
|
+
),
|
|
380
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
381
|
+
import_react14.motion.path,
|
|
382
|
+
{
|
|
383
|
+
variants: bob,
|
|
384
|
+
fill: "currentColor",
|
|
385
|
+
d: "M12 11.85c1.68 0 3.4 1.121 3.4 2.9a.9.9 0 0 1-.9.9h-5a.9.9 0 0 1-.9-.9c0-1.779 1.72-2.9 3.4-2.9m0-5.25a2.4 2.4 0 1 1 0 4.8 2.4 2.4 0 0 1 0-4.8"
|
|
386
|
+
}
|
|
387
|
+
)
|
|
388
|
+
] });
|
|
389
|
+
var UserShield_default = UserShield;
|
|
390
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
391
|
+
0 && (module.exports = {
|
|
392
|
+
AlertTriangle,
|
|
393
|
+
Box,
|
|
394
|
+
Dashboard,
|
|
395
|
+
Database,
|
|
396
|
+
Idea,
|
|
397
|
+
Menu,
|
|
398
|
+
Puzzle,
|
|
399
|
+
Rocket,
|
|
400
|
+
Settings,
|
|
401
|
+
Ticket,
|
|
402
|
+
UserShield
|
|
403
|
+
});
|