mx-icons 1.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 mx-icons contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,192 @@
1
+ # MX Icons
2
+
3
+ A beautiful, open-source React icon library with multiple variants (outline, solid, mini). Inspired by Heroicons with a clean, light-mode design.
4
+
5
+ ## Features
6
+
7
+ - 🎨 **Multiple Variants** - Outline, solid, and mini versions for maximum flexibility
8
+ - ⚡ **Lightweight** - Only includes the icons you import
9
+ - 🔧 **Customizable** - Size, color, and stroke width props
10
+ - 📦 **Tree-shakeable** - Import only what you need
11
+ - 🎯 **TypeScript Ready** - Full TypeScript support (coming soon)
12
+ - 🌐 **Social Media Icons** - Includes popular social media platforms
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install mx-icons
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```jsx
23
+ import { HomeOutline, YouTubeOutline, InstagramOutline } from "mx-icons";
24
+
25
+ function App() {
26
+ return (
27
+ <div>
28
+ <HomeOutline size={24} color="#111" strokeWidth={1.5} />
29
+ <YouTubeOutline size={32} color="#FF0000" />
30
+ <InstagramOutline size={28} color="#E4405F" />
31
+ </div>
32
+ );
33
+ }
34
+ ```
35
+
36
+ ## Available Icons
37
+
38
+ ### Home Icons
39
+
40
+ - `HomeOutline`
41
+ - `HomeSolid`
42
+ - `HomeMini`
43
+
44
+ ### Social Media Icons
45
+
46
+ - `YouTubeOutline`
47
+ - `InstagramOutline`
48
+ - `TwitterOutline`
49
+ - `GitHubOutline`
50
+ - `FacebookOutline`
51
+ - `LinkedInOutline`
52
+
53
+ ## Props
54
+
55
+ All icons accept the following props:
56
+
57
+ | Prop | Type | Default | Description |
58
+ | ------------- | -------- | ---------------- | ----------------------------------- |
59
+ | `size` | `number` | `24` | Size of the icon (width and height) |
60
+ | `color` | `string` | `'currentColor'` | Color of the icon |
61
+ | `strokeWidth` | `number` | `1.5` | Stroke width for outline icons |
62
+ | `className` | `string` | `''` | Additional CSS classes |
63
+
64
+ ## Preview & Development
65
+
66
+ To run the preview app locally:
67
+
68
+ ```bash
69
+ npm install
70
+ npm run dev
71
+ ```
72
+
73
+ This will start a development server with a searchable icon gallery where you can:
74
+
75
+ - Browse all available icons
76
+ - Switch between variants (outline, solid, mini)
77
+ - Search for specific icons
78
+ - Click to copy the import and JSX code
79
+
80
+ ## Building the Library
81
+
82
+ To build the library for publishing:
83
+
84
+ ```bash
85
+ npm run build:lib
86
+ ```
87
+
88
+ This creates optimized builds in the `dist/` folder:
89
+
90
+ - `dist/mx-icons.es.js` - ES Module
91
+ - `dist/mx-icons.umd.js` - UMD Module
92
+
93
+ ## Publishing to npm
94
+
95
+ ### Prerequisites
96
+
97
+ 1. Create an npm account at [npmjs.com](https://www.npmjs.com/)
98
+ 2. Login via terminal: `npm login`
99
+
100
+ ### Publishing Steps
101
+
102
+ 1. **Update version** in `package.json`:
103
+
104
+ ```json
105
+ {
106
+ "version": "1.0.0"
107
+ }
108
+ ```
109
+
110
+ 2. **Build the library**:
111
+
112
+ ```bash
113
+ npm run build:lib
114
+ ```
115
+
116
+ 3. **Publish to npm**:
117
+ ```bash
118
+ npm publish
119
+ ```
120
+
121
+ ### Publishing Workflow
122
+
123
+ The package is configured with:
124
+
125
+ - `prepublishOnly` script that automatically builds before publishing
126
+ - `.npmignore` to exclude development files
127
+ - Dual module support (ESM + UMD)
128
+ - React as a peer dependency (won't bundle React)
129
+
130
+ ## Contributing
131
+
132
+ Contributions are welcome! To add new icons:
133
+
134
+ 1. Create a new folder in `src/icons/` (e.g., `src/icons/star/`)
135
+ 2. Add variant files (e.g., `StarOutline.jsx`, `StarSolid.jsx`)
136
+ 3. Create an `index.js` in the folder exporting variants metadata
137
+ 4. Export the new icons in `src/icons/index.js`
138
+
139
+ ## License
140
+
141
+ MIT License - see [LICENSE](LICENSE) file for details.
142
+
143
+ ## Credits
144
+
145
+ Inspired by [Heroicons](https://heroicons.com/) and [Font Awesome](https://fontawesome.com/).
146
+
147
+ ## React Compiler
148
+
149
+ The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
150
+
151
+ ## Expanding the ESLint configuration
152
+
153
+ If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
154
+
155
+ ## OSX Icons (this project)
156
+
157
+ This repository is a small, open-source icon library built with React and Vite. It provides a set of lightweight, stroke-based SVG icons suitable for light-mode designs. The preview app in this repo lets you search icons and copy JSX snippets.
158
+
159
+ Quick start
160
+
161
+ 1. Run the preview locally:
162
+
163
+ ```bash
164
+ npm install
165
+ npm run dev
166
+ ```
167
+
168
+ 2. Build the distributable library bundle:
169
+
170
+ ```bash
171
+ npm run build:lib
172
+ ```
173
+
174
+ Usage
175
+
176
+ Install from npm (once published):
177
+
178
+ ```bash
179
+ npm install osx-icons
180
+ ```
181
+
182
+ Then import:
183
+
184
+ ```jsx
185
+ import { Home, Search } from "osx-icons";
186
+
187
+ <Home size={24} color="#111" />;
188
+ ```
189
+
190
+ Contributing
191
+
192
+ Contributions welcome — add icons under `src/icons/icons/`, export them in `src/icons/index.js`, and add tests/docs as needed.
@@ -0,0 +1,499 @@
1
+ import ce from "react";
2
+ var x = { exports: {} }, h = {};
3
+ /**
4
+ * @license React
5
+ * react-jsx-runtime.production.js
6
+ *
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var L;
13
+ function fe() {
14
+ if (L) return h;
15
+ L = 1;
16
+ var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
17
+ function o(i, c, f) {
18
+ var v = null;
19
+ if (f !== void 0 && (v = "" + f), c.key !== void 0 && (v = "" + c.key), "key" in c) {
20
+ f = {};
21
+ for (var p in c)
22
+ p !== "key" && (f[p] = c[p]);
23
+ } else f = c;
24
+ return c = f.ref, {
25
+ $$typeof: t,
26
+ type: i,
27
+ key: v,
28
+ ref: c !== void 0 ? c : null,
29
+ props: f
30
+ };
31
+ }
32
+ return h.Fragment = n, h.jsx = o, h.jsxs = o, h;
33
+ }
34
+ var _ = {};
35
+ /**
36
+ * @license React
37
+ * react-jsx-runtime.development.js
38
+ *
39
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
40
+ *
41
+ * This source code is licensed under the MIT license found in the
42
+ * LICENSE file in the root directory of this source tree.
43
+ */
44
+ var F;
45
+ function me() {
46
+ return F || (F = 1, process.env.NODE_ENV !== "production" && (function() {
47
+ function t(e) {
48
+ if (e == null) return null;
49
+ if (typeof e == "function")
50
+ return e.$$typeof === se ? null : e.displayName || e.name || null;
51
+ if (typeof e == "string") return e;
52
+ switch (e) {
53
+ case R:
54
+ return "Fragment";
55
+ case K:
56
+ return "Profiler";
57
+ case Q:
58
+ return "StrictMode";
59
+ case ne:
60
+ return "Suspense";
61
+ case ae:
62
+ return "SuspenseList";
63
+ case ie:
64
+ return "Activity";
65
+ }
66
+ if (typeof e == "object")
67
+ switch (typeof e.tag == "number" && console.error(
68
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
69
+ ), e.$$typeof) {
70
+ case Z:
71
+ return "Portal";
72
+ case re:
73
+ return e.displayName || "Context";
74
+ case ee:
75
+ return (e._context.displayName || "Context") + ".Consumer";
76
+ case te:
77
+ var r = e.render;
78
+ return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
79
+ case oe:
80
+ return r = e.displayName || null, r !== null ? r : t(e.type) || "Memo";
81
+ case T:
82
+ r = e._payload, e = e._init;
83
+ try {
84
+ return t(e(r));
85
+ } catch {
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ function n(e) {
91
+ return "" + e;
92
+ }
93
+ function o(e) {
94
+ try {
95
+ n(e);
96
+ var r = !1;
97
+ } catch {
98
+ r = !0;
99
+ }
100
+ if (r) {
101
+ r = console;
102
+ var s = r.error, u = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
103
+ return s.call(
104
+ r,
105
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
106
+ u
107
+ ), n(e);
108
+ }
109
+ }
110
+ function i(e) {
111
+ if (e === R) return "<>";
112
+ if (typeof e == "object" && e !== null && e.$$typeof === T)
113
+ return "<...>";
114
+ try {
115
+ var r = t(e);
116
+ return r ? "<" + r + ">" : "<...>";
117
+ } catch {
118
+ return "<...>";
119
+ }
120
+ }
121
+ function c() {
122
+ var e = j.A;
123
+ return e === null ? null : e.getOwner();
124
+ }
125
+ function f() {
126
+ return Error("react-stack-top-frame");
127
+ }
128
+ function v(e) {
129
+ if (N.call(e, "key")) {
130
+ var r = Object.getOwnPropertyDescriptor(e, "key").get;
131
+ if (r && r.isReactWarning) return !1;
132
+ }
133
+ return e.key !== void 0;
134
+ }
135
+ function p(e, r) {
136
+ function s() {
137
+ P || (P = !0, console.error(
138
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
139
+ r
140
+ ));
141
+ }
142
+ s.isReactWarning = !0, Object.defineProperty(e, "key", {
143
+ get: s,
144
+ configurable: !0
145
+ });
146
+ }
147
+ function X() {
148
+ var e = t(this.type);
149
+ return C[e] || (C[e] = !0, console.error(
150
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
151
+ )), e = this.props.ref, e !== void 0 ? e : null;
152
+ }
153
+ function B(e, r, s, u, E, O) {
154
+ var l = s.ref;
155
+ return e = {
156
+ $$typeof: S,
157
+ type: e,
158
+ key: r,
159
+ props: s,
160
+ _owner: u
161
+ }, (l !== void 0 ? l : null) !== null ? Object.defineProperty(e, "ref", {
162
+ enumerable: !1,
163
+ get: X
164
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
165
+ configurable: !1,
166
+ enumerable: !1,
167
+ writable: !0,
168
+ value: 0
169
+ }), Object.defineProperty(e, "_debugInfo", {
170
+ configurable: !1,
171
+ enumerable: !1,
172
+ writable: !0,
173
+ value: null
174
+ }), Object.defineProperty(e, "_debugStack", {
175
+ configurable: !1,
176
+ enumerable: !1,
177
+ writable: !0,
178
+ value: E
179
+ }), Object.defineProperty(e, "_debugTask", {
180
+ configurable: !1,
181
+ enumerable: !1,
182
+ writable: !0,
183
+ value: O
184
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
185
+ }
186
+ function w(e, r, s, u, E, O) {
187
+ var l = r.children;
188
+ if (l !== void 0)
189
+ if (u)
190
+ if (ue(l)) {
191
+ for (u = 0; u < l.length; u++)
192
+ A(l[u]);
193
+ Object.freeze && Object.freeze(l);
194
+ } else
195
+ console.error(
196
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
197
+ );
198
+ else A(l);
199
+ if (N.call(r, "key")) {
200
+ l = t(e);
201
+ var d = Object.keys(r).filter(function(le) {
202
+ return le !== "key";
203
+ });
204
+ u = 0 < d.length ? "{key: someKey, " + d.join(": ..., ") + ": ...}" : "{key: someKey}", I[l + u] || (d = 0 < d.length ? "{" + d.join(": ..., ") + ": ...}" : "{}", console.error(
205
+ `A props object containing a "key" prop is being spread into JSX:
206
+ let props = %s;
207
+ <%s {...props} />
208
+ React keys must be passed directly to JSX without using spread:
209
+ let props = %s;
210
+ <%s key={someKey} {...props} />`,
211
+ u,
212
+ l,
213
+ d,
214
+ l
215
+ ), I[l + u] = !0);
216
+ }
217
+ if (l = null, s !== void 0 && (o(s), l = "" + s), v(r) && (o(r.key), l = "" + r.key), "key" in r) {
218
+ s = {};
219
+ for (var g in r)
220
+ g !== "key" && (s[g] = r[g]);
221
+ } else s = r;
222
+ return l && p(
223
+ s,
224
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
225
+ ), B(
226
+ e,
227
+ l,
228
+ s,
229
+ c(),
230
+ E,
231
+ O
232
+ );
233
+ }
234
+ function A(e) {
235
+ y(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === T && (e._payload.status === "fulfilled" ? y(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
236
+ }
237
+ function y(e) {
238
+ return typeof e == "object" && e !== null && e.$$typeof === S;
239
+ }
240
+ var b = ce, S = Symbol.for("react.transitional.element"), Z = Symbol.for("react.portal"), R = Symbol.for("react.fragment"), Q = Symbol.for("react.strict_mode"), K = Symbol.for("react.profiler"), ee = Symbol.for("react.consumer"), re = Symbol.for("react.context"), te = Symbol.for("react.forward_ref"), ne = Symbol.for("react.suspense"), ae = Symbol.for("react.suspense_list"), oe = Symbol.for("react.memo"), T = Symbol.for("react.lazy"), ie = Symbol.for("react.activity"), se = Symbol.for("react.client.reference"), j = b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, N = Object.prototype.hasOwnProperty, ue = Array.isArray, k = console.createTask ? console.createTask : function() {
241
+ return null;
242
+ };
243
+ b = {
244
+ react_stack_bottom_frame: function(e) {
245
+ return e();
246
+ }
247
+ };
248
+ var P, C = {}, M = b.react_stack_bottom_frame.bind(
249
+ b,
250
+ f
251
+ )(), Y = k(i(f)), I = {};
252
+ _.Fragment = R, _.jsx = function(e, r, s) {
253
+ var u = 1e4 > j.recentlyCreatedOwnerStacks++;
254
+ return w(
255
+ e,
256
+ r,
257
+ s,
258
+ !1,
259
+ u ? Error("react-stack-top-frame") : M,
260
+ u ? k(i(e)) : Y
261
+ );
262
+ }, _.jsxs = function(e, r, s) {
263
+ var u = 1e4 > j.recentlyCreatedOwnerStacks++;
264
+ return w(
265
+ e,
266
+ r,
267
+ s,
268
+ !0,
269
+ u ? Error("react-stack-top-frame") : M,
270
+ u ? k(i(e)) : Y
271
+ );
272
+ };
273
+ })()), _;
274
+ }
275
+ var $;
276
+ function de() {
277
+ return $ || ($ = 1, process.env.NODE_ENV === "production" ? x.exports = fe() : x.exports = me()), x.exports;
278
+ }
279
+ var a = de();
280
+ function m({
281
+ children: t,
282
+ size: n = 24,
283
+ color: o = "#111",
284
+ strokeWidth: i = 1.5,
285
+ ...c
286
+ }) {
287
+ return /* @__PURE__ */ a.jsx(
288
+ "svg",
289
+ {
290
+ width: n,
291
+ height: n,
292
+ viewBox: "0 0 24 24",
293
+ fill: "none",
294
+ stroke: o,
295
+ strokeWidth: i,
296
+ strokeLinecap: "round",
297
+ strokeLinejoin: "round",
298
+ xmlns: "http://www.w3.org/2000/svg",
299
+ "aria-hidden": c["aria-hidden"] ?? !0,
300
+ ...c,
301
+ children: t
302
+ }
303
+ );
304
+ }
305
+ function H({ size: t, color: n, strokeWidth: o, ...i }) {
306
+ return /* @__PURE__ */ a.jsxs(m, { size: t, color: n, strokeWidth: o, ...i, children: [
307
+ /* @__PURE__ */ a.jsx("path", { d: "M3 11.5L12 4l9 7.5" }),
308
+ /* @__PURE__ */ a.jsx("path", { d: "M5 12v7a1 1 0 0 0 1 1h3v-5h6v5h3a1 1 0 0 0 1-1v-7" })
309
+ ] });
310
+ }
311
+ function D({
312
+ size: t = 24,
313
+ color: n = "#111",
314
+ strokeWidth: o,
315
+ ...i
316
+ }) {
317
+ return /* @__PURE__ */ a.jsx(
318
+ m,
319
+ {
320
+ size: t,
321
+ color: n,
322
+ strokeWidth: o,
323
+ fill: n,
324
+ ...i,
325
+ children: /* @__PURE__ */ a.jsx("path", { d: "M12 3l10 8v7a1 1 0 0 1-1 1h-5v-5H8v5H3a1 1 0 0 1-1-1v-7l10-8z" })
326
+ }
327
+ );
328
+ }
329
+ function z({
330
+ size: t = 16,
331
+ color: n = "#111",
332
+ strokeWidth: o = 1.25,
333
+ ...i
334
+ }) {
335
+ return /* @__PURE__ */ a.jsxs(m, { size: t, color: n, strokeWidth: o, ...i, children: [
336
+ /* @__PURE__ */ a.jsx("path", { d: "M2 8.5L8 4l6 4.5" }),
337
+ /* @__PURE__ */ a.jsx("path", { d: "M4 9v4a1 1 0 0 0 1 1h2v-3h2v3h2a1 1 0 0 0 1-1V9" })
338
+ ] });
339
+ }
340
+ function V({ size: t, color: n, strokeWidth: o, ...i }) {
341
+ return /* @__PURE__ */ a.jsxs(m, { size: t, color: n, strokeWidth: o, ...i, children: [
342
+ /* @__PURE__ */ a.jsx("path", { d: "M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z" }),
343
+ /* @__PURE__ */ a.jsx("polygon", { points: "9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02" })
344
+ ] });
345
+ }
346
+ function W({
347
+ size: t,
348
+ color: n,
349
+ strokeWidth: o,
350
+ ...i
351
+ }) {
352
+ return /* @__PURE__ */ a.jsxs(m, { size: t, color: n, strokeWidth: o, ...i, children: [
353
+ /* @__PURE__ */ a.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "5", ry: "5" }),
354
+ /* @__PURE__ */ a.jsx("path", { d: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" }),
355
+ /* @__PURE__ */ a.jsx("line", { x1: "17.5", y1: "6.5", x2: "17.51", y2: "6.5" })
356
+ ] });
357
+ }
358
+ function U({ size: t, color: n, strokeWidth: o, ...i }) {
359
+ return /* @__PURE__ */ a.jsx(m, { size: t, color: n, strokeWidth: o, ...i, children: /* @__PURE__ */ a.jsx("path", { d: "M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z" }) });
360
+ }
361
+ function G({ size: t, color: n, strokeWidth: o, ...i }) {
362
+ return /* @__PURE__ */ a.jsx(m, { size: t, color: n, strokeWidth: o, ...i, children: /* @__PURE__ */ a.jsx("path", { d: "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22" }) });
363
+ }
364
+ function q({
365
+ size: t,
366
+ color: n,
367
+ strokeWidth: o,
368
+ ...i
369
+ }) {
370
+ return /* @__PURE__ */ a.jsx(m, { size: t, color: n, strokeWidth: o, ...i, children: /* @__PURE__ */ a.jsx("path", { d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z" }) });
371
+ }
372
+ function J({
373
+ size: t,
374
+ color: n,
375
+ strokeWidth: o,
376
+ ...i
377
+ }) {
378
+ return /* @__PURE__ */ a.jsxs(m, { size: t, color: n, strokeWidth: o, ...i, children: [
379
+ /* @__PURE__ */ a.jsx("path", { d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" }),
380
+ /* @__PURE__ */ a.jsx("rect", { x: "2", y: "9", width: "4", height: "12" }),
381
+ /* @__PURE__ */ a.jsx("circle", { cx: "4", cy: "4", r: "2" })
382
+ ] });
383
+ }
384
+ const pe = [
385
+ {
386
+ name: "Home",
387
+ variants: [
388
+ {
389
+ variant: "outline",
390
+ slug: "home-outline",
391
+ Component: H,
392
+ componentName: "HomeOutline"
393
+ },
394
+ {
395
+ variant: "solid",
396
+ slug: "home-solid",
397
+ Component: D,
398
+ componentName: "HomeSolid"
399
+ },
400
+ {
401
+ variant: "mini",
402
+ slug: "home-mini",
403
+ Component: z,
404
+ componentName: "HomeMini"
405
+ }
406
+ ]
407
+ },
408
+ {
409
+ name: "YouTube",
410
+ variants: [
411
+ {
412
+ variant: "outline",
413
+ slug: "youtube",
414
+ Component: V,
415
+ componentName: "YouTubeOutline"
416
+ }
417
+ ]
418
+ },
419
+ {
420
+ name: "Instagram",
421
+ variants: [
422
+ {
423
+ variant: "outline",
424
+ slug: "instagram",
425
+ Component: W,
426
+ componentName: "InstagramOutline"
427
+ }
428
+ ]
429
+ },
430
+ {
431
+ name: "Twitter",
432
+ variants: [
433
+ {
434
+ variant: "outline",
435
+ slug: "twitter",
436
+ Component: U,
437
+ componentName: "TwitterOutline"
438
+ }
439
+ ]
440
+ },
441
+ {
442
+ name: "GitHub",
443
+ variants: [
444
+ {
445
+ variant: "outline",
446
+ slug: "github",
447
+ Component: G,
448
+ componentName: "GitHubOutline"
449
+ }
450
+ ]
451
+ },
452
+ {
453
+ name: "Facebook",
454
+ variants: [
455
+ {
456
+ variant: "outline",
457
+ slug: "facebook",
458
+ Component: q,
459
+ componentName: "FacebookOutline"
460
+ }
461
+ ]
462
+ },
463
+ {
464
+ name: "LinkedIn",
465
+ variants: [
466
+ {
467
+ variant: "outline",
468
+ slug: "linkedin",
469
+ Component: J,
470
+ componentName: "LinkedInOutline"
471
+ }
472
+ ]
473
+ }
474
+ ], he = {
475
+ Icon: m,
476
+ HomeOutline: H,
477
+ HomeSolid: D,
478
+ HomeMini: z,
479
+ YouTubeOutline: V,
480
+ InstagramOutline: W,
481
+ TwitterOutline: U,
482
+ GitHubOutline: G,
483
+ FacebookOutline: q,
484
+ LinkedInOutline: J
485
+ };
486
+ export {
487
+ q as FacebookOutline,
488
+ G as GitHubOutline,
489
+ z as HomeMini,
490
+ H as HomeOutline,
491
+ D as HomeSolid,
492
+ m as Icon,
493
+ W as InstagramOutline,
494
+ J as LinkedInOutline,
495
+ U as TwitterOutline,
496
+ V as YouTubeOutline,
497
+ he as default,
498
+ pe as icons
499
+ };
@@ -0,0 +1,22 @@
1
+ (function(c,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],h):(c=typeof globalThis<"u"?globalThis:c||self,h(c.MxIcons={},c.React))})(this,(function(c,h){"use strict";var T={exports:{}},p={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var L;function Z(){if(L)return p;L=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function o(i,f,d){var _=null;if(d!==void 0&&(_=""+d),f.key!==void 0&&(_=""+f.key),"key"in f){d={};for(var E in f)E!=="key"&&(d[E]=f[E])}else d=f;return f=d.ref,{$$typeof:t,type:i,key:_,ref:f!==void 0?f:null,props:d}}return p.Fragment=a,p.jsx=o,p.jsxs=o,p}var b={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var F;function Q(){return F||(F=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ve?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case N:return"Fragment";case ie:return"Profiler";case oe:return"StrictMode";case ce:return"Suspense";case fe:return"SuspenseList";case de:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case ae:return"Portal";case se:return e.displayName||"Context";case ue:return(e._context.displayName||"Context")+".Consumer";case le:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case me:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case C:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function a(e){return""+e}function o(e){try{a(e);var r=!1}catch{r=!0}if(r){r=console;var u=r.error,s=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",s),a(e)}}function i(e){if(e===N)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===C)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function f(){var e=M.A;return e===null?null:e.getOwner()}function d(){return Error("react-stack-top-frame")}function _(e){if(G.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function E(e,r){function u(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function te(){var e=t(this.type);return q[e]||(q[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function ne(e,r,u,s,O,Y){var l=u.ref;return e={$$typeof:W,type:e,key:r,props:u,_owner:s},(l!==void 0?l:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:te}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:O}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function D(e,r,u,s,O,Y){var l=r.children;if(l!==void 0)if(s)if(he(l)){for(s=0;s<l.length;s++)z(l[s]);Object.freeze&&Object.freeze(l)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else z(l);if(G.call(r,"key")){l=t(e);var v=Object.keys(r).filter(function(pe){return pe!=="key"});s=0<v.length?"{key: someKey, "+v.join(": ..., ")+": ...}":"{key: someKey}",B[l+s]||(v=0<v.length?"{"+v.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,s,l,v,l),B[l+s]=!0)}if(l=null,u!==void 0&&(o(u),l=""+u),_(r)&&(o(r.key),l=""+r.key),"key"in r){u={};for(var H in r)H!=="key"&&(u[H]=r[H])}else u=r;return l&&E(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),ne(e,l,u,f(),O,Y)}function z(e){V(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===C&&(e._payload.status==="fulfilled"?V(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function V(e){return typeof e=="object"&&e!==null&&e.$$typeof===W}var R=h,W=Symbol.for("react.transitional.element"),ae=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),oe=Symbol.for("react.strict_mode"),ie=Symbol.for("react.profiler"),ue=Symbol.for("react.consumer"),se=Symbol.for("react.context"),le=Symbol.for("react.forward_ref"),ce=Symbol.for("react.suspense"),fe=Symbol.for("react.suspense_list"),me=Symbol.for("react.memo"),C=Symbol.for("react.lazy"),de=Symbol.for("react.activity"),ve=Symbol.for("react.client.reference"),M=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,G=Object.prototype.hasOwnProperty,he=Array.isArray,I=console.createTask?console.createTask:function(){return null};R={react_stack_bottom_frame:function(e){return e()}};var U,q={},J=R.react_stack_bottom_frame.bind(R,d)(),X=I(i(d)),B={};b.Fragment=N,b.jsx=function(e,r,u){var s=1e4>M.recentlyCreatedOwnerStacks++;return D(e,r,u,!1,s?Error("react-stack-top-frame"):J,s?I(i(e)):X)},b.jsxs=function(e,r,u){var s=1e4>M.recentlyCreatedOwnerStacks++;return D(e,r,u,!0,s?Error("react-stack-top-frame"):J,s?I(i(e)):X)}})()),b}var $;function K(){return $||($=1,process.env.NODE_ENV==="production"?T.exports=Z():T.exports=Q()),T.exports}var n=K();function m({children:t,size:a=24,color:o="#111",strokeWidth:i=1.5,...f}){return n.jsx("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:i,strokeLinecap:"round",strokeLinejoin:"round",xmlns:"http://www.w3.org/2000/svg","aria-hidden":f["aria-hidden"]??!0,...f,children:t})}function j({size:t,color:a,strokeWidth:o,...i}){return n.jsxs(m,{size:t,color:a,strokeWidth:o,...i,children:[n.jsx("path",{d:"M3 11.5L12 4l9 7.5"}),n.jsx("path",{d:"M5 12v7a1 1 0 0 0 1 1h3v-5h6v5h3a1 1 0 0 0 1-1v-7"})]})}function x({size:t=24,color:a="#111",strokeWidth:o,...i}){return n.jsx(m,{size:t,color:a,strokeWidth:o,fill:a,...i,children:n.jsx("path",{d:"M12 3l10 8v7a1 1 0 0 1-1 1h-5v-5H8v5H3a1 1 0 0 1-1-1v-7l10-8z"})})}function k({size:t=16,color:a="#111",strokeWidth:o=1.25,...i}){return n.jsxs(m,{size:t,color:a,strokeWidth:o,...i,children:[n.jsx("path",{d:"M2 8.5L8 4l6 4.5"}),n.jsx("path",{d:"M4 9v4a1 1 0 0 0 1 1h2v-3h2v3h2a1 1 0 0 0 1-1V9"})]})}function g({size:t,color:a,strokeWidth:o,...i}){return n.jsxs(m,{size:t,color:a,strokeWidth:o,...i,children:[n.jsx("path",{d:"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"}),n.jsx("polygon",{points:"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"})]})}function w({size:t,color:a,strokeWidth:o,...i}){return n.jsxs(m,{size:t,color:a,strokeWidth:o,...i,children:[n.jsx("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),n.jsx("path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"}),n.jsx("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5"})]})}function A({size:t,color:a,strokeWidth:o,...i}){return n.jsx(m,{size:t,color:a,strokeWidth:o,...i,children:n.jsx("path",{d:"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"})})}function y({size:t,color:a,strokeWidth:o,...i}){return n.jsx(m,{size:t,color:a,strokeWidth:o,...i,children:n.jsx("path",{d:"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"})})}function S({size:t,color:a,strokeWidth:o,...i}){return n.jsx(m,{size:t,color:a,strokeWidth:o,...i,children:n.jsx("path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"})})}function P({size:t,color:a,strokeWidth:o,...i}){return n.jsxs(m,{size:t,color:a,strokeWidth:o,...i,children:[n.jsx("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),n.jsx("rect",{x:"2",y:"9",width:"4",height:"12"}),n.jsx("circle",{cx:"4",cy:"4",r:"2"})]})}const ee=[{name:"Home",variants:[{variant:"outline",slug:"home-outline",Component:j,componentName:"HomeOutline"},{variant:"solid",slug:"home-solid",Component:x,componentName:"HomeSolid"},{variant:"mini",slug:"home-mini",Component:k,componentName:"HomeMini"}]},{name:"YouTube",variants:[{variant:"outline",slug:"youtube",Component:g,componentName:"YouTubeOutline"}]},{name:"Instagram",variants:[{variant:"outline",slug:"instagram",Component:w,componentName:"InstagramOutline"}]},{name:"Twitter",variants:[{variant:"outline",slug:"twitter",Component:A,componentName:"TwitterOutline"}]},{name:"GitHub",variants:[{variant:"outline",slug:"github",Component:y,componentName:"GitHubOutline"}]},{name:"Facebook",variants:[{variant:"outline",slug:"facebook",Component:S,componentName:"FacebookOutline"}]},{name:"LinkedIn",variants:[{variant:"outline",slug:"linkedin",Component:P,componentName:"LinkedInOutline"}]}],re={Icon:m,HomeOutline:j,HomeSolid:x,HomeMini:k,YouTubeOutline:g,InstagramOutline:w,TwitterOutline:A,GitHubOutline:y,FacebookOutline:S,LinkedInOutline:P};c.FacebookOutline=S,c.GitHubOutline=y,c.HomeMini=k,c.HomeOutline=j,c.HomeSolid=x,c.Icon=m,c.InstagramOutline=w,c.LinkedInOutline=P,c.TwitterOutline=A,c.YouTubeOutline=g,c.default=re,c.icons=ee,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/dist/vite.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "mx-icons",
3
+ "version": "1.0.0",
4
+ "description": "Beautiful hand-crafted SVG icons for React - light mode only",
5
+ "type": "module",
6
+ "main": "./dist/mx-icons.umd.js",
7
+ "module": "./dist/mx-icons.es.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/mx-icons.es.js",
11
+ "require": "./dist/mx-icons.umd.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "react",
19
+ "icons",
20
+ "svg",
21
+ "components",
22
+ "mx-icons",
23
+ "react-icons"
24
+ ],
25
+ "author": "Your Name",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/yourusername/mx-icons"
30
+ },
31
+ "homepage": "https://github.com/yourusername/mx-icons#readme",
32
+ "peerDependencies": {
33
+ "react": "^18.0.0 || ^19.0.0"
34
+ },
35
+ "scripts": {
36
+ "dev": "vite",
37
+ "build": "vite build",
38
+ "build:lib": "vite build --config vite.lib.config.js",
39
+ "prepublishOnly": "npm run build:lib",
40
+ "lint": "eslint .",
41
+ "preview": "vite preview"
42
+ },
43
+ "dependencies": {
44
+ "react": "^18.0.0 || ^19.0.0",
45
+ "react-dom": "^19.1.1"
46
+ },
47
+ "devDependencies": {
48
+ "@eslint/js": "^9.36.0",
49
+ "@types/react": "^19.1.16",
50
+ "@types/react-dom": "^19.1.9",
51
+ "@vitejs/plugin-react": "^5.0.4",
52
+ "eslint": "^9.36.0",
53
+ "eslint-plugin-react-hooks": "^5.2.0",
54
+ "eslint-plugin-react-refresh": "^0.4.22",
55
+ "globals": "^16.4.0",
56
+ "vite": "^7.1.7"
57
+ }
58
+ }