{"version":3,"sources":["../src/core/Helpers/breakpointsMap.ts","../src/core/Helpers/focusUtilities.ts","../src/core/Helpers/progressionFormat.ts"],"names":[],"mappings":"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","file":"chunk-VYSDLACR.mjs","sourcesContent":["\"use client\";\n\nimport { ThBreakpoints } from \"@/preferences/models\";\nimport { BreakpointsMap } from \"@/core/Hooks/useBreakpoints\";\n\nexport const makeBreakpointsMap = <T>({\n  defaultValue,\n  fromEnum,\n  pref,\n  disabledValue,\n  validateKey\n}: {\n  defaultValue: T;\n  fromEnum: any;\n  pref?: BreakpointsMap<T> | boolean;\n  disabledValue?: T;\n  validateKey?: string;\n}): Required<BreakpointsMap<T>> => {\n  \n  const isValidType = (value: any): boolean => {\n    if (!validateKey) return true;\n    \n    // Helper to get nested property\n    const getNestedValue = (obj: any, path: string) => \n      path.split(\".\").reduce((o, p) => o?.[p], obj);\n    \n    const valueToCheck = getNestedValue(value, validateKey);\n    if (valueToCheck === undefined) return false;\n    \n    if (Array.isArray(valueToCheck)) {\n      return valueToCheck.every(v => Object.values(fromEnum).includes(v));\n    }\n    return Object.values(fromEnum).includes(valueToCheck);\n  };\n\n  const breakpointsMap: Required<BreakpointsMap<T>> = {\n    [ThBreakpoints.compact]: defaultValue,\n    [ThBreakpoints.medium]: defaultValue,\n    [ThBreakpoints.expanded]: defaultValue,\n    [ThBreakpoints.large]: defaultValue,\n    [ThBreakpoints.xLarge]: defaultValue\n  };\n\n  if (typeof pref === \"boolean\" || pref instanceof Boolean) {\n    if (!pref && disabledValue) {\n      Object.values(ThBreakpoints).forEach((key) => {\n        breakpointsMap[key] = disabledValue;\n      });\n    }\n  } else if (typeof pref === \"string\" && (!validateKey || isValidType(pref))) {\n    Object.values(ThBreakpoints).forEach((key) => {\n      breakpointsMap[key] = pref as unknown as T;\n    });\n  } else if (typeof pref === \"object\") {\n    Object.entries(pref).forEach(([key, value]) => {\n      if (!value) return;\n      \n      const isValid = !validateKey || isValidType(value);\n        \n      if (isValid) {\n        // Merge the default value with the breakpoint-specific overrides\n        if (typeof value === \"object\" && !Array.isArray(value)) {\n          breakpointsMap[key as ThBreakpoints] = {\n            ...defaultValue,\n            ...value\n          };\n        } else {\n          breakpointsMap[key as ThBreakpoints] = value as T;\n        }\n      }\n    });\n  }\n\n  return breakpointsMap;\n};","\"use client\";\n\nexport const isActiveElement = (el: Element | undefined | null) => {\n  if (el) return document.activeElement === el;\n  return false;\n}\n\nexport const isKeyboardTriggered = (el: Element | undefined | null) => {\n  if (el) return el.matches(\":focus-visible\");\n  return false;\n}\n\nexport const isInteractiveElement = (element: Element | null) => {\n  const iElements = [\"A\", \"AREA\", \"BUTTON\", \"DETAILS\", \"INPUT\", \"SELECT\", \"TEXTAREA\"];\n  const iRoles = [\"dialog\", \"radiogroup\", \"radio\", \"menu\", \"menuitem\"]\n\n  if (element && (element instanceof HTMLElement || element instanceof SVGElement)) {\n    if (element.closest(\"[inert]\")) return false;\n    if (element.hasAttribute(\"disabled\")) return false;\n    if (element.role && iRoles.includes(element.role)) return true;\n\n    // Panel Resize Handler cos’ of typo on tabIndex/tabindex\n    if (element.hasAttribute(\"tabindex\")) {\n      const attr = element.getAttribute(\"tabindex\");\n      return attr && parseInt(attr, 10) >= 0;\n    }\n\n    if (element.tabIndex) return element.tabIndex >= 0;\n    if (iElements.includes(element.tagName)) return true;\n  }\n\n  return false;\n}\n","import { ThProgressionFormat } from \"@/preferences/models\";\nimport { TimelineProgression } from \"@/core/Hooks/useTimeline\";\n\nexport const getSupportedProgressionFormats = (timeline?: TimelineProgression): ThProgressionFormat[] => {\n  if (!timeline) {\n    return [ThProgressionFormat.none];\n  }\n\n  const {\n    currentPositions = [],\n    totalPositions,\n    relativeProgression,\n    totalProgression,\n    currentIndex,\n    totalItems,\n    positionsLeft\n  } = timeline;\n\n  const supported: ThProgressionFormat[] = [ThProgressionFormat.none];\n\n  if (currentPositions.length > 0) {\n    supported.push(ThProgressionFormat.positions);\n  }\n  \n  if (currentPositions.length > 0 && totalPositions) {\n    supported.push(\n      ThProgressionFormat.positionsOfTotal,\n      ThProgressionFormat.positionsPercentOfTotal\n    );\n  }\n  \n  if (positionsLeft !== undefined) {\n    supported.push(ThProgressionFormat.positionsLeft);\n  }\n  \n  if (relativeProgression !== undefined) {\n    supported.push(\n      ThProgressionFormat.resourceProgression,\n      ThProgressionFormat.progressionOfResource\n    );\n  }\n  \n  if (totalProgression !== undefined) {\n    supported.push(ThProgressionFormat.overallProgression);\n  }\n  \n  if (currentIndex !== undefined && totalItems !== undefined) {\n    supported.push(ThProgressionFormat.readingOrderIndex);\n  }\n\n  return supported;\n};\n\nexport const canRenderProgressionFormat = (\n  format: ThProgressionFormat,\n  supportedFormats: ThProgressionFormat[]\n): boolean => {\n  return supportedFormats.includes(format);\n};\n\nexport const getBestMatchingProgressionFormat = (\n  preferredFormats: ThProgressionFormat[],\n  timeline?: TimelineProgression\n): ThProgressionFormat | null => {\n  if (!timeline) {\n    return null;\n  }\n\n  const supportedFormats = getSupportedProgressionFormats(timeline);\n  \n  // Find the first preferred format that's supported\n  const firstSupported = preferredFormats.find(format => \n    canRenderProgressionFormat(format, supportedFormats)\n  );\n  \n  return firstSupported || null;\n};\n"]}