@tokis/icons 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 ADDED
@@ -0,0 +1,48 @@
1
+ # @tokis/icons
2
+
3
+ Tree-shakable SVG icon library for Tokis. Zero dependencies — use the built-in icons directly, or opt into lucide-react as an optional peer.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @tokis/icons
9
+ ```
10
+
11
+ > Or install everything at once: `npm install @tokis/tokis`
12
+
13
+ ## Usage
14
+
15
+ ### Built-in icons
16
+
17
+ ```tsx
18
+ import { SearchIcon, CloseIcon, ChevronDownIcon } from '@tokis/icons';
19
+
20
+ function MyComponent() {
21
+ return <SearchIcon aria-label="Search" />;
22
+ }
23
+ ```
24
+
25
+ ### lucide-react bridge (optional)
26
+
27
+ If you already have `lucide-react` installed, you can use the bridge entry point to consume Lucide icons through the Tokis icon interface:
28
+
29
+ ```bash
30
+ npm install lucide-react
31
+ ```
32
+
33
+ ```tsx
34
+ import { SearchIcon } from '@tokis/icons/lucide';
35
+ ```
36
+
37
+ ## Peer Dependencies
38
+
39
+ - `react` >= 18.0.0
40
+ - `lucide-react` >= 0.300.0 *(optional — only required for the `/lucide` entry point)*
41
+
42
+ ## Documentation
43
+
44
+ Visit [tokis.dev](https://tokis.dev/docs/icons) for the full icon catalogue.
45
+
46
+ ## License
47
+
48
+ MIT
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=icons.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/icons.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect } from 'vitest';
3
+ import { render, screen } from '@testing-library/react';
4
+ import { createIcon } from '../icon-factory.js';
5
+ import { ChevronDownIcon, SearchIcon, XIcon, CheckIcon, LoaderIcon, } from '../icons/index.js';
6
+ // ─── createIcon factory ────────────────────────────────────────────────────
7
+ describe('createIcon', () => {
8
+ const TestIcon = createIcon('TestIcon', _jsx("path", { d: "M1 1 L23 23" }));
9
+ it('renders an SVG element', () => {
10
+ const { container } = render(_jsx(TestIcon, {}));
11
+ expect(container.querySelector('svg')).toBeInTheDocument();
12
+ });
13
+ it('sets the displayName on the component', () => {
14
+ expect(TestIcon.displayName).toBe('TestIcon');
15
+ });
16
+ it('uses default size of 24px', () => {
17
+ const { container } = render(_jsx(TestIcon, {}));
18
+ const svg = container.querySelector('svg');
19
+ expect(svg).toHaveAttribute('width', '24px');
20
+ expect(svg).toHaveAttribute('height', '24px');
21
+ });
22
+ it('accepts a custom numeric size', () => {
23
+ const { container } = render(_jsx(TestIcon, { size: 32 }));
24
+ const svg = container.querySelector('svg');
25
+ expect(svg).toHaveAttribute('width', '32px');
26
+ expect(svg).toHaveAttribute('height', '32px');
27
+ });
28
+ it('accepts a string size (e.g. "1.5rem")', () => {
29
+ const { container } = render(_jsx(TestIcon, { size: "1.5rem" }));
30
+ const svg = container.querySelector('svg');
31
+ expect(svg).toHaveAttribute('width', '1.5rem');
32
+ expect(svg).toHaveAttribute('height', '1.5rem');
33
+ });
34
+ it('renders on a 24×24 viewBox regardless of size prop', () => {
35
+ const { container } = render(_jsx(TestIcon, { size: 48 }));
36
+ expect(container.querySelector('svg')).toHaveAttribute('viewBox', '0 0 24 24');
37
+ });
38
+ it('is aria-hidden by default (decorative)', () => {
39
+ const { container } = render(_jsx(TestIcon, {}));
40
+ expect(container.querySelector('svg')).toHaveAttribute('aria-hidden', 'true');
41
+ });
42
+ it('is NOT aria-hidden when aria-label is provided', () => {
43
+ const { container } = render(_jsx(TestIcon, { "aria-label": "Test icon" }));
44
+ const svg = container.querySelector('svg');
45
+ expect(svg).not.toHaveAttribute('aria-hidden', 'true');
46
+ });
47
+ it('has role="img" when aria-label is provided', () => {
48
+ const { container } = render(_jsx(TestIcon, { "aria-label": "Test icon" }));
49
+ expect(container.querySelector('svg')).toHaveAttribute('role', 'img');
50
+ });
51
+ it('renders a <title> element with the aria-label text for AT accessibility', () => {
52
+ const { container } = render(_jsx(TestIcon, { "aria-label": "Close dialog" }));
53
+ const title = container.querySelector('svg title');
54
+ expect(title).toBeInTheDocument();
55
+ expect(title).toHaveTextContent('Close dialog');
56
+ });
57
+ it('does NOT render a <title> element without aria-label', () => {
58
+ const { container } = render(_jsx(TestIcon, {}));
59
+ expect(container.querySelector('title')).not.toBeInTheDocument();
60
+ });
61
+ it('uses currentColor by default for stroke', () => {
62
+ const { container } = render(_jsx(TestIcon, {}));
63
+ expect(container.querySelector('svg')).toHaveAttribute('stroke', 'currentColor');
64
+ });
65
+ it('accepts a custom stroke color', () => {
66
+ const { container } = render(_jsx(TestIcon, { color: "#ff0000" }));
67
+ expect(container.querySelector('svg')).toHaveAttribute('stroke', '#ff0000');
68
+ });
69
+ it('uses default strokeWidth=2', () => {
70
+ const { container } = render(_jsx(TestIcon, {}));
71
+ expect(container.querySelector('svg')).toHaveAttribute('stroke-width', '2');
72
+ });
73
+ it('accepts a custom strokeWidth', () => {
74
+ const { container } = render(_jsx(TestIcon, { strokeWidth: 1.5 }));
75
+ expect(container.querySelector('svg')).toHaveAttribute('stroke-width', '1.5');
76
+ });
77
+ it('passes through extra SVG props (data-testid, className)', () => {
78
+ const { container } = render(_jsx(TestIcon, { "data-testid": "my-icon", className: "custom-icon" }));
79
+ const svg = container.querySelector('svg');
80
+ expect(svg).toHaveAttribute('data-testid', 'my-icon');
81
+ expect(svg).toHaveClass('custom-icon');
82
+ });
83
+ it('is focusable via ref forwarding', () => {
84
+ const ref = { current: null };
85
+ const { container } = render(_jsx(TestIcon, { ref: ref }));
86
+ expect(ref.current).toBe(container.querySelector('svg'));
87
+ });
88
+ });
89
+ // ─── Built-in icon smoke tests ─────────────────────────────────────────────
90
+ describe('built-in icons render without errors', () => {
91
+ const iconMap = {
92
+ ChevronDownIcon,
93
+ SearchIcon,
94
+ XIcon,
95
+ CheckIcon,
96
+ LoaderIcon,
97
+ };
98
+ Object.entries(iconMap).forEach(([name, Icon]) => {
99
+ it(`${name} renders an SVG element`, () => {
100
+ const { container } = render(_jsx(Icon, {}));
101
+ expect(container.querySelector('svg')).toBeInTheDocument();
102
+ });
103
+ it(`${name} with aria-label is accessible`, () => {
104
+ render(_jsx(Icon, { "aria-label": `${name} icon` }));
105
+ expect(screen.getByRole('img', { name: `${name} icon` })).toBeInTheDocument();
106
+ });
107
+ });
108
+ });
109
+ //# sourceMappingURL=icons.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.test.js","sourceRoot":"","sources":["../../src/__tests__/icons.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createIcon = createIcon;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ /**
7
+ * Creates a Tokis icon component from raw SVG children.
8
+ *
9
+ * Usage:
10
+ * ```tsx
11
+ * const ChevronDownIcon = createIcon('ChevronDown', (
12
+ * <path d="M6 9l6 6 6-6" />
13
+ * ));
14
+ * ```
15
+ *
16
+ * All icons:
17
+ * - render on a 24×24 viewBox
18
+ * - use stroke="currentColor", fill="none" by default (outline style)
19
+ * - are aria-hidden unless aria-label is provided
20
+ * - are tree-shakable (each is a separate named export)
21
+ */
22
+ function createIcon(displayName, children, defaultStrokeWidth = 2) {
23
+ const Icon = (0, react_1.forwardRef)(function Icon({ size = 24, color = 'currentColor', strokeWidth = defaultStrokeWidth, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, children: _children, ...rest }, ref) {
24
+ const isDecorative = !ariaLabel;
25
+ const px = typeof size === 'number' ? `${size}px` : size;
26
+ return ((0, jsx_runtime_1.jsxs)("svg", { ref: ref, xmlns: "http://www.w3.org/2000/svg", width: px, height: px, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), "aria-label": ariaLabel, role: ariaLabel ? 'img' : undefined, ...rest, children: [ariaLabel && (0, jsx_runtime_1.jsx)("title", { children: ariaLabel }), children] }));
27
+ });
28
+ Icon.displayName = displayName;
29
+ return Icon;
30
+ }
31
+ //# sourceMappingURL=icon-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-factory.js","sourceRoot":"","sources":["../../src/icon-factory.tsx"],"names":[],"mappings":";;AAoBA,gCA6CC;;AAjED,iCAAmC;AAInC;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,UAAU,CACxB,WAAmB,EACnB,QAAmB,EACnB,kBAAkB,GAAG,CAAC;IAEtB,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAgC,SAAS,IAAI,CAClE,EACE,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,kBAAkB,EAChC,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,SAAS,EACnB,GAAG,IAAI,EACR,EACD,GAAG;QAEH,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzD,OAAO,CACL,iCACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACT,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,gBAChD,SAAS,EACrB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,aAEP,SAAS,IAAI,4CAAQ,SAAS,GAAS,EACvC,QAAQ,IACL,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GripVerticalIcon = exports.SunIcon = exports.MoonIcon = exports.HomeIcon = exports.SettingsIcon = exports.UserIcon = exports.BellIcon = exports.CalendarIcon = exports.EyeOffIcon = exports.EyeIcon = exports.MenuIcon = exports.LoaderIcon = exports.XCircleIcon = exports.CheckCircleIcon = exports.AlertTriangleIcon = exports.AlertCircleIcon = exports.InfoIcon = exports.SortDescIcon = exports.SortAscIcon = exports.FilterIcon = exports.RefreshIcon = exports.EditIcon = exports.TrashIcon = exports.CopyIcon = exports.SearchIcon = exports.CheckIcon = exports.XIcon = exports.MinusIcon = exports.PlusIcon = exports.ExternalLinkIcon = exports.ArrowDownIcon = exports.ArrowUpIcon = exports.ArrowLeftIcon = exports.ArrowRightIcon = exports.ChevronLeftIcon = exports.ChevronRightIcon = exports.ChevronUpIcon = exports.ChevronDownIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * @tokis/icons — built-in SVG icon set.
7
+ *
8
+ * All icons use a 24×24 viewBox with 2px round-capped strokes (outline style)
9
+ * to match the Tokis design language.
10
+ *
11
+ * Every icon is a separate named export for complete tree-shaking.
12
+ * Paths are taken from the Lucide icon set (MIT licence).
13
+ */
14
+ const icon_factory_js_1 = require("../icon-factory");
15
+ // ─── Navigation & Arrows ─────────────────────────────────────────────────────
16
+ exports.ChevronDownIcon = (0, icon_factory_js_1.createIcon)('ChevronDownIcon', (0, jsx_runtime_1.jsx)("path", { d: "M6 9l6 6 6-6" }));
17
+ exports.ChevronUpIcon = (0, icon_factory_js_1.createIcon)('ChevronUpIcon', (0, jsx_runtime_1.jsx)("path", { d: "M18 15l-6-6-6 6" }));
18
+ exports.ChevronRightIcon = (0, icon_factory_js_1.createIcon)('ChevronRightIcon', (0, jsx_runtime_1.jsx)("path", { d: "M9 18l6-6-6-6" }));
19
+ exports.ChevronLeftIcon = (0, icon_factory_js_1.createIcon)('ChevronLeftIcon', (0, jsx_runtime_1.jsx)("path", { d: "M15 18l-6-6 6-6" }));
20
+ exports.ArrowRightIcon = (0, icon_factory_js_1.createIcon)('ArrowRightIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M5 12h14" }), (0, jsx_runtime_1.jsx)("path", { d: "M12 5l7 7-7 7" })] }));
21
+ exports.ArrowLeftIcon = (0, icon_factory_js_1.createIcon)('ArrowLeftIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M19 12H5" }), (0, jsx_runtime_1.jsx)("path", { d: "M12 19l-7-7 7-7" })] }));
22
+ exports.ArrowUpIcon = (0, icon_factory_js_1.createIcon)('ArrowUpIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M12 19V5" }), (0, jsx_runtime_1.jsx)("path", { d: "M5 12l7-7 7 7" })] }));
23
+ exports.ArrowDownIcon = (0, icon_factory_js_1.createIcon)('ArrowDownIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M12 5v14" }), (0, jsx_runtime_1.jsx)("path", { d: "M19 12l-7 7-7-7" })] }));
24
+ exports.ExternalLinkIcon = (0, icon_factory_js_1.createIcon)('ExternalLinkIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }), (0, jsx_runtime_1.jsx)("polyline", { points: "15 3 21 3 21 9" }), (0, jsx_runtime_1.jsx)("line", { x1: "10", y1: "14", x2: "21", y2: "3" })] }));
25
+ // ─── Actions ─────────────────────────────────────────────────────────────────
26
+ exports.PlusIcon = (0, icon_factory_js_1.createIcon)('PlusIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), (0, jsx_runtime_1.jsx)("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] }));
27
+ exports.MinusIcon = (0, icon_factory_js_1.createIcon)('MinusIcon', (0, jsx_runtime_1.jsx)("line", { x1: "5", y1: "12", x2: "19", y2: "12" }));
28
+ exports.XIcon = (0, icon_factory_js_1.createIcon)('XIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), (0, jsx_runtime_1.jsx)("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }));
29
+ exports.CheckIcon = (0, icon_factory_js_1.createIcon)('CheckIcon', (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }));
30
+ exports.SearchIcon = (0, icon_factory_js_1.createIcon)('SearchIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "11", cy: "11", r: "8" }), (0, jsx_runtime_1.jsx)("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }));
31
+ exports.CopyIcon = (0, icon_factory_js_1.createIcon)('CopyIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), (0, jsx_runtime_1.jsx)("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }));
32
+ exports.TrashIcon = (0, icon_factory_js_1.createIcon)('TrashIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("polyline", { points: "3 6 5 6 21 6" }), (0, jsx_runtime_1.jsx)("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })] }));
33
+ exports.EditIcon = (0, icon_factory_js_1.createIcon)('EditIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), (0, jsx_runtime_1.jsx)("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] }));
34
+ exports.RefreshIcon = (0, icon_factory_js_1.createIcon)('RefreshIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("polyline", { points: "23 4 23 10 17 10" }), (0, jsx_runtime_1.jsx)("polyline", { points: "1 20 1 14 7 14" }), (0, jsx_runtime_1.jsx)("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })] }));
35
+ exports.FilterIcon = (0, icon_factory_js_1.createIcon)('FilterIcon', (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)("polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }) }));
36
+ exports.SortAscIcon = (0, icon_factory_js_1.createIcon)('SortAscIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "9", x2: "21", y2: "9" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "15", x2: "14", y2: "15" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "21", x2: "8", y2: "21" }), (0, jsx_runtime_1.jsx)("polyline", { points: "15 3 21 9 15 9" })] }));
37
+ exports.SortDescIcon = (0, icon_factory_js_1.createIcon)('SortDescIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "9", x2: "21", y2: "9" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "15", x2: "14", y2: "15" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "21", x2: "8", y2: "21" }), (0, jsx_runtime_1.jsx)("polyline", { points: "15 17 21 21 15 21" })] }));
38
+ // ─── Status / Feedback ────────────────────────────────────────────────────────
39
+ exports.InfoIcon = (0, icon_factory_js_1.createIcon)('InfoIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "10" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }));
40
+ exports.AlertCircleIcon = (0, icon_factory_js_1.createIcon)('AlertCircleIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "10" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }));
41
+ exports.AlertTriangleIcon = (0, icon_factory_js_1.createIcon)('AlertTriangleIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }));
42
+ exports.CheckCircleIcon = (0, icon_factory_js_1.createIcon)('CheckCircleIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), (0, jsx_runtime_1.jsx)("polyline", { points: "22 4 12 14.01 9 11.01" })] }));
43
+ exports.XCircleIcon = (0, icon_factory_js_1.createIcon)('XCircleIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "10" }), (0, jsx_runtime_1.jsx)("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), (0, jsx_runtime_1.jsx)("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] }));
44
+ exports.LoaderIcon = (0, icon_factory_js_1.createIcon)('LoaderIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "2", x2: "12", y2: "6" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "18", x2: "12", y2: "22" }), (0, jsx_runtime_1.jsx)("line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }), (0, jsx_runtime_1.jsx)("line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }), (0, jsx_runtime_1.jsx)("line", { x1: "2", y1: "12", x2: "6", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "18", y1: "12", x2: "22", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }), (0, jsx_runtime_1.jsx)("line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })] }));
45
+ // ─── UI / Interface ───────────────────────────────────────────────────────────
46
+ exports.MenuIcon = (0, icon_factory_js_1.createIcon)('MenuIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "12", x2: "21", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "6", x2: "21", y2: "6" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "18", x2: "21", y2: "18" })] }));
47
+ exports.EyeIcon = (0, icon_factory_js_1.createIcon)('EyeIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), (0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "3" })] }));
48
+ exports.EyeOffIcon = (0, icon_factory_js_1.createIcon)('EyeOffIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94" }), (0, jsx_runtime_1.jsx)("path", { d: "M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19" }), (0, jsx_runtime_1.jsx)("line", { x1: "1", y1: "1", x2: "23", y2: "23" })] }));
49
+ exports.CalendarIcon = (0, icon_factory_js_1.createIcon)('CalendarIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), (0, jsx_runtime_1.jsx)("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), (0, jsx_runtime_1.jsx)("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), (0, jsx_runtime_1.jsx)("line", { x1: "3", y1: "10", x2: "21", y2: "10" })] }));
50
+ exports.BellIcon = (0, icon_factory_js_1.createIcon)('BellIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }), (0, jsx_runtime_1.jsx)("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })] }));
51
+ exports.UserIcon = (0, icon_factory_js_1.createIcon)('UserIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }), (0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "7", r: "4" })] }));
52
+ exports.SettingsIcon = (0, icon_factory_js_1.createIcon)('SettingsIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "3" }), (0, jsx_runtime_1.jsx)("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" })] }));
53
+ exports.HomeIcon = (0, icon_factory_js_1.createIcon)('HomeIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }), (0, jsx_runtime_1.jsx)("polyline", { points: "9 22 9 12 15 12 15 22" })] }));
54
+ exports.MoonIcon = (0, icon_factory_js_1.createIcon)('MoonIcon', (0, jsx_runtime_1.jsx)("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }));
55
+ exports.SunIcon = (0, icon_factory_js_1.createIcon)('SunIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "5" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "1", x2: "12", y2: "3" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "21", x2: "12", y2: "23" }), (0, jsx_runtime_1.jsx)("line", { x1: "4.22", y1: "4.22", x2: "5.64", y2: "5.64" }), (0, jsx_runtime_1.jsx)("line", { x1: "18.36", y1: "18.36", x2: "19.78", y2: "19.78" }), (0, jsx_runtime_1.jsx)("line", { x1: "1", y1: "12", x2: "3", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "21", y1: "12", x2: "23", y2: "12" }), (0, jsx_runtime_1.jsx)("line", { x1: "4.22", y1: "19.78", x2: "5.64", y2: "18.36" }), (0, jsx_runtime_1.jsx)("line", { x1: "18.36", y1: "5.64", x2: "19.78", y2: "4.22" })] }));
56
+ exports.GripVerticalIcon = (0, icon_factory_js_1.createIcon)('GripVerticalIcon', (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: "9", cy: "5", r: "1", fill: "currentColor", stroke: "none" }), (0, jsx_runtime_1.jsx)("circle", { cx: "9", cy: "12", r: "1", fill: "currentColor", stroke: "none" }), (0, jsx_runtime_1.jsx)("circle", { cx: "9", cy: "19", r: "1", fill: "currentColor", stroke: "none" }), (0, jsx_runtime_1.jsx)("circle", { cx: "15", cy: "5", r: "1", fill: "currentColor", stroke: "none" }), (0, jsx_runtime_1.jsx)("circle", { cx: "15", cy: "12", r: "1", fill: "currentColor", stroke: "none" }), (0, jsx_runtime_1.jsx)("circle", { cx: "15", cy: "19", r: "1", fill: "currentColor", stroke: "none" })] }), 1);
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/icons/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * @tokis/icons
4
+ *
5
+ * Tree-shakable SVG icon library for Tokis.
6
+ *
7
+ * ```ts
8
+ * // Import individual icons (fully tree-shakable):
9
+ * import { ChevronDownIcon, SearchIcon } from '@tokis/icons';
10
+ *
11
+ * // Use Lucide React icons with the Tokis API (optional peer dep):
12
+ * import { createTokisIcon, LucideIcon } from '@tokis/icons/lucide';
13
+ * ```
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.createIcon = void 0;
31
+ // Icon factory (for custom icons)
32
+ var icon_factory_js_1 = require("./icon-factory");
33
+ Object.defineProperty(exports, "createIcon", { enumerable: true, get: function () { return icon_factory_js_1.createIcon; } });
34
+ // All built-in icons
35
+ __exportStar(require("./icons/index"), exports);
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;AAKH,kCAAkC;AAClC,qDAA+C;AAAtC,6GAAA,UAAU,OAAA;AAEnB,qBAAqB;AACrB,mDAAiC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LucideIcon = void 0;
4
+ exports.createTokisIcon = createTokisIcon;
5
+ exports.useLucideIconProps = useLucideIconProps;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ /**
8
+ * @tokis/icons/lucide — Native Lucide React adapter.
9
+ *
10
+ * This module bridges the `lucide-react` icon library into the Tokis icon API.
11
+ * It is a **separate entry point** so that projects that don't use Lucide
12
+ * don't pay the peer-dep resolution cost.
13
+ *
14
+ * Usage:
15
+ * ```tsx
16
+ * // 1. Wrap a single Lucide icon to match the TokisIconProps API:
17
+ * import { createTokisIcon } from '@tokis/icons/lucide';
18
+ * import { Rocket } from 'lucide-react';
19
+ * const RocketIcon = createTokisIcon(Rocket);
20
+ * <RocketIcon size={20} aria-label="Launch" />
21
+ *
22
+ * // 2. Render any Lucide icon inline (useful in dynamic contexts):
23
+ * import { LucideIcon } from '@tokis/icons/lucide';
24
+ * import { Rocket } from 'lucide-react';
25
+ * <LucideIcon icon={Rocket} size={20} />
26
+ *
27
+ * // 3. Re-export every Lucide icon already shaped like Tokis icons:
28
+ * import { allLucideIcons, LucideChevronDown } from '@tokis/icons/lucide';
29
+ * ```
30
+ */
31
+ const react_1 = require("react");
32
+ // ─── createTokisIcon ──────────────────────────────────────────────────────────
33
+ /**
34
+ * Wraps a `lucide-react` icon component so it conforms to `TokisIconProps`.
35
+ *
36
+ * ```tsx
37
+ * import { createTokisIcon } from '@tokis/icons/lucide';
38
+ * import { Rocket } from 'lucide-react';
39
+ *
40
+ * export const RocketIcon = createTokisIcon(Rocket, 'RocketIcon');
41
+ * ```
42
+ */
43
+ function createTokisIcon(LucideComponent, displayName) {
44
+ const Icon = (0, react_1.forwardRef)(function Icon({ size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest }, _ref) {
45
+ const isDecorative = !ariaLabel;
46
+ return ((0, jsx_runtime_1.jsx)(LucideComponent, { size: size, color: color, strokeWidth: strokeWidth, "aria-label": ariaLabel, "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), role: ariaLabel ? 'img' : undefined, ...rest }));
47
+ });
48
+ Icon.displayName = displayName ?? LucideComponent.displayName ?? 'TokisLucideIcon';
49
+ return Icon;
50
+ }
51
+ /**
52
+ * Renders any Lucide icon with Tokis prop conventions.
53
+ * Useful when the icon is dynamic (stored in data or chosen at runtime).
54
+ *
55
+ * ```tsx
56
+ * <LucideIcon icon={Rocket} size={20} aria-label="Launch" />
57
+ * ```
58
+ */
59
+ exports.LucideIcon = (0, react_1.forwardRef)(function LucideIcon({ icon: IconComponent, size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest }, _ref) {
60
+ const isDecorative = !ariaLabel;
61
+ return ((0, jsx_runtime_1.jsx)(IconComponent, { size: size, color: color, strokeWidth: strokeWidth, "aria-label": ariaLabel, "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), role: ariaLabel ? 'img' : undefined, ...rest }));
62
+ });
63
+ exports.LucideIcon.displayName = 'LucideIcon';
64
+ // ─── useLucideIcon hook ───────────────────────────────────────────────────────
65
+ /**
66
+ * Returns merged Tokis + Lucide default props.
67
+ * Use this when building your own icon wrappers that mix Lucide with Tokis.
68
+ */
69
+ function useLucideIconProps(props) {
70
+ const { size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest } = props;
71
+ const isDecorative = !ariaLabel;
72
+ return {
73
+ size,
74
+ color,
75
+ strokeWidth,
76
+ 'aria-label': ariaLabel,
77
+ 'aria-hidden': (ariaHidden ?? (isDecorative ? true : undefined)),
78
+ role: ariaLabel ? 'img' : undefined,
79
+ ...rest,
80
+ };
81
+ }
82
+ //# sourceMappingURL=lucide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucide.js","sourceRoot":"","sources":["../../src/lucide.tsx"],"names":[],"mappings":";;;AAyDA,0CA+BC;AAqDD,gDAqBC;;AAlKD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,iCAAmC;AAoBnC,iFAAiF;AAEjF;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAC7B,eAAoC,EACpC,WAAoB;IAEpB,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAgC,SAAS,IAAI,CAClE,EACE,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EACD,IAAI;QAEJ,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;QAChC,OAAO,CACL,uBAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,gBACZ,SAAS,iBACR,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC5D,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,GACR,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,eAAe,CAAC,WAAW,IAAI,iBAAiB,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;;;;GAOG;AACU,QAAA,UAAU,GAAG,IAAA,kBAAU,EAClC,SAAS,UAAU,CACjB,EACE,IAAI,EAAE,aAAa,EACnB,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EACD,IAAI;IAEJ,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;IAChC,OAAO,CACL,uBAAC,aAAa,IACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,gBACZ,SAAS,iBACR,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC5D,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,iFAAiF;AAEjF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAqB;IACtD,MAAM,EACJ,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,IAAI;QACJ,KAAK;QACL,WAAW;QACX,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAwB;QACvF,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACnC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TokisIconProps } from './types.js';
3
+ /**
4
+ * Creates a Tokis icon component from raw SVG children.
5
+ *
6
+ * Usage:
7
+ * ```tsx
8
+ * const ChevronDownIcon = createIcon('ChevronDown', (
9
+ * <path d="M6 9l6 6 6-6" />
10
+ * ));
11
+ * ```
12
+ *
13
+ * All icons:
14
+ * - render on a 24×24 viewBox
15
+ * - use stroke="currentColor", fill="none" by default (outline style)
16
+ * - are aria-hidden unless aria-label is provided
17
+ * - are tree-shakable (each is a separate named export)
18
+ */
19
+ export declare function createIcon(displayName: string, children: ReactNode, defaultStrokeWidth?: number): import("react").ForwardRefExoticComponent<Omit<TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
20
+ //# sourceMappingURL=icon-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-factory.d.ts","sourceRoot":"","sources":["../src/icon-factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,EACnB,kBAAkB,SAAI,yHA0CvB"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ /**
4
+ * Creates a Tokis icon component from raw SVG children.
5
+ *
6
+ * Usage:
7
+ * ```tsx
8
+ * const ChevronDownIcon = createIcon('ChevronDown', (
9
+ * <path d="M6 9l6 6 6-6" />
10
+ * ));
11
+ * ```
12
+ *
13
+ * All icons:
14
+ * - render on a 24×24 viewBox
15
+ * - use stroke="currentColor", fill="none" by default (outline style)
16
+ * - are aria-hidden unless aria-label is provided
17
+ * - are tree-shakable (each is a separate named export)
18
+ */
19
+ export function createIcon(displayName, children, defaultStrokeWidth = 2) {
20
+ const Icon = forwardRef(function Icon({ size = 24, color = 'currentColor', strokeWidth = defaultStrokeWidth, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, children: _children, ...rest }, ref) {
21
+ const isDecorative = !ariaLabel;
22
+ const px = typeof size === 'number' ? `${size}px` : size;
23
+ return (_jsxs("svg", { ref: ref, xmlns: "http://www.w3.org/2000/svg", width: px, height: px, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), "aria-label": ariaLabel, role: ariaLabel ? 'img' : undefined, ...rest, children: [ariaLabel && _jsx("title", { children: ariaLabel }), children] }));
24
+ });
25
+ Icon.displayName = displayName;
26
+ return Icon;
27
+ }
28
+ //# sourceMappingURL=icon-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-factory.js","sourceRoot":"","sources":["../src/icon-factory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAInC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,WAAmB,EACnB,QAAmB,EACnB,kBAAkB,GAAG,CAAC;IAEtB,MAAM,IAAI,GAAG,UAAU,CAAgC,SAAS,IAAI,CAClE,EACE,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,kBAAkB,EAChC,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,SAAS,EACnB,GAAG,IAAI,EACR,EACD,GAAG;QAEH,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzD,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACT,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,gBAChD,SAAS,EACrB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,aAEP,SAAS,IAAI,0BAAQ,SAAS,GAAS,EACvC,QAAQ,IACL,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @tokis/icons — built-in SVG icon set.
3
+ *
4
+ * All icons use a 24×24 viewBox with 2px round-capped strokes (outline style)
5
+ * to match the Tokis design language.
6
+ *
7
+ * Every icon is a separate named export for complete tree-shaking.
8
+ * Paths are taken from the Lucide icon set (MIT licence).
9
+ */
10
+ export declare const ChevronDownIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
11
+ export declare const ChevronUpIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
12
+ export declare const ChevronRightIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
13
+ export declare const ChevronLeftIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
14
+ export declare const ArrowRightIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
15
+ export declare const ArrowLeftIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
16
+ export declare const ArrowUpIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
17
+ export declare const ArrowDownIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
18
+ export declare const ExternalLinkIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
19
+ export declare const PlusIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
20
+ export declare const MinusIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
21
+ export declare const XIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
22
+ export declare const CheckIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
23
+ export declare const SearchIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
24
+ export declare const CopyIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
25
+ export declare const TrashIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
26
+ export declare const EditIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
27
+ export declare const RefreshIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
28
+ export declare const FilterIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
29
+ export declare const SortAscIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
30
+ export declare const SortDescIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
31
+ export declare const InfoIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
32
+ export declare const AlertCircleIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
33
+ export declare const AlertTriangleIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
34
+ export declare const CheckCircleIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
35
+ export declare const XCircleIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
36
+ export declare const LoaderIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
37
+ export declare const MenuIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
38
+ export declare const EyeIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
39
+ export declare const EyeOffIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
40
+ export declare const CalendarIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
41
+ export declare const BellIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
42
+ export declare const UserIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
43
+ export declare const SettingsIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
44
+ export declare const HomeIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
45
+ export declare const MoonIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
46
+ export declare const SunIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
47
+ export declare const GripVerticalIcon: import("react").ForwardRefExoticComponent<Omit<import("../types.js").TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,eAAe,6IAG3B,CAAC;AAEF,eAAO,MAAM,aAAa,6IAGzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,6IAG5B,CAAC;AAEF,eAAO,MAAM,eAAe,6IAG3B,CAAC;AAEF,eAAO,MAAM,cAAc,6IAM1B,CAAC;AAEF,eAAO,MAAM,aAAa,6IAMzB,CAAC;AAEF,eAAO,MAAM,WAAW,6IAMvB,CAAC;AAEF,eAAO,MAAM,aAAa,6IAMzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,6IAO5B,CAAC;AAIF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,SAAS,6IAGrB,CAAC;AAEF,eAAO,MAAM,KAAK,6IAMjB,CAAC;AAEF,eAAO,MAAM,SAAS,6IAGrB,CAAC;AAEF,eAAO,MAAM,UAAU,6IAMtB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,SAAS,6IAMrB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,WAAW,6IAOvB,CAAC;AAEF,eAAO,MAAM,UAAU,6IAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,6IAQvB,CAAC;AAEF,eAAO,MAAM,YAAY,6IAQxB,CAAC;AAIF,eAAO,MAAM,QAAQ,6IAOpB,CAAC;AAEF,eAAO,MAAM,eAAe,6IAO3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,6IAO7B,CAAC;AAEF,eAAO,MAAM,eAAe,6IAM3B,CAAC;AAEF,eAAO,MAAM,WAAW,6IAOvB,CAAC;AAEF,eAAO,MAAM,UAAU,6IAYtB,CAAC;AAIF,eAAO,MAAM,QAAQ,6IAOpB,CAAC;AAEF,eAAO,MAAM,OAAO,6IAMnB,CAAC;AAEF,eAAO,MAAM,UAAU,6IAOtB,CAAC;AAEF,eAAO,MAAM,YAAY,6IAQxB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,YAAY,6IAMxB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAMpB,CAAC;AAEF,eAAO,MAAM,QAAQ,6IAGpB,CAAC;AAEF,eAAO,MAAM,OAAO,6IAanB,CAAC;AAEF,eAAO,MAAM,gBAAgB,6IAW5B,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @tokis/icons — built-in SVG icon set.
4
+ *
5
+ * All icons use a 24×24 viewBox with 2px round-capped strokes (outline style)
6
+ * to match the Tokis design language.
7
+ *
8
+ * Every icon is a separate named export for complete tree-shaking.
9
+ * Paths are taken from the Lucide icon set (MIT licence).
10
+ */
11
+ import { createIcon } from '../icon-factory.js';
12
+ // ─── Navigation & Arrows ─────────────────────────────────────────────────────
13
+ export const ChevronDownIcon = createIcon('ChevronDownIcon', _jsx("path", { d: "M6 9l6 6 6-6" }));
14
+ export const ChevronUpIcon = createIcon('ChevronUpIcon', _jsx("path", { d: "M18 15l-6-6-6 6" }));
15
+ export const ChevronRightIcon = createIcon('ChevronRightIcon', _jsx("path", { d: "M9 18l6-6-6-6" }));
16
+ export const ChevronLeftIcon = createIcon('ChevronLeftIcon', _jsx("path", { d: "M15 18l-6-6 6-6" }));
17
+ export const ArrowRightIcon = createIcon('ArrowRightIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M5 12h14" }), _jsx("path", { d: "M12 5l7 7-7 7" })] }));
18
+ export const ArrowLeftIcon = createIcon('ArrowLeftIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M19 12H5" }), _jsx("path", { d: "M12 19l-7-7 7-7" })] }));
19
+ export const ArrowUpIcon = createIcon('ArrowUpIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 19V5" }), _jsx("path", { d: "M5 12l7-7 7 7" })] }));
20
+ export const ArrowDownIcon = createIcon('ArrowDownIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 5v14" }), _jsx("path", { d: "M19 12l-7 7-7-7" })] }));
21
+ export const ExternalLinkIcon = createIcon('ExternalLinkIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }), _jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })] }));
22
+ // ─── Actions ─────────────────────────────────────────────────────────────────
23
+ export const PlusIcon = createIcon('PlusIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), _jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] }));
24
+ export const MinusIcon = createIcon('MinusIcon', _jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }));
25
+ export const XIcon = createIcon('XIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }));
26
+ export const CheckIcon = createIcon('CheckIcon', _jsx("polyline", { points: "20 6 9 17 4 12" }));
27
+ export const SearchIcon = createIcon('SearchIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }));
28
+ export const CopyIcon = createIcon('CopyIcon', _jsxs(_Fragment, { children: [_jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }));
29
+ export const TrashIcon = createIcon('TrashIcon', _jsxs(_Fragment, { children: [_jsx("polyline", { points: "3 6 5 6 21 6" }), _jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })] }));
30
+ export const EditIcon = createIcon('EditIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] }));
31
+ export const RefreshIcon = createIcon('RefreshIcon', _jsxs(_Fragment, { children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })] }));
32
+ export const FilterIcon = createIcon('FilterIcon', _jsx(_Fragment, { children: _jsx("polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }) }));
33
+ export const SortAscIcon = createIcon('SortAscIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "3", y1: "9", x2: "21", y2: "9" }), _jsx("line", { x1: "3", y1: "15", x2: "14", y2: "15" }), _jsx("line", { x1: "3", y1: "21", x2: "8", y2: "21" }), _jsx("polyline", { points: "15 3 21 9 15 9" })] }));
34
+ export const SortDescIcon = createIcon('SortDescIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "3", y1: "9", x2: "21", y2: "9" }), _jsx("line", { x1: "3", y1: "15", x2: "14", y2: "15" }), _jsx("line", { x1: "3", y1: "21", x2: "8", y2: "21" }), _jsx("polyline", { points: "15 17 21 21 15 21" })] }));
35
+ // ─── Status / Feedback ────────────────────────────────────────────────────────
36
+ export const InfoIcon = createIcon('InfoIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }));
37
+ export const AlertCircleIcon = createIcon('AlertCircleIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }));
38
+ export const AlertTriangleIcon = createIcon('AlertTriangleIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }));
39
+ export const CheckCircleIcon = createIcon('CheckCircleIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), _jsx("polyline", { points: "22 4 12 14.01 9 11.01" })] }));
40
+ export const XCircleIcon = createIcon('XCircleIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), _jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] }));
41
+ export const LoaderIcon = createIcon('LoaderIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "12", y1: "2", x2: "12", y2: "6" }), _jsx("line", { x1: "12", y1: "18", x2: "12", y2: "22" }), _jsx("line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }), _jsx("line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }), _jsx("line", { x1: "2", y1: "12", x2: "6", y2: "12" }), _jsx("line", { x1: "18", y1: "12", x2: "22", y2: "12" }), _jsx("line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }), _jsx("line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })] }));
42
+ // ─── UI / Interface ───────────────────────────────────────────────────────────
43
+ export const MenuIcon = createIcon('MenuIcon', _jsxs(_Fragment, { children: [_jsx("line", { x1: "3", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "3", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "3", y1: "18", x2: "21", y2: "18" })] }));
44
+ export const EyeIcon = createIcon('EyeIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }));
45
+ export const EyeOffIcon = createIcon('EyeOffIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94" }), _jsx("path", { d: "M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19" }), _jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })] }));
46
+ export const CalendarIcon = createIcon('CalendarIcon', _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), _jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), _jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), _jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" })] }));
47
+ export const BellIcon = createIcon('BellIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }), _jsx("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })] }));
48
+ export const UserIcon = createIcon('UserIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }), _jsx("circle", { cx: "12", cy: "7", r: "4" })] }));
49
+ export const SettingsIcon = createIcon('SettingsIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" })] }));
50
+ export const HomeIcon = createIcon('HomeIcon', _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }), _jsx("polyline", { points: "9 22 9 12 15 12 15 22" })] }));
51
+ export const MoonIcon = createIcon('MoonIcon', _jsx("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }));
52
+ export const SunIcon = createIcon('SunIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "5" }), _jsx("line", { x1: "12", y1: "1", x2: "12", y2: "3" }), _jsx("line", { x1: "12", y1: "21", x2: "12", y2: "23" }), _jsx("line", { x1: "4.22", y1: "4.22", x2: "5.64", y2: "5.64" }), _jsx("line", { x1: "18.36", y1: "18.36", x2: "19.78", y2: "19.78" }), _jsx("line", { x1: "1", y1: "12", x2: "3", y2: "12" }), _jsx("line", { x1: "21", y1: "12", x2: "23", y2: "12" }), _jsx("line", { x1: "4.22", y1: "19.78", x2: "5.64", y2: "18.36" }), _jsx("line", { x1: "18.36", y1: "5.64", x2: "19.78", y2: "4.22" })] }));
53
+ export const GripVerticalIcon = createIcon('GripVerticalIcon', _jsxs(_Fragment, { children: [_jsx("circle", { cx: "9", cy: "5", r: "1", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "9", cy: "12", r: "1", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "9", cy: "19", r: "1", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "15", cy: "5", r: "1", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "15", cy: "12", r: "1", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "15", cy: "19", r: "1", fill: "currentColor", stroke: "none" })] }), 1);
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @tokis/icons
3
+ *
4
+ * Tree-shakable SVG icon library for Tokis.
5
+ *
6
+ * ```ts
7
+ * // Import individual icons (fully tree-shakable):
8
+ * import { ChevronDownIcon, SearchIcon } from '@tokis/icons';
9
+ *
10
+ * // Use Lucide React icons with the Tokis API (optional peer dep):
11
+ * import { createTokisIcon, LucideIcon } from '@tokis/icons/lucide';
12
+ * ```
13
+ */
14
+ export type { TokisIconProps } from './types.js';
15
+ export { createIcon } from './icon-factory.js';
16
+ export * from './icons/index.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @tokis/icons
3
+ *
4
+ * Tree-shakable SVG icon library for Tokis.
5
+ *
6
+ * ```ts
7
+ * // Import individual icons (fully tree-shakable):
8
+ * import { ChevronDownIcon, SearchIcon } from '@tokis/icons';
9
+ *
10
+ * // Use Lucide React icons with the Tokis API (optional peer dep):
11
+ * import { createTokisIcon, LucideIcon } from '@tokis/icons/lucide';
12
+ * ```
13
+ */
14
+ // Icon factory (for custom icons)
15
+ export { createIcon } from './icon-factory.js';
16
+ // All built-in icons
17
+ export * from './icons/index.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,qBAAqB;AACrB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @tokis/icons/lucide — Native Lucide React adapter.
3
+ *
4
+ * This module bridges the `lucide-react` icon library into the Tokis icon API.
5
+ * It is a **separate entry point** so that projects that don't use Lucide
6
+ * don't pay the peer-dep resolution cost.
7
+ *
8
+ * Usage:
9
+ * ```tsx
10
+ * // 1. Wrap a single Lucide icon to match the TokisIconProps API:
11
+ * import { createTokisIcon } from '@tokis/icons/lucide';
12
+ * import { Rocket } from 'lucide-react';
13
+ * const RocketIcon = createTokisIcon(Rocket);
14
+ * <RocketIcon size={20} aria-label="Launch" />
15
+ *
16
+ * // 2. Render any Lucide icon inline (useful in dynamic contexts):
17
+ * import { LucideIcon } from '@tokis/icons/lucide';
18
+ * import { Rocket } from 'lucide-react';
19
+ * <LucideIcon icon={Rocket} size={20} />
20
+ *
21
+ * // 3. Re-export every Lucide icon already shaped like Tokis icons:
22
+ * import { allLucideIcons, LucideChevronDown } from '@tokis/icons/lucide';
23
+ * ```
24
+ */
25
+ import type { ComponentType, SVGProps } from 'react';
26
+ import type { TokisIconProps } from './types.js';
27
+ /**
28
+ * Minimal interface that every `lucide-react` icon component satisfies.
29
+ * We keep this local so that `lucide-react` is truly an optional peer dep
30
+ * at runtime — it is only resolved when this sub-path is imported.
31
+ */
32
+ interface LucideProps extends SVGProps<SVGSVGElement> {
33
+ size?: number | string;
34
+ strokeWidth?: number;
35
+ color?: string;
36
+ absoluteStrokeWidth?: boolean;
37
+ }
38
+ type LucideIconComponent = ComponentType<LucideProps>;
39
+ /**
40
+ * Wraps a `lucide-react` icon component so it conforms to `TokisIconProps`.
41
+ *
42
+ * ```tsx
43
+ * import { createTokisIcon } from '@tokis/icons/lucide';
44
+ * import { Rocket } from 'lucide-react';
45
+ *
46
+ * export const RocketIcon = createTokisIcon(Rocket, 'RocketIcon');
47
+ * ```
48
+ */
49
+ export declare function createTokisIcon(LucideComponent: LucideIconComponent, displayName?: string): import("react").ForwardRefExoticComponent<Omit<TokisIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
50
+ export interface LucideIconProps extends TokisIconProps {
51
+ /** The Lucide icon component to render. */
52
+ icon: LucideIconComponent;
53
+ }
54
+ /**
55
+ * Renders any Lucide icon with Tokis prop conventions.
56
+ * Useful when the icon is dynamic (stored in data or chosen at runtime).
57
+ *
58
+ * ```tsx
59
+ * <LucideIcon icon={Rocket} size={20} aria-label="Launch" />
60
+ * ```
61
+ */
62
+ export declare const LucideIcon: import("react").ForwardRefExoticComponent<Omit<LucideIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
63
+ /**
64
+ * Returns merged Tokis + Lucide default props.
65
+ * Use this when building your own icon wrappers that mix Lucide with Tokis.
66
+ */
67
+ export declare function useLucideIconProps(props: TokisIconProps): LucideProps;
68
+ export {};
69
+ //# sourceMappingURL=lucide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../src/lucide.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;GAIG;AACH,UAAU,WAAY,SAAQ,QAAQ,CAAC,aAAa,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,KAAK,mBAAmB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAItD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,mBAAmB,EACpC,WAAW,CAAC,EAAE,MAAM,yHA6BrB;AAID,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,2CAA2C;IAC3C,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,wHA0BtB,CAAC;AAMF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAqBrE"}
package/dist/lucide.js ADDED
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @tokis/icons/lucide — Native Lucide React adapter.
4
+ *
5
+ * This module bridges the `lucide-react` icon library into the Tokis icon API.
6
+ * It is a **separate entry point** so that projects that don't use Lucide
7
+ * don't pay the peer-dep resolution cost.
8
+ *
9
+ * Usage:
10
+ * ```tsx
11
+ * // 1. Wrap a single Lucide icon to match the TokisIconProps API:
12
+ * import { createTokisIcon } from '@tokis/icons/lucide';
13
+ * import { Rocket } from 'lucide-react';
14
+ * const RocketIcon = createTokisIcon(Rocket);
15
+ * <RocketIcon size={20} aria-label="Launch" />
16
+ *
17
+ * // 2. Render any Lucide icon inline (useful in dynamic contexts):
18
+ * import { LucideIcon } from '@tokis/icons/lucide';
19
+ * import { Rocket } from 'lucide-react';
20
+ * <LucideIcon icon={Rocket} size={20} />
21
+ *
22
+ * // 3. Re-export every Lucide icon already shaped like Tokis icons:
23
+ * import { allLucideIcons, LucideChevronDown } from '@tokis/icons/lucide';
24
+ * ```
25
+ */
26
+ import { forwardRef } from 'react';
27
+ // ─── createTokisIcon ──────────────────────────────────────────────────────────
28
+ /**
29
+ * Wraps a `lucide-react` icon component so it conforms to `TokisIconProps`.
30
+ *
31
+ * ```tsx
32
+ * import { createTokisIcon } from '@tokis/icons/lucide';
33
+ * import { Rocket } from 'lucide-react';
34
+ *
35
+ * export const RocketIcon = createTokisIcon(Rocket, 'RocketIcon');
36
+ * ```
37
+ */
38
+ export function createTokisIcon(LucideComponent, displayName) {
39
+ const Icon = forwardRef(function Icon({ size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest }, _ref) {
40
+ const isDecorative = !ariaLabel;
41
+ return (_jsx(LucideComponent, { size: size, color: color, strokeWidth: strokeWidth, "aria-label": ariaLabel, "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), role: ariaLabel ? 'img' : undefined, ...rest }));
42
+ });
43
+ Icon.displayName = displayName ?? LucideComponent.displayName ?? 'TokisLucideIcon';
44
+ return Icon;
45
+ }
46
+ /**
47
+ * Renders any Lucide icon with Tokis prop conventions.
48
+ * Useful when the icon is dynamic (stored in data or chosen at runtime).
49
+ *
50
+ * ```tsx
51
+ * <LucideIcon icon={Rocket} size={20} aria-label="Launch" />
52
+ * ```
53
+ */
54
+ export const LucideIcon = forwardRef(function LucideIcon({ icon: IconComponent, size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest }, _ref) {
55
+ const isDecorative = !ariaLabel;
56
+ return (_jsx(IconComponent, { size: size, color: color, strokeWidth: strokeWidth, "aria-label": ariaLabel, "aria-hidden": ariaHidden ?? (isDecorative ? true : undefined), role: ariaLabel ? 'img' : undefined, ...rest }));
57
+ });
58
+ LucideIcon.displayName = 'LucideIcon';
59
+ // ─── useLucideIcon hook ───────────────────────────────────────────────────────
60
+ /**
61
+ * Returns merged Tokis + Lucide default props.
62
+ * Use this when building your own icon wrappers that mix Lucide with Tokis.
63
+ */
64
+ export function useLucideIconProps(props) {
65
+ const { size = 24, color = 'currentColor', strokeWidth = 2, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...rest } = props;
66
+ const isDecorative = !ariaLabel;
67
+ return {
68
+ size,
69
+ color,
70
+ strokeWidth,
71
+ 'aria-label': ariaLabel,
72
+ 'aria-hidden': (ariaHidden ?? (isDecorative ? true : undefined)),
73
+ role: ariaLabel ? 'img' : undefined,
74
+ ...rest,
75
+ };
76
+ }
77
+ //# sourceMappingURL=lucide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucide.js","sourceRoot":"","sources":["../src/lucide.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAoBnC,iFAAiF;AAEjF;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,eAAoC,EACpC,WAAoB;IAEpB,MAAM,IAAI,GAAG,UAAU,CAAgC,SAAS,IAAI,CAClE,EACE,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EACD,IAAI;QAEJ,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;QAChC,OAAO,CACL,KAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,gBACZ,SAAS,iBACR,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC5D,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,GACR,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,eAAe,CAAC,WAAW,IAAI,iBAAiB,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAClC,SAAS,UAAU,CACjB,EACE,IAAI,EAAE,aAAa,EACnB,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EACD,IAAI;IAEJ,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;IAChC,OAAO,CACL,KAAC,aAAa,IACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,gBACZ,SAAS,iBACR,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC5D,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAC/B,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,MAAM,EACJ,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,WAAW,GAAG,CAAC,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,IAAI;QACJ,KAAK;QACL,WAAW;QACX,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAwB;QACvF,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACnC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { SVGProps } from 'react';
2
+ /**
3
+ * Props shared by every Tokis icon component.
4
+ *
5
+ * Each icon renders an `<svg>` element and forwards all standard SVG
6
+ * attributes. `aria-hidden="true"` is set by default because icons are
7
+ * typically decorative; pass `aria-label` to expose them to screen readers.
8
+ */
9
+ export interface TokisIconProps extends SVGProps<SVGSVGElement> {
10
+ /**
11
+ * Width and height of the icon.
12
+ * Accepts any CSS length value or a plain number (treated as pixels).
13
+ * @default 24
14
+ */
15
+ size?: number | string;
16
+ /**
17
+ * Stroke / fill colour. Defaults to `currentColor` so the icon inherits
18
+ * the surrounding text colour.
19
+ * @default 'currentColor'
20
+ */
21
+ color?: string;
22
+ /**
23
+ * Stroke width for outline-style icons.
24
+ * @default 2
25
+ */
26
+ strokeWidth?: number;
27
+ /**
28
+ * Accessible label. When provided the icon is NOT aria-hidden and a
29
+ * visually-hidden `<title>` is added inside the SVG.
30
+ */
31
+ 'aria-label'?: string;
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAAC,aAAa,CAAC;IAC7D;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@tokis/icons",
3
+ "version": "1.1.0",
4
+ "description": "Icon library for Tokis — tree-shakable SVG icons with native lucide-react support.",
5
+ "type": "module",
6
+ "main": "./dist/cjs/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "require": "./dist/cjs/index.js",
12
+ "import": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./lucide": {
16
+ "require": "./dist/cjs/lucide.js",
17
+ "import": "./dist/lucide.js",
18
+ "types": "./dist/lucide.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md",
24
+ "LICENSE"
25
+ ],
26
+ "sideEffects": false,
27
+ "scripts": {
28
+ "build": "tsc && tsc -p tsconfig.cjs.json && node ../../scripts/stamp-cjs.js",
29
+ "typecheck": "tsc --noEmit",
30
+ "prepack": "npm run build"
31
+ },
32
+ "keywords": [
33
+ "tokis",
34
+ "icons",
35
+ "svg",
36
+ "react",
37
+ "lucide",
38
+ "design-system",
39
+ "accessible",
40
+ "a11y",
41
+ "tree-shaking"
42
+ ],
43
+ "author": "Tokis Contributors",
44
+ "license": "MIT",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/PrerakMathur20/TokisLib.git",
48
+ "directory": "packages/icons"
49
+ },
50
+ "homepage": "https://github.com/PrerakMathur20/TokisLib#readme",
51
+ "bugs": {
52
+ "url": "https://github.com/PrerakMathur20/TokisLib/issues"
53
+ },
54
+ "peerDependencies": {
55
+ "react": ">=18.0.0",
56
+ "lucide-react": ">=0.300.0"
57
+ },
58
+ "peerDependenciesMeta": {
59
+ "lucide-react": {
60
+ "optional": true
61
+ }
62
+ },
63
+ "devDependencies": {
64
+ "@types/react": "^18.0.0",
65
+ "react": "^18.0.0",
66
+ "lucide-react": "^0.300.0"
67
+ },
68
+ "publishConfig": {
69
+ "access": "public",
70
+ "registry": "https://registry.npmjs.org/"
71
+ }
72
+ }