{"version":3,"file":"shival99-z-ui-utils.mjs","sources":["../../../../libs/core-ui/utils/types/z-common.types.ts","../../../../libs/core-ui/utils/z-common.utils.ts","../../../../libs/core-ui/utils/z-async-options.utils.ts","../../../../libs/core-ui/utils/z-echarts.utils.ts","../../../../libs/core-ui/utils/z-form.utils.ts","../../../../libs/core-ui/utils/z-emoji-sheet.define.ts","../../../../libs/core-ui/utils/z-emoji-keywords.define.ts","../../../../libs/core-ui/utils/types/z-event.types.ts","../../../../libs/core-ui/utils/types/index.ts","../../../../libs/core-ui/utils/index.ts","../../../../libs/core-ui/utils/shival99-z-ui-utils.ts"],"sourcesContent":["export type ZBrowserName = 'Chrome' | 'Edge' | 'Firefox' | 'Safari' | 'Opera' | 'IE' | 'Unknown' | string;\n\nexport type ZDeviceType = 'mobile' | 'tablet' | 'desktop';\nexport interface ZBrowserInfo {\n  name: ZBrowserName;\n  version: string;\n  agent: string;\n  device: ZDeviceType;\n  time: string;\n}\n\nexport interface ZNavigatorUABrandVersion {\n  brand: string;\n  version: string;\n}\n\nexport interface ZNavigatorUAData {\n  brands: ZNavigatorUABrandVersion[];\n  mobile: boolean;\n  platform: string;\n}\n\nexport type ZNumberDivide = 'none' | 'thousand' | 'million' | 'billion';\nexport type ZEmptyCheck = 'strict' | 'includeZero';\n\nexport const Z_DIVIDE_SCALE: Record<ZNumberDivide, number> = {\n  none: 1,\n  thousand: 1_000,\n  million: 1_000_000,\n  billion: 1_000_000_000,\n};\n\nexport const Z_LOCALE_MAP: Record<string, string> = {\n  vi: 'vi-VN',\n  en: 'en-US',\n};\n\nexport interface ZFormatNumOptions {\n  divide?: ZNumberDivide;\n  format?: string;\n  percent?: boolean;\n  emptyCheck?: ZEmptyCheck;\n  locale?: string;\n  placeholder?: string;\n}\n\nexport const Z_EXCEL_NUMBER_FORMAT_MAP: Record<string, string> = {\n  '1.0-0': '#,##0',\n  '1.0-1': '#,##0.0',\n  '1.0-2': '#,##0.00',\n  '1.0-3': '#,##0.000',\n  '1.1-1': '#,##0.0',\n  '1.1-2': '#,##0.00',\n  '1.1-3': '#,##0.000',\n  '1.2-2': '#,##0.00',\n};\n\nexport interface ZFormatNumExcelOptions {\n  divide?: ZNumberDivide;\n  format?: string;\n  percent?: boolean;\n  emptyCheck?: ZEmptyCheck;\n}\n\ndeclare global {\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  interface Navigator {\n    userAgentData?: ZNavigatorUAData;\n  }\n}\n\nexport type ZCapitalizeType = 'all' | 'sentence' | 'first';\n","import { isSignal, type WritableSignal } from '@angular/core';\nimport { type ClassValue, clsx } from 'clsx';\nimport type * as ExcelJS from 'exceljs';\nimport MiniSearch from 'minisearch';\nimport { delay, finalize, type Observable, of } from 'rxjs';\nimport { twMerge } from 'tailwind-merge';\nimport {\n  type ZDeviceType,\n  type ZBrowserInfo,\n  type ZNavigatorUABrandVersion,\n  type ZFormatNumOptions,\n  type ZFormatNumExcelOptions,\n  Z_DIVIDE_SCALE,\n  Z_LOCALE_MAP,\n  Z_EXCEL_NUMBER_FORMAT_MAP,\n  type ZCapitalizeType,\n} from './types/z-common.types';\n\nexport const zMergeClasses = (...inputs: ClassValue[]) => twMerge(clsx(inputs));\n\nexport const zNormalize = (value: string): string =>\n  value\n    .trim()\n    .toLowerCase()\n    .replace(/[^a-z0-9]+/g, '_')\n    .replace(/^_+|_+$/g, '');\n\nexport const zTransform = (value: boolean | string): boolean => {\n  if (typeof value === 'string') {\n    return value === '';\n  }\n  if (typeof value === 'number') {\n    return value === 0;\n  }\n  return value;\n};\n\nexport const zUuid = (prefix = ''): string => {\n  const id = crypto.randomUUID();\n  return prefix ? `${prefix}-${id}` : id;\n};\n\nexport const zNoop = () => void 0;\n\nexport const zFormatNum = (value: unknown, options: ZFormatNumOptions = {}): string => {\n  const {\n    divide = 'none',\n    format = '1.0-2',\n    percent = false,\n    emptyCheck = 'strict',\n    locale = 'vi',\n    placeholder = '-',\n  } = options;\n\n  if (value === null || value === undefined) {\n    return placeholder;\n  }\n\n  const numValue = Number(value);\n\n  if (Number.isNaN(numValue)) {\n    return placeholder;\n  }\n\n  if (emptyCheck === 'includeZero' && numValue === 0) {\n    return placeholder;\n  }\n\n  const scaledValue = numValue / Z_DIVIDE_SCALE[divide];\n  const matched = format.match(/1\\.(\\d)-(\\d)/);\n  const minDigits = matched ? parseInt(matched[1], 10) : 0;\n  const maxDigits = matched ? parseInt(matched[2], 10) : 2;\n\n  const lang = document.documentElement.lang || locale;\n  const formatted = new Intl.NumberFormat(Z_LOCALE_MAP[lang] || 'vi-VN', {\n    minimumFractionDigits: minDigits,\n    maximumFractionDigits: maxDigits,\n  }).format(scaledValue);\n\n  return percent ? `${formatted}%` : formatted;\n};\n\nexport const zFormatNumExcel = (\n  cell: ExcelJS.Cell | undefined,\n  value: unknown,\n  options: ZFormatNumExcelOptions = {}\n): number | undefined => {\n  const { divide = 'none', format = '1.0-1', percent = false, emptyCheck = 'strict' } = options;\n  if (value === null || value === undefined || value === '') {\n    return undefined;\n  }\n\n  const numValue = Number(value);\n\n  if (Number.isNaN(numValue)) {\n    return undefined;\n  }\n\n  if (emptyCheck === 'includeZero' && numValue === 0) {\n    return undefined;\n  }\n\n  const scaledValue = numValue / Z_DIVIDE_SCALE[divide];\n  let numFmt = Z_EXCEL_NUMBER_FORMAT_MAP[format] || '#,##0.0';\n\n  if (percent) {\n    numFmt = numFmt + '\"%\"';\n  }\n\n  if (cell) {\n    cell.value = '\\u200B' + scaledValue;\n    cell.numFmt = numFmt;\n  }\n\n  return scaledValue;\n};\n\nexport const zCapitalCase = (text: string, type: ZCapitalizeType = 'first'): string => {\n  if (!text) {\n    return '';\n  }\n\n  switch (type) {\n    case 'all':\n      return text.toUpperCase();\n\n    case 'sentence':\n      return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();\n\n    case 'first':\n    default:\n      return text\n        .toLowerCase()\n        .split(' ')\n        .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n        .join(' ');\n  }\n};\n\nexport const zDecodeUnicode = (str: string): string => {\n  if (!str) {\n    return '';\n  }\n\n  str = str.replace(/\\\\\\\\u/g, '\\\\u');\n  str = str.replace(/\\\\u([\\dA-Fa-f]{4})/g, (_, g1) => String.fromCharCode(parseInt(g1, 16)));\n  str = str.replace(/(^|[^\\\\])u([\\dA-Fa-f]{4})/g, (_, p1, g1) => p1 + String.fromCharCode(parseInt(g1, 16)));\n\n  return str.replace(/([\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])/g, (_, high, low) => {\n    const hi = high.charCodeAt(0);\n    const lo = low.charCodeAt(0);\n    const codePoint = (hi - 0xd800) * 0x400 + (lo - 0xdc00) + 0x10000;\n    return String.fromCodePoint(codePoint);\n  });\n};\n\nexport const zRandomColor = (): { hex: string; rgb: string; hsl: string } => {\n  const h = Math.floor(Math.random() * 360);\n  const s = Math.floor(Math.random() * 40) + 60;\n  const l = Math.floor(Math.random() * 20) + 60;\n  const hsl = `hsl(${h}, ${s}%, ${l}%)`;\n\n  const a = s / 100;\n  const b = l / 100;\n  const c = (1 - Math.abs(2 * b - 1)) * a;\n  const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n  const m = b - c / 2;\n\n  const hueSegment = Math.floor(h / 60) % 6;\n  const rgbMap: [number, number, number][] = [\n    [c, x, 0],\n    [x, c, 0],\n    [0, c, x],\n    [0, x, c],\n    [x, 0, c],\n    [c, 0, x],\n  ];\n  const [r, g, bl] = rgbMap[hueSegment];\n\n  const R = Math.round((r + m) * 255);\n  const G = Math.round((g + m) * 255);\n  const B = Math.round((bl + m) * 255);\n\n  const rgb = `rgb(${R}, ${G}, ${B})`;\n  const toHex = (n: number) => n.toString(16).padStart(2, '0');\n  const hex = `#${toHex(R)}${toHex(G)}${toHex(B)}`;\n\n  return { hex, rgb, hsl };\n};\n\nexport const zConvertColorToArgb = (color: string): string => {\n  if (color.startsWith('#')) {\n    return 'FF' + color.substring(1).toUpperCase();\n  }\n\n  if (color.startsWith('rgb')) {\n    const matches = color.match(/\\d+/g);\n    if (matches && matches.length >= 3) {\n      const r = parseInt(matches[0]).toString(16).padStart(2, '0');\n      const g = parseInt(matches[1]).toString(16).padStart(2, '0');\n      const b = parseInt(matches[2]).toString(16).padStart(2, '0');\n      return `FF${r}${g}${b}`.toUpperCase();\n    }\n  }\n\n  return 'FF000000';\n};\n\nexport const zCleanObject = <T = unknown>(obj: T): T => {\n  if (obj !== Object(obj)) {\n    return obj;\n  }\n\n  return Object.entries(obj as Record<string, unknown>).reduce(\n    (acc, [key, value]) => {\n      if (value === null || value === undefined) {\n        return acc;\n      }\n\n      const cleaned = zCleanObject(value);\n      if (\n        cleaned !== null &&\n        cleaned !== undefined &&\n        (typeof cleaned !== 'object' || Object.keys(cleaned).length > 0)\n      ) {\n        (acc as Record<string, unknown>)[key] = cleaned;\n      }\n\n      return acc;\n    },\n    {} as Record<string, unknown>\n  ) as T;\n};\n\nexport const zTreeFlatten = <T extends Record<string, unknown>>(\n  list: T[],\n  keyMap: keyof T,\n  parentKeyMap: keyof T,\n  sortFn?: (a: T, b: T) => number\n): (T & { level: number; parentsKey: string[] })[] => {\n  const sortedList = sortFn ? [...list].sort(sortFn) : list;\n  const byParent: Record<string, T[]> = {};\n\n  for (const item of sortedList) {\n    const parentKey = (item[parentKeyMap] as string) ?? 'root';\n    if (!byParent[parentKey]) {\n      byParent[parentKey] = [];\n    }\n    byParent[parentKey].push(item);\n  }\n\n  const flatten = (\n    parentKey: string | null,\n    level: number,\n    parentsKey: string[]\n  ): (T & { level: number; parentsKey: string[] })[] => {\n    const children = byParent[parentKey ?? 'root'] || [];\n    return children.flatMap(child => {\n      const keyVal = String(child[keyMap]);\n      const newParents = [...parentsKey, keyVal];\n      return [{ ...child, level, parentsKey }, ...flatten(keyVal, level + 1, newParents)];\n    });\n  };\n\n  return flatten(null, 0, []);\n};\n\nexport const zTreeBuild = <T extends Record<string, unknown>>(\n  list: T[],\n  keyMap: keyof T,\n  parentKeyMap: keyof T,\n  sortFn?: (a: T, b: T) => number\n): (T & { level: number; parentsKey: string[]; children: unknown[] })[] => {\n  const sortedList = sortFn ? [...list].sort(sortFn) : list;\n  const byParent: Record<string, T[]> = {};\n\n  for (const item of sortedList) {\n    const parentKey = (item[parentKeyMap] as string) ?? 'root';\n    if (!byParent[parentKey]) {\n      byParent[parentKey] = [];\n    }\n    byParent[parentKey].push(item);\n  }\n\n  const buildTree = (\n    parentKey: string | null,\n    level: number,\n    parentsKey: string[]\n  ): (T & { level: number; parentsKey: string[]; children: unknown[] })[] => {\n    const children = byParent[parentKey ?? 'root'] || [];\n    return children.map(child => {\n      const keyVal = String(child[keyMap]);\n      const newParents = [...parentsKey, keyVal];\n      return {\n        ...child,\n        level,\n        parentsKey,\n        children: buildTree(keyVal, level + 1, newParents),\n      };\n    });\n  };\n\n  return buildTree(null, 0, []);\n};\n\nexport const VIETNAMESE_MAP: Record<string, string> = {\n  à: 'a',\n  á: 'a',\n  ạ: 'a',\n  ả: 'a',\n  ã: 'a',\n  â: 'a',\n  ầ: 'a',\n  ấ: 'a',\n  ậ: 'a',\n  ẩ: 'a',\n  ẫ: 'a',\n  ă: 'a',\n  ằ: 'a',\n  ắ: 'a',\n  ặ: 'a',\n  ẳ: 'a',\n  ẵ: 'a',\n  è: 'e',\n  é: 'e',\n  ẹ: 'e',\n  ẻ: 'e',\n  ẽ: 'e',\n  ê: 'e',\n  ề: 'e',\n  ế: 'e',\n  ệ: 'e',\n  ể: 'e',\n  ễ: 'e',\n  ì: 'i',\n  í: 'i',\n  ị: 'i',\n  ỉ: 'i',\n  ĩ: 'i',\n  ò: 'o',\n  ó: 'o',\n  ọ: 'o',\n  ỏ: 'o',\n  õ: 'o',\n  ô: 'o',\n  ồ: 'o',\n  ố: 'o',\n  ộ: 'o',\n  ổ: 'o',\n  ỗ: 'o',\n  ơ: 'o',\n  ờ: 'o',\n  ớ: 'o',\n  ợ: 'o',\n  ở: 'o',\n  ỡ: 'o',\n  ù: 'u',\n  ú: 'u',\n  ụ: 'u',\n  ủ: 'u',\n  ũ: 'u',\n  ư: 'u',\n  ừ: 'u',\n  ứ: 'u',\n  ự: 'u',\n  ử: 'u',\n  ữ: 'u',\n  ỳ: 'y',\n  ý: 'y',\n  ỵ: 'y',\n  ỷ: 'y',\n  ỹ: 'y',\n  đ: 'd',\n  À: 'A',\n  Á: 'A',\n  Ạ: 'A',\n  Ả: 'A',\n  Ã: 'A',\n  Â: 'A',\n  Ầ: 'A',\n  Ấ: 'A',\n  Ậ: 'A',\n  Ẩ: 'A',\n  Ẫ: 'A',\n  Ă: 'A',\n  Ằ: 'A',\n  Ắ: 'A',\n  Ặ: 'A',\n  Ẳ: 'A',\n  Ẵ: 'A',\n  È: 'E',\n  É: 'E',\n  Ẹ: 'E',\n  Ẻ: 'E',\n  Ẽ: 'E',\n  Ê: 'E',\n  Ề: 'E',\n  Ế: 'E',\n  Ệ: 'E',\n  Ể: 'E',\n  Ễ: 'E',\n  Ì: 'I',\n  Í: 'I',\n  Ị: 'I',\n  Ỉ: 'I',\n  Ĩ: 'I',\n  Ò: 'O',\n  Ó: 'O',\n  Ọ: 'O',\n  Ỏ: 'O',\n  Õ: 'O',\n  Ô: 'O',\n  Ồ: 'O',\n  Ố: 'O',\n  Ộ: 'O',\n  Ổ: 'O',\n  Ỗ: 'O',\n  Ơ: 'O',\n  Ờ: 'O',\n  Ớ: 'O',\n  Ợ: 'O',\n  Ở: 'O',\n  Ỡ: 'O',\n  Ù: 'U',\n  Ú: 'U',\n  Ụ: 'U',\n  Ủ: 'U',\n  Ũ: 'U',\n  Ư: 'U',\n  Ừ: 'U',\n  Ứ: 'U',\n  Ự: 'U',\n  Ử: 'U',\n  Ữ: 'U',\n  Ỳ: 'Y',\n  Ý: 'Y',\n  Ỵ: 'Y',\n  Ỷ: 'Y',\n  Ỹ: 'Y',\n  Đ: 'D',\n};\n\nexport const zRemoveVietnamese = (str: string): string =>\n  str\n    .split('')\n    .map(char => VIETNAMESE_MAP[char] || char)\n    .join('');\n\nconst getDeepValue = (obj: unknown, path: string): string => {\n  try {\n    const value = path.split('.').reduce((acc: unknown, key: string) => {\n      if (acc && typeof acc === 'object' && key in acc) {\n        return (acc as Record<string, unknown>)[key];\n      }\n      return '';\n    }, obj);\n\n    if (Array.isArray(value)) {\n      return value.map(v => String(v)).join(' ');\n    }\n\n    return value as string;\n  } catch {\n    return '';\n  }\n};\n\nexport const zMiniSearch = <T>(\n  data: T[],\n  query: string,\n  fields: (keyof T | string)[],\n  idField?: keyof T | string\n): T[] => {\n  if (!query) {\n    return data;\n  }\n\n  const fieldStrings = fields.map(f => String(f));\n  const idFieldString = idField ? String(idField) : '_index';\n  const useCustomId = !!idField;\n\n  const flatData = data.map((item, index) => ({\n    ...item,\n    ...(!useCustomId && { _index: index }),\n    ...Object.fromEntries(fieldStrings.map(field => [field, getDeepValue(item, field)])),\n  }));\n\n  const search = new MiniSearch({\n    idField: idFieldString,\n    fields: fieldStrings,\n    storeFields: [idFieldString],\n    tokenize: (text: string) =>\n      zRemoveVietnamese(text.toLowerCase())\n        .split(/[\\s@.\\-_]+/)\n        .filter(Boolean),\n    processTerm: (term: string) => zRemoveVietnamese(term.toLowerCase()),\n  });\n\n  search.addAll(flatData);\n  const results = search.search(query, { prefix: true });\n\n  if (useCustomId) {\n    const resultIds = new Set(results.map(result => result.id));\n    return data.filter(item => resultIds.has((item as Record<string, unknown>)[idFieldString]));\n  }\n\n  return results.map(result => data[(result as unknown as { _index: number })._index]);\n};\n\nexport const zMiniSearch$ = <T>(\n  data: T[],\n  query: string,\n  fields: (keyof T | string)[],\n  options?: {\n    idField?: keyof T | string;\n    loading?: WritableSignal<boolean>;\n    fakeDelay?: number;\n  }\n): Observable<T[]> => {\n  const { idField, loading, fakeDelay = 200 } = options ?? {};\n\n  if (loading && isSignal(loading)) {\n    loading.set(true);\n  }\n\n  return of(zMiniSearch(data, query, fields, idField)).pipe(\n    delay(fakeDelay),\n    finalize(() => {\n      if (loading && isSignal(loading)) {\n        loading.set(false);\n      }\n    })\n  );\n};\n\nconst _detectDevice = (ua: string): ZDeviceType => {\n  if (/Mobi|Android.*Mobile|iPhone|iPod|BlackBerry|IEMobile/i.test(ua)) {\n    return 'mobile';\n  }\n  if (/iPad|Android(?!.*Mobile)|Tablet/i.test(ua)) {\n    return 'tablet';\n  }\n  return 'desktop';\n};\n\nexport const zDetectBrowser = (): ZBrowserInfo => {\n  const ua = navigator.userAgent;\n  const result: ZBrowserInfo = {\n    name: 'Unknown',\n    version: '',\n    agent: ua,\n    device: _detectDevice(ua),\n    time: new Date().toISOString(),\n  };\n\n  if (!navigator.userAgentData) {\n    return result;\n  }\n\n  const brands = navigator.userAgentData.brands || [];\n  const isMobile = navigator.userAgentData.mobile;\n\n  if (isMobile) {\n    result.device = 'mobile';\n  }\n\n  const mainBrand = brands.find(\n    (b: ZNavigatorUABrandVersion) => !['Chromium', 'Not_A Brand', 'Not A;Brand', 'Not/A)Brand'].includes(b.brand)\n  );\n\n  if (mainBrand) {\n    result.name = mainBrand.brand.replace('Google ', '');\n    result.version = mainBrand.version;\n    return result;\n  }\n\n  const chromium = brands.find((b: ZNavigatorUABrandVersion) => b.brand === 'Chromium');\n  if (chromium) {\n    result.name = 'Chrome';\n    result.version = chromium.version;\n  }\n\n  return result;\n};\n\nexport const zIsMobileViewport = (maxWidth = 767): boolean => {\n  if (typeof window === 'undefined' || typeof navigator === 'undefined') {\n    return false;\n  }\n\n  const uaData = navigator.userAgentData;\n  if (uaData?.mobile) {\n    return true;\n  }\n\n  const ua = navigator.userAgent;\n  if (_detectDevice(ua) === 'mobile') {\n    return true;\n  }\n\n  return window.innerWidth <= maxWidth;\n};\n","import { from, isObservable, type Observable, of } from 'rxjs';\nimport type { ZAsyncOptionsConfig, ZAsyncOptionsLoadResult, ZAsyncOptionsResult } from './types/z-async-options.types';\n\n/** Số option mặc định mỗi lần component tự gọi load. */\nexport const Z_ASYNC_OPTIONS_DEFAULT_PAGE_SIZE = 20;\n\n/** Chuẩn hóa kết quả sync/Promise/Observable về Observable để component xử lý thống nhất. */\nexport function zToAsyncOptionsObservable<TOption>(\n  result: ZAsyncOptionsLoadResult<TOption>\n): Observable<ZAsyncOptionsResult<TOption>> {\n  if (isObservable(result)) {\n    return result;\n  }\n\n  if (zIsPromiseLike(result)) {\n    return from(result);\n  }\n\n  return of(result);\n}\n\n/** Gộp option mới vào danh sách cũ và loại bỏ phần tử trùng theo dedupeBy/default key. */\nexport function zMergeAsyncOptions<TOption>(\n  current: TOption[],\n  next: TOption[],\n  dedupeBy?: ZAsyncOptionsConfig<TOption>['dedupeBy']\n): TOption[] {\n  const merged = new Map<unknown, TOption>();\n\n  for (const option of [...current, ...next]) {\n    const key = zGetAsyncOptionKey(option, dedupeBy);\n    if (!merged.has(key)) {\n      merged.set(key, option);\n    }\n  }\n\n  return Array.from(merged.values());\n}\n\n/** Lấy option đang chọn từ config, hỗ trợ truyền mảng tĩnh hoặc signal/computed. */\nexport function zResolveAsyncSelectedOptions<TOption>(config: ZAsyncOptionsConfig<TOption> | undefined): TOption[] {\n  const selectedOptions = config?.selectedOptions;\n  if (!selectedOptions) {\n    return [];\n  }\n\n  if (Array.isArray(selectedOptions)) {\n    return selectedOptions;\n  }\n\n  return selectedOptions();\n}\n\n/** Tính còn dữ liệu để load-more dựa trên hasMore, total hoặc độ dài page vừa trả về. */\nexport function zResolveAsyncOptionsHasMore<TOption>(\n  result: ZAsyncOptionsResult<TOption>,\n  pageSize: number,\n  loadedCount: number\n): boolean {\n  if (result.items.length === 0) {\n    return false;\n  }\n\n  if (typeof result.hasMore === 'boolean') {\n    return result.hasMore;\n  }\n\n  if (typeof result.total === 'number') {\n    return loadedCount < result.total;\n  }\n\n  return result.items.length >= pageSize;\n}\n\n/** Lấy khóa ổn định cho option, hỗ trợ value là object và vẫn cho phép truyền dedupeBy riêng. */\nexport function zGetAsyncOptionKey<TOption>(\n  option: TOption,\n  dedupeBy?: ZAsyncOptionsConfig<TOption>['dedupeBy']\n): unknown {\n  const customKey = dedupeBy?.(option);\n  if (customKey !== undefined && customKey !== null) {\n    return customKey;\n  }\n\n  const record = option as Record<string, unknown>;\n  // eslint-disable-next-line prefer-destructuring\n  const value = record['value'];\n  if (!zIsRecord(value)) {\n    return value ?? record['label'] ?? option;\n  }\n\n  for (const key of ['id', 'code', 'key', 'value']) {\n    if (key in value) {\n      return value[key];\n    }\n  }\n\n  try {\n    return JSON.stringify(value);\n  } catch {\n    return record['label'] ?? value;\n  }\n}\n\nfunction zIsPromiseLike<T>(value: unknown): value is Promise<T> {\n  return zIsRecord(value) && typeof value['then'] === 'function';\n}\n\nfunction zIsRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === 'object' && value !== null;\n}\n","import * as echarts from 'echarts';\nimport type { ZEchartsThemeOptions } from './types/z-echarts.types';\n\nconst Z_ECHARTS_DEFAULT_FONT = `'Lexend', 'Arial', 'Helvetica', 'sans-serif'`;\n\n/**\n * Register custom Z-UI theme for ECharts\n * @param options - Theme configuration options\n */\nexport function zRegisterEchartsTheme(options: ZEchartsThemeOptions = {}): void {\n  const { themeName = 'zTheme', fontFamily = Z_ECHARTS_DEFAULT_FONT } = options;\n\n  echarts.registerTheme(themeName, {\n    textStyle: {\n      fontFamily,\n      color: '#333',\n    },\n    title: {\n      textStyle: {\n        fontFamily,\n        fontWeight: '450',\n      },\n    },\n    legend: {\n      textStyle: {\n        fontFamily,\n        fontSize: 13,\n        color: '#333',\n      },\n    },\n    tooltip: {\n      textStyle: {\n        fontFamily,\n        color: '#333',\n        fontSize: 13,\n      },\n    },\n    axisPointer: {\n      lineStyle: { color: '#999' },\n      crossStyle: { color: '#999' },\n    },\n    categoryAxis: {\n      axisLine: { lineStyle: { color: '#ccc' } },\n      axisTick: { lineStyle: { color: '#ccc' } },\n      axisLabel: {\n        fontFamily,\n        color: '#444',\n        fontSize: 12,\n      },\n      splitLine: { show: false },\n    },\n    valueAxis: {\n      axisLine: { lineStyle: { color: '#ccc' } },\n      axisTick: { lineStyle: { color: '#ccc' } },\n      axisLabel: {\n        fontFamily,\n        color: '#444',\n        fontSize: 12,\n      },\n      splitLine: { lineStyle: { color: '#eee' } },\n    },\n  });\n}\n","import { FormArray, FormGroup } from '@angular/forms';\n\n/**\n * Submit form and mark invalid controls as dirty (supports nested FormArray/FormGroup)\n * @param form - FormGroup or FormArray to submit\n * @returns true if form is valid, false otherwise\n */\nexport const zValidForm = (form: FormGroup | FormArray): boolean => {\n  if (form.invalid) {\n    markFormAsInvalid(form);\n    return false;\n  }\n\n  return true;\n};\n\n/**\n * Recursively mark invalid controls as dirty (handles nested FormArray/FormGroup)\n */\nconst markFormAsInvalid = (form: FormGroup | FormArray): void => {\n  Object.values(form.controls).forEach(control => {\n    if (control instanceof FormArray) {\n      markFormAsInvalid(control);\n      return;\n    }\n\n    if (control instanceof FormGroup) {\n      markFormAsInvalid(control);\n      return;\n    }\n\n    if (control?.invalid) {\n      control.markAsDirty();\n      control.updateValueAndValidity({ onlySelf: true });\n    }\n  });\n};\n\n/**\n * Debug invalid form controls by logging to console\n * @param form - FormGroup to debug\n * @param parentKey - Parent key for nested controls\n */\nexport const zDebugFormInvalid = (form: FormGroup, parentKey = ''): void => {\n  Object.keys(form.controls).forEach(key => {\n    const control = form.get(key);\n    const controlPath = parentKey ? `${parentKey}.${key}` : key;\n\n    if (control instanceof FormGroup) {\n      zDebugFormInvalid(control, controlPath);\n      return;\n    }\n\n    if (control instanceof FormArray) {\n      control.controls.forEach((ctrl, index) => {\n        const arrayPath = `${controlPath}[${index}]`;\n\n        if (ctrl instanceof FormGroup) {\n          zDebugFormInvalid(ctrl, arrayPath);\n          return;\n        }\n\n        if (ctrl?.invalid) {\n          console.log(`❌ Field: ${arrayPath}`, ctrl.errors);\n        }\n      });\n      return;\n    }\n\n    if (control?.invalid) {\n      console.log(`❌ Field: ${controlPath}`, control.errors);\n    }\n  });\n};\n","import type { ZEmojiCategory } from './types/z-emoji-sheet.type';\n\nexport const Z_EMOJI_SHEET: readonly ZEmojiCategory[] = [\n  {\n    id: 'smileys-people',\n    labelKey: 'i18n_z_ui_emoji_category_smileys',\n    icon: 'lucideSmile',\n    emojis: [\n      '😀',\n      '😁',\n      '😂',\n      '🤣',\n      '😃',\n      '😄',\n      '😅',\n      '😆',\n      '😉',\n      '😊',\n      '😋',\n      '😎',\n      '😍',\n      '😘',\n      '😗',\n      '😙',\n      '😚',\n      '🙂',\n      '🤗',\n      '🤩',\n      '🤔',\n      '😐',\n      '😑',\n      '😶',\n      '🙄',\n      '😏',\n      '😣',\n      '😥',\n      '😮',\n      '😴',\n      '😷',\n      '🤒',\n      '🤕',\n      '😵',\n      '😡',\n      '😤',\n      '😭',\n      '😱',\n      '👋',\n      '🤚',\n      '✋',\n      '👌',\n      '👍',\n      '👎',\n      '✌️',\n      '🤞',\n      '🤟',\n      '🙏',\n      '👏',\n      '💪',\n      '🤝',\n      '🙌',\n    ],\n  },\n  {\n    id: 'animals-nature',\n    labelKey: 'i18n_z_ui_emoji_category_animals',\n    icon: 'lucidePawPrint',\n    emojis: [\n      '🐶',\n      '🐱',\n      '🐭',\n      '🐹',\n      '🐰',\n      '🦊',\n      '🐻',\n      '🐼',\n      '🐨',\n      '🐯',\n      '🦁',\n      '🐮',\n      '🐷',\n      '🐸',\n      '🐵',\n      '🐔',\n      '🐧',\n      '🐦',\n      '🐤',\n      '🐣',\n      '🦆',\n      '🦅',\n      '🐺',\n      '🐗',\n      '🐴',\n      '🐝',\n      '🐛',\n      '🦋',\n      '🐌',\n      '🐞',\n      '🐜',\n      '🐢',\n      '🐍',\n      '🐙',\n      '🐠',\n      '🐟',\n      '🐬',\n      '🐳',\n      '🐋',\n      '🌸',\n      '🌹',\n      '🌻',\n      '🍀',\n      '🌴',\n      '🌵',\n      '🌊',\n      '🌈',\n      '⚡',\n      '🌙',\n      '⭐',\n      '☀️',\n      '⛄',\n    ],\n  },\n  {\n    id: 'food-drink',\n    labelKey: 'i18n_z_ui_emoji_category_food',\n    icon: 'lucideApple',\n    emojis: [\n      '🍎',\n      '🍐',\n      '🍊',\n      '🍋',\n      '🍌',\n      '🍉',\n      '🍇',\n      '🍓',\n      '🍒',\n      '🍑',\n      '🍍',\n      '🥭',\n      '🍅',\n      '🥑',\n      '🥦',\n      '🥕',\n      '🌽',\n      '🥔',\n      '🍞',\n      '🥐',\n      '🥨',\n      '🧀',\n      '🥚',\n      '🍳',\n      '🥞',\n      '🥓',\n      '🍔',\n      '🍟',\n      '🍕',\n      '🌮',\n      '🌯',\n      '🍜',\n      '🍝',\n      '🍣',\n      '🍤',\n      '🍱',\n      '🍚',\n      '🍰',\n      '🧁',\n      '🍩',\n      '🍪',\n      '🍫',\n      '🍿',\n      '🍺',\n      '🍷',\n      '🍸',\n      '🍹',\n      '☕',\n      '🍵',\n      '🧋',\n    ],\n  },\n  {\n    id: 'activities',\n    labelKey: 'i18n_z_ui_emoji_category_activities',\n    icon: 'lucidePartyPopper',\n    emojis: [\n      '⚽',\n      '🏀',\n      '🏈',\n      '⚾',\n      '🎾',\n      '🏐',\n      '🏉',\n      '🎱',\n      '🏓',\n      '🏸',\n      '🥊',\n      '🥋',\n      '🏆',\n      '🎯',\n      '🪀',\n      '🎮',\n      '🎲',\n      '🎼',\n      '🎹',\n      '🎸',\n      '🎷',\n      '🥁',\n      '🎤',\n      '🎧',\n      '🎨',\n      '🎬',\n      '🎭',\n      '🎪',\n      '🎟️',\n      '🎫',\n      '🏅',\n      '🥇',\n      '🥈',\n      '🥉',\n      '🚴',\n      '🏄',\n      '⛷️',\n      '🧗',\n    ],\n  },\n  {\n    id: 'travel-places',\n    labelKey: 'i18n_z_ui_emoji_category_travel',\n    icon: 'lucideCar',\n    emojis: [\n      '🚗',\n      '🚕',\n      '🚙',\n      '🚌',\n      '🚎',\n      '🚐',\n      '🚑',\n      '🚒',\n      '🚓',\n      '🚚',\n      '🚛',\n      '🚜',\n      '🏍️',\n      '🚲',\n      '✈️',\n      '🚀',\n      '🛸',\n      '🚁',\n      '🛳️',\n      '⛵',\n      '🚤',\n      '🚆',\n      '🚇',\n      '🚉',\n      '🗺️',\n      '🌍',\n      '🌎',\n      '🌏',\n      '🏖️',\n      '🏕️',\n      '🏞️',\n      '🏟️',\n      '🏛️',\n      '🏰',\n      '🏯',\n      '🗽',\n      '🗼',\n      '🏙️',\n      '🌅',\n      '🌄',\n      '⛺',\n    ],\n  },\n  {\n    id: 'objects',\n    labelKey: 'i18n_z_ui_emoji_category_objects',\n    icon: 'lucideLightbulb',\n    emojis: [\n      '💡',\n      '🔦',\n      '🧰',\n      '🔧',\n      '🔨',\n      '🪛',\n      '⌛',\n      '⏰',\n      '📱',\n      '💻',\n      '🖥️',\n      '🖨️',\n      '🎥',\n      '📷',\n      '📸',\n      '📺',\n      '📻',\n      '🎙️',\n      '📦',\n      '📌',\n      '📎',\n      '✂️',\n      '🧷',\n      '🔑',\n      '🔒',\n      '🔓',\n      '🧲',\n      '🧪',\n      '🧫',\n      '🧬',\n      '🔭',\n      '🧯',\n      '🛒',\n      '🧺',\n      '🪑',\n      '🛋️',\n      '🛏️',\n      '💼',\n      '🎒',\n      '👓',\n      '🕶️',\n      '☂️',\n      '🕯️',\n    ],\n  },\n  {\n    id: 'symbols',\n    labelKey: 'i18n_z_ui_emoji_category_symbols',\n    icon: 'lucideHash',\n    emojis: [\n      '❤️',\n      '🧡',\n      '💛',\n      '💚',\n      '💙',\n      '💜',\n      '🖤',\n      '🤍',\n      '🤎',\n      '💔',\n      '❣️',\n      '💯',\n      '✅',\n      '☑️',\n      '✔️',\n      '✖️',\n      '➕',\n      '➖',\n      '➗',\n      '⭐',\n      '🌟',\n      '✨',\n      '🔥',\n      '💥',\n      '⚡',\n      '☮️',\n      '☢️',\n      '☣️',\n      '♻️',\n      '⚠️',\n      '❗',\n      '❓',\n      '‼️',\n      '⁉️',\n      '♾️',\n      '🔞',\n      '🔔',\n      '🔕',\n      '📣',\n      '🔊',\n      '🔈',\n    ],\n  },\n  {\n    id: 'flags',\n    labelKey: 'i18n_z_ui_emoji_category_flags',\n    icon: 'lucideFlag',\n    emojis: [\n      '🇻🇳',\n      '🇺🇸',\n      '🇬🇧',\n      '🇫🇷',\n      '🇩🇪',\n      '🇯🇵',\n      '🇰🇷',\n      '🇨🇳',\n      '🇨🇦',\n      '🇦🇺',\n      '🇮🇹',\n      '🇪🇸',\n      '🇷🇺',\n      '🇧🇷',\n      '🇮🇳',\n      '🇲🇽',\n      '🇸🇬',\n      '🇹🇭',\n      '🇵🇭',\n      '🇮🇩',\n      '🇲🇾',\n      '🇳🇱',\n      '🇸🇪',\n      '🇳🇴',\n      '🇩🇰',\n      '🇫🇮',\n    ],\n  },\n];\n","export const Z_EMOJI_KEYWORDS: ReadonlyMap<string, readonly string[]> = new Map([\n  // Smileys & People\n  ['😀', ['grinning', 'face', 'happy', 'smile']],\n  ['😁', ['grin', 'face', 'happy', 'smile', 'teeth']],\n  ['😂', ['joy', 'tears', 'laugh', 'cry', 'happy', 'funny']],\n  ['🤣', ['rofl', 'rolling', 'laugh', 'funny', 'floor']],\n  ['😃', ['smiley', 'happy', 'face', 'smile']],\n  ['😄', ['smile', 'happy', 'face', 'eyes']],\n  ['😅', ['sweat', 'smile', 'nervous', 'relief']],\n  ['😆', ['hehe', 'laugh', 'happy', 'smile']],\n  ['😉', ['wink', 'face', 'flirt']],\n  ['😊', ['blush', 'happy', 'shy', 'smile', 'face']],\n  ['😋', ['yum', 'tongue', 'delicious', 'food', 'taste']],\n  ['😎', ['cool', 'sunglasses', 'face']],\n  ['😍', ['heart', 'eyes', 'love', 'crush']],\n  ['😘', ['kiss', 'heart', 'love', 'face']],\n  ['😗', ['kiss', 'face']],\n  ['😙', ['kiss', 'smile', 'face']],\n  ['😚', ['kiss', 'closed', 'eyes', 'face']],\n  ['🙂', ['slightly', 'smile', 'face']],\n  ['🤗', ['hug', 'hugs', 'face', 'open', 'hands']],\n  ['🤩', ['star', 'struck', 'wow', 'excited', 'face']],\n  ['🤔', ['thinking', 'hmm', 'face', 'think']],\n  ['😐', ['neutral', 'face', 'meh']],\n  ['😑', ['expressionless', 'face', 'blank']],\n  ['😶', ['no', 'mouth', 'silent', 'face', 'mute']],\n  ['🙄', ['eye', 'roll', 'face']],\n  ['😏', ['smirk', 'face', 'suggestive']],\n  ['😣', ['persevere', 'face', 'struggle']],\n  ['😥', ['sad', 'relief', 'face', 'sweat']],\n  ['😮', ['open', 'mouth', 'surprised', 'face', 'wow']],\n  ['😴', ['sleep', 'zzz', 'face', 'tired']],\n  ['😷', ['mask', 'sick', 'ill', 'face', 'cold']],\n  ['🤒', ['thermometer', 'sick', 'ill', 'face', 'fever']],\n  ['🤕', ['bandage', 'hurt', 'face', 'injured']],\n  ['😵', ['dizzy', 'face', 'confused']],\n  ['😡', ['angry', 'mad', 'face', 'pout']],\n  ['😤', ['triumph', 'angry', 'face', 'steam', 'nose']],\n  ['😭', ['sob', 'cry', 'sad', 'face', 'tears', 'weep']],\n  ['😱', ['scream', 'fear', 'face', 'shock', 'horror']],\n  ['👋', ['wave', 'hello', 'hi', 'bye', 'hand']],\n  ['🤚', ['raised', 'back', 'hand']],\n  ['✋', ['hand', 'stop', 'high', 'five']],\n  ['👌', ['ok', 'hand', 'perfect', 'good']],\n  ['👍', ['thumbs', 'up', 'like', 'good', 'yes', 'hand']],\n  ['👎', ['thumbs', 'down', 'no', 'bad', 'hand']],\n  ['✌️', ['peace', 'victory', 'hand', 'two']],\n  ['🤞', ['crossed', 'fingers', 'luck', 'hope', 'hand']],\n  ['🤟', ['love', 'you', 'rock', 'hand', 'sign']],\n  ['🙏', ['pray', 'please', 'thank', 'hands', 'fold']],\n  ['👏', ['clap', 'bravo', 'applause', 'hand']],\n  ['💪', ['muscle', 'strong', 'bicep', 'flex', 'arm']],\n  ['🤝', ['handshake', 'deal', 'agree', 'meet', 'hands']],\n  ['🙌', ['raised', 'hands', 'hooray', 'celebrate', 'party']],\n\n  // Animals & Nature\n  ['🐶', ['dog', 'puppy', 'pet', 'face']],\n  ['🐱', ['cat', 'kitten', 'pet', 'face']],\n  ['🐭', ['mouse', 'face']],\n  ['🐹', ['hamster', 'face', 'pet']],\n  ['🐰', ['rabbit', 'bunny', 'face']],\n  ['🦊', ['fox', 'face']],\n  ['🐻', ['bear', 'face']],\n  ['🐼', ['panda', 'face']],\n  ['🐨', ['koala', 'face']],\n  ['🐯', ['tiger', 'face']],\n  ['🦁', ['lion', 'face']],\n  ['🐮', ['cow', 'face']],\n  ['🐷', ['pig', 'face']],\n  ['🐸', ['frog', 'face']],\n  ['🐵', ['monkey', 'face']],\n  ['🐔', ['chicken', 'hen', 'bird']],\n  ['🐧', ['penguin', 'bird', 'face']],\n  ['🐦', ['bird', 'tweet', 'face']],\n  ['🐤', ['baby', 'chick', 'bird', 'face']],\n  ['🐣', ['hatching', 'chick', 'bird', 'face']],\n  ['🦆', ['duck', 'bird']],\n  ['🦅', ['eagle', 'bird']],\n  ['🐺', ['wolf', 'face']],\n  ['🐗', ['boar', 'pig']],\n  ['🐴', ['horse', 'face']],\n  ['🐝', ['bee', 'honey', 'insect', 'buzz']],\n  ['🐛', ['bug', 'insect', 'caterpillar']],\n  ['🦋', ['butterfly', 'insect']],\n  ['🐌', ['snail', 'slow']],\n  ['🐞', ['ladybug', 'beetle', 'insect', 'bug']],\n  ['🐜', ['ant', 'insect']],\n  ['🐢', ['turtle', 'slow', 'tortoise']],\n  ['🐍', ['snake', 'python', 'viper']],\n  ['🐙', ['octopus', 'sea']],\n  ['🐠', ['tropical', 'fish', 'sea']],\n  ['🐟', ['fish', 'sea']],\n  ['🐬', ['dolphin', 'sea', 'flipper']],\n  ['🐳', ['whale', 'sea', 'spout']],\n  ['🐋', ['whale', 'sea']],\n  ['🌸', ['cherry', 'blossom', 'flower', 'spring']],\n  ['🌹', ['rose', 'flower', 'love']],\n  ['🌻', ['sunflower', 'flower']],\n  ['🍀', ['four', 'leaf', 'clover', 'luck', 'lucky']],\n  ['🌴', ['palm', 'tree', 'tropical']],\n  ['🌵', ['cactus', 'desert', 'plant']],\n  ['🌊', ['wave', 'sea', 'ocean', 'water']],\n  ['🌈', ['rainbow', 'colors', 'pride']],\n  ['⚡', ['lightning', 'thunder', 'bolt', 'electric', 'zap']],\n  ['🌙', ['moon', 'crescent', 'night', 'sleep']],\n  ['⭐', ['star', 'favorite']],\n  ['☀️', ['sun', 'sunny', 'bright', 'weather', 'hot']],\n  ['⛄', ['snowman', 'winter', 'cold', 'christmas']],\n\n  // Food & Drink\n  ['🍎', ['apple', 'fruit', 'red']],\n  ['🍐', ['pear', 'fruit']],\n  ['🍊', ['orange', 'fruit', 'tangerine', 'citrus']],\n  ['🍋', ['lemon', 'fruit', 'citrus', 'sour']],\n  ['🍌', ['banana', 'fruit']],\n  ['🍉', ['watermelon', 'fruit', 'summer']],\n  ['🍇', ['grapes', 'fruit', 'wine']],\n  ['🍓', ['strawberry', 'fruit', 'berry']],\n  ['🍒', ['cherry', 'fruit', 'red']],\n  ['🍑', ['peach', 'fruit']],\n  ['🍍', ['pineapple', 'fruit', 'tropical']],\n  ['🥭', ['mango', 'fruit', 'tropical']],\n  ['🍅', ['tomato', 'fruit', 'vegetable', 'red']],\n  ['🥑', ['avocado', 'fruit', 'green']],\n  ['🥦', ['broccoli', 'vegetable', 'green']],\n  ['🥕', ['carrot', 'vegetable', 'orange']],\n  ['🌽', ['corn', 'vegetable']],\n  ['🥔', ['potato', 'vegetable']],\n  ['🍞', ['bread', 'toast', 'food']],\n  ['🥐', ['croissant', 'bread', 'french', 'food']],\n  ['🥨', ['pretzel', 'bread', 'snack']],\n  ['🧀', ['cheese', 'food', 'yellow']],\n  ['🥚', ['egg', 'food']],\n  ['🍳', ['fried', 'egg', 'breakfast', 'food', 'cook']],\n  ['🥞', ['pancakes', 'breakfast', 'food']],\n  ['🥓', ['bacon', 'breakfast', 'food', 'meat']],\n  ['🍔', ['burger', 'hamburger', 'food', 'fast', 'food']],\n  ['🍟', ['fries', 'french', 'fries', 'food', 'fast', 'food']],\n  ['🍕', ['pizza', 'food', 'italian']],\n  ['🌮', ['taco', 'food', 'mexican']],\n  ['🌯', ['burrito', 'food', 'mexican']],\n  ['🍜', ['ramen', 'noodle', 'soup', 'food']],\n  ['🍝', ['pasta', 'spaghetti', 'food', 'italian']],\n  ['🍣', ['sushi', 'food', 'japanese']],\n  ['🍤', ['fried', 'shrimp', 'food']],\n  ['🍱', ['bento', 'box', 'food', 'japanese']],\n  ['🍚', ['rice', 'food']],\n  ['🍰', ['cake', 'dessert', 'food', 'slice']],\n  ['🧁', ['cupcake', 'dessert', 'food']],\n  ['🍩', ['donut', 'doughnut', 'dessert', 'food']],\n  ['🍪', ['cookie', 'dessert', 'food']],\n  ['🍫', ['chocolate', 'candy', 'food', 'sweet']],\n  ['🍿', ['popcorn', 'snack', 'movie']],\n  ['🍺', ['beer', 'drink', 'alcohol', 'mug']],\n  ['🍷', ['wine', 'drink', 'alcohol', 'glass']],\n  ['🍸', ['cocktail', 'drink', 'alcohol', 'martini']],\n  ['🍹', ['tropical', 'drink', 'cocktail', 'alcohol']],\n  ['☕', ['coffee', 'drink', 'hot', 'mug', 'tea']],\n  ['🍵', ['tea', 'drink', 'green', 'hot']],\n  ['🧋', ['boba', 'bubble', 'tea', 'drink']],\n\n  // Activities\n  ['⚽', ['soccer', 'ball', 'football', 'sport']],\n  ['🏀', ['basketball', 'ball', 'sport']],\n  ['🏈', ['football', 'american', 'ball', 'sport']],\n  ['⚾', ['baseball', 'ball', 'sport']],\n  ['🎾', ['tennis', 'ball', 'sport', 'racket']],\n  ['🏐', ['volleyball', 'ball', 'sport']],\n  ['🏉', ['rugby', 'ball', 'sport']],\n  ['🎱', ['pool', 'billiards', 'ball', 'eight']],\n  ['🏓', ['ping', 'pong', 'table', 'tennis', 'sport']],\n  ['🏸', ['badminton', 'sport', 'shuttlecock']],\n  ['🥊', ['boxing', 'glove', 'sport', 'fight']],\n  ['🥋', ['martial', 'arts', 'karate', 'uniform', 'sport']],\n  ['🏆', ['trophy', 'winner', 'award', 'champion', 'cup']],\n  ['🎯', ['target', 'bullseye', 'dart', 'direct', 'hit']],\n  ['🪀', ['yo-yo', 'toy']],\n  ['🎮', ['video', 'game', 'controller', 'play']],\n  ['🎲', ['die', 'dice', 'game', 'random']],\n  ['🎼', ['musical', 'score', 'music']],\n  ['🎹', ['piano', 'keyboard', 'music', 'instrument']],\n  ['🎸', ['guitar', 'music', 'instrument']],\n  ['🎷', ['saxophone', 'music', 'instrument', 'jazz']],\n  ['🥁', ['drum', 'music', 'instrument', 'drumstick']],\n  ['🎤', ['microphone', 'mic', 'sing', 'karaoke', 'music']],\n  ['🎧', ['headphones', 'music', 'listen', 'earphone']],\n  ['🎨', ['art', 'palette', 'paint', 'colors', 'creative']],\n  ['🎬', ['clapperboard', 'movie', 'film', 'cinema']],\n  ['🎭', ['performing', 'arts', 'theater', 'masks', 'drama']],\n  ['🎪', ['circus', 'tent', 'carnival']],\n  ['🎟️', ['ticket', 'admission', 'entry']],\n  ['🎫', ['ticket', 'admission', 'entry']],\n  ['🏅', ['medal', 'sports', 'award']],\n  ['🥇', ['gold', 'medal', 'first', 'place', 'winner', '1st']],\n  ['🥈', ['silver', 'medal', 'second', 'place', '2nd']],\n  ['🥉', ['bronze', 'medal', 'third', 'place', '3rd']],\n  ['🚴', ['cyclist', 'bicycle', 'bike', 'sport']],\n  ['🏄', ['surfer', 'surfing', 'wave', 'sport']],\n  ['⛷️', ['skier', 'skiing', 'snow', 'sport']],\n  ['🧗', ['climber', 'climbing', 'rock', 'sport']],\n\n  // Travel & Places\n  ['🚗', ['car', 'automobile', 'drive', 'vehicle']],\n  ['🚕', ['taxi', 'cab', 'car', 'vehicle']],\n  ['🚙', ['blue', 'car', 'automobile', 'suv', 'vehicle']],\n  ['🚌', ['bus', 'vehicle', 'public']],\n  ['🚎', ['bus', 'trolley', 'vehicle']],\n  ['🚐', ['minibus', 'van', 'vehicle']],\n  ['🚑', ['ambulance', 'emergency', 'vehicle', 'hospital']],\n  ['🚒', ['fire', 'truck', 'emergency', 'vehicle']],\n  ['🚓', ['police', 'car', 'vehicle', 'cop']],\n  ['🚚', ['truck', 'delivery', 'vehicle']],\n  ['🚛', ['truck', 'lorry', 'vehicle']],\n  ['🚜', ['tractor', 'farm', 'vehicle']],\n  ['🏍️', ['motorcycle', 'motorbike', 'bike', 'vehicle']],\n  ['🚲', ['bicycle', 'bike', 'cycle', 'vehicle']],\n  ['✈️', ['airplane', 'plane', 'fly', 'flight', 'travel']],\n  ['🚀', ['rocket', 'space', 'launch', 'ship']],\n  ['🛸', ['ufo', 'alien', 'space', 'flying', 'saucer']],\n  ['🚁', ['helicopter', 'chopper', 'vehicle']],\n  ['🛳️', ['passenger', 'ship', 'cruise', 'boat']],\n  ['⛵', ['sailboat', 'sailing', 'boat', 'yacht']],\n  ['🚤', ['speedboat', 'boat', 'fast']],\n  ['🚆', ['train', 'railway', 'locomotive']],\n  ['🚇', ['metro', 'subway', 'underground', 'tube']],\n  ['🚉', ['station', 'train', 'railway']],\n  ['🗺️', ['world', 'map', 'travel', 'geography']],\n  ['🌍', ['earth', 'globe', 'world', 'africa', 'europe']],\n  ['🌎', ['earth', 'globe', 'world', 'americas']],\n  ['🌏', ['earth', 'globe', 'world', 'asia', 'australia']],\n  ['🏖️', ['beach', 'umbrella', 'sun', 'sand', 'vacation']],\n  ['🏕️', ['camping', 'tent', 'outdoors', 'nature']],\n  ['🏞️', ['national', 'park', 'landscape', 'nature']],\n  ['🏟️', ['stadium', 'arena', 'sport']],\n  ['🏛️', ['classical', 'building', 'museum', 'columns']],\n  ['🏰', ['castle', 'european', 'fortress']],\n  ['🏯', ['japanese', 'castle', 'fortress']],\n  ['🗽', ['statue', 'liberty', 'new', 'york', 'freedom']],\n  ['🗼', ['tower', 'tokyo', 'landmark']],\n  ['🏙️', ['cityscape', 'city', 'skyline', 'buildings']],\n  ['🌅', ['sunrise', 'sun', 'morning', 'dawn']],\n  ['🌄', ['sunrise', 'mountains', 'morning']],\n  ['⛺', ['camping', 'tent', 'outdoors']],\n\n  // Objects\n  ['💡', ['light', 'bulb', 'idea', 'electric']],\n  ['🔦', ['flashlight', 'torch', 'light']],\n  ['🧰', ['toolbox', 'tools', 'repair']],\n  ['🔧', ['wrench', 'tool', 'repair', 'fix']],\n  ['🔨', ['hammer', 'tool', 'build', 'fix']],\n  ['🪛', ['screwdriver', 'tool', 'fix']],\n  ['⌛', ['hourglass', 'time', 'sand', 'timer']],\n  ['⏰', ['alarm', 'clock', 'time', 'watch']],\n  ['📱', ['phone', 'mobile', 'smartphone', 'cell', 'telephone']],\n  ['💻', ['laptop', 'computer', 'pc', 'mac', 'keyboard']],\n  ['🖥️', ['desktop', 'computer', 'monitor', 'screen']],\n  ['🖨️', ['printer', 'print']],\n  ['🎥', ['movie', 'camera', 'video', 'film']],\n  ['📷', ['camera', 'photo', 'picture']],\n  ['📸', ['camera', 'flash', 'photo', 'picture']],\n  ['📺', ['television', 'tv', 'watch', 'screen']],\n  ['📻', ['radio', 'music', 'broadcast']],\n  ['🎙️', ['studio', 'microphone', 'mic', 'record']],\n  ['📦', ['package', 'box', 'parcel', 'delivery']],\n  ['📌', ['pin', 'pushpin', 'thumbtack', 'bookmark']],\n  ['📎', ['paperclip', 'attachment', 'clip']],\n  ['✂️', ['scissors', 'cut', 'tool']],\n  ['🧷', ['safety', 'pin', 'needle']],\n  ['🔑', ['key', 'lock', 'unlock', 'password']],\n  ['🔒', ['locked', 'lock', 'secure', 'padlock']],\n  ['🔓', ['unlocked', 'lock', 'open', 'padlock']],\n  ['🧲', ['magnet', 'magnetic']],\n  ['🧪', ['test', 'tube', 'experiment', 'science', 'lab']],\n  ['🧫', ['petri', 'dish', 'science', 'lab']],\n  ['🧬', ['dna', 'genetics', 'science', 'biology']],\n  ['🔭', ['telescope', 'space', 'stars', 'astronomy']],\n  ['🧯', ['fire', 'extinguisher', 'safety']],\n  ['🛒', ['shopping', 'cart', 'basket', 'buy']],\n  ['🧺', ['basket', 'picnic', 'laundry']],\n  ['🪑', ['chair', 'seat', 'furniture']],\n  ['🛋️', ['couch', 'sofa', 'furniture', 'living', 'room']],\n  ['🛏️', ['bed', 'sleep', 'furniture', 'rest']],\n  ['💼', ['briefcase', 'work', 'business', 'bag']],\n  ['🎒', ['backpack', 'school', 'bag', 'hiking']],\n  ['👓', ['glasses', 'eyeglasses', 'spectacles']],\n  ['🕶️', ['sunglasses', 'cool', 'dark', 'glasses']],\n  ['☂️', ['umbrella', 'rain', 'weather', 'parasol']],\n  ['🕯️', ['candle', 'light', 'wax', 'flame']],\n\n  // Symbols\n  ['❤️', ['heart', 'love', 'red', 'like']],\n  ['🧡', ['orange', 'heart', 'love']],\n  ['💛', ['yellow', 'heart', 'love']],\n  ['💚', ['green', 'heart', 'love']],\n  ['💙', ['blue', 'heart', 'love']],\n  ['💜', ['purple', 'heart', 'love']],\n  ['🖤', ['black', 'heart', 'love', 'dark']],\n  ['🤍', ['white', 'heart', 'love']],\n  ['🤎', ['brown', 'heart', 'love']],\n  ['💔', ['broken', 'heart', 'sad', 'love', 'break']],\n  ['❣️', ['heart', 'exclamation', 'love', 'adornment']],\n  ['💯', ['hundred', 'perfect', 'score', 'complete', '100']],\n  ['✅', ['check', 'done', 'complete', 'yes', 'tick', 'green']],\n  ['☑️', ['ballot', 'check', 'box', 'done', 'tick']],\n  ['✔️', ['check', 'mark', 'done', 'yes', 'tick']],\n  ['✖️', ['multiply', 'cross', 'delete', 'remove', 'wrong']],\n  ['➕', ['plus', 'add', 'math', 'positive']],\n  ['➖', ['minus', 'subtract', 'math', 'negative']],\n  ['➗', ['divide', 'division', 'math']],\n  ['⭐', ['star', 'favorite', 'gold']],\n  ['🌟', ['glowing', 'star', 'sparkle', 'bright', 'glitter']],\n  ['✨', ['sparkles', 'stars', 'shine', 'glitter', 'magic', 'clean']],\n  ['🔥', ['fire', 'flame', 'hot', 'lit', 'burn', 'blazing']],\n  ['💥', ['collision', 'boom', 'blast', 'explode', 'impact']],\n  ['⚡', ['lightning', 'thunder', 'bolt', 'electric', 'zap', 'power']],\n  ['☮️', ['peace', 'symbol', 'hippie']],\n  ['☢️', ['radioactive', 'nuclear', 'warning', 'danger']],\n  ['☣️', ['biohazard', 'danger', 'warning', 'toxic']],\n  ['♻️', ['recycle', 'green', 'environment', 'sustainable']],\n  ['⚠️', ['warning', 'caution', 'alert', 'danger']],\n  ['❗', ['exclamation', 'mark', 'important', 'red', 'alert']],\n  ['❓', ['question', 'mark', 'what', 'confused']],\n  ['‼️', ['double', 'exclamation', 'mark', 'important']],\n  ['⁉️', ['interrobang', 'question', 'exclamation', 'surprise']],\n  ['♾️', ['infinity', 'forever', 'endless', 'limitless']],\n  ['🔞', ['underage', 'no', 'one', 'under', '18', 'restricted']],\n  ['🔔', ['bell', 'notification', 'alert', 'ring', 'chime']],\n  ['🔕', ['muted', 'bell', 'silent', 'quiet', 'off', 'notification']],\n  ['📣', ['megaphone', 'loudspeaker', 'announcement', 'bullhorn']],\n  ['🔊', ['loud', 'speaker', 'volume', 'sound', 'audio']],\n  ['🔈', ['speaker', 'low', 'volume', 'sound', 'quiet']],\n\n  // Flags (common searchable ones)\n  ['🇻🇳', ['vietnam', 'vietnamese', 'flag']],\n  ['🇺🇸', ['usa', 'united', 'states', 'america', 'flag', 'american']],\n  ['🇬🇧', ['uk', 'united', 'kingdom', 'britain', 'flag', 'british']],\n  ['🇫🇷', ['france', 'french', 'flag']],\n  ['🇩🇪', ['germany', 'german', 'flag']],\n  ['🇯🇵', ['japan', 'japanese', 'flag']],\n  ['🇰🇷', ['korea', 'korean', 'south', 'flag']],\n  ['🇨🇳', ['china', 'chinese', 'flag']],\n  ['🇨🇦', ['canada', 'canadian', 'flag']],\n  ['🇦🇺', ['australia', 'australian', 'flag']],\n  ['🇮🇹', ['italy', 'italian', 'flag']],\n  ['🇪🇸', ['spain', 'spanish', 'flag']],\n  ['🇷🇺', ['russia', 'russian', 'flag']],\n  ['🇧🇷', ['brazil', 'brazilian', 'flag']],\n  ['🇮🇳', ['india', 'indian', 'flag']],\n  ['🇲🇽', ['mexico', 'mexican', 'flag']],\n  ['🇸🇬', ['singapore', 'singaporean', 'flag']],\n  ['🇹🇭', ['thailand', 'thai', 'flag']],\n  ['🇵🇭', ['philippines', 'filipino', 'flag']],\n  ['🇮🇩', ['indonesia', 'indonesian', 'flag']],\n  ['🇲🇾', ['malaysia', 'malaysian', 'flag']],\n]);\n","/**\n * Unified event types for Z-UI form components\n * Allows components to emit native DOM events with type discrimination\n */\n\nexport type ZEventType =\n  | 'focus'\n  | 'blur'\n  | 'keydown'\n  | 'keyup'\n  | 'keypress'\n  | 'click'\n  | 'dblclick'\n  | 'mousedown'\n  | 'mouseup'\n  | 'mouseenter'\n  | 'mouseleave'\n  | 'mouseover'\n  | 'mouseout'\n  | 'touchstart'\n  | 'touchend'\n  | 'touchmove'\n  | 'input'\n  | 'change'\n  | 'paste'\n  | 'copy'\n  | 'cut'\n  | 'dragenter'\n  | 'dragleave'\n  | 'dragover'\n  | 'drop';\n\ninterface ZEventBase<T extends ZEventType, E extends Event> {\n  type: T;\n  event: E;\n}\n\nexport type ZFocusEventData = ZEventBase<'focus', FocusEvent>;\nexport type ZBlurEventData = ZEventBase<'blur', FocusEvent>;\nexport type ZKeydownEventData = ZEventBase<'keydown', KeyboardEvent>;\nexport type ZKeyupEventData = ZEventBase<'keyup', KeyboardEvent>;\nexport type ZKeypressEventData = ZEventBase<'keypress', KeyboardEvent>;\nexport type ZClickEventData = ZEventBase<'click', MouseEvent>;\nexport type ZDblclickEventData = ZEventBase<'dblclick', MouseEvent>;\nexport type ZMousedownEventData = ZEventBase<'mousedown', MouseEvent>;\nexport type ZMouseupEventData = ZEventBase<'mouseup', MouseEvent>;\nexport type ZMouseenterEventData = ZEventBase<'mouseenter', MouseEvent>;\nexport type ZMouseleaveEventData = ZEventBase<'mouseleave', MouseEvent>;\nexport type ZMouseoverEventData = ZEventBase<'mouseover', MouseEvent>;\nexport type ZMouseoutEventData = ZEventBase<'mouseout', MouseEvent>;\nexport type ZTouchstartEventData = ZEventBase<'touchstart', TouchEvent>;\nexport type ZTouchendEventData = ZEventBase<'touchend', TouchEvent>;\nexport type ZTouchmoveEventData = ZEventBase<'touchmove', TouchEvent>;\nexport type ZInputEventData = ZEventBase<'input', InputEvent>;\nexport type ZChangeEventData = ZEventBase<'change', Event>;\nexport type ZPasteEventData = ZEventBase<'paste', ClipboardEvent>;\nexport type ZCopyEventData = ZEventBase<'copy', ClipboardEvent>;\nexport type ZCutEventData = ZEventBase<'cut', ClipboardEvent>;\nexport type ZDragenterEventData = ZEventBase<'dragenter', DragEvent>;\nexport type ZDragleaveEventData = ZEventBase<'dragleave', DragEvent>;\nexport type ZDragoverEventData = ZEventBase<'dragover', DragEvent>;\nexport type ZDropEventData = ZEventBase<'drop', DragEvent>;\n\nexport type ZEvent =\n  | ZFocusEventData\n  | ZBlurEventData\n  | ZKeydownEventData\n  | ZKeyupEventData\n  | ZKeypressEventData\n  | ZClickEventData\n  | ZDblclickEventData\n  | ZMousedownEventData\n  | ZMouseupEventData\n  | ZMouseenterEventData\n  | ZMouseleaveEventData\n  | ZMouseoverEventData\n  | ZMouseoutEventData\n  | ZTouchstartEventData\n  | ZTouchendEventData\n  | ZTouchmoveEventData\n  | ZInputEventData\n  | ZChangeEventData\n  | ZPasteEventData\n  | ZCopyEventData\n  | ZCutEventData\n  | ZDragenterEventData\n  | ZDragleaveEventData\n  | ZDragoverEventData\n  | ZDropEventData;\n\nexport function zCreateEvent<T extends ZEventType>(type: T, event: Event): ZEvent {\n  return { type, event } as ZEvent;\n}\n","/**\n * Utils types index\n */\n\nexport * from './z-common.types';\nexport * from './z-async-options.types';\nexport * from './z-echarts.types';\nexport * from './z-event.types';\nexport * from './z-form.types';\nexport * from './z-emoji-sheet.type';\n","/**\n * Utils index\n */\n\nexport * from './z-common.utils';\nexport * from './z-async-options.utils';\nexport * from './z-echarts.utils';\nexport * from './z-form.utils';\nexport * from './z-emoji-sheet.define';\nexport * from './z-emoji-keywords.define';\n\n// Export all types\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,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"}