@spectrum-web-components/reactive-controllers 0.3.6-react.79 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/reactive-controllers",
3
- "version": "0.3.6-react.79+7959cb8d1",
3
+ "version": "0.30.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -79,5 +79,5 @@
79
79
  "sideEffects": [
80
80
  "./**/*.dev.js"
81
81
  ],
82
- "gitHead": "7959cb8d1df072fc473ec1687b2a7328550b96f7"
82
+ "gitHead": "e34a26bf2bbea5f60a5e415e0f12c97654f0e20d"
83
83
  }
package/src/Color.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["Color.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type { ReactiveElement } from 'lit';\nimport { HSL, HSLA, HSV, HSVA, RGB, RGBA, TinyColor } from '@ctrl/tinycolor';\nexport type { HSL, HSLA, HSV, HSVA, RGB, RGBA, TinyColor };\n\nexport type ColorValue =\n | string\n | number\n | TinyColor\n | HSVA\n | HSV\n | RGB\n | RGBA\n | HSL\n | HSLA;\n\nexport const extractHueAndSaturationRegExp =\n /^hs[v|l]a?\\s?\\((\\d{1,3}\\.?\\d*?),?\\s?(\\d{1,3})/;\nexport const replaceHueAndSaturationRegExp =\n /(^hs[v|l]a?\\s?\\()\\d{1,3}\\.?\\d*?(,?\\s?)\\d{1,3}/;\nexport const replaceHueRegExp = /(^hs[v|l]a?\\()\\d{1,3}/;\n\ntype TinyColorToValue = {\n toHex: ColorValue;\n toHexString: ColorValue;\n toHsv: ColorValue;\n toHsvString: ColorValue;\n toHsl: ColorValue;\n toHslString: ColorValue;\n toHex8: ColorValue;\n toHex8String: ColorValue;\n toPercentageRgb: ColorValue;\n toPercentageRgbString: ColorValue;\n toRgb: ColorValue;\n toRgbString: ColorValue;\n};\n\nconst getHexValue = (color: TinyColor, isString: boolean): ColorValue =>\n isString ? color.toHexString() : color.toHex();\n\nexport class ColorController {\n protected host: ReactiveElement;\n\n protected applyColorToState!: ({\n h,\n s,\n v,\n }: {\n h: number;\n s: number;\n v: number;\n }) => void;\n\n protected extractColorFromState!: (\n controller: ColorController\n ) => ColorValue;\n\n protected setColorProcess(\n currentColor: TinyColor,\n nextColor: ColorValue,\n format: string,\n isString: boolean\n ): void {\n if (this.maintains === 'hue') {\n this.setColorMaintainHue(currentColor, nextColor, format, isString);\n } else if (this.maintains === 'saturation') {\n this.setColorMaintainSaturation(\n currentColor,\n nextColor,\n format,\n isString\n );\n }\n }\n\n protected setColorMaintainHue(\n currentColor: TinyColor,\n nextColor: ColorValue,\n format: string,\n isString: boolean\n ): void {\n const { h, s, v } = this._color.toHsv();\n let originalHue: number | undefined = undefined;\n\n if (isString && format.startsWith('hs')) {\n const values = extractHueAndSaturationRegExp.exec(\n nextColor as string\n );\n\n if (values !== null) {\n const [, h] = values;\n originalHue = Number(h);\n }\n } else if (!isString && format.startsWith('hs')) {\n const colorInput = currentColor.originalInput;\n const colorValues = Object.values(colorInput);\n originalHue = colorValues[0];\n }\n\n this.hue = originalHue || h;\n this.applyColorToState({ h, s, v });\n }\n\n protected setColorMaintainSaturation(\n currentColor: TinyColor,\n nextColor: ColorValue,\n format: string,\n isString: boolean\n ): void {\n if (isString && format.startsWith('hs')) {\n const values = extractHueAndSaturationRegExp.exec(\n nextColor as string\n );\n\n if (values !== null) {\n const [, h, s] = values;\n this.hue = Number(h);\n this.saturation = Number(s);\n }\n } else if (!isString && format.startsWith('hs')) {\n const colorInput = currentColor.originalInput;\n const colorValues = Object.values(colorInput);\n this.hue = colorValues[0];\n this.saturation = colorValues[1];\n } else {\n const { h } = currentColor.toHsv();\n this.hue = h;\n }\n this.applyColorToState(currentColor.toHsv());\n }\n\n protected maintains: 'hue' | 'saturation' = 'hue';\n private saturation!: number;\n\n constructor(\n host: ReactiveElement,\n {\n applyColorToState,\n extractColorFromState,\n maintains,\n }: {\n applyColorToState({\n h,\n s,\n v,\n }: {\n h: number;\n s: number;\n v: number;\n }): void;\n extractColorFromState(controller: ColorController): ColorValue;\n maintains?: 'hue' | 'saturation';\n }\n ) {\n this.host = host;\n this.applyColorToState = applyColorToState;\n this.extractColorFromState = extractColorFromState;\n this.maintains = maintains || this.maintains;\n }\n\n public applyColorFromState(): void {\n this._color = new TinyColor(this.extractColorFromState(this));\n }\n\n public get hue(): number {\n return this._hue;\n }\n\n public set hue(value: number) {\n const hue = Math.min(360, Math.max(0, value));\n if (hue === this.hue) {\n return;\n }\n const oldValue = this.hue;\n const { s, v } = this._color.toHsv();\n this._color = new TinyColor({ h: hue, s, v });\n this._hue = hue;\n this.host.requestUpdate('hue', oldValue);\n }\n\n private _hue = 0;\n\n protected getColorProcesses: Record<\n string,\n (color: TinyColor, isString: boolean) => ColorValue\n > = {\n rgb: (color, isString) =>\n isString ? color.toRgbString() : color.toRgb(),\n prgb: (color, isString) =>\n isString ? color.toPercentageRgbString() : color.toPercentageRgb(),\n hex8: (color, isString) =>\n isString ? color.toHex8String() : color.toHex8(),\n name: (color) => color.toName() || color.toRgbString(),\n hsl: (color, isString) => {\n if (this.maintains === 'hue') {\n if (isString) {\n const hslString = color.toHslString();\n return hslString.replace(replaceHueRegExp, `$1${this.hue}`);\n } else {\n const { s, l, a } = color.toHsl();\n return { h: this.hue, s, l, a };\n }\n } else {\n if (isString) {\n const hslString = color.toHslString();\n return hslString.replace(\n replaceHueAndSaturationRegExp,\n `$1${this.hue}$2${this.saturation}`\n );\n } else {\n const { s, l, a } = color.toHsl();\n return { h: this.hue, s, l, a };\n }\n }\n },\n hsv: (color, isString) => {\n if (this.maintains === 'hue') {\n if (isString) {\n const hsvString = color.toHsvString();\n return hsvString.replace(replaceHueRegExp, `$1${this.hue}`);\n } else {\n const { s, v, a } = color.toHsv();\n return { h: this.hue, s, v, a };\n }\n } else {\n if (isString) {\n const hsvString = color.toHsvString();\n return hsvString.replace(\n replaceHueAndSaturationRegExp,\n `$1${this.hue}$2${this.saturation}`\n );\n } else {\n const { s, v, a } = color.toHsv();\n return { h: this.hue, s, v, a };\n }\n }\n },\n hex: getHexValue,\n hex3: getHexValue,\n hex4: getHexValue,\n hex6: getHexValue,\n };\n\n /* c8 ignore next 3 */\n public get value(): ColorValue {\n return this.color;\n }\n\n public get color(): ColorValue {\n return this.getColorProcesses[this._format.format || 'hex'](\n this._color,\n this._format.isString\n );\n }\n\n public set color(color: ColorValue) {\n /* c8 ignore next 3 */\n if (color === this.color) {\n return;\n }\n const oldValue = this._color;\n this._color = new TinyColor(color);\n const format = this._color.format;\n let isString = typeof color === 'string' || color instanceof String;\n\n if (format.startsWith('hex')) {\n isString = (color as string).startsWith('#');\n }\n\n this._format = {\n format,\n isString,\n };\n\n this.setColorProcess(this._color, color, format, isString);\n this.host.requestUpdate('color', oldValue);\n }\n\n private _color = new TinyColor({ h: 0, s: 1, v: 1 });\n\n public getColor(format: string): ColorValue {\n const formatOptions: Record<string, keyof TinyColorToValue> = {\n hsl: 'toHsl',\n };\n return this._color[formatOptions[format]]();\n }\n\n public setColor(color: TinyColor): void {\n this._color = color;\n const isString =\n typeof this._color.originalInput === 'string' ||\n this._color.originalInput instanceof String;\n this.setColorProcess(this._color, color, this._color.format, isString);\n }\n\n public getHslString(): string {\n return this._color.toHslString();\n }\n\n private _previousColor = new TinyColor({ h: 0, s: 1, v: 1 });\n\n public savePreviousColor(): void {\n this._previousColor = this._color.clone();\n }\n\n public restorePreviousColor(): void {\n this.setColor(this._previousColor);\n }\n\n private _format: { format: string; isString: boolean } = {\n format: '',\n isString: false,\n };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["TinyColor", "getHexValue", "color", "isString", "host", "applyColorToState", "extractColorFromState", "maintains", "s", "l", "a", "v", "currentColor", "nextColor", "format", "h", "originalHue", "values", "colorInput", "colorValues", "value", "hue", "oldValue", "formatOptions"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["ElementResolution.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nexport const elementResolverUpdatedSymbol = Symbol('element resolver updated');\n\nexport class ElementResolutionController implements ReactiveController {\n get element(): HTMLElement | null {\n return this._element;\n }\n\n set element(element: HTMLElement | null) {\n if (element === this.element) return;\n const previous = this.element;\n this._element = element;\n // requestUpdate leveraging the exported Symbol() so that the\n // changes can be easily tracked in the host element.\n this.host.requestUpdate(elementResolverUpdatedSymbol, previous);\n }\n\n private _element: HTMLElement | null = null;\n\n private host!: ReactiveElement;\n\n private observer!: MutationObserver;\n\n get selector(): string {\n return this._selector;\n }\n\n set selector(selector: string) {\n if (selector === this.selector) return;\n this.releaseElement();\n this._selector = selector;\n this.resolveElement();\n }\n\n private _selector = '';\n\n constructor(\n host: ReactiveElement,\n { selector }: { selector: string } = { selector: '' }\n ) {\n this.host = host;\n this.selector = selector;\n this.observer = new MutationObserver(this.mutationCallback);\n // Add the controller after the MutationObserver has been created in preparation\n // for the `hostConnected`/`hostDisconnected` callbacks to be run.\n this.host.addController(this);\n }\n\n protected mutationCallback: MutationCallback = (mutationList) => {\n let needsResolution = false;\n mutationList.forEach((mutation) => {\n if (needsResolution) return;\n if (mutation.type === 'childList') {\n const currentElementRemoved =\n this.element &&\n [...mutation.removedNodes].includes(this.element);\n const matchingElementAdded =\n !!this.selector &&\n ([...mutation.addedNodes] as HTMLElement[]).some((el) =>\n el?.matches?.(this.selector)\n );\n needsResolution =\n needsResolution ||\n currentElementRemoved ||\n matchingElementAdded;\n }\n if (mutation.type === 'attributes') {\n const attributeChangedOnCurrentElement =\n mutation.target === this.element;\n const attributeChangedOnMatchingElement =\n !!this.selector &&\n (mutation.target as HTMLElement).matches(this.selector);\n needsResolution =\n needsResolution ||\n attributeChangedOnCurrentElement ||\n attributeChangedOnMatchingElement;\n }\n });\n if (needsResolution) {\n this.resolveElement();\n }\n };\n\n public hostConnected(): void {\n this.resolveElement();\n this.observer.observe(this.host.getRootNode(), {\n subtree: true,\n childList: true,\n attributes: true,\n });\n }\n\n public hostDisconnected(): void {\n this.releaseElement();\n this.observer.disconnect();\n }\n\n private resolveElement(): void {\n if (!this.selector) {\n this.releaseElement();\n return;\n }\n\n const parent = this.host.getRootNode() as HTMLElement;\n this.element = parent.querySelector(this.selector) as HTMLElement;\n }\n\n private releaseElement(): void {\n this.element = null;\n }\n}\n"],
5
- "mappings": "aAaO,aAAM,6BAA+B,OAAO,0BAA0B,EAEtE,aAAM,2BAA0D,CAiCnE,YACIA,EACA,CAAE,SAAAC,CAAS,EAA0B,CAAE,SAAU,EAAG,EACtD,CAtBF,KAAQ,SAA+B,KAiBvC,KAAQ,UAAY,GAcpB,KAAU,iBAAsCC,GAAiB,CAC7D,IAAIC,EAAkB,GACtBD,EAAa,QAASE,GAAa,CAC/B,GAAI,CAAAD,EACJ,IAAIC,EAAS,OAAS,YAAa,CAC/B,MAAMC,EACF,KAAK,SACL,CAAC,GAAGD,EAAS,YAAY,EAAE,SAAS,KAAK,OAAO,EAC9CE,EACF,CAAC,CAAC,KAAK,UACN,CAAC,GAAGF,EAAS,UAAU,EAAoB,KAAMG,GAAI,CAtE1E,IAAAC,EAuEwB,OAAAA,EAAAD,GAAA,YAAAA,EAAI,UAAJ,YAAAC,EAAA,KAAAD,EAAc,KAAK,UACvB,EACJJ,EACIA,GACAE,GACAC,CACR,CACA,GAAIF,EAAS,OAAS,aAAc,CAChC,MAAMK,EACFL,EAAS,SAAW,KAAK,QACvBM,EACF,CAAC,CAAC,KAAK,UACNN,EAAS,OAAuB,QAAQ,KAAK,QAAQ,EAC1DD,EACIA,GACAM,GACAC,CACR,EACJ,CAAC,EACGP,GACA,KAAK,eAAe,CAE5B,EAzCI,KAAK,KAAOH,EACZ,KAAK,SAAWC,EAChB,KAAK,SAAW,IAAI,iBAAiB,KAAK,gBAAgB,EAG1D,KAAK,KAAK,cAAc,IAAI,CAChC,CA1CA,IAAI,SAA8B,CAC9B,OAAO,KAAK,QAChB,CAEA,IAAI,QAAQU,EAA6B,CACrC,GAAIA,IAAY,KAAK,QAAS,OAC9B,MAAMC,EAAW,KAAK,QACtB,KAAK,SAAWD,EAGhB,KAAK,KAAK,cAAc,6BAA8BC,CAAQ,CAClE,CAQA,IAAI,UAAmB,CACnB,OAAO,KAAK,SAChB,CAEA,IAAI,SAASX,EAAkB,CACvBA,IAAa,KAAK,WACtB,KAAK,eAAe,EACpB,KAAK,UAAYA,EACjB,KAAK,eAAe,EACxB,CAmDO,eAAsB,CACzB,KAAK,eAAe,EACpB,KAAK,SAAS,QAAQ,KAAK,KAAK,YAAY,EAAG,CAC3C,QAAS,GACT,UAAW,GACX,WAAY,EAChB,CAAC,CACL,CAEO,kBAAyB,CAC5B,KAAK,eAAe,EACpB,KAAK,SAAS,WAAW,CAC7B,CAEQ,gBAAuB,CAC3B,GAAI,CAAC,KAAK,SAAU,CAChB,KAAK,eAAe,EACpB,MACJ,CAEA,MAAMY,EAAS,KAAK,KAAK,YAAY,EACrC,KAAK,QAAUA,EAAO,cAAc,KAAK,QAAQ,CACrD,CAEQ,gBAAuB,CAC3B,KAAK,QAAU,IACnB,CACJ",
5
+ "mappings": "aAaO,aAAM,6BAA+B,OAAO,0BAA0B,EAEtE,aAAM,2BAA0D,CAiCnE,YACIA,EACA,CAAE,SAAAC,CAAS,EAA0B,CAAE,SAAU,EAAG,EACtD,CAtBF,KAAQ,SAA+B,KAiBvC,KAAQ,UAAY,GAcpB,KAAU,iBAAsCC,GAAiB,CAC7D,IAAIC,EAAkB,GACtBD,EAAa,QAASE,GAAa,CAC/B,GAAI,CAAAD,EACJ,IAAIC,EAAS,OAAS,YAAa,CAC/B,MAAMC,EACF,KAAK,SACL,CAAC,GAAGD,EAAS,YAAY,EAAE,SAAS,KAAK,OAAO,EAC9CE,EACF,CAAC,CAAC,KAAK,UACN,CAAC,GAAGF,EAAS,UAAU,EAAoB,KAAMG,GAAI,CAtE1E,IAAAC,EAuEwB,OAAAA,EAAAD,GAAA,YAAAA,EAAI,UAAJ,YAAAC,EAAA,KAAAD,EAAc,KAAK,UACvB,EACJJ,EACIA,GACAE,GACAC,EAER,GAAIF,EAAS,OAAS,aAAc,CAChC,MAAMK,EACFL,EAAS,SAAW,KAAK,QACvBM,EACF,CAAC,CAAC,KAAK,UACNN,EAAS,OAAuB,QAAQ,KAAK,QAAQ,EAC1DD,EACIA,GACAM,GACAC,GAEZ,CAAC,EACGP,GACA,KAAK,eAAe,CAE5B,EAzCI,KAAK,KAAOH,EACZ,KAAK,SAAWC,EAChB,KAAK,SAAW,IAAI,iBAAiB,KAAK,gBAAgB,EAG1D,KAAK,KAAK,cAAc,IAAI,CAChC,CA1CA,IAAI,SAA8B,CAC9B,OAAO,KAAK,QAChB,CAEA,IAAI,QAAQU,EAA6B,CACrC,GAAIA,IAAY,KAAK,QAAS,OAC9B,MAAMC,EAAW,KAAK,QACtB,KAAK,SAAWD,EAGhB,KAAK,KAAK,cAAc,6BAA8BC,CAAQ,CAClE,CAQA,IAAI,UAAmB,CACnB,OAAO,KAAK,SAChB,CAEA,IAAI,SAASX,EAAkB,CACvBA,IAAa,KAAK,WACtB,KAAK,eAAe,EACpB,KAAK,UAAYA,EACjB,KAAK,eAAe,EACxB,CAmDO,eAAsB,CACzB,KAAK,eAAe,EACpB,KAAK,SAAS,QAAQ,KAAK,KAAK,YAAY,EAAG,CAC3C,QAAS,GACT,UAAW,GACX,WAAY,EAChB,CAAC,CACL,CAEO,kBAAyB,CAC5B,KAAK,eAAe,EACpB,KAAK,SAAS,WAAW,CAC7B,CAEQ,gBAAuB,CAC3B,GAAI,CAAC,KAAK,SAAU,CAChB,KAAK,eAAe,EACpB,OAGJ,MAAMY,EAAS,KAAK,KAAK,YAAY,EACrC,KAAK,QAAUA,EAAO,cAAc,KAAK,QAAQ,CACrD,CAEQ,gBAAuB,CAC3B,KAAK,QAAU,IACnB,CACJ",
6
6
  "names": ["host", "selector", "mutationList", "needsResolution", "mutation", "currentElementRemoved", "matchingElementAdded", "el", "_a", "attributeChangedOnCurrentElement", "attributeChangedOnMatchingElement", "element", "previous", "parent"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["RovingTabindex.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { FocusGroupConfig, FocusGroupController } from './FocusGroup.js';\n\nexport type RovingTabindexConfig<T> = FocusGroupConfig<T>;\ninterface UpdateTabIndexes {\n tabIndex: number;\n removeTabIndex?: boolean;\n}\n\nexport class RovingTabindexController<\n T extends HTMLElement\n> extends FocusGroupController<T> {\n protected override set focused(focused: boolean) {\n if (focused === this.focused) return;\n super.focused = focused;\n this.manageTabindexes();\n }\n\n protected override get focused(): boolean {\n return super.focused;\n }\n\n private managed = true;\n\n private manageIndexesAnimationFrame = 0;\n\n override clearElementCache(offset = 0): void {\n cancelAnimationFrame(this.manageIndexesAnimationFrame);\n super.clearElementCache(offset);\n if (!this.managed) return;\n\n this.manageIndexesAnimationFrame = requestAnimationFrame(() =>\n this.manageTabindexes()\n );\n }\n\n manageTabindexes(): void {\n if (this.focused) {\n this.updateTabindexes(() => ({ tabIndex: -1 }));\n } else {\n this.updateTabindexes((el: HTMLElement): UpdateTabIndexes => {\n return {\n removeTabIndex:\n el.contains(this.focusInElement) &&\n el !== this.focusInElement,\n tabIndex: el === this.focusInElement ? 0 : -1,\n };\n });\n }\n }\n\n updateTabindexes(getTabIndex: (el: HTMLElement) => UpdateTabIndexes): void {\n this.elements.forEach((el) => {\n const { tabIndex, removeTabIndex } = getTabIndex(el);\n if (!removeTabIndex) {\n el.tabIndex = tabIndex;\n return;\n }\n el.removeAttribute('tabindex');\n const updatable = el as unknown as {\n requestUpdate?: () => void;\n };\n if (updatable.requestUpdate) updatable.requestUpdate();\n });\n }\n\n override manage(): void {\n this.managed = true;\n this.manageTabindexes();\n super.manage();\n }\n\n override unmanage(): void {\n this.managed = false;\n this.updateTabindexes(() => ({ tabIndex: 0 }));\n super.unmanage();\n }\n\n hostUpdated(): void {\n if (!this.host.hasUpdated) {\n this.manageTabindexes();\n }\n }\n}\n"],
5
- "mappings": "aAWA,OAA2B,wBAAAA,MAA4B,kBAQhD,aAAM,iCAEHA,CAAwB,CAF3B,kCAaH,KAAQ,QAAU,GAElB,KAAQ,4BAA8B,EAZtC,IAAuB,QAAQC,EAAkB,CACzCA,IAAY,KAAK,UACrB,MAAM,QAAUA,EAChB,KAAK,iBAAiB,EAC1B,CAEA,IAAuB,SAAmB,CACtC,OAAO,MAAM,OACjB,CAMS,kBAAkBC,EAAS,EAAS,CACzC,qBAAqB,KAAK,2BAA2B,EACrD,MAAM,kBAAkBA,CAAM,EACzB,KAAK,UAEV,KAAK,4BAA8B,sBAAsB,IACrD,KAAK,iBAAiB,CAC1B,EACJ,CAEA,kBAAyB,CACjB,KAAK,QACL,KAAK,iBAAiB,KAAO,CAAE,SAAU,EAAG,EAAE,EAE9C,KAAK,iBAAkBC,IACZ,CACH,eACIA,EAAG,SAAS,KAAK,cAAc,GAC/BA,IAAO,KAAK,eAChB,SAAUA,IAAO,KAAK,eAAiB,EAAI,EAC/C,EACH,CAET,CAEA,iBAAiBC,EAA0D,CACvE,KAAK,SAAS,QAASD,GAAO,CAC1B,KAAM,CAAE,SAAAE,EAAU,eAAAC,CAAe,EAAIF,EAAYD,CAAE,EACnD,GAAI,CAACG,EAAgB,CACjBH,EAAG,SAAWE,EACd,MACJ,CACAF,EAAG,gBAAgB,UAAU,EAC7B,MAAMI,EAAYJ,EAGdI,EAAU,eAAeA,EAAU,cAAc,CACzD,CAAC,CACL,CAES,QAAe,CACpB,KAAK,QAAU,GACf,KAAK,iBAAiB,EACtB,MAAM,OAAO,CACjB,CAES,UAAiB,CACtB,KAAK,QAAU,GACf,KAAK,iBAAiB,KAAO,CAAE,SAAU,CAAE,EAAE,EAC7C,MAAM,SAAS,CACnB,CAEA,aAAoB,CACX,KAAK,KAAK,YACX,KAAK,iBAAiB,CAE9B,CACJ",
5
+ "mappings": "aAWA,OAA2B,wBAAAA,MAA4B,kBAQhD,aAAM,iCAEHA,CAAwB,CAF3B,kCAaH,KAAQ,QAAU,GAElB,KAAQ,4BAA8B,EAZtC,IAAuB,QAAQC,EAAkB,CACzCA,IAAY,KAAK,UACrB,MAAM,QAAUA,EAChB,KAAK,iBAAiB,EAC1B,CAEA,IAAuB,SAAmB,CACtC,OAAO,MAAM,OACjB,CAMS,kBAAkBC,EAAS,EAAS,CACzC,qBAAqB,KAAK,2BAA2B,EACrD,MAAM,kBAAkBA,CAAM,EACzB,KAAK,UAEV,KAAK,4BAA8B,sBAAsB,IACrD,KAAK,iBAAiB,CAC1B,EACJ,CAEA,kBAAyB,CACjB,KAAK,QACL,KAAK,iBAAiB,KAAO,CAAE,SAAU,EAAG,EAAE,EAE9C,KAAK,iBAAkBC,IACZ,CACH,eACIA,EAAG,SAAS,KAAK,cAAc,GAC/BA,IAAO,KAAK,eAChB,SAAUA,IAAO,KAAK,eAAiB,EAAI,EAC/C,EACH,CAET,CAEA,iBAAiBC,EAA0D,CACvE,KAAK,SAAS,QAASD,GAAO,CAC1B,KAAM,CAAE,SAAAE,EAAU,eAAAC,CAAe,EAAIF,EAAYD,CAAE,EACnD,GAAI,CAACG,EAAgB,CACjBH,EAAG,SAAWE,EACd,OAEJF,EAAG,gBAAgB,UAAU,EAC7B,MAAMI,EAAYJ,EAGdI,EAAU,eAAeA,EAAU,cAAc,CACzD,CAAC,CACL,CAES,QAAe,CACpB,KAAK,QAAU,GACf,KAAK,iBAAiB,EACtB,MAAM,OAAO,CACjB,CAES,UAAiB,CACtB,KAAK,QAAU,GACf,KAAK,iBAAiB,KAAO,CAAE,SAAU,CAAE,EAAE,EAC7C,MAAM,SAAS,CACnB,CAEA,aAAoB,CACX,KAAK,KAAK,YACX,KAAK,iBAAiB,CAE9B,CACJ",
6
6
  "names": ["FocusGroupController", "focused", "offset", "el", "getTabIndex", "tabIndex", "removeTabIndex", "updatable"]
7
7
  }