gitextract_53laupa_/ ├── .eslintignore ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ └── config.yml │ └── workflows/ │ ├── main.yml │ ├── prepare-release.yml │ ├── release-insiders.yml │ └── release.yml ├── .gitignore ├── .prettierignore ├── .swcrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── jest/ │ ├── create-jest-config.cjs │ ├── custom-matchers.ts │ └── polyfills.ts ├── jest.config.cjs ├── package.json ├── packages/ │ ├── @headlessui-react/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build/ │ │ │ └── index.cjs │ │ ├── jest.config.cjs │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── button/ │ │ │ │ │ ├── button.test.tsx │ │ │ │ │ └── button.tsx │ │ │ │ ├── checkbox/ │ │ │ │ │ ├── checkbox.test.tsx │ │ │ │ │ └── checkbox.tsx │ │ │ │ ├── close-button/ │ │ │ │ │ └── close-button.tsx │ │ │ │ ├── combobox/ │ │ │ │ │ ├── combobox-machine-glue.tsx │ │ │ │ │ ├── combobox-machine.ts │ │ │ │ │ ├── combobox.test.tsx │ │ │ │ │ └── combobox.tsx │ │ │ │ ├── combobox-button/ │ │ │ │ │ └── combobox-button.tsx │ │ │ │ ├── combobox-input/ │ │ │ │ │ └── combobox-input.tsx │ │ │ │ ├── combobox-label/ │ │ │ │ │ └── combobox-label.tsx │ │ │ │ ├── combobox-option/ │ │ │ │ │ └── combobox-option.tsx │ │ │ │ ├── combobox-options/ │ │ │ │ │ └── combobox-options.tsx │ │ │ │ ├── data-interactive/ │ │ │ │ │ ├── data-interactive.test.tsx │ │ │ │ │ └── data-interactive.tsx │ │ │ │ ├── description/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── description.test.tsx.snap │ │ │ │ │ ├── description.test.tsx │ │ │ │ │ └── description.tsx │ │ │ │ ├── dialog/ │ │ │ │ │ ├── dialog.test.tsx │ │ │ │ │ └── dialog.tsx │ │ │ │ ├── dialog-description/ │ │ │ │ │ └── dialog-description.tsx │ │ │ │ ├── dialog-panel/ │ │ │ │ │ └── dialog-panel.tsx │ │ │ │ ├── dialog-title/ │ │ │ │ │ └── dialog-title.tsx │ │ │ │ ├── disclosure/ │ │ │ │ │ ├── disclosure.test.tsx │ │ │ │ │ └── disclosure.tsx │ │ │ │ ├── disclosure-button/ │ │ │ │ │ └── disclosure-button.tsx │ │ │ │ ├── disclosure-panel/ │ │ │ │ │ └── disclosure-panel.tsx │ │ │ │ ├── field/ │ │ │ │ │ ├── field.test.tsx │ │ │ │ │ └── field.tsx │ │ │ │ ├── fieldset/ │ │ │ │ │ ├── fieldset.test.tsx │ │ │ │ │ └── fieldset.tsx │ │ │ │ ├── focus-trap/ │ │ │ │ │ ├── focus-trap.test.tsx │ │ │ │ │ └── focus-trap.tsx │ │ │ │ ├── focus-trap-features/ │ │ │ │ │ └── focus-trap-features.tsx │ │ │ │ ├── input/ │ │ │ │ │ ├── input.test.tsx │ │ │ │ │ └── input.tsx │ │ │ │ ├── keyboard.ts │ │ │ │ ├── label/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── label.test.tsx.snap │ │ │ │ │ ├── label.test.tsx │ │ │ │ │ └── label.tsx │ │ │ │ ├── legend/ │ │ │ │ │ └── legend.tsx │ │ │ │ ├── listbox/ │ │ │ │ │ ├── listbox-machine-glue.tsx │ │ │ │ │ ├── listbox-machine.ts │ │ │ │ │ ├── listbox.test.tsx │ │ │ │ │ └── listbox.tsx │ │ │ │ ├── listbox-button/ │ │ │ │ │ └── listbox-button.tsx │ │ │ │ ├── listbox-label/ │ │ │ │ │ └── listbox-label.tsx │ │ │ │ ├── listbox-option/ │ │ │ │ │ └── listbox-option.tsx │ │ │ │ ├── listbox-options/ │ │ │ │ │ └── listbox-options.tsx │ │ │ │ ├── listbox-selected-option/ │ │ │ │ │ └── listbox-selected-option.tsx │ │ │ │ ├── menu/ │ │ │ │ │ ├── menu-machine-glue.tsx │ │ │ │ │ ├── menu-machine.ts │ │ │ │ │ ├── menu.test.tsx │ │ │ │ │ └── menu.tsx │ │ │ │ ├── menu-button/ │ │ │ │ │ └── menu-button.tsx │ │ │ │ ├── menu-heading/ │ │ │ │ │ └── menu-heading.tsx │ │ │ │ ├── menu-item/ │ │ │ │ │ └── menu-item.tsx │ │ │ │ ├── menu-items/ │ │ │ │ │ └── menu-items.tsx │ │ │ │ ├── menu-section/ │ │ │ │ │ └── menu-section.tsx │ │ │ │ ├── menu-separator/ │ │ │ │ │ └── menu-separator.tsx │ │ │ │ ├── mouse.ts │ │ │ │ ├── popover/ │ │ │ │ │ ├── popover-machine-glue.tsx │ │ │ │ │ ├── popover-machine.ts │ │ │ │ │ ├── popover.test.tsx │ │ │ │ │ └── popover.tsx │ │ │ │ ├── popover-backdrop/ │ │ │ │ │ └── popover-backdrop.tsx │ │ │ │ ├── popover-button/ │ │ │ │ │ └── popover-button.tsx │ │ │ │ ├── popover-group/ │ │ │ │ │ └── popover-group.tsx │ │ │ │ ├── popover-overlay/ │ │ │ │ │ └── popover-overlay.tsx │ │ │ │ ├── popover-panel/ │ │ │ │ │ └── popover-panel.tsx │ │ │ │ ├── portal/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── portal.test.tsx.snap │ │ │ │ │ ├── portal.test.tsx │ │ │ │ │ └── portal.tsx │ │ │ │ ├── radio/ │ │ │ │ │ └── radio.tsx │ │ │ │ ├── radio-group/ │ │ │ │ │ ├── radio-group.test.tsx │ │ │ │ │ └── radio-group.tsx │ │ │ │ ├── radio-group-description/ │ │ │ │ │ └── radio-group-description.tsx │ │ │ │ ├── radio-group-label/ │ │ │ │ │ └── radio-group-label.tsx │ │ │ │ ├── radio-group-option/ │ │ │ │ │ └── radio-group-option.tsx │ │ │ │ ├── select/ │ │ │ │ │ ├── select.test.tsx │ │ │ │ │ └── select.tsx │ │ │ │ ├── switch/ │ │ │ │ │ ├── switch.test.tsx │ │ │ │ │ └── switch.tsx │ │ │ │ ├── switch-description/ │ │ │ │ │ └── switch-description.tsx │ │ │ │ ├── switch-group/ │ │ │ │ │ └── switch-group.tsx │ │ │ │ ├── switch-label/ │ │ │ │ │ └── switch-label.tsx │ │ │ │ ├── tab/ │ │ │ │ │ └── tab.tsx │ │ │ │ ├── tab-group/ │ │ │ │ │ └── tab-group.tsx │ │ │ │ ├── tab-list/ │ │ │ │ │ └── tab-list.tsx │ │ │ │ ├── tab-panel/ │ │ │ │ │ └── tab-panel.tsx │ │ │ │ ├── tab-panels/ │ │ │ │ │ └── tab-panels.tsx │ │ │ │ ├── tabs/ │ │ │ │ │ ├── tabs.ssr.test.tsx │ │ │ │ │ ├── tabs.test.tsx │ │ │ │ │ └── tabs.tsx │ │ │ │ ├── textarea/ │ │ │ │ │ ├── textarea.test.tsx │ │ │ │ │ └── textarea.tsx │ │ │ │ ├── tooltip/ │ │ │ │ │ └── tooltip.tsx │ │ │ │ ├── transition/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── transition.test.tsx.snap │ │ │ │ │ ├── transition.ssr.test.tsx │ │ │ │ │ ├── transition.test.tsx │ │ │ │ │ └── transition.tsx │ │ │ │ ├── transition-child/ │ │ │ │ │ └── transition-child.tsx │ │ │ │ └── transitions/ │ │ │ │ └── transition.tsx │ │ │ ├── hooks/ │ │ │ │ ├── __mocks__/ │ │ │ │ │ └── use-id.ts │ │ │ │ ├── document-overflow/ │ │ │ │ │ ├── adjust-scrollbar-padding.ts │ │ │ │ │ ├── handle-ios-locking.ts │ │ │ │ │ ├── overflow-store.ts │ │ │ │ │ ├── prevent-scroll.ts │ │ │ │ │ └── use-document-overflow.ts │ │ │ │ ├── use-active-press.tsx │ │ │ │ ├── use-by-comparator.ts │ │ │ │ ├── use-computed.ts │ │ │ │ ├── use-controllable.ts │ │ │ │ ├── use-default-value.ts │ │ │ │ ├── use-disposables.ts │ │ │ │ ├── use-document-event.ts │ │ │ │ ├── use-element-size.ts │ │ │ │ ├── use-escape.ts │ │ │ │ ├── use-event-listener.ts │ │ │ │ ├── use-event.ts │ │ │ │ ├── use-flags.ts │ │ │ │ ├── use-handle-toggle.tsx │ │ │ │ ├── use-id.ts │ │ │ │ ├── use-inert-others.test.tsx │ │ │ │ ├── use-inert-others.tsx │ │ │ │ ├── use-is-initial-render.ts │ │ │ │ ├── use-is-mounted.ts │ │ │ │ ├── use-is-top-layer.ts │ │ │ │ ├── use-is-touch-device.ts │ │ │ │ ├── use-iso-morphic-effect.ts │ │ │ │ ├── use-latest-value.ts │ │ │ │ ├── use-on-disappear.ts │ │ │ │ ├── use-on-unmount.ts │ │ │ │ ├── use-outside-click.ts │ │ │ │ ├── use-owner.ts │ │ │ │ ├── use-quick-release.ts │ │ │ │ ├── use-refocusable-input.ts │ │ │ │ ├── use-resolve-button-type.ts │ │ │ │ ├── use-resolved-tag.ts │ │ │ │ ├── use-root-containers.tsx │ │ │ │ ├── use-scroll-lock.ts │ │ │ │ ├── use-server-handoff-complete.ts │ │ │ │ ├── use-slot.ts │ │ │ │ ├── use-store.ts │ │ │ │ ├── use-sync-refs.ts │ │ │ │ ├── use-tab-direction.ts │ │ │ │ ├── use-text-value.ts │ │ │ │ ├── use-tracked-pointer.ts │ │ │ │ ├── use-transition.ts │ │ │ │ ├── use-tree-walker.ts │ │ │ │ ├── use-watch.ts │ │ │ │ └── use-window-event.ts │ │ │ ├── index.test.ts │ │ │ ├── index.ts │ │ │ ├── internal/ │ │ │ │ ├── close-provider.tsx │ │ │ │ ├── disabled.tsx │ │ │ │ ├── floating.tsx │ │ │ │ ├── focus-sentinel.tsx │ │ │ │ ├── form-fields.tsx │ │ │ │ ├── frozen.tsx │ │ │ │ ├── hidden.tsx │ │ │ │ ├── id.tsx │ │ │ │ ├── open-closed.tsx │ │ │ │ └── portal-force-root.tsx │ │ │ ├── machine.ts │ │ │ ├── machines/ │ │ │ │ └── stack-machine.ts │ │ │ ├── react-glue.tsx │ │ │ ├── test-utils/ │ │ │ │ ├── accessibility-assertions.ts │ │ │ │ ├── execute-timeline.ts │ │ │ │ ├── fake-pointer.ts │ │ │ │ ├── interactions.test.tsx │ │ │ │ ├── interactions.ts │ │ │ │ ├── report-dom-node-changes.ts │ │ │ │ ├── scenarios.tsx │ │ │ │ ├── snapshot.ts │ │ │ │ ├── ssr.tsx │ │ │ │ └── suppress-console-logs.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── __snapshots__/ │ │ │ │ └── render.test.tsx.snap │ │ │ ├── active-element-history.ts │ │ │ ├── bugs.ts │ │ │ ├── calculate-active-index.ts │ │ │ ├── class-names.ts │ │ │ ├── default-map.ts │ │ │ ├── disposables.ts │ │ │ ├── document-ready.ts │ │ │ ├── dom.ts │ │ │ ├── element-movement.ts │ │ │ ├── env.ts │ │ │ ├── focus-management.ts │ │ │ ├── form.test.ts │ │ │ ├── form.ts │ │ │ ├── get-text-value.test.ts │ │ │ ├── get-text-value.ts │ │ │ ├── match.ts │ │ │ ├── micro-task.ts │ │ │ ├── once.ts │ │ │ ├── owner.ts │ │ │ ├── platform.ts │ │ │ ├── render.test.tsx │ │ │ ├── render.ts │ │ │ ├── stable-collection.tsx │ │ │ ├── start-transition.ts │ │ │ └── store.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ └── jest.d.ts │ ├── @headlessui-tailwindcss/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── build/ │ │ │ └── index.cjs │ │ ├── jest.config.cjs │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── fix-types.cjs │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.test.ts.snap │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ └── @headlessui-vue/ │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── build/ │ │ └── index.cjs │ ├── jest.config.cjs │ ├── package.json │ ├── src/ │ │ ├── components/ │ │ │ ├── combobox/ │ │ │ │ ├── combobox.test.ts │ │ │ │ └── combobox.ts │ │ │ ├── description/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── description.test.ts.snap │ │ │ │ ├── description.test.ts │ │ │ │ └── description.ts │ │ │ ├── dialog/ │ │ │ │ ├── dialog.test.ts │ │ │ │ └── dialog.ts │ │ │ ├── disclosure/ │ │ │ │ ├── disclosure.srr.test.ts │ │ │ │ ├── disclosure.test.ts │ │ │ │ └── disclosure.ts │ │ │ ├── focus-trap/ │ │ │ │ ├── focus-trap.test.ts │ │ │ │ └── focus-trap.ts │ │ │ ├── label/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── label.test.ts.snap │ │ │ │ ├── label.test.ts │ │ │ │ └── label.ts │ │ │ ├── listbox/ │ │ │ │ ├── listbox.test.tsx │ │ │ │ └── listbox.ts │ │ │ ├── menu/ │ │ │ │ ├── menu.test.tsx │ │ │ │ └── menu.ts │ │ │ ├── popover/ │ │ │ │ ├── popover.test.ts │ │ │ │ └── popover.ts │ │ │ ├── portal/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── portal.test.ts.snap │ │ │ │ ├── portal.test.ts │ │ │ │ └── portal.ts │ │ │ ├── radio-group/ │ │ │ │ ├── radio-group.test.ts │ │ │ │ └── radio-group.ts │ │ │ ├── switch/ │ │ │ │ ├── switch.test.tsx │ │ │ │ └── switch.ts │ │ │ ├── tabs/ │ │ │ │ ├── tabs.ssr.test.ts │ │ │ │ ├── tabs.test.ts │ │ │ │ └── tabs.ts │ │ │ └── transitions/ │ │ │ ├── __snapshots__/ │ │ │ │ └── transition.test.ts.snap │ │ │ ├── transition.ssr.test.ts │ │ │ ├── transition.test.ts │ │ │ ├── transition.ts │ │ │ └── utils/ │ │ │ ├── transition.test.ts │ │ │ └── transition.ts │ │ ├── hooks/ │ │ │ ├── __mocks__/ │ │ │ │ └── use-id.ts │ │ │ ├── document-overflow/ │ │ │ │ ├── adjust-scrollbar-padding.ts │ │ │ │ ├── handle-ios-locking.ts │ │ │ │ ├── overflow-store.ts │ │ │ │ ├── prevent-scroll.ts │ │ │ │ └── use-document-overflow.ts │ │ │ ├── use-controllable.ts │ │ │ ├── use-disposables.ts │ │ │ ├── use-document-event.ts │ │ │ ├── use-event-listener.ts │ │ │ ├── use-frame-debounce.ts │ │ │ ├── use-id.ts │ │ │ ├── use-inert.test.ts │ │ │ ├── use-inert.ts │ │ │ ├── use-outside-click.ts │ │ │ ├── use-resolve-button-type.ts │ │ │ ├── use-root-containers.ts │ │ │ ├── use-store.ts │ │ │ ├── use-tab-direction.ts │ │ │ ├── use-text-value.ts │ │ │ ├── use-tracked-pointer.ts │ │ │ ├── use-tree-walker.ts │ │ │ └── use-window-event.ts │ │ ├── index.test.ts │ │ ├── index.ts │ │ ├── internal/ │ │ │ ├── dom-containers.ts │ │ │ ├── focus-sentinel.ts │ │ │ ├── hidden.ts │ │ │ ├── open-closed.ts │ │ │ ├── portal-force-root.ts │ │ │ └── stack-context.ts │ │ ├── keyboard.ts │ │ ├── mouse.ts │ │ ├── test-utils/ │ │ │ ├── accessibility-assertions.ts │ │ │ ├── execute-timeline.ts │ │ │ ├── fake-pointer.ts │ │ │ ├── html.ts │ │ │ ├── interactions.test.ts │ │ │ ├── interactions.ts │ │ │ ├── report-dom-node-changes.ts │ │ │ ├── ssr.ts │ │ │ ├── suppress-console-logs.ts │ │ │ └── vue-testing-library.ts │ │ └── utils/ │ │ ├── active-element-history.ts │ │ ├── calculate-active-index.ts │ │ ├── disposables.ts │ │ ├── document-ready.ts │ │ ├── dom.ts │ │ ├── env.ts │ │ ├── focus-management.ts │ │ ├── form.test.ts │ │ ├── form.ts │ │ ├── get-text-value.test.ts │ │ ├── get-text-value.ts │ │ ├── match.ts │ │ ├── micro-task.ts │ │ ├── once.ts │ │ ├── owner.ts │ │ ├── pipeline.ts │ │ ├── platform.ts │ │ ├── render.test.ts │ │ ├── render.ts │ │ ├── resolve-prop-value.ts │ │ └── store.ts │ ├── tsconfig.json │ └── types/ │ └── jest.d.ts ├── playgrounds/ │ ├── react/ │ │ ├── components/ │ │ │ ├── button.tsx │ │ │ └── input.tsx │ │ ├── data.ts │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── pages/ │ │ │ ├── _app.tsx │ │ │ ├── _document.tsx │ │ │ ├── _error.tsx │ │ │ ├── combinations/ │ │ │ │ ├── form.tsx │ │ │ │ └── tabs-in-dialog.tsx │ │ │ ├── combobox/ │ │ │ │ ├── combobox-countries.tsx │ │ │ │ ├── combobox-open-on-focus.tsx │ │ │ │ ├── combobox-virtual-with-empty-states.tsx │ │ │ │ ├── combobox-virtualized.tsx │ │ │ │ ├── combobox-with-pure-tailwind.tsx │ │ │ │ ├── command-palette-with-groups.tsx │ │ │ │ ├── command-palette.tsx │ │ │ │ └── multi-select.tsx │ │ │ ├── dialog/ │ │ │ │ ├── dialog-built-in-transition.tsx │ │ │ │ ├── dialog-focus-issue.tsx │ │ │ │ ├── dialog-scroll-issue.tsx │ │ │ │ ├── dialog-with-shadow-children.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── scrollable-dialog.tsx │ │ │ │ ├── scrollable-page-with-dialog.tsx │ │ │ │ └── sibling-dialogs.tsx │ │ │ ├── disclosure/ │ │ │ │ └── disclosure.tsx │ │ │ ├── listbox/ │ │ │ │ ├── listbox-overlaps.tsx │ │ │ │ ├── listbox-with-pure-tailwind.tsx │ │ │ │ ├── multi-select.tsx │ │ │ │ └── multiple-elements.tsx │ │ │ ├── menu/ │ │ │ │ ├── menu-with-floating-ui.tsx │ │ │ │ ├── menu-with-framer-motion.tsx │ │ │ │ ├── menu-with-popper.tsx │ │ │ │ ├── menu-with-transition-and-popper.tsx │ │ │ │ ├── menu-with-transition.tsx │ │ │ │ ├── menu.tsx │ │ │ │ └── multiple-elements.tsx │ │ │ ├── popover/ │ │ │ │ └── popover.tsx │ │ │ ├── radio-group/ │ │ │ │ └── radio-group.tsx │ │ │ ├── styles.css │ │ │ ├── suspense/ │ │ │ │ └── portal.tsx │ │ │ ├── switch/ │ │ │ │ └── switch-with-pure-tailwind.tsx │ │ │ ├── tabs/ │ │ │ │ └── tabs-with-pure-tailwind.tsx │ │ │ └── transitions/ │ │ │ ├── appear.tsx │ │ │ ├── both-apis.tsx │ │ │ ├── component-examples/ │ │ │ │ ├── dropdown.tsx │ │ │ │ ├── modal.tsx │ │ │ │ ├── nested/ │ │ │ │ │ ├── hidden.tsx │ │ │ │ │ └── unmount.tsx │ │ │ │ └── peek-a-boo.tsx │ │ │ ├── full-page-examples/ │ │ │ │ ├── full-page-transition.tsx │ │ │ │ └── layout-with-sidebar.tsx │ │ │ └── react-hot-toast.tsx │ │ ├── postcss.config.js │ │ ├── tsconfig.json │ │ └── utils/ │ │ ├── class-names.ts │ │ ├── hooks/ │ │ │ └── use-popper.ts │ │ ├── match.ts │ │ └── resolve-all-examples.ts │ └── vue/ │ ├── index.html │ ├── package.json │ ├── postcss.config.js │ ├── src/ │ │ ├── .generated/ │ │ │ └── .gitignore │ │ ├── App.vue │ │ ├── KeyCaster.vue │ │ ├── Layout.vue │ │ ├── components/ │ │ │ ├── Button.vue │ │ │ ├── Home.vue │ │ │ ├── combinations/ │ │ │ │ ├── form.vue │ │ │ │ └── tabs-in-dialog.vue │ │ │ ├── combobox/ │ │ │ │ ├── _virtual-example.vue │ │ │ │ ├── combobox-countries.vue │ │ │ │ ├── combobox-open-on-focus.vue │ │ │ │ ├── combobox-virtual-with-empty-states.vue │ │ │ │ ├── combobox-virtualized.vue │ │ │ │ ├── combobox-with-pure-tailwind.vue │ │ │ │ ├── command-palette-with-groups.vue │ │ │ │ ├── command-palette.vue │ │ │ │ └── multi-select.vue │ │ │ ├── dialog/ │ │ │ │ ├── dialog.vue │ │ │ │ └── slide-over.vue │ │ │ ├── disclosure/ │ │ │ │ └── disclosure.vue │ │ │ ├── focus-trap/ │ │ │ │ └── focus-trap.vue │ │ │ ├── listbox/ │ │ │ │ ├── listbox.vue │ │ │ │ ├── multi-select.vue │ │ │ │ └── multiple-elements.vue │ │ │ ├── menu/ │ │ │ │ ├── menu-with-floating-ui.vue │ │ │ │ ├── menu-with-popper.vue │ │ │ │ ├── menu-with-transition-and-popper.vue │ │ │ │ ├── menu-with-transition.vue │ │ │ │ ├── menu.vue │ │ │ │ └── multiple-elements.vue │ │ │ ├── popover/ │ │ │ │ └── popover.vue │ │ │ ├── portal/ │ │ │ │ └── portal.vue │ │ │ ├── radio-group/ │ │ │ │ └── radio-group.vue │ │ │ ├── switch/ │ │ │ │ └── switch.vue │ │ │ └── tabs/ │ │ │ ├── simple-tabs.vue │ │ │ └── tabs.vue │ │ ├── data.ts │ │ ├── main.ts │ │ ├── playground-utils/ │ │ │ └── hooks/ │ │ │ └── use-popper.js │ │ ├── router.ts │ │ └── styles.css │ ├── tsconfig.json │ ├── vercel.json │ └── vite.config.js └── scripts/ ├── build.sh ├── lint.sh ├── make-nextjs-happy.js ├── package-path.js ├── release-channel.js ├── release-notes.js ├── resolve-files.js ├── rewrite-imports.js ├── test.sh └── watch.sh