{"version":3,"file":"attr.d.cts","sources":["../../types/plugins/Attr.d.ts"],"sourcesContent":["export namespace AttrPlugin {\n    let name: string;\n    let version: string;\n    let description: string;\n    /**\n     * Installs the plugin into the Eleva instance.\n     *\n     * @public\n     * Method wrapping behavior:\n     * - Stores original `_patchNode` in `renderer._originalPatchNode`\n     * - Overrides `renderer._patchNode` to use enhanced attribute handling\n     * - Adds `renderer.updateAttributes` and `eleva.updateElementAttributes` helpers\n     * - Call `uninstall()` to restore original behavior\n     *\n     * @param {Eleva} eleva - The Eleva instance to enhance.\n     * @param {AttrPluginOptions} options - Plugin configuration options.\n     * @param {boolean} [options.enableAria=true] - Enable ARIA attribute handling.\n     *        Maps aria-* attributes to DOM properties (e.g., aria-expanded → ariaExpanded).\n     * @param {boolean} [options.enableData=true] - Enable data attribute handling.\n     *        Syncs data-* attributes with element.dataset for consistent access.\n     * @param {boolean} [options.enableBoolean=true] - Enable boolean attribute handling.\n     *        Treats empty strings and attribute names as true, \"false\" string as false.\n     * @param {boolean} [options.enableDynamic=true] - Enable dynamic property detection.\n     *        Searches element prototype chain for property matches (useful for custom elements).\n     * @returns {void}\n     * @example\n     * // Basic installation with defaults\n     * app.use(AttrPlugin);\n     *\n     * @example\n     * // Custom configuration\n     * app.use(AttrPlugin, {\n     *   enableAria: true,\n     *   enableData: true,\n     *   enableBoolean: true,\n     *   enableDynamic: false  // Disable for performance\n     * });\n     *\n     * @example\n     * // Using ARIA attributes in templates\n     * template: (ctx) => `\n     *   <div role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"title\">\n     *     <h2 id=\"title\">Modal Title</h2>\n     *     <button aria-expanded=\"${ctx.isOpen.value}\">Toggle</button>\n     *   </div>\n     * `\n     * @see uninstall - Remove the plugin and restore original behavior.\n     */\n    function install(eleva: Eleva, options?: AttrPluginOptions): void;\n    /**\n     * Uninstalls the plugin from the Eleva instance.\n     *\n     * @public\n     * @param {Eleva} eleva - The Eleva instance.\n     * @returns {void}\n     * @description\n     * Restores the original renderer patching behavior and removes\n     * `eleva.updateElementAttributes`.\n     * @example\n     * // Uninstall the plugin\n     * AttrPlugin.uninstall(app);\n     * @see install - Install the plugin.\n     */\n    function uninstall(eleva: Eleva): void;\n}\nexport { AttrPlugin as Attr };\n/**\n * Type imports from the Eleva core library.\n */\nexport type Eleva = import(\"eleva\").Eleva;\n/**\n * Configuration options for the AttrPlugin.\n */\nexport type AttrPluginOptions = {\n    /**\n     * Enable ARIA attribute handling.\n     */\n    enableAria?: boolean | undefined;\n    /**\n     * Enable data attribute handling.\n     */\n    enableData?: boolean | undefined;\n    /**\n     * Enable boolean attribute handling.\n     */\n    enableBoolean?: boolean | undefined;\n    /**\n     * Enable dynamic property detection.\n     */\n    enableDynamic?: boolean | undefined;\n};\n/**\n * Function signature for attribute update operations.\n */\nexport type AttributeUpdateFunction = (oldEl: HTMLElement, newEl: HTMLElement) => void;\n//# sourceMappingURL=Attr.d.ts.map"],"names":[],"mappings":";;AAAO,kBAAA,UAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAAA,KAAA,YAAA,iBAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAAA,KAAA;AACA;;AAEA;AACA;AACA;AACO,KAAA,KAAA,GAAa,KAAe,CAAA,KAAA;AACnC;AACA;AACA;AACO,KAAA,iBAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,uBAAA,WAAA,WAAA,SAAA,WAAA;;;;"}