@nice2dev/icons-cursor 1.1.6 → 1.1.9
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/package.json +1 -1
- package/dist/createCursorIcon-CCO9eeBk.mjs.map +0 -1
- package/dist/createCursorIcon-Crwdo_Qk.js.map +0 -1
- package/dist/createCursorIcon.d.ts.map +0 -1
- package/dist/cursorBuilder.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/pointers-DW_cbtGT.mjs.map +0 -1
- package/dist/pointers-DxPqgPxN.js.map +0 -1
- package/dist/pointers.cjs.map +0 -1
- package/dist/pointers.d.ts.map +0 -1
- package/dist/pointers.mjs.map +0 -1
- package/dist/selection-CINU3bsI.js.map +0 -1
- package/dist/selection-W-1ZhqSv.mjs.map +0 -1
- package/dist/selection.cjs.map +0 -1
- package/dist/selection.d.ts.map +0 -1
- package/dist/selection.mjs.map +0 -1
- package/dist/status-BBrDqBw_.mjs.map +0 -1
- package/dist/status-L6N47QMq.js.map +0 -1
- package/dist/status.cjs.map +0 -1
- package/dist/status.d.ts.map +0 -1
- package/dist/status.mjs.map +0 -1
- package/dist/tools-DbPCbk54.mjs.map +0 -1
- package/dist/tools-ttgDzC_5.js.map +0 -1
- package/dist/tools.cjs.map +0 -1
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.mjs.map +0 -1
- package/dist/types.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCursorIcon-CCO9eeBk.mjs","sources":["../src/createCursorIcon.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nimport type { CursorIconProps, CursorIconAnimation, CursorIcon } from './types';\r\n\r\n/**\r\n * Get SMIL animation attributes for cursor icons\r\n */\r\nexport function getCursorAnimation(\r\n animation: CursorIconAnimation | undefined,\r\n duration = 1000,\r\n): React.SVGAttributes<SVGSVGElement> {\r\n if (!animation) {\r\n return {};\r\n }\r\n\r\n const durationSec = duration / 1000;\r\n\r\n const animations: Record<CursorIconAnimation, React.SVGAttributes<SVGSVGElement>> = {\r\n pulse: {\r\n children: React.createElement('animate', {\r\n attributeName: 'opacity',\r\n values: '1;0.5;1',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n grow: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'scale',\r\n values: '1;1.2;1',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n shake: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '0,0;-2,0;2,0;0,0',\r\n dur: `${durationSec * 0.5}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n spin: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'rotate',\r\n from: '0 12 12',\r\n to: '360 12 12',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n bounce: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '0,0;0,-3;0,0',\r\n dur: `${durationSec * 0.5}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n fade: {\r\n children: React.createElement('animate', {\r\n attributeName: 'opacity',\r\n values: '1;0;1',\r\n dur: `${durationSec * 2}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n flip: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'rotate',\r\n values: '0 12 12;180 12 12;360 12 12',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n slide: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '-5,0;5,0;-5,0',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n glow: {\r\n style: {\r\n filter: 'drop-shadow(0 0 3px currentColor)',\r\n animation: `glow ${durationSec}s ease-in-out infinite`,\r\n },\r\n },\r\n };\r\n\r\n return animations[animation] || {};\r\n}\r\n\r\n/**\r\n * Factory function to create cursor icons\r\n */\r\nexport function createCursorIcon(name: string, path: string, defaultColor?: string): CursorIcon {\r\n const IconComponent = ({\r\n size = 24,\r\n color = defaultColor || 'currentColor',\r\n secondaryColor,\r\n variant = 'filled',\r\n animation,\r\n animationDuration = 1000,\r\n title,\r\n desc,\r\n className,\r\n style,\r\n ...props\r\n }: CursorIconProps) => {\r\n const animationAttrs = getCursorAnimation(animation, animationDuration);\r\n const titleId = title ? `${name}-title` : undefined;\r\n const descId = desc ? `${name}-desc` : undefined;\r\n\r\n let pathElement: React.ReactNode;\r\n\r\n switch (variant) {\r\n case 'outlined':\r\n pathElement = (\r\n <path\r\n d={path}\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth={1.5}\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n );\r\n break;\r\n case 'duotone':\r\n pathElement = (\r\n <>\r\n <path d={path} fill={secondaryColor || `${color}33`} />\r\n <path\r\n d={path}\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth={1.5}\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </>\r\n );\r\n break;\r\n case 'filled':\r\n default:\r\n pathElement = <path d={path} fill={color} />;\r\n break;\r\n }\r\n\r\n return (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n className={className}\r\n style={style}\r\n role=\"img\"\r\n aria-labelledby={titleId || descId ? `${titleId || ''} ${descId || ''}`.trim() : undefined}\r\n {...animationAttrs}\r\n {...props}\r\n >\r\n {title && <title id={titleId}>{title}</title>}\r\n {desc && <desc id={descId}>{desc}</desc>}\r\n {pathElement}\r\n </svg>\r\n );\r\n };\r\n\r\n IconComponent.displayName = name;\r\n return IconComponent as CursorIcon;\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCursorIcon-Crwdo_Qk.js","sources":["../src/createCursorIcon.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nimport type { CursorIconProps, CursorIconAnimation, CursorIcon } from './types';\r\n\r\n/**\r\n * Get SMIL animation attributes for cursor icons\r\n */\r\nexport function getCursorAnimation(\r\n animation: CursorIconAnimation | undefined,\r\n duration = 1000,\r\n): React.SVGAttributes<SVGSVGElement> {\r\n if (!animation) {\r\n return {};\r\n }\r\n\r\n const durationSec = duration / 1000;\r\n\r\n const animations: Record<CursorIconAnimation, React.SVGAttributes<SVGSVGElement>> = {\r\n pulse: {\r\n children: React.createElement('animate', {\r\n attributeName: 'opacity',\r\n values: '1;0.5;1',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n grow: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'scale',\r\n values: '1;1.2;1',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n shake: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '0,0;-2,0;2,0;0,0',\r\n dur: `${durationSec * 0.5}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n spin: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'rotate',\r\n from: '0 12 12',\r\n to: '360 12 12',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n bounce: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '0,0;0,-3;0,0',\r\n dur: `${durationSec * 0.5}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n fade: {\r\n children: React.createElement('animate', {\r\n attributeName: 'opacity',\r\n values: '1;0;1',\r\n dur: `${durationSec * 2}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n flip: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'rotate',\r\n values: '0 12 12;180 12 12;360 12 12',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n slide: {\r\n children: React.createElement('animateTransform', {\r\n attributeName: 'transform',\r\n type: 'translate',\r\n values: '-5,0;5,0;-5,0',\r\n dur: `${durationSec}s`,\r\n repeatCount: 'indefinite',\r\n }),\r\n },\r\n glow: {\r\n style: {\r\n filter: 'drop-shadow(0 0 3px currentColor)',\r\n animation: `glow ${durationSec}s ease-in-out infinite`,\r\n },\r\n },\r\n };\r\n\r\n return animations[animation] || {};\r\n}\r\n\r\n/**\r\n * Factory function to create cursor icons\r\n */\r\nexport function createCursorIcon(name: string, path: string, defaultColor?: string): CursorIcon {\r\n const IconComponent = ({\r\n size = 24,\r\n color = defaultColor || 'currentColor',\r\n secondaryColor,\r\n variant = 'filled',\r\n animation,\r\n animationDuration = 1000,\r\n title,\r\n desc,\r\n className,\r\n style,\r\n ...props\r\n }: CursorIconProps) => {\r\n const animationAttrs = getCursorAnimation(animation, animationDuration);\r\n const titleId = title ? `${name}-title` : undefined;\r\n const descId = desc ? `${name}-desc` : undefined;\r\n\r\n let pathElement: React.ReactNode;\r\n\r\n switch (variant) {\r\n case 'outlined':\r\n pathElement = (\r\n <path\r\n d={path}\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth={1.5}\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n );\r\n break;\r\n case 'duotone':\r\n pathElement = (\r\n <>\r\n <path d={path} fill={secondaryColor || `${color}33`} />\r\n <path\r\n d={path}\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth={1.5}\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </>\r\n );\r\n break;\r\n case 'filled':\r\n default:\r\n pathElement = <path d={path} fill={color} />;\r\n break;\r\n }\r\n\r\n return (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n className={className}\r\n style={style}\r\n role=\"img\"\r\n aria-labelledby={titleId || descId ? `${titleId || ''} ${descId || ''}`.trim() : undefined}\r\n {...animationAttrs}\r\n {...props}\r\n >\r\n {title && <title id={titleId}>{title}</title>}\r\n {desc && <desc id={descId}>{desc}</desc>}\r\n {pathElement}\r\n </svg>\r\n );\r\n };\r\n\r\n IconComponent.displayName = name;\r\n return IconComponent as CursorIcon;\r\n}\r\n"],"names":["jsx","jsxs","Fragment"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCursorIcon.d.ts","sourceRoot":"","sources":["../src/createCursorIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAmB,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,mBAAmB,GAAG,SAAS,EAC1C,QAAQ,SAAO,GACd,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAwFpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CA4E9F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursorBuilder.d.ts","sourceRoot":"","sources":["../src/cursorBuilder.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/cursorBuilder.tsx","../src/index.ts"],"sourcesContent":["/**\r\n * @file cursorBuilder.tsx\r\n * @description Utilities to convert cursor icons to CSS cursor values\r\n *\r\n * This module provides functions to transform SVG cursor icons into\r\n * usable CSS cursor definitions with customizable hotspots.\r\n */\r\n\r\nimport { createElement, useMemo, useState } from 'react';\r\nimport type { CSSProperties, FC, ReactNode } from 'react';\r\n\r\nimport type { CursorIcon, CursorIconProps } from './types';\r\n\r\n// Type for renderToStaticMarkup function\r\ntype RenderFn = (element: ReactNode) => string;\r\n\r\n// Lazy loaded renderer\r\nlet cachedRenderer: RenderFn | null = null;\r\n\r\n/**\r\n * Get the react-dom/server renderer.\r\n * Uses dynamic require for compatibility with bundlers.\r\n */\r\nfunction getRenderer(): RenderFn {\r\n if (cachedRenderer) {\r\n return cachedRenderer;\r\n }\r\n\r\n // Dynamic import at runtime\r\n // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n const reactDomServer = require('react-dom/server') as { renderToStaticMarkup: RenderFn };\r\n cachedRenderer = reactDomServer.renderToStaticMarkup;\r\n return cachedRenderer;\r\n}\r\n\r\n/* ─── Types ─── */\r\n\r\n/**\r\n * Cursor hotspot position (where the click is registered)\r\n */\r\nexport interface CursorHotspot {\r\n /** X coordinate of hotspot (0-based, measured from left) */\r\n x: number;\r\n /** Y coordinate of hotspot (0-based, measured from top) */\r\n y: number;\r\n}\r\n\r\n/**\r\n * Options for building a CSS cursor\r\n */\r\nexport interface CursorBuilderOptions {\r\n /** Icon size in pixels (default: 32) */\r\n size?: number;\r\n /** Icon color (default: #000) */\r\n color?: string;\r\n /** Secondary color for duotone variant */\r\n secondaryColor?: string;\r\n /** Hotspot position (default: { x: 0, y: 0 }) */\r\n hotspot?: CursorHotspot;\r\n /** Fallback CSS cursor value (default: 'auto') */\r\n fallback?: string;\r\n /** Icon variant */\r\n variant?: CursorIconProps['variant'];\r\n}\r\n\r\n/**\r\n * Result from building a cursor\r\n */\r\nexport interface CursorBuilderResult {\r\n /** The CSS cursor value (data URI + fallback) */\r\n cursor: string;\r\n /** The data URI only */\r\n dataUri: string;\r\n /** The hotspot used */\r\n hotspot: CursorHotspot;\r\n /** The size used */\r\n size: number;\r\n}\r\n\r\n/* ─── Default Hotspots ─── */\r\n\r\n/**\r\n * Default hotspot positions for common cursor types.\r\n * Values are normalized (0-1), will be multiplied by size.\r\n */\r\nexport const DEFAULT_HOTSPOTS: Record<string, CursorHotspot> = {\r\n // Pointer at tip (top-left)\r\n pointer: { x: 0, y: 0 },\r\n pointerFinger: { x: 0.35, y: 0 },\r\n\r\n // Crosshair at center\r\n crosshair: { x: 0.5, y: 0.5 },\r\n\r\n // Move cursor at center\r\n move: { x: 0.5, y: 0.5 },\r\n\r\n // Resize cursors at center\r\n resize: { x: 0.5, y: 0.5 },\r\n\r\n // Text cursor at center-bottom\r\n text: { x: 0.5, y: 0.9 },\r\n\r\n // Grab/grabbing at palm center\r\n grab: { x: 0.5, y: 0.4 },\r\n\r\n // Drawing tools at tool tip\r\n pen: { x: 0.1, y: 0.9 },\r\n brush: { x: 0.15, y: 0.85 },\r\n eraser: { x: 0.15, y: 0.85 },\r\n eyedropper: { x: 0.05, y: 0.95 },\r\n bucket: { x: 0.1, y: 0.85 },\r\n\r\n // Zoom at center of glass\r\n zoom: { x: 0.35, y: 0.35 },\r\n\r\n // Pan at center\r\n pan: { x: 0.5, y: 0.5 },\r\n\r\n // Default fallback\r\n default: { x: 0, y: 0 },\r\n};\r\n\r\n/**\r\n * Get normalized hotspot for an icon by name\r\n */\r\nexport function getDefaultHotspot(iconName: string): CursorHotspot {\r\n const name = iconName.toLowerCase();\r\n\r\n if (name.includes('pointer') || name.includes('finger')) {\r\n return name.includes('finger') ? DEFAULT_HOTSPOTS.pointerFinger : DEFAULT_HOTSPOTS.pointer;\r\n }\r\n if (name.includes('crosshair')) {\r\n return DEFAULT_HOTSPOTS.crosshair;\r\n }\r\n if (name.includes('move')) {\r\n return DEFAULT_HOTSPOTS.move;\r\n }\r\n if (name.includes('resize')) {\r\n return DEFAULT_HOTSPOTS.resize;\r\n }\r\n if (name.includes('text') || name.includes('cursor')) {\r\n return DEFAULT_HOTSPOTS.text;\r\n }\r\n if (name.includes('grab')) {\r\n return DEFAULT_HOTSPOTS.grab;\r\n }\r\n if (name.includes('pen') || name.includes('line')) {\r\n return DEFAULT_HOTSPOTS.pen;\r\n }\r\n if (name.includes('brush') || name.includes('draw')) {\r\n return DEFAULT_HOTSPOTS.brush;\r\n }\r\n if (name.includes('eraser')) {\r\n return DEFAULT_HOTSPOTS.eraser;\r\n }\r\n if (name.includes('eyedropper') || name.includes('picker')) {\r\n return DEFAULT_HOTSPOTS.eyedropper;\r\n }\r\n if (name.includes('bucket') || name.includes('fill')) {\r\n return DEFAULT_HOTSPOTS.bucket;\r\n }\r\n if (name.includes('zoom')) {\r\n return DEFAULT_HOTSPOTS.zoom;\r\n }\r\n if (name.includes('pan')) {\r\n return DEFAULT_HOTSPOTS.pan;\r\n }\r\n\r\n return DEFAULT_HOTSPOTS.default;\r\n}\r\n\r\n/* ─── Core Builder Function ─── */\r\n\r\n/**\r\n * Convert an SVG cursor icon to a CSS cursor value.\r\n *\r\n * @param IconComponent - The cursor icon React component\r\n * @param options - Cursor building options\r\n * @returns CSS cursor value with data URI and fallback\r\n *\r\n * @example\r\n * ```tsx\r\n * import { Pointer, buildCursor } from '@nice2dev/icons-cursor';\r\n *\r\n * const { cursor } = buildCursor(Pointer, {\r\n * size: 32,\r\n * color: '#333',\r\n * hotspot: { x: 0, y: 0 }\r\n * });\r\n *\r\n * // Use in styles\r\n * <div style={{ cursor }} />\r\n * ```\r\n */\r\nexport function buildCursor(\r\n IconComponent: CursorIcon,\r\n options: CursorBuilderOptions = {},\r\n): CursorBuilderResult {\r\n const {\r\n size = 32,\r\n color = '#000',\r\n secondaryColor,\r\n hotspot,\r\n fallback = 'auto',\r\n variant = 'filled',\r\n } = options;\r\n\r\n // Render the icon to static SVG markup\r\n const renderToMarkup = getRenderer();\r\n const element = createElement(IconComponent, {\r\n size,\r\n color,\r\n secondaryColor,\r\n variant,\r\n });\r\n const svgMarkup = renderToMarkup(element);\r\n\r\n // Convert to data URI (use base64 for better compatibility)\r\n const base64 =\r\n typeof btoa === 'function'\r\n ? btoa(unescape(encodeURIComponent(svgMarkup)))\r\n : Buffer.from(svgMarkup, 'utf8').toString('base64');\r\n\r\n const dataUri = `data:image/svg+xml;base64,${base64}`;\r\n\r\n // Calculate hotspot (use default based on component name if not provided)\r\n const componentName =\r\n (IconComponent as FC & { displayName?: string }).displayName || IconComponent.name || 'default';\r\n const normalizedHotspot = hotspot || getDefaultHotspot(componentName);\r\n const actualHotspot: CursorHotspot = {\r\n x: Math.round(normalizedHotspot.x * size),\r\n y: Math.round(normalizedHotspot.y * size),\r\n };\r\n\r\n // If hotspot was provided without normalization (values > 1), use as-is\r\n if (hotspot && (hotspot.x > 1 || hotspot.y > 1)) {\r\n actualHotspot.x = Math.round(hotspot.x);\r\n actualHotspot.y = Math.round(hotspot.y);\r\n }\r\n\r\n // Build the CSS cursor value\r\n const cursor = `url(${dataUri}) ${actualHotspot.x} ${actualHotspot.y}, ${fallback}`;\r\n\r\n return {\r\n cursor,\r\n dataUri,\r\n hotspot: actualHotspot,\r\n size,\r\n };\r\n}\r\n\r\n/**\r\n * Create a pre-configured cursor builder for a specific icon.\r\n *\r\n * @param IconComponent - The cursor icon React component\r\n * @returns Function that takes options and returns cursor CSS\r\n *\r\n * @example\r\n * ```tsx\r\n * const penCursor = createCursorBuilder(Pen);\r\n *\r\n * // Later use with different options\r\n * const cursor1 = penCursor({ color: 'red' });\r\n * const cursor2 = penCursor({ color: 'blue', size: 48 });\r\n * ```\r\n */\r\nexport function createCursorBuilder(\r\n IconComponent: CursorIcon,\r\n): (options?: CursorBuilderOptions) => CursorBuilderResult {\r\n return (options?: CursorBuilderOptions) => buildCursor(IconComponent, options);\r\n}\r\n\r\n/* ─── Batch Builder ─── */\r\n\r\n/**\r\n * Build multiple cursors at once with shared options.\r\n *\r\n * @param icons - Map of cursor names to icon components\r\n * @param sharedOptions - Options applied to all cursors\r\n * @returns Map of cursor names to their CSS values\r\n *\r\n * @example\r\n * ```tsx\r\n * const cursors = buildCursors({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * eraser: Eraser,\r\n * }, { size: 24, color: '#333' });\r\n *\r\n * // cursors.pointer => \"url(data:...) 0 0, auto\"\r\n * // cursors.pen => \"url(data:...) 2 22, auto\"\r\n * ```\r\n */\r\nexport function buildCursors<T extends Record<string, CursorIcon>>(\r\n icons: T,\r\n sharedOptions: CursorBuilderOptions = {},\r\n): Record<keyof T, string> {\r\n const result = {} as Record<keyof T, string>;\r\n\r\n for (const [name, IconComponent] of Object.entries(icons)) {\r\n result[name as keyof T] = buildCursor(IconComponent, sharedOptions).cursor;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/* ─── CSS Custom Property Generator ─── */\r\n\r\n/**\r\n * Generate CSS custom properties for cursor icons.\r\n * Useful for defining cursors once and using them via CSS variables.\r\n *\r\n * @param icons - Map of cursor names to icon components\r\n * @param options - Cursor building options\r\n * @param prefix - CSS variable prefix (default: '--cursor')\r\n * @returns CSS string with custom property definitions\r\n *\r\n * @example\r\n * ```tsx\r\n * const css = generateCursorCSS({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * });\r\n *\r\n * // Returns:\r\n * // :root {\r\n * // --cursor-pointer: url(data:...) 0 0, auto;\r\n * // --cursor-pen: url(data:...) 2 22, auto;\r\n * // }\r\n * ```\r\n */\r\nexport function generateCursorCSS<T extends Record<string, CursorIcon>>(\r\n icons: T,\r\n options: CursorBuilderOptions = {},\r\n prefix = '--cursor',\r\n): string {\r\n const cursors = buildCursors(icons, options);\r\n const properties = Object.entries(cursors)\r\n .map(([name, value]) => ` ${prefix}-${name}: ${value};`)\r\n .join('\\n');\r\n\r\n return `:root {\\n${properties}\\n}`;\r\n}\r\n\r\n/* ─── React Hook ─── */\r\n\r\n/**\r\n * Hook to apply a custom cursor to an element.\r\n * Returns style object and handlers for dynamic cursor changes.\r\n *\r\n * @param IconComponent - The cursor icon component\r\n * @param options - Cursor building options\r\n * @returns Style object with cursor property\r\n *\r\n * @example\r\n * ```tsx\r\n * function Canvas() {\r\n * const cursorStyle = useCursor(Pen, { color: 'blue' });\r\n *\r\n * return <div style={cursorStyle}>Draw here</div>;\r\n * }\r\n * ```\r\n */\r\nexport function useCursor(\r\n IconComponent: CursorIcon | null,\r\n options: CursorBuilderOptions = {},\r\n): CSSProperties {\r\n const cursor = useMemo(() => {\r\n if (!IconComponent) {\r\n return 'auto';\r\n }\r\n return buildCursor(IconComponent, options).cursor;\r\n }, [\r\n IconComponent,\r\n options.size,\r\n options.color,\r\n options.hotspot?.x,\r\n options.hotspot?.y,\r\n options.fallback,\r\n options.variant,\r\n options.secondaryColor,\r\n ]);\r\n\r\n return { cursor };\r\n}\r\n\r\n/**\r\n * Hook to manage multiple cursors with easy switching.\r\n *\r\n * @param cursors - Map of cursor names to icon components\r\n * @param options - Shared cursor building options\r\n * @returns Tuple of [currentStyle, setCursor, cursorMap]\r\n *\r\n * @example\r\n * ```tsx\r\n * function Editor() {\r\n * const [style, setCursor, cursors] = useCursors({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * eraser: Eraser,\r\n * });\r\n *\r\n * return (\r\n * <div style={style}>\r\n * <button onClick={() => setCursor('pen')}>Pen</button>\r\n * <button onClick={() => setCursor('eraser')}>Eraser</button>\r\n * </div>\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useCursors<T extends Record<string, CursorIcon>>(\r\n cursors: T,\r\n options: CursorBuilderOptions = {},\r\n): [CSSProperties, (name: keyof T | null) => void, Record<keyof T, string>] {\r\n const cursorMap = useMemo(\r\n () => buildCursors(cursors, options),\r\n [cursors, options.size, options.color, options.variant],\r\n );\r\n\r\n const [activeCursor, setActiveCursor] = useState<keyof T | null>(null);\r\n\r\n const style = useMemo(\r\n (): CSSProperties => ({\r\n cursor: activeCursor ? cursorMap[activeCursor] : 'auto',\r\n }),\r\n [activeCursor, cursorMap],\r\n );\r\n\r\n return [style, setActiveCursor, cursorMap];\r\n}\r\n\r\n/* ─── Prebuilt Cursor Sets ─── */\r\n\r\n/**\r\n * Configuration for a complete cursor theme\r\n */\r\nexport interface CursorTheme {\r\n default: string;\r\n pointer: string;\r\n text: string;\r\n wait: string;\r\n help: string;\r\n notAllowed: string;\r\n grab: string;\r\n grabbing: string;\r\n crosshair: string;\r\n move: string;\r\n resizeN: string;\r\n resizeS: string;\r\n resizeE: string;\r\n resizeW: string;\r\n resizeNE: string;\r\n resizeNW: string;\r\n resizeSE: string;\r\n resizeSW: string;\r\n resizeHorizontal: string;\r\n resizeVertical: string;\r\n}\r\n\r\n/**\r\n * Create a complete cursor theme from cursor icons.\r\n *\r\n * @param theme - Map of cursor type to icon component\r\n * @param options - Shared building options\r\n * @returns Complete cursor theme object\r\n *\r\n * @example\r\n * ```tsx\r\n * import * as cursors from '@nice2dev/icons-cursor';\r\n *\r\n * const theme = createCursorTheme({\r\n * default: cursors.Pointer,\r\n * pointer: cursors.PointerFinger,\r\n * text: cursors.TextCursor,\r\n * // ...\r\n * }, { size: 24 });\r\n *\r\n * // Apply to CSS\r\n * document.body.style.cursor = theme.default;\r\n * ```\r\n */\r\nexport function createCursorTheme(\r\n theme: Partial<Record<keyof CursorTheme, CursorIcon>>,\r\n options: CursorBuilderOptions = {},\r\n): Partial<CursorTheme> {\r\n const result: Partial<CursorTheme> = {};\r\n\r\n for (const [key, IconComponent] of Object.entries(theme)) {\r\n if (IconComponent) {\r\n result[key as keyof CursorTheme] = buildCursor(IconComponent, options).cursor;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/* ─── Utility: Apply Theme to Document ─── */\r\n\r\n/**\r\n * Apply a cursor theme to the document's CSS custom properties.\r\n * This allows using the cursors via CSS: `cursor: var(--cursor-pointer)`\r\n *\r\n * @param theme - Cursor theme to apply\r\n * @param prefix - CSS variable prefix (default: '--cursor')\r\n *\r\n * @example\r\n * ```tsx\r\n * const theme = createCursorTheme({ ... });\r\n * applyCursorTheme(theme);\r\n *\r\n * // In CSS:\r\n * // .button:hover { cursor: var(--cursor-pointer); }\r\n * ```\r\n */\r\nexport function applyCursorTheme(theme: Partial<CursorTheme>, prefix = '--cursor'): void {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n\r\n const root = document.documentElement;\r\n\r\n for (const [name, value] of Object.entries(theme)) {\r\n root.style.setProperty(`${prefix}-${name}`, value);\r\n }\r\n}\r\n","/**\r\n * @nice2dev/icons-cursor\r\n * Cursor and pointer icons for NiceToDev UI\r\n *\r\n * Provides 60 cursor-related icons organized into 4 categories:\r\n * - Pointers: Basic cursor shapes and resize handles (15 icons)\r\n * - Selection: Text/cell selection and drag cursors (15 icons)\r\n * - Tools: Drawing and editing tool cursors (15 icons)\r\n * - Status: System state indicators (15 icons)\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\n// Export types\r\nexport type {\r\n CursorIconProps,\r\n CursorIconAnimation,\r\n CursorIconVariant,\r\n CursorIcon,\r\n CursorIconName,\r\n PointerIconName,\r\n SelectionIconName,\r\n ToolIconName,\r\n StatusIconName,\r\n} from './types';\r\n\r\n// Export factory and utilities\r\nexport { createCursorIcon, getCursorAnimation } from './createCursorIcon';\r\n\r\n// Export cursor builder utilities\r\nexport {\r\n buildCursor,\r\n buildCursors,\r\n createCursorBuilder,\r\n generateCursorCSS,\r\n useCursor,\r\n useCursors,\r\n createCursorTheme,\r\n applyCursorTheme,\r\n getDefaultHotspot,\r\n DEFAULT_HOTSPOTS,\r\n} from './cursorBuilder';\r\n\r\nexport type {\r\n CursorHotspot,\r\n CursorBuilderOptions,\r\n CursorBuilderResult,\r\n CursorTheme,\r\n} from './cursorBuilder';\r\n\r\n// Export all icons by category with namespaces\r\nimport * as pointers from './pointers';\r\nimport * as selection from './selection';\r\nimport * as status from './status';\r\nimport * as tools from './tools';\r\n\r\nexport { pointers, selection, tools, status };\r\n\r\n// Re-export individual icons from each category\r\nexport {\r\n Pointer,\r\n PointerFinger,\r\n Crosshair,\r\n Move,\r\n ResizeN,\r\n ResizeS,\r\n ResizeE,\r\n ResizeW,\r\n ResizeNE,\r\n ResizeNW,\r\n ResizeSE,\r\n ResizeSW,\r\n ResizeHorizontal,\r\n ResizeVertical,\r\n ResizeAll,\r\n pointerIcons,\r\n} from './pointers';\r\n\r\nexport {\r\n TextCursor,\r\n TextSelect,\r\n CellSelection,\r\n ColumnSelect,\r\n RowSelect,\r\n RangeSelect,\r\n Grab,\r\n Grabbing,\r\n Drag,\r\n DragHandle,\r\n Lasso,\r\n MagicWand,\r\n SelectAll,\r\n Deselect,\r\n InvertSelection,\r\n selectionIcons,\r\n} from './selection';\r\n\r\nexport {\r\n ZoomIn,\r\n ZoomOut,\r\n Rotate,\r\n Pan,\r\n Draw,\r\n Brush,\r\n Eraser,\r\n Eyedropper,\r\n Bucket,\r\n Pen,\r\n Line,\r\n Rectangle,\r\n Ellipse,\r\n Polygon,\r\n Crop,\r\n toolIcons,\r\n} from './tools';\r\n\r\nexport {\r\n Wait,\r\n Progress,\r\n Forbidden,\r\n NotAllowed,\r\n Help,\r\n ContextMenu,\r\n Alias,\r\n Copy,\r\n NoDrop,\r\n Loading,\r\n Busy,\r\n Default,\r\n Auto,\r\n None,\r\n Inherit,\r\n statusIcons,\r\n} from './status';\r\n\r\n/**\r\n * All cursor icons in a single object\r\n */\r\nexport const allCursorIcons = {\r\n ...pointers.pointerIcons,\r\n ...selection.selectionIcons,\r\n ...tools.toolIcons,\r\n ...status.statusIcons,\r\n} as const;\r\n\r\n/**\r\n * Icon count by category\r\n */\r\nexport const CURSOR_ICON_COUNTS = {\r\n pointers: 15,\r\n selection: 15,\r\n tools: 15,\r\n status: 15,\r\n total: 60,\r\n} as const;\r\n"],"names":["createElement","useMemo","useState","pointers.pointerIcons","selection.selectionIcons","tools.toolIcons","status.statusIcons"],"mappings":"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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAG9C,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,MAAM,EACN,OAAO,EACP,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,MAAM,EACN,GAAG,EACH,IAAI,EACJ,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,EACJ,WAAW,EACX,KAAK,EACL,IAAI,EACJ,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAW,GACZ,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC"}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/cursorBuilder.tsx","../src/index.ts"],"sourcesContent":["/**\r\n * @file cursorBuilder.tsx\r\n * @description Utilities to convert cursor icons to CSS cursor values\r\n *\r\n * This module provides functions to transform SVG cursor icons into\r\n * usable CSS cursor definitions with customizable hotspots.\r\n */\r\n\r\nimport { createElement, useMemo, useState } from 'react';\r\nimport type { CSSProperties, FC, ReactNode } from 'react';\r\n\r\nimport type { CursorIcon, CursorIconProps } from './types';\r\n\r\n// Type for renderToStaticMarkup function\r\ntype RenderFn = (element: ReactNode) => string;\r\n\r\n// Lazy loaded renderer\r\nlet cachedRenderer: RenderFn | null = null;\r\n\r\n/**\r\n * Get the react-dom/server renderer.\r\n * Uses dynamic require for compatibility with bundlers.\r\n */\r\nfunction getRenderer(): RenderFn {\r\n if (cachedRenderer) {\r\n return cachedRenderer;\r\n }\r\n\r\n // Dynamic import at runtime\r\n // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n const reactDomServer = require('react-dom/server') as { renderToStaticMarkup: RenderFn };\r\n cachedRenderer = reactDomServer.renderToStaticMarkup;\r\n return cachedRenderer;\r\n}\r\n\r\n/* ─── Types ─── */\r\n\r\n/**\r\n * Cursor hotspot position (where the click is registered)\r\n */\r\nexport interface CursorHotspot {\r\n /** X coordinate of hotspot (0-based, measured from left) */\r\n x: number;\r\n /** Y coordinate of hotspot (0-based, measured from top) */\r\n y: number;\r\n}\r\n\r\n/**\r\n * Options for building a CSS cursor\r\n */\r\nexport interface CursorBuilderOptions {\r\n /** Icon size in pixels (default: 32) */\r\n size?: number;\r\n /** Icon color (default: #000) */\r\n color?: string;\r\n /** Secondary color for duotone variant */\r\n secondaryColor?: string;\r\n /** Hotspot position (default: { x: 0, y: 0 }) */\r\n hotspot?: CursorHotspot;\r\n /** Fallback CSS cursor value (default: 'auto') */\r\n fallback?: string;\r\n /** Icon variant */\r\n variant?: CursorIconProps['variant'];\r\n}\r\n\r\n/**\r\n * Result from building a cursor\r\n */\r\nexport interface CursorBuilderResult {\r\n /** The CSS cursor value (data URI + fallback) */\r\n cursor: string;\r\n /** The data URI only */\r\n dataUri: string;\r\n /** The hotspot used */\r\n hotspot: CursorHotspot;\r\n /** The size used */\r\n size: number;\r\n}\r\n\r\n/* ─── Default Hotspots ─── */\r\n\r\n/**\r\n * Default hotspot positions for common cursor types.\r\n * Values are normalized (0-1), will be multiplied by size.\r\n */\r\nexport const DEFAULT_HOTSPOTS: Record<string, CursorHotspot> = {\r\n // Pointer at tip (top-left)\r\n pointer: { x: 0, y: 0 },\r\n pointerFinger: { x: 0.35, y: 0 },\r\n\r\n // Crosshair at center\r\n crosshair: { x: 0.5, y: 0.5 },\r\n\r\n // Move cursor at center\r\n move: { x: 0.5, y: 0.5 },\r\n\r\n // Resize cursors at center\r\n resize: { x: 0.5, y: 0.5 },\r\n\r\n // Text cursor at center-bottom\r\n text: { x: 0.5, y: 0.9 },\r\n\r\n // Grab/grabbing at palm center\r\n grab: { x: 0.5, y: 0.4 },\r\n\r\n // Drawing tools at tool tip\r\n pen: { x: 0.1, y: 0.9 },\r\n brush: { x: 0.15, y: 0.85 },\r\n eraser: { x: 0.15, y: 0.85 },\r\n eyedropper: { x: 0.05, y: 0.95 },\r\n bucket: { x: 0.1, y: 0.85 },\r\n\r\n // Zoom at center of glass\r\n zoom: { x: 0.35, y: 0.35 },\r\n\r\n // Pan at center\r\n pan: { x: 0.5, y: 0.5 },\r\n\r\n // Default fallback\r\n default: { x: 0, y: 0 },\r\n};\r\n\r\n/**\r\n * Get normalized hotspot for an icon by name\r\n */\r\nexport function getDefaultHotspot(iconName: string): CursorHotspot {\r\n const name = iconName.toLowerCase();\r\n\r\n if (name.includes('pointer') || name.includes('finger')) {\r\n return name.includes('finger') ? DEFAULT_HOTSPOTS.pointerFinger : DEFAULT_HOTSPOTS.pointer;\r\n }\r\n if (name.includes('crosshair')) {\r\n return DEFAULT_HOTSPOTS.crosshair;\r\n }\r\n if (name.includes('move')) {\r\n return DEFAULT_HOTSPOTS.move;\r\n }\r\n if (name.includes('resize')) {\r\n return DEFAULT_HOTSPOTS.resize;\r\n }\r\n if (name.includes('text') || name.includes('cursor')) {\r\n return DEFAULT_HOTSPOTS.text;\r\n }\r\n if (name.includes('grab')) {\r\n return DEFAULT_HOTSPOTS.grab;\r\n }\r\n if (name.includes('pen') || name.includes('line')) {\r\n return DEFAULT_HOTSPOTS.pen;\r\n }\r\n if (name.includes('brush') || name.includes('draw')) {\r\n return DEFAULT_HOTSPOTS.brush;\r\n }\r\n if (name.includes('eraser')) {\r\n return DEFAULT_HOTSPOTS.eraser;\r\n }\r\n if (name.includes('eyedropper') || name.includes('picker')) {\r\n return DEFAULT_HOTSPOTS.eyedropper;\r\n }\r\n if (name.includes('bucket') || name.includes('fill')) {\r\n return DEFAULT_HOTSPOTS.bucket;\r\n }\r\n if (name.includes('zoom')) {\r\n return DEFAULT_HOTSPOTS.zoom;\r\n }\r\n if (name.includes('pan')) {\r\n return DEFAULT_HOTSPOTS.pan;\r\n }\r\n\r\n return DEFAULT_HOTSPOTS.default;\r\n}\r\n\r\n/* ─── Core Builder Function ─── */\r\n\r\n/**\r\n * Convert an SVG cursor icon to a CSS cursor value.\r\n *\r\n * @param IconComponent - The cursor icon React component\r\n * @param options - Cursor building options\r\n * @returns CSS cursor value with data URI and fallback\r\n *\r\n * @example\r\n * ```tsx\r\n * import { Pointer, buildCursor } from '@nice2dev/icons-cursor';\r\n *\r\n * const { cursor } = buildCursor(Pointer, {\r\n * size: 32,\r\n * color: '#333',\r\n * hotspot: { x: 0, y: 0 }\r\n * });\r\n *\r\n * // Use in styles\r\n * <div style={{ cursor }} />\r\n * ```\r\n */\r\nexport function buildCursor(\r\n IconComponent: CursorIcon,\r\n options: CursorBuilderOptions = {},\r\n): CursorBuilderResult {\r\n const {\r\n size = 32,\r\n color = '#000',\r\n secondaryColor,\r\n hotspot,\r\n fallback = 'auto',\r\n variant = 'filled',\r\n } = options;\r\n\r\n // Render the icon to static SVG markup\r\n const renderToMarkup = getRenderer();\r\n const element = createElement(IconComponent, {\r\n size,\r\n color,\r\n secondaryColor,\r\n variant,\r\n });\r\n const svgMarkup = renderToMarkup(element);\r\n\r\n // Convert to data URI (use base64 for better compatibility)\r\n const base64 =\r\n typeof btoa === 'function'\r\n ? btoa(unescape(encodeURIComponent(svgMarkup)))\r\n : Buffer.from(svgMarkup, 'utf8').toString('base64');\r\n\r\n const dataUri = `data:image/svg+xml;base64,${base64}`;\r\n\r\n // Calculate hotspot (use default based on component name if not provided)\r\n const componentName =\r\n (IconComponent as FC & { displayName?: string }).displayName || IconComponent.name || 'default';\r\n const normalizedHotspot = hotspot || getDefaultHotspot(componentName);\r\n const actualHotspot: CursorHotspot = {\r\n x: Math.round(normalizedHotspot.x * size),\r\n y: Math.round(normalizedHotspot.y * size),\r\n };\r\n\r\n // If hotspot was provided without normalization (values > 1), use as-is\r\n if (hotspot && (hotspot.x > 1 || hotspot.y > 1)) {\r\n actualHotspot.x = Math.round(hotspot.x);\r\n actualHotspot.y = Math.round(hotspot.y);\r\n }\r\n\r\n // Build the CSS cursor value\r\n const cursor = `url(${dataUri}) ${actualHotspot.x} ${actualHotspot.y}, ${fallback}`;\r\n\r\n return {\r\n cursor,\r\n dataUri,\r\n hotspot: actualHotspot,\r\n size,\r\n };\r\n}\r\n\r\n/**\r\n * Create a pre-configured cursor builder for a specific icon.\r\n *\r\n * @param IconComponent - The cursor icon React component\r\n * @returns Function that takes options and returns cursor CSS\r\n *\r\n * @example\r\n * ```tsx\r\n * const penCursor = createCursorBuilder(Pen);\r\n *\r\n * // Later use with different options\r\n * const cursor1 = penCursor({ color: 'red' });\r\n * const cursor2 = penCursor({ color: 'blue', size: 48 });\r\n * ```\r\n */\r\nexport function createCursorBuilder(\r\n IconComponent: CursorIcon,\r\n): (options?: CursorBuilderOptions) => CursorBuilderResult {\r\n return (options?: CursorBuilderOptions) => buildCursor(IconComponent, options);\r\n}\r\n\r\n/* ─── Batch Builder ─── */\r\n\r\n/**\r\n * Build multiple cursors at once with shared options.\r\n *\r\n * @param icons - Map of cursor names to icon components\r\n * @param sharedOptions - Options applied to all cursors\r\n * @returns Map of cursor names to their CSS values\r\n *\r\n * @example\r\n * ```tsx\r\n * const cursors = buildCursors({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * eraser: Eraser,\r\n * }, { size: 24, color: '#333' });\r\n *\r\n * // cursors.pointer => \"url(data:...) 0 0, auto\"\r\n * // cursors.pen => \"url(data:...) 2 22, auto\"\r\n * ```\r\n */\r\nexport function buildCursors<T extends Record<string, CursorIcon>>(\r\n icons: T,\r\n sharedOptions: CursorBuilderOptions = {},\r\n): Record<keyof T, string> {\r\n const result = {} as Record<keyof T, string>;\r\n\r\n for (const [name, IconComponent] of Object.entries(icons)) {\r\n result[name as keyof T] = buildCursor(IconComponent, sharedOptions).cursor;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/* ─── CSS Custom Property Generator ─── */\r\n\r\n/**\r\n * Generate CSS custom properties for cursor icons.\r\n * Useful for defining cursors once and using them via CSS variables.\r\n *\r\n * @param icons - Map of cursor names to icon components\r\n * @param options - Cursor building options\r\n * @param prefix - CSS variable prefix (default: '--cursor')\r\n * @returns CSS string with custom property definitions\r\n *\r\n * @example\r\n * ```tsx\r\n * const css = generateCursorCSS({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * });\r\n *\r\n * // Returns:\r\n * // :root {\r\n * // --cursor-pointer: url(data:...) 0 0, auto;\r\n * // --cursor-pen: url(data:...) 2 22, auto;\r\n * // }\r\n * ```\r\n */\r\nexport function generateCursorCSS<T extends Record<string, CursorIcon>>(\r\n icons: T,\r\n options: CursorBuilderOptions = {},\r\n prefix = '--cursor',\r\n): string {\r\n const cursors = buildCursors(icons, options);\r\n const properties = Object.entries(cursors)\r\n .map(([name, value]) => ` ${prefix}-${name}: ${value};`)\r\n .join('\\n');\r\n\r\n return `:root {\\n${properties}\\n}`;\r\n}\r\n\r\n/* ─── React Hook ─── */\r\n\r\n/**\r\n * Hook to apply a custom cursor to an element.\r\n * Returns style object and handlers for dynamic cursor changes.\r\n *\r\n * @param IconComponent - The cursor icon component\r\n * @param options - Cursor building options\r\n * @returns Style object with cursor property\r\n *\r\n * @example\r\n * ```tsx\r\n * function Canvas() {\r\n * const cursorStyle = useCursor(Pen, { color: 'blue' });\r\n *\r\n * return <div style={cursorStyle}>Draw here</div>;\r\n * }\r\n * ```\r\n */\r\nexport function useCursor(\r\n IconComponent: CursorIcon | null,\r\n options: CursorBuilderOptions = {},\r\n): CSSProperties {\r\n const cursor = useMemo(() => {\r\n if (!IconComponent) {\r\n return 'auto';\r\n }\r\n return buildCursor(IconComponent, options).cursor;\r\n }, [\r\n IconComponent,\r\n options.size,\r\n options.color,\r\n options.hotspot?.x,\r\n options.hotspot?.y,\r\n options.fallback,\r\n options.variant,\r\n options.secondaryColor,\r\n ]);\r\n\r\n return { cursor };\r\n}\r\n\r\n/**\r\n * Hook to manage multiple cursors with easy switching.\r\n *\r\n * @param cursors - Map of cursor names to icon components\r\n * @param options - Shared cursor building options\r\n * @returns Tuple of [currentStyle, setCursor, cursorMap]\r\n *\r\n * @example\r\n * ```tsx\r\n * function Editor() {\r\n * const [style, setCursor, cursors] = useCursors({\r\n * pointer: Pointer,\r\n * pen: Pen,\r\n * eraser: Eraser,\r\n * });\r\n *\r\n * return (\r\n * <div style={style}>\r\n * <button onClick={() => setCursor('pen')}>Pen</button>\r\n * <button onClick={() => setCursor('eraser')}>Eraser</button>\r\n * </div>\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useCursors<T extends Record<string, CursorIcon>>(\r\n cursors: T,\r\n options: CursorBuilderOptions = {},\r\n): [CSSProperties, (name: keyof T | null) => void, Record<keyof T, string>] {\r\n const cursorMap = useMemo(\r\n () => buildCursors(cursors, options),\r\n [cursors, options.size, options.color, options.variant],\r\n );\r\n\r\n const [activeCursor, setActiveCursor] = useState<keyof T | null>(null);\r\n\r\n const style = useMemo(\r\n (): CSSProperties => ({\r\n cursor: activeCursor ? cursorMap[activeCursor] : 'auto',\r\n }),\r\n [activeCursor, cursorMap],\r\n );\r\n\r\n return [style, setActiveCursor, cursorMap];\r\n}\r\n\r\n/* ─── Prebuilt Cursor Sets ─── */\r\n\r\n/**\r\n * Configuration for a complete cursor theme\r\n */\r\nexport interface CursorTheme {\r\n default: string;\r\n pointer: string;\r\n text: string;\r\n wait: string;\r\n help: string;\r\n notAllowed: string;\r\n grab: string;\r\n grabbing: string;\r\n crosshair: string;\r\n move: string;\r\n resizeN: string;\r\n resizeS: string;\r\n resizeE: string;\r\n resizeW: string;\r\n resizeNE: string;\r\n resizeNW: string;\r\n resizeSE: string;\r\n resizeSW: string;\r\n resizeHorizontal: string;\r\n resizeVertical: string;\r\n}\r\n\r\n/**\r\n * Create a complete cursor theme from cursor icons.\r\n *\r\n * @param theme - Map of cursor type to icon component\r\n * @param options - Shared building options\r\n * @returns Complete cursor theme object\r\n *\r\n * @example\r\n * ```tsx\r\n * import * as cursors from '@nice2dev/icons-cursor';\r\n *\r\n * const theme = createCursorTheme({\r\n * default: cursors.Pointer,\r\n * pointer: cursors.PointerFinger,\r\n * text: cursors.TextCursor,\r\n * // ...\r\n * }, { size: 24 });\r\n *\r\n * // Apply to CSS\r\n * document.body.style.cursor = theme.default;\r\n * ```\r\n */\r\nexport function createCursorTheme(\r\n theme: Partial<Record<keyof CursorTheme, CursorIcon>>,\r\n options: CursorBuilderOptions = {},\r\n): Partial<CursorTheme> {\r\n const result: Partial<CursorTheme> = {};\r\n\r\n for (const [key, IconComponent] of Object.entries(theme)) {\r\n if (IconComponent) {\r\n result[key as keyof CursorTheme] = buildCursor(IconComponent, options).cursor;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/* ─── Utility: Apply Theme to Document ─── */\r\n\r\n/**\r\n * Apply a cursor theme to the document's CSS custom properties.\r\n * This allows using the cursors via CSS: `cursor: var(--cursor-pointer)`\r\n *\r\n * @param theme - Cursor theme to apply\r\n * @param prefix - CSS variable prefix (default: '--cursor')\r\n *\r\n * @example\r\n * ```tsx\r\n * const theme = createCursorTheme({ ... });\r\n * applyCursorTheme(theme);\r\n *\r\n * // In CSS:\r\n * // .button:hover { cursor: var(--cursor-pointer); }\r\n * ```\r\n */\r\nexport function applyCursorTheme(theme: Partial<CursorTheme>, prefix = '--cursor'): void {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n\r\n const root = document.documentElement;\r\n\r\n for (const [name, value] of Object.entries(theme)) {\r\n root.style.setProperty(`${prefix}-${name}`, value);\r\n }\r\n}\r\n","/**\r\n * @nice2dev/icons-cursor\r\n * Cursor and pointer icons for NiceToDev UI\r\n *\r\n * Provides 60 cursor-related icons organized into 4 categories:\r\n * - Pointers: Basic cursor shapes and resize handles (15 icons)\r\n * - Selection: Text/cell selection and drag cursors (15 icons)\r\n * - Tools: Drawing and editing tool cursors (15 icons)\r\n * - Status: System state indicators (15 icons)\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\n// Export types\r\nexport type {\r\n CursorIconProps,\r\n CursorIconAnimation,\r\n CursorIconVariant,\r\n CursorIcon,\r\n CursorIconName,\r\n PointerIconName,\r\n SelectionIconName,\r\n ToolIconName,\r\n StatusIconName,\r\n} from './types';\r\n\r\n// Export factory and utilities\r\nexport { createCursorIcon, getCursorAnimation } from './createCursorIcon';\r\n\r\n// Export cursor builder utilities\r\nexport {\r\n buildCursor,\r\n buildCursors,\r\n createCursorBuilder,\r\n generateCursorCSS,\r\n useCursor,\r\n useCursors,\r\n createCursorTheme,\r\n applyCursorTheme,\r\n getDefaultHotspot,\r\n DEFAULT_HOTSPOTS,\r\n} from './cursorBuilder';\r\n\r\nexport type {\r\n CursorHotspot,\r\n CursorBuilderOptions,\r\n CursorBuilderResult,\r\n CursorTheme,\r\n} from './cursorBuilder';\r\n\r\n// Export all icons by category with namespaces\r\nimport * as pointers from './pointers';\r\nimport * as selection from './selection';\r\nimport * as status from './status';\r\nimport * as tools from './tools';\r\n\r\nexport { pointers, selection, tools, status };\r\n\r\n// Re-export individual icons from each category\r\nexport {\r\n Pointer,\r\n PointerFinger,\r\n Crosshair,\r\n Move,\r\n ResizeN,\r\n ResizeS,\r\n ResizeE,\r\n ResizeW,\r\n ResizeNE,\r\n ResizeNW,\r\n ResizeSE,\r\n ResizeSW,\r\n ResizeHorizontal,\r\n ResizeVertical,\r\n ResizeAll,\r\n pointerIcons,\r\n} from './pointers';\r\n\r\nexport {\r\n TextCursor,\r\n TextSelect,\r\n CellSelection,\r\n ColumnSelect,\r\n RowSelect,\r\n RangeSelect,\r\n Grab,\r\n Grabbing,\r\n Drag,\r\n DragHandle,\r\n Lasso,\r\n MagicWand,\r\n SelectAll,\r\n Deselect,\r\n InvertSelection,\r\n selectionIcons,\r\n} from './selection';\r\n\r\nexport {\r\n ZoomIn,\r\n ZoomOut,\r\n Rotate,\r\n Pan,\r\n Draw,\r\n Brush,\r\n Eraser,\r\n Eyedropper,\r\n Bucket,\r\n Pen,\r\n Line,\r\n Rectangle,\r\n Ellipse,\r\n Polygon,\r\n Crop,\r\n toolIcons,\r\n} from './tools';\r\n\r\nexport {\r\n Wait,\r\n Progress,\r\n Forbidden,\r\n NotAllowed,\r\n Help,\r\n ContextMenu,\r\n Alias,\r\n Copy,\r\n NoDrop,\r\n Loading,\r\n Busy,\r\n Default,\r\n Auto,\r\n None,\r\n Inherit,\r\n statusIcons,\r\n} from './status';\r\n\r\n/**\r\n * All cursor icons in a single object\r\n */\r\nexport const allCursorIcons = {\r\n ...pointers.pointerIcons,\r\n ...selection.selectionIcons,\r\n ...tools.toolIcons,\r\n ...status.statusIcons,\r\n} as const;\r\n\r\n/**\r\n * Icon count by category\r\n */\r\nexport const CURSOR_ICON_COUNTS = {\r\n pointers: 15,\r\n selection: 15,\r\n tools: 15,\r\n status: 15,\r\n total: 60,\r\n} as const;\r\n"],"names":["pointers.pointerIcons","selection.selectionIcons","tools.toolIcons","status.statusIcons"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointers-DW_cbtGT.mjs","sources":["../src/pointers.tsx"],"sourcesContent":["/**\r\n * Pointer and basic cursor icons\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Standard pointer cursor (arrow)\r\nexport const Pointer = createCursorIcon('Pointer', 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21z');\r\n\r\n// Pointing finger / hand cursor\r\nexport const PointerFinger = createCursorIcon(\r\n 'PointerFinger',\r\n 'M10 7V4a2 2 0 1 1 4 0v3m-4 0h4m-4 0v4m4-4v4m-4 4v-4m4 0v4m-4 0h4m-4 0H8a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2h-4m-4 4H6',\r\n);\r\n\r\n// Crosshair / precision cursor\r\nexport const Crosshair = createCursorIcon(\r\n 'Crosshair',\r\n 'M12 2v4m0 12v4m10-10h-4M6 12H2m10 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z',\r\n);\r\n\r\n// Move cursor (4-directional)\r\nexport const Move = createCursorIcon(\r\n 'Move',\r\n 'M12 2v20m10-10H2m10-8l-3 3m3-3l3 3m-3 17l-3-3m3 3l3-3m5-7l-3-3m3 3l-3 3M5 12l3-3m-3 3l3 3',\r\n);\r\n\r\n// Resize North\r\nexport const ResizeN = createCursorIcon('ResizeN', 'M12 4v16m-4-12l4-4 4 4');\r\n\r\n// Resize South\r\nexport const ResizeS = createCursorIcon('ResizeS', 'M12 4v16m-4-4l4 4 4-4');\r\n\r\n// Resize East\r\nexport const ResizeE = createCursorIcon('ResizeE', 'M4 12h16m-4-4l4 4-4 4');\r\n\r\n// Resize West\r\nexport const ResizeW = createCursorIcon('ResizeW', 'M4 12h16M8 8l-4 4 4 4');\r\n\r\n// Resize Northeast\r\nexport const ResizeNE = createCursorIcon('ResizeNE', 'M7 17L17 7m0 0h-7m7 0v7');\r\n\r\n// Resize Northwest\r\nexport const ResizeNW = createCursorIcon('ResizeNW', 'M17 17L7 7m0 0h7M7 7v7');\r\n\r\n// Resize Southeast\r\nexport const ResizeSE = createCursorIcon('ResizeSE', 'M7 7l10 10m0 0h-7m7 0v-7');\r\n\r\n// Resize Southwest\r\nexport const ResizeSW = createCursorIcon('ResizeSW', 'M17 7L7 17m0 0h7M7 17v-7');\r\n\r\n// Resize Horizontal (East-West)\r\nexport const ResizeHorizontal = createCursorIcon(\r\n 'ResizeHorizontal',\r\n 'M4 12h16M8 8l-4 4 4 4m8-8l4 4-4 4',\r\n);\r\n\r\n// Resize Vertical (North-South)\r\nexport const ResizeVertical = createCursorIcon(\r\n 'ResizeVertical',\r\n 'M12 4v16m-4-12l4-4 4 4m-8 8l4 4 4-4',\r\n);\r\n\r\n// Resize All (omnidirectional)\r\nexport const ResizeAll = createCursorIcon(\r\n 'ResizeAll',\r\n 'M12 2v20m10-10H2m10-8l-3 3m6 0l-3-3m0 16l3-3m-6 0l3 3m5-7l-3-3m0 6l3-3M5 9l3 3m-3 0l3-3',\r\n);\r\n\r\n/**\r\n * All pointer icons grouped for export\r\n */\r\nexport const pointerIcons = {\r\n Pointer,\r\n PointerFinger,\r\n Crosshair,\r\n Move,\r\n ResizeN,\r\n ResizeS,\r\n ResizeE,\r\n ResizeW,\r\n ResizeNE,\r\n ResizeNW,\r\n ResizeSE,\r\n ResizeSW,\r\n ResizeHorizontal,\r\n ResizeVertical,\r\n ResizeAll,\r\n} as const;\r\n"],"names":[],"mappings":";AAOO,MAAM,UAAU,iBAAiB,WAAW,yCAAyC;AAGrF,MAAM,gBAAgB;AAAA,EAC3B;AAAA,EACA;AACF;AAGO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,UAAU,iBAAiB,WAAW,wBAAwB;AAGpE,MAAM,UAAU,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,UAAU,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,UAAU,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,WAAW,iBAAiB,YAAY,yBAAyB;AAGvE,MAAM,WAAW,iBAAiB,YAAY,wBAAwB;AAGtE,MAAM,WAAW,iBAAiB,YAAY,0BAA0B;AAGxE,MAAM,WAAW,iBAAiB,YAAY,0BAA0B;AAGxE,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AACF;AAGO,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AACF;AAGO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAKO,MAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointers-DxPqgPxN.js","sources":["../src/pointers.tsx"],"sourcesContent":["/**\r\n * Pointer and basic cursor icons\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Standard pointer cursor (arrow)\r\nexport const Pointer = createCursorIcon('Pointer', 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21z');\r\n\r\n// Pointing finger / hand cursor\r\nexport const PointerFinger = createCursorIcon(\r\n 'PointerFinger',\r\n 'M10 7V4a2 2 0 1 1 4 0v3m-4 0h4m-4 0v4m4-4v4m-4 4v-4m4 0v4m-4 0h4m-4 0H8a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2h-4m-4 4H6',\r\n);\r\n\r\n// Crosshair / precision cursor\r\nexport const Crosshair = createCursorIcon(\r\n 'Crosshair',\r\n 'M12 2v4m0 12v4m10-10h-4M6 12H2m10 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z',\r\n);\r\n\r\n// Move cursor (4-directional)\r\nexport const Move = createCursorIcon(\r\n 'Move',\r\n 'M12 2v20m10-10H2m10-8l-3 3m3-3l3 3m-3 17l-3-3m3 3l3-3m5-7l-3-3m3 3l-3 3M5 12l3-3m-3 3l3 3',\r\n);\r\n\r\n// Resize North\r\nexport const ResizeN = createCursorIcon('ResizeN', 'M12 4v16m-4-12l4-4 4 4');\r\n\r\n// Resize South\r\nexport const ResizeS = createCursorIcon('ResizeS', 'M12 4v16m-4-4l4 4 4-4');\r\n\r\n// Resize East\r\nexport const ResizeE = createCursorIcon('ResizeE', 'M4 12h16m-4-4l4 4-4 4');\r\n\r\n// Resize West\r\nexport const ResizeW = createCursorIcon('ResizeW', 'M4 12h16M8 8l-4 4 4 4');\r\n\r\n// Resize Northeast\r\nexport const ResizeNE = createCursorIcon('ResizeNE', 'M7 17L17 7m0 0h-7m7 0v7');\r\n\r\n// Resize Northwest\r\nexport const ResizeNW = createCursorIcon('ResizeNW', 'M17 17L7 7m0 0h7M7 7v7');\r\n\r\n// Resize Southeast\r\nexport const ResizeSE = createCursorIcon('ResizeSE', 'M7 7l10 10m0 0h-7m7 0v-7');\r\n\r\n// Resize Southwest\r\nexport const ResizeSW = createCursorIcon('ResizeSW', 'M17 7L7 17m0 0h7M7 17v-7');\r\n\r\n// Resize Horizontal (East-West)\r\nexport const ResizeHorizontal = createCursorIcon(\r\n 'ResizeHorizontal',\r\n 'M4 12h16M8 8l-4 4 4 4m8-8l4 4-4 4',\r\n);\r\n\r\n// Resize Vertical (North-South)\r\nexport const ResizeVertical = createCursorIcon(\r\n 'ResizeVertical',\r\n 'M12 4v16m-4-12l4-4 4 4m-8 8l4 4 4-4',\r\n);\r\n\r\n// Resize All (omnidirectional)\r\nexport const ResizeAll = createCursorIcon(\r\n 'ResizeAll',\r\n 'M12 2v20m10-10H2m10-8l-3 3m6 0l-3-3m0 16l3-3m-6 0l3 3m5-7l-3-3m0 6l3-3M5 9l3 3m-3 0l3-3',\r\n);\r\n\r\n/**\r\n * All pointer icons grouped for export\r\n */\r\nexport const pointerIcons = {\r\n Pointer,\r\n PointerFinger,\r\n Crosshair,\r\n Move,\r\n ResizeN,\r\n ResizeS,\r\n ResizeE,\r\n ResizeW,\r\n ResizeNE,\r\n ResizeNW,\r\n ResizeSE,\r\n ResizeSW,\r\n ResizeHorizontal,\r\n ResizeVertical,\r\n ResizeAll,\r\n} as const;\r\n"],"names":["createCursorIcon"],"mappings":";;AAOO,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,yCAAyC;AAGrF,MAAM,gBAAgBA,iBAAAA;AAAAA,EAC3B;AAAA,EACA;AACF;AAGO,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,wBAAwB;AAGpE,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,uBAAuB;AAGnE,MAAM,WAAWA,iBAAAA,iBAAiB,YAAY,yBAAyB;AAGvE,MAAM,WAAWA,iBAAAA,iBAAiB,YAAY,wBAAwB;AAGtE,MAAM,WAAWA,iBAAAA,iBAAiB,YAAY,0BAA0B;AAGxE,MAAM,WAAWA,iBAAAA,iBAAiB,YAAY,0BAA0B;AAGxE,MAAM,mBAAmBA,iBAAAA;AAAAA,EAC9B;AAAA,EACA;AACF;AAGO,MAAM,iBAAiBA,iBAAAA;AAAAA,EAC5B;AAAA,EACA;AACF;AAGO,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAKO,MAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/pointers.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointers.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
package/dist/pointers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointers.d.ts","sourceRoot":"","sources":["../src/pointers.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,8BAAyE,CAAC;AAG9F,eAAO,MAAM,aAAa,8BAGzB,CAAC;AAGF,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,OAAO,8BAAwD,CAAC;AAG7E,eAAO,MAAM,OAAO,8BAAuD,CAAC;AAG5E,eAAO,MAAM,OAAO,8BAAuD,CAAC;AAG5E,eAAO,MAAM,OAAO,8BAAuD,CAAC;AAG5E,eAAO,MAAM,QAAQ,8BAA0D,CAAC;AAGhF,eAAO,MAAM,QAAQ,8BAAyD,CAAC;AAG/E,eAAO,MAAM,QAAQ,8BAA2D,CAAC;AAGjF,eAAO,MAAM,QAAQ,8BAA2D,CAAC;AAGjF,eAAO,MAAM,gBAAgB,8BAG5B,CAAC;AAGF,eAAO,MAAM,cAAc,8BAG1B,CAAC;AAGF,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAgBf,CAAC"}
|
package/dist/pointers.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointers.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection-CINU3bsI.js","sources":["../src/selection.tsx"],"sourcesContent":["/**\r\n * Selection and text cursor icons\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Text cursor (I-beam)\r\nexport const TextCursor = createCursorIcon(\r\n 'TextCursor',\r\n 'M9 4h1a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H9m6-16h-1a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h1M12 7v10',\r\n);\r\n\r\n// Text select cursor\r\nexport const TextSelect = createCursorIcon(\r\n 'TextSelect',\r\n 'M9 4h6M9 20h6m-3-16v16M6 4h3M6 20h3m9-16h-3m3 16h-3',\r\n);\r\n\r\n// Cell selection (spreadsheet)\r\nexport const CellSelection = createCursorIcon('CellSelection', 'M3 3h18v18H3V3zm6 6h6v6H9V9z');\r\n\r\n// Column select\r\nexport const ColumnSelect = createCursorIcon('ColumnSelect', 'M9 3v18m6-18v18M9 3h6M9 21h6');\r\n\r\n// Row select\r\nexport const RowSelect = createCursorIcon('RowSelect', 'M3 9h18M3 15h18M3 9v6m18-6v6');\r\n\r\n// Range select\r\nexport const RangeSelect = createCursorIcon('RangeSelect', 'M5 5h14v14H5V5zm2 2v10h10V7H7z');\r\n\r\n// Grab cursor (open hand)\r\nexport const Grab = createCursorIcon(\r\n 'Grab',\r\n 'M8 14V7.5a1.5 1.5 0 0 1 3 0V12m-3 2V7.5a1.5 1.5 0 0 1 3 0V12m0 0V6.5a1.5 1.5 0 0 1 3 0V12m0 0V7.5a1.5 1.5 0 0 1 3 0V14a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5v-3.5a1.5 1.5 0 0 1 3 0V14',\r\n);\r\n\r\n// Grabbing cursor (closed hand)\r\nexport const Grabbing = createCursorIcon(\r\n 'Grabbing',\r\n 'M8 15V9a1.5 1.5 0 0 1 3 0v4m-3 2V9a1.5 1.5 0 0 1 3 0v6m0 0V8a1.5 1.5 0 0 1 3 0v7m0 0V9a1.5 1.5 0 0 1 3 0v6a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V9a1.5 1.5 0 0 1 3 0v6',\r\n);\r\n\r\n// Drag cursor\r\nexport const Drag = createCursorIcon('Drag', 'M12 2v8m0 4v8m-4-4l4 4 4-4m-8-8l4-4 4 4');\r\n\r\n// Drag handle (6 dots)\r\nexport const DragHandle = createCursorIcon(\r\n 'DragHandle',\r\n 'M9 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM9 11a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM9 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z',\r\n);\r\n\r\n// Lasso selection\r\nexport const Lasso = createCursorIcon(\r\n 'Lasso',\r\n 'M7 17c-2.5-2-4-5.5-4-8a9 9 0 0 1 18 0c0 4-3 7-6.5 7S10 13.5 10 10a4.5 4.5 0 0 1 9 0c0 2-1.5 3-3 3s-3-1-3-3m-6 7l4 4',\r\n);\r\n\r\n// Magic wand selection\r\nexport const MagicWand = createCursorIcon(\r\n 'MagicWand',\r\n 'M15 4V2m4.5 3.5L21 4M4 15l2-2m2.5-4.5L7 7l1.5 1.5L10 7l2 2-1.5 1.5L12 12l-2-2zM9 9l8.5 8.5a2.12 2.12 0 0 0 3-3L12 6l-3 3z',\r\n);\r\n\r\n// Select all\r\nexport const SelectAll = createCursorIcon(\r\n 'SelectAll',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm4 4h10v6H7V9zm2 2v2h6v-2H9z',\r\n);\r\n\r\n// Deselect\r\nexport const Deselect = createCursorIcon(\r\n 'Deselect',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm18 0L3 19M3 5l18 14',\r\n);\r\n\r\n// Invert selection\r\nexport const InvertSelection = createCursorIcon(\r\n 'InvertSelection',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm9 0v18m0-18L3 12l9 9',\r\n);\r\n\r\n/**\r\n * All selection icons grouped for export\r\n */\r\nexport const selectionIcons = {\r\n TextCursor,\r\n TextSelect,\r\n CellSelection,\r\n ColumnSelect,\r\n RowSelect,\r\n RangeSelect,\r\n Grab,\r\n Grabbing,\r\n Drag,\r\n DragHandle,\r\n Lasso,\r\n MagicWand,\r\n SelectAll,\r\n Deselect,\r\n InvertSelection,\r\n} as const;\r\n"],"names":["createCursorIcon"],"mappings":";;AAOO,MAAM,aAAaA,iBAAAA;AAAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,aAAaA,iBAAAA;AAAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,gBAAgBA,iBAAAA,iBAAiB,iBAAiB,8BAA8B;AAGtF,MAAM,eAAeA,iBAAAA,iBAAiB,gBAAgB,8BAA8B;AAGpF,MAAM,YAAYA,iBAAAA,iBAAiB,aAAa,8BAA8B;AAG9E,MAAM,cAAcA,iBAAAA,iBAAiB,eAAe,gCAAgC;AAGpF,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,WAAWA,iBAAAA;AAAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA,iBAAiB,QAAQ,yCAAyC;AAG/E,MAAM,aAAaA,iBAAAA;AAAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,QAAQA,iBAAAA;AAAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,WAAWA,iBAAAA;AAAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,kBAAkBA,iBAAAA;AAAAA,EAC7B;AAAA,EACA;AACF;AAKO,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection-W-1ZhqSv.mjs","sources":["../src/selection.tsx"],"sourcesContent":["/**\r\n * Selection and text cursor icons\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Text cursor (I-beam)\r\nexport const TextCursor = createCursorIcon(\r\n 'TextCursor',\r\n 'M9 4h1a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H9m6-16h-1a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h1M12 7v10',\r\n);\r\n\r\n// Text select cursor\r\nexport const TextSelect = createCursorIcon(\r\n 'TextSelect',\r\n 'M9 4h6M9 20h6m-3-16v16M6 4h3M6 20h3m9-16h-3m3 16h-3',\r\n);\r\n\r\n// Cell selection (spreadsheet)\r\nexport const CellSelection = createCursorIcon('CellSelection', 'M3 3h18v18H3V3zm6 6h6v6H9V9z');\r\n\r\n// Column select\r\nexport const ColumnSelect = createCursorIcon('ColumnSelect', 'M9 3v18m6-18v18M9 3h6M9 21h6');\r\n\r\n// Row select\r\nexport const RowSelect = createCursorIcon('RowSelect', 'M3 9h18M3 15h18M3 9v6m18-6v6');\r\n\r\n// Range select\r\nexport const RangeSelect = createCursorIcon('RangeSelect', 'M5 5h14v14H5V5zm2 2v10h10V7H7z');\r\n\r\n// Grab cursor (open hand)\r\nexport const Grab = createCursorIcon(\r\n 'Grab',\r\n 'M8 14V7.5a1.5 1.5 0 0 1 3 0V12m-3 2V7.5a1.5 1.5 0 0 1 3 0V12m0 0V6.5a1.5 1.5 0 0 1 3 0V12m0 0V7.5a1.5 1.5 0 0 1 3 0V14a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5v-3.5a1.5 1.5 0 0 1 3 0V14',\r\n);\r\n\r\n// Grabbing cursor (closed hand)\r\nexport const Grabbing = createCursorIcon(\r\n 'Grabbing',\r\n 'M8 15V9a1.5 1.5 0 0 1 3 0v4m-3 2V9a1.5 1.5 0 0 1 3 0v6m0 0V8a1.5 1.5 0 0 1 3 0v7m0 0V9a1.5 1.5 0 0 1 3 0v6a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V9a1.5 1.5 0 0 1 3 0v6',\r\n);\r\n\r\n// Drag cursor\r\nexport const Drag = createCursorIcon('Drag', 'M12 2v8m0 4v8m-4-4l4 4 4-4m-8-8l4-4 4 4');\r\n\r\n// Drag handle (6 dots)\r\nexport const DragHandle = createCursorIcon(\r\n 'DragHandle',\r\n 'M9 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM9 11a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM9 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z',\r\n);\r\n\r\n// Lasso selection\r\nexport const Lasso = createCursorIcon(\r\n 'Lasso',\r\n 'M7 17c-2.5-2-4-5.5-4-8a9 9 0 0 1 18 0c0 4-3 7-6.5 7S10 13.5 10 10a4.5 4.5 0 0 1 9 0c0 2-1.5 3-3 3s-3-1-3-3m-6 7l4 4',\r\n);\r\n\r\n// Magic wand selection\r\nexport const MagicWand = createCursorIcon(\r\n 'MagicWand',\r\n 'M15 4V2m4.5 3.5L21 4M4 15l2-2m2.5-4.5L7 7l1.5 1.5L10 7l2 2-1.5 1.5L12 12l-2-2zM9 9l8.5 8.5a2.12 2.12 0 0 0 3-3L12 6l-3 3z',\r\n);\r\n\r\n// Select all\r\nexport const SelectAll = createCursorIcon(\r\n 'SelectAll',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm4 4h10v6H7V9zm2 2v2h6v-2H9z',\r\n);\r\n\r\n// Deselect\r\nexport const Deselect = createCursorIcon(\r\n 'Deselect',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm18 0L3 19M3 5l18 14',\r\n);\r\n\r\n// Invert selection\r\nexport const InvertSelection = createCursorIcon(\r\n 'InvertSelection',\r\n 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm9 0v18m0-18L3 12l9 9',\r\n);\r\n\r\n/**\r\n * All selection icons grouped for export\r\n */\r\nexport const selectionIcons = {\r\n TextCursor,\r\n TextSelect,\r\n CellSelection,\r\n ColumnSelect,\r\n RowSelect,\r\n RangeSelect,\r\n Grab,\r\n Grabbing,\r\n Drag,\r\n DragHandle,\r\n Lasso,\r\n MagicWand,\r\n SelectAll,\r\n Deselect,\r\n InvertSelection,\r\n} as const;\r\n"],"names":[],"mappings":";AAOO,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,gBAAgB,iBAAiB,iBAAiB,8BAA8B;AAGtF,MAAM,eAAe,iBAAiB,gBAAgB,8BAA8B;AAGpF,MAAM,YAAY,iBAAiB,aAAa,8BAA8B;AAG9E,MAAM,cAAc,iBAAiB,eAAe,gCAAgC;AAGpF,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,WAAW;AAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,OAAO,iBAAiB,QAAQ,yCAAyC;AAG/E,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,QAAQ;AAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,WAAW;AAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AACF;AAKO,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/selection.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
package/dist/selection.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,8BAGtB,CAAC;AAGF,eAAO,MAAM,UAAU,8BAGtB,CAAC;AAGF,eAAO,MAAM,aAAa,8BAAoE,CAAC;AAG/F,eAAO,MAAM,YAAY,8BAAmE,CAAC;AAG7F,eAAO,MAAM,SAAS,8BAAgE,CAAC;AAGvF,eAAO,MAAM,WAAW,8BAAoE,CAAC;AAG7F,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,QAAQ,8BAGpB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAAsE,CAAC;AAGxF,eAAO,MAAM,UAAU,8BAGtB,CAAC;AAGF,eAAO,MAAM,KAAK,8BAGjB,CAAC;AAGF,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAGF,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAGF,eAAO,MAAM,QAAQ,8BAGpB,CAAC;AAGF,eAAO,MAAM,eAAe,8BAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;CAgBjB,CAAC"}
|
package/dist/selection.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-BBrDqBw_.mjs","sources":["../src/status.tsx"],"sourcesContent":["/**\r\n * Status cursor icons for system states\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Wait cursor (hourglass)\r\nexport const Wait = createCursorIcon(\r\n 'Wait',\r\n 'M6 2h12v4l-4 4 4 4v4H6v-4l4-4-4-4V2zm2 2v2l4 4-4 4v2h8v-2l-4-4 4-4V4H8z',\r\n);\r\n\r\n// Progress cursor (loading circle)\r\nexport const Progress = createCursorIcon(\r\n 'Progress',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 2a8 8 0 1 1 0 16V4z',\r\n);\r\n\r\n// Forbidden / not allowed\r\nexport const Forbidden = createCursorIcon(\r\n 'Forbidden',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5.93 7.34l10.73 10.73A8 8 0 0 1 5.93 7.34zm12.14-.68L7.34 17.39A8 8 0 0 1 18.07 6.66z',\r\n);\r\n\r\n// Not allowed (circle with line)\r\nexport const NotAllowed = createCursorIcon(\r\n 'NotAllowed',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-7 10a7 7 0 0 1 11.95-4.95L6.05 17.95A6.97 6.97 0 0 1 5 12zm7 7c-1.87 0-3.56-.74-4.81-1.93L17.93 7.33A6.97 6.97 0 0 1 19 12c0 3.87-3.13 7-7 7z',\r\n);\r\n\r\n// Help cursor (question mark)\r\nexport const Help = createCursorIcon(\r\n 'Help',\r\n 'M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm0-15a3 3 0 0 0-3 3h2a1 1 0 1 1 2 0c0 1-1.5 1.5-1.5 3h2c0-1.5 1.5-2 1.5-3a3 3 0 0 0-3-3zm-1 7h2v2h-2v-2z',\r\n);\r\n\r\n// Context menu\r\nexport const ContextMenu = createCursorIcon(\r\n 'ContextMenu',\r\n 'M4 4h16v16H4V4zm2 4h12m-12 4h12m-12 4h8',\r\n);\r\n\r\n// Alias (shortcut arrow)\r\nexport const Alias = createCursorIcon(\r\n 'Alias',\r\n 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21zm10 8.79c0-2.76 2.24-5 5-5v3a2 2 0 0 0-2 2v5h-3v-5z',\r\n);\r\n\r\n// Copy cursor\r\nexport const Copy = createCursorIcon(\r\n 'Copy',\r\n 'M5.5 3.21V16.8l4-4h5l-9-9.59zM14 10h6v10H10v-6m4-4v6h6',\r\n);\r\n\r\n// No drop\r\nexport const NoDrop = createCursorIcon(\r\n 'NoDrop',\r\n 'M12 2l6 9c1.5 2.5 1.5 5.5 0 8-2 3-6 3.5-8.5 1.5M3 7l18 14',\r\n);\r\n\r\n// Loading (spinner)\r\nexport const Loading = createCursorIcon(\r\n 'Loading',\r\n 'M12 2v4m0 12v4m-6.93-2.93l2.83-2.83m8.2-8.2l2.83-2.83M2 12h4m12 0h4m-2.93 6.93l-2.83-2.83m-8.2-8.2L4.21 5.07',\r\n);\r\n\r\n// Busy cursor\r\nexport const Busy = createCursorIcon('Busy', 'M12 6v6l4 2m6-2a10 10 0 1 1-20 0 10 10 0 0 1 20 0z');\r\n\r\n// Default cursor\r\nexport const Default = createCursorIcon('Default', 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21z');\r\n\r\n// Auto cursor\r\nexport const Auto = createCursorIcon(\r\n 'Auto',\r\n 'M5.5 3.21V16.8l3-3h5L5.5 3.21zM15 14h4l-2 6-2-6zm2-4V7h-3l3-5 3 5h-3v3',\r\n);\r\n\r\n// None (invisible cursor marker)\r\nexport const None = createCursorIcon(\r\n 'None',\r\n 'M12 12m-1 0a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0-6a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 12a1 1 0 1 0 2 0 1 1 0 1 0-2 0m-6-6a1 1 0 1 0 2 0 1 1 0 1 0-2 0m12 0a1 1 0 1 0 2 0 1 1 0 1 0-2 0',\r\n);\r\n\r\n// Inherit (cascading arrow)\r\nexport const Inherit = createCursorIcon(\r\n 'Inherit',\r\n 'M8 4v8m0-6l-3 3m3-3l3 3m5 4v8m0-6l-3 3m3-3l3 3',\r\n);\r\n\r\n/**\r\n * All status icons grouped for export\r\n */\r\nexport const statusIcons = {\r\n Wait,\r\n Progress,\r\n Forbidden,\r\n NotAllowed,\r\n Help,\r\n ContextMenu,\r\n Alias,\r\n Copy,\r\n NoDrop,\r\n Loading,\r\n Busy,\r\n Default,\r\n Auto,\r\n None,\r\n Inherit,\r\n} as const;\r\n"],"names":[],"mappings":";AAOO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,WAAW;AAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA;AACF;AAGO,MAAM,QAAQ;AAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AACF;AAGO,MAAM,OAAO,iBAAiB,QAAQ,oDAAoD;AAG1F,MAAM,UAAU,iBAAiB,WAAW,yCAAyC;AAGrF,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AACF;AAKO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-L6N47QMq.js","sources":["../src/status.tsx"],"sourcesContent":["/**\r\n * Status cursor icons for system states\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Wait cursor (hourglass)\r\nexport const Wait = createCursorIcon(\r\n 'Wait',\r\n 'M6 2h12v4l-4 4 4 4v4H6v-4l4-4-4-4V2zm2 2v2l4 4-4 4v2h8v-2l-4-4 4-4V4H8z',\r\n);\r\n\r\n// Progress cursor (loading circle)\r\nexport const Progress = createCursorIcon(\r\n 'Progress',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 2a8 8 0 1 1 0 16V4z',\r\n);\r\n\r\n// Forbidden / not allowed\r\nexport const Forbidden = createCursorIcon(\r\n 'Forbidden',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5.93 7.34l10.73 10.73A8 8 0 0 1 5.93 7.34zm12.14-.68L7.34 17.39A8 8 0 0 1 18.07 6.66z',\r\n);\r\n\r\n// Not allowed (circle with line)\r\nexport const NotAllowed = createCursorIcon(\r\n 'NotAllowed',\r\n 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-7 10a7 7 0 0 1 11.95-4.95L6.05 17.95A6.97 6.97 0 0 1 5 12zm7 7c-1.87 0-3.56-.74-4.81-1.93L17.93 7.33A6.97 6.97 0 0 1 19 12c0 3.87-3.13 7-7 7z',\r\n);\r\n\r\n// Help cursor (question mark)\r\nexport const Help = createCursorIcon(\r\n 'Help',\r\n 'M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm0-15a3 3 0 0 0-3 3h2a1 1 0 1 1 2 0c0 1-1.5 1.5-1.5 3h2c0-1.5 1.5-2 1.5-3a3 3 0 0 0-3-3zm-1 7h2v2h-2v-2z',\r\n);\r\n\r\n// Context menu\r\nexport const ContextMenu = createCursorIcon(\r\n 'ContextMenu',\r\n 'M4 4h16v16H4V4zm2 4h12m-12 4h12m-12 4h8',\r\n);\r\n\r\n// Alias (shortcut arrow)\r\nexport const Alias = createCursorIcon(\r\n 'Alias',\r\n 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21zm10 8.79c0-2.76 2.24-5 5-5v3a2 2 0 0 0-2 2v5h-3v-5z',\r\n);\r\n\r\n// Copy cursor\r\nexport const Copy = createCursorIcon(\r\n 'Copy',\r\n 'M5.5 3.21V16.8l4-4h5l-9-9.59zM14 10h6v10H10v-6m4-4v6h6',\r\n);\r\n\r\n// No drop\r\nexport const NoDrop = createCursorIcon(\r\n 'NoDrop',\r\n 'M12 2l6 9c1.5 2.5 1.5 5.5 0 8-2 3-6 3.5-8.5 1.5M3 7l18 14',\r\n);\r\n\r\n// Loading (spinner)\r\nexport const Loading = createCursorIcon(\r\n 'Loading',\r\n 'M12 2v4m0 12v4m-6.93-2.93l2.83-2.83m8.2-8.2l2.83-2.83M2 12h4m12 0h4m-2.93 6.93l-2.83-2.83m-8.2-8.2L4.21 5.07',\r\n);\r\n\r\n// Busy cursor\r\nexport const Busy = createCursorIcon('Busy', 'M12 6v6l4 2m6-2a10 10 0 1 1-20 0 10 10 0 0 1 20 0z');\r\n\r\n// Default cursor\r\nexport const Default = createCursorIcon('Default', 'M5.5 3.21V20.8l5.25-5.25h6.56L5.5 3.21z');\r\n\r\n// Auto cursor\r\nexport const Auto = createCursorIcon(\r\n 'Auto',\r\n 'M5.5 3.21V16.8l3-3h5L5.5 3.21zM15 14h4l-2 6-2-6zm2-4V7h-3l3-5 3 5h-3v3',\r\n);\r\n\r\n// None (invisible cursor marker)\r\nexport const None = createCursorIcon(\r\n 'None',\r\n 'M12 12m-1 0a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0-6a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 12a1 1 0 1 0 2 0 1 1 0 1 0-2 0m-6-6a1 1 0 1 0 2 0 1 1 0 1 0-2 0m12 0a1 1 0 1 0 2 0 1 1 0 1 0-2 0',\r\n);\r\n\r\n// Inherit (cascading arrow)\r\nexport const Inherit = createCursorIcon(\r\n 'Inherit',\r\n 'M8 4v8m0-6l-3 3m3-3l3 3m5 4v8m0-6l-3 3m3-3l3 3',\r\n);\r\n\r\n/**\r\n * All status icons grouped for export\r\n */\r\nexport const statusIcons = {\r\n Wait,\r\n Progress,\r\n Forbidden,\r\n NotAllowed,\r\n Help,\r\n ContextMenu,\r\n Alias,\r\n Copy,\r\n NoDrop,\r\n Loading,\r\n Busy,\r\n Default,\r\n Auto,\r\n None,\r\n Inherit,\r\n} as const;\r\n"],"names":["createCursorIcon"],"mappings":";;AAOO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,WAAWA,iBAAAA;AAAAA,EACtB;AAAA,EACA;AACF;AAGO,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,aAAaA,iBAAAA;AAAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,cAAcA,iBAAAA;AAAAA,EACzB;AAAA,EACA;AACF;AAGO,MAAM,QAAQA,iBAAAA;AAAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,SAASA,iBAAAA;AAAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,UAAUA,iBAAAA;AAAAA,EACrB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA,iBAAiB,QAAQ,oDAAoD;AAG1F,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,yCAAyC;AAGrF,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,UAAUA,iBAAAA;AAAAA,EACrB;AAAA,EACA;AACF;AAKO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/status.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
package/dist/status.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,QAAQ,8BAGpB,CAAC;AAGF,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAGF,eAAO,MAAM,UAAU,8BAGtB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,WAAW,8BAGvB,CAAC;AAGF,eAAO,MAAM,KAAK,8BAGjB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,MAAM,8BAGlB,CAAC;AAGF,eAAO,MAAM,OAAO,8BAGnB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAAiF,CAAC;AAGnG,eAAO,MAAM,OAAO,8BAAyE,CAAC;AAG9F,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,OAAO,8BAGnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAgBd,CAAC"}
|
package/dist/status.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools-DbPCbk54.mjs","sources":["../src/tools.tsx"],"sourcesContent":["/**\r\n * Tool cursor icons for drawing and editing\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Zoom in\r\nexport const ZoomIn = createCursorIcon(\r\n 'ZoomIn',\r\n 'M21 21l-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0zM10 7v6m3-3H7',\r\n);\r\n\r\n// Zoom out\r\nexport const ZoomOut = createCursorIcon(\r\n 'ZoomOut',\r\n 'M21 21l-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0zM7 10h6',\r\n);\r\n\r\n// Rotate\r\nexport const Rotate = createCursorIcon(\r\n 'Rotate',\r\n 'M4.93 4.93A10 10 0 1 1 3 12H1l4-4 4 4H6a8 8 0 1 0 1.51-4.69',\r\n);\r\n\r\n// Pan (hand for panning)\r\nexport const Pan = createCursorIcon(\r\n 'Pan',\r\n 'M12 3v18m0-18l-4 4m4-4l4 4m-4 14l-4-4m4 4l4-4M3 12h18M3 12l4-4M3 12l4 4m14-4l-4-4m4 4l-4 4',\r\n);\r\n\r\n// Draw (pencil)\r\nexport const Draw = createCursorIcon(\r\n 'Draw',\r\n 'M15.232 5.232l3.536 3.536m-2.121-5.657a2.5 2.5 0 1 1 3.536 3.536L6.5 21.036H3v-3.5l13.232-13.232z',\r\n);\r\n\r\n// Brush\r\nexport const Brush = createCursorIcon(\r\n 'Brush',\r\n 'M9.75 17L9 20l-1 1c-1.5 0-3-.5-3-2 0-2 2.5-3 5.5-3m1 1l6.5-6.5a1 1 0 0 0-1.5-1.5L10 14.5m7-7L19.5 5a2 2 0 1 0-3-3L14 4.5',\r\n);\r\n\r\n// Eraser\r\nexport const Eraser = createCursorIcon(\r\n 'Eraser',\r\n 'M19 20H9l-5.5-5.5c-1-1-1-2.5 0-3.5l10-10c1-1 2.5-1 3.5 0l5.5 5.5c1 1 1 2.5 0 3.5L14 19m-4-4L6.5 11.5',\r\n);\r\n\r\n// Eyedropper (color picker)\r\nexport const Eyedropper = createCursorIcon(\r\n 'Eyedropper',\r\n 'M2 22l1-4 3 3-4 1zm6-5l10-10m-4 4l3 3m-7-7l3 3m3-7a2 2 0 1 1 3 3l-3-3z',\r\n);\r\n\r\n// Paint bucket\r\nexport const Bucket = createCursorIcon(\r\n 'Bucket',\r\n 'M19 11l-8-8-9 9a2 2 0 0 0 0 3l7 7a2 2 0 0 0 3 0l7-7a2 2 0 0 0 0-3zM5.5 9.5L10 5m9.5 12.5c0 1.4-1.1 2.5-2.5 2.5s-2.5-1.1-2.5-2.5S15.5 15 17 15s2.5 2.5 2.5 2.5z',\r\n);\r\n\r\n// Pen (vector)\r\nexport const Pen = createCursorIcon(\r\n 'Pen',\r\n 'M12 19l7-7 3 3-7 7-3-3zm0 0l-1.5 1.5c-.5.5-1.5.5-2 0l-5-5c-.5-.5-.5-1.5 0-2L5 12l3-3 4 4-3 3 3 3z',\r\n);\r\n\r\n// Line tool\r\nexport const Line = createCursorIcon('Line', 'M4 20L20 4');\r\n\r\n// Rectangle tool\r\nexport const Rectangle = createCursorIcon(\r\n 'Rectangle',\r\n 'M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6z',\r\n);\r\n\r\n// Ellipse tool\r\nexport const Ellipse = createCursorIcon('Ellipse', 'M12 5c5 0 9 3 9 7s-4 7-9 7-9-3-9-7 4-7 9-7z');\r\n\r\n// Polygon tool\r\nexport const Polygon = createCursorIcon('Polygon', 'M12 2l9 7-3.5 11H6.5L3 9l9-7z');\r\n\r\n// Crop tool\r\nexport const Crop = createCursorIcon(\r\n 'Crop',\r\n 'M6 2v4m0 12v4M2 6h4m12 0h4m-4 12V6H6v12h12m0 0h4m-4 0v4',\r\n);\r\n\r\n/**\r\n * All tool icons grouped for export\r\n */\r\nexport const toolIcons = {\r\n ZoomIn,\r\n ZoomOut,\r\n Rotate,\r\n Pan,\r\n Draw,\r\n Brush,\r\n Eraser,\r\n Eyedropper,\r\n Bucket,\r\n Pen,\r\n Line,\r\n Rectangle,\r\n Ellipse,\r\n Polygon,\r\n Crop,\r\n} as const;\r\n"],"names":[],"mappings":";AAOO,MAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AACF;AAGO,MAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,MAAM;AAAA,EACjB;AAAA,EACA;AACF;AAGO,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,QAAQ;AAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,MAAM;AAAA,EACjB;AAAA,EACA;AACF;AAGO,MAAM,OAAO,iBAAiB,QAAQ,YAAY;AAGlD,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,UAAU,iBAAiB,WAAW,6CAA6C;AAGzF,MAAM,UAAU,iBAAiB,WAAW,+BAA+B;AAG3E,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AACF;AAKO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools-ttgDzC_5.js","sources":["../src/tools.tsx"],"sourcesContent":["/**\r\n * Tool cursor icons for drawing and editing\r\n * @packageDocumentation\r\n */\r\nimport { createCursorIcon } from './createCursorIcon';\r\n\r\n// Zoom in\r\nexport const ZoomIn = createCursorIcon(\r\n 'ZoomIn',\r\n 'M21 21l-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0zM10 7v6m3-3H7',\r\n);\r\n\r\n// Zoom out\r\nexport const ZoomOut = createCursorIcon(\r\n 'ZoomOut',\r\n 'M21 21l-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0zM7 10h6',\r\n);\r\n\r\n// Rotate\r\nexport const Rotate = createCursorIcon(\r\n 'Rotate',\r\n 'M4.93 4.93A10 10 0 1 1 3 12H1l4-4 4 4H6a8 8 0 1 0 1.51-4.69',\r\n);\r\n\r\n// Pan (hand for panning)\r\nexport const Pan = createCursorIcon(\r\n 'Pan',\r\n 'M12 3v18m0-18l-4 4m4-4l4 4m-4 14l-4-4m4 4l4-4M3 12h18M3 12l4-4M3 12l4 4m14-4l-4-4m4 4l-4 4',\r\n);\r\n\r\n// Draw (pencil)\r\nexport const Draw = createCursorIcon(\r\n 'Draw',\r\n 'M15.232 5.232l3.536 3.536m-2.121-5.657a2.5 2.5 0 1 1 3.536 3.536L6.5 21.036H3v-3.5l13.232-13.232z',\r\n);\r\n\r\n// Brush\r\nexport const Brush = createCursorIcon(\r\n 'Brush',\r\n 'M9.75 17L9 20l-1 1c-1.5 0-3-.5-3-2 0-2 2.5-3 5.5-3m1 1l6.5-6.5a1 1 0 0 0-1.5-1.5L10 14.5m7-7L19.5 5a2 2 0 1 0-3-3L14 4.5',\r\n);\r\n\r\n// Eraser\r\nexport const Eraser = createCursorIcon(\r\n 'Eraser',\r\n 'M19 20H9l-5.5-5.5c-1-1-1-2.5 0-3.5l10-10c1-1 2.5-1 3.5 0l5.5 5.5c1 1 1 2.5 0 3.5L14 19m-4-4L6.5 11.5',\r\n);\r\n\r\n// Eyedropper (color picker)\r\nexport const Eyedropper = createCursorIcon(\r\n 'Eyedropper',\r\n 'M2 22l1-4 3 3-4 1zm6-5l10-10m-4 4l3 3m-7-7l3 3m3-7a2 2 0 1 1 3 3l-3-3z',\r\n);\r\n\r\n// Paint bucket\r\nexport const Bucket = createCursorIcon(\r\n 'Bucket',\r\n 'M19 11l-8-8-9 9a2 2 0 0 0 0 3l7 7a2 2 0 0 0 3 0l7-7a2 2 0 0 0 0-3zM5.5 9.5L10 5m9.5 12.5c0 1.4-1.1 2.5-2.5 2.5s-2.5-1.1-2.5-2.5S15.5 15 17 15s2.5 2.5 2.5 2.5z',\r\n);\r\n\r\n// Pen (vector)\r\nexport const Pen = createCursorIcon(\r\n 'Pen',\r\n 'M12 19l7-7 3 3-7 7-3-3zm0 0l-1.5 1.5c-.5.5-1.5.5-2 0l-5-5c-.5-.5-.5-1.5 0-2L5 12l3-3 4 4-3 3 3 3z',\r\n);\r\n\r\n// Line tool\r\nexport const Line = createCursorIcon('Line', 'M4 20L20 4');\r\n\r\n// Rectangle tool\r\nexport const Rectangle = createCursorIcon(\r\n 'Rectangle',\r\n 'M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6z',\r\n);\r\n\r\n// Ellipse tool\r\nexport const Ellipse = createCursorIcon('Ellipse', 'M12 5c5 0 9 3 9 7s-4 7-9 7-9-3-9-7 4-7 9-7z');\r\n\r\n// Polygon tool\r\nexport const Polygon = createCursorIcon('Polygon', 'M12 2l9 7-3.5 11H6.5L3 9l9-7z');\r\n\r\n// Crop tool\r\nexport const Crop = createCursorIcon(\r\n 'Crop',\r\n 'M6 2v4m0 12v4M2 6h4m12 0h4m-4 12V6H6v12h12m0 0h4m-4 0v4',\r\n);\r\n\r\n/**\r\n * All tool icons grouped for export\r\n */\r\nexport const toolIcons = {\r\n ZoomIn,\r\n ZoomOut,\r\n Rotate,\r\n Pan,\r\n Draw,\r\n Brush,\r\n Eraser,\r\n Eyedropper,\r\n Bucket,\r\n Pen,\r\n Line,\r\n Rectangle,\r\n Ellipse,\r\n Polygon,\r\n Crop,\r\n} as const;\r\n"],"names":["createCursorIcon"],"mappings":";;AAOO,MAAM,SAASA,iBAAAA;AAAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,UAAUA,iBAAAA;AAAAA,EACrB;AAAA,EACA;AACF;AAGO,MAAM,SAASA,iBAAAA;AAAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,MAAMA,iBAAAA;AAAAA,EACjB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAGO,MAAM,QAAQA,iBAAAA;AAAAA,EACnB;AAAA,EACA;AACF;AAGO,MAAM,SAASA,iBAAAA;AAAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,aAAaA,iBAAAA;AAAAA,EACxB;AAAA,EACA;AACF;AAGO,MAAM,SAASA,iBAAAA;AAAAA,EACpB;AAAA,EACA;AACF;AAGO,MAAM,MAAMA,iBAAAA;AAAAA,EACjB;AAAA,EACA;AACF;AAGO,MAAM,OAAOA,iBAAAA,iBAAiB,QAAQ,YAAY;AAGlD,MAAM,YAAYA,iBAAAA;AAAAA,EACvB;AAAA,EACA;AACF;AAGO,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,6CAA6C;AAGzF,MAAM,UAAUA,iBAAAA,iBAAiB,WAAW,+BAA+B;AAG3E,MAAM,OAAOA,iBAAAA;AAAAA,EAClB;AAAA,EACA;AACF;AAKO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/tools.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
package/dist/tools.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,8BAGlB,CAAC;AAGF,eAAO,MAAM,OAAO,8BAGnB,CAAC;AAGF,eAAO,MAAM,MAAM,8BAGlB,CAAC;AAGF,eAAO,MAAM,GAAG,8BAGf,CAAC;AAGF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAGF,eAAO,MAAM,KAAK,8BAGjB,CAAC;AAGF,eAAO,MAAM,MAAM,8BAGlB,CAAC;AAGF,eAAO,MAAM,UAAU,8BAGtB,CAAC;AAGF,eAAO,MAAM,MAAM,8BAGlB,CAAC;AAGF,eAAO,MAAM,GAAG,8BAGf,CAAC;AAGF,eAAO,MAAM,IAAI,8BAAyC,CAAC;AAG3D,eAAO,MAAM,SAAS,8BAGrB,CAAC;AAGF,eAAO,MAAM,OAAO,8BAA6E,CAAC;AAGlG,eAAO,MAAM,OAAO,8BAA+D,CAAC;AAGpF,eAAO,MAAM,IAAI,8BAGhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAgBZ,CAAC"}
|
package/dist/tools.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAC3E,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,eAAe,GACf,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,kBAAkB,GAClB,gBAAgB,GAChB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,cAAc,GACd,WAAW,GACX,aAAa,GACb,MAAM,GACN,UAAU,GACV,MAAM,GACN,YAAY,GACZ,OAAO,GACP,WAAW,GACX,WAAW,GACX,UAAU,GACV,iBAAiB,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,KAAK,GACL,MAAM,GACN,WAAW,GACX,SAAS,GACT,SAAS,GACT,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,UAAU,GACV,WAAW,GACX,YAAY,GACZ,MAAM,GACN,aAAa,GACb,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,cAAc,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,CAAC"}
|