react-iro-gradient-picker 1.0.6 → 1.0.8
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 +40 -1
- package/dist/index.css +1 -0
- package/dist/index.es.css +1 -0
- package/dist/index.es.js +39 -5
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +39 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.es.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../node_modules/tslib/tslib.es6.mjs","../src/components/providers/ThemeContext.tsx","../src/components/ui/ThemeToggle/index.tsx","../node_modules/@jaames/iro/dist/iro.es.js","../node_modules/tinycolor2/esm/tinycolor.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/utils/cn.ts","../src/utils/color/color.ts","../src/utils/color/getHexAlpha.ts","../src/utils/color/hexToRgba.ts","../src/utils/color/rgbaToArray.ts","../src/utils/color/rgbaToHex.ts","../src/utils/format/checkFormat.ts","../src/utils/format/getGradient.ts","../src/utils/validation/isValidHex.ts","../src/utils/validation/isValidRgba.ts","../src/utils/validation/validGradient.ts","../src/utils/format/parseGradient.ts","../src/components/forms/InputRgba/helpers.ts","../src/components/forms/InputRgba/InputRgba.tsx","../src/components/core/IroColorPicker/index.tsx","../src/components/core/Colorpicker/helper.ts","../src/components/core/Colorpicker/DefaultColorPanel/index.tsx","../src/components/core/Colorpicker/GradientPanel/Markers.tsx","../src/constants/constants.ts","../src/components/core/Colorpicker/GradientPanel/index.tsx","../src/hooks/useDebounce.ts","../src/components/core/Colorpicker/IroGradient/index.tsx","../src/components/core/Colorpicker/IroSolid/index.tsx","../src/components/ui/PopupTab/index.tsx","../src/components/core/Colorpicker/index.tsx"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import React, { createContext, useContext, useEffect, useState } from 'react';\n\ntype Theme = 'light' | 'dark';\n\ninterface ThemeContextType {\n theme: Theme;\n toggleTheme: () => void;\n setTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n};\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: Theme;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = 'dark' // Dark theme as default\n}) => {\n const [theme, setTheme] = useState<Theme>(() => {\n // Check localStorage first, then use default\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem('color-picker-theme') as Theme;\n return stored || defaultTheme;\n }\n return defaultTheme;\n });\n\n useEffect(() => {\n // Apply theme to local container instead of document root for better scoping\n const containers = document.querySelectorAll('[data-color-picker-theme]');\n\n containers.forEach((container) => {\n // Remove previous theme class\n container.classList.remove('light', 'dark');\n // Add new theme class\n container.classList.add(theme);\n });\n\n // Store theme preference\n if (typeof window !== 'undefined') {\n localStorage.setItem('color-picker-theme', theme);\n }\n }, [theme]);\n\n const toggleTheme = () => {\n setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light'));\n };\n\n const value = {\n theme,\n toggleTheme,\n setTheme\n };\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n","import React from 'react';\nimport { useTheme } from '../../providers/ThemeContext';\n\n// Simple sun and moon icons as SVG components\nconst SunIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg className={className} fill='currentColor' viewBox='0 0 20 20'>\n <path\n fillRule='evenodd'\n d='M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z'\n clipRule='evenodd'\n />\n </svg>\n);\n\nconst MoonIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg className={className} fill='currentColor' viewBox='0 0 20 20'>\n <path d='M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z' />\n </svg>\n);\n\ninterface ThemeToggleProps {\n className?: string;\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className }) => {\n const { theme, toggleTheme } = useTheme();\n\n return (\n <button\n onClick={toggleTheme}\n className={`theme-toggle ${className || ''}`}\n aria-label={`Switch to ${theme === 'light' ? 'dark' : 'light'} theme`}\n title={`Switch to ${theme === 'light' ? 'dark' : 'light'} theme`}\n >\n {theme === 'light' ? (\n <MoonIcon className='theme-toggle-icon' />\n ) : (\n <SunIcon className='theme-toggle-icon' />\n )}\n </button>\n );\n};\n","/*!\n * iro.js v5.5.2\n * 2016-2021 James Daniel\n * Licensed under MPL 2.0\n * github.com/jaames/iro.js\n */\n\nvar n,u,t,i,r,o,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|^--/i;function s(n,l){for(var u in l){ n[u]=l[u]; }return n}function a(n){var l=n.parentNode;l&&l.removeChild(n);}function h(n,l,u){var t,i,r,o,f=arguments;if(l=s({},l),arguments.length>3){ for(u=[u],t=3;t<arguments.length;t++){ u.push(f[t]); } }if(null!=u&&(l.children=u),null!=n&&null!=n.defaultProps){ for(i in n.defaultProps){ void 0===l[i]&&(l[i]=n.defaultProps[i]); } }return o=l.key,null!=(r=l.ref)&&delete l.ref,null!=o&&delete l.key,v(n,l,o,r)}function v(l,u,t,i){var r={type:l,props:u,key:t,ref:i,__k:null,__p:null,__b:0,__e:null,l:null,__c:null,constructor:void 0};return n.vnode&&n.vnode(r),r}function d(n){return n.children}function y(n){if(null==n||\"boolean\"==typeof n){ return null; }if(\"string\"==typeof n||\"number\"==typeof n){ return v(null,n,null,null); }if(null!=n.__e||null!=n.__c){var l=v(n.type,n.props,n.key,null);return l.__e=n.__e,l}return n}function m(n,l){this.props=n,this.context=l;}function w(n,l){if(null==l){ return n.__p?w(n.__p,n.__p.__k.indexOf(n)+1):null; }for(var u;l<n.__k.length;l++){ if(null!=(u=n.__k[l])&&null!=u.__e){ return u.__e; } }return \"function\"==typeof n.type?w(n):null}function g(n){var l,u;if(null!=(n=n.__p)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++){ if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break} }return g(n)}}function k(l){(!l.__d&&(l.__d=!0)&&1===u.push(l)||i!==n.debounceRendering)&&(i=n.debounceRendering,(n.debounceRendering||t)(_));}function _(){var n,l,t,i,r,o,f,e;for(u.sort(function(n,l){return l.__v.__b-n.__v.__b});n=u.pop();){ n.__d&&(t=void 0,i=void 0,o=(r=(l=n).__v).__e,f=l.__P,e=l.u,l.u=!1,f&&(t=[],i=$(f,r,s({},r),l.__n,void 0!==f.ownerSVGElement,null,t,e,null==o?w(r):o),j(t,r),i!=o&&g(r))); }}function b(n,l,u,t,i,r,o,c,s){var h,v,p,d,y,m,g,k=u&&u.__k||e,_=k.length;if(c==f&&(c=null!=r?r[0]:_?w(u,0):null),h=0,l.__k=x(l.__k,function(u){if(null!=u){if(u.__p=l,u.__b=l.__b+1,null===(p=k[h])||p&&u.key==p.key&&u.type===p.type){ k[h]=void 0; }else { for(v=0;v<_;v++){if((p=k[v])&&u.key==p.key&&u.type===p.type){k[v]=void 0;break}p=null;} }if(d=$(n,u,p=p||f,t,i,r,o,null,c,s),(v=u.ref)&&p.ref!=v&&(g||(g=[])).push(v,u.__c||d,u),null!=d){if(null==m&&(m=d),null!=u.l){ d=u.l,u.l=null; }else if(r==p||d!=c||null==d.parentNode){n:if(null==c||c.parentNode!==n){ n.appendChild(d); }else{for(y=c,v=0;(y=y.nextSibling)&&v<_;v+=2){ if(y==d){ break n; } }n.insertBefore(d,c);}\"option\"==l.type&&(n.value=\"\");}c=d.nextSibling,\"function\"==typeof l.type&&(l.l=d);}}return h++,u}),l.__e=m,null!=r&&\"function\"!=typeof l.type){ for(h=r.length;h--;){ null!=r[h]&&a(r[h]); } }for(h=_;h--;){ null!=k[h]&&D(k[h],k[h]); }if(g){ for(h=0;h<g.length;h++){ A(g[h],g[++h],g[++h]); } }}function x(n,l,u){if(null==u&&(u=[]),null==n||\"boolean\"==typeof n){ l&&u.push(l(null)); }else if(Array.isArray(n)){ for(var t=0;t<n.length;t++){ x(n[t],l,u); } }else { u.push(l?l(y(n)):n); }return u}function C(n,l,u,t,i){var r;for(r in u){ r in l||N(n,r,null,u[r],t); }for(r in l){ i&&\"function\"!=typeof l[r]||\"value\"===r||\"checked\"===r||u[r]===l[r]||N(n,r,l[r],u[r],t); }}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=\"number\"==typeof u&&!1===c.test(l)?u+\"px\":null==u?\"\":u;}function N(n,l,u,t,i){var r,o,f,e,c;if(\"key\"===(l=i?\"className\"===l?\"class\":l:\"class\"===l?\"className\":l)||\"children\"===l);else if(\"style\"===l){ if(r=n.style,\"string\"==typeof u){ r.cssText=u; }else{if(\"string\"==typeof t&&(r.cssText=\"\",t=null),t){ for(o in t){ u&&o in u||P(r,o,\"\"); } }if(u){ for(f in u){ t&&u[f]===t[f]||P(r,f,u[f]); } }} }else{ \"o\"===l[0]&&\"n\"===l[1]?(e=l!==(l=l.replace(/Capture$/,\"\")),c=l.toLowerCase(),l=(c in n?c:l).slice(2),u?(t||n.addEventListener(l,T,e),(n.t||(n.t={}))[l]=u):n.removeEventListener(l,T,e)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&!i&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/^xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u?n.removeAttribute(l):n.setAttribute(l,u)); }}function T(l){return this.t[l.type](n.event?n.event(l):l)}function $(l,u,t,i,r,o,f,e,c,a){var h,v,p,y,w,g,k,_,C,P,N=u.type;if(void 0!==u.constructor){ return null; }(h=n.__b)&&h(u);try{n:if(\"function\"==typeof N){if(_=u.props,C=(h=N.contextType)&&i[h.__c],P=h?C?C.props.value:h.__p:i,t.__c?k=(v=u.__c=t.__c).__p=v.__E:(\"prototype\"in N&&N.prototype.render?u.__c=v=new N(_,P):(u.__c=v=new m(_,P),v.constructor=N,v.render=H),C&&C.sub(v),v.props=_,v.state||(v.state={}),v.context=P,v.__n=i,p=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=N.getDerivedStateFromProps&&s(v.__s==v.state?v.__s=s({},v.__s):v.__s,N.getDerivedStateFromProps(_,v.__s)),p){ null==N.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&f.push(v); }else{if(null==N.getDerivedStateFromProps&&null==e&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(_,P),!e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(_,v.__s,P)){for(v.props=_,v.state=v.__s,v.__d=!1,v.__v=u,u.__e=null!=c?c!==t.__e?c:t.__e:null,u.__k=t.__k,h=0;h<u.__k.length;h++){ u.__k[h]&&(u.__k[h].__p=u); }break n}null!=v.componentWillUpdate&&v.componentWillUpdate(_,v.__s,P);}for(y=v.props,w=v.state,v.context=P,v.props=_,v.state=v.__s,(h=n.__r)&&h(u),v.__d=!1,v.__v=u,v.__P=l,h=v.render(v.props,v.state,v.context),u.__k=x(null!=h&&h.type==d&&null==h.key?h.props.children:h),null!=v.getChildContext&&(i=s(s({},i),v.getChildContext())),p||null==v.getSnapshotBeforeUpdate||(g=v.getSnapshotBeforeUpdate(y,w)),b(l,u,t,i,r,o,f,c,a),v.base=u.__e;h=v.__h.pop();){ v.__s&&(v.state=v.__s),h.call(v); }p||null==y||null==v.componentDidUpdate||v.componentDidUpdate(y,w,g),k&&(v.__E=v.__p=null);}else { u.__e=z(t.__e,u,t,i,r,o,f,a); }(h=n.diffed)&&h(u);}catch(l){n.__e(l,u,t);}return u.__e}function j(l,u){for(var t;t=l.pop();){ try{t.componentDidMount();}catch(l){n.__e(l,t.__v);} }n.__c&&n.__c(u);}function z(n,l,u,t,i,r,o,c){var s,a,h,v,p=u.props,d=l.props;if(i=\"svg\"===l.type||i,null==n&&null!=r){ for(s=0;s<r.length;s++){ if(null!=(a=r[s])&&(null===l.type?3===a.nodeType:a.localName===l.type)){n=a,r[s]=null;break} } }if(null==n){if(null===l.type){ return document.createTextNode(d); }n=i?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type),r=null;}return null===l.type?p!==d&&(null!=r&&(r[r.indexOf(n)]=null),n.data=d):l!==u&&(null!=r&&(r=e.slice.call(n.childNodes)),h=(p=u.props||f).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,c||(v||h)&&(v&&h&&v.__html==h.__html||(n.innerHTML=v&&v.__html||\"\")),C(n,d,p,i,c),l.__k=l.props.children,v||b(n,l,u,t,\"foreignObject\"!==l.type&&i,r,o,f,c),c||(\"value\"in d&&void 0!==d.value&&d.value!==n.value&&(n.value=null==d.value?\"\":d.value),\"checked\"in d&&void 0!==d.checked&&d.checked!==n.checked&&(n.checked=d.checked))),n}function A(l,u,t){try{\"function\"==typeof l?l(u):l.current=u;}catch(l){n.__e(l,t);}}function D(l,u,t){var i,r,o;if(n.unmount&&n.unmount(l),(i=l.ref)&&A(i,null,u),t||\"function\"==typeof l.type||(t=null!=(r=l.__e)),l.__e=l.l=null,null!=(i=l.__c)){if(i.componentWillUnmount){ try{i.componentWillUnmount();}catch(l){n.__e(l,u);} }i.base=i.__P=null;}if(i=l.__k){ for(o=0;o<i.length;o++){ i[o]&&D(i[o],u,t); } }null!=r&&a(r);}function H(n,l,u){return this.constructor(n,u)}function I(l,u,t){var i,o,c;n.__p&&n.__p(l,u),o=(i=t===r)?null:t&&t.__k||u.__k,l=h(d,null,[l]),c=[],$(u,i?u.__k=l:(t||u).__k=l,o||f,f,void 0!==u.ownerSVGElement,t&&!i?[t]:o?null:e.slice.call(u.childNodes),c,!1,t||f,i),j(c,l);}n={},m.prototype.setState=function(n,l){var u=this.__s!==this.state&&this.__s||(this.__s=s({},this.state));(\"function\"!=typeof n||(n=n(u,this.props)))&&s(u,n),null!=n&&this.__v&&(this.u=!1,l&&this.__h.push(l),k(this));},m.prototype.forceUpdate=function(n){this.__v&&(n&&this.__h.push(n),this.u=!0,k(this));},m.prototype.render=d,u=[],t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,i=n.debounceRendering,n.__e=function(n,l,u){for(var t;l=l.__p;){ if((t=l.__c)&&!t.__p){ try{if(t.constructor&&null!=t.constructor.getDerivedStateFromError){ t.setState(t.constructor.getDerivedStateFromError(n)); }else{if(null==t.componentDidCatch){ continue; }t.componentDidCatch(n);}return k(t.__E=t)}catch(l){n=l;} } }throw n},r=f,o=0;\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) { descriptor.writable = true; }\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) { _defineProperties(Constructor.prototype, protoProps); }\n if (staticProps) { _defineProperties(Constructor, staticProps); }\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n var arguments$1 = arguments;\n\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n// Some regular expressions for rgb() and hsl() Colors are borrowed from tinyColor\n// https://github.com/bgrins/TinyColor\n// Kelvin temperature math borrowed from Neil Barlett's implementation\n// from https://github.com/neilbartlett/color-temperature\n// https://www.w3.org/TR/css3-values/#integers\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?'; // http://www.w3.org/TR/css3-values/#number-value\n\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?'; // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome\n\nvar CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')'; // Parse function params\n// Parens and commas are optional, and this also allows for whitespace between numbers\n\nvar PERMISSIVE_MATCH_3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\nvar PERMISSIVE_MATCH_4 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?'; // Regex patterns for functional color strings\n\nvar REGEX_FUNCTIONAL_RGB = new RegExp('rgb' + PERMISSIVE_MATCH_3);\nvar REGEX_FUNCTIONAL_RGBA = new RegExp('rgba' + PERMISSIVE_MATCH_4);\nvar REGEX_FUNCTIONAL_HSL = new RegExp('hsl' + PERMISSIVE_MATCH_3);\nvar REGEX_FUNCTIONAL_HSLA = new RegExp('hsla' + PERMISSIVE_MATCH_4); // Color string parsing regex\n\nvar HEX_START = '^(?:#?|0x?)';\nvar HEX_INT_SINGLE = '([0-9a-fA-F]{1})';\nvar HEX_INT_DOUBLE = '([0-9a-fA-F]{2})';\nvar REGEX_HEX_3 = new RegExp(HEX_START + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + '$');\nvar REGEX_HEX_4 = new RegExp(HEX_START + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + '$');\nvar REGEX_HEX_6 = new RegExp(HEX_START + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + '$');\nvar REGEX_HEX_8 = new RegExp(HEX_START + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + '$'); // Kelvin temperature bounds\n\nvar KELVIN_MIN = 2000;\nvar KELVIN_MAX = 40000; // Math shorthands\n\nvar log = Math.log,\n round = Math.round,\n floor = Math.floor;\n/**\r\n * @desc Clamp a number between a min and max value\r\n * @param num - input value\r\n * @param min - min allowed value\r\n * @param max - max allowed value\r\n */\n\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n/**\r\n * @desc Parse a css unit string - either regular int or a percentage number\r\n * @param str - css unit string\r\n * @param max - max unit value, used for calculating percentages\r\n */\n\n\nfunction parseUnit(str, max) {\n var isPercentage = str.indexOf('%') > -1;\n var num = parseFloat(str);\n return isPercentage ? max / 100 * num : num;\n}\n/**\r\n * @desc Parse hex str to an int\r\n * @param str - hex string to parse\r\n */\n\n\nfunction parseHexInt(str) {\n return parseInt(str, 16);\n}\n/**\r\n * @desc Convert nunber into to 2-digit hex\r\n * @param int - number to convert\r\n */\n\n\nfunction intToHex(_int) {\n return _int.toString(16).padStart(2, '0');\n}\n\nvar IroColor =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @constructor Color object\r\n * @param value - initial color value\r\n */\n function IroColor(value, onChange) {\n // The default Color value\n this.$ = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n };\n if (value) { this.set(value); } // The watch callback function for this Color will be stored here\n\n this.onChange = onChange;\n this.initialValue = _extends({}, this.$); // copy initial value\n }\n /**\r\n * @desc Set the Color from any valid value\r\n * @param value - new color value\r\n */\n\n\n var _proto = IroColor.prototype;\n\n _proto.set = function set(value) {\n if (typeof value === 'string') {\n if (/^(?:#?|0x?)[0-9a-fA-F]{3,8}$/.test(value)) {\n this.hexString = value;\n } else if (/^rgba?/.test(value)) {\n this.rgbString = value;\n } else if (/^hsla?/.test(value)) {\n this.hslString = value;\n }\n } else if (typeof value === 'object') {\n if (value instanceof IroColor) {\n this.hsva = value.hsva;\n } else if ('r' in value && 'g' in value && 'b' in value) {\n this.rgb = value;\n } else if ('h' in value && 's' in value && 'v' in value) {\n this.hsv = value;\n } else if ('h' in value && 's' in value && 'l' in value) {\n this.hsl = value;\n } else if ('kelvin' in value) {\n this.kelvin = value.kelvin;\n }\n } else {\n throw new Error('Invalid color value');\n }\n }\n /**\r\n * @desc Shortcut to set a specific channel value\r\n * @param format - hsv | hsl | rgb\r\n * @param channel - individual channel to set, for example if model = hsl, chanel = h | s | l\r\n * @param value - new value for the channel\r\n */\n ;\n\n _proto.setChannel = function setChannel(format, channel, value) {\n var _extends2;\n\n this[format] = _extends({}, this[format], (_extends2 = {}, _extends2[channel] = value, _extends2));\n }\n /**\r\n * @desc Reset color back to its initial value\r\n */\n ;\n\n _proto.reset = function reset() {\n this.hsva = this.initialValue;\n }\n /**\r\n * @desc make new Color instance with the same value as this one\r\n */\n ;\n\n _proto.clone = function clone() {\n return new IroColor(this);\n }\n /**\r\n * @desc remove color onChange\r\n */\n ;\n\n _proto.unbind = function unbind() {\n this.onChange = undefined;\n }\n /**\r\n * @desc Convert hsv object to rgb\r\n * @param hsv - hsv color object\r\n */\n ;\n\n IroColor.hsvToRgb = function hsvToRgb(hsv) {\n var h = hsv.h / 60;\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var i = floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return {\n r: clamp(r * 255, 0, 255),\n g: clamp(g * 255, 0, 255),\n b: clamp(b * 255, 0, 255)\n };\n }\n /**\r\n * @desc Convert rgb object to hsv\r\n * @param rgb - rgb object\r\n */\n ;\n\n IroColor.rgbToHsv = function rgbToHsv(rgb) {\n var r = rgb.r / 255;\n var g = rgb.g / 255;\n var b = rgb.b / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n var hue = 0;\n var value = max;\n var saturation = max === 0 ? 0 : delta / max;\n\n switch (max) {\n case min:\n hue = 0; // achromatic\n\n break;\n\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n\n case g:\n hue = (b - r) / delta + 2;\n break;\n\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n\n return {\n h: hue * 60 % 360,\n s: clamp(saturation * 100, 0, 100),\n v: clamp(value * 100, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsv object to hsl\r\n * @param hsv - hsv object\r\n */\n ;\n\n IroColor.hsvToHsl = function hsvToHsl(hsv) {\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var l = (2 - s) * v;\n var divisor = l <= 1 ? l : 2 - l; // Avoid division by zero when lightness is close to zero\n\n var saturation = divisor < 1e-9 ? 0 : s * v / divisor;\n return {\n h: hsv.h,\n s: clamp(saturation * 100, 0, 100),\n l: clamp(l * 50, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsl object to hsv\r\n * @param hsl - hsl object\r\n */\n ;\n\n IroColor.hslToHsv = function hslToHsv(hsl) {\n var l = hsl.l * 2;\n var s = hsl.s * (l <= 100 ? l : 200 - l) / 100; // Avoid division by zero when l + s is near 0\n\n var saturation = l + s < 1e-9 ? 0 : 2 * s / (l + s);\n return {\n h: hsl.h,\n s: clamp(saturation * 100, 0, 100),\n v: clamp((l + s) / 2, 0, 100)\n };\n }\n /**\r\n * @desc Convert a kelvin temperature to an approx, RGB value\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.kelvinToRgb = function kelvinToRgb(kelvin) {\n var temp = kelvin / 100;\n var r, g, b;\n\n if (temp < 66) {\n r = 255;\n g = -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log(g);\n b = 255;\n }\n\n return {\n r: clamp(floor(r), 0, 255),\n g: clamp(floor(g), 0, 255),\n b: clamp(floor(b), 0, 255)\n };\n }\n /**\r\n * @desc Convert an RGB color to an approximate kelvin temperature\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.rgbToKelvin = function rgbToKelvin(rgb) {\n var r = rgb.r,\n b = rgb.b;\n var eps = 0.4;\n var minTemp = KELVIN_MIN;\n var maxTemp = KELVIN_MAX;\n var temp;\n\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n\n var _rgb = IroColor.kelvinToRgb(temp);\n\n if (_rgb.b / _rgb.r >= b / r) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n\n return temp;\n };\n\n _createClass(IroColor, [{\n key: \"hsv\",\n get: function get() {\n // value is cloned to allow changes to be made to the values before passing them back\n var value = this.$;\n return {\n h: value.h,\n s: value.s,\n v: value.v\n };\n },\n set: function set(newValue) {\n var oldValue = this.$;\n newValue = _extends({}, oldValue, newValue); // If this Color is being watched for changes we need to compare the new and old values to check the difference\n // Otherwise we can just be lazy\n\n if (this.onChange) {\n // Compute changed values\n var changes = {\n h: false,\n v: false,\n s: false,\n a: false\n };\n\n for (var key in oldValue) {\n changes[key] = newValue[key] != oldValue[key];\n }\n\n this.$ = newValue; // If the value has changed, call hook callback\n\n if (changes.h || changes.s || changes.v || changes.a) { this.onChange(this, changes); }\n } else {\n this.$ = newValue;\n }\n }\n }, {\n key: \"hsva\",\n get: function get() {\n return _extends({}, this.$);\n },\n set: function set(value) {\n this.hsv = value;\n }\n }, {\n key: \"hue\",\n get: function get() {\n return this.$.h;\n },\n set: function set(value) {\n this.hsv = {\n h: value\n };\n }\n }, {\n key: \"saturation\",\n get: function get() {\n return this.$.s;\n },\n set: function set(value) {\n this.hsv = {\n s: value\n };\n }\n }, {\n key: \"value\",\n get: function get() {\n return this.$.v;\n },\n set: function set(value) {\n this.hsv = {\n v: value\n };\n }\n }, {\n key: \"alpha\",\n get: function get() {\n return this.$.a;\n },\n set: function set(value) {\n this.hsv = _extends({}, this.hsv, {\n a: value\n });\n }\n }, {\n key: \"kelvin\",\n get: function get() {\n return IroColor.rgbToKelvin(this.rgb);\n },\n set: function set(value) {\n this.rgb = IroColor.kelvinToRgb(value);\n }\n }, {\n key: \"red\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.r;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n r: value\n });\n }\n }, {\n key: \"green\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.g;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n g: value\n });\n }\n }, {\n key: \"blue\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.b;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n b: value\n });\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var _IroColor$hsvToRgb = IroColor.hsvToRgb(this.$),\n r = _IroColor$hsvToRgb.r,\n g = _IroColor$hsvToRgb.g,\n b = _IroColor$hsvToRgb.b;\n\n return {\n r: round(r),\n g: round(g),\n b: round(b)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.rgbToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"rgba\",\n get: function get() {\n return _extends({}, this.rgb, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.rgb = value;\n }\n }, {\n key: \"hsl\",\n get: function get() {\n var _IroColor$hsvToHsl = IroColor.hsvToHsl(this.$),\n h = _IroColor$hsvToHsl.h,\n s = _IroColor$hsvToHsl.s,\n l = _IroColor$hsvToHsl.l;\n\n return {\n h: round(h),\n s: round(s),\n l: round(l)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.hslToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"hsla\",\n get: function get() {\n return _extends({}, this.hsl, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.hsl = value;\n }\n }, {\n key: \"rgbString\",\n get: function get() {\n var rgb = this.rgb;\n return \"rgb(\" + rgb.r + \", \" + rgb.g + \", \" + rgb.b + \")\";\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_RGB.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n } else if (match = REGEX_FUNCTIONAL_RGBA.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a\n };\n } else {\n throw new Error('Invalid rgb string');\n }\n }\n }, {\n key: \"rgbaString\",\n get: function get() {\n var rgba = this.rgba;\n return \"rgba(\" + rgba.r + \", \" + rgba.g + \", \" + rgba.b + \", \" + rgba.a + \")\";\n },\n set: function set(value) {\n this.rgbString = value;\n }\n }, {\n key: \"hexString\",\n get: function get() {\n var rgb = this.rgb;\n return \"#\" + intToHex(rgb.r) + intToHex(rgb.g) + intToHex(rgb.b);\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 255;\n\n if (match = REGEX_HEX_3.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n } else if (match = REGEX_HEX_4.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n a = parseHexInt(match[4]) * 17;\n } else if (match = REGEX_HEX_6.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n } else if (match = REGEX_HEX_8.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n a = parseHexInt(match[4]);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a / 255\n };\n } else {\n throw new Error('Invalid hex string');\n }\n }\n }, {\n key: \"hex8String\",\n get: function get() {\n var rgba = this.rgba;\n return \"#\" + intToHex(rgba.r) + intToHex(rgba.g) + intToHex(rgba.b) + intToHex(floor(rgba.a * 255));\n },\n set: function set(value) {\n this.hexString = value;\n }\n }, {\n key: \"hslString\",\n get: function get() {\n var hsl = this.hsl;\n return \"hsl(\" + hsl.h + \", \" + hsl.s + \"%, \" + hsl.l + \"%)\";\n },\n set: function set(value) {\n var match;\n var h,\n s,\n l,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_HSL.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n } else if (match = REGEX_FUNCTIONAL_HSLA.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.hsl = {\n h: h,\n s: s,\n l: l,\n a: a\n };\n } else {\n throw new Error('Invalid hsl string');\n }\n }\n }, {\n key: \"hslaString\",\n get: function get() {\n var hsla = this.hsla;\n return \"hsla(\" + hsla.h + \", \" + hsla.s + \"%, \" + hsla.l + \"%, \" + hsla.a + \")\";\n },\n set: function set(value) {\n this.hslString = value;\n }\n }]);\n\n return IroColor;\n}();\n\nvar sliderDefaultOptions = {\n sliderShape: 'bar',\n sliderType: 'value',\n minTemperature: 2200,\n maxTemperature: 11000\n};\n/**\r\n * @desc Get the bounding dimensions of the slider\r\n * @param props - slider props\r\n */\n\nfunction getSliderDimensions(props) {\n var _sliderSize;\n\n var width = props.width,\n sliderSize = props.sliderSize,\n borderWidth = props.borderWidth,\n handleRadius = props.handleRadius,\n padding = props.padding,\n sliderShape = props.sliderShape;\n var ishorizontal = props.layoutDirection === 'horizontal'; // automatically calculate sliderSize if its not defined\n\n sliderSize = (_sliderSize = sliderSize) != null ? _sliderSize : padding * 2 + handleRadius * 2;\n\n if (sliderShape === 'circle') {\n return {\n handleStart: props.padding + props.handleRadius,\n handleRange: width - padding * 2 - handleRadius * 2,\n width: width,\n height: width,\n cx: width / 2,\n cy: width / 2,\n radius: width / 2 - borderWidth / 2\n };\n } else {\n return {\n handleStart: sliderSize / 2,\n handleRange: width - sliderSize,\n radius: sliderSize / 2,\n x: 0,\n y: 0,\n width: ishorizontal ? sliderSize : width,\n height: ishorizontal ? width : sliderSize\n };\n }\n}\n/**\r\n * @desc Get the current slider value for a given color, as a percentage\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getCurrentSliderValue(props, color) {\n var hsva = color.hsva;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return rgb.r / 2.55;\n\n case 'green':\n return rgb.g / 2.55;\n\n case 'blue':\n return rgb.b / 2.55;\n\n case 'alpha':\n return hsva.a * 100;\n\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n var percent = (color.kelvin - minTemperature) / temperatureRange * 100; // clmap percentage\n\n return Math.max(0, Math.min(percent, 100));\n\n case 'hue':\n return hsva.h /= 3.6;\n\n case 'saturation':\n return hsva.s;\n\n case 'value':\n default:\n return hsva.v;\n }\n}\n/**\r\n * @desc Get the current slider value from user input\r\n * @param props - slider props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getSliderValueFromInput(props, x, y) {\n var _getSliderDimensions = getSliderDimensions(props),\n handleRange = _getSliderDimensions.handleRange,\n handleStart = _getSliderDimensions.handleStart;\n\n var handlePos;\n\n if (props.layoutDirection === 'horizontal') {\n handlePos = -1 * y + handleRange + handleStart;\n } else {\n handlePos = x - handleStart;\n } // clamp handle position\n\n\n handlePos = Math.max(Math.min(handlePos, handleRange), 0);\n var percent = Math.round(100 / handleRange * handlePos);\n\n switch (props.sliderType) {\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n return minTemperature + temperatureRange * (percent / 100);\n\n case 'alpha':\n return percent / 100;\n\n case 'hue':\n return percent * 3.6;\n\n case 'red':\n case 'blue':\n case 'green':\n return percent * 2.55;\n\n default:\n return percent;\n }\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderHandlePosition(props, color) {\n var _getSliderDimensions2 = getSliderDimensions(props),\n width = _getSliderDimensions2.width,\n height = _getSliderDimensions2.height,\n handleRange = _getSliderDimensions2.handleRange,\n handleStart = _getSliderDimensions2.handleStart;\n\n var ishorizontal = props.layoutDirection === 'horizontal';\n var sliderValue = getCurrentSliderValue(props, color);\n var midPoint = ishorizontal ? width / 2 : height / 2;\n var handlePos = handleStart + sliderValue / 100 * handleRange;\n\n if (ishorizontal) {\n handlePos = -1 * handlePos + handleRange + handleStart * 2;\n }\n\n return {\n x: ishorizontal ? midPoint : handlePos,\n y: ishorizontal ? handlePos : midPoint\n };\n}\n/**\r\n * @desc Get the gradient stops for a slider\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderGradient(props, color) {\n var hsv = color.hsv;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return [[0, \"rgb(\" + 0 + \",\" + rgb.g + \",\" + rgb.b + \")\"], [100, \"rgb(\" + 255 + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'green':\n return [[0, \"rgb(\" + rgb.r + \",\" + 0 + \",\" + rgb.b + \")\"], [100, \"rgb(\" + rgb.r + \",\" + 255 + \",\" + rgb.b + \")\"]];\n\n case 'blue':\n return [[0, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 0 + \")\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 255 + \")\"]];\n\n case 'alpha':\n return [[0, \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",0)\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'kelvin':\n var stops = [];\n var min = props.minTemperature;\n var max = props.maxTemperature;\n var numStops = 8;\n var range = max - min;\n\n for (var kelvin = min, stop = 0; kelvin < max; kelvin += range / numStops, stop += 1) {\n var _IroColor$kelvinToRgb = IroColor.kelvinToRgb(kelvin),\n r = _IroColor$kelvinToRgb.r,\n g = _IroColor$kelvinToRgb.g,\n b = _IroColor$kelvinToRgb.b;\n\n stops.push([100 / numStops * stop, \"rgb(\" + r + \",\" + g + \",\" + b + \")\"]);\n }\n\n return stops;\n\n case 'hue':\n return [[0, '#f00'], [16.666, '#ff0'], [33.333, '#0f0'], [50, '#0ff'], [66.666, '#00f'], [83.333, '#f0f'], [100, '#f00']];\n\n case 'saturation':\n var noSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 0,\n v: hsv.v\n });\n var fullSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 100,\n v: hsv.v\n });\n return [[0, \"hsl(\" + noSat.h + \",\" + noSat.s + \"%,\" + noSat.l + \"%)\"], [100, \"hsl(\" + fullSat.h + \",\" + fullSat.s + \"%,\" + fullSat.l + \"%)\"]];\n\n case 'value':\n default:\n var hsl = IroColor.hsvToHsl({\n h: hsv.h,\n s: hsv.s,\n v: 100\n });\n return [[0, '#000'], [100, \"hsl(\" + hsl.h + \",\" + hsl.s + \"%,\" + hsl.l + \"%)\"]];\n }\n}\n\nvar TAU = Math.PI * 2; // javascript's modulo operator doesn't produce positive numbers with negative input\n// https://dev.to/maurobringolf/a-neat-trick-to-compute-modulo-of-negative-numbers-111e\n\nvar mod = function mod(a, n) {\n return (a % n + n) % n;\n}; // distance between points (x, y) and (0, 0)\n\n\nvar dist = function dist(x, y) {\n return Math.sqrt(x * x + y * y);\n};\n/**\r\n * @param props - wheel props\r\n * @internal\r\n */\n\n\nfunction getHandleRange(props) {\n return props.width / 2 - props.padding - props.handleRadius - props.borderWidth;\n}\n/**\r\n * Returns true if point (x, y) lands inside the wheel\r\n * @param props - wheel props\r\n * @param x\r\n * @param y\r\n */\n\n\nfunction isInputInsideWheel(props, x, y) {\n var _getWheelDimensions = getWheelDimensions(props),\n cx = _getWheelDimensions.cx,\n cy = _getWheelDimensions.cy;\n\n var r = props.width / 2;\n return dist(cx - x, cy - y) < r;\n}\n/**\r\n * @desc Get the point as the center of the wheel\r\n * @param props - wheel props\r\n */\n\nfunction getWheelDimensions(props) {\n var r = props.width / 2;\n return {\n width: props.width,\n radius: r - props.borderWidth,\n cx: r,\n cy: r\n };\n}\n/**\r\n * @desc Translate an angle according to wheelAngle and wheelDirection\r\n * @param props - wheel props\r\n * @param angle - input angle\r\n */\n\nfunction translateWheelAngle(props, angle, invert) {\n var wheelAngle = props.wheelAngle;\n var wheelDirection = props.wheelDirection; // inverted and clockwisee\n\n if (invert && wheelDirection === 'clockwise') { angle = wheelAngle + angle; } // clockwise (input handling)\n else if (wheelDirection === 'clockwise') { angle = 360 - wheelAngle + angle; } // inverted and anticlockwise\n else if (invert && wheelDirection === 'anticlockwise') { angle = wheelAngle + 180 - angle; } // anticlockwise (input handling)\n else if (wheelDirection === 'anticlockwise') { angle = wheelAngle - angle; }\n return mod(angle, 360);\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - wheel props\r\n * @param color\r\n */\n\nfunction getWheelHandlePosition(props, color) {\n var hsv = color.hsv;\n\n var _getWheelDimensions2 = getWheelDimensions(props),\n cx = _getWheelDimensions2.cx,\n cy = _getWheelDimensions2.cy;\n\n var handleRange = getHandleRange(props);\n var handleAngle = (180 + translateWheelAngle(props, hsv.h, true)) * (TAU / 360);\n var handleDist = hsv.s / 100 * handleRange;\n var direction = props.wheelDirection === 'clockwise' ? -1 : 1;\n return {\n x: cx + handleDist * Math.cos(handleAngle) * direction,\n y: cy + handleDist * Math.sin(handleAngle) * direction\n };\n}\n/**\r\n * @desc Get the current wheel value from user input\r\n * @param props - wheel props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getWheelValueFromInput(props, x, y) {\n var _getWheelDimensions3 = getWheelDimensions(props),\n cx = _getWheelDimensions3.cx,\n cy = _getWheelDimensions3.cy;\n\n var handleRange = getHandleRange(props);\n x = cx - x;\n y = cy - y; // Calculate the hue by converting the angle to radians\n\n var hue = translateWheelAngle(props, Math.atan2(-y, -x) * (360 / TAU)); // Find the point's distance from the center of the wheel\n // This is used to show the saturation level\n\n var handleDist = Math.min(dist(x, y), handleRange);\n return {\n h: Math.round(hue),\n s: Math.round(100 / handleRange * handleDist)\n };\n}\n/**\r\n * @desc Get the bounding dimensions of the box\r\n * @param props - box props\r\n */\n\nfunction getBoxDimensions(props) {\n var width = props.width,\n boxHeight = props.boxHeight,\n padding = props.padding,\n handleRadius = props.handleRadius;\n return {\n width: width,\n height: boxHeight != null ? boxHeight : width,\n radius: padding + handleRadius\n };\n}\n/**\r\n * @desc Get the current box value from user input\r\n * @param props - box props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getBoxValueFromInput(props, x, y) {\n var _getBoxDimensions = getBoxDimensions(props),\n width = _getBoxDimensions.width,\n height = _getBoxDimensions.height,\n radius = _getBoxDimensions.radius;\n\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n var percentX = (x - handleStart) / handleRangeX * 100;\n var percentY = (y - handleStart) / handleRangeY * 100;\n return {\n s: Math.max(0, Math.min(percentX, 100)),\n v: Math.max(0, Math.min(100 - percentY, 100))\n };\n}\n/**\r\n * @desc Get the current box handle position for a given color\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxHandlePosition(props, color) {\n var _getBoxDimensions2 = getBoxDimensions(props),\n width = _getBoxDimensions2.width,\n height = _getBoxDimensions2.height,\n radius = _getBoxDimensions2.radius;\n\n var hsv = color.hsv;\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n return {\n x: handleStart + hsv.s / 100 * handleRangeX,\n y: handleStart + (handleRangeY - hsv.v / 100 * handleRangeY)\n };\n}\n/**\r\n * @desc Get the gradient stops for a box\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxGradients(props, color) {\n var hue = color.hue;\n return [// saturation gradient\n [[0, '#fff'], [100, \"hsl(\" + hue + \",100%,50%)\"]], // lightness gradient\n [[0, 'rgba(0,0,0,0)'], [100, '#000']]];\n}\n\n// Keep track of html <base> elements for resolveSvgUrl\n// getElementsByTagName returns a live HTMLCollection, which stays in sync with the DOM tree\n// So it only needs to be called once\nvar BASE_ELEMENTS;\n/**\r\n * @desc Resolve an SVG reference URL\r\n * This is required to work around how Safari and iOS webviews handle gradient URLS under certain conditions\r\n * If a page is using a client-side routing library which makes use of the HTML <base> tag,\r\n * Safari won't be able to render SVG gradients properly (as they are referenced by URLs)\r\n * More info on the problem:\r\n * https://stackoverflow.com/questions/19742805/angular-and-svg-filters/19753427#19753427\r\n * https://github.com/jaames/iro.js/issues/18\r\n * https://github.com/jaames/iro.js/issues/45\r\n * https://github.com/jaames/iro.js/pull/89\r\n * @props url - SVG reference URL\r\n */\n\nfunction resolveSvgUrl(url) {\n if (!BASE_ELEMENTS) { BASE_ELEMENTS = document.getElementsByTagName('base'); } // Sniff useragent string to check if the user is running Safari\n\n var ua = window.navigator.userAgent;\n var isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n var isIos = /iPhone|iPod|iPad/i.test(ua);\n var location = window.location;\n return (isSafari || isIos) && BASE_ELEMENTS.length > 0 ? location.protocol + \"//\" + location.host + location.pathname + location.search + url : url;\n}\n/**\r\n * @desc Given a specifc (x, y) position, test if there's a handle there and return its index, else return null.\r\n * This is used for components like the box and wheel which support multiple handles when multicolor is active\r\n * @props x - point x position\r\n * @props y - point y position\r\n * @props handlePositions - array of {x, y} coords for each handle\r\n */\n\nfunction getHandleAtPoint(props, x, y, handlePositions) {\n for (var i = 0; i < handlePositions.length; i++) {\n var dX = handlePositions[i].x - x;\n var dY = handlePositions[i].y - y;\n var dist = Math.sqrt(dX * dX + dY * dY);\n\n if (dist < props.handleRadius) {\n return i;\n }\n }\n\n return null;\n}\n\nfunction cssBorderStyles(props) {\n return {\n boxSizing: 'border-box',\n border: props.borderWidth + \"px solid \" + props.borderColor\n };\n}\nfunction cssGradient(type, direction, stops) {\n return type + \"-gradient(\" + direction + \", \" + stops.map(function (_ref) {\n var o = _ref[0],\n col = _ref[1];\n return col + \" \" + o + \"%\";\n }).join(',') + \")\";\n}\nfunction cssValue(value) {\n if (typeof value === 'string') { return value; }\n return value + \"px\";\n}\n\nvar iroColorPickerOptionDefaults = {\n width: 300,\n height: 300,\n color: '#fff',\n colors: [],\n padding: 6,\n layoutDirection: 'vertical',\n borderColor: '#fff',\n borderWidth: 0,\n handleRadius: 8,\n activeHandleRadius: null,\n handleSvg: null,\n handleProps: {\n x: 0,\n y: 0\n },\n wheelLightness: true,\n wheelAngle: 0,\n wheelDirection: 'anticlockwise',\n sliderSize: null,\n sliderMargin: 12,\n boxHeight: null\n};\n\nvar SECONDARY_EVENTS = [\"mousemove\" /* MouseMove */, \"touchmove\" /* TouchMove */, \"mouseup\" /* MouseUp */, \"touchend\" /* TouchEnd */];\r\n// Base component class for iro UI components\r\n// This extends the Preact component class to allow them to react to mouse/touch input events by themselves\r\nvar IroComponentWrapper = /*@__PURE__*/(function (Component) {\n function IroComponentWrapper(props) {\r\n Component.call(this, props);\r\n // Generate unique ID for the component\r\n // This can be used to generate unique IDs for gradients, etc\r\n this.uid = (Math.random() + 1).toString(36).substring(5);\r\n }\n\n if ( Component ) IroComponentWrapper.__proto__ = Component;\n IroComponentWrapper.prototype = Object.create( Component && Component.prototype );\n IroComponentWrapper.prototype.constructor = IroComponentWrapper;\r\n IroComponentWrapper.prototype.render = function render (props) {\r\n var eventHandler = this.handleEvent.bind(this);\r\n var rootProps = {\r\n onMouseDown: eventHandler,\r\n // https://github.com/jaames/iro.js/issues/126\r\n // https://github.com/preactjs/preact/issues/2113#issuecomment-553408767\r\n ontouchstart: eventHandler,\r\n };\r\n var isHorizontal = props.layoutDirection === 'horizontal';\r\n var margin = props.margin === null ? props.sliderMargin : props.margin;\r\n var rootStyles = {\r\n overflow: 'visible',\r\n display: isHorizontal ? 'inline-block' : 'block'\r\n };\r\n // first component shouldn't have any margin\r\n if (props.index > 0) {\r\n rootStyles[isHorizontal ? 'marginLeft' : 'marginTop'] = margin;\r\n }\r\n return (h(d, null, props.children(this.uid, rootProps, rootStyles)));\r\n };\r\n // More info on handleEvent:\r\n // https://medium.com/@WebReflection/dom-handleevent-a-cross-platform-standard-since-year-2000-5bf17287fd38\r\n // TL;DR this lets us have a single point of entry for multiple events, and we can avoid callback/binding hell\r\n IroComponentWrapper.prototype.handleEvent = function handleEvent (e) {\n var this$1 = this;\n\r\n var inputHandler = this.props.onInput;\r\n // Get the screen position of the component\r\n var bounds = this.base.getBoundingClientRect();\r\n // Prefect default browser action\r\n e.preventDefault();\r\n // Detect if the event is a touch event by checking if it has the `touches` property\r\n // If it is a touch event, use the first touch input\r\n var point = e.touches ? e.changedTouches[0] : e;\r\n var x = point.clientX - bounds.left;\r\n var y = point.clientY - bounds.top;\r\n switch (e.type) {\r\n case \"mousedown\" /* MouseDown */:\r\n case \"touchstart\" /* TouchStart */:\r\n var result = inputHandler(x, y, 0 /* Start */);\r\n if (result !== false) {\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.addEventListener(event, this$1, { passive: false });\r\n });\r\n }\r\n break;\r\n case \"mousemove\" /* MouseMove */:\r\n case \"touchmove\" /* TouchMove */:\r\n inputHandler(x, y, 1 /* Move */);\r\n break;\r\n case \"mouseup\" /* MouseUp */:\r\n case \"touchend\" /* TouchEnd */:\r\n inputHandler(x, y, 2 /* End */);\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.removeEventListener(event, this$1, { passive: false });\r\n });\r\n break;\r\n }\r\n };\n\n return IroComponentWrapper;\n}(m));\n\nfunction IroHandle(props) {\r\n var radius = props.r;\r\n var url = props.url;\r\n var cx = radius;\r\n var cy = radius;\r\n return (h(\"svg\", { className: (\"IroHandle IroHandle--\" + (props.index) + \" \" + (props.isActive ? 'IroHandle--isActive' : '')), style: {\r\n '-webkit-tap-highlight-color': 'rgba(0, 0, 0, 0);',\r\n transform: (\"translate(\" + (cssValue(props.x)) + \", \" + (cssValue(props.y)) + \")\"),\r\n willChange: 'transform',\r\n top: cssValue(-radius),\r\n left: cssValue(-radius),\r\n width: cssValue(radius * 2),\r\n height: cssValue(radius * 2),\r\n position: 'absolute',\r\n overflow: 'visible'\r\n } },\r\n url && (h(\"use\", Object.assign({ xlinkHref: resolveSvgUrl(url) }, props.props))),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius, fill: \"none\", \"stroke-width\": 2, stroke: \"#000\" })),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius - 2, fill: props.fill, \"stroke-width\": 2, stroke: \"#fff\" }))));\r\n}\r\nIroHandle.defaultProps = {\r\n fill: 'none',\r\n x: 0,\r\n y: 0,\r\n r: 8,\r\n url: null,\r\n props: { x: 0, y: 0 }\r\n};\n\nfunction IroSlider(props) {\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var ref = getSliderDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var handlePos = getSliderHandlePosition(props, activeColor);\r\n var gradient = getSliderGradient(props, activeColor);\r\n function handleInput(x, y, type) {\r\n var value = getSliderValueFromInput(props, x, y);\r\n props.parent.inputActive = true;\r\n activeColor[props.sliderType] = value;\r\n props.onInput(type, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroSlider\", style: Object.assign({}, {position: 'relative',\r\n width: cssValue(width),\r\n height: cssValue(height),\r\n borderRadius: cssValue(radius),\r\n // checkered bg to represent alpha\r\n background: \"conic-gradient(#ccc 25%, #fff 0 50%, #ccc 0 75%, #fff 0)\",\r\n backgroundSize: '8px 8px'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroSliderGradient\", style: Object.assign({}, {position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: cssValue(radius),\r\n background: cssGradient('linear', props.layoutDirection === 'horizontal' ? 'to top' : 'to right', gradient)},\r\n cssBorderStyles(props)) }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePos.x, y: handlePos.y }))); }));\r\n}\r\nIroSlider.defaultProps = Object.assign({}, sliderDefaultOptions);\n\nfunction IroBox(props) {\r\n var ref = getBoxDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var colors = props.colors;\r\n var colorPicker = props.parent;\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var gradients = getBoxGradients(props, activeColor);\r\n var handlePositions = colors.map(function (color) { return getBoxHandlePosition(props, color); });\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroBox\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(height),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroBox\", style: Object.assign({}, {width: '100%',\r\n height: '100%',\r\n borderRadius: cssValue(radius)},\r\n cssBorderStyles(props),\r\n {background: cssGradient('linear', 'to bottom', gradients[1])\r\n + ',' +\r\n cssGradient('linear', 'to right', gradients[0])}) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nvar HUE_GRADIENT_CLOCKWISE = 'conic-gradient(red, yellow, lime, aqua, blue, magenta, red)';\r\nvar HUE_GRADIENT_ANTICLOCKWISE = 'conic-gradient(red, magenta, blue, aqua, lime, yellow, red)';\r\nfunction IroWheel(props) {\r\n var ref = getWheelDimensions(props);\n var width = ref.width;\n var colors = props.colors;\n var borderWidth = props.borderWidth;\r\n var colorPicker = props.parent;\r\n var activeColor = props.color;\r\n var hsv = activeColor.hsv;\r\n var handlePositions = colors.map(function (color) { return getWheelHandlePosition(props, color); });\r\n var circleStyles = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n boxSizing: 'border-box'\r\n };\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // input hitbox is a square, \r\n // so we want to ignore any initial clicks outside the circular shape of the wheel\r\n if (!isInputInsideWheel(props, x, y)) {\r\n // returning false will cease all event handling for this interaction\r\n return false;\r\n }\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroWheel\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(width),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroWheelHue\", style: Object.assign({}, circleStyles,\r\n {transform: (\"rotateZ(\" + (props.wheelAngle + 90) + \"deg)\"),\r\n background: props.wheelDirection === 'clockwise' ? HUE_GRADIENT_CLOCKWISE : HUE_GRADIENT_ANTICLOCKWISE}) }),\r\n h(\"div\", { className: \"IroWheelSaturation\", style: Object.assign({}, circleStyles,\r\n {background: 'radial-gradient(circle closest-side, #fff, transparent)'}) }),\r\n props.wheelLightness && (h(\"div\", { className: \"IroWheelLightness\", style: Object.assign({}, circleStyles,\r\n {background: '#000',\r\n opacity: 1 - hsv.v / 100}) })),\r\n h(\"div\", { className: \"IroWheelBorder\", style: Object.assign({}, circleStyles,\r\n cssBorderStyles(props)) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nfunction createWidget(WidgetComponent) {\r\n var widgetFactory = function (parent, props) {\r\n var widget; // will become an instance of the widget component class\r\n var widgetRoot = document.createElement('div');\r\n // Render widget into a temp DOM node\r\n I(h(WidgetComponent, Object.assign({}, {ref: function (ref) { return widget = ref; }},\r\n props)), widgetRoot);\r\n function mountWidget() {\r\n var container = parent instanceof Element ? parent : document.querySelector(parent);\r\n container.appendChild(widget.base);\r\n widget.onMount(container);\r\n }\r\n // Mount it into the DOM when the page document is ready\r\n if (document.readyState !== 'loading') {\r\n mountWidget();\r\n }\r\n else {\r\n document.addEventListener('DOMContentLoaded', mountWidget);\r\n }\r\n return widget;\r\n };\r\n // Allow the widget factory to inherit component prototype + static class methods\r\n // This makes it easier for plugin authors to extend the base widget component\r\n widgetFactory.prototype = WidgetComponent.prototype;\r\n Object.assign(widgetFactory, WidgetComponent);\r\n // Add reference to base component too\r\n widgetFactory.__component = WidgetComponent;\r\n return widgetFactory;\r\n}\n\nvar IroColorPicker = /*@__PURE__*/(function (Component) {\n function IroColorPicker(props) {\n var this$1 = this;\n\r\n Component.call(this, props);\r\n this.colors = [];\r\n this.inputActive = false;\r\n this.events = {};\r\n this.activeEvents = {};\r\n this.deferredEvents = {};\r\n this.id = props.id;\r\n var colors = props.colors.length > 0 ? props.colors : [props.color];\r\n colors.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n this.setActiveColor(0);\r\n // Pass all the props into the component's state,\r\n // Except we want to add the color object and make sure that refs aren't passed down to children\r\n this.state = Object.assign({}, props,\r\n {color: this.color,\r\n colors: this.colors,\r\n layout: props.layout});\r\n }\n\n if ( Component ) IroColorPicker.__proto__ = Component;\n IroColorPicker.prototype = Object.create( Component && Component.prototype );\n IroColorPicker.prototype.constructor = IroColorPicker;\r\n // Plubic multicolor API\r\n /**\r\n * @desc Add a color to the color picker\r\n * @param color new color to add\r\n * @param index optional color index\r\n */\r\n IroColorPicker.prototype.addColor = function addColor (color, index) {\n if ( index === void 0 ) index = this.colors.length;\n\r\n // Create a new iro.Color\r\n // Also bind it to onColorChange, so whenever the color changes it updates the color picker\r\n var newColor = new IroColor(color, this.onColorChange.bind(this));\r\n // Insert color @ the given index\r\n this.colors.splice(index, 0, newColor);\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // Fire color init event\r\n this.deferredEmit('color:init', newColor);\r\n };\r\n /**\r\n * @desc Remove a color from the color picker\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.removeColor = function removeColor (index) {\r\n var color = this.colors.splice(index, 1)[0];\r\n // Destroy the color object -- this unbinds it from the color picker\r\n color.unbind();\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // If the active color was removed, default active color to 0\r\n if (color.index === this.color.index) {\r\n this.setActiveColor(0);\r\n }\r\n // Fire color remove event\r\n this.emit('color:remove', color);\r\n };\r\n /**\r\n * @desc Set the currently active color\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.setActiveColor = function setActiveColor (index) {\r\n this.color = this.colors[index];\r\n if (this.state) {\r\n this.setState({ color: this.color });\r\n }\r\n // Fire color switch event\r\n this.emit('color:setActive', this.color);\r\n };\r\n /**\r\n * @desc Replace all of the current colorPicker colors\r\n * @param newColorValues list of new colors to add\r\n */\r\n IroColorPicker.prototype.setColors = function setColors (newColorValues, activeColorIndex) {\n var this$1 = this;\n if ( activeColorIndex === void 0 ) activeColorIndex = 0;\n\r\n // Unbind color events\r\n this.colors.forEach(function (color) { return color.unbind(); });\r\n // Destroy old colors\r\n this.colors = [];\r\n // Add new colors\r\n newColorValues.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n // Reset active color\r\n this.setActiveColor(activeColorIndex);\r\n this.emit('color:setAll', this.colors);\r\n };\r\n // Public ColorPicker events API\r\n /**\r\n * @desc Set a callback function for an event\r\n * @param eventList event(s) to listen to\r\n * @param callback - Function called when the event is fired\r\n */\r\n IroColorPicker.prototype.on = function on (eventList, callback) {\n var this$1 = this;\n\r\n var events = this.events;\r\n // eventList can be an eventType string or an array of eventType strings\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n // Add event callback\r\n (events[eventType] || (events[eventType] = [])).push(callback);\r\n // Call deferred events\r\n // These are events that can be stored until a listener for them is added\r\n if (this$1.deferredEvents[eventType]) {\r\n // Deffered events store an array of arguments from when the event was called\r\n this$1.deferredEvents[eventType].forEach(function (args) {\r\n callback.apply(null, args);\r\n });\r\n // Clear deferred events\r\n this$1.deferredEvents[eventType] = [];\r\n }\r\n });\r\n };\r\n /**\r\n * @desc Remove a callback function for an event added with on()\r\n * @param eventList - event(s) to listen to\r\n * @param callback - original callback function to remove\r\n */\r\n IroColorPicker.prototype.off = function off (eventList, callback) {\n var this$1 = this;\n\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n var callbackList = this$1.events[eventType];\r\n // this.emitHook('event:off', eventType, callback);\r\n if (callbackList)\r\n { callbackList.splice(callbackList.indexOf(callback), 1); }\r\n });\r\n };\r\n /**\r\n * @desc Emit an event\r\n * @param eventType event to emit\r\n */\r\n IroColorPicker.prototype.emit = function emit (eventType) {\n var this$1 = this;\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\r\n var activeEvents = this.activeEvents;\r\n var isEventActive = activeEvents.hasOwnProperty(eventType) ? activeEvents[eventType] : false;\r\n // Prevent event callbacks from firing if the event is already active\r\n // This stops infinite loops if something in an event callback causes the same event to be fired again\r\n // (e.g. setting the color inside a color:change callback)\r\n if (!isEventActive) {\r\n activeEvents[eventType] = true;\r\n var callbackList = this.events[eventType] || [];\r\n callbackList.forEach(function (fn) { return fn.apply(this$1, args); });\r\n activeEvents[eventType] = false;\r\n }\r\n };\r\n /**\r\n * @desc Emit an event now, or save it for when the relevent event listener is added\r\n * @param eventType - The name of the event to emit\r\n */\r\n IroColorPicker.prototype.deferredEmit = function deferredEmit (eventType) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\r\n var deferredEvents = this.deferredEvents;\r\n (ref = this).emit.apply(ref, [ eventType ].concat( args ));\r\n (deferredEvents[eventType] || (deferredEvents[eventType] = [])).push(args);\r\n };\r\n // Public utility methods\r\n IroColorPicker.prototype.setOptions = function setOptions (newOptions) {\r\n this.setState(newOptions);\r\n };\r\n /**\r\n * @desc Resize the color picker\r\n * @param width - new width\r\n */\r\n IroColorPicker.prototype.resize = function resize (width) {\r\n this.setOptions({ width: width });\r\n };\r\n /**\r\n * @desc Reset the color picker to the initial color provided in the color picker options\r\n */\r\n IroColorPicker.prototype.reset = function reset () {\r\n this.colors.forEach(function (color) { return color.reset(); });\r\n this.setState({ colors: this.colors });\r\n };\r\n /**\r\n * @desc Called by the createWidget wrapper when the element is mounted into the page\r\n * @param container - the container element for this ColorPicker instance\r\n */\r\n IroColorPicker.prototype.onMount = function onMount (container) {\r\n this.el = container;\r\n this.deferredEmit('mount', this);\r\n };\r\n // Internal methods\r\n /**\r\n * @desc React to a color update\r\n * @param color - current color\r\n * @param changes - shows which h,s,v,a color channels changed\r\n */\r\n IroColorPicker.prototype.onColorChange = function onColorChange (color, changes) {\r\n this.setState({ color: this.color });\r\n if (this.inputActive) {\r\n this.inputActive = false;\r\n this.emit('input:change', color, changes);\r\n }\r\n this.emit('color:change', color, changes);\r\n };\r\n /**\r\n * @desc Handle input from a UI control element\r\n * @param type - event type\r\n */\r\n IroColorPicker.prototype.emitInputEvent = function emitInputEvent (type, originId) {\r\n if (type === 0 /* Start */) {\r\n this.emit('input:start', this.color, originId);\r\n }\r\n else if (type === 1 /* Move */) {\r\n this.emit('input:move', this.color, originId);\r\n }\r\n else if (type === 2 /* End */) {\r\n this.emit('input:end', this.color, originId);\r\n }\r\n };\r\n IroColorPicker.prototype.render = function render (props, state) {\n var this$1 = this;\n\r\n var layout = state.layout;\r\n // use layout shorthands\r\n if (!Array.isArray(layout)) {\r\n switch (layout) {\r\n // TODO: implement some?\r\n default:\r\n layout = [\r\n { component: IroWheel },\r\n { component: IroSlider } ];\r\n }\r\n // add transparency slider to the layout\r\n if (state.transparency) {\r\n layout.push({\r\n component: IroSlider,\r\n options: {\r\n sliderType: 'alpha'\r\n }\r\n });\r\n }\r\n }\r\n return (h(\"div\", { class: \"IroColorPicker\", id: state.id, style: {\r\n display: state.display\r\n } }, layout.map(function (ref, componentIndex) {\n var UiComponent = ref.component;\n var options = ref.options;\n\n return (h(UiComponent, Object.assign({}, state, options, { ref: undefined, onInput: this$1.emitInputEvent.bind(this$1), parent: this$1, index: componentIndex })));\n })));\r\n };\n\n return IroColorPicker;\n}(m));\r\nIroColorPicker.defaultProps = Object.assign({}, iroColorPickerOptionDefaults,\r\n {colors: [],\r\n display: 'block',\r\n id: null,\r\n layout: 'default',\r\n margin: null});\r\nvar IroColorPickerWidget = createWidget(IroColorPicker);\n\nvar iro;\r\n(function (iro) {\r\n iro.version = \"5.5.2\"; // replaced by @rollup/plugin-replace; see rollup.config.js\r\n iro.Color = IroColor;\r\n iro.ColorPicker = IroColorPickerWidget;\r\n var ui;\r\n (function (ui) {\r\n ui.h = h;\r\n ui.ComponentBase = IroComponentWrapper;\r\n ui.Handle = IroHandle;\r\n ui.Slider = IroSlider;\r\n ui.Wheel = IroWheel;\r\n ui.Box = IroBox;\r\n })(ui = iro.ui || (iro.ui = {}));\r\n})(iro || (iro = {}));\r\nvar iro$1 = iro;\n\nexport default iro$1;\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Utility function to merge Tailwind CSS classes\n * Combines clsx for conditional classes with tailwind-merge for proper class overrides\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import tinycolor, { ColorFormats, Instance } from 'tinycolor2';\n\ninterface IInput {\n h: number;\n s: number;\n v: number;\n}\n\nexport interface ITinyColor {\n color: Instance;\n alphaValue: number;\n blueValue: number;\n brightnessValue: number;\n greenValue: number;\n hueValue: number;\n lightnessValue: number;\n saturationValue: number;\n redValue: number;\n initRgb(): void;\n initHsb(): void;\n toHexString(): string;\n toRgbString(): string;\n toHsv(): ColorFormats.HSVA;\n hex: string;\n hue: number;\n saturation: number;\n lightness: number;\n brightness: number;\n red: number;\n green: number;\n blue: number;\n alpha: number;\n RGB: number[];\n HSB: number[];\n}\n\nexport default class TinyColor {\n color: Instance;\n alphaValue: number;\n hueValue: number;\n saturationValue: number;\n brightnessValue: number;\n redValue: number;\n greenValue: number;\n blueValue: number;\n lightnessValue: number;\n\n constructor(input: IInput | string) {\n this.color = tinycolor(input);\n\n this.initRgb();\n this.initHsb();\n\n const initAlpha = this.color.toRgb().a;\n this.alphaValue = Math.min(1, initAlpha) * 100;\n\n this.hueValue = this.color.toHsv().h;\n this.saturationValue = this.color.toHsv().s;\n this.brightnessValue = this.color.toHsv().v;\n this.redValue = this.color.toRgb().r;\n this.greenValue = this.color.toRgb().g;\n this.blueValue = this.color.toRgb().b;\n this.lightnessValue = 0;\n }\n\n static isValidHex(hex: string) {\n return tinycolor(hex).isValid();\n }\n\n initRgb = () => {\n const { r, g, b } = this.color.toRgb();\n\n this.redValue = r;\n this.greenValue = g;\n this.blueValue = b;\n };\n\n initHsb = () => {\n const { h, s, v } = this.color.toHsv();\n\n this.hueValue = h;\n this.saturationValue = s;\n this.brightnessValue = v;\n };\n\n toHexString = () => {\n return this.color.toHexString();\n };\n\n toRgbString = () => {\n return this.color.toRgbString();\n };\n\n toHsv = () => {\n return this.color.toHsv();\n };\n\n get hex() {\n return this.color.toHex();\n }\n\n set hue(value) {\n this.color = tinycolor({\n h: value,\n s: this.saturation,\n v: this.brightness\n });\n\n this.initRgb();\n this.hueValue = value;\n }\n\n get hue() {\n return this.hueValue;\n }\n\n set saturation(value) {\n this.color = tinycolor({\n h: this.hue,\n s: value,\n v: this.brightness\n });\n\n this.initRgb();\n this.saturationValue = value;\n }\n\n get saturation() {\n return this.saturationValue;\n }\n\n set lightness(value) {\n this.color = tinycolor({\n h: this.hue,\n s: this.saturation,\n l: value\n });\n\n this.initRgb();\n this.lightnessValue = value;\n }\n\n get lightness() {\n return this.lightnessValue;\n }\n\n set brightness(value) {\n this.color = tinycolor({\n h: this.hue,\n s: this.saturation,\n v: value\n });\n\n this.initRgb();\n this.brightnessValue = value;\n }\n\n get brightness() {\n return this.brightnessValue;\n }\n\n // red\n set red(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n r: value\n });\n\n this.initHsb();\n this.redValue = value;\n }\n\n get red() {\n return this.redValue;\n }\n\n // green\n set green(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n g: value\n });\n\n this.initHsb();\n this.greenValue = value;\n }\n\n get green() {\n return this.greenValue;\n }\n\n // blue\n set blue(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n b: value\n });\n\n this.initHsb();\n this.blueValue = value;\n }\n\n get blue() {\n return this.blueValue;\n }\n\n // alpha\n set alpha(value) {\n this.color.setAlpha(value / 100);\n }\n\n get alpha() {\n return this.color.getAlpha() * 100;\n }\n\n get RGB() {\n return [this.red, this.green, this.blue];\n }\n\n get HSB() {\n return [this.hue, this.saturation, this.brightness];\n }\n}\n","import tinycolor from 'tinycolor2';\n\nexport default (value: string) => {\n const defaultObject = {\n hex: '#ffffff',\n alpha: 100\n };\n const tinyColor = tinycolor(value);\n\n if (value) {\n if (\n tinyColor.isValid() &&\n !value.trim().startsWith('radial-gradient') &&\n !value.trim().startsWith('linear-gradient')\n ) {\n defaultObject.hex = tinyColor.toHexString();\n defaultObject.alpha = Math.round(tinyColor.getAlpha() * 100);\n } else {\n return defaultObject;\n }\n }\n\n return defaultObject;\n};\n","export default (hexVal: string, opacityVal: number) => {\n const opacity = isNaN(opacityVal) ? 100 : opacityVal;\n const hex = hexVal.replace('#', '');\n let r;\n let g;\n let b;\n\n if (hex.length === 6) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n } else {\n const rd = hex.substring(0, 1) + hex.substring(0, 1);\n const gd = hex.substring(1, 2) + hex.substring(1, 2);\n const bd = hex.substring(2, 3) + hex.substring(2, 3);\n r = parseInt(rd, 16);\n g = parseInt(gd, 16);\n b = parseInt(bd, 16);\n }\n\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + opacity / 100 + ')';\n};\n","export default (color: any) => {\n if (!color) return;\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0];\n if (color[0] === '#') {\n if (color.length < 7) {\n color =\n '#' +\n color[1] +\n color[1] +\n color[2] +\n color[2] +\n color[3] +\n color[3] +\n (color.length > 4 ? color[4] + color[4] : '');\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n\n if (color.indexOf('rgb') === 0) {\n color += ',1';\n // eslint-disable-next-line\n return color.match(/[\\.\\d]+/g).map((a: string) => {\n return +a;\n });\n }\n};\n","export default (params: Array<string | number>) => {\n if (!Array.isArray(params)) return '';\n\n if (params.length < 3 || params.length > 4) return '';\n\n const parts = params.map(function (e: string | number) {\n let r = (+e).toString(16);\n r.length === 1 && (r = '0' + r);\n return r;\n }, []);\n\n return !~parts.indexOf('NaN') ? '#' + parts.join('') : '';\n};\n","import tinycolor from 'tinycolor2';\n\nexport default (\n color: string,\n format: string,\n showAlpha: boolean,\n stateColorAlpha?: number\n) => {\n const tinyColor = tinycolor(color);\n let value: string;\n const alphaValue = stateColorAlpha || tinyColor.getAlpha() * 100;\n\n switch (format) {\n case 'rgb':\n value = tinyColor.toRgbString();\n break;\n case 'hsl':\n value = tinyColor.toHslString();\n break;\n case 'hex':\n if (showAlpha && alphaValue !== 100) {\n value = tinyColor.toHex8String();\n } else {\n value = tinyColor.toHexString();\n }\n break;\n\n default:\n value = '';\n break;\n }\n\n return value;\n};\n","import checkFormat from './checkFormat';\n\nexport default (\n type: string,\n stops: Array<any>,\n modifier: string | number | undefined,\n format: 'rgb' | 'hsl' | 'hex' = 'rgb',\n showAlpha: boolean\n) => {\n let str = '';\n\n switch (type) {\n case 'linear':\n if (typeof modifier === 'number') {\n str = `linear-gradient(${modifier}deg, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n }\n if (typeof modifier === 'string') {\n str = `linear-gradient(${modifier}, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n }\n break;\n case 'radial':\n str = `radial-gradient(${modifier}, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n break;\n default:\n break;\n }\n\n return str;\n};\n","export default (hex: string) => {\n const validHex = new RegExp(\n /^#([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i\n );\n\n return validHex.test(hex);\n};\n","import { rgbaToHex } from '../color';\n\nexport default (rgba: Array<string | number>) => {\n return !!rgbaToHex(rgba);\n};\n","/* eslint no-useless-escape: off */\n/* eslint prefer-const: off */\n/* eslint no-prototype-builtins: off */\nimport tinycolor from 'tinycolor2';\n\ninterface IGradientStop {\n color: string;\n position?: number;\n}\n\ninterface IParsedGraient {\n stops: IGradientStop[];\n angle: string;\n original: string;\n line: string;\n side?: string;\n sideCorner?: string;\n parseWarning?: boolean;\n}\n\ninterface IGradientReg {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\nconst combineRegExp = (\n regexpList: ReadonlyArray<string | RegExp>,\n flags: string\n): RegExp => {\n return new RegExp(\n regexpList.reduce<string>(\n (result, item) =>\n result + (typeof item === 'string' ? item : item.source),\n ''\n ),\n flags\n );\n};\n\nconst generateRegExp = () => {\n const searchFlags = 'gi';\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/;\n const rSideCornerCapture = /to\\s+((?:(?:left|right)(?:\\s+(?:top|bottom))?))/;\n const rRadial =\n /circle at\\s+((?:(?:left|right|center|top|bottom)(?:\\s+(?:left|right|center|top|bottom))?))/;\n const rComma = /\\s*,\\s*/;\n const rColorHex = /\\#(?:[a-f0-9]{6,8}|[a-f0-9]{3})/;\n const rDigits3 = /\\(\\s*(?:\\d{1,3}%?\\s*,\\s*){2}%?\\d{1,3}%?\\s*\\)/;\n const rDigits4 = /\\(\\s*(?:\\d{1,3}%?\\s*,\\s*){2}%?\\d{1,3}%?\\s*,\\s*\\d*\\.?\\d+\\)/;\n const rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const rKeyword = /[_a-z-][_a-z0-9-]*/;\n const rColor = combineRegExp(\n [\n '(?:',\n rColorHex,\n '|',\n '(?:rgb|hsl)',\n rDigits3,\n '|',\n '(?:rgba|hsla)',\n rDigits4,\n '|',\n rKeyword,\n ')'\n ],\n ''\n );\n const rColorStop = combineRegExp(\n [rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'],\n ''\n );\n const rColorStopList = combineRegExp(\n ['(?:', rColorStop, rComma, ')*', rColorStop],\n ''\n );\n const rLineCapture = combineRegExp(\n ['(?:(', rAngle, ')|', rSideCornerCapture, '|', rRadial, ')'],\n ''\n );\n const rGradientSearch = combineRegExp(\n ['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'],\n searchFlags\n );\n const rColorStopSearch = combineRegExp(\n [\n '\\\\s*(',\n rColor,\n ')',\n '(?:\\\\s+',\n '(',\n rValue,\n '))?',\n '(?:',\n rComma,\n '\\\\s*)?'\n ],\n searchFlags\n );\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch\n };\n};\n\nconst parseGradient = (regExpLib: IGradientReg, input: string) => {\n let result: IParsedGraient = {\n stops: [],\n angle: '',\n line: '',\n original: ''\n };\n let matchGradient, matchColorStop, stopResult: IGradientStop;\n\n regExpLib.gradientSearch.lastIndex = 0;\n\n matchGradient = regExpLib.gradientSearch.exec(input);\n if (matchGradient !== null) {\n result = {\n ...result,\n original: matchGradient[0]\n };\n\n if (matchGradient[1]) {\n result.line = matchGradient[1];\n }\n\n if (matchGradient[2]) {\n result.angle = matchGradient[2];\n }\n\n if (matchGradient[3]) {\n result.sideCorner = matchGradient[3];\n }\n\n regExpLib.colorStopSearch.lastIndex = 0;\n\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[5]);\n while (matchColorStop !== null) {\n const tinyColor = tinycolor(matchColorStop[1]);\n stopResult = {\n color: tinyColor.toRgbString()\n };\n\n if (matchColorStop[2]) {\n stopResult.position = Number(\n (parseInt(matchColorStop[2], 10) / 100).toFixed(2)\n );\n }\n result.stops.push(stopResult);\n\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[5]);\n }\n }\n\n return result;\n};\n\nexport default (input: string) => {\n const regExpLib = generateRegExp();\n let result;\n const rGradientEnclosedInBrackets =\n /.*gradient\\s*\\(((?:\\([^\\)]*\\)|[^\\)\\(]*)*)\\)/;\n const match = rGradientEnclosedInBrackets.exec(input);\n\n if (match !== null) {\n result = parseGradient(regExpLib, match[1]);\n\n if (result.original.trim() !== match[1].trim()) {\n result.parseWarning = true;\n }\n\n if (\n result.stops.every((item) => item.hasOwnProperty('position')) === false\n ) {\n result = 'Not correct position';\n }\n } else {\n result = 'Failed to find gradient';\n }\n\n return result;\n};\n","import tinycolor from 'tinycolor2';\n\nimport { validGradient } from '../validation';\n\ninterface IGradientStop {\n color: string;\n position?: number;\n}\n\nconst LINEAR_POS = [\n { angle: '0', name: 'to top' },\n { angle: '45', name: 'to top right' },\n { angle: '45', name: 'to right top' },\n { angle: '90', name: 'to right' },\n { angle: '135', name: 'to right bottom' },\n { angle: '135', name: 'to bottom right' },\n { angle: '180', name: 'to bottom' },\n { angle: '225', name: 'to left bottom' },\n { angle: '225', name: 'to bottom left' },\n { angle: '270', name: 'to left' },\n { angle: '315', name: 'to top left' },\n { angle: '315', name: 'to left top' }\n];\n\nexport default (str: string) => {\n const tinyColor = tinycolor(str);\n\n const defaultStops = {\n stops: [\n ['rgba(0, 0, 0, 1)', 0, 0],\n ['rgba(183, 80, 174, 0.92)', 1, 1]\n ],\n gradient: `linear-gradient(180deg, rgba(6, 6, 6, 1) 0.0%, rgba(183, 80, 174, 0.92) 100.0%)`,\n modifier: 180,\n type: 'linear'\n };\n\n if (str === 'transparent') {\n return defaultStops;\n }\n\n if (\n tinyColor.isValid() &&\n !str.trim().startsWith('radial-gradient') &&\n !str.trim().startsWith('linear-gradient')\n ) {\n const rgbaStr = tinyColor.toRgbString();\n\n if (rgbaStr) {\n defaultStops.stops = [\n ['rgba(0, 0, 0, 1)', 0, 0],\n [rgbaStr, 1, 1]\n ];\n defaultStops.gradient = `linear-gradient(180deg, rgba(6, 6, 6, 1) 0.0%, ${rgbaStr} 100.0%)`;\n }\n\n return defaultStops;\n } else {\n str = str.replace(';', '').replace('background-image:', '');\n const gradient = validGradient(str);\n\n let stops: Array<IGradientStop> = [];\n let angle: string = '';\n\n if (\n gradient === 'Failed to find gradient' ||\n gradient === 'Not correct position'\n ) {\n console.warn('Incorrect gradient value');\n return defaultStops;\n }\n\n if (typeof gradient !== 'string') {\n stops = gradient.stops;\n angle = gradient.angle ? gradient.angle : gradient.line;\n }\n\n const [, type, content] = str.match(/^(\\w+)-gradient\\((.*)\\)$/i) || [];\n if (!type || !content) {\n console.warn('Incorrect gradient value');\n return defaultStops;\n }\n\n const findF = LINEAR_POS.find((item) => item.name === angle)?.angle;\n const helperAngle = type === 'linear' ? '180' : 'circle at center';\n const modifier = findF || angle || helperAngle;\n\n return {\n gradient: `${type}-gradient(${\n typeof gradient !== 'string' ? gradient.original : str\n })`,\n type,\n modifier:\n modifier.match(/\\d+/) !== null\n ? Number(modifier.match(/\\d+/)?.join(''))\n : modifier,\n stops: stops.map((stop, index: number) => {\n const formatStop = [`${stop.color}`, index];\n if (stop.position || stop.position === 0) {\n formatStop.splice(1, 0, stop.position);\n }\n return formatStop;\n })\n };\n }\n};\n","import { ChangeEvent, KeyboardEvent } from 'react';\n\ninterface IInput {\n alphaValue: number;\n hexValue: string;\n showAlpha?: boolean;\n onChangeAlpha: (value: string) => void;\n onChangeHex: (value: string) => void;\n}\n\nexport const getAlphaValue = (value: string) => {\n value.replace(/%/i, '');\n if (value[0] === '0' && value.length > 1) {\n return value.substr(1);\n } else if (Number(value) >= 100) {\n return 100;\n } else if (!isNaN(Number(value))) {\n return value || 0;\n }\n return parseInt(value);\n};\n\nexport const onlyDigits = (string: string) => {\n return string ? string.substr(0, 3).replace(/[^\\d]/g, '') : '';\n};\n\nexport const onlyLatins = (string: string) => {\n if (string && string.substring(0, 1) === '#') string = string.substring(1);\n return string ? string.substr(0, 6).replace(/[^a-zA-Z0-9\\s-]/gi, '') : '';\n};\n\nexport const handlePressEnter = (e: KeyboardEvent, fn: () => void) => {\n if (e.key === 'Enter') {\n fn();\n }\n};\n\nexport const inputsData = (props: IInput) => {\n const inputHex = {\n wrapClass: 'input_rgba-hex',\n labelSymbol: true,\n idInput: `rgba-hex${Math.random() * 10000}`,\n valueInput: props.hexValue,\n labelText: 'Hex',\n labelArea: 'hex',\n labelClass: 'input_rgba-label',\n onChangeInput: (e: ChangeEvent<HTMLInputElement>) =>\n props.onChangeHex(onlyLatins(e.target.value)),\n name: 'hex'\n };\n\n // Always return only hex input (no alpha input)\n return [inputHex];\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { checkFormat } from '../../../utils';\nimport { cn } from '../../../utils/cn';\nimport { getAlphaValue, handlePressEnter, inputsData } from './helpers';\n\ninterface IChange {\n hex: string;\n alpha: number;\n}\n\ntype TProps = {\n hex: string;\n alpha: number;\n format?: 'rgb' | 'hsl' | 'hex';\n showAlpha?: boolean;\n onChange: ({ hex, alpha }: IChange) => void;\n onSubmitChange?: (rgba: string) => void;\n};\n\nconst InputRgba: FC<TProps> = ({\n hex,\n alpha,\n format = 'rgb',\n showAlpha = true,\n onChange,\n onSubmitChange\n}) => {\n const [color, setColor] = useState({\n alpha,\n hex\n });\n\n const onChangeAlpha = (alpha: string) => {\n const validAlpha = getAlphaValue(alpha);\n\n setColor({\n ...color,\n alpha: Number(validAlpha)\n });\n };\n\n const onChangeHex = (hex: string) => {\n setColor({\n ...color,\n hex\n });\n };\n\n const onHandleSubmit = () => {\n const rgba = tinycolor(color.hex[0] === '#' ? color.hex : '#' + color.hex);\n rgba.setAlpha(Number(color.alpha) / 100);\n\n if (rgba && (color.alpha !== alpha || color.hex !== hex)) {\n onChange({\n hex: color.hex[0] === '#' ? color.hex : '#' + color.hex,\n alpha: Number(color.alpha)\n });\n if (onSubmitChange) {\n onSubmitChange(\n checkFormat(rgba.toRgbString(), format, showAlpha, color.alpha)\n );\n }\n } else {\n setColor({\n hex,\n alpha\n });\n onChange({\n hex,\n alpha\n });\n }\n };\n\n useEffect(() => {\n setColor({\n hex,\n alpha\n });\n }, [hex, alpha]);\n\n const inputsProps = {\n alphaValue: color.alpha,\n hexValue: color.hex.replace(/#/i, ''),\n onChangeAlpha,\n onChangeHex,\n showAlpha\n };\n\n return (\n <div className='w-full'>\n <div className='flex flex-wrap gap-3'>\n {inputsData(inputsProps).map((item, index) => {\n const {\n wrapClass,\n labelSymbol,\n idInput,\n valueInput,\n labelArea,\n onChangeInput,\n name\n } = item;\n return (\n <div\n key={index}\n className={cn('flex-1 min-w-0', 'relative group', wrapClass)}\n >\n <div className='relative'>\n <input\n type='text'\n id={idInput}\n value={`#${valueInput}`}\n aria-label={labelArea}\n onChange={(e) => onChangeInput(e)}\n onBlur={onHandleSubmit}\n onKeyPress={(e) => handlePressEnter(e, onHandleSubmit)}\n className={cn(\n 'w-full py-2.5 text-md font-mono rounded-lg',\n 'focus:ring-2 focus:ring-blue-500/20 transition-all duration-200',\n labelSymbol && 'pl-4',\n name === 'alpha' && 'pr-7'\n )}\n style={{\n backgroundColor: 'var(--colorpicker-input-bg)',\n borderColor: 'var(--colorpicker-input-border)',\n color: 'var(--colorpicker-text)',\n borderWidth: '1px',\n borderStyle: 'solid'\n }}\n />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default InputRgba;\n","import iro from '@jaames/iro';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { useTheme } from '../../providers/ThemeContext';\n\ninterface IroColorPickerProps {\n width?: number;\n color?: string;\n colors?: string[];\n display?: string;\n id?: string;\n layout?: any[];\n layoutDirection?: 'vertical' | 'horizontal';\n padding?: number;\n margin?: number;\n borderWidth?: number;\n borderColor?: string;\n handleRadius?: number;\n activeHandleRadius?: number;\n handleSvg?: string;\n handleProps?: { x: number; y: number };\n wheelLightness?: boolean;\n wheelAngle?: number;\n wheelDirection?: 'clockwise' | 'anticlockwise';\n sliderSize?: number;\n boxHeight?: number;\n onColorChange?: (color: any) => void;\n onInputChange?: (color: any) => void;\n onInputStart?: (color: any) => void;\n onInputMove?: (color: any) => void;\n onInputEnd?: (color: any) => void;\n onMount?: (colorPicker: any) => void;\n}\n\nexport interface IroColorPickerRef {\n colorPicker: any;\n}\n\nconst IroColorPicker = forwardRef<IroColorPickerRef, IroColorPickerProps>(\n (\n {\n width,\n color = '#ffffff',\n colors,\n display = 'block',\n id,\n layout,\n layoutDirection = 'vertical',\n padding = 6,\n margin = 12,\n handleRadius = 8,\n activeHandleRadius,\n handleSvg,\n handleProps = { x: 0, y: 0 },\n wheelLightness = true,\n wheelAngle = 0,\n wheelDirection = 'anticlockwise',\n sliderSize,\n boxHeight,\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount\n },\n ref\n ) => {\n const { theme } = useTheme();\n const containerRef = useRef<HTMLDivElement>(null);\n const colorPickerRef = useRef<any>(null);\n const isUpdatingColor = useRef<boolean>(false);\n const [containerWidth, setContainerWidth] = useState<number>(width || 200);\n\n // Set up ResizeObserver to make the color picker responsive\n // Only when width prop is NOT provided (parent doesn't control width)\n useEffect(() => {\n if (width || !containerRef.current) return; // Don't observe if width is controlled by parent\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width: observedWidth } = entry.contentRect;\n if (observedWidth > 0) {\n // More aggressive sizing for compact spaces\n // Account for padding and margins more carefully\n const availableWidth = observedWidth - padding * 2 - margin * 2;\n\n // Use different percentages based on available space\n let percentage = 0.8; // Default\n if (availableWidth < 300) {\n percentage = 0.9; // Use more space in compact mode\n } else if (availableWidth < 200) {\n percentage = 0.95; // Nearly full width for very small containers\n }\n\n const calculatedWidth = Math.floor(availableWidth * percentage);\n setContainerWidth(Math.max(120, Math.min(calculatedWidth, 250)));\n }\n }\n });\n\n resizeObserver.observe(containerRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [padding, margin]); // Remove width from dependencies to prevent recreation\n\n useImperativeHandle(ref, () => ({\n colorPicker: colorPickerRef.current\n }));\n\n // Create a shared picker creation function\n const createColorPicker = useCallback(\n (pickerWidth: number) => {\n if (!containerRef.current || colorPickerRef.current) return;\n\n // Capture the container reference for cleanup\n const currentContainer = containerRef.current;\n\n console.log(\n '🔧 IroColorPicker recreating picker - width prop:',\n width,\n 'containerWidth:',\n containerWidth\n );\n\n // IMPORTANT: Clear any existing DOM content first\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n\n // Set theme-appropriate border color and background\n const themeBorderColor = theme === 'light' ? '#ffffff' : '#334155';\n const themeBorderWidth = theme === 'light' ? 1 : 0;\n\n const options: any = {\n width: pickerWidth,\n color: colors ? undefined : color,\n colors: colors || undefined,\n display,\n id,\n layout,\n layoutDirection,\n padding,\n margin,\n borderWidth: themeBorderWidth,\n borderColor: themeBorderColor,\n handleRadius,\n activeHandleRadius: activeHandleRadius || handleRadius,\n handleSvg,\n handleProps,\n wheelLightness,\n wheelAngle,\n wheelDirection,\n sliderSize,\n boxHeight\n };\n\n // Remove undefined values\n Object.keys(options).forEach((key) => {\n if (options[key] === undefined) {\n delete options[key];\n }\n });\n\n colorPickerRef.current = new (iro as any).ColorPicker(\n containerRef.current,\n options\n );\n\n // Apply theme styles to iro.js elements after creation\n const applyThemeStyles = () => {\n if (!containerRef.current) return;\n\n const svgElements = containerRef.current.querySelectorAll('svg');\n svgElements.forEach((svg) => {\n // Remove default background\n svg.style.backgroundColor = 'transparent';\n\n // Style background rectangles\n const backgroundRects = svg.querySelectorAll('rect:first-child');\n backgroundRects.forEach((rect) => {\n if (theme === 'light') {\n rect.setAttribute('fill', 'white');\n rect.setAttribute('stroke', '#e5e7eb');\n rect.setAttribute('stroke-width', '1');\n } else {\n rect.setAttribute('fill', '#374151');\n rect.setAttribute('stroke', '#6b7280');\n rect.setAttribute('stroke-width', '1');\n }\n });\n });\n };\n\n // Apply styles immediately and after a short delay\n applyThemeStyles();\n setTimeout(applyThemeStyles, 100);\n\n // Set up event listeners\n if (onColorChange) {\n colorPickerRef.current.on('color:change', (color: any) => {\n if (!isUpdatingColor.current) {\n onColorChange(color);\n }\n });\n }\n if (onInputChange) {\n colorPickerRef.current.on('input:change', onInputChange);\n }\n if (onInputStart) {\n colorPickerRef.current.on('input:start', onInputStart);\n }\n if (onInputMove) {\n colorPickerRef.current.on('input:move', onInputMove);\n }\n if (onInputEnd) {\n colorPickerRef.current.on('input:end', onInputEnd);\n }\n if (onMount) {\n colorPickerRef.current.on('mount', onMount);\n }\n\n return currentContainer;\n },\n [\n theme,\n colors,\n color,\n display,\n id,\n layout,\n layoutDirection,\n padding,\n margin,\n handleRadius,\n activeHandleRadius,\n handleSvg,\n handleProps,\n wheelLightness,\n wheelAngle,\n wheelDirection,\n sliderSize,\n boxHeight,\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount,\n width,\n containerWidth\n ]\n );\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (colorPickerRef.current) {\n // Clean up event listeners\n if (onColorChange) {\n colorPickerRef.current.off('color:change', onColorChange);\n }\n if (onInputChange) {\n colorPickerRef.current.off('input:change', onInputChange);\n }\n if (onInputStart) {\n colorPickerRef.current.off('input:start', onInputStart);\n }\n if (onInputMove) {\n colorPickerRef.current.off('input:move', onInputMove);\n }\n if (onInputEnd) {\n colorPickerRef.current.off('input:end', onInputEnd);\n }\n if (onMount) {\n colorPickerRef.current.off('mount', onMount);\n }\n\n // Set to null to ensure clean recreation\n colorPickerRef.current = null;\n }\n }, [\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount\n ]);\n\n // useEffect for when width prop is provided by parent\n useEffect(() => {\n if (!width) return;\n\n if (!containerRef.current || colorPickerRef.current) {\n // Clear existing picker to force recreation\n if (colorPickerRef.current) {\n colorPickerRef.current = null;\n }\n }\n\n const currentContainer = createColorPicker(width);\n\n return () => {\n cleanup();\n // IMPORTANT: Clear DOM content to prevent visual artifacts\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n };\n }, [width, theme, createColorPicker, cleanup]);\n\n // useEffect for when containerWidth is used (internal ResizeObserver)\n useEffect(() => {\n if (width) return; // Don't run if width prop is provided\n\n if (!containerRef.current || colorPickerRef.current) {\n // Clear existing picker to force recreation\n if (colorPickerRef.current) {\n colorPickerRef.current = null;\n }\n }\n\n const currentContainer = createColorPicker(containerWidth);\n\n return () => {\n cleanup();\n // IMPORTANT: Clear DOM content to prevent visual artifacts\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n };\n }, [containerWidth, theme, createColorPicker, cleanup, width]);\n\n // Update color when prop changes\n useEffect(() => {\n if (colorPickerRef.current && !colors && color) {\n try {\n isUpdatingColor.current = true;\n\n // Handle both hex and hex8 (with alpha) formats\n if (color.length === 9 && color.startsWith('#')) {\n // hex8 format (with alpha)\n const hex = color.slice(0, 7);\n const alpha = parseInt(color.slice(7, 9), 16) / 255;\n colorPickerRef.current.color.set({\n hexString: hex,\n alpha: alpha\n });\n } else {\n // Regular hex format\n colorPickerRef.current.color.set({\n hexString: color\n });\n }\n\n // Reset flag after a small delay to allow the change to propagate\n setTimeout(() => {\n isUpdatingColor.current = false;\n }, 10);\n } catch (error) {\n console.warn('Error updating iro color picker:', error);\n isUpdatingColor.current = false;\n }\n }\n }, [color, colors]);\n\n // Update colors when prop changes (for multi-color selections)\n useEffect(() => {\n if (colorPickerRef.current && colors) {\n colors.forEach((colorValue, index) => {\n if (colorPickerRef.current.colors[index]) {\n colorPickerRef.current.colors[index].hexString = colorValue;\n }\n });\n }\n }, [colors]);\n\n return (\n <div\n ref={containerRef}\n style={{\n display: 'flex',\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n overflow: 'hidden',\n justifyContent: 'center'\n }}\n >\n {/* Iro.js will render the picker here */}\n </div>\n );\n }\n);\n\nIroColorPicker.displayName = 'IroColorPicker';\n\nexport default IroColorPicker;\n","import tinycolor from 'tinycolor2';\n\nimport { isValidRgba, rgbaToArray, validGradient } from '../../../utils';\n\nexport const getIndexActiveTag = (value: string) => {\n let tab = 'solid';\n const validValue = tinycolor(value).isValid();\n\n if (value) {\n if (value === 'transparent') {\n tab = 'solid';\n return tab;\n }\n if (\n validValue &&\n !value.trim().startsWith('radial-gradient') &&\n !value.trim().startsWith('linear-gradient')\n ) {\n tab = 'solid';\n return tab;\n }\n const rgba = rgbaToArray(value);\n if (rgba) {\n if (isValidRgba([rgba[0], rgba[1], rgba[2]])) {\n tab = 'solid';\n return tab;\n }\n } else {\n tab = 'gradient';\n return tab;\n }\n }\n\n return tab;\n};\n\nexport const checkValidColorsArray = (\n arr: string[],\n type: 'solid' | 'grad'\n) => {\n if (!arr.length || !Array.isArray(arr)) {\n return [];\n }\n\n const uniqueArr = [...new Set(arr)];\n\n switch (type) {\n case 'solid':\n return uniqueArr.filter((color: string, index: number) => {\n const tinyColor = tinycolor(color);\n if (\n tinyColor.isValid() &&\n !color.trim().startsWith('radial-gradient') &&\n !color.trim().startsWith('linear-gradient')\n ) {\n return true;\n }\n\n if (index > 100) {\n return false;\n }\n\n return false;\n });\n case 'grad':\n return uniqueArr.filter((color: string, index: number) => {\n const validColor = validGradient(color);\n\n if (validColor === 'Failed to find gradient') {\n return false;\n }\n\n if (validColor === 'Not correct position') {\n console.warn(\n 'Incorrect gradient default value. You need to indicate the location for the colors. We ignore this gradient value'\n );\n return false;\n }\n\n if (index > 100) {\n return false;\n }\n\n return true;\n });\n\n default:\n return [];\n }\n};\n\nexport const arraysEqual = (a: Array<any>, b: Array<any>) => {\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++)\n if (!arraysEqual(a[i], b[i])) return false;\n return true;\n } else {\n return a === b;\n }\n};\n\nexport const shallowEqual = (object1: any, object2: any) => {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n};\n","/* eslint no-case-declarations: off */\nimport React, { FC, useEffect, useState } from 'react';\n\nimport {\n getHexAlpha,\n parseGradient,\n rgbaToArray,\n rgbaToHex\n} from '../../../../utils';\nimport { cn } from '../../../../utils/cn';\nimport { checkValidColorsArray } from '../../Colorpicker/helper';\n\nimport { IActiveColor } from '../../../../lib/types';\nimport { IColor } from '../GradientPanel/types';\n\ninterface IProps {\n defaultColors?: Array<string>;\n setColor: (color: any) => void;\n setInit: (init: boolean) => void;\n setActiveColor?: (color: IActiveColor) => void;\n colorType: 'solid' | 'gradient';\n}\n\nconst DefaultColorPanel: FC<IProps> = ({\n defaultColors = [],\n setColor,\n setActiveColor,\n setInit,\n colorType\n}) => {\n const [active, setActive] = useState<number>(-1);\n const [formatedDefColors, setFormatedDefColors] = useState<\n Array<string | IColor>\n >([]);\n\n useEffect(() => {\n if (colorType === 'gradient') {\n setFormatedDefColors(\n checkValidColorsArray(defaultColors, 'grad').map((item: string) => {\n return parseGradient(item);\n })\n );\n } else {\n setFormatedDefColors(checkValidColorsArray(defaultColors, 'solid'));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onChooseColor = (item: string | IColor, index: number) => {\n if (index === active) {\n return;\n }\n\n if (colorType === 'gradient' && typeof item !== 'string') {\n const { stops } = item;\n const lastStop = rgbaToArray(stops[stops.length - 1][0]);\n const lastStopLoc = stops[stops.length - 1][1];\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeIdx = stops[stops.length - 1][2];\n\n setInit(false);\n\n setColor(item);\n setActiveColor &&\n setActiveColor({\n hex: activeStop,\n alpha: Number(Math.round(lastStop[3] * 100)),\n loc: lastStopLoc,\n index: activeIdx\n });\n setActive(index);\n } else if (colorType !== 'gradient' && typeof item === 'string') {\n setInit(false);\n setColor(getHexAlpha(item));\n setActive(index);\n }\n };\n\n if (!Array.isArray(defaultColors) || !defaultColors.length) {\n return null;\n }\n\n return (\n <div className='w-full'>\n <h3 className='text-sm font-medium colorpicker-text'>Popular Colors</h3>\n <div className='grid grid-cols-5 gap-4 py-4'>\n {formatedDefColors.map((item: string | IColor, index: number) => {\n switch (colorType) {\n case 'gradient':\n if (typeof item !== 'string') {\n const { gradient } = item;\n\n return (\n <button\n type='button'\n onClick={() => onChooseColor(item, index)}\n key={item.gradient + index}\n className={cn(\n 'aspect-square w-10 h-10 rounded-md border-2 transition-all duration-200',\n 'hover:scale-110 hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500/50',\n 'relative overflow-hidden group',\n active === index\n ? 'border-blue-500 dark:border-blue-400 shadow-lg scale-105'\n : 'border-slate-200 dark:border-slate-600 hover:border-slate-300 dark:hover:border-slate-500'\n )}\n style={{ background: gradient }}\n >\n <div className='absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-200'></div>\n </button>\n );\n } else {\n return null;\n }\n\n case 'solid':\n if (typeof item === 'string') {\n return (\n <button\n type='button'\n onClick={() => onChooseColor(item, index)}\n key={item + index}\n className={cn(\n 'aspect-square w-10 h-10 rounded-md border-2 transition-all duration-200',\n 'hover:scale-110 hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500/50',\n 'relative overflow-hidden group',\n active === index\n ? 'border-blue-500 dark:border-blue-400 shadow-lg scale-105'\n : 'border-slate-200 dark:border-slate-600 hover:border-slate-300 dark:hover:border-slate-500'\n )}\n style={{\n background: item,\n boxShadow:\n active === index ? `${item} 0px 0px 12px` : 'none'\n }}\n >\n <div className='absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-200'></div>\n </button>\n );\n } else {\n return null;\n }\n\n default:\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nexport default DefaultColorPanel;\n","import React, {\n FC,\n MouseEvent,\n MutableRefObject,\n TouchEvent,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { getGradient, rgbaToArray, rgbaToHex } from '../../../../utils';\n\nimport { IPropsPanel, TCoords } from './types';\n\nconst Markers: FC<IPropsPanel> = ({\n color,\n setColor,\n activeColor,\n setActiveColor,\n setInit,\n format = 'rgb',\n showAlpha = true,\n allowAddGradientStops = true\n}) => {\n const node = useRef() as MutableRefObject<HTMLDivElement>;\n\n const [needDeleteActive, setNeedDeleteActive] = useState<boolean>(false);\n const [hideStop, setHideStop] = useState<boolean>(false);\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const { stops, type, modifier } = color;\n\n const onAddColorStop = (e: MouseEvent) => {\n setInit(false);\n e.stopPropagation();\n if (!allowAddGradientStops) return;\n const target = e.target as HTMLElement;\n\n if (target.className !== 'gradient-marker') {\n const rect = target.getBoundingClientRect();\n const clickPos = e.clientX - rect.left;\n const loc = Number(((100 / rect.width) * clickPos).toFixed(0)) / 100;\n const rgba = tinycolor(activeColor.hex);\n rgba.setAlpha(activeColor.alpha / 100);\n\n const newStops = [\n ...color.stops,\n [rgba.toRgbString(), loc, color.stops.length]\n ]\n .sort((a: [string, number], b: [string, number]) => a[1] - b[1])\n .map((item, index) => {\n item[2] = index;\n return item;\n });\n\n setColor({\n ...color,\n gradient: `${getGradient(type, newStops, modifier, format, showAlpha)}`,\n stops: newStops\n });\n\n const newStopIndex = newStops.find((item) => item[1] === loc)?.[2];\n const newStopColor = newStops.find((item) => item[1] === loc)?.[0];\n const newStopRgba = rgbaToArray(newStopColor || rgba.toRgbString());\n const newStopHex = rgbaToHex([\n newStopRgba[0],\n newStopRgba[1],\n newStopRgba[2]\n ]);\n const newStopAlpha = Math.round(newStopRgba[3] * 100);\n\n const newActiveColor = {\n hex: newStopHex,\n alpha: newStopAlpha,\n loc: loc,\n index: newStopIndex\n };\n\n setActiveColor(newActiveColor);\n }\n };\n\n const removeListeners = () => {\n window.removeEventListener('mousemove', onDrag);\n window.removeEventListener('mouseup', onDragEnd);\n };\n\n const removeTouchListeners = () => {\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n const onMouseDown = (e: MouseEvent, color: any) => {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n\n if (e.detail === 2) {\n return;\n }\n\n setInit(false);\n\n if (e.button !== 0) return;\n\n const newColor = tinycolor(color[0]);\n\n setActiveColor({\n hex: '#' + newColor.toHex(),\n alpha: newColor.getAlpha() * 100,\n loc: color[1],\n index: color[2]\n });\n\n const x = e.clientX;\n const y = e.clientY;\n\n // Don't set isDragging immediately - wait for actual mouse movement\n\n pointMoveTo({\n x,\n y\n });\n\n window.addEventListener('mousemove', onDrag);\n window.addEventListener('mouseup', onDragEnd);\n };\n\n const onDrag = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n\n // Now we know user is actually dragging\n setIsDragging(true);\n\n if (rootDistance > 80 && stops.length > 2) {\n setHideStop(true);\n return;\n } else {\n setHideStop(false);\n }\n\n pointMoveTo({\n x,\n y\n });\n };\n\n const onDragEnd = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n if (rootDistance > 80 && stops.length > 2) {\n setNeedDeleteActive(true);\n }\n\n pointMoveTo({\n x,\n y\n });\n\n setIsDragging(false); // Mark as not dragging\n removeListeners();\n };\n\n const onTouchStart = (e: TouchEvent, color: any) => {\n setInit(false);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n removeTouchListeners();\n\n const newColor = tinycolor(color[0]);\n setActiveColor({\n hex: '#' + newColor.toHex(),\n alpha: newColor.getAlpha() * 100,\n loc: color[1],\n index: color[2]\n });\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n\n // Don't set isDragging immediately for touch either\n\n pointMoveTo({ x, y });\n\n window.addEventListener('touchmove', onTouchMove, { passive: false });\n window.addEventListener('touchend', onTouchEnd, { passive: false });\n };\n\n const onTouchMove = (e: any) => {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n\n // Now we know user is actually dragging\n setIsDragging(true);\n\n if (rootDistance > 80 && stops.length > 2) {\n setHideStop(true);\n return;\n } else {\n setHideStop(false);\n }\n\n pointMoveTo({\n x,\n y\n });\n };\n\n const onTouchEnd = () => {\n setIsDragging(false); // Mark as not dragging\n removeTouchListeners();\n };\n\n const pointMoveTo = (coords: TCoords) => {\n const rect = node && node.current.getBoundingClientRect();\n const width = rect.width;\n let pos = coords.x - rect.left;\n pos = Math.max(0, pos);\n pos = Math.min(pos, width);\n\n const location = Number(((100 / rect.width) * pos).toFixed(0)) / 100;\n setActiveColor((prev) => ({\n ...prev,\n loc: location\n }));\n };\n\n const deleteColorStop = () => {\n if (stops.length <= 2) return;\n const newStops = stops\n .filter((stop: [string, number, number]) => stop[2] !== activeColor.index)\n .map((stop: [string, number, number], index: number) => {\n stop[2] = index;\n return stop;\n });\n const lastStop = rgbaToArray(newStops[newStops.length - 1][0]);\n const lastStopLoc = newStops[newStops.length - 1][1];\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeIdx = newStops[newStops.length - 1][2];\n\n setNeedDeleteActive(false);\n setHideStop(false);\n\n setActiveColor({\n hex: activeStop,\n alpha: Number(Math.round(lastStop[3] * 100)),\n loc: lastStopLoc,\n index: activeIdx\n });\n return setColor({\n ...color,\n gradient: `${getGradient(type, newStops, modifier, format, showAlpha)}`,\n stops: newStops\n });\n };\n\n useEffect(() => {\n if (needDeleteActive) {\n return deleteColorStop();\n }\n\n // Only update positions when actually dragging, not when just changing colors\n if (isDragging) {\n // Check if the position actually changed\n const currentStop = stops.find((item) => item[2] === activeColor.index);\n if (currentStop && currentStop[1] !== activeColor.loc) {\n const newStops = stops.map((item: [string, number, number]) => {\n if (activeColor.index === item[2]) {\n return [item[0], activeColor.loc, item[2]];\n }\n return item;\n });\n\n setColor({\n ...color,\n gradient: `${getGradient(\n type,\n newStops,\n modifier,\n format,\n showAlpha\n )}`,\n stops: newStops\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeColor.loc, needDeleteActive, isDragging]);\n\n useEffect(() => {\n return () => {\n removeListeners();\n removeTouchListeners();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div\n className='gradient-stops'\n onClick={(e) => onAddColorStop(e)}\n ref={node}\n >\n <div\n className='gradient-stop-preview'\n style={{\n background: `linear-gradient(to right, ${stops\n .map(\n (color: [string, number, number]) =>\n `${color[0]} ${color[1] * 100}%`\n )\n .join(', ')})`\n }}\n />\n <div className='gradient-stop-marker'>\n {stops.map((color: [string, number, number]) => {\n const position = color[1] * 100;\n const rgba = color[0];\n\n return (\n <div\n key={rgba + position + Math.random() * 100}\n className={`gradient-marker${\n hideStop && activeColor.index === color[2] ? ' hide' : ''\n }${!hideStop && activeColor.index === color[2] ? ' active' : ''}`}\n style={{\n left: Math.abs(Math.min(position, 100)) + '%',\n color: rgba\n }}\n onTouchStart={(e) => onTouchStart(e, color)}\n onMouseDown={(e) => onMouseDown(e, color)}\n onClick={(e) => e.stopPropagation()}\n onDoubleClick={deleteColorStop}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default Markers;\n","export const DEFAULT_COLORS = [\n '#FF6B6B', // Coral Red\n '#4ECDC4', // Teal\n '#45B7D1', // Sky Blue\n '#96CEB4', // Mint Green\n '#FFEAA7', // Warm Yellow\n '#DDA0DD', // Plum\n '#98D8C8', // Mint\n '#F7DC6F', // Light Yellow\n '#BB8FCE', // Light Purple\n '#85C1E9', // Light Blue\n 'linear-gradient(0deg, rgb(255, 177, 153) 0%, rgb(255, 8, 68) 100%)',\n 'linear-gradient(270deg, rgb(251, 171, 126) 8.00%, rgb(247, 206, 104) 92.00%)',\n 'linear-gradient(315deg, rgb(150, 230, 161) 8.00%, rgb(212, 252, 121) 92.00%)',\n 'linear-gradient(to left, rgb(249, 240, 71) 0%, rgb(15, 216, 80) 100%)',\n 'linear-gradient(0deg, rgb(0, 198, 251) 0%, rgb(0, 91, 234) 100%)',\n 'linear-gradient(0deg, rgb(80, 82, 133) 0%, rgb(88, 94, 146) 15.0%, rgb(101, 104, 159) 28.00%, rgb(116, 116, 176) 43.00%, rgb(126, 126, 187) 57.00%, rgb(131, 137, 199) 71.00%, rgb(151, 149, 212) 82.00%, rgb(162, 161, 220) 92.00%, rgb(181, 174, 228) 100%)',\n 'linear-gradient(270deg, rgb(255, 126, 179) 0%, rgb(255, 117, 140) 100%)',\n 'linear-gradient(90deg, rgb(120, 115, 245) 0%, rgb(236, 119, 171) 100%)',\n 'linear-gradient(45deg, #2e266f 0.00%, #9664dd38 100.00%)',\n 'radial-gradient(circle at center, yellow 0%, #009966 50%, purple 100%)'\n];\n\nexport const RADIALS_POS = [\n { pos: 'tl', css: 'circle at left top', active: false },\n { pos: 'tm', css: 'circle at center top', active: false },\n { pos: 'tr', css: 'circle at right top', active: false },\n\n { pos: 'l', css: 'circle at left', active: false },\n { pos: 'm', css: 'circle at center', active: true },\n { pos: 'r', css: 'circle at right', active: false },\n\n { pos: 'bl', css: 'circle at left bottom', active: false },\n { pos: 'bm', css: 'circle at center bottom', active: false },\n { pos: 'br', css: 'circle at right bottom', active: false }\n];\n","import React, {\n FC,\n memo,\n MouseEvent,\n MutableRefObject,\n TouchEvent,\n useEffect,\n useRef,\n useState\n} from 'react';\n\nimport Markers from './Markers';\n\nimport { getGradient } from '../../../../utils';\nimport { arraysEqual, shallowEqual } from '../helper';\n\nimport { RADIALS_POS } from '../../../../constants';\nimport { IPropsPanel, TCoords } from './types';\n\nconst GradientPanel: FC<IPropsPanel> = ({\n color,\n setColor,\n activeColor,\n setActiveColor,\n setInit,\n format = 'rgb',\n showAlpha = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true\n}) => {\n const angleNode = useRef() as MutableRefObject<HTMLDivElement>;\n\n const { stops, gradient, type, modifier } = color;\n\n const [radialsPosition, setRadialPosition] = useState(RADIALS_POS);\n\n const onClickMode = () => {\n setInit(false);\n switch (type) {\n case 'linear': {\n const activePos = radialsPosition.find((item) => item.active);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`,\n type: 'radial'\n });\n break;\n }\n\n case 'radial': {\n setColor({\n ...color,\n gradient: `${getGradient('linear', stops, 180, format, showAlpha)}`,\n type: 'linear'\n });\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const setActiveRadialPosition = (e: MouseEvent) => {\n setInit(false);\n const target = e.target as HTMLElement;\n const pos = target.getAttribute('data-pos');\n const newRadialsPosition = radialsPosition.map((item) => {\n if (item.pos === pos) {\n return {\n ...item,\n active: true\n };\n }\n\n return {\n ...item,\n active: false\n };\n });\n\n setRadialPosition(newRadialsPosition);\n\n const activePos = newRadialsPosition.find((item) => item.active);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`\n });\n };\n\n const removeListeners = () => {\n window.removeEventListener('mousemove', onDrag);\n window.removeEventListener('mouseup', onDragEnd);\n };\n\n const removeTouchListeners = () => {\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n const onMouseDown = (e: any) => {\n e.preventDefault();\n\n setInit(false);\n\n if (e.button !== 0) return;\n\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n if (e.target.className !== 'gradient-mode' && type === 'linear') {\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n\n window.addEventListener('mousemove', onDrag);\n window.addEventListener('mouseup', onDragEnd);\n }\n };\n\n const onDrag = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n };\n\n const onDragEnd = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n\n removeListeners();\n };\n\n const onTouchStart = (e: TouchEvent) => {\n setInit(false);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n removeTouchListeners();\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n const shiftKey = false;\n const ctrlKey = 0;\n\n pointMoveTo({ x, y, shiftKey, ctrlKey });\n\n window.addEventListener('touchmove', onTouchMove, { passive: false });\n window.addEventListener('touchend', onTouchEnd, { passive: false });\n };\n\n const onTouchMove = (e: any) => {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n const shiftKey = false;\n const ctrlKey = 0;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n };\n\n const onTouchEnd = () => {\n removeTouchListeners();\n };\n\n const pointMoveTo = (coords: TCoords) => {\n const rect = angleNode && angleNode.current.getBoundingClientRect();\n\n const boxcx = rect.left + rect.width / 2;\n const boxcy = rect.top + rect.height / 2;\n const radians = Math.atan2(coords.x - boxcx, coords.y - boxcy) - Math.PI;\n const degrees = Math.abs((radians * 180) / Math.PI);\n\n const div = [1, 2, 4][Number(coords.shiftKey || coords.ctrlKey)];\n const newAngle = degrees - (degrees % (45 / div));\n\n setColor({\n ...color,\n gradient: `${getGradient(type, stops, newAngle, format, showAlpha)}`,\n modifier: newAngle\n });\n };\n\n useEffect(() => {\n return () => {\n removeListeners();\n removeTouchListeners();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (type === 'radial') {\n const activePos = radialsPosition.find((item) => item.css === modifier);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`\n });\n\n setRadialPosition(\n RADIALS_POS.map((item) => {\n if (item.css === modifier) {\n return {\n ...item,\n active: true\n };\n }\n\n return {\n ...item,\n active: false\n };\n })\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [modifier]);\n\n return (\n <div className='gradient-interaction'>\n {showGradientResult && (\n <div\n className='gradient-result'\n onMouseDown={showGradientAngle ? onMouseDown : undefined}\n onTouchStart={showGradientAngle ? onTouchStart : undefined}\n style={{ background: gradient }}\n >\n {showGradientMode && (\n <div\n data-mode={type}\n className='gradient-mode'\n onClick={() => onClickMode()}\n />\n )}\n {showGradientAngle && (\n <div\n className='gradient-angle'\n ref={angleNode}\n style={{ visibility: type === 'linear' ? 'visible' : 'hidden' }}\n >\n <div\n style={{\n transform: `rotate(${\n typeof modifier === 'number'\n ? modifier - 90 + 'deg'\n : modifier\n })`\n }}\n ></div>\n </div>\n )}\n {showGradientPosition && (\n <div\n className='gradient-pos'\n style={{\n opacity: type === 'radial' ? '1' : '0',\n visibility: type === 'radial' ? 'visible' : 'hidden'\n }}\n >\n {radialsPosition.map((item) => {\n return (\n <div\n key={item.pos}\n data-pos={item.pos}\n className={item.active ? 'gradient-active' : ''}\n onClick={(e) => setActiveRadialPosition(e)}\n />\n );\n })}\n </div>\n )}\n </div>\n )}\n {showGradientStops && (\n <Markers\n color={color}\n setColor={setColor}\n activeColor={activeColor}\n setActiveColor={setActiveColor}\n setInit={setInit}\n format={format}\n showAlpha={showAlpha}\n allowAddGradientStops={allowAddGradientStops}\n />\n )}\n </div>\n );\n};\n\nconst arePropsEqual = (prevProps: any, nextProps: any) => {\n if (\n arraysEqual(prevProps.color.stops, nextProps.color.stops) &&\n prevProps.color.modifier === nextProps.color.modifier &&\n prevProps.color.type === nextProps.color.type &&\n shallowEqual(prevProps.activeColor, nextProps.activeColor)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport default memo(GradientPanel, arePropsEqual);\n","import { useEffect, useState } from 'react';\n\nexport default <T>(value: T, delay?: number): T => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import iro from '@jaames/iro';\nimport React, { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport tinyColor from 'tinycolor2';\n\nimport { InputRgba } from '../../../forms';\nimport IroColorPicker from '../../IroColorPicker';\nimport DefaultColorsPanel from '../DefaultColorPanel';\nimport GradientPanel from '../GradientPanel';\n\nimport { useDebounce } from '../../../../hooks';\nimport {\n getGradient,\n parseGradient,\n rgbaToArray,\n rgbaToHex\n} from '../../../../utils';\n\nimport { IActiveColor, IPropsComp, TPropsChange } from '../../../../lib/types';\n\nconst IroGradient: FC<IPropsComp> = ({\n value = 'linear-gradient(90deg, #ffffff 0%, #000000 100%)',\n onChange = () => ({}),\n format = 'rgb',\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true,\n colorBoardHeight = 120,\n defaultColors,\n showReset = false,\n onReset\n}) => {\n // Store the initial value for reset functionality\n const initialValue = useRef(value);\n const parsedColors = useCallback(() => {\n return parseGradient(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const { stops, type, modifier } = parsedColors();\n const lastStop = rgbaToArray(stops[stops.length - 1][0]);\n const activeStopIndex = stops.length - 1;\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeAlpha = Math.round(lastStop[3] * 100);\n\n const iroPickerRef = useRef<any>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const isUpdatingFromGradientStop = useRef<boolean>(false);\n const [pickerWidth, setPickerWidth] = useState<number>(200);\n // Responsive width for IroColorPicker - match solid picker logic\n useEffect(() => {\n if (!containerRef.current) return;\n const resizeObserver = new window.ResizeObserver((entries) => {\n for (const entry of entries) {\n const containerWidth = entry.contentRect.width;\n // Use the same logic as solid picker for consistency\n const padding = 40; // Total padding and margins\n const available = containerWidth - padding;\n\n let calculatedWidth;\n // Simple responsive calculation - same as solid picker\n if (available <= 200) {\n calculatedWidth = Math.max(150, available - 10); // Very small containers\n } else if (available <= 320) {\n calculatedWidth = Math.min(available * 0.85, 250); // Medium containers\n } else {\n calculatedWidth = Math.min(available * 0.8, 280); // Large containers\n }\n\n setPickerWidth(Math.floor(calculatedWidth));\n }\n });\n resizeObserver.observe(containerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n const [color, setColor] = useState({\n gradient: value,\n type,\n modifier,\n stops\n });\n\n const [activeColor, setActiveColor] = useState<IActiveColor>({\n hex: activeStop,\n alpha: activeAlpha,\n loc: stops[activeStopIndex][1],\n index: activeStopIndex\n });\n\n const debounceColor = useDebounce(color, debounceMS);\n\n // Update iro picker color\n const updateIroPickerColor = useCallback(\n (colorData: { hex: string; alpha: number }, retryCount = 0) => {\n const maxRetries = 5;\n\n const updateColor = () => {\n // Check if picker is properly initialized\n if (\n iroPickerRef.current?.colorPicker &&\n iroPickerRef.current.colorPicker.color\n ) {\n const iroColor = showAlpha\n ? {\n r: parseInt(colorData.hex.slice(1, 3), 16),\n g: parseInt(colorData.hex.slice(3, 5), 16),\n b: parseInt(colorData.hex.slice(5, 7), 16),\n a: colorData.alpha / 100\n }\n : colorData.hex;\n\n try {\n // Set flag to prevent circular updates\n isUpdatingFromGradientStop.current = true;\n\n console.log(\n '🎨 Updating iro picker in gradient mode (attempt:',\n retryCount + 1,\n '):',\n {\n hex: colorData.hex,\n alpha: colorData.alpha,\n iroColor,\n pickerReady: !!iroPickerRef.current?.colorPicker?.color\n }\n );\n\n iroPickerRef.current.colorPicker.color.set(iroColor);\n\n // Reset flag after a short delay\n setTimeout(() => {\n isUpdatingFromGradientStop.current = false;\n }, 100);\n\n console.log('✅ Successfully updated iro picker');\n } catch (error) {\n isUpdatingFromGradientStop.current = false;\n console.warn('❌ Error updating iro color picker:', error);\n\n // Retry with exponential backoff\n if (retryCount < maxRetries) {\n const delay = 100 * Math.pow(2, retryCount); // 100ms, 200ms, 400ms, etc.\n console.log(\n `🔄 Retrying in ${delay}ms (attempt ${retryCount + 2}/${\n maxRetries + 1\n })`\n );\n setTimeout(() => {\n updateIroPickerColor(colorData, retryCount + 1);\n }, delay);\n } else {\n console.error(\n '💥 Max retries reached, giving up on iro picker update'\n );\n }\n }\n } else {\n console.log('⏳ Iro picker not ready, retrying...', {\n hasRef: !!iroPickerRef.current,\n hasColorPicker: !!iroPickerRef.current?.colorPicker,\n hasColor: !!iroPickerRef.current?.colorPicker?.color,\n attempt: retryCount + 1\n });\n\n // If picker is not ready, retry with increasing delays\n if (retryCount < maxRetries) {\n const delay = 50 + retryCount * 100; // 50ms, 150ms, 250ms, etc.\n setTimeout(() => {\n updateIroPickerColor(colorData, retryCount + 1);\n }, delay);\n } else {\n console.error('💥 Iro picker never became ready, giving up');\n }\n }\n };\n\n updateColor();\n },\n [showAlpha]\n );\n\n useEffect(() => {\n if (debounce && debounceColor) {\n onChange?.(debounceColor.gradient);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounceColor]);\n\n // Initialize iro picker with current activeColor when component mounts or picker becomes ready\n useEffect(() => {\n const initializeIroPicker = () => {\n if (iroPickerRef.current?.colorPicker?.color && activeColor.hex) {\n console.log(\n '🚀 Initializing iro picker with activeColor:',\n activeColor\n );\n // Wait a bit for the picker to be fully ready, then update\n setTimeout(() => {\n updateIroPickerColor({\n hex: activeColor.hex,\n alpha: activeColor.alpha\n });\n }, 200);\n }\n };\n\n // Try immediately\n initializeIroPicker();\n\n // Also try after a delay in case picker wasn't ready\n const timeoutId = setTimeout(initializeIroPicker, 500);\n\n return () => clearTimeout(timeoutId);\n }, [activeColor, updateIroPickerColor]); // Initialize when activeColor or updateFunction changes\n\n // Custom setActiveColor that also updates iro picker\n const handleSetActiveColor = useCallback(\n (newActiveColor: any) => {\n console.log(\n '🎯 Gradient stop clicked, setting active color:',\n newActiveColor\n );\n setActiveColor(newActiveColor);\n\n // Force immediate update of iro picker with longer delay for first-time reliability\n setTimeout(() => {\n updateIroPickerColor({\n hex: newActiveColor.hex,\n alpha: newActiveColor.alpha\n });\n }, 50); // Increased from 5ms to 50ms for better first-time success\n },\n [updateIroPickerColor]\n );\n\n // Update iro picker when activeColor changes (e.g., clicking gradient stops)\n useEffect(() => {\n console.log('🔄 ActiveColor changed in gradient:', {\n hex: activeColor.hex,\n alpha: activeColor.alpha,\n index: activeColor.index,\n loc: activeColor.loc\n });\n\n // Add a small delay to ensure the activeColor state has fully updated\n const timeoutId = setTimeout(() => {\n updateIroPickerColor({ hex: activeColor.hex, alpha: activeColor.alpha });\n }, 10);\n\n return () => clearTimeout(timeoutId);\n }, [\n activeColor.hex,\n activeColor.alpha,\n activeColor.index,\n activeColor.loc,\n updateIroPickerColor\n ]);\n\n const updateGradient = useCallback(\n (newColor: any) => {\n if (Array.isArray(newColor)) {\n // Handle the case where it's called with stops array\n const newStops = newColor;\n const newColorState = {\n ...color,\n stops: newStops,\n gradient: `${getGradient(\n color.type,\n newStops,\n color.modifier,\n format,\n showAlpha\n )}`\n };\n setColor(newColorState);\n return newColorState; // Return the new state for immediate use\n } else {\n // Handle the case where it's called with full color object\n setColor(newColor);\n return newColor;\n }\n },\n [color, format, showAlpha]\n );\n\n const onChangeActiveColor = ({ hex, alpha }: TPropsChange) => {\n // Use setActiveColor callback to get the LATEST activeColor state\n setActiveColor((latestActiveColor) => {\n // Use setColor callback to get the most current state\n setColor((currentColorState) => {\n // FIXED: Find the active stop by location using LATEST activeColor\n const activeStopIndex = currentColorState.stops.findIndex(\n (stop) =>\n Math.abs((stop[1] as number) - (latestActiveColor.loc as number)) <\n 0.01\n );\n\n // Safety check: ensure we have a valid index\n if (\n activeStopIndex === -1 ||\n activeStopIndex >= currentColorState.stops.length\n ) {\n console.warn(\n 'Could not find stop at location:',\n latestActiveColor.loc,\n 'in stops:',\n currentColorState.stops\n );\n return currentColorState; // Return unchanged state\n }\n\n const currentStop = currentColorState.stops[activeStopIndex];\n const currentPosition = currentStop[1];\n\n // Update the gradient with the new active color\n const newStops = [...currentColorState.stops];\n const rgba = tinyColor(hex);\n rgba.setAlpha(alpha / 100);\n\n // Update the correct stop\n newStops[activeStopIndex] = [\n rgba.toRgbString(),\n currentPosition,\n activeStopIndex // Use the found index\n ];\n\n const newColorState = {\n ...currentColorState,\n stops: newStops,\n gradient: `${getGradient(\n currentColorState.type,\n newStops,\n currentColorState.modifier,\n format,\n showAlpha\n )}`\n };\n\n return newColorState;\n });\n\n // Return updated activeColor with new hex and alpha\n const updatedActiveColor = {\n ...latestActiveColor,\n hex,\n alpha\n };\n\n return updatedActiveColor;\n });\n };\n\n const setInit = () => {}; // Stub function for gradient panel compatibility\n\n const onSubmitChange = (rgba: string) => {\n const rgbaArr = rgbaToArray(rgba);\n const hex = rgbaToHex([rgbaArr[0], rgbaArr[1], rgbaArr[2]]);\n const alpha = Math.round(rgbaArr[3] * 100);\n\n onChangeActiveColor({ hex, alpha });\n };\n\n // Reset to initial color\n const handleResetColor = () => {\n const initialParsed = parseGradient(initialValue.current);\n setColor(initialParsed);\n\n // Reset active color to the last stop of the initial gradient\n const lastStop = rgbaToArray(\n initialParsed.stops[initialParsed.stops.length - 1][0]\n );\n const newActiveColor = {\n hex: rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]),\n alpha: Math.round(lastStop[3] * 100),\n loc: initialParsed.stops[initialParsed.stops.length - 1][1],\n index: initialParsed.stops.length - 1\n };\n setActiveColor(newActiveColor);\n\n // Update iro picker if available\n if (iroPickerRef.current?.colorPicker) {\n updateIroPickerColor(newActiveColor);\n }\n\n // Call onChange with initial value\n onChange(initialValue.current);\n\n // Call onReset callback if provided\n onReset?.();\n };\n\n // Update iro picker when color is selected from default colors panel\n const handleColorFromPanel = (newColor: any) => {\n setColor(newColor);\n if (newColor?.stops) {\n const lastStop = rgbaToArray(\n newColor.stops[newColor.stops.length - 1][0]\n );\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const newActiveColor = {\n hex: activeStop,\n alpha: Math.round(lastStop[3] * 100),\n loc: newColor.stops[newColor.stops.length - 1][1],\n index: newColor.stops.length - 1\n };\n\n setActiveColor(newActiveColor);\n\n // Update the iro color picker\n updateIroPickerColor(newActiveColor);\n }\n };\n\n const handleIroColorChange = (iroColor: any) => {\n // Don't process if we're currently updating from gradient stop\n if (isUpdatingFromGradientStop.current) {\n return;\n }\n\n const newColor: TPropsChange = {\n hex: iroColor.hexString,\n alpha: Math.round(iroColor.alpha * 100)\n };\n\n onChangeActiveColor(newColor);\n };\n\n // Create layout array conditionally based on showAlpha\n const layoutConfig = [\n {\n component: (iro as any).ui.Wheel,\n options: {}\n },\n {\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'value'\n }\n }\n ];\n\n if (showAlpha) {\n layoutConfig.push({\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'alpha'\n }\n });\n }\n\n // Use hex8 format when alpha is enabled for proper alpha support\n const iroColorValue = showAlpha\n ? tinyColor({\n r: parseInt(activeColor.hex.slice(1, 3), 16),\n g: parseInt(activeColor.hex.slice(3, 5), 16),\n b: parseInt(activeColor.hex.slice(5, 7), 16),\n a: activeColor.alpha / 100\n }).toHex8String()\n : activeColor.hex;\n\n return (\n <div\n className='w-full rounded-xl shadow-lg space-y-2 transition-all duration-200 hover:shadow-xl'\n style={{\n backgroundColor: 'var(--colorpicker-panel-bg)'\n }}\n >\n {/* Color Picker Container */}\n <div className='relative' ref={containerRef}>\n <div\n className='flex justify-center items-center rounded-lg'\n style={{\n height: colorBoardHeight + pickerWidth\n }}\n >\n <IroColorPicker\n ref={iroPickerRef}\n width={pickerWidth}\n color={iroColorValue}\n layout={layoutConfig}\n onColorChange={handleIroColorChange}\n />\n </div>\n </div>\n\n {/* Gradient Controls */}\n <div className='rounded-lg colorpicker-glass px-4'>\n <GradientPanel\n color={color}\n activeColor={activeColor}\n setActiveColor={handleSetActiveColor}\n setColor={updateGradient}\n setInit={setInit}\n format={format}\n showAlpha={showAlpha}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n />\n </div>\n\n {/* Color Palette */}\n <div className='pt-4 px-2'>\n <DefaultColorsPanel\n defaultColors={defaultColors}\n setColor={handleColorFromPanel}\n setInit={() => {}}\n setActiveColor={handleSetActiveColor}\n colorType='gradient'\n />\n </div>\n\n {/* Input Controls */}\n {showInputs && (\n <div className='rounded-lg colorpicker-glass flex items-center gap-2'>\n <div className='flex-1'>\n <InputRgba\n hex={activeColor.hex}\n alpha={activeColor.alpha}\n showAlpha={showAlpha}\n onChange={(value: { hex: string; alpha: number }) =>\n setActiveColor((prev) => ({\n ...prev,\n hex: value.hex,\n alpha: value.alpha,\n index: prev.index // Preserve the index!\n }))\n }\n onSubmitChange={onSubmitChange}\n />\n </div>\n {showReset && (\n <button\n onClick={handleResetColor}\n className='px-3 py-2 text-xs font-medium rounded-md transition-colors duration-200 bg-transparent border border-gray-600 text-gray-300 hover:text-white hover:border-gray-500 hover:bg-gray-800/50 whitespace-nowrap flex items-center gap-1'\n title='Reset to initial color'\n >\n <svg\n className='w-3 h-3'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'\n />\n </svg>\n Reset\n </button>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default IroGradient;\n","import iro from '@jaames/iro';\nimport React, { FC, useEffect, useRef, useState } from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { InputRgba } from '../../../forms';\nimport IroColorPicker from '../../IroColorPicker';\nimport DefaultColorsPanel from '../DefaultColorPanel';\n\nimport { useDebounce } from '../../../../hooks';\nimport { checkFormat, getHexAlpha } from '../../../../utils';\n\nimport { IPropsComp, TPropsChange } from '../../../../lib/types';\n\nconst IroSolidColorPicker: FC<IPropsComp> = ({\n value = '#ffffff',\n onChange = () => ({}),\n format = 'rgb',\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n defaultColors,\n showReset = false,\n onReset\n}) => {\n const node = useRef<HTMLDivElement | null>(null);\n const iroPickerRef = useRef<any>(null);\n // Store the initial value for reset functionality\n const initialValue = useRef(value);\n const [init, setInit] = useState<boolean>(true);\n const [color, setColor] = useState(getHexAlpha(value));\n const [pickerWidth, setPickerWidth] = useState<number>(200);\n const pickerWidthRef = useRef<number>(200);\n\n // Update ref when state changes\n useEffect(() => {\n pickerWidthRef.current = pickerWidth;\n console.log('📊 Picker width state changed to:', pickerWidth);\n }, [pickerWidth]);\n\n // Calculate responsive width based on container\n const getResponsiveWidth = (containerWidth: number) => {\n const padding = 40; // Total padding and margins\n const available = containerWidth - padding;\n\n // Simple responsive calculation\n if (available <= 200) {\n return Math.max(150, available - 10); // Very small containers - fixed logic\n } else if (available <= 320) {\n return Math.min(available * 0.85, 250); // Medium containers\n } else {\n return Math.min(available * 0.8, 280); // Large containers\n }\n };\n\n // Handle container resize\n useEffect(() => {\n if (!node.current) return;\n\n const updateSize = () => {\n if (node.current) {\n const rect = node.current.getBoundingClientRect();\n if (rect.width > 0) {\n const newWidth = Math.floor(getResponsiveWidth(rect.width));\n if (Math.abs(newWidth - pickerWidthRef.current) > 5) {\n // Only update if significant change\n console.log('� Size update:', { container: rect.width, newWidth });\n setPickerWidth(newWidth);\n }\n }\n }\n };\n\n // Initial size calculation\n updateSize();\n\n // Set up ResizeObserver\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n\n resizeObserver.observe(node.current);\n\n // Window resize backup\n window.addEventListener('resize', updateSize);\n\n return () => {\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateSize);\n };\n }, []); // Empty dependency array is now safe\n\n // Debug helper for testing - create it once and update functions\n useEffect(() => {\n if (!(window as any).debugPicker) {\n (window as any).debugPicker = {};\n }\n\n const debug = (window as any).debugPicker;\n debug.getCurrentWidth = () => {\n console.log('Current picker width:', pickerWidth);\n return pickerWidth;\n };\n debug.getContainerWidth = () => {\n const width = node.current?.getBoundingClientRect().width;\n console.log('Current container width:', width);\n return width;\n };\n debug.forceResize = () => {\n if (node.current) {\n const rect = node.current.getBoundingClientRect();\n const newWidth = Math.floor(getResponsiveWidth(rect.width));\n console.log('🔧 Force resize:', { container: rect.width, newWidth });\n setPickerWidth(newWidth);\n }\n };\n debug.getPickerRef = () => iroPickerRef.current;\n\n // Don't cleanup on unmount so user can access it\n }, [pickerWidth]);\n\n const debounceColor = useDebounce(color, debounceMS);\n\n useEffect(() => {\n if (debounce && debounceColor && init === false) {\n if (value === 'transparent' && color.alpha === 0) {\n color.alpha = 100;\n }\n\n const rgba = tinycolor(color.hex);\n rgba.setAlpha(color.alpha / 100);\n\n if (tinycolor(rgba).toRgbString() === tinycolor(value).toRgbString()) {\n return;\n }\n\n const formattedColor = checkFormat(\n rgba.toRgbString(),\n format,\n showAlpha,\n debounceColor.alpha\n );\n\n onChange?.(formattedColor);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounceColor]);\n\n useEffect(() => {\n setColor(getHexAlpha(value));\n\n // Update iro color picker when value changes externally\n if (iroPickerRef.current?.colorPicker) {\n const newIroColor = showAlpha\n ? {\n r: parseInt(getHexAlpha(value).hex.slice(1, 3), 16),\n g: parseInt(getHexAlpha(value).hex.slice(3, 5), 16),\n b: parseInt(getHexAlpha(value).hex.slice(5, 7), 16),\n a: getHexAlpha(value).alpha / 100\n }\n : getHexAlpha(value).hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(newIroColor);\n } catch (error) {\n console.warn('Error updating iro color picker from props:', error);\n }\n }\n }, [value, showAlpha]);\n\n const handleColorChange = (iroColor: any) => {\n console.log('🎨 Alpha slider changed!', {\n hex: iroColor.hexString,\n alpha: iroColor.alpha,\n alphaPercent: Math.round(iroColor.alpha * 100)\n });\n\n const newColor: TPropsChange = {\n hex: iroColor.hexString,\n alpha: Math.round(iroColor.alpha * 100)\n };\n\n setInit(false);\n setColor(newColor);\n };\n\n const handleInputChange = (newColor: { hex: string; alpha: number }) => {\n setColor(newColor);\n };\n\n const handleInputSubmit = (colorString: string) => {\n onChange?.(colorString);\n };\n\n // Update iro picker when color is selected from default colors panel\n const handleColorFromPanel = (newColor: { hex: string; alpha: number }) => {\n setInit(false);\n setColor(newColor);\n\n // Update the iro color picker with a small delay to ensure it's ready\n const updateIroColor = () => {\n if (iroPickerRef.current?.colorPicker) {\n const iroColor = showAlpha\n ? {\n r: parseInt(newColor.hex.slice(1, 3), 16),\n g: parseInt(newColor.hex.slice(3, 5), 16),\n b: parseInt(newColor.hex.slice(5, 7), 16),\n a: newColor.alpha / 100\n }\n : newColor.hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n } catch (error) {\n console.warn('Error updating iro color picker:', error);\n // Retry after a short delay\n setTimeout(() => {\n try {\n if (iroPickerRef.current?.colorPicker) {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n }\n } catch (retryError) {\n console.warn(\n 'Retry failed for iro color picker update:',\n retryError\n );\n }\n }, 100);\n }\n } else {\n // If picker is not ready, try again after a short delay\n setTimeout(updateIroColor, 50);\n }\n };\n\n updateIroColor();\n };\n\n // Reset to initial color\n const handleResetColor = () => {\n const initialColorData = getHexAlpha(initialValue.current);\n setColor(initialColorData);\n\n // Update the iro color picker\n if (iroPickerRef.current?.colorPicker) {\n const iroColor = showAlpha\n ? {\n r: parseInt(initialColorData.hex.slice(1, 3), 16),\n g: parseInt(initialColorData.hex.slice(3, 5), 16),\n b: parseInt(initialColorData.hex.slice(5, 7), 16),\n a: initialColorData.alpha / 100\n }\n : initialColorData.hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n } catch (error) {\n console.warn('Error updating iro color picker on reset:', error);\n }\n }\n\n // Call onChange with initial value\n onChange(initialValue.current);\n\n // Call onReset callback if provided\n onReset?.();\n };\n\n // Create layout array conditionally based on showAlpha\n const layoutConfig = [\n {\n component: (iro as any).ui.Wheel,\n options: {}\n },\n {\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'value'\n }\n }\n ];\n\n if (showAlpha) {\n layoutConfig.push({\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'alpha'\n }\n });\n }\n\n // Use hex8 format when alpha is enabled for proper alpha support\n const iroColorValue = showAlpha\n ? tinycolor({\n r: parseInt(color.hex.slice(1, 3), 16),\n g: parseInt(color.hex.slice(3, 5), 16),\n b: parseInt(color.hex.slice(5, 7), 16),\n a: color.alpha / 100\n }).toHex8String()\n : color.hex;\n\n return (\n <div\n ref={node}\n className='w-full p-2 rounded-xl shadow-lg space-y-2 transition-all duration-200 hover:shadow-xl overflow-hidden'\n style={{\n backgroundColor: 'var(--colorpicker-panel-bg)',\n maxWidth: '100%',\n minWidth: 0,\n boxSizing: 'border-box'\n }}\n >\n {/* Color Picker Container */}\n <div className='relative overflow-hidden'>\n <div\n className='flex justify-center items-center rounded-lg colorpicker-glass w-full overflow-hidden'\n style={{\n height: Math.max(pickerWidth + 80, 220), // Better height calculation\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n boxSizing: 'border-box'\n }}\n >\n <div\n style={{\n width: pickerWidth,\n height: 'fit-content',\n maxWidth: '90%'\n }}\n >\n <IroColorPicker\n ref={iroPickerRef}\n width={pickerWidth}\n color={iroColorValue}\n layout={layoutConfig}\n onColorChange={handleColorChange}\n />\n </div>\n </div>\n </div>\n {/* Color Palette */}\n <div className='border-t pt-4 colorpicker-glass rounded-lg'>\n <DefaultColorsPanel\n defaultColors={defaultColors}\n setColor={handleColorFromPanel}\n setInit={setInit}\n colorType='solid'\n />\n </div>\n {/* Input Controls */}\n {showInputs && (\n <div className='rounded-lg colorpicker-glass flex items-center gap-2'>\n <div className='flex-1'>\n <InputRgba\n hex={color.hex}\n alpha={color.alpha}\n format={format}\n showAlpha={showAlpha}\n onChange={handleInputChange}\n onSubmitChange={handleInputSubmit}\n />\n </div>\n {showReset && (\n <button\n onClick={handleResetColor}\n className='px-3 py-2 text-xs font-medium rounded-md transition-colors duration-200 bg-transparent border border-gray-600 text-gray-300 hover:text-white hover:border-gray-500 hover:bg-gray-800/50 whitespace-nowrap flex items-center gap-1'\n title='Reset to initial color'\n >\n <svg\n className='w-3 h-3'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'\n />\n </svg>\n Reset\n </button>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default IroSolidColorPicker;\n","import React, { FC } from 'react';\n\ninterface Popups {\n children?: any;\n activeTab?: string | 'solid' | 'gradient';\n tabName?: string;\n popupWidth?: number;\n onClick?: () => void;\n}\n\nexport const PopupTabs: FC<Popups> = ({\n children,\n activeTab,\n popupWidth\n}: Popups) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n\n return (\n <div className='relative rounded-md' style={{ width: `${popupWidth}px` }}>\n {childrenContact}\n </div>\n );\n};\n\nexport const PopupTabsHeaderLabel: FC<Popups> = ({\n children,\n activeTab,\n tabName,\n onClick\n}: Popups) => {\n return (\n <div\n className={`w-full h-12 text-sm font-bold leading-6 tracking-wider text-center uppercase flex items-center justify-center cursor-pointer transition-colors ${\n activeTab === tabName\n ? ' cursor-default opacity-100 '\n : 'hover:text-primary hover:opacity-80 bg-[var(--colorpicker-input-bg)] text-[var(--color-muted-foreground)]'\n }`}\n onClick={onClick}\n >\n {children}\n </div>\n );\n};\n\nexport const PopupTabsHeader: FC<Popups> = ({\n children,\n activeTab\n}: Popups) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n return (\n <div className='w-full h-12 flex rounded-md rounded-b-none overflow-hidden colorpicker-glass shadow-inner'>\n {childrenContact}\n </div>\n );\n};\n\nexport const PopupTabsBody: FC<Popups> = ({ children, activeTab }) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n\n return <div className='p-4'>{childrenContact}</div>;\n};\n\nexport const PopupTabsBodyItem: FC<Popups> = ({\n children,\n activeTab,\n tabName\n}: Popups) => {\n if (activeTab === tabName) {\n return <div>{children}</div>;\n }\n\n return null;\n};\n","import React, { FC, Fragment, useState } from 'react';\nimport '../../../styles/tailwind.css';\nimport { ThemeProvider } from '../../providers/ThemeContext';\nimport { ThemeToggle } from '../../ui/ThemeToggle';\nimport './_colorpicker.scss';\n\nimport IroGradient from './IroGradient';\nimport IroSolid from './IroSolid';\n\nimport {\n PopupTabs,\n PopupTabsBody,\n PopupTabsBodyItem,\n PopupTabsHeader,\n PopupTabsHeaderLabel\n} from '../../ui/PopupTab';\nimport { getIndexActiveTag } from './helper';\n\nimport { IPropsMain } from '../../../lib/types/types';\n\nimport { DEFAULT_COLORS } from '../../../constants/constants';\n\nconst ColorPicker: FC<IPropsMain> = ({\n value = '#ffffff',\n format = 'rgb',\n gradient = false,\n solid = true,\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true,\n popupWidth = 267,\n colorBoardHeight = 120,\n defaultColors = DEFAULT_COLORS,\n defaultActiveTab,\n onChangeTabs,\n onChange = () => ({}),\n showReset = false,\n onReset\n}) => {\n const [activeTab, setActiveTab] = useState<string>(\n defaultActiveTab || getIndexActiveTag(value)\n );\n\n const onChangeSolid = (value: string) => {\n onChange(value);\n };\n\n const onChangeGradient = (value: string) => {\n onChange(value);\n };\n\n const onChangeTab = (tab: string) => {\n setActiveTab(tab);\n if (typeof onChangeTabs === 'function' && !!onChangeTabs) {\n onChangeTabs(tab);\n }\n };\n\n if (solid && gradient) {\n return (\n <ThemeProvider>\n <div className='relative dark' data-color-picker-theme>\n <ThemeToggle />\n <PopupTabs activeTab={activeTab} popupWidth={popupWidth}>\n <PopupTabsHeader>\n <PopupTabsHeaderLabel\n tabName='solid'\n onClick={() => onChangeTab('solid')}\n >\n Solid\n </PopupTabsHeaderLabel>\n <PopupTabsHeaderLabel\n tabName='gradient'\n onClick={() => onChangeTab('gradient')}\n >\n Gradient\n </PopupTabsHeaderLabel>\n </PopupTabsHeader>\n <PopupTabsBody>\n <PopupTabsBodyItem tabName='solid'>\n <IroSolid\n onChange={onChangeSolid}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n </PopupTabsBodyItem>\n <PopupTabsBodyItem tabName='gradient'>\n <IroGradient\n onChange={onChangeGradient}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n </PopupTabsBodyItem>\n </PopupTabsBody>\n </PopupTabs>\n </div>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider>\n <div\n className='relative dark react-iro-color-picker'\n data-color-picker-theme\n >\n <ThemeToggle />\n {solid || gradient ? (\n <PopupTabs popupWidth={popupWidth}>\n <PopupTabsBody>\n {solid ? (\n <IroSolid\n onChange={onChangeSolid}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n ) : (\n <Fragment />\n )}\n {gradient ? (\n <IroGradient\n onChange={onChangeGradient}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n ) : (\n <Fragment />\n )}\n </PopupTabsBody>\n </PopupTabs>\n ) : null}\n </div>\n </ThemeProvider>\n );\n};\n\nexport default ColorPicker;\n"],"names":["r","this$1","IroColorPicker","rgbaToHex","parseGradient","iro","tinyColor","GradientPanel","DefaultColorsPanel","IroSolid"],"mappings":"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AC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,K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"}
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../node_modules/tslib/tslib.es6.mjs","../node_modules/style-inject/dist/style-inject.es.js","../src/components/providers/ThemeContext.tsx","../src/components/ui/ThemeToggle/index.tsx","../node_modules/@jaames/iro/dist/iro.es.js","../node_modules/tinycolor2/esm/tinycolor.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/utils/cn.ts","../src/utils/color/color.ts","../src/utils/color/getHexAlpha.ts","../src/utils/color/hexToRgba.ts","../src/utils/color/rgbaToArray.ts","../src/utils/color/rgbaToHex.ts","../src/utils/format/checkFormat.ts","../src/utils/format/getGradient.ts","../src/utils/validation/isValidHex.ts","../src/utils/validation/isValidRgba.ts","../src/utils/validation/validGradient.ts","../src/utils/format/parseGradient.ts","../src/components/forms/InputRgba/helpers.ts","../src/components/forms/InputRgba/InputRgba.tsx","../src/components/core/IroColorPicker/index.tsx","../src/components/core/Colorpicker/helper.ts","../src/components/core/Colorpicker/DefaultColorPanel/index.tsx","../src/components/core/Colorpicker/GradientPanel/Markers.tsx","../src/constants/constants.ts","../src/components/core/Colorpicker/GradientPanel/index.tsx","../src/hooks/useDebounce.ts","../src/components/core/Colorpicker/IroGradient/index.tsx","../src/components/core/Colorpicker/IroSolid/index.tsx","../src/components/ui/PopupTab/index.tsx","../src/components/core/Colorpicker/index.tsx"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { createContext, useContext, useEffect, useState } from 'react';\n\ntype Theme = 'light' | 'dark';\n\ninterface ThemeContextType {\n theme: Theme;\n toggleTheme: () => void;\n setTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n};\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: Theme;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = 'dark' // Dark theme as default\n}) => {\n const [theme, setTheme] = useState<Theme>(() => {\n // Check localStorage first, then use default\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem('color-picker-theme') as Theme;\n return stored || defaultTheme;\n }\n return defaultTheme;\n });\n\n useEffect(() => {\n // Apply theme to local container instead of document root for better scoping\n const containers = document.querySelectorAll('[data-color-picker-theme]');\n\n containers.forEach((container) => {\n // Remove previous theme class\n container.classList.remove('light', 'dark');\n // Add new theme class\n container.classList.add(theme);\n });\n\n // Store theme preference\n if (typeof window !== 'undefined') {\n localStorage.setItem('color-picker-theme', theme);\n }\n }, [theme]);\n\n const toggleTheme = () => {\n setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light'));\n };\n\n const value = {\n theme,\n toggleTheme,\n setTheme\n };\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n","import React from 'react';\nimport { useTheme } from '../../providers/ThemeContext';\n\n// Simple sun and moon icons as SVG components\nconst SunIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg className={className} fill='currentColor' viewBox='0 0 20 20'>\n <path\n fillRule='evenodd'\n d='M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z'\n clipRule='evenodd'\n />\n </svg>\n);\n\nconst MoonIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg className={className} fill='currentColor' viewBox='0 0 20 20'>\n <path d='M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z' />\n </svg>\n);\n\ninterface ThemeToggleProps {\n className?: string;\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className }) => {\n const { theme, toggleTheme } = useTheme();\n\n return (\n <button\n onClick={toggleTheme}\n className={`theme-toggle ${className || ''}`}\n aria-label={`Switch to ${theme === 'light' ? 'dark' : 'light'} theme`}\n title={`Switch to ${theme === 'light' ? 'dark' : 'light'} theme`}\n >\n {theme === 'light' ? (\n <MoonIcon className='theme-toggle-icon' />\n ) : (\n <SunIcon className='theme-toggle-icon' />\n )}\n </button>\n );\n};\n","/*!\n * iro.js v5.5.2\n * 2016-2021 James Daniel\n * Licensed under MPL 2.0\n * github.com/jaames/iro.js\n */\n\nvar n,u,t,i,r,o,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|^--/i;function s(n,l){for(var u in l){ n[u]=l[u]; }return n}function a(n){var l=n.parentNode;l&&l.removeChild(n);}function h(n,l,u){var t,i,r,o,f=arguments;if(l=s({},l),arguments.length>3){ for(u=[u],t=3;t<arguments.length;t++){ u.push(f[t]); } }if(null!=u&&(l.children=u),null!=n&&null!=n.defaultProps){ for(i in n.defaultProps){ void 0===l[i]&&(l[i]=n.defaultProps[i]); } }return o=l.key,null!=(r=l.ref)&&delete l.ref,null!=o&&delete l.key,v(n,l,o,r)}function v(l,u,t,i){var r={type:l,props:u,key:t,ref:i,__k:null,__p:null,__b:0,__e:null,l:null,__c:null,constructor:void 0};return n.vnode&&n.vnode(r),r}function d(n){return n.children}function y(n){if(null==n||\"boolean\"==typeof n){ return null; }if(\"string\"==typeof n||\"number\"==typeof n){ return v(null,n,null,null); }if(null!=n.__e||null!=n.__c){var l=v(n.type,n.props,n.key,null);return l.__e=n.__e,l}return n}function m(n,l){this.props=n,this.context=l;}function w(n,l){if(null==l){ return n.__p?w(n.__p,n.__p.__k.indexOf(n)+1):null; }for(var u;l<n.__k.length;l++){ if(null!=(u=n.__k[l])&&null!=u.__e){ return u.__e; } }return \"function\"==typeof n.type?w(n):null}function g(n){var l,u;if(null!=(n=n.__p)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++){ if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break} }return g(n)}}function k(l){(!l.__d&&(l.__d=!0)&&1===u.push(l)||i!==n.debounceRendering)&&(i=n.debounceRendering,(n.debounceRendering||t)(_));}function _(){var n,l,t,i,r,o,f,e;for(u.sort(function(n,l){return l.__v.__b-n.__v.__b});n=u.pop();){ n.__d&&(t=void 0,i=void 0,o=(r=(l=n).__v).__e,f=l.__P,e=l.u,l.u=!1,f&&(t=[],i=$(f,r,s({},r),l.__n,void 0!==f.ownerSVGElement,null,t,e,null==o?w(r):o),j(t,r),i!=o&&g(r))); }}function b(n,l,u,t,i,r,o,c,s){var h,v,p,d,y,m,g,k=u&&u.__k||e,_=k.length;if(c==f&&(c=null!=r?r[0]:_?w(u,0):null),h=0,l.__k=x(l.__k,function(u){if(null!=u){if(u.__p=l,u.__b=l.__b+1,null===(p=k[h])||p&&u.key==p.key&&u.type===p.type){ k[h]=void 0; }else { for(v=0;v<_;v++){if((p=k[v])&&u.key==p.key&&u.type===p.type){k[v]=void 0;break}p=null;} }if(d=$(n,u,p=p||f,t,i,r,o,null,c,s),(v=u.ref)&&p.ref!=v&&(g||(g=[])).push(v,u.__c||d,u),null!=d){if(null==m&&(m=d),null!=u.l){ d=u.l,u.l=null; }else if(r==p||d!=c||null==d.parentNode){n:if(null==c||c.parentNode!==n){ n.appendChild(d); }else{for(y=c,v=0;(y=y.nextSibling)&&v<_;v+=2){ if(y==d){ break n; } }n.insertBefore(d,c);}\"option\"==l.type&&(n.value=\"\");}c=d.nextSibling,\"function\"==typeof l.type&&(l.l=d);}}return h++,u}),l.__e=m,null!=r&&\"function\"!=typeof l.type){ for(h=r.length;h--;){ null!=r[h]&&a(r[h]); } }for(h=_;h--;){ null!=k[h]&&D(k[h],k[h]); }if(g){ for(h=0;h<g.length;h++){ A(g[h],g[++h],g[++h]); } }}function x(n,l,u){if(null==u&&(u=[]),null==n||\"boolean\"==typeof n){ l&&u.push(l(null)); }else if(Array.isArray(n)){ for(var t=0;t<n.length;t++){ x(n[t],l,u); } }else { u.push(l?l(y(n)):n); }return u}function C(n,l,u,t,i){var r;for(r in u){ r in l||N(n,r,null,u[r],t); }for(r in l){ i&&\"function\"!=typeof l[r]||\"value\"===r||\"checked\"===r||u[r]===l[r]||N(n,r,l[r],u[r],t); }}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=\"number\"==typeof u&&!1===c.test(l)?u+\"px\":null==u?\"\":u;}function N(n,l,u,t,i){var r,o,f,e,c;if(\"key\"===(l=i?\"className\"===l?\"class\":l:\"class\"===l?\"className\":l)||\"children\"===l);else if(\"style\"===l){ if(r=n.style,\"string\"==typeof u){ r.cssText=u; }else{if(\"string\"==typeof t&&(r.cssText=\"\",t=null),t){ for(o in t){ u&&o in u||P(r,o,\"\"); } }if(u){ for(f in u){ t&&u[f]===t[f]||P(r,f,u[f]); } }} }else{ \"o\"===l[0]&&\"n\"===l[1]?(e=l!==(l=l.replace(/Capture$/,\"\")),c=l.toLowerCase(),l=(c in n?c:l).slice(2),u?(t||n.addEventListener(l,T,e),(n.t||(n.t={}))[l]=u):n.removeEventListener(l,T,e)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&!i&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/^xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u?n.removeAttribute(l):n.setAttribute(l,u)); }}function T(l){return this.t[l.type](n.event?n.event(l):l)}function $(l,u,t,i,r,o,f,e,c,a){var h,v,p,y,w,g,k,_,C,P,N=u.type;if(void 0!==u.constructor){ return null; }(h=n.__b)&&h(u);try{n:if(\"function\"==typeof N){if(_=u.props,C=(h=N.contextType)&&i[h.__c],P=h?C?C.props.value:h.__p:i,t.__c?k=(v=u.__c=t.__c).__p=v.__E:(\"prototype\"in N&&N.prototype.render?u.__c=v=new N(_,P):(u.__c=v=new m(_,P),v.constructor=N,v.render=H),C&&C.sub(v),v.props=_,v.state||(v.state={}),v.context=P,v.__n=i,p=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=N.getDerivedStateFromProps&&s(v.__s==v.state?v.__s=s({},v.__s):v.__s,N.getDerivedStateFromProps(_,v.__s)),p){ null==N.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&f.push(v); }else{if(null==N.getDerivedStateFromProps&&null==e&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(_,P),!e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(_,v.__s,P)){for(v.props=_,v.state=v.__s,v.__d=!1,v.__v=u,u.__e=null!=c?c!==t.__e?c:t.__e:null,u.__k=t.__k,h=0;h<u.__k.length;h++){ u.__k[h]&&(u.__k[h].__p=u); }break n}null!=v.componentWillUpdate&&v.componentWillUpdate(_,v.__s,P);}for(y=v.props,w=v.state,v.context=P,v.props=_,v.state=v.__s,(h=n.__r)&&h(u),v.__d=!1,v.__v=u,v.__P=l,h=v.render(v.props,v.state,v.context),u.__k=x(null!=h&&h.type==d&&null==h.key?h.props.children:h),null!=v.getChildContext&&(i=s(s({},i),v.getChildContext())),p||null==v.getSnapshotBeforeUpdate||(g=v.getSnapshotBeforeUpdate(y,w)),b(l,u,t,i,r,o,f,c,a),v.base=u.__e;h=v.__h.pop();){ v.__s&&(v.state=v.__s),h.call(v); }p||null==y||null==v.componentDidUpdate||v.componentDidUpdate(y,w,g),k&&(v.__E=v.__p=null);}else { u.__e=z(t.__e,u,t,i,r,o,f,a); }(h=n.diffed)&&h(u);}catch(l){n.__e(l,u,t);}return u.__e}function j(l,u){for(var t;t=l.pop();){ try{t.componentDidMount();}catch(l){n.__e(l,t.__v);} }n.__c&&n.__c(u);}function z(n,l,u,t,i,r,o,c){var s,a,h,v,p=u.props,d=l.props;if(i=\"svg\"===l.type||i,null==n&&null!=r){ for(s=0;s<r.length;s++){ if(null!=(a=r[s])&&(null===l.type?3===a.nodeType:a.localName===l.type)){n=a,r[s]=null;break} } }if(null==n){if(null===l.type){ return document.createTextNode(d); }n=i?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type),r=null;}return null===l.type?p!==d&&(null!=r&&(r[r.indexOf(n)]=null),n.data=d):l!==u&&(null!=r&&(r=e.slice.call(n.childNodes)),h=(p=u.props||f).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,c||(v||h)&&(v&&h&&v.__html==h.__html||(n.innerHTML=v&&v.__html||\"\")),C(n,d,p,i,c),l.__k=l.props.children,v||b(n,l,u,t,\"foreignObject\"!==l.type&&i,r,o,f,c),c||(\"value\"in d&&void 0!==d.value&&d.value!==n.value&&(n.value=null==d.value?\"\":d.value),\"checked\"in d&&void 0!==d.checked&&d.checked!==n.checked&&(n.checked=d.checked))),n}function A(l,u,t){try{\"function\"==typeof l?l(u):l.current=u;}catch(l){n.__e(l,t);}}function D(l,u,t){var i,r,o;if(n.unmount&&n.unmount(l),(i=l.ref)&&A(i,null,u),t||\"function\"==typeof l.type||(t=null!=(r=l.__e)),l.__e=l.l=null,null!=(i=l.__c)){if(i.componentWillUnmount){ try{i.componentWillUnmount();}catch(l){n.__e(l,u);} }i.base=i.__P=null;}if(i=l.__k){ for(o=0;o<i.length;o++){ i[o]&&D(i[o],u,t); } }null!=r&&a(r);}function H(n,l,u){return this.constructor(n,u)}function I(l,u,t){var i,o,c;n.__p&&n.__p(l,u),o=(i=t===r)?null:t&&t.__k||u.__k,l=h(d,null,[l]),c=[],$(u,i?u.__k=l:(t||u).__k=l,o||f,f,void 0!==u.ownerSVGElement,t&&!i?[t]:o?null:e.slice.call(u.childNodes),c,!1,t||f,i),j(c,l);}n={},m.prototype.setState=function(n,l){var u=this.__s!==this.state&&this.__s||(this.__s=s({},this.state));(\"function\"!=typeof n||(n=n(u,this.props)))&&s(u,n),null!=n&&this.__v&&(this.u=!1,l&&this.__h.push(l),k(this));},m.prototype.forceUpdate=function(n){this.__v&&(n&&this.__h.push(n),this.u=!0,k(this));},m.prototype.render=d,u=[],t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,i=n.debounceRendering,n.__e=function(n,l,u){for(var t;l=l.__p;){ if((t=l.__c)&&!t.__p){ try{if(t.constructor&&null!=t.constructor.getDerivedStateFromError){ t.setState(t.constructor.getDerivedStateFromError(n)); }else{if(null==t.componentDidCatch){ continue; }t.componentDidCatch(n);}return k(t.__E=t)}catch(l){n=l;} } }throw n},r=f,o=0;\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) { descriptor.writable = true; }\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) { _defineProperties(Constructor.prototype, protoProps); }\n if (staticProps) { _defineProperties(Constructor, staticProps); }\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n var arguments$1 = arguments;\n\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n// Some regular expressions for rgb() and hsl() Colors are borrowed from tinyColor\n// https://github.com/bgrins/TinyColor\n// Kelvin temperature math borrowed from Neil Barlett's implementation\n// from https://github.com/neilbartlett/color-temperature\n// https://www.w3.org/TR/css3-values/#integers\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?'; // http://www.w3.org/TR/css3-values/#number-value\n\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?'; // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome\n\nvar CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')'; // Parse function params\n// Parens and commas are optional, and this also allows for whitespace between numbers\n\nvar PERMISSIVE_MATCH_3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\nvar PERMISSIVE_MATCH_4 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?'; // Regex patterns for functional color strings\n\nvar REGEX_FUNCTIONAL_RGB = new RegExp('rgb' + PERMISSIVE_MATCH_3);\nvar REGEX_FUNCTIONAL_RGBA = new RegExp('rgba' + PERMISSIVE_MATCH_4);\nvar REGEX_FUNCTIONAL_HSL = new RegExp('hsl' + PERMISSIVE_MATCH_3);\nvar REGEX_FUNCTIONAL_HSLA = new RegExp('hsla' + PERMISSIVE_MATCH_4); // Color string parsing regex\n\nvar HEX_START = '^(?:#?|0x?)';\nvar HEX_INT_SINGLE = '([0-9a-fA-F]{1})';\nvar HEX_INT_DOUBLE = '([0-9a-fA-F]{2})';\nvar REGEX_HEX_3 = new RegExp(HEX_START + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + '$');\nvar REGEX_HEX_4 = new RegExp(HEX_START + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + HEX_INT_SINGLE + '$');\nvar REGEX_HEX_6 = new RegExp(HEX_START + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + '$');\nvar REGEX_HEX_8 = new RegExp(HEX_START + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + HEX_INT_DOUBLE + '$'); // Kelvin temperature bounds\n\nvar KELVIN_MIN = 2000;\nvar KELVIN_MAX = 40000; // Math shorthands\n\nvar log = Math.log,\n round = Math.round,\n floor = Math.floor;\n/**\r\n * @desc Clamp a number between a min and max value\r\n * @param num - input value\r\n * @param min - min allowed value\r\n * @param max - max allowed value\r\n */\n\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n/**\r\n * @desc Parse a css unit string - either regular int or a percentage number\r\n * @param str - css unit string\r\n * @param max - max unit value, used for calculating percentages\r\n */\n\n\nfunction parseUnit(str, max) {\n var isPercentage = str.indexOf('%') > -1;\n var num = parseFloat(str);\n return isPercentage ? max / 100 * num : num;\n}\n/**\r\n * @desc Parse hex str to an int\r\n * @param str - hex string to parse\r\n */\n\n\nfunction parseHexInt(str) {\n return parseInt(str, 16);\n}\n/**\r\n * @desc Convert nunber into to 2-digit hex\r\n * @param int - number to convert\r\n */\n\n\nfunction intToHex(_int) {\n return _int.toString(16).padStart(2, '0');\n}\n\nvar IroColor =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @constructor Color object\r\n * @param value - initial color value\r\n */\n function IroColor(value, onChange) {\n // The default Color value\n this.$ = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n };\n if (value) { this.set(value); } // The watch callback function for this Color will be stored here\n\n this.onChange = onChange;\n this.initialValue = _extends({}, this.$); // copy initial value\n }\n /**\r\n * @desc Set the Color from any valid value\r\n * @param value - new color value\r\n */\n\n\n var _proto = IroColor.prototype;\n\n _proto.set = function set(value) {\n if (typeof value === 'string') {\n if (/^(?:#?|0x?)[0-9a-fA-F]{3,8}$/.test(value)) {\n this.hexString = value;\n } else if (/^rgba?/.test(value)) {\n this.rgbString = value;\n } else if (/^hsla?/.test(value)) {\n this.hslString = value;\n }\n } else if (typeof value === 'object') {\n if (value instanceof IroColor) {\n this.hsva = value.hsva;\n } else if ('r' in value && 'g' in value && 'b' in value) {\n this.rgb = value;\n } else if ('h' in value && 's' in value && 'v' in value) {\n this.hsv = value;\n } else if ('h' in value && 's' in value && 'l' in value) {\n this.hsl = value;\n } else if ('kelvin' in value) {\n this.kelvin = value.kelvin;\n }\n } else {\n throw new Error('Invalid color value');\n }\n }\n /**\r\n * @desc Shortcut to set a specific channel value\r\n * @param format - hsv | hsl | rgb\r\n * @param channel - individual channel to set, for example if model = hsl, chanel = h | s | l\r\n * @param value - new value for the channel\r\n */\n ;\n\n _proto.setChannel = function setChannel(format, channel, value) {\n var _extends2;\n\n this[format] = _extends({}, this[format], (_extends2 = {}, _extends2[channel] = value, _extends2));\n }\n /**\r\n * @desc Reset color back to its initial value\r\n */\n ;\n\n _proto.reset = function reset() {\n this.hsva = this.initialValue;\n }\n /**\r\n * @desc make new Color instance with the same value as this one\r\n */\n ;\n\n _proto.clone = function clone() {\n return new IroColor(this);\n }\n /**\r\n * @desc remove color onChange\r\n */\n ;\n\n _proto.unbind = function unbind() {\n this.onChange = undefined;\n }\n /**\r\n * @desc Convert hsv object to rgb\r\n * @param hsv - hsv color object\r\n */\n ;\n\n IroColor.hsvToRgb = function hsvToRgb(hsv) {\n var h = hsv.h / 60;\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var i = floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return {\n r: clamp(r * 255, 0, 255),\n g: clamp(g * 255, 0, 255),\n b: clamp(b * 255, 0, 255)\n };\n }\n /**\r\n * @desc Convert rgb object to hsv\r\n * @param rgb - rgb object\r\n */\n ;\n\n IroColor.rgbToHsv = function rgbToHsv(rgb) {\n var r = rgb.r / 255;\n var g = rgb.g / 255;\n var b = rgb.b / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n var hue = 0;\n var value = max;\n var saturation = max === 0 ? 0 : delta / max;\n\n switch (max) {\n case min:\n hue = 0; // achromatic\n\n break;\n\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n\n case g:\n hue = (b - r) / delta + 2;\n break;\n\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n\n return {\n h: hue * 60 % 360,\n s: clamp(saturation * 100, 0, 100),\n v: clamp(value * 100, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsv object to hsl\r\n * @param hsv - hsv object\r\n */\n ;\n\n IroColor.hsvToHsl = function hsvToHsl(hsv) {\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var l = (2 - s) * v;\n var divisor = l <= 1 ? l : 2 - l; // Avoid division by zero when lightness is close to zero\n\n var saturation = divisor < 1e-9 ? 0 : s * v / divisor;\n return {\n h: hsv.h,\n s: clamp(saturation * 100, 0, 100),\n l: clamp(l * 50, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsl object to hsv\r\n * @param hsl - hsl object\r\n */\n ;\n\n IroColor.hslToHsv = function hslToHsv(hsl) {\n var l = hsl.l * 2;\n var s = hsl.s * (l <= 100 ? l : 200 - l) / 100; // Avoid division by zero when l + s is near 0\n\n var saturation = l + s < 1e-9 ? 0 : 2 * s / (l + s);\n return {\n h: hsl.h,\n s: clamp(saturation * 100, 0, 100),\n v: clamp((l + s) / 2, 0, 100)\n };\n }\n /**\r\n * @desc Convert a kelvin temperature to an approx, RGB value\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.kelvinToRgb = function kelvinToRgb(kelvin) {\n var temp = kelvin / 100;\n var r, g, b;\n\n if (temp < 66) {\n r = 255;\n g = -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log(g);\n b = 255;\n }\n\n return {\n r: clamp(floor(r), 0, 255),\n g: clamp(floor(g), 0, 255),\n b: clamp(floor(b), 0, 255)\n };\n }\n /**\r\n * @desc Convert an RGB color to an approximate kelvin temperature\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.rgbToKelvin = function rgbToKelvin(rgb) {\n var r = rgb.r,\n b = rgb.b;\n var eps = 0.4;\n var minTemp = KELVIN_MIN;\n var maxTemp = KELVIN_MAX;\n var temp;\n\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n\n var _rgb = IroColor.kelvinToRgb(temp);\n\n if (_rgb.b / _rgb.r >= b / r) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n\n return temp;\n };\n\n _createClass(IroColor, [{\n key: \"hsv\",\n get: function get() {\n // value is cloned to allow changes to be made to the values before passing them back\n var value = this.$;\n return {\n h: value.h,\n s: value.s,\n v: value.v\n };\n },\n set: function set(newValue) {\n var oldValue = this.$;\n newValue = _extends({}, oldValue, newValue); // If this Color is being watched for changes we need to compare the new and old values to check the difference\n // Otherwise we can just be lazy\n\n if (this.onChange) {\n // Compute changed values\n var changes = {\n h: false,\n v: false,\n s: false,\n a: false\n };\n\n for (var key in oldValue) {\n changes[key] = newValue[key] != oldValue[key];\n }\n\n this.$ = newValue; // If the value has changed, call hook callback\n\n if (changes.h || changes.s || changes.v || changes.a) { this.onChange(this, changes); }\n } else {\n this.$ = newValue;\n }\n }\n }, {\n key: \"hsva\",\n get: function get() {\n return _extends({}, this.$);\n },\n set: function set(value) {\n this.hsv = value;\n }\n }, {\n key: \"hue\",\n get: function get() {\n return this.$.h;\n },\n set: function set(value) {\n this.hsv = {\n h: value\n };\n }\n }, {\n key: \"saturation\",\n get: function get() {\n return this.$.s;\n },\n set: function set(value) {\n this.hsv = {\n s: value\n };\n }\n }, {\n key: \"value\",\n get: function get() {\n return this.$.v;\n },\n set: function set(value) {\n this.hsv = {\n v: value\n };\n }\n }, {\n key: \"alpha\",\n get: function get() {\n return this.$.a;\n },\n set: function set(value) {\n this.hsv = _extends({}, this.hsv, {\n a: value\n });\n }\n }, {\n key: \"kelvin\",\n get: function get() {\n return IroColor.rgbToKelvin(this.rgb);\n },\n set: function set(value) {\n this.rgb = IroColor.kelvinToRgb(value);\n }\n }, {\n key: \"red\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.r;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n r: value\n });\n }\n }, {\n key: \"green\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.g;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n g: value\n });\n }\n }, {\n key: \"blue\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.b;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n b: value\n });\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var _IroColor$hsvToRgb = IroColor.hsvToRgb(this.$),\n r = _IroColor$hsvToRgb.r,\n g = _IroColor$hsvToRgb.g,\n b = _IroColor$hsvToRgb.b;\n\n return {\n r: round(r),\n g: round(g),\n b: round(b)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.rgbToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"rgba\",\n get: function get() {\n return _extends({}, this.rgb, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.rgb = value;\n }\n }, {\n key: \"hsl\",\n get: function get() {\n var _IroColor$hsvToHsl = IroColor.hsvToHsl(this.$),\n h = _IroColor$hsvToHsl.h,\n s = _IroColor$hsvToHsl.s,\n l = _IroColor$hsvToHsl.l;\n\n return {\n h: round(h),\n s: round(s),\n l: round(l)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.hslToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"hsla\",\n get: function get() {\n return _extends({}, this.hsl, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.hsl = value;\n }\n }, {\n key: \"rgbString\",\n get: function get() {\n var rgb = this.rgb;\n return \"rgb(\" + rgb.r + \", \" + rgb.g + \", \" + rgb.b + \")\";\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_RGB.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n } else if (match = REGEX_FUNCTIONAL_RGBA.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a\n };\n } else {\n throw new Error('Invalid rgb string');\n }\n }\n }, {\n key: \"rgbaString\",\n get: function get() {\n var rgba = this.rgba;\n return \"rgba(\" + rgba.r + \", \" + rgba.g + \", \" + rgba.b + \", \" + rgba.a + \")\";\n },\n set: function set(value) {\n this.rgbString = value;\n }\n }, {\n key: \"hexString\",\n get: function get() {\n var rgb = this.rgb;\n return \"#\" + intToHex(rgb.r) + intToHex(rgb.g) + intToHex(rgb.b);\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 255;\n\n if (match = REGEX_HEX_3.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n } else if (match = REGEX_HEX_4.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n a = parseHexInt(match[4]) * 17;\n } else if (match = REGEX_HEX_6.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n } else if (match = REGEX_HEX_8.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n a = parseHexInt(match[4]);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a / 255\n };\n } else {\n throw new Error('Invalid hex string');\n }\n }\n }, {\n key: \"hex8String\",\n get: function get() {\n var rgba = this.rgba;\n return \"#\" + intToHex(rgba.r) + intToHex(rgba.g) + intToHex(rgba.b) + intToHex(floor(rgba.a * 255));\n },\n set: function set(value) {\n this.hexString = value;\n }\n }, {\n key: \"hslString\",\n get: function get() {\n var hsl = this.hsl;\n return \"hsl(\" + hsl.h + \", \" + hsl.s + \"%, \" + hsl.l + \"%)\";\n },\n set: function set(value) {\n var match;\n var h,\n s,\n l,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_HSL.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n } else if (match = REGEX_FUNCTIONAL_HSLA.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.hsl = {\n h: h,\n s: s,\n l: l,\n a: a\n };\n } else {\n throw new Error('Invalid hsl string');\n }\n }\n }, {\n key: \"hslaString\",\n get: function get() {\n var hsla = this.hsla;\n return \"hsla(\" + hsla.h + \", \" + hsla.s + \"%, \" + hsla.l + \"%, \" + hsla.a + \")\";\n },\n set: function set(value) {\n this.hslString = value;\n }\n }]);\n\n return IroColor;\n}();\n\nvar sliderDefaultOptions = {\n sliderShape: 'bar',\n sliderType: 'value',\n minTemperature: 2200,\n maxTemperature: 11000\n};\n/**\r\n * @desc Get the bounding dimensions of the slider\r\n * @param props - slider props\r\n */\n\nfunction getSliderDimensions(props) {\n var _sliderSize;\n\n var width = props.width,\n sliderSize = props.sliderSize,\n borderWidth = props.borderWidth,\n handleRadius = props.handleRadius,\n padding = props.padding,\n sliderShape = props.sliderShape;\n var ishorizontal = props.layoutDirection === 'horizontal'; // automatically calculate sliderSize if its not defined\n\n sliderSize = (_sliderSize = sliderSize) != null ? _sliderSize : padding * 2 + handleRadius * 2;\n\n if (sliderShape === 'circle') {\n return {\n handleStart: props.padding + props.handleRadius,\n handleRange: width - padding * 2 - handleRadius * 2,\n width: width,\n height: width,\n cx: width / 2,\n cy: width / 2,\n radius: width / 2 - borderWidth / 2\n };\n } else {\n return {\n handleStart: sliderSize / 2,\n handleRange: width - sliderSize,\n radius: sliderSize / 2,\n x: 0,\n y: 0,\n width: ishorizontal ? sliderSize : width,\n height: ishorizontal ? width : sliderSize\n };\n }\n}\n/**\r\n * @desc Get the current slider value for a given color, as a percentage\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getCurrentSliderValue(props, color) {\n var hsva = color.hsva;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return rgb.r / 2.55;\n\n case 'green':\n return rgb.g / 2.55;\n\n case 'blue':\n return rgb.b / 2.55;\n\n case 'alpha':\n return hsva.a * 100;\n\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n var percent = (color.kelvin - minTemperature) / temperatureRange * 100; // clmap percentage\n\n return Math.max(0, Math.min(percent, 100));\n\n case 'hue':\n return hsva.h /= 3.6;\n\n case 'saturation':\n return hsva.s;\n\n case 'value':\n default:\n return hsva.v;\n }\n}\n/**\r\n * @desc Get the current slider value from user input\r\n * @param props - slider props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getSliderValueFromInput(props, x, y) {\n var _getSliderDimensions = getSliderDimensions(props),\n handleRange = _getSliderDimensions.handleRange,\n handleStart = _getSliderDimensions.handleStart;\n\n var handlePos;\n\n if (props.layoutDirection === 'horizontal') {\n handlePos = -1 * y + handleRange + handleStart;\n } else {\n handlePos = x - handleStart;\n } // clamp handle position\n\n\n handlePos = Math.max(Math.min(handlePos, handleRange), 0);\n var percent = Math.round(100 / handleRange * handlePos);\n\n switch (props.sliderType) {\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n return minTemperature + temperatureRange * (percent / 100);\n\n case 'alpha':\n return percent / 100;\n\n case 'hue':\n return percent * 3.6;\n\n case 'red':\n case 'blue':\n case 'green':\n return percent * 2.55;\n\n default:\n return percent;\n }\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderHandlePosition(props, color) {\n var _getSliderDimensions2 = getSliderDimensions(props),\n width = _getSliderDimensions2.width,\n height = _getSliderDimensions2.height,\n handleRange = _getSliderDimensions2.handleRange,\n handleStart = _getSliderDimensions2.handleStart;\n\n var ishorizontal = props.layoutDirection === 'horizontal';\n var sliderValue = getCurrentSliderValue(props, color);\n var midPoint = ishorizontal ? width / 2 : height / 2;\n var handlePos = handleStart + sliderValue / 100 * handleRange;\n\n if (ishorizontal) {\n handlePos = -1 * handlePos + handleRange + handleStart * 2;\n }\n\n return {\n x: ishorizontal ? midPoint : handlePos,\n y: ishorizontal ? handlePos : midPoint\n };\n}\n/**\r\n * @desc Get the gradient stops for a slider\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderGradient(props, color) {\n var hsv = color.hsv;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return [[0, \"rgb(\" + 0 + \",\" + rgb.g + \",\" + rgb.b + \")\"], [100, \"rgb(\" + 255 + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'green':\n return [[0, \"rgb(\" + rgb.r + \",\" + 0 + \",\" + rgb.b + \")\"], [100, \"rgb(\" + rgb.r + \",\" + 255 + \",\" + rgb.b + \")\"]];\n\n case 'blue':\n return [[0, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 0 + \")\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 255 + \")\"]];\n\n case 'alpha':\n return [[0, \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",0)\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'kelvin':\n var stops = [];\n var min = props.minTemperature;\n var max = props.maxTemperature;\n var numStops = 8;\n var range = max - min;\n\n for (var kelvin = min, stop = 0; kelvin < max; kelvin += range / numStops, stop += 1) {\n var _IroColor$kelvinToRgb = IroColor.kelvinToRgb(kelvin),\n r = _IroColor$kelvinToRgb.r,\n g = _IroColor$kelvinToRgb.g,\n b = _IroColor$kelvinToRgb.b;\n\n stops.push([100 / numStops * stop, \"rgb(\" + r + \",\" + g + \",\" + b + \")\"]);\n }\n\n return stops;\n\n case 'hue':\n return [[0, '#f00'], [16.666, '#ff0'], [33.333, '#0f0'], [50, '#0ff'], [66.666, '#00f'], [83.333, '#f0f'], [100, '#f00']];\n\n case 'saturation':\n var noSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 0,\n v: hsv.v\n });\n var fullSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 100,\n v: hsv.v\n });\n return [[0, \"hsl(\" + noSat.h + \",\" + noSat.s + \"%,\" + noSat.l + \"%)\"], [100, \"hsl(\" + fullSat.h + \",\" + fullSat.s + \"%,\" + fullSat.l + \"%)\"]];\n\n case 'value':\n default:\n var hsl = IroColor.hsvToHsl({\n h: hsv.h,\n s: hsv.s,\n v: 100\n });\n return [[0, '#000'], [100, \"hsl(\" + hsl.h + \",\" + hsl.s + \"%,\" + hsl.l + \"%)\"]];\n }\n}\n\nvar TAU = Math.PI * 2; // javascript's modulo operator doesn't produce positive numbers with negative input\n// https://dev.to/maurobringolf/a-neat-trick-to-compute-modulo-of-negative-numbers-111e\n\nvar mod = function mod(a, n) {\n return (a % n + n) % n;\n}; // distance between points (x, y) and (0, 0)\n\n\nvar dist = function dist(x, y) {\n return Math.sqrt(x * x + y * y);\n};\n/**\r\n * @param props - wheel props\r\n * @internal\r\n */\n\n\nfunction getHandleRange(props) {\n return props.width / 2 - props.padding - props.handleRadius - props.borderWidth;\n}\n/**\r\n * Returns true if point (x, y) lands inside the wheel\r\n * @param props - wheel props\r\n * @param x\r\n * @param y\r\n */\n\n\nfunction isInputInsideWheel(props, x, y) {\n var _getWheelDimensions = getWheelDimensions(props),\n cx = _getWheelDimensions.cx,\n cy = _getWheelDimensions.cy;\n\n var r = props.width / 2;\n return dist(cx - x, cy - y) < r;\n}\n/**\r\n * @desc Get the point as the center of the wheel\r\n * @param props - wheel props\r\n */\n\nfunction getWheelDimensions(props) {\n var r = props.width / 2;\n return {\n width: props.width,\n radius: r - props.borderWidth,\n cx: r,\n cy: r\n };\n}\n/**\r\n * @desc Translate an angle according to wheelAngle and wheelDirection\r\n * @param props - wheel props\r\n * @param angle - input angle\r\n */\n\nfunction translateWheelAngle(props, angle, invert) {\n var wheelAngle = props.wheelAngle;\n var wheelDirection = props.wheelDirection; // inverted and clockwisee\n\n if (invert && wheelDirection === 'clockwise') { angle = wheelAngle + angle; } // clockwise (input handling)\n else if (wheelDirection === 'clockwise') { angle = 360 - wheelAngle + angle; } // inverted and anticlockwise\n else if (invert && wheelDirection === 'anticlockwise') { angle = wheelAngle + 180 - angle; } // anticlockwise (input handling)\n else if (wheelDirection === 'anticlockwise') { angle = wheelAngle - angle; }\n return mod(angle, 360);\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - wheel props\r\n * @param color\r\n */\n\nfunction getWheelHandlePosition(props, color) {\n var hsv = color.hsv;\n\n var _getWheelDimensions2 = getWheelDimensions(props),\n cx = _getWheelDimensions2.cx,\n cy = _getWheelDimensions2.cy;\n\n var handleRange = getHandleRange(props);\n var handleAngle = (180 + translateWheelAngle(props, hsv.h, true)) * (TAU / 360);\n var handleDist = hsv.s / 100 * handleRange;\n var direction = props.wheelDirection === 'clockwise' ? -1 : 1;\n return {\n x: cx + handleDist * Math.cos(handleAngle) * direction,\n y: cy + handleDist * Math.sin(handleAngle) * direction\n };\n}\n/**\r\n * @desc Get the current wheel value from user input\r\n * @param props - wheel props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getWheelValueFromInput(props, x, y) {\n var _getWheelDimensions3 = getWheelDimensions(props),\n cx = _getWheelDimensions3.cx,\n cy = _getWheelDimensions3.cy;\n\n var handleRange = getHandleRange(props);\n x = cx - x;\n y = cy - y; // Calculate the hue by converting the angle to radians\n\n var hue = translateWheelAngle(props, Math.atan2(-y, -x) * (360 / TAU)); // Find the point's distance from the center of the wheel\n // This is used to show the saturation level\n\n var handleDist = Math.min(dist(x, y), handleRange);\n return {\n h: Math.round(hue),\n s: Math.round(100 / handleRange * handleDist)\n };\n}\n/**\r\n * @desc Get the bounding dimensions of the box\r\n * @param props - box props\r\n */\n\nfunction getBoxDimensions(props) {\n var width = props.width,\n boxHeight = props.boxHeight,\n padding = props.padding,\n handleRadius = props.handleRadius;\n return {\n width: width,\n height: boxHeight != null ? boxHeight : width,\n radius: padding + handleRadius\n };\n}\n/**\r\n * @desc Get the current box value from user input\r\n * @param props - box props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getBoxValueFromInput(props, x, y) {\n var _getBoxDimensions = getBoxDimensions(props),\n width = _getBoxDimensions.width,\n height = _getBoxDimensions.height,\n radius = _getBoxDimensions.radius;\n\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n var percentX = (x - handleStart) / handleRangeX * 100;\n var percentY = (y - handleStart) / handleRangeY * 100;\n return {\n s: Math.max(0, Math.min(percentX, 100)),\n v: Math.max(0, Math.min(100 - percentY, 100))\n };\n}\n/**\r\n * @desc Get the current box handle position for a given color\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxHandlePosition(props, color) {\n var _getBoxDimensions2 = getBoxDimensions(props),\n width = _getBoxDimensions2.width,\n height = _getBoxDimensions2.height,\n radius = _getBoxDimensions2.radius;\n\n var hsv = color.hsv;\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n return {\n x: handleStart + hsv.s / 100 * handleRangeX,\n y: handleStart + (handleRangeY - hsv.v / 100 * handleRangeY)\n };\n}\n/**\r\n * @desc Get the gradient stops for a box\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxGradients(props, color) {\n var hue = color.hue;\n return [// saturation gradient\n [[0, '#fff'], [100, \"hsl(\" + hue + \",100%,50%)\"]], // lightness gradient\n [[0, 'rgba(0,0,0,0)'], [100, '#000']]];\n}\n\n// Keep track of html <base> elements for resolveSvgUrl\n// getElementsByTagName returns a live HTMLCollection, which stays in sync with the DOM tree\n// So it only needs to be called once\nvar BASE_ELEMENTS;\n/**\r\n * @desc Resolve an SVG reference URL\r\n * This is required to work around how Safari and iOS webviews handle gradient URLS under certain conditions\r\n * If a page is using a client-side routing library which makes use of the HTML <base> tag,\r\n * Safari won't be able to render SVG gradients properly (as they are referenced by URLs)\r\n * More info on the problem:\r\n * https://stackoverflow.com/questions/19742805/angular-and-svg-filters/19753427#19753427\r\n * https://github.com/jaames/iro.js/issues/18\r\n * https://github.com/jaames/iro.js/issues/45\r\n * https://github.com/jaames/iro.js/pull/89\r\n * @props url - SVG reference URL\r\n */\n\nfunction resolveSvgUrl(url) {\n if (!BASE_ELEMENTS) { BASE_ELEMENTS = document.getElementsByTagName('base'); } // Sniff useragent string to check if the user is running Safari\n\n var ua = window.navigator.userAgent;\n var isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n var isIos = /iPhone|iPod|iPad/i.test(ua);\n var location = window.location;\n return (isSafari || isIos) && BASE_ELEMENTS.length > 0 ? location.protocol + \"//\" + location.host + location.pathname + location.search + url : url;\n}\n/**\r\n * @desc Given a specifc (x, y) position, test if there's a handle there and return its index, else return null.\r\n * This is used for components like the box and wheel which support multiple handles when multicolor is active\r\n * @props x - point x position\r\n * @props y - point y position\r\n * @props handlePositions - array of {x, y} coords for each handle\r\n */\n\nfunction getHandleAtPoint(props, x, y, handlePositions) {\n for (var i = 0; i < handlePositions.length; i++) {\n var dX = handlePositions[i].x - x;\n var dY = handlePositions[i].y - y;\n var dist = Math.sqrt(dX * dX + dY * dY);\n\n if (dist < props.handleRadius) {\n return i;\n }\n }\n\n return null;\n}\n\nfunction cssBorderStyles(props) {\n return {\n boxSizing: 'border-box',\n border: props.borderWidth + \"px solid \" + props.borderColor\n };\n}\nfunction cssGradient(type, direction, stops) {\n return type + \"-gradient(\" + direction + \", \" + stops.map(function (_ref) {\n var o = _ref[0],\n col = _ref[1];\n return col + \" \" + o + \"%\";\n }).join(',') + \")\";\n}\nfunction cssValue(value) {\n if (typeof value === 'string') { return value; }\n return value + \"px\";\n}\n\nvar iroColorPickerOptionDefaults = {\n width: 300,\n height: 300,\n color: '#fff',\n colors: [],\n padding: 6,\n layoutDirection: 'vertical',\n borderColor: '#fff',\n borderWidth: 0,\n handleRadius: 8,\n activeHandleRadius: null,\n handleSvg: null,\n handleProps: {\n x: 0,\n y: 0\n },\n wheelLightness: true,\n wheelAngle: 0,\n wheelDirection: 'anticlockwise',\n sliderSize: null,\n sliderMargin: 12,\n boxHeight: null\n};\n\nvar SECONDARY_EVENTS = [\"mousemove\" /* MouseMove */, \"touchmove\" /* TouchMove */, \"mouseup\" /* MouseUp */, \"touchend\" /* TouchEnd */];\r\n// Base component class for iro UI components\r\n// This extends the Preact component class to allow them to react to mouse/touch input events by themselves\r\nvar IroComponentWrapper = /*@__PURE__*/(function (Component) {\n function IroComponentWrapper(props) {\r\n Component.call(this, props);\r\n // Generate unique ID for the component\r\n // This can be used to generate unique IDs for gradients, etc\r\n this.uid = (Math.random() + 1).toString(36).substring(5);\r\n }\n\n if ( Component ) IroComponentWrapper.__proto__ = Component;\n IroComponentWrapper.prototype = Object.create( Component && Component.prototype );\n IroComponentWrapper.prototype.constructor = IroComponentWrapper;\r\n IroComponentWrapper.prototype.render = function render (props) {\r\n var eventHandler = this.handleEvent.bind(this);\r\n var rootProps = {\r\n onMouseDown: eventHandler,\r\n // https://github.com/jaames/iro.js/issues/126\r\n // https://github.com/preactjs/preact/issues/2113#issuecomment-553408767\r\n ontouchstart: eventHandler,\r\n };\r\n var isHorizontal = props.layoutDirection === 'horizontal';\r\n var margin = props.margin === null ? props.sliderMargin : props.margin;\r\n var rootStyles = {\r\n overflow: 'visible',\r\n display: isHorizontal ? 'inline-block' : 'block'\r\n };\r\n // first component shouldn't have any margin\r\n if (props.index > 0) {\r\n rootStyles[isHorizontal ? 'marginLeft' : 'marginTop'] = margin;\r\n }\r\n return (h(d, null, props.children(this.uid, rootProps, rootStyles)));\r\n };\r\n // More info on handleEvent:\r\n // https://medium.com/@WebReflection/dom-handleevent-a-cross-platform-standard-since-year-2000-5bf17287fd38\r\n // TL;DR this lets us have a single point of entry for multiple events, and we can avoid callback/binding hell\r\n IroComponentWrapper.prototype.handleEvent = function handleEvent (e) {\n var this$1 = this;\n\r\n var inputHandler = this.props.onInput;\r\n // Get the screen position of the component\r\n var bounds = this.base.getBoundingClientRect();\r\n // Prefect default browser action\r\n e.preventDefault();\r\n // Detect if the event is a touch event by checking if it has the `touches` property\r\n // If it is a touch event, use the first touch input\r\n var point = e.touches ? e.changedTouches[0] : e;\r\n var x = point.clientX - bounds.left;\r\n var y = point.clientY - bounds.top;\r\n switch (e.type) {\r\n case \"mousedown\" /* MouseDown */:\r\n case \"touchstart\" /* TouchStart */:\r\n var result = inputHandler(x, y, 0 /* Start */);\r\n if (result !== false) {\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.addEventListener(event, this$1, { passive: false });\r\n });\r\n }\r\n break;\r\n case \"mousemove\" /* MouseMove */:\r\n case \"touchmove\" /* TouchMove */:\r\n inputHandler(x, y, 1 /* Move */);\r\n break;\r\n case \"mouseup\" /* MouseUp */:\r\n case \"touchend\" /* TouchEnd */:\r\n inputHandler(x, y, 2 /* End */);\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.removeEventListener(event, this$1, { passive: false });\r\n });\r\n break;\r\n }\r\n };\n\n return IroComponentWrapper;\n}(m));\n\nfunction IroHandle(props) {\r\n var radius = props.r;\r\n var url = props.url;\r\n var cx = radius;\r\n var cy = radius;\r\n return (h(\"svg\", { className: (\"IroHandle IroHandle--\" + (props.index) + \" \" + (props.isActive ? 'IroHandle--isActive' : '')), style: {\r\n '-webkit-tap-highlight-color': 'rgba(0, 0, 0, 0);',\r\n transform: (\"translate(\" + (cssValue(props.x)) + \", \" + (cssValue(props.y)) + \")\"),\r\n willChange: 'transform',\r\n top: cssValue(-radius),\r\n left: cssValue(-radius),\r\n width: cssValue(radius * 2),\r\n height: cssValue(radius * 2),\r\n position: 'absolute',\r\n overflow: 'visible'\r\n } },\r\n url && (h(\"use\", Object.assign({ xlinkHref: resolveSvgUrl(url) }, props.props))),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius, fill: \"none\", \"stroke-width\": 2, stroke: \"#000\" })),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius - 2, fill: props.fill, \"stroke-width\": 2, stroke: \"#fff\" }))));\r\n}\r\nIroHandle.defaultProps = {\r\n fill: 'none',\r\n x: 0,\r\n y: 0,\r\n r: 8,\r\n url: null,\r\n props: { x: 0, y: 0 }\r\n};\n\nfunction IroSlider(props) {\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var ref = getSliderDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var handlePos = getSliderHandlePosition(props, activeColor);\r\n var gradient = getSliderGradient(props, activeColor);\r\n function handleInput(x, y, type) {\r\n var value = getSliderValueFromInput(props, x, y);\r\n props.parent.inputActive = true;\r\n activeColor[props.sliderType] = value;\r\n props.onInput(type, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroSlider\", style: Object.assign({}, {position: 'relative',\r\n width: cssValue(width),\r\n height: cssValue(height),\r\n borderRadius: cssValue(radius),\r\n // checkered bg to represent alpha\r\n background: \"conic-gradient(#ccc 25%, #fff 0 50%, #ccc 0 75%, #fff 0)\",\r\n backgroundSize: '8px 8px'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroSliderGradient\", style: Object.assign({}, {position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: cssValue(radius),\r\n background: cssGradient('linear', props.layoutDirection === 'horizontal' ? 'to top' : 'to right', gradient)},\r\n cssBorderStyles(props)) }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePos.x, y: handlePos.y }))); }));\r\n}\r\nIroSlider.defaultProps = Object.assign({}, sliderDefaultOptions);\n\nfunction IroBox(props) {\r\n var ref = getBoxDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var colors = props.colors;\r\n var colorPicker = props.parent;\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var gradients = getBoxGradients(props, activeColor);\r\n var handlePositions = colors.map(function (color) { return getBoxHandlePosition(props, color); });\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroBox\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(height),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroBox\", style: Object.assign({}, {width: '100%',\r\n height: '100%',\r\n borderRadius: cssValue(radius)},\r\n cssBorderStyles(props),\r\n {background: cssGradient('linear', 'to bottom', gradients[1])\r\n + ',' +\r\n cssGradient('linear', 'to right', gradients[0])}) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nvar HUE_GRADIENT_CLOCKWISE = 'conic-gradient(red, yellow, lime, aqua, blue, magenta, red)';\r\nvar HUE_GRADIENT_ANTICLOCKWISE = 'conic-gradient(red, magenta, blue, aqua, lime, yellow, red)';\r\nfunction IroWheel(props) {\r\n var ref = getWheelDimensions(props);\n var width = ref.width;\n var colors = props.colors;\n var borderWidth = props.borderWidth;\r\n var colorPicker = props.parent;\r\n var activeColor = props.color;\r\n var hsv = activeColor.hsv;\r\n var handlePositions = colors.map(function (color) { return getWheelHandlePosition(props, color); });\r\n var circleStyles = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n boxSizing: 'border-box'\r\n };\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // input hitbox is a square, \r\n // so we want to ignore any initial clicks outside the circular shape of the wheel\r\n if (!isInputInsideWheel(props, x, y)) {\r\n // returning false will cease all event handling for this interaction\r\n return false;\r\n }\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroWheel\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(width),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroWheelHue\", style: Object.assign({}, circleStyles,\r\n {transform: (\"rotateZ(\" + (props.wheelAngle + 90) + \"deg)\"),\r\n background: props.wheelDirection === 'clockwise' ? HUE_GRADIENT_CLOCKWISE : HUE_GRADIENT_ANTICLOCKWISE}) }),\r\n h(\"div\", { className: \"IroWheelSaturation\", style: Object.assign({}, circleStyles,\r\n {background: 'radial-gradient(circle closest-side, #fff, transparent)'}) }),\r\n props.wheelLightness && (h(\"div\", { className: \"IroWheelLightness\", style: Object.assign({}, circleStyles,\r\n {background: '#000',\r\n opacity: 1 - hsv.v / 100}) })),\r\n h(\"div\", { className: \"IroWheelBorder\", style: Object.assign({}, circleStyles,\r\n cssBorderStyles(props)) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nfunction createWidget(WidgetComponent) {\r\n var widgetFactory = function (parent, props) {\r\n var widget; // will become an instance of the widget component class\r\n var widgetRoot = document.createElement('div');\r\n // Render widget into a temp DOM node\r\n I(h(WidgetComponent, Object.assign({}, {ref: function (ref) { return widget = ref; }},\r\n props)), widgetRoot);\r\n function mountWidget() {\r\n var container = parent instanceof Element ? parent : document.querySelector(parent);\r\n container.appendChild(widget.base);\r\n widget.onMount(container);\r\n }\r\n // Mount it into the DOM when the page document is ready\r\n if (document.readyState !== 'loading') {\r\n mountWidget();\r\n }\r\n else {\r\n document.addEventListener('DOMContentLoaded', mountWidget);\r\n }\r\n return widget;\r\n };\r\n // Allow the widget factory to inherit component prototype + static class methods\r\n // This makes it easier for plugin authors to extend the base widget component\r\n widgetFactory.prototype = WidgetComponent.prototype;\r\n Object.assign(widgetFactory, WidgetComponent);\r\n // Add reference to base component too\r\n widgetFactory.__component = WidgetComponent;\r\n return widgetFactory;\r\n}\n\nvar IroColorPicker = /*@__PURE__*/(function (Component) {\n function IroColorPicker(props) {\n var this$1 = this;\n\r\n Component.call(this, props);\r\n this.colors = [];\r\n this.inputActive = false;\r\n this.events = {};\r\n this.activeEvents = {};\r\n this.deferredEvents = {};\r\n this.id = props.id;\r\n var colors = props.colors.length > 0 ? props.colors : [props.color];\r\n colors.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n this.setActiveColor(0);\r\n // Pass all the props into the component's state,\r\n // Except we want to add the color object and make sure that refs aren't passed down to children\r\n this.state = Object.assign({}, props,\r\n {color: this.color,\r\n colors: this.colors,\r\n layout: props.layout});\r\n }\n\n if ( Component ) IroColorPicker.__proto__ = Component;\n IroColorPicker.prototype = Object.create( Component && Component.prototype );\n IroColorPicker.prototype.constructor = IroColorPicker;\r\n // Plubic multicolor API\r\n /**\r\n * @desc Add a color to the color picker\r\n * @param color new color to add\r\n * @param index optional color index\r\n */\r\n IroColorPicker.prototype.addColor = function addColor (color, index) {\n if ( index === void 0 ) index = this.colors.length;\n\r\n // Create a new iro.Color\r\n // Also bind it to onColorChange, so whenever the color changes it updates the color picker\r\n var newColor = new IroColor(color, this.onColorChange.bind(this));\r\n // Insert color @ the given index\r\n this.colors.splice(index, 0, newColor);\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // Fire color init event\r\n this.deferredEmit('color:init', newColor);\r\n };\r\n /**\r\n * @desc Remove a color from the color picker\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.removeColor = function removeColor (index) {\r\n var color = this.colors.splice(index, 1)[0];\r\n // Destroy the color object -- this unbinds it from the color picker\r\n color.unbind();\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // If the active color was removed, default active color to 0\r\n if (color.index === this.color.index) {\r\n this.setActiveColor(0);\r\n }\r\n // Fire color remove event\r\n this.emit('color:remove', color);\r\n };\r\n /**\r\n * @desc Set the currently active color\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.setActiveColor = function setActiveColor (index) {\r\n this.color = this.colors[index];\r\n if (this.state) {\r\n this.setState({ color: this.color });\r\n }\r\n // Fire color switch event\r\n this.emit('color:setActive', this.color);\r\n };\r\n /**\r\n * @desc Replace all of the current colorPicker colors\r\n * @param newColorValues list of new colors to add\r\n */\r\n IroColorPicker.prototype.setColors = function setColors (newColorValues, activeColorIndex) {\n var this$1 = this;\n if ( activeColorIndex === void 0 ) activeColorIndex = 0;\n\r\n // Unbind color events\r\n this.colors.forEach(function (color) { return color.unbind(); });\r\n // Destroy old colors\r\n this.colors = [];\r\n // Add new colors\r\n newColorValues.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n // Reset active color\r\n this.setActiveColor(activeColorIndex);\r\n this.emit('color:setAll', this.colors);\r\n };\r\n // Public ColorPicker events API\r\n /**\r\n * @desc Set a callback function for an event\r\n * @param eventList event(s) to listen to\r\n * @param callback - Function called when the event is fired\r\n */\r\n IroColorPicker.prototype.on = function on (eventList, callback) {\n var this$1 = this;\n\r\n var events = this.events;\r\n // eventList can be an eventType string or an array of eventType strings\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n // Add event callback\r\n (events[eventType] || (events[eventType] = [])).push(callback);\r\n // Call deferred events\r\n // These are events that can be stored until a listener for them is added\r\n if (this$1.deferredEvents[eventType]) {\r\n // Deffered events store an array of arguments from when the event was called\r\n this$1.deferredEvents[eventType].forEach(function (args) {\r\n callback.apply(null, args);\r\n });\r\n // Clear deferred events\r\n this$1.deferredEvents[eventType] = [];\r\n }\r\n });\r\n };\r\n /**\r\n * @desc Remove a callback function for an event added with on()\r\n * @param eventList - event(s) to listen to\r\n * @param callback - original callback function to remove\r\n */\r\n IroColorPicker.prototype.off = function off (eventList, callback) {\n var this$1 = this;\n\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n var callbackList = this$1.events[eventType];\r\n // this.emitHook('event:off', eventType, callback);\r\n if (callbackList)\r\n { callbackList.splice(callbackList.indexOf(callback), 1); }\r\n });\r\n };\r\n /**\r\n * @desc Emit an event\r\n * @param eventType event to emit\r\n */\r\n IroColorPicker.prototype.emit = function emit (eventType) {\n var this$1 = this;\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\r\n var activeEvents = this.activeEvents;\r\n var isEventActive = activeEvents.hasOwnProperty(eventType) ? activeEvents[eventType] : false;\r\n // Prevent event callbacks from firing if the event is already active\r\n // This stops infinite loops if something in an event callback causes the same event to be fired again\r\n // (e.g. setting the color inside a color:change callback)\r\n if (!isEventActive) {\r\n activeEvents[eventType] = true;\r\n var callbackList = this.events[eventType] || [];\r\n callbackList.forEach(function (fn) { return fn.apply(this$1, args); });\r\n activeEvents[eventType] = false;\r\n }\r\n };\r\n /**\r\n * @desc Emit an event now, or save it for when the relevent event listener is added\r\n * @param eventType - The name of the event to emit\r\n */\r\n IroColorPicker.prototype.deferredEmit = function deferredEmit (eventType) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\r\n var deferredEvents = this.deferredEvents;\r\n (ref = this).emit.apply(ref, [ eventType ].concat( args ));\r\n (deferredEvents[eventType] || (deferredEvents[eventType] = [])).push(args);\r\n };\r\n // Public utility methods\r\n IroColorPicker.prototype.setOptions = function setOptions (newOptions) {\r\n this.setState(newOptions);\r\n };\r\n /**\r\n * @desc Resize the color picker\r\n * @param width - new width\r\n */\r\n IroColorPicker.prototype.resize = function resize (width) {\r\n this.setOptions({ width: width });\r\n };\r\n /**\r\n * @desc Reset the color picker to the initial color provided in the color picker options\r\n */\r\n IroColorPicker.prototype.reset = function reset () {\r\n this.colors.forEach(function (color) { return color.reset(); });\r\n this.setState({ colors: this.colors });\r\n };\r\n /**\r\n * @desc Called by the createWidget wrapper when the element is mounted into the page\r\n * @param container - the container element for this ColorPicker instance\r\n */\r\n IroColorPicker.prototype.onMount = function onMount (container) {\r\n this.el = container;\r\n this.deferredEmit('mount', this);\r\n };\r\n // Internal methods\r\n /**\r\n * @desc React to a color update\r\n * @param color - current color\r\n * @param changes - shows which h,s,v,a color channels changed\r\n */\r\n IroColorPicker.prototype.onColorChange = function onColorChange (color, changes) {\r\n this.setState({ color: this.color });\r\n if (this.inputActive) {\r\n this.inputActive = false;\r\n this.emit('input:change', color, changes);\r\n }\r\n this.emit('color:change', color, changes);\r\n };\r\n /**\r\n * @desc Handle input from a UI control element\r\n * @param type - event type\r\n */\r\n IroColorPicker.prototype.emitInputEvent = function emitInputEvent (type, originId) {\r\n if (type === 0 /* Start */) {\r\n this.emit('input:start', this.color, originId);\r\n }\r\n else if (type === 1 /* Move */) {\r\n this.emit('input:move', this.color, originId);\r\n }\r\n else if (type === 2 /* End */) {\r\n this.emit('input:end', this.color, originId);\r\n }\r\n };\r\n IroColorPicker.prototype.render = function render (props, state) {\n var this$1 = this;\n\r\n var layout = state.layout;\r\n // use layout shorthands\r\n if (!Array.isArray(layout)) {\r\n switch (layout) {\r\n // TODO: implement some?\r\n default:\r\n layout = [\r\n { component: IroWheel },\r\n { component: IroSlider } ];\r\n }\r\n // add transparency slider to the layout\r\n if (state.transparency) {\r\n layout.push({\r\n component: IroSlider,\r\n options: {\r\n sliderType: 'alpha'\r\n }\r\n });\r\n }\r\n }\r\n return (h(\"div\", { class: \"IroColorPicker\", id: state.id, style: {\r\n display: state.display\r\n } }, layout.map(function (ref, componentIndex) {\n var UiComponent = ref.component;\n var options = ref.options;\n\n return (h(UiComponent, Object.assign({}, state, options, { ref: undefined, onInput: this$1.emitInputEvent.bind(this$1), parent: this$1, index: componentIndex })));\n })));\r\n };\n\n return IroColorPicker;\n}(m));\r\nIroColorPicker.defaultProps = Object.assign({}, iroColorPickerOptionDefaults,\r\n {colors: [],\r\n display: 'block',\r\n id: null,\r\n layout: 'default',\r\n margin: null});\r\nvar IroColorPickerWidget = createWidget(IroColorPicker);\n\nvar iro;\r\n(function (iro) {\r\n iro.version = \"5.5.2\"; // replaced by @rollup/plugin-replace; see rollup.config.js\r\n iro.Color = IroColor;\r\n iro.ColorPicker = IroColorPickerWidget;\r\n var ui;\r\n (function (ui) {\r\n ui.h = h;\r\n ui.ComponentBase = IroComponentWrapper;\r\n ui.Handle = IroHandle;\r\n ui.Slider = IroSlider;\r\n ui.Wheel = IroWheel;\r\n ui.Box = IroBox;\r\n })(ui = iro.ui || (iro.ui = {}));\r\n})(iro || (iro = {}));\r\nvar iro$1 = iro;\n\nexport default iro$1;\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Utility function to merge Tailwind CSS classes\n * Combines clsx for conditional classes with tailwind-merge for proper class overrides\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import tinycolor, { ColorFormats, Instance } from 'tinycolor2';\n\ninterface IInput {\n h: number;\n s: number;\n v: number;\n}\n\nexport interface ITinyColor {\n color: Instance;\n alphaValue: number;\n blueValue: number;\n brightnessValue: number;\n greenValue: number;\n hueValue: number;\n lightnessValue: number;\n saturationValue: number;\n redValue: number;\n initRgb(): void;\n initHsb(): void;\n toHexString(): string;\n toRgbString(): string;\n toHsv(): ColorFormats.HSVA;\n hex: string;\n hue: number;\n saturation: number;\n lightness: number;\n brightness: number;\n red: number;\n green: number;\n blue: number;\n alpha: number;\n RGB: number[];\n HSB: number[];\n}\n\nexport default class TinyColor {\n color: Instance;\n alphaValue: number;\n hueValue: number;\n saturationValue: number;\n brightnessValue: number;\n redValue: number;\n greenValue: number;\n blueValue: number;\n lightnessValue: number;\n\n constructor(input: IInput | string) {\n this.color = tinycolor(input);\n\n this.initRgb();\n this.initHsb();\n\n const initAlpha = this.color.toRgb().a;\n this.alphaValue = Math.min(1, initAlpha) * 100;\n\n this.hueValue = this.color.toHsv().h;\n this.saturationValue = this.color.toHsv().s;\n this.brightnessValue = this.color.toHsv().v;\n this.redValue = this.color.toRgb().r;\n this.greenValue = this.color.toRgb().g;\n this.blueValue = this.color.toRgb().b;\n this.lightnessValue = 0;\n }\n\n static isValidHex(hex: string) {\n return tinycolor(hex).isValid();\n }\n\n initRgb = () => {\n const { r, g, b } = this.color.toRgb();\n\n this.redValue = r;\n this.greenValue = g;\n this.blueValue = b;\n };\n\n initHsb = () => {\n const { h, s, v } = this.color.toHsv();\n\n this.hueValue = h;\n this.saturationValue = s;\n this.brightnessValue = v;\n };\n\n toHexString = () => {\n return this.color.toHexString();\n };\n\n toRgbString = () => {\n return this.color.toRgbString();\n };\n\n toHsv = () => {\n return this.color.toHsv();\n };\n\n get hex() {\n return this.color.toHex();\n }\n\n set hue(value) {\n this.color = tinycolor({\n h: value,\n s: this.saturation,\n v: this.brightness\n });\n\n this.initRgb();\n this.hueValue = value;\n }\n\n get hue() {\n return this.hueValue;\n }\n\n set saturation(value) {\n this.color = tinycolor({\n h: this.hue,\n s: value,\n v: this.brightness\n });\n\n this.initRgb();\n this.saturationValue = value;\n }\n\n get saturation() {\n return this.saturationValue;\n }\n\n set lightness(value) {\n this.color = tinycolor({\n h: this.hue,\n s: this.saturation,\n l: value\n });\n\n this.initRgb();\n this.lightnessValue = value;\n }\n\n get lightness() {\n return this.lightnessValue;\n }\n\n set brightness(value) {\n this.color = tinycolor({\n h: this.hue,\n s: this.saturation,\n v: value\n });\n\n this.initRgb();\n this.brightnessValue = value;\n }\n\n get brightness() {\n return this.brightnessValue;\n }\n\n // red\n set red(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n r: value\n });\n\n this.initHsb();\n this.redValue = value;\n }\n\n get red() {\n return this.redValue;\n }\n\n // green\n set green(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n g: value\n });\n\n this.initHsb();\n this.greenValue = value;\n }\n\n get green() {\n return this.greenValue;\n }\n\n // blue\n set blue(value) {\n const rgb = this.color.toRgb();\n this.color = tinycolor({\n ...rgb,\n b: value\n });\n\n this.initHsb();\n this.blueValue = value;\n }\n\n get blue() {\n return this.blueValue;\n }\n\n // alpha\n set alpha(value) {\n this.color.setAlpha(value / 100);\n }\n\n get alpha() {\n return this.color.getAlpha() * 100;\n }\n\n get RGB() {\n return [this.red, this.green, this.blue];\n }\n\n get HSB() {\n return [this.hue, this.saturation, this.brightness];\n }\n}\n","import tinycolor from 'tinycolor2';\n\nexport default (value: string) => {\n const defaultObject = {\n hex: '#ffffff',\n alpha: 100\n };\n const tinyColor = tinycolor(value);\n\n if (value) {\n if (\n tinyColor.isValid() &&\n !value.trim().startsWith('radial-gradient') &&\n !value.trim().startsWith('linear-gradient')\n ) {\n defaultObject.hex = tinyColor.toHexString();\n defaultObject.alpha = Math.round(tinyColor.getAlpha() * 100);\n } else {\n return defaultObject;\n }\n }\n\n return defaultObject;\n};\n","export default (hexVal: string, opacityVal: number) => {\n const opacity = isNaN(opacityVal) ? 100 : opacityVal;\n const hex = hexVal.replace('#', '');\n let r;\n let g;\n let b;\n\n if (hex.length === 6) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n } else {\n const rd = hex.substring(0, 1) + hex.substring(0, 1);\n const gd = hex.substring(1, 2) + hex.substring(1, 2);\n const bd = hex.substring(2, 3) + hex.substring(2, 3);\n r = parseInt(rd, 16);\n g = parseInt(gd, 16);\n b = parseInt(bd, 16);\n }\n\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + opacity / 100 + ')';\n};\n","export default (color: any) => {\n if (!color) return;\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0];\n if (color[0] === '#') {\n if (color.length < 7) {\n color =\n '#' +\n color[1] +\n color[1] +\n color[2] +\n color[2] +\n color[3] +\n color[3] +\n (color.length > 4 ? color[4] + color[4] : '');\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n\n if (color.indexOf('rgb') === 0) {\n color += ',1';\n // eslint-disable-next-line\n return color.match(/[\\.\\d]+/g).map((a: string) => {\n return +a;\n });\n }\n};\n","export default (params: Array<string | number>) => {\n if (!Array.isArray(params)) return '';\n\n if (params.length < 3 || params.length > 4) return '';\n\n const parts = params.map(function (e: string | number) {\n let r = (+e).toString(16);\n r.length === 1 && (r = '0' + r);\n return r;\n }, []);\n\n return !~parts.indexOf('NaN') ? '#' + parts.join('') : '';\n};\n","import tinycolor from 'tinycolor2';\n\nexport default (\n color: string,\n format: string,\n showAlpha: boolean,\n stateColorAlpha?: number\n) => {\n const tinyColor = tinycolor(color);\n let value: string;\n const alphaValue = stateColorAlpha || tinyColor.getAlpha() * 100;\n\n switch (format) {\n case 'rgb':\n value = tinyColor.toRgbString();\n break;\n case 'hsl':\n value = tinyColor.toHslString();\n break;\n case 'hex':\n if (showAlpha && alphaValue !== 100) {\n value = tinyColor.toHex8String();\n } else {\n value = tinyColor.toHexString();\n }\n break;\n\n default:\n value = '';\n break;\n }\n\n return value;\n};\n","import checkFormat from './checkFormat';\n\nexport default (\n type: string,\n stops: Array<any>,\n modifier: string | number | undefined,\n format: 'rgb' | 'hsl' | 'hex' = 'rgb',\n showAlpha: boolean\n) => {\n let str = '';\n\n switch (type) {\n case 'linear':\n if (typeof modifier === 'number') {\n str = `linear-gradient(${modifier}deg, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n }\n if (typeof modifier === 'string') {\n str = `linear-gradient(${modifier}, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n }\n break;\n case 'radial':\n str = `radial-gradient(${modifier}, ${stops.map(\n (color: [string, number]) => {\n return `${checkFormat(color[0], format, showAlpha)} ${Math.round(\n color[1] * 100\n ).toFixed(2)}%`;\n }\n )})`;\n break;\n default:\n break;\n }\n\n return str;\n};\n","export default (hex: string) => {\n const validHex = new RegExp(\n /^#([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i\n );\n\n return validHex.test(hex);\n};\n","import { rgbaToHex } from '../color';\n\nexport default (rgba: Array<string | number>) => {\n return !!rgbaToHex(rgba);\n};\n","/* eslint no-useless-escape: off */\n/* eslint prefer-const: off */\n/* eslint no-prototype-builtins: off */\nimport tinycolor from 'tinycolor2';\n\ninterface IGradientStop {\n color: string;\n position?: number;\n}\n\ninterface IParsedGraient {\n stops: IGradientStop[];\n angle: string;\n original: string;\n line: string;\n side?: string;\n sideCorner?: string;\n parseWarning?: boolean;\n}\n\ninterface IGradientReg {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\nconst combineRegExp = (\n regexpList: ReadonlyArray<string | RegExp>,\n flags: string\n): RegExp => {\n return new RegExp(\n regexpList.reduce<string>(\n (result, item) =>\n result + (typeof item === 'string' ? item : item.source),\n ''\n ),\n flags\n );\n};\n\nconst generateRegExp = () => {\n const searchFlags = 'gi';\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/;\n const rSideCornerCapture = /to\\s+((?:(?:left|right)(?:\\s+(?:top|bottom))?))/;\n const rRadial =\n /circle at\\s+((?:(?:left|right|center|top|bottom)(?:\\s+(?:left|right|center|top|bottom))?))/;\n const rComma = /\\s*,\\s*/;\n const rColorHex = /\\#(?:[a-f0-9]{6,8}|[a-f0-9]{3})/;\n const rDigits3 = /\\(\\s*(?:\\d{1,3}%?\\s*,\\s*){2}%?\\d{1,3}%?\\s*\\)/;\n const rDigits4 = /\\(\\s*(?:\\d{1,3}%?\\s*,\\s*){2}%?\\d{1,3}%?\\s*,\\s*\\d*\\.?\\d+\\)/;\n const rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const rKeyword = /[_a-z-][_a-z0-9-]*/;\n const rColor = combineRegExp(\n [\n '(?:',\n rColorHex,\n '|',\n '(?:rgb|hsl)',\n rDigits3,\n '|',\n '(?:rgba|hsla)',\n rDigits4,\n '|',\n rKeyword,\n ')'\n ],\n ''\n );\n const rColorStop = combineRegExp(\n [rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'],\n ''\n );\n const rColorStopList = combineRegExp(\n ['(?:', rColorStop, rComma, ')*', rColorStop],\n ''\n );\n const rLineCapture = combineRegExp(\n ['(?:(', rAngle, ')|', rSideCornerCapture, '|', rRadial, ')'],\n ''\n );\n const rGradientSearch = combineRegExp(\n ['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'],\n searchFlags\n );\n const rColorStopSearch = combineRegExp(\n [\n '\\\\s*(',\n rColor,\n ')',\n '(?:\\\\s+',\n '(',\n rValue,\n '))?',\n '(?:',\n rComma,\n '\\\\s*)?'\n ],\n searchFlags\n );\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch\n };\n};\n\nconst parseGradient = (regExpLib: IGradientReg, input: string) => {\n let result: IParsedGraient = {\n stops: [],\n angle: '',\n line: '',\n original: ''\n };\n let matchGradient, matchColorStop, stopResult: IGradientStop;\n\n regExpLib.gradientSearch.lastIndex = 0;\n\n matchGradient = regExpLib.gradientSearch.exec(input);\n if (matchGradient !== null) {\n result = {\n ...result,\n original: matchGradient[0]\n };\n\n if (matchGradient[1]) {\n result.line = matchGradient[1];\n }\n\n if (matchGradient[2]) {\n result.angle = matchGradient[2];\n }\n\n if (matchGradient[3]) {\n result.sideCorner = matchGradient[3];\n }\n\n regExpLib.colorStopSearch.lastIndex = 0;\n\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[5]);\n while (matchColorStop !== null) {\n const tinyColor = tinycolor(matchColorStop[1]);\n stopResult = {\n color: tinyColor.toRgbString()\n };\n\n if (matchColorStop[2]) {\n stopResult.position = Number(\n (parseInt(matchColorStop[2], 10) / 100).toFixed(2)\n );\n }\n result.stops.push(stopResult);\n\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[5]);\n }\n }\n\n return result;\n};\n\nexport default (input: string) => {\n const regExpLib = generateRegExp();\n let result;\n const rGradientEnclosedInBrackets =\n /.*gradient\\s*\\(((?:\\([^\\)]*\\)|[^\\)\\(]*)*)\\)/;\n const match = rGradientEnclosedInBrackets.exec(input);\n\n if (match !== null) {\n result = parseGradient(regExpLib, match[1]);\n\n if (result.original.trim() !== match[1].trim()) {\n result.parseWarning = true;\n }\n\n if (\n result.stops.every((item) => item.hasOwnProperty('position')) === false\n ) {\n result = 'Not correct position';\n }\n } else {\n result = 'Failed to find gradient';\n }\n\n return result;\n};\n","import tinycolor from 'tinycolor2';\n\nimport { validGradient } from '../validation';\n\ninterface IGradientStop {\n color: string;\n position?: number;\n}\n\nconst LINEAR_POS = [\n { angle: '0', name: 'to top' },\n { angle: '45', name: 'to top right' },\n { angle: '45', name: 'to right top' },\n { angle: '90', name: 'to right' },\n { angle: '135', name: 'to right bottom' },\n { angle: '135', name: 'to bottom right' },\n { angle: '180', name: 'to bottom' },\n { angle: '225', name: 'to left bottom' },\n { angle: '225', name: 'to bottom left' },\n { angle: '270', name: 'to left' },\n { angle: '315', name: 'to top left' },\n { angle: '315', name: 'to left top' }\n];\n\nexport default (str: string) => {\n const tinyColor = tinycolor(str);\n\n const defaultStops = {\n stops: [\n ['rgba(0, 0, 0, 1)', 0, 0],\n ['rgba(183, 80, 174, 0.92)', 1, 1]\n ],\n gradient: `linear-gradient(180deg, rgba(6, 6, 6, 1) 0.0%, rgba(183, 80, 174, 0.92) 100.0%)`,\n modifier: 180,\n type: 'linear'\n };\n\n if (str === 'transparent') {\n return defaultStops;\n }\n\n if (\n tinyColor.isValid() &&\n !str.trim().startsWith('radial-gradient') &&\n !str.trim().startsWith('linear-gradient')\n ) {\n const rgbaStr = tinyColor.toRgbString();\n\n if (rgbaStr) {\n defaultStops.stops = [\n ['rgba(0, 0, 0, 1)', 0, 0],\n [rgbaStr, 1, 1]\n ];\n defaultStops.gradient = `linear-gradient(180deg, rgba(6, 6, 6, 1) 0.0%, ${rgbaStr} 100.0%)`;\n }\n\n return defaultStops;\n } else {\n str = str.replace(';', '').replace('background-image:', '');\n const gradient = validGradient(str);\n\n let stops: Array<IGradientStop> = [];\n let angle: string = '';\n\n if (\n gradient === 'Failed to find gradient' ||\n gradient === 'Not correct position'\n ) {\n console.warn('Incorrect gradient value');\n return defaultStops;\n }\n\n if (typeof gradient !== 'string') {\n stops = gradient.stops;\n angle = gradient.angle ? gradient.angle : gradient.line;\n }\n\n const [, type, content] = str.match(/^(\\w+)-gradient\\((.*)\\)$/i) || [];\n if (!type || !content) {\n console.warn('Incorrect gradient value');\n return defaultStops;\n }\n\n const findF = LINEAR_POS.find((item) => item.name === angle)?.angle;\n const helperAngle = type === 'linear' ? '180' : 'circle at center';\n const modifier = findF || angle || helperAngle;\n\n return {\n gradient: `${type}-gradient(${\n typeof gradient !== 'string' ? gradient.original : str\n })`,\n type,\n modifier:\n modifier.match(/\\d+/) !== null\n ? Number(modifier.match(/\\d+/)?.join(''))\n : modifier,\n stops: stops.map((stop, index: number) => {\n const formatStop = [`${stop.color}`, index];\n if (stop.position || stop.position === 0) {\n formatStop.splice(1, 0, stop.position);\n }\n return formatStop;\n })\n };\n }\n};\n","import { ChangeEvent, KeyboardEvent } from 'react';\n\ninterface IInput {\n alphaValue: number;\n hexValue: string;\n showAlpha?: boolean;\n onChangeAlpha: (value: string) => void;\n onChangeHex: (value: string) => void;\n}\n\nexport const getAlphaValue = (value: string) => {\n value.replace(/%/i, '');\n if (value[0] === '0' && value.length > 1) {\n return value.substr(1);\n } else if (Number(value) >= 100) {\n return 100;\n } else if (!isNaN(Number(value))) {\n return value || 0;\n }\n return parseInt(value);\n};\n\nexport const onlyDigits = (string: string) => {\n return string ? string.substr(0, 3).replace(/[^\\d]/g, '') : '';\n};\n\nexport const onlyLatins = (string: string) => {\n if (string && string.substring(0, 1) === '#') string = string.substring(1);\n return string ? string.substr(0, 6).replace(/[^a-zA-Z0-9\\s-]/gi, '') : '';\n};\n\nexport const handlePressEnter = (e: KeyboardEvent, fn: () => void) => {\n if (e.key === 'Enter') {\n fn();\n }\n};\n\nexport const inputsData = (props: IInput) => {\n const inputHex = {\n wrapClass: 'input_rgba-hex',\n labelSymbol: true,\n idInput: `rgba-hex${Math.random() * 10000}`,\n valueInput: props.hexValue,\n labelText: 'Hex',\n labelArea: 'hex',\n labelClass: 'input_rgba-label',\n onChangeInput: (e: ChangeEvent<HTMLInputElement>) =>\n props.onChangeHex(onlyLatins(e.target.value)),\n name: 'hex'\n };\n\n // Always return only hex input (no alpha input)\n return [inputHex];\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { checkFormat } from '../../../utils';\nimport { cn } from '../../../utils/cn';\nimport { getAlphaValue, handlePressEnter, inputsData } from './helpers';\n\ninterface IChange {\n hex: string;\n alpha: number;\n}\n\ntype TProps = {\n hex: string;\n alpha: number;\n format?: 'rgb' | 'hsl' | 'hex';\n showAlpha?: boolean;\n onChange: ({ hex, alpha }: IChange) => void;\n onSubmitChange?: (rgba: string) => void;\n};\n\nconst InputRgba: FC<TProps> = ({\n hex,\n alpha,\n format = 'rgb',\n showAlpha = true,\n onChange,\n onSubmitChange\n}) => {\n const [color, setColor] = useState({\n alpha,\n hex\n });\n\n const onChangeAlpha = (alpha: string) => {\n const validAlpha = getAlphaValue(alpha);\n\n setColor({\n ...color,\n alpha: Number(validAlpha)\n });\n };\n\n const onChangeHex = (hex: string) => {\n setColor({\n ...color,\n hex\n });\n };\n\n const onHandleSubmit = () => {\n const rgba = tinycolor(color.hex[0] === '#' ? color.hex : '#' + color.hex);\n rgba.setAlpha(Number(color.alpha) / 100);\n\n if (rgba && (color.alpha !== alpha || color.hex !== hex)) {\n onChange({\n hex: color.hex[0] === '#' ? color.hex : '#' + color.hex,\n alpha: Number(color.alpha)\n });\n if (onSubmitChange) {\n onSubmitChange(\n checkFormat(rgba.toRgbString(), format, showAlpha, color.alpha)\n );\n }\n } else {\n setColor({\n hex,\n alpha\n });\n onChange({\n hex,\n alpha\n });\n }\n };\n\n useEffect(() => {\n setColor({\n hex,\n alpha\n });\n }, [hex, alpha]);\n\n const inputsProps = {\n alphaValue: color.alpha,\n hexValue: color.hex.replace(/#/i, ''),\n onChangeAlpha,\n onChangeHex,\n showAlpha\n };\n\n return (\n <div className='w-full'>\n <div className='flex flex-wrap gap-3'>\n {inputsData(inputsProps).map((item, index) => {\n const {\n wrapClass,\n labelSymbol,\n idInput,\n valueInput,\n labelArea,\n onChangeInput,\n name\n } = item;\n return (\n <div\n key={index}\n className={cn('flex-1 min-w-0', 'relative group', wrapClass)}\n >\n <div className='relative'>\n <input\n type='text'\n id={idInput}\n value={`#${valueInput}`}\n aria-label={labelArea}\n onChange={(e) => onChangeInput(e)}\n onBlur={onHandleSubmit}\n onKeyPress={(e) => handlePressEnter(e, onHandleSubmit)}\n className={cn(\n 'w-full py-2.5 text-md font-mono rounded-lg',\n 'focus:ring-2 focus:ring-blue-500/20 transition-all duration-200',\n labelSymbol && 'pl-4',\n name === 'alpha' && 'pr-7'\n )}\n style={{\n backgroundColor: 'var(--colorpicker-input-bg)',\n color: 'var(--colorpicker-text)',\n border: 'none',\n borderWidth: '0',\n borderStyle: 'none',\n outline: 'none'\n }}\n />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default InputRgba;\n","import iro from '@jaames/iro';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { useTheme } from '../../providers/ThemeContext';\n\ninterface IroColorPickerProps {\n width?: number;\n color?: string;\n colors?: string[];\n display?: string;\n id?: string;\n layout?: any[];\n layoutDirection?: 'vertical' | 'horizontal';\n padding?: number;\n margin?: number;\n borderWidth?: number;\n borderColor?: string;\n handleRadius?: number;\n activeHandleRadius?: number;\n handleSvg?: string;\n handleProps?: { x: number; y: number };\n wheelLightness?: boolean;\n wheelAngle?: number;\n wheelDirection?: 'clockwise' | 'anticlockwise';\n sliderSize?: number;\n boxHeight?: number;\n onColorChange?: (color: any) => void;\n onInputChange?: (color: any) => void;\n onInputStart?: (color: any) => void;\n onInputMove?: (color: any) => void;\n onInputEnd?: (color: any) => void;\n onMount?: (colorPicker: any) => void;\n}\n\nexport interface IroColorPickerRef {\n colorPicker: any;\n}\n\nconst IroColorPicker = forwardRef<IroColorPickerRef, IroColorPickerProps>(\n (\n {\n width,\n color = '#ffffff',\n colors,\n display = 'block',\n id,\n layout,\n layoutDirection = 'vertical',\n padding = 6,\n margin = 12,\n handleRadius = 8,\n activeHandleRadius,\n handleSvg,\n handleProps = { x: 0, y: 0 },\n wheelLightness = true,\n wheelAngle = 0,\n wheelDirection = 'anticlockwise',\n sliderSize,\n boxHeight,\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount\n },\n ref\n ) => {\n const { theme } = useTheme();\n const containerRef = useRef<HTMLDivElement>(null);\n const colorPickerRef = useRef<any>(null);\n const isUpdatingColor = useRef<boolean>(false);\n const [containerWidth, setContainerWidth] = useState<number>(width || 200);\n\n // Set up ResizeObserver to make the color picker responsive\n // Only when width prop is NOT provided (parent doesn't control width)\n useEffect(() => {\n if (width || !containerRef.current) return; // Don't observe if width is controlled by parent\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width: observedWidth } = entry.contentRect;\n if (observedWidth > 0) {\n // More aggressive sizing for compact spaces\n // Account for padding and margins more carefully\n const availableWidth = observedWidth - padding * 2 - margin * 2;\n\n // Use different percentages based on available space\n let percentage = 0.8; // Default\n if (availableWidth < 300) {\n percentage = 0.9; // Use more space in compact mode\n } else if (availableWidth < 200) {\n percentage = 0.95; // Nearly full width for very small containers\n }\n\n const calculatedWidth = Math.floor(availableWidth * percentage);\n setContainerWidth(Math.max(120, Math.min(calculatedWidth, 250)));\n }\n }\n });\n\n resizeObserver.observe(containerRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [padding, margin]); // Remove width from dependencies to prevent recreation\n\n useImperativeHandle(ref, () => ({\n colorPicker: colorPickerRef.current\n }));\n\n // Create a shared picker creation function\n const createColorPicker = useCallback(\n (pickerWidth: number) => {\n if (!containerRef.current || colorPickerRef.current) return;\n\n // Capture the container reference for cleanup\n const currentContainer = containerRef.current;\n\n console.log(\n '🔧 IroColorPicker recreating picker - width prop:',\n width,\n 'containerWidth:',\n containerWidth\n );\n\n // IMPORTANT: Clear any existing DOM content first\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n\n // Set theme-appropriate border color and background\n const themeBorderColor = theme === 'light' ? '#ffffff' : '#334155';\n const themeBorderWidth = theme === 'light' ? 1 : 0;\n\n const options: any = {\n width: pickerWidth,\n color: colors ? undefined : color,\n colors: colors || undefined,\n display,\n id,\n layout,\n layoutDirection,\n padding,\n margin,\n borderWidth: themeBorderWidth,\n borderColor: themeBorderColor,\n handleRadius,\n activeHandleRadius: activeHandleRadius || handleRadius,\n handleSvg,\n handleProps,\n wheelLightness,\n wheelAngle,\n wheelDirection,\n sliderSize,\n boxHeight\n };\n\n // Remove undefined values\n Object.keys(options).forEach((key) => {\n if (options[key] === undefined) {\n delete options[key];\n }\n });\n\n colorPickerRef.current = new (iro as any).ColorPicker(\n containerRef.current,\n options\n );\n\n // Apply theme styles to iro.js elements after creation\n const applyThemeStyles = () => {\n if (!containerRef.current) return;\n\n const svgElements = containerRef.current.querySelectorAll('svg');\n svgElements.forEach((svg) => {\n // Remove default background\n svg.style.backgroundColor = 'transparent';\n\n // Style background rectangles\n const backgroundRects = svg.querySelectorAll('rect:first-child');\n backgroundRects.forEach((rect) => {\n if (theme === 'light') {\n rect.setAttribute('fill', 'white');\n rect.setAttribute('stroke', '#e5e7eb');\n rect.setAttribute('stroke-width', '1');\n } else {\n rect.setAttribute('fill', '#374151');\n rect.setAttribute('stroke', '#6b7280');\n rect.setAttribute('stroke-width', '1');\n }\n });\n });\n };\n\n // Apply styles immediately and after a short delay\n applyThemeStyles();\n setTimeout(applyThemeStyles, 100);\n\n // Set up event listeners\n if (onColorChange) {\n colorPickerRef.current.on('color:change', (color: any) => {\n if (!isUpdatingColor.current) {\n onColorChange(color);\n }\n });\n }\n if (onInputChange) {\n colorPickerRef.current.on('input:change', onInputChange);\n }\n if (onInputStart) {\n colorPickerRef.current.on('input:start', onInputStart);\n }\n if (onInputMove) {\n colorPickerRef.current.on('input:move', onInputMove);\n }\n if (onInputEnd) {\n colorPickerRef.current.on('input:end', onInputEnd);\n }\n if (onMount) {\n colorPickerRef.current.on('mount', onMount);\n }\n\n return currentContainer;\n },\n [\n theme,\n colors,\n color,\n display,\n id,\n layout,\n layoutDirection,\n padding,\n margin,\n handleRadius,\n activeHandleRadius,\n handleSvg,\n handleProps,\n wheelLightness,\n wheelAngle,\n wheelDirection,\n sliderSize,\n boxHeight,\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount,\n width,\n containerWidth\n ]\n );\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (colorPickerRef.current) {\n // Clean up event listeners\n if (onColorChange) {\n colorPickerRef.current.off('color:change', onColorChange);\n }\n if (onInputChange) {\n colorPickerRef.current.off('input:change', onInputChange);\n }\n if (onInputStart) {\n colorPickerRef.current.off('input:start', onInputStart);\n }\n if (onInputMove) {\n colorPickerRef.current.off('input:move', onInputMove);\n }\n if (onInputEnd) {\n colorPickerRef.current.off('input:end', onInputEnd);\n }\n if (onMount) {\n colorPickerRef.current.off('mount', onMount);\n }\n\n // Set to null to ensure clean recreation\n colorPickerRef.current = null;\n }\n }, [\n onColorChange,\n onInputChange,\n onInputStart,\n onInputMove,\n onInputEnd,\n onMount\n ]);\n\n // useEffect for when width prop is provided by parent\n useEffect(() => {\n if (!width) return;\n\n if (!containerRef.current || colorPickerRef.current) {\n // Clear existing picker to force recreation\n if (colorPickerRef.current) {\n colorPickerRef.current = null;\n }\n }\n\n const currentContainer = createColorPicker(width);\n\n return () => {\n cleanup();\n // IMPORTANT: Clear DOM content to prevent visual artifacts\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n };\n }, [width, theme, createColorPicker, cleanup]);\n\n // useEffect for when containerWidth is used (internal ResizeObserver)\n useEffect(() => {\n if (width) return; // Don't run if width prop is provided\n\n if (!containerRef.current || colorPickerRef.current) {\n // Clear existing picker to force recreation\n if (colorPickerRef.current) {\n colorPickerRef.current = null;\n }\n }\n\n const currentContainer = createColorPicker(containerWidth);\n\n return () => {\n cleanup();\n // IMPORTANT: Clear DOM content to prevent visual artifacts\n if (currentContainer) {\n currentContainer.innerHTML = '';\n }\n };\n }, [containerWidth, theme, createColorPicker, cleanup, width]);\n\n // Update color when prop changes\n useEffect(() => {\n if (colorPickerRef.current && !colors && color) {\n try {\n isUpdatingColor.current = true;\n\n // Handle both hex and hex8 (with alpha) formats\n if (color.length === 9 && color.startsWith('#')) {\n // hex8 format (with alpha)\n const hex = color.slice(0, 7);\n const alpha = parseInt(color.slice(7, 9), 16) / 255;\n colorPickerRef.current.color.set({\n hexString: hex,\n alpha: alpha\n });\n } else {\n // Regular hex format\n colorPickerRef.current.color.set({\n hexString: color\n });\n }\n\n // Reset flag after a small delay to allow the change to propagate\n setTimeout(() => {\n isUpdatingColor.current = false;\n }, 10);\n } catch (error) {\n console.warn('Error updating iro color picker:', error);\n isUpdatingColor.current = false;\n }\n }\n }, [color, colors]);\n\n // Update colors when prop changes (for multi-color selections)\n useEffect(() => {\n if (colorPickerRef.current && colors) {\n colors.forEach((colorValue, index) => {\n if (colorPickerRef.current.colors[index]) {\n colorPickerRef.current.colors[index].hexString = colorValue;\n }\n });\n }\n }, [colors]);\n\n return (\n <div\n ref={containerRef}\n style={{\n display: 'flex',\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n overflow: 'hidden',\n justifyContent: 'center'\n }}\n >\n {/* Iro.js will render the picker here */}\n </div>\n );\n }\n);\n\nIroColorPicker.displayName = 'IroColorPicker';\n\nexport default IroColorPicker;\n","import tinycolor from 'tinycolor2';\n\nimport { isValidRgba, rgbaToArray, validGradient } from '../../../utils';\n\nexport const getIndexActiveTag = (value: string) => {\n let tab = 'solid';\n const validValue = tinycolor(value).isValid();\n\n if (value) {\n if (value === 'transparent') {\n tab = 'solid';\n return tab;\n }\n if (\n validValue &&\n !value.trim().startsWith('radial-gradient') &&\n !value.trim().startsWith('linear-gradient')\n ) {\n tab = 'solid';\n return tab;\n }\n const rgba = rgbaToArray(value);\n if (rgba) {\n if (isValidRgba([rgba[0], rgba[1], rgba[2]])) {\n tab = 'solid';\n return tab;\n }\n } else {\n tab = 'gradient';\n return tab;\n }\n }\n\n return tab;\n};\n\nexport const checkValidColorsArray = (\n arr: string[],\n type: 'solid' | 'grad'\n) => {\n if (!arr.length || !Array.isArray(arr)) {\n return [];\n }\n\n const uniqueArr = [...new Set(arr)];\n\n switch (type) {\n case 'solid':\n return uniqueArr.filter((color: string, index: number) => {\n const tinyColor = tinycolor(color);\n if (\n tinyColor.isValid() &&\n !color.trim().startsWith('radial-gradient') &&\n !color.trim().startsWith('linear-gradient')\n ) {\n return true;\n }\n\n if (index > 100) {\n return false;\n }\n\n return false;\n });\n case 'grad':\n return uniqueArr.filter((color: string, index: number) => {\n const validColor = validGradient(color);\n\n if (validColor === 'Failed to find gradient') {\n return false;\n }\n\n if (validColor === 'Not correct position') {\n console.warn(\n 'Incorrect gradient default value. You need to indicate the location for the colors. We ignore this gradient value'\n );\n return false;\n }\n\n if (index > 100) {\n return false;\n }\n\n return true;\n });\n\n default:\n return [];\n }\n};\n\nexport const arraysEqual = (a: Array<any>, b: Array<any>) => {\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++)\n if (!arraysEqual(a[i], b[i])) return false;\n return true;\n } else {\n return a === b;\n }\n};\n\nexport const shallowEqual = (object1: any, object2: any) => {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n};\n","/* eslint no-case-declarations: off */\nimport React, { FC, useEffect, useState } from 'react';\n\nimport {\n getHexAlpha,\n parseGradient,\n rgbaToArray,\n rgbaToHex\n} from '../../../../utils';\nimport { cn } from '../../../../utils/cn';\nimport { checkValidColorsArray } from '../../Colorpicker/helper';\n\nimport { IActiveColor } from '../../../../lib/types';\nimport { IColor } from '../GradientPanel/types';\n\ninterface IProps {\n defaultColors?: Array<string>;\n setColor: (color: any) => void;\n setInit: (init: boolean) => void;\n setActiveColor?: (color: IActiveColor) => void;\n colorType: 'solid' | 'gradient';\n}\n\nconst DefaultColorPanel: FC<IProps> = ({\n defaultColors = [],\n setColor,\n setActiveColor,\n setInit,\n colorType\n}) => {\n const [active, setActive] = useState<number>(-1);\n const [formatedDefColors, setFormatedDefColors] = useState<\n Array<string | IColor>\n >([]);\n\n useEffect(() => {\n if (colorType === 'gradient') {\n setFormatedDefColors(\n checkValidColorsArray(defaultColors, 'grad').map((item: string) => {\n return parseGradient(item);\n })\n );\n } else {\n setFormatedDefColors(checkValidColorsArray(defaultColors, 'solid'));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onChooseColor = (item: string | IColor, index: number) => {\n if (index === active) {\n return;\n }\n\n if (colorType === 'gradient' && typeof item !== 'string') {\n const { stops } = item;\n const lastStop = rgbaToArray(stops[stops.length - 1][0]);\n const lastStopLoc = stops[stops.length - 1][1];\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeIdx = stops[stops.length - 1][2];\n\n setInit(false);\n\n setColor(item);\n setActiveColor &&\n setActiveColor({\n hex: activeStop,\n alpha: Number(Math.round(lastStop[3] * 100)),\n loc: lastStopLoc,\n index: activeIdx\n });\n setActive(index);\n } else if (colorType !== 'gradient' && typeof item === 'string') {\n setInit(false);\n setColor(getHexAlpha(item));\n setActive(index);\n }\n };\n\n if (!Array.isArray(defaultColors) || !defaultColors.length) {\n return null;\n }\n\n return (\n <div className='w-full'>\n <h3 className='text-sm font-medium colorpicker-text'>Popular Colors</h3>\n <div className='grid grid-cols-5 gap-4 py-4'>\n {formatedDefColors.map((item: string | IColor, index: number) => {\n switch (colorType) {\n case 'gradient':\n if (typeof item !== 'string') {\n const { gradient } = item;\n\n return (\n <button\n type='button'\n onClick={() => onChooseColor(item, index)}\n key={item.gradient + index}\n className={cn(\n 'aspect-square w-10 h-10 rounded-md border-2 transition-all duration-200',\n 'hover:scale-110 hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500/50',\n 'relative overflow-hidden group',\n active === index\n ? 'border-blue-500 dark:border-blue-400 shadow-lg scale-105'\n : 'border-slate-200 dark:border-slate-600 hover:border-slate-300 dark:hover:border-slate-500'\n )}\n style={{ background: gradient }}\n >\n <div className='absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-200'></div>\n </button>\n );\n } else {\n return null;\n }\n\n case 'solid':\n if (typeof item === 'string') {\n return (\n <button\n type='button'\n onClick={() => onChooseColor(item, index)}\n key={item + index}\n className={cn(\n 'aspect-square w-10 h-10 rounded-md border-2 transition-all duration-200',\n 'hover:scale-110 hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500/50',\n 'relative overflow-hidden group',\n active === index\n ? 'border-blue-500 dark:border-blue-400 shadow-lg scale-105'\n : 'border-slate-200 dark:border-slate-600 hover:border-slate-300 dark:hover:border-slate-500'\n )}\n style={{\n background: item,\n boxShadow:\n active === index ? `${item} 0px 0px 12px` : 'none'\n }}\n >\n <div className='absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-200'></div>\n </button>\n );\n } else {\n return null;\n }\n\n default:\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nexport default DefaultColorPanel;\n","import React, {\n FC,\n MouseEvent,\n MutableRefObject,\n TouchEvent,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { getGradient, rgbaToArray, rgbaToHex } from '../../../../utils';\n\nimport { IPropsPanel, TCoords } from './types';\n\nconst Markers: FC<IPropsPanel> = ({\n color,\n setColor,\n activeColor,\n setActiveColor,\n setInit,\n format = 'rgb',\n showAlpha = true,\n allowAddGradientStops = true\n}) => {\n const node = useRef() as MutableRefObject<HTMLDivElement>;\n\n const [needDeleteActive, setNeedDeleteActive] = useState<boolean>(false);\n const [hideStop, setHideStop] = useState<boolean>(false);\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const { stops, type, modifier } = color;\n\n const onAddColorStop = (e: MouseEvent) => {\n setInit(false);\n e.stopPropagation();\n if (!allowAddGradientStops) return;\n const target = e.target as HTMLElement;\n\n if (target.className !== 'gradient-marker') {\n const rect = target.getBoundingClientRect();\n const clickPos = e.clientX - rect.left;\n const loc = Number(((100 / rect.width) * clickPos).toFixed(0)) / 100;\n const rgba = tinycolor(activeColor.hex);\n rgba.setAlpha(activeColor.alpha / 100);\n\n const newStops = [\n ...color.stops,\n [rgba.toRgbString(), loc, color.stops.length]\n ]\n .sort((a: [string, number], b: [string, number]) => a[1] - b[1])\n .map((item, index) => {\n item[2] = index;\n return item;\n });\n\n setColor({\n ...color,\n gradient: `${getGradient(type, newStops, modifier, format, showAlpha)}`,\n stops: newStops\n });\n\n const newStopIndex = newStops.find((item) => item[1] === loc)?.[2];\n const newStopColor = newStops.find((item) => item[1] === loc)?.[0];\n const newStopRgba = rgbaToArray(newStopColor || rgba.toRgbString());\n const newStopHex = rgbaToHex([\n newStopRgba[0],\n newStopRgba[1],\n newStopRgba[2]\n ]);\n const newStopAlpha = Math.round(newStopRgba[3] * 100);\n\n const newActiveColor = {\n hex: newStopHex,\n alpha: newStopAlpha,\n loc: loc,\n index: newStopIndex\n };\n\n setActiveColor(newActiveColor);\n }\n };\n\n const removeListeners = () => {\n window.removeEventListener('mousemove', onDrag);\n window.removeEventListener('mouseup', onDragEnd);\n };\n\n const removeTouchListeners = () => {\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n const onMouseDown = (e: MouseEvent, color: any) => {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n\n if (e.detail === 2) {\n return;\n }\n\n setInit(false);\n\n if (e.button !== 0) return;\n\n const newColor = tinycolor(color[0]);\n\n setActiveColor({\n hex: '#' + newColor.toHex(),\n alpha: newColor.getAlpha() * 100,\n loc: color[1],\n index: color[2]\n });\n\n const x = e.clientX;\n const y = e.clientY;\n\n // Don't set isDragging immediately - wait for actual mouse movement\n\n pointMoveTo({\n x,\n y\n });\n\n window.addEventListener('mousemove', onDrag);\n window.addEventListener('mouseup', onDragEnd);\n };\n\n const onDrag = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n\n // Now we know user is actually dragging\n setIsDragging(true);\n\n if (rootDistance > 80 && stops.length > 2) {\n setHideStop(true);\n return;\n } else {\n setHideStop(false);\n }\n\n pointMoveTo({\n x,\n y\n });\n };\n\n const onDragEnd = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n if (rootDistance > 80 && stops.length > 2) {\n setNeedDeleteActive(true);\n }\n\n pointMoveTo({\n x,\n y\n });\n\n setIsDragging(false); // Mark as not dragging\n removeListeners();\n };\n\n const onTouchStart = (e: TouchEvent, color: any) => {\n setInit(false);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n removeTouchListeners();\n\n const newColor = tinycolor(color[0]);\n setActiveColor({\n hex: '#' + newColor.toHex(),\n alpha: newColor.getAlpha() * 100,\n loc: color[1],\n index: color[2]\n });\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n\n // Don't set isDragging immediately for touch either\n\n pointMoveTo({ x, y });\n\n window.addEventListener('touchmove', onTouchMove, { passive: false });\n window.addEventListener('touchend', onTouchEnd, { passive: false });\n };\n\n const onTouchMove = (e: any) => {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n\n const rect = node?.current?.getBoundingClientRect();\n const rootDistance = y - rect.y;\n\n // Now we know user is actually dragging\n setIsDragging(true);\n\n if (rootDistance > 80 && stops.length > 2) {\n setHideStop(true);\n return;\n } else {\n setHideStop(false);\n }\n\n pointMoveTo({\n x,\n y\n });\n };\n\n const onTouchEnd = () => {\n setIsDragging(false); // Mark as not dragging\n removeTouchListeners();\n };\n\n const pointMoveTo = (coords: TCoords) => {\n const rect = node && node.current.getBoundingClientRect();\n const width = rect.width;\n let pos = coords.x - rect.left;\n pos = Math.max(0, pos);\n pos = Math.min(pos, width);\n\n const location = Number(((100 / rect.width) * pos).toFixed(0)) / 100;\n setActiveColor((prev) => ({\n ...prev,\n loc: location\n }));\n };\n\n const deleteColorStop = () => {\n if (stops.length <= 2) return;\n const newStops = stops\n .filter((stop: [string, number, number]) => stop[2] !== activeColor.index)\n .map((stop: [string, number, number], index: number) => {\n stop[2] = index;\n return stop;\n });\n const lastStop = rgbaToArray(newStops[newStops.length - 1][0]);\n const lastStopLoc = newStops[newStops.length - 1][1];\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeIdx = newStops[newStops.length - 1][2];\n\n setNeedDeleteActive(false);\n setHideStop(false);\n\n setActiveColor({\n hex: activeStop,\n alpha: Number(Math.round(lastStop[3] * 100)),\n loc: lastStopLoc,\n index: activeIdx\n });\n return setColor({\n ...color,\n gradient: `${getGradient(type, newStops, modifier, format, showAlpha)}`,\n stops: newStops\n });\n };\n\n useEffect(() => {\n if (needDeleteActive) {\n return deleteColorStop();\n }\n\n // Only update positions when actually dragging, not when just changing colors\n if (isDragging) {\n // Check if the position actually changed\n const currentStop = stops.find((item) => item[2] === activeColor.index);\n if (currentStop && currentStop[1] !== activeColor.loc) {\n const newStops = stops.map((item: [string, number, number]) => {\n if (activeColor.index === item[2]) {\n return [item[0], activeColor.loc, item[2]];\n }\n return item;\n });\n\n setColor({\n ...color,\n gradient: `${getGradient(\n type,\n newStops,\n modifier,\n format,\n showAlpha\n )}`,\n stops: newStops\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeColor.loc, needDeleteActive, isDragging]);\n\n useEffect(() => {\n return () => {\n removeListeners();\n removeTouchListeners();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div\n className='gradient-stops'\n onClick={(e) => onAddColorStop(e)}\n ref={node}\n >\n <div\n className='gradient-stop-preview'\n style={{\n background: `linear-gradient(to right, ${stops\n .map(\n (color: [string, number, number]) =>\n `${color[0]} ${color[1] * 100}%`\n )\n .join(', ')})`\n }}\n />\n <div className='gradient-stop-marker'>\n {stops.map((color: [string, number, number]) => {\n const position = color[1] * 100;\n const rgba = color[0];\n\n return (\n <div\n key={rgba + position + Math.random() * 100}\n className={`gradient-marker${\n hideStop && activeColor.index === color[2] ? ' hide' : ''\n }${!hideStop && activeColor.index === color[2] ? ' active' : ''}`}\n style={{\n left: Math.abs(Math.min(position, 100)) + '%',\n color: rgba\n }}\n onTouchStart={(e) => onTouchStart(e, color)}\n onMouseDown={(e) => onMouseDown(e, color)}\n onClick={(e) => e.stopPropagation()}\n onDoubleClick={deleteColorStop}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default Markers;\n","export const DEFAULT_COLORS = [\n '#FF6B6B', // Coral Red\n '#4ECDC4', // Teal\n '#45B7D1', // Sky Blue\n '#96CEB4', // Mint Green\n '#FFEAA7', // Warm Yellow\n '#DDA0DD', // Plum\n '#98D8C8', // Mint\n '#F7DC6F', // Light Yellow\n '#BB8FCE', // Light Purple\n '#85C1E9', // Light Blue\n 'linear-gradient(0deg, rgb(255, 177, 153) 0%, rgb(255, 8, 68) 100%)',\n 'linear-gradient(270deg, rgb(251, 171, 126) 8.00%, rgb(247, 206, 104) 92.00%)',\n 'linear-gradient(315deg, rgb(150, 230, 161) 8.00%, rgb(212, 252, 121) 92.00%)',\n 'linear-gradient(to left, rgb(249, 240, 71) 0%, rgb(15, 216, 80) 100%)',\n 'linear-gradient(0deg, rgb(0, 198, 251) 0%, rgb(0, 91, 234) 100%)',\n 'linear-gradient(0deg, rgb(80, 82, 133) 0%, rgb(88, 94, 146) 15.0%, rgb(101, 104, 159) 28.00%, rgb(116, 116, 176) 43.00%, rgb(126, 126, 187) 57.00%, rgb(131, 137, 199) 71.00%, rgb(151, 149, 212) 82.00%, rgb(162, 161, 220) 92.00%, rgb(181, 174, 228) 100%)',\n 'linear-gradient(270deg, rgb(255, 126, 179) 0%, rgb(255, 117, 140) 100%)',\n 'linear-gradient(90deg, rgb(120, 115, 245) 0%, rgb(236, 119, 171) 100%)',\n 'linear-gradient(45deg, #2e266f 0.00%, #9664dd38 100.00%)',\n 'radial-gradient(circle at center, yellow 0%, #009966 50%, purple 100%)'\n];\n\nexport const RADIALS_POS = [\n { pos: 'tl', css: 'circle at left top', active: false },\n { pos: 'tm', css: 'circle at center top', active: false },\n { pos: 'tr', css: 'circle at right top', active: false },\n\n { pos: 'l', css: 'circle at left', active: false },\n { pos: 'm', css: 'circle at center', active: true },\n { pos: 'r', css: 'circle at right', active: false },\n\n { pos: 'bl', css: 'circle at left bottom', active: false },\n { pos: 'bm', css: 'circle at center bottom', active: false },\n { pos: 'br', css: 'circle at right bottom', active: false }\n];\n","import React, {\n FC,\n memo,\n MouseEvent,\n MutableRefObject,\n TouchEvent,\n useEffect,\n useRef,\n useState\n} from 'react';\n\nimport Markers from './Markers';\n\nimport { getGradient } from '../../../../utils';\nimport { arraysEqual, shallowEqual } from '../helper';\n\nimport { RADIALS_POS } from '../../../../constants';\nimport { IPropsPanel, TCoords } from './types';\n\nconst GradientPanel: FC<IPropsPanel> = ({\n color,\n setColor,\n activeColor,\n setActiveColor,\n setInit,\n format = 'rgb',\n showAlpha = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true\n}) => {\n const angleNode = useRef() as MutableRefObject<HTMLDivElement>;\n\n const { stops, gradient, type, modifier } = color;\n\n const [radialsPosition, setRadialPosition] = useState(RADIALS_POS);\n\n const onClickMode = () => {\n setInit(false);\n switch (type) {\n case 'linear': {\n const activePos = radialsPosition.find((item) => item.active);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`,\n type: 'radial'\n });\n break;\n }\n\n case 'radial': {\n setColor({\n ...color,\n gradient: `${getGradient('linear', stops, 180, format, showAlpha)}`,\n type: 'linear'\n });\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const setActiveRadialPosition = (e: MouseEvent) => {\n setInit(false);\n const target = e.target as HTMLElement;\n const pos = target.getAttribute('data-pos');\n const newRadialsPosition = radialsPosition.map((item) => {\n if (item.pos === pos) {\n return {\n ...item,\n active: true\n };\n }\n\n return {\n ...item,\n active: false\n };\n });\n\n setRadialPosition(newRadialsPosition);\n\n const activePos = newRadialsPosition.find((item) => item.active);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`\n });\n };\n\n const removeListeners = () => {\n window.removeEventListener('mousemove', onDrag);\n window.removeEventListener('mouseup', onDragEnd);\n };\n\n const removeTouchListeners = () => {\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n const onMouseDown = (e: any) => {\n e.preventDefault();\n\n setInit(false);\n\n if (e.button !== 0) return;\n\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n if (e.target.className !== 'gradient-mode' && type === 'linear') {\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n\n window.addEventListener('mousemove', onDrag);\n window.addEventListener('mouseup', onDragEnd);\n }\n };\n\n const onDrag = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n };\n\n const onDragEnd = (e: any) => {\n const x = e.clientX;\n const y = e.clientY;\n const shiftKey = e.shiftKey;\n const ctrlKey = e.ctrlKey * 2;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n\n removeListeners();\n };\n\n const onTouchStart = (e: TouchEvent) => {\n setInit(false);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n removeTouchListeners();\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n const shiftKey = false;\n const ctrlKey = 0;\n\n pointMoveTo({ x, y, shiftKey, ctrlKey });\n\n window.addEventListener('touchmove', onTouchMove, { passive: false });\n window.addEventListener('touchend', onTouchEnd, { passive: false });\n };\n\n const onTouchMove = (e: any) => {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n const x = e.targetTouches[0].clientX;\n const y = e.targetTouches[0].clientY;\n const shiftKey = false;\n const ctrlKey = 0;\n\n pointMoveTo({\n x,\n y,\n shiftKey,\n ctrlKey\n });\n };\n\n const onTouchEnd = () => {\n removeTouchListeners();\n };\n\n const pointMoveTo = (coords: TCoords) => {\n const rect = angleNode && angleNode.current.getBoundingClientRect();\n\n const boxcx = rect.left + rect.width / 2;\n const boxcy = rect.top + rect.height / 2;\n const radians = Math.atan2(coords.x - boxcx, coords.y - boxcy) - Math.PI;\n const degrees = Math.abs((radians * 180) / Math.PI);\n\n const div = [1, 2, 4][Number(coords.shiftKey || coords.ctrlKey)];\n const newAngle = degrees - (degrees % (45 / div));\n\n setColor({\n ...color,\n gradient: `${getGradient(type, stops, newAngle, format, showAlpha)}`,\n modifier: newAngle\n });\n };\n\n useEffect(() => {\n return () => {\n removeListeners();\n removeTouchListeners();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (type === 'radial') {\n const activePos = radialsPosition.find((item) => item.css === modifier);\n setColor({\n ...color,\n modifier: activePos?.css || modifier,\n gradient: `${getGradient(\n 'radial',\n stops,\n activePos?.css || modifier,\n format,\n showAlpha\n )}`\n });\n\n setRadialPosition(\n RADIALS_POS.map((item) => {\n if (item.css === modifier) {\n return {\n ...item,\n active: true\n };\n }\n\n return {\n ...item,\n active: false\n };\n })\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [modifier]);\n\n return (\n <div className='gradient-interaction'>\n {showGradientResult && (\n <div\n className='gradient-result'\n onMouseDown={showGradientAngle ? onMouseDown : undefined}\n onTouchStart={showGradientAngle ? onTouchStart : undefined}\n style={{ background: gradient }}\n >\n {showGradientMode && (\n <div\n data-mode={type}\n className='gradient-mode'\n onClick={() => onClickMode()}\n />\n )}\n {showGradientAngle && (\n <div\n className='gradient-angle'\n ref={angleNode}\n style={{ visibility: type === 'linear' ? 'visible' : 'hidden' }}\n >\n <div\n style={{\n transform: `rotate(${\n typeof modifier === 'number'\n ? modifier - 90 + 'deg'\n : modifier\n })`\n }}\n ></div>\n </div>\n )}\n {showGradientPosition && (\n <div\n className='gradient-pos'\n style={{\n opacity: type === 'radial' ? '1' : '0',\n visibility: type === 'radial' ? 'visible' : 'hidden'\n }}\n >\n {radialsPosition.map((item) => {\n return (\n <div\n key={item.pos}\n data-pos={item.pos}\n className={item.active ? 'gradient-active' : ''}\n onClick={(e) => setActiveRadialPosition(e)}\n />\n );\n })}\n </div>\n )}\n </div>\n )}\n {showGradientStops && (\n <Markers\n color={color}\n setColor={setColor}\n activeColor={activeColor}\n setActiveColor={setActiveColor}\n setInit={setInit}\n format={format}\n showAlpha={showAlpha}\n allowAddGradientStops={allowAddGradientStops}\n />\n )}\n </div>\n );\n};\n\nconst arePropsEqual = (prevProps: any, nextProps: any) => {\n if (\n arraysEqual(prevProps.color.stops, nextProps.color.stops) &&\n prevProps.color.modifier === nextProps.color.modifier &&\n prevProps.color.type === nextProps.color.type &&\n shallowEqual(prevProps.activeColor, nextProps.activeColor)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport default memo(GradientPanel, arePropsEqual);\n","import { useEffect, useState } from 'react';\n\nexport default <T>(value: T, delay?: number): T => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import iro from '@jaames/iro';\nimport React, { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport tinyColor from 'tinycolor2';\n\nimport { InputRgba } from '../../../forms';\nimport IroColorPicker from '../../IroColorPicker';\nimport DefaultColorsPanel from '../DefaultColorPanel';\nimport GradientPanel from '../GradientPanel';\n\nimport { useDebounce } from '../../../../hooks';\nimport {\n getGradient,\n parseGradient,\n rgbaToArray,\n rgbaToHex\n} from '../../../../utils';\n\nimport { IActiveColor, IPropsComp, TPropsChange } from '../../../../lib/types';\n\nconst IroGradient: FC<IPropsComp> = ({\n value = 'linear-gradient(90deg, #ffffff 0%, #000000 100%)',\n onChange = () => ({}),\n format = 'rgb',\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true,\n colorBoardHeight = 120,\n defaultColors,\n showReset = false,\n onReset\n}) => {\n // Store the initial value for reset functionality\n const initialValue = useRef(value);\n const parsedColors = useCallback(() => {\n return parseGradient(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const { stops, type, modifier } = parsedColors();\n const lastStop = rgbaToArray(stops[stops.length - 1][0]);\n const activeStopIndex = stops.length - 1;\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const activeAlpha = Math.round(lastStop[3] * 100);\n\n const iroPickerRef = useRef<any>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const isUpdatingFromGradientStop = useRef<boolean>(false);\n const [pickerWidth, setPickerWidth] = useState<number>(200);\n // Responsive width for IroColorPicker - match solid picker logic\n useEffect(() => {\n if (!containerRef.current) return;\n const resizeObserver = new window.ResizeObserver((entries) => {\n for (const entry of entries) {\n const containerWidth = entry.contentRect.width;\n // Use the same logic as solid picker for consistency\n const padding = 40; // Total padding and margins\n const available = containerWidth - padding;\n\n let calculatedWidth;\n // Simple responsive calculation - same as solid picker\n if (available <= 200) {\n calculatedWidth = Math.max(150, available - 10); // Very small containers\n } else if (available <= 320) {\n calculatedWidth = Math.min(available * 0.85, 250); // Medium containers\n } else {\n calculatedWidth = Math.min(available * 0.8, 280); // Large containers\n }\n\n setPickerWidth(Math.floor(calculatedWidth));\n }\n });\n resizeObserver.observe(containerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n const [color, setColor] = useState({\n gradient: value,\n type,\n modifier,\n stops\n });\n\n const [activeColor, setActiveColor] = useState<IActiveColor>({\n hex: activeStop,\n alpha: activeAlpha,\n loc: stops[activeStopIndex][1],\n index: activeStopIndex\n });\n\n const debounceColor = useDebounce(color, debounceMS);\n\n // Update iro picker color\n const updateIroPickerColor = useCallback(\n (colorData: { hex: string; alpha: number }, retryCount = 0) => {\n const maxRetries = 5;\n\n const updateColor = () => {\n // Check if picker is properly initialized\n if (\n iroPickerRef.current?.colorPicker &&\n iroPickerRef.current.colorPicker.color\n ) {\n const iroColor = showAlpha\n ? {\n r: parseInt(colorData.hex.slice(1, 3), 16),\n g: parseInt(colorData.hex.slice(3, 5), 16),\n b: parseInt(colorData.hex.slice(5, 7), 16),\n a: colorData.alpha / 100\n }\n : colorData.hex;\n\n try {\n // Set flag to prevent circular updates\n isUpdatingFromGradientStop.current = true;\n\n console.log(\n '🎨 Updating iro picker in gradient mode (attempt:',\n retryCount + 1,\n '):',\n {\n hex: colorData.hex,\n alpha: colorData.alpha,\n iroColor,\n pickerReady: !!iroPickerRef.current?.colorPicker?.color\n }\n );\n\n iroPickerRef.current.colorPicker.color.set(iroColor);\n\n // Reset flag after a short delay\n setTimeout(() => {\n isUpdatingFromGradientStop.current = false;\n }, 100);\n\n console.log('✅ Successfully updated iro picker');\n } catch (error) {\n isUpdatingFromGradientStop.current = false;\n console.warn('❌ Error updating iro color picker:', error);\n\n // Retry with exponential backoff\n if (retryCount < maxRetries) {\n const delay = 100 * Math.pow(2, retryCount); // 100ms, 200ms, 400ms, etc.\n console.log(\n `🔄 Retrying in ${delay}ms (attempt ${retryCount + 2}/${\n maxRetries + 1\n })`\n );\n setTimeout(() => {\n updateIroPickerColor(colorData, retryCount + 1);\n }, delay);\n } else {\n console.error(\n '💥 Max retries reached, giving up on iro picker update'\n );\n }\n }\n } else {\n console.log('⏳ Iro picker not ready, retrying...', {\n hasRef: !!iroPickerRef.current,\n hasColorPicker: !!iroPickerRef.current?.colorPicker,\n hasColor: !!iroPickerRef.current?.colorPicker?.color,\n attempt: retryCount + 1\n });\n\n // If picker is not ready, retry with increasing delays\n if (retryCount < maxRetries) {\n const delay = 50 + retryCount * 100; // 50ms, 150ms, 250ms, etc.\n setTimeout(() => {\n updateIroPickerColor(colorData, retryCount + 1);\n }, delay);\n } else {\n console.error('💥 Iro picker never became ready, giving up');\n }\n }\n };\n\n updateColor();\n },\n [showAlpha]\n );\n\n useEffect(() => {\n if (debounce && debounceColor) {\n onChange?.(debounceColor.gradient);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounceColor]);\n\n // Initialize iro picker with current activeColor when component mounts or picker becomes ready\n useEffect(() => {\n const initializeIroPicker = () => {\n if (iroPickerRef.current?.colorPicker?.color && activeColor.hex) {\n console.log(\n '🚀 Initializing iro picker with activeColor:',\n activeColor\n );\n // Wait a bit for the picker to be fully ready, then update\n setTimeout(() => {\n updateIroPickerColor({\n hex: activeColor.hex,\n alpha: activeColor.alpha\n });\n }, 200);\n }\n };\n\n // Try immediately\n initializeIroPicker();\n\n // Also try after a delay in case picker wasn't ready\n const timeoutId = setTimeout(initializeIroPicker, 500);\n\n return () => clearTimeout(timeoutId);\n }, [activeColor, updateIroPickerColor]); // Initialize when activeColor or updateFunction changes\n\n // Custom setActiveColor that also updates iro picker\n const handleSetActiveColor = useCallback(\n (newActiveColor: any) => {\n console.log(\n '🎯 Gradient stop clicked, setting active color:',\n newActiveColor\n );\n setActiveColor(newActiveColor);\n\n // Force immediate update of iro picker with longer delay for first-time reliability\n setTimeout(() => {\n updateIroPickerColor({\n hex: newActiveColor.hex,\n alpha: newActiveColor.alpha\n });\n }, 50); // Increased from 5ms to 50ms for better first-time success\n },\n [updateIroPickerColor]\n );\n\n // Update iro picker when activeColor changes (e.g., clicking gradient stops)\n useEffect(() => {\n console.log('🔄 ActiveColor changed in gradient:', {\n hex: activeColor.hex,\n alpha: activeColor.alpha,\n index: activeColor.index,\n loc: activeColor.loc\n });\n\n // Add a small delay to ensure the activeColor state has fully updated\n const timeoutId = setTimeout(() => {\n updateIroPickerColor({ hex: activeColor.hex, alpha: activeColor.alpha });\n }, 10);\n\n return () => clearTimeout(timeoutId);\n }, [\n activeColor.hex,\n activeColor.alpha,\n activeColor.index,\n activeColor.loc,\n updateIroPickerColor\n ]);\n\n const updateGradient = useCallback(\n (newColor: any) => {\n if (Array.isArray(newColor)) {\n // Handle the case where it's called with stops array\n const newStops = newColor;\n const newColorState = {\n ...color,\n stops: newStops,\n gradient: `${getGradient(\n color.type,\n newStops,\n color.modifier,\n format,\n showAlpha\n )}`\n };\n setColor(newColorState);\n return newColorState; // Return the new state for immediate use\n } else {\n // Handle the case where it's called with full color object\n setColor(newColor);\n return newColor;\n }\n },\n [color, format, showAlpha]\n );\n\n const onChangeActiveColor = ({ hex, alpha }: TPropsChange) => {\n // Use setActiveColor callback to get the LATEST activeColor state\n setActiveColor((latestActiveColor) => {\n // Use setColor callback to get the most current state\n setColor((currentColorState) => {\n // FIXED: Find the active stop by location using LATEST activeColor\n const activeStopIndex = currentColorState.stops.findIndex(\n (stop) =>\n Math.abs((stop[1] as number) - (latestActiveColor.loc as number)) <\n 0.01\n );\n\n // Safety check: ensure we have a valid index\n if (\n activeStopIndex === -1 ||\n activeStopIndex >= currentColorState.stops.length\n ) {\n console.warn(\n 'Could not find stop at location:',\n latestActiveColor.loc,\n 'in stops:',\n currentColorState.stops\n );\n return currentColorState; // Return unchanged state\n }\n\n const currentStop = currentColorState.stops[activeStopIndex];\n const currentPosition = currentStop[1];\n\n // Update the gradient with the new active color\n const newStops = [...currentColorState.stops];\n const rgba = tinyColor(hex);\n rgba.setAlpha(alpha / 100);\n\n // Update the correct stop\n newStops[activeStopIndex] = [\n rgba.toRgbString(),\n currentPosition,\n activeStopIndex // Use the found index\n ];\n\n const newColorState = {\n ...currentColorState,\n stops: newStops,\n gradient: `${getGradient(\n currentColorState.type,\n newStops,\n currentColorState.modifier,\n format,\n showAlpha\n )}`\n };\n\n return newColorState;\n });\n\n // Return updated activeColor with new hex and alpha\n const updatedActiveColor = {\n ...latestActiveColor,\n hex,\n alpha\n };\n\n return updatedActiveColor;\n });\n };\n\n const setInit = () => {}; // Stub function for gradient panel compatibility\n\n const onSubmitChange = (rgba: string) => {\n const rgbaArr = rgbaToArray(rgba);\n const hex = rgbaToHex([rgbaArr[0], rgbaArr[1], rgbaArr[2]]);\n const alpha = Math.round(rgbaArr[3] * 100);\n\n onChangeActiveColor({ hex, alpha });\n };\n\n // Reset to initial color\n const handleResetColor = () => {\n const initialParsed = parseGradient(initialValue.current);\n setColor(initialParsed);\n\n // Reset active color to the last stop of the initial gradient\n const lastStop = rgbaToArray(\n initialParsed.stops[initialParsed.stops.length - 1][0]\n );\n const newActiveColor = {\n hex: rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]),\n alpha: Math.round(lastStop[3] * 100),\n loc: initialParsed.stops[initialParsed.stops.length - 1][1],\n index: initialParsed.stops.length - 1\n };\n setActiveColor(newActiveColor);\n\n // Update iro picker if available\n if (iroPickerRef.current?.colorPicker) {\n updateIroPickerColor(newActiveColor);\n }\n\n // Call onChange with initial value\n onChange(initialValue.current);\n\n // Call onReset callback if provided\n onReset?.();\n };\n\n // Update iro picker when color is selected from default colors panel\n const handleColorFromPanel = (newColor: any) => {\n setColor(newColor);\n if (newColor?.stops) {\n const lastStop = rgbaToArray(\n newColor.stops[newColor.stops.length - 1][0]\n );\n const activeStop = rgbaToHex([lastStop[0], lastStop[1], lastStop[2]]);\n const newActiveColor = {\n hex: activeStop,\n alpha: Math.round(lastStop[3] * 100),\n loc: newColor.stops[newColor.stops.length - 1][1],\n index: newColor.stops.length - 1\n };\n\n setActiveColor(newActiveColor);\n\n // Update the iro color picker\n updateIroPickerColor(newActiveColor);\n }\n };\n\n const handleIroColorChange = (iroColor: any) => {\n // Don't process if we're currently updating from gradient stop\n if (isUpdatingFromGradientStop.current) {\n return;\n }\n\n const newColor: TPropsChange = {\n hex: iroColor.hexString,\n alpha: Math.round(iroColor.alpha * 100)\n };\n\n onChangeActiveColor(newColor);\n };\n\n // Create layout array conditionally based on showAlpha\n const layoutConfig = [\n {\n component: (iro as any).ui.Wheel,\n options: {}\n },\n {\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'value'\n }\n }\n ];\n\n if (showAlpha) {\n layoutConfig.push({\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'alpha'\n }\n });\n }\n\n // Use hex8 format when alpha is enabled for proper alpha support\n const iroColorValue = showAlpha\n ? tinyColor({\n r: parseInt(activeColor.hex.slice(1, 3), 16),\n g: parseInt(activeColor.hex.slice(3, 5), 16),\n b: parseInt(activeColor.hex.slice(5, 7), 16),\n a: activeColor.alpha / 100\n }).toHex8String()\n : activeColor.hex;\n\n return (\n <div\n className='w-full rounded-xl shadow-lg space-y-2 transition-all duration-200 hover:shadow-xl'\n style={{\n backgroundColor: 'var(--colorpicker-panel-bg)'\n }}\n >\n {/* Color Picker Container */}\n <div className='relative' ref={containerRef}>\n <div\n className='flex justify-center items-center rounded-lg'\n style={{\n height: colorBoardHeight + pickerWidth\n }}\n >\n <IroColorPicker\n ref={iroPickerRef}\n width={pickerWidth}\n color={iroColorValue}\n layout={layoutConfig}\n onColorChange={handleIroColorChange}\n />\n </div>\n </div>\n\n {/* Gradient Controls */}\n <div className='rounded-lg colorpicker-glass px-4'>\n <GradientPanel\n color={color}\n activeColor={activeColor}\n setActiveColor={handleSetActiveColor}\n setColor={updateGradient}\n setInit={setInit}\n format={format}\n showAlpha={showAlpha}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n />\n </div>\n\n {/* Color Palette */}\n <div className='pt-4 px-2'>\n <DefaultColorsPanel\n defaultColors={defaultColors}\n setColor={handleColorFromPanel}\n setInit={() => {}}\n setActiveColor={handleSetActiveColor}\n colorType='gradient'\n />\n </div>\n\n {/* Input Controls */}\n {showInputs && (\n <div className='rounded-lg colorpicker-glass flex items-center gap-2'>\n <div className='flex-1'>\n <InputRgba\n hex={activeColor.hex}\n alpha={activeColor.alpha}\n showAlpha={showAlpha}\n onChange={(value: { hex: string; alpha: number }) =>\n setActiveColor((prev) => ({\n ...prev,\n hex: value.hex,\n alpha: value.alpha,\n index: prev.index // Preserve the index!\n }))\n }\n onSubmitChange={onSubmitChange}\n />\n </div>\n {showReset && (\n <button\n onClick={handleResetColor}\n className='px-3 py-2 text-xs font-medium rounded-md transition-colors duration-200 bg-transparent border border-gray-600 text-gray-300 hover:text-white hover:border-gray-500 hover:bg-gray-800/50 whitespace-nowrap flex items-center gap-1'\n title='Reset to initial color'\n >\n <svg\n className='w-3 h-3'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'\n />\n </svg>\n Reset\n </button>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default IroGradient;\n","import iro from '@jaames/iro';\nimport React, { FC, useEffect, useRef, useState } from 'react';\nimport tinycolor from 'tinycolor2';\n\nimport { InputRgba } from '../../../forms';\nimport IroColorPicker from '../../IroColorPicker';\nimport DefaultColorsPanel from '../DefaultColorPanel';\n\nimport { useDebounce } from '../../../../hooks';\nimport { checkFormat, getHexAlpha } from '../../../../utils';\n\nimport { IPropsComp, TPropsChange } from '../../../../lib/types';\n\nconst IroSolidColorPicker: FC<IPropsComp> = ({\n value = '#ffffff',\n onChange = () => ({}),\n format = 'rgb',\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n defaultColors,\n showReset = false,\n onReset\n}) => {\n const node = useRef<HTMLDivElement | null>(null);\n const iroPickerRef = useRef<any>(null);\n // Store the initial value for reset functionality\n const initialValue = useRef(value);\n const [init, setInit] = useState<boolean>(true);\n const [color, setColor] = useState(getHexAlpha(value));\n const [pickerWidth, setPickerWidth] = useState<number>(200);\n const pickerWidthRef = useRef<number>(200);\n\n // Update ref when state changes\n useEffect(() => {\n pickerWidthRef.current = pickerWidth;\n console.log('📊 Picker width state changed to:', pickerWidth);\n }, [pickerWidth]);\n\n // Calculate responsive width based on container\n const getResponsiveWidth = (containerWidth: number) => {\n const padding = 40; // Total padding and margins\n const available = containerWidth - padding;\n\n // Simple responsive calculation\n if (available <= 200) {\n return Math.max(150, available - 10); // Very small containers - fixed logic\n } else if (available <= 320) {\n return Math.min(available * 0.85, 250); // Medium containers\n } else {\n return Math.min(available * 0.8, 280); // Large containers\n }\n };\n\n // Handle container resize\n useEffect(() => {\n if (!node.current) return;\n\n const updateSize = () => {\n if (node.current) {\n const rect = node.current.getBoundingClientRect();\n if (rect.width > 0) {\n const newWidth = Math.floor(getResponsiveWidth(rect.width));\n if (Math.abs(newWidth - pickerWidthRef.current) > 5) {\n // Only update if significant change\n console.log('� Size update:', { container: rect.width, newWidth });\n setPickerWidth(newWidth);\n }\n }\n }\n };\n\n // Initial size calculation\n updateSize();\n\n // Set up ResizeObserver\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n\n resizeObserver.observe(node.current);\n\n // Window resize backup\n window.addEventListener('resize', updateSize);\n\n return () => {\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateSize);\n };\n }, []); // Empty dependency array is now safe\n\n // Debug helper for testing - create it once and update functions\n useEffect(() => {\n if (!(window as any).debugPicker) {\n (window as any).debugPicker = {};\n }\n\n const debug = (window as any).debugPicker;\n debug.getCurrentWidth = () => {\n console.log('Current picker width:', pickerWidth);\n return pickerWidth;\n };\n debug.getContainerWidth = () => {\n const width = node.current?.getBoundingClientRect().width;\n console.log('Current container width:', width);\n return width;\n };\n debug.forceResize = () => {\n if (node.current) {\n const rect = node.current.getBoundingClientRect();\n const newWidth = Math.floor(getResponsiveWidth(rect.width));\n console.log('🔧 Force resize:', { container: rect.width, newWidth });\n setPickerWidth(newWidth);\n }\n };\n debug.getPickerRef = () => iroPickerRef.current;\n\n // Don't cleanup on unmount so user can access it\n }, [pickerWidth]);\n\n const debounceColor = useDebounce(color, debounceMS);\n\n useEffect(() => {\n if (debounce && debounceColor && init === false) {\n if (value === 'transparent' && color.alpha === 0) {\n color.alpha = 100;\n }\n\n const rgba = tinycolor(color.hex);\n rgba.setAlpha(color.alpha / 100);\n\n if (tinycolor(rgba).toRgbString() === tinycolor(value).toRgbString()) {\n return;\n }\n\n const formattedColor = checkFormat(\n rgba.toRgbString(),\n format,\n showAlpha,\n debounceColor.alpha\n );\n\n onChange?.(formattedColor);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounceColor]);\n\n useEffect(() => {\n setColor(getHexAlpha(value));\n\n // Update iro color picker when value changes externally\n if (iroPickerRef.current?.colorPicker) {\n const newIroColor = showAlpha\n ? {\n r: parseInt(getHexAlpha(value).hex.slice(1, 3), 16),\n g: parseInt(getHexAlpha(value).hex.slice(3, 5), 16),\n b: parseInt(getHexAlpha(value).hex.slice(5, 7), 16),\n a: getHexAlpha(value).alpha / 100\n }\n : getHexAlpha(value).hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(newIroColor);\n } catch (error) {\n console.warn('Error updating iro color picker from props:', error);\n }\n }\n }, [value, showAlpha]);\n\n const handleColorChange = (iroColor: any) => {\n console.log('🎨 Alpha slider changed!', {\n hex: iroColor.hexString,\n alpha: iroColor.alpha,\n alphaPercent: Math.round(iroColor.alpha * 100)\n });\n\n const newColor: TPropsChange = {\n hex: iroColor.hexString,\n alpha: Math.round(iroColor.alpha * 100)\n };\n\n setInit(false);\n setColor(newColor);\n };\n\n const handleInputChange = (newColor: { hex: string; alpha: number }) => {\n setColor(newColor);\n };\n\n const handleInputSubmit = (colorString: string) => {\n onChange?.(colorString);\n };\n\n // Update iro picker when color is selected from default colors panel\n const handleColorFromPanel = (newColor: { hex: string; alpha: number }) => {\n setInit(false);\n setColor(newColor);\n\n // Update the iro color picker with a small delay to ensure it's ready\n const updateIroColor = () => {\n if (iroPickerRef.current?.colorPicker) {\n const iroColor = showAlpha\n ? {\n r: parseInt(newColor.hex.slice(1, 3), 16),\n g: parseInt(newColor.hex.slice(3, 5), 16),\n b: parseInt(newColor.hex.slice(5, 7), 16),\n a: newColor.alpha / 100\n }\n : newColor.hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n } catch (error) {\n console.warn('Error updating iro color picker:', error);\n // Retry after a short delay\n setTimeout(() => {\n try {\n if (iroPickerRef.current?.colorPicker) {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n }\n } catch (retryError) {\n console.warn(\n 'Retry failed for iro color picker update:',\n retryError\n );\n }\n }, 100);\n }\n } else {\n // If picker is not ready, try again after a short delay\n setTimeout(updateIroColor, 50);\n }\n };\n\n updateIroColor();\n };\n\n // Reset to initial color\n const handleResetColor = () => {\n const initialColorData = getHexAlpha(initialValue.current);\n setColor(initialColorData);\n\n // Update the iro color picker\n if (iroPickerRef.current?.colorPicker) {\n const iroColor = showAlpha\n ? {\n r: parseInt(initialColorData.hex.slice(1, 3), 16),\n g: parseInt(initialColorData.hex.slice(3, 5), 16),\n b: parseInt(initialColorData.hex.slice(5, 7), 16),\n a: initialColorData.alpha / 100\n }\n : initialColorData.hex;\n\n try {\n iroPickerRef.current.colorPicker.color.set(iroColor);\n } catch (error) {\n console.warn('Error updating iro color picker on reset:', error);\n }\n }\n\n // Call onChange with initial value\n onChange(initialValue.current);\n\n // Call onReset callback if provided\n onReset?.();\n };\n\n // Create layout array conditionally based on showAlpha\n const layoutConfig = [\n {\n component: (iro as any).ui.Wheel,\n options: {}\n },\n {\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'value'\n }\n }\n ];\n\n if (showAlpha) {\n layoutConfig.push({\n component: (iro as any).ui.Slider,\n options: {\n sliderType: 'alpha'\n }\n });\n }\n\n // Use hex8 format when alpha is enabled for proper alpha support\n const iroColorValue = showAlpha\n ? tinycolor({\n r: parseInt(color.hex.slice(1, 3), 16),\n g: parseInt(color.hex.slice(3, 5), 16),\n b: parseInt(color.hex.slice(5, 7), 16),\n a: color.alpha / 100\n }).toHex8String()\n : color.hex;\n\n return (\n <div\n ref={node}\n className='w-full p-2 rounded-xl shadow-lg space-y-2 transition-all duration-200 hover:shadow-xl overflow-hidden'\n style={{\n backgroundColor: 'var(--colorpicker-panel-bg)',\n maxWidth: '100%',\n minWidth: 0,\n boxSizing: 'border-box'\n }}\n >\n {/* Color Picker Container */}\n <div className='relative overflow-hidden'>\n <div\n className='flex justify-center items-center rounded-lg colorpicker-glass w-full overflow-hidden'\n style={{\n height: Math.max(pickerWidth + 80, 220), // Better height calculation\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n boxSizing: 'border-box'\n }}\n >\n <div\n style={{\n width: pickerWidth,\n height: 'fit-content',\n maxWidth: '90%'\n }}\n >\n <IroColorPicker\n ref={iroPickerRef}\n width={pickerWidth}\n color={iroColorValue}\n layout={layoutConfig}\n onColorChange={handleColorChange}\n />\n </div>\n </div>\n </div>\n {/* Color Palette */}\n <div className='border-t pt-4 colorpicker-glass rounded-lg'>\n <DefaultColorsPanel\n defaultColors={defaultColors}\n setColor={handleColorFromPanel}\n setInit={setInit}\n colorType='solid'\n />\n </div>\n {/* Input Controls */}\n {showInputs && (\n <div className='rounded-lg colorpicker-glass flex items-center gap-2'>\n <div className='flex-1'>\n <InputRgba\n hex={color.hex}\n alpha={color.alpha}\n format={format}\n showAlpha={showAlpha}\n onChange={handleInputChange}\n onSubmitChange={handleInputSubmit}\n />\n </div>\n {showReset && (\n <button\n onClick={handleResetColor}\n className='px-3 py-2 text-xs font-medium rounded-md transition-colors duration-200 bg-transparent border border-gray-600 text-gray-300 hover:text-white hover:border-gray-500 hover:bg-gray-800/50 whitespace-nowrap flex items-center gap-1'\n title='Reset to initial color'\n >\n <svg\n className='w-3 h-3'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'\n />\n </svg>\n Reset\n </button>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default IroSolidColorPicker;\n","import React, { FC } from 'react';\n\ninterface Popups {\n children?: any;\n activeTab?: string | 'solid' | 'gradient';\n tabName?: string;\n popupWidth?: number;\n onClick?: () => void;\n}\n\nexport const PopupTabs: FC<Popups> = ({\n children,\n activeTab,\n popupWidth\n}: Popups) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n\n return (\n <div className='relative rounded-md' style={{ width: `${popupWidth}px` }}>\n {childrenContact}\n </div>\n );\n};\n\nexport const PopupTabsHeaderLabel: FC<Popups> = ({\n children,\n activeTab,\n tabName,\n onClick\n}: Popups) => {\n return (\n <div\n className={`w-full h-12 text-sm font-bold leading-6 tracking-wider text-center uppercase flex items-center justify-center cursor-pointer transition-colors ${\n activeTab === tabName\n ? ' cursor-default opacity-100 '\n : 'hover:text-primary hover:opacity-80 bg-[var(--colorpicker-input-bg)] text-[var(--color-muted-foreground)]'\n }`}\n onClick={onClick}\n >\n {children}\n </div>\n );\n};\n\nexport const PopupTabsHeader: FC<Popups> = ({\n children,\n activeTab\n}: Popups) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n return (\n <div className='w-full h-12 flex rounded-md rounded-b-none overflow-hidden colorpicker-glass shadow-inner'>\n {childrenContact}\n </div>\n );\n};\n\nexport const PopupTabsBody: FC<Popups> = ({ children, activeTab }) => {\n const childrenContact = React.Children.map(children, (child) => {\n return React.cloneElement(child, {\n activeTab\n });\n });\n\n return <div className='p-4'>{childrenContact}</div>;\n};\n\nexport const PopupTabsBodyItem: FC<Popups> = ({\n children,\n activeTab,\n tabName\n}: Popups) => {\n if (activeTab === tabName) {\n return <div>{children}</div>;\n }\n\n return null;\n};\n","import React, { FC, Fragment, useState } from 'react';\nimport '../../../styles/tailwind.css';\nimport { ThemeProvider } from '../../providers/ThemeContext';\nimport { ThemeToggle } from '../../ui/ThemeToggle';\nimport './_colorpicker.scss';\n\nimport IroGradient from './IroGradient';\nimport IroSolid from './IroSolid';\n\nimport {\n PopupTabs,\n PopupTabsBody,\n PopupTabsBodyItem,\n PopupTabsHeader,\n PopupTabsHeaderLabel\n} from '../../ui/PopupTab';\nimport { getIndexActiveTag } from './helper';\n\nimport { IPropsMain } from '../../../lib/types/types';\n\nimport { DEFAULT_COLORS } from '../../../constants/constants';\n\nconst ColorPicker: FC<IPropsMain> = ({\n value = '#ffffff',\n format = 'rgb',\n gradient = false,\n solid = true,\n debounceMS = 300,\n debounce = true,\n showAlpha = true,\n showInputs = true,\n showGradientResult = true,\n showGradientStops = true,\n showGradientMode = true,\n showGradientAngle = true,\n showGradientPosition = true,\n allowAddGradientStops = true,\n popupWidth = 267,\n colorBoardHeight = 120,\n defaultColors = DEFAULT_COLORS,\n defaultActiveTab,\n onChangeTabs,\n onChange = () => ({}),\n showReset = false,\n onReset\n}) => {\n const [activeTab, setActiveTab] = useState<string>(\n defaultActiveTab || getIndexActiveTag(value)\n );\n\n const onChangeSolid = (value: string) => {\n onChange(value);\n };\n\n const onChangeGradient = (value: string) => {\n onChange(value);\n };\n\n const onChangeTab = (tab: string) => {\n setActiveTab(tab);\n if (typeof onChangeTabs === 'function' && !!onChangeTabs) {\n onChangeTabs(tab);\n }\n };\n\n if (solid && gradient) {\n return (\n <ThemeProvider>\n <div\n className='relative dark iro-gradient-picker'\n data-color-picker-theme\n >\n <ThemeToggle />\n <PopupTabs activeTab={activeTab} popupWidth={popupWidth}>\n <PopupTabsHeader>\n <PopupTabsHeaderLabel\n tabName='solid'\n onClick={() => onChangeTab('solid')}\n >\n Solid\n </PopupTabsHeaderLabel>\n <PopupTabsHeaderLabel\n tabName='gradient'\n onClick={() => onChangeTab('gradient')}\n >\n Gradient\n </PopupTabsHeaderLabel>\n </PopupTabsHeader>\n <PopupTabsBody>\n <PopupTabsBodyItem tabName='solid'>\n <IroSolid\n onChange={onChangeSolid}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n </PopupTabsBodyItem>\n <PopupTabsBodyItem tabName='gradient'>\n <IroGradient\n onChange={onChangeGradient}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n </PopupTabsBodyItem>\n </PopupTabsBody>\n </PopupTabs>\n </div>\n </ThemeProvider>\n );\n }\n\n return (\n <ThemeProvider>\n <div\n className='relative dark iro-gradient-picker'\n data-color-picker-theme\n >\n <ThemeToggle />\n {solid || gradient ? (\n <PopupTabs popupWidth={popupWidth}>\n <PopupTabsBody>\n {solid ? (\n <IroSolid\n onChange={onChangeSolid}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n ) : (\n <Fragment />\n )}\n {gradient ? (\n <IroGradient\n onChange={onChangeGradient}\n value={value}\n format={format}\n defaultColors={defaultColors}\n debounceMS={debounceMS}\n debounce={debounce}\n showAlpha={showAlpha}\n showInputs={showInputs}\n showGradientResult={showGradientResult}\n showGradientStops={showGradientStops}\n showGradientMode={showGradientMode}\n showGradientAngle={showGradientAngle}\n showGradientPosition={showGradientPosition}\n allowAddGradientStops={allowAddGradientStops}\n colorBoardHeight={colorBoardHeight}\n showReset={showReset}\n onReset={onReset}\n />\n ) : (\n <Fragment />\n )}\n </PopupTabsBody>\n </PopupTabs>\n ) : null}\n </div>\n </ThemeProvider>\n );\n};\n\nexport default ColorPicker;\n"],"names":["r","this$1","IroColorPicker","rgbaToHex","parseGradient","iro","tinyColor","GradientPanel","DefaultColorsPanel","IroSolid"],"mappings":"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C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EA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"}
|