Full Code of livewire/livewire for AI

main 3987315641c4 cached
1057 files
5.9 MB
1.6M tokens
8215 symbols
1 requests
Download .txt
Showing preview only (6,425K chars total). Download the full file or copy to clipboard to get everything.
Repository: livewire/livewire
Branch: main
Commit: 3987315641c4
Files: 1057
Total size: 5.9 MB

Directory structure:
gitextract_frcs8fuf/

├── .claude/
│   ├── rules/
│   │   ├── adding-features.md
│   │   ├── general.md
│   │   ├── reviewing-prs.md
│   │   └── writing-docs.md
│   └── skills/
│       ├── review-pr/
│       │   └── SKILL.md
│       ├── summarize-activity/
│       │   └── SKILL.md
│       └── test/
│           └── SKILL.md
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── DISCUSSION_TEMPLATE/
│   │   ├── 1-help.yml
│   │   └── 5-bugs.yml
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   └── config.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── SECURITY.md
│   ├── scripts/
│   │   └── get-browser-test-shard.php
│   └── workflows/
│       ├── claude.yml
│       ├── test-main.yml
│       └── test-prs.yml
├── .gitignore
├── .prettierrc
├── .styleci.yml
├── .vscode/
│   └── launch.json
├── CLAUDE.md
├── LICENSE.md
├── PRD-wire-model-modifiers.md
├── README.md
├── close.bash
├── composer.json
├── config/
│   └── livewire.php
├── dist/
│   ├── livewire.csp.esm.js
│   ├── livewire.csp.js
│   ├── livewire.esm.js
│   ├── livewire.js
│   └── manifest.json
├── docs/
│   ├── .obsidian/
│   │   ├── app.json
│   │   ├── appearance.json
│   │   ├── community-plugins.json
│   │   ├── core-plugins-migration.json
│   │   ├── core-plugins.json
│   │   ├── hotkeys.json
│   │   └── plugins/
│   │       ├── obsidian-dynamic-toc/
│   │       │   ├── main.js
│   │       │   ├── manifest.json
│   │       │   └── styles.css
│   │       ├── obsidian-editor-shortcuts/
│   │       │   ├── main.js
│   │       │   └── manifest.json
│   │       └── obsidian-languagetool-plugin/
│   │           ├── main.js
│   │           ├── manifest.json
│   │           └── styles.css
│   ├── AGENTS.md
│   ├── __nav.md
│   ├── __outline.md
│   ├── actions.md
│   ├── alpine.md
│   ├── attribute-async.md
│   ├── attribute-computed.md
│   ├── attribute-defer.md
│   ├── attribute-isolate.md
│   ├── attribute-js.md
│   ├── attribute-json.md
│   ├── attribute-layout.md
│   ├── attribute-lazy.md
│   ├── attribute-locked.md
│   ├── attribute-modelable.md
│   ├── attribute-on.md
│   ├── attribute-reactive.md
│   ├── attribute-renderless.md
│   ├── attribute-session.md
│   ├── attribute-title.md
│   ├── attribute-transition.md
│   ├── attribute-url.md
│   ├── attribute-validate.md
│   ├── best-practices.md
│   ├── blade-components.md
│   ├── bundling.md
│   ├── component-hooks.md
│   ├── components.md
│   ├── computed-properties.md
│   ├── contribution-guide.md
│   ├── csp.md
│   ├── directive-island.md
│   ├── directive-persist.md
│   ├── directive-placeholder.md
│   ├── directive-teleport.md
│   ├── dirty.md
│   ├── downloads.md
│   ├── events.md
│   ├── forms.md
│   ├── how-livewire-works.md
│   ├── hydration.md
│   ├── installation.md
│   ├── islands.md
│   ├── javascript.md
│   ├── lazy.md
│   ├── lifecycle-hooks.md
│   ├── loading-states.md
│   ├── locked.md
│   ├── morph.md
│   ├── navigate.md
│   ├── nesting.md
│   ├── offline.md
│   ├── packages.md
│   ├── pages.md
│   ├── pagination.md
│   ├── polling.md
│   ├── properties.md
│   ├── quickstart.md
│   ├── redirecting.md
│   ├── rules/
│   │   ├── Casing rules.md
│   │   ├── Referencing file names in a sentance.md
│   │   ├── examples.md
│   │   ├── questions.md
│   │   └── rules.md
│   ├── security.md
│   ├── session-properties.md
│   ├── styles.md
│   ├── synthesizers.md
│   ├── teleport.md
│   ├── testing.md
│   ├── the-livewire-protocol.md
│   ├── troubleshooting.md
│   ├── understanding-nesting.md
│   ├── undocumented-features-todo.md
│   ├── upgrade-guide-scratch-file.md
│   ├── upgrading.md
│   ├── uploads.md
│   ├── url.md
│   ├── validation.md
│   ├── volt.md
│   ├── wire-bind.md
│   ├── wire-click.md
│   ├── wire-cloak.md
│   ├── wire-confirm.md
│   ├── wire-current.md
│   ├── wire-dirty.md
│   ├── wire-ignore.md
│   ├── wire-init.md
│   ├── wire-intersect.md
│   ├── wire-loading.md
│   ├── wire-model.md
│   ├── wire-navigate.md
│   ├── wire-offline.md
│   ├── wire-poll.md
│   ├── wire-ref.md
│   ├── wire-replace.md
│   ├── wire-show.md
│   ├── wire-sort.md
│   ├── wire-stream.md
│   ├── wire-submit.md
│   ├── wire-text.md
│   └── wire-transition.md
├── js/
│   ├── $wire.js
│   ├── component.js
│   ├── debounce.js
│   ├── diff.spec.js
│   ├── diffAndPatchRecursive.spec.js
│   ├── directives/
│   │   ├── index.js
│   │   ├── shared.js
│   │   ├── wire-bind.js
│   │   ├── wire-cloak.js
│   │   ├── wire-confirm.js
│   │   ├── wire-current.js
│   │   ├── wire-dirty.js
│   │   ├── wire-ignore.js
│   │   ├── wire-init.js
│   │   ├── wire-loading.js
│   │   ├── wire-model.js
│   │   ├── wire-navigate.js
│   │   ├── wire-offline.js
│   │   ├── wire-poll.js
│   │   ├── wire-replace.js
│   │   ├── wire-show.js
│   │   ├── wire-text.js
│   │   ├── wire-transition.js
│   │   └── wire-wildcard.js
│   ├── directives.js
│   ├── directives.spec.js
│   ├── evaluator.js
│   ├── evaluator.spec.js
│   ├── events.js
│   ├── features/
│   │   ├── index.js
│   │   ├── supportCssModules.js
│   │   ├── supportDataCurrent.js
│   │   ├── supportDataLoading.js
│   │   ├── supportDisablingFormsDuringRequest.js
│   │   ├── supportDispatches.js
│   │   ├── supportEntangle.js
│   │   ├── supportErrors.js
│   │   ├── supportFileDownloads.js
│   │   ├── supportFileUploads.js
│   │   ├── supportIslands.js
│   │   ├── supportJsEvaluation.js
│   │   ├── supportJsModules.js
│   │   ├── supportLaravelEcho.js
│   │   ├── supportListeners.js
│   │   ├── supportMorphDom.js
│   │   ├── supportNavigate.js
│   │   ├── supportPreserveScroll.js
│   │   ├── supportQueryString.js
│   │   ├── supportRedirects.js
│   │   ├── supportRefs.js
│   │   ├── supportScriptsAndAssets.js
│   │   ├── supportSlots.js
│   │   ├── supportStreaming.js
│   │   ├── supportWireIntersect.js
│   │   └── supportWireSort.js
│   ├── fragment.js
│   ├── hooks.js
│   ├── index.js
│   ├── island.js
│   ├── jsconfig.json
│   ├── lifecycle.js
│   ├── morph.js
│   ├── plugins/
│   │   ├── history/
│   │   │   ├── coordinator.js
│   │   │   ├── coordinator.spec.js
│   │   │   ├── index.js
│   │   │   ├── url.js
│   │   │   └── utils.js
│   │   └── navigate/
│   │       ├── bar.js
│   │       ├── bus.js
│   │       ├── fetch.js
│   │       ├── history.js
│   │       ├── index.js
│   │       ├── links.js
│   │       ├── page.js
│   │       ├── persist.js
│   │       ├── popover.js
│   │       ├── prefetch.js
│   │       ├── scroll.js
│   │       └── teleport.js
│   ├── request/
│   │   ├── action.js
│   │   ├── index.js
│   │   ├── interactions.js
│   │   ├── interceptor.js
│   │   ├── legacy.js
│   │   ├── message.js
│   │   ├── messageBus.js
│   │   ├── request.js
│   │   └── request.spec.js
│   ├── store.js
│   ├── utils/
│   │   └── modal.js
│   └── utils.js
├── legacy_tests/
│   ├── AppLayout.php
│   ├── AppLayoutWithConstructor.php
│   ├── AppLayoutWithProperties.php
│   ├── Browser/
│   │   ├── Actions/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Alpine/
│   │   │   ├── ClickComponent.php
│   │   │   ├── Component.php
│   │   │   ├── Directive/
│   │   │   │   ├── DirectiveComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── Dispatch/
│   │   │   │   ├── DispatchComponent.php
│   │   │   │   ├── DispatchNestedComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── Entangle/
│   │   │   │   ├── ChangeMultipleDataAtTheSameTime.php
│   │   │   │   ├── Component.php
│   │   │   │   ├── DeferArrayDataUpdates.php
│   │   │   │   ├── DeferDataUpdates.php
│   │   │   │   ├── EntangleConsecutiveActions.php
│   │   │   │   ├── EntangleNestedArray.php
│   │   │   │   ├── EntangleNestedChildComponent.php
│   │   │   │   ├── EntangleNestedParentComponent.php
│   │   │   │   ├── EntangleResponseCheck.php
│   │   │   │   ├── Test.php
│   │   │   │   ├── ToggleEntangled.php
│   │   │   │   ├── ToggleEntangledTurbo.php
│   │   │   │   ├── view-toggle-entangled-turbo.blade.php
│   │   │   │   └── view.blade.php
│   │   │   ├── MorphingAtSymbolAttributeComponent.php
│   │   │   ├── SimultaneousCallsComponent.php
│   │   │   ├── SmallComponent.php
│   │   │   ├── Test.php
│   │   │   ├── Transition/
│   │   │   │   ├── DollarSignWireComponent.php
│   │   │   │   ├── EntangleComponent.php
│   │   │   │   ├── EntangleDeferComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── small-component.blade.php
│   │   │   └── view.blade.php
│   │   ├── DataBinding/
│   │   │   ├── AutoFill/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── Defer/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── DirtyDetection/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputCheckboxRadio/
│   │   │   │   ├── CheckboxesWithIntsComponent.php
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputSelect/
│   │   │   │   ├── Component.php
│   │   │   │   ├── SelectWithIncorrectSelectedOnOption.php
│   │   │   │   ├── SelectWithSelectedOnOption.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputText/
│   │   │   │   ├── Component.php
│   │   │   │   ├── EmptyWireModelComponent.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputTextarea/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   └── Lazy/
│   │   │       ├── LazyInputsWithUpdatesDisplayedComponent.php
│   │   │       └── Test.php
│   │   ├── Dirty/
│   │   │   └── Test.php
│   │   ├── DuskCommand.php
│   │   ├── DynamicComponentLoading/
│   │   │   ├── ClickableComponent.php
│   │   │   ├── Test.php
│   │   │   ├── view-clickable-component.blade.php
│   │   │   ├── view-dynamic-component.blade.php
│   │   │   └── view-load-dynamic-component.blade.php
│   │   ├── Events/
│   │   │   ├── Component.php
│   │   │   ├── NestedComponentA.php
│   │   │   ├── NestedComponentB.php
│   │   │   ├── Test.php
│   │   │   ├── nested-a.blade.php
│   │   │   ├── nested-b.blade.php
│   │   │   └── view.blade.php
│   │   ├── Extensions/
│   │   │   └── Test.php
│   │   ├── FileDownloads/
│   │   │   ├── Test.php
│   │   │   ├── download & target.txt
│   │   │   ├── download & target2.txt
│   │   │   ├── download-target.txt
│   │   │   └── download-target2.txt
│   │   ├── GlobalLivewire/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Headers/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Hooks/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Init/
│   │   │   └── Test.php
│   │   ├── Loading/
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithLoadingDelays.php
│   │   │   ├── CustomDisplayProperty.php
│   │   │   ├── DataLoadingTest.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── MagicActions/
│   │   │   └── Test.php
│   │   ├── Morphdom/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Nesting/
│   │   │   ├── Component.php
│   │   │   ├── NestedComponent.php
│   │   │   ├── RenderContextComponent.php
│   │   │   └── Test.php
│   │   ├── Offline/
│   │   │   └── Test.php
│   │   ├── Polling/
│   │   │   └── Test.php
│   │   ├── PollingViewport/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Prefetch/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── ProductionTest/
│   │   │   └── Test.php
│   │   ├── QueryString/
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithAliases.php
│   │   │   ├── ComponentWithExcepts.php
│   │   │   ├── ComponentWithMethodInsteadOfProperty.php
│   │   │   ├── ComponentWithTraits.php
│   │   │   ├── DirtyDataComponent.php
│   │   │   ├── NestedComponent.php
│   │   │   ├── ParentComponentWithNoQueryString.php
│   │   │   ├── RedirectLinkToQueryStringComponent.php
│   │   │   ├── Test.php
│   │   │   ├── WithSearch.php
│   │   │   ├── component-with-traits.blade.php
│   │   │   ├── dirty-data.blade.php
│   │   │   ├── excepts.blade.php
│   │   │   ├── nested-view.blade.php
│   │   │   └── view.blade.php
│   │   ├── Redirects/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Replace/
│   │   │   └── Test.php
│   │   ├── ScriptTag/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Stacks/
│   │   │   ├── ChildComponent.php
│   │   │   ├── Component.php
│   │   │   └── Test.php
│   │   ├── StringNormalization/
│   │   │   ├── Component.php
│   │   │   ├── Model.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── SupportCollections/
│   │   │   ├── Component.php
│   │   │   └── Test.php
│   │   ├── SupportDateTimes/
│   │   │   └── Test.php
│   │   ├── SupportEnums/
│   │   │   └── Test.php
│   │   ├── SupportStringables/
│   │   │   └── Test.php
│   │   ├── SupportsSafari.php
│   │   ├── SyncHistory/
│   │   │   ├── ChildComponent.php
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithAlpineEntangle.php
│   │   │   ├── ComponentWithMount.php
│   │   │   ├── ComponentWithOptionalParameter.php
│   │   │   ├── ComponentWithoutQueryString.php
│   │   │   ├── SingleRadioComponent.php
│   │   │   ├── Step.php
│   │   │   ├── Test.php
│   │   │   ├── child.blade.php
│   │   │   ├── component-with-mount.blade.php
│   │   │   ├── single-radio-component.blade.php
│   │   │   ├── view-without-subcomponent.blade.php
│   │   │   └── view.blade.php
│   │   ├── TestCase.php
│   │   ├── _runtime_components.php
│   │   ├── console/
│   │   │   └── .gitignore
│   │   ├── screenshots/
│   │   │   └── .gitignore
│   │   ├── source/
│   │   │   └── .gitignore
│   │   └── views/
│   │       ├── components/
│   │       │   ├── blade-component.blade.php
│   │       │   ├── layouts/
│   │       │   │   ├── app-for-turbo-views.blade.php
│   │       │   │   └── app.blade.php
│   │       │   └── stack-child.blade.php
│   │       ├── layouts/
│   │       │   ├── app-for-normal-views.blade.php
│   │       │   └── app.blade.php
│   │       └── turbo.blade.php
│   ├── HttpKernel.php
│   ├── TestEnum.php
│   └── Unit/
│       ├── TestCase.php
│       └── views/
│           ├── .gitignore
│           ├── assets-directive.blade.php
│           ├── attribute-bag-macros.blade.php
│           ├── components/
│           │   └── input.blade.php
│           ├── dump-errors-nested-component.blade.php
│           ├── dump-errors.blade.php
│           ├── entangle.blade.php
│           ├── execute-callback.blade.php
│           ├── file-download-component.blade.php
│           ├── fillable-view.blade.php
│           ├── foreach-models-arrow-title-view.blade.php
│           ├── isset-foo-bar.blade.php
│           ├── isset-foo.blade.php
│           ├── layouts/
│           │   ├── app-anonymous-component-with-required-prop.blade.php
│           │   ├── app-anonymous-component.blade.php
│           │   ├── app-custom-section.blade.php
│           │   ├── app-custom-slot.blade.php
│           │   ├── app-extends.blade.php
│           │   ├── app-from-class-component.blade.php
│           │   ├── app-with-bar.blade.php
│           │   ├── app-with-baz-hardcoded.blade.php
│           │   ├── app.blade.php
│           │   └── data-test.blade.php
│           ├── load-balancer-child.blade.php
│           ├── load-balancer-parent.blade.php
│           ├── model-arrow-title-view.blade.php
│           ├── null-view.blade.php
│           ├── render-component.blade.php
│           ├── rootless-view.blade.php
│           ├── show-child.blade.php
│           ├── show-children.blade.php
│           ├── show-html.blade.php
│           ├── show-name-with-this.blade.php
│           ├── show-name.blade.php
│           ├── show-property-value.blade.php
│           ├── show-session-flash.blade.php
│           ├── this-keyword.blade.php
│           ├── var-dump-foo-bar.blade.php
│           ├── var-dump-foo.blade.php
│           └── wireables.blade.php
├── package.json
├── phpunit.xml.dist
├── scripts/
│   ├── admin
│   ├── build.js
│   ├── cleanup-worktree.sh
│   ├── laravel.php
│   ├── setup.sh
│   ├── stubs/
│   │   └── FEATURE/
│   │       ├── FEATURE.php.stub
│   │       └── Test.php.stub
│   └── worktree.sh
├── src/
│   ├── Attribute.php
│   ├── Attributes/
│   │   ├── Async.php
│   │   ├── Computed.php
│   │   ├── Defer.php
│   │   ├── Isolate.php
│   │   ├── Js.php
│   │   ├── Json.php
│   │   ├── Layout.php
│   │   ├── Lazy.php
│   │   ├── Locked.php
│   │   ├── Modelable.php
│   │   ├── On.php
│   │   ├── Reactive.php
│   │   ├── Renderless.php
│   │   ├── Rule.php
│   │   ├── Session.php
│   │   ├── Title.php
│   │   ├── Transition.php
│   │   ├── Url.php
│   │   └── Validate.php
│   ├── Compiler/
│   │   ├── CacheManager.php
│   │   ├── Compiler.php
│   │   ├── Fixtures/
│   │   │   ├── mfc-component/
│   │   │   │   ├── mfc-component.blade.php
│   │   │   │   ├── mfc-component.js
│   │   │   │   └── mfc-component.php
│   │   │   ├── sfc-component-with-assets-and-script-directives.blade.php
│   │   │   ├── sfc-component-with-blade-script.blade.php
│   │   │   ├── sfc-component-with-imports.blade.php
│   │   │   ├── sfc-component-with-nested-script.blade.php
│   │   │   ├── sfc-component-with-only-nested-script.blade.php
│   │   │   ├── sfc-component-with-only-nested-style.blade.php
│   │   │   ├── sfc-component-with-placeholder-in-island.blade.php
│   │   │   ├── sfc-component-with-placeholder.blade.php
│   │   │   ├── sfc-component-with-style-in-verbatim.blade.php
│   │   │   ├── sfc-component-without-trailing-semicolon.blade.php
│   │   │   ├── sfc-component.blade.php
│   │   │   └── test.php
│   │   ├── Parser/
│   │   │   ├── MultiFileParser.php
│   │   │   ├── Parser.php
│   │   │   └── SingleFileParser.php
│   │   └── UnitTest.php
│   ├── Component.php
│   ├── ComponentHook.php
│   ├── ComponentHookRegistry.php
│   ├── Concerns/
│   │   ├── InteractsWithProperties.php
│   │   └── Tests/
│   │       ├── ComponentCanBeFilledUnitTest.php
│   │       ├── ComponentCanReturnPublicPropertiesUnitTest.php
│   │       └── ResetPropertiesUnitTest.php
│   ├── Drawer/
│   │   ├── BaseUtils.php
│   │   ├── ImplicitRouteBinding.php
│   │   ├── Regexes.php
│   │   ├── Tests/
│   │   │   └── ImplicitRouteBindingUnitTest.php
│   │   ├── UnitTest.php
│   │   └── Utils.php
│   ├── EventBus.php
│   ├── Exceptions/
│   │   ├── BypassViewHandler.php
│   │   ├── ComponentAttributeMissingOnDynamicComponentException.php
│   │   ├── ComponentNotFoundException.php
│   │   ├── EventHandlerDoesNotExist.php
│   │   ├── LivewireReleaseTokenMismatchException.php
│   │   ├── MaxNestingDepthExceededException.php
│   │   ├── MethodNotFoundException.php
│   │   ├── MissingRulesException.php
│   │   ├── ModelableRootHasWireModelException.php
│   │   ├── NonPublicComponentMethodCall.php
│   │   ├── PayloadTooLargeException.php
│   │   ├── PropertyNotFoundException.php
│   │   ├── PublicPropertyNotFoundException.php
│   │   ├── RootTagMissingFromViewException.php
│   │   ├── TooManyCallsException.php
│   │   └── TooManyComponentsException.php
│   ├── Facades/
│   │   └── GenerateSignedUploadUrlFacade.php
│   ├── Factory/
│   │   ├── Factory.php
│   │   ├── Fixtures/
│   │   │   ├── SimpleComponent.php
│   │   │   ├── simple-multi-file-component/
│   │   │   │   ├── simple-multi-file-component.blade.php
│   │   │   │   └── simple-multi-file-component.php
│   │   │   └── simple-single-file-component.blade.php
│   │   └── UnitTest.php
│   ├── Features/
│   │   ├── SupportAccessingParent/
│   │   │   └── BrowserTest.php
│   │   ├── SupportAsync/
│   │   │   └── BaseAsync.php
│   │   ├── SupportAttributes/
│   │   │   ├── Attribute.php
│   │   │   ├── AttributeCollection.php
│   │   │   ├── AttributeLevel.php
│   │   │   ├── HandlesAttributes.php
│   │   │   ├── SupportAttributes.php
│   │   │   └── UnitTest.php
│   │   ├── SupportAutoInjectedAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportAutoInjectedAssets.php
│   │   │   └── UnitTest.php
│   │   ├── SupportBladeAttributes/
│   │   │   ├── SupportBladeAttributes.php
│   │   │   └── UnitTest.php
│   │   ├── SupportCSP/
│   │   │   └── BrowserTest.php
│   │   ├── SupportChecksumErrorDebugging/
│   │   │   └── SupportChecksumErrorDebugging.php
│   │   ├── SupportCompiledWireKeys/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportCompiledWireKeys.php
│   │   │   └── UnitTest.php
│   │   ├── SupportComputed/
│   │   │   ├── BaseComputed.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── CannotCallComputedDirectlyException.php
│   │   │   ├── SupportLegacyComputedPropertySyntax.php
│   │   │   └── UnitTest.php
│   │   ├── SupportConsoleCommands/
│   │   │   ├── Commands/
│   │   │   │   ├── AttributeCommand.php
│   │   │   │   ├── ConfigCommand.php
│   │   │   │   ├── ConvertCommand.php
│   │   │   │   ├── FileManipulationCommand.php
│   │   │   │   ├── FormCommand.php
│   │   │   │   ├── LayoutCommand.php
│   │   │   │   ├── LivewireMakeCommand.php
│   │   │   │   ├── MakeCommand.php
│   │   │   │   ├── PublishCommand.php
│   │   │   │   ├── S3CleanupCommand.php
│   │   │   │   ├── StubsCommand.php
│   │   │   │   ├── livewire-mfc-class.stub
│   │   │   │   ├── livewire-mfc-css.stub
│   │   │   │   ├── livewire-mfc-js.stub
│   │   │   │   ├── livewire-mfc-test.stub
│   │   │   │   ├── livewire-mfc-view.stub
│   │   │   │   ├── livewire-sfc.stub
│   │   │   │   ├── livewire.attribute.stub
│   │   │   │   ├── livewire.form.stub
│   │   │   │   ├── livewire.inline.stub
│   │   │   │   ├── livewire.layout.stub
│   │   │   │   ├── livewire.pest.stub
│   │   │   │   ├── livewire.stub
│   │   │   │   ├── livewire.test.stub
│   │   │   │   ├── livewire.view.stub
│   │   │   │   └── the-tao.php
│   │   │   ├── SupportConsoleCommands.php
│   │   │   └── Tests/
│   │   │       ├── AttributeCommandUnitTest.php
│   │   │       ├── FormCommandUnitTest.php
│   │   │       ├── LayoutCommandUnitTest.php
│   │   │       ├── MakeCommandUnitTest.php
│   │   │       └── StubCommandUnitTest.php
│   │   ├── SupportCssModules/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportCssModules.php
│   │   │   └── fixtures/
│   │   │       └── nested/
│   │   │           └── component/
│   │   │               └── index.blade.php
│   │   ├── SupportDataBinding/
│   │   │   ├── BrowserTest.php
│   │   │   └── MergeSnapshotBrowserTest.php
│   │   ├── SupportDataLoading/
│   │   │   └── BrowserTest.php
│   │   ├── SupportDisablingBackButtonCache/
│   │   │   ├── DisableBackButtonCacheMiddleware.php
│   │   │   ├── HandlesDisablingBackButtonCache.php
│   │   │   ├── SupportDisablingBackButtonCache.php
│   │   │   └── UnitTest.php
│   │   ├── SupportDisablingFormsDuringRequest/
│   │   │   └── BrowserTest.php
│   │   ├── SupportEntangle/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportEntangle.php
│   │   │   └── UnitTest.php
│   │   ├── SupportErrorResponses/
│   │   │   └── BrowserTest.php
│   │   ├── SupportEvents/
│   │   │   ├── BaseOn.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── EchoBrowserTest.php
│   │   │   ├── Event.php
│   │   │   ├── HandlesEvents.php
│   │   │   ├── SupportEvents.php
│   │   │   ├── TestsEvents.php
│   │   │   ├── UnitTest.php
│   │   │   └── fake-echo.js
│   │   ├── SupportFileDownloads/
│   │   │   ├── SupportFileDownloads.php
│   │   │   ├── TestsFileDownloads.php
│   │   │   └── UnitTest.php
│   │   ├── SupportFileUploads/
│   │   │   ├── BrowserTest.php
│   │   │   ├── FileNotPreviewableException.php
│   │   │   ├── FilePreviewController.php
│   │   │   ├── FileUploadConfiguration.php
│   │   │   ├── FileUploadController.php
│   │   │   ├── FileUploadSynth.php
│   │   │   ├── GenerateSignedUploadUrl.php
│   │   │   ├── MissingFileUploadsTraitException.php
│   │   │   ├── S3DoesntSupportMultipleFileUploads.php
│   │   │   ├── SupportFileUploads.php
│   │   │   ├── TemporaryUploadedFile.php
│   │   │   ├── UnitTest.php
│   │   │   └── WithFileUploads.php
│   │   ├── SupportFormObjects/
│   │   │   ├── Form.php
│   │   │   ├── FormObjectSynth.php
│   │   │   ├── HandlesFormObjects.php
│   │   │   ├── SupportFormObjects.php
│   │   │   └── UnitTest.php
│   │   ├── SupportHtmlAttributeForwarding/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesHtmlAttributeForwarding.php
│   │   │   ├── SupportHtmlAttributeForwarding.php
│   │   │   └── UnitTest.php
│   │   ├── SupportInterceptors/
│   │   │   └── BrowserTest.php
│   │   ├── SupportIslands/
│   │   │   ├── BrowserTest.php
│   │   │   ├── Compiler/
│   │   │   │   └── IslandCompiler.php
│   │   │   ├── HandlesIslands.php
│   │   │   ├── SupportIslands.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       └── twelve-islands.blade.php
│   │   ├── SupportIsolating/
│   │   │   ├── BaseIsolate.php
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportIsolating.php
│   │   ├── SupportJsComponent/
│   │   │   └── BrowserTest.php
│   │   ├── SupportJsEvaluation/
│   │   │   ├── BaseJs.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesJsEvaluation.php
│   │   │   ├── SupportJsEvaluation.php
│   │   │   ├── TestsJsEvaluation.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── mfc-component-with-dollar-js-magic/
│   │   │       │   ├── mfc-component-with-dollar-js-magic.blade.php
│   │   │       │   ├── mfc-component-with-dollar-js-magic.js
│   │   │       │   └── mfc-component-with-dollar-js-magic.php
│   │   │       └── sfc-component-with-dollar-js-magic.blade.php
│   │   ├── SupportJsModules/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportJsModules.php
│   │   │   └── fixtures/
│   │   │       └── nested/
│   │   │           └── component/
│   │   │               └── index.blade.php
│   │   ├── SupportJson/
│   │   │   ├── BaseJson.php
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportJson.php
│   │   ├── SupportLargePayloads/
│   │   │   └── BrowserTest.php
│   │   ├── SupportLazyLoading/
│   │   │   ├── BaseDefer.php
│   │   │   ├── BaseLazy.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportLazyLoading.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLegacyModels/
│   │   │   ├── CannotBindToModelDataWithoutValidationRuleException.php
│   │   │   ├── EloquentCollectionSynth.php
│   │   │   ├── EloquentModelSynth.php
│   │   │   ├── SupportLegacyModels.php
│   │   │   └── Tests/
│   │   │       ├── Concerns/
│   │   │       │   └── EnableLegacyModels.php
│   │   │       ├── DataBindingModelsBrowserTest.php
│   │   │       ├── EagerLoadingBrowserTest.php
│   │   │       ├── EloquentCollectionsBrowserTest.php
│   │   │       ├── EloquentModelValidationUnitTest.php
│   │   │       ├── ModelAttributesCanBeBoundDirectlyUnitTest.php
│   │   │       ├── ModelAttributesCanBeCastUnitTest.php
│   │   │       ├── ModelCollectionAttributesCanBeBoundDirectlyUnitTest.php
│   │   │       ├── ModelValidationUnitTest.php
│   │   │       ├── ModelsCanBeFilledUnitTest.php
│   │   │       ├── PublicPropertyHydrationAndDehydrationUnitTest.php
│   │   │       └── TestableLivewireCanAssertModelUnitTest.php
│   │   ├── SupportLifecycleHooks/
│   │   │   ├── BrowserTest.php
│   │   │   ├── DirectlyCallingLifecycleHooksNotAllowedException.php
│   │   │   ├── SupportLifecycleHooks.php
│   │   │   ├── TraitsUnitTest.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLocales/
│   │   │   ├── SupportLocales.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLockedProperties/
│   │   │   ├── BaseLocked.php
│   │   │   ├── CannotUpdateLockedPropertyException.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMagicActions/
│   │   │   └── SupportMagicActions.php
│   │   ├── SupportMagicErrors/
│   │   │   └── BrowserTest.php
│   │   ├── SupportModels/
│   │   │   ├── BrowserTest.php
│   │   │   ├── EloquentCollectionSynth.php
│   │   │   ├── IsLazy.php
│   │   │   ├── ModelSynth.php
│   │   │   ├── SupportModels.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMorphAwareBladeCompilation/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportMorphAwareBladeCompilation.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMultipleRootElementDetection/
│   │   │   ├── MultipleRootElementsDetectedException.php
│   │   │   ├── SupportMultipleRootElementDetection.php
│   │   │   └── UnitTest.php
│   │   ├── SupportNavigate/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HooksBrowserTest.php
│   │   │   ├── SupportNavigate.php
│   │   │   └── test-views/
│   │   │       ├── changed-layout.blade.php
│   │   │       ├── changed-tracked-layout.blade.php
│   │   │       ├── html-attributes1.blade.php
│   │   │       ├── html-attributes2.blade.php
│   │   │       ├── layout-with-navigate-outside.blade.php
│   │   │       ├── layout-with-noscript.blade.php
│   │   │       ├── layout.blade.php
│   │   │       ├── navbar-sidebar.blade.php
│   │   │       ├── test-navigate-asset.js
│   │   │       └── tracked-layout.blade.php
│   │   ├── SupportNestedComponentListeners/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportNestedComponentListeners.php
│   │   ├── SupportNestingComponents/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportNestingComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportOctane/
│   │   │   └── UnitTest.php
│   │   ├── SupportPageComponents/
│   │   │   ├── BaseLayout.php
│   │   │   ├── BaseTitle.php
│   │   │   ├── HandlesPageComponents.php
│   │   │   ├── MissingLayoutException.php
│   │   │   ├── PageComponentConfig.php
│   │   │   ├── SupportPageComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportPagination/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesPagination.php
│   │   │   ├── PaginationUrl.php
│   │   │   ├── SupportPagination.php
│   │   │   ├── UnitTest.php
│   │   │   ├── WithoutUrlPagination.php
│   │   │   └── views/
│   │   │       ├── bootstrap.blade.php
│   │   │       ├── simple-bootstrap.blade.php
│   │   │       ├── simple-tailwind.blade.php
│   │   │       └── tailwind.blade.php
│   │   ├── SupportPolling/
│   │   │   └── BrowserTest.php
│   │   ├── SupportPreserveScroll/
│   │   │   └── BrowserTest.php
│   │   ├── SupportQueryString/
│   │   │   ├── BaseUrl.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportQueryString.php
│   │   │   └── UnitTest.php
│   │   ├── SupportReactiveProps/
│   │   │   ├── BaseReactive.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── CannotMutateReactivePropException.php
│   │   │   ├── SupportReactiveProps.php
│   │   │   └── UnitTest.php
│   │   ├── SupportRedirects/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesRedirects.php
│   │   │   ├── Redirector.php
│   │   │   ├── SupportRedirects.php
│   │   │   ├── TestsRedirects.php
│   │   │   └── UnitTest.php
│   │   ├── SupportReleaseTokens/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesReleaseTokens.php
│   │   │   ├── ReleaseToken.php
│   │   │   ├── SupportReleaseTokens.php
│   │   │   └── UnitTest.php
│   │   ├── SupportRequestInteractions/
│   │   │   └── BrowserTest.php
│   │   ├── SupportScriptsAndAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportScriptsAndAssets.php
│   │   │   ├── fixtures/
│   │   │   │   └── lazy-with-assets.blade.php
│   │   │   ├── non-livewire-asset.js
│   │   │   └── test.js
│   │   ├── SupportSession/
│   │   │   ├── BaseSession.php
│   │   │   ├── BrowserTest.php
│   │   │   └── UnitTest.php
│   │   ├── SupportSingleAndMultiFileComponents/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportSingleAndMultiFileComponents.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── mfc-counter/
│   │   │       │   ├── mfc-counter.blade.php
│   │   │       │   └── mfc-counter.php
│   │   │       ├── sfc-component-with-render-and-data.blade.php
│   │   │       ├── sfc-counter.blade.php
│   │   │       ├── sfc-scripts-with-js-action.blade.php
│   │   │       └── sfc-scripts.blade.php
│   │   ├── SupportSlots/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesSlots.php
│   │   │   ├── PlaceholderSlot.php
│   │   │   ├── Slot.php
│   │   │   ├── SlotProxy.php
│   │   │   ├── SupportSlots.php
│   │   │   └── UnitTest.php
│   │   ├── SupportStdClasses/
│   │   │   └── UnitTest.php
│   │   ├── SupportStreaming/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesStreaming.php
│   │   │   ├── StreamManager.php
│   │   │   └── SupportStreaming.php
│   │   ├── SupportTeleporting/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportTeleporting.php
│   │   ├── SupportTesting/
│   │   │   ├── ComponentState.php
│   │   │   ├── DuskBrowserMacros.php
│   │   │   ├── DuskTestable.php
│   │   │   ├── InitialRender.php
│   │   │   ├── MakesAssertions.php
│   │   │   ├── Render.php
│   │   │   ├── RequestBroker.php
│   │   │   ├── ShowDuskComponent.php
│   │   │   ├── SubsequentRender.php
│   │   │   ├── SupportTesting.php
│   │   │   ├── Testable.php
│   │   │   ├── Tests/
│   │   │   │   ├── TestableLivewireCanAssertNoRedirectUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertPropertiesUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertRedirectToRouteUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertRedirectUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertStatusCodesUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertViewIsUnitTest.php
│   │   │   │   └── TestableLivewireCanBeInvaded.php
│   │   │   └── UnitTest.php
│   │   ├── SupportTransitions/
│   │   │   ├── BaseTransitionAttribute.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesTransitions.php
│   │   │   └── SupportTransitions.php
│   │   ├── SupportValidation/
│   │   │   ├── BaseRule.php
│   │   │   ├── BaseValidate.php
│   │   │   ├── HandlesValidation.php
│   │   │   ├── SupportValidation.php
│   │   │   ├── TestsValidation.php
│   │   │   └── UnitTest.php
│   │   ├── SupportWireBind/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireConfirm/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireCurrent/
│   │   │   ├── BrowserTest.php
│   │   │   └── test-views/
│   │   │       └── navbar-sidebar.blade.php
│   │   ├── SupportWireIgnore/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireLoading/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireModelingNestedComponents/
│   │   │   ├── BaseModelable.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportWireModelingNestedComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportWireRef/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportWireRef.php
│   │   ├── SupportWireShow/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireSort/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireText/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireables/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportWireables.php
│   │   │   ├── UnitTest.php
│   │   │   └── WireableSynth.php
│   │   └── SupportWithMethod/
│   │       ├── SupportWithMethod.php
│   │       └── UnitTest.php
│   ├── Finder/
│   │   ├── Finder.php
│   │   ├── Fixtures/
│   │   │   ├── FinderTestClassComponent.php
│   │   │   ├── IndexComponent/
│   │   │   │   └── Index.php
│   │   │   ├── Nested/
│   │   │   │   └── NestedComponent.php
│   │   │   ├── NestedIndex/
│   │   │   │   └── IndexViewComponent/
│   │   │   │       └── Index.php
│   │   │   ├── NestedSelfNamed/
│   │   │   │   └── SelfNamedViewComponent/
│   │   │   │       └── SelfNamedViewComponent.php
│   │   │   ├── SelfNamedComponent/
│   │   │   │   └── SelfNamedComponent.php
│   │   │   ├── finder-test-single-file-component.blade.php
│   │   │   ├── multi-file-index/
│   │   │   │   ├── index.blade.php
│   │   │   │   └── index.php
│   │   │   ├── multi-file-self-named/
│   │   │   │   ├── multi-file-self-named.blade.php
│   │   │   │   └── multi-file-self-named.php
│   │   │   ├── multi-file-test-component/
│   │   │   │   ├── multi-file-test-component.blade.php
│   │   │   │   └── multi-file-test-component.php
│   │   │   ├── nested-view-based/
│   │   │   │   ├── index/
│   │   │   │   │   ├── index.blade.php
│   │   │   │   │   └── index.php
│   │   │   │   ├── index-named-component/
│   │   │   │   │   └── index.blade.php
│   │   │   │   ├── index.blade.php
│   │   │   │   └── self-named-component/
│   │   │   │       └── self-named-component.blade.php
│   │   │   ├── self-named-component/
│   │   │   │   └── self-named-component.blade.php
│   │   │   ├── views/
│   │   │   │   ├── nested-index/
│   │   │   │   │   └── index-view-component.blade.php
│   │   │   │   └── nested-self-named/
│   │   │   │       └── self-named-view-component/
│   │   │   │           └── self-named-view-component.blade.php
│   │   │   ├── ⚡finder-test-single-file-component-with-zap.blade.php
│   │   │   └── ⚡multi-file-zap-component/
│   │   │       ├── multi-file-zap-component.blade.php
│   │   │       └── multi-file-zap-component.php
│   │   └── UnitTest.php
│   ├── Form.php
│   ├── ImplicitlyBoundMethod.php
│   ├── Livewire.php
│   ├── LivewireManager.php
│   ├── LivewireServiceProvider.php
│   ├── Mechanisms/
│   │   ├── ClearCachedFiles.php
│   │   ├── CompileLivewireTags/
│   │   │   ├── CompileLivewireTags.php
│   │   │   ├── LivewireTagPrecompiler.php
│   │   │   └── UnitTest.php
│   │   ├── DataStore.php
│   │   ├── ExtendBlade/
│   │   │   ├── DeterministicBladeKeys.php
│   │   │   ├── ExtendBlade.php
│   │   │   ├── ExtendedCompilerEngine.php
│   │   │   └── UnitTest.php
│   │   ├── FrontendAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── EndpointResolverIntegrationUnitTest.php
│   │   │   ├── FrontendAssets.php
│   │   │   └── UnitTest.php
│   │   ├── HandleComponents/
│   │   │   ├── BaseRenderless.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── Checksum.php
│   │   │   ├── ChecksumRateLimitUnitTest.php
│   │   │   ├── ComponentContext.php
│   │   │   ├── CorruptComponentPayloadException.php
│   │   │   ├── HandleComponents.php
│   │   │   ├── NestingDepthUnitTest.php
│   │   │   ├── SecurityPolicy.php
│   │   │   ├── SecurityPolicyUnitTest.php
│   │   │   ├── Synthesizers/
│   │   │   │   ├── ArraySynth.php
│   │   │   │   ├── CarbonSynth.php
│   │   │   │   ├── CollectionSynth.php
│   │   │   │   ├── EnumSynth.php
│   │   │   │   ├── FloatSynth.php
│   │   │   │   ├── IntSynth.php
│   │   │   │   ├── StdClassSynth.php
│   │   │   │   ├── StringableSynth.php
│   │   │   │   ├── Synth.php
│   │   │   │   ├── Tests/
│   │   │   │   │   ├── CarbonSynthUnitTest.php
│   │   │   │   │   ├── DataBindingUnitTest.php
│   │   │   │   │   ├── EnumUnitTest.php
│   │   │   │   │   ├── FloatSynthUnitTest.php
│   │   │   │   │   ├── IntSynthUnitTest.php
│   │   │   │   │   └── TypedPropertiesUnitTest.php
│   │   │   │   └── UnitTest.php
│   │   │   ├── UnitTest.php
│   │   │   └── ViewContext.php
│   │   ├── HandleRequests/
│   │   │   ├── BrowserTest.php
│   │   │   ├── CustomUpdateRouteUnitTest.php
│   │   │   ├── EndpointResolver.php
│   │   │   ├── EndpointResolverUnitTest.php
│   │   │   ├── EnforceWebMiddlewareUnitTest.php
│   │   │   ├── HandleRequests.php
│   │   │   ├── PayloadGuardsUnitTest.php
│   │   │   ├── RequireLivewireHeaders.php
│   │   │   ├── StreamedResponse.php
│   │   │   └── UnitTest.php
│   │   ├── HandleRouting/
│   │   │   ├── HandleRouting.php
│   │   │   ├── LivewirePageController.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── sfc-counter.blade.php
│   │   │       └── sfc-post.blade.php
│   │   ├── Mechanism.php
│   │   ├── PersistentMiddleware/
│   │   │   ├── BrowserTest.php
│   │   │   ├── PersistentMiddleware.php
│   │   │   └── UnitTest.php
│   │   ├── RenderComponent.php
│   │   └── Tests/
│   │       ├── ComponentSkipRenderUnitTest.php
│   │       ├── CustomUpdateRouteBrowserTest.php
│   │       ├── DirectlyAssignComponentParametersAsPropertiesUnitTest.php
│   │       ├── InlineBladeTemplatesUnitTest.php
│   │       ├── LivewireDirectiveUnitTest.php
│   │       └── LoadBalancerCompatibilityUnitTest.php
│   ├── Performance/
│   │   └── RenderPerformanceBenchmarkTest.php
│   ├── Pipe.php
│   ├── Tests/
│   │   ├── AlpineIntersectBrowserTest.php
│   │   ├── AlpineMorphingBrowserTest.php
│   │   ├── AlpineUiBrowserTest.php
│   │   ├── ComponentDependencyInjectionUnitTest.php
│   │   ├── ComponentIsMacroableUnitTest.php
│   │   ├── ComponentMethodBindingsUnitTest.php
│   │   ├── ComponentUsesCustomNameUnitTest.php
│   │   ├── ComponentWontConflictWithPredefinedClasses.php
│   │   ├── ComponentsAreSecureUnitTest.php
│   │   ├── InvadeHelperUnitTest.php
│   │   ├── JavascriptHooksBrowserTest.php
│   │   ├── JavascriptUnwatchBrowserTest.php
│   │   ├── LifecycleHooksUnitTest.php
│   │   ├── LivewireAssetsDirectiveUnitTest.php
│   │   ├── LivewireRouteCachingUnitTest.php
│   │   ├── PublicPropertiesAreInitializedUnitTest.php
│   │   ├── PublicPropertyHydrationHooksUnitTest.php
│   │   ├── QueryParamsUnitTest.php
│   │   ├── RequestPoolingBrowserTest.php
│   │   ├── UpdatingTableRowsTest.php
│   │   ├── VirtualPropertyUnitTest.php
│   │   ├── WireModelBrowserTest.php
│   │   └── WorksOnLoadBalancersUnitTest.php
│   ├── Transparency.php
│   ├── WireDirective.php
│   ├── Wireable.php
│   ├── WithFileUploads.php
│   ├── WithPagination.php
│   ├── WithoutUrlPagination.php
│   ├── Wrapped.php
│   └── helpers.php
├── stubs/
│   ├── DuskComponent.stub
│   ├── DuskTest.stub
│   └── DuskView.stub
├── test_unified_scripts.php
├── tests/
│   ├── Browser/
│   │   ├── console/
│   │   │   └── .gitignore
│   │   ├── screenshots/
│   │   │   └── .gitignore
│   │   └── source/
│   │       └── .gitignore
│   ├── BrowserTestCase.php
│   ├── TestCase.php
│   ├── TestComponent.php
│   ├── fixtures/
│   │   └── download.txt
│   └── views/
│       ├── .gitignore
│       ├── assets-directive.blade.php
│       ├── components/
│       │   ├── basic-component.blade.php
│       │   ├── component-with-slot.blade.php
│       │   ├── dump-errors-nested-component.blade.php
│       │   ├── input.blade.php
│       │   ├── layouts/
│       │   │   ├── app.blade.php
│       │   │   └── custom.blade.php
│       │   └── this-directive.blade.php
│       ├── custom-pagination-theme.blade.php
│       ├── custom-simple-pagination-theme.blade.php
│       ├── dump-errors.blade.php
│       ├── execute-callback.blade.php
│       ├── layouts/
│       │   ├── app-anonymous-component-with-required-prop.blade.php
│       │   ├── app-anonymous-component.blade.php
│       │   ├── app-custom-section.blade.php
│       │   ├── app-custom-slot.blade.php
│       │   ├── app-extends.blade.php
│       │   ├── app-from-class-component-with-properties.blade.php
│       │   ├── app-from-class-component.blade.php
│       │   ├── app-layout-with-slots.blade.php
│       │   ├── app-layout-with-stacks.blade.php
│       │   ├── app-with-bar.blade.php
│       │   ├── app-with-baz-hardcoded.blade.php
│       │   ├── app-with-styles.blade.php
│       │   ├── app-with-title.blade.php
│       │   ├── app.blade.php
│       │   ├── data-test.blade.php
│       │   └── old-app.blade.php
│       ├── load-balancer-child.blade.php
│       ├── load-balancer-parent.blade.php
│       ├── null-view.blade.php
│       ├── placeholder.blade.php
│       ├── render-component.blade.php
│       ├── show-child.blade.php
│       ├── show-children.blade.php
│       ├── show-double-header-slot.blade.php
│       ├── show-errors.blade.php
│       ├── show-layout-slots.blade.php
│       ├── show-name-with-this.blade.php
│       ├── show-name.blade.php
│       ├── show-property-value.blade.php
│       └── uses-component.blade.php
├── vercel.json
└── vitest.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .claude/rules/adding-features.md
================================================
# Adding Features to Livewire

## Feature Categories

Features fall on a spectrum:

1. **Pure JavaScript** - Like a `wire:directive`. May have no PHP logic, but still gets a PHP feature folder for tests.
2. **Full-stack** - Has both JS and PHP portions.
3. **Pure PHP** - Backend-only features.

All categories follow the same organizational patterns.

---

## File Structure

### PHP Side (always required, even for JS-only features)

```
src/Features/Support{FeatureName}/
├── Support{FeatureName}.php    → Main feature file (if needed; extends ComponentHook)
├── Handles{FeatureName}.php    → Trait for Component class (if needed)
├── Base{Thing}Attribute.php    → Base attribute class (if adding attribute)
├── UnitTest.php                → Unit tests
├── BrowserTest.php             → Browser tests
└── fixtures/                   → Test fixtures/stubs (if needed)
```

### JavaScript Side

**For directives** (`wire:foo`):
```
js/directives/wire-{name}.js    → Directive implementation
js/directives/index.js          → Must import the directive
```

**For general JS features**:
```
js/features/{name}.js           → Feature implementation
js/features/index.js            → Must import the feature
```

---

## Registration Checklist

When adding a feature, these files may need updates:

| You created... | Register it in... |
|----------------|-------------------|
| `Support{Feature}.php` | `src/LivewireServiceProvider.php` → `bootFeatures()` array |
| `Handles{Feature}.php` trait | `src/Component.php` → add `use` statement |
| New attribute | `src/Attributes/{AttributeName}.php` (surface file, extends base) |
| New directive JS | `js/directives/index.js` → add import |
| New feature JS | `js/features/index.js` → add import |
| Documentation | `docs/__nav.md` → appropriate section (see Documentation section below) |

---

## PHP Patterns

### Support*.php - Feature Hook Class

Extends `ComponentHook`. Available lifecycle hooks:

```php
namespace Livewire\Features\Support{Feature};

use Livewire\ComponentHook;

class Support{Feature} extends ComponentHook
{
    // Static initialization (runs once at boot)
    static function provide() { }

    // Instance lifecycle hooks
    function boot() { }                                    // Component instance boots
    function mount($params) { }                            // Component mounts
    function hydrate($memo) { }                            // Before each update
    function update($propertyName, $fullPath, $newValue) { } // Property changes (return callable)
    function call($method, $params, $returnEarly) { }      // Before method call (return callable)
    function render($view, $data) { }                      // During render (return callable)
    function dehydrate($context) { }                       // Before response sent
    function destroy() { }                                 // Component destruction
    function exception($e, $stopPropagation) { }           // Exception thrown
}
```

### Handles*.php - Component Trait

Adds public methods to Component class. Uses `store($this)` for state:

```php
namespace Livewire\Features\Support{Feature};

trait Handles{Feature}
{
    public function someMethod()
    {
        store($this)->set('key', $value);
        store($this)->push('array', $item);
        store($this)->get('key');
    }
}
```

### Service Provider Registration

In `src/LivewireServiceProvider.php`, add to the array in `bootFeatures()`:

```php
protected function bootFeatures()
{
    foreach([
        // ... existing features ...
        Features\Support{Feature}\Support{Feature}::class,  // Add here
    ] as $feature) {
        app('livewire')->componentHook($feature);
    }

    ComponentHookRegistry::boot();
}
```

### Component.php Trait Usage

In `src/Component.php`, add the use statement:

```php
abstract class Component
{
    use Handles{Feature};  // Add with other Handles* traits
    // ...
}
```

---

## JavaScript Patterns

### Directive File Structure

If this new directive is really just an alias for an Alpine directive (in the case of `wire:text`, `wire:show`, etc...)
Then the following structure should be used:

```javascript

```

Otherwise, for most other custom livewire directives, use the following structure:

```javascript
import { directive } from "@/directives"

directive('{name}', ({ el, directive, component, $wire, cleanup }) => {
    // directive.expression  → the attribute value (e.g., "user.name")
    // directive.modifiers   → array of modifiers (e.g., ['live', 'debounce'])
    // el                    → the DOM element
    // component             → Livewire component instance
    // $wire                 → shorthand for component.$wire
    // cleanup               → function to register teardown logic

    // Often uses Alpine.bind() for reactivity:
    Alpine.bind(el, {
        ['x-effect']() {
            // reactive logic
        }
    })

    // Register cleanup if needed:
    cleanup(() => {
        // teardown logic
    })
})
```

### Directive Registration

In `js/directives/index.js`, add an import:

```javascript
import './wire-{name}'
```

The import itself triggers registration (the `directive()` call runs on import).

---

## Attribute Pattern

Attributes have a two-file pattern for clean namespacing:

**Surface file** (`src/Attributes/{Name}.php`): (targets vary based on needs of feature)
```php
namespace Livewire\Attributes;

use Livewire\Features\Support{Feature}\Base{Name}Attribute as Base;

#[\Attribute(\Attribute::TARGET_PROPERTY)]
class {Name} extends Base { }
```

**Base file** (`src/Features/Support{Feature}/Base{Name}Attribute.php`):
```php
namespace Livewire\Features\Support{Feature};

use Livewire\Attribute;

#[\Attribute]
class Base{Name}Attribute extends Attribute
{
    // Actual implementation here
}
```

---

## Naming Conventions

- Feature folders: `Support{FeatureName}` (e.g., `SupportSlots`, `SupportFileUploads`)
- Traits: `Handles{FeatureName}` (plural "Handles", e.g., `HandlesSlots`)
- Directives: `wire-{name}.js` (e.g., `wire-model.js`, `wire-navigate.js`)
- Keep names single-word when possible (e.g., `wire:click.stop` not `wire:click.stop-propagation`)

---

## Testing

Tests live inside the feature folder:

- `UnitTest.php` - PHP unit tests
- `BrowserTest.php` - Browser/Dusk tests (used even for JS-only features)

When writing tests try to keep them simple and expressive. Reference other test files for common patterns...

Run tests:
```bash
phpunit --testsuite="Unit" src/Features/Support{Feature}/UnitTest.php
phpunit --testsuite="Browser" src/Features/Support{Feature}/BrowserTest.php
```

---

## Build Step

After JS changes, run:
```bash
npm run build
```

---

## Documentation

Documentation lives in the `docs/` directory.

### File Structure

```
docs/
├── __nav.md                → Navigation menu (YAML format)
├── wire-{name}.md          → Documentation for wire: directives
├── attribute-{name}.md     → Documentation for PHP attributes
├── directive-{name}.md     → Documentation for Blade directives
└── {feature}.md            → Documentation for general features
```

### Registration Checklist

| You created... | Register it in... |
|----------------|-------------------|
| `wire-{name}.md` | `docs/__nav.md` → `HTML Directives:` section (alphabetically) |
| `attribute-{name}.md` | `docs/__nav.md` → `PHP Attributes:` section (alphabetically) |
| `directive-{name}.md` | `docs/__nav.md` → `Blade Directives:` section |
| General feature docs | `docs/__nav.md` → `Features:` section |

### Documentation Format

Follow this structure for directive documentation:

```markdown

`wire:{name}` is a directive that [brief description].

[Compare to similar features or Alpine equivalents if applicable]

## Basic usage

[Practical example with PHP component and Blade template]

## [Additional sections as needed]

[More examples, edge cases, or advanced usage]

## Reference

```blade
wire:{name}="expression"
```

[List modifiers if any, or note "This directive has no modifiers."]
```

### Navigation Entry Format

In `docs/__nav.md`, add entries in YAML format:

```yaml
wire:{name}: { uri: /docs/4.x/wire-{name}, file: /wire-{name}.md }
```


================================================
FILE: .claude/rules/general.md
================================================
# General

- Always verify the current branch before committing. Run `git branch` and confirm you're on the right branch.
- Try commands before saying "can't". Assume you can until proven otherwise.
- Never commit built assets (`dist/`) in PRs.


================================================
FILE: .claude/rules/reviewing-prs.md
================================================
# Reviewing PRs

- Before accepting docs or workaround PRs, ask: "Could a code change eliminate the need for this workaround entirely?" A 10-line code fix beats 60 lines of workaround docs.
- Research upstream/peer libraries before accepting limitations at face value. Check if the data already exists and just isn't surfaced.
- Question naming for ambiguity — names should be immediately self-evident. If a name could be confused with something else, it's wrong (e.g. `wire:sort:id` -> `wire:sort:group-id`).


================================================
FILE: .claude/rules/writing-docs.md
================================================
# Writing Documentation

- Handler methods use the `handle` prefix (e.g. `handleSort`, not `sort` or `sortItem`)
- Always include `wire:key` in `@foreach` loop examples
- Never expose Eloquent collections as public properties — use `#[Computed]` with relationship scoping instead
- Match domain model complexity to feature complexity: simple domain (TodoList -> tasks) for basic examples, richer domain (Board -> Column -> Card) for advanced/group features
- Scope model lookups through relationships (`$this->board->cards()->findOrFail($id)`) — never use global unscoped `Model::findOrFail($id)`


================================================
FILE: .claude/skills/review-pr/SKILL.md
================================================
---
name: review-pr
description: Review an open PR like a maintainer — checkout, fix issues, push changes, post a structured verdict comment. You just merge or close.
disable-model-invocation: true
allowed-tools: Bash, Read, Glob, Grep, Edit, Write, Task
argument-hint: "[PR number (optional - picks latest if omitted)]"
---

# /review-pr - Maintainer-style PR review bot

You are a strict, opinionated maintainer of the Livewire project. Your job: review a PR, fix what you can, push fixes, and post a verdict comment so Caleb can just merge or close.

**IMPORTANT: Every numbered step below is mandatory. Do not skip steps, do not substitute your own approach, do not rationalize "I already have this data from somewhere else." Run the exact commands listed. If a command fails, retry it — do not silently move on. Complete each step fully before starting the next.**

## Step 1: Pick a PR

If `$ARGUMENTS` is provided, use that as the PR number. Otherwise, pick the latest open PR:

```bash
gh pr list --state open --limit 1 --json number -q '.[0].number'
```

## Step 2: Check if already reviewed

Look for the `<!-- claude-review -->` marker in PR comments:

```bash
gh pr view {number} --json comments -q '.comments[].body' | grep -q '<!-- claude-review -->'
```

If found, tell the user this PR was already reviewed and stop. Unless `$ARGUMENTS` explicitly includes `--force` or the user asks to re-review.

## Step 3: Fetch PR data

Run ALL FOUR of these commands in parallel. If any fail, retry them. Do not proceed to Step 4 until you have output from all four:

```bash
gh pr view {number} --json title,body,author,state,labels,comments,reviews,files,additions,deletions,baseRefName,headRefName,createdAt,updatedAt,reviewDecision,statusCheckRollup,url
gh pr diff {number}
gh pr checks {number}
gh api repos/{owner}/{repo}/issues/{number}/reactions
```

## Step 4: Checkout locally and merge main

```bash
gh pr checkout {number}
git merge main
```

Always merge main into the PR branch before reviewing. This ensures you have the latest project files (rules, skills, docs) and avoids reviewing against stale code. If the merge has conflicts, resolve them or flag for the contributor.

## Step 5: Read and classify

Read through the diff and PR body. Classify the PR:

- **Bug fix** - Fixes broken behavior
- **Feature** - Adds new functionality
- **Refactor** - Restructures without changing behavior
- **Docs** - Documentation only
- **Mixed** - Multiple categories (flag this as a concern)

## Step 6: Challenge the contributor's framing

Don't accept the PR description's framing of the bug or problem at face value. Verify independently:

1. **Identify the root cause yourself.** Read the code the PR modifies. Understand *why* the bug exists before looking at how the PR fixes it.
2. **Does the test actually isolate that root cause?** Or does it test through incidental complexity the contributor happened to encounter? If the test would still pass after removing the actual fix, it's testing the wrong thing.
3. **If the test encodes a wrong mental model, rewrite it.** Strip it to the minimum reproduction that targets the real bug. Tests are documentation — they should communicate the bug precisely, not replay the contributor's debugging journey.
4. **Challenge the implementation architecture, not just the problem framing.** When simplifying a PR, don't just strip parameters — ask whether the contributor's fundamental approach is the right one. A simpler version of a bad approach is still a bad approach. Ask: "What's the laziest correct solution? Does the language/framework already handle this if I just let it?"

## Step 7: Evaluate

### For bug fixes

1. **Has a test?** If not, write one. The test should fail on `main` and pass on the PR branch.
2. **Test covers the actual fix?** Including edge cases?
3. **Actually verify regression.** Don't just reason about whether the test fails without the fix — prove it. Stash the fix (`git stash -- <fix files>`), rebuild if JS changed (`npm run build`), run the test. If it passes without the fix, the test is not testing the fix. Unstash and rewrite the test. This is non-negotiable for bug fix PRs.
4. **Test isolates root cause?** Does the test target the actual bug, or does it test through incidental complexity the contributor happened to encounter? Strip tests to the minimum reproduction. Tests are documentation — they should communicate the bug precisely.
5. **Naming quality?** Review all test names, component names, variable names. Contributors often use names that reflect their mental model, not the actual architecture (e.g., calling a child component "parent"). Fix these before merging — they become permanent.
6. **Unnecessary fixtures/setup?** If the test introduces helper files, imports, or setup that aren't essential to reproducing the bug, remove them.
7. **For visual/browser bugs, test observable behavior, not DOM state.** Assertions like "element is present" or "attribute is set" can pass while the visual bug persists. For animation bugs: assert on `document.getAnimations()` state. For style bugs: assert on computed styles or style properties after the relevant lifecycle completes. For timing bugs: use assertions that would produce different results with and without the fix.
8. **Fix is surgical/minimal?** No unrelated changes?
9. **Regression risk?** Could this break something else?

### For features

Address EVERY item below. Do not skip any — even to say "N/A":

1. **Already possible without new API?** Default stance: reject new public API surface. Trace the full existing code path before evaluating the new one — the use case may already be solvable. New methods/hooks are maintained forever; only add when there's no existing path. Check what users can already do with Laravel primitives before accepting Livewire-specific wrappers. (Example: following `_startUpload` -> `GenerateSignedUploadUrl::forLocal()` -> `URL::temporarySignedRoute('livewire.upload-file')` would have revealed custom upload routes already work by name.)
2. **Community demand?** Check reactions on the PR and linked issues. Low engagement = higher bar.
3. **Intuitive API?** Single-word modifiers preferred (`wire:click.stop` not `wire:click.stop-propagation`).
4. **Precedent?** Does it build on existing patterns or introduce new ones? New patterns need strong justification.
5. **Alpine boundary?** Should this live in Alpine.js instead of Livewire?
6. **Docs included?** Features need documentation. For new testing assertions, check `docs/testing.md` has both a usage section and a reference table entry. For new directives/attributes, check the relevant docs file exists and `docs/__nav.md` is updated.
7. **Registration complete?** Check ServiceProvider, Component.php, JS index files per the project's adding-features rules.

### For all PRs

Address EVERY item below:

1. **Project style?**
   - JS: no semicolons, `let` not `const`
   - PHP: follows Laravel/Livewire conventions
2. **Single responsibility?** Flag PRs doing too many things.
3. **Security?** Extra scrutiny for: synthesizers, hydration, file uploads, `call()`/`update()` hooks, anything touching the request/response lifecycle.
4. **Built JS assets in diff?** Check the file list from `gh pr diff --name-only` for `dist/` files. These should NOT be committed. Remove them.
5. **"No for now" bias.** When in doubt, lean toward not merging. It's easier to add later than remove.
6. **Async timing fixes are treacherous.** When a PR fixes a bug involving microtask/macrotask timing (Alpine effects, View Transitions API, MutationObserver scheduling): don't trust that the approach works just because the reasoning sounds right. Alpine's effect scheduler uses multi-hop `queueMicrotask` chains — a single `queueMicrotask` or even `setTimeout(0)` may not be enough. Reactive observers (MutationObserver) are often more reliable than trying to "flush" async work. If you can't verify the timing empirically, flag it for discussion.
7. **"What's the laziest correct solution?"** Before evaluating the PR's implementation details, independently brainstorm the simplest possible fix. If the language runtime or framework already provides the behavior (e.g., PHP TypeError on type mismatch, Laravel's built-in validation), wrapping it in a try/catch or leveraging it directly beats reimplementing the check manually. The contributor's approach is often shaped by their discovery path, not by what's optimal.

## Step 8: Run relevant tests only

**NEVER run the full test suite.** Only run tests the PR adds or touches:

```bash
# Find test files in the diff
gh pr diff {number} --name-only | grep -E '(UnitTest|BrowserTest)\.php$'
```

Run those specific tests:

```bash
phpunit --testsuite="Unit" path/to/UnitTest.php
DUSK_HEADLESS_DISABLED=false phpunit --testsuite="Browser" path/to/BrowserTest.php
```

If the PR doesn't touch test files but you wrote tests in step 6, run those.

Also check CI status:

```bash
gh pr checks {number}
```

## Step 8b: If the PR has no fix, write one

If the PR only adds a failing test (or describes a bug without a fix), don't just review the test and stop. **Explore solution paths and try to fix the bug yourself.** This is the most valuable thing you can do.

1. Identify 2-3 possible fix approaches
2. Evaluate trade-offs of each (surgical vs broad, risk of regressions, etc.)
3. Present the options to Caleb with a brief explanation of each
4. Once Caleb picks a direction, implement and test it

## Step 9: Make fixes directly

Fix issues you find. Common fixes:

- **Style violations**: Remove semicolons from JS, change `const` to `let`
- **Built assets in diff**: `git checkout main -- dist/` (or whatever the build output path is)
- **Missing tests**: Write them
- **Small refactors**: Simplify overly complex code
- **Missing registration**: Add to ServiceProvider, index files, etc.
- **Missing docs**: Write them if it's a feature. For testing helpers, update `docs/testing.md` (usage section + reference table). For directives/attributes, create the doc file and add to `docs/__nav.md`.
- **Before committing a simplified version of the contributor's code, do a smell test:** Could this be done in fewer lines with a completely different approach? If the fix uses reflection, type checking, or manual validation — ask whether PHP/Laravel already handles the case natively (try/catch, type coercion, etc.). The best code is the code you delete.

Stage and commit fixes:

```bash
git add -A
git commit -m "Review fixes: [brief description]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>"
```

## Step 10: Push to PR branch

Try to push to the contributor's branch:

```bash
git push
```

### If push fails (fork doesn't allow maintainer edits)

1. Create a new branch from `main`
2. Cherry-pick the contributor's commits
3. Apply your fixes on top
4. Push the new branch
5. Create a new PR:

```bash
gh pr create --title "{original title}" --body "$(cat <<'EOF'
Closes #{original_number}

Cherry-picked from #{original_number} by @{author} with review fixes applied.

## Original description
{original_body}

## Review fixes applied
{list of fixes}
EOF
)"
```

6. Comment on the original PR explaining the new PR.

## Step 11: Post verdict comment

Post a structured comment on the PR:

```bash
gh pr comment {number} --body "$(cat <<'EOF'
<!-- claude-review -->
## PR Review: #{number} — {title}

**Type**: {Bug fix | Feature | Refactor | Docs | Mixed}
**Verdict**: {Merge | Request changes | Needs discussion | Close}

### What's happening (plain English)
{Explain the PR like Caleb is a 3-year-old who happens to be an expert in Livewire internals but has zero context on this specific PR. Use a numbered step-by-step walkthrough of the exact sequence that triggers the bug/feature. No jargon beyond what Livewire/Alpine devs already know. Be crystal clear and concise — this is the most important section.}

### Other approaches considered
{Briefly list 2-3 alternative ways this could have been solved, with one sentence each on why the PR's approach is better (or worse). If there's only one reasonable approach, say so and explain why. This helps Caleb quickly evaluate whether the chosen path is the right one.}

### Changes Made
{List of fixups you pushed, or "No changes made" if none}

### Test Results
{Which tests ran, pass/fail status, CI status}

### Code Review
{Specific feedback with file:line references. What's good, what's concerning.}

### Security
{Any security considerations, or "No security concerns identified."}

### Verdict
{Your reasoning for the verdict. Be direct. If it should be merged, say why. If closed, say why kindly but clearly.}

---
*Reviewed by Claude*
EOF
)"
```

## Verdict guidelines

- **Merge**: Code is correct, tests pass, style is clean, feature is wanted. You've fixed any minor issues.
- **Request changes**: Significant issues you can't fix yourself (architectural problems, missing context, needs author input).
- **Needs discussion**: Feature scope questions, API design debates, Alpine boundary questions. Tag these for Caleb.
- **Close**: PR is stale with no response, duplicates existing functionality, or solves a problem that shouldn't be solved. Be kind.

## Important rules

- NEVER run the full test suite. Only run tests the PR touches or that you wrote.
- Always use the `<!-- claude-review -->` marker so you can detect previous reviews.
- Be opinionated. This project has strong conventions — enforce them.
- Fix what you can. Don't just point out problems if you can solve them.
- Security is non-negotiable. If you see a security issue, verdict is always "Request changes" regardless of everything else.
- Match the project voice: practical, direct, Laravel-flavored.
- Don't accept the contributor's framing of the problem at face value. Verify the root cause independently, then ensure the test targets that root cause — not the contributor's incidental path to discovering it.
- "Should this exist?" before "Is this correct?" — Don't get pulled into reviewing implementation details (code quality, edge cases, naming) until you've decided the feature itself is justified. Implementation nits imply acceptance.
- Tests are documentation. A sloppy test that passes is not good enough — it should precisely communicate what broke and why.
- Review contributor naming as critically as contributor code. Bad names get merged and become permanent.


================================================
FILE: .claude/skills/summarize-activity/SKILL.md
================================================
---
name: summarize-activity
description: Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.
disable-model-invocation: true
allowed-tools: Bash, Read, Task
argument-hint: "[timeframe: 24h (default), 48h, 7d, 1w]"
---

# /summarize-activity - GitHub activity digest

You generate a concise, actionable summary of recent Livewire GitHub activity for Caleb.

**IMPORTANT: Every numbered step below is mandatory. Do not skip steps, do not substitute your own approach. Run the exact commands listed. If a command fails, retry it — do not silently move on. Complete each step fully before starting the next.**

## Step 1: Parse timeframe

Parse `$ARGUMENTS` into a cutoff timestamp. Supported formats:
- `24h`, `48h`, `72h` — hours (default: `24h` if no argument)
- `7d`, `14d`, `30d` — days
- `1w`, `2w` — weeks (1w = 7d)

Compute the ISO 8601 cutoff timestamp:

```bash
# Example for 24h:
date -u -v-24H '+%Y-%m-%dT%H:%M:%SZ'
# Example for 7d:
date -u -v-7d '+%Y-%m-%dT%H:%M:%SZ'
```

Store the cutoff timestamp and the human-readable timeframe label (e.g., "last 24 hours", "last 7 days") for use in later steps.

## Step 2: Fetch activity in parallel

Run ALL FIVE of these commands in parallel using the Bash tool. If any fail, retry them. Do not proceed to Step 3 until you have output from all five.

**Owner/repo:** `livewire/livewire`

### 2a. Discussions (GraphQL)

```bash
gh api graphql -f query='
{
  repository(owner: "livewire", name: "livewire") {
    discussions(first: 50, orderBy: {field: UPDATED_AT, direction: DESC}) {
      nodes {
        title
        url
        author { login }
        category { name }
        comments { totalCount }
        body
        answer { author { login } body createdAt }
        createdAt
        updatedAt
      }
    }
  }
}'
```

### 2b. Pull Requests

```bash
gh pr list --repo livewire/livewire --state all --limit 50 --json number,title,url,author,state,labels,createdAt,updatedAt,additions,deletions,headRefName,baseRefName,reviewDecision,comments
```

### 2c. Issues

```bash
gh issue list --repo livewire/livewire --state all --limit 50 --json number,title,url,author,state,labels,createdAt,updatedAt,comments
```

### 2d. Events

```bash
gh api repos/livewire/livewire/events --paginate --jq '.[] | {type, actor: .actor.login, created_at: .created_at, payload_action: .payload.action, ref: .payload.ref, ref_type: .payload.ref_type}' | head -100
```

### 2e. Traffic & stars

```bash
gh api repos/livewire/livewire/traffic/views 2>/dev/null; echo "---SEPARATOR---"; gh api repos/livewire/livewire/traffic/clones 2>/dev/null; echo "---SEPARATOR---"; gh api repos/livewire/livewire --jq '{stargazers_count, forks_count, open_issues_count, watchers_count}'
```

Note: Traffic endpoints require push access. If they return 403, skip traffic data and note it in the report.

## Step 3: Fetch comment threads for active items

For discussions that have comments updated within the timeframe, fetch full comment bodies via GraphQL. Batch up to 10 discussions per query:

```bash
gh api graphql -f query='
{
  repository(owner: "livewire", name: "livewire") {
    discussion(number: {NUMBER}) {
      comments(last: 10) {
        nodes {
          author { login }
          body
          createdAt
          updatedAt
        }
      }
    }
  }
}'
```

For the most active PRs and issues (those with comments updated in timeframe), fetch recent comments:

```bash
gh api repos/livewire/livewire/issues/{number}/comments --jq '.[] | select(.updated_at > "{CUTOFF}") | {user: .user.login, body: .body, created_at: .created_at}'
```

Only fetch threads that are clearly within the timeframe. Don't fetch everything — be selective.

## Step 4: Filter by timeframe

Discard anything with `updatedAt` / `updated_at` before the cutoff timestamp. Keep items where:
- The item was created within the timeframe
- The item received new comments within the timeframe
- The item changed state (opened, closed, merged) within the timeframe

## Step 5: Analyze and write report

Output a markdown report with these sections. Be concise — this is a digest, not a novel.

---

### Report format:

```markdown
# Livewire Activity — {timeframe label}
_{start date} to {end date}_

## TL;DR
{2-3 sentences. What's the pulse? Any fires? Anything exciting? Give Caleb the vibe in 10 seconds.}

## Needs Your Attention
{Actionable items only. Each with a recommended next step: reply, merge, close, investigate, etc.}

- **[Title](url)** by @author — {why it needs attention}. **Action:** {specific recommendation}

{If nothing needs attention, say "Nothing urgent right now."}

## Hot Discussions
{Discussions with the most activity or notable sentiment. Include key quotes if illuminating.}

- **[Title](url)** ({category}) — {N} comments — {brief summary, sentiment note}

{If no notable discussions, say "Quiet on the discussion front."}

## PR Activity

### Opened
- **[#N Title](url)** by @author — {one-line summary} {+additions/-deletions}

### Merged
- **[#N Title](url)** by @author — {one-line summary}

### Closed (not merged)
- **[#N Title](url)** by @author — {one-line summary, why closed if clear}

{Omit empty subsections.}

## Issue Activity

### Opened
- **[#N Title](url)** by @author — {one-line summary}

### Closed
- **[#N Title](url)** — {one-line summary}

{Omit empty subsections.}

## Repo Pulse
| Metric | Value |
|--------|-------|
| Stars | {total} |
| Views (14d) | {count} |
| Clones (14d) | {count} |
| Open issues | {count} |
| PRs opened | {count in timeframe} |
| PRs merged | {count in timeframe} |
| PRs closed | {count in timeframe} |

{If traffic data is unavailable (403), omit those rows and note "Traffic data requires push access."}
```

---

## Important rules

- Every item must include a `[title](url)` link so Caleb can click through.
- Include @author for attribution.
- Keep summaries to ONE line per item. This is a digest.
- The "Needs Your Attention" section is the most important. Be opinionated about what deserves Caleb's time.
- If a discussion or issue has heated sentiment, note it (e.g., "heated", "confused users", "strong demand").
- Omit empty sections entirely — don't show "No activity" headers.
- For PRs, mention if CI is failing when relevant.
- Don't editorialize beyond what's helpful for triage. Be practical, not chatty.


================================================
FILE: .claude/skills/test/SKILL.md
================================================
---
name: test
description: Say hello. Used for testing tooling.
disable-model-invocation: true
allowed-tools: Bash
---

# /test

Say "Hello from Claude!" and nothing else.


================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2


================================================
FILE: .gitattributes
================================================
# Path-based git attributes
# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html

# Ignore all test and documentation with "export-ignore".
/.editorconfig      export-ignore
/.gitattributes     export-ignore
/.gitignore         export-ignore
/.styleci.yml       export-ignore
/.travis.yml        export-ignore
/phpunit.xml.dist   export-ignore
/.scrutinizer.yml   export-ignore
/tests              export-ignore
/.editorconfig      export-ignore
/github_banner.png  export-ignore
/.github            export-ignore
/.vscode            export-ignore
/babel.config.js    export-ignore
/jest.config.js     export-ignore
/rollup.config.js   export-ignore
/*.bash             export-ignore
/*.sh               export-ignore
/package*.json      export-ignore
/.prettierrc        export-ignore
/.all-contributorsrc export-ignore
/vercel.json        export-ignore
/stubs              export-ignore
/squishy            export-ignore
/docs               export-ignore
/js                 export-ignore
/art                export-ignore
/legacy_tests       export-ignore
/scripts            export-ignore
/src/**/Tests       export-ignore
/src/**/*Test.php   export-ignore
/src/**/Test.php    export-ignore
/src/**/Fixtures    export-ignore


================================================
FILE: .github/CONTRIBUTING.md
================================================
Please see the [Contribution Guide on the Livewire docs](https://livewire.laravel.com/docs/contribution-guide)
for info on contributing to Livewire.


================================================
FILE: .github/DISCUSSION_TEMPLATE/1-help.yml
================================================
body:
  - type: markdown
    attributes:
      value: |
        Hi there! 👋

        Thank you for using Livewire!

        Many of the people who help resolve issues here are enthusiastic Livewire users like yourself who volunteer their time to support fellow community members.

        **To respect everyone's valuable time and help you resolve your issue as quickly as possible, before posting an issue, please**

        * Update to the latest version of Livewire by running `composer update livewire/livewire`
        * Before opening a help request, please search the existing discussions.

        To address this help request, we need the following information.

  - type: input
    id: livewire-version
    attributes:
      label: Livewire version
      description: Which version of Livewire are you using? Please provide the full version, e.g. v3.5.16.
      placeholder: v3.5.16
    validations:
      required: true

  - type: input
    id: laravel-version
    attributes:
      label: Laravel version
      description: Which version of Laravel are you using? Please provide the full version, e.g. v11.34.2.
      placeholder: v11.34.2
    validations:
      required: true      

  - type: dropdown
    id: php-version
    attributes:
      label: Which PHP version are you using?
      options:
        - PHP 8.4
        - PHP 8.3
        - PHP 8.2
        - PHP 8.1
        - PHP 8.0
        - PHP 7.4
        - PHP 7.3
        - PHP 7.2
        - PHP 7.1
    validations:
      required: true

  - type: textarea
    attributes:
      label: What is the problem?
      description: Please provide a clear and concise description of what the problem is and include screenshots.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Code snippets
      description: Please include a code snippet (ideally a Volt component) we can copy and paste into our own apps with steps to reproduce. Be sure to **include any Blade variable definitions** that are used and use as little code as possible to reproduce the issue.
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        Include code snippets in triple backticks (\```) with "blade" or "php" for better readability. Here's an example:

        \```blade
        // Your code here
        \```

        \```php
        // Your code here
        \```

  - type: input
    id: example-repository
    attributes:
      label: Wirebox URL
      description: Please provide the URL of a public [Wirebox](https://wirebox.app) that only contains the code that reproduces the bug. **Make sure your Wirebox is set to public**.
    validations:
      required: true

  - type: textarea
    attributes:
      label: How do you expect it to work?
      description: Please describe how you expect it to work.
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        **We will close this issue for any of the following reasons**

        * The code snippets contain unrelated code such as left-over Blade variables
        * We cannot reproduce the issue with the provided code snippets
        * The issue is a duplicate

  - type: checkboxes
    attributes:
      label: Please confirm (incomplete submissions will not be addressed)
      options:
        - label: I have provided easy and step-by-step instructions to reproduce the bug.
          required: true
        - label: I have provided code samples as text and NOT images.
          required: true
        - label: I understand my help request will be removed if I haven't met the criteria above.
          required: true

  - type: markdown
    attributes:
      value: Thank you!

================================================
FILE: .github/DISCUSSION_TEMPLATE/5-bugs.yml
================================================
body:
  - type: markdown
    attributes:
      value: |
        Hi there! 👋

        Thank you for using Livewire!

        Many of the people who help resolve issues here are enthusiastic Livewire users like yourself who volunteer their time to support fellow community members.

        **To respect everyone's valuable time and help you resolve your issue as quickly as possible, before posting an issue, please**

        * Update to the latest version of Livewire by running `composer update livewire/livewire`
        * Before opening a bug report, please search the existing discussions.

        To address this bug as fast as possible, we need the following information.

  - type: input
    id: livewire-version
    attributes:
      label: Livewire version
      description: Which version of Livewire are you using? Please provide the full version, e.g. v3.5.16.
      placeholder: v3.5.16
    validations:
      required: true

  - type: input
    id: laravel-version
    attributes:
      label: Laravel version
      description: Which version of Laravel are you using? Please provide the full version, e.g. v11.34.2.
      placeholder: v11.34.2
    validations:
      required: true

  - type: dropdown
    id: php-version
    attributes:
      label: Which PHP version are you using?
      options:
        - PHP 8.4
        - PHP 8.3
        - PHP 8.2
        - PHP 8.1
        - PHP 8.0
        - PHP 7.4
        - PHP 7.3
        - PHP 7.2
        - PHP 7.1
    validations:
      required: true

  - type: textarea
    attributes:
      label: What is the problem?
      description: Please provide a clear and concise description of what the problem is and include screenshots.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Code snippets
      description: Please include a code snippet (ideally a Volt component) we can copy and paste into our own apps with steps to reproduce. Be sure to **include any Blade variable definitions** that are used and use as little code as possible to reproduce the issue.
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        Include code snippets in triple backticks (\```) with "blade" or "php" for better readability. Here's an example:

        \```blade
        // Your code here
        \```

        \```php
        // Your code here
        \```

  - type: textarea
    attributes:
      label: How do you expect it to work?
      description: Please describe how you expect it to work.
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        **We will close this issue for any of the following reasons**

        * The code snippets contain unrelated code such as left-over Blade variables
        * We cannot reproduce the issue with the provided code snippets
        * The issue is a duplicate

  - type: checkboxes
    attributes:
      label: Please confirm (incomplete submissions will not be addressed)
      options:
        - label: I have provided easy and step-by-step instructions to reproduce the bug.
          required: true
        - label: I have provided code samples as text and NOT images.
          required: true
        - label: I understand my bug report will be removed if I haven't met the criteria above.
          required: true

  - type: markdown
    attributes:
      value: Thank you!

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [livewire]


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Get help or ask a question
    url: https://github.com/livewire/livewire/discussions/new?category=1-help
    about: Ask questions or get help from other community members

  - name: Feature request
    url: https://github.com/livewire/livewire/discussions/new?category=3-feature-ideas
    about: For ideas or feature requests

  - name: Bug Report
    url: https://github.com/livewire/livewire/discussions/new?category=5-bugs
    about: Submit a bug report

  - name: Documentation issue
    url: https://github.com/livewire/livewire/pulls
    about: For documentation issues, please open a pull request


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Review the contribution guide first at: https://livewire.laravel.com/docs/contribution-guide

1️⃣ Is this something that is wanted/needed? Did you create a discussion about it first?

2️⃣ Did you create a branch for your fix/feature? (Main branch PR's will be closed)

3️⃣ Does it contain multiple, unrelated changes? Please separate the PRs out.

4️⃣ Does it include tests? (Required)

5️⃣ Please include a thorough description (including small code snippets if possible) of the improvement and reasons why it's useful.

Thanks for contributing! 🙌


================================================
FILE: .github/SECURITY.md
================================================
# Security Policy

**PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY.**

## Reporting a Vulnerability

If you discover a security vulnerability within Livewire, please send an email to Caleb Porzio at support@laravel-livewire.com. All security vulnerabilities will be promptly addressed.


================================================
FILE: .github/scripts/get-browser-test-shard.php
================================================
<?php
/**
 * Distributes browser test files across shards using greedy bin-packing.
 * Usage: php get-browser-test-shard.php <shard_index> <total_shards>
 */

$shardIndex = (int) ($argv[1] ?? 0);
$totalShards = (int) ($argv[2] ?? 4);

$files = [];
$srcDir = __DIR__ . '/../../src';

// Recursively find all *BrowserTest.php files
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($srcDir, RecursiveDirectoryIterator::SKIP_DOTS)
);

foreach ($iterator as $file) {
    if ($file->isFile() && preg_match('/BrowserTest\.php$/', $file->getFilename())) {
        $content = file_get_contents($file->getPathname());
        preg_match_all('/function\s+test_/m', $content, $matches);
        $files[] = ['path' => $file->getRealPath(), 'tests' => count($matches[0])];
    }
}

usort($files, fn($a, $b) => $b['tests'] <=> $a['tests']);

$shards = array_fill(0, $totalShards, ['files' => [], 'weight' => 0]);
foreach ($files as $file) {
    $minIdx = 0;
    for ($i = 1; $i < $totalShards; $i++) {
        if ($shards[$i]['weight'] < $shards[$minIdx]['weight']) {
            $minIdx = $i;
        }
    }
    $shards[$minIdx]['files'][] = $file['path'];
    $shards[$minIdx]['weight'] += $file['tests'];
}

echo implode(' ', $shards[$shardIndex]['files']);


================================================
FILE: .github/workflows/claude.yml
================================================
name: Claude Code

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]
  pull_request_review:
    types: [submitted]

jobs:
  claude:
    if: |
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
      (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
      actions: read # Required for Claude to read CI results on PRs
    steps:
      # Detect if this is a fork PR and get fork info
      - name: Get PR info for fork support
        id: pr-info
        if: github.event.issue.pull_request || github.event_name == 'pull_request_review_comment' || github.event_name == 'pull_request_review'
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          # Get PR number based on event type
          if [[ "${{ github.event_name }}" == "issue_comment" ]]; then
            PR_NUMBER="${{ github.event.issue.number }}"
          elif [[ "${{ github.event_name }}" == "pull_request_review_comment" ]]; then
            PR_NUMBER="${{ github.event.pull_request.number }}"
          elif [[ "${{ github.event_name }}" == "pull_request_review" ]]; then
            PR_NUMBER="${{ github.event.pull_request.number }}"
          fi

          if [[ -n "$PR_NUMBER" ]]; then
            PR_DATA=$(gh api repos/${{ github.repository }}/pulls/$PR_NUMBER)
            IS_FORK=$(echo "$PR_DATA" | jq -r '.head.repo.fork // false')
            FORK_OWNER=$(echo "$PR_DATA" | jq -r '.head.repo.owner.login')
            FORK_REPO=$(echo "$PR_DATA" | jq -r '.head.repo.name')
            HEAD_REF=$(echo "$PR_DATA" | jq -r '.head.ref')

            echo "is_fork=$IS_FORK" >> $GITHUB_OUTPUT
            echo "fork_owner=$FORK_OWNER" >> $GITHUB_OUTPUT
            echo "fork_repo=$FORK_REPO" >> $GITHUB_OUTPUT
            echo "head_ref=$HEAD_REF" >> $GITHUB_OUTPUT
            echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT
          else
            echo "is_fork=false" >> $GITHUB_OUTPUT
          fi

      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          repository: ${{ steps.pr-info.outputs.is_fork == 'true' && format('{0}/{1}', steps.pr-info.outputs.fork_owner, steps.pr-info.outputs.fork_repo) || github.repository }}
          ref: ${{ steps.pr-info.outputs.is_fork == 'true' && steps.pr-info.outputs.head_ref || '' }}
          fetch-depth: 1

      - name: Run Claude Code
        id: claude
        uses: anthropics/claude-code-action@v1
        with:
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

          # This is an optional setting that allows Claude to read CI results on PRs
          additional_permissions: |
            actions: read

          # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
          # prompt: 'Update the pull request description to include a summary of changes.'

          # Optional: Add claude_args to customize behavior and configuration
          # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
          # or https://code.claude.com/docs/en/cli-reference for available options
          # claude_args: '--allowed-tools Bash(gh pr:*)'


================================================
FILE: .github/workflows/test-main.yml
================================================
name: Test Main

on:
  push:
    branches:
      - main
    paths-ignore:
      - "docs/**"
      - "README.md"

env:
  ALPINE_BRANCH: main

jobs:
  build-assets:
    runs-on: ubuntu-latest
    name: 0. Build Assets

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'

      - name: Get Alpine commit hash
        id: alpine-hash
        run: echo "hash=$(git ls-remote https://github.com/alpinejs/alpine.git refs/heads/${{ env.ALPINE_BRANCH }} | cut -f1)" >> $GITHUB_OUTPUT

      - name: Cache built assets
        id: cache-assets
        uses: actions/cache@v4
        with:
          path: dist/
          key: built-assets-${{ github.sha }}-alpine-${{ steps.alpine-hash.outputs.hash }}

      - name: Install dependencies
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm ci

      - name: Clone Alpine ${{ env.ALPINE_BRANCH }} branch
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: git clone --depth=1 --branch=${{ env.ALPINE_BRANCH }} https://github.com/alpinejs/alpine.git /tmp/alpine

      - name: Build Alpine assets
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: |
          cd /tmp/alpine
          npm ci
          npm run build

      - name: Link Alpine packages to Livewire
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm link /tmp/alpine/packages/alpinejs /tmp/alpine/packages/anchor /tmp/alpine/packages/collapse /tmp/alpine/packages/focus /tmp/alpine/packages/intersect /tmp/alpine/packages/mask /tmp/alpine/packages/morph /tmp/alpine/packages/persist /tmp/alpine/packages/resize /tmp/alpine/packages/csp /tmp/alpine/packages/sort

      - name: Build Livewire assets
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm run build

      - name: Upload built assets
        uses: actions/upload-artifact@v4
        with:
          name: livewire-assets
          path: dist/
          retention-days: 1

  js-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    name: 1. JavaScript

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Run JavaScript tests
        run: npm run test:run

  unit-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.1, 8.2, 8.3, 8.4, 8.5]
        laravel: [10.*, 11.*, 12.*, 13.*]
        exclude:
          - php: 8.5
            laravel: 10.*
          - php: 8.4
            laravel: 10.*
          - php: 8.1
            laravel: 11.*
          - php: 8.1
            laravel: 12.*
          - php: 8.1
            laravel: 13.*
          - php: 8.2
            laravel: 13.*

    name: 2. Unit - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Run Unit tests
        run: vendor/bin/phpunit --testsuite Unit
        env:
          RUNNING_IN_CI: true

  browser-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.1, 8.2, 8.3, 8.4, 8.5]
        laravel: [10.*, 11.*, 12.*, 13.*]
        shard: [1, 2, 3]
        exclude:
          - php: 8.5
            laravel: 10.*
          - php: 8.4
            laravel: 10.*
          - php: 8.1
            laravel: 11.*
          - php: 8.1
            laravel: 12.*
          - php: 8.1
            laravel: 13.*
          - php: 8.2
            laravel: 13.*

    name: 3. Browser ${{ matrix.shard }} - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Get shard test files
        id: shard
        run: echo "files=$(php .github/scripts/get-browser-test-shard.php $(( ${{ matrix.shard }} - 1 )) 3)" >> $GITHUB_OUTPUT

      - name: Run Browser tests (Shard ${{ matrix.shard }})
        run: vendor/bin/phpunit ${{ steps.shard.outputs.files }}
        env:
          RUNNING_IN_CI: true

      - name: Run Cancel Upload test
        if: matrix.shard == 1
        run: FORCE_RUN=1 vendor/bin/phpunit --testsuite Browser --filter "test_can_cancel_an_upload"
        env:
          RUNNING_IN_CI: true
          FORCE_RUN: 1

  legacy-browser-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.1, 8.2, 8.3, 8.4, 8.5]
        laravel: [10.*, 11.*, 12.*, 13.*]
        exclude:
          - php: 8.5
            laravel: 10.*
          - php: 8.4
            laravel: 10.*
          - php: 8.1
            laravel: 11.*
          - php: 8.1
            laravel: 12.*
          - php: 8.1
            laravel: 13.*
          - php: 8.2
            laravel: 13.*

    name: 4. Legacy - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Run Legacy Browser tests
        run: vendor/bin/phpunit --testsuite LegacyBrowser
        env:
          RUNNING_IN_CI: true


================================================
FILE: .github/workflows/test-prs.yml
================================================
name: Test PRs

on:
  pull_request:
    types: [ready_for_review, synchronize, opened]
    paths-ignore:
      - "docs/**"
      - "README.md"

env:
  ALPINE_BRANCH: main

jobs:
  build-assets:
    runs-on: ubuntu-latest
    name: 0. Build Assets

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'

      - name: Get Alpine commit hash
        id: alpine-hash
        run: echo "hash=$(git ls-remote https://github.com/alpinejs/alpine.git refs/heads/${{ env.ALPINE_BRANCH }} | cut -f1)" >> $GITHUB_OUTPUT

      - name: Cache built assets
        id: cache-assets
        uses: actions/cache@v4
        with:
          path: dist/
          key: built-assets-${{ github.sha }}-alpine-${{ steps.alpine-hash.outputs.hash }}

      - name: Install dependencies
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm ci

      - name: Clone Alpine ${{ env.ALPINE_BRANCH }} branch
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: git clone --depth=1 --branch=${{ env.ALPINE_BRANCH }} https://github.com/alpinejs/alpine.git /tmp/alpine

      - name: Build Alpine assets
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: |
          cd /tmp/alpine
          npm ci
          npm run build

      - name: Link Alpine packages to Livewire
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm link /tmp/alpine/packages/alpinejs /tmp/alpine/packages/anchor /tmp/alpine/packages/collapse /tmp/alpine/packages/focus /tmp/alpine/packages/intersect /tmp/alpine/packages/mask /tmp/alpine/packages/morph /tmp/alpine/packages/persist /tmp/alpine/packages/resize /tmp/alpine/packages/csp /tmp/alpine/packages/sort

      - name: Build Livewire assets
        if: steps.cache-assets.outputs.cache-hit != 'true'
        run: npm run build

      - name: Upload built assets
        uses: actions/upload-artifact@v4
        with:
          name: livewire-assets
          path: dist/
          retention-days: 1

  js-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    name: 1. JavaScript

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Run JavaScript tests
        run: npm run test:run

  unit-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.4, 8.5]
        laravel: [11.*, 12.*, 13.*]

    name: 2. Unit - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Run Unit tests
        run: vendor/bin/phpunit --testsuite Unit
        env:
          RUNNING_IN_CI: true

  browser-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.4, 8.5]
        laravel: [11.*, 12.*, 13.*]
        shard: [1, 2, 3]

    name: 3. Browser ${{ matrix.shard }} - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Get shard test files
        id: shard
        run: echo "files=$(php .github/scripts/get-browser-test-shard.php $(( ${{ matrix.shard }} - 1 )) 3)" >> $GITHUB_OUTPUT

      - name: Run Browser tests (Shard ${{ matrix.shard }})
        run: vendor/bin/phpunit ${{ steps.shard.outputs.files }}
        env:
          RUNNING_IN_CI: true

      - name: Run Cancel Upload test
        if: matrix.shard == 1
        run: FORCE_RUN=1 vendor/bin/phpunit --testsuite Browser --filter "test_can_cancel_an_upload"
        env:
          RUNNING_IN_CI: true
          FORCE_RUN: 1

  legacy-browser-tests:
    needs: build-assets
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: [8.4, 8.5]
        laravel: [11.*, 12.*, 13.*]

    name: 4. Legacy - L${{ matrix.laravel }} - PHP ${{ matrix.php }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, iconv, intl, zip, pdo_sqlite
          tools: composer:v2
          coverage: none

      - name: Get composer cache directory
        id: composer-cache
        run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: Cache composer dependencies
        uses: actions/cache@v4
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-

      - name: Install Composer dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
          composer update --prefer-stable --no-interaction

      - name: Download built assets
        uses: actions/download-artifact@v4
        with:
          name: livewire-assets
          path: dist/

      - name: Setup dusk/chrome
        run: vendor/bin/dusk-updater detect --no-interaction

      - name: Run Legacy Browser tests
        run: vendor/bin/phpunit --testsuite LegacyBrowser
        env:
          RUNNING_IN_CI: true


================================================
FILE: .gitignore
================================================
/vendor/
/node_modules/
_runtime_components.json
SCRATCH.md
COMMIT_MSG.aim.txt
composer.lock
.phpunit.cache/
.phpunit.result.cache
.idea
phpunit.xml
.env

# Files used to upload zips for early access folks
upload-bin.sh
main.zip

# OS generated files
.DS_Store
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Obsidian files for documentation editin
docs/.obsidian/workspace.json

# PR review bot (WIP)
scripts/review/
prompts/


================================================
FILE: .prettierrc
================================================
{
    "tabWidth": 4,
    "semi": false,
    "singleQuote": true,
    "arrowParens": "avoid"
}

================================================
FILE: .styleci.yml
================================================
preset: laravel


================================================
FILE: .vscode/launch.json
================================================
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/Users/calebporzio/Code/livewire": "${workspaceFolder}"
            }
        }
    ]
}

================================================
FILE: CLAUDE.md
================================================
# Project Overview

Livewire is a full-stack framework for Laravel. It allows you to build dynamic front-end applications without leaving the comfort of PHP/Laravel/Blade.

It is similar to projects like Phoenix Liveview however it isn't "live" in that it doesn't use real-time connections like websockets. Just simple http requests.

It renders on the server and uses morphing algorithm to path the DOM with updates from the server.

It "dehdrates" the state of a component into a JS-consumable object that is passed back to the server to be "hydrated" during the next request.

# Tech Stack

- Laravel + PHP + Vanilla JS
- JS Bundling: esbuild

# Project Structure

```
src/           → The PHP source files
- Features/    → Individual ~modules to isolate features
js/            → The JavaScript source files
tests/         → A smattering of PHP tests however, most tests are inside their src/Feature directories
```

# Development Workflow

## Build JS assets

Run `npm run build` to bundle the JS

# Code Patterns

- Write JavaScript without semicolons
- Always use `let` (no `const`)
- Strive for single-word features and affordances (ex. `wire:click.stop` instead of `wire:click.stop-propagation`)

# Testing

Most browser and unit tests live inside of feature directories for example:

src/Features/SupportSlots/[UnitTest.php|BrowserTest.php]

Unit: Run `phpunit --testsuite="Unit" [optional test file] [optional test name]`
Browser: Run `phpunit --testsuite="Browser" [optional test file] [optional test name]`

When running browser tests, use `DUSK_HEADLESS_DISABLED=false` to run Chrome in headless mode so the browser window doesn't pop up:

```bash
DUSK_HEADLESS_DISABLED=false phpunit --testsuite="Browser" path/to/BrowserTest.php
```

**IMPORTANT:** Never run the full Livewire browser test suite — it takes too long. Always use `--filter` to run only the specific tests relevant to your changes. The full suite runs in CI.

================================================
FILE: LICENSE.md
================================================
## MIT License

Copyright © Caleb Porzio

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: PRD-wire-model-modifiers.md
================================================
# wire:model Modifier Layering PRD

## Problem

`wire:model` modifiers (`.blur`, `.change`, `.debounce`) only control network request timing. Ephemeral (client-side) state ALWAYS syncs immediately as user types. Users can't delay ephemeral sync until blur/enter/change.

## Feature

Split modifiers into two layers: modifiers BEFORE `.live` control ephemeral sync timing (forwarded to x-model), modifiers AFTER `.live` control network timing. Breaking change for v4.

## Before

```blade
wire:model                    {{-- ephemeral immediate, no network --}}
wire:model.blur               {{-- ephemeral immediate, network on blur --}}
wire:model.live               {{-- ephemeral immediate, network debounced --}}
wire:model.live.debounce.500ms {{-- ephemeral immediate, network debounced 500ms --}}
```

- All modifiers only affect network layer
- No way to control ephemeral sync timing
- `.blur`/`.change` don't affect when x-model syncs

## After

```blade
wire:model                    {{-- ephemeral immediate, no network --}}
wire:model.blur               {{-- ephemeral on blur, no network --}}
wire:model.change             {{-- ephemeral on change, no network --}}
wire:model.enter              {{-- ephemeral on enter, no network --}}
wire:model.blur.enter         {{-- ephemeral on blur OR enter, no network --}}
wire:model.live               {{-- ephemeral immediate, network debounced --}}
wire:model.live.blur          {{-- ephemeral immediate, network on blur (OLD .blur behavior) --}}
wire:model.blur.live          {{-- ephemeral on blur, network on blur --}}
wire:model.blur.live.debounce.500ms {{-- ephemeral on blur, network debounced 500ms after --}}
```

- Modifiers before `.live` → forwarded to x-model (controls ephemeral sync)
- Modifiers after `.live` → handled by Livewire (controls network)
- Everything chains sequentially: ephemeral syncs first, then network fires

## Relevant Files

- `js/directives/wire-model.js` — main implementation (lines 1-186)
- `node_modules/alpinejs/src/directives/x-model.js` — reference for how Alpine handles `.blur`/`.change`/`.enter` (lines 58-98)
- `src/Features/SupportDataBinding/BrowserTest.php` — existing browser tests

## Current Logic (wire-model.js:34-82)

```js
let isLive = modifiers.includes('live')
let isLazy = modifiers.includes('lazy') || modifiers.includes('change')
let onBlur = modifiers.includes('blur')
// ... these only control WHEN update() is called for network
// x-model always gets modifiers minus 'lazy','defer','debounce','throttle'
// meaning .blur/.change still get forwarded but DON'T affect ephemeral sync
// because wire:model uses get/set object pattern, not event listeners
```

Problem: `getModifierTail()` forwards `.blur` to x-model, but wire:model uses getter/setter pattern (`x-model.blur() { get(), set() }`), not Alpine's event-listener approach. So Alpine's `.blur` modifier has no effect.

## Changes Needed

1. **Parse modifiers into two groups** — split at `.live` boundary
   - `ephemeralModifiers` = everything before `.live`
   - `networkModifiers` = everything after `.live`

2. **Create extraction function** with clean interface:
   ```js
   let {
     ephemeralModifiers,  // forwarded to x-model tail
     onEphemeralSync,     // callback when ephemeral state changes
     shouldSendNetwork,   // fn to check if network should fire
   } = parseWireModelModifiers(modifiers)
   ```

3. **Forward ephemeral modifiers to x-model** — these get added to `x-model.blur.change.enter` etc.

4. **Add event listeners for network triggers** — if network modifiers include `.blur`, add `@blur` handler. Same for `.change`, `.enter`.

5. **Handle debounce/throttle at network layer** — wrap network callbacks in debounce/throttle based on network modifiers.

6. **x-model set() callback triggers network** — when x-model syncs (based on its modifiers), check if `.live` is present and call network update.

### Implementation Sketch

```js
directive('model', ({ el, directive, component, cleanup }) => {
    let { expression, modifiers } = directive

    // Split modifiers at .live boundary
    let liveIndex = modifiers.indexOf('live')
    let ephemeralModifiers = liveIndex === -1 ? modifiers : modifiers.slice(0, liveIndex)
    let networkModifiers = liveIndex === -1 ? [] : modifiers.slice(liveIndex + 1)
    let isLive = liveIndex !== -1

    // Build x-model modifier tail from ephemeral modifiers
    let xModelTail = buildModifierTail(ephemeralModifiers)

    // Build network update function with debounce/throttle
    let networkUpdate = buildNetworkUpdate(networkModifiers, component, expression, el, directive)

    // Determine network trigger events
    let networkTriggers = extractNetworkTriggers(networkModifiers)

    Alpine.bind(el, {
        ['@blur']() {
            if (networkTriggers.blur) networkUpdate()
        },
        ['@change']() {
            if (networkTriggers.change) networkUpdate()
        },
        ['@keydown.enter']() {
            if (networkTriggers.enter) networkUpdate()
        },
        ['x-model' + xModelTail]() {
            return {
                get() {
                    return dataGet(component.$wire, expression)
                },
                set(value) {
                    dataSet(component.$wire, expression, value)
                    // If live with no specific triggers, fire on every sync
                    if (isLive && networkTriggers.immediate) {
                        networkUpdate()
                    }
                },
            }
        }
    })
})
```

## Decisions

- **Breaking change in v4** — acceptable since v4 is ~2 weeks old
- **`.live` is the delimiter** — everything before controls ephemeral, after controls network
- **Modifiers compound** — `.blur.enter` means blur OR enter (both trigger sync)
- **Network inherits ephemeral timing by default** — if no network modifiers, network fires when ephemeral syncs
- **`.live` alone = debounced immediate** — current behavior, ephemeral immediate + network debounced
- **`.live.blur` = ephemeral immediate, network on blur** — preserves old `.blur` behavior for migration
- **Empty network modifiers with `.live`** — means "fire network when ephemeral syncs" (for `.blur.live`)

## Test File

`src/Features/SupportDataBinding/BrowserTest.php` (add to existing file)

### New Test Cases

Single consolidated test with multiple scenarios:

1. `wire:model` — ephemeral syncs on input, no network
2. `wire:model.blur` — ephemeral syncs on blur only, no network
3. `wire:model.change` — ephemeral syncs on change only, no network
4. `wire:model.enter` — ephemeral syncs on enter only, no network
5. `wire:model.blur.enter` — ephemeral syncs on blur OR enter, no network
6. `wire:model.live` — ephemeral immediate, network debounced
7. `wire:model.live.blur` — ephemeral immediate, network on blur (old behavior)
8. `wire:model.blur.live` — ephemeral on blur, network on blur
9. `wire:model.blur.live.debounce.500ms` — ephemeral on blur, network debounced
9. `wire:model.blur.live.throttle.500ms` — ephemeral on blur, network throttled

Each scenario: type into input, verify ephemeral state via `x-text="$wire.prop"`, verify server state via `{{ $prop }}`, trigger blur/enter/change, verify both states.

## Manual Testing

1. **Test ephemeral-only blur**
   - Create input with `wire:model.blur="title"`
   - Type "hello" — ephemeral should NOT update
   - Click away — ephemeral updates to "hello"
   - Server still shows old value

2. **Test network on blur (old behavior)**
   - Create input with `wire:model.live.blur="title"`
   - Type "hello" — ephemeral updates immediately
   - Click away — network request fires, server updates

3. **Test full blur.live**
   - Create input with `wire:model.blur.live="title"`
   - Type "hello" — ephemeral stays unchanged
   - Click away — ephemeral updates, network fires, server updates

## Documentation

**File:** `docs/wire-model.md`

**Section to modify:** "Customizing update timing" (line ~51) and "Reference" table (line ~291)

**Add:**
- Explain modifier layering concept
- Update examples to show new syntax
- Add migration note about breaking change
- Update modifier reference table

## Git

**Commit message:**
```
feat(wire:model): control ephemeral sync timing with modifiers

BREAKING: Modifiers before .live now control ephemeral (x-model) sync
timing, not just network timing. Previous .blur behavior is now .live.blur.

- wire:model.blur syncs ephemeral on blur (no network)
- wire:model.live.blur syncs ephemeral immediate, network on blur
- wire:model.blur.live syncs both on blur
- Supports .blur, .change, .enter and combinations

Migration: Replace wire:model.blur with wire:model.live.blur for old behavior.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
```

**PR Title:**
`feat(wire:model)!: control ephemeral sync timing with modifiers`

**PR Description:**
```
## Summary
- Modifiers before `.live` control ephemeral (x-model) sync timing
- Modifiers after `.live` control network timing
- BREAKING: `wire:model.blur` now delays ephemeral sync, use `.live.blur` for old behavior

## Test plan
- [ ] `wire:model.blur` delays ephemeral sync until blur
- [ ] `wire:model.live.blur` matches old `.blur` behavior
- [ ] `wire:model.blur.live` delays both ephemeral and network until blur
- [ ] Compound modifiers work (`.blur.enter`)
- [ ] Debounce/throttle work on network layer
```


================================================
FILE: README.md
================================================
<p align="center"><img width="300" src="/art/logo.svg" alt="Livewire Logo"></p>

<p align="center">
    <a href="https://packagist.org/packages/livewire/livewire">
        <img src="https://poser.pugx.org/livewire/livewire/d/total.svg" alt="Total Downloads">
    </a>
    <a href="https://packagist.org/packages/livewire/livewire">
        <img src="https://poser.pugx.org/livewire/livewire/v/stable.svg" alt="Latest Stable Version">
    </a>
    <a href="https://packagist.org/packages/livewire/livewire">
        <img src="https://poser.pugx.org/livewire/livewire/license.svg" alt="License">
    </a>
</p>

## Introduction

Livewire is a full-stack framework for Laravel that allows you to build dynamic UI components without leaving PHP.

## Official Documentation

You can read the official documentation on the [Livewire website](https://livewire.laravel.com/docs).

## Contributing
<a name="contributing"></a>

Thank you for considering contributing to Livewire! You can read the contribution guide [here](.github/CONTRIBUTING.md).

## Code of Conduct
<a name="code-of-conduct"></a>

In order to ensure that the Laravel community is welcoming to all, please review and abide by Laravel's [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).

## Security Vulnerabilities
<a name="security-vulnerabilities"></a>

Please review [our security policy](https://github.com/livewire/livewire/security/policy) on how to report security vulnerabilities.

## License
<a name="license"></a>

Livewire is open-sourced software licensed under the [MIT license](LICENSE.md).


================================================
FILE: close.bash
================================================
#!/bin/bash

osascript -e 'tell application "System Events"
        tell process "Code"
            set frontWindow to the first window whose frontmost is true
            repeat with aWindow in (get every window)
                if aWindow is not frontWindow then
                    close aWindow
                end if
            end repeat
        end tell
    end tell'


# vscode_main_pid=$(pgrep -f ".*electron.*code.*" | head -n 1)
# vscode_renderer_pids=$(pgrep -f ".*electron.*code.*" | tail -n +2)

# echo "VS Code Main Process PID: ${vscode_main_pid}"
# echo "VS Code Renderer Processes PIDs:"

# for pid in ${vscode_renderer_pids}; do
#     echo "  - ${pid}"
# done


================================================
FILE: composer.json
================================================
{
  "name": "livewire/livewire",
  "description": "A front-end framework for Laravel.",
  "license": "MIT",
  "authors": [
    {
      "name": "Caleb Porzio",
      "email": "calebporzio@gmail.com"
    }
  ],
  "require": {
    "php": "^8.1",
    "illuminate/database": "^10.0|^11.0|^12.0|^13.0",
    "illuminate/routing": "^10.0|^11.0|^12.0|^13.0",
    "illuminate/support": "^10.0|^11.0|^12.0|^13.0",
    "illuminate/validation": "^10.0|^11.0|^12.0|^13.0",
    "league/mime-type-detection": "^1.9",
    "symfony/console": "^6.0|^7.0|^8.0",
    "symfony/http-kernel": "^6.2|^7.0|^8.0",
    "laravel/prompts": "^0.1.24|^0.2|^0.3"
  },
  "require-dev": {
    "psy/psysh": "^0.11.22|^0.12",
    "mockery/mockery": "^1.3.1",
    "phpunit/phpunit": "^10.4|^11.5|^12.5",
    "laravel/framework": "^10.15.0|^11.0|^12.0|^13.0",
    "orchestra/testbench": "^8.21.0|^9.0|^10.0|^11.0",
    "orchestra/testbench-dusk": "^8.24|^9.1|^10.0|^11.0",
    "calebporzio/sushi": "^2.1"
  },
  "autoload": {
    "files": [
      "src/helpers.php"
    ],
    "psr-4": {
      "Livewire\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "App\\": "vendor/orchestra/testbench-core/laravel/app",
      "Tests\\": "tests/",
      "LegacyTests\\": "legacy_tests/"
    }
  },
  "extra": {
    "laravel": {
      "providers": [
        "Livewire\\LivewireServiceProvider"
      ],
      "aliases": {
        "Livewire": "Livewire\\Livewire"
      }
    }
  },
  "minimum-stability": "dev",
  "prefer-stable": true
}


================================================
FILE: config/livewire.php
================================================
<?php

return [

    /*
    |---------------------------------------------------------------------------
    | Component Locations
    |---------------------------------------------------------------------------
    |
    | This value sets the root directories that'll be used to resolve view-based
    | components like single and multi-file components. The make command will
    | use the first directory in this array to add new component files to.
    |
    */

    'component_locations' => [
        resource_path('views/components'),
        resource_path('views/livewire'),
    ],

    /*
    |---------------------------------------------------------------------------
    | Component Namespaces
    |---------------------------------------------------------------------------
    |
    | This value sets default namespaces that will be used to resolve view-based
    | components like single-file and multi-file components. These folders'll
    | also be referenced when creating new components via the make command.
    |
    */

    'component_namespaces' => [
        'layouts' => resource_path('views/layouts'),
        'pages' => resource_path('views/pages'),
    ],

    /*
    |---------------------------------------------------------------------------
    | Page Layout
    |---------------------------------------------------------------------------
    | The view that will be used as the layout when rendering a single component as
    | an entire page via `Route::livewire('/post/create', 'pages::create-post')`.
    | In this case, the content of pages::create-post will render into $slot.
    |
    */

    'component_layout' => 'layouts::app',

    /*
    |---------------------------------------------------------------------------
    | Lazy Loading Placeholder
    |---------------------------------------------------------------------------
    | Livewire allows you to lazy load components that would otherwise slow down
    | the initial page load. Every component can have a custom placeholder or
    | you can define the default placeholder view for all components below.
    |
    */

    'component_placeholder' => null, // Example: 'placeholders::skeleton'

    /*
    |---------------------------------------------------------------------------
    | Make Command
    |---------------------------------------------------------------------------
    | This value determines the default configuration for the artisan make command
    | You can configure the component type (sfc, mfc, class) and whether to use
    | the high-voltage (⚡) emoji as a prefix in the sfc|mfc component names.
    |
    */

    'make_command' => [
        'type' => 'sfc', // Options: 'sfc', 'mfc', 'class'
        'emoji' => true, // Options: true, false
        'with' => [
            'js' => false,
            'css' => false,
            'test' => false,
        ],
    ],

    /*
    |---------------------------------------------------------------------------
    | Class Namespace
    |---------------------------------------------------------------------------
    |
    | This value sets the root class namespace for Livewire component classes in
    | your application. This value will change where component auto-discovery
    | finds components. It's also referenced by the file creation commands.
    |
    */

    'class_namespace' => 'App\\Livewire',

    /*
    |---------------------------------------------------------------------------
    | Class Path
    |---------------------------------------------------------------------------
    |
    | This value is used to specify the path where Livewire component class files
    | are created when running creation commands like `artisan make:livewire`.
    | This path is customizable to match your projects directory structure.
    |
    */

    'class_path' => app_path('Livewire'),

    /*
    |---------------------------------------------------------------------------
    | View Path
    |---------------------------------------------------------------------------
    |
    | This value is used to specify where Livewire component Blade templates are
    | stored when running file creation commands like `artisan make:livewire`.
    | It is also used if you choose to omit a component's render() method.
    |
    */

    'view_path' => resource_path('views/livewire'),

    /*
    |---------------------------------------------------------------------------
    | Temporary File Uploads
    |---------------------------------------------------------------------------
    |
    | Livewire handles file uploads by storing uploads in a temporary directory
    | before the file is stored permanently. All file uploads are directed to
    | a global endpoint for temporary storage. You may configure this below:
    |
    */

    'temporary_file_upload' => [
        'disk' => env('LIVEWIRE_TEMPORARY_FILE_UPLOAD_DISK'), // Example: 'local', 's3'             | Default: 'default'
        'rules' => null,                                      // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
        'directory' => null,                                  // Example: 'tmp'                     | Default: 'livewire-tmp'
        'middleware' => null,                                 // Example: 'throttle:5,1'            | Default: 'throttle:60,1'
        'preview_mimes' => [                                  // Supported file types for temporary pre-signed file URLs...
            'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
            'mov', 'avi', 'wmv', 'mp3', 'm4a',
            'jpg', 'jpeg', 'mpga', 'webp', 'wma',
        ],
        'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
        'cleanup' => true, // Should cleanup temporary uploads older than 24 hrs...
    ],

    /*
    |---------------------------------------------------------------------------
    | Render On Redirect
    |---------------------------------------------------------------------------
    |
    | This value determines if Livewire will run a component's `render()` method
    | after a redirect has been triggered using something like `redirect(...)`
    | Setting this to true will render the view once more before redirecting
    |
    */

    'render_on_redirect' => false,

    /*
    |---------------------------------------------------------------------------
    | Eloquent Model Binding
    |---------------------------------------------------------------------------
    |
    | Previous versions of Livewire supported binding directly to eloquent model
    | properties using wire:model by default. However, this behavior has been
    | deemed too "magical" and has therefore been put under a feature flag.
    |
    */

    'legacy_model_binding' => false,

    /*
    |---------------------------------------------------------------------------
    | Auto-inject Frontend Assets
    |---------------------------------------------------------------------------
    |
    | By default, Livewire automatically injects its JavaScript and CSS into the
    | <head> and <body> of pages containing Livewire components. By disabling
    | this behavior, you need to use @livewireStyles and @livewireScripts.
    |
    */

    'inject_assets' => true,

    /*
    |---------------------------------------------------------------------------
    | Navigate (SPA mode)
    |---------------------------------------------------------------------------
    |
    | By adding `wire:navigate` to links in your Livewire application, Livewire
    | will prevent the default link handling and instead request those pages
    | via AJAX, creating an SPA-like effect. Configure this behavior here.
    |
    */

    'navigate' => [
        'show_progress_bar' => true,
        'progress_bar_color' => '#2299dd',
    ],

    /*
    |---------------------------------------------------------------------------
    | HTML Morph Markers
    |---------------------------------------------------------------------------
    |
    | Livewire intelligently "morphs" existing HTML into the newly rendered HTML
    | after each update. To make this process more reliable, Livewire injects
    | "markers" into the rendered Blade surrounding @if, @class & @foreach.
    |
    */

    'inject_morph_markers' => true,

    /*
    |---------------------------------------------------------------------------
    | Smart Wire Keys
    |---------------------------------------------------------------------------
    |
    | Livewire uses loops and keys used within loops to generate smart keys that
    | are applied to nested components that don't have them. This makes using
    | nested components more reliable by ensuring that they all have keys.
    |
    */

    'smart_wire_keys' => true,

    /*
    |---------------------------------------------------------------------------
    | Pagination Theme
    |---------------------------------------------------------------------------
    |
    | When enabling Livewire's pagination feature by using the `WithPagination`
    | trait, Livewire will use Tailwind templates to render pagination views
    | on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
    |
    */

    'pagination_theme' => 'tailwind',

    /*
    |---------------------------------------------------------------------------
    | Release Token
    |---------------------------------------------------------------------------
    |
    | This token is stored client-side and sent along with each request to check
    | a users session to see if a new release has invalidated it. If there is
    | a mismatch it will throw an error and prompt for a browser refresh.
    |
    */

    'release_token' => 'a',

    /*
    |---------------------------------------------------------------------------
    | CSP Safe
    |---------------------------------------------------------------------------
    |
    | This config is used to determine if Livewire will use the CSP-safe version
    | of Alpine in its bundle. This is useful for applications that are using
    | strict Content Security Policy (CSP) to protect against XSS attacks.
    |
    */

    'csp_safe' => false,

    /*
    |---------------------------------------------------------------------------
    | Payload Guards
    |---------------------------------------------------------------------------
    |
    | These settings protect against malicious or oversized payloads that could
    | cause denial of service. The default values should feel reasonable for
    | most web applications. Each can be set to null to disable the limit.
    |
    */

    'payload' => [
        'max_size' => 1024 * 1024,   // 1MB - maximum request payload size in bytes
        'max_nesting_depth' => 10,   // Maximum depth of dot-notation property paths
        'max_calls' => 50,           // Maximum method calls per request
        'max_components' => 20,      // Maximum components per batch request
    ],
];


================================================
FILE: dist/livewire.csp.esm.js
================================================
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));

// node_modules/@alpinejs/csp/dist/module.cjs.js
var require_module_cjs = __commonJS({
  "node_modules/@alpinejs/csp/dist/module.cjs.js"(exports, module) {
    var __create2 = Object.create;
    var __defProp2 = Object.defineProperty;
    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames2 = Object.getOwnPropertyNames;
    var __getProtoOf2 = Object.getPrototypeOf;
    var __hasOwnProp2 = Object.prototype.hasOwnProperty;
    var __commonJS2 = (cb, mod) => function __require() {
      return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
    };
    var __export = (target, all2) => {
      for (var name in all2)
        __defProp2(target, name, { get: all2[name], enumerable: true });
    };
    var __copyProps2 = (to, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames2(from))
          if (!__hasOwnProp2.call(to, key) && key !== except)
            __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
      }
      return to;
    };
    var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
      isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
      mod
    ));
    var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
    var require_shared_cjs = __commonJS2({
      "node_modules/@vue/shared/dist/shared.cjs.js"(exports2) {
        "use strict";
        Object.defineProperty(exports2, "__esModule", { value: true });
        function makeMap(str, expectsLowerCase) {
          const map = /* @__PURE__ */ Object.create(null);
          const list = str.split(",");
          for (let i = 0; i < list.length; i++) {
            map[list[i]] = true;
          }
          return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];
        }
        var PatchFlagNames = {
          [1]: `TEXT`,
          [2]: `CLASS`,
          [4]: `STYLE`,
          [8]: `PROPS`,
          [16]: `FULL_PROPS`,
          [32]: `HYDRATE_EVENTS`,
          [64]: `STABLE_FRAGMENT`,
          [128]: `KEYED_FRAGMENT`,
          [256]: `UNKEYED_FRAGMENT`,
          [512]: `NEED_PATCH`,
          [1024]: `DYNAMIC_SLOTS`,
          [2048]: `DEV_ROOT_FRAGMENT`,
          [-1]: `HOISTED`,
          [-2]: `BAIL`
        };
        var slotFlagsText = {
          [1]: "STABLE",
          [2]: "DYNAMIC",
          [3]: "FORWARDED"
        };
        var GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt";
        var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
        var range = 2;
        function generateCodeFrame(source, start22 = 0, end = source.length) {
          let lines = source.split(/(\r?\n)/);
          const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);
          lines = lines.filter((_, idx) => idx % 2 === 0);
          let count = 0;
          const res = [];
          for (let i = 0; i < lines.length; i++) {
            count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);
            if (count >= start22) {
              for (let j = i - range; j <= i + range || end > count; j++) {
                if (j < 0 || j >= lines.length)
                  continue;
                const line = j + 1;
                res.push(`${line}${" ".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`);
                const lineLength = lines[j].length;
                const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;
                if (j === i) {
                  const pad = start22 - (count - (lineLength + newLineSeqLength));
                  const length = Math.max(1, end > count ? lineLength - pad : end - start22);
                  res.push(`   |  ` + " ".repeat(pad) + "^".repeat(length));
                } else if (j > i) {
                  if (end > count) {
                    const length = Math.max(Math.min(end - count, lineLength), 1);
                    res.push(`   |  ` + "^".repeat(length));
                  }
                  count += lineLength + newLineSeqLength;
                }
              }
              break;
            }
          }
          return res.join("\n");
        }
        var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
        var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
        var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);
        var unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
        var attrValidationCache = {};
        function isSSRSafeAttrName(name) {
          if (attrValidationCache.hasOwnProperty(name)) {
            return attrValidationCache[name];
          }
          const isUnsafe = unsafeAttrCharRE.test(name);
          if (isUnsafe) {
            console.error(`unsafe attribute name: ${name}`);
          }
          return attrValidationCache[name] = !isUnsafe;
        }
        var propsToAttrMap = {
          acceptCharset: "accept-charset",
          className: "class",
          htmlFor: "for",
          httpEquiv: "http-equiv"
        };
        var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`);
        var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`);
        function normalizeStyle(value) {
          if (isArray2(value)) {
            const res = {};
            for (let i = 0; i < value.length; i++) {
              const item = value[i];
              const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item);
              if (normalized) {
                for (const key in normalized) {
                  res[key] = normalized[key];
                }
              }
            }
            return res;
          } else if (isObject2(value)) {
            return value;
          }
        }
        var listDelimiterRE = /;(?![^(]*\))/g;
        var propertyDelimiterRE = /:(.+)/;
        function parseStringStyle(cssText) {
          const ret = {};
          cssText.split(listDelimiterRE).forEach((item) => {
            if (item) {
              const tmp = item.split(propertyDelimiterRE);
              tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
            }
          });
          return ret;
        }
        function stringifyStyle(styles) {
          let ret = "";
          if (!styles) {
            return ret;
          }
          for (const key in styles) {
            const value = styles[key];
            const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);
            if (isString(value) || typeof value === "number" && isNoUnitNumericStyleProp(normalizedKey)) {
              ret += `${normalizedKey}:${value};`;
            }
          }
          return ret;
        }
        function normalizeClass(value) {
          let res = "";
          if (isString(value)) {
            res = value;
          } else if (isArray2(value)) {
            for (let i = 0; i < value.length; i++) {
              const normalized = normalizeClass(value[i]);
              if (normalized) {
                res += normalized + " ";
              }
            }
          } else if (isObject2(value)) {
            for (const name in value) {
              if (value[name]) {
                res += name + " ";
              }
            }
          }
          return res.trim();
        }
        var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
        var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
        var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
        var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
        var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
        var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
        var escapeRE = /["'&<>]/;
        function escapeHtml(string) {
          const str = "" + string;
          const match = escapeRE.exec(str);
          if (!match) {
            return str;
          }
          let html = "";
          let escaped;
          let index;
          let lastIndex = 0;
          for (index = match.index; index < str.length; index++) {
            switch (str.charCodeAt(index)) {
              case 34:
                escaped = "&quot;";
                break;
              case 38:
                escaped = "&amp;";
                break;
              case 39:
                escaped = "&#39;";
                break;
              case 60:
                escaped = "&lt;";
                break;
              case 62:
                escaped = "&gt;";
                break;
              default:
                continue;
            }
            if (lastIndex !== index) {
              html += str.substring(lastIndex, index);
            }
            lastIndex = index + 1;
            html += escaped;
          }
          return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
        }
        var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;
        function escapeHtmlComment(src) {
          return src.replace(commentStripRE, "");
        }
        function looseCompareArrays(a, b) {
          if (a.length !== b.length)
            return false;
          let equal = true;
          for (let i = 0; equal && i < a.length; i++) {
            equal = looseEqual(a[i], b[i]);
          }
          return equal;
        }
        function looseEqual(a, b) {
          if (a === b)
            return true;
          let aValidType = isDate(a);
          let bValidType = isDate(b);
          if (aValidType || bValidType) {
            return aValidType && bValidType ? a.getTime() === b.getTime() : false;
          }
          aValidType = isArray2(a);
          bValidType = isArray2(b);
          if (aValidType || bValidType) {
            return aValidType && bValidType ? looseCompareArrays(a, b) : false;
          }
          aValidType = isObject2(a);
          bValidType = isObject2(b);
          if (aValidType || bValidType) {
            if (!aValidType || !bValidType) {
              return false;
            }
            const aKeysCount = Object.keys(a).length;
            const bKeysCount = Object.keys(b).length;
            if (aKeysCount !== bKeysCount) {
              return false;
            }
            for (const key in a) {
              const aHasKey = a.hasOwnProperty(key);
              const bHasKey = b.hasOwnProperty(key);
              if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
                return false;
              }
            }
          }
          return String(a) === String(b);
        }
        function looseIndexOf(arr, val) {
          return arr.findIndex((item) => looseEqual(item, val));
        }
        var toDisplayString = (val) => {
          return val == null ? "" : isObject2(val) ? JSON.stringify(val, replacer, 2) : String(val);
        };
        var replacer = (_key, val) => {
          if (isMap(val)) {
            return {
              [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {
                entries[`${key} =>`] = val2;
                return entries;
              }, {})
            };
          } else if (isSet(val)) {
            return {
              [`Set(${val.size})`]: [...val.values()]
            };
          } else if (isObject2(val) && !isArray2(val) && !isPlainObject(val)) {
            return String(val);
          }
          return val;
        };
        var babelParserDefaultPlugins = [
          "bigInt",
          "optionalChaining",
          "nullishCoalescingOperator"
        ];
        var EMPTY_OBJ = Object.freeze({});
        var EMPTY_ARR = Object.freeze([]);
        var NOOP = () => {
        };
        var NO = () => false;
        var onRE = /^on[^a-z]/;
        var isOn = (key) => onRE.test(key);
        var isModelListener = (key) => key.startsWith("onUpdate:");
        var extend = Object.assign;
        var remove = (arr, el) => {
          const i = arr.indexOf(el);
          if (i > -1) {
            arr.splice(i, 1);
          }
        };
        var hasOwnProperty = Object.prototype.hasOwnProperty;
        var hasOwn = (val, key) => hasOwnProperty.call(val, key);
        var isArray2 = Array.isArray;
        var isMap = (val) => toTypeString(val) === "[object Map]";
        var isSet = (val) => toTypeString(val) === "[object Set]";
        var isDate = (val) => val instanceof Date;
        var isFunction2 = (val) => typeof val === "function";
        var isString = (val) => typeof val === "string";
        var isSymbol = (val) => typeof val === "symbol";
        var isObject2 = (val) => val !== null && typeof val === "object";
        var isPromise = (val) => {
          return isObject2(val) && isFunction2(val.then) && isFunction2(val.catch);
        };
        var objectToString = Object.prototype.toString;
        var toTypeString = (value) => objectToString.call(value);
        var toRawType = (value) => {
          return toTypeString(value).slice(8, -1);
        };
        var isPlainObject = (val) => toTypeString(val) === "[object Object]";
        var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
        var isReservedProp = /* @__PURE__ */ makeMap(
          ",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
        );
        var cacheStringFunction = (fn) => {
          const cache = /* @__PURE__ */ Object.create(null);
          return (str) => {
            const hit = cache[str];
            return hit || (cache[str] = fn(str));
          };
        };
        var camelizeRE = /-(\w)/g;
        var camelize = cacheStringFunction((str) => {
          return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
        });
        var hyphenateRE = /\B([A-Z])/g;
        var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
        var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));
        var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);
        var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);
        var invokeArrayFns = (fns, arg) => {
          for (let i = 0; i < fns.length; i++) {
            fns[i](arg);
          }
        };
        var def = (obj, key, value) => {
          Object.defineProperty(obj, key, {
            configurable: true,
            enumerable: false,
            value
          });
        };
        var toNumber = (val) => {
          const n = parseFloat(val);
          return isNaN(n) ? val : n;
        };
        var _globalThis;
        var getGlobalThis = () => {
          return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
        };
        exports2.EMPTY_ARR = EMPTY_ARR;
        exports2.EMPTY_OBJ = EMPTY_OBJ;
        exports2.NO = NO;
        exports2.NOOP = NOOP;
        exports2.PatchFlagNames = PatchFlagNames;
        exports2.babelParserDefaultPlugins = babelParserDefaultPlugins;
        exports2.camelize = camelize;
        exports2.capitalize = capitalize;
        exports2.def = def;
        exports2.escapeHtml = escapeHtml;
        exports2.escapeHtmlComment = escapeHtmlComment;
        exports2.extend = extend;
        exports2.generateCodeFrame = generateCodeFrame;
        exports2.getGlobalThis = getGlobalThis;
        exports2.hasChanged = hasChanged;
        exports2.hasOwn = hasOwn;
        exports2.hyphenate = hyphenate;
        exports2.invokeArrayFns = invokeArrayFns;
        exports2.isArray = isArray2;
        exports2.isBooleanAttr = isBooleanAttr2;
        exports2.isDate = isDate;
        exports2.isFunction = isFunction2;
        exports2.isGloballyWhitelisted = isGloballyWhitelisted;
        exports2.isHTMLTag = isHTMLTag;
        exports2.isIntegerKey = isIntegerKey;
        exports2.isKnownAttr = isKnownAttr;
        exports2.isMap = isMap;
        exports2.isModelListener = isModelListener;
        exports2.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp;
        exports2.isObject = isObject2;
        exports2.isOn = isOn;
        exports2.isPlainObject = isPlainObject;
        exports2.isPromise = isPromise;
        exports2.isReservedProp = isReservedProp;
        exports2.isSSRSafeAttrName = isSSRSafeAttrName;
        exports2.isSVGTag = isSVGTag;
        exports2.isSet = isSet;
        exports2.isSpecialBooleanAttr = isSpecialBooleanAttr;
        exports2.isString = isString;
        exports2.isSymbol = isSymbol;
        exports2.isVoidTag = isVoidTag;
        exports2.looseEqual = looseEqual;
        exports2.looseIndexOf = looseIndexOf;
        exports2.makeMap = makeMap;
        exports2.normalizeClass = normalizeClass;
        exports2.normalizeStyle = normalizeStyle;
        exports2.objectToString = objectToString;
        exports2.parseStringStyle = parseStringStyle;
        exports2.propsToAttrMap = propsToAttrMap;
        exports2.remove = remove;
        exports2.slotFlagsText = slotFlagsText;
        exports2.stringifyStyle = stringifyStyle;
        exports2.toDisplayString = toDisplayString;
        exports2.toHandlerKey = toHandlerKey;
        exports2.toNumber = toNumber;
        exports2.toRawType = toRawType;
        exports2.toTypeString = toTypeString;
      }
    });
    var require_shared = __commonJS2({
      "node_modules/@vue/shared/index.js"(exports2, module2) {
        "use strict";
        if (false) {
          module2.exports = null;
        } else {
          module2.exports = require_shared_cjs();
        }
      }
    });
    var require_reactivity_cjs = __commonJS2({
      "node_modules/@vue/reactivity/dist/reactivity.cjs.js"(exports2) {
        "use strict";
        Object.defineProperty(exports2, "__esModule", { value: true });
        var shared = require_shared();
        var targetMap = /* @__PURE__ */ new WeakMap();
        var effectStack = [];
        var activeEffect;
        var ITERATE_KEY = Symbol("iterate");
        var MAP_KEY_ITERATE_KEY = Symbol("Map key iterate");
        function isEffect(fn) {
          return fn && fn._isEffect === true;
        }
        function effect3(fn, options = shared.EMPTY_OBJ) {
          if (isEffect(fn)) {
            fn = fn.raw;
          }
          const effect4 = createReactiveEffect(fn, options);
          if (!options.lazy) {
            effect4();
          }
          return effect4;
        }
        function stop2(effect4) {
          if (effect4.active) {
            cleanup(effect4);
            if (effect4.options.onStop) {
              effect4.options.onStop();
            }
            effect4.active = false;
          }
        }
        var uid = 0;
        function createReactiveEffect(fn, options) {
          const effect4 = function reactiveEffect() {
            if (!effect4.active) {
              return fn();
            }
            if (!effectStack.includes(effect4)) {
              cleanup(effect4);
              try {
                enableTracking();
                effectStack.push(effect4);
                activeEffect = effect4;
                return fn();
              } finally {
                effectStack.pop();
                resetTracking();
                activeEffect = effectStack[effectStack.length - 1];
              }
            }
          };
          effect4.id = uid++;
          effect4.allowRecurse = !!options.allowRecurse;
          effect4._isEffect = true;
          effect4.active = true;
          effect4.raw = fn;
          effect4.deps = [];
          effect4.options = options;
          return effect4;
        }
        function cleanup(effect4) {
          const { deps } = effect4;
          if (deps.length) {
            for (let i = 0; i < deps.length; i++) {
              deps[i].delete(effect4);
            }
            deps.length = 0;
          }
        }
        var shouldTrack = true;
        var trackStack = [];
        function pauseTracking() {
          trackStack.push(shouldTrack);
          shouldTrack = false;
        }
        function enableTracking() {
          trackStack.push(shouldTrack);
          shouldTrack = true;
        }
        function resetTracking() {
          const last = trackStack.pop();
          shouldTrack = last === void 0 ? true : last;
        }
        function track2(target, type, key) {
          if (!shouldTrack || activeEffect === void 0) {
            return;
          }
          let depsMap = targetMap.get(target);
          if (!depsMap) {
            targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
          }
          let dep = depsMap.get(key);
          if (!dep) {
            depsMap.set(key, dep = /* @__PURE__ */ new Set());
          }
          if (!dep.has(activeEffect)) {
            dep.add(activeEffect);
            activeEffect.deps.push(dep);
            if (activeEffect.options.onTrack) {
              activeEffect.options.onTrack({
                effect: activeEffect,
                target,
                type,
                key
              });
            }
          }
        }
        function trigger2(target, type, key, newValue, oldValue, oldTarget) {
          const depsMap = targetMap.get(target);
          if (!depsMap) {
            return;
          }
          const effects = /* @__PURE__ */ new Set();
          const add2 = (effectsToAdd) => {
            if (effectsToAdd) {
              effectsToAdd.forEach((effect4) => {
                if (effect4 !== activeEffect || effect4.allowRecurse) {
                  effects.add(effect4);
                }
              });
            }
          };
          if (type === "clear") {
            depsMap.forEach(add2);
          } else if (key === "length" && shared.isArray(target)) {
            depsMap.forEach((dep, key2) => {
              if (key2 === "length" || key2 >= newValue) {
                add2(dep);
              }
            });
          } else {
            if (key !== void 0) {
              add2(depsMap.get(key));
            }
            switch (type) {
              case "add":
                if (!shared.isArray(target)) {
                  add2(depsMap.get(ITERATE_KEY));
                  if (shared.isMap(target)) {
                    add2(depsMap.get(MAP_KEY_ITERATE_KEY));
                  }
                } else if (shared.isIntegerKey(key)) {
                  add2(depsMap.get("length"));
                }
                break;
              case "delete":
                if (!shared.isArray(target)) {
                  add2(depsMap.get(ITERATE_KEY));
                  if (shared.isMap(target)) {
                    add2(depsMap.get(MAP_KEY_ITERATE_KEY));
                  }
                }
                break;
              case "set":
                if (shared.isMap(target)) {
                  add2(depsMap.get(ITERATE_KEY));
                }
                break;
            }
          }
          const run = (effect4) => {
            if (effect4.options.onTrigger) {
              effect4.options.onTrigger({
                effect: effect4,
                target,
                key,
                type,
                newValue,
                oldValue,
                oldTarget
              });
            }
            if (effect4.options.scheduler) {
              effect4.options.scheduler(effect4);
            } else {
              effect4();
            }
          };
          effects.forEach(run);
        }
        var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`);
        var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol));
        var get2 = /* @__PURE__ */ createGetter();
        var shallowGet = /* @__PURE__ */ createGetter(false, true);
        var readonlyGet = /* @__PURE__ */ createGetter(true);
        var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
        var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
        function createArrayInstrumentations() {
          const instrumentations = {};
          ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
            instrumentations[key] = function(...args) {
              const arr = toRaw2(this);
              for (let i = 0, l = this.length; i < l; i++) {
                track2(arr, "get", i + "");
              }
              const res = arr[key](...args);
              if (res === -1 || res === false) {
                return arr[key](...args.map(toRaw2));
              } else {
                return res;
              }
            };
          });
          ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
            instrumentations[key] = function(...args) {
              pauseTracking();
              const res = toRaw2(this)[key].apply(this, args);
              resetTracking();
              return res;
            };
          });
          return instrumentations;
        }
        function createGetter(isReadonly2 = false, shallow = false) {
          return function get3(target, key, receiver) {
            if (key === "__v_isReactive") {
              return !isReadonly2;
            } else if (key === "__v_isReadonly") {
              return isReadonly2;
            } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {
              return target;
            }
            const targetIsArray = shared.isArray(target);
            if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) {
              return Reflect.get(arrayInstrumentations, key, receiver);
            }
            const res = Reflect.get(target, key, receiver);
            if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
              return res;
            }
            if (!isReadonly2) {
              track2(target, "get", key);
            }
            if (shallow) {
              return res;
            }
            if (isRef(res)) {
              const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key);
              return shouldUnwrap ? res.value : res;
            }
            if (shared.isObject(res)) {
              return isReadonly2 ? readonly(res) : reactive3(res);
            }
            return res;
          };
        }
        var set2 = /* @__PURE__ */ createSetter();
        var shallowSet = /* @__PURE__ */ createSetter(true);
        function createSetter(shallow = false) {
          return function set3(target, key, value, receiver) {
            let oldValue = target[key];
            if (!shallow) {
              value = toRaw2(value);
              oldValue = toRaw2(oldValue);
              if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) {
                oldValue.value = value;
                return true;
              }
            }
            const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key);
            const result = Reflect.set(target, key, value, receiver);
            if (target === toRaw2(receiver)) {
              if (!hadKey) {
                trigger2(target, "add", key, value);
              } else if (shared.hasChanged(value, oldValue)) {
                trigger2(target, "set", key, value, oldValue);
              }
            }
            return result;
          };
        }
        function deleteProperty(target, key) {
          const hadKey = shared.hasOwn(target, key);
          const oldValue = target[key];
          const result = Reflect.deleteProperty(target, key);
          if (result && hadKey) {
            trigger2(target, "delete", key, void 0, oldValue);
          }
          return result;
        }
        function has(target, key) {
          const result = Reflect.has(target, key);
          if (!shared.isSymbol(key) || !builtInSymbols.has(key)) {
            track2(target, "has", key);
          }
          return result;
        }
        function ownKeys(target) {
          track2(target, "iterate", shared.isArray(target) ? "length" : ITERATE_KEY);
          return Reflect.ownKeys(target);
        }
        var mutableHandlers = {
          get: get2,
          set: set2,
          deleteProperty,
          has,
          ownKeys
        };
        var readonlyHandlers = {
          get: readonlyGet,
          set(target, key) {
            {
              console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);
            }
            return true;
          },
          deleteProperty(target, key) {
            {
              console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);
            }
            return true;
          }
        };
        var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, {
          get: shallowGet,
          set: shallowSet
        });
        var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, {
          get: shallowReadonlyGet
        });
        var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value;
        var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value;
        var toShallow = (value) => value;
        var getProto = (v) => Reflect.getPrototypeOf(v);
        function get$1(target, key, isReadonly2 = false, isShallow = false) {
          target = target["__v_raw"];
          const rawTarget = toRaw2(target);
          const rawKey = toRaw2(key);
          if (key !== rawKey) {
            !isReadonly2 && track2(rawTarget, "get", key);
          }
          !isReadonly2 && track2(rawTarget, "get", rawKey);
          const { has: has2 } = getProto(rawTarget);
          const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;
          if (has2.call(rawTarget, key)) {
            return wrap(target.get(key));
          } else if (has2.call(rawTarget, rawKey)) {
            return wrap(target.get(rawKey));
          } else if (target !== rawTarget) {
            target.get(key);
          }
        }
        function has$1(key, isReadonly2 = false) {
          const target = this["__v_raw"];
          const rawTarget = toRaw2(target);
          const rawKey = toRaw2(key);
          if (key !== rawKey) {
            !isReadonly2 && track2(rawTarget, "has", key);
          }
          !isReadonly2 && track2(rawTarget, "has", rawKey);
          return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
        }
        function size(target, isReadonly2 = false) {
          target = target["__v_raw"];
          !isReadonly2 && track2(toRaw2(target), "iterate", ITERATE_KEY);
          return Reflect.get(target, "size", target);
        }
        function add(value) {
          value = toRaw2(value);
          const target = toRaw2(this);
          const proto = getProto(target);
          const hadKey = proto.has.call(target, value);
          if (!hadKey) {
            target.add(value);
            trigger2(target, "add", value, value);
          }
          return this;
        }
        function set$1(key, value) {
          value = toRaw2(value);
          const target = toRaw2(this);
          const { has: has2, get: get3 } = getProto(target);
          let hadKey = has2.call(target, key);
          if (!hadKey) {
            key = toRaw2(key);
            hadKey = has2.call(target, key);
          } else {
            checkIdentityKeys(target, has2, key);
          }
          const oldValue = get3.call(target, key);
          target.set(key, value);
          if (!hadKey) {
            trigger2(target, "add", key, value);
          } else if (shared.hasChanged(value, oldValue)) {
            trigger2(target, "set", key, value, oldValue);
          }
          return this;
        }
        function deleteEntry(key) {
          const target = toRaw2(this);
          const { has: has2, get: get3 } = getProto(target);
          let hadKey = has2.call(target, key);
          if (!hadKey) {
            key = toRaw2(key);
            hadKey = has2.call(target, key);
          } else {
            checkIdentityKeys(target, has2, key);
          }
          const oldValue = get3 ? get3.call(target, key) : void 0;
          const result = target.delete(key);
          if (hadKey) {
            trigger2(target, "delete", key, void 0, oldValue);
          }
          return result;
        }
        function clear() {
          const target = toRaw2(this);
          const hadItems = target.size !== 0;
          const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target);
          const result = target.clear();
          if (hadItems) {
            trigger2(target, "clear", void 0, void 0, oldTarget);
          }
          return result;
        }
        function createForEach(isReadonly2, isShallow) {
          return function forEach(callback, thisArg) {
            const observed = this;
            const target = observed["__v_raw"];
            const rawTarget = toRaw2(target);
            const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;
            !isReadonly2 && track2(rawTarget, "iterate", ITERATE_KEY);
            return target.forEach((value, key) => {
              return callback.call(thisArg, wrap(value), wrap(key), observed);
            });
          };
        }
        function createIterableMethod(method, isReadonly2, isShallow) {
          return function(...args) {
            const target = this["__v_raw"];
            const rawTarget = toRaw2(target);
            const targetIsMap = shared.isMap(rawTarget);
            const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
            const isKeyOnly = method === "keys" && targetIsMap;
            const innerIterator = target[method](...args);
            const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;
            !isReadonly2 && track2(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
            return {
              next() {
                const { value, done } = innerIterator.next();
                return done ? { value, done } : {
                  value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
                  done
                };
              },
              [Symbol.iterator]() {
                return this;
              }
            };
          };
        }
        function createReadonlyMethod(type) {
          return function(...args) {
            {
              const key = args[0] ? `on key "${args[0]}" ` : ``;
              console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this));
            }
            return type === "delete" ? false : this;
          };
        }
        function createInstrumentations() {
          const mutableInstrumentations2 = {
            get(key) {
              return get$1(this, key);
            },
            get size() {
              return size(this);
            },
            has: has$1,
            add,
            set: set$1,
            delete: deleteEntry,
            clear,
            forEach: createForEach(false, false)
          };
          const shallowInstrumentations2 = {
            get(key) {
              return get$1(this, key, false, true);
            },
            get size() {
              return size(this);
            },
            has: has$1,
            add,
            set: set$1,
            delete: deleteEntry,
            clear,
            forEach: createForEach(false, true)
          };
          const readonlyInstrumentations2 = {
            get(key) {
              return get$1(this, key, true);
            },
            get size() {
              return size(this, true);
            },
            has(key) {
              return has$1.call(this, key, true);
            },
            add: createReadonlyMethod(
              "add"
            ),
            set: createReadonlyMethod(
              "set"
            ),
            delete: createReadonlyMethod(
              "delete"
            ),
            clear: createReadonlyMethod(
              "clear"
            ),
            forEach: createForEach(true, false)
          };
          const shallowReadonlyInstrumentations2 = {
            get(key) {
              return get$1(this, key, true, true);
            },
            get size() {
              return size(this, true);
            },
            has(key) {
              return has$1.call(this, key, true);
            },
            add: createReadonlyMethod(
              "add"
            ),
            set: createReadonlyMethod(
              "set"
            ),
            delete: createReadonlyMethod(
              "delete"
            ),
            clear: createReadonlyMethod(
              "clear"
            ),
            forEach: createForEach(true, true)
          };
          const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
          iteratorMethods.forEach((method) => {
            mutableInstrumentations2[method] = createIterableMethod(method, false, false);
            readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
            shallowInstrumentations2[method] = createIterableMethod(method, false, true);
            shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);
          });
          return [
            mutableInstrumentations2,
            readonlyInstrumentations2,
            shallowInstrumentations2,
            shallowReadonlyInstrumentations2
          ];
        }
        var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();
        function createInstrumentationGetter(isReadonly2, shallow) {
          const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
          return (target, key, receiver) => {
            if (key === "__v_isReactive") {
              return !isReadonly2;
            } else if (key === "__v_isReadonly") {
              return isReadonly2;
            } else if (key === "__v_raw") {
              return target;
            }
            return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
          };
        }
        var mutableCollectionHandlers = {
          get: /* @__PURE__ */ createInstrumentationGetter(false, false)
        };
        var shallowCollectionHandlers = {
          get: /* @__PURE__ */ createInstrumentationGetter(false, true)
        };
        var readonlyCollectionHandlers = {
          get: /* @__PURE__ */ createInstrumentationGetter(true, false)
        };
        var shallowReadonlyCollectionHandlers = {
          get: /* @__PURE__ */ createInstrumentationGetter(true, true)
        };
        function checkIdentityKeys(target, has2, key) {
          const rawKey = toRaw2(key);
          if (rawKey !== key && has2.call(target, rawKey)) {
            const type = shared.toRawType(target);
            console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);
          }
        }
        var reactiveMap = /* @__PURE__ */ new WeakMap();
        var shallowReactiveMap = /* @__PURE__ */ new WeakMap();
        var readonlyMap = /* @__PURE__ */ new WeakMap();
        var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
        function targetTypeMap(rawType) {
          switch (rawType) {
            case "Object":
            case "Array":
              return 1;
            case "Map":
            case "Set":
            case "WeakMap":
            case "WeakSet":
              return 2;
            default:
              return 0;
          }
        }
        function getTargetType(value) {
          return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value));
        }
        function reactive3(target) {
          if (target && target["__v_isReadonly"]) {
            return target;
          }
          return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
        }
        function shallowReactive(target) {
          return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
        }
        function readonly(target) {
          return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
        }
        function shallowReadonly(target) {
          return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
        }
        function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
          if (!shared.isObject(target)) {
            {
              console.warn(`value cannot be made reactive: ${String(target)}`);
            }
            return target;
          }
          if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
            return target;
          }
          const existingProxy = proxyMap.get(target);
          if (existingProxy) {
            return existingProxy;
          }
          const targetType = getTargetType(target);
          if (targetType === 0) {
            return target;
          }
          const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
          proxyMap.set(target, proxy);
          return proxy;
        }
        function isReactive2(value) {
          if (isReadonly(value)) {
            return isReactive2(value["__v_raw"]);
          }
          return !!(value && value["__v_isReactive"]);
        }
        function isReadonly(value) {
          return !!(value && value["__v_isReadonly"]);
        }
        function isProxy(value) {
          return isReactive2(value) || isReadonly(value);
        }
        function toRaw2(observed) {
          return observed && toRaw2(observed["__v_raw"]) || observed;
        }
        function markRaw(value) {
          shared.def(value, "__v_skip", true);
          return value;
        }
        var convert = (val) => shared.isObject(val) ? reactive3(val) : val;
        function isRef(r) {
          return Boolean(r && r.__v_isRef === true);
        }
        function ref(value) {
          return createRef(value);
        }
        function shallowRef(value) {
          return createRef(value, true);
        }
        var RefImpl = class {
          constructor(value, _shallow = false) {
            this._shallow = _shallow;
            this.__v_isRef = true;
            this._rawValue = _shallow ? value : toRaw2(value);
            this._value = _shallow ? value : convert(value);
          }
          get value() {
            track2(toRaw2(this), "get", "value");
            return this._value;
          }
          set value(newVal) {
            newVal = this._shallow ? newVal : toRaw2(newVal);
            if (shared.hasChanged(newVal, this._rawValue)) {
              this._rawValue = newVal;
              this._value = this._shallow ? newVal : convert(newVal);
              trigger2(toRaw2(this), "set", "value", newVal);
            }
          }
        };
        function createRef(rawValue, shallow = false) {
          if (isRef(rawValue)) {
            return rawValue;
          }
          return new RefImpl(rawValue, shallow);
        }
        function triggerRef(ref2) {
          trigger2(toRaw2(ref2), "set", "value", ref2.value);
        }
        function unref(ref2) {
          return isRef(ref2) ? ref2.value : ref2;
        }
        var shallowUnwrapHandlers = {
          get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
          set: (target, key, value, receiver) => {
            const oldValue = target[key];
            if (isRef(oldValue) && !isRef(value)) {
              oldValue.value = value;
              return true;
            } else {
              return Reflect.set(target, key, value, receiver);
            }
          }
        };
        function proxyRefs(objectWithRefs) {
          return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
        }
        var CustomRefImpl = class {
          constructor(factory) {
            this.__v_isRef = true;
            const { get: get3, set: set3 } = factory(() => track2(this, "get", "value"), () => trigger2(this, "set", "value"));
            this._get = get3;
            this._set = set3;
          }
          get value() {
            return this._get();
          }
          set value(newVal) {
            this._set(newVal);
          }
        };
        function customRef(factory) {
          return new CustomRefImpl(factory);
        }
        function toRefs(object) {
          if (!isProxy(object)) {
            console.warn(`toRefs() expects a reactive object but received a plain one.`);
          }
          const ret = shared.isArray(object) ? new Array(object.length) : {};
          for (const key in object) {
            ret[key] = toRef(object, key);
          }
          return ret;
        }
        var ObjectRefImpl = class {
          constructor(_object, _key) {
            this._object = _object;
            this._key = _key;
            this.__v_isRef = true;
          }
          get value() {
            return this._object[this._key];
          }
          set value(newVal) {
            this._object[this._key] = newVal;
          }
        };
        function toRef(object, key) {
          return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key);
        }
        var ComputedRefImpl = class {
          constructor(getter, _setter, isReadonly2) {
            this._setter = _setter;
            this._dirty = true;
            this.__v_isRef = true;
            this.effect = effect3(getter, {
              lazy: true,
              scheduler: () => {
                if (!this._dirty) {
                  this._dirty = true;
                  trigger2(toRaw2(this), "set", "value");
                }
              }
            });
            this["__v_isReadonly"] = isReadonly2;
          }
          get value() {
            const self2 = toRaw2(this);
            if (self2._dirty) {
              self2._value = this.effect();
              self2._dirty = false;
            }
            track2(self2, "get", "value");
            return self2._value;
          }
          set value(newValue) {
            this._setter(newValue);
          }
        };
        function computed(getterOrOptions) {
          let getter;
          let setter;
          if (shared.isFunction(getterOrOptions)) {
            getter = getterOrOptions;
            setter = () => {
              console.warn("Write operation failed: computed value is readonly");
            };
          } else {
            getter = getterOrOptions.get;
            setter = getterOrOptions.set;
          }
          return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set);
        }
        exports2.ITERATE_KEY = ITERATE_KEY;
        exports2.computed = computed;
        exports2.customRef = customRef;
        exports2.effect = effect3;
        exports2.enableTracking = enableTracking;
        exports2.isProxy = isProxy;
        exports2.isReactive = isReactive2;
        exports2.isReadonly = isReadonly;
        exports2.isRef = isRef;
        exports2.markRaw = markRaw;
        exports2.pauseTracking = pauseTracking;
        exports2.proxyRefs = proxyRefs;
        exports2.reactive = reactive3;
        exports2.readonly = readonly;
        exports2.ref = ref;
        exports2.resetTracking = resetTracking;
        exports2.shallowReactive = shallowReactive;
        exports2.shallowReadonly = shallowReadonly;
        exports2.shallowRef = shallowRef;
        exports2.stop = stop2;
        exports2.toRaw = toRaw2;
        exports2.toRef = toRef;
        exports2.toRefs = toRefs;
        exports2.track = track2;
        exports2.trigger = trigger2;
        exports2.triggerRef = triggerRef;
        exports2.unref = unref;
      }
    });
    var require_reactivity = __commonJS2({
      "node_modules/@vue/reactivity/index.js"(exports2, module2) {
        "use strict";
        if (false) {
          module2.exports = null;
        } else {
          module2.exports = require_reactivity_cjs();
        }
      }
    });
    var module_exports = {};
    __export(module_exports, {
      Alpine: () => src_default2,
      default: () => module_default2
    });
    module.exports = __toCommonJS(module_exports);
    var flushPending = false;
    var flushing = false;
    var queue = [];
    var lastFlushedIndex = -1;
    var transactionActive = false;
    function scheduler(callback) {
      queueJob(callback);
    }
    function startTransaction() {
      transactionActive = true;
    }
    function commitTransaction() {
      transactionActive = false;
      queueFlush();
    }
    function queueJob(job) {
      if (!queue.includes(job))
        queue.push(job);
      queueFlush();
    }
    function dequeueJob(job) {
      let index = queue.indexOf(job);
      if (index !== -1 && index > lastFlushedIndex)
        queue.splice(index, 1);
    }
    function queueFlush() {
      if (!flushing && !flushPending) {
        if (transactionActive)
          return;
        flushPending = true;
        queueMicrotask(flushJobs);
      }
    }
    function flushJobs() {
      flushPending = false;
      flushing = true;
      for (let i = 0; i < queue.length; i++) {
        queue[i]();
        lastFlushedIndex = i;
      }
      queue.length = 0;
      lastFlushedIndex = -1;
      flushing = false;
    }
    var reactive;
    var effect;
    var release;
    var raw;
    var shouldSchedule = true;
    function disableEffectScheduling(callback) {
      shouldSchedule = false;
      callback();
      shouldSchedule = true;
    }
    function setReactivityEngine(engine) {
      reactive = engine.reactive;
      release = engine.release;
      effect = (callback) => engine.effect(callback, { scheduler: (task) => {
        if (shouldSchedule) {
          scheduler(task);
        } else {
          task();
        }
      } });
      raw = engine.raw;
    }
    function overrideEffect(override) {
      effect = override;
    }
    function elementBoundEffect(el) {
      let cleanup = () => {
      };
      let wrappedEffect = (callback) => {
        let effectReference = effect(callback);
        if (!el._x_effects) {
          el._x_effects = /* @__PURE__ */ new Set();
          el._x_runEffects = () => {
            el._x_effects.forEach((i) => i());
          };
        }
        el._x_effects.add(effectReference);
        cleanup = () => {
          if (effectReference === void 0)
            return;
          el._x_effects.delete(effectReference);
          release(effectReference);
        };
        return effectReference;
      };
      return [wrappedEffect, () => {
        cleanup();
      }];
    }
    function watch(getter, callback) {
      let firstTime = true;
      let oldValue;
      let effectReference = effect(() => {
        let value = getter();
        JSON.stringify(value);
        if (!firstTime) {
          if (typeof value === "object" || value !== oldValue) {
            let previousValue = oldValue;
            queueMicrotask(() => {
              callback(value, previousValue);
            });
          }
        }
        oldValue = value;
        firstTime = false;
      });
      return () => release(effectReference);
    }
    async function transaction(callback) {
      startTransaction();
      try {
        await callback();
        await Promise.resolve();
      } finally {
        commitTransaction();
      }
    }
    var onAttributeAddeds = [];
    var onElRemoveds = [];
    var onElAddeds = [];
    function onElAdded(callback) {
      onElAddeds.push(callback);
    }
    function onElRemoved(el, callback) {
      if (typeof callback === "function") {
        if (!el._x_cleanups)
          el._x_cleanups = [];
        el._x_cleanups.push(callback);
      } else {
        callback = el;
        onElRemoveds.push(callback);
      }
    }
    function onAttributesAdded(callback) {
      onAttributeAddeds.push(callback);
    }
    function onAttributeRemoved(el, name, callback) {
      if (!el._x_attributeCleanups)
        el._x_attributeCleanups = {};
      if (!el._x_attributeCleanups[name])
        el._x_attributeCleanups[name] = [];
      el._x_attributeCleanups[name].push(callback);
    }
    function cleanupAttributes(el, names) {
      if (!el._x_attributeCleanups)
        return;
      Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {
        if (names === void 0 || names.includes(name)) {
          value.forEach((i) => i());
          delete el._x_attributeCleanups[name];
        }
      });
    }
    function cleanupElement(el) {
      var _a, _b;
      (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob);
      while ((_b = el._x_cleanups) == null ? void 0 : _b.length)
        el._x_cleanups.pop()();
    }
    var observer = new MutationObserver(onMutate);
    var currentlyObserving = false;
    function startObservingMutations() {
      observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });
      currentlyObserving = true;
    }
    function stopObservingMutations() {
      flushObserver();
      observer.disconnect();
      currentlyObserving = false;
    }
    var queuedMutations = [];
    function flushObserver() {
      let records = observer.takeRecords();
      queuedMutations.push(() => records.length > 0 && onMutate(records));
      let queueLengthWhenTriggered = queuedMutations.length;
      queueMicrotask(() => {
        if (queuedMutations.length === queueLengthWhenTriggered) {
          while (queuedMutations.length > 0)
            queuedMutations.shift()();
        }
      });
    }
    function mutateDom(callback) {
      if (!currentlyObserving)
        return callback();
      stopObservingMutations();
      let result = callback();
      startObservingMutations();
      return result;
    }
    var isCollecting = false;
    var deferredMutations = [];
    function deferMutations() {
      isCollecting = true;
    }
    function flushAndStopDeferringMutations() {
      isCollecting = false;
      onMutate(deferredMutations);
      deferredMutations = [];
    }
    function onMutate(mutations) {
      if (isCollecting) {
        deferredMutations = deferredMutations.concat(mutations);
        return;
      }
      let addedNodes = [];
      let removedNodes = /* @__PURE__ */ new Set();
      let addedAttributes = /* @__PURE__ */ new Map();
      let removedAttributes = /* @__PURE__ */ new Map();
      for (let i = 0; i < mutations.length; i++) {
        if (mutations[i].target._x_ignoreMutationObserver)
          continue;
        if (mutations[i].type === "childList") {
          mutations[i].removedNodes.forEach((node) => {
            if (node.nodeType !== 1)
              return;
            if (!node._x_marker)
              return;
            removedNodes.add(node);
          });
          mutations[i].addedNodes.forEach((node) => {
            if (node.nodeType !== 1)
              return;
            if (removedNodes.has(node)) {
              removedNodes.delete(node);
              return;
            }
            if (node._x_marker)
              return;
            addedNodes.push(node);
          });
        }
        if (mutations[i].type === "attributes") {
          let el = mutations[i].target;
          let name = mutations[i].attributeName;
          let oldValue = mutations[i].oldValue;
          let add = () => {
            if (!addedAttributes.has(el))
              addedAttributes.set(el, []);
            addedAttributes.get(el).push({ name, value: el.getAttribute(name) });
          };
          let remove = () => {
            if (!removedAttributes.has(el))
              removedAttributes.set(el, []);
            removedAttributes.get(el).push(name);
          };
          if (el.hasAttribute(name) && oldValue === null) {
            add();
          } else if (el.hasAttribute(name)) {
            remove();
            add();
          } else {
            remove();
          }
        }
      }
      removedAttributes.forEach((attrs, el) => {
        cleanupAttributes(el, attrs);
      });
      addedAttributes.forEach((attrs, el) => {
        onAttributeAddeds.forEach((i) => i(el, attrs));
      });
      for (let node of removedNodes) {
        if (addedNodes.some((i) => i.contains(node)))
          continue;
        onElRemoveds.forEach((i) => i(node));
      }
      for (let node of addedNodes) {
        if (!node.isConnected)
          continue;
        onElAddeds.forEach((i) => i(node));
      }
      addedNodes = null;
      removedNodes = null;
      addedAttributes = null;
      removedAttributes = null;
    }
    function scope(node) {
      return mergeProxies(closestDataStack(node));
    }
    function addScopeToNode(node, data2, referenceNode) {
      node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];
      return () => {
        node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);
      };
    }
    function closestDataStack(node) {
      if (node._x_dataStack)
        return node._x_dataStack;
      if (typeof ShadowRoot === "function" && node instanceof ShadowRoot) {
        return closestDataStack(node.host);
      }
      if (!node.parentNode) {
        return [];
      }
      return closestDataStack(node.parentNode);
    }
    function mergeProxies(objects) {
      return new Proxy({ objects }, mergeProxyTrap);
    }
    var mergeProxyTrap = {
      ownKeys({ objects }) {
        return Array.from(
          new Set(objects.flatMap((i) => Object.keys(i)))
        );
      },
      has({ objects }, name) {
        if (name == Symbol.unscopables)
          return false;
        return objects.some(
          (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)
        );
      },
      get({ objects }, name, thisProxy) {
        if (name == "toJSON")
          return collapseProxies;
        return Reflect.get(
          objects.find(
            (obj) => Reflect.has(obj, name)
          ) || {},
          name,
          thisProxy
        );
      },
      set({ objects }, name, value, thisProxy) {
        const target = objects.find(
          (obj) => Object.prototype.hasOwnProperty.call(obj, name)
        ) || objects[objects.length - 1];
        const descriptor = Object.getOwnPropertyDescriptor(target, name);
        if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get))
          return descriptor.set.call(thisProxy, value) || true;
        return Reflect.set(target, name, value);
      }
    };
    function collapseProxies() {
      let keys = Reflect.ownKeys(this);
      return keys.reduce((acc, key) => {
        acc[key] = Reflect.get(this, key);
        return acc;
      }, {});
    }
    function initInterceptors(data2) {
      let isObject2 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null;
      let recurse = (obj, basePath = "") => {
        Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {
          if (enumerable === false || value === void 0)
            return;
          if (typeof value === "object" && value !== null && value.__v_skip)
            return;
          let path = basePath === "" ? key : `${basePath}.${key}`;
          if (typeof value === "object" && value !== null && value._x_interceptor) {
            obj[key] = value.initialize(data2, path, key);
          } else {
            if (isObject2(value) && value !== obj && !(value instanceof Element)) {
              recurse(value, path);
            }
          }
        });
      };
      return recurse(data2);
    }
    function interceptor(callback, mutateObj = () => {
    }) {
      let obj = {
        initialValue: void 0,
        _x_interceptor: true,
        initialize(data2, path, key) {
          return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);
        }
      };
      mutateObj(obj);
      return (initialValue) => {
        if (typeof initialValue === "object" && initialValue !== null && initialValue._x_interceptor) {
          let initialize = obj.initialize.bind(obj);
          obj.initialize = (data2, path, key) => {
            let innerValue = initialValue.initialize(data2, path, key);
            obj.initialValue = innerValue;
            return initialize(data2, path, key);
          };
        } else {
          obj.initialValue = initialValue;
        }
        return obj;
      };
    }
    function get(obj, path) {
      return path.split(".").reduce((carry, segment) => carry[segment], obj);
    }
    function set(obj, path, value) {
      if (typeof path === "string")
        path = path.split(".");
      if (path.length === 1)
        obj[path[0]] = value;
      else if (path.length === 0)
        throw error;
      else {
        if (obj[path[0]])
          return set(obj[path[0]], path.slice(1), value);
        else {
          obj[path[0]] = {};
          return set(obj[path[0]], path.slice(1), value);
        }
      }
    }
    var magics = {};
    function magic(name, callback) {
      magics[name] = callback;
    }
    function injectMagics(obj, el) {
      let memoizedUtilities = getUtilities(el);
      Object.entries(magics).forEach(([name, callback]) => {
        Object.defineProperty(obj, `$${name}`, {
          get() {
            return callback(el, memoizedUtilities);
          },
          enumerable: false
        });
      });
      return obj;
    }
    function getUtilities(el) {
      let [utilities, cleanup] = getElementBoundUtilities(el);
      let utils = { interceptor, ...utilities };
      onElRemoved(el, cleanup);
      return utils;
    }
    function tryCatch(el, expression, callback, ...args) {
      try {
        return callback(...args);
      } catch (e) {
        handleError(e, el, expression);
      }
    }
    function handleError(...args) {
      return errorHandler(...args);
    }
    var errorHandler = normalErrorHandler;
    function setErrorHandler(handler4) {
      errorHandler = handler4;
    }
    function normalErrorHandler(error2, el, expression = void 0) {
      error2 = Object.assign(
        error2 != null ? error2 : { message: "No error message given." },
        { el, expression }
      );
      console.warn(`Alpine Expression Error: ${error2.message}

${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
      setTimeout(() => {
        throw error2;
      }, 0);
    }
    var shouldAutoEvaluateFunctions = true;
    function dontAutoEvaluateFunctions(callback) {
      let cache = shouldAutoEvaluateFunctions;
      shouldAutoEvaluateFunctions = false;
      let result = callback();
      shouldAutoEvaluateFunctions = cache;
      return result;
    }
    function evaluate(el, expression, extras = {}) {
      let result;
      evaluateLater(el, expression)((value) => result = value, extras);
      return result;
    }
    function evaluateLater(...args) {
      return theEvaluatorFunction(...args);
    }
    var theEvaluatorFunction = normalEvaluator;
    function setEvaluator(newEvaluator) {
      theEvaluatorFunction = newEvaluator;
    }
    var theRawEvaluatorFunction;
    function setRawEvaluator(newEvaluator) {
      theRawEvaluatorFunction = newEvaluator;
    }
    function normalEvaluator(el, expression) {
      let overriddenMagics = {};
      injectMagics(overriddenMagics, el);
      let dataStack = [overriddenMagics, ...closestDataStack(el)];
      let evaluator = typeof expression === "function" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);
      return tryCatch.bind(null, el, expression, evaluator);
    }
    function generateEvaluatorFromFunction(dataStack, func) {
      return (receiver = () => {
      }, { scope: scope2 = {}, params = [], context } = {}) => {
        if (!shouldAutoEvaluateFunctions) {
          runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);
          return;
        }
        let result = func.apply(mergeProxies([scope2, ...dataStack]), params);
        runIfTypeOfFunction(receiver, result);
      };
    }
    var evaluatorMemo = {};
    function generateFunctionFromString(expression, el) {
      if (evaluatorMemo[expression]) {
        return evaluatorMemo[expression];
      }
      let AsyncFunction = Object.getPrototypeOf(async function() {
      }).constructor;
      let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;
      const safeAsyncFunction = () => {
        try {
          let func2 = new AsyncFunction(
            ["__self", "scope"],
            `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`
          );
          Object.defineProperty(func2, "name", {
            value: `[Alpine] ${expression}`
          });
          return func2;
        } catch (error2) {
          handleError(error2, el, expression);
          return Promise.resolve();
        }
      };
      let func = safeAsyncFunction();
      evaluatorMemo[expression] = func;
      return func;
    }
    function generateEvaluatorFromString(dataStack, expression, el) {
      let func = generateFunctionFromString(expression, el);
      return (receiver = () => {
      }, { scope: scope2 = {}, params = [], context } = {}) => {
        func.result = void 0;
        func.finished = false;
        let completeScope = mergeProxies([scope2, ...dataStack]);
        if (typeof func === "function") {
          let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression));
          if (func.finished) {
            runIfTypeOfFunction(receiver, func.result, completeScope, params, el);
            func.result = void 0;
          } else {
            promise.then((result) => {
              runIfTypeOfFunction(receiver, result, completeScope, params, el);
            }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);
          }
        }
      };
    }
    function runIfTypeOfFunction(receiver, value, scope2, params, el) {
      if (shouldAutoEvaluateFunctions && typeof value === "function") {
        let result = value.apply(scope2, params);
        if (result instanceof Promise) {
          result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));
        } else {
          receiver(result);
        }
      } else if (typeof value === "object" && value instanceof Promise) {
        value.then((i) => receiver(i));
      } else {
        receiver(value);
      }
    }
    function evaluateRaw(...args) {
      return theRawEvaluatorFunction(...args);
    }
    var prefixAsString = "x-";
    function prefix(subject = "") {
      return prefixAsString + subject;
    }
    function setPrefix(newPrefix) {
      prefixAsString = newPrefix;
    }
    var directiveHandlers = {};
    function directive2(name, callback) {
      directiveHandlers[name] = callback;
      return {
        before(directive22) {
          if (!directiveHandlers[directive22]) {
            console.warn(String.raw`Cannot find directive \`${directive22}\`. \`${name}\` will use the default order of execution`);
            return;
          }
          const pos = directiveOrder.indexOf(directive22);
          directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf("DEFAULT"), 0, name);
        }
      };
    }
    function directiveExists(name) {
      return Object.keys(directiveHandlers).includes(name);
    }
    function directives(el, attributes, originalAttributeOverride) {
      attributes = Array.from(attributes);
      if (el._x_virtualDirectives) {
        let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));
        let staticAttributes = attributesOnly(vAttributes);
        vAttributes = vAttributes.map((attribute) => {
          if (staticAttributes.find((attr) => attr.name === attribute.name)) {
            return {
              name: `x-bind:${attribute.name}`,
              value: `"${attribute.value}"`
            };
          }
          return attribute;
        });
        attributes = attributes.concat(vAttributes);
      }
      let transformedAttributeMap = {};
      let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);
      return directives2.map((directive22) => {
        return getDirectiveHandler(el, directive22);
      });
    }
    function attributesOnly(attributes) {
      return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));
    }
    var isDeferringHandlers = false;
    var directiveHandlerStacks = /* @__PURE__ */ new Map();
    var currentHandlerStackKey = Symbol();
    function deferHandlingDirectives(callback) {
      isDeferringHandlers = true;
      let key = Symbol();
      currentHandlerStackKey = key;
      directiveHandlerStacks.set(key, []);
      let flushHandlers = () => {
        while (directiveHandlerStacks.get(key).length)
          directiveHandlerStacks.get(key).shift()();
        directiveHandlerStacks.delete(key);
      };
      let stopDeferring = () => {
        isDeferringHandlers = false;
        flushHandlers();
      };
      callback(flushHandlers);
      stopDeferring();
    }
    function getElementBoundUtilities(el) {
      let cleanups2 = [];
      let cleanup = (callback) => cleanups2.push(callback);
      let [effect3, cleanupEffect] = elementBoundEffect(el);
      cleanups2.push(cleanupEffect);
      let utilities = {
        Alpine: alpine_default,
        effect: effect3,
        cleanup,
        evaluateLater: evaluateLater.bind(evaluateLater, el),
        evaluate: evaluate.bind(evaluate, el)
      };
      let doCleanup = () => cleanups2.forEach((i) => i());
      return [utilities, doCleanup];
    }
    function getDirectiveHandler(el, directive22) {
      let noop = () => {
      };
      let handler4 = directiveHandlers[directive22.type] || noop;
      let [utilities, cleanup] = getElementBoundUtilities(el);
      onAttributeRemoved(el, directive22.original, cleanup);
      let fullHandler = () => {
        if (el._x_ignore || el._x_ignoreSelf)
          return;
        handler4.inline && handler4.inline(el, directive22, utilities);
        handler4 = handler4.bind(handler4, el, directive22, utilities);
        isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();
      };
      fullHandler.runCleanups = cleanup;
      return fullHandler;
    }
    var startingWith = (subject, replacement) => ({ name, value }) => {
      if (name.startsWith(subject))
        name = name.replace(subject, replacement);
      return { name, value };
    };
    var into = (i) => i;
    function toTransformedAttributes(callback = () => {
    }) {
      return ({ name, value }) => {
        let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {
          return transform(carry);
        }, { name, value });
        if (newName !== name)
          callback(newName, name);
        return { name: newName, value: newValue };
      };
    }
    var attributeTransformers = [];
    function mapAttributes(callback) {
      attributeTransformers.push(callback);
    }
    function outNonAlpineAttributes({ name }) {
      return alpineAttributeRegex().test(name);
    }
    var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`);
    function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {
      return ({ name, value }) => {
        if (name === value)
          value = "";
        let typeMatch = name.match(alpineAttributeRegex());
        let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/);
        let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || [];
        let original = originalAttributeOverride || transformedAttributeMap[name] || name;
        return {
          type: typeMatch ? typeMatch[1] : null,
          value: valueMatch ? valueMatch[1] : null,
          modifiers: modifiers.map((i) => i.replace(".", "")),
          expression: value,
          original
        };
      };
    }
    var DEFAULT = "DEFAULT";
    var directiveOrder = [
      "ignore",
      "ref",
      "data",
      "id",
      "anchor",
      "bind",
      "init",
      "for",
      "model",
      "modelable",
      "transition",
      "show",
      "if",
      DEFAULT,
      "teleport"
    ];
    function byPriority(a, b) {
      let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;
      let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;
      return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);
    }
    function dispatch3(el, name, detail = {}) {
      el.dispatchEvent(
        new CustomEvent(name, {
          detail,
          bubbles: true,
          composed: true,
          cancelable: true
        })
      );
    }
    function walk(el, callback) {
      if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
        Array.from(el.children).forEach((el2) => walk(el2, callback));
        return;
      }
      let skip = false;
      callback(el, () => skip = true);
      if (skip)
        return;
      let node = el.firstElementChild;
      while (node) {
        walk(node, callback, false);
        node = node.nextElementSibling;
      }
    }
    function warn(message, ...args) {
      console.warn(`Alpine Warning: ${message}`, ...args);
    }
    var started = false;
    function start2() {
      if (started)
        warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.");
      started = true;
      if (!document.body)
        warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?");
      dispatch3(document, "alpine:init");
      dispatch3(document, "alpine:initializing");
      startObservingMutations();
      onElAdded((el) => initTree(el, walk));
      onElRemoved((el) => destroyTree(el));
      onAttributesAdded((el, attrs) => {
        directives(el, attrs).forEach((handle) => handle());
      });
      let outNestedComponents = (el) => !closestRoot(el.parentElement, true);
      Array.from(document.querySelectorAll(allSelectors().join(","))).filter(outNestedComponents).forEach((el) => {
        initTree(el);
      });
      dispatch3(document, "alpine:initialized");
      setTimeout(() => {
        warnAboutMissingPlugins();
      });
    }
    var rootSelectorCallbacks = [];
    var initSelectorCallbacks = [];
    function rootSelectors() {
      return rootSelectorCallbacks.map((fn) => fn());
    }
    function allSelectors() {
      return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());
    }
    function addRootSelector(selectorCallback) {
      rootSelectorCallbacks.push(selectorCallback);
    }
    function addInitSelector(selectorCallback) {
      initSelectorCallbacks.push(selectorCallback);
    }
    function closestRoot(el, includeInitSelectors = false) {
      return findClosest(el, (element) => {
        const selectors = includeInitSelectors ? allSelectors() : rootSelectors();
        if (selectors.some((selector) => element.matches(selector)))
          return true;
      });
    }
    function findClosest(el, callback) {
      if (!el)
        return;
      if (callback(el))
        return el;
      if (el._x_teleportBack)
        el = el._x_teleportBack;
      if (el.parentNode instanceof ShadowRoot) {
        return findClosest(el.parentNode.host, callback);
      }
      if (!el.parentElement)
        return;
      return findClosest(el.parentElement, callback);
    }
    function isRoot(el) {
      return rootSelectors().some((selector) => el.matches(selector));
    }
    var initInterceptors2 = [];
    function interceptInit(callback) {
      initInterceptors2.push(callback);
    }
    var markerDispenser = 1;
    function initTree(el, walker = walk, intercept = () => {
    }) {
      if (findClosest(el, (i) => i._x_ignore))
        return;
      deferHandlingDirectives(() => {
        walker(el, (el2, skip) => {
          if (el2._x_marker)
            return;
          intercept(el2, skip);
          initInterceptors2.forEach((i) => i(el2, skip));
          directives(el2, el2.attributes).forEach((handle) => handle());
          if (!el2._x_ignore)
            el2._x_marker = markerDispenser++;
          el2._x_ignore && skip();
        });
      });
    }
    function destroyTree(root, walker = walk) {
      walker(root, (el) => {
        cleanupElement(el);
        cleanupAttributes(el);
        delete el._x_marker;
      });
    }
    function warnAboutMissingPlugins() {
      let pluginDirectives = [
        ["ui", "dialog", ["[x-dialog], [x-popover]"]],
        ["anchor", "anchor", ["[x-anchor]"]],
        ["sort", "sort", ["[x-sort]"]]
      ];
      pluginDirectives.forEach(([plugin2, directive22, selectors]) => {
        if (directiveExists(directive22))
          return;
        selectors.some((selector) => {
          if (document.querySelector(selector)) {
            warn(`found "${selector}", but missing ${plugin2} plugin`);
            return true;
          }
        });
      });
    }
    var tickStack = [];
    var isHolding = false;
    function nextTick(callback = () => {
    }) {
      queueMicrotask(() => {
        isHolding || setTimeout(() => {
          releaseNextTicks();
        });
      });
      return new Promise((res) => {
        tickStack.push(() => {
          callback();
          res();
        });
      });
    }
    function releaseNextTicks() {
      isHolding = false;
      while (tickStack.length)
        tickStack.shift()();
    }
    function holdNextTicks() {
      isHolding = true;
    }
    function setClasses(el, value) {
      if (Array.isArray(value)) {
        return setClassesFromString(el, value.join(" "));
      } else if (typeof value === "object" && value !== null) {
        return setClassesFromObject(el, value);
      } else if (typeof value === "function") {
        return setClasses(el, value());
      }
      return setClassesFromString(el, value);
    }
    function setClassesFromString(el, classString) {
      let split = (classString2) => classString2.split(" ").filter(Boolean);
      let missingClasses = (classString2) => classString2.split(" ").filter((i) => !el.classList.contains(i)).filter(Boolean);
      let addClassesAndReturnUndo = (classes) => {
        el.classList.add(...classes);
        return () => {
          el.classList.remove(...classes);
        };
      };
      classString = classString === true ? classString = "" : classString || "";
      return addClassesAndReturnUndo(missingClasses(classString));
    }
    function setClassesFromObject(el, classObject) {
      let split = (classString) => classString.split(" ").filter(Boolean);
      let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean);
      let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean);
      let added = [];
      let removed = [];
      forRemove.forEach((i) => {
        if (el.classList.contains(i)) {
          el.classList.remove(i);
          removed.push(i);
        }
      });
      forAdd.forEach((i) => {
        if (!el.classList.contains(i)) {
          el.classList.add(i);
          added.push(i);
        }
      });
      return () => {
        removed.forEach((i) => el.classList.add(i));
        added.forEach((i) => el.classList.remove(i));
      };
    }
    function setStyles(el, value) {
      if (typeof value === "object" && value !== null) {
        return setStylesFromObject(el, value);
      }
      return setStylesFromString(el, value);
    }
    function setStylesFromObject(el, value) {
      let previousStyles = {};
      Object.entries(value).forEach(([key, value2]) => {
        previousStyles[key] = el.style[key];
        if (!key.startsWith("--")) {
          key = kebabCase(key);
        }
        el.style.setProperty(key, value2);
      });
      setTimeout(() => {
        if (el.style.length === 0) {
          el.removeAttribute("style");
        }
      });
      return () => {
        setStyles(el, previousStyles);
      };
    }
    function setStylesFromString(el, value) {
      let cache = el.getAttribute("style", value);
      el.setAttribute("style", value);
      return () => {
        el.setAttribute("style", cache || "");
      };
    }
    function kebabCase(subject) {
      return subject.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
    }
    function once(callback, fallback2 = () => {
    }) {
      let called = false;
      return function() {
        if (!called) {
          called = true;
          callback.apply(this, arguments);
        } else {
          fallback2.apply(this, arguments);
        }
      };
    }
    directive2("transition", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {
      if (typeof expression === "function")
        expression = evaluate2(expression);
      if (expression === false)
        return;
      if (!expression || typeof expression === "boolean") {
        registerTransitionsFromHelper(el, modifiers, value);
      } else {
        registerTransitionsFromClassString(el, expression, value);
      }
    });
    function registerTransitionsFromClassString(el, classString, stage) {
      registerTransitionObject(el, setClasses, "");
      let directiveStorageMap = {
        "enter": (classes) => {
          el._x_transition.enter.during = classes;
        },
        "enter-start": (classes) => {
          el._x_transition.enter.start = classes;
        },
        "enter-end": (classes) => {
          el._x_transition.enter.end = classes;
        },
        "leave": (classes) => {
          el._x_transition.leave.during = classes;
        },
        "leave-start": (classes) => {
          el._x_transition.leave.start = classes;
        },
        "leave-end": (classes) => {
          el._x_transition.leave.end = classes;
        }
      };
      directiveStorageMap[stage](classString);
    }
    function registerTransitionsFromHelper(el, modifiers, stage) {
      registerTransitionObject(el, setStyles);
      let doesntSpecify = !modifiers.includes("in") && !modifiers.includes("out") && !stage;
      let transitioningIn = doesntSpecify || modifiers.includes("in") || ["enter"].includes(stage);
      let transitioningOut = doesntSpecify || modifiers.includes("out") || ["leave"].includes(stage);
      if (modifiers.includes("in") && !doesntSpecify) {
        modifiers = modifiers.filter((i, index) => index < modifiers.indexOf("out"));
      }
      if (modifiers.includes("out") && !doesntSpecify) {
        modifiers = modifiers.filter((i, index) => index > modifiers.indexOf("out"));
      }
      let wantsAll = !modifiers.includes("opacity") && !modifiers.includes("scale");
      let wantsOpacity = wantsAll || modifiers.includes("opacity");
      let wantsScale = wantsAll || modifiers.includes("scale");
      let opacityValue = wantsOpacity ? 0 : 1;
      let scaleValue = wantsScale ? modifierValue(modifiers, "scale", 95) / 100 : 1;
      let delay = modifierValue(modifiers, "delay", 0) / 1e3;
      let origin = modifierValue(modifiers, "origin", "center");
      let property = "opacity, transform";
      let durationIn = modifierValue(modifiers, "duration", 150) / 1e3;
      let durationOut = modifierValue(modifiers, "duration", 75) / 1e3;
      let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;
      if (transitioningIn) {
        el._x_transition.enter.during = {
          transformOrigin: origin,
          transitionDelay: `${delay}s`,
          transitionProperty: property,
          transitionDuration: `${durationIn}s`,
          transitionTimingFunction: easing
        };
        el._x_transition.enter.start = {
          opacity: opacityValue,
          transform: `scale(${scaleValue})`
        };
        el._x_transition.enter.end = {
          opacity: 1,
          transform: `scale(1)`
        };
      }
      if (transitioningOut) {
        el._x_transition.leave.during = {
          transformOrigin: origin,
          transitionDelay: `${delay}s`,
          transitionProperty: property,
          transitionDuration: `${durationOut}s`,
          transitionTimingFunction: easing
        };
        el._x_transition.leave.start = {
          opacity: 1,
          transform: `scale(1)`
        };
        el._x_transition.leave.end = {
          opacity: opacityValue,
          transform: `scale(${scaleValue})`
        };
      }
    }
    function registerTransitionObject(el, setFunction, defaultValue = {}) {
      if (!el._x_transition)
        el._x_transition = {
          enter: { during: defaultValue, start: defaultValue, end: defaultValue },
          leave: { during: defaultValue, start: defaultValue, end: defaultValue },
          in(before = () => {
          }, after = () => {
          }) {
            transition(el, setFunction, {
              during: this.enter.during,
              start: this.enter.start,
              end: this.enter.end
            }, before, after);
          },
          out(before = () => {
          }, after = () => {
          }) {
            transition(el, setFunction, {
              during: this.leave.during,
              start: this.leave.start,
              end: this.leave.end
            }, before, after);
          }
        };
    }
    window.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {
      const nextTick2 = document.visibilityState === "visible" ? requestAnimationFrame : setTimeout;
      let clickAwayCompatibleShow = () => nextTick2(show);
      if (value) {
        if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {
          el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();
        } else {
          el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();
        }
        return;
      }
      el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {
        el._x_transition.out(() => {
        }, () => resolve(hide));
        el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));
      }) : Promise.resolve(hide);
      queueMicrotask(() => {
        let closest = closestHide(el);
        if (closest) {
          if (!closest._x_hideChildren)
            closest._x_hideChildren = [];
          closest._x_hideChildren.push(el);
        } else {
          nextTick2(() => {
            let hideAfterChildren = (el2) => {
              let carry = Promise.all([
                el2._x_hidePromise,
                ...(el2._x_hideChildren || []).map(hideAfterChildren)
              ]).then(([i]) => i == null ? void 0 : i());
              delete el2._x_hidePromise;
              delete el2._x_hideChildren;
              return carry;
            };
            hideAfterChildren(el).catch((e) => {
              if (!e.isFromCancelledTransition)
                throw e;
            });
          });
        }
      });
    };
    function closestHide(el) {
      let parent = el.parentNode;
      if (!parent)
        return;
      return parent._x_hidePromise ? parent : closestHide(parent);
    }
    function transition(el, setFunction, { during, start: start22, end } = {}, before = () => {
    }, after = () => {
    }) {
      if (el._x_transitioning)
        el._x_transitioning.cancel();
      if (Object.keys(during).length === 0 && Object.keys(start22).length === 0 && Object.keys(end).length === 0) {
        before();
        after();
        return;
      }
      let undoStart, undoDuring, undoEnd;
      performTransition(el, {
        start() {
          undoStart = setFunction(el, start22);
        },
        during() {
          undoDuring = setFunction(el, during);
        },
        before,
        end() {
          undoStart();
          undoEnd = setFunction(el, end);
        },
        after,
        cleanup() {
          undoDuring();
          undoEnd();
        }
      });
    }
    function performTransition(el, stages) {
      let interrupted, reachedBefore, reachedEnd;
      let finish = once(() => {
        mutateDom(() => {
          interrupted = true;
          if (!reachedBefore)
            stages.before();
          if (!reachedEnd) {
            stages.end();
            releaseNextTicks();
          }
          stages.after();
          if (el.isConnected)
            stages.cleanup();
          delete el._x_transitioning;
        });
      });
      el._x_transitioning = {
        beforeCancels: [],
        beforeCancel(callback) {
          this.beforeCancels.push(callback);
        },
        cancel: once(function() {
          while (this.beforeCancels.length) {
            this.beforeCancels.shift()();
          }
          ;
          finish();
        }),
        finish
      };
      mutateDom(() => {
        stages.start();
        stages.during();
      });
      holdNextTicks();
      requestAnimationFrame(() => {
        if (interrupted)
          return;
        let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, "").replace("s", "")) * 1e3;
        let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, "").replace("s", "")) * 1e3;
        if (duration === 0)
          duration = Number(getComputedStyle(el).animationDuration.replace("s", "")) * 1e3;
        mutateDom(() => {
          stages.before();
        });
        reachedBefore = true;
        requestAnimationFrame(() => {
          if (interrupted)
            return;
          mutateDom(() => {
            stages.end();
          });
          releaseNextTicks();
          setTimeout(el._x_transitioning.finish, duration + delay);
          reachedEnd = true;
        });
      });
    }
    function modifierValue(modifiers, key, fallback2) {
      if (modifiers.indexOf(key) === -1)
        return fallback2;
      const rawValue = modifiers[modifiers.indexOf(key) + 1];
      if (!rawValue)
        return fallback2;
      if (key === "scale") {
        if (isNaN(rawValue))
          return fallback2;
      }
      if (key === "duration" || key === "delay") {
        let match = rawValue.match(/([0-9]+)ms/);
        if (match)
          return match[1];
      }
      if (key === "origin") {
        if (["top", "right", "left", "center", "bottom"].includes(modifiers[modifiers.indexOf(key) + 2])) {
          return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(" ");
        }
      }
      return rawValue;
    }
    var isCloning = false;
    function skipDuringClone(callback, fallback2 = () => {
    }) {
      return (...args) => isCloning ? fallback2(...args) : callback(...args);
    }
    function onlyDuringClone(callback) {
      return (...args) => isCloning && callback(...args);
    }
    var interceptors2 = [];
    function interceptClone(callback) {
      interceptors2.push(callback);
    }
    function cloneNode(from, to) {
      interceptors2.forEach((i) => i(from, to));
      isCloning = true;
      dontRegisterReactiveSideEffects(() => {
        initTree(to, (el, callback) => {
          callback(el, () => {
          });
        });
      });
      isCloning = false;
    }
    var isCloningLegacy = false;
    function clone(oldEl, newEl) {
      if (!newEl._x_dataStack)
        newEl._x_dataStack = oldEl._x_dataStack;
      isCloning = true;
      isCloningLegacy = true;
      dontRegisterReactiveSideEffects(() => {
        cloneTree(newEl);
      });
      isCloning = false;
      isCloningLegacy = false;
    }
    function cloneTree(el) {
      let hasRunThroughFirstEl = false;
      let shallowWalker = (el2, callback) => {
        walk(el2, (el3, skip) => {
          if (hasRunThroughFirstEl && isRoot(el3))
            return skip();
          hasRunThroughFirstEl = true;
          callback(el3, skip);
        });
      };
      initTree(el, shallowWalker);
    }
    function dontRegisterReactiveSideEffects(callback) {
      let cache = effect;
      overrideEffect((callback2, el) => {
        let storedEffect = cache(callback2);
        release(storedEffect);
        return () => {
        };
      });
      callback();
      overrideEffect(cache);
    }
    function bind(el, name, value, modifiers = []) {
      if (!el._x_bindings)
        el._x_bindings = reactive({});
      el._x_bindings[name] = value;
      name = modifiers.includes("camel") ? camelCase(name) : name;
      switch (name) {
        case "value":
          bindInputValue(el, value);
          break;
        case "style":
          bindStyles(el, value);
          break;
        case "class":
          bindClasses(el, value);
          break;
        case "selected":
        case "checked":
          bindAttributeAndProperty(el, name, value);
          break;
        default:
          bindAttribute(el, name, value);
          break;
      }
    }
    function bindInputValue(el, value) {
      if (isRadio(el)) {
        if (el.attributes.value === void 0) {
          el.value = value;
        }
        if (window.fromModel) {
          if (typeof value === "boolean") {
            el.checked = safeParseBoolean(el.value) === value;
          } else {
            el.checked = checkedAttrLooseCompare(el.value, value);
          }
        }
      } else if (isCheckbox(el)) {
        if (Number.isInteger(value)) {
          el.value = value;
        } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) {
          el.value = String(value);
        } else {
          if (Array.isArray(value)) {
            el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));
          } else {
            el.checked = !!value;
          }
        }
      } else if (el.tagName === "SELECT") {
        updateSelect(el, value);
      } else {
        if (el.value === value)
          return;
        el.value = value === void 0 ? "" : value;
      }
    }
    function bindClasses(el, value) {
      if (el._x_undoAddedClasses)
        el._x_undoAddedClasses();
      el._x_undoAddedClasses = setClasses(el, value);
    }
    function bindStyles(el, value) {
      if (el._x_undoAddedStyles)
        el._x_undoAddedStyles();
      el._x_undoAddedStyles = setStyles(el, value);
    }
    function bindAttributeAndProperty(el, name, value) {
      bindAttribute(el, name, value);
      setPropertyIfChanged(el, name, value);
    }
    function bindAttribute(el, name, value) {
      if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {
        el.removeAttribute(name);
      } else {
        if (isBooleanAttr(name))
          value = name;
        setIfChanged(el, name, value);
      }
    }
    function setIfChanged(el, attrName, value) {
      if (el.getAttribute(attrName) != value) {
        el.setAttribute(attrName, value);
      }
    }
    function setPropertyIfChanged(el, propName, value) {
      if (el[propName] !== value) {
        el[propName] = value;
      }
    }
    function updateSelect(el, value) {
      const arrayWrappedValue = [].concat(value).map((value2) => {
        return value2 + "";
      });
      Array.from(el.options).forEach((option) => {
        option.selected = arrayWrappedValue.includes(option.value);
      });
    }
    function camelCase(subject) {
      return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase());
    }
    function checkedAttrLooseCompare(valueA, valueB) {
      return valueA == valueB;
    }
    function safeParseBoolean(rawValue) {
      if ([1, "1", "true", "on", "yes", true].includes(rawValue)) {
        return true;
      }
      if ([0, "0", "false", "off", "no", false].includes(rawValue)) {
        return false;
      }
      return rawValue ? Boolean(rawValue) : null;
    }
    var booleanAttributes = /* @__PURE__ */ new Set([
      "allowfullscreen",
      "async",
      "autofocus",
      "autoplay",
      "checked",
      "controls",
      "default",
      "defer",
      "disabled",
      "formnovalidate",
      "inert",
      "ismap",
      "itemscope",
      "loop",
      "multiple",
      "muted",
      "nomodule",
      "novalidate",
      "open",
      "playsinline",
      "readonly",
      "required",
      "reversed",
      "selected",
      "shadowrootclonable",
      "shadowrootdelegatesfocus",
      "shadowrootserializable"
    ]);
    function isBooleanAttr(attrName) {
      return booleanAttributes.has(attrName);
    }
    function attributeShouldntBePreservedIfFalsy(name) {
      return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name);
    }
    function getBinding(el, name, fallback2) {
      if (el._x_bindings && el._x_bindings[name] !== void 0)
        return el._x_bindings[name];
      return getAttributeBinding(el, name, fallback2);
    }
    function extractProp(el, name, fallback2, extract = true) {
      if (el._x_bindings && el._x_bindings[name] !== void 0)
        return el._x_bindings[name];
      if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {
        let binding = el._x_inlineBindings[name];
        binding.extract = extract;
        return dontAutoEvaluateFunctions(() => {
          return evaluate(el, binding.expression);
        });
      }
      return getAttributeBinding(el, name, fallback2);
    }
    function getAttributeBinding(el, name, fallback2) {
      let attr = el.getAttribute(name);
      if (attr === null)
        return typeof fallback2 === "function" ? fallback2() : fallback2;
      if (attr === "")
        return true;
      if (isBooleanAttr(name)) {
     
Download .txt
gitextract_frcs8fuf/

├── .claude/
│   ├── rules/
│   │   ├── adding-features.md
│   │   ├── general.md
│   │   ├── reviewing-prs.md
│   │   └── writing-docs.md
│   └── skills/
│       ├── review-pr/
│       │   └── SKILL.md
│       ├── summarize-activity/
│       │   └── SKILL.md
│       └── test/
│           └── SKILL.md
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── DISCUSSION_TEMPLATE/
│   │   ├── 1-help.yml
│   │   └── 5-bugs.yml
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   └── config.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── SECURITY.md
│   ├── scripts/
│   │   └── get-browser-test-shard.php
│   └── workflows/
│       ├── claude.yml
│       ├── test-main.yml
│       └── test-prs.yml
├── .gitignore
├── .prettierrc
├── .styleci.yml
├── .vscode/
│   └── launch.json
├── CLAUDE.md
├── LICENSE.md
├── PRD-wire-model-modifiers.md
├── README.md
├── close.bash
├── composer.json
├── config/
│   └── livewire.php
├── dist/
│   ├── livewire.csp.esm.js
│   ├── livewire.csp.js
│   ├── livewire.esm.js
│   ├── livewire.js
│   └── manifest.json
├── docs/
│   ├── .obsidian/
│   │   ├── app.json
│   │   ├── appearance.json
│   │   ├── community-plugins.json
│   │   ├── core-plugins-migration.json
│   │   ├── core-plugins.json
│   │   ├── hotkeys.json
│   │   └── plugins/
│   │       ├── obsidian-dynamic-toc/
│   │       │   ├── main.js
│   │       │   ├── manifest.json
│   │       │   └── styles.css
│   │       ├── obsidian-editor-shortcuts/
│   │       │   ├── main.js
│   │       │   └── manifest.json
│   │       └── obsidian-languagetool-plugin/
│   │           ├── main.js
│   │           ├── manifest.json
│   │           └── styles.css
│   ├── AGENTS.md
│   ├── __nav.md
│   ├── __outline.md
│   ├── actions.md
│   ├── alpine.md
│   ├── attribute-async.md
│   ├── attribute-computed.md
│   ├── attribute-defer.md
│   ├── attribute-isolate.md
│   ├── attribute-js.md
│   ├── attribute-json.md
│   ├── attribute-layout.md
│   ├── attribute-lazy.md
│   ├── attribute-locked.md
│   ├── attribute-modelable.md
│   ├── attribute-on.md
│   ├── attribute-reactive.md
│   ├── attribute-renderless.md
│   ├── attribute-session.md
│   ├── attribute-title.md
│   ├── attribute-transition.md
│   ├── attribute-url.md
│   ├── attribute-validate.md
│   ├── best-practices.md
│   ├── blade-components.md
│   ├── bundling.md
│   ├── component-hooks.md
│   ├── components.md
│   ├── computed-properties.md
│   ├── contribution-guide.md
│   ├── csp.md
│   ├── directive-island.md
│   ├── directive-persist.md
│   ├── directive-placeholder.md
│   ├── directive-teleport.md
│   ├── dirty.md
│   ├── downloads.md
│   ├── events.md
│   ├── forms.md
│   ├── how-livewire-works.md
│   ├── hydration.md
│   ├── installation.md
│   ├── islands.md
│   ├── javascript.md
│   ├── lazy.md
│   ├── lifecycle-hooks.md
│   ├── loading-states.md
│   ├── locked.md
│   ├── morph.md
│   ├── navigate.md
│   ├── nesting.md
│   ├── offline.md
│   ├── packages.md
│   ├── pages.md
│   ├── pagination.md
│   ├── polling.md
│   ├── properties.md
│   ├── quickstart.md
│   ├── redirecting.md
│   ├── rules/
│   │   ├── Casing rules.md
│   │   ├── Referencing file names in a sentance.md
│   │   ├── examples.md
│   │   ├── questions.md
│   │   └── rules.md
│   ├── security.md
│   ├── session-properties.md
│   ├── styles.md
│   ├── synthesizers.md
│   ├── teleport.md
│   ├── testing.md
│   ├── the-livewire-protocol.md
│   ├── troubleshooting.md
│   ├── understanding-nesting.md
│   ├── undocumented-features-todo.md
│   ├── upgrade-guide-scratch-file.md
│   ├── upgrading.md
│   ├── uploads.md
│   ├── url.md
│   ├── validation.md
│   ├── volt.md
│   ├── wire-bind.md
│   ├── wire-click.md
│   ├── wire-cloak.md
│   ├── wire-confirm.md
│   ├── wire-current.md
│   ├── wire-dirty.md
│   ├── wire-ignore.md
│   ├── wire-init.md
│   ├── wire-intersect.md
│   ├── wire-loading.md
│   ├── wire-model.md
│   ├── wire-navigate.md
│   ├── wire-offline.md
│   ├── wire-poll.md
│   ├── wire-ref.md
│   ├── wire-replace.md
│   ├── wire-show.md
│   ├── wire-sort.md
│   ├── wire-stream.md
│   ├── wire-submit.md
│   ├── wire-text.md
│   └── wire-transition.md
├── js/
│   ├── $wire.js
│   ├── component.js
│   ├── debounce.js
│   ├── diff.spec.js
│   ├── diffAndPatchRecursive.spec.js
│   ├── directives/
│   │   ├── index.js
│   │   ├── shared.js
│   │   ├── wire-bind.js
│   │   ├── wire-cloak.js
│   │   ├── wire-confirm.js
│   │   ├── wire-current.js
│   │   ├── wire-dirty.js
│   │   ├── wire-ignore.js
│   │   ├── wire-init.js
│   │   ├── wire-loading.js
│   │   ├── wire-model.js
│   │   ├── wire-navigate.js
│   │   ├── wire-offline.js
│   │   ├── wire-poll.js
│   │   ├── wire-replace.js
│   │   ├── wire-show.js
│   │   ├── wire-text.js
│   │   ├── wire-transition.js
│   │   └── wire-wildcard.js
│   ├── directives.js
│   ├── directives.spec.js
│   ├── evaluator.js
│   ├── evaluator.spec.js
│   ├── events.js
│   ├── features/
│   │   ├── index.js
│   │   ├── supportCssModules.js
│   │   ├── supportDataCurrent.js
│   │   ├── supportDataLoading.js
│   │   ├── supportDisablingFormsDuringRequest.js
│   │   ├── supportDispatches.js
│   │   ├── supportEntangle.js
│   │   ├── supportErrors.js
│   │   ├── supportFileDownloads.js
│   │   ├── supportFileUploads.js
│   │   ├── supportIslands.js
│   │   ├── supportJsEvaluation.js
│   │   ├── supportJsModules.js
│   │   ├── supportLaravelEcho.js
│   │   ├── supportListeners.js
│   │   ├── supportMorphDom.js
│   │   ├── supportNavigate.js
│   │   ├── supportPreserveScroll.js
│   │   ├── supportQueryString.js
│   │   ├── supportRedirects.js
│   │   ├── supportRefs.js
│   │   ├── supportScriptsAndAssets.js
│   │   ├── supportSlots.js
│   │   ├── supportStreaming.js
│   │   ├── supportWireIntersect.js
│   │   └── supportWireSort.js
│   ├── fragment.js
│   ├── hooks.js
│   ├── index.js
│   ├── island.js
│   ├── jsconfig.json
│   ├── lifecycle.js
│   ├── morph.js
│   ├── plugins/
│   │   ├── history/
│   │   │   ├── coordinator.js
│   │   │   ├── coordinator.spec.js
│   │   │   ├── index.js
│   │   │   ├── url.js
│   │   │   └── utils.js
│   │   └── navigate/
│   │       ├── bar.js
│   │       ├── bus.js
│   │       ├── fetch.js
│   │       ├── history.js
│   │       ├── index.js
│   │       ├── links.js
│   │       ├── page.js
│   │       ├── persist.js
│   │       ├── popover.js
│   │       ├── prefetch.js
│   │       ├── scroll.js
│   │       └── teleport.js
│   ├── request/
│   │   ├── action.js
│   │   ├── index.js
│   │   ├── interactions.js
│   │   ├── interceptor.js
│   │   ├── legacy.js
│   │   ├── message.js
│   │   ├── messageBus.js
│   │   ├── request.js
│   │   └── request.spec.js
│   ├── store.js
│   ├── utils/
│   │   └── modal.js
│   └── utils.js
├── legacy_tests/
│   ├── AppLayout.php
│   ├── AppLayoutWithConstructor.php
│   ├── AppLayoutWithProperties.php
│   ├── Browser/
│   │   ├── Actions/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Alpine/
│   │   │   ├── ClickComponent.php
│   │   │   ├── Component.php
│   │   │   ├── Directive/
│   │   │   │   ├── DirectiveComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── Dispatch/
│   │   │   │   ├── DispatchComponent.php
│   │   │   │   ├── DispatchNestedComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── Entangle/
│   │   │   │   ├── ChangeMultipleDataAtTheSameTime.php
│   │   │   │   ├── Component.php
│   │   │   │   ├── DeferArrayDataUpdates.php
│   │   │   │   ├── DeferDataUpdates.php
│   │   │   │   ├── EntangleConsecutiveActions.php
│   │   │   │   ├── EntangleNestedArray.php
│   │   │   │   ├── EntangleNestedChildComponent.php
│   │   │   │   ├── EntangleNestedParentComponent.php
│   │   │   │   ├── EntangleResponseCheck.php
│   │   │   │   ├── Test.php
│   │   │   │   ├── ToggleEntangled.php
│   │   │   │   ├── ToggleEntangledTurbo.php
│   │   │   │   ├── view-toggle-entangled-turbo.blade.php
│   │   │   │   └── view.blade.php
│   │   │   ├── MorphingAtSymbolAttributeComponent.php
│   │   │   ├── SimultaneousCallsComponent.php
│   │   │   ├── SmallComponent.php
│   │   │   ├── Test.php
│   │   │   ├── Transition/
│   │   │   │   ├── DollarSignWireComponent.php
│   │   │   │   ├── EntangleComponent.php
│   │   │   │   ├── EntangleDeferComponent.php
│   │   │   │   └── Test.php
│   │   │   ├── small-component.blade.php
│   │   │   └── view.blade.php
│   │   ├── DataBinding/
│   │   │   ├── AutoFill/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── Defer/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── DirtyDetection/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputCheckboxRadio/
│   │   │   │   ├── CheckboxesWithIntsComponent.php
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputSelect/
│   │   │   │   ├── Component.php
│   │   │   │   ├── SelectWithIncorrectSelectedOnOption.php
│   │   │   │   ├── SelectWithSelectedOnOption.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputText/
│   │   │   │   ├── Component.php
│   │   │   │   ├── EmptyWireModelComponent.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   ├── InputTextarea/
│   │   │   │   ├── Component.php
│   │   │   │   ├── Test.php
│   │   │   │   └── view.blade.php
│   │   │   └── Lazy/
│   │   │       ├── LazyInputsWithUpdatesDisplayedComponent.php
│   │   │       └── Test.php
│   │   ├── Dirty/
│   │   │   └── Test.php
│   │   ├── DuskCommand.php
│   │   ├── DynamicComponentLoading/
│   │   │   ├── ClickableComponent.php
│   │   │   ├── Test.php
│   │   │   ├── view-clickable-component.blade.php
│   │   │   ├── view-dynamic-component.blade.php
│   │   │   └── view-load-dynamic-component.blade.php
│   │   ├── Events/
│   │   │   ├── Component.php
│   │   │   ├── NestedComponentA.php
│   │   │   ├── NestedComponentB.php
│   │   │   ├── Test.php
│   │   │   ├── nested-a.blade.php
│   │   │   ├── nested-b.blade.php
│   │   │   └── view.blade.php
│   │   ├── Extensions/
│   │   │   └── Test.php
│   │   ├── FileDownloads/
│   │   │   ├── Test.php
│   │   │   ├── download & target.txt
│   │   │   ├── download & target2.txt
│   │   │   ├── download-target.txt
│   │   │   └── download-target2.txt
│   │   ├── GlobalLivewire/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Headers/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Hooks/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Init/
│   │   │   └── Test.php
│   │   ├── Loading/
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithLoadingDelays.php
│   │   │   ├── CustomDisplayProperty.php
│   │   │   ├── DataLoadingTest.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── MagicActions/
│   │   │   └── Test.php
│   │   ├── Morphdom/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Nesting/
│   │   │   ├── Component.php
│   │   │   ├── NestedComponent.php
│   │   │   ├── RenderContextComponent.php
│   │   │   └── Test.php
│   │   ├── Offline/
│   │   │   └── Test.php
│   │   ├── Polling/
│   │   │   └── Test.php
│   │   ├── PollingViewport/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Prefetch/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── ProductionTest/
│   │   │   └── Test.php
│   │   ├── QueryString/
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithAliases.php
│   │   │   ├── ComponentWithExcepts.php
│   │   │   ├── ComponentWithMethodInsteadOfProperty.php
│   │   │   ├── ComponentWithTraits.php
│   │   │   ├── DirtyDataComponent.php
│   │   │   ├── NestedComponent.php
│   │   │   ├── ParentComponentWithNoQueryString.php
│   │   │   ├── RedirectLinkToQueryStringComponent.php
│   │   │   ├── Test.php
│   │   │   ├── WithSearch.php
│   │   │   ├── component-with-traits.blade.php
│   │   │   ├── dirty-data.blade.php
│   │   │   ├── excepts.blade.php
│   │   │   ├── nested-view.blade.php
│   │   │   └── view.blade.php
│   │   ├── Redirects/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Replace/
│   │   │   └── Test.php
│   │   ├── ScriptTag/
│   │   │   ├── Component.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── Stacks/
│   │   │   ├── ChildComponent.php
│   │   │   ├── Component.php
│   │   │   └── Test.php
│   │   ├── StringNormalization/
│   │   │   ├── Component.php
│   │   │   ├── Model.php
│   │   │   ├── Test.php
│   │   │   └── view.blade.php
│   │   ├── SupportCollections/
│   │   │   ├── Component.php
│   │   │   └── Test.php
│   │   ├── SupportDateTimes/
│   │   │   └── Test.php
│   │   ├── SupportEnums/
│   │   │   └── Test.php
│   │   ├── SupportStringables/
│   │   │   └── Test.php
│   │   ├── SupportsSafari.php
│   │   ├── SyncHistory/
│   │   │   ├── ChildComponent.php
│   │   │   ├── Component.php
│   │   │   ├── ComponentWithAlpineEntangle.php
│   │   │   ├── ComponentWithMount.php
│   │   │   ├── ComponentWithOptionalParameter.php
│   │   │   ├── ComponentWithoutQueryString.php
│   │   │   ├── SingleRadioComponent.php
│   │   │   ├── Step.php
│   │   │   ├── Test.php
│   │   │   ├── child.blade.php
│   │   │   ├── component-with-mount.blade.php
│   │   │   ├── single-radio-component.blade.php
│   │   │   ├── view-without-subcomponent.blade.php
│   │   │   └── view.blade.php
│   │   ├── TestCase.php
│   │   ├── _runtime_components.php
│   │   ├── console/
│   │   │   └── .gitignore
│   │   ├── screenshots/
│   │   │   └── .gitignore
│   │   ├── source/
│   │   │   └── .gitignore
│   │   └── views/
│   │       ├── components/
│   │       │   ├── blade-component.blade.php
│   │       │   ├── layouts/
│   │       │   │   ├── app-for-turbo-views.blade.php
│   │       │   │   └── app.blade.php
│   │       │   └── stack-child.blade.php
│   │       ├── layouts/
│   │       │   ├── app-for-normal-views.blade.php
│   │       │   └── app.blade.php
│   │       └── turbo.blade.php
│   ├── HttpKernel.php
│   ├── TestEnum.php
│   └── Unit/
│       ├── TestCase.php
│       └── views/
│           ├── .gitignore
│           ├── assets-directive.blade.php
│           ├── attribute-bag-macros.blade.php
│           ├── components/
│           │   └── input.blade.php
│           ├── dump-errors-nested-component.blade.php
│           ├── dump-errors.blade.php
│           ├── entangle.blade.php
│           ├── execute-callback.blade.php
│           ├── file-download-component.blade.php
│           ├── fillable-view.blade.php
│           ├── foreach-models-arrow-title-view.blade.php
│           ├── isset-foo-bar.blade.php
│           ├── isset-foo.blade.php
│           ├── layouts/
│           │   ├── app-anonymous-component-with-required-prop.blade.php
│           │   ├── app-anonymous-component.blade.php
│           │   ├── app-custom-section.blade.php
│           │   ├── app-custom-slot.blade.php
│           │   ├── app-extends.blade.php
│           │   ├── app-from-class-component.blade.php
│           │   ├── app-with-bar.blade.php
│           │   ├── app-with-baz-hardcoded.blade.php
│           │   ├── app.blade.php
│           │   └── data-test.blade.php
│           ├── load-balancer-child.blade.php
│           ├── load-balancer-parent.blade.php
│           ├── model-arrow-title-view.blade.php
│           ├── null-view.blade.php
│           ├── render-component.blade.php
│           ├── rootless-view.blade.php
│           ├── show-child.blade.php
│           ├── show-children.blade.php
│           ├── show-html.blade.php
│           ├── show-name-with-this.blade.php
│           ├── show-name.blade.php
│           ├── show-property-value.blade.php
│           ├── show-session-flash.blade.php
│           ├── this-keyword.blade.php
│           ├── var-dump-foo-bar.blade.php
│           ├── var-dump-foo.blade.php
│           └── wireables.blade.php
├── package.json
├── phpunit.xml.dist
├── scripts/
│   ├── admin
│   ├── build.js
│   ├── cleanup-worktree.sh
│   ├── laravel.php
│   ├── setup.sh
│   ├── stubs/
│   │   └── FEATURE/
│   │       ├── FEATURE.php.stub
│   │       └── Test.php.stub
│   └── worktree.sh
├── src/
│   ├── Attribute.php
│   ├── Attributes/
│   │   ├── Async.php
│   │   ├── Computed.php
│   │   ├── Defer.php
│   │   ├── Isolate.php
│   │   ├── Js.php
│   │   ├── Json.php
│   │   ├── Layout.php
│   │   ├── Lazy.php
│   │   ├── Locked.php
│   │   ├── Modelable.php
│   │   ├── On.php
│   │   ├── Reactive.php
│   │   ├── Renderless.php
│   │   ├── Rule.php
│   │   ├── Session.php
│   │   ├── Title.php
│   │   ├── Transition.php
│   │   ├── Url.php
│   │   └── Validate.php
│   ├── Compiler/
│   │   ├── CacheManager.php
│   │   ├── Compiler.php
│   │   ├── Fixtures/
│   │   │   ├── mfc-component/
│   │   │   │   ├── mfc-component.blade.php
│   │   │   │   ├── mfc-component.js
│   │   │   │   └── mfc-component.php
│   │   │   ├── sfc-component-with-assets-and-script-directives.blade.php
│   │   │   ├── sfc-component-with-blade-script.blade.php
│   │   │   ├── sfc-component-with-imports.blade.php
│   │   │   ├── sfc-component-with-nested-script.blade.php
│   │   │   ├── sfc-component-with-only-nested-script.blade.php
│   │   │   ├── sfc-component-with-only-nested-style.blade.php
│   │   │   ├── sfc-component-with-placeholder-in-island.blade.php
│   │   │   ├── sfc-component-with-placeholder.blade.php
│   │   │   ├── sfc-component-with-style-in-verbatim.blade.php
│   │   │   ├── sfc-component-without-trailing-semicolon.blade.php
│   │   │   ├── sfc-component.blade.php
│   │   │   └── test.php
│   │   ├── Parser/
│   │   │   ├── MultiFileParser.php
│   │   │   ├── Parser.php
│   │   │   └── SingleFileParser.php
│   │   └── UnitTest.php
│   ├── Component.php
│   ├── ComponentHook.php
│   ├── ComponentHookRegistry.php
│   ├── Concerns/
│   │   ├── InteractsWithProperties.php
│   │   └── Tests/
│   │       ├── ComponentCanBeFilledUnitTest.php
│   │       ├── ComponentCanReturnPublicPropertiesUnitTest.php
│   │       └── ResetPropertiesUnitTest.php
│   ├── Drawer/
│   │   ├── BaseUtils.php
│   │   ├── ImplicitRouteBinding.php
│   │   ├── Regexes.php
│   │   ├── Tests/
│   │   │   └── ImplicitRouteBindingUnitTest.php
│   │   ├── UnitTest.php
│   │   └── Utils.php
│   ├── EventBus.php
│   ├── Exceptions/
│   │   ├── BypassViewHandler.php
│   │   ├── ComponentAttributeMissingOnDynamicComponentException.php
│   │   ├── ComponentNotFoundException.php
│   │   ├── EventHandlerDoesNotExist.php
│   │   ├── LivewireReleaseTokenMismatchException.php
│   │   ├── MaxNestingDepthExceededException.php
│   │   ├── MethodNotFoundException.php
│   │   ├── MissingRulesException.php
│   │   ├── ModelableRootHasWireModelException.php
│   │   ├── NonPublicComponentMethodCall.php
│   │   ├── PayloadTooLargeException.php
│   │   ├── PropertyNotFoundException.php
│   │   ├── PublicPropertyNotFoundException.php
│   │   ├── RootTagMissingFromViewException.php
│   │   ├── TooManyCallsException.php
│   │   └── TooManyComponentsException.php
│   ├── Facades/
│   │   └── GenerateSignedUploadUrlFacade.php
│   ├── Factory/
│   │   ├── Factory.php
│   │   ├── Fixtures/
│   │   │   ├── SimpleComponent.php
│   │   │   ├── simple-multi-file-component/
│   │   │   │   ├── simple-multi-file-component.blade.php
│   │   │   │   └── simple-multi-file-component.php
│   │   │   └── simple-single-file-component.blade.php
│   │   └── UnitTest.php
│   ├── Features/
│   │   ├── SupportAccessingParent/
│   │   │   └── BrowserTest.php
│   │   ├── SupportAsync/
│   │   │   └── BaseAsync.php
│   │   ├── SupportAttributes/
│   │   │   ├── Attribute.php
│   │   │   ├── AttributeCollection.php
│   │   │   ├── AttributeLevel.php
│   │   │   ├── HandlesAttributes.php
│   │   │   ├── SupportAttributes.php
│   │   │   └── UnitTest.php
│   │   ├── SupportAutoInjectedAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportAutoInjectedAssets.php
│   │   │   └── UnitTest.php
│   │   ├── SupportBladeAttributes/
│   │   │   ├── SupportBladeAttributes.php
│   │   │   └── UnitTest.php
│   │   ├── SupportCSP/
│   │   │   └── BrowserTest.php
│   │   ├── SupportChecksumErrorDebugging/
│   │   │   └── SupportChecksumErrorDebugging.php
│   │   ├── SupportCompiledWireKeys/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportCompiledWireKeys.php
│   │   │   └── UnitTest.php
│   │   ├── SupportComputed/
│   │   │   ├── BaseComputed.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── CannotCallComputedDirectlyException.php
│   │   │   ├── SupportLegacyComputedPropertySyntax.php
│   │   │   └── UnitTest.php
│   │   ├── SupportConsoleCommands/
│   │   │   ├── Commands/
│   │   │   │   ├── AttributeCommand.php
│   │   │   │   ├── ConfigCommand.php
│   │   │   │   ├── ConvertCommand.php
│   │   │   │   ├── FileManipulationCommand.php
│   │   │   │   ├── FormCommand.php
│   │   │   │   ├── LayoutCommand.php
│   │   │   │   ├── LivewireMakeCommand.php
│   │   │   │   ├── MakeCommand.php
│   │   │   │   ├── PublishCommand.php
│   │   │   │   ├── S3CleanupCommand.php
│   │   │   │   ├── StubsCommand.php
│   │   │   │   ├── livewire-mfc-class.stub
│   │   │   │   ├── livewire-mfc-css.stub
│   │   │   │   ├── livewire-mfc-js.stub
│   │   │   │   ├── livewire-mfc-test.stub
│   │   │   │   ├── livewire-mfc-view.stub
│   │   │   │   ├── livewire-sfc.stub
│   │   │   │   ├── livewire.attribute.stub
│   │   │   │   ├── livewire.form.stub
│   │   │   │   ├── livewire.inline.stub
│   │   │   │   ├── livewire.layout.stub
│   │   │   │   ├── livewire.pest.stub
│   │   │   │   ├── livewire.stub
│   │   │   │   ├── livewire.test.stub
│   │   │   │   ├── livewire.view.stub
│   │   │   │   └── the-tao.php
│   │   │   ├── SupportConsoleCommands.php
│   │   │   └── Tests/
│   │   │       ├── AttributeCommandUnitTest.php
│   │   │       ├── FormCommandUnitTest.php
│   │   │       ├── LayoutCommandUnitTest.php
│   │   │       ├── MakeCommandUnitTest.php
│   │   │       └── StubCommandUnitTest.php
│   │   ├── SupportCssModules/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportCssModules.php
│   │   │   └── fixtures/
│   │   │       └── nested/
│   │   │           └── component/
│   │   │               └── index.blade.php
│   │   ├── SupportDataBinding/
│   │   │   ├── BrowserTest.php
│   │   │   └── MergeSnapshotBrowserTest.php
│   │   ├── SupportDataLoading/
│   │   │   └── BrowserTest.php
│   │   ├── SupportDisablingBackButtonCache/
│   │   │   ├── DisableBackButtonCacheMiddleware.php
│   │   │   ├── HandlesDisablingBackButtonCache.php
│   │   │   ├── SupportDisablingBackButtonCache.php
│   │   │   └── UnitTest.php
│   │   ├── SupportDisablingFormsDuringRequest/
│   │   │   └── BrowserTest.php
│   │   ├── SupportEntangle/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportEntangle.php
│   │   │   └── UnitTest.php
│   │   ├── SupportErrorResponses/
│   │   │   └── BrowserTest.php
│   │   ├── SupportEvents/
│   │   │   ├── BaseOn.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── EchoBrowserTest.php
│   │   │   ├── Event.php
│   │   │   ├── HandlesEvents.php
│   │   │   ├── SupportEvents.php
│   │   │   ├── TestsEvents.php
│   │   │   ├── UnitTest.php
│   │   │   └── fake-echo.js
│   │   ├── SupportFileDownloads/
│   │   │   ├── SupportFileDownloads.php
│   │   │   ├── TestsFileDownloads.php
│   │   │   └── UnitTest.php
│   │   ├── SupportFileUploads/
│   │   │   ├── BrowserTest.php
│   │   │   ├── FileNotPreviewableException.php
│   │   │   ├── FilePreviewController.php
│   │   │   ├── FileUploadConfiguration.php
│   │   │   ├── FileUploadController.php
│   │   │   ├── FileUploadSynth.php
│   │   │   ├── GenerateSignedUploadUrl.php
│   │   │   ├── MissingFileUploadsTraitException.php
│   │   │   ├── S3DoesntSupportMultipleFileUploads.php
│   │   │   ├── SupportFileUploads.php
│   │   │   ├── TemporaryUploadedFile.php
│   │   │   ├── UnitTest.php
│   │   │   └── WithFileUploads.php
│   │   ├── SupportFormObjects/
│   │   │   ├── Form.php
│   │   │   ├── FormObjectSynth.php
│   │   │   ├── HandlesFormObjects.php
│   │   │   ├── SupportFormObjects.php
│   │   │   └── UnitTest.php
│   │   ├── SupportHtmlAttributeForwarding/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesHtmlAttributeForwarding.php
│   │   │   ├── SupportHtmlAttributeForwarding.php
│   │   │   └── UnitTest.php
│   │   ├── SupportInterceptors/
│   │   │   └── BrowserTest.php
│   │   ├── SupportIslands/
│   │   │   ├── BrowserTest.php
│   │   │   ├── Compiler/
│   │   │   │   └── IslandCompiler.php
│   │   │   ├── HandlesIslands.php
│   │   │   ├── SupportIslands.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       └── twelve-islands.blade.php
│   │   ├── SupportIsolating/
│   │   │   ├── BaseIsolate.php
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportIsolating.php
│   │   ├── SupportJsComponent/
│   │   │   └── BrowserTest.php
│   │   ├── SupportJsEvaluation/
│   │   │   ├── BaseJs.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesJsEvaluation.php
│   │   │   ├── SupportJsEvaluation.php
│   │   │   ├── TestsJsEvaluation.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── mfc-component-with-dollar-js-magic/
│   │   │       │   ├── mfc-component-with-dollar-js-magic.blade.php
│   │   │       │   ├── mfc-component-with-dollar-js-magic.js
│   │   │       │   └── mfc-component-with-dollar-js-magic.php
│   │   │       └── sfc-component-with-dollar-js-magic.blade.php
│   │   ├── SupportJsModules/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportJsModules.php
│   │   │   └── fixtures/
│   │   │       └── nested/
│   │   │           └── component/
│   │   │               └── index.blade.php
│   │   ├── SupportJson/
│   │   │   ├── BaseJson.php
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportJson.php
│   │   ├── SupportLargePayloads/
│   │   │   └── BrowserTest.php
│   │   ├── SupportLazyLoading/
│   │   │   ├── BaseDefer.php
│   │   │   ├── BaseLazy.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportLazyLoading.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLegacyModels/
│   │   │   ├── CannotBindToModelDataWithoutValidationRuleException.php
│   │   │   ├── EloquentCollectionSynth.php
│   │   │   ├── EloquentModelSynth.php
│   │   │   ├── SupportLegacyModels.php
│   │   │   └── Tests/
│   │   │       ├── Concerns/
│   │   │       │   └── EnableLegacyModels.php
│   │   │       ├── DataBindingModelsBrowserTest.php
│   │   │       ├── EagerLoadingBrowserTest.php
│   │   │       ├── EloquentCollectionsBrowserTest.php
│   │   │       ├── EloquentModelValidationUnitTest.php
│   │   │       ├── ModelAttributesCanBeBoundDirectlyUnitTest.php
│   │   │       ├── ModelAttributesCanBeCastUnitTest.php
│   │   │       ├── ModelCollectionAttributesCanBeBoundDirectlyUnitTest.php
│   │   │       ├── ModelValidationUnitTest.php
│   │   │       ├── ModelsCanBeFilledUnitTest.php
│   │   │       ├── PublicPropertyHydrationAndDehydrationUnitTest.php
│   │   │       └── TestableLivewireCanAssertModelUnitTest.php
│   │   ├── SupportLifecycleHooks/
│   │   │   ├── BrowserTest.php
│   │   │   ├── DirectlyCallingLifecycleHooksNotAllowedException.php
│   │   │   ├── SupportLifecycleHooks.php
│   │   │   ├── TraitsUnitTest.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLocales/
│   │   │   ├── SupportLocales.php
│   │   │   └── UnitTest.php
│   │   ├── SupportLockedProperties/
│   │   │   ├── BaseLocked.php
│   │   │   ├── CannotUpdateLockedPropertyException.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMagicActions/
│   │   │   └── SupportMagicActions.php
│   │   ├── SupportMagicErrors/
│   │   │   └── BrowserTest.php
│   │   ├── SupportModels/
│   │   │   ├── BrowserTest.php
│   │   │   ├── EloquentCollectionSynth.php
│   │   │   ├── IsLazy.php
│   │   │   ├── ModelSynth.php
│   │   │   ├── SupportModels.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMorphAwareBladeCompilation/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportMorphAwareBladeCompilation.php
│   │   │   └── UnitTest.php
│   │   ├── SupportMultipleRootElementDetection/
│   │   │   ├── MultipleRootElementsDetectedException.php
│   │   │   ├── SupportMultipleRootElementDetection.php
│   │   │   └── UnitTest.php
│   │   ├── SupportNavigate/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HooksBrowserTest.php
│   │   │   ├── SupportNavigate.php
│   │   │   └── test-views/
│   │   │       ├── changed-layout.blade.php
│   │   │       ├── changed-tracked-layout.blade.php
│   │   │       ├── html-attributes1.blade.php
│   │   │       ├── html-attributes2.blade.php
│   │   │       ├── layout-with-navigate-outside.blade.php
│   │   │       ├── layout-with-noscript.blade.php
│   │   │       ├── layout.blade.php
│   │   │       ├── navbar-sidebar.blade.php
│   │   │       ├── test-navigate-asset.js
│   │   │       └── tracked-layout.blade.php
│   │   ├── SupportNestedComponentListeners/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportNestedComponentListeners.php
│   │   ├── SupportNestingComponents/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportNestingComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportOctane/
│   │   │   └── UnitTest.php
│   │   ├── SupportPageComponents/
│   │   │   ├── BaseLayout.php
│   │   │   ├── BaseTitle.php
│   │   │   ├── HandlesPageComponents.php
│   │   │   ├── MissingLayoutException.php
│   │   │   ├── PageComponentConfig.php
│   │   │   ├── SupportPageComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportPagination/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesPagination.php
│   │   │   ├── PaginationUrl.php
│   │   │   ├── SupportPagination.php
│   │   │   ├── UnitTest.php
│   │   │   ├── WithoutUrlPagination.php
│   │   │   └── views/
│   │   │       ├── bootstrap.blade.php
│   │   │       ├── simple-bootstrap.blade.php
│   │   │       ├── simple-tailwind.blade.php
│   │   │       └── tailwind.blade.php
│   │   ├── SupportPolling/
│   │   │   └── BrowserTest.php
│   │   ├── SupportPreserveScroll/
│   │   │   └── BrowserTest.php
│   │   ├── SupportQueryString/
│   │   │   ├── BaseUrl.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportQueryString.php
│   │   │   └── UnitTest.php
│   │   ├── SupportReactiveProps/
│   │   │   ├── BaseReactive.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── CannotMutateReactivePropException.php
│   │   │   ├── SupportReactiveProps.php
│   │   │   └── UnitTest.php
│   │   ├── SupportRedirects/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesRedirects.php
│   │   │   ├── Redirector.php
│   │   │   ├── SupportRedirects.php
│   │   │   ├── TestsRedirects.php
│   │   │   └── UnitTest.php
│   │   ├── SupportReleaseTokens/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesReleaseTokens.php
│   │   │   ├── ReleaseToken.php
│   │   │   ├── SupportReleaseTokens.php
│   │   │   └── UnitTest.php
│   │   ├── SupportRequestInteractions/
│   │   │   └── BrowserTest.php
│   │   ├── SupportScriptsAndAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportScriptsAndAssets.php
│   │   │   ├── fixtures/
│   │   │   │   └── lazy-with-assets.blade.php
│   │   │   ├── non-livewire-asset.js
│   │   │   └── test.js
│   │   ├── SupportSession/
│   │   │   ├── BaseSession.php
│   │   │   ├── BrowserTest.php
│   │   │   └── UnitTest.php
│   │   ├── SupportSingleAndMultiFileComponents/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportSingleAndMultiFileComponents.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── mfc-counter/
│   │   │       │   ├── mfc-counter.blade.php
│   │   │       │   └── mfc-counter.php
│   │   │       ├── sfc-component-with-render-and-data.blade.php
│   │   │       ├── sfc-counter.blade.php
│   │   │       ├── sfc-scripts-with-js-action.blade.php
│   │   │       └── sfc-scripts.blade.php
│   │   ├── SupportSlots/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesSlots.php
│   │   │   ├── PlaceholderSlot.php
│   │   │   ├── Slot.php
│   │   │   ├── SlotProxy.php
│   │   │   ├── SupportSlots.php
│   │   │   └── UnitTest.php
│   │   ├── SupportStdClasses/
│   │   │   └── UnitTest.php
│   │   ├── SupportStreaming/
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesStreaming.php
│   │   │   ├── StreamManager.php
│   │   │   └── SupportStreaming.php
│   │   ├── SupportTeleporting/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportTeleporting.php
│   │   ├── SupportTesting/
│   │   │   ├── ComponentState.php
│   │   │   ├── DuskBrowserMacros.php
│   │   │   ├── DuskTestable.php
│   │   │   ├── InitialRender.php
│   │   │   ├── MakesAssertions.php
│   │   │   ├── Render.php
│   │   │   ├── RequestBroker.php
│   │   │   ├── ShowDuskComponent.php
│   │   │   ├── SubsequentRender.php
│   │   │   ├── SupportTesting.php
│   │   │   ├── Testable.php
│   │   │   ├── Tests/
│   │   │   │   ├── TestableLivewireCanAssertNoRedirectUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertPropertiesUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertRedirectToRouteUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertRedirectUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertStatusCodesUnitTest.php
│   │   │   │   ├── TestableLivewireCanAssertViewIsUnitTest.php
│   │   │   │   └── TestableLivewireCanBeInvaded.php
│   │   │   └── UnitTest.php
│   │   ├── SupportTransitions/
│   │   │   ├── BaseTransitionAttribute.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── HandlesTransitions.php
│   │   │   └── SupportTransitions.php
│   │   ├── SupportValidation/
│   │   │   ├── BaseRule.php
│   │   │   ├── BaseValidate.php
│   │   │   ├── HandlesValidation.php
│   │   │   ├── SupportValidation.php
│   │   │   ├── TestsValidation.php
│   │   │   └── UnitTest.php
│   │   ├── SupportWireBind/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireConfirm/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireCurrent/
│   │   │   ├── BrowserTest.php
│   │   │   └── test-views/
│   │   │       └── navbar-sidebar.blade.php
│   │   ├── SupportWireIgnore/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireLoading/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireModelingNestedComponents/
│   │   │   ├── BaseModelable.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportWireModelingNestedComponents.php
│   │   │   └── UnitTest.php
│   │   ├── SupportWireRef/
│   │   │   ├── BrowserTest.php
│   │   │   └── SupportWireRef.php
│   │   ├── SupportWireShow/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireSort/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireText/
│   │   │   └── BrowserTest.php
│   │   ├── SupportWireables/
│   │   │   ├── BrowserTest.php
│   │   │   ├── SupportWireables.php
│   │   │   ├── UnitTest.php
│   │   │   └── WireableSynth.php
│   │   └── SupportWithMethod/
│   │       ├── SupportWithMethod.php
│   │       └── UnitTest.php
│   ├── Finder/
│   │   ├── Finder.php
│   │   ├── Fixtures/
│   │   │   ├── FinderTestClassComponent.php
│   │   │   ├── IndexComponent/
│   │   │   │   └── Index.php
│   │   │   ├── Nested/
│   │   │   │   └── NestedComponent.php
│   │   │   ├── NestedIndex/
│   │   │   │   └── IndexViewComponent/
│   │   │   │       └── Index.php
│   │   │   ├── NestedSelfNamed/
│   │   │   │   └── SelfNamedViewComponent/
│   │   │   │       └── SelfNamedViewComponent.php
│   │   │   ├── SelfNamedComponent/
│   │   │   │   └── SelfNamedComponent.php
│   │   │   ├── finder-test-single-file-component.blade.php
│   │   │   ├── multi-file-index/
│   │   │   │   ├── index.blade.php
│   │   │   │   └── index.php
│   │   │   ├── multi-file-self-named/
│   │   │   │   ├── multi-file-self-named.blade.php
│   │   │   │   └── multi-file-self-named.php
│   │   │   ├── multi-file-test-component/
│   │   │   │   ├── multi-file-test-component.blade.php
│   │   │   │   └── multi-file-test-component.php
│   │   │   ├── nested-view-based/
│   │   │   │   ├── index/
│   │   │   │   │   ├── index.blade.php
│   │   │   │   │   └── index.php
│   │   │   │   ├── index-named-component/
│   │   │   │   │   └── index.blade.php
│   │   │   │   ├── index.blade.php
│   │   │   │   └── self-named-component/
│   │   │   │       └── self-named-component.blade.php
│   │   │   ├── self-named-component/
│   │   │   │   └── self-named-component.blade.php
│   │   │   ├── views/
│   │   │   │   ├── nested-index/
│   │   │   │   │   └── index-view-component.blade.php
│   │   │   │   └── nested-self-named/
│   │   │   │       └── self-named-view-component/
│   │   │   │           └── self-named-view-component.blade.php
│   │   │   ├── ⚡finder-test-single-file-component-with-zap.blade.php
│   │   │   └── ⚡multi-file-zap-component/
│   │   │       ├── multi-file-zap-component.blade.php
│   │   │       └── multi-file-zap-component.php
│   │   └── UnitTest.php
│   ├── Form.php
│   ├── ImplicitlyBoundMethod.php
│   ├── Livewire.php
│   ├── LivewireManager.php
│   ├── LivewireServiceProvider.php
│   ├── Mechanisms/
│   │   ├── ClearCachedFiles.php
│   │   ├── CompileLivewireTags/
│   │   │   ├── CompileLivewireTags.php
│   │   │   ├── LivewireTagPrecompiler.php
│   │   │   └── UnitTest.php
│   │   ├── DataStore.php
│   │   ├── ExtendBlade/
│   │   │   ├── DeterministicBladeKeys.php
│   │   │   ├── ExtendBlade.php
│   │   │   ├── ExtendedCompilerEngine.php
│   │   │   └── UnitTest.php
│   │   ├── FrontendAssets/
│   │   │   ├── BrowserTest.php
│   │   │   ├── EndpointResolverIntegrationUnitTest.php
│   │   │   ├── FrontendAssets.php
│   │   │   └── UnitTest.php
│   │   ├── HandleComponents/
│   │   │   ├── BaseRenderless.php
│   │   │   ├── BrowserTest.php
│   │   │   ├── Checksum.php
│   │   │   ├── ChecksumRateLimitUnitTest.php
│   │   │   ├── ComponentContext.php
│   │   │   ├── CorruptComponentPayloadException.php
│   │   │   ├── HandleComponents.php
│   │   │   ├── NestingDepthUnitTest.php
│   │   │   ├── SecurityPolicy.php
│   │   │   ├── SecurityPolicyUnitTest.php
│   │   │   ├── Synthesizers/
│   │   │   │   ├── ArraySynth.php
│   │   │   │   ├── CarbonSynth.php
│   │   │   │   ├── CollectionSynth.php
│   │   │   │   ├── EnumSynth.php
│   │   │   │   ├── FloatSynth.php
│   │   │   │   ├── IntSynth.php
│   │   │   │   ├── StdClassSynth.php
│   │   │   │   ├── StringableSynth.php
│   │   │   │   ├── Synth.php
│   │   │   │   ├── Tests/
│   │   │   │   │   ├── CarbonSynthUnitTest.php
│   │   │   │   │   ├── DataBindingUnitTest.php
│   │   │   │   │   ├── EnumUnitTest.php
│   │   │   │   │   ├── FloatSynthUnitTest.php
│   │   │   │   │   ├── IntSynthUnitTest.php
│   │   │   │   │   └── TypedPropertiesUnitTest.php
│   │   │   │   └── UnitTest.php
│   │   │   ├── UnitTest.php
│   │   │   └── ViewContext.php
│   │   ├── HandleRequests/
│   │   │   ├── BrowserTest.php
│   │   │   ├── CustomUpdateRouteUnitTest.php
│   │   │   ├── EndpointResolver.php
│   │   │   ├── EndpointResolverUnitTest.php
│   │   │   ├── EnforceWebMiddlewareUnitTest.php
│   │   │   ├── HandleRequests.php
│   │   │   ├── PayloadGuardsUnitTest.php
│   │   │   ├── RequireLivewireHeaders.php
│   │   │   ├── StreamedResponse.php
│   │   │   └── UnitTest.php
│   │   ├── HandleRouting/
│   │   │   ├── HandleRouting.php
│   │   │   ├── LivewirePageController.php
│   │   │   ├── UnitTest.php
│   │   │   └── fixtures/
│   │   │       ├── sfc-counter.blade.php
│   │   │       └── sfc-post.blade.php
│   │   ├── Mechanism.php
│   │   ├── PersistentMiddleware/
│   │   │   ├── BrowserTest.php
│   │   │   ├── PersistentMiddleware.php
│   │   │   └── UnitTest.php
│   │   ├── RenderComponent.php
│   │   └── Tests/
│   │       ├── ComponentSkipRenderUnitTest.php
│   │       ├── CustomUpdateRouteBrowserTest.php
│   │       ├── DirectlyAssignComponentParametersAsPropertiesUnitTest.php
│   │       ├── InlineBladeTemplatesUnitTest.php
│   │       ├── LivewireDirectiveUnitTest.php
│   │       └── LoadBalancerCompatibilityUnitTest.php
│   ├── Performance/
│   │   └── RenderPerformanceBenchmarkTest.php
│   ├── Pipe.php
│   ├── Tests/
│   │   ├── AlpineIntersectBrowserTest.php
│   │   ├── AlpineMorphingBrowserTest.php
│   │   ├── AlpineUiBrowserTest.php
│   │   ├── ComponentDependencyInjectionUnitTest.php
│   │   ├── ComponentIsMacroableUnitTest.php
│   │   ├── ComponentMethodBindingsUnitTest.php
│   │   ├── ComponentUsesCustomNameUnitTest.php
│   │   ├── ComponentWontConflictWithPredefinedClasses.php
│   │   ├── ComponentsAreSecureUnitTest.php
│   │   ├── InvadeHelperUnitTest.php
│   │   ├── JavascriptHooksBrowserTest.php
│   │   ├── JavascriptUnwatchBrowserTest.php
│   │   ├── LifecycleHooksUnitTest.php
│   │   ├── LivewireAssetsDirectiveUnitTest.php
│   │   ├── LivewireRouteCachingUnitTest.php
│   │   ├── PublicPropertiesAreInitializedUnitTest.php
│   │   ├── PublicPropertyHydrationHooksUnitTest.php
│   │   ├── QueryParamsUnitTest.php
│   │   ├── RequestPoolingBrowserTest.php
│   │   ├── UpdatingTableRowsTest.php
│   │   ├── VirtualPropertyUnitTest.php
│   │   ├── WireModelBrowserTest.php
│   │   └── WorksOnLoadBalancersUnitTest.php
│   ├── Transparency.php
│   ├── WireDirective.php
│   ├── Wireable.php
│   ├── WithFileUploads.php
│   ├── WithPagination.php
│   ├── WithoutUrlPagination.php
│   ├── Wrapped.php
│   └── helpers.php
├── stubs/
│   ├── DuskComponent.stub
│   ├── DuskTest.stub
│   └── DuskView.stub
├── test_unified_scripts.php
├── tests/
│   ├── Browser/
│   │   ├── console/
│   │   │   └── .gitignore
│   │   ├── screenshots/
│   │   │   └── .gitignore
│   │   └── source/
│   │       └── .gitignore
│   ├── BrowserTestCase.php
│   ├── TestCase.php
│   ├── TestComponent.php
│   ├── fixtures/
│   │   └── download.txt
│   └── views/
│       ├── .gitignore
│       ├── assets-directive.blade.php
│       ├── components/
│       │   ├── basic-component.blade.php
│       │   ├── component-with-slot.blade.php
│       │   ├── dump-errors-nested-component.blade.php
│       │   ├── input.blade.php
│       │   ├── layouts/
│       │   │   ├── app.blade.php
│       │   │   └── custom.blade.php
│       │   └── this-directive.blade.php
│       ├── custom-pagination-theme.blade.php
│       ├── custom-simple-pagination-theme.blade.php
│       ├── dump-errors.blade.php
│       ├── execute-callback.blade.php
│       ├── layouts/
│       │   ├── app-anonymous-component-with-required-prop.blade.php
│       │   ├── app-anonymous-component.blade.php
│       │   ├── app-custom-section.blade.php
│       │   ├── app-custom-slot.blade.php
│       │   ├── app-extends.blade.php
│       │   ├── app-from-class-component-with-properties.blade.php
│       │   ├── app-from-class-component.blade.php
│       │   ├── app-layout-with-slots.blade.php
│       │   ├── app-layout-with-stacks.blade.php
│       │   ├── app-with-bar.blade.php
│       │   ├── app-with-baz-hardcoded.blade.php
│       │   ├── app-with-styles.blade.php
│       │   ├── app-with-title.blade.php
│       │   ├── app.blade.php
│       │   ├── data-test.blade.php
│       │   └── old-app.blade.php
│       ├── load-balancer-child.blade.php
│       ├── load-balancer-parent.blade.php
│       ├── null-view.blade.php
│       ├── placeholder.blade.php
│       ├── render-component.blade.php
│       ├── show-child.blade.php
│       ├── show-children.blade.php
│       ├── show-double-header-slot.blade.php
│       ├── show-errors.blade.php
│       ├── show-layout-slots.blade.php
│       ├── show-name-with-this.blade.php
│       ├── show-name.blade.php
│       ├── show-property-value.blade.php
│       └── uses-component.blade.php
├── vercel.json
└── vitest.config.js
Download .txt
Showing preview only (833K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8215 symbols across 661 files)

FILE: dist/livewire.csp.esm.js
  method "node_modules/@alpinejs/csp/dist/module.cjs.js" (line 25) | "node_modules/@alpinejs/csp/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/collapse/dist/module.cjs.js" (line 4824) | "node_modules/@alpinejs/collapse/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/focus/dist/module.cjs.js" (line 4945) | "node_modules/@alpinejs/focus/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/intersect/dist/module.cjs.js" (line 5958) | "node_modules/@alpinejs/intersect/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/sort/dist/module.cjs.js" (line 6040) | "node_modules/@alpinejs/sort/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/resize/dist/module.cjs.js" (line 7178) | "node_modules/@alpinejs/resize/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/anchor/dist/module.cjs.js" (line 7250) | "node_modules/@alpinejs/anchor/dist/module.cjs.js"(exports, module) {
  method "node_modules/nprogress/nprogress.js" (line 8514) | "node_modules/nprogress/nprogress.js"(exports, module) {
  method "node_modules/@alpinejs/morph/dist/module.cjs.js" (line 8791) | "node_modules/@alpinejs/morph/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/mask/dist/module.cjs.js" (line 9199) | "node_modules/@alpinejs/mask/dist/module.cjs.js"(exports, module) {
  method constructor (line 9403) | constructor() {
  method add (line 9406) | add(key, value) {
  method remove (line 9411) | remove(key) {
  method get (line 9415) | get(key) {
  method each (line 9418) | each(key, callback) {
  method constructor (line 9423) | constructor() {
  method add (line 9426) | add(key, value) {
  method remove (line 9431) | remove(key) {
  method get (line 9435) | get(key) {
  method each (line 9438) | each(key, callback) {
  function dispatch (line 9442) | function dispatch(target, name, detail = {}, bubbles = true) {
  function listen (line 9452) | function listen(target, name, handler) {
  function isObjecty (line 9456) | function isObjecty(subject) {
  function isObject (line 9459) | function isObject(subject) {
  function isArray (line 9462) | function isArray(subject) {
  function isFunction (line 9465) | function isFunction(subject) {
  function isPrimitive (line 9468) | function isPrimitive(subject) {
  function deepClone (line 9471) | function deepClone(obj) {
  function deeplyEqual (line 9474) | function deeplyEqual(a, b) {
  function parsePathSegments (line 9477) | function parsePathSegments(path) {
  function dataGet (line 9482) | function dataGet(object, key) {
  function dataSet (line 9489) | function dataSet(object, key, value) {
  function isNumeric (line 9505) | function isNumeric(subject) {
  function dataDelete (line 9508) | function dataDelete(object, key) {
  function diff (line 9524) | function diff(left, right, diffs = {}, path = "") {
  function diffAndConsolidate (line 9550) | function diffAndConsolidate(left, right) {
  function diffRecursive (line 9555) | function diffRecursive(left, right, path, diffs, rootLeft, rootRight) {
  function extractData (line 9629) | function extractData(payload) {
  function isSynthetic (line 9639) | function isSynthetic(subject) {
  function getCsrfToken (line 9642) | function getCsrfToken() {
  function getNonce (line 9655) | function getNonce() {
  function getModuleUrl (line 9669) | function getModuleUrl() {
  function getUpdateUri (line 9672) | function getUpdateUri() {
  function contentIsFromDump (line 9675) | function contentIsFromDump(content) {
  function splitDumpFromContent (line 9678) | function splitDumpFromContent(content) {
  function walkUpwards (line 9682) | function walkUpwards(el, callback) {
  function walkBackwards (line 9694) | function walkBackwards(el, callback) {
  function getUploadManager (line 9707) | function getUploadManager(component) {
  function handleFileUpload (line 9715) | function handleFileUpload(el, property, component, cleanup) {
  method constructor (line 9762) | constructor(component) {
  method registerListeners (line 9767) | registerListeners() {
  method upload (line 9780) | upload(name, file, finishCallback, errorCallback, progressCallback, canc...
  method uploadMultiple (line 9791) | uploadMultiple(name, files, finishCallback, errorCallback, progressCallb...
  method removeUpload (line 9802) | removeUpload(name, tmpFilename, finishCallback) {
  method setUpload (line 9809) | setUpload(name, uploadObject) {
  method handleSignedUrl (line 9815) | handleSignedUrl(name, url) {
  method handleS3PreSignedUrl (line 9828) | handleS3PreSignedUrl(name, payload) {
  method makeRequest (line 9838) | makeRequest(name, formData, method, url, headers, retrievePaths) {
  method startUpload (line 9864) | startUpload(name, uploadObject) {
  method markUploadFinished (line 9871) | markUploadFinished(name, tmpFilenames) {
  method markUploadErrored (line 9878) | markUploadErrored(name) {
  method cancelUpload (line 9884) | cancelUpload(name, cancelledCallback = null) {
  method constructor (line 9898) | constructor() {
  method add (line 9901) | add(name, thing) {
  method push (line 9907) | push(name, thing) {
  method first (line 9910) | first(name) {
  method last (line 9915) | last(name) {
  method get (line 9918) | get(name) {
  method shift (line 9921) | shift(name) {
  method call (line 9924) | call(name, ...params) {
  method has (line 9929) | has(name) {
  function setUploadLoading (line 9933) | function setUploadLoading() {
  function unsetUploadLoading (line 9935) | function unsetUploadLoading() {
  function upload (line 9937) | function upload(component, name, file, finishCallback = () => {
  function uploadMultiple (line 9952) | function uploadMultiple(component, name, files, finishCallback = () => {
  function removeUpload (line 9968) | function removeUpload(component, name, tmpFilename, finishCallback = () ...
  function cancelUpload (line 9979) | function cancelUpload(component, name, cancelledCallback = () => {
  function generateEntangleFunction (line 9990) | function generateEntangleFunction(component, cleanup) {
  function cloneIfObject (line 10032) | function cloneIfObject(value) {
  function on (line 10041) | function on(name, callback) {
  function trigger (line 10049) | function trigger(name, ...params) {
  function triggerAsync (line 10061) | async function triggerAsync(name, ...params) {
  function runFinishers (line 10073) | function runFinishers(finishers, result) {
  function coordinateNetworkInteractions (line 10085) | function coordinateNetworkInteractions(messageBus2) {
  method addMessage (line 10145) | addMessage(message) {
  method getActiveMessages (line 10149) | getActiveMessages() {
  method initInterceptors (line 10152) | initInterceptors(interceptorRegistry) {
  method cancel (line 10163) | cancel() {
  method hasAllCancelledMessages (line 10174) | hasAllCancelledMessages() {
  method isCancelled (line 10177) | isCancelled() {
  method invokeOnSend (line 10180) | invokeOnSend({ responsePromise }) {
  method invokeOnCancel (line 10184) | invokeOnCancel() {
  method invokeOnFailure (line 10187) | invokeOnFailure({ error: error2 }) {
  method invokeOnResponse (line 10191) | invokeOnResponse({ response }) {
  method invokeOnStream (line 10194) | invokeOnStream({ response }) {
  method invokeOnParsed (line 10197) | invokeOnParsed({ response, body }) {
  method invokeOnRedirect (line 10200) | invokeOnRedirect({ url, preventDefault }) {
  method invokeOnDump (line 10203) | invokeOnDump({ html, preventDefault }) {
  method invokeOnError (line 10206) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnSuccess (line 10210) | invokeOnSuccess({ response, body, json }) {
  method invokeOnFinish (line 10213) | invokeOnFinish() {
  method constructor (line 10219) | constructor(uri) {
  method cancel (line 10222) | cancel() {
  method isCancelled (line 10225) | isCancelled() {
  method constructor (line 10254) | constructor(message, callback) {
  method init (line 10275) | init() {
  method constructor (line 10301) | constructor(request, callback) {
  method init (line 10319) | init() {
  method addInterceptor (line 10326) | addInterceptor(component, callback) {
  method addMessageInterceptor (line 10332) | addMessageInterceptor(callback) {
  method addRequestInterceptor (line 10338) | addRequestInterceptor(callback) {
  method getMessageInterceptors (line 10344) | getMessageInterceptors(message) {
  method getRequestInterceptors (line 10353) | getRequestInterceptors(request) {
  function showHtmlModal (line 10361) | function showHtmlModal(html) {
  function hideHtmlModal (line 10396) | function hideHtmlModal(modal) {
  function cleanupModal (line 10399) | function cleanupModal(modal) {
  function scopeSymbolFromMessage (line 10407) | function scopeSymbolFromMessage(message) {
  function scopeSymbolFromAction (line 10427) | function scopeSymbolFromAction(action) {
  method constructor (line 10451) | constructor() {
  method messageBuffer (line 10453) | messageBuffer(message, callback) {
  method addPendingMessage (line 10463) | addPendingMessage(message) {
  method clearPendingMessages (line 10466) | clearPendingMessages() {
  method getPendingMessages (line 10469) | getPendingMessages() {
  method addActiveMessage (line 10472) | addActiveMessage(message) {
  method removeActiveMessage (line 10475) | removeActiveMessage(message) {
  method findScopedPendingMessage (line 10478) | findScopedPendingMessage(action) {
  method activeMessageMatchingScope (line 10490) | activeMessageMatchingScope(action) {
  method matchesScope (line 10493) | matchesScope(message, action) {
  method allScopedMessages (line 10496) | allScopedMessages(action) {
  method eachPendingMessage (line 10501) | eachPendingMessage(callback) {
  method scope (line 10520) | get scope() {
  method scope (line 10526) | set scope(scope) {
  method constructor (line 10529) | constructor(component) {
  method addAction (line 10532) | addAction(action) {
  method removeAction (line 10544) | removeAction(action) {
  method getActions (line 10551) | getActions() {
  method hasActionForIsland (line 10554) | hasActionForIsland(island) {
  method hasActionForComponent (line 10559) | hasActionForComponent() {
  method setInterceptors (line 10564) | setInterceptors(interceptors2) {
  method addInterceptor (line 10567) | addInterceptor(callback) {
  method setRequest (line 10572) | setRequest(request) {
  method getInterceptors (line 10575) | getInterceptors() {
  method cancel (line 10578) | cancel() {
  method isCancelled (line 10587) | isCancelled() {
  method isAsync (line 10590) | isAsync() {
  method invokeOnSend (line 10593) | invokeOnSend() {
  method invokeOnCancel (line 10602) | invokeOnCancel() {
  method invokeOnFailure (line 10608) | invokeOnFailure(error2) {
  method invokeOnError (line 10615) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnStream (line 10631) | invokeOnStream({ json }) {
  method invokeOnSuccess (line 10634) | invokeOnSuccess() {
  method invokeOnSync (line 10647) | invokeOnSync() {
  method invokeOnEffect (line 10650) | invokeOnEffect() {
  method invokeOnMorph (line 10653) | async invokeOnMorph() {
  method invokeOnRender (line 10658) | invokeOnRender() {
  method invokeOnFinish (line 10661) | invokeOnFinish() {
  method rejectActionPromises (line 10664) | rejectActionPromises({ status, body, json, errors }) {
  method resolveActionPromises (line 10669) | resolveActionPromises(returns, returnsMeta) {
  method constructor (line 10716) | constructor(component, name, params = [], metadata = {}, origin = null) {
  method cancel (line 10727) | cancel() {
  method isCancelled (line 10739) | isCancelled() {
  method defer (line 10742) | defer() {
  method isDeferred (line 10745) | isDeferred() {
  method fire (line 10748) | fire() {
  method fingerprint (line 10753) | get fingerprint() {
  method isAsync (line 10766) | isAsync() {
  method isJson (line 10772) | isJson() {
  method addInterceptor (line 10776) | addInterceptor(callback) {
  method invokeOnSend (line 10787) | invokeOnSend({ call }) {
  method invokeOnCancel (line 10791) | invokeOnCancel() {
  method invokeOnSuccess (line 10795) | invokeOnSuccess(result) {
  method invokeOnError (line 10799) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnFailure (line 10803) | invokeOnFailure({ error: error2 }) {
  method invokeOnFinish (line 10807) | invokeOnFinish() {
  method mergeMetadata (line 10811) | mergeMetadata(metadata) {
  method rejectPromise (line 10814) | rejectPromise(error2) {
  method addSquashedAction (line 10818) | addSquashedAction(action) {
  method resolvePromise (line 10821) | resolvePromise(value) {
  function registerLegacyEventSupport (line 10828) | function registerLegacyEventSupport(interceptRequest2, interceptMessage2) {
  function setNextActionOrigin (line 10926) | function setNextActionOrigin(origin) {
  function setNextActionMetadata (line 10929) | function setNextActionMetadata(metadata) {
  function setNextActionInterceptor (line 10932) | function setNextActionInterceptor(callback) {
  function interceptAction (line 10935) | function interceptAction(callback) {
  function interceptMessage (line 10941) | function interceptMessage(callback) {
  function interceptRequest (line 10944) | function interceptRequest(callback) {
  function interceptPartition (line 10947) | function interceptPartition(callback) {
  function interceptComponentAction (line 10953) | function interceptComponentAction(component, actionNameOrCallback, maybe...
  function interceptComponentMessage (line 10964) | function interceptComponentMessage(component, actionNameOrCallback, mayb...
  function interceptComponentRequest (line 10976) | function interceptComponentRequest(component, actionNameOrCallback, mayb...
  function fireAction (line 11000) | function fireAction(component, method, params = [], metadata = {}) {
  function constructAction (line 11019) | function constructAction(component, method, params, metadata) {
  function fireActionInstance (line 11034) | function fireActionInstance(action) {
  function createOrAddToOutstandingMessage (line 11041) | function createOrAddToOutstandingMessage(action) {
  function sendMessages (line 11049) | function sendMessages() {
  function sendRequest (line 11261) | async function sendRequest(request, handlers) {
  function interceptStreamAndReturnFinalResponse (line 11313) | async function interceptStreamAndReturnFinalResponse(response, callback) {
  function extractStreamObjects (line 11329) | function extractStreamObjects(raw) {
  function sendNavigateRequest (line 11341) | async function sendNavigateRequest(uri, callback, errorCallback) {
  function getDestination (line 11365) | function getDestination(uri, response) {
  function createUrlObjectFromString (line 11373) | function createUrlObjectFromString(urlString) {
  function getErrorsObject (line 11380) | function getErrorsObject(component) {
  function findRefEl (line 11463) | function findRefEl(component, name) {
  function matchesForLivewireDirective (line 11472) | function matchesForLivewireDirective(attributeName) {
  function extractDirective (line 11475) | function extractDirective(el, name) {
  function directive (line 11479) | function directive(name, callback) {
  function globalDirective (line 11495) | function globalDirective(name, callback) {
  function getDirectives (line 11505) | function getDirectives(el) {
  function customDirectiveHasBeenRegistered (line 11508) | function customDirectiveHasBeenRegistered(name) {
  method constructor (line 11512) | constructor(el) {
  method all (line 11516) | all() {
  method has (line 11519) | has(value) {
  method missing (line 11522) | missing(value) {
  method get (line 11525) | get(value) {
  method extractTypeModifiersAndValue (line 11528) | extractTypeModifiersAndValue() {
  method constructor (line 11533) | constructor(value, modifiers, rawName, el) {
  method method (line 11542) | get method() {
  method methods (line 11546) | get methods() {
  method params (line 11549) | get params() {
  method parseOutMethodsAndParams (line 11553) | parseOutMethodsAndParams(rawMethod) {
  method splitAndParseMethods (line 11582) | splitAndParseMethods(methodExpression) {
  method parseMethodCall (line 11621) | parseMethodCall(methodString) {
  function toggleBooleanStateDirective (line 11644) | function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDis...
  function checkDirty (line 11694) | function checkDirty(component, targets) {
  function dirtyTargets (line 11710) | function dirtyTargets(el) {
  function assetIsPendingFor (line 11746) | function assetIsPendingFor(component) {
  function runAfterAssetIsLoadedFor (line 11749) | function runAfterAssetIsLoadedFor(component, callback) {
  function wireProperty (line 11760) | function wireProperty(name, callback, component = null) {
  function wireFallback (line 11763) | function wireFallback(callback) {
  function generateWireObject (line 11797) | function generateWireObject(component, state) {
  function getProperty (line 11823) | function getProperty(component, name) {
  function getFallback (line 11826) | function getFallback(component) {
  method get (line 11832) | get(target, property) {
  method set (line 11846) | set(target, property, value) {
  method set (line 11874) | set(target, property, value) {
  method get (line 11878) | get(target, property) {
  method get (line 11906) | get(target, property) {
  function overrideMethod (line 12002) | function overrideMethod(component, method, callback) {
  method constructor (line 12025) | constructor(el) {
  method addActionContext (line 12051) | addActionContext(context) {
  method intercept (line 12059) | intercept(action, callback = null) {
  method mergeNewSnapshot (line 12062) | mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {
  method queueUpdate (line 12094) | queueUpdate(propertyName, value) {
  method mergeQueuedUpdates (line 12097) | mergeQueuedUpdates(diff2) {
  method getUpdates (line 12109) | getUpdates() {
  method applyUpdates (line 12113) | applyUpdates(object, updates) {
  method replayUpdate (line 12119) | replayUpdate(snapshot, html) {
  method processEffects (line 12124) | processEffects(effects, request) {
  method children (line 12133) | get children() {
  method islands (line 12147) | get islands() {
  method parent (line 12151) | get parent() {
  method isIsolated (line 12154) | get isIsolated() {
  method isLazy (line 12157) | get isLazy() {
  method hasBeenLazyLoaded (line 12160) | get hasBeenLazyLoaded() {
  method isLazyIsolated (line 12163) | get isLazyIsolated() {
  method getDeepChildrenWithBindings (line 12166) | getDeepChildrenWithBindings(callback) {
  method hasReactiveProps (line 12173) | hasReactiveProps() {
  method hasWireModelableBindings (line 12178) | hasWireModelableBindings() {
  method getDeepChildren (line 12183) | getDeepChildren(callback) {
  method getEncodedSnapshotWithLatestChildrenMergedIn (line 12189) | getEncodedSnapshotWithLatestChildrenMergedIn() {
  method inscribeSnapshotAndEffectsOnElement (line 12200) | inscribeSnapshotAndEffectsOnElement() {
  method addJsAction (line 12213) | addJsAction(name, action) {
  method hasJsAction (line 12216) | hasJsAction(name) {
  method getJsAction (line 12219) | getJsAction(name) {
  method getJsActions (line 12222) | getJsActions() {
  method toJSON (line 12225) | toJSON() {
  method addCleanup (line 12233) | addCleanup(cleanup) {
  method cleanup (line 12236) | cleanup() {
  function closestFragment (line 12245) | function closestFragment(el, { isMatch, hasReachedBoundary }) {
  function findFragment (line 12275) | function findFragment(el, { isMatch, hasReachedBoundary }) {
  function isStartFragmentMarker (line 12296) | function isStartFragmentMarker(el) {
  function isEndFragmentMarker (line 12299) | function isEndFragmentMarker(el) {
  function walkElements (line 12302) | function walkElements(el, callback) {
  method constructor (line 12315) | constructor(startMarkerNode) {
  method endMarkerNode (line 12319) | get endMarkerNode() {
  method append (line 12322) | append(mountContainerTagName, html) {
  method prepend (line 12329) | prepend(mountContainerTagName, html) {
  function findMatchingEndMarkerNode (line 12337) | function findMatchingEndMarkerNode(startMarkerNode, metadata) {
  function extractInnerHtmlFromFragmentHtml (line 12350) | function extractInnerHtmlFromFragmentHtml(fragmentHtml) {
  function extractFragmentMetadataFromHtml (line 12358) | function extractFragmentMetadataFromHtml(fragmentHtml) {
  function extractFragmentMetadataFromMarkerNode (line 12366) | function extractFragmentMetadataFromMarkerNode(startMarkerNode) {
  function decodeMetadata (line 12374) | function decodeMetadata(encodedMetadata) {
  function initComponent (line 12386) | function initComponent(el) {
  function destroyComponent (line 12395) | function destroyComponent(id) {
  function hasComponent (line 12402) | function hasComponent(id) {
  function findComponent (line 12405) | function findComponent(id, strict = true) {
  function findComponentByEl (line 12414) | function findComponentByEl(el, strict = true) {
  function componentsByName (line 12449) | function componentsByName(name) {
  function getByName (line 12454) | function getByName(name) {
  function find (line 12457) | function find(id) {
  function first (line 12461) | function first() {
  function all (line 12464) | function all() {
  function dispatch2 (line 12469) | function dispatch2(component, name, params) {
  function dispatchGlobal (line 12472) | function dispatchGlobal(name, params) {
  function dispatchSelf (line 12475) | function dispatchSelf(component, name, params) {
  function dispatchEl (line 12478) | function dispatchEl(component, selector, name, params) {
  function dispatchTo (line 12484) | function dispatchTo(componentName, name, params) {
  function dispatchRef (line 12490) | function dispatchRef(component, ref, name, params) {
  function listen2 (line 12494) | function listen2(component, name, callback) {
  function on2 (line 12499) | function on2(eventName, callback) {
  function dispatchEvent (line 12510) | function dispatchEvent(target, name, params, bubbles = true) {
  function src_default (line 12524) | function src_default(Alpine25) {
  function storageHas (line 12571) | function storageHas(key, storage) {
  function storageGet (line 12574) | function storageGet(key, storage) {
  function storageSet (line 12580) | function storageSet(key, value, storage) {
  function unwrap (line 12592) | function unwrap(object) {
  function batch (line 12597) | function batch(callback) {
  method constructor (line 12621) | constructor() {
  method addErrorHandler (line 12633) | addErrorHandler(key, callback) {
  method getUrl (line 12636) | getUrl() {
  method replaceState (line 12644) | replaceState(url, updates) {
  method pushState (line 12648) | pushState(url, updates) {
  method writeToHistory (line 12655) | writeToHistory(method, url, callback) {
  method constructor (line 12676) | constructor(url, html) {
  method has (line 12687) | has(location) {
  method retrieve (line 12690) | retrieve(location) {
  method replace (line 12696) | replace(key, snapshot) {
  method push (line 12703) | push(key, snapshot) {
  method trim (line 12711) | trim() {
  function storeCurrentPageStatus (line 12718) | function storeCurrentPageStatus(status) {
  function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks (line 12721) | function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {
  function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks (line 12725) | function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(ke...
  function whenTheBackOrForwardButtonIsClicked (line 12729) | function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtm...
  function updateUrlAndStoreLatestHtmlForFutureBackButtons (line 12754) | function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destinati...
  function pushUrl (line 12757) | function pushUrl(url, html) {
  function replaceUrl (line 12760) | function replaceUrl(url, html) {
  function updateUrl (line 12763) | function updateUrl(method, url, html) {
  function whenThisLinkIsPressed (line 12779) | function whenThisLinkIsPressed(el, callback) {
  function whenThisLinkIsHoveredFor (line 12813) | function whenThisLinkIsHoveredFor(el, ms = 60, callback) {
  function extractDestinationFromLink (line 12825) | function extractDestinationFromLink(linkEl) {
  function createUrlObjectFromString2 (line 12828) | function createUrlObjectFromString2(urlString) {
  function getUriStringFromUrlObject (line 12831) | function getUriStringFromUrlObject(urlObject) {
  function fetchHtml (line 12836) | function fetchHtml(destination, callback, errorCallback) {
  function performFetch (line 12843) | function performFetch(uri, callback, errorCallback) {
  function prefetchHtml (line 12850) | function prefetchHtml(destination, callback, errorCallback) {
  function storeThePrefetchedHtmlForWhenALinkIsClicked (line 12863) | function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, ...
  function getPretchedHtmlOr (line 12870) | function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {
  function packUpPersistedTeleports (line 12891) | function packUpPersistedTeleports(persistedEl) {
  function removeAnyLeftOverStaleTeleportTargets (line 12896) | function removeAnyLeftOverStaleTeleportTargets(body) {
  function unPackPersistedTeleports (line 12901) | function unPackPersistedTeleports(persistedEl) {
  function isTeleportTarget (line 12909) | function isTeleportTarget(el) {
  function storeScrollInformationInHtmlBeforeNavigatingAway (line 12914) | function storeScrollInformationInHtmlBeforeNavigatingAway() {
  function restoreScrollPositionOrScrollToTop (line 12922) | function restoreScrollPositionOrScrollToTop() {
  function storePersistantElementsForLater (line 12947) | function storePersistantElementsForLater(callback) {
  function putPersistantElementsBack (line 12957) | function putPersistantElementsBack(callback) {
  function isPersistedElement (line 12977) | function isPersistedElement(el) {
  function showAndStartProgressBar (line 12991) | function showAndStartProgressBar() {
  function finishAndHideProgressBar (line 12999) | function finishAndHideProgressBar() {
  function removeAnyLeftOverStaleProgressBars (line 13003) | function removeAnyLeftOverStaleProgressBars() {
  function injectStyles (line 13006) | function injectStyles() {
  function packUpPersistedPopovers (line 13090) | function packUpPersistedPopovers(persistedEl) {
  function unPackPersistedPopovers (line 13110) | function unPackPersistedPopovers(persistedEl) {
  function isPopoverSupported (line 13130) | function isPopoverSupported() {
  function swapCurrentPageWithNewHtml (line 13141) | function swapCurrentPageWithNewHtml(html, andThen) {
  function prepNewBodyScriptTagsToRun (line 13161) | function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) {
  function replaceHtmlAttributes (line 13173) | function replaceHtmlAttributes(newHtmlElement) {
  function mergeNewHead (line 13188) | function mergeNewHead(newHead) {
  function injectScriptTagAndWaitForItToFullyLoad (line 13231) | async function injectScriptTagAndWaitForItToFullyLoad(script) {
  function cloneScriptTag (line 13242) | function cloneScriptTag(el) {
  function isTracked (line 13251) | function isTracked(el) {
  function ifTheQueryStringChangedSinceLastRequest (line 13254) | function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {
  function extractUriAndQueryString (line 13264) | function extractUriAndQueryString(el) {
  function isAsset (line 13268) | function isAsset(el) {
  function isScript (line 13271) | function isScript(el) {
  function simpleHash (line 13274) | function simpleHash(str) {
  function ignoreAttributes (line 13280) | function ignoreAttributes(subject, attributesToRemove) {
  function navigate_default (line 13295) | function navigate_default(Alpine25) {
  function fetchHtmlOrUsePrefetchedHtml (line 13446) | function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCa...
  function preventAlpineFromPickingUpDomChanges (line 13451) | function preventAlpineFromPickingUpDomChanges(Alpine25, callback) {
  function fireEventForOtherLibrariesToHookInto (line 13460) | function fireEventForOtherLibrariesToHookInto(name, detail) {
  function nowInitializeAlpineOnTheNewPage (line 13469) | function nowInitializeAlpineOnTheNewPage(Alpine25) {
  function autofocusElementsWithTheAutofocusAttribute (line 13475) | function autofocusElementsWithTheAutofocusAttribute() {
  function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement (line 13478) | function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {
  function history (line 13493) | function history(Alpine25) {
  function track (line 13530) | function track(name, initialSeedValue, alwaysShow = false, except = null) {
  function replace (line 13587) | function replace(url, key, object) {
  function push (line 13590) | function push(url, key, object) {
  function queryStringUtils (line 13593) | function queryStringUtils() {
  function stripNulls (line 13623) | function stripNulls(value) {
  function toQueryString (line 13634) | function toQueryString(data) {
  function fromQueryString (line 13652) | function fromQueryString(search, queryKey) {
  function start (line 13687) | function start() {
  function ensureLivewireScriptIsntMisplaced (line 13761) | function ensureLivewireScriptIsntMisplaced() {
  function registerListeners (line 13778) | function registerListeners(component, listeners2) {
  function getAlpineScopeKeys (line 13804) | function getAlpineScopeKeys(el) {
  function evaluateExpression (line 13822) | function evaluateExpression(el, expression, options = {}) {
  function evaluateActionExpression (line 13832) | function evaluateActionExpression(el, expression, options = {}) {
  function contextualizeExpression (line 13850) | function contextualizeExpression(expression, el) {
  function onlyIfScriptHasntBeenRunAlreadyForThisComponent (line 13912) | function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key,...
  function extractScriptTagContent (line 13925) | function extractScriptTagContent(rawHtml) {
  function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage (line 13931) | async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callba...
  function addAssetsToHeadTagOfPage (line 13937) | async function addAssetsToHeadTagOfPage(rawHtml) {
  function runAssetSynchronously (line 13947) | async function runAssetSynchronously(child) {
  function isScript2 (line 13964) | function isScript2(el) {
  function cloneScriptTag2 (line 13967) | function cloneScriptTag2(el) {
  function setTransitionNames (line 14008) | function setTransitionNames(root) {
  function clearTransitionNames (line 14015) | function clearTransitionNames(root) {
  function transitionDomMutation (line 14020) | async function transitionDomMutation(fromEl, toEl, callback, options = {...
  function morph2 (line 14090) | async function morph2(component, el, html) {
  function morphFragment (line 14128) | async function morphFragment(component, startNode, endNode, toHTML) {
  function getMorphConfig (line 14163) | function getMorphConfig(component) {
  function isntElement (line 14230) | function isntElement(el) {
  function isComponentRootEl (line 14233) | function isComponentRootEl(el) {
  function dispatchEvents (line 14259) | function dispatchEvents(component, dispatches) {
  function disableForm (line 14292) | function disableForm(formEl) {
  function shouldMarkDisabled (line 14310) | function shouldMarkDisabled(el) {
  function shouldMarkReadOnly (line 14332) | function shouldMarkReadOnly(el) {
  function markDisabled (line 14335) | function markDisabled(el) {
  function markReadOnly (line 14341) | function markReadOnly(el) {
  function base64toBlob (line 14369) | function base64toBlob(b64Data, contentType = "", sliceSize = 512) {
  function normalizeQueryStringEntry (line 14432) | function normalizeQueryStringEntry(key, value) {
  function forwardEvent (line 14545) | function forwardEvent(name, original) {
  function shouldRedirectUsingNavigateOr (line 14552) | function shouldRedirectUsingNavigateOr(effects, url, or) {
  function shouldHideProgressBar (line 14560) | function shouldHideProgressBar() {
  function closestIsland (line 14629) | function closestIsland(el) {
  function renderIsland (line 14636) | async function renderIsland(component, islandHtml) {
  function renderSlot (line 14670) | async function renderSlot(component, fragmentHtml) {
  function pathMatches (line 14740) | function pathMatches(hrefUrl, actualUrl, options = {}) {
  function updateNavigateLinks (line 14800) | function updateNavigateLinks() {
  method ["x-intersect" + modifierString] (line 14859) | ["x-intersect" + modifierString](e) {
  method ["x-sort:item" + modifierString] (line 14882) | ["x-sort:item" + modifierString]() {
  method [attribute] (line 14907) | [attribute]() {
  function injectStylesheet (line 14943) | function injectStylesheet(href) {
  function callAndClearComponentDebounces (line 14955) | function callAndClearComponentDebounces(component, callback) {
  method [attribute] (line 14988) | [attribute](e) {
  function applyDelay (line 15087) | function applyDelay(directive2) {
  function whenTargetsArePartOfRequest (line 15125) | function whenTargetsArePartOfRequest(component, el, targets, inverted, [...
  function whenTargetsArePartOfFileUpload (line 15162) | function whenTargetsArePartOfFileUpload(component, targets, [startLoadin...
  function containsTargets (line 15192) | function containsTargets(payload, targets) {
  function getTargets (line 15214) | function getTargets(el) {
  function quickHash (line 15234) | function quickHash(subject) {
  method get (line 15332) | get() {
  method set (line 15335) | set(value) {
  function getModifierTail (line 15345) | function getModifierTail(modifiers) {
  function isRealtimeInput (line 15364) | function isRealtimeInput(el) {
  function componentIsMissingProperty (line 15367) | function componentIsMissingProperty(component, property) {
  function debounce (line 15378) | function debounce(func, wait) {
  function throttle (line 15390) | function throttle(func, limit) {
  function parseModifierDuration (line 15401) | function parseModifierDuration(modifiers, key) {
  function triggerComponentRequest (line 15430) | function triggerComponentRequest(el, directive2, component) {
  function poll (line 15436) | function poll(callback, interval = 2e3) {
  function syncronizedInterval (line 15464) | function syncronizedInterval(ms, callback) {
  function livewireIsOffline (line 15484) | function livewireIsOffline() {
  function theTabIsInTheBackground (line 15491) | function theTabIsInTheBackground() {
  function theDirectiveIsOffTheElement (line 15494) | function theDirectiveIsOffTheElement(el) {
  function theDirectiveIsMissingKeepAlive (line 15497) | function theDirectiveIsMissingKeepAlive(directive2) {
  function theDirectiveHasVisible (line 15500) | function theDirectiveHasVisible(directive2) {
  function theElementIsNotInTheViewport (line 15503) | function theElementIsNotInTheViewport(el) {
  function theElementIsDisconnected (line 15507) | function theElementIsDisconnected(el) {
  function extractDurationFrom (line 15510) | function extractDurationFrom(modifiers, defaultDuration) {
  method ["x-show" + modifierString] (line 15531) | ["x-show" + modifierString]() {
  method ["x-text" + modifierString] (line 15548) | ["x-text" + modifierString]() {
  method ["x-bind" + remainder] (line 15565) | ["x-bind" + remainder]() {
  method navigate (line 15591) | get navigate() {

FILE: dist/livewire.csp.js
  method "node_modules/@alpinejs/csp/dist/module.cjs.js" (line 26) | "node_modules/@alpinejs/csp/dist/module.cjs.js"(exports, module) {
  method "node_modules/nprogress/nprogress.js" (line 4825) | "node_modules/nprogress/nprogress.js"(exports, module) {
  method constructor (line 5102) | constructor() {
  method add (line 5105) | add(key, value) {
  method remove (line 5110) | remove(key) {
  method get (line 5114) | get(key) {
  method each (line 5117) | each(key, callback) {
  method constructor (line 5122) | constructor() {
  method add (line 5125) | add(key, value) {
  method remove (line 5130) | remove(key) {
  method get (line 5134) | get(key) {
  method each (line 5137) | each(key, callback) {
  function dispatch (line 5141) | function dispatch(target, name, detail = {}, bubbles = true) {
  function listen (line 5151) | function listen(target, name, handler) {
  function isObjecty (line 5155) | function isObjecty(subject) {
  function isObject (line 5158) | function isObject(subject) {
  function isArray (line 5161) | function isArray(subject) {
  function isFunction (line 5164) | function isFunction(subject) {
  function isPrimitive (line 5167) | function isPrimitive(subject) {
  function deepClone (line 5170) | function deepClone(obj) {
  function deeplyEqual (line 5173) | function deeplyEqual(a, b) {
  function parsePathSegments (line 5176) | function parsePathSegments(path) {
  function dataGet (line 5181) | function dataGet(object, key) {
  function dataSet (line 5188) | function dataSet(object, key, value) {
  function isNumeric (line 5204) | function isNumeric(subject) {
  function dataDelete (line 5207) | function dataDelete(object, key) {
  function diff (line 5223) | function diff(left, right, diffs = {}, path = "") {
  function diffAndConsolidate (line 5249) | function diffAndConsolidate(left, right) {
  function diffRecursive (line 5254) | function diffRecursive(left, right, path, diffs, rootLeft, rootRight) {
  function extractData (line 5328) | function extractData(payload) {
  function isSynthetic (line 5338) | function isSynthetic(subject) {
  function getCsrfToken (line 5341) | function getCsrfToken() {
  function getNonce (line 5354) | function getNonce() {
  function getModuleUrl (line 5368) | function getModuleUrl() {
  function getUpdateUri (line 5371) | function getUpdateUri() {
  function contentIsFromDump (line 5374) | function contentIsFromDump(content) {
  function splitDumpFromContent (line 5377) | function splitDumpFromContent(content) {
  function walkUpwards (line 5381) | function walkUpwards(el, callback) {
  function walkBackwards (line 5393) | function walkBackwards(el, callback) {
  function getUploadManager (line 5406) | function getUploadManager(component) {
  function handleFileUpload (line 5414) | function handleFileUpload(el, property, component, cleanup) {
  method constructor (line 5461) | constructor(component) {
  method registerListeners (line 5466) | registerListeners() {
  method upload (line 5479) | upload(name, file, finishCallback, errorCallback, progressCallback, canc...
  method uploadMultiple (line 5490) | uploadMultiple(name, files, finishCallback, errorCallback, progressCallb...
  method removeUpload (line 5501) | removeUpload(name, tmpFilename, finishCallback) {
  method setUpload (line 5508) | setUpload(name, uploadObject) {
  method handleSignedUrl (line 5514) | handleSignedUrl(name, url) {
  method handleS3PreSignedUrl (line 5527) | handleS3PreSignedUrl(name, payload) {
  method makeRequest (line 5537) | makeRequest(name, formData, method, url, headers, retrievePaths) {
  method startUpload (line 5563) | startUpload(name, uploadObject) {
  method markUploadFinished (line 5570) | markUploadFinished(name, tmpFilenames) {
  method markUploadErrored (line 5577) | markUploadErrored(name) {
  method cancelUpload (line 5583) | cancelUpload(name, cancelledCallback = null) {
  method constructor (line 5597) | constructor() {
  method add (line 5600) | add(name, thing) {
  method push (line 5606) | push(name, thing) {
  method first (line 5609) | first(name) {
  method last (line 5614) | last(name) {
  method get (line 5617) | get(name) {
  method shift (line 5620) | shift(name) {
  method call (line 5623) | call(name, ...params) {
  method has (line 5628) | has(name) {
  function setUploadLoading (line 5632) | function setUploadLoading() {
  function unsetUploadLoading (line 5634) | function unsetUploadLoading() {
  function upload (line 5636) | function upload(component, name, file, finishCallback = () => {
  function uploadMultiple (line 5651) | function uploadMultiple(component, name, files, finishCallback = () => {
  function removeUpload (line 5667) | function removeUpload(component, name, tmpFilename, finishCallback = () ...
  function cancelUpload (line 5678) | function cancelUpload(component, name, cancelledCallback = () => {
  function generateEntangleFunction (line 5689) | function generateEntangleFunction(component, cleanup) {
  function cloneIfObject (line 5731) | function cloneIfObject(value) {
  function on (line 5740) | function on(name, callback) {
  function trigger (line 5748) | function trigger(name, ...params) {
  function triggerAsync (line 5760) | async function triggerAsync(name, ...params) {
  function runFinishers (line 5772) | function runFinishers(finishers, result) {
  function coordinateNetworkInteractions (line 5784) | function coordinateNetworkInteractions(messageBus2) {
  method addMessage (line 5844) | addMessage(message) {
  method getActiveMessages (line 5848) | getActiveMessages() {
  method initInterceptors (line 5851) | initInterceptors(interceptorRegistry) {
  method cancel (line 5862) | cancel() {
  method hasAllCancelledMessages (line 5873) | hasAllCancelledMessages() {
  method isCancelled (line 5876) | isCancelled() {
  method invokeOnSend (line 5879) | invokeOnSend({ responsePromise }) {
  method invokeOnCancel (line 5883) | invokeOnCancel() {
  method invokeOnFailure (line 5886) | invokeOnFailure({ error: error2 }) {
  method invokeOnResponse (line 5890) | invokeOnResponse({ response }) {
  method invokeOnStream (line 5893) | invokeOnStream({ response }) {
  method invokeOnParsed (line 5896) | invokeOnParsed({ response, body }) {
  method invokeOnRedirect (line 5899) | invokeOnRedirect({ url, preventDefault }) {
  method invokeOnDump (line 5902) | invokeOnDump({ html, preventDefault }) {
  method invokeOnError (line 5905) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnSuccess (line 5909) | invokeOnSuccess({ response, body, json }) {
  method invokeOnFinish (line 5912) | invokeOnFinish() {
  method constructor (line 5918) | constructor(uri) {
  method cancel (line 5921) | cancel() {
  method isCancelled (line 5924) | isCancelled() {
  method constructor (line 5953) | constructor(message, callback) {
  method init (line 5974) | init() {
  method constructor (line 6000) | constructor(request, callback) {
  method init (line 6018) | init() {
  method addInterceptor (line 6025) | addInterceptor(component, callback) {
  method addMessageInterceptor (line 6031) | addMessageInterceptor(callback) {
  method addRequestInterceptor (line 6037) | addRequestInterceptor(callback) {
  method getMessageInterceptors (line 6043) | getMessageInterceptors(message) {
  method getRequestInterceptors (line 6052) | getRequestInterceptors(request) {
  function showHtmlModal (line 6060) | function showHtmlModal(html) {
  function hideHtmlModal (line 6095) | function hideHtmlModal(modal) {
  function cleanupModal (line 6098) | function cleanupModal(modal) {
  function scopeSymbolFromMessage (line 6106) | function scopeSymbolFromMessage(message) {
  function scopeSymbolFromAction (line 6126) | function scopeSymbolFromAction(action) {
  method constructor (line 6150) | constructor() {
  method messageBuffer (line 6152) | messageBuffer(message, callback) {
  method addPendingMessage (line 6162) | addPendingMessage(message) {
  method clearPendingMessages (line 6165) | clearPendingMessages() {
  method getPendingMessages (line 6168) | getPendingMessages() {
  method addActiveMessage (line 6171) | addActiveMessage(message) {
  method removeActiveMessage (line 6174) | removeActiveMessage(message) {
  method findScopedPendingMessage (line 6177) | findScopedPendingMessage(action) {
  method activeMessageMatchingScope (line 6189) | activeMessageMatchingScope(action) {
  method matchesScope (line 6192) | matchesScope(message, action) {
  method allScopedMessages (line 6195) | allScopedMessages(action) {
  method eachPendingMessage (line 6200) | eachPendingMessage(callback) {
  method scope (line 6219) | get scope() {
  method scope (line 6225) | set scope(scope) {
  method constructor (line 6228) | constructor(component) {
  method addAction (line 6231) | addAction(action) {
  method removeAction (line 6243) | removeAction(action) {
  method getActions (line 6250) | getActions() {
  method hasActionForIsland (line 6253) | hasActionForIsland(island) {
  method hasActionForComponent (line 6258) | hasActionForComponent() {
  method setInterceptors (line 6263) | setInterceptors(interceptors2) {
  method addInterceptor (line 6266) | addInterceptor(callback) {
  method setRequest (line 6271) | setRequest(request) {
  method getInterceptors (line 6274) | getInterceptors() {
  method cancel (line 6277) | cancel() {
  method isCancelled (line 6286) | isCancelled() {
  method isAsync (line 6289) | isAsync() {
  method invokeOnSend (line 6292) | invokeOnSend() {
  method invokeOnCancel (line 6301) | invokeOnCancel() {
  method invokeOnFailure (line 6307) | invokeOnFailure(error2) {
  method invokeOnError (line 6314) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnStream (line 6330) | invokeOnStream({ json }) {
  method invokeOnSuccess (line 6333) | invokeOnSuccess() {
  method invokeOnSync (line 6346) | invokeOnSync() {
  method invokeOnEffect (line 6349) | invokeOnEffect() {
  method invokeOnMorph (line 6352) | async invokeOnMorph() {
  method invokeOnRender (line 6357) | invokeOnRender() {
  method invokeOnFinish (line 6360) | invokeOnFinish() {
  method rejectActionPromises (line 6363) | rejectActionPromises({ status, body, json, errors }) {
  method resolveActionPromises (line 6368) | resolveActionPromises(returns, returnsMeta) {
  method constructor (line 6415) | constructor(component, name, params = [], metadata = {}, origin = null) {
  method cancel (line 6426) | cancel() {
  method isCancelled (line 6438) | isCancelled() {
  method defer (line 6441) | defer() {
  method isDeferred (line 6444) | isDeferred() {
  method fire (line 6447) | fire() {
  method fingerprint (line 6452) | get fingerprint() {
  method isAsync (line 6465) | isAsync() {
  method isJson (line 6471) | isJson() {
  method addInterceptor (line 6475) | addInterceptor(callback) {
  method invokeOnSend (line 6486) | invokeOnSend({ call }) {
  method invokeOnCancel (line 6490) | invokeOnCancel() {
  method invokeOnSuccess (line 6494) | invokeOnSuccess(result) {
  method invokeOnError (line 6498) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnFailure (line 6502) | invokeOnFailure({ error: error2 }) {
  method invokeOnFinish (line 6506) | invokeOnFinish() {
  method mergeMetadata (line 6510) | mergeMetadata(metadata) {
  method rejectPromise (line 6513) | rejectPromise(error2) {
  method addSquashedAction (line 6517) | addSquashedAction(action) {
  method resolvePromise (line 6520) | resolvePromise(value) {
  function registerLegacyEventSupport (line 6527) | function registerLegacyEventSupport(interceptRequest2, interceptMessage2) {
  function setNextActionOrigin (line 6625) | function setNextActionOrigin(origin) {
  function setNextActionMetadata (line 6628) | function setNextActionMetadata(metadata) {
  function setNextActionInterceptor (line 6631) | function setNextActionInterceptor(callback) {
  function interceptAction (line 6634) | function interceptAction(callback) {
  function interceptMessage (line 6640) | function interceptMessage(callback) {
  function interceptRequest (line 6643) | function interceptRequest(callback) {
  function interceptPartition (line 6646) | function interceptPartition(callback) {
  function interceptComponentAction (line 6652) | function interceptComponentAction(component, actionNameOrCallback, maybe...
  function interceptComponentMessage (line 6663) | function interceptComponentMessage(component, actionNameOrCallback, mayb...
  function interceptComponentRequest (line 6675) | function interceptComponentRequest(component, actionNameOrCallback, mayb...
  function fireAction (line 6699) | function fireAction(component, method, params = [], metadata = {}) {
  function constructAction (line 6718) | function constructAction(component, method, params, metadata) {
  function fireActionInstance (line 6733) | function fireActionInstance(action) {
  function createOrAddToOutstandingMessage (line 6740) | function createOrAddToOutstandingMessage(action) {
  function sendMessages (line 6748) | function sendMessages() {
  function sendRequest (line 6960) | async function sendRequest(request, handlers) {
  function interceptStreamAndReturnFinalResponse (line 7012) | async function interceptStreamAndReturnFinalResponse(response, callback) {
  function extractStreamObjects (line 7028) | function extractStreamObjects(raw) {
  function sendNavigateRequest (line 7040) | async function sendNavigateRequest(uri, callback, errorCallback) {
  function getDestination (line 7064) | function getDestination(uri, response) {
  function createUrlObjectFromString (line 7072) | function createUrlObjectFromString(urlString) {
  function getErrorsObject (line 7079) | function getErrorsObject(component) {
  function findRefEl (line 7162) | function findRefEl(component, name) {
  function matchesForLivewireDirective (line 7171) | function matchesForLivewireDirective(attributeName) {
  function extractDirective (line 7174) | function extractDirective(el, name) {
  function directive (line 7178) | function directive(name, callback) {
  function globalDirective (line 7194) | function globalDirective(name, callback) {
  function getDirectives (line 7204) | function getDirectives(el) {
  function customDirectiveHasBeenRegistered (line 7207) | function customDirectiveHasBeenRegistered(name) {
  method constructor (line 7211) | constructor(el) {
  method all (line 7215) | all() {
  method has (line 7218) | has(value) {
  method missing (line 7221) | missing(value) {
  method get (line 7224) | get(value) {
  method extractTypeModifiersAndValue (line 7227) | extractTypeModifiersAndValue() {
  method constructor (line 7232) | constructor(value, modifiers, rawName, el) {
  method method (line 7241) | get method() {
  method methods (line 7245) | get methods() {
  method params (line 7248) | get params() {
  method parseOutMethodsAndParams (line 7252) | parseOutMethodsAndParams(rawMethod) {
  method splitAndParseMethods (line 7281) | splitAndParseMethods(methodExpression) {
  method parseMethodCall (line 7320) | parseMethodCall(methodString) {
  function toggleBooleanStateDirective (line 7343) | function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDis...
  function checkDirty (line 7393) | function checkDirty(component, targets) {
  function dirtyTargets (line 7409) | function dirtyTargets(el) {
  function assetIsPendingFor (line 7445) | function assetIsPendingFor(component) {
  function runAfterAssetIsLoadedFor (line 7448) | function runAfterAssetIsLoadedFor(component, callback) {
  function wireProperty (line 7459) | function wireProperty(name, callback, component = null) {
  function wireFallback (line 7462) | function wireFallback(callback) {
  function generateWireObject (line 7496) | function generateWireObject(component, state) {
  function getProperty (line 7522) | function getProperty(component, name) {
  function getFallback (line 7525) | function getFallback(component) {
  method get (line 7531) | get(target, property) {
  method set (line 7545) | set(target, property, value) {
  method set (line 7573) | set(target, property, value) {
  method get (line 7577) | get(target, property) {
  method get (line 7605) | get(target, property) {
  function overrideMethod (line 7701) | function overrideMethod(component, method, callback) {
  method constructor (line 7724) | constructor(el) {
  method addActionContext (line 7750) | addActionContext(context) {
  method intercept (line 7758) | intercept(action, callback = null) {
  method mergeNewSnapshot (line 7761) | mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {
  method queueUpdate (line 7793) | queueUpdate(propertyName, value) {
  method mergeQueuedUpdates (line 7796) | mergeQueuedUpdates(diff2) {
  method getUpdates (line 7808) | getUpdates() {
  method applyUpdates (line 7812) | applyUpdates(object, updates) {
  method replayUpdate (line 7818) | replayUpdate(snapshot, html) {
  method processEffects (line 7823) | processEffects(effects, request) {
  method children (line 7832) | get children() {
  method islands (line 7846) | get islands() {
  method parent (line 7850) | get parent() {
  method isIsolated (line 7853) | get isIsolated() {
  method isLazy (line 7856) | get isLazy() {
  method hasBeenLazyLoaded (line 7859) | get hasBeenLazyLoaded() {
  method isLazyIsolated (line 7862) | get isLazyIsolated() {
  method getDeepChildrenWithBindings (line 7865) | getDeepChildrenWithBindings(callback) {
  method hasReactiveProps (line 7872) | hasReactiveProps() {
  method hasWireModelableBindings (line 7877) | hasWireModelableBindings() {
  method getDeepChildren (line 7882) | getDeepChildren(callback) {
  method getEncodedSnapshotWithLatestChildrenMergedIn (line 7888) | getEncodedSnapshotWithLatestChildrenMergedIn() {
  method inscribeSnapshotAndEffectsOnElement (line 7899) | inscribeSnapshotAndEffectsOnElement() {
  method addJsAction (line 7912) | addJsAction(name, action) {
  method hasJsAction (line 7915) | hasJsAction(name) {
  method getJsAction (line 7918) | getJsAction(name) {
  method getJsActions (line 7921) | getJsActions() {
  method toJSON (line 7924) | toJSON() {
  method addCleanup (line 7932) | addCleanup(cleanup) {
  method cleanup (line 7935) | cleanup() {
  function closestFragment (line 7944) | function closestFragment(el, { isMatch, hasReachedBoundary }) {
  function findFragment (line 7974) | function findFragment(el, { isMatch, hasReachedBoundary }) {
  function isStartFragmentMarker (line 7995) | function isStartFragmentMarker(el) {
  function isEndFragmentMarker (line 7998) | function isEndFragmentMarker(el) {
  function walkElements (line 8001) | function walkElements(el, callback) {
  method constructor (line 8014) | constructor(startMarkerNode) {
  method endMarkerNode (line 8018) | get endMarkerNode() {
  method append (line 8021) | append(mountContainerTagName, html) {
  method prepend (line 8028) | prepend(mountContainerTagName, html) {
  function findMatchingEndMarkerNode (line 8036) | function findMatchingEndMarkerNode(startMarkerNode, metadata) {
  function extractInnerHtmlFromFragmentHtml (line 8049) | function extractInnerHtmlFromFragmentHtml(fragmentHtml) {
  function extractFragmentMetadataFromHtml (line 8057) | function extractFragmentMetadataFromHtml(fragmentHtml) {
  function extractFragmentMetadataFromMarkerNode (line 8065) | function extractFragmentMetadataFromMarkerNode(startMarkerNode) {
  function decodeMetadata (line 8073) | function decodeMetadata(encodedMetadata) {
  function initComponent (line 8085) | function initComponent(el) {
  function destroyComponent (line 8094) | function destroyComponent(id) {
  function hasComponent (line 8101) | function hasComponent(id) {
  function findComponent (line 8104) | function findComponent(id, strict = true) {
  function findComponentByEl (line 8113) | function findComponentByEl(el, strict = true) {
  function componentsByName (line 8148) | function componentsByName(name) {
  function getByName (line 8153) | function getByName(name) {
  function find (line 8156) | function find(id) {
  function first (line 8160) | function first() {
  function all (line 8163) | function all() {
  function dispatch2 (line 8168) | function dispatch2(component, name, params) {
  function dispatchGlobal (line 8171) | function dispatchGlobal(name, params) {
  function dispatchSelf (line 8174) | function dispatchSelf(component, name, params) {
  function dispatchEl (line 8177) | function dispatchEl(component, selector, name, params) {
  function dispatchTo (line 8183) | function dispatchTo(componentName, name, params) {
  function dispatchRef (line 8189) | function dispatchRef(component, ref, name, params) {
  function listen2 (line 8193) | function listen2(component, name, callback) {
  function on2 (line 8198) | function on2(eventName, callback) {
  function dispatchEvent (line 8209) | function dispatchEvent(target, name, params, bubbles = true) {
  function src_default (line 8219) | function src_default(Alpine25) {
  function modifierValue (line 8292) | function modifierValue(modifiers, key, fallback2) {
  function ownKeys (line 8584) | function ownKeys(object, enumerableOnly) {
  function _objectSpread2 (line 8594) | function _objectSpread2(target) {
  function _defineProperty (line 8605) | function _defineProperty(obj, key, value) {
  method active (line 8952) | get active() {
  method paused (line 8955) | get paused() {
  function src_default2 (line 9060) | function src_default2(Alpine25) {
  function setInert (line 9233) | function setInert(el) {
  function crawlSiblingsUp (line 9245) | function crawlSiblingsUp(el, callback) {
  function disableScrolling (line 9256) | function disableScrolling() {
  function src_default3 (line 9270) | function src_default3(Alpine25) {
  function storageHas (line 9317) | function storageHas(key, storage) {
  function storageGet (line 9320) | function storageGet(key, storage) {
  function storageSet (line 9326) | function storageSet(key, value, storage) {
  function src_default4 (line 9332) | function src_default4(Alpine25) {
  function getThreshold (line 9353) | function getThreshold(modifiers) {
  function getLengthValue (line 9367) | function getLengthValue(rawValue) {
  function getRootMargin (line 9371) | function getRootMargin(modifiers) {
  function ownKeys2 (line 9387) | function ownKeys2(object, enumerableOnly) {
  function _objectSpread22 (line 9400) | function _objectSpread22(target) {
  function _typeof (line 9417) | function _typeof(obj) {
  function _defineProperty2 (line 9430) | function _defineProperty2(obj, key, value) {
  function _extends (line 9443) | function _extends() {
  function _objectWithoutPropertiesLoose (line 9457) | function _objectWithoutPropertiesLoose(source, excluded) {
  function _objectWithoutProperties (line 9471) | function _objectWithoutProperties(source, excluded) {
  function userAgent (line 9490) | function userAgent(pattern) {
  function on3 (line 9505) | function on3(el, event, fn) {
  function off (line 9508) | function off(el, event, fn) {
  function matches2 (line 9511) | function matches2(el, selector) {
  function getParentOrHost (line 9530) | function getParentOrHost(el) {
  function closest (line 9533) | function closest(el, selector, ctx, includeCTX) {
  function toggleClass (line 9547) | function toggleClass(el, name, state) {
  function css (line 9557) | function css(el, prop, val) {
  function matrix (line 9575) | function matrix(el, selfOnly) {
  function find2 (line 9590) | function find2(ctx, tagName, iterator) {
  function getWindowScrollingElement (line 9602) | function getWindowScrollingElement() {
  function getRect (line 9610) | function getRect(el, relativeToContainingBlock, relativeToNonStaticParen...
  function isScrolledPast (line 9665) | function isScrolledPast(el, elSide, parentSide) {
  function getChild (line 9682) | function getChild(el, childNum, options, includeDragEl) {
  function lastChild (line 9695) | function lastChild(el, selector) {
  function index (line 9702) | function index(el, selector) {
  function getRelativeScrollOffset (line 9714) | function getRelativeScrollOffset(el) {
  function indexOfObject (line 9725) | function indexOfObject(arr, obj) {
  function getParentAutoScrollElement (line 9736) | function getParentAutoScrollElement(el, includeSelf) {
  function extend (line 9755) | function extend(dst, src) {
  function isRectEqual (line 9765) | function isRectEqual(rect1, rect2) {
  function throttle (line 9769) | function throttle(callback, ms) {
  function cancelThrottle (line 9784) | function cancelThrottle() {
  function scrollBy (line 9788) | function scrollBy(el, x, y) {
  function clone (line 9792) | function clone(el) {
  function getChildContainingRectFromElement (line 9803) | function getChildContainingRectFromElement(container, options, ghostEl2) {
  function AnimationStateManager (line 9822) | function AnimationStateManager() {
  function repaint (line 9934) | function repaint(target) {
  function calculateRealTime (line 9937) | function calculateRealTime(animatingRect, fromRect, toRect, options) {
  function dispatchEvent2 (line 10021) | function dispatchEvent2(_ref) {
  function _dispatchEvent (line 10094) | function _dispatchEvent(info) {
  function toFn (line 10185) | function toFn(value, pull) {
  function Sortable (line 10259) | function Sortable(el, options) {
  function dragOverEvent (line 10727) | function dragOverEvent(name, extra) {
  function capture (line 10745) | function capture() {
  function completed (line 10752) | function completed(insertion) {
  function changed (line 10793) | function changed() {
  function _globalDragOver (line 11197) | function _globalDragOver(evt) {
  function _onMove (line 11203) | function _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, ...
  function _disableDraggable (line 11228) | function _disableDraggable(el) {
  function _unsilent (line 11231) | function _unsilent() {
  function _ghostIsFirst (line 11234) | function _ghostIsFirst(evt, vertical, sortable) {
  function _ghostIsLast (line 11240) | function _ghostIsLast(evt, vertical, sortable) {
  function _getSwapDirection (line 11246) | function _getSwapDirection(evt, target, targetRect, vertical, swapThresh...
  function _getInsertDirection (line 11274) | function _getInsertDirection(target) {
  function _generateId (line 11281) | function _generateId(el) {
  function _saveInputCheckedState (line 11288) | function _saveInputCheckedState(root) {
  function _nextTick (line 11297) | function _nextTick(fn) {
  function _cancelNextTick (line 11300) | function _cancelNextTick(id) {
  function AutoScrollPlugin (line 11359) | function AutoScrollPlugin() {
  function clearAutoScrolls (line 11448) | function clearAutoScrolls() {
  function clearPointerElemChangedInterval (line 11454) | function clearPointerElemChangedInterval() {
  function Revert (line 11536) | function Revert() {
  function Remove (line 11566) | function Remove() {
  function walk (line 11584) | function walk(el, callback) {
  function src_default5 (line 11599) | function src_default5(Alpine25) {
  function generateSortHandler (line 11629) | function generateSortHandler(expression, evaluate2) {
  function getConfigurationOverrides (line 11644) | function getConfigurationOverrides(el, modifiers, evaluate2) {
  function initSortable (line 11653) | function initSortable(el, config, preferences, handle) {
  function keepElementsWithinMorphMarkers (line 11709) | function keepElementsWithinMorphMarkers(el) {
  function getGroupName (line 11719) | function getGroupName(el, modifiers) {
  function src_default6 (line 11731) | function src_default6(Alpine25) {
  function onElResize (line 11742) | function onElResize(el, callback) {
  function onDocumentResize (line 11752) | function onDocumentResize(callback) {
  function dimensions (line 11765) | function dimensions(entries) {
  function clamp (line 11794) | function clamp(start2, value, end) {
  function evaluate (line 11797) | function evaluate(value, param) {
  function getSide (line 11800) | function getSide(placement) {
  function getAlignment (line 11803) | function getAlignment(placement) {
  function getOppositeAxis (line 11806) | function getOppositeAxis(axis) {
  function getAxisLength (line 11809) | function getAxisLength(axis) {
  function getSideAxis (line 11812) | function getSideAxis(placement) {
  function getAlignmentAxis (line 11815) | function getAlignmentAxis(placement) {
  function getAlignmentSides (line 11818) | function getAlignmentSides(placement, rects, rtl) {
  function getExpandedPlacements (line 11831) | function getExpandedPlacements(placement) {
  function getOppositeAlignmentPlacement (line 11835) | function getOppositeAlignmentPlacement(placement) {
  function getSideList (line 11838) | function getSideList(side, isStart, rtl) {
  function getOppositeAxisPlacements (line 11856) | function getOppositeAxisPlacements(placement, flipAlignment, direction, ...
  function getOppositePlacement (line 11867) | function getOppositePlacement(placement) {
  function expandPaddingObject (line 11870) | function expandPaddingObject(padding) {
  function getPaddingObject (line 11879) | function getPaddingObject(padding) {
  function rectToClientRect (line 11887) | function rectToClientRect(rect) {
  function computeCoordsFromPlacement (line 11896) | function computeCoordsFromPlacement(_ref, placement, rtl) {
  function detectOverflow (line 12035) | async function detectOverflow(state, options) {
  method fn (line 12096) | async fn(state) {
  function convertValueToCoords (line 12183) | async function convertValueToCoords(state, options) {
  method fn (line 12228) | async fn(state) {
  method fn (line 12249) | async fn(state) {
  function getNodeName (line 12310) | function getNodeName(node) {
  function getWindow (line 12316) | function getWindow(node) {
  function getDocumentElement (line 12320) | function getDocumentElement(node) {
  function isNode (line 12324) | function isNode(value) {
  function isElement (line 12327) | function isElement(value) {
  function isHTMLElement (line 12330) | function isHTMLElement(value) {
  function isShadowRoot (line 12333) | function isShadowRoot(value) {
  function isOverflowElement (line 12339) | function isOverflowElement(element) {
  function isTableElement (line 12348) | function isTableElement(element) {
  function isContainingBlock (line 12351) | function isContainingBlock(element) {
  function getContainingBlock (line 12356) | function getContainingBlock(element) {
  function isWebKit (line 12367) | function isWebKit() {
  function isLastTraversableNode (line 12372) | function isLastTraversableNode(node) {
  function getComputedStyle2 (line 12375) | function getComputedStyle2(element) {
  function getNodeScroll (line 12378) | function getNodeScroll(element) {
  function getParentNode (line 12390) | function getParentNode(node) {
  function getNearestOverflowAncestor (line 12397) | function getNearestOverflowAncestor(node) {
  function getOverflowAncestors (line 12407) | function getOverflowAncestors(node, list, traverseIframes) {
  function getCssDimensions (line 12423) | function getCssDimensions(element) {
  function unwrapElement (line 12441) | function unwrapElement(element) {
  function getScale (line 12444) | function getScale(element) {
  function getVisualOffsets (line 12469) | function getVisualOffsets(element) {
  function shouldAddVisualOffsets (line 12479) | function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
  function getBoundingClientRect (line 12488) | function getBoundingClientRect(element, includeScale, isFixedStrategy, o...
  function convertOffsetParentRelativeRectToViewportRelativeRect (line 12538) | function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
  function getClientRects (line 12573) | function getClientRects(element) {
  function getWindowScrollBarX (line 12576) | function getWindowScrollBarX(element) {
  function getDocumentRect (line 12579) | function getDocumentRect(element) {
  function getViewportRect (line 12597) | function getViewportRect(element, strategy) {
  function getInnerBoundingClientRect (line 12621) | function getInnerBoundingClientRect(element, strategy) {
  function getClientRectFromClippingAncestor (line 12637) | function getClientRectFromClippingAncestor(element, clippingAncestor, st...
  function hasFixedPositionAncestor (line 12655) | function hasFixedPositionAncestor(element, stopNode) {
  function getClippingElementAncestors (line 12662) | function getClippingElementAncestors(element, cache) {
  function getClippingRect (line 12688) | function getClippingRect(_ref) {
  function getDimensions (line 12713) | function getDimensions(element) {
  function getRectRelativeToOffsetParent (line 12716) | function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
  function getTrueOffsetParent (line 12745) | function getTrueOffsetParent(element, polyfill) {
  function getOffsetParent (line 12754) | function getOffsetParent(element, polyfill) {
  function isRTL (line 12785) | function isRTL(element) {
  function observeMove (line 12800) | function observeMove(element, onMove) {
  function autoUpdate (line 12868) | function autoUpdate(reference, floating, update, options) {
  function src_default7 (line 12949) | function src_default7(Alpine25) {
  function setStyles (line 12992) | function setStyles(el, x, y) {
  function getOptions (line 12999) | function getOptions(modifiers) {
  function unwrap (line 13013) | function unwrap(object) {
  function batch (line 13018) | function batch(callback) {
  method constructor (line 13042) | constructor() {
  method addErrorHandler (line 13054) | addErrorHandler(key, callback) {
  method getUrl (line 13057) | getUrl() {
  method replaceState (line 13065) | replaceState(url, updates) {
  method pushState (line 13069) | pushState(url, updates) {
  method writeToHistory (line 13076) | writeToHistory(method, url, callback) {
  method constructor (line 13097) | constructor(url, html) {
  method has (line 13108) | has(location) {
  method retrieve (line 13111) | retrieve(location) {
  method replace (line 13117) | replace(key, snapshot) {
  method push (line 13124) | push(key, snapshot) {
  method trim (line 13132) | trim() {
  function storeCurrentPageStatus (line 13139) | function storeCurrentPageStatus(status) {
  function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks (line 13142) | function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {
  function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks (line 13146) | function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(ke...
  function whenTheBackOrForwardButtonIsClicked (line 13150) | function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtm...
  function updateUrlAndStoreLatestHtmlForFutureBackButtons (line 13175) | function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destinati...
  function pushUrl (line 13178) | function pushUrl(url, html) {
  function replaceUrl (line 13181) | function replaceUrl(url, html) {
  function updateUrl (line 13184) | function updateUrl(method, url, html) {
  function whenThisLinkIsPressed (line 13200) | function whenThisLinkIsPressed(el, callback) {
  function whenThisLinkIsHoveredFor (line 13234) | function whenThisLinkIsHoveredFor(el, ms = 60, callback) {
  function extractDestinationFromLink (line 13246) | function extractDestinationFromLink(linkEl) {
  function createUrlObjectFromString2 (line 13249) | function createUrlObjectFromString2(urlString) {
  function getUriStringFromUrlObject (line 13252) | function getUriStringFromUrlObject(urlObject) {
  function fetchHtml (line 13257) | function fetchHtml(destination, callback, errorCallback) {
  function performFetch (line 13264) | function performFetch(uri, callback, errorCallback) {
  function prefetchHtml (line 13271) | function prefetchHtml(destination, callback, errorCallback) {
  function storeThePrefetchedHtmlForWhenALinkIsClicked (line 13284) | function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, ...
  function getPretchedHtmlOr (line 13291) | function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {
  function packUpPersistedTeleports (line 13312) | function packUpPersistedTeleports(persistedEl) {
  function removeAnyLeftOverStaleTeleportTargets (line 13317) | function removeAnyLeftOverStaleTeleportTargets(body) {
  function unPackPersistedTeleports (line 13322) | function unPackPersistedTeleports(persistedEl) {
  function isTeleportTarget (line 13330) | function isTeleportTarget(el) {
  function storeScrollInformationInHtmlBeforeNavigatingAway (line 13335) | function storeScrollInformationInHtmlBeforeNavigatingAway() {
  function restoreScrollPositionOrScrollToTop (line 13343) | function restoreScrollPositionOrScrollToTop() {
  function storePersistantElementsForLater (line 13368) | function storePersistantElementsForLater(callback) {
  function putPersistantElementsBack (line 13378) | function putPersistantElementsBack(callback) {
  function isPersistedElement (line 13398) | function isPersistedElement(el) {
  function showAndStartProgressBar (line 13412) | function showAndStartProgressBar() {
  function finishAndHideProgressBar (line 13420) | function finishAndHideProgressBar() {
  function removeAnyLeftOverStaleProgressBars (line 13424) | function removeAnyLeftOverStaleProgressBars() {
  function injectStyles (line 13427) | function injectStyles() {
  function packUpPersistedPopovers (line 13511) | function packUpPersistedPopovers(persistedEl) {
  function unPackPersistedPopovers (line 13531) | function unPackPersistedPopovers(persistedEl) {
  function isPopoverSupported (line 13551) | function isPopoverSupported() {
  function swapCurrentPageWithNewHtml (line 13562) | function swapCurrentPageWithNewHtml(html, andThen) {
  function prepNewBodyScriptTagsToRun (line 13582) | function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) {
  function replaceHtmlAttributes (line 13594) | function replaceHtmlAttributes(newHtmlElement) {
  function mergeNewHead (line 13609) | function mergeNewHead(newHead) {
  function injectScriptTagAndWaitForItToFullyLoad (line 13652) | async function injectScriptTagAndWaitForItToFullyLoad(script) {
  function cloneScriptTag (line 13663) | function cloneScriptTag(el) {
  function isTracked (line 13672) | function isTracked(el) {
  function ifTheQueryStringChangedSinceLastRequest (line 13675) | function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {
  function extractUriAndQueryString (line 13685) | function extractUriAndQueryString(el) {
  function isAsset (line 13689) | function isAsset(el) {
  function isScript (line 13692) | function isScript(el) {
  function simpleHash (line 13695) | function simpleHash(str) {
  function ignoreAttributes (line 13701) | function ignoreAttributes(subject, attributesToRemove) {
  function navigate_default (line 13716) | function navigate_default(Alpine25) {
  function fetchHtmlOrUsePrefetchedHtml (line 13867) | function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCa...
  function preventAlpineFromPickingUpDomChanges (line 13872) | function preventAlpineFromPickingUpDomChanges(Alpine25, callback) {
  function fireEventForOtherLibrariesToHookInto (line 13881) | function fireEventForOtherLibrariesToHookInto(name, detail) {
  function nowInitializeAlpineOnTheNewPage (line 13890) | function nowInitializeAlpineOnTheNewPage(Alpine25) {
  function autofocusElementsWithTheAutofocusAttribute (line 13896) | function autofocusElementsWithTheAutofocusAttribute() {
  function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement (line 13899) | function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {
  function history (line 13914) | function history(Alpine25) {
  function track (line 13951) | function track(name, initialSeedValue, alwaysShow = false, except = null) {
  function replace (line 14008) | function replace(url, key, object) {
  function push (line 14011) | function push(url, key, object) {
  function queryStringUtils (line 14014) | function queryStringUtils() {
  function stripNulls (line 14044) | function stripNulls(value) {
  function toQueryString (line 14055) | function toQueryString(data) {
  function fromQueryString (line 14073) | function fromQueryString(search, queryKey) {
  function morph (line 14105) | function morph(from, toHtml, options) {
  function morphBetween (line 14116) | function morphBetween(startMarker, endMarker, toHtml, options = {}) {
  function createMorphContext (line 14137) | function createMorphContext(options = {}) {
  function shouldSkip (line 14389) | function shouldSkip(hook, ...args) {
  function shouldSkipChildren (line 14394) | function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {
  function createElement (line 14400) | function createElement(html) {
  function textOrComment (line 14405) | function textOrComment(el) {
  method constructor (line 14409) | constructor(start2, end) {
  method children (line 14413) | get children() {
  method appendChild (line 14422) | appendChild(child) {
  method firstChild (line 14425) | get firstChild() {
  method nextNode (line 14431) | nextNode(reference) {
  method insertBefore (line 14437) | insertBefore(newNode, reference) {
  function getFirstNode (line 14442) | function getFirstNode(parent) {
  function getNextSibling (line 14445) | function getNextSibling(parent, reference) {
  function monkeyPatchDomSetAttributeToAllowAtSymbols (line 14454) | function monkeyPatchDomSetAttributeToAllowAtSymbols() {
  function seedingMatchingId (line 14470) | function seedingMatchingId(to, from) {
  function src_default8 (line 14479) | function src_default8(Alpine25) {
  function src_default9 (line 14486) | function src_default9(Alpine25) {
  function restoreCursorPosition (line 14556) | function restoreCursorPosition(el, template, callback) {
  function stripDown (line 14570) | function stripDown(template, input) {
  function buildUp (line 14606) | function buildUp(template, input) {
  function formatMoney (line 14620) | function formatMoney(input, delimiter = ".", thousands, precision = 2) {
  function start (line 14663) | function start() {
  function ensureLivewireScriptIsntMisplaced (line 14737) | function ensureLivewireScriptIsntMisplaced() {
  function registerListeners (line 14754) | function registerListeners(component, listeners2) {
  function getAlpineScopeKeys (line 14780) | function getAlpineScopeKeys(el) {
  function evaluateExpression (line 14798) | function evaluateExpression(el, expression, options = {}) {
  function evaluateActionExpression (line 14808) | function evaluateActionExpression(el, expression, options = {}) {
  function contextualizeExpression (line 14826) | function contextualizeExpression(expression, el) {
  function onlyIfScriptHasntBeenRunAlreadyForThisComponent (line 14888) | function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key,...
  function extractScriptTagContent (line 14901) | function extractScriptTagContent(rawHtml) {
  function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage (line 14907) | async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callba...
  function addAssetsToHeadTagOfPage (line 14913) | async function addAssetsToHeadTagOfPage(rawHtml) {
  function runAssetSynchronously (line 14923) | async function runAssetSynchronously(child) {
  function isScript2 (line 14940) | function isScript2(el) {
  function cloneScriptTag2 (line 14943) | function cloneScriptTag2(el) {
  function setTransitionNames (line 14984) | function setTransitionNames(root) {
  function clearTransitionNames (line 14991) | function clearTransitionNames(root) {
  function transitionDomMutation (line 14996) | async function transitionDomMutation(fromEl, toEl, callback, options = {...
  function morph2 (line 15066) | async function morph2(component, el, html) {
  function morphFragment (line 15104) | async function morphFragment(component, startNode, endNode, toHTML) {
  function getMorphConfig (line 15139) | function getMorphConfig(component) {
  function isntElement (line 15206) | function isntElement(el) {
  function isComponentRootEl (line 15209) | function isComponentRootEl(el) {
  function dispatchEvents (line 15235) | function dispatchEvents(component, dispatches) {
  function disableForm (line 15268) | function disableForm(formEl) {
  function shouldMarkDisabled (line 15286) | function shouldMarkDisabled(el) {
  function shouldMarkReadOnly (line 15308) | function shouldMarkReadOnly(el) {
  function markDisabled (line 15311) | function markDisabled(el) {
  function markReadOnly (line 15317) | function markReadOnly(el) {
  function base64toBlob (line 15345) | function base64toBlob(b64Data, contentType = "", sliceSize = 512) {
  function normalizeQueryStringEntry (line 15408) | function normalizeQueryStringEntry(key, value) {
  function forwardEvent (line 15521) | function forwardEvent(name, original) {
  function shouldRedirectUsingNavigateOr (line 15528) | function shouldRedirectUsingNavigateOr(effects, url, or) {
  function shouldHideProgressBar (line 15536) | function shouldHideProgressBar() {
  function closestIsland (line 15605) | function closestIsland(el) {
  function renderIsland (line 15612) | async function renderIsland(component, islandHtml) {
  function renderSlot (line 15646) | async function renderSlot(component, fragmentHtml) {
  function pathMatches (line 15716) | function pathMatches(hrefUrl, actualUrl, options = {}) {
  function updateNavigateLinks (line 15776) | function updateNavigateLinks() {
  method ["x-intersect" + modifierString] (line 15835) | ["x-intersect" + modifierString](e) {
  method ["x-sort:item" + modifierString] (line 15858) | ["x-sort:item" + modifierString]() {
  method [attribute] (line 15883) | [attribute]() {
  function injectStylesheet (line 15919) | function injectStylesheet(href) {
  function callAndClearComponentDebounces (line 15931) | function callAndClearComponentDebounces(component, callback) {
  method [attribute] (line 15964) | [attribute](e) {
  function applyDelay (line 16063) | function applyDelay(directive2) {
  function whenTargetsArePartOfRequest (line 16101) | function whenTargetsArePartOfRequest(component, el, targets, inverted, [...
  function whenTargetsArePartOfFileUpload (line 16138) | function whenTargetsArePartOfFileUpload(component, targets, [startLoadin...
  function containsTargets (line 16168) | function containsTargets(payload, targets) {
  function getTargets (line 16190) | function getTargets(el) {
  function quickHash (line 16210) | function quickHash(subject) {
  method get (line 16308) | get() {
  method set (line 16311) | set(value) {
  function getModifierTail (line 16321) | function getModifierTail(modifiers) {
  function isRealtimeInput (line 16340) | function isRealtimeInput(el) {
  function componentIsMissingProperty (line 16343) | function componentIsMissingProperty(component, property) {
  function debounce (line 16354) | function debounce(func, wait) {
  function throttle2 (line 16366) | function throttle2(func, limit) {
  function parseModifierDuration (line 16377) | function parseModifierDuration(modifiers, key) {
  function triggerComponentRequest (line 16406) | function triggerComponentRequest(el, directive2, component) {
  function poll (line 16412) | function poll(callback, interval = 2e3) {
  function syncronizedInterval (line 16440) | function syncronizedInterval(ms, callback) {
  function livewireIsOffline (line 16460) | function livewireIsOffline() {
  function theTabIsInTheBackground (line 16467) | function theTabIsInTheBackground() {
  function theDirectiveIsOffTheElement (line 16470) | function theDirectiveIsOffTheElement(el) {
  function theDirectiveIsMissingKeepAlive (line 16473) | function theDirectiveIsMissingKeepAlive(directive2) {
  function theDirectiveHasVisible (line 16476) | function theDirectiveHasVisible(directive2) {
  function theElementIsNotInTheViewport (line 16479) | function theElementIsNotInTheViewport(el) {
  function theElementIsDisconnected (line 16483) | function theElementIsDisconnected(el) {
  function extractDurationFrom (line 16486) | function extractDurationFrom(modifiers, defaultDuration) {
  method ["x-show" + modifierString] (line 16507) | ["x-show" + modifierString]() {
  method ["x-text" + modifierString] (line 16524) | ["x-text" + modifierString]() {
  method ["x-bind" + remainder] (line 16541) | ["x-bind" + remainder]() {
  method navigate (line 16567) | get navigate() {

FILE: dist/livewire.esm.js
  method "node_modules/alpinejs/dist/module.cjs.js" (line 25) | "node_modules/alpinejs/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/collapse/dist/module.cjs.js" (line 4019) | "node_modules/@alpinejs/collapse/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/focus/dist/module.cjs.js" (line 4140) | "node_modules/@alpinejs/focus/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/intersect/dist/module.cjs.js" (line 5153) | "node_modules/@alpinejs/intersect/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/sort/dist/module.cjs.js" (line 5235) | "node_modules/@alpinejs/sort/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/resize/dist/module.cjs.js" (line 6373) | "node_modules/@alpinejs/resize/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/anchor/dist/module.cjs.js" (line 6445) | "node_modules/@alpinejs/anchor/dist/module.cjs.js"(exports, module) {
  method "node_modules/nprogress/nprogress.js" (line 7709) | "node_modules/nprogress/nprogress.js"(exports, module) {
  method "node_modules/@alpinejs/morph/dist/module.cjs.js" (line 7986) | "node_modules/@alpinejs/morph/dist/module.cjs.js"(exports, module) {
  method "node_modules/@alpinejs/mask/dist/module.cjs.js" (line 8394) | "node_modules/@alpinejs/mask/dist/module.cjs.js"(exports, module) {
  method constructor (line 8598) | constructor() {
  method add (line 8601) | add(key, value) {
  method remove (line 8606) | remove(key) {
  method get (line 8610) | get(key) {
  method each (line 8613) | each(key, callback) {
  method constructor (line 8618) | constructor() {
  method add (line 8621) | add(key, value) {
  method remove (line 8626) | remove(key) {
  method get (line 8630) | get(key) {
  method each (line 8633) | each(key, callback) {
  function dispatch (line 8637) | function dispatch(target, name, detail = {}, bubbles = true) {
  function listen (line 8647) | function listen(target, name, handler) {
  function isObjecty (line 8651) | function isObjecty(subject) {
  function isObject (line 8654) | function isObject(subject) {
  function isArray (line 8657) | function isArray(subject) {
  function isFunction (line 8660) | function isFunction(subject) {
  function isPrimitive (line 8663) | function isPrimitive(subject) {
  function deepClone (line 8666) | function deepClone(obj) {
  function deeplyEqual (line 8669) | function deeplyEqual(a, b) {
  function parsePathSegments (line 8672) | function parsePathSegments(path) {
  function dataGet (line 8677) | function dataGet(object, key) {
  function dataSet (line 8684) | function dataSet(object, key, value) {
  function isNumeric (line 8700) | function isNumeric(subject) {
  function dataDelete (line 8703) | function dataDelete(object, key) {
  function diff (line 8719) | function diff(left, right, diffs = {}, path = "") {
  function diffAndConsolidate (line 8745) | function diffAndConsolidate(left, right) {
  function diffRecursive (line 8750) | function diffRecursive(left, right, path, diffs, rootLeft, rootRight) {
  function extractData (line 8824) | function extractData(payload) {
  function isSynthetic (line 8834) | function isSynthetic(subject) {
  function getCsrfToken (line 8837) | function getCsrfToken() {
  function getNonce (line 8850) | function getNonce() {
  function getModuleUrl (line 8864) | function getModuleUrl() {
  function getUpdateUri (line 8867) | function getUpdateUri() {
  function contentIsFromDump (line 8870) | function contentIsFromDump(content) {
  function splitDumpFromContent (line 8873) | function splitDumpFromContent(content) {
  function walkUpwards (line 8877) | function walkUpwards(el, callback) {
  function walkBackwards (line 8889) | function walkBackwards(el, callback) {
  function getUploadManager (line 8902) | function getUploadManager(component) {
  function handleFileUpload (line 8910) | function handleFileUpload(el, property, component, cleanup) {
  method constructor (line 8957) | constructor(component) {
  method registerListeners (line 8962) | registerListeners() {
  method upload (line 8975) | upload(name, file, finishCallback, errorCallback, progressCallback, canc...
  method uploadMultiple (line 8986) | uploadMultiple(name, files, finishCallback, errorCallback, progressCallb...
  method removeUpload (line 8997) | removeUpload(name, tmpFilename, finishCallback) {
  method setUpload (line 9004) | setUpload(name, uploadObject) {
  method handleSignedUrl (line 9010) | handleSignedUrl(name, url) {
  method handleS3PreSignedUrl (line 9023) | handleS3PreSignedUrl(name, payload) {
  method makeRequest (line 9033) | makeRequest(name, formData, method, url, headers, retrievePaths) {
  method startUpload (line 9059) | startUpload(name, uploadObject) {
  method markUploadFinished (line 9066) | markUploadFinished(name, tmpFilenames) {
  method markUploadErrored (line 9073) | markUploadErrored(name) {
  method cancelUpload (line 9079) | cancelUpload(name, cancelledCallback = null) {
  method constructor (line 9093) | constructor() {
  method add (line 9096) | add(name, thing) {
  method push (line 9102) | push(name, thing) {
  method first (line 9105) | first(name) {
  method last (line 9110) | last(name) {
  method get (line 9113) | get(name) {
  method shift (line 9116) | shift(name) {
  method call (line 9119) | call(name, ...params) {
  method has (line 9124) | has(name) {
  function setUploadLoading (line 9128) | function setUploadLoading() {
  function unsetUploadLoading (line 9130) | function unsetUploadLoading() {
  function upload (line 9132) | function upload(component, name, file, finishCallback = () => {
  function uploadMultiple (line 9147) | function uploadMultiple(component, name, files, finishCallback = () => {
  function removeUpload (line 9163) | function removeUpload(component, name, tmpFilename, finishCallback = () ...
  function cancelUpload (line 9174) | function cancelUpload(component, name, cancelledCallback = () => {
  function generateEntangleFunction (line 9185) | function generateEntangleFunction(component, cleanup) {
  function cloneIfObject (line 9227) | function cloneIfObject(value) {
  function on (line 9236) | function on(name, callback) {
  function trigger (line 9244) | function trigger(name, ...params) {
  function triggerAsync (line 9256) | async function triggerAsync(name, ...params) {
  function runFinishers (line 9268) | function runFinishers(finishers, result) {
  function coordinateNetworkInteractions (line 9280) | function coordinateNetworkInteractions(messageBus2) {
  method addMessage (line 9340) | addMessage(message) {
  method getActiveMessages (line 9344) | getActiveMessages() {
  method initInterceptors (line 9347) | initInterceptors(interceptorRegistry) {
  method cancel (line 9358) | cancel() {
  method hasAllCancelledMessages (line 9369) | hasAllCancelledMessages() {
  method isCancelled (line 9372) | isCancelled() {
  method invokeOnSend (line 9375) | invokeOnSend({ responsePromise }) {
  method invokeOnCancel (line 9379) | invokeOnCancel() {
  method invokeOnFailure (line 9382) | invokeOnFailure({ error: error2 }) {
  method invokeOnResponse (line 9386) | invokeOnResponse({ response }) {
  method invokeOnStream (line 9389) | invokeOnStream({ response }) {
  method invokeOnParsed (line 9392) | invokeOnParsed({ response, body }) {
  method invokeOnRedirect (line 9395) | invokeOnRedirect({ url, preventDefault }) {
  method invokeOnDump (line 9398) | invokeOnDump({ html, preventDefault }) {
  method invokeOnError (line 9401) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnSuccess (line 9405) | invokeOnSuccess({ response, body, json }) {
  method invokeOnFinish (line 9408) | invokeOnFinish() {
  method constructor (line 9414) | constructor(uri) {
  method cancel (line 9417) | cancel() {
  method isCancelled (line 9420) | isCancelled() {
  method constructor (line 9449) | constructor(message, callback) {
  method init (line 9470) | init() {
  method constructor (line 9496) | constructor(request, callback) {
  method init (line 9514) | init() {
  method addInterceptor (line 9521) | addInterceptor(component, callback) {
  method addMessageInterceptor (line 9527) | addMessageInterceptor(callback) {
  method addRequestInterceptor (line 9533) | addRequestInterceptor(callback) {
  method getMessageInterceptors (line 9539) | getMessageInterceptors(message) {
  method getRequestInterceptors (line 9548) | getRequestInterceptors(request) {
  function showHtmlModal (line 9556) | function showHtmlModal(html) {
  function hideHtmlModal (line 9591) | function hideHtmlModal(modal) {
  function cleanupModal (line 9594) | function cleanupModal(modal) {
  function scopeSymbolFromMessage (line 9602) | function scopeSymbolFromMessage(message) {
  function scopeSymbolFromAction (line 9622) | function scopeSymbolFromAction(action) {
  method constructor (line 9646) | constructor() {
  method messageBuffer (line 9648) | messageBuffer(message, callback) {
  method addPendingMessage (line 9658) | addPendingMessage(message) {
  method clearPendingMessages (line 9661) | clearPendingMessages() {
  method getPendingMessages (line 9664) | getPendingMessages() {
  method addActiveMessage (line 9667) | addActiveMessage(message) {
  method removeActiveMessage (line 9670) | removeActiveMessage(message) {
  method findScopedPendingMessage (line 9673) | findScopedPendingMessage(action) {
  method activeMessageMatchingScope (line 9685) | activeMessageMatchingScope(action) {
  method matchesScope (line 9688) | matchesScope(message, action) {
  method allScopedMessages (line 9691) | allScopedMessages(action) {
  method eachPendingMessage (line 9696) | eachPendingMessage(callback) {
  method scope (line 9715) | get scope() {
  method scope (line 9721) | set scope(scope) {
  method constructor (line 9724) | constructor(component) {
  method addAction (line 9727) | addAction(action) {
  method removeAction (line 9739) | removeAction(action) {
  method getActions (line 9746) | getActions() {
  method hasActionForIsland (line 9749) | hasActionForIsland(island) {
  method hasActionForComponent (line 9754) | hasActionForComponent() {
  method setInterceptors (line 9759) | setInterceptors(interceptors2) {
  method addInterceptor (line 9762) | addInterceptor(callback) {
  method setRequest (line 9767) | setRequest(request) {
  method getInterceptors (line 9770) | getInterceptors() {
  method cancel (line 9773) | cancel() {
  method isCancelled (line 9782) | isCancelled() {
  method isAsync (line 9785) | isAsync() {
  method invokeOnSend (line 9788) | invokeOnSend() {
  method invokeOnCancel (line 9797) | invokeOnCancel() {
  method invokeOnFailure (line 9803) | invokeOnFailure(error2) {
  method invokeOnError (line 9810) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnStream (line 9826) | invokeOnStream({ json }) {
  method invokeOnSuccess (line 9829) | invokeOnSuccess() {
  method invokeOnSync (line 9842) | invokeOnSync() {
  method invokeOnEffect (line 9845) | invokeOnEffect() {
  method invokeOnMorph (line 9848) | async invokeOnMorph() {
  method invokeOnRender (line 9853) | invokeOnRender() {
  method invokeOnFinish (line 9856) | invokeOnFinish() {
  method rejectActionPromises (line 9859) | rejectActionPromises({ status, body, json, errors }) {
  method resolveActionPromises (line 9864) | resolveActionPromises(returns, returnsMeta) {
  method constructor (line 9911) | constructor(component, name, params = [], metadata = {}, origin = null) {
  method cancel (line 9922) | cancel() {
  method isCancelled (line 9934) | isCancelled() {
  method defer (line 9937) | defer() {
  method isDeferred (line 9940) | isDeferred() {
  method fire (line 9943) | fire() {
  method fingerprint (line 9948) | get fingerprint() {
  method isAsync (line 9961) | isAsync() {
  method isJson (line 9967) | isJson() {
  method addInterceptor (line 9971) | addInterceptor(callback) {
  method invokeOnSend (line 9982) | invokeOnSend({ call }) {
  method invokeOnCancel (line 9986) | invokeOnCancel() {
  method invokeOnSuccess (line 9990) | invokeOnSuccess(result) {
  method invokeOnError (line 9994) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnFailure (line 9998) | invokeOnFailure({ error: error2 }) {
  method invokeOnFinish (line 10002) | invokeOnFinish() {
  method mergeMetadata (line 10006) | mergeMetadata(metadata) {
  method rejectPromise (line 10009) | rejectPromise(error2) {
  method addSquashedAction (line 10013) | addSquashedAction(action) {
  method resolvePromise (line 10016) | resolvePromise(value) {
  function registerLegacyEventSupport (line 10023) | function registerLegacyEventSupport(interceptRequest2, interceptMessage2) {
  function setNextActionOrigin (line 10121) | function setNextActionOrigin(origin) {
  function setNextActionMetadata (line 10124) | function setNextActionMetadata(metadata) {
  function setNextActionInterceptor (line 10127) | function setNextActionInterceptor(callback) {
  function interceptAction (line 10130) | function interceptAction(callback) {
  function interceptMessage (line 10136) | function interceptMessage(callback) {
  function interceptRequest (line 10139) | function interceptRequest(callback) {
  function interceptPartition (line 10142) | function interceptPartition(callback) {
  function interceptComponentAction (line 10148) | function interceptComponentAction(component, actionNameOrCallback, maybe...
  function interceptComponentMessage (line 10159) | function interceptComponentMessage(component, actionNameOrCallback, mayb...
  function interceptComponentRequest (line 10171) | function interceptComponentRequest(component, actionNameOrCallback, mayb...
  function fireAction (line 10195) | function fireAction(component, method, params = [], metadata = {}) {
  function constructAction (line 10214) | function constructAction(component, method, params, metadata) {
  function fireActionInstance (line 10229) | function fireActionInstance(action) {
  function createOrAddToOutstandingMessage (line 10236) | function createOrAddToOutstandingMessage(action) {
  function sendMessages (line 10244) | function sendMessages() {
  function sendRequest (line 10456) | async function sendRequest(request, handlers) {
  function interceptStreamAndReturnFinalResponse (line 10508) | async function interceptStreamAndReturnFinalResponse(response, callback) {
  function extractStreamObjects (line 10524) | function extractStreamObjects(raw) {
  function sendNavigateRequest (line 10536) | async function sendNavigateRequest(uri, callback, errorCallback) {
  function getDestination (line 10560) | function getDestination(uri, response) {
  function createUrlObjectFromString (line 10568) | function createUrlObjectFromString(urlString) {
  function getErrorsObject (line 10575) | function getErrorsObject(component) {
  function findRefEl (line 10658) | function findRefEl(component, name) {
  function matchesForLivewireDirective (line 10667) | function matchesForLivewireDirective(attributeName) {
  function extractDirective (line 10670) | function extractDirective(el, name) {
  function directive (line 10674) | function directive(name, callback) {
  function globalDirective (line 10690) | function globalDirective(name, callback) {
  function getDirectives (line 10700) | function getDirectives(el) {
  function customDirectiveHasBeenRegistered (line 10703) | function customDirectiveHasBeenRegistered(name) {
  method constructor (line 10707) | constructor(el) {
  method all (line 10711) | all() {
  method has (line 10714) | has(value) {
  method missing (line 10717) | missing(value) {
  method get (line 10720) | get(value) {
  method extractTypeModifiersAndValue (line 10723) | extractTypeModifiersAndValue() {
  method constructor (line 10728) | constructor(value, modifiers, rawName, el) {
  method method (line 10737) | get method() {
  method methods (line 10741) | get methods() {
  method params (line 10744) | get params() {
  method parseOutMethodsAndParams (line 10748) | parseOutMethodsAndParams(rawMethod) {
  method splitAndParseMethods (line 10777) | splitAndParseMethods(methodExpression) {
  method parseMethodCall (line 10816) | parseMethodCall(methodString) {
  function toggleBooleanStateDirective (line 10839) | function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDis...
  function checkDirty (line 10889) | function checkDirty(component, targets) {
  function dirtyTargets (line 10905) | function dirtyTargets(el) {
  function assetIsPendingFor (line 10941) | function assetIsPendingFor(component) {
  function runAfterAssetIsLoadedFor (line 10944) | function runAfterAssetIsLoadedFor(component, callback) {
  function wireProperty (line 10955) | function wireProperty(name, callback, component = null) {
  function wireFallback (line 10958) | function wireFallback(callback) {
  function generateWireObject (line 10992) | function generateWireObject(component, state) {
  function getProperty (line 11018) | function getProperty(component, name) {
  function getFallback (line 11021) | function getFallback(component) {
  method get (line 11027) | get(target, property) {
  method set (line 11041) | set(target, property, value) {
  method set (line 11069) | set(target, property, value) {
  method get (line 11073) | get(target, property) {
  method get (line 11101) | get(target, property) {
  function overrideMethod (line 11197) | function overrideMethod(component, method, callback) {
  method constructor (line 11220) | constructor(el) {
  method addActionContext (line 11246) | addActionContext(context) {
  method intercept (line 11254) | intercept(action, callback = null) {
  method mergeNewSnapshot (line 11257) | mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {
  method queueUpdate (line 11289) | queueUpdate(propertyName, value) {
  method mergeQueuedUpdates (line 11292) | mergeQueuedUpdates(diff2) {
  method getUpdates (line 11304) | getUpdates() {
  method applyUpdates (line 11308) | applyUpdates(object, updates) {
  method replayUpdate (line 11314) | replayUpdate(snapshot, html) {
  method processEffects (line 11319) | processEffects(effects, request) {
  method children (line 11328) | get children() {
  method islands (line 11342) | get islands() {
  method parent (line 11346) | get parent() {
  method isIsolated (line 11349) | get isIsolated() {
  method isLazy (line 11352) | get isLazy() {
  method hasBeenLazyLoaded (line 11355) | get hasBeenLazyLoaded() {
  method isLazyIsolated (line 11358) | get isLazyIsolated() {
  method getDeepChildrenWithBindings (line 11361) | getDeepChildrenWithBindings(callback) {
  method hasReactiveProps (line 11368) | hasReactiveProps() {
  method hasWireModelableBindings (line 11373) | hasWireModelableBindings() {
  method getDeepChildren (line 11378) | getDeepChildren(callback) {
  method getEncodedSnapshotWithLatestChildrenMergedIn (line 11384) | getEncodedSnapshotWithLatestChildrenMergedIn() {
  method inscribeSnapshotAndEffectsOnElement (line 11395) | inscribeSnapshotAndEffectsOnElement() {
  method addJsAction (line 11408) | addJsAction(name, action) {
  method hasJsAction (line 11411) | hasJsAction(name) {
  method getJsAction (line 11414) | getJsAction(name) {
  method getJsActions (line 11417) | getJsActions() {
  method toJSON (line 11420) | toJSON() {
  method addCleanup (line 11428) | addCleanup(cleanup) {
  method cleanup (line 11431) | cleanup() {
  function closestFragment (line 11440) | function closestFragment(el, { isMatch, hasReachedBoundary }) {
  function findFragment (line 11470) | function findFragment(el, { isMatch, hasReachedBoundary }) {
  function isStartFragmentMarker (line 11491) | function isStartFragmentMarker(el) {
  function isEndFragmentMarker (line 11494) | function isEndFragmentMarker(el) {
  function walkElements (line 11497) | function walkElements(el, callback) {
  method constructor (line 11510) | constructor(startMarkerNode) {
  method endMarkerNode (line 11514) | get endMarkerNode() {
  method append (line 11517) | append(mountContainerTagName, html) {
  method prepend (line 11524) | prepend(mountContainerTagName, html) {
  function findMatchingEndMarkerNode (line 11532) | function findMatchingEndMarkerNode(startMarkerNode, metadata) {
  function extractInnerHtmlFromFragmentHtml (line 11545) | function extractInnerHtmlFromFragmentHtml(fragmentHtml) {
  function extractFragmentMetadataFromHtml (line 11553) | function extractFragmentMetadataFromHtml(fragmentHtml) {
  function extractFragmentMetadataFromMarkerNode (line 11561) | function extractFragmentMetadataFromMarkerNode(startMarkerNode) {
  function decodeMetadata (line 11569) | function decodeMetadata(encodedMetadata) {
  function initComponent (line 11581) | function initComponent(el) {
  function destroyComponent (line 11590) | function destroyComponent(id) {
  function hasComponent (line 11597) | function hasComponent(id) {
  function findComponent (line 11600) | function findComponent(id, strict = true) {
  function findComponentByEl (line 11609) | function findComponentByEl(el, strict = true) {
  function componentsByName (line 11644) | function componentsByName(name) {
  function getByName (line 11649) | function getByName(name) {
  function find (line 11652) | function find(id) {
  function first (line 11656) | function first() {
  function all (line 11659) | function all() {
  function dispatch2 (line 11664) | function dispatch2(component, name, params) {
  function dispatchGlobal (line 11667) | function dispatchGlobal(name, params) {
  function dispatchSelf (line 11670) | function dispatchSelf(component, name, params) {
  function dispatchEl (line 11673) | function dispatchEl(component, selector, name, params) {
  function dispatchTo (line 11679) | function dispatchTo(componentName, name, params) {
  function dispatchRef (line 11685) | function dispatchRef(component, ref, name, params) {
  function listen2 (line 11689) | function listen2(component, name, callback) {
  function on2 (line 11694) | function on2(eventName, callback) {
  function dispatchEvent (line 11705) | function dispatchEvent(target, name, params, bubbles = true) {
  function src_default (line 11719) | function src_default(Alpine25) {
  function storageHas (line 11766) | function storageHas(key, storage) {
  function storageGet (line 11769) | function storageGet(key, storage) {
  function storageSet (line 11775) | function storageSet(key, value, storage) {
  function unwrap (line 11787) | function unwrap(object) {
  function batch (line 11792) | function batch(callback) {
  method constructor (line 11816) | constructor() {
  method addErrorHandler (line 11828) | addErrorHandler(key, callback) {
  method getUrl (line 11831) | getUrl() {
  method replaceState (line 11839) | replaceState(url, updates) {
  method pushState (line 11843) | pushState(url, updates) {
  method writeToHistory (line 11850) | writeToHistory(method, url, callback) {
  method constructor (line 11871) | constructor(url, html) {
  method has (line 11882) | has(location) {
  method retrieve (line 11885) | retrieve(location) {
  method replace (line 11891) | replace(key, snapshot) {
  method push (line 11898) | push(key, snapshot) {
  method trim (line 11906) | trim() {
  function storeCurrentPageStatus (line 11913) | function storeCurrentPageStatus(status) {
  function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks (line 11916) | function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {
  function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks (line 11920) | function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(ke...
  function whenTheBackOrForwardButtonIsClicked (line 11924) | function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtm...
  function updateUrlAndStoreLatestHtmlForFutureBackButtons (line 11949) | function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destinati...
  function pushUrl (line 11952) | function pushUrl(url, html) {
  function replaceUrl (line 11955) | function replaceUrl(url, html) {
  function updateUrl (line 11958) | function updateUrl(method, url, html) {
  function whenThisLinkIsPressed (line 11974) | function whenThisLinkIsPressed(el, callback) {
  function whenThisLinkIsHoveredFor (line 12008) | function whenThisLinkIsHoveredFor(el, ms = 60, callback) {
  function extractDestinationFromLink (line 12020) | function extractDestinationFromLink(linkEl) {
  function createUrlObjectFromString2 (line 12023) | function createUrlObjectFromString2(urlString) {
  function getUriStringFromUrlObject (line 12026) | function getUriStringFromUrlObject(urlObject) {
  function fetchHtml (line 12031) | function fetchHtml(destination, callback, errorCallback) {
  function performFetch (line 12038) | function performFetch(uri, callback, errorCallback) {
  function prefetchHtml (line 12045) | function prefetchHtml(destination, callback, errorCallback) {
  function storeThePrefetchedHtmlForWhenALinkIsClicked (line 12058) | function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, ...
  function getPretchedHtmlOr (line 12065) | function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {
  function packUpPersistedTeleports (line 12086) | function packUpPersistedTeleports(persistedEl) {
  function removeAnyLeftOverStaleTeleportTargets (line 12091) | function removeAnyLeftOverStaleTeleportTargets(body) {
  function unPackPersistedTeleports (line 12096) | function unPackPersistedTeleports(persistedEl) {
  function isTeleportTarget (line 12104) | function isTeleportTarget(el) {
  function storeScrollInformationInHtmlBeforeNavigatingAway (line 12109) | function storeScrollInformationInHtmlBeforeNavigatingAway() {
  function restoreScrollPositionOrScrollToTop (line 12117) | function restoreScrollPositionOrScrollToTop() {
  function storePersistantElementsForLater (line 12142) | function storePersistantElementsForLater(callback) {
  function putPersistantElementsBack (line 12152) | function putPersistantElementsBack(callback) {
  function isPersistedElement (line 12172) | function isPersistedElement(el) {
  function showAndStartProgressBar (line 12186) | function showAndStartProgressBar() {
  function finishAndHideProgressBar (line 12194) | function finishAndHideProgressBar() {
  function removeAnyLeftOverStaleProgressBars (line 12198) | function removeAnyLeftOverStaleProgressBars() {
  function injectStyles (line 12201) | function injectStyles() {
  function packUpPersistedPopovers (line 12285) | function packUpPersistedPopovers(persistedEl) {
  function unPackPersistedPopovers (line 12305) | function unPackPersistedPopovers(persistedEl) {
  function isPopoverSupported (line 12325) | function isPopoverSupported() {
  function swapCurrentPageWithNewHtml (line 12336) | function swapCurrentPageWithNewHtml(html, andThen) {
  function prepNewBodyScriptTagsToRun (line 12356) | function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) {
  function replaceHtmlAttributes (line 12368) | function replaceHtmlAttributes(newHtmlElement) {
  function mergeNewHead (line 12383) | function mergeNewHead(newHead) {
  function injectScriptTagAndWaitForItToFullyLoad (line 12426) | async function injectScriptTagAndWaitForItToFullyLoad(script) {
  function cloneScriptTag (line 12437) | function cloneScriptTag(el) {
  function isTracked (line 12446) | function isTracked(el) {
  function ifTheQueryStringChangedSinceLastRequest (line 12449) | function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {
  function extractUriAndQueryString (line 12459) | function extractUriAndQueryString(el) {
  function isAsset (line 12463) | function isAsset(el) {
  function isScript (line 12466) | function isScript(el) {
  function simpleHash (line 12469) | function simpleHash(str) {
  function ignoreAttributes (line 12475) | function ignoreAttributes(subject, attributesToRemove) {
  function navigate_default (line 12490) | function navigate_default(Alpine25) {
  function fetchHtmlOrUsePrefetchedHtml (line 12641) | function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCa...
  function preventAlpineFromPickingUpDomChanges (line 12646) | function preventAlpineFromPickingUpDomChanges(Alpine25, callback) {
  function fireEventForOtherLibrariesToHookInto (line 12655) | function fireEventForOtherLibrariesToHookInto(name, detail) {
  function nowInitializeAlpineOnTheNewPage (line 12664) | function nowInitializeAlpineOnTheNewPage(Alpine25) {
  function autofocusElementsWithTheAutofocusAttribute (line 12670) | function autofocusElementsWithTheAutofocusAttribute() {
  function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement (line 12673) | function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {
  function history (line 12688) | function history(Alpine25) {
  function track (line 12725) | function track(name, initialSeedValue, alwaysShow = false, except = null) {
  function replace (line 12782) | function replace(url, key, object) {
  function push (line 12785) | function push(url, key, object) {
  function queryStringUtils (line 12788) | function queryStringUtils() {
  function stripNulls (line 12818) | function stripNulls(value) {
  function toQueryString (line 12829) | function toQueryString(data) {
  function fromQueryString (line 12847) | function fromQueryString(search, queryKey) {
  function start (line 12882) | function start() {
  function ensureLivewireScriptIsntMisplaced (line 12956) | function ensureLivewireScriptIsntMisplaced() {
  function registerListeners (line 12973) | function registerListeners(component, listeners2) {
  function getAlpineScopeKeys (line 12999) | function getAlpineScopeKeys(el) {
  function evaluateExpression (line 13017) | function evaluateExpression(el, expression, options = {}) {
  function evaluateActionExpression (line 13027) | function evaluateActionExpression(el, expression, options = {}) {
  function contextualizeExpression (line 13045) | function contextualizeExpression(expression, el) {
  function onlyIfScriptHasntBeenRunAlreadyForThisComponent (line 13107) | function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key,...
  function extractScriptTagContent (line 13120) | function extractScriptTagContent(rawHtml) {
  function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage (line 13126) | async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callba...
  function addAssetsToHeadTagOfPage (line 13132) | async function addAssetsToHeadTagOfPage(rawHtml) {
  function runAssetSynchronously (line 13142) | async function runAssetSynchronously(child) {
  function isScript2 (line 13159) | function isScript2(el) {
  function cloneScriptTag2 (line 13162) | function cloneScriptTag2(el) {
  function setTransitionNames (line 13203) | function setTransitionNames(root) {
  function clearTransitionNames (line 13210) | function clearTransitionNames(root) {
  function transitionDomMutation (line 13215) | async function transitionDomMutation(fromEl, toEl, callback, options = {...
  function morph2 (line 13285) | async function morph2(component, el, html) {
  function morphFragment (line 13323) | async function morphFragment(component, startNode, endNode, toHTML) {
  function getMorphConfig (line 13358) | function getMorphConfig(component) {
  function isntElement (line 13425) | function isntElement(el) {
  function isComponentRootEl (line 13428) | function isComponentRootEl(el) {
  function dispatchEvents (line 13454) | function dispatchEvents(component, dispatches) {
  function disableForm (line 13487) | function disableForm(formEl) {
  function shouldMarkDisabled (line 13505) | function shouldMarkDisabled(el) {
  function shouldMarkReadOnly (line 13527) | function shouldMarkReadOnly(el) {
  function markDisabled (line 13530) | function markDisabled(el) {
  function markReadOnly (line 13536) | function markReadOnly(el) {
  function base64toBlob (line 13564) | function base64toBlob(b64Data, contentType = "", sliceSize = 512) {
  function normalizeQueryStringEntry (line 13627) | function normalizeQueryStringEntry(key, value) {
  function forwardEvent (line 13740) | function forwardEvent(name, original) {
  function shouldRedirectUsingNavigateOr (line 13747) | function shouldRedirectUsingNavigateOr(effects, url, or) {
  function shouldHideProgressBar (line 13755) | function shouldHideProgressBar() {
  function closestIsland (line 13824) | function closestIsland(el) {
  function renderIsland (line 13831) | async function renderIsland(component, islandHtml) {
  function renderSlot (line 13865) | async function renderSlot(component, fragmentHtml) {
  function pathMatches (line 13935) | function pathMatches(hrefUrl, actualUrl, options = {}) {
  function updateNavigateLinks (line 13995) | function updateNavigateLinks() {
  method ["x-intersect" + modifierString] (line 14054) | ["x-intersect" + modifierString](e) {
  method ["x-sort:item" + modifierString] (line 14077) | ["x-sort:item" + modifierString]() {
  method [attribute] (line 14102) | [attribute]() {
  function injectStylesheet (line 14138) | function injectStylesheet(href) {
  function callAndClearComponentDebounces (line 14150) | function callAndClearComponentDebounces(component, callback) {
  method [attribute] (line 14183) | [attribute](e) {
  function applyDelay (line 14282) | function applyDelay(directive2) {
  function whenTargetsArePartOfRequest (line 14320) | function whenTargetsArePartOfRequest(component, el, targets, inverted, [...
  function whenTargetsArePartOfFileUpload (line 14357) | function whenTargetsArePartOfFileUpload(component, targets, [startLoadin...
  function containsTargets (line 14387) | function containsTargets(payload, targets) {
  function getTargets (line 14409) | function getTargets(el) {
  function quickHash (line 14429) | function quickHash(subject) {
  method get (line 14527) | get() {
  method set (line 14530) | set(value) {
  function getModifierTail (line 14540) | function getModifierTail(modifiers) {
  function isRealtimeInput (line 14559) | function isRealtimeInput(el) {
  function componentIsMissingProperty (line 14562) | function componentIsMissingProperty(component, property) {
  function debounce (line 14573) | function debounce(func, wait) {
  function throttle (line 14585) | function throttle(func, limit) {
  function parseModifierDuration (line 14596) | function parseModifierDuration(modifiers, key) {
  function triggerComponentRequest (line 14625) | function triggerComponentRequest(el, directive2, component) {
  function poll (line 14631) | function poll(callback, interval = 2e3) {
  function syncronizedInterval (line 14659) | function syncronizedInterval(ms, callback) {
  function livewireIsOffline (line 14679) | function livewireIsOffline() {
  function theTabIsInTheBackground (line 14686) | function theTabIsInTheBackground() {
  function theDirectiveIsOffTheElement (line 14689) | function theDirectiveIsOffTheElement(el) {
  function theDirectiveIsMissingKeepAlive (line 14692) | function theDirectiveIsMissingKeepAlive(directive2) {
  function theDirectiveHasVisible (line 14695) | function theDirectiveHasVisible(directive2) {
  function theElementIsNotInTheViewport (line 14698) | function theElementIsNotInTheViewport(el) {
  function theElementIsDisconnected (line 14702) | function theElementIsDisconnected(el) {
  function extractDurationFrom (line 14705) | function extractDurationFrom(modifiers, defaultDuration) {
  method ["x-show" + modifierString] (line 14726) | ["x-show" + modifierString]() {
  method ["x-text" + modifierString] (line 14743) | ["x-text" + modifierString]() {
  method ["x-bind" + remainder] (line 14760) | ["x-bind" + remainder]() {
  method navigate (line 14786) | get navigate() {

FILE: dist/livewire.js
  method "node_modules/nprogress/nprogress.js" (line 26) | "node_modules/nprogress/nprogress.js"(exports, module) {
  method constructor (line 303) | constructor() {
  method add (line 306) | add(key, value) {
  method remove (line 311) | remove(key) {
  method get (line 315) | get(key) {
  method each (line 318) | each(key, callback) {
  method constructor (line 323) | constructor() {
  method add (line 326) | add(key, value) {
  method remove (line 331) | remove(key) {
  method get (line 335) | get(key) {
  method each (line 338) | each(key, callback) {
  function dispatch (line 342) | function dispatch(target, name, detail = {}, bubbles = true) {
  function listen (line 352) | function listen(target, name, handler4) {
  function isObjecty (line 356) | function isObjecty(subject) {
  function isObject (line 359) | function isObject(subject) {
  function isArray (line 362) | function isArray(subject) {
  function isFunction (line 365) | function isFunction(subject) {
  function isPrimitive (line 368) | function isPrimitive(subject) {
  function deepClone (line 371) | function deepClone(obj) {
  function deeplyEqual (line 374) | function deeplyEqual(a, b) {
  function parsePathSegments (line 377) | function parsePathSegments(path) {
  function dataGet (line 382) | function dataGet(object, key) {
  function dataSet (line 389) | function dataSet(object, key, value) {
  function isNumeric (line 405) | function isNumeric(subject) {
  function dataDelete (line 408) | function dataDelete(object, key) {
  function diff (line 424) | function diff(left, right, diffs = {}, path = "") {
  function diffAndConsolidate (line 450) | function diffAndConsolidate(left, right) {
  function diffRecursive (line 455) | function diffRecursive(left, right, path, diffs, rootLeft, rootRight) {
  function extractData (line 529) | function extractData(payload) {
  function isSynthetic (line 539) | function isSynthetic(subject) {
  function getCsrfToken (line 542) | function getCsrfToken() {
  function getNonce (line 555) | function getNonce() {
  function getModuleUrl (line 569) | function getModuleUrl() {
  function getUpdateUri (line 572) | function getUpdateUri() {
  function contentIsFromDump (line 575) | function contentIsFromDump(content) {
  function splitDumpFromContent (line 578) | function splitDumpFromContent(content) {
  function walkUpwards (line 582) | function walkUpwards(el, callback) {
  function walkBackwards (line 594) | function walkBackwards(el, callback) {
  function getUploadManager (line 607) | function getUploadManager(component) {
  function handleFileUpload (line 615) | function handleFileUpload(el, property, component, cleanup2) {
  method constructor (line 662) | constructor(component) {
  method registerListeners (line 667) | registerListeners() {
  method upload (line 680) | upload(name, file, finishCallback, errorCallback, progressCallback, canc...
  method uploadMultiple (line 691) | uploadMultiple(name, files, finishCallback, errorCallback, progressCallb...
  method removeUpload (line 702) | removeUpload(name, tmpFilename, finishCallback) {
  method setUpload (line 709) | setUpload(name, uploadObject) {
  method handleSignedUrl (line 715) | handleSignedUrl(name, url) {
  method handleS3PreSignedUrl (line 728) | handleS3PreSignedUrl(name, payload) {
  method makeRequest (line 738) | makeRequest(name, formData, method, url, headers, retrievePaths) {
  method startUpload (line 764) | startUpload(name, uploadObject) {
  method markUploadFinished (line 771) | markUploadFinished(name, tmpFilenames) {
  method markUploadErrored (line 778) | markUploadErrored(name) {
  method cancelUpload (line 784) | cancelUpload(name, cancelledCallback = null) {
  method constructor (line 798) | constructor() {
  method add (line 801) | add(name, thing) {
  method push (line 807) | push(name, thing) {
  method first (line 810) | first(name) {
  method last (line 815) | last(name) {
  method get (line 818) | get(name) {
  method shift (line 821) | shift(name) {
  method call (line 824) | call(name, ...params) {
  method has (line 829) | has(name) {
  function setUploadLoading (line 833) | function setUploadLoading() {
  function unsetUploadLoading (line 835) | function unsetUploadLoading() {
  function upload (line 837) | function upload(component, name, file, finishCallback = () => {
  function uploadMultiple (line 852) | function uploadMultiple(component, name, files, finishCallback = () => {
  function removeUpload (line 868) | function removeUpload(component, name, tmpFilename, finishCallback = () ...
  function cancelUpload (line 879) | function cancelUpload(component, name, cancelledCallback = () => {
  function scheduler (line 894) | function scheduler(callback) {
  function startTransaction (line 897) | function startTransaction() {
  function commitTransaction (line 900) | function commitTransaction() {
  function queueJob (line 904) | function queueJob(job) {
  function dequeueJob (line 909) | function dequeueJob(job) {
  function queueFlush (line 914) | function queueFlush() {
  function flushJobs (line 922) | function flushJobs() {
  function disableEffectScheduling (line 938) | function disableEffectScheduling(callback) {
  function setReactivityEngine (line 943) | function setReactivityEngine(engine) {
  function overrideEffect (line 955) | function overrideEffect(override) {
  function elementBoundEffect (line 958) | function elementBoundEffect(el) {
  function watch (line 982) | function watch(getter, callback) {
  function transaction (line 1001) | async function transaction(callback) {
  function onElAdded (line 1013) | function onElAdded(callback) {
  function onElRemoved (line 1016) | function onElRemoved(el, callback) {
  function onAttributesAdded (line 1026) | function onAttributesAdded(callback) {
  function onAttributeRemoved (line 1029) | function onAttributeRemoved(el, name, callback) {
  function cleanupAttributes (line 1036) | function cleanupAttributes(el, names) {
  function cleanupElement (line 1046) | function cleanupElement(el) {
  function startObservingMutations (line 1053) | function startObservingMutations() {
  function stopObservingMutations (line 1057) | function stopObservingMutations() {
  function flushObserver (line 1063) | function flushObserver() {
  function mutateDom (line 1074) | function mutateDom(callback) {
  function deferMutations (line 1084) | function deferMutations() {
  function flushAndStopDeferringMutations (line 1087) | function flushAndStopDeferringMutations() {
  function onMutate (line 1092) | function onMutate(mutations) {
  function scope (line 1169) | function scope(node) {
  function addScopeToNode (line 1172) | function addScopeToNode(node, data2, referenceNode) {
  function closestDataStack (line 1178) | function closestDataStack(node) {
  function mergeProxies (line 1189) | function mergeProxies(objects) {
  method ownKeys (line 1193) | ownKeys({ objects }) {
  method has (line 1198) | has({ objects }, name) {
  method get (line 1205) | get({ objects }, name, thisProxy) {
  method set (line 1216) | set({ objects }, name, value, thisProxy) {
  function collapseProxies (line 1226) | function collapseProxies() {
  function initInterceptors (line 1233) | function initInterceptors(data2) {
  function interceptor (line 1253) | function interceptor(callback, mutateObj = () => {
  function get (line 1277) | function get(obj, path) {
  function set (line 1280) | function set(obj, path, value) {
  function magic (line 1297) | function magic(name, callback) {
  function injectMagics (line 1300) | function injectMagics(obj, el) {
  function getUtilities (line 1312) | function getUtilities(el) {
  function tryCatch (line 1318) | function tryCatch(el, expression, callback, ...args) {
  function handleError (line 1325) | function handleError(...args) {
  function setErrorHandler (line 1329) | function setErrorHandler(handler4) {
  function normalErrorHandler (line 1332) | function normalErrorHandler(error2, el, expression = void 0) {
  function dontAutoEvaluateFunctions (line 1345) | function dontAutoEvaluateFunctions(callback) {
  function evaluate (line 1352) | function evaluate(el, expression, extras = {}) {
  function evaluateLater (line 1357) | function evaluateLater(...args) {
  function setEvaluator (line 1361) | function setEvaluator(newEvaluator) {
  function setRawEvaluator (line 1365) | function setRawEvaluator(newEvaluator) {
  function normalEvaluator (line 1368) | function normalEvaluator(el, expression) {
  function generateEvaluatorFromFunction (line 1375) | function generateEvaluatorFromFunction(dataStack, func) {
  function generateFunctionFromString (line 1387) | function generateFunctionFromString(expression, el) {
  function generateEvaluatorFromString (line 1413) | function generateEvaluatorFromString(dataStack, expression, el) {
  function runIfTypeOfFunction (line 1433) | function runIfTypeOfFunction(receiver, value, scope2, params, el) {
  function evaluateRaw (line 1447) | function evaluateRaw(...args) {
  function normalRawEvaluator (line 1450) | function normalRawEvaluator(el, expression, extras = {}) {
  function prefix (line 1480) | function prefix(subject = "") {
  function setPrefix (line 1483) | function setPrefix(newPrefix) {
  function directive (line 1487) | function directive(name, callback) {
  function directiveExists (line 1500) | function directiveExists(name) {
  function directives (line 1503) | function directives(el, attributes, originalAttributeOverride) {
  function attributesOnly (line 1525) | function attributesOnly(attributes) {
  function deferHandlingDirectives (line 1531) | function deferHandlingDirectives(callback) {
  function getElementBoundUtilities (line 1548) | function getElementBoundUtilities(el) {
  function getDirectiveHandler (line 1563) | function getDirectiveHandler(el, directive22) {
  function toTransformedAttributes (line 1585) | function toTransformedAttributes(callback = () => {
  function mapAttributes (line 1597) | function mapAttributes(callback) {
  function outNonAlpineAttributes (line 1600) | function outNonAlpineAttributes({ name }) {
  function toParsedDirectives (line 1604) | function toParsedDirectives(transformedAttributeMap, originalAttributeOv...
  function byPriority (line 1639) | function byPriority(a, b) {
  function dispatch2 (line 1644) | function dispatch2(el, name, detail = {}) {
  function walk (line 1654) | function walk(el, callback) {
  function warn (line 1669) | function warn(message, ...args) {
  function start (line 1673) | function start() {
  function rootSelectors (line 1698) | function rootSelectors() {
  function allSelectors (line 1701) | function allSelectors() {
  function addRootSelector (line 1704) | function addRootSelector(selectorCallback) {
  function addInitSelector (line 1707) | function addInitSelector(selectorCallback) {
  function closestRoot (line 1710) | function closestRoot(el, includeInitSelectors = false) {
  function findClosest (line 1717) | function findClosest(el, callback) {
  function isRoot (line 1731) | function isRoot(el) {
  function interceptInit (line 1735) | function interceptInit(callback) {
  function initTree (line 1739) | function initTree(el, walker = walk, intercept = () => {
  function destroyTree (line 1756) | function destroyTree(root, walker = walk) {
  function warnAboutMissingPlugins (line 1763) | function warnAboutMissingPlugins() {
  function nextTick (line 1782) | function nextTick(callback = () => {
  function releaseNextTicks (line 1796) | function releaseNextTicks() {
  function holdNextTicks (line 1801) | function holdNextTicks() {
  function setClasses (line 1804) | function setClasses(el, value) {
  function setClassesFromString (line 1814) | function setClassesFromString(el, classString) {
  function setClassesFromObject (line 1826) | function setClassesFromObject(el, classObject) {
  function setStyles (line 1849) | function setStyles(el, value) {
  function setStylesFromObject (line 1855) | function setStylesFromObject(el, value) {
  function setStylesFromString (line 1873) | function setStylesFromString(el, value) {
  function kebabCase (line 1880) | function kebabCase(subject) {
  function once (line 1883) | function once(callback, fallback2 = () => {
  function registerTransitionsFromClassString (line 1906) | function registerTransitionsFromClassString(el, classString, stage) {
  function registerTransitionsFromHelper (line 1930) | function registerTransitionsFromHelper(el, modifiers, stage) {
  function registerTransitionObject (line 1987) | function registerTransitionObject(el, setFunction, defaultValue = {}) {
  function closestHide (line 2053) | function closestHide(el) {
  function transition (line 2059) | function transition(el, setFunction, { during, start: start22, end } = {...
  function performTransition (line 2089) | function performTransition(el, stages) {
  function modifierValue (line 2148) | function modifierValue(modifiers, key, fallback2) {
  function skipDuringClone (line 2171) | function skipDuringClone(callback, fallback2 = () => {
  function onlyDuringClone (line 2175) | function onlyDuringClone(callback) {
  function interceptClone (line 2179) | function interceptClone(callback) {
  function cloneNode (line 2182) | function cloneNode(from, to) {
  function clone (line 2194) | function clone(oldEl, newEl) {
  function cloneTree (line 2205) | function cloneTree(el) {
  function dontRegisterReactiveSideEffects (line 2217) | function dontRegisterReactiveSideEffects(callback) {
  function bind (line 2228) | function bind(el, name, value, modifiers = []) {
  function bindInputValue (line 2252) | function bindInputValue(el, value) {
  function bindClasses (line 2284) | function bindClasses(el, value) {
  function bindStyles (line 2289) | function bindStyles(el, value) {
  function bindAttributeAndProperty (line 2294) | function bindAttributeAndProperty(el, name, value) {
  function bindAttribute (line 2298) | function bindAttribute(el, name, value) {
  function setIfChanged (line 2307) | function setIfChanged(el, attrName, value) {
  function setPropertyIfChanged (line 2312) | function setPropertyIfChanged(el, propName, value) {
  function updateSelect (line 2317) | function updateSelect(el, value) {
  function camelCase (line 2325) | function camelCase(subject) {
  function checkedAttrLooseCompare (line 2328) | function checkedAttrLooseCompare(valueA, valueB) {
  function safeParseBoolean (line 2331) | function safeParseBoolean(rawValue) {
  function isBooleanAttr (line 2369) | function isBooleanAttr(attrName) {
  function attributeShouldntBePreservedIfFalsy (line 2372) | function attributeShouldntBePreservedIfFalsy(name) {
  function getBinding (line 2375) | function getBinding(el, name, fallback2) {
  function extractProp (line 2380) | function extractProp(el, name, fallback2, extract = true) {
  function getAttributeBinding (line 2392) | function getAttributeBinding(el, name, fallback2) {
  function isCheckbox (line 2403) | function isCheckbox(el) {
  function isRadio (line 2406) | function isRadio(el) {
  function debounce (line 2409) | function debounce(func, wait) {
  function throttle (line 2421) | function throttle(func, limit) {
  function entangle (line 2432) | function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set...
  function cloneIfObject (line 2459) | function cloneIfObject(value) {
  function plugin (line 2462) | function plugin(callback) {
  function store (line 2468) | function store(name, value) {
  function getStores (line 2482) | function getStores() {
  function bind2 (line 2486) | function bind2(name, bindings) {
  function injectBindingProviders (line 2496) | function injectBindingProviders(obj) {
  function applyBindingsObject (line 2508) | function applyBindingsObject(el, obj, original) {
  function data (line 2533) | function data(name, callback) {
  function injectDataProviders (line 2536) | function injectDataProviders(obj, context) {
  method reactive (line 2550) | get reactive() {
  method release (line 2553) | get release() {
  method effect (line 2556) | get effect() {
  method raw (line 2559) | get raw() {
  method transaction (line 2562) | get transaction() {
  function makeMap (line 2624) | function makeMap(str, expectsLowerCase) {
  function isEffect (line 2670) | function isEffect(fn) {
  function effect2 (line 2673) | function effect2(fn, options = EMPTY_OBJ) {
  function stop (line 2683) | function stop(effect3) {
  function createReactiveEffect (line 2693) | function createReactiveEffect(fn, options) {
  function cleanup (line 2721) | function cleanup(effect3) {
  function pauseTracking (line 2732) | function pauseTracking() {
  function enableTracking (line 2736) | function enableTracking() {
  function resetTracking (line 2740) | function resetTracking() {
  function track (line 2744) | function track(target, type, key) {
  function trigger (line 2769) | function trigger(target, type, key, newValue, oldValue, oldTarget) {
  function createArrayInstrumentations (line 2847) | function createArrayInstrumentations() {
  function createGetter (line 2873) | function createGetter(isReadonly = false, shallow = false) {
  function createSetter (line 2907) | function createSetter(shallow = false) {
  function deleteProperty (line 2930) | function deleteProperty(target, key) {
  function has (line 2939) | function has(target, key) {
  function ownKeys (line 2946) | function ownKeys(target) {
  method set (line 2959) | set(target, key) {
  method deleteProperty (line 2965) | deleteProperty(target, key) {
  function get$1 (line 2976) | function get$1(target, key, isReadonly = false, isShallow = false) {
  function has$1 (line 2994) | function has$1(key, isReadonly = false) {
  function size (line 3004) | function size(target, isReadonly = false) {
  function add (line 3009) | function add(value) {
  function set$1 (line 3020) | function set$1(key, value) {
  function deleteEntry (line 3040) | function deleteEntry(key) {
  function clear (line 3057) | function clear() {
  function createForEach (line 3067) | function createForEach(isReadonly, isShallow) {
  function createIterableMethod (line 3079) | function createIterableMethod(method, isReadonly, isShallow) {
  function createReadonlyMethod (line 3103) | function createReadonlyMethod(type) {
  function createInstrumentations (line 3112) | function createInstrumentations() {
  function createInstrumentationGetter (line 3204) | function createInstrumentationGetter(isReadonly, shallow) {
  function checkIdentityKeys (line 3223) | function checkIdentityKeys(target, has2, key) {
  function targetTypeMap (line 3234) | function targetTypeMap(rawType) {
  function getTargetType (line 3248) | function getTargetType(value) {
  function reactive2 (line 3251) | function reactive2(target) {
  function readonly (line 3257) | function readonly(target) {
  function createReactiveObject (line 3260) | function createReactiveObject(target, isReadonly, baseHandlers, collecti...
  function toRaw (line 3282) | function toRaw(observed) {
  function isRef (line 3285) | function isRef(r) {
  function getArrayOfRefObject (line 3309) | function getArrayOfRefObject(el) {
  function findAndIncrementId (line 3318) | function findAndIncrementId(name) {
  function closestIdRoot (line 3323) | function closestIdRoot(el, name) {
  function setIdRoot (line 3329) | function setIdRoot(el, name) {
  function cacheIdByNameOnElement (line 3348) | function cacheIdByNameOnElement(el, cacheKey, cleanup2, callback) {
  function warnMissingPluginMagic (line 3363) | function warnMissingPluginMagic(name, magicName, slug) {
  method get (line 3386) | get() {
  method set (line 3389) | set(value) {
  method get (line 3394) | get() {
  method set (line 3397) | set(value) {
  function getTarget (line 3452) | function getTarget(expression) {
  function on (line 3474) | function on(el, event, modifiers, callback) {
  function dotSyntax (line 3556) | function dotSyntax(subject) {
  function camelCase2 (line 3559) | function camelCase2(subject) {
  function isNumeric2 (line 3562) | function isNumeric2(subject) {
  function kebabCase2 (line 3565) | function kebabCase2(subject) {
  function isKeyEvent (line 3572) | function isKeyEvent(event) {
  function isClickEvent (line 3575) | function isClickEvent(event) {
  function isListeningForASpecificKeyThatHasntBeenPressed (line 3578) | function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {
  function keyToModifiers (line 3612) | function keyToModifiers(key) {
  method get (line 3732) | get() {
  method set (line 3735) | set(value) {
  function getInputValue (line 3753) | function getInputValue(el, modifiers, event, currentValue) {
  function safeParseNumber (line 3809) | function safeParseNumber(rawValue) {
  function checkedAttrLooseCompare2 (line 3813) | function checkedAttrLooseCompare2(valueA, valueB) {
  function isNumeric22 (line 3816) | function isNumeric22(subject) {
  function isGetterSetter (line 3819) | function isGetterSetter(value) {
  function storeKeyForXFor (line 3889) | function storeKeyForXFor(el, expression) {
  function shouldSkipRegisteringDataDuringClone (line 3920) | function shouldSkipRegisteringDataDuringClone(el) {
  function loop (line 3997) | function loop(el, iteratorNames, evaluateItems, evaluateKey) {
  function parseForExpression (line 4116) | function parseForExpression(expression) {
  function getIterationScopeVariables (line 4138) | function getIterationScopeVariables(iteratorNames, item, index2, items) {
  function isNumeric3 (line 4159) | function isNumeric3(subject) {
  function handler3 (line 4162) | function handler3() {
  function warnMissingPluginDirective (line 4235) | function warnMissingPluginDirective(name, directiveName, slug) {
  function generateEntangleFunction (line 4245) | function generateEntangleFunction(component, cleanup2) {
  function cloneIfObject2 (line 4287) | function cloneIfObject2(value) {
  function on2 (line 4293) | function on2(name, callback) {
  function trigger2 (line 4301) | function trigger2(name, ...params) {
  function triggerAsync (line 4313) | async function triggerAsync(name, ...params) {
  function runFinishers (line 4325) | function runFinishers(finishers, result) {
  function coordinateNetworkInteractions (line 4337) | function coordinateNetworkInteractions(messageBus2) {
  method addMessage (line 4397) | addMessage(message) {
  method getActiveMessages (line 4401) | getActiveMessages() {
  method initInterceptors (line 4404) | initInterceptors(interceptorRegistry) {
  method cancel (line 4415) | cancel() {
  method hasAllCancelledMessages (line 4426) | hasAllCancelledMessages() {
  method isCancelled (line 4429) | isCancelled() {
  method invokeOnSend (line 4432) | invokeOnSend({ responsePromise }) {
  method invokeOnCancel (line 4436) | invokeOnCancel() {
  method invokeOnFailure (line 4439) | invokeOnFailure({ error: error2 }) {
  method invokeOnResponse (line 4443) | invokeOnResponse({ response }) {
  method invokeOnStream (line 4446) | invokeOnStream({ response }) {
  method invokeOnParsed (line 4449) | invokeOnParsed({ response, body }) {
  method invokeOnRedirect (line 4452) | invokeOnRedirect({ url, preventDefault }) {
  method invokeOnDump (line 4455) | invokeOnDump({ html, preventDefault }) {
  method invokeOnError (line 4458) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnSuccess (line 4462) | invokeOnSuccess({ response, body, json }) {
  method invokeOnFinish (line 4465) | invokeOnFinish() {
  method constructor (line 4471) | constructor(uri) {
  method cancel (line 4474) | cancel() {
  method isCancelled (line 4477) | isCancelled() {
  method constructor (line 4506) | constructor(message, callback) {
  method init (line 4527) | init() {
  method constructor (line 4553) | constructor(request, callback) {
  method init (line 4571) | init() {
  method addInterceptor (line 4578) | addInterceptor(component, callback) {
  method addMessageInterceptor (line 4584) | addMessageInterceptor(callback) {
  method addRequestInterceptor (line 4590) | addRequestInterceptor(callback) {
  method getMessageInterceptors (line 4596) | getMessageInterceptors(message) {
  method getRequestInterceptors (line 4605) | getRequestInterceptors(request) {
  function showHtmlModal (line 4613) | function showHtmlModal(html) {
  function hideHtmlModal (line 4648) | function hideHtmlModal(modal) {
  function cleanupModal (line 4651) | function cleanupModal(modal) {
  function scopeSymbolFromMessage (line 4659) | function scopeSymbolFromMessage(message) {
  function scopeSymbolFromAction (line 4679) | function scopeSymbolFromAction(action) {
  method constructor (line 4703) | constructor() {
  method messageBuffer (line 4705) | messageBuffer(message, callback) {
  method addPendingMessage (line 4715) | addPendingMessage(message) {
  method clearPendingMessages (line 4718) | clearPendingMessages() {
  method getPendingMessages (line 4721) | getPendingMessages() {
  method addActiveMessage (line 4724) | addActiveMessage(message) {
  method removeActiveMessage (line 4727) | removeActiveMessage(message) {
  method findScopedPendingMessage (line 4730) | findScopedPendingMessage(action) {
  method activeMessageMatchingScope (line 4742) | activeMessageMatchingScope(action) {
  method matchesScope (line 4745) | matchesScope(message, action) {
  method allScopedMessages (line 4748) | allScopedMessages(action) {
  method eachPendingMessage (line 4753) | eachPendingMessage(callback) {
  method scope (line 4772) | get scope() {
  method scope (line 4778) | set scope(scope2) {
  method constructor (line 4781) | constructor(component) {
  method addAction (line 4784) | addAction(action) {
  method removeAction (line 4796) | removeAction(action) {
  method getActions (line 4803) | getActions() {
  method hasActionForIsland (line 4806) | hasActionForIsland(island) {
  method hasActionForComponent (line 4811) | hasActionForComponent() {
  method setInterceptors (line 4816) | setInterceptors(interceptors3) {
  method addInterceptor (line 4819) | addInterceptor(callback) {
  method setRequest (line 4824) | setRequest(request) {
  method getInterceptors (line 4827) | getInterceptors() {
  method cancel (line 4830) | cancel() {
  method isCancelled (line 4839) | isCancelled() {
  method isAsync (line 4842) | isAsync() {
  method invokeOnSend (line 4845) | invokeOnSend() {
  method invokeOnCancel (line 4854) | invokeOnCancel() {
  method invokeOnFailure (line 4860) | invokeOnFailure(error2) {
  method invokeOnError (line 4867) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnStream (line 4883) | invokeOnStream({ json }) {
  method invokeOnSuccess (line 4886) | invokeOnSuccess() {
  method invokeOnSync (line 4899) | invokeOnSync() {
  method invokeOnEffect (line 4902) | invokeOnEffect() {
  method invokeOnMorph (line 4905) | async invokeOnMorph() {
  method invokeOnRender (line 4910) | invokeOnRender() {
  method invokeOnFinish (line 4913) | invokeOnFinish() {
  method rejectActionPromises (line 4916) | rejectActionPromises({ status, body, json, errors }) {
  method resolveActionPromises (line 4921) | resolveActionPromises(returns, returnsMeta) {
  method constructor (line 4968) | constructor(component, name, params = [], metadata = {}, origin = null) {
  method cancel (line 4979) | cancel() {
  method isCancelled (line 4991) | isCancelled() {
  method defer (line 4994) | defer() {
  method isDeferred (line 4997) | isDeferred() {
  method fire (line 5000) | fire() {
  method fingerprint (line 5005) | get fingerprint() {
  method isAsync (line 5018) | isAsync() {
  method isJson (line 5024) | isJson() {
  method addInterceptor (line 5028) | addInterceptor(callback) {
  method invokeOnSend (line 5039) | invokeOnSend({ call }) {
  method invokeOnCancel (line 5043) | invokeOnCancel() {
  method invokeOnSuccess (line 5047) | invokeOnSuccess(result) {
  method invokeOnError (line 5051) | invokeOnError({ response, body, preventDefault }) {
  method invokeOnFailure (line 5055) | invokeOnFailure({ error: error2 }) {
  method invokeOnFinish (line 5059) | invokeOnFinish() {
  method mergeMetadata (line 5063) | mergeMetadata(metadata) {
  method rejectPromise (line 5066) | rejectPromise(error2) {
  method addSquashedAction (line 5070) | addSquashedAction(action) {
  method resolvePromise (line 5073) | resolvePromise(value) {
  function registerLegacyEventSupport (line 5080) | function registerLegacyEventSupport(interceptRequest2, interceptMessage2) {
  function setNextActionOrigin (line 5178) | function setNextActionOrigin(origin) {
  function setNextActionMetadata (line 5181) | function setNextActionMetadata(metadata) {
  function setNextActionInterceptor (line 5184) | function setNextActionInterceptor(callback) {
  function interceptAction (line 5187) | function interceptAction(callback) {
  function interceptMessage (line 5193) | function interceptMessage(callback) {
  function interceptRequest (line 5196) | function interceptRequest(callback) {
  function interceptPartition (line 5199) | function interceptPartition(callback) {
  function interceptComponentAction (line 5205) | function interceptComponentAction(component, actionNameOrCallback, maybe...
  function interceptComponentMessage (line 5216) | function interceptComponentMessage(component, actionNameOrCallback, mayb...
  function interceptComponentRequest (line 5228) | function interceptComponentRequest(component, actionNameOrCallback, mayb...
  function fireAction (line 5252) | function fireAction(component, method, params = [], metadata = {}) {
  function constructAction (line 5271) | function constructAction(component, method, params, metadata) {
  function fireActionInstance (line 5286) | function fireActionInstance(action) {
  function createOrAddToOutstandingMessage (line 5293) | function createOrAddToOutstandingMessage(action) {
  function sendMessages (line 5301) | function sendMessages() {
  function sendRequest (line 5513) | async function sendRequest(request, handlers) {
  function interceptStreamAndReturnFinalResponse (line 5565) | async function interceptStreamAndReturnFinalResponse(response, callback) {
  function extractStreamObjects (line 5581) | function extractStreamObjects(raw2) {
  function sendNavigateRequest (line 5593) | async function sendNavigateRequest(uri, callback, errorCallback) {
  function getDestination (line 5617) | function getDestination(uri, response) {
  function createUrlObjectFromString (line 5625) | function createUrlObjectFromString(urlString) {
  function getErrorsObject (line 5631) | function getErrorsObject(component) {
  function findRefEl (line 5714) | function findRefEl(component, name) {
  function matchesForLivewireDirective (line 5723) | function matchesForLivewireDirective(attributeName) {
  function extractDirective (line 5726) | function extractDirective(el, name) {
  function directive2 (line 5730) | function directive2(name, callback) {
  function globalDirective (line 5746) | function globalDirective(name, callback) {
  function getDirectives (line 5756) | function getDirectives(el) {
  function customDirectiveHasBeenRegistered (line 5759) | function customDirectiveHasBeenRegistered(name) {
  method constructor (line 5763) | constructor(el) {
  method all (line 5767) | all() {
  method has (line 5770) | has(value) {
  method missing (line 5773) | missing(value) {
  method get (line 5776) | get(value) {
  method extractTypeModifiersAndValue (line 5779) | extractTypeModifiersAndValue() {
  method constructor (line 5784) | constructor(value, modifiers, rawName, el) {
  method method (line 5793) | get method() {
  method methods (line 5797) | get methods() {
  method params (line 5800) | get params() {
  method parseOutMethodsAndParams (line 5804) | parseOutMethodsAndParams(rawMethod) {
  method splitAndParseMethods (line 5833) | splitAndParseMethods(methodExpression) {
  method parseMethodCall (line 5872) | parseMethodCall(methodString) {
  function toggleBooleanStateDirective (line 5895) | function toggleBooleanStateDirective(el, directive3, isTruthy, cachedDis...
  function checkDirty (line 5945) | function checkDirty(component, targets) {
  function dirtyTargets (line 5961) | function dirtyTargets(el) {
  function assetIsPendingFor (line 5997) | function assetIsPendingFor(component) {
  function runAfterAssetIsLoadedFor (line 6000) | function runAfterAssetIsLoadedFor(component, callback) {
  function wireProperty (line 6011) | function wireProperty(name, callback, component = null) {
  function wireFallback (line 6014) | function wireFallback(callback) {
  function generateWireObject (line 6048) | function generateWireObject(component, state) {
  function getProperty (line 6074) | function getProperty(component, name) {
  function getFallback (line 6077) | function getFallback(component) {
  method get (line 6083) | get(target, property) {
  method set (line 6097) | set(target, property, value) {
  method set (line 6125) | set(target, property, value) {
  method get (line 6129) | get(target, property) {
  method get (line 6157) | get(target, property) {
  function overrideMethod (line 6253) | function overrideMethod(component, method, callback) {
  method constructor (line 6276) | constructor(el) {
  method addActionContext (line 6302) | addActionContext(context) {
  method intercept (line 6310) | intercept(action, callback = null) {
  method mergeNewSnapshot (line 6313) | mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {
  method queueUpdate (line 6345) | queueUpdate(propertyName, value) {
  method mergeQueuedUpdates (line 6348) | mergeQueuedUpdates(diff2) {
  method getUpdates (line 6360) | getUpdates() {
  method applyUpdates (line 6364) | applyUpdates(object, updates) {
  method replayUpdate (line 6370) | replayUpdate(snapshot, html) {
  method processEffects (line 6375) | processEffects(effects, request) {
  method children (line 6384) | get children() {
  method islands (line 6398) | get islands() {
  method parent (line 6402) | get parent() {
  method isIsolated (line 6405) | get isIsolated() {
  method isLazy (line 6408) | get isLazy() {
  method hasBeenLazyLoaded (line 6411) | get hasBeenLazyLoaded() {
  method isLazyIsolated (line 6414) | get isLazyIsolated() {
  method getDeepChildrenWithBindings (line 6417) | getDeepChildrenWithBindings(callback) {
  method hasReactiveProps (line 6424) | hasReactiveProps() {
  method hasWireModelableBindings (line 6429) | hasWireModelableBindings() {
  method getDeepChildren (line 6434) | getDeepChildren(callback) {
  method getEncodedSnapshotWithLatestChildrenMergedIn (line 6440) | getEncodedSnapshotWithLatestChildrenMergedIn() {
  method inscribeSnapshotAndEffectsOnElement (line 6451) | inscribeSnapshotAndEffectsOnElement() {
  method addJsAction (line 6464) | addJsAction(name, action) {
  method hasJsAction (line 6467) | hasJsAction(name) {
  method getJsAction (line 6470) | getJsAction(name) {
  method getJsActions (line 6473) | getJsActions() {
  method toJSON (line 6476) | toJSON() {
  method addCleanup (line 6484) | addCleanup(cleanup2) {
  method cleanup (line 6487) | cleanup() {
  function closestFragment (line 6496) | function closestFragment(el, { isMatch, hasReachedBoundary }) {
  function findFragment (line 6526) | function findFragment(el, { isMatch, hasReachedBoundary }) {
  function isStartFragmentMarker (line 6547) | function isStartFragmentMarker(el) {
  function isEndFragmentMarker (line 6550) | function isEndFragmentMarker(el) {
  function walkElements (line 6553) | function walkElements(el, callback) {
  method constructor (line 6566) | constructor(startMarkerNode) {
  method endMarkerNode (line 6570) | get endMarkerNode() {
  method append (line 6573) | append(mountContainerTagName, html) {
  method prepend (line 6580) | prepend(mountContainerTagName, html) {
  function findMatchingEndMarkerNode (line 6588) | function findMatchingEndMarkerNode(startMarkerNode, metadata) {
  function extractInnerHtmlFromFragmentHtml (line 6601) | function extractInnerHtmlFromFragmentHtml(fragmentHtml) {
  function extractFragmentMetadataFromHtml (line 6609) | function extractFragmentMetadataFromHtml(fragmentHtml) {
  function extractFragmentMetadataFromMarkerNode (line 6617) | function extractFragmentMetadataFromMarkerNode(startMarkerNode) {
  function decodeMetadata (line 6625) | function decodeMetadata(encodedMetadata) {
  function initComponent (line 6637) | function initComponent(el) {
  function destroyComponent (line 6646) | function destroyComponent(id) {
  function hasComponent (line 6653) | function hasComponent(id) {
  function findComponent (line 6656) | function findComponent(id, strict = true) {
  function findComponentByEl (line 6665) | function findComponentByEl(el, strict = true) {
  function componentsByName (line 6700) | function componentsByName(name) {
  function getByName (line 6705) | function getByName(name) {
  function find (line 6708) | function find(id) {
  function first (line 6712) | function first() {
  function all (line 6715) | function all() {
  function dispatch3 (line 6720) | function dispatch3(component, name, params) {
  function dispatchGlobal (line 6723) | function dispatchGlobal(name, params) {
  function dispatchSelf (line 6726) | function dispatchSelf(component, name, params) {
  function dispatchEl (line 6729) | function dispatchEl(component, selector, name, params) {
  function dispatchTo (line 6735) | function dispatchTo(componentName, name, params) {
  function dispatchRef (line 6741) | function dispatchRef(component, ref, name, params) {
  function listen2 (line 6745) | function listen2(component, name, callback) {
  function on3 (line 6750) | function on3(eventName, callback) {
  function dispatchEvent (line 6761) | function dispatchEvent(target, name, params, bubbles = true) {
  function src_default2 (line 6771) | function src_default2(Alpine3) {
  function modifierValue2 (line 6844) | function modifierValue2(modifiers, key, fallback2) {
  function ownKeys2 (line 7136) | function ownKeys2(object, enumerableOnly) {
  function _objectSpread2 (line 7146) | function _objectSpread2(target) {
  function _defineProperty (line 7157) | function _defineProperty(obj, key, value) {
  method active (line 7504) | get active() {
  method paused (line 7507) | get paused() {
  function src_default3 (line 7612) | function src_default3(Alpine3) {
  function setInert (line 7785) | function setInert(el) {
  function crawlSiblingsUp (line 7797) | function crawlSiblingsUp(el, callback) {
  function disableScrolling (line 7808) | function disableScrolling() {
  function src_default4 (line 7822) | function src_default4(Alpine3) {
  function storageHas (line 7869) | function storageHas(key, storage) {
  function storageGet (line 7872) | function storageGet(key, storage) {
  function storageSet (line 7878) | function storageSet(key, value, storage) {
  function src_default5 (line 7884) | function src_default5(Alpine3) {
  function getThreshold (line 7905) | function getThreshold(modifiers) {
  function getLengthValue (line 7919) | function getLengthValue(rawValue) {
  function getRootMargin (line 7923) | function getRootMargin(modifiers) {
  function ownKeys3 (line 7939) | function ownKeys3(object, enumerableOnly) {
  function _objectSpread22 (line 7952) | function _objectSpread22(target) {
  function _typeof (line 7969) | function _typeof(obj) {
  function _defineProperty2 (line 7982) | function _defineProperty2(obj, key, value) {
  function _extends (line 7995) | function _extends() {
  function _objectWithoutPropertiesLoose (line 8009) | function _objectWithoutPropertiesLoose(source, excluded) {
  function _objectWithoutProperties (line 8023) | function _objectWithoutProperties(source, excluded) {
  function userAgent (line 8042) | function userAgent(pattern) {
  function on4 (line 8057) | function on4(el, event, fn) {
  function off (line 8060) | function off(el, event, fn) {
  function matches2 (line 8063) | function matches2(el, selector) {
  function getParentOrHost (line 8082) | function getParentOrHost(el) {
  function closest (line 8085) | function closest(el, selector, ctx, includeCTX) {
  function toggleClass (line 8099) | function toggleClass(el, name, state) {
  function css (line 8109) | function css(el, prop, val) {
  function matrix (line 8127) | function matrix(el, selfOnly) {
  function find2 (line 8142) | function find2(ctx, tagName, iterator) {
  function getWindowScrollingElement (line 8154) | function getWindowScrollingElement() {
  function getRect (line 8162) | function getRect(el, relativeToContainingBlock, relativeToNonStaticParen...
  function isScrolledPast (line 8217) | function isScrolledPast(el, elSide, parentSide) {
  function getChild (line 8234) | function getChild(el, childNum, options, includeDragEl) {
  function lastChild (line 8247) | function lastChild(el, selector) {
  function index (line 8254) | function index(el, selector) {
  function getRelativeScrollOffset (line 8266) | function getRelativeScrollOffset(el) {
  function indexOfObject (line 8277) | function indexOfObject(arr, obj) {
  function getParentAutoScrollElement (line 8288) | function getParentAutoScrollElement(el, includeSelf) {
  function extend (line 8307) | function extend(dst, src) {
  function isRectEqual (line 8317) | function isRectEqual(rect1, rect2) {
  function throttle2 (line 8321) | function throttle2(callback, ms) {
  function cancelThrottle (line 8336) | function cancelThrottle() {
  function scrollBy (line 8340) | function scrollBy(el, x, y) {
  function clone2 (line 8344) | function clone2(el) {
  function getChildContainingRectFromElement (line 8355) | function getChildContainingRectFromElement(container, options, ghostEl2) {
  function AnimationStateManager (line 8374) | function AnimationStateManager() {
  function repaint (line 8486) | function repaint(target) {
  function calculateRealTime (line 8489) | function calculateRealTime(animatingRect, fromRect, toRect, options) {
  function dispatchEvent2 (line 8573) | function dispatchEvent2(_ref) {
  function _dispatchEvent (line 8646) | function _dispatchEvent(info) {
  function toFn (line 8737) | function toFn(value, pull) {
  function Sortable (line 8811) | function Sortable(el, options) {
  function dragOverEvent (line 9279) | function dragOverEvent(name, extra) {
  function capture (line 9297) | function capture() {
  function completed (line 9304) | function completed(insertion) {
  function changed (line 9345) | function changed() {
  function _globalDragOver (line 9749) | function _globalDragOver(evt) {
  function _onMove (line 9755) | function _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, ...
  function _disableDraggable (line 9780) | function _disableDraggable(el) {
  function _unsilent (line 9783) | function _unsilent() {
  function _ghostIsFirst (line 9786) | function _ghostIsFirst(evt, vertical, sortable) {
  function _ghostIsLast (line 9792) | function _ghostIsLast(evt, vertical, sortable) {
  function _getSwapDirection (line 9798) | function _getSwapDirection(evt, target, targetRect, vertical, swapThresh...
  function _getInsertDirection (line 9826) | function _getInsertDirection(target) {
  function _generateId (line 9833) | function _generateId(el) {
  function _saveInputCheckedState (line 9840) | function _saveInputCheckedState(root) {
  function _nextTick (line 9849) | function _nextTick(fn) {
  function _cancelNextTick (line 9852) | function _cancelNextTick(id) {
  function AutoScrollPlugin (line 9911) | function AutoScrollPlugin() {
  function clearAutoScrolls (line 10000) | function clearAutoScrolls() {
  function clearPointerElemChangedInterval (line 10006) | function clearPointerElemChangedInterval() {
  function Revert (line 10088) | function Revert() {
  function Remove (line 10118) | function Remove() {
  function walk2 (line 10136) | function walk2(el, callback) {
  function src_default6 (line 10151) | function src_default6(Alpine3) {
  function generateSortHandler (line 10181) | function generateSortHandler(expression, evaluate3) {
  function getConfigurationOverrides (line 10196) | function getConfigurationOverrides(el, modifiers, evaluate3) {
  function initSortable (line 10205) | function initSortable(el, config, preferences, handle) {
  function keepElementsWithinMorphMarkers (line 10261) | function keepElementsWithinMorphMarkers(el) {
  function getGroupName (line 10271) | function getGroupName(el, modifiers) {
  function src_default7 (line 10283) | function src_default7(Alpine3) {
  function onElResize (line 10294) | function onElResize(el, callback) {
  function onDocumentResize (line 10304) | function onDocumentResize(callback) {
  function dimensions (line 10317) | function dimensions(entries) {
  function clamp (line 10346) | function clamp(start3, value, end) {
  function evaluate2 (line 10349) | function evaluate2(value, param) {
  function getSide (line 10352) | function getSide(placement) {
  function getAlignment (line 10355) | function getAlignment(placement) {
  function getOppositeAxis (line 10358) | function getOppositeAxis(axis) {
  function getAxisLength (line 10361) | function getAxisLength(axis) {
  function getSideAxis (line 10364) | function getSideAxis(placement) {
  function getAlignmentAxis (line 10367) | function getAlignmentAxis(placement) {
  function getAlignmentSides (line 10370) | function getAlignmentSides(placement, rects, rtl) {
  function getExpandedPlacements (line 10383) | function getExpandedPlacements(placement) {
  function getOppositeAlignmentPlacement (line 10387) | function getOppositeAlignmentPlacement(placement) {
  function getSideList (line 10390) | function getSideList(side, isStart, rtl) {
  function getOppositeAxisPlacements (line 10408) | function getOppositeAxisPlacements(placement, flipAlignment, direction, ...
  function getOppositePlacement (line 10419) | function getOppositePlacement(placement) {
  function expandPaddingObject (line 10422) | function expandPaddingObject(padding) {
  function getPaddingObject (line 10431) | function getPaddingObject(padding) {
  function rectToClientRect (line 10439) | function rectToClientRect(rect) {
  function computeCoordsFromPlacement (line 10448) | function computeCoordsFromPlacement(_ref, placement, rtl) {
  function detectOverflow (line 10587) | async function detectOverflow(state, options) {
  method fn (line 10648) | async fn(state) {
  function convertValueToCoords (line 10735) | async function convertValueToCoords(state, options) {
  method fn (line 10780) | async fn(state) {
  method fn (line 10801) | async fn(state) {
  function getNodeName (line 10862) | function getNodeName(node) {
  function getWindow (line 10868) | function getWindow(node) {
  function getDocumentElement (line 10872) | function getDocumentElement(node) {
  function isNode (line 10876) | function isNode(value) {
  function isElement (line 10879) | function isElement(value) {
  function isHTMLElement (line 10882) | function isHTMLElement(value) {
  function isShadowRoot (line 10885) | function isShadowRoot(value) {
  function isOverflowElement (line 10891) | function isOverflowElement(element) {
  function isTableElement (line 10900) | function isTableElement(element) {
  function isContainingBlock (line 10903) | function isContainingBlock(element) {
  function getContainingBlock (line 10908) | function getContainingBlock(element) {
  function isWebKit (line 10919) | function isWebKit() {
  function isLastTraversableNode (line 10924) | function isLastTraversableNode(node) {
  function getComputedStyle2 (line 10927) | function getComputedStyle2(element) {
  function getNodeScroll (line 10930) | function getNodeScroll(element) {
  function getParentNode (line 10942) | function getParentNode(node) {
  function getNearestOverflowAncestor (line 10949) | function getNearestOverflowAncestor(node) {
  function getOverflowAncestors (line 10959) | function getOverflowAncestors(node, list, traverseIframes) {
  function getCssDimensions (line 10975) | function getCssDimensions(element) {
  function unwrapElement (line 10993) | function unwrapElement(element) {
  function getScale (line 10996) | function getScale(element) {
  function getVisualOffsets (line 11021) | function getVisualOffsets(element) {
  function shouldAddVisualOffsets (line 11031) | function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
  function getBoundingClientRect (line 11040) | function getBoundingClientRect(element, includeScale, isFixedStrategy, o...
  function convertOffsetParentRelativeRectToViewportRelativeRect (line 11090) | function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
  function getClientRects (line 11125) | function getClientRects(element) {
  function getWindowScrollBarX (line 11128) | function getWindowScrollBarX(element) {
  function getDocumentRect (line 11131) | function getDocumentRect(element) {
  function getViewportRect (line 11149) | function getViewportRect(element, strategy) {
  function getInnerBoundingClientRect (line 11173) | function getInnerBoundingClientRect(element, strategy) {
  function getClientRectFromClippingAncestor (line 11189) | function getClientRectFromClippingAncestor(element, clippingAncestor, st...
  function hasFixedPositionAncestor (line 11207) | function hasFixedPositionAncestor(element, stopNode) {
  function getClippingElementAncestors (line 11214) | function getClippingElementAncestors(element, cache) {
  function getClippingRect (line 11240) | function getClippingRect(_ref) {
  function getDimensions (line 11265) | function getDimensions(element) {
  function getRectRelativeToOffsetParent (line 11268) | function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
  function getTrueOffsetParent (line 11297) | function getTrueOffsetParent(element, polyfill) {
  function getOffsetParent (line 11306) | function getOffsetParent(element, polyfill) {
  function isRTL (line 11337) | function isRTL(element) {
  function observeMove (line 11352) | function observeMove(element, onMove) {
  function autoUpdate (line 11420) | function autoUpdate(reference, floating, update, options) {
  function src_default8 (line 11501) | function src_default8(Alpine3) {
  function setStyles2 (line 11544) | function setStyles2(el, x, y) {
  function getOptions (line 11551) | function getOptions(modifiers) {
  function unwrap (line 11565) | function unwrap(object) {
  function batch (line 11570) | function batch(callback) {
  method constructor (line 11594) | constructor() {
  method addErrorHandler (line 11606) | addErrorHandler(key, callback) {
  method getUrl (line 11609) | getUrl() {
  method replaceState (line 11617) | replaceState(url, updates) {
  method pushState (line 11621) | pushState(url, updates) {
  method writeToHistory (line 11628) | writeToHistory(method, url, callback) {
  method constructor (line 11649) | constructor(url, html) {
  method has (line 11660) | has(location) {
  method retrieve (line 11663) | retrieve(location) {
  method replace (line 11669) | replace(key, snapshot) {
  method push (line 11676) | push(key, snapshot) {
  method trim (line 11684) | trim() {
  function storeCurrentPageStatus (line 11691) | function storeCurrentPageStatus(status) {
  function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks (line 11694) | function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {
  function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks (line 11698) | function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(ke...
  function whenTheBackOrForwardButtonIsClicked (line 11702) | function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtm...
  function updateUrlAndStoreLatestHtmlForFutureBackButtons (line 11727) | function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destinati...
  function pushUrl (line 11730) | function pushUrl(url, html) {
  function replaceUrl (line 11733) | function replaceUrl(url, html) {
  function updateUrl (line 11736) | function updateUrl(method, url, html) {
  function whenThisLinkIsPressed (line 11752) | function whenThisLinkIsPressed(el, callback) {
  function whenThisLinkIsHoveredFor (line 11786) | function whenThisLinkIsHoveredFor(el, ms = 60, callback) {
  function extractDestinationFromLink (line 11798) | function extractDestinationFromLink(linkEl) {
  function createUrlObjectFromString2 (line 11801) | function createUrlObjectFromString2(urlString) {
  function getUriStringFromUrlObject (line 11804) | function getUriStringFromUrlObject(urlObject) {
  function fetchHtml (line 11809) | function fetchHtml(destination, callback, errorCallback) {
  function performFetch (line 11816) | function performFetch(uri, callback, errorCallback) {
  function prefetchHtml (line 11823) | function prefetchHtml(destination, callback, errorCallback) {
  function storeThePrefetchedHtmlForWhenALinkIsClicked (line 11836) | function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, ...
  function getPretchedHtmlOr (line 11843) | function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {
  function packUpPersistedTeleports (line 11863) | function packUpPersistedTeleports(persistedEl) {
  function removeAnyLeftOverStaleTeleportTargets (line 11868) | function removeAnyLeftOverStaleTeleportTargets(body) {
  function unPackPersistedTeleports (line 11873) | function unPackPersistedTeleports(persistedEl) {
  function isTeleportTarget (line 11881) | function isTeleportTarget(el) {
  function storeScrollInformationInHtmlBeforeNavigatingAway (line 11886) | function storeScrollInformationInHtmlBeforeNavigatingAway() {
  function restoreScrollPositionOrScrollToTop (line 11894) | function restoreScrollPositionOrScrollToTop() {
  function storePersistantElementsForLater (line 11918) | function storePersistantElementsForLater(callback) {
  function putPersistantElementsBack (line 11928) | function putPersistantElementsBack(callback) {
  function isPersistedElement (line 11948) | function isPersistedElement(el) {
  function showAndStartProgressBar (line 11962) | function showAndStartProgressBar() {
  function finishAndHideProgressBar (line 11970) | function finishAndHideProgressBar() {
  function removeAnyLeftOverStaleProgressBars (line 11974) | function removeAnyLeftOverStaleProgressBars() {
  function injectStyles (line 11977) | function injectStyles() {
  function packUpPersistedPopovers (line 12061) | function packUpPersistedPopovers(persistedEl) {
  function unPackPersistedPopovers (line 12081) | function unPackPersistedPopovers(persistedEl) {
  function isPopoverSupported (line 12101) | function isPopoverSupported() {
  function swapCurrentPageWithNewHtml (line 12112) | function swapCurrentPageWithNewHtml(html, andThen) {
  function prepNewBodyScriptTagsToRun (line 12132) | function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) {
  function replaceHtmlAttributes (line 12144) | function replaceHtmlAttributes(newHtmlElement) {
  function mergeNewHead (line 12159) | function mergeNewHead(newHead) {
  function injectScriptTagAndWaitForItToFullyLoad (line 12202) | async function injectScriptTagAndWaitForItToFullyLoad(script) {
  function cloneScriptTag (line 12213) | function cloneScriptTag(el) {
  function isTracked (line 12222) | function isTracked(el) {
  function ifTheQueryStringChangedSinceLastRequest (line 12225) | function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {
  function extractUriAndQueryString (line 12235) | function extractUriAndQueryString(el) {
  function isAsset (line 12239) | function isAsset(el) {
  function isScript (line 12242) | function isScript(el) {
  function simpleHash (line 12245) | function simpleHash(str) {
  function ignoreAttributes (line 12251) | function ignoreAttributes(subject, attributesToRemove) {
  function navigate_default (line 12266) | function navigate_default(Alpine3) {
  function fetchHtmlOrUsePrefetchedHtml (line 12417) | function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCa...
  function preventAlpineFromPickingUpDomChanges (line 12422) | function preventAlpineFromPickingUpDomChanges(Alpine3, callback) {
  function fireEventForOtherLibrariesToHookInto (line 12431) | function fireEventForOtherLibrariesToHookInto(name, detail) {
  function nowInitializeAlpineOnTheNewPage (line 12440) | function nowInitializeAlpineOnTheNewPage(Alpine3) {
  function autofocusElementsWithTheAutofocusAttribute (line 12446) | function autofocusElementsWithTheAutofocusAttribute() {
  function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement (line 12449) | function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {
  function history (line 12464) | function history(Alpine3) {
  function track2 (line 12501) | function track2(name, initialSeedValue, alwaysShow = false, except = nul...
  function replace (line 12558) | function replace(url, key, object) {
  function push (line 12561) | function push(url, key, object) {
  function queryStringUtils (line 12564) | function queryStringUtils() {
  function stripNulls (line 12594) | function stripNulls(value) {
  function toQueryString (line 12605) | function toQueryString(data2) {
  function fromQueryString (line 12623) | function fromQueryString(search, queryKey) {
  function morph (line 12655) | function morph(from, toHtml, options) {
  function morphBetween (line 12666) | function morphBetween(startMarker, endMarker, toHtml, options = {}) {
  function createMorphContext (line 12687) | function createMorphContext(options = {}) {
  function shouldSkip (line 12939) | function shouldSkip(hook, ...args) {
  function shouldSkipChildren (line 12944) | function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {
  function createElement (line 12950) | function createElement(html) {
  function textOrComment (line 12955) | function textOrComment(el) {
  method constructor (line 12959) | constructor(start3, end) {
  method children (line 12963) | get children() {
  method appendChild (line 12972) | appendChild(child) {
  method firstChild (line 12975) | get firstChild() {
  method nextNode (line 12981) | nextNode(reference) {
  method insertBefore (line 12987) | insertBefore(newNode, reference) {
  function getFirstNode (line 12992) | function getFirstNode(parent) {
  function getNextSibling (line 12995) | function getNextSibling(parent, reference) {
  function monkeyPatchDomSetAttributeToAllowAtSymbols (line 13004) | function monkeyPatchDomSetAttributeToAllowAtSymbols() {
  function seedingMatchingId (line 13020) | function seedingMatchingId(to, from) {
  function src_default9 (line 13029) | function src_default9(Alpine3) {
  function src_default10 (line 13036) | function src_default10(Alpine3) {
  function restoreCursorPosition (line 13106) | function restoreCursorPosition(el, template, callback) {
  function stripDown (line 13120) | function stripDown(template, input) {
  function buildUp (line 13156) | function buildUp(template, input) {
  function formatMoney (line 13170) | function formatMoney(input, delimiter = ".", thousands, precision = 2) {
  function start2 (line 13212) | function start2() {
  function ensureLivewireScriptIsntMisplaced (line 13286) | function ensureLivewireScriptIsntMisplaced() {
  function registerListeners (line 13300) | function registerListeners(component, listeners2) {
  function getAlpineScopeKeys (line 13322) | function getAlpineScopeKeys(el) {
  function evaluateExpression (line 13340) | function evaluateExpression(el, expression, options = {}) {
  function evaluateActionExpression (line 13350) | function evaluateActionExpression(el, expression, options = {}) {
  function contextualizeExpression (line 13368) | function contextualizeExpression(expression, el) {
  function onlyIfScriptHasntBeenRunAlreadyForThisComponent (line 13430) | function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key,...
  function extractScriptTagContent (line 13443) | function extractScriptTagContent(rawHtml) {
  function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage (line 13449) | async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callba...
  function addAssetsToHeadTagOfPage (line 13455) | async function addAssetsToHeadTagOfPage(rawHtml) {
  function runAssetSynchronously (line 13465) | async function runAssetSynchronously(child) {
  function isScript2 (line 13482) | function isScript2(el) {
  function cloneScriptTag2 (line 13485) | function cloneScriptTag2(el) {
  function setTransitionNames (line 13522) | function setTransitionNames(root) {
  function clearTransitionNames (line 13529) | function clearTransitionNames(root) {
  function transitionDomMutation (line 13534) | async function transitionDomMutation(fromEl, toEl, callback, options = {...
  function morph2 (line 13604) | async function morph2(component, el, html) {
  function morphFragment (line 13642) | async function morphFragment(component, startNode, endNode, toHTML) {
  function getMorphConfig (line 13677) | function getMorphConfig(component) {
  function isntElement (line 13744) | function isntElement(el) {
  function isComponentRootEl (line 13747) | function isComponentRootEl(el) {
  function dispatchEvents (line 13773) | function dispatchEvents(component, dispatches) {
  function disableForm (line 13805) | function disableForm(formEl) {
  function shouldMarkDisabled (line 13823) | function shouldMarkDisabled(el) {
  function shouldMarkReadOnly (line 13845) | function shouldMarkReadOnly(el) {
  function markDisabled (line 13848) | function markDisabled(el) {
  function markReadOnly (line 13854) | function markReadOnly(el) {
  function base64toBlob (line 13882) | function base64toBlob(b64Data, contentType = "", sliceSize = 512) {
  function normalizeQueryStringEntry (line 13944) | function normalizeQueryStringEntry(key, value) {
  function forwardEvent (line 14057) | function forwardEvent(name, original) {
  function shouldRedirectUsingNavigateOr (line 14064) | function shouldRedirectUsingNavigateOr(effects, url, or) {
  function shouldHideProgressBar (line 14072) | function shouldHideProgressBar() {
  function closestIsland (line 14141) | function closestIsland(el) {
  function renderIsland (line 14148) | async function renderIsland(component, islandHtml) {
  function renderSlot (line 14182) | async function renderSlot(component, fragmentHtml) {
  function pathMatches (line 14251) | function pathMatches(hrefUrl, actualUrl, options = {}) {
  function updateNavigateLinks (line 14310) | function updateNavigateLinks() {
  method ["x-intersect" + modifierString] (line 14368) | ["x-intersect" + modifierString](e) {
  method ["x-sort:item" + modifierString] (line 14390) | ["x-sort:item" + modifierString]() {
  method [attribute] (line 14415) | [attribute]() {
  function injectStylesheet (line 14451) | function injectStylesheet(href) {
  function callAndClearComponentDebounces (line 14463) | function callAndClearComponentDebounces(component, callback) {
  method [attribute] (line 14495) | [attribute](e) {
  function applyDelay (line 14594) | function applyDelay(directive3) {
  function whenTargetsArePartOfRequest (line 14632) | function whenTargetsArePartOfRequest(component, el, targets, inverted, [...
  function whenTargetsArePartOfFileUpload (line 14669) | function whenTargetsArePartOfFileUpload(component, targets, [startLoadin...
  function containsTargets (line 14699) | function containsTargets(payload, targets) {
  function getTargets (line 14721) | function getTargets(el) {
  function quickHash (line 14741) | function quickHash(subject) {
  method get (line 14837) | get() {
  method set (line 14840) | set(value) {
  function getModifierTail (line 14850) | function getModifierTail(modifiers) {
  function isRealtimeInput (line 14869) | function isRealtimeInput(el) {
  function componentIsMissingProperty (line 14872) | function componentIsMissingProperty(component, property) {
  function debounce2 (line 14883) | function debounce2(func, wait) {
  function throttle3 (line 14895) | function throttle3(func, limit) {
  function parseModifierDuration (line 14906) | function parseModifierDuration(modifiers, key) {
  function triggerComponentRequest (line 14935) | function triggerComponentRequest(el, directive3, component) {
  function poll (line 14941) | function poll(callback, interval = 2e3) {
  function syncronizedInterval (line 14969) | function syncronizedInterval(ms, callback) {
  function livewireIsOffline (line 14989) | function livewireIsOffline() {
  function theTabIsInTheBackground (line 14996) | function theTabIsInTheBackground() {
  function theDirectiveIsOffTheElement (line 14999) | function theDirectiveIsOffTheElement(el) {
  function theDirectiveIsMissingKeepAlive (line 15002) | function theDirectiveIsMissingKeepAlive(directive3) {
  function theDirectiveHasVisible (line 15005) | function theDirectiveHasVisible(directive3) {
  function theElementIsNotInTheViewport (line 15008) | function theElementIsNotInTheViewport(el) {
  function theElementIsDisconnected (line 15012) | function theElementIsDisconnected(el) {
  function extractDurationFrom (line 15015) | function extractDurationFrom(modifiers, defaultDuration) {
  method ["x-show" + modifierString] (line 15035) | ["x-show" + modifierString]() {
  method ["x-text" + modifierString] (line 15051) | ["x-text" + modifierString]() {
  method ["x-bind" + remainder] (line 15067) | ["x-bind" + remainder]() {
  method navigate (line 15093) | get navigate() {

FILE: docs/.obsidian/plugins/obsidian-dynamic-toc/main.js
  function _ (line 1) | function _(i,e){let t=Object.assign({},e,i);return Object.keys(t).reduce...
  function N (line 1) | function N(i,e){try{let t=(0,H.parseYaml)(i);return _(t,e)}catch(t){retu...
  method constructor (line 1) | constructor(e){this.cached=e}
  method level (line 1) | get level(){return this.cached.level}
  method rawHeading (line 1) | get rawHeading(){return this.cached.heading}
  method isLink (line 1) | get isLink(){return/\[\[(.*?)\]\]/.test(this.cached.heading)}
  method href (line 1) | get href(){return this.isLink?`#${this.parseMarkdownLink(this.rawHeading...
  method markdownHref (line 1) | get markdownHref(){if(!this.isLink)return`[[#${this.rawHeading}]]`;let t...
  method parseMarkdownLink (line 1) | parseMarkdownLink(e){let[,t]=e.match(/\[\[(.*?)]\]/)||[];return t}
  function T (line 1) | function T(i,e){if(!(i==null?void 0:i.headings))return"";let{headings:t}...
  function G (line 1) | function G(i,e,t){let n=t.style==="number"&&"1."||"-";return!t.varied_st...
  function U (line 1) | function U(i,e){let t=i[0].level,n=[];e.title&&n.push(`${e.title}`);let ...
  function J (line 2) | function J(i,e){let t=i.map(a=>a.level).reduce((a,d)=>Math.min(a,d)),n=i...
  method constructor (line 2) | constructor(e,t,n,s){super(s);this.app=e;this.config=t;this.filePath=n;t...
  method onload (line 2) | onload(){return r(this,null,function*(){yield this.render(),this.registe...
  method render (line 2) | render(e){return r(this,null,function*(){this.container.empty(),this.con...
  method constructor (line 2) | constructor(e,t){super(e,t);this.plugin=t}
  method display (line 2) | display(){let{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"Dynam...
  method constructor (line 2) | constructor(e,t,n,s,a){super(s);this.app=e;this.settings=t;this.filePath...
  method findMatch (line 2) | static findMatch(e,t){return Array.from(e.querySelectorAll("p, span, a")...
  method onload (line 2) | onload(){return r(this,null,function*(){this.render(),this.registerEvent...
  method render (line 2) | render(){return r(this,null,function*(){let e=T(this.app.metadataCache.g...
  method constructor (line 2) | constructor(e,t){super(e);this.app=e,this.plugin=t,this.setPlaceholder("...
  method getItems (line 2) | getItems(){return this.plugin.settings.supportAllMatchers?Object.keys(E)...
  method getItemText (line 2) | getItemText(e){let t=Object.keys(E).find(n=>n===e);return E[t].label}
  method onChooseItem (line 2) | onChooseItem(e){this.callback(E[e].value)}
  method start (line 2) | start(e){this.callback=e,this.open()}
  method constructor (line 2) | constructor(){super(...arguments);this.onload=()=>r(this,null,function*(...

FILE: docs/.obsidian/plugins/obsidian-editor-shortcuts/main.js
  method constructor (line 840) | constructor(app, plugin) {
  method display (line 844) | display() {
  method constructor (line 865) | constructor(app, lineCount, onSubmit) {
  method getSuggestions (line 874) | getSuggestions(line) {
  method renderSuggestion (line 881) | renderSuggestion(line, el) {
  method onChooseSuggestion (line 884) | onChooseSuggestion(line) {
  method onload (line 891) | onload() {
  method registerSelectionChangeListeners (line 1198) | registerSelectionChangeListeners() {
  method loadSettings (line 1216) | loadSettings() {
  method saveSettings (line 1223) | saveSettings() {

FILE: docs/.obsidian/plugins/obsidian-languagetool-plugin/main.js
  function o (line 1) | function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}
  function s (line 1) | function s(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a...
  class u (line 1) | class u extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>...
    method constructor (line 1) | constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeE...
    method _emitEvictions (line 1) | _emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]...
    method _deleteIfExpired (line 1) | _deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date....
    method _getOrDeleteIfExpired (line 1) | _getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t...
    method _getItemValue (line 1) | _getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.v...
    method _peek (line 1) | _peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}
    method _set (line 1) | _set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(...
    method _moveToRecent (line 1) | _moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}
    method _entriesAscending (line 1) | *_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!th...
    method get (line 1) | get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._ge...
    method set (line 1) | set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Num...
    method has (line 1) | has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.ge...
    method peek (line 1) | peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCach...
    method delete (line 1) | delete(e){const t=this.cache.delete(e);return t&&this._size--,this.old...
    method clear (line 1) | clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}
    method resize (line 1) | resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number...
    method keys (line 1) | *keys(){for(const[e]of this)yield e}
    method values (line 1) | *values(){for(const[,e]of this)yield e}
    method entriesDescending (line 1) | *entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;-...
    method entriesAscending (line 1) | *entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,...
    method size (line 1) | get size(){if(!this._size)return this.oldCache.size;let e=0;for(const ...
    method entries (line 1) | entries(){return this.entriesAscending()}
    method forEach (line 1) | forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,...
  method [Symbol.iterator] (line 1) | *[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._...
  method [Symbol.toStringTag] (line 1) | get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscendin...
  function c (line 1) | function c(e){var t={exports:{}};return e(t,t.exports),t.exports}
  function r (line 1) | function r(e,t,r=n){const i=[];return function e(n){const o=r.annotatete...
  function i (line 1) | function i(e,t,r=n){const i=[];let o={offset:{end:0,start:0}};for(const ...
  function n (line 1) | function n(e){for(var t,n,r,i,o=1,a=[].slice.call(arguments),s=0,u=e.len...
  function h (line 1) | function h(e){return t.displayName=e.displayName||e.name,t;function t(t)...
  function y (line 1) | function y(e){var t=e;if("string"==typeof t){if(!m.call(v,t))throw p("Mi...
  function x (line 1) | function x(e){var t,n=e.type,r=e.anywhere,i=n+"Value",o=n+"Fence",a=o+"S...
  function b (line 1) | function b(e,t){var n;return e.marker?(n=w(e.marker,t))+n+n:w(e.fence,t)}
  function w (line 1) | function w(e,t){return"string"==typeof e?e:e[t]}
  function C (line 1) | function C(e){return function(t){this.enter({type:e.type,value:""},t),th...
  function A (line 1) | function A(e){var t=this.resume();this.exit(e).value=t.replace(/^(\r?\n|...
  function T (line 1) | function T(e){this.config.enter.data.call(this,e),this.config.exit.data....
  function D (line 1) | function D(e){var t=L(e,"open"),n=L(e,"close");return function(e){return...
  function L (line 1) | function L(e,t){var n;return e.marker?(n=F(e.marker,t))+n+n:F(e.fence,t)}
  function F (line 1) | function F(e,t){return"string"==typeof e?e:e[t]}
  function n (line 1) | function n(e,n){t[e]?t[e].push(n):t[e]=[n]}
  function R (line 1) | function R(e){return e&&(e.value||e.alt||e.title||"children"in e&&O(e.ch...
  function O (line 1) | function O(e){for(var t=[],n=-1;++n<e.length;)t[n]=R(e[n]);return t.join...
  function a (line 1) | function a(r){return U(r)&&o++<i?(e.consume(r),a):(e.exit(n),t(r))}
  function r (line 1) | function r(n){var r=e.enter("chunkText",{contentType:"text",previous:t})...
  function i (line 1) | function i(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),v...
  function s (line 1) | function s(r){return a<o.length?(i.containerState=o[a][1],e.attempt(o[a]...
  function u (line 1) | function u(e){return a++,i.containerState._closeFlow?f(e):s(e)}
    method constructor (line 1) | constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeE...
    method _emitEvictions (line 1) | _emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]...
    method _deleteIfExpired (line 1) | _deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date....
    method _getOrDeleteIfExpired (line 1) | _getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t...
    method _getItemValue (line 1) | _getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.v...
    method _peek (line 1) | _peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}
    method _set (line 1) | _set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(...
    method _moveToRecent (line 1) | _moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}
    method _entriesAscending (line 1) | *_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!th...
    method get (line 1) | get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._ge...
    method set (line 1) | set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Num...
    method has (line 1) | has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.ge...
    method peek (line 1) | peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCach...
    method delete (line 1) | delete(e){const t=this.cache.delete(e);return t&&this._size--,this.old...
    method clear (line 1) | clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}
    method resize (line 1) | resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number...
    method keys (line 1) | *keys(){for(const[e]of this)yield e}
    method values (line 1) | *values(){for(const[,e]of this)yield e}
    method entriesDescending (line 1) | *entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;-...
    method entriesAscending (line 1) | *entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,...
    method size (line 1) | get size(){if(!this._size)return this.oldCache.size;let e=0;for(const ...
    method entries (line 1) | entries(){return this.entriesAscending()}
    method forEach (line 1) | forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,...
  function c (line 1) | function c(t){return n.currentConstruct&&n.currentConstruct.lazy?(i.cont...
  function l (line 1) | function l(e){return a=o.length,t.lazy=!0,t.flowContinue=!0,d(e)}
  function f (line 1) | function f(e){return t.flowEnd=!0,d(e)}
  function d (line 1) | function d(e){return t.continued=a,i.interrupt=i.containerState=void 0,r...
  function u (line 1) | function u(t){return a<o.length?(i.containerState=o[a][1],e.attempt(o[a]...
    method constructor (line 1) | constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeE...
    method _emitEvictions (line 1) | _emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]...
    method _deleteIfExpired (line 1) | _deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date....
    method _getOrDeleteIfExpired (line 1) | _getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t...
    method _getItemValue (line 1) | _getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.v...
    method _peek (line 1) | _peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}
    method _set (line 1) | _set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(...
    method _moveToRecent (line 1) | _moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}
    method _entriesAscending (line 1) | *_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!th...
    method get (line 1) | get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._ge...
    method set (line 1) | set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Num...
    method has (line 1) | has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.ge...
    method peek (line 1) | peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCach...
    method delete (line 1) | delete(e){const t=this.cache.delete(e);return t&&this._size--,this.old...
    method clear (line 1) | clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}
    method resize (line 1) | resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number...
    method keys (line 1) | *keys(){for(const[e]of this)yield e}
    method values (line 1) | *values(){for(const[,e]of this)yield e}
    method entriesDescending (line 1) | *entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;-...
    method entriesAscending (line 1) | *entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,...
    method size (line 1) | get size(){if(!this._size)return this.oldCache.size;let e=0;for(const ...
    method entries (line 1) | entries(){return this.entriesAscending()}
    method forEach (line 1) | forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,...
  function c (line 1) | function c(e){return a++,u(e)}
  function l (line 1) | 
Condensed preview — 1057 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,531K chars).
[
  {
    "path": ".claude/rules/adding-features.md",
    "chars": 8207,
    "preview": "# Adding Features to Livewire\n\n## Feature Categories\n\nFeatures fall on a spectrum:\n\n1. **Pure JavaScript** - Like a `wir"
  },
  {
    "path": ".claude/rules/general.md",
    "chars": 245,
    "preview": "# General\n\n- Always verify the current branch before committing. Run `git branch` and confirm you're on the right branch"
  },
  {
    "path": ".claude/rules/reviewing-prs.md",
    "chars": 510,
    "preview": "# Reviewing PRs\n\n- Before accepting docs or workaround PRs, ask: \"Could a code change eliminate the need for this workar"
  },
  {
    "path": ".claude/rules/writing-docs.md",
    "chars": 597,
    "preview": "# Writing Documentation\n\n- Handler methods use the `handle` prefix (e.g. `handleSort`, not `sort` or `sortItem`)\n- Alway"
  },
  {
    "path": ".claude/skills/review-pr/SKILL.md",
    "chars": 14439,
    "preview": "---\nname: review-pr\ndescription: Review an open PR like a maintainer — checkout, fix issues, push changes, post a struct"
  },
  {
    "path": ".claude/skills/summarize-activity/SKILL.md",
    "chars": 6446,
    "preview": "---\nname: summarize-activity\ndescription: Summarize recent GitHub activity — discussions, PRs, issues, events, traffic —"
  },
  {
    "path": ".claude/skills/test/SKILL.md",
    "chars": 173,
    "preview": "---\nname: test\ndescription: Say hello. Used for testing tooling.\ndisable-model-invocation: true\nallowed-tools: Bash\n---\n"
  },
  {
    "path": ".editorconfig",
    "chars": 213,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_"
  },
  {
    "path": ".gitattributes",
    "chars": 1246,
    "preview": "# Path-based git attributes\n# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html\n\n# Ignore all test and"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 149,
    "preview": "Please see the [Contribution Guide on the Livewire docs](https://livewire.laravel.com/docs/contribution-guide)\nfor info "
  },
  {
    "path": ".github/DISCUSSION_TEMPLATE/1-help.yml",
    "chars": 3711,
    "preview": "body:\n  - type: markdown\n    attributes:\n      value: |\n        Hi there! 👋\n\n        Thank you for using Livewire!\n\n    "
  },
  {
    "path": ".github/DISCUSSION_TEMPLATE/5-bugs.yml",
    "chars": 3406,
    "preview": "body:\n  - type: markdown\n    attributes:\n      value: |\n        Hi there! 👋\n\n        Thank you for using Livewire!\n\n    "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 66,
    "preview": "# These are supported funding model platforms\n\ngithub: [livewire]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 657,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Get help or ask a question\n    url: https://github.com/livewire/liv"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 549,
    "preview": "Review the contribution guide first at: https://livewire.laravel.com/docs/contribution-guide\n\n1️⃣ Is this something that"
  },
  {
    "path": ".github/SECURITY.md",
    "chars": 295,
    "preview": "# Security Policy\n\n**PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY.**\n\n## Reporting a Vulnerability\n\nIf you dis"
  },
  {
    "path": ".github/scripts/get-browser-test-shard.php",
    "chars": 1276,
    "preview": "<?php\n/**\n * Distributes browser test files across shards using greedy bin-packing.\n * Usage: php get-browser-test-shard"
  },
  {
    "path": ".github/workflows/claude.yml",
    "chars": 3738,
    "preview": "name: Claude Code\n\non:\n  issue_comment:\n    types: [created]\n  pull_request_review_comment:\n    types: [created]\n  issue"
  },
  {
    "path": ".github/workflows/test-main.yml",
    "chars": 9110,
    "preview": "name: Test Main\n\non:\n  push:\n    branches:\n      - main\n    paths-ignore:\n      - \"docs/**\"\n      - \"README.md\"\n\nenv:\n  "
  },
  {
    "path": ".github/workflows/test-prs.yml",
    "chars": 8181,
    "preview": "name: Test PRs\n\non:\n  pull_request:\n    types: [ready_for_review, synchronize, opened]\n    paths-ignore:\n      - \"docs/*"
  },
  {
    "path": ".gitignore",
    "chars": 433,
    "preview": "/vendor/\n/node_modules/\n_runtime_components.json\nSCRATCH.md\nCOMMIT_MSG.aim.txt\ncomposer.lock\n.phpunit.cache/\n.phpunit.re"
  },
  {
    "path": ".prettierrc",
    "chars": 93,
    "preview": "{\n    \"tabWidth\": 4,\n    \"semi\": false,\n    \"singleQuote\": true,\n    \"arrowParens\": \"avoid\"\n}"
  },
  {
    "path": ".styleci.yml",
    "chars": 16,
    "preview": "preset: laravel\n"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 523,
    "preview": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n"
  },
  {
    "path": "CLAUDE.md",
    "chars": 1938,
    "preview": "# Project Overview\n\nLivewire is a full-stack framework for Laravel. It allows you to build dynamic front-end application"
  },
  {
    "path": "LICENSE.md",
    "chars": 1074,
    "preview": "## MIT License\r\n\r\nCopyright © Caleb Porzio\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "PRD-wire-model-modifiers.md",
    "chars": 9417,
    "preview": "# wire:model Modifier Layering PRD\n\n## Problem\n\n`wire:model` modifiers (`.blur`, `.change`, `.debounce`) only control ne"
  },
  {
    "path": "README.md",
    "chars": 1588,
    "preview": "<p align=\"center\"><img width=\"300\" src=\"/art/logo.svg\" alt=\"Livewire Logo\"></p>\n\n<p align=\"center\">\n    <a href=\"https:/"
  },
  {
    "path": "close.bash",
    "chars": 680,
    "preview": "#!/bin/bash\n\nosascript -e 'tell application \"System Events\"\n        tell process \"Code\"\n            set frontWindow to t"
  },
  {
    "path": "composer.json",
    "chars": 1499,
    "preview": "{\n  \"name\": \"livewire/livewire\",\n  \"description\": \"A front-end framework for Laravel.\",\n  \"license\": \"MIT\",\n  \"authors\":"
  },
  {
    "path": "config/livewire.php",
    "chars": 11036,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |---------------------------------------------------------------------------\n    | Component"
  },
  {
    "path": "dist/livewire.csp.esm.js",
    "chars": 586318,
    "preview": "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescrip"
  },
  {
    "path": "dist/livewire.csp.js",
    "chars": 602371,
    "preview": "(() => {\n  var __create = Object.create;\n  var __defProp = Object.defineProperty;\n  var __getOwnPropDesc = Object.getOwn"
  },
  {
    "path": "dist/livewire.esm.js",
    "chars": 557215,
    "preview": "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescrip"
  },
  {
    "path": "dist/livewire.js",
    "chars": 525357,
    "preview": "(() => {\n  var __create = Object.create;\n  var __defProp = Object.defineProperty;\n  var __getOwnPropDesc = Object.getOwn"
  },
  {
    "path": "dist/manifest.json",
    "chars": 29,
    "preview": "\n{\"/livewire.js\":\"8f29b734\"}\n"
  },
  {
    "path": "docs/.obsidian/app.json",
    "chars": 88,
    "preview": "{\n  \"vimMode\": true,\n  \"newFileLocation\": \"current\",\n  \"useTab\": false,\n  \"tabSize\": 4\n}"
  },
  {
    "path": "docs/.obsidian/appearance.json",
    "chars": 65,
    "preview": "{\n  \"accentColor\": \"\",\n  \"cssTheme\": \"\",\n  \"theme\": \"moonstone\"\n}"
  },
  {
    "path": "docs/.obsidian/community-plugins.json",
    "chars": 93,
    "preview": "[\n  \"obsidian-languagetool-plugin\",\n  \"obsidian-dynamic-toc\",\n  \"obsidian-editor-shortcuts\"\n]"
  },
  {
    "path": "docs/.obsidian/core-plugins-migration.json",
    "chars": 633,
    "preview": "{\n  \"file-explorer\": true,\n  \"global-search\": true,\n  \"switcher\": true,\n  \"graph\": true,\n  \"backlink\": true,\n  \"canvas\":"
  },
  {
    "path": "docs/.obsidian/core-plugins.json",
    "chars": 296,
    "preview": "[\n  \"file-explorer\",\n  \"global-search\",\n  \"switcher\",\n  \"graph\",\n  \"backlink\",\n  \"canvas\",\n  \"outgoing-link\",\n  \"tag-pan"
  },
  {
    "path": "docs/.obsidian/hotkeys.json",
    "chars": 1146,
    "preview": "{\n  \"app:open-vault\": [\n    {\n      \"modifiers\": [\n        \"Mod\"\n      ],\n      \"key\": \";\"\n    }\n  ],\n  \"command-palette"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-dynamic-toc/main.js",
    "chars": 10738,
    "preview": "var W=Object.create;var m=Object.defineProperty,j=Object.defineProperties,F=Object.getOwnPropertyDescriptor,B=Object.get"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-dynamic-toc/manifest.json",
    "chars": 319,
    "preview": "{\n  \"id\": \"obsidian-dynamic-toc\",\n  \"name\": \"Dynamic Table of Contents\",\n  \"author\": \"aidurber\",\n  \"description\": \"An Ob"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-dynamic-toc/styles.css",
    "chars": 336,
    "preview": ".is-live-preview .dynamic-toc>*{margin-top:0;margin-bottom:0}.is-live-preview .dynamic-toc>* br{display:none}.is-live-pr"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-editor-shortcuts/main.js",
    "chars": 39404,
    "preview": "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __get"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-editor-shortcuts/manifest.json",
    "chars": 399,
    "preview": "{\n  \"id\": \"obsidian-editor-shortcuts\",\n  \"name\": \"Code Editor Shortcuts\",\n  \"version\": \"1.13.0\",\n  \"minAppVersion\": \"1.1"
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-languagetool-plugin/main.js",
    "chars": 126848,
    "preview": "\"use strict\";var e=require(\"obsidian\"),t=require(\"path\"),n=require(\"@codemirror/view\"),r=require(\"@codemirror/state\"),i="
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-languagetool-plugin/manifest.json",
    "chars": 277,
    "preview": "{\n\t\"id\": \"obsidian-languagetool-plugin\",\n\t\"name\": \"LanguageTool Integration\",\n\t\"version\": \"0.3.3\",\n\t\"minAppVersion\": \"0."
  },
  {
    "path": "docs/.obsidian/plugins/obsidian-languagetool-plugin/styles.css",
    "chars": 2758,
    "preview": ".lt-underline {\n  cursor: pointer;\n  transition: background-color 100ms ease-out;\n}\n\n.lt-underline.lt-minor {\n  box-shad"
  },
  {
    "path": "docs/AGENTS.md",
    "chars": 21925,
    "preview": "# Documentation Guide for LLMs\n\nThis guide provides instructions for AI assistants on how to write and edit Livewire v4 "
  },
  {
    "path": "docs/__nav.md",
    "chars": 5789,
    "preview": "---\nGetting Started:\n    Quickstart: { uri: /docs/4.x/quickstart, file: /quickstart.md }\n    Installation: { uri: /docs/"
  },
  {
    "path": "docs/__outline.md",
    "chars": 5718,
    "preview": "\nShould I ditch the terms \"hydrate\" and \"dehydrate\"? Hydrate is normally used for hydrating frontend behavior from a fro"
  },
  {
    "path": "docs/actions.md",
    "chars": 43426,
    "preview": "Livewire actions are methods on your component that can be triggered by frontend interactions like clicking a button or "
  },
  {
    "path": "docs/alpine.md",
    "chars": 12384,
    "preview": "\n[AlpineJS](https://alpinejs.dev/) is a lightweight JavaScript library that makes it easy to add client-side interactivi"
  },
  {
    "path": "docs/attribute-async.md",
    "chars": 3588,
    "preview": "The `#[Async]` attribute allows actions to run in parallel without being queued, making them execute immediately even if"
  },
  {
    "path": "docs/attribute-computed.md",
    "chars": 4979,
    "preview": "The `#[Computed]` attribute allows you to create derived properties that are cached during a request, providing a perfor"
  },
  {
    "path": "docs/attribute-defer.md",
    "chars": 4028,
    "preview": "The `#[Defer]` attribute makes a component load immediately after the initial page load is complete, preventing slow com"
  },
  {
    "path": "docs/attribute-isolate.md",
    "chars": 3592,
    "preview": "The `#[Isolate]` attribute prevents a component's requests from being bundled with other component updates, allowing it "
  },
  {
    "path": "docs/attribute-js.md",
    "chars": 3554,
    "preview": "The `#[Js]` attribute designates methods that return JavaScript code to be executed on the client-side. Methods marked w"
  },
  {
    "path": "docs/attribute-json.md",
    "chars": 3847,
    "preview": "The `#[Json]` attribute marks an action as a JSON endpoint, returning data directly to JavaScript. Validation errors tri"
  },
  {
    "path": "docs/attribute-layout.md",
    "chars": 3374,
    "preview": "The `#[Layout]` attribute specifies which Blade layout a full-page component should use, allowing you to customize layou"
  },
  {
    "path": "docs/attribute-lazy.md",
    "chars": 4107,
    "preview": "The `#[Lazy]` attribute makes a component load only when it becomes visible in the viewport, preventing slow components "
  },
  {
    "path": "docs/attribute-locked.md",
    "chars": 3064,
    "preview": "The `#[Locked]` attribute prevents properties from being modified on the client-side, protecting sensitive data like mod"
  },
  {
    "path": "docs/attribute-modelable.md",
    "chars": 4552,
    "preview": "The `#[Modelable]` attribute designates a property in a child component that can be bound to from a parent component usi"
  },
  {
    "path": "docs/attribute-on.md",
    "chars": 4897,
    "preview": "The `#[On]` attribute allows a component to listen for events and execute a method when those events are dispatched.\n\n##"
  },
  {
    "path": "docs/attribute-reactive.md",
    "chars": 4092,
    "preview": "The `#[Reactive]` attribute makes a child component's property automatically update when the parent changes the value be"
  },
  {
    "path": "docs/attribute-renderless.md",
    "chars": 2512,
    "preview": "The `#[Renderless]` attribute skips the rendering phase of Livewire's lifecycle when an action is called, improving perf"
  },
  {
    "path": "docs/attribute-session.md",
    "chars": 5676,
    "preview": "The `#[Session]` attribute persists a property's value in the user's session, maintaining it across page refreshes and n"
  },
  {
    "path": "docs/attribute-title.md",
    "chars": 4683,
    "preview": "The `#[Title]` attribute sets the page title for full-page Livewire components.\n\n## Basic usage\n\nApply the `#[Title]` at"
  },
  {
    "path": "docs/attribute-transition.md",
    "chars": 3091,
    "preview": "The `#[Transition]` attribute configures view transition behavior for action methods, allowing you to set transition typ"
  },
  {
    "path": "docs/attribute-url.md",
    "chars": 7127,
    "preview": "The `#[Url]` attribute stores a property's value in the URL's query string, allowing users to share and bookmark specifi"
  },
  {
    "path": "docs/attribute-validate.md",
    "chars": 7805,
    "preview": "The `#[Validate]` attribute associates validation rules with component properties, enabling automatic real-time validati"
  },
  {
    "path": "docs/best-practices.md",
    "chars": 100,
    "preview": "* Start with extracting a Blade component first, then only do a Livewire component if you need to\n* "
  },
  {
    "path": "docs/blade-components.md",
    "chars": 1332,
    "preview": "\n```blade\n<form wire:submit=\"save\">\n    <label>\n        <span>Title</span>\n\n        <input type=\"text\" wire:model=\"title"
  },
  {
    "path": "docs/bundling.md",
    "chars": 2382,
    "preview": "Every component update in Livewire triggers a network request. By default, when multiple components trigger updates at t"
  },
  {
    "path": "docs/component-hooks.md",
    "chars": 3679,
    "preview": "## Global Component Hooks\n\nIn cases where you want to add features or behavior to every single component in your applica"
  },
  {
    "path": "docs/components.md",
    "chars": 19528,
    "preview": "Livewire components are essentially PHP classes with properties and methods that can be called directly from a Blade tem"
  },
  {
    "path": "docs/computed-properties.md",
    "chars": 13728,
    "preview": "Computed properties are a way to create \"derived\" properties in Livewire. Like accessors on an Eloquent model, computed "
  },
  {
    "path": "docs/contribution-guide.md",
    "chars": 8575,
    "preview": "Hi there and welcome to the Livewire contribution guide. In this guide, we are going to take a look at how you can contr"
  },
  {
    "path": "docs/csp.md",
    "chars": 6269,
    "preview": "# CSP (Content Security Policy) Build\n\nLivewire offers a CSP-safe build that allows you to use Livewire applications in "
  },
  {
    "path": "docs/directive-island.md",
    "chars": 3186,
    "preview": "The `@island` directive creates isolated regions within a component that update independently, without re-rendering the "
  },
  {
    "path": "docs/directive-persist.md",
    "chars": 3432,
    "preview": "The `@persist` directive preserves elements across page navigations when using `wire:navigate`, maintaining their state "
  },
  {
    "path": "docs/directive-placeholder.md",
    "chars": 2381,
    "preview": "The `@placeholder` directive displays custom content while lazy or deferred components and islands are loading.\n\n## Basi"
  },
  {
    "path": "docs/directive-teleport.md",
    "chars": 3352,
    "preview": "The `@teleport` directive renders a portion of your template in a different location in the DOM, outside the component's"
  },
  {
    "path": "docs/dirty.md",
    "chars": 3025,
    "preview": "\nIn a traditional HTML page containing a form, the form is only ever submitted when the user presses the \"Submit\" button"
  },
  {
    "path": "docs/downloads.md",
    "chars": 2658,
    "preview": "\nFile downloads in Livewire work much the same as in Laravel itself. Typically, you can use any Laravel download utility"
  },
  {
    "path": "docs/events.md",
    "chars": 19905,
    "preview": "Livewire offers a robust event system that you can use to communicate between different components on the page. Because "
  },
  {
    "path": "docs/forms.md",
    "chars": 26343,
    "preview": "Because forms are the backbone of most web applications, Livewire provides loads of helpful utilities for building them."
  },
  {
    "path": "docs/how-livewire-works.md",
    "chars": 3561,
    "preview": "\n* The component\n    * Counter component\n* Rendering the component\n    * Mount\n        * New up class\n        * Dehydrat"
  },
  {
    "path": "docs/hydration.md",
    "chars": 8290,
    "preview": "\nUsing Livewire feels like attaching a server-side PHP class directly to a web browser. Things like calling server-side "
  },
  {
    "path": "docs/installation.md",
    "chars": 10545,
    "preview": "Livewire is a Laravel package, so you will need to have a Laravel application up and running before you can install and "
  },
  {
    "path": "docs/islands.md",
    "chars": 11147,
    "preview": "Islands allow you to create isolated regions within a Livewire component that update independently. When an action occur"
  },
  {
    "path": "docs/javascript.md",
    "chars": 32337,
    "preview": "\n## Using JavaScript in Livewire components\n\nLivewire and Alpine provide plenty of utilities for building dynamic compon"
  },
  {
    "path": "docs/lazy.md",
    "chars": 12382,
    "preview": "Livewire allows you to lazy load components that would otherwise slow down the initial page load.\n\n## Lazy vs Defer\n\nLiv"
  },
  {
    "path": "docs/lifecycle-hooks.md",
    "chars": 15090,
    "preview": "Livewire provides a variety of lifecycle hooks that allow you to execute code at specific points during a component's li"
  },
  {
    "path": "docs/loading-states.md",
    "chars": 6416,
    "preview": "\nWhen a user interacts with your Livewire components, providing visual feedback during network requests is essential for"
  },
  {
    "path": "docs/locked.md",
    "chars": 2793,
    "preview": "Livewire properties are able to be modified freely on both the frontend and backend using utilities like `wire:model`. I"
  },
  {
    "path": "docs/morph.md",
    "chars": 8291,
    "preview": "\nWhen a Livewire component updates the browser's DOM, it does so in an intelligent way we call \"morphing\". The term _mor"
  },
  {
    "path": "docs/navigate.md",
    "chars": 18146,
    "preview": "\nMany modern web applications are built as \"single page applications\" (SPAs). In these applications, each page rendered "
  },
  {
    "path": "docs/nesting.md",
    "chars": 29714,
    "preview": "\nLivewire allows you to nest additional Livewire components inside of a parent component. This feature is immensely powe"
  },
  {
    "path": "docs/offline.md",
    "chars": 1255,
    "preview": "In real-time applications, it can be helpful to provide a visual indication that the user's device is no longer connecte"
  },
  {
    "path": "docs/packages.md",
    "chars": 1732,
    "preview": "To include Livewire components in a Laravel package, you'll need to register them in your package's service provider.\n\n#"
  },
  {
    "path": "docs/pages.md",
    "chars": 6890,
    "preview": "\nLivewire components can be used as entire pages by assigning them directly to routes. This allows you to build complete"
  },
  {
    "path": "docs/pagination.md",
    "chars": 13996,
    "preview": "Laravel's pagination feature allows you to query a subset of data and provides your users with the ability to navigate b"
  },
  {
    "path": "docs/polling.md",
    "chars": 2940,
    "preview": "Polling is a technique used in web applications to \"poll\" the server (send regular requests) for updates. It's a simple "
  },
  {
    "path": "docs/properties.md",
    "chars": 24029,
    "preview": "Properties store and manage state inside your Livewire components. They are defined as public properties on component cl"
  },
  {
    "path": "docs/quickstart.md",
    "chars": 7879,
    "preview": "\nLivewire allows you to build dynamic, reactive interfaces using only PHP—no JavaScript required. Instead of writing fro"
  },
  {
    "path": "docs/redirecting.md",
    "chars": 4279,
    "preview": "After a user performs some action — like submitting a form — you may want to redirect them to another page in your appli"
  },
  {
    "path": "docs/rules/Casing rules.md",
    "chars": 99,
    "preview": "Title case: \"This Is A Title\"\nSentance case: \"This is a sentance.\"\nBullet case: \"This is a bullet\"\n"
  },
  {
    "path": "docs/rules/Referencing file names in a sentance.md",
    "chars": 367,
    "preview": "A: \"When run, Livewire will create a new file in your app, `app/Livewire/CreatePost.php`, with the following contents:\"\n"
  },
  {
    "path": "docs/rules/examples.md",
    "chars": 63,
    "preview": "\n* CreatePost\n* UpdatePost\n* ShowPosts\n* SearchPosts\n* TodoList"
  },
  {
    "path": "docs/rules/questions.md",
    "chars": 73,
    "preview": "* What to use as a dummy URL: \n    * ? `https://application.test/?page=2`"
  },
  {
    "path": "docs/rules/rules.md",
    "chars": 1584,
    "preview": "> When do you start a file with \"< ?php\"\n\n> Always use tailwind in examples?  \n\n> Use active voice.\n\n> Use second-person"
  },
  {
    "path": "docs/security.md",
    "chars": 12257,
    "preview": "It's important to make sure your Livewire apps are secure and don't expose any application vulnerabilities. Livewire has"
  },
  {
    "path": "docs/session-properties.md",
    "chars": 3080,
    "preview": "\nLivewire makes it easy to persist property values across page refreshes/changes using the `#[Session]` attribute.\n\nBy a"
  },
  {
    "path": "docs/styles.md",
    "chars": 4906,
    "preview": "Livewire allows you to include component-specific styles directly in your single-file and multi-file components. These s"
  },
  {
    "path": "docs/synthesizers.md",
    "chars": 6783,
    "preview": "\nBecause Livewire components are dehydrated (serialized) into JSON, then hydrated (unserialized) back into PHP component"
  },
  {
    "path": "docs/teleport.md",
    "chars": 2066,
    "preview": "Livewire allows you to _teleport_ part of your template to another part of the DOM on the page entirely.\n\nThis is useful"
  },
  {
    "path": "docs/testing.md",
    "chars": 22330,
    "preview": "\nLivewire components are simple to test. Because they are just Laravel classes under the hood, they can be tested using "
  },
  {
    "path": "docs/the-livewire-protocol.md",
    "chars": 584,
    "preview": "```json\n{\n    \"data\": [\n        \"todos\": [[], [\"s\": \"array\"]],\n    ],\n    \"memo\": {\n        \"id\": \"...\",\n        \"name\":"
  },
  {
    "path": "docs/troubleshooting.md",
    "chars": 5015,
    "preview": "Here at Livewire HQ, we try to remove problems from your pathway before you hit them. However, sometimes, there are some"
  },
  {
    "path": "docs/understanding-nesting.md",
    "chars": 7101,
    "preview": "\nLike many other component-based frameworks, Livewire components are nestable — meaning one component can render multipl"
  },
  {
    "path": "docs/undocumented-features-todo.md",
    "chars": 3068,
    "preview": "# Undocumented Features Found During v4 Upgrade Guide\n\nThese features exist in v4 but may need dedicated documentation p"
  },
  {
    "path": "docs/upgrade-guide-scratch-file.md",
    "chars": 7506,
    "preview": "im throwing up this doc but the structure and content isn't truth, just my exhuastive notes after reviewing the full dif"
  },
  {
    "path": "docs/upgrading.md",
    "chars": 24686,
    "preview": "Livewire v4 introduces several improvements and optimizations while maintaining backward compatibility wherever possible"
  },
  {
    "path": "docs/uploads.md",
    "chars": 16345,
    "preview": "Livewire offers powerful support for uploading files within your components.\n\nFirst, add the `WithFileUploads` trait to "
  },
  {
    "path": "docs/url.md",
    "chars": 8286,
    "preview": "Livewire allows you to store component properties in the URL's query string. For example, you may want a `$search` prope"
  },
  {
    "path": "docs/validation.md",
    "chars": 22513,
    "preview": "Livewire aims to make validating a user's input and giving them feedback as pleasant as possible. By building on top of "
  },
  {
    "path": "docs/volt.md",
    "chars": 23218,
    "preview": "> [!warning] Volt is optional in Livewire v4\n> Livewire v4 includes single-file components out of the box, and most appl"
  },
  {
    "path": "docs/wire-bind.md",
    "chars": 1184,
    "preview": "\n`wire:bind` is a directive that dynamically binds HTML attributes to component properties or expressions. Unlike using "
  },
  {
    "path": "docs/wire-click.md",
    "chars": 3783,
    "preview": "\nLivewire provides a simple `wire:click` directive for calling component methods (aka actions) when a user clicks a spec"
  },
  {
    "path": "docs/wire-cloak.md",
    "chars": 1100,
    "preview": "\n`wire:cloak` is a directive that hides elements on page load until Livewire is fully initialized. This is useful for pr"
  },
  {
    "path": "docs/wire-confirm.md",
    "chars": 1834,
    "preview": "\nBefore performing dangerous actions in Livewire, you may want to provide your users with some sort of visual confirmati"
  },
  {
    "path": "docs/wire-current.md",
    "chars": 2667,
    "preview": "\nThe `wire:current` directive allows you to easily detect and style currently active links on a page.\n\n> [!tip] Consider"
  },
  {
    "path": "docs/wire-dirty.md",
    "chars": 4742,
    "preview": "\nIn a traditional HTML page containing a form, the form is only ever submitted when the user presses the \"Submit\" button"
  },
  {
    "path": "docs/wire-ignore.md",
    "chars": 1295,
    "preview": "\nLivewire's ability to make updates to the page is what makes it \"live\", however, there are times when you might want to"
  },
  {
    "path": "docs/wire-init.md",
    "chars": 594,
    "preview": "\nLivewire offers a `wire:init` directive to run an action as soon as the component is rendered. This can be helpful in c"
  },
  {
    "path": "docs/wire-intersect.md",
    "chars": 4495,
    "preview": "Livewire's `wire:intersect` directive allows you to execute an action when an element enters or leaves the viewport. Thi"
  },
  {
    "path": "docs/wire-loading.md",
    "chars": 12037,
    "preview": "\nLoading indicators are an important part of crafting good user interfaces. They give users visual feedback when a reque"
  },
  {
    "path": "docs/wire-model.md",
    "chars": 11746,
    "preview": "\nLivewire makes it easy to bind a component property's value with form inputs using `wire:model`.\n\nHere is a simple exam"
  },
  {
    "path": "docs/wire-navigate.md",
    "chars": 2399,
    "preview": "\nLivewire's `wire:navigate` feature makes page navigation much faster, providing an SPA-like experience for your users.\n"
  },
  {
    "path": "docs/wire-offline.md",
    "chars": 1849,
    "preview": "In real-time applications, it can be helpful to provide a visual indication that the user's device is no longer connecte"
  },
  {
    "path": "docs/wire-poll.md",
    "chars": 3368,
    "preview": "Polling is a technique used in web applications to \"poll\" the server (send requests on a regular interval) for updates. "
  },
  {
    "path": "docs/wire-ref.md",
    "chars": 3749,
    "preview": "\nRefs in Livewire provide a way to name, then target an individual element or component inside Livewire.\n\nThey're useful"
  },
  {
    "path": "docs/wire-replace.md",
    "chars": 1430,
    "preview": "\nLivewire's DOM diffing is useful for updating existing elements on your page, but occasionally you may need to force so"
  },
  {
    "path": "docs/wire-show.md",
    "chars": 2160,
    "preview": "\nLivewire's `wire:show` directive makes it easy to show and hide elements based on the result of an expression.\n\nThe `wi"
  },
  {
    "path": "docs/wire-sort.md",
    "chars": 3606,
    "preview": "\nLivewire provides drag-and-drop sorting through the `wire:sort` directive. Add it to a parent element and use `wire:sor"
  },
  {
    "path": "docs/wire-stream.md",
    "chars": 6332,
    "preview": "\nLivewire allows you to stream content to a web page before a request is complete via the `wire:stream` API. This is an "
  },
  {
    "path": "docs/wire-submit.md",
    "chars": 3422,
    "preview": "\nLivewire makes it easy to handle form submissions via the `wire:submit` directive. By adding `wire:submit` to a `<form>"
  },
  {
    "path": "docs/wire-text.md",
    "chars": 1351,
    "preview": "\n`wire:text` is a directive that dynamically updates an element's text content based on a component property or expressi"
  },
  {
    "path": "docs/wire-transition.md",
    "chars": 6094,
    "preview": "\n`wire:transition` enables smooth animations when elements appear, disappear, or change using the browser's native [View"
  },
  {
    "path": "js/$wire.js",
    "chars": 12026,
    "preview": "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, di"
  },
  {
    "path": "js/component.js",
    "chars": 9264,
    "preview": "import { dataSet, deepClone, diff, diffAndConsolidate, diffAndPatchRecursive, extractData} from '@/utils'\nimport { gener"
  },
  {
    "path": "js/debounce.js",
    "chars": 2111,
    "preview": "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component"
  },
  {
    "path": "js/diff.spec.js",
    "chars": 10413,
    "preview": "import { describe, it, expect } from 'vitest'\nimport { diff, diffAndConsolidate } from './utils'\n\ndescribe('diff (legacy"
  },
  {
    "path": "js/diffAndPatchRecursive.spec.js",
    "chars": 6649,
    "preview": "import { describe, it, expect } from 'vitest'\nimport { diffAndPatchRecursive } from './utils'\n\ndescribe('diffAndPatchRec"
  },
  {
    "path": "js/directives/index.js",
    "chars": 409,
    "preview": "\nimport './wire-transition';\nimport './wire-wildcard';\nimport './wire-navigate';\nimport './wire-confirm';\nimport './wire"
  },
  {
    "path": "js/directives/shared.js",
    "chars": 1278,
    "preview": "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n    isTruthy = directive.m"
  },
  {
    "path": "js/directives/wire-bind.js",
    "chars": 575,
    "preview": "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n    "
  },
  {
    "path": "js/directives/wire-cloak.js",
    "chars": 175,
    "preview": "import Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n    if (el.hasAttribute('wire:cloak')) {\n        Alpine.muta"
  },
  {
    "path": "js/directives/wire-confirm.js",
    "chars": 945,
    "preview": "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n    let message = directive.expr"
  },
  {
    "path": "js/directives/wire-current.js",
    "chars": 2177,
    "preview": "import { globalDirective } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:curr"
  },
  {
    "path": "js/directives/wire-dirty.js",
    "chars": 2222,
    "preview": "import { directive, getDirectives } from '@/directives'\nimport { toggleBooleanStateDirective } from './shared'\nimport { "
  },
  {
    "path": "js/directives/wire-ignore.js",
    "chars": 338,
    "preview": "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n    if (directive.modifiers.inclu"
  },
  {
    "path": "js/directives/wire-init.js",
    "chars": 371,
    "preview": "import { directive } from \"@/directives\"\nimport { evaluateActionExpression } from '../evaluator'\nimport { setNextActionO"
  },
  {
    "path": "js/directives/wire-loading.js",
    "chars": 6717,
    "preview": "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { "
  },
  {
    "path": "js/directives/wire-model.js",
    "chars": 8115,
    "preview": "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { findC"
  },
  {
    "path": "js/directives/wire-navigate.js",
    "chars": 1649,
    "preview": "import Alpine from 'alpinejs'\n\n// Export all wire:navigate variations for use in other files\nexport let wireNavigateSele"
  },
  {
    "path": "js/directives/wire-offline.js",
    "chars": 701,
    "preview": "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = n"
  },
  {
    "path": "js/directives/wire-poll.js",
    "chars": 4147,
    "preview": "import { directive, getDirectives } from \"@/directives\"\nimport { setNextActionMetadata, setNextActionOrigin } from '@/re"
  },
  {
    "path": "js/directives/wire-replace.js",
    "chars": 237,
    "preview": "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n    if (directive.modifiers.incl"
  },
  {
    "path": "js/directives/wire-show.js",
    "chars": 583,
    "preview": "import { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n    "
  },
  {
    "path": "js/directives/wire-text.js",
    "chars": 584,
    "preview": "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n    "
  },
  {
    "path": "js/directives/wire-transition.js",
    "chars": 4500,
    "preview": "import { globalDirective } from \"@/directives\"\n\nlet defaultName = 'match-element'\n\n// No-op — viewTransitionName is now "
  },
  {
    "path": "js/directives/wire-wildcard.js",
    "chars": 4220,
    "preview": "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directiv"
  },
  {
    "path": "js/directives.js",
    "chars": 6941,
    "preview": "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeN"
  },
  {
    "path": "js/directives.spec.js",
    "chars": 7682,
    "preview": "import { describe, it, vi, expect } from 'vitest'\nimport { Directive } from './directives'\nimport Alpine from '../node_m"
  },
  {
    "path": "js/evaluator.js",
    "chars": 2798,
    "preview": "import Alpine from 'alpinejs'\n\nfunction getAlpineScopeKeys(el) {\n    let keys = []\n\n    let currentEl = el\n\n    while (c"
  },
  {
    "path": "js/evaluator.spec.js",
    "chars": 4502,
    "preview": "import { describe, it, expect } from 'vitest'\nimport { contextualizeExpression } from './evaluator'\n\ndescribe('Contextua"
  },
  {
    "path": "js/events.js",
    "chars": 1819,
    "preview": "import { componentsByName } from \"@/store\"\nimport { findRefEl } from \"@/features/supportRefs\"\n\nexport function dispatch("
  },
  {
    "path": "js/features/index.js",
    "chars": 800,
    "preview": "/**\n * Features where order matters:\n */\nimport './supportListeners';\nimport './supportScriptsAndAssets';\nimport './supp"
  },
  {
    "path": "js/features/supportCssModules.js",
    "chars": 1162,
    "preview": "import { on } from '@/hooks'\nimport { getModuleUrl, getNonce } from '@/utils'\n\nlet loadedStyles = new Set()\n\non('effect'"
  },
  {
    "path": "js/features/supportDataCurrent.js",
    "chars": 1439,
    "preview": "import { pathMatches } from '@/directives/wire-current'\nimport { wireNavigateSelector } from '@/directives/wire-navigate"
  },
  {
    "path": "js/features/supportDataLoading.js",
    "chars": 744,
    "preview": "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSend, onFinish }) => {\n    let undos = []\n\n"
  },
  {
    "path": "js/features/supportDisablingFormsDuringRequest.js",
    "chars": 2535,
    "preview": "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine fr"
  },
  {
    "path": "js/features/supportDispatches.js",
    "chars": 1123,
    "preview": "import { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non("
  },
  {
    "path": "js/features/supportEntangle.js",
    "chars": 1933,
    "preview": "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n    if (! cleanup) cleanup"
  },
  {
    "path": "js/features/supportErrors.js",
    "chars": 2888,
    "preview": "// This errors object has the most common methods from \\Illuminate\\Support\\MessageBag class on the backend...\nimport Alp"
  },
  {
    "path": "js/features/supportFileDownloads.js",
    "chars": 1431,
    "preview": "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n    succeed(({ effects }) => {\n        let download = effe"
  },
  {
    "path": "js/features/supportFileUploads.js",
    "chars": 11121,
    "preview": "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n    if"
  },
  {
    "path": "js/features/supportIslands.js",
    "chars": 2990,
    "preview": "import { closestFragment, extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/frag"
  },
  {
    "path": "js/features/supportJsEvaluation.js",
    "chars": 832,
    "preview": "import { evaluateExpression } from '../evaluator'\nimport { findComponentByEl } from '@/store'\nimport { overrideMethod } "
  },
  {
    "path": "js/features/supportJsModules.js",
    "chars": 1303,
    "preview": "import { on } from '@/hooks'\nimport { getModuleUrl } from '@/utils'\n\nlet pendingComponentAssets = new WeakMap()\n\non('eff"
  },
  {
    "path": "js/features/supportLaravelEcho.js",
    "chars": 2686,
    "preview": "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n    if (window.Ec"
  },
  {
    "path": "js/features/supportListeners.js",
    "chars": 1078,
    "preview": "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n    registerListeners(component, effe"
  },
  {
    "path": "js/features/supportMorphDom.js",
    "chars": 368,
    "preview": "import { morph } from \"@/morph\";\nimport { interceptMessage } from \"@/request\";\n\ninterceptMessage(({ message, onSuccess }"
  },
  {
    "path": "js/features/supportNavigate.js",
    "chars": 1112,
    "preview": "document.addEventListener('livewire:initialized', () => {\n    shouldHideProgressBar() && Alpine.navigate.disableProgress"
  },
  {
    "path": "js/features/supportPreserveScroll.js",
    "chars": 867,
    "preview": "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSuccess }) => {\n    onSuccess(({ onSync, on"
  },
  {
    "path": "js/features/supportQueryString.js",
    "chars": 2632,
    "preview": "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/pl"
  }
]

// ... and 857 more files (download for full content)

About this extraction

This page contains the full source code of the livewire/livewire GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1057 files (5.9 MB), approximately 1.6M tokens, and a symbol index with 8215 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!