Full Code of cosscom/coss for AI

main da381b51d9b5 cached
2789 files
8.3 MB
2.3M tokens
2547 symbols
1 requests
Download .txt
Showing preview only (9,192K chars total). Download the full file or copy to clipboard to get everything.
Repository: cosscom/coss
Branch: main
Commit: da381b51d9b5
Files: 2789
Total size: 8.3 MB

Directory structure:
gitextract_1xyzqltd/

├── .biome-packages-sync/
│   └── packages-sync.json
├── .github/
│   ├── labeler.yml
│   └── workflows/
│       ├── build.yml
│       ├── ci.yml
│       ├── format.yml
│       ├── labeler.yml
│       ├── lint.yml
│       ├── publish.yml
│       ├── semantic-pull-requests.yml
│       ├── test.yml
│       └── typecheck.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .vscode/
│   └── settings.json
├── .zed/
│   └── settings.json
├── AGENTS.md
├── LICENSE
├── LICENSING.md
├── README.md
├── apps/
│   ├── examples/
│   │   ├── calcom/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── app/
│   │   │   │   ├── (dashboard)/
│   │   │   │   │   ├── booking/
│   │   │   │   │   │   ├── booking-skeleton.tsx
│   │   │   │   │   │   ├── canceled/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── page.tsx
│   │   │   │   │   │   ├── past/
│   │   │   │   │   │   │   ├── booking-actions.tsx
│   │   │   │   │   │   │   ├── bookings-list.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── recurring/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── unconfirmed/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   └── upcoming/
│   │   │   │   │   │       ├── bookings-empty.tsx
│   │   │   │   │   │       ├── loading.tsx
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── event-types/
│   │   │   │   │   │   ├── add-event-type-dialog.tsx
│   │   │   │   │   │   ├── event-type-actions.tsx
│   │   │   │   │   │   ├── event-types-list.tsx
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── (settings)/
│   │   │   │   │   └── settings/
│   │   │   │   │       ├── layout.tsx
│   │   │   │   │       ├── my-account/
│   │   │   │   │       │   ├── general/
│   │   │   │   │       │   │   └── page.tsx
│   │   │   │   │       │   ├── page.tsx
│   │   │   │   │       │   └── profile/
│   │   │   │   │       │       └── page.tsx
│   │   │   │   │       └── page.tsx
│   │   │   │   ├── globals.css
│   │   │   │   └── layout.tsx
│   │   │   ├── components/
│   │   │   │   ├── app/
│   │   │   │   │   ├── app-command.tsx
│   │   │   │   │   ├── app-header.tsx
│   │   │   │   │   ├── app-mobile-footer.tsx
│   │   │   │   │   ├── app-mobile-header.tsx
│   │   │   │   │   ├── app-sidebar.tsx
│   │   │   │   │   ├── bookings-filters.tsx
│   │   │   │   │   ├── bookings-nav.tsx
│   │   │   │   │   ├── bookings-view.tsx
│   │   │   │   │   ├── nav-main.tsx
│   │   │   │   │   ├── nav-secondary.tsx
│   │   │   │   │   └── tabbed-nav.tsx
│   │   │   │   ├── copyable-field.tsx
│   │   │   │   ├── debug-context.tsx
│   │   │   │   ├── debug-popover.tsx
│   │   │   │   ├── header-actions.tsx
│   │   │   │   ├── item-label.tsx
│   │   │   │   ├── list-item.tsx
│   │   │   │   ├── logo.tsx
│   │   │   │   ├── mobile-header.tsx
│   │   │   │   ├── settings/
│   │   │   │   │   ├── settings-mobile-header.tsx
│   │   │   │   │   ├── settings-nav-section.tsx
│   │   │   │   │   ├── settings-sheet.tsx
│   │   │   │   │   ├── settings-sidebar.tsx
│   │   │   │   │   └── settings-toggle.tsx
│   │   │   │   ├── settings-toggle.tsx
│   │   │   │   ├── sortable.tsx
│   │   │   │   ├── ui/
│   │   │   │   │   └── sidebar.tsx
│   │   │   │   ├── user-menu.tsx
│   │   │   │   └── workflows-badge.tsx
│   │   │   ├── hooks/
│   │   │   │   ├── use-loading-state.ts
│   │   │   │   └── use-scroll-hide.ts
│   │   │   ├── lib/
│   │   │   │   ├── event-types-types.ts
│   │   │   │   ├── markdown-to-safe-html.ts
│   │   │   │   ├── mock-ai-data.ts
│   │   │   │   ├── mock-bookings-data.ts
│   │   │   │   ├── mock-event-types-data.ts
│   │   │   │   ├── navigation-data.ts
│   │   │   │   └── settings-navigation-data.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── postcss.config.mjs
│   │   │   └── tsconfig.json
│   │   └── next-env.d.ts
│   ├── origin/
│   │   ├── .gitignore
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [category]/
│   │   │   │   └── page.tsx
│   │   │   ├── easings/
│   │   │   │   ├── copy-class.tsx
│   │   │   │   ├── easings.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── not-found.tsx
│   │   │   ├── page.tsx
│   │   │   ├── search/
│   │   │   │   ├── components-container.tsx
│   │   │   │   ├── multiselect.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── search-field.tsx
│   │   │   └── sitemap.ts
│   │   ├── components/
│   │   │   ├── cli-commands.tsx
│   │   │   ├── code-block.tsx
│   │   │   ├── component-card.tsx
│   │   │   ├── component-details.tsx
│   │   │   ├── component-loader-client.tsx
│   │   │   ├── component-loader-server.tsx
│   │   │   ├── copy-button.tsx
│   │   │   ├── copy-layout.tsx
│   │   │   ├── copy-registry.tsx
│   │   │   ├── cta.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header-link.tsx
│   │   │   ├── header.tsx
│   │   │   ├── open-in-v0.tsx
│   │   │   ├── page-grid.tsx
│   │   │   ├── page-header.tsx
│   │   │   ├── search-button.tsx
│   │   │   ├── subscribe-action.ts
│   │   │   ├── subscribe-form.tsx
│   │   │   ├── theme-provider.tsx
│   │   │   ├── theme-toggle.tsx
│   │   │   └── top-banner.tsx
│   │   ├── components.json
│   │   ├── config/
│   │   │   └── components.ts
│   │   ├── docs/
│   │   │   └── use-file-upload.md
│   │   ├── hooks/
│   │   │   ├── use-config.ts
│   │   │   ├── use-copy.ts
│   │   │   └── use-mobile.tsx
│   │   ├── lib/
│   │   │   └── utils.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── public/
│   │   │   └── r/
│   │   │       ├── accordion.json
│   │   │       ├── alert-dialog.json
│   │   │       ├── avatar.json
│   │   │       ├── badge.json
│   │   │       ├── breadcrumb.json
│   │   │       ├── button.json
│   │   │       ├── calendar-rac.json
│   │   │       ├── calendar.json
│   │   │       ├── checkbox-tree.json
│   │   │       ├── checkbox.json
│   │   │       ├── collapsible.json
│   │   │       ├── command.json
│   │   │       ├── comp-01.json
│   │   │       ├── comp-02.json
│   │   │       ├── comp-03.json
│   │   │       ├── comp-04.json
│   │   │       ├── comp-05.json
│   │   │       ├── comp-06.json
│   │   │       ├── comp-07.json
│   │   │       ├── comp-08.json
│   │   │       ├── comp-09.json
│   │   │       ├── comp-10.json
│   │   │       ├── comp-100.json
│   │   │       ├── comp-101.json
│   │   │       ├── comp-102.json
│   │   │       ├── comp-103.json
│   │   │       ├── comp-104.json
│   │   │       ├── comp-105.json
│   │   │       ├── comp-106.json
│   │   │       ├── comp-107.json
│   │   │       ├── comp-108.json
│   │   │       ├── comp-109.json
│   │   │       ├── comp-11.json
│   │   │       ├── comp-110.json
│   │   │       ├── comp-111.json
│   │   │       ├── comp-112.json
│   │   │       ├── comp-113.json
│   │   │       ├── comp-114.json
│   │   │       ├── comp-115.json
│   │   │       ├── comp-116.json
│   │   │       ├── comp-117.json
│   │   │       ├── comp-118.json
│   │   │       ├── comp-119.json
│   │   │       ├── comp-12.json
│   │   │       ├── comp-120.json
│   │   │       ├── comp-121.json
│   │   │       ├── comp-122.json
│   │   │       ├── comp-123.json
│   │   │       ├── comp-124.json
│   │   │       ├── comp-125.json
│   │   │       ├── comp-126.json
│   │   │       ├── comp-127.json
│   │   │       ├── comp-128.json
│   │   │       ├── comp-129.json
│   │   │       ├── comp-13.json
│   │   │       ├── comp-130.json
│   │   │       ├── comp-131.json
│   │   │       ├── comp-132.json
│   │   │       ├── comp-133.json
│   │   │       ├── comp-134.json
│   │   │       ├── comp-135.json
│   │   │       ├── comp-136.json
│   │   │       ├── comp-137.json
│   │   │       ├── comp-138.json
│   │   │       ├── comp-139.json
│   │   │       ├── comp-14.json
│   │   │       ├── comp-140.json
│   │   │       ├── comp-141.json
│   │   │       ├── comp-142.json
│   │   │       ├── comp-143.json
│   │   │       ├── comp-144.json
│   │   │       ├── comp-145.json
│   │   │       ├── comp-146.json
│   │   │       ├── comp-147.json
│   │   │       ├── comp-148.json
│   │   │       ├── comp-149.json
│   │   │       ├── comp-15.json
│   │   │       ├── comp-150.json
│   │   │       ├── comp-151.json
│   │   │       ├── comp-152.json
│   │   │       ├── comp-153.json
│   │   │       ├── comp-154.json
│   │   │       ├── comp-155.json
│   │   │       ├── comp-156.json
│   │   │       ├── comp-157.json
│   │   │       ├── comp-158.json
│   │   │       ├── comp-159.json
│   │   │       ├── comp-16.json
│   │   │       ├── comp-160.json
│   │   │       ├── comp-161.json
│   │   │       ├── comp-162.json
│   │   │       ├── comp-163.json
│   │   │       ├── comp-164.json
│   │   │       ├── comp-165.json
│   │   │       ├── comp-166.json
│   │   │       ├── comp-167.json
│   │   │       ├── comp-168.json
│   │   │       ├── comp-169.json
│   │   │       ├── comp-17.json
│   │   │       ├── comp-170.json
│   │   │       ├── comp-171.json
│   │   │       ├── comp-172.json
│   │   │       ├── comp-173.json
│   │   │       ├── comp-174.json
│   │   │       ├── comp-175.json
│   │   │       ├── comp-176.json
│   │   │       ├── comp-177.json
│   │   │       ├── comp-178.json
│   │   │       ├── comp-179.json
│   │   │       ├── comp-18.json
│   │   │       ├── comp-180.json
│   │   │       ├── comp-181.json
│   │   │       ├── comp-182.json
│   │   │       ├── comp-183.json
│   │   │       ├── comp-184.json
│   │   │       ├── comp-185.json
│   │   │       ├── comp-186.json
│   │   │       ├── comp-187.json
│   │   │       ├── comp-188.json
│   │   │       ├── comp-189.json
│   │   │       ├── comp-19.json
│   │   │       ├── comp-190.json
│   │   │       ├── comp-191.json
│   │   │       ├── comp-192.json
│   │   │       ├── comp-193.json
│   │   │       ├── comp-194.json
│   │   │       ├── comp-195.json
│   │   │       ├── comp-196.json
│   │   │       ├── comp-197.json
│   │   │       ├── comp-198.json
│   │   │       ├── comp-199.json
│   │   │       ├── comp-20.json
│   │   │       ├── comp-200.json
│   │   │       ├── comp-201.json
│   │   │       ├── comp-202.json
│   │   │       ├── comp-203.json
│   │   │       ├── comp-204.json
│   │   │       ├── comp-205.json
│   │   │       ├── comp-206.json
│   │   │       ├── comp-207.json
│   │   │       ├── comp-208.json
│   │   │       ├── comp-209.json
│   │   │       ├── comp-21.json
│   │   │       ├── comp-210.json
│   │   │       ├── comp-211.json
│   │   │       ├── comp-212.json
│   │   │       ├── comp-213.json
│   │   │       ├── comp-214.json
│   │   │       ├── comp-215.json
│   │   │       ├── comp-216.json
│   │   │       ├── comp-217.json
│   │   │       ├── comp-218.json
│   │   │       ├── comp-219.json
│   │   │       ├── comp-22.json
│   │   │       ├── comp-220.json
│   │   │       ├── comp-221.json
│   │   │       ├── comp-222.json
│   │   │       ├── comp-223.json
│   │   │       ├── comp-224.json
│   │   │       ├── comp-225.json
│   │   │       ├── comp-226.json
│   │   │       ├── comp-227.json
│   │   │       ├── comp-228.json
│   │   │       ├── comp-229.json
│   │   │       ├── comp-23.json
│   │   │       ├── comp-230.json
│   │   │       ├── comp-231.json
│   │   │       ├── comp-232.json
│   │   │       ├── comp-233.json
│   │   │       ├── comp-234.json
│   │   │       ├── comp-235.json
│   │   │       ├── comp-236.json
│   │   │       ├── comp-237.json
│   │   │       ├── comp-238.json
│   │   │       ├── comp-239.json
│   │   │       ├── comp-24.json
│   │   │       ├── comp-240.json
│   │   │       ├── comp-241.json
│   │   │       ├── comp-242.json
│   │   │       ├── comp-243.json
│   │   │       ├── comp-244.json
│   │   │       ├── comp-245.json
│   │   │       ├── comp-246.json
│   │   │       ├── comp-247.json
│   │   │       ├── comp-248.json
│   │   │       ├── comp-249.json
│   │   │       ├── comp-25.json
│   │   │       ├── comp-250.json
│   │   │       ├── comp-251.json
│   │   │       ├── comp-252.json
│   │   │       ├── comp-253.json
│   │   │       ├── comp-254.json
│   │   │       ├── comp-255.json
│   │   │       ├── comp-256.json
│   │   │       ├── comp-257.json
│   │   │       ├── comp-258.json
│   │   │       ├── comp-259.json
│   │   │       ├── comp-26.json
│   │   │       ├── comp-260.json
│   │   │       ├── comp-261.json
│   │   │       ├── comp-262.json
│   │   │       ├── comp-263.json
│   │   │       ├── comp-264.json
│   │   │       ├── comp-265.json
│   │   │       ├── comp-266.json
│   │   │       ├── comp-267.json
│   │   │       ├── comp-268.json
│   │   │       ├── comp-269.json
│   │   │       ├── comp-27.json
│   │   │       ├── comp-270.json
│   │   │       ├── comp-271.json
│   │   │       ├── comp-272.json
│   │   │       ├── comp-273.json
│   │   │       ├── comp-274.json
│   │   │       ├── comp-275.json
│   │   │       ├── comp-276.json
│   │   │       ├── comp-277.json
│   │   │       ├── comp-278.json
│   │   │       ├── comp-279.json
│   │   │       ├── comp-28.json
│   │   │       ├── comp-280.json
│   │   │       ├── comp-281.json
│   │   │       ├── comp-282.json
│   │   │       ├── comp-283.json
│   │   │       ├── comp-284.json
│   │   │       ├── comp-285.json
│   │   │       ├── comp-286.json
│   │   │       ├── comp-287.json
│   │   │       ├── comp-288.json
│   │   │       ├── comp-289.json
│   │   │       ├── comp-29.json
│   │   │       ├── comp-290.json
│   │   │       ├── comp-291.json
│   │   │       ├── comp-292.json
│   │   │       ├── comp-293.json
│   │   │       ├── comp-294.json
│   │   │       ├── comp-295.json
│   │   │       ├── comp-296.json
│   │   │       ├── comp-297.json
│   │   │       ├── comp-298.json
│   │   │       ├── comp-299.json
│   │   │       ├── comp-30.json
│   │   │       ├── comp-300.json
│   │   │       ├── comp-301.json
│   │   │       ├── comp-302.json
│   │   │       ├── comp-303.json
│   │   │       ├── comp-304.json
│   │   │       ├── comp-305.json
│   │   │       ├── comp-306.json
│   │   │       ├── comp-307.json
│   │   │       ├── comp-308.json
│   │   │       ├── comp-309.json
│   │   │       ├── comp-31.json
│   │   │       ├── comp-310.json
│   │   │       ├── comp-311.json
│   │   │       ├── comp-312.json
│   │   │       ├── comp-313.json
│   │   │       ├── comp-314.json
│   │   │       ├── comp-315.json
│   │   │       ├── comp-316.json
│   │   │       ├── comp-317.json
│   │   │       ├── comp-318.json
│   │   │       ├── comp-319.json
│   │   │       ├── comp-32.json
│   │   │       ├── comp-320.json
│   │   │       ├── comp-321.json
│   │   │       ├── comp-322.json
│   │   │       ├── comp-323.json
│   │   │       ├── comp-324.json
│   │   │       ├── comp-325.json
│   │   │       ├── comp-326.json
│   │   │       ├── comp-327.json
│   │   │       ├── comp-328.json
│   │   │       ├── comp-329.json
│   │   │       ├── comp-33.json
│   │   │       ├── comp-330.json
│   │   │       ├── comp-331.json
│   │   │       ├── comp-332.json
│   │   │       ├── comp-333.json
│   │   │       ├── comp-334.json
│   │   │       ├── comp-335.json
│   │   │       ├── comp-336.json
│   │   │       ├── comp-337.json
│   │   │       ├── comp-338.json
│   │   │       ├── comp-339.json
│   │   │       ├── comp-34.json
│   │   │       ├── comp-340.json
│   │   │       ├── comp-341.json
│   │   │       ├── comp-342.json
│   │   │       ├── comp-343.json
│   │   │       ├── comp-344.json
│   │   │       ├── comp-345.json
│   │   │       ├── comp-346.json
│   │   │       ├── comp-347.json
│   │   │       ├── comp-348.json
│   │   │       ├── comp-349.json
│   │   │       ├── comp-35.json
│   │   │       ├── comp-350.json
│   │   │       ├── comp-351.json
│   │   │       ├── comp-352.json
│   │   │       ├── comp-353.json
│   │   │       ├── comp-354.json
│   │   │       ├── comp-355.json
│   │   │       ├── comp-356.json
│   │   │       ├── comp-357.json
│   │   │       ├── comp-358.json
│   │   │       ├── comp-359.json
│   │   │       ├── comp-36.json
│   │   │       ├── comp-360.json
│   │   │       ├── comp-361.json
│   │   │       ├── comp-362.json
│   │   │       ├── comp-363.json
│   │   │       ├── comp-364.json
│   │   │       ├── comp-365.json
│   │   │       ├── comp-366.json
│   │   │       ├── comp-367.json
│   │   │       ├── comp-368.json
│   │   │       ├── comp-369.json
│   │   │       ├── comp-37.json
│   │   │       ├── comp-370.json
│   │   │       ├── comp-371.json
│   │   │       ├── comp-372.json
│   │   │       ├── comp-373.json
│   │   │       ├── comp-374.json
│   │   │       ├── comp-375.json
│   │   │       ├── comp-376.json
│   │   │       ├── comp-377.json
│   │   │       ├── comp-378.json
│   │   │       ├── comp-379.json
│   │   │       ├── comp-38.json
│   │   │       ├── comp-380.json
│   │   │       ├── comp-381.json
│   │   │       ├── comp-382.json
│   │   │       ├── comp-383.json
│   │   │       ├── comp-384.json
│   │   │       ├── comp-385.json
│   │   │       ├── comp-386.json
│   │   │       ├── comp-387.json
│   │   │       ├── comp-388.json
│   │   │       ├── comp-389.json
│   │   │       ├── comp-39.json
│   │   │       ├── comp-390.json
│   │   │       ├── comp-391.json
│   │   │       ├── comp-392.json
│   │   │       ├── comp-393.json
│   │   │       ├── comp-394.json
│   │   │       ├── comp-395.json
│   │   │       ├── comp-396.json
│   │   │       ├── comp-397.json
│   │   │       ├── comp-398.json
│   │   │       ├── comp-399.json
│   │   │       ├── comp-40.json
│   │   │       ├── comp-400.json
│   │   │       ├── comp-401.json
│   │   │       ├── comp-402.json
│   │   │       ├── comp-403.json
│   │   │       ├── comp-404.json
│   │   │       ├── comp-405.json
│   │   │       ├── comp-406.json
│   │   │       ├── comp-407.json
│   │   │       ├── comp-408.json
│   │   │       ├── comp-409.json
│   │   │       ├── comp-41.json
│   │   │       ├── comp-410.json
│   │   │       ├── comp-411.json
│   │   │       ├── comp-412.json
│   │   │       ├── comp-413.json
│   │   │       ├── comp-414.json
│   │   │       ├── comp-415.json
│   │   │       ├── comp-416.json
│   │   │       ├── comp-417.json
│   │   │       ├── comp-418.json
│   │   │       ├── comp-419.json
│   │   │       ├── comp-42.json
│   │   │       ├── comp-420.json
│   │   │       ├── comp-421.json
│   │   │       ├── comp-422.json
│   │   │       ├── comp-423.json
│   │   │       ├── comp-424.json
│   │   │       ├── comp-425.json
│   │   │       ├── comp-426.json
│   │   │       ├── comp-427.json
│   │   │       ├── comp-428.json
│   │   │       ├── comp-429.json
│   │   │       ├── comp-43.json
│   │   │       ├── comp-430.json
│   │   │       ├── comp-431.json
│   │   │       ├── comp-432.json
│   │   │       ├── comp-433.json
│   │   │       ├── comp-434.json
│   │   │       ├── comp-435.json
│   │   │       ├── comp-436.json
│   │   │       ├── comp-437.json
│   │   │       ├── comp-438.json
│   │   │       ├── comp-439.json
│   │   │       ├── comp-44.json
│   │   │       ├── comp-440.json
│   │   │       ├── comp-441.json
│   │   │       ├── comp-442.json
│   │   │       ├── comp-443.json
│   │   │       ├── comp-444.json
│   │   │       ├── comp-445.json
│   │   │       ├── comp-446.json
│   │   │       ├── comp-447.json
│   │   │       ├── comp-448.json
│   │   │       ├── comp-449.json
│   │   │       ├── comp-45.json
│   │   │       ├── comp-450.json
│   │   │       ├── comp-451.json
│   │   │       ├── comp-452.json
│   │   │       ├── comp-453.json
│   │   │       ├── comp-454.json
│   │   │       ├── comp-455.json
│   │   │       ├── comp-456.json
│   │   │       ├── comp-457.json
│   │   │       ├── comp-458.json
│   │   │       ├── comp-459.json
│   │   │       ├── comp-46.json
│   │   │       ├── comp-460.json
│   │   │       ├── comp-461.json
│   │   │       ├── comp-462.json
│   │   │       ├── comp-463.json
│   │   │       ├── comp-464.json
│   │   │       ├── comp-465.json
│   │   │       ├── comp-466.json
│   │   │       ├── comp-467.json
│   │   │       ├── comp-468.json
│   │   │       ├── comp-469.json
│   │   │       ├── comp-47.json
│   │   │       ├── comp-470.json
│   │   │       ├── comp-471.json
│   │   │       ├── comp-472.json
│   │   │       ├── comp-473.json
│   │   │       ├── comp-474.json
│   │   │       ├── comp-475.json
│   │   │       ├── comp-476.json
│   │   │       ├── comp-477.json
│   │   │       ├── comp-478.json
│   │   │       ├── comp-479.json
│   │   │       ├── comp-48.json
│   │   │       ├── comp-480.json
│   │   │       ├── comp-481.json
│   │   │       ├── comp-482.json
│   │   │       ├── comp-483.json
│   │   │       ├── comp-484.json
│   │   │       ├── comp-485.json
│   │   │       ├── comp-486.json
│   │   │       ├── comp-487.json
│   │   │       ├── comp-488.json
│   │   │       ├── comp-489.json
│   │   │       ├── comp-49.json
│   │   │       ├── comp-490.json
│   │   │       ├── comp-491.json
│   │   │       ├── comp-492.json
│   │   │       ├── comp-493.json
│   │   │       ├── comp-494.json
│   │   │       ├── comp-495.json
│   │   │       ├── comp-496.json
│   │   │       ├── comp-497.json
│   │   │       ├── comp-498.json
│   │   │       ├── comp-499.json
│   │   │       ├── comp-50.json
│   │   │       ├── comp-500.json
│   │   │       ├── comp-501.json
│   │   │       ├── comp-502.json
│   │   │       ├── comp-503.json
│   │   │       ├── comp-504.json
│   │   │       ├── comp-505.json
│   │   │       ├── comp-506.json
│   │   │       ├── comp-507.json
│   │   │       ├── comp-508.json
│   │   │       ├── comp-509.json
│   │   │       ├── comp-51.json
│   │   │       ├── comp-510.json
│   │   │       ├── comp-511.json
│   │   │       ├── comp-512.json
│   │   │       ├── comp-513.json
│   │   │       ├── comp-514.json
│   │   │       ├── comp-515.json
│   │   │       ├── comp-516.json
│   │   │       ├── comp-517.json
│   │   │       ├── comp-518.json
│   │   │       ├── comp-519.json
│   │   │       ├── comp-52.json
│   │   │       ├── comp-520.json
│   │   │       ├── comp-521.json
│   │   │       ├── comp-522.json
│   │   │       ├── comp-523.json
│   │   │       ├── comp-524.json
│   │   │       ├── comp-525.json
│   │   │       ├── comp-526.json
│   │   │       ├── comp-527.json
│   │   │       ├── comp-528.json
│   │   │       ├── comp-529.json
│   │   │       ├── comp-53.json
│   │   │       ├── comp-530.json
│   │   │       ├── comp-531.json
│   │   │       ├── comp-532.json
│   │   │       ├── comp-533.json
│   │   │       ├── comp-534.json
│   │   │       ├── comp-535.json
│   │   │       ├── comp-536.json
│   │   │       ├── comp-537.json
│   │   │       ├── comp-538.json
│   │   │       ├── comp-539.json
│   │   │       ├── comp-54.json
│   │   │       ├── comp-540.json
│   │   │       ├── comp-541.json
│   │   │       ├── comp-542.json
│   │   │       ├── comp-543.json
│   │   │       ├── comp-544.json
│   │   │       ├── comp-545.json
│   │   │       ├── comp-546.json
│   │   │       ├── comp-547.json
│   │   │       ├── comp-548.json
│   │   │       ├── comp-549.json
│   │   │       ├── comp-55.json
│   │   │       ├── comp-550.json
│   │   │       ├── comp-551.json
│   │   │       ├── comp-552.json
│   │   │       ├── comp-553.json
│   │   │       ├── comp-554.json
│   │   │       ├── comp-555.json
│   │   │       ├── comp-556.json
│   │   │       ├── comp-557.json
│   │   │       ├── comp-558.json
│   │   │       ├── comp-559.json
│   │   │       ├── comp-56.json
│   │   │       ├── comp-560.json
│   │   │       ├── comp-561.json
│   │   │       ├── comp-562.json
│   │   │       ├── comp-563.json
│   │   │       ├── comp-564.json
│   │   │       ├── comp-565.json
│   │   │       ├── comp-566.json
│   │   │       ├── comp-567.json
│   │   │       ├── comp-568.json
│   │   │       ├── comp-569.json
│   │   │       ├── comp-57.json
│   │   │       ├── comp-570.json
│   │   │       ├── comp-571.json
│   │   │       ├── comp-572.json
│   │   │       ├── comp-573.json
│   │   │       ├── comp-574.json
│   │   │       ├── comp-575.json
│   │   │       ├── comp-576.json
│   │   │       ├── comp-577.json
│   │   │       ├── comp-578.json
│   │   │       ├── comp-579.json
│   │   │       ├── comp-58.json
│   │   │       ├── comp-580.json
│   │   │       ├── comp-581.json
│   │   │       ├── comp-582.json
│   │   │       ├── comp-583.json
│   │   │       ├── comp-584.json
│   │   │       ├── comp-585.json
│   │   │       ├── comp-586.json
│   │   │       ├── comp-587.json
│   │   │       ├── comp-588.json
│   │   │       ├── comp-589.json
│   │   │       ├── comp-59.json
│   │   │       ├── comp-590.json
│   │   │       ├── comp-591.json
│   │   │       ├── comp-592.json
│   │   │       ├── comp-593.json
│   │   │       ├── comp-594.json
│   │   │       ├── comp-595.json
│   │   │       ├── comp-596.json
│   │   │       ├── comp-597.json
│   │   │       ├── comp-598.json
│   │   │       ├── comp-599.json
│   │   │       ├── comp-60.json
│   │   │       ├── comp-61.json
│   │   │       ├── comp-62.json
│   │   │       ├── comp-63.json
│   │   │       ├── comp-64.json
│   │   │       ├── comp-65.json
│   │   │       ├── comp-66.json
│   │   │       ├── comp-67.json
│   │   │       ├── comp-68.json
│   │   │       ├── comp-69.json
│   │   │       ├── comp-70.json
│   │   │       ├── comp-71.json
│   │   │       ├── comp-72.json
│   │   │       ├── comp-73.json
│   │   │       ├── comp-74.json
│   │   │       ├── comp-75.json
│   │   │       ├── comp-76.json
│   │   │       ├── comp-77.json
│   │   │       ├── comp-78.json
│   │   │       ├── comp-79.json
│   │   │       ├── comp-80.json
│   │   │       ├── comp-81.json
│   │   │       ├── comp-82.json
│   │   │       ├── comp-83.json
│   │   │       ├── comp-84.json
│   │   │       ├── comp-85.json
│   │   │       ├── comp-86.json
│   │   │       ├── comp-87.json
│   │   │       ├── comp-88.json
│   │   │       ├── comp-89.json
│   │   │       ├── comp-90.json
│   │   │       ├── comp-91.json
│   │   │       ├── comp-92.json
│   │   │       ├── comp-93.json
│   │   │       ├── comp-94.json
│   │   │       ├── comp-95.json
│   │   │       ├── comp-96.json
│   │   │       ├── comp-97.json
│   │   │       ├── comp-98.json
│   │   │       ├── comp-99.json
│   │   │       ├── cropper.json
│   │   │       ├── datefield-rac.json
│   │   │       ├── dialog.json
│   │   │       ├── dropdown-menu.json
│   │   │       ├── hover-card.json
│   │   │       ├── input.json
│   │   │       ├── label.json
│   │   │       ├── multiselect.json
│   │   │       ├── navigation-menu.json
│   │   │       ├── pagination.json
│   │   │       ├── popover.json
│   │   │       ├── progress.json
│   │   │       ├── radio-group.json
│   │   │       ├── scroll-area.json
│   │   │       ├── select-native.json
│   │   │       ├── select.json
│   │   │       ├── slider.json
│   │   │       ├── sonner.json
│   │   │       ├── stepper.json
│   │   │       ├── switch.json
│   │   │       ├── table.json
│   │   │       ├── tabs.json
│   │   │       ├── textarea.json
│   │   │       ├── timeline.json
│   │   │       ├── toast.json
│   │   │       ├── toggle-group.json
│   │   │       ├── toggle.json
│   │   │       ├── tooltip.json
│   │   │       ├── tree.json
│   │   │       ├── use-character-limit.json
│   │   │       ├── use-file-upload.json
│   │   │       ├── use-pagination.json
│   │   │       ├── use-slider-with-input.json
│   │   │       ├── use-toast.json
│   │   │       └── utils.json
│   │   ├── registry/
│   │   │   ├── default/
│   │   │   │   ├── components/
│   │   │   │   │   ├── comp-01.tsx
│   │   │   │   │   ├── comp-02.tsx
│   │   │   │   │   ├── comp-03.tsx
│   │   │   │   │   ├── comp-04.tsx
│   │   │   │   │   ├── comp-05.tsx
│   │   │   │   │   ├── comp-06.tsx
│   │   │   │   │   ├── comp-07.tsx
│   │   │   │   │   ├── comp-08.tsx
│   │   │   │   │   ├── comp-09.tsx
│   │   │   │   │   ├── comp-10.tsx
│   │   │   │   │   ├── comp-100.tsx
│   │   │   │   │   ├── comp-101.tsx
│   │   │   │   │   ├── comp-102.tsx
│   │   │   │   │   ├── comp-103.tsx
│   │   │   │   │   ├── comp-104.tsx
│   │   │   │   │   ├── comp-105.tsx
│   │   │   │   │   ├── comp-106.tsx
│   │   │   │   │   ├── comp-107.tsx
│   │   │   │   │   ├── comp-108.tsx
│   │   │   │   │   ├── comp-109.tsx
│   │   │   │   │   ├── comp-11.tsx
│   │   │   │   │   ├── comp-110.tsx
│   │   │   │   │   ├── comp-111.tsx
│   │   │   │   │   ├── comp-112.tsx
│   │   │   │   │   ├── comp-113.tsx
│   │   │   │   │   ├── comp-114.tsx
│   │   │   │   │   ├── comp-115.tsx
│   │   │   │   │   ├── comp-116.tsx
│   │   │   │   │   ├── comp-117.tsx
│   │   │   │   │   ├── comp-118.tsx
│   │   │   │   │   ├── comp-119.tsx
│   │   │   │   │   ├── comp-12.tsx
│   │   │   │   │   ├── comp-120.tsx
│   │   │   │   │   ├── comp-121.tsx
│   │   │   │   │   ├── comp-122.tsx
│   │   │   │   │   ├── comp-123.tsx
│   │   │   │   │   ├── comp-124.tsx
│   │   │   │   │   ├── comp-125.tsx
│   │   │   │   │   ├── comp-126.tsx
│   │   │   │   │   ├── comp-127.tsx
│   │   │   │   │   ├── comp-128.tsx
│   │   │   │   │   ├── comp-129.tsx
│   │   │   │   │   ├── comp-13.tsx
│   │   │   │   │   ├── comp-130.tsx
│   │   │   │   │   ├── comp-131.tsx
│   │   │   │   │   ├── comp-132.tsx
│   │   │   │   │   ├── comp-133.tsx
│   │   │   │   │   ├── comp-134.tsx
│   │   │   │   │   ├── comp-135.tsx
│   │   │   │   │   ├── comp-136.tsx
│   │   │   │   │   ├── comp-137.tsx
│   │   │   │   │   ├── comp-138.tsx
│   │   │   │   │   ├── comp-139.tsx
│   │   │   │   │   ├── comp-14.tsx
│   │   │   │   │   ├── comp-140.tsx
│   │   │   │   │   ├── comp-141.tsx
│   │   │   │   │   ├── comp-142.tsx
│   │   │   │   │   ├── comp-143.tsx
│   │   │   │   │   ├── comp-144.tsx
│   │   │   │   │   ├── comp-145.tsx
│   │   │   │   │   ├── comp-146.tsx
│   │   │   │   │   ├── comp-147.tsx
│   │   │   │   │   ├── comp-148.tsx
│   │   │   │   │   ├── comp-149.tsx
│   │   │   │   │   ├── comp-15.tsx
│   │   │   │   │   ├── comp-150.tsx
│   │   │   │   │   ├── comp-151.tsx
│   │   │   │   │   ├── comp-152.tsx
│   │   │   │   │   ├── comp-153.tsx
│   │   │   │   │   ├── comp-154.tsx
│   │   │   │   │   ├── comp-155.tsx
│   │   │   │   │   ├── comp-156.tsx
│   │   │   │   │   ├── comp-157.tsx
│   │   │   │   │   ├── comp-158.tsx
│   │   │   │   │   ├── comp-159.tsx
│   │   │   │   │   ├── comp-16.tsx
│   │   │   │   │   ├── comp-160.tsx
│   │   │   │   │   ├── comp-161.tsx
│   │   │   │   │   ├── comp-162.tsx
│   │   │   │   │   ├── comp-163.tsx
│   │   │   │   │   ├── comp-164.tsx
│   │   │   │   │   ├── comp-165.tsx
│   │   │   │   │   ├── comp-166.tsx
│   │   │   │   │   ├── comp-167.tsx
│   │   │   │   │   ├── comp-168.tsx
│   │   │   │   │   ├── comp-169.tsx
│   │   │   │   │   ├── comp-17.tsx
│   │   │   │   │   ├── comp-170.tsx
│   │   │   │   │   ├── comp-171.tsx
│   │   │   │   │   ├── comp-172.tsx
│   │   │   │   │   ├── comp-173.tsx
│   │   │   │   │   ├── comp-174.tsx
│   │   │   │   │   ├── comp-175.tsx
│   │   │   │   │   ├── comp-176.tsx
│   │   │   │   │   ├── comp-177.tsx
│   │   │   │   │   ├── comp-178.tsx
│   │   │   │   │   ├── comp-179.tsx
│   │   │   │   │   ├── comp-18.tsx
│   │   │   │   │   ├── comp-180.tsx
│   │   │   │   │   ├── comp-181.tsx
│   │   │   │   │   ├── comp-182.tsx
│   │   │   │   │   ├── comp-183.tsx
│   │   │   │   │   ├── comp-184.tsx
│   │   │   │   │   ├── comp-185.tsx
│   │   │   │   │   ├── comp-186.tsx
│   │   │   │   │   ├── comp-187.tsx
│   │   │   │   │   ├── comp-188.tsx
│   │   │   │   │   ├── comp-189.tsx
│   │   │   │   │   ├── comp-19.tsx
│   │   │   │   │   ├── comp-190.tsx
│   │   │   │   │   ├── comp-191.tsx
│   │   │   │   │   ├── comp-192.tsx
│   │   │   │   │   ├── comp-193.tsx
│   │   │   │   │   ├── comp-194.tsx
│   │   │   │   │   ├── comp-195.tsx
│   │   │   │   │   ├── comp-196.tsx
│   │   │   │   │   ├── comp-197.tsx
│   │   │   │   │   ├── comp-198.tsx
│   │   │   │   │   ├── comp-199.tsx
│   │   │   │   │   ├── comp-20.tsx
│   │   │   │   │   ├── comp-200.tsx
│   │   │   │   │   ├── comp-201.tsx
│   │   │   │   │   ├── comp-202.tsx
│   │   │   │   │   ├── comp-203.tsx
│   │   │   │   │   ├── comp-204.tsx
│   │   │   │   │   ├── comp-205.tsx
│   │   │   │   │   ├── comp-206.tsx
│   │   │   │   │   ├── comp-207.tsx
│   │   │   │   │   ├── comp-208.tsx
│   │   │   │   │   ├── comp-209.tsx
│   │   │   │   │   ├── comp-21.tsx
│   │   │   │   │   ├── comp-210.tsx
│   │   │   │   │   ├── comp-211.tsx
│   │   │   │   │   ├── comp-212.tsx
│   │   │   │   │   ├── comp-213.tsx
│   │   │   │   │   ├── comp-214.tsx
│   │   │   │   │   ├── comp-215.tsx
│   │   │   │   │   ├── comp-216.tsx
│   │   │   │   │   ├── comp-217.tsx
│   │   │   │   │   ├── comp-218.tsx
│   │   │   │   │   ├── comp-219.tsx
│   │   │   │   │   ├── comp-22.tsx
│   │   │   │   │   ├── comp-220.tsx
│   │   │   │   │   ├── comp-221.tsx
│   │   │   │   │   ├── comp-222.tsx
│   │   │   │   │   ├── comp-223.tsx
│   │   │   │   │   ├── comp-224.tsx
│   │   │   │   │   ├── comp-225.tsx
│   │   │   │   │   ├── comp-226.tsx
│   │   │   │   │   ├── comp-227.tsx
│   │   │   │   │   ├── comp-228.tsx
│   │   │   │   │   ├── comp-229.tsx
│   │   │   │   │   ├── comp-23.tsx
│   │   │   │   │   ├── comp-230.tsx
│   │   │   │   │   ├── comp-231.tsx
│   │   │   │   │   ├── comp-232.tsx
│   │   │   │   │   ├── comp-233.tsx
│   │   │   │   │   ├── comp-234.tsx
│   │   │   │   │   ├── comp-235.tsx
│   │   │   │   │   ├── comp-236.tsx
│   │   │   │   │   ├── comp-237.tsx
│   │   │   │   │   ├── comp-238.tsx
│   │   │   │   │   ├── comp-239.tsx
│   │   │   │   │   ├── comp-24.tsx
│   │   │   │   │   ├── comp-240.tsx
│   │   │   │   │   ├── comp-241.tsx
│   │   │   │   │   ├── comp-242.tsx
│   │   │   │   │   ├── comp-243.tsx
│   │   │   │   │   ├── comp-244.tsx
│   │   │   │   │   ├── comp-245.tsx
│   │   │   │   │   ├── comp-246.tsx
│   │   │   │   │   ├── comp-247.tsx
│   │   │   │   │   ├── comp-248.tsx
│   │   │   │   │   ├── comp-249.tsx
│   │   │   │   │   ├── comp-25.tsx
│   │   │   │   │   ├── comp-250.tsx
│   │   │   │   │   ├── comp-251.tsx
│   │   │   │   │   ├── comp-252.tsx
│   │   │   │   │   ├── comp-253.tsx
│   │   │   │   │   ├── comp-254.tsx
│   │   │   │   │   ├── comp-255.tsx
│   │   │   │   │   ├── comp-256.tsx
│   │   │   │   │   ├── comp-257.tsx
│   │   │   │   │   ├── comp-258.tsx
│   │   │   │   │   ├── comp-259.tsx
│   │   │   │   │   ├── comp-26.tsx
│   │   │   │   │   ├── comp-260.tsx
│   │   │   │   │   ├── comp-261.tsx
│   │   │   │   │   ├── comp-262.tsx
│   │   │   │   │   ├── comp-263.tsx
│   │   │   │   │   ├── comp-264.tsx
│   │   │   │   │   ├── comp-265.tsx
│   │   │   │   │   ├── comp-266.tsx
│   │   │   │   │   ├── comp-267.tsx
│   │   │   │   │   ├── comp-268.tsx
│   │   │   │   │   ├── comp-269.tsx
│   │   │   │   │   ├── comp-27.tsx
│   │   │   │   │   ├── comp-270.tsx
│   │   │   │   │   ├── comp-271.tsx
│   │   │   │   │   ├── comp-272.tsx
│   │   │   │   │   ├── comp-273.tsx
│   │   │   │   │   ├── comp-274.tsx
│   │   │   │   │   ├── comp-275.tsx
│   │   │   │   │   ├── comp-276.tsx
│   │   │   │   │   ├── comp-277.tsx
│   │   │   │   │   ├── comp-278.tsx
│   │   │   │   │   ├── comp-279.tsx
│   │   │   │   │   ├── comp-28.tsx
│   │   │   │   │   ├── comp-280.tsx
│   │   │   │   │   ├── comp-281.tsx
│   │   │   │   │   ├── comp-282.tsx
│   │   │   │   │   ├── comp-283.tsx
│   │   │   │   │   ├── comp-284.tsx
│   │   │   │   │   ├── comp-285.tsx
│   │   │   │   │   ├── comp-286.tsx
│   │   │   │   │   ├── comp-287.tsx
│   │   │   │   │   ├── comp-288.tsx
│   │   │   │   │   ├── comp-289.tsx
│   │   │   │   │   ├── comp-29.tsx
│   │   │   │   │   ├── comp-290.tsx
│   │   │   │   │   ├── comp-291.tsx
│   │   │   │   │   ├── comp-292.tsx
│   │   │   │   │   ├── comp-293.tsx
│   │   │   │   │   ├── comp-294.tsx
│   │   │   │   │   ├── comp-295.tsx
│   │   │   │   │   ├── comp-296.tsx
│   │   │   │   │   ├── comp-297.tsx
│   │   │   │   │   ├── comp-298.tsx
│   │   │   │   │   ├── comp-299.tsx
│   │   │   │   │   ├── comp-30.tsx
│   │   │   │   │   ├── comp-300.tsx
│   │   │   │   │   ├── comp-301.tsx
│   │   │   │   │   ├── comp-302.tsx
│   │   │   │   │   ├── comp-303.tsx
│   │   │   │   │   ├── comp-304.tsx
│   │   │   │   │   ├── comp-305.tsx
│   │   │   │   │   ├── comp-306.tsx
│   │   │   │   │   ├── comp-307.tsx
│   │   │   │   │   ├── comp-308.tsx
│   │   │   │   │   ├── comp-309.tsx
│   │   │   │   │   ├── comp-31.tsx
│   │   │   │   │   ├── comp-310.tsx
│   │   │   │   │   ├── comp-311.tsx
│   │   │   │   │   ├── comp-312.tsx
│   │   │   │   │   ├── comp-313.tsx
│   │   │   │   │   ├── comp-314.tsx
│   │   │   │   │   ├── comp-315.tsx
│   │   │   │   │   ├── comp-316.tsx
│   │   │   │   │   ├── comp-317.tsx
│   │   │   │   │   ├── comp-318.tsx
│   │   │   │   │   ├── comp-319.tsx
│   │   │   │   │   ├── comp-32.tsx
│   │   │   │   │   ├── comp-320.tsx
│   │   │   │   │   ├── comp-321.tsx
│   │   │   │   │   ├── comp-322.tsx
│   │   │   │   │   ├── comp-323.tsx
│   │   │   │   │   ├── comp-324.tsx
│   │   │   │   │   ├── comp-325.tsx
│   │   │   │   │   ├── comp-326.tsx
│   │   │   │   │   ├── comp-327.tsx
│   │   │   │   │   ├── comp-328.tsx
│   │   │   │   │   ├── comp-329.tsx
│   │   │   │   │   ├── comp-33.tsx
│   │   │   │   │   ├── comp-330.tsx
│   │   │   │   │   ├── comp-331.tsx
│   │   │   │   │   ├── comp-332.tsx
│   │   │   │   │   ├── comp-333.tsx
│   │   │   │   │   ├── comp-334.tsx
│   │   │   │   │   ├── comp-335.tsx
│   │   │   │   │   ├── comp-336.tsx
│   │   │   │   │   ├── comp-337.tsx
│   │   │   │   │   ├── comp-338.tsx
│   │   │   │   │   ├── comp-339.tsx
│   │   │   │   │   ├── comp-34.tsx
│   │   │   │   │   ├── comp-340.tsx
│   │   │   │   │   ├── comp-341.tsx
│   │   │   │   │   ├── comp-342.tsx
│   │   │   │   │   ├── comp-343.tsx
│   │   │   │   │   ├── comp-344.tsx
│   │   │   │   │   ├── comp-345.tsx
│   │   │   │   │   ├── comp-346.tsx
│   │   │   │   │   ├── comp-347.tsx
│   │   │   │   │   ├── comp-348.tsx
│   │   │   │   │   ├── comp-349.tsx
│   │   │   │   │   ├── comp-35.tsx
│   │   │   │   │   ├── comp-350.tsx
│   │   │   │   │   ├── comp-351.tsx
│   │   │   │   │   ├── comp-352.tsx
│   │   │   │   │   ├── comp-353.tsx
│   │   │   │   │   ├── comp-354.tsx
│   │   │   │   │   ├── comp-355.tsx
│   │   │   │   │   ├── comp-356.tsx
│   │   │   │   │   ├── comp-357.tsx
│   │   │   │   │   ├── comp-358.tsx
│   │   │   │   │   ├── comp-359.tsx
│   │   │   │   │   ├── comp-36.tsx
│   │   │   │   │   ├── comp-360.tsx
│   │   │   │   │   ├── comp-361.tsx
│   │   │   │   │   ├── comp-362.tsx
│   │   │   │   │   ├── comp-363.tsx
│   │   │   │   │   ├── comp-364.tsx
│   │   │   │   │   ├── comp-365.tsx
│   │   │   │   │   ├── comp-366.tsx
│   │   │   │   │   ├── comp-367.tsx
│   │   │   │   │   ├── comp-368.tsx
│   │   │   │   │   ├── comp-369.tsx
│   │   │   │   │   ├── comp-37.tsx
│   │   │   │   │   ├── comp-370.tsx
│   │   │   │   │   ├── comp-371.tsx
│   │   │   │   │   ├── comp-372.tsx
│   │   │   │   │   ├── comp-373.tsx
│   │   │   │   │   ├── comp-374.tsx
│   │   │   │   │   ├── comp-375.tsx
│   │   │   │   │   ├── comp-376.tsx
│   │   │   │   │   ├── comp-377.tsx
│   │   │   │   │   ├── comp-378.tsx
│   │   │   │   │   ├── comp-379.tsx
│   │   │   │   │   ├── comp-38.tsx
│   │   │   │   │   ├── comp-380.tsx
│   │   │   │   │   ├── comp-381.tsx
│   │   │   │   │   ├── comp-382.tsx
│   │   │   │   │   ├── comp-383.tsx
│   │   │   │   │   ├── comp-384.tsx
│   │   │   │   │   ├── comp-385.tsx
│   │   │   │   │   ├── comp-386.tsx
│   │   │   │   │   ├── comp-387.tsx
│   │   │   │   │   ├── comp-388.tsx
│   │   │   │   │   ├── comp-389.tsx
│   │   │   │   │   ├── comp-39.tsx
│   │   │   │   │   ├── comp-390.tsx
│   │   │   │   │   ├── comp-391.tsx
│   │   │   │   │   ├── comp-392.tsx
│   │   │   │   │   ├── comp-393.tsx
│   │   │   │   │   ├── comp-394.tsx
│   │   │   │   │   ├── comp-395.tsx
│   │   │   │   │   ├── comp-396.tsx
│   │   │   │   │   ├── comp-397.tsx
│   │   │   │   │   ├── comp-398.tsx
│   │   │   │   │   ├── comp-399.tsx
│   │   │   │   │   ├── comp-40.tsx
│   │   │   │   │   ├── comp-400.tsx
│   │   │   │   │   ├── comp-401.tsx
│   │   │   │   │   ├── comp-402.tsx
│   │   │   │   │   ├── comp-403.tsx
│   │   │   │   │   ├── comp-404.tsx
│   │   │   │   │   ├── comp-405.tsx
│   │   │   │   │   ├── comp-406.tsx
│   │   │   │   │   ├── comp-407.tsx
│   │   │   │   │   ├── comp-408.tsx
│   │   │   │   │   ├── comp-409.tsx
│   │   │   │   │   ├── comp-41.tsx
│   │   │   │   │   ├── comp-410.tsx
│   │   │   │   │   ├── comp-411.tsx
│   │   │   │   │   ├── comp-412.tsx
│   │   │   │   │   ├── comp-413.tsx
│   │   │   │   │   ├── comp-414.tsx
│   │   │   │   │   ├── comp-415.tsx
│   │   │   │   │   ├── comp-416.tsx
│   │   │   │   │   ├── comp-417.tsx
│   │   │   │   │   ├── comp-418.tsx
│   │   │   │   │   ├── comp-419.tsx
│   │   │   │   │   ├── comp-42.tsx
│   │   │   │   │   ├── comp-420.tsx
│   │   │   │   │   ├── comp-421.tsx
│   │   │   │   │   ├── comp-422.tsx
│   │   │   │   │   ├── comp-423.tsx
│   │   │   │   │   ├── comp-424.tsx
│   │   │   │   │   ├── comp-425.tsx
│   │   │   │   │   ├── comp-426.tsx
│   │   │   │   │   ├── comp-427.tsx
│   │   │   │   │   ├── comp-428.tsx
│   │   │   │   │   ├── comp-429.tsx
│   │   │   │   │   ├── comp-43.tsx
│   │   │   │   │   ├── comp-430.tsx
│   │   │   │   │   ├── comp-431.tsx
│   │   │   │   │   ├── comp-432.tsx
│   │   │   │   │   ├── comp-433.tsx
│   │   │   │   │   ├── comp-434.tsx
│   │   │   │   │   ├── comp-435.tsx
│   │   │   │   │   ├── comp-436.tsx
│   │   │   │   │   ├── comp-437.tsx
│   │   │   │   │   ├── comp-438.tsx
│   │   │   │   │   ├── comp-439.tsx
│   │   │   │   │   ├── comp-44.tsx
│   │   │   │   │   ├── comp-440.tsx
│   │   │   │   │   ├── comp-441.tsx
│   │   │   │   │   ├── comp-442.tsx
│   │   │   │   │   ├── comp-443.tsx
│   │   │   │   │   ├── comp-444.tsx
│   │   │   │   │   ├── comp-445.tsx
│   │   │   │   │   ├── comp-446.tsx
│   │   │   │   │   ├── comp-447.tsx
│   │   │   │   │   ├── comp-448.tsx
│   │   │   │   │   ├── comp-449.tsx
│   │   │   │   │   ├── comp-45.tsx
│   │   │   │   │   ├── comp-450.tsx
│   │   │   │   │   ├── comp-451.tsx
│   │   │   │   │   ├── comp-452.tsx
│   │   │   │   │   ├── comp-453.tsx
│   │   │   │   │   ├── comp-454.tsx
│   │   │   │   │   ├── comp-455.tsx
│   │   │   │   │   ├── comp-456.tsx
│   │   │   │   │   ├── comp-457.tsx
│   │   │   │   │   ├── comp-458.tsx
│   │   │   │   │   ├── comp-459.tsx
│   │   │   │   │   ├── comp-46.tsx
│   │   │   │   │   ├── comp-460.tsx
│   │   │   │   │   ├── comp-461.tsx
│   │   │   │   │   ├── comp-462.tsx
│   │   │   │   │   ├── comp-463.tsx
│   │   │   │   │   ├── comp-464.tsx
│   │   │   │   │   ├── comp-465.tsx
│   │   │   │   │   ├── comp-466.tsx
│   │   │   │   │   ├── comp-467.tsx
│   │   │   │   │   ├── comp-468.tsx
│   │   │   │   │   ├── comp-469.tsx
│   │   │   │   │   ├── comp-47.tsx
│   │   │   │   │   ├── comp-470.tsx
│   │   │   │   │   ├── comp-471.tsx
│   │   │   │   │   ├── comp-472.tsx
│   │   │   │   │   ├── comp-473.tsx
│   │   │   │   │   ├── comp-474.tsx
│   │   │   │   │   ├── comp-475.tsx
│   │   │   │   │   ├── comp-476.tsx
│   │   │   │   │   ├── comp-477.tsx
│   │   │   │   │   ├── comp-478.tsx
│   │   │   │   │   ├── comp-479.tsx
│   │   │   │   │   ├── comp-48.tsx
│   │   │   │   │   ├── comp-480.tsx
│   │   │   │   │   ├── comp-481.tsx
│   │   │   │   │   ├── comp-482.tsx
│   │   │   │   │   ├── comp-483.tsx
│   │   │   │   │   ├── comp-484.tsx
│   │   │   │   │   ├── comp-485.tsx
│   │   │   │   │   ├── comp-486.tsx
│   │   │   │   │   ├── comp-487.tsx
│   │   │   │   │   ├── comp-488.tsx
│   │   │   │   │   ├── comp-489.tsx
│   │   │   │   │   ├── comp-49.tsx
│   │   │   │   │   ├── comp-490.tsx
│   │   │   │   │   ├── comp-491.tsx
│   │   │   │   │   ├── comp-492.tsx
│   │   │   │   │   ├── comp-493.tsx
│   │   │   │   │   ├── comp-494.tsx
│   │   │   │   │   ├── comp-495.tsx
│   │   │   │   │   ├── comp-496.tsx
│   │   │   │   │   ├── comp-497.tsx
│   │   │   │   │   ├── comp-498.tsx
│   │   │   │   │   ├── comp-499.tsx
│   │   │   │   │   ├── comp-50.tsx
│   │   │   │   │   ├── comp-500.tsx
│   │   │   │   │   ├── comp-501.tsx
│   │   │   │   │   ├── comp-502.tsx
│   │   │   │   │   ├── comp-503.tsx
│   │   │   │   │   ├── comp-504.tsx
│   │   │   │   │   ├── comp-505.tsx
│   │   │   │   │   ├── comp-506.tsx
│   │   │   │   │   ├── comp-507.tsx
│   │   │   │   │   ├── comp-508.tsx
│   │   │   │   │   ├── comp-509.tsx
│   │   │   │   │   ├── comp-51.tsx
│   │   │   │   │   ├── comp-510.tsx
│   │   │   │   │   ├── comp-511.tsx
│   │   │   │   │   ├── comp-512.tsx
│   │   │   │   │   ├── comp-513.tsx
│   │   │   │   │   ├── comp-514.tsx
│   │   │   │   │   ├── comp-515.tsx
│   │   │   │   │   ├── comp-516.tsx
│   │   │   │   │   ├── comp-517.tsx
│   │   │   │   │   ├── comp-518.tsx
│   │   │   │   │   ├── comp-519.tsx
│   │   │   │   │   ├── comp-52.tsx
│   │   │   │   │   ├── comp-520.tsx
│   │   │   │   │   ├── comp-521.tsx
│   │   │   │   │   ├── comp-522.tsx
│   │   │   │   │   ├── comp-523.tsx
│   │   │   │   │   ├── comp-524.tsx
│   │   │   │   │   ├── comp-525.tsx
│   │   │   │   │   ├── comp-526.tsx
│   │   │   │   │   ├── comp-527.tsx
│   │   │   │   │   ├── comp-528.tsx
│   │   │   │   │   ├── comp-529.tsx
│   │   │   │   │   ├── comp-53.tsx
│   │   │   │   │   ├── comp-530.tsx
│   │   │   │   │   ├── comp-531.tsx
│   │   │   │   │   ├── comp-532.tsx
│   │   │   │   │   ├── comp-533.tsx
│   │   │   │   │   ├── comp-534.tsx
│   │   │   │   │   ├── comp-535.tsx
│   │   │   │   │   ├── comp-536.tsx
│   │   │   │   │   ├── comp-537.tsx
│   │   │   │   │   ├── comp-538.tsx
│   │   │   │   │   ├── comp-539.tsx
│   │   │   │   │   ├── comp-54.tsx
│   │   │   │   │   ├── comp-540.tsx
│   │   │   │   │   ├── comp-541.tsx
│   │   │   │   │   ├── comp-542.tsx
│   │   │   │   │   ├── comp-543.tsx
│   │   │   │   │   ├── comp-544.tsx
│   │   │   │   │   ├── comp-545.tsx
│   │   │   │   │   ├── comp-546.tsx
│   │   │   │   │   ├── comp-547.tsx
│   │   │   │   │   ├── comp-548.tsx
│   │   │   │   │   ├── comp-549.tsx
│   │   │   │   │   ├── comp-55.tsx
│   │   │   │   │   ├── comp-550.tsx
│   │   │   │   │   ├── comp-551.tsx
│   │   │   │   │   ├── comp-552.tsx
│   │   │   │   │   ├── comp-553.tsx
│   │   │   │   │   ├── comp-554.tsx
│   │   │   │   │   ├── comp-555.tsx
│   │   │   │   │   ├── comp-556.tsx
│   │   │   │   │   ├── comp-557.tsx
│   │   │   │   │   ├── comp-558.tsx
│   │   │   │   │   ├── comp-559.tsx
│   │   │   │   │   ├── comp-56.tsx
│   │   │   │   │   ├── comp-560.tsx
│   │   │   │   │   ├── comp-561.tsx
│   │   │   │   │   ├── comp-562.tsx
│   │   │   │   │   ├── comp-563.tsx
│   │   │   │   │   ├── comp-564.tsx
│   │   │   │   │   ├── comp-565.tsx
│   │   │   │   │   ├── comp-566.tsx
│   │   │   │   │   ├── comp-567.tsx
│   │   │   │   │   ├── comp-568.tsx
│   │   │   │   │   ├── comp-569.tsx
│   │   │   │   │   ├── comp-57.tsx
│   │   │   │   │   ├── comp-570.tsx
│   │   │   │   │   ├── comp-571.tsx
│   │   │   │   │   ├── comp-572.tsx
│   │   │   │   │   ├── comp-573.tsx
│   │   │   │   │   ├── comp-574.tsx
│   │   │   │   │   ├── comp-575.tsx
│   │   │   │   │   ├── comp-576.tsx
│   │   │   │   │   ├── comp-577.tsx
│   │   │   │   │   ├── comp-578.tsx
│   │   │   │   │   ├── comp-579.tsx
│   │   │   │   │   ├── comp-58.tsx
│   │   │   │   │   ├── comp-580.tsx
│   │   │   │   │   ├── comp-581.tsx
│   │   │   │   │   ├── comp-582.tsx
│   │   │   │   │   ├── comp-583.tsx
│   │   │   │   │   ├── comp-584.tsx
│   │   │   │   │   ├── comp-585.tsx
│   │   │   │   │   ├── comp-586.tsx
│   │   │   │   │   ├── comp-587.tsx
│   │   │   │   │   ├── comp-588.tsx
│   │   │   │   │   ├── comp-589.tsx
│   │   │   │   │   ├── comp-59.tsx
│   │   │   │   │   ├── comp-590.tsx
│   │   │   │   │   ├── comp-591.tsx
│   │   │   │   │   ├── comp-592.tsx
│   │   │   │   │   ├── comp-593.tsx
│   │   │   │   │   ├── comp-594.tsx
│   │   │   │   │   ├── comp-595.tsx
│   │   │   │   │   ├── comp-596.tsx
│   │   │   │   │   ├── comp-597.tsx
│   │   │   │   │   ├── comp-598.tsx
│   │   │   │   │   ├── comp-599.tsx
│   │   │   │   │   ├── comp-60.tsx
│   │   │   │   │   ├── comp-61.tsx
│   │   │   │   │   ├── comp-62.tsx
│   │   │   │   │   ├── comp-63.tsx
│   │   │   │   │   ├── comp-64.tsx
│   │   │   │   │   ├── comp-65.tsx
│   │   │   │   │   ├── comp-66.tsx
│   │   │   │   │   ├── comp-67.tsx
│   │   │   │   │   ├── comp-68.tsx
│   │   │   │   │   ├── comp-69.tsx
│   │   │   │   │   ├── comp-70.tsx
│   │   │   │   │   ├── comp-71.tsx
│   │   │   │   │   ├── comp-72.tsx
│   │   │   │   │   ├── comp-73.tsx
│   │   │   │   │   ├── comp-74.tsx
│   │   │   │   │   ├── comp-75.tsx
│   │   │   │   │   ├── comp-76.tsx
│   │   │   │   │   ├── comp-77.tsx
│   │   │   │   │   ├── comp-78.tsx
│   │   │   │   │   ├── comp-79.tsx
│   │   │   │   │   ├── comp-80.tsx
│   │   │   │   │   ├── comp-81.tsx
│   │   │   │   │   ├── comp-82.tsx
│   │   │   │   │   ├── comp-83.tsx
│   │   │   │   │   ├── comp-84.tsx
│   │   │   │   │   ├── comp-85.tsx
│   │   │   │   │   ├── comp-86.tsx
│   │   │   │   │   ├── comp-87.tsx
│   │   │   │   │   ├── comp-88.tsx
│   │   │   │   │   ├── comp-89.tsx
│   │   │   │   │   ├── comp-90.tsx
│   │   │   │   │   ├── comp-91.tsx
│   │   │   │   │   ├── comp-92.tsx
│   │   │   │   │   ├── comp-93.tsx
│   │   │   │   │   ├── comp-94.tsx
│   │   │   │   │   ├── comp-95.tsx
│   │   │   │   │   ├── comp-96.tsx
│   │   │   │   │   ├── comp-97.tsx
│   │   │   │   │   ├── comp-98.tsx
│   │   │   │   │   ├── comp-99.tsx
│   │   │   │   │   ├── event-calendar/
│   │   │   │   │   │   ├── agenda-view.tsx
│   │   │   │   │   │   ├── calendar-dnd-context.tsx
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── day-view.tsx
│   │   │   │   │   │   ├── draggable-event.tsx
│   │   │   │   │   │   ├── droppable-cell.tsx
│   │   │   │   │   │   ├── event-calendar.tsx
│   │   │   │   │   │   ├── event-dialog.tsx
│   │   │   │   │   │   ├── event-item.tsx
│   │   │   │   │   │   ├── events-popup.tsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── use-current-time-indicator.ts
│   │   │   │   │   │   │   └── use-event-visibility.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── month-view.tsx
│   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   ├── utils.ts
│   │   │   │   │   │   └── week-view.tsx
│   │   │   │   │   └── navbar-components/
│   │   │   │   │       ├── app-toggle.tsx
│   │   │   │   │       ├── date-picker.tsx
│   │   │   │   │       ├── filters.tsx
│   │   │   │   │       ├── info-menu.tsx
│   │   │   │   │       ├── logo.tsx
│   │   │   │   │       ├── notification-menu.tsx
│   │   │   │   │       ├── settings-menu.tsx
│   │   │   │   │       ├── team-switcher.tsx
│   │   │   │   │       ├── theme-toggle.tsx
│   │   │   │   │       └── user-menu.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── use-character-limit.ts
│   │   │   │   │   ├── use-file-upload.ts
│   │   │   │   │   ├── use-pagination.ts
│   │   │   │   │   ├── use-slider-with-input.ts
│   │   │   │   │   └── use-toast.ts
│   │   │   │   ├── lib/
│   │   │   │   │   └── utils.ts
│   │   │   │   └── ui/
│   │   │   │       ├── accordion.tsx
│   │   │   │       ├── alert-dialog.tsx
│   │   │   │       ├── avatar.tsx
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── breadcrumb.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       ├── calendar-rac.tsx
│   │   │   │       ├── calendar.tsx
│   │   │   │       ├── checkbox-tree.tsx
│   │   │   │       ├── checkbox.tsx
│   │   │   │       ├── collapsible.tsx
│   │   │   │       ├── command.tsx
│   │   │   │       ├── cropper.tsx
│   │   │   │       ├── datefield-rac.tsx
│   │   │   │       ├── dialog.tsx
│   │   │   │       ├── dropdown-menu.tsx
│   │   │   │       ├── hover-card.tsx
│   │   │   │       ├── input.tsx
│   │   │   │       ├── label.tsx
│   │   │   │       ├── multiselect.tsx
│   │   │   │       ├── navigation-menu.tsx
│   │   │   │       ├── pagination.tsx
│   │   │   │       ├── popover.tsx
│   │   │   │       ├── progress.tsx
│   │   │   │       ├── radio-group.tsx
│   │   │   │       ├── resizable.tsx
│   │   │   │       ├── scroll-area.tsx
│   │   │   │       ├── select-native.tsx
│   │   │   │       ├── select.tsx
│   │   │   │       ├── slider.tsx
│   │   │   │       ├── sonner.tsx
│   │   │   │       ├── stepper.tsx
│   │   │   │       ├── switch.tsx
│   │   │   │       ├── table.tsx
│   │   │   │       ├── tabs.tsx
│   │   │   │       ├── textarea.tsx
│   │   │   │       ├── timeline.tsx
│   │   │   │       ├── toast.tsx
│   │   │   │       ├── toaster.tsx
│   │   │   │       ├── toggle-group.tsx
│   │   │   │       ├── toggle.tsx
│   │   │   │       ├── tooltip.tsx
│   │   │   │       └── tree.tsx
│   │   │   └── registry-tags.ts
│   │   ├── registry.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.scripts.json
│   │   └── types/
│   │       └── styled-jsx.d.ts
│   ├── ui/
│   │   ├── .gitignore
│   │   ├── AGENTS.md
│   │   ├── CONTRIBUTING.md
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── raw/
│   │   │   │       └── [...slug]/
│   │   │   │           └── route.ts
│   │   │   ├── docs/
│   │   │   │   ├── [[...slug]]/
│   │   │   │   │   └── page.tsx
│   │   │   │   └── layout.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── not-found.tsx
│   │   │   ├── page.tsx
│   │   │   ├── particles/
│   │   │   │   ├── page.tsx
│   │   │   │   ├── particle-card-container.tsx
│   │   │   │   ├── particle-card.tsx
│   │   │   │   ├── particles-display.tsx
│   │   │   │   ├── search-container.tsx
│   │   │   │   └── search-field.tsx
│   │   │   └── sitemap.ts
│   │   ├── components/
│   │   │   ├── category-thumbnails.tsx
│   │   │   ├── code-block-command.tsx
│   │   │   ├── code-collapsible-wrapper.tsx
│   │   │   ├── code-tabs.tsx
│   │   │   ├── command-menu.tsx
│   │   │   ├── component-preview-tabs.tsx
│   │   │   ├── component-preview.tsx
│   │   │   ├── component-source.tsx
│   │   │   ├── copy-registry.tsx
│   │   │   ├── docs-copy-page.tsx
│   │   │   ├── docs-sidebar.tsx
│   │   │   ├── docs-toc.tsx
│   │   │   ├── main-nav.tsx
│   │   │   ├── media-query-demo.tsx
│   │   │   ├── mobile-nav.tsx
│   │   │   ├── site-footer.tsx
│   │   │   └── site-header.tsx
│   │   ├── config/
│   │   │   └── categories.ts
│   │   ├── content/
│   │   │   └── docs/
│   │   │       ├── (root)/
│   │   │       │   ├── get-started.mdx
│   │   │       │   ├── index.mdx
│   │   │       │   ├── meta.json
│   │   │       │   ├── radix-migration.mdx
│   │   │       │   ├── roadmap.mdx
│   │   │       │   └── styling.mdx
│   │   │       ├── components/
│   │   │       │   ├── accordion.mdx
│   │   │       │   ├── alert-dialog.mdx
│   │   │       │   ├── alert.mdx
│   │   │       │   ├── autocomplete.mdx
│   │   │       │   ├── avatar.mdx
│   │   │       │   ├── badge.mdx
│   │   │       │   ├── breadcrumb.mdx
│   │   │       │   ├── button.mdx
│   │   │       │   ├── calendar.mdx
│   │   │       │   ├── card.mdx
│   │   │       │   ├── checkbox-group.mdx
│   │   │       │   ├── checkbox.mdx
│   │   │       │   ├── collapsible.mdx
│   │   │       │   ├── combobox.mdx
│   │   │       │   ├── command.mdx
│   │   │       │   ├── date-picker.mdx
│   │   │       │   ├── dialog.mdx
│   │   │       │   ├── drawer.mdx
│   │   │       │   ├── empty.mdx
│   │   │       │   ├── field.mdx
│   │   │       │   ├── fieldset.mdx
│   │   │       │   ├── form.mdx
│   │   │       │   ├── frame.mdx
│   │   │       │   ├── group.mdx
│   │   │       │   ├── input-group.mdx
│   │   │       │   ├── input-otp.mdx
│   │   │       │   ├── input.mdx
│   │   │       │   ├── kbd.mdx
│   │   │       │   ├── label.mdx
│   │   │       │   ├── menu.mdx
│   │   │       │   ├── meta.json
│   │   │       │   ├── meter.mdx
│   │   │       │   ├── number-field.mdx
│   │   │       │   ├── pagination.mdx
│   │   │       │   ├── popover.mdx
│   │   │       │   ├── preview-card.mdx
│   │   │       │   ├── progress.mdx
│   │   │       │   ├── radio-group.mdx
│   │   │       │   ├── scroll-area.mdx
│   │   │       │   ├── select.mdx
│   │   │       │   ├── separator.mdx
│   │   │       │   ├── sheet.mdx
│   │   │       │   ├── skeleton.mdx
│   │   │       │   ├── slider.mdx
│   │   │       │   ├── spinner.mdx
│   │   │       │   ├── switch.mdx
│   │   │       │   ├── table.mdx
│   │   │       │   ├── tabs.mdx
│   │   │       │   ├── textarea.mdx
│   │   │       │   ├── toast.mdx
│   │   │       │   ├── toggle-group.mdx
│   │   │       │   ├── toggle.mdx
│   │   │       │   ├── toolbar.mdx
│   │   │       │   └── tooltip.mdx
│   │   │       ├── hooks/
│   │   │       │   ├── meta.json
│   │   │       │   ├── use-copy-to-clipboard.mdx
│   │   │       │   └── use-media-query.mdx
│   │   │       ├── meta.json
│   │   │       └── resources/
│   │   │           └── meta.json
│   │   ├── hooks/
│   │   │   ├── use-config.ts
│   │   │   ├── use-is-mac.ts
│   │   │   └── use-mutation-observer.ts
│   │   ├── lib/
│   │   │   ├── config.ts
│   │   │   ├── docs.ts
│   │   │   ├── registry.ts
│   │   │   ├── source.ts
│   │   │   └── utils.ts
│   │   ├── mdx-components.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── public/
│   │   │   ├── llms.txt
│   │   │   └── r/
│   │   │       ├── accordion.json
│   │   │       ├── alert-dialog.json
│   │   │       ├── alert.json
│   │   │       ├── autocomplete.json
│   │   │       ├── avatar.json
│   │   │       ├── badge.json
│   │   │       ├── breadcrumb.json
│   │   │       ├── button.json
│   │   │       ├── calendar.json
│   │   │       ├── card.json
│   │   │       ├── checkbox-group.json
│   │   │       ├── checkbox.json
│   │   │       ├── collapsible.json
│   │   │       ├── colors-neutral.json
│   │   │       ├── combobox.json
│   │   │       ├── command.json
│   │   │       ├── csp-provider.json
│   │   │       ├── dialog.json
│   │   │       ├── direction-provider.json
│   │   │       ├── drawer.json
│   │   │       ├── empty.json
│   │   │       ├── field.json
│   │   │       ├── fieldset.json
│   │   │       ├── form.json
│   │   │       ├── frame.json
│   │   │       ├── group.json
│   │   │       ├── input-group.json
│   │   │       ├── input-otp.json
│   │   │       ├── input.json
│   │   │       ├── kbd.json
│   │   │       ├── label.json
│   │   │       ├── menu.json
│   │   │       ├── merge-props.json
│   │   │       ├── meter.json
│   │   │       ├── number-field.json
│   │   │       ├── p-accordion-1.json
│   │   │       ├── p-accordion-2.json
│   │   │       ├── p-accordion-3.json
│   │   │       ├── p-accordion-4.json
│   │   │       ├── p-alert-1.json
│   │   │       ├── p-alert-2.json
│   │   │       ├── p-alert-3.json
│   │   │       ├── p-alert-4.json
│   │   │       ├── p-alert-5.json
│   │   │       ├── p-alert-6.json
│   │   │       ├── p-alert-7.json
│   │   │       ├── p-alert-dialog-1.json
│   │   │       ├── p-alert-dialog-2.json
│   │   │       ├── p-autocomplete-1.json
│   │   │       ├── p-autocomplete-10.json
│   │   │       ├── p-autocomplete-11.json
│   │   │       ├── p-autocomplete-12.json
│   │   │       ├── p-autocomplete-13.json
│   │   │       ├── p-autocomplete-14.json
│   │   │       ├── p-autocomplete-15.json
│   │   │       ├── p-autocomplete-2.json
│   │   │       ├── p-autocomplete-3.json
│   │   │       ├── p-autocomplete-4.json
│   │   │       ├── p-autocomplete-5.json
│   │   │       ├── p-autocomplete-6.json
│   │   │       ├── p-autocomplete-7.json
│   │   │       ├── p-autocomplete-8.json
│   │   │       ├── p-autocomplete-9.json
│   │   │       ├── p-avatar-1.json
│   │   │       ├── p-avatar-10.json
│   │   │       ├── p-avatar-11.json
│   │   │       ├── p-avatar-12.json
│   │   │       ├── p-avatar-13.json
│   │   │       ├── p-avatar-14.json
│   │   │       ├── p-avatar-2.json
│   │   │       ├── p-avatar-3.json
│   │   │       ├── p-avatar-4.json
│   │   │       ├── p-avatar-5.json
│   │   │       ├── p-avatar-6.json
│   │   │       ├── p-avatar-7.json
│   │   │       ├── p-avatar-8.json
│   │   │       ├── p-avatar-9.json
│   │   │       ├── p-badge-1.json
│   │   │       ├── p-badge-10.json
│   │   │       ├── p-badge-11.json
│   │   │       ├── p-badge-12.json
│   │   │       ├── p-badge-13.json
│   │   │       ├── p-badge-14.json
│   │   │       ├── p-badge-15.json
│   │   │       ├── p-badge-16.json
│   │   │       ├── p-badge-17.json
│   │   │       ├── p-badge-18.json
│   │   │       ├── p-badge-19.json
│   │   │       ├── p-badge-2.json
│   │   │       ├── p-badge-20.json
│   │   │       ├── p-badge-3.json
│   │   │       ├── p-badge-4.json
│   │   │       ├── p-badge-5.json
│   │   │       ├── p-badge-6.json
│   │   │       ├── p-badge-7.json
│   │   │       ├── p-badge-8.json
│   │   │       ├── p-badge-9.json
│   │   │       ├── p-breadcrumb-1.json
│   │   │       ├── p-breadcrumb-2.json
│   │   │       ├── p-breadcrumb-3.json
│   │   │       ├── p-breadcrumb-4.json
│   │   │       ├── p-breadcrumb-5.json
│   │   │       ├── p-breadcrumb-6.json
│   │   │       ├── p-breadcrumb-7.json
│   │   │       ├── p-button-1.json
│   │   │       ├── p-button-10.json
│   │   │       ├── p-button-11.json
│   │   │       ├── p-button-12.json
│   │   │       ├── p-button-13.json
│   │   │       ├── p-button-14.json
│   │   │       ├── p-button-15.json
│   │   │       ├── p-button-16.json
│   │   │       ├── p-button-17.json
│   │   │       ├── p-button-18.json
│   │   │       ├── p-button-19.json
│   │   │       ├── p-button-2.json
│   │   │       ├── p-button-20.json
│   │   │       ├── p-button-21.json
│   │   │       ├── p-button-22.json
│   │   │       ├── p-button-23.json
│   │   │       ├── p-button-24.json
│   │   │       ├── p-button-26.json
│   │   │       ├── p-button-27.json
│   │   │       ├── p-button-28.json
│   │   │       ├── p-button-29.json
│   │   │       ├── p-button-3.json
│   │   │       ├── p-button-30.json
│   │   │       ├── p-button-31.json
│   │   │       ├── p-button-32.json
│   │   │       ├── p-button-33.json
│   │   │       ├── p-button-34.json
│   │   │       ├── p-button-35.json
│   │   │       ├── p-button-36.json
│   │   │       ├── p-button-37.json
│   │   │       ├── p-button-38.json
│   │   │       ├── p-button-39.json
│   │   │       ├── p-button-4.json
│   │   │       ├── p-button-40.json
│   │   │       ├── p-button-41.json
│   │   │       ├── p-button-5.json
│   │   │       ├── p-button-6.json
│   │   │       ├── p-button-7.json
│   │   │       ├── p-button-8.json
│   │   │       ├── p-button-9.json
│   │   │       ├── p-calendar-1.json
│   │   │       ├── p-calendar-10.json
│   │   │       ├── p-calendar-11.json
│   │   │       ├── p-calendar-12.json
│   │   │       ├── p-calendar-13.json
│   │   │       ├── p-calendar-14.json
│   │   │       ├── p-calendar-15.json
│   │   │       ├── p-calendar-16.json
│   │   │       ├── p-calendar-17.json
│   │   │       ├── p-calendar-18.json
│   │   │       ├── p-calendar-19.json
│   │   │       ├── p-calendar-2.json
│   │   │       ├── p-calendar-20.json
│   │   │       ├── p-calendar-21.json
│   │   │       ├── p-calendar-22.json
│   │   │       ├── p-calendar-23.json
│   │   │       ├── p-calendar-24.json
│   │   │       ├── p-calendar-3.json
│   │   │       ├── p-calendar-4.json
│   │   │       ├── p-calendar-5.json
│   │   │       ├── p-calendar-6.json
│   │   │       ├── p-calendar-7.json
│   │   │       ├── p-calendar-8.json
│   │   │       ├── p-calendar-9.json
│   │   │       ├── p-card-1.json
│   │   │       ├── p-card-10.json
│   │   │       ├── p-card-11.json
│   │   │       ├── p-card-2.json
│   │   │       ├── p-card-3.json
│   │   │       ├── p-card-4.json
│   │   │       ├── p-card-5.json
│   │   │       ├── p-card-6.json
│   │   │       ├── p-card-7.json
│   │   │       ├── p-card-8.json
│   │   │       ├── p-card-9.json
│   │   │       ├── p-checkbox-1.json
│   │   │       ├── p-checkbox-2.json
│   │   │       ├── p-checkbox-3.json
│   │   │       ├── p-checkbox-4.json
│   │   │       ├── p-checkbox-5.json
│   │   │       ├── p-checkbox-group-1.json
│   │   │       ├── p-checkbox-group-2.json
│   │   │       ├── p-checkbox-group-3.json
│   │   │       ├── p-checkbox-group-4.json
│   │   │       ├── p-checkbox-group-5.json
│   │   │       ├── p-collapsible-1.json
│   │   │       ├── p-combobox-1.json
│   │   │       ├── p-combobox-10.json
│   │   │       ├── p-combobox-11.json
│   │   │       ├── p-combobox-12.json
│   │   │       ├── p-combobox-13.json
│   │   │       ├── p-combobox-14.json
│   │   │       ├── p-combobox-15.json
│   │   │       ├── p-combobox-16.json
│   │   │       ├── p-combobox-17.json
│   │   │       ├── p-combobox-18.json
│   │   │       ├── p-combobox-2.json
│   │   │       ├── p-combobox-3.json
│   │   │       ├── p-combobox-4.json
│   │   │       ├── p-combobox-5.json
│   │   │       ├── p-combobox-6.json
│   │   │       ├── p-combobox-7.json
│   │   │       ├── p-combobox-8.json
│   │   │       ├── p-combobox-9.json
│   │   │       ├── p-command-1.json
│   │   │       ├── p-command-2.json
│   │   │       ├── p-date-picker-1.json
│   │   │       ├── p-date-picker-2.json
│   │   │       ├── p-date-picker-3.json
│   │   │       ├── p-date-picker-4.json
│   │   │       ├── p-date-picker-5.json
│   │   │       ├── p-date-picker-6.json
│   │   │       ├── p-date-picker-7.json
│   │   │       ├── p-date-picker-8.json
│   │   │       ├── p-date-picker-9.json
│   │   │       ├── p-dialog-1.json
│   │   │       ├── p-dialog-2.json
│   │   │       ├── p-dialog-3.json
│   │   │       ├── p-dialog-4.json
│   │   │       ├── p-dialog-5.json
│   │   │       ├── p-dialog-6.json
│   │   │       ├── p-drawer-1.json
│   │   │       ├── p-drawer-10.json
│   │   │       ├── p-drawer-11.json
│   │   │       ├── p-drawer-12.json
│   │   │       ├── p-drawer-13.json
│   │   │       ├── p-drawer-14.json
│   │   │       ├── p-drawer-2.json
│   │   │       ├── p-drawer-3.json
│   │   │       ├── p-drawer-4.json
│   │   │       ├── p-drawer-5.json
│   │   │       ├── p-drawer-6.json
│   │   │       ├── p-drawer-7.json
│   │   │       ├── p-drawer-8.json
│   │   │       ├── p-drawer-9.json
│   │   │       ├── p-empty-1.json
│   │   │       ├── p-field-1.json
│   │   │       ├── p-field-10.json
│   │   │       ├── p-field-11.json
│   │   │       ├── p-field-12.json
│   │   │       ├── p-field-13.json
│   │   │       ├── p-field-14.json
│   │   │       ├── p-field-15.json
│   │   │       ├── p-field-16.json
│   │   │       ├── p-field-17.json
│   │   │       ├── p-field-18.json
│   │   │       ├── p-field-2.json
│   │   │       ├── p-field-3.json
│   │   │       ├── p-field-4.json
│   │   │       ├── p-field-5.json
│   │   │       ├── p-field-6.json
│   │   │       ├── p-field-7.json
│   │   │       ├── p-field-8.json
│   │   │       ├── p-field-9.json
│   │   │       ├── p-fieldset-1.json
│   │   │       ├── p-form-1.json
│   │   │       ├── p-form-2.json
│   │   │       ├── p-frame-1.json
│   │   │       ├── p-frame-2.json
│   │   │       ├── p-frame-3.json
│   │   │       ├── p-frame-4.json
│   │   │       ├── p-group-1.json
│   │   │       ├── p-group-10.json
│   │   │       ├── p-group-11.json
│   │   │       ├── p-group-12.json
│   │   │       ├── p-group-13.json
│   │   │       ├── p-group-14.json
│   │   │       ├── p-group-15.json
│   │   │       ├── p-group-16.json
│   │   │       ├── p-group-17.json
│   │   │       ├── p-group-18.json
│   │   │       ├── p-group-19.json
│   │   │       ├── p-group-2.json
│   │   │       ├── p-group-20.json
│   │   │       ├── p-group-22.json
│   │   │       ├── p-group-23.json
│   │   │       ├── p-group-3.json
│   │   │       ├── p-group-4.json
│   │   │       ├── p-group-5.json
│   │   │       ├── p-group-6.json
│   │   │       ├── p-group-7.json
│   │   │       ├── p-group-8.json
│   │   │       ├── p-group-9.json
│   │   │       ├── p-input-1.json
│   │   │       ├── p-input-10.json
│   │   │       ├── p-input-11.json
│   │   │       ├── p-input-12.json
│   │   │       ├── p-input-13.json
│   │   │       ├── p-input-14.json
│   │   │       ├── p-input-15.json
│   │   │       ├── p-input-16.json
│   │   │       ├── p-input-17.json
│   │   │       ├── p-input-18.json
│   │   │       ├── p-input-19.json
│   │   │       ├── p-input-2.json
│   │   │       ├── p-input-3.json
│   │   │       ├── p-input-4.json
│   │   │       ├── p-input-5.json
│   │   │       ├── p-input-6.json
│   │   │       ├── p-input-7.json
│   │   │       ├── p-input-8.json
│   │   │       ├── p-input-9.json
│   │   │       ├── p-input-group-1.json
│   │   │       ├── p-input-group-10.json
│   │   │       ├── p-input-group-11.json
│   │   │       ├── p-input-group-12.json
│   │   │       ├── p-input-group-13.json
│   │   │       ├── p-input-group-14.json
│   │   │       ├── p-input-group-15.json
│   │   │       ├── p-input-group-16.json
│   │   │       ├── p-input-group-17.json
│   │   │       ├── p-input-group-18.json
│   │   │       ├── p-input-group-19.json
│   │   │       ├── p-input-group-2.json
│   │   │       ├── p-input-group-20.json
│   │   │       ├── p-input-group-21.json
│   │   │       ├── p-input-group-22.json
│   │   │       ├── p-input-group-23.json
│   │   │       ├── p-input-group-24.json
│   │   │       ├── p-input-group-25.json
│   │   │       ├── p-input-group-26.json
│   │   │       ├── p-input-group-27.json
│   │   │       ├── p-input-group-28.json
│   │   │       ├── p-input-group-29.json
│   │   │       ├── p-input-group-3.json
│   │   │       ├── p-input-group-4.json
│   │   │       ├── p-input-group-5.json
│   │   │       ├── p-input-group-6.json
│   │   │       ├── p-input-group-7.json
│   │   │       ├── p-input-group-8.json
│   │   │       ├── p-input-group-9.json
│   │   │       ├── p-input-otp-1.json
│   │   │       ├── p-input-otp-2.json
│   │   │       ├── p-input-otp-3.json
│   │   │       ├── p-input-otp-4.json
│   │   │       ├── p-input-otp-5.json
│   │   │       ├── p-input-otp-6.json
│   │   │       ├── p-input-otp-7.json
│   │   │       ├── p-kbd-1.json
│   │   │       ├── p-menu-1.json
│   │   │       ├── p-menu-2.json
│   │   │       ├── p-menu-3.json
│   │   │       ├── p-menu-4.json
│   │   │       ├── p-menu-5.json
│   │   │       ├── p-menu-6.json
│   │   │       ├── p-menu-7.json
│   │   │       ├── p-menu-8.json
│   │   │       ├── p-menu-9.json
│   │   │       ├── p-meter-1.json
│   │   │       ├── p-meter-2.json
│   │   │       ├── p-meter-3.json
│   │   │       ├── p-meter-4.json
│   │   │       ├── p-number-field-1.json
│   │   │       ├── p-number-field-10.json
│   │   │       ├── p-number-field-11.json
│   │   │       ├── p-number-field-2.json
│   │   │       ├── p-number-field-3.json
│   │   │       ├── p-number-field-4.json
│   │   │       ├── p-number-field-5.json
│   │   │       ├── p-number-field-6.json
│   │   │       ├── p-number-field-7.json
│   │   │       ├── p-number-field-8.json
│   │   │       ├── p-number-field-9.json
│   │   │       ├── p-pagination-1.json
│   │   │       ├── p-pagination-2.json
│   │   │       ├── p-pagination-3.json
│   │   │       ├── p-popover-1.json
│   │   │       ├── p-popover-2.json
│   │   │       ├── p-popover-3.json
│   │   │       ├── p-preview-card-1.json
│   │   │       ├── p-progress-1.json
│   │   │       ├── p-progress-2.json
│   │   │       ├── p-progress-3.json
│   │   │       ├── p-radio-group-1.json
│   │   │       ├── p-radio-group-2.json
│   │   │       ├── p-radio-group-3.json
│   │   │       ├── p-radio-group-4.json
│   │   │       ├── p-radio-group-5.json
│   │   │       ├── p-scroll-area-1.json
│   │   │       ├── p-scroll-area-2.json
│   │   │       ├── p-scroll-area-3.json
│   │   │       ├── p-scroll-area-4.json
│   │   │       ├── p-scroll-area-5.json
│   │   │       ├── p-select-1.json
│   │   │       ├── p-select-10.json
│   │   │       ├── p-select-11.json
│   │   │       ├── p-select-12.json
│   │   │       ├── p-select-13.json
│   │   │       ├── p-select-14.json
│   │   │       ├── p-select-15.json
│   │   │       ├── p-select-16.json
│   │   │       ├── p-select-17.json
│   │   │       ├── p-select-18.json
│   │   │       ├── p-select-19.json
│   │   │       ├── p-select-2.json
│   │   │       ├── p-select-20.json
│   │   │       ├── p-select-21.json
│   │   │       ├── p-select-22.json
│   │   │       ├── p-select-23.json
│   │   │       ├── p-select-3.json
│   │   │       ├── p-select-4.json
│   │   │       ├── p-select-5.json
│   │   │       ├── p-select-6.json
│   │   │       ├── p-select-7.json
│   │   │       ├── p-select-8.json
│   │   │       ├── p-select-9.json
│   │   │       ├── p-separator-1.json
│   │   │       ├── p-sheet-1.json
│   │   │       ├── p-sheet-2.json
│   │   │       ├── p-sheet-3.json
│   │   │       ├── p-skeleton-1.json
│   │   │       ├── p-skeleton-2.json
│   │   │       ├── p-slider-1.json
│   │   │       ├── p-slider-10.json
│   │   │       ├── p-slider-11.json
│   │   │       ├── p-slider-12.json
│   │   │       ├── p-slider-13.json
│   │   │       ├── p-slider-14.json
│   │   │       ├── p-slider-15.json
│   │   │       ├── p-slider-16.json
│   │   │       ├── p-slider-17.json
│   │   │       ├── p-slider-18.json
│   │   │       ├── p-slider-19.json
│   │   │       ├── p-slider-2.json
│   │   │       ├── p-slider-20.json
│   │   │       ├── p-slider-21.json
│   │   │       ├── p-slider-22.json
│   │   │       ├── p-slider-23.json
│   │   │       ├── p-slider-3.json
│   │   │       ├── p-slider-4.json
│   │   │       ├── p-slider-5.json
│   │   │       ├── p-slider-6.json
│   │   │       ├── p-slider-7.json
│   │   │       ├── p-slider-8.json
│   │   │       ├── p-slider-9.json
│   │   │       ├── p-spinner-1.json
│   │   │       ├── p-switch-1.json
│   │   │       ├── p-switch-2.json
│   │   │       ├── p-switch-3.json
│   │   │       ├── p-switch-4.json
│   │   │       ├── p-switch-5.json
│   │   │       ├── p-switch-6.json
│   │   │       ├── p-switch-7.json
│   │   │       ├── p-table-1.json
│   │   │       ├── p-table-2.json
│   │   │       ├── p-table-3.json
│   │   │       ├── p-table-4.json
│   │   │       ├── p-tabs-1.json
│   │   │       ├── p-tabs-10.json
│   │   │       ├── p-tabs-11.json
│   │   │       ├── p-tabs-12.json
│   │   │       ├── p-tabs-13.json
│   │   │       ├── p-tabs-2.json
│   │   │       ├── p-tabs-3.json
│   │   │       ├── p-tabs-4.json
│   │   │       ├── p-tabs-5.json
│   │   │       ├── p-tabs-6.json
│   │   │       ├── p-tabs-7.json
│   │   │       ├── p-tabs-8.json
│   │   │       ├── p-tabs-9.json
│   │   │       ├── p-textarea-1.json
│   │   │       ├── p-textarea-10.json
│   │   │       ├── p-textarea-11.json
│   │   │       ├── p-textarea-12.json
│   │   │       ├── p-textarea-13.json
│   │   │       ├── p-textarea-14.json
│   │   │       ├── p-textarea-15.json
│   │   │       ├── p-textarea-2.json
│   │   │       ├── p-textarea-3.json
│   │   │       ├── p-textarea-4.json
│   │   │       ├── p-textarea-5.json
│   │   │       ├── p-textarea-6.json
│   │   │       ├── p-textarea-7.json
│   │   │       ├── p-textarea-8.json
│   │   │       ├── p-textarea-9.json
│   │   │       ├── p-toast-1.json
│   │   │       ├── p-toast-2.json
│   │   │       ├── p-toast-3.json
│   │   │       ├── p-toast-4.json
│   │   │       ├── p-toast-5.json
│   │   │       ├── p-toast-6.json
│   │   │       ├── p-toast-7.json
│   │   │       ├── p-toast-8.json
│   │   │       ├── p-toast-9.json
│   │   │       ├── p-toggle-1.json
│   │   │       ├── p-toggle-2.json
│   │   │       ├── p-toggle-3.json
│   │   │       ├── p-toggle-4.json
│   │   │       ├── p-toggle-5.json
│   │   │       ├── p-toggle-6.json
│   │   │       ├── p-toggle-7.json
│   │   │       ├── p-toggle-8.json
│   │   │       ├── p-toggle-group-1.json
│   │   │       ├── p-toggle-group-2.json
│   │   │       ├── p-toggle-group-3.json
│   │   │       ├── p-toggle-group-4.json
│   │   │       ├── p-toggle-group-5.json
│   │   │       ├── p-toggle-group-6.json
│   │   │       ├── p-toggle-group-7.json
│   │   │       ├── p-toggle-group-8.json
│   │   │       ├── p-toggle-group-9.json
│   │   │       ├── p-toolbar-1.json
│   │   │       ├── p-tooltip-1.json
│   │   │       ├── p-tooltip-2.json
│   │   │       ├── p-tooltip-3.json
│   │   │       ├── p-tooltip-4.json
│   │   │       ├── pagination.json
│   │   │       ├── popover.json
│   │   │       ├── preview-card.json
│   │   │       ├── progress.json
│   │   │       ├── radio-group.json
│   │   │       ├── registry.json
│   │   │       ├── scroll-area.json
│   │   │       ├── select.json
│   │   │       ├── separator.json
│   │   │       ├── sheet.json
│   │   │       ├── sidebar.json
│   │   │       ├── skeleton.json
│   │   │       ├── slider.json
│   │   │       ├── spinner.json
│   │   │       ├── style.json
│   │   │       ├── switch.json
│   │   │       ├── table.json
│   │   │       ├── tabs.json
│   │   │       ├── textarea.json
│   │   │       ├── toast.json
│   │   │       ├── toggle-group.json
│   │   │       ├── toggle.json
│   │   │       ├── toolbar.json
│   │   │       ├── tooltip.json
│   │   │       ├── ui.json
│   │   │       ├── use-copy-to-clipboard.json
│   │   │       ├── use-media-query.json
│   │   │       ├── use-render.json
│   │   │       └── utils.json
│   │   ├── registry/
│   │   │   ├── __index__.tsx
│   │   │   ├── default/
│   │   │   │   ├── base-ui/
│   │   │   │   │   ├── csp-provider.ts
│   │   │   │   │   ├── direction-provider.ts
│   │   │   │   │   ├── merge-props.ts
│   │   │   │   │   └── use-render.ts
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── use-copy-to-clipboard.ts
│   │   │   │   │   └── use-media-query.ts
│   │   │   │   ├── lib/
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── particles/
│   │   │   │   │   ├── p-accordion-1.tsx
│   │   │   │   │   ├── p-accordion-2.tsx
│   │   │   │   │   ├── p-accordion-3.tsx
│   │   │   │   │   ├── p-accordion-4.tsx
│   │   │   │   │   ├── p-alert-1.tsx
│   │   │   │   │   ├── p-alert-2.tsx
│   │   │   │   │   ├── p-alert-3.tsx
│   │   │   │   │   ├── p-alert-4.tsx
│   │   │   │   │   ├── p-alert-5.tsx
│   │   │   │   │   ├── p-alert-6.tsx
│   │   │   │   │   ├── p-alert-7.tsx
│   │   │   │   │   ├── p-alert-dialog-1.tsx
│   │   │   │   │   ├── p-alert-dialog-2.tsx
│   │   │   │   │   ├── p-autocomplete-1.tsx
│   │   │   │   │   ├── p-autocomplete-10.tsx
│   │   │   │   │   ├── p-autocomplete-11.tsx
│   │   │   │   │   ├── p-autocomplete-12.tsx
│   │   │   │   │   ├── p-autocomplete-13.tsx
│   │   │   │   │   ├── p-autocomplete-14.tsx
│   │   │   │   │   ├── p-autocomplete-15.tsx
│   │   │   │   │   ├── p-autocomplete-2.tsx
│   │   │   │   │   ├── p-autocomplete-3.tsx
│   │   │   │   │   ├── p-autocomplete-4.tsx
│   │   │   │   │   ├── p-autocomplete-5.tsx
│   │   │   │   │   ├── p-autocomplete-6.tsx
│   │   │   │   │   ├── p-autocomplete-7.tsx
│   │   │   │   │   ├── p-autocomplete-8.tsx
│   │   │   │   │   ├── p-autocomplete-9.tsx
│   │   │   │   │   ├── p-avatar-1.tsx
│   │   │   │   │   ├── p-avatar-10.tsx
│   │   │   │   │   ├── p-avatar-11.tsx
│   │   │   │   │   ├── p-avatar-12.tsx
│   │   │   │   │   ├── p-avatar-13.tsx
│   │   │   │   │   ├── p-avatar-14.tsx
│   │   │   │   │   ├── p-avatar-2.tsx
│   │   │   │   │   ├── p-avatar-3.tsx
│   │   │   │   │   ├── p-avatar-4.tsx
│   │   │   │   │   ├── p-avatar-5.tsx
│   │   │   │   │   ├── p-avatar-6.tsx
│   │   │   │   │   ├── p-avatar-7.tsx
│   │   │   │   │   ├── p-avatar-8.tsx
│   │   │   │   │   ├── p-avatar-9.tsx
│   │   │   │   │   ├── p-badge-1.tsx
│   │   │   │   │   ├── p-badge-10.tsx
│   │   │   │   │   ├── p-badge-11.tsx
│   │   │   │   │   ├── p-badge-12.tsx
│   │   │   │   │   ├── p-badge-13.tsx
│   │   │   │   │   ├── p-badge-14.tsx
│   │   │   │   │   ├── p-badge-15.tsx
│   │   │   │   │   ├── p-badge-16.tsx
│   │   │   │   │   ├── p-badge-17.tsx
│   │   │   │   │   ├── p-badge-18.tsx
│   │   │   │   │   ├── p-badge-19.tsx
│   │   │   │   │   ├── p-badge-2.tsx
│   │   │   │   │   ├── p-badge-20.tsx
│   │   │   │   │   ├── p-badge-3.tsx
│   │   │   │   │   ├── p-badge-4.tsx
│   │   │   │   │   ├── p-badge-5.tsx
│   │   │   │   │   ├── p-badge-6.tsx
│   │   │   │   │   ├── p-badge-7.tsx
│   │   │   │   │   ├── p-badge-8.tsx
│   │   │   │   │   ├── p-badge-9.tsx
│   │   │   │   │   ├── p-breadcrumb-1.tsx
│   │   │   │   │   ├── p-breadcrumb-2.tsx
│   │   │   │   │   ├── p-breadcrumb-3.tsx
│   │   │   │   │   ├── p-breadcrumb-4.tsx
│   │   │   │   │   ├── p-breadcrumb-5.tsx
│   │   │   │   │   ├── p-breadcrumb-6.tsx
│   │   │   │   │   ├── p-breadcrumb-7.tsx
│   │   │   │   │   ├── p-button-1.tsx
│   │   │   │   │   ├── p-button-10.tsx
│   │   │   │   │   ├── p-button-11.tsx
│   │   │   │   │   ├── p-button-12.tsx
│   │   │   │   │   ├── p-button-13.tsx
│   │   │   │   │   ├── p-button-14.tsx
│   │   │   │   │   ├── p-button-15.tsx
│   │   │   │   │   ├── p-button-16.tsx
│   │   │   │   │   ├── p-button-17.tsx
│   │   │   │   │   ├── p-button-18.tsx
│   │   │   │   │   ├── p-button-19.tsx
│   │   │   │   │   ├── p-button-2.tsx
│   │   │   │   │   ├── p-button-20.tsx
│   │   │   │   │   ├── p-button-21.tsx
│   │   │   │   │   ├── p-button-22.tsx
│   │   │   │   │   ├── p-button-23.tsx
│   │   │   │   │   ├── p-button-24.tsx
│   │   │   │   │   ├── p-button-26.tsx
│   │   │   │   │   ├── p-button-27.tsx
│   │   │   │   │   ├── p-button-28.tsx
│   │   │   │   │   ├── p-button-29.tsx
│   │   │   │   │   ├── p-button-3.tsx
│   │   │   │   │   ├── p-button-30.tsx
│   │   │   │   │   ├── p-button-31.tsx
│   │   │   │   │   ├── p-button-32.tsx
│   │   │   │   │   ├── p-button-33.tsx
│   │   │   │   │   ├── p-button-34.tsx
│   │   │   │   │   ├── p-button-35.tsx
│   │   │   │   │   ├── p-button-36.tsx
│   │   │   │   │   ├── p-button-37.tsx
│   │   │   │   │   ├── p-button-38.tsx
│   │   │   │   │   ├── p-button-39.tsx
│   │   │   │   │   ├── p-button-4.tsx
│   │   │   │   │   ├── p-button-40.tsx
│   │   │   │   │   ├── p-button-41.tsx
│   │   │   │   │   ├── p-button-5.tsx
│   │   │   │   │   ├── p-button-6.tsx
│   │   │   │   │   ├── p-button-7.tsx
│   │   │   │   │   ├── p-button-8.tsx
│   │   │   │   │   ├── p-button-9.tsx
│   │   │   │   │   ├── p-calendar-1.tsx
│   │   │   │   │   ├── p-calendar-10.tsx
│   │   │   │   │   ├── p-calendar-11.tsx
│   │   │   │   │   ├── p-calendar-12.tsx
│   │   │   │   │   ├── p-calendar-13.tsx
│   │   │   │   │   ├── p-calendar-14.tsx
│   │   │   │   │   ├── p-calendar-15.tsx
│   │   │   │   │   ├── p-calendar-16.tsx
│   │   │   │   │   ├── p-calendar-17.tsx
│   │   │   │   │   ├── p-calendar-18.tsx
│   │   │   │   │   ├── p-calendar-19.tsx
│   │   │   │   │   ├── p-calendar-2.tsx
│   │   │   │   │   ├── p-calendar-20.tsx
│   │   │   │   │   ├── p-calendar-21.tsx
│   │   │   │   │   ├── p-calendar-22.tsx
│   │   │   │   │   ├── p-calendar-23.tsx
│   │   │   │   │   ├── p-calendar-24.tsx
│   │   │   │   │   ├── p-calendar-3.tsx
│   │   │   │   │   ├── p-calendar-4.tsx
│   │   │   │   │   ├── p-calendar-5.tsx
│   │   │   │   │   ├── p-calendar-6.tsx
│   │   │   │   │   ├── p-calendar-7.tsx
│   │   │   │   │   ├── p-calendar-8.tsx
│   │   │   │   │   ├── p-calendar-9.tsx
│   │   │   │   │   ├── p-card-1.tsx
│   │   │   │   │   ├── p-card-10.tsx
│   │   │   │   │   ├── p-card-11.tsx
│   │   │   │   │   ├── p-card-2.tsx
│   │   │   │   │   ├── p-card-3.tsx
│   │   │   │   │   ├── p-card-4.tsx
│   │   │   │   │   ├── p-card-5.tsx
│   │   │   │   │   ├── p-card-6.tsx
│   │   │   │   │   ├── p-card-7.tsx
│   │   │   │   │   ├── p-card-8.tsx
│   │   │   │   │   ├── p-card-9.tsx
│   │   │   │   │   ├── p-checkbox-1.tsx
│   │   │   │   │   ├── p-checkbox-2.tsx
│   │   │   │   │   ├── p-checkbox-3.tsx
│   │   │   │   │   ├── p-checkbox-4.tsx
│   │   │   │   │   ├── p-checkbox-5.tsx
│   │   │   │   │   ├── p-checkbox-group-1.tsx
│   │   │   │   │   ├── p-checkbox-group-2.tsx
│   │   │   │   │   ├── p-checkbox-group-3.tsx
│   │   │   │   │   ├── p-checkbox-group-4.tsx
│   │   │   │   │   ├── p-checkbox-group-5.tsx
│   │   │   │   │   ├── p-collapsible-1.tsx
│   │   │   │   │   ├── p-combobox-1.tsx
│   │   │   │   │   ├── p-combobox-10.tsx
│   │   │   │   │   ├── p-combobox-11.tsx
│   │   │   │   │   ├── p-combobox-12.tsx
│   │   │   │   │   ├── p-combobox-13.tsx
│   │   │   │   │   ├── p-combobox-14.tsx
│   │   │   │   │   ├── p-combobox-15.tsx
│   │   │   │   │   ├── p-combobox-16.tsx
│   │   │   │   │   ├── p-combobox-17.tsx
│   │   │   │   │   ├── p-combobox-18.tsx
│   │   │   │   │   ├── p-combobox-2.tsx
│   │   │   │   │   ├── p-combobox-3.tsx
│   │   │   │   │   ├── p-combobox-4.tsx
│   │   │   │   │   ├── p-combobox-5.tsx
│   │   │   │   │   ├── p-combobox-6.tsx
│   │   │   │   │   ├── p-combobox-7.tsx
│   │   │   │   │   ├── p-combobox-8.tsx
│   │   │   │   │   ├── p-combobox-9.tsx
│   │   │   │   │   ├── p-command-1.tsx
│   │   │   │   │   ├── p-command-2.tsx
│   │   │   │   │   ├── p-date-picker-1.tsx
│   │   │   │   │   ├── p-date-picker-2.tsx
│   │   │   │   │   ├── p-date-picker-3.tsx
│   │   │   │   │   ├── p-date-picker-4.tsx
│   │   │   │   │   ├── p-date-picker-5.tsx
│   │   │   │   │   ├── p-date-picker-6.tsx
│   │   │   │   │   ├── p-date-picker-7.tsx
│   │   │   │   │   ├── p-date-picker-8.tsx
│   │   │   │   │   ├── p-date-picker-9.tsx
│   │   │   │   │   ├── p-dialog-1.tsx
│   │   │   │   │   ├── p-dialog-2.tsx
│   │   │   │   │   ├── p-dialog-3.tsx
│   │   │   │   │   ├── p-dialog-4.tsx
│   │   │   │   │   ├── p-dialog-5.tsx
│   │   │   │   │   ├── p-dialog-6.tsx
│   │   │   │   │   ├── p-drawer-1.tsx
│   │   │   │   │   ├── p-drawer-10.tsx
│   │   │   │   │   ├── p-drawer-11.tsx
│   │   │   │   │   ├── p-drawer-12.tsx
│   │   │   │   │   ├── p-drawer-13.tsx
│   │   │   │   │   ├── p-drawer-14.tsx
│   │   │   │   │   ├── p-drawer-2.tsx
│   │   │   │   │   ├── p-drawer-3.tsx
│   │   │   │   │   ├── p-drawer-4.tsx
│   │   │   │   │   ├── p-drawer-5.tsx
│   │   │   │   │   ├── p-drawer-6.tsx
│   │   │   │   │   ├── p-drawer-7.tsx
│   │   │   │   │   ├── p-drawer-8.tsx
│   │   │   │   │   ├── p-drawer-9.tsx
│   │   │   │   │   ├── p-empty-1.tsx
│   │   │   │   │   ├── p-field-1.tsx
│   │   │   │   │   ├── p-field-10.tsx
│   │   │   │   │   ├── p-field-11.tsx
│   │   │   │   │   ├── p-field-12.tsx
│   │   │   │   │   ├── p-field-13.tsx
│   │   │   │   │   ├── p-field-14.tsx
│   │   │   │   │   ├── p-field-15.tsx
│   │   │   │   │   ├── p-field-16.tsx
│   │   │   │   │   ├── p-field-17.tsx
│   │   │   │   │   ├── p-field-18.tsx
│   │   │   │   │   ├── p-field-2.tsx
│   │   │   │   │   ├── p-field-3.tsx
│   │   │   │   │   ├── p-field-4.tsx
│   │   │   │   │   ├── p-field-5.tsx
│   │   │   │   │   ├── p-field-6.tsx
│   │   │   │   │   ├── p-field-7.tsx
│   │   │   │   │   ├── p-field-8.tsx
│   │   │   │   │   ├── p-field-9.tsx
│   │   │   │   │   ├── p-fieldset-1.tsx
│   │   │   │   │   ├── p-form-1.tsx
│   │   │   │   │   ├── p-form-2.tsx
│   │   │   │   │   ├── p-frame-1.tsx
│   │   │   │   │   ├── p-frame-2.tsx
│   │   │   │   │   ├── p-frame-3.tsx
│   │   │   │   │   ├── p-frame-4.tsx
│   │   │   │   │   ├── p-group-1.tsx
│   │   │   │   │   ├── p-group-10.tsx
│   │   │   │   │   ├── p-group-11.tsx
│   │   │   │   │   ├── p-group-12.tsx
│   │   │   │   │   ├── p-group-13.tsx
│   │   │   │   │   ├── p-group-14.tsx
│   │   │   │   │   ├── p-group-15.tsx
│   │   │   │   │   ├── p-group-16.tsx
│   │   │   │   │   ├── p-group-17.tsx
│   │   │   │   │   ├── p-group-18.tsx
│   │   │   │   │   ├── p-group-19.tsx
│   │   │   │   │   ├── p-group-2.tsx
│   │   │   │   │   ├── p-group-20.tsx
│   │   │   │   │   ├── p-group-22.tsx
│   │   │   │   │   ├── p-group-23.tsx
│   │   │   │   │   ├── p-group-3.tsx
│   │   │   │   │   ├── p-group-4.tsx
│   │   │   │   │   ├── p-group-5.tsx
│   │   │   │   │   ├── p-group-6.tsx
│   │   │   │   │   ├── p-group-7.tsx
│   │   │   │   │   ├── p-group-8.tsx
│   │   │   │   │   ├── p-group-9.tsx
│   │   │   │   │   ├── p-input-1.tsx
│   │   │   │   │   ├── p-input-10.tsx
│   │   │   │   │   ├── p-input-11.tsx
│   │   │   │   │   ├── p-input-12.tsx
│   │   │   │   │   ├── p-input-13.tsx
│   │   │   │   │   ├── p-input-14.tsx
│   │   │   │   │   ├── p-input-15.tsx
│   │   │   │   │   ├── p-input-16.tsx
│   │   │   │   │   ├── p-input-17.tsx
│   │   │   │   │   ├── p-input-18.tsx
│   │   │   │   │   ├── p-input-19.tsx
│   │   │   │   │   ├── p-input-2.tsx
│   │   │   │   │   ├── p-input-3.tsx
│   │   │   │   │   ├── p-input-4.tsx
│   │   │   │   │   ├── p-input-5.tsx
│   │   │   │   │   ├── p-input-6.tsx
│   │   │   │   │   ├── p-input-7.tsx
│   │   │   │   │   ├── p-input-8.tsx
│   │   │   │   │   ├── p-input-9.tsx
│   │   │   │   │   ├── p-input-group-1.tsx
│   │   │   │   │   ├── p-input-group-10.tsx
│   │   │   │   │   ├── p-input-group-11.tsx
│   │   │   │   │   ├── p-input-group-12.tsx
│   │   │   │   │   ├── p-input-group-13.tsx
│   │   │   │   │   ├── p-input-group-14.tsx
│   │   │   │   │   ├── p-input-group-15.tsx
│   │   │   │   │   ├── p-input-group-16.tsx
│   │   │   │   │   ├── p-input-group-17.tsx
│   │   │   │   │   ├── p-input-group-18.tsx
│   │   │   │   │   ├── p-input-group-19.tsx
│   │   │   │   │   ├── p-input-group-2.tsx
│   │   │   │   │   ├── p-input-group-20.tsx
│   │   │   │   │   ├── p-input-group-21.tsx
│   │   │   │   │   ├── p-input-group-22.tsx
│   │   │   │   │   ├── p-input-group-23.tsx
│   │   │   │   │   ├── p-input-group-24.tsx
│   │   │   │   │   ├── p-input-group-26.tsx
│   │   │   │   │   ├── p-input-group-27.tsx
│   │   │   │   │   ├── p-input-group-28.tsx
│   │   │   │   │   ├── p-input-group-29.tsx
│   │   │   │   │   ├── p-input-group-3.tsx
│   │   │   │   │   ├── p-input-group-4.tsx
│   │   │   │   │   ├── p-input-group-5.tsx
│   │   │   │   │   ├── p-input-group-6.tsx
│   │   │   │   │   ├── p-input-group-7.tsx
│   │   │   │   │   ├── p-input-group-8.tsx
│   │   │   │   │   ├── p-input-group-9.tsx
│   │   │   │   │   ├── p-input-otp-1.tsx
│   │   │   │   │   ├── p-input-otp-2.tsx
│   │   │   │   │   ├── p-input-otp-3.tsx
│   │   │   │   │   ├── p-input-otp-4.tsx
│   │   │   │   │   ├── p-input-otp-5.tsx
│   │   │   │   │   ├── p-input-otp-6.tsx
│   │   │   │   │   ├── p-input-otp-7.tsx
│   │   │   │   │   ├── p-kbd-1.tsx
│   │   │   │   │   ├── p-menu-1.tsx
│   │   │   │   │   ├── p-menu-2.tsx
│   │   │   │   │   ├── p-menu-3.tsx
│   │   │   │   │   ├── p-menu-4.tsx
│   │   │   │   │   ├── p-menu-5.tsx
│   │   │   │   │   ├── p-menu-6.tsx
│   │   │   │   │   ├── p-menu-7.tsx
│   │   │   │   │   ├── p-menu-8.tsx
│   │   │   │   │   ├── p-menu-9.tsx
│   │   │   │   │   ├── p-meter-1.tsx
│   │   │   │   │   ├── p-meter-2.tsx
│   │   │   │   │   ├── p-meter-3.tsx
│   │   │   │   │   ├── p-meter-4.tsx
│   │   │   │   │   ├── p-number-field-1.tsx
│   │   │   │   │   ├── p-number-field-10.tsx
│   │   │   │   │   ├── p-number-field-11.tsx
│   │   │   │   │   ├── p-number-field-2.tsx
│   │   │   │   │   ├── p-number-field-3.tsx
│   │   │   │   │   ├── p-number-field-4.tsx
│   │   │   │   │   ├── p-number-field-5.tsx
│   │   │   │   │   ├── p-number-field-6.tsx
│   │   │   │   │   ├── p-number-field-7.tsx
│   │   │   │   │   ├── p-number-field-8.tsx
│   │   │   │   │   ├── p-number-field-9.tsx
│   │   │   │   │   ├── p-pagination-1.tsx
│   │   │   │   │   ├── p-pagination-2.tsx
│   │   │   │   │   ├── p-pagination-3.tsx
│   │   │   │   │   ├── p-popover-1.tsx
│   │   │   │   │   ├── p-popover-2.tsx
│   │   │   │   │   ├── p-popover-3.tsx
│   │   │   │   │   ├── p-preview-card-1.tsx
│   │   │   │   │   ├── p-progress-1.tsx
│   │   │   │   │   ├── p-progress-2.tsx
│   │   │   │   │   ├── p-progress-3.tsx
│   │   │   │   │   ├── p-radio-group-1.tsx
│   │   │   │   │   ├── p-radio-group-2.tsx
│   │   │   │   │   ├── p-radio-group-3.tsx
│   │   │   │   │   ├── p-radio-group-4.tsx
│   │   │   │   │   ├── p-radio-group-5.tsx
│   │   │   │   │   ├── p-scroll-area-1.tsx
│   │   │   │   │   ├── p-scroll-area-2.tsx
│   │   │   │   │   ├── p-scroll-area-3.tsx
│   │   │   │   │   ├── p-scroll-area-4.tsx
│   │   │   │   │   ├── p-scroll-area-5.tsx
│   │   │   │   │   ├── p-select-1.tsx
│   │   │   │   │   ├── p-select-10.tsx
│   │   │   │   │   ├── p-select-11.tsx
│   │   │   │   │   ├── p-select-12.tsx
│   │   │   │   │   ├── p-select-13.tsx
│   │   │   │   │   ├── p-select-14.tsx
│   │   │   │   │   ├── p-select-15.tsx
│   │   │   │   │   ├── p-select-16.tsx
│   │   │   │   │   ├── p-select-17.tsx
│   │   │   │   │   ├── p-select-18.tsx
│   │   │   │   │   ├── p-select-19.tsx
│   │   │   │   │   ├── p-select-2.tsx
│   │   │   │   │   ├── p-select-20.tsx
│   │   │   │   │   ├── p-select-21.tsx
│   │   │   │   │   ├── p-select-22.tsx
│   │   │   │   │   ├── p-select-23.tsx
│   │   │   │   │   ├── p-select-3.tsx
│   │   │   │   │   ├── p-select-4.tsx
│   │   │   │   │   ├── p-select-5.tsx
│   │   │   │   │   ├── p-select-6.tsx
│   │   │   │   │   ├── p-select-7.tsx
│   │   │   │   │   ├── p-select-8.tsx
│   │   │   │   │   ├── p-select-9.tsx
│   │   │   │   │   ├── p-separator-1.tsx
│   │   │   │   │   ├── p-sheet-1.tsx
│   │   │   │   │   ├── p-sheet-2.tsx
│   │   │   │   │   ├── p-sheet-3.tsx
│   │   │   │   │   ├── p-skeleton-1.tsx
│   │   │   │   │   ├── p-skeleton-2.tsx
│   │   │   │   │   ├── p-slider-1.tsx
│   │   │   │   │   ├── p-slider-10.tsx
│   │   │   │   │   ├── p-slider-11.tsx
│   │   │   │   │   ├── p-slider-12.tsx
│   │   │   │   │   ├── p-slider-13.tsx
│   │   │   │   │   ├── p-slider-14.tsx
│   │   │   │   │   ├── p-slider-15.tsx
│   │   │   │   │   ├── p-slider-16.tsx
│   │   │   │   │   ├── p-slider-17.tsx
│   │   │   │   │   ├── p-slider-18.tsx
│   │   │   │   │   ├── p-slider-19.tsx
│   │   │   │   │   ├── p-slider-2.tsx
│   │   │   │   │   ├── p-slider-20.tsx
│   │   │   │   │   ├── p-slider-21.tsx
│   │   │   │   │   ├── p-slider-22.tsx
│   │   │   │   │   ├── p-slider-23.tsx
│   │   │   │   │   ├── p-slider-3.tsx
│   │   │   │   │   ├── p-slider-4.tsx
│   │   │   │   │   ├── p-slider-5.tsx
│   │   │   │   │   ├── p-slider-6.tsx
│   │   │   │   │   ├── p-slider-7.tsx
│   │   │   │   │   ├── p-slider-8.tsx
│   │   │   │   │   ├── p-slider-9.tsx
│   │   │   │   │   ├── p-spinner-1.tsx
│   │   │   │   │   ├── p-switch-1.tsx
│   │   │   │   │   ├── p-switch-2.tsx
│   │   │   │   │   ├── p-switch-3.tsx
│   │   │   │   │   ├── p-switch-4.tsx
│   │   │   │   │   ├── p-switch-5.tsx
│   │   │   │   │   ├── p-switch-6.tsx
│   │   │   │   │   ├── p-table-1.tsx
│   │   │   │   │   ├── p-table-2.tsx
│   │   │   │   │   ├── p-table-3.tsx
│   │   │   │   │   ├── p-table-4.tsx
│   │   │   │   │   ├── p-tabs-1.tsx
│   │   │   │   │   ├── p-tabs-10.tsx
│   │   │   │   │   ├── p-tabs-11.tsx
│   │   │   │   │   ├── p-tabs-12.tsx
│   │   │   │   │   ├── p-tabs-13.tsx
│   │   │   │   │   ├── p-tabs-2.tsx
│   │   │   │   │   ├── p-tabs-3.tsx
│   │   │   │   │   ├── p-tabs-4.tsx
│   │   │   │   │   ├── p-tabs-5.tsx
│   │   │   │   │   ├── p-tabs-6.tsx
│   │   │   │   │   ├── p-tabs-7.tsx
│   │   │   │   │   ├── p-tabs-8.tsx
│   │   │   │   │   ├── p-tabs-9.tsx
│   │   │   │   │   ├── p-textarea-1.tsx
│   │   │   │   │   ├── p-textarea-10.tsx
│   │   │   │   │   ├── p-textarea-11.tsx
│   │   │   │   │   ├── p-textarea-12.tsx
│   │   │   │   │   ├── p-textarea-13.tsx
│   │   │   │   │   ├── p-textarea-14.tsx
│   │   │   │   │   ├── p-textarea-15.tsx
│   │   │   │   │   ├── p-textarea-2.tsx
│   │   │   │   │   ├── p-textarea-3.tsx
│   │   │   │   │   ├── p-textarea-4.tsx
│   │   │   │   │   ├── p-textarea-5.tsx
│   │   │   │   │   ├── p-textarea-6.tsx
│   │   │   │   │   ├── p-textarea-7.tsx
│   │   │   │   │   ├── p-textarea-8.tsx
│   │   │   │   │   ├── p-textarea-9.tsx
│   │   │   │   │   ├── p-toast-1.tsx
│   │   │   │   │   ├── p-toast-2.tsx
│   │   │   │   │   ├── p-toast-3.tsx
│   │   │   │   │   ├── p-toast-4.tsx
│   │   │   │   │   ├── p-toast-5.tsx
│   │   │   │   │   ├── p-toast-6.tsx
│   │   │   │   │   ├── p-toast-7.tsx
│   │   │   │   │   ├── p-toast-8.tsx
│   │   │   │   │   ├── p-toast-9.tsx
│   │   │   │   │   ├── p-toggle-1.tsx
│   │   │   │   │   ├── p-toggle-2.tsx
│   │   │   │   │   ├── p-toggle-3.tsx
│   │   │   │   │   ├── p-toggle-4.tsx
│   │   │   │   │   ├── p-toggle-5.tsx
│   │   │   │   │   ├── p-toggle-6.tsx
│   │   │   │   │   ├── p-toggle-7.tsx
│   │   │   │   │   ├── p-toggle-8.tsx
│   │   │   │   │   ├── p-toggle-group-1.tsx
│   │   │   │   │   ├── p-toggle-group-2.tsx
│   │   │   │   │   ├── p-toggle-group-3.tsx
│   │   │   │   │   ├── p-toggle-group-4.tsx
│   │   │   │   │   ├── p-toggle-group-5.tsx
│   │   │   │   │   ├── p-toggle-group-6.tsx
│   │   │   │   │   ├── p-toggle-group-7.tsx
│   │   │   │   │   ├── p-toggle-group-8.tsx
│   │   │   │   │   ├── p-toggle-group-9.tsx
│   │   │   │   │   ├── p-toolbar-1.tsx
│   │   │   │   │   ├── p-tooltip-1.tsx
│   │   │   │   │   ├── p-tooltip-2.tsx
│   │   │   │   │   ├── p-tooltip-3.tsx
│   │   │   │   │   └── p-tooltip-4.tsx
│   │   │   │   └── ui/
│   │   │   │       ├── accordion.tsx
│   │   │   │       ├── alert-dialog.tsx
│   │   │   │       ├── alert.tsx
│   │   │   │       ├── autocomplete.tsx
│   │   │   │       ├── avatar.tsx
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── breadcrumb.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       ├── calendar.tsx
│   │   │   │       ├── card.tsx
│   │   │   │       ├── checkbox-group.tsx
│   │   │   │       ├── checkbox.tsx
│   │   │   │       ├── collapsible.tsx
│   │   │   │       ├── combobox.tsx
│   │   │   │       ├── command.tsx
│   │   │   │       ├── dialog.tsx
│   │   │   │       ├── drawer.tsx
│   │   │   │       ├── empty.tsx
│   │   │   │       ├── field.tsx
│   │   │   │       ├── fieldset.tsx
│   │   │   │       ├── form.tsx
│   │   │   │       ├── frame.tsx
│   │   │   │       ├── group.tsx
│   │   │   │       ├── input-group.tsx
│   │   │   │       ├── input-otp.tsx
│   │   │   │       ├── input.tsx
│   │   │   │       ├── kbd.tsx
│   │   │   │       ├── label.tsx
│   │   │   │       ├── menu.tsx
│   │   │   │       ├── meter.tsx
│   │   │   │       ├── number-field.tsx
│   │   │   │       ├── pagination.tsx
│   │   │   │       ├── popover.tsx
│   │   │   │       ├── preview-card.tsx
│   │   │   │       ├── progress.tsx
│   │   │   │       ├── radio-group.tsx
│   │   │   │       ├── scroll-area.tsx
│   │   │   │       ├── select.tsx
│   │   │   │       ├── separator.tsx
│   │   │   │       ├── sheet.tsx
│   │   │   │       ├── sidebar.tsx
│   │   │   │       ├── skeleton.tsx
│   │   │   │       ├── slider.tsx
│   │   │   │       ├── spinner.tsx
│   │   │   │       ├── switch.tsx
│   │   │   │       ├── table.tsx
│   │   │   │       ├── tabs.tsx
│   │   │   │       ├── textarea.tsx
│   │   │   │       ├── toast.tsx
│   │   │   │       ├── toggle-group.tsx
│   │   │   │       ├── toggle.tsx
│   │   │   │       ├── toolbar.tsx
│   │   │   │       └── tooltip.tsx
│   │   │   ├── index.ts
│   │   │   ├── registry-base-ui.ts
│   │   │   ├── registry-categories.ts
│   │   │   ├── registry-hooks.ts
│   │   │   ├── registry-lib.ts
│   │   │   ├── registry-particles.ts
│   │   │   ├── registry-styles.ts
│   │   │   └── registry-ui.ts
│   │   ├── registry.json
│   │   ├── scripts/
│   │   │   ├── build-registry.mts
│   │   │   ├── sync-ui.mts
│   │   │   └── validate-registry-deps.mts
│   │   ├── source.config.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.scripts.json
│   └── www/
│       ├── .gitignore
│       ├── README.md
│       ├── app/
│       │   ├── auth/
│       │   │   └── page.tsx
│       │   ├── auth copy/
│       │   │   └── page.tsx
│       │   ├── calendar/
│       │   │   └── page.tsx
│       │   ├── email/
│       │   │   └── page.tsx
│       │   ├── globals.css
│       │   ├── layout.tsx
│       │   ├── not-found.tsx
│       │   ├── notifications/
│       │   │   └── page.tsx
│       │   ├── page.tsx
│       │   ├── payments/
│       │   │   └── page.tsx
│       │   ├── robots.ts
│       │   ├── scheduling/
│       │   │   └── page.tsx
│       │   ├── sitemap.ts
│       │   ├── sms/
│       │   │   └── page.tsx
│       │   └── video/
│       │       └── page.tsx
│       ├── next.config.ts
│       ├── package.json
│       ├── postcss.config.mjs
│       └── tsconfig.json
├── biome.json
├── bunfig.toml
├── lint-staged.config.mjs
├── package.json
├── packages/
│   ├── typescript-config/
│   │   ├── base.json
│   │   ├── nextjs.json
│   │   ├── package.json
│   │   └── react-library.json
│   └── ui/
│       ├── components.json
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── src/
│       │   ├── base-ui/
│       │   │   ├── csp-provider.ts
│       │   │   ├── direction-provider.ts
│       │   │   ├── merge-props.ts
│       │   │   └── use-render.ts
│       │   ├── components/
│       │   │   ├── accordion.tsx
│       │   │   ├── alert-dialog.tsx
│       │   │   ├── alert.tsx
│       │   │   ├── autocomplete.tsx
│       │   │   ├── avatar.tsx
│       │   │   ├── badge.tsx
│       │   │   ├── breadcrumb.tsx
│       │   │   ├── button.tsx
│       │   │   ├── calendar.tsx
│       │   │   ├── card.tsx
│       │   │   ├── checkbox-group.tsx
│       │   │   ├── checkbox.tsx
│       │   │   ├── collapsible.tsx
│       │   │   ├── combobox.tsx
│       │   │   ├── command.tsx
│       │   │   ├── dialog.tsx
│       │   │   ├── drawer.tsx
│       │   │   ├── empty.tsx
│       │   │   ├── field.tsx
│       │   │   ├── fieldset.tsx
│       │   │   ├── form.tsx
│       │   │   ├── frame.tsx
│       │   │   ├── group.tsx
│       │   │   ├── input-group.tsx
│       │   │   ├── input-otp.tsx
│       │   │   ├── input.tsx
│       │   │   ├── kbd.tsx
│       │   │   ├── label.tsx
│       │   │   ├── menu.tsx
│       │   │   ├── meter.tsx
│       │   │   ├── number-field.tsx
│       │   │   ├── pagination.tsx
│       │   │   ├── popover.tsx
│       │   │   ├── preview-card.tsx
│       │   │   ├── progress.tsx
│       │   │   ├── radio-group.tsx
│       │   │   ├── scroll-area.tsx
│       │   │   ├── select.tsx
│       │   │   ├── separator.tsx
│       │   │   ├── sheet.tsx
│       │   │   ├── sidebar.tsx
│       │   │   ├── skeleton.tsx
│       │   │   ├── slider.tsx
│       │   │   ├── spinner.tsx
│       │   │   ├── switch.tsx
│       │   │   ├── table.tsx
│       │   │   ├── tabs.tsx
│       │   │   ├── textarea.tsx
│       │   │   ├── toast.tsx
│       │   │   ├── toggle-group.tsx
│       │   │   ├── toggle.tsx
│       │   │   ├── toolbar.tsx
│       │   │   └── tooltip.tsx
│       │   ├── fonts/
│       │   │   ├── README.md
│       │   │   └── index.ts
│       │   ├── hooks/
│       │   │   ├── use-copy-to-clipboard.ts
│       │   │   └── use-media-query.ts
│       │   ├── lib/
│       │   │   ├── config.ts
│       │   │   ├── highlight-code.ts
│       │   │   └── utils.ts
│       │   ├── shared/
│       │   │   ├── code-block.tsx
│       │   │   ├── copy-button.tsx
│       │   │   ├── github-link.tsx
│       │   │   ├── icons.tsx
│       │   │   ├── mobile-nav.tsx
│       │   │   ├── mode-switcher.tsx
│       │   │   ├── page-header.tsx
│       │   │   ├── product-label.tsx
│       │   │   ├── products-dropdown.tsx
│       │   │   ├── site-cta.tsx
│       │   │   ├── site-footer.tsx
│       │   │   ├── site-header.tsx
│       │   │   └── theme-provider.tsx
│       │   └── styles/
│       │       └── globals.css
│       ├── test/
│       │   └── components/
│       │       ├── button.test.tsx
│       │       └── separator.test.tsx
│       ├── tsconfig.json
│       ├── tsconfig.lint.json
│       └── tsconfig.tsbuildinfo
├── tsconfig.json
└── turbo.json

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

================================================
FILE: .biome-packages-sync/packages-sync.json
================================================
{
  "$schema": "https://biomejs.dev/schemas/2.3.10/schema.json",
  "root": false,
  "assist": {
    "enabled": true,
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  }
}


================================================
FILE: .github/labeler.yml
================================================
"area:apps/origin":
  - changed-files:
      - any-glob-to-any-file: "apps/origin/**"

"area:apps/ui":
  - changed-files:
      - any-glob-to-any-file: "apps/ui/**"

"area:apps/www":
  - changed-files:
      - any-glob-to-any-file: "apps/www/**"

"pkg:ui":
  - changed-files:
      - any-glob-to-any-file: "packages/ui/**"

"pkg:tsconfig":
  - changed-files:
      - any-glob-to-any-file: "packages/typescript-config/**"

"area:config":
  - changed-files:
      - any-glob-to-any-file: ".github/**"
      - any-glob-to-any-file: "biome.json"
      - any-glob-to-any-file: "turbo.json"
      - any-glob-to-any-file: "tsconfig.json"
      - any-glob-to-any-file: "bunfig.toml"
      - any-glob-to-any-file: "lint-staged.config.mjs"

"docs":
  - changed-files:
      - any-glob-to-any-file: "**/*.md"

"deps":
  - changed-files:
      - any-glob-to-any-file: "package.json"
      - any-glob-to-any-file: "bun.lock"
      - any-glob-to-any-file: "packages/**/package.json"


================================================
FILE: .github/workflows/build.yml
================================================
name: Build

on:
  workflow_call:

env:
  BUN_VERSION: 1.3.1

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.bun/install/cache
            node_modules
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Run build
        run: bun run build


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI

on:
  push:
    branches:
      - main
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  format:
    name: Format Check
    uses: ./.github/workflows/format.yml
    secrets: inherit

  lint:
    name: Lint
    uses: ./.github/workflows/lint.yml
    secrets: inherit

  typecheck:
    name: Typecheck
    uses: ./.github/workflows/typecheck.yml
    secrets: inherit

  test:
    name: Test
    uses: ./.github/workflows/test.yml
    secrets: inherit

  build:
    name: Build
    needs: [lint, test, format, typecheck]
    uses: ./.github/workflows/build.yml
    secrets: inherit


================================================
FILE: .github/workflows/format.yml
================================================
name: Format

on:
  workflow_call:

env:
  BUN_VERSION: 1.3.1

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.bun/install/cache
            node_modules
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Verify formatting
        run: bunx biome check --linter-enabled=false .


================================================
FILE: .github/workflows/labeler.yml
================================================
name: PR Labeler

on:
  pull_request:
    types:
      - opened
      - synchronize
      - reopened
  pull_request_target:
    types:
      - opened
      - synchronize
      - reopened

jobs:
  label:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/labeler@v5
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          configuration-path: .github/labeler.yml


================================================
FILE: .github/workflows/lint.yml
================================================
name: Lint

on:
  workflow_call:

env:
  BUN_VERSION: 1.3.1

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.bun/install/cache
            node_modules
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Run lint
        run: bun run lint


================================================
FILE: .github/workflows/publish.yml
================================================
name: Publish Package

on:
  workflow_dispatch:
    inputs:
      package:
        description: Name of the package directory inside packages/
        required: true
        default: ui
        type: choice
        options:
          - ui
      release_type:
        description: Semver bump type to apply before publishing
        required: true
        default: patch
        type: choice
        options:
          - patch
          - minor
          - major

concurrency:
  group: publish-${{ github.ref }}
  cancel-in-progress: false

env:
  BUN_VERSION: 1.3.1

jobs:
  format:
    uses: ./.github/workflows/format.yml
    secrets: inherit

  lint:
    needs: format
    uses: ./.github/workflows/lint.yml
    secrets: inherit

  test:
    needs: lint
    uses: ./.github/workflows/test.yml
    secrets: inherit

  build:
    needs: [lint, test]
    uses: ./.github/workflows/build.yml
    secrets: inherit

  publish:
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
      packages: write
      id-token: write
    env:
      PACKAGE_DIR: packages/${{ inputs.package }}
      NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Resolve package metadata
        id: pkg
        run: |
          PACKAGE_JSON="${{ env.PACKAGE_DIR }}/package.json"
          if [ ! -f "$PACKAGE_JSON" ]; then
            echo "::error::Package manifest not found at $PACKAGE_JSON"
            exit 1
          fi
          NAME=$(node -p "require('./${{ env.PACKAGE_DIR }}/package.json').name")
          VERSION=$(node -p "require('./${{ env.PACKAGE_DIR }}/package.json').version")
          echo "name=$NAME" >> "$GITHUB_OUTPUT"
          echo "current_version=$VERSION" >> "$GITHUB_OUTPUT"

      - name: Build target package
        run: bunx turbo run build --filter=${{ steps.pkg.outputs.name }}

      - name: Bump package version
        id: bump
        working-directory: ${{ env.PACKAGE_DIR }}
        run: |
          npm version ${{ inputs.release_type }} --no-git-tag-version --no-commit > /dev/null
          NEW_VERSION=$(node -p "require('./package.json').version")
          echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT"

      - name: Verify npm token
        run: |
          if [ -z "${NODE_AUTH_TOKEN:-}" ]; then
            echo "::error::NPM_TOKEN secret is not configured"
            exit 1
          fi

      - name: Publish to npm
        working-directory: ${{ env.PACKAGE_DIR }}
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: npm publish --access public --provenance

      - name: Commit version bump
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add "${{ env.PACKAGE_DIR }}/package.json"
          git commit -m "chore(release): ${{ steps.pkg.outputs.name }} v${{ steps.bump.outputs.version }}"

      - name: Push changes
        run: |
          git push origin HEAD:${GITHUB_REF_NAME}

      - name: Tag release
        run: |
          TAG="${{ steps.pkg.outputs.name }}@${{ steps.bump.outputs.version }}"
          git tag "$TAG"
          git push origin "$TAG"


================================================
FILE: .github/workflows/semantic-pull-requests.yml
================================================
name: "Validate PRs"

on:
  pull_request_target:
    types:
      - opened
      - reopened
      - edited
      - synchronize

permissions:
  pull-requests: write

jobs:
  validate-pr:
    name: Validate PR title
    runs-on: ubuntu-latest
    steps:
      - uses: amannn/action-semantic-pull-request@v5
        id: lint_pr_title
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - uses: marocchino/sticky-pull-request-comment@v2
        # When the previous steps fails, the workflow would stop. By adding this
        # condition you can continue the execution with the populated error message.
        if: always() && (steps.lint_pr_title.outputs.error_message != null)
        with:
          header: pr-title-lint-error
          message: |
            Hey there and thank you for opening this pull request! 👋🏼

            We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.

            Details:

            ```
            ${{ steps.lint_pr_title.outputs.error_message }}
            ```


================================================
FILE: .github/workflows/test.yml
================================================
name: Test

on:
  workflow_call:

env:
  BUN_VERSION: 1.3.1

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.bun/install/cache
            node_modules
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Run tests
        run: bun run test


================================================
FILE: .github/workflows/typecheck.yml
================================================
name: Typecheck

on:
  workflow_call:

env:
  BUN_VERSION: 1.3.1

jobs:
  typecheck:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: ${{ env.BUN_VERSION }}

      - name: Cache dependencies
        uses: actions/cache@v4
        with:
          path: |
            ~/.bun/install/cache
            node_modules
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Run typecheck
        run: bun run typecheck


================================================
FILE: .gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# Dependencies
node_modules
.pnp
.pnp.js

# Local env files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# Testing
coverage

# Turbo
.turbo

# Vercel
.vercel

# Build Outputs
.next/
out/
build
dist


# Debug
npm-debug.log*

# Misc
.DS_Store
*.pem


================================================
FILE: .husky/pre-commit
================================================
bunx lint-staged


================================================
FILE: .husky/pre-push
================================================
#!/bin/sh
# Format all files first
bun format:all || exit $?

# Then build registry and sync UI components
cd apps/ui
bun registry:build && bun ui:sync



================================================
FILE: .vscode/settings.json
================================================
{
  "eslint.workingDirectories": [
    {
      "mode": "auto"
    }
  ]
}


================================================
FILE: .zed/settings.json
================================================
{
  "code_actions_on_format": {
    "source.fixAll.biome": true,
    "source.organizeImports.biome": true
  },
  "format_on_save": "on",
  "formatter": {
    "language_server": {
      "name": "biome"
    }
  }
}


================================================
FILE: AGENTS.md
================================================
# AGENTS.md

Guidelines for AI agents working on this codebase.

## Main Documentation

The comprehensive agent guidelines for this repository are located in:

**[apps/ui/AGENTS.md](apps/ui/AGENTS.md)**


================================================
FILE: LICENSE
================================================
                    GNU AFFERO GENERAL PUBLIC LICENSE
                       Version 3, 19 November 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

  A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate.  Many developers of free software are heartened and
encouraged by the resulting cooperation.  However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

  The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community.  It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server.  Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

  An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals.  This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU Affero General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Remote Network Interaction; Use with the GNU General Public License.

  Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software.  This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time.  Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published
    by the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source.  For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code.  There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

================================================
FILE: LICENSING.md
================================================
# Licensing

This repository uses a mixed licensing approach. The default license for this project is [AGPLv3.0](LICENSE).

## MIT

The following directory and their subdirectories are licensed under their original

```
apps/origin/
apps/ui/
```



================================================
FILE: README.md
================================================
![coss.com](https://github.com/user-attachments/assets/56dfe7f7-85b7-44ee-b89a-1c30c5c4a156)

<h3 align="center">coss.com (formerly Origin UI)</h3>
<p align="center">The <strong>everything but AI</strong> company.</p>

## About the Project

coss.com is the new holding company of [cal.com](https://cal.com), the pioneers of open source scheduling infrastructure. Our mission is to build a home for amazing open source projects, giving them the support they need to grow and succeed.

We're building the coss stack, a one line `npm install @coss` package that includes everything you need to build your application, from email, SMS, calendar APIs, scheduling, video conferencing, notifications and more.

## Repository Overview

This repository contains multiple products and applications that make up the coss.com ecosystem:

### Apps and Packages

- **`apps/www/`** - Main coss.com website
- **`apps/ui/`** - coss ui component library and documentation
- **`apps/origin/`** - Legacy Origin UI components (pre-acquisition)
- **`packages/ui/`** - Shared UI components package
- **`packages/typescript-config/`** - TypeScript configurations
- **`biome.json`** - Shared Biome configuration for linting and formatting

Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).

### Environment Variables

This monorepo contains multiple Next.js applications that are designed to link to each other. For the navigation to work correctly, you must set up environment variables for both local development and production deployments.

#### Local Development

For local development, create a `.env.local` file in each of the app directories with the corresponding variables.

1.  **`www` app**

    This app needs to know the URLs of the other apps. Create a file at `apps/www/.env.local`:

    ```sh
    # apps/www/.env.local
    NEXT_PUBLIC_APP_URL=http://localhost:3000
    NEXT_PUBLIC_COSS_UI_URL=http://localhost:4000/ui
    ```

2.  **`ui` app**

    This app needs to know the URLs of the other apps. Create a file at `apps/ui/.env.local`:

    ```sh
    # apps/ui/.env.local
    NEXT_PUBLIC_APP_URL=http://localhost:4000/ui
    NEXT_PUBLIC_COSS_URL=http://localhost:3000
    NEXT_PUBLIC_ORIGIN_URL=http://localhost:4001
    ```

3.  **`origin` app**

    This app needs to know the URLs of the other apps. Create a file at `apps/origin/.env.local`:

    ```sh
    # apps/origin/.env.local
    NEXT_PUBLIC_APP_URL=http://localhost:4001/origin
    NEXT_PUBLIC_COSS_URL=http://localhost:3000
    NEXT_PUBLIC_COSS_UI_URL=http://localhost:4000/ui
    ```

> [!NOTE]
> Turborepo is configured to watch for changes in `.env*` files, so it will automatically invalidate the cache when these variables change.

### Development

This Turborepo has some additional tools already setup for you:

- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [Biome](https://biomejs.dev/) for linting and formatting

#### Build

To build all apps and packages:

```sh
bun run build
```

To build a specific app:

```sh
bun run build --filter=www
bun run build --filter=ui
bun run build --filter=origin
```

#### Develop

To develop all apps and packages:

```sh
bun run dev
```

To develop a specific app:

```sh
bun run dev --filter=www
bun run dev --filter=ui
bun run dev --filter=origin
```

## coss ui

**coss ui** is a collection of beautifully designed, accessible, and composable components for your React apps. Built on top of [Base UI](https://base-ui.com/) and styled with [Tailwind CSS](https://tailwindcss.com/), it's designed for you to copy, paste, and own.

We think Base UI is the best foundation for modern web applications. We've taken its powerful, unstyled primitives and given them a design system that's ready to go, right out of the box.

This is the component library we'll be progressively adopting for [cal.com](https://cal.com). We're building it in the open for anyone who wants to create beautiful, reliable user interfaces.

### Origin UI Acquisition

This repository also includes the **Origin UI** components as a legacy snapshot. Origin UI was a pre-acquisition collection of Radix-based, shadcn-style components that remains available for use, but with limited support and maintenance. Active development now focuses on the new [Particles](https://coss.com/ui/particles) components built on the coss ui primitives.

### Contributing to coss ui

We're always looking for contributors to help improve our UI components. Whether it's a bug report, a new feature, or a documentation update, we appreciate your help.

Please see our [Contributing Guidelines](apps/ui/CONTRIBUTING.md) for more information on how to get involved.

## Licensing

This repository uses a mixed licensing approach. The default license for this project is [AGPLv3.0](LICENSE).

- **MIT**: The `apps/origin/` and `apps/ui/` directories are licensed under their original MIT license
- **AGPLv3**: All other directories are licensed under the GNU Affero General Public License v3.0

For detailed information, see our [Licensing documentation](LICENSING.md).

## Acknowledgements

Special thanks to:

- **[Tailwind CSS](https://tailwindcss.com/)** - For the utility-first CSS framework that powers our design system
- **[Base UI](https://base-ui.com/)** - For providing the robust, accessible primitives that form the foundation of our components
- **[shadcn/ui](https://ui.shadcn.com/)** - For inspiring our copy-paste approach and component philosophy
- **[Fumadocs](https://fumadocs.dev/)** - For providing the documentation framework that powers our component docs


================================================
FILE: apps/examples/calcom/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# fumadocs
.source

================================================
FILE: apps/examples/calcom/README.md
================================================
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun run dev
```

Open [http://localhost:4002](http://localhost:4002) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/booking-skeleton.tsx
================================================
import { Card, CardFrame, CardPanel } from "@coss/ui/components/card";
import { FrameFooter } from "@coss/ui/components/frame";
import { Skeleton } from "@coss/ui/components/skeleton";
import { BookingActionsSkeleton } from "./past/booking-actions";
import {
  ListItem,
  ListItemActions,
  ListItemBadges,
  ListItemContent,
  ListItemHeader,
} from "@/components/list-item";

export function BookingSkeletonItem() {
  return (
    <ListItem>
      <div className="flex min-w-0 flex-1 flex-col gap-3 md:flex-row md:gap-4">
        <ListItemContent>
          <ListItemHeader>
            <Skeleton className="h-6 w-full max-w-82 sm:h-5" />
            <Skeleton className="my-0.5 h-4 w-full max-w-82" />
          </ListItemHeader>
          <ListItemBadges>
            <Skeleton className="h-5.5 w-14 sm:h-4.5" />
            <Skeleton className="h-5.5 w-14 sm:h-4.5" />
          </ListItemBadges>
        </ListItemContent>

        <div className="flex flex-col items-start gap-2 md:-order-1 md:w-36 md:shrink-0">
          <div className="flex w-full flex-col gap-1">
            <Skeleton className="h-5 w-full max-w-28" />
            <Skeleton className="my-0.5 h-4 w-full max-w-28" />
          </div>
          <Skeleton className="h-7 w-28 rounded-lg sm:h-6" />
        </div>
      </div>

      <ListItemActions>
        <BookingActionsSkeleton />
      </ListItemActions>
    </ListItem>
  );
}

export function BookingsListSkeleton() {
  return (
    <CardFrame>
      <Card>
        <CardPanel className="p-0">
          <BookingSkeletonItem />
          <BookingSkeletonItem />
          <BookingSkeletonItem />
          <BookingSkeletonItem />
          <BookingSkeletonItem />
        </CardPanel>
      </Card>
      <FrameFooter>
        <div className="flex items-center justify-between gap-4">
          <div className="flex items-center gap-2">
            <Skeleton className="h-7 w-12 rounded-lg" />
            <Skeleton className="h-4 w-24" />
          </div>
          <div className="flex items-center gap-2">
            <Skeleton className="h-4 w-12" />
            <div className="flex items-center gap-2">
              <Skeleton className="h-7 w-18 rounded-lg" />
              <Skeleton className="h-7 w-18 rounded-lg" />
            </div>
          </div>
        </div>
      </FrameFooter>
    </CardFrame>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/bookings-empty.tsx
================================================
"use client";

import {
  Empty,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@coss/ui/components/empty";
import { CalendarIcon } from "lucide-react";
import { BookingsListSkeleton } from "../booking-skeleton";
import { useLoadingState } from "@/hooks/use-loading-state";

const ARTIFICIAL_DELAY_MS = 400;

export function BookingsEmpty() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);

  if (showLoading) {
    return <BookingsListSkeleton />;
  }

  return (
    <Empty className="rounded-xl border border-dashed md:py-32">
      <EmptyHeader>
        <EmptyMedia variant="icon">
          <CalendarIcon />
        </EmptyMedia>
        <EmptyTitle>No canceled bookings</EmptyTitle>
        <EmptyDescription>
          You have no canceled bookings found. Canceled bookings will appear
          here.
        </EmptyDescription>
      </EmptyHeader>
    </Empty>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/loading.tsx
================================================
import { BookingsListSkeleton } from "../booking-skeleton";

export default function Loading() {
  return <BookingsListSkeleton />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/page.tsx
================================================
import { BookingsEmpty } from "./bookings-empty";
import { BookingsNav } from "@/components/app/bookings-nav";
import { BookingsView } from "@/components/app/bookings-view";

export default function Page() {
  return (
    <>
      <div className="mb-6 flex justify-between gap-2 max-sm:flex-col sm:flex-wrap sm:items-center">
        <BookingsNav />
        <BookingsView />
      </div>
      {/* <BookingsFilters /> */}
      <div className="mt-4">
        <BookingsEmpty />
      </div>
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/page.tsx
================================================
import { redirect } from "next/navigation";

export default function Page() {
  redirect("/booking/upcoming");
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/past/booking-actions.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import {
  Menu,
  MenuGroup,
  MenuGroupLabel,
  MenuItem,
  MenuPopup,
  MenuSeparator,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { Skeleton } from "@coss/ui/components/skeleton";
import {
  Tooltip,
  TooltipPopup,
  TooltipTrigger,
} from "@coss/ui/components/tooltip";
import {
  CalendarClockIcon,
  EllipsisIcon,
  EyeOffIcon,
  FlagIcon,
  InfoIcon,
  MapPinIcon,
  PlayCircleIcon,
  UserPlusIcon,
  XIcon,
} from "lucide-react";

export function BookingActions() {
  return (
    <Menu>
      <Tooltip>
        <MenuTrigger
          render={
            <TooltipTrigger
              render={
                <Button aria-label="Pptions" size="icon" variant="outline">
                  <EllipsisIcon />
                </Button>
              }
            />
          }
        />
        <TooltipPopup>Options</TooltipPopup>
      </Tooltip>
      <MenuPopup align="end">
        <MenuGroup>
          <MenuGroupLabel>Edit event</MenuGroupLabel>
          <MenuItem>
            <CalendarClockIcon />
            Reschedule booking
          </MenuItem>
          <MenuItem disabled>
            <CalendarClockIcon />
            Request reschedule
          </MenuItem>
          <MenuItem>
            <MapPinIcon />
            Edit location
          </MenuItem>
          <MenuItem>
            <UserPlusIcon />
            Add guests
          </MenuItem>
        </MenuGroup>
        <MenuSeparator />
        <MenuGroup>
          <MenuGroupLabel>After event</MenuGroupLabel>
          <MenuItem disabled>
            <PlayCircleIcon />
            View recordings
          </MenuItem>
          <MenuItem>
            <InfoIcon />
            View Session Details
          </MenuItem>
          <MenuItem>
            <EyeOffIcon />
            Mark as no-show
          </MenuItem>
        </MenuGroup>
        <MenuSeparator />
        <MenuGroup>
          <MenuItem variant="destructive">
            <FlagIcon />
            Report booking
          </MenuItem>
        </MenuGroup>
        <MenuSeparator />
        <MenuGroup>
          <MenuItem disabled variant="destructive">
            <XIcon />
            Cancel event
          </MenuItem>
        </MenuGroup>
      </MenuPopup>
    </Menu>
  );
}

export function BookingActionsSkeleton() {
  return <Skeleton className="size-9 rounded-lg sm:size-8" />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/past/bookings-list.tsx
================================================
"use client";

import { Badge } from "@coss/ui/components/badge";
import { Button } from "@coss/ui/components/button";
import {
  Card,
  CardFrame,
  CardFrameFooter,
  CardPanel,
} from "@coss/ui/components/card";
import {
  Pagination,
  PaginationContent,
  PaginationItem,
  PaginationNext,
  PaginationPrevious,
} from "@coss/ui/components/pagination";
import {
  Select,
  SelectItem,
  SelectPopup,
  SelectTrigger,
  SelectValue,
} from "@coss/ui/components/select";
import { TooltipProvider } from "@coss/ui/components/tooltip";
import { cn } from "@coss/ui/lib/utils";
import {
  BanknoteIcon,
  CircleDashedIcon,
  CircleXIcon,
  RefreshCcwIcon,
  RepeatIcon,
  UsersIcon,
  VideoIcon,
} from "lucide-react";
import Link from "next/link";
import { useState } from "react";
import { BookingsListSkeleton } from "../booking-skeleton";
import { BookingActions } from "./booking-actions";
import { ItemLabel } from "@/components/item-label";
import {
  ListItem,
  ListItemActions,
  ListItemBadges,
  ListItemContent,
  ListItemDescription,
  ListItemHeader,
  ListItemTitle,
  ListItemTitleLink,
} from "@/components/list-item";
import { useLoadingState } from "@/hooks/use-loading-state";
import {
  formatBookingDate,
  formatBookingTime,
  getBookingParticipants,
  getLocationLabel,
  mockPastBookings,
} from "@/lib/mock-bookings-data";

const ARTIFICIAL_DELAY_MS = 800;

export function BookingsList() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);
  const bookings = mockPastBookings;
  const [pageIndex, setPageIndex] = useState(0);
  const [pageSize, setPageSize] = useState(10);

  const totalCount = bookings.length;
  const totalPages = Math.ceil(totalCount / pageSize);
  const startIndex = pageIndex * pageSize;
  const endIndex = Math.min(startIndex + pageSize, totalCount);
  const paginatedBookings = bookings.slice(startIndex, endIndex);

  const hasPreviousPage = pageIndex > 0;
  const hasNextPage = pageIndex < totalPages - 1;

  if (showLoading) {
    return <BookingsListSkeleton />;
  }

  return (
    <TooltipProvider delay={150} timeout={0}>
      <CardFrame>
        <Card>
          <CardPanel className="p-0">
            {paginatedBookings.map((booking, _index) => {
              const dateStr = formatBookingDate(booking.startTime);
              const timeStr = formatBookingTime(
                booking.startTime,
                booking.endTime,
              );
              const participants = getBookingParticipants(booking);
              const locationLabel = getLocationLabel(booking.location);
              const eventTypeColorLight =
                booking.eventType?.eventTypeColor?.lightEventTypeColor;
              const eventTypeColorDark =
                booking.eventType?.eventTypeColor?.darkEventTypeColor;
              const isPaid = booking.paid;
              const isRecurring = booking.recurringEventId !== null;
              const isCancelled = booking.status === "CANCELLED";
              const isPending = booking.status === "PENDING";
              const isRejected = booking.status === "REJECTED";
              const isRescheduled = booking.rescheduled;
              const teamName = booking.eventType?.team?.name;

              return (
                <ListItem key={booking.id}>
                  <ItemLabel
                    colorDark={eventTypeColorDark ?? undefined}
                    colorLight={eventTypeColorLight ?? undefined}
                  />
                  <div className="flex min-w-0 flex-1 flex-col gap-3 md:flex-row md:gap-4">
                    <ListItemContent>
                      <ListItemHeader>
                        <ListItemTitle
                          className={cn(isCancelled && "line-through")}
                        >
                          <ListItemTitleLink href="#">
                            {booking.title}
                          </ListItemTitleLink>
                        </ListItemTitle>
                        <ListItemDescription>
                          {participants}
                        </ListItemDescription>
                      </ListItemHeader>

                      <ListItemBadges>
                        {isCancelled && (
                          <Badge
                            className="pointer-events-none"
                            variant="error"
                          >
                            <CircleXIcon />
                            Cancelled
                          </Badge>
                        )}
                        {isPending && (
                          <Badge
                            className="pointer-events-none"
                            variant="warning"
                          >
                            <CircleDashedIcon />
                            Unconfirmed
                          </Badge>
                        )}
                        {isRescheduled && (
                          <Badge
                            className="pointer-events-none"
                            variant="warning"
                          >
                            <RefreshCcwIcon />
                            Rescheduled
                          </Badge>
                        )}
                        {isRejected && !isRescheduled && (
                          <Badge
                            className="pointer-events-none"
                            variant="secondary"
                          >
                            Rejected
                          </Badge>
                        )}
                        {teamName && (
                          <Badge
                            className="pointer-events-none"
                            variant="outline"
                          >
                            <UsersIcon />
                            {teamName}
                          </Badge>
                        )}
                        {isPaid && (
                          <Badge
                            className="pointer-events-none"
                            variant="outline"
                          >
                            <BanknoteIcon />
                            Paid
                          </Badge>
                        )}
                        {isRecurring && (
                          <Badge
                            className="pointer-events-none"
                            variant="outline"
                          >
                            <RepeatIcon />
                            Recurring
                          </Badge>
                        )}
                      </ListItemBadges>
                    </ListItemContent>

                    <div className="flex flex-col items-start gap-2 md:-order-1 md:w-36 md:shrink-0">
                      <div className="flex flex-col gap-1">
                        <p className="text-sm">{dateStr}</p>
                        <p className="text-muted-foreground text-sm">
                          {timeStr}
                        </p>
                      </div>
                      {locationLabel && (
                        <Button
                          className="pointer-events-auto"
                          render={<Link href="#join" />}
                          size="xs"
                          variant="outline"
                        >
                          <VideoIcon />
                          {locationLabel}
                        </Button>
                      )}
                    </div>
                  </div>

                  <ListItemActions>
                    <BookingActions />
                  </ListItemActions>
                </ListItem>
              );
            })}
          </CardPanel>
        </Card>

        <CardFrameFooter>
          <div className="flex items-center justify-between gap-4">
            <div className="flex items-center gap-2">
              <Select
                onValueChange={(value) => {
                  if (value !== null) {
                    setPageSize(value);
                    setPageIndex(0);
                  }
                }}
                value={pageSize}
              >
                <SelectTrigger
                  aria-label="Rows per page"
                  className="w-fit min-w-none"
                  size="sm"
                >
                  <SelectValue />
                </SelectTrigger>
                <SelectPopup>
                  <SelectItem value={10}>10</SelectItem>
                  <SelectItem value={20}>20</SelectItem>
                  <SelectItem value={50}>50</SelectItem>
                </SelectPopup>
              </Select>
              <p className="text-muted-foreground text-sm">rows per page</p>
            </div>

            <div className="flex items-center gap-2">
              <p className="whitespace-nowrap text-muted-foreground text-sm">
                {startIndex + 1}-{endIndex} of {totalCount}
              </p>
              <Pagination>
                <PaginationContent className="gap-2">
                  <PaginationItem>
                    <PaginationPrevious
                      render={
                        <Button
                          disabled={!hasPreviousPage}
                          onClick={() => setPageIndex(pageIndex - 1)}
                          size="sm"
                          variant="outline"
                        />
                      }
                    />
                  </PaginationItem>
                  <PaginationItem>
                    <PaginationNext
                      render={
                        <Button
                          disabled={!hasNextPage}
                          onClick={() => setPageIndex(pageIndex + 1)}
                          size="sm"
                          variant="outline"
                        />
                      }
                    />
                  </PaginationItem>
                </PaginationContent>
              </Pagination>
            </div>
          </div>
        </CardFrameFooter>
      </CardFrame>
    </TooltipProvider>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/past/loading.tsx
================================================
import { BookingsListSkeleton } from "../booking-skeleton";

export default function Loading() {
  return <BookingsListSkeleton />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/past/page.tsx
================================================
import { BookingsList } from "./bookings-list";
import { BookingsFilters } from "@/components/app/bookings-filters";
import { BookingsNav } from "@/components/app/bookings-nav";
import { BookingsView } from "@/components/app/bookings-view";

export default function Page() {
  return (
    <>
      <div className="mb-6 flex justify-between gap-2 max-sm:flex-col sm:flex-wrap sm:items-center">
        <BookingsNav />
        <BookingsView />
      </div>
      <BookingsFilters />
      <div className="mt-4">
        <BookingsList />
      </div>
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/bookings-empty.tsx
================================================
"use client";

import {
  Empty,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@coss/ui/components/empty";
import { CalendarIcon } from "lucide-react";
import { BookingsListSkeleton } from "../booking-skeleton";
import { useLoadingState } from "@/hooks/use-loading-state";

const ARTIFICIAL_DELAY_MS = 300;

export function BookingsEmpty() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);

  if (showLoading) {
    return <BookingsListSkeleton />;
  }

  return (
    <Empty className="rounded-xl border border-dashed md:py-32">
      <EmptyHeader>
        <EmptyMedia variant="icon">
          <CalendarIcon />
        </EmptyMedia>
        <EmptyTitle>No recurring bookings</EmptyTitle>
        <EmptyDescription>
          You have no recurring bookings found. Recurring booking series will
          appear here.
        </EmptyDescription>
      </EmptyHeader>
    </Empty>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/loading.tsx
================================================
import { BookingsListSkeleton } from "../booking-skeleton";

export default function Loading() {
  return <BookingsListSkeleton />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/page.tsx
================================================
import { BookingsEmpty } from "./bookings-empty";
import { BookingsNav } from "@/components/app/bookings-nav";
import { BookingsView } from "@/components/app/bookings-view";

export default function Page() {
  return (
    <>
      <div className="mb-6 flex justify-between gap-2 max-sm:flex-col sm:flex-wrap sm:items-center">
        <BookingsNav />
        <BookingsView />
      </div>
      {/* <BookingsFilters /> */}
      <div className="mt-4">
        <BookingsEmpty />
      </div>
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/bookings-empty.tsx
================================================
"use client";

import {
  Empty,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@coss/ui/components/empty";
import { CalendarIcon } from "lucide-react";
import { BookingsListSkeleton } from "../booking-skeleton";
import { useLoadingState } from "@/hooks/use-loading-state";

const ARTIFICIAL_DELAY_MS = 400;

export function BookingsEmpty() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);

  if (showLoading) {
    return <BookingsListSkeleton />;
  }

  return (
    <Empty className="rounded-xl border border-dashed md:py-32">
      <EmptyHeader>
        <EmptyMedia variant="icon">
          <CalendarIcon />
        </EmptyMedia>
        <EmptyTitle>No unconfirmed bookings</EmptyTitle>
        <EmptyDescription>
          You have no unconfirmed bookings found. Bookings awaiting your
          confirmation will appear here.
        </EmptyDescription>
      </EmptyHeader>
    </Empty>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/loading.tsx
================================================
import { BookingsListSkeleton } from "../booking-skeleton";

export default function Loading() {
  return <BookingsListSkeleton />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/page.tsx
================================================
import { BookingsEmpty } from "./bookings-empty";
import { BookingsNav } from "@/components/app/bookings-nav";
import { BookingsView } from "@/components/app/bookings-view";

export default function Page() {
  return (
    <>
      <div className="mb-6 flex justify-between gap-2 max-sm:flex-col sm:flex-wrap sm:items-center">
        <BookingsNav />
        <BookingsView />
      </div>
      {/* <BookingsFilters /> */}
      <div className="mt-4">
        <BookingsEmpty />
      </div>
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/bookings-empty.tsx
================================================
"use client";

import {
  Empty,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@coss/ui/components/empty";
import { CalendarIcon } from "lucide-react";
import { BookingsListSkeleton } from "../booking-skeleton";
import { useLoadingState } from "@/hooks/use-loading-state";

const ARTIFICIAL_DELAY_MS = 400;

export function BookingsEmpty() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);

  if (showLoading) {
    return <BookingsListSkeleton />;
  }

  return (
    <Empty className="rounded-xl border border-dashed md:py-32">
      <EmptyHeader>
        <EmptyMedia variant="icon">
          <CalendarIcon />
        </EmptyMedia>
        <EmptyTitle>No upcoming bookings</EmptyTitle>
        <EmptyDescription>
          You have no upcoming bookings found. As soon as someone books a time
          with you, it will show up here.
        </EmptyDescription>
      </EmptyHeader>
    </Empty>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/loading.tsx
================================================
import { BookingsListSkeleton } from "../booking-skeleton";

export default function Loading() {
  return <BookingsListSkeleton />;
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/page.tsx
================================================
import { BookingsEmpty } from "./bookings-empty";
import { BookingsNav } from "@/components/app/bookings-nav";
import { BookingsView } from "@/components/app/bookings-view";

export default function Page() {
  return (
    <>
      <div className="mb-6 flex justify-between gap-2 max-sm:flex-col sm:flex-wrap sm:items-center">
        <BookingsNav />
        <BookingsView />
      </div>
      {/* <BookingsFilters /> */}
      <div className="mt-4">
        <BookingsEmpty />
      </div>
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/event-types/add-event-type-dialog.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import {
  Dialog,
  DialogClose,
  DialogDescription,
  DialogFooter,
  DialogHeader,
  DialogPanel,
  DialogPopup,
  DialogTitle,
  DialogTrigger,
} from "@coss/ui/components/dialog";
import { Field, FieldLabel } from "@coss/ui/components/field";
import { Form } from "@coss/ui/components/form";
import { Input } from "@coss/ui/components/input";
import {
  InputGroup,
  InputGroupAddon,
  InputGroupText,
  InputGroupTextarea,
} from "@coss/ui/components/input-group";
import {
  NumberField,
  NumberFieldInput,
} from "@coss/ui/components/number-field";
import { Toggle } from "@coss/ui/components/toggle";
import { BoldIcon, ItalicIcon } from "lucide-react";

export function AddEventTypeDialog({
  children,
  className,
}: {
  children: React.ReactNode;
  className?: string;
}) {
  return (
    <Dialog>
      <DialogTrigger render={<Button className={className} />}>
        {children}
      </DialogTrigger>
      <DialogPopup className="sm:max-w-xl">
        <Form className="contents">
          <DialogHeader>
            <DialogTitle>Add a new event type</DialogTitle>
            <DialogDescription>
              Set up event types to offer different types of meetings.
            </DialogDescription>
          </DialogHeader>
          <DialogPanel className="grid gap-5">
            <Field>
              <FieldLabel>Title</FieldLabel>
              <Input defaultValue="Quick Chat" type="text" />
            </Field>
            <Field>
              <FieldLabel>URL</FieldLabel>
              <Input defaultValue="https://i.cal.com/pasquale/" type="text" />
            </Field>
            <Field>
              <FieldLabel>Description</FieldLabel>
              <InputGroup>
                <InputGroupTextarea
                  defaultValue="A quick video meeting."
                  placeholder="Enter description…"
                />
                <InputGroupAddon
                  align="block-start"
                  className="gap-1 rounded-t-lg border-b bg-muted/72 p-2!"
                >
                  <Toggle aria-label="Toggle bold" size="sm">
                    <BoldIcon />
                  </Toggle>
                  <Toggle aria-label="Toggle italic" size="sm">
                    <ItalicIcon />
                  </Toggle>
                </InputGroupAddon>
              </InputGroup>
            </Field>
            <Field>
              <FieldLabel>Duration</FieldLabel>
              <InputGroup>
                <NumberField
                  aria-label="Enter the duration"
                  defaultValue={15}
                  min={1}
                >
                  <NumberFieldInput className="text-left" />
                </NumberField>
                <InputGroupAddon align="inline-end">
                  <InputGroupText>minutes</InputGroupText>
                </InputGroupAddon>
              </InputGroup>
            </Field>
          </DialogPanel>
          <DialogFooter>
            <DialogClose render={<Button variant="ghost" />}>Close</DialogClose>
            <Button type="submit">Continue</Button>
          </DialogFooter>
        </Form>
      </DialogPopup>
    </Dialog>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/event-types/event-type-actions.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import { Group, GroupSeparator } from "@coss/ui/components/group";
import {
  Menu,
  MenuCheckboxItem,
  MenuGroup,
  MenuItem,
  MenuPopup,
  MenuSeparator,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { Skeleton } from "@coss/ui/components/skeleton";
import { Switch } from "@coss/ui/components/switch";
import {
  Tooltip,
  TooltipPopup,
  TooltipTrigger,
} from "@coss/ui/components/tooltip";
import {
  CodeIcon,
  CopyIcon,
  EllipsisIcon,
  EyeIcon,
  Link2Icon,
  PencilIcon,
  Share2Icon,
  TrashIcon,
} from "lucide-react";

interface EventTypeActionsProps {
  isHidden: boolean;
  onHiddenChange: (hidden: boolean) => void;
  tooltipHandle?: Parameters<typeof TooltipTrigger>[0]["handle"];
}

export function EventTypeActions({
  isHidden,
  onHiddenChange,
  tooltipHandle,
}: EventTypeActionsProps) {
  return (
    <>
      <div className="flex items-center gap-4 max-md:hidden">
        <Tooltip>
          <TooltipTrigger
            render={
              <Switch
                checked={!isHidden}
                className="relative"
                onCheckedChange={(checked) => onHiddenChange(!checked)}
              />
            }
          />
          <TooltipPopup sideOffset={11}>
            {isHidden ? "Show on profile" : "Hide from profile"}
          </TooltipPopup>
        </Tooltip>

        <Group>
          <TooltipTrigger
            handle={tooltipHandle}
            payload={() => "Preview"}
            render={
              <Button aria-label="Preview" size="icon" variant="outline">
                <EyeIcon />
              </Button>
            }
          />
          <GroupSeparator />
          <TooltipTrigger
            handle={tooltipHandle}
            payload={() => "Copy link"}
            render={
              <Button aria-label="Copy link" size="icon" variant="outline">
                <Link2Icon />
                <span className="sr-only">Copy link</span>
              </Button>
            }
          />
          <GroupSeparator />
          <Menu>
            <MenuTrigger
              render={
                <TooltipTrigger
                  handle={tooltipHandle}
                  payload={() => "More options"}
                  render={
                    <Button
                      aria-label="More options"
                      size="icon"
                      variant="outline"
                    >
                      <EllipsisIcon />
                    </Button>
                  }
                />
              }
            />
            <MenuPopup align="end">
              <MenuItem>
                <PencilIcon />
                Edit
              </MenuItem>
              <MenuItem>
                <CopyIcon />
                Duplicate
              </MenuItem>
              <MenuItem>
                <CodeIcon />
                Embed
              </MenuItem>
              <MenuSeparator />
              <MenuItem variant="destructive">
                <TrashIcon />
                Delete
              </MenuItem>
            </MenuPopup>
          </Menu>
        </Group>
      </div>

      <Menu>
        <MenuTrigger
          className="md:hidden"
          render={
            <Button aria-label="More options" size="icon" variant="outline">
              <EllipsisIcon />
            </Button>
          }
        />
        <MenuPopup align="end">
          <MenuItem>
            <EyeIcon />
            Preview
          </MenuItem>
          <MenuItem>
            <Link2Icon />
            Copy link to event
          </MenuItem>
          <MenuItem>
            <Share2Icon />
            Share
          </MenuItem>
          <MenuItem>
            <PencilIcon />
            Edit
          </MenuItem>
          <MenuItem>
            <CopyIcon />
            Duplicate
          </MenuItem>
          <MenuSeparator />
          <MenuGroup>
            <MenuCheckboxItem
              checked={!isHidden}
              onCheckedChange={(checked) => onHiddenChange(!checked)}
              variant="switch"
            >
              Show on profile
            </MenuCheckboxItem>
          </MenuGroup>
          <MenuSeparator />
          <MenuItem variant="destructive">
            <TrashIcon />
            Delete
          </MenuItem>
        </MenuPopup>
      </Menu>
    </>
  );
}

export function EventTypeActionsSkeleton() {
  return (
    <div className="flex items-center gap-4">
      <Skeleton className="h-4.5 w-7.5 rounded-full max-md:hidden" />
      <Skeleton className="size-9 rounded-lg sm:h-8 sm:w-24.5" />
    </div>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/event-types/event-types-list.tsx
================================================
"use client";

import { Badge } from "@coss/ui/components/badge";
import { Card, CardPanel } from "@coss/ui/components/card";
import { Skeleton } from "@coss/ui/components/skeleton";
import { toastManager } from "@coss/ui/components/toast";
import {
  Tooltip,
  TooltipCreateHandle,
  TooltipPopup,
  TooltipProvider,
} from "@coss/ui/components/tooltip";
import {
  ArmchairIcon,
  BanknoteIcon,
  ClipboardCheckIcon,
  ClockIcon,
  EyeOffIcon,
  RepeatIcon,
  ShuffleIcon,
  UsersIcon,
} from "lucide-react";
import { useRef, useState } from "react";
import {
  EventTypeActions,
  EventTypeActionsSkeleton,
} from "./event-type-actions";
import {
  ListItem,
  ListItemBadges,
  ListItemContent,
  ListItemDescription,
  ListItemDragHandle,
  ListItemHeader,
  ListItemTitle,
  ListItemTitleLink,
  SortableListItem,
  sortableListClasses,
} from "@/components/list-item";
import {
  SortableItem,
  type SortableItemRenderProps,
  SortableList,
} from "@/components/sortable";
import { useLoadingState } from "@/hooks/use-loading-state";
import {
  type EventType,
  formatDuration,
  mockEventTypeGroups,
  mockEventTypes,
} from "@/lib/mock-event-types-data";

const tooltipHandle = TooltipCreateHandle<React.ComponentType>();

const defaultProfile = mockEventTypeGroups[0]?.profile ?? {
  eventTypesLockedByOrg: false,
  image: null,
  name: "User",
  slug: "user",
};

function EventTypeSkeletonItem() {
  return (
    <ListItem>
      <ListItemContent>
        <ListItemHeader>
          <div className="flex items-center gap-2">
            <Skeleton className="h-6 w-full max-w-48 sm:h-5" />
            <Skeleton className="h-4 w-full max-w-32 max-sm:hidden" />
          </div>
          <Skeleton className="my-0.5 h-4 w-full max-w-82" />
        </ListItemHeader>
        <ListItemBadges>
          <Skeleton className="h-5.5 w-14 sm:h-4.5" />
          <Skeleton className="h-5.5 w-14 sm:h-4.5" />
        </ListItemBadges>
      </ListItemContent>
      <EventTypeActionsSkeleton />
    </ListItem>
  );
}

const ARTIFICIAL_DELAY_MS = 800;

interface EventTypeItemContentProps {
  eventType: EventType;
  isHidden: boolean;
  eventPath: string;
  onHiddenChange: (hidden: boolean) => void;
  sortableProps?: SortableItemRenderProps;
}

function EventTypeItemContent({
  eventType,
  isHidden,
  eventPath,
  onHiddenChange,
  sortableProps,
  isOverlay = false,
}: EventTypeItemContentProps & { isOverlay?: boolean }) {
  const getSchedulingTypeLabel = (et: EventType) => {
    if (!et.schedulingType) return null;
    switch (et.schedulingType) {
      case "ROUND_ROBIN":
        return "Round Robin";
      case "COLLECTIVE":
        return "Collective";
      case "MANAGED":
        return "Managed";
      default:
        return null;
    }
  };

  const getEventTypeColors = (et: EventType) => {
    if (!et.eventTypeColor) return null;
    return {
      dark: et.eventTypeColor.darkEventTypeColor,
      light: et.eventTypeColor.lightEventTypeColor,
    };
  };

  const isRecurring = (et: EventType) => et.recurringEvent !== null;
  const isPaid = (et: EventType) => et.price > 0;
  const requiresConfirmation = (et: EventType) => et.requiresConfirmation;
  const hasSeats = (et: EventType) =>
    et.seatsPerTimeSlot !== null && et.seatsPerTimeSlot > 0;

  return (
    <SortableListItem
      hasDragged={sortableProps?.hasDragged}
      isOverlay={isOverlay}
      labelColorDark={getEventTypeColors(eventType)?.dark ?? undefined}
      labelColorLight={getEventTypeColors(eventType)?.light ?? undefined}
      sortableDragging={sortableProps?.isDragging}
      sortableDraggingAny={sortableProps?.isDraggingAny}
      sortableListeners={isOverlay ? undefined : sortableProps?.listeners}
      sortableRef={isOverlay ? undefined : sortableProps?.setNodeRef}
      sortableStyle={sortableProps?.style}
    >
      <ListItemDragHandle />
      <ListItemContent>
        <ListItemHeader>
          <div className="flex items-center gap-2">
            <ListItemTitle>
              <ListItemTitleLink href={eventPath}>
                {eventType.title}
              </ListItemTitleLink>
            </ListItemTitle>
            <span className="text-muted-foreground text-xs max-sm:hidden">
              {eventPath}
            </span>
          </div>
          {eventType.safeDescription && (
            <ListItemDescription className="line-clamp-2">
              {eventType.safeDescription}
            </ListItemDescription>
          )}
        </ListItemHeader>

        <ListItemBadges>
          <Badge className="pointer-events-none tabular-nums" variant="outline">
            <ClockIcon />
            {formatDuration(eventType.length)}
          </Badge>
          {getSchedulingTypeLabel(eventType) && (
            <Badge className="pointer-events-none" variant="outline">
              {eventType.schedulingType === "ROUND_ROBIN" ? (
                <ShuffleIcon />
              ) : (
                <UsersIcon />
              )}
              {getSchedulingTypeLabel(eventType)}
            </Badge>
          )}
          {isRecurring(eventType) && (
            <Badge className="pointer-events-none" variant="outline">
              <RepeatIcon />
              Recurring
            </Badge>
          )}
          {isPaid(eventType) && (
            <Badge
              className="pointer-events-none tabular-nums"
              variant="outline"
            >
              <BanknoteIcon />${(eventType.price / 100).toFixed(0)}
            </Badge>
          )}
          {requiresConfirmation(eventType) && (
            <Badge className="pointer-events-none" variant="outline">
              <ClipboardCheckIcon />
              Requires confirmation
            </Badge>
          )}
          {hasSeats(eventType) && (
            <Badge className="pointer-events-none" variant="outline">
              <ArmchairIcon />
              {eventType.seatsPerTimeSlot} seats
            </Badge>
          )}
          {isHidden && (
            <Badge className="pointer-events-none" variant="warning">
              <EyeOffIcon />
              Hidden
            </Badge>
          )}
        </ListItemBadges>
      </ListItemContent>

      <EventTypeActions
        isHidden={isHidden}
        onHiddenChange={onHiddenChange}
        tooltipHandle={tooltipHandle}
      />
    </SortableListItem>
  );
}

export function EventTypesList() {
  const showLoading = useLoadingState(ARTIFICIAL_DELAY_MS);
  const [eventTypes, setEventTypes] = useState<EventType[]>(mockEventTypes);
  const [hiddenStates, setHiddenStates] = useState<Record<number, boolean>>(
    Object.fromEntries(mockEventTypes.map((et) => [et.id, et.hidden])),
  );
  const previousOrderRef = useRef<EventType[]>(eventTypes);
  const currentToastIdRef = useRef<string | null>(null);

  const handleReorder = (newOrder: EventType[]) => {
    if (currentToastIdRef.current) {
      toastManager.close(currentToastIdRef.current);
    }

    const previousOrder = previousOrderRef.current;
    previousOrderRef.current = newOrder;
    setEventTypes(newOrder);

    const toastId = toastManager.add({
      actionProps: {
        children: "Undo",
        onClick: () => {
          toastManager.close(toastId);
          currentToastIdRef.current = null;
          previousOrderRef.current = previousOrder;
          setEventTypes(previousOrder);
        },
      },
      title: "Event type order updated",
      type: "success",
    });
    currentToastIdRef.current = toastId;
  };

  const handleHiddenToggle = (id: number, hidden: boolean) => {
    setHiddenStates((prev) => ({
      ...prev,
      [id]: hidden,
    }));
  };

  const getEventTypePath = (eventType: EventType) => {
    return `/${defaultProfile.slug}/${eventType.slug}`;
  };

  if (showLoading) {
    return (
      <>
        <Card>
          <CardPanel className="p-0">
            <EventTypeSkeletonItem />
            <EventTypeSkeletonItem />
            <EventTypeSkeletonItem />
            <EventTypeSkeletonItem />
            <EventTypeSkeletonItem />
          </CardPanel>
        </Card>
        <div className="mt-6 text-center text-muted-foreground/72 text-sm">
          <Skeleton className="mx-auto h-5 w-32" />
        </div>
      </>
    );
  }

  return (
    <TooltipProvider delay={0}>
      <SortableList
        items={eventTypes}
        onReorder={handleReorder}
        renderOverlay={(eventType) => (
          <EventTypeItemContent
            eventPath={getEventTypePath(eventType)}
            eventType={eventType}
            isHidden={hiddenStates[eventType.id] ?? false}
            isOverlay
            onHiddenChange={() => {}}
          />
        )}
      >
        <Card className={sortableListClasses}>
          <CardPanel className="p-0">
            {eventTypes.map((eventType, _index) => {
              const isHidden = hiddenStates[eventType.id];
              const eventPath = getEventTypePath(eventType);

              return (
                <SortableItem id={eventType.id} key={eventType.id}>
                  {(sortableProps) => (
                    <EventTypeItemContent
                      eventPath={eventPath}
                      eventType={eventType}
                      isHidden={isHidden ?? false}
                      onHiddenChange={(hidden) =>
                        handleHiddenToggle(eventType.id, hidden)
                      }
                      sortableProps={sortableProps}
                    />
                  )}
                </SortableItem>
              );
            })}
          </CardPanel>
        </Card>
      </SortableList>

      <div className="mt-6 text-center text-muted-foreground/72 text-sm">
        No more results
      </div>

      <Tooltip handle={tooltipHandle}>
        {({ payload: Payload }) => (
          <TooltipPopup>{Payload !== undefined && <Payload />}</TooltipPopup>
        )}
      </Tooltip>
    </TooltipProvider>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/event-types/page.tsx
================================================
import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
} from "@coss/ui/components/input-group";
import { PlusIcon, SearchIcon } from "lucide-react";
import { AddEventTypeDialog } from "./add-event-type-dialog";
import { EventTypesList } from "./event-types-list";
import {
  AppHeader,
  AppHeaderActions,
  AppHeaderContent,
  AppHeaderDescription,
} from "@/components/app/app-header";

export default function Page() {
  return (
    <>
      <AppHeader>
        <AppHeaderContent title="Event Types">
          <AppHeaderDescription>
            Create events to share for people to book on your calendar.
          </AppHeaderDescription>
        </AppHeaderContent>
        <AppHeaderActions className="max-md:hidden">
          <InputGroup>
            <InputGroupInput
              aria-label="Search"
              placeholder="Search…"
              type="search"
            />
            <InputGroupAddon>
              <SearchIcon />
            </InputGroupAddon>
          </InputGroup>
          <AddEventTypeDialog>
            <PlusIcon className="-ms-1" />
            New
          </AddEventTypeDialog>
        </AppHeaderActions>
      </AppHeader>

      <EventTypesList />
    </>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/layout.tsx
================================================
"use client";

import { AppMobileFooter } from "@/components/app/app-mobile-footer";
import { AppMobileHeader } from "@/components/app/app-mobile-header";
import { AppSidebar } from "@/components/app/app-sidebar";
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";

export default function DashboardLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <SidebarProvider>
      <AppMobileHeader />
      <AppSidebar />
      <SidebarInset className="max-md:pt-14">{children}</SidebarInset>
      <AppMobileFooter />
    </SidebarProvider>
  );
}


================================================
FILE: apps/examples/calcom/app/(dashboard)/page.tsx
================================================
import { redirect } from "next/navigation";

export default function Page() {
  redirect("/event-types");
}


================================================
FILE: apps/examples/calcom/app/(settings)/settings/layout.tsx
================================================
"use client";

import { SettingsMobileHeader } from "@/components/settings/settings-mobile-header";
import { SettingsSidebar } from "@/components/settings/settings-sidebar";
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";

export default function SettingsLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <SidebarProvider>
      <SettingsMobileHeader />
      <SettingsSidebar />
      <SidebarInset className="max-md:pt-14">
        <div className="mx-auto max-w-3xl">{children}</div>
      </SidebarInset>
    </SidebarProvider>
  );
}


================================================
FILE: apps/examples/calcom/app/(settings)/settings/my-account/general/page.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import {
  Card,
  CardFrame,
  CardFrameDescription,
  CardFrameFooter,
  CardFrameHeader,
  CardFrameTitle,
  CardPanel,
} from "@coss/ui/components/card";
import {
  Combobox,
  ComboboxEmpty,
  ComboboxInput,
  ComboboxItem,
  ComboboxList,
  ComboboxPopup,
  ComboboxTrigger,
  ComboboxValue,
} from "@coss/ui/components/combobox";
import { Field, FieldDescription, FieldLabel } from "@coss/ui/components/field";
import { Fieldset, FieldsetLegend } from "@coss/ui/components/fieldset";
import { Label } from "@coss/ui/components/label";
import {
  Select,
  SelectButton,
  SelectItem,
  SelectPopup,
  SelectTrigger,
  SelectValue,
} from "@coss/ui/components/select";
import { CalendarIcon, SearchIcon } from "lucide-react";
import { useMemo } from "react";
import { SettingsToggle } from "@/components/settings/settings-toggle";

export default function GeneralSettingsPage() {
  const languageItems = [
    { label: "English", value: "en" },
    { label: "Spanish", value: "es" },
    { label: "French", value: "fr" },
    { label: "German", value: "de" },
    { label: "Italian", value: "it" },
  ];

  const timezones = Intl.supportedValuesOf("timeZone");

  const formattedTimezones = useMemo(() => {
    return timezones
      .map((timezone) => {
        const formatter = new Intl.DateTimeFormat("en", {
          timeZone: timezone,
          timeZoneName: "shortOffset",
        });
        const parts = formatter.formatToParts(new Date());
        const offset =
          parts.find((part) => part.type === "timeZoneName")?.value || "";
        const modifiedOffset = offset === "GMT" ? "GMT+0" : offset;

        const offsetMatch = offset.match(/GMT([+-]?)(\d+)(?::(\d+))?/);
        const sign = offsetMatch?.[1] === "-" ? -1 : 1;
        const hours = Number.parseInt(offsetMatch?.[2] || "0", 10);
        const minutes = Number.parseInt(offsetMatch?.[3] || "0", 10);
        const totalMinutes = sign * (hours * 60 + minutes);

        return {
          label: `(${modifiedOffset}) ${timezone.replace(/_/g, " ")}`,
          numericOffset: totalMinutes,
          value: timezone,
        };
      })
      .sort((a, b) => a.numericOffset - b.numericOffset);
  }, [timezones]);

  const defaultTimezone =
    formattedTimezones.find((tz) => tz.value === "Europe/Rome") ??
    formattedTimezones[0];

  const timeFormatItems = [
    { label: "12-hour", value: "12" },
    { label: "24-hour", value: "24" },
  ];

  const startOfWeekItems = [
    { label: "Sunday", value: "sunday" },
    { label: "Monday", value: "monday" },
    { label: "Tuesday", value: "tuesday" },
    { label: "Wednesday", value: "wednesday" },
    { label: "Thursday", value: "thursday" },
    { label: "Friday", value: "friday" },
    { label: "Saturday", value: "saturday" },
  ];

  return (
    <div className="space-y-4">
      <CardFrame>
        <CardFrameHeader>
          <CardFrameTitle>General</CardFrameTitle>
          <CardFrameDescription>
            Manage settings for your language and timezone
          </CardFrameDescription>
        </CardFrameHeader>

        <Card className="rounded-b-none!">
          <CardPanel>
            <div className="grid grid-cols-1 gap-6 md:grid-cols-2">
              <Field className="max-md:col-span-2">
                <FieldLabel>Language</FieldLabel>
                <Select
                  aria-label="Language"
                  defaultValue="en"
                  items={languageItems}
                >
                  <SelectTrigger>
                    <SelectValue />
                  </SelectTrigger>
                  <SelectPopup>
                    {languageItems.map(({ label, value }) => (
                      <SelectItem key={value} value={value}>
                        {label}
                      </SelectItem>
                    ))}
                  </SelectPopup>
                </Select>
              </Field>

              <div className="col-span-2">
                <Fieldset className="max-w-none gap-2">
                  <Label render={<FieldsetLegend />}>Timezone</Label>
                  <div className="grid w-full grid-cols-1 gap-4 md:grid-cols-2">
                    <Field className="contents">
                      <Combobox
                        autoHighlight
                        defaultValue={defaultTimezone}
                        items={formattedTimezones}
                      >
                        <ComboboxTrigger render={<SelectButton />}>
                          <ComboboxValue />
                        </ComboboxTrigger>
                        <ComboboxPopup aria-label="Select timezone">
                          <div className="border-b p-2">
                            <ComboboxInput
                              className="rounded-md before:rounded-[calc(var(--radius-md)-1px)]"
                              placeholder="e.g. Europe/Rome"
                              showTrigger={false}
                              startAddon={<SearchIcon />}
                            />
                          </div>
                          <ComboboxEmpty>No timezones found.</ComboboxEmpty>
                          <ComboboxList>
                            {(item) => (
                              <ComboboxItem key={item.value} value={item}>
                                {item.label}
                              </ComboboxItem>
                            )}
                          </ComboboxList>
                        </ComboboxPopup>
                      </Combobox>
                    </Field>
                    <Button variant="outline">
                      <CalendarIcon />
                      <span>Schedule timezone change</span>
                    </Button>
                  </div>
                </Fieldset>
              </div>

              <div className="col-span-2 grid grid-cols-1 gap-4 md:grid-cols-2">
                <Field>
                  <FieldLabel>Time format</FieldLabel>
                  <Select
                    aria-label="Time format"
                    defaultValue="12"
                    items={timeFormatItems}
                  >
                    <SelectTrigger className="w-full">
                      <SelectValue />
                    </SelectTrigger>
                    <SelectPopup>
                      {timeFormatItems.map(({ label, value }) => (
                        <SelectItem key={value} value={value}>
                          {label}
                        </SelectItem>
                      ))}
                    </SelectPopup>
                  </Select>
                  <FieldDescription>
                    This is an internal setting and will not affect how times
                    are displayed on public booking pages for you or anyone
                    booking you.
                  </FieldDescription>
                </Field>

                <Field>
                  <FieldLabel>Start of week</FieldLabel>
                  <Select
                    aria-label="Start of week"
                    defaultValue="sunday"
                    items={startOfWeekItems}
                  >
                    <SelectTrigger>
                      <SelectValue />
                    </SelectTrigger>
                    <SelectPopup>
                      {startOfWeekItems.map(({ label, value }) => (
                        <SelectItem key={value} value={value}>
                          {label}
                        </SelectItem>
                      ))}
                    </SelectPopup>
                  </Select>
                </Field>
              </div>
            </div>
          </CardPanel>
        </Card>

        <CardFrameFooter className="flex justify-end">
          <Button>Update</Button>
        </CardFrameFooter>
      </CardFrame>

      <SettingsToggle
        defaultChecked
        description="Allow attendees to book you through dynamic group bookings"
        title="Dynamic group links"
      />

      <SettingsToggle
        defaultChecked
        description="Allow search engines to access your public content"
        title="Allow search engine indexing"
      />

      <SettingsToggle
        defaultChecked
        description="Monthly digest email for teams"
        title="Monthly digest email"
      />

      <SettingsToggle
        description="When enabled, anyone trying to book events using your email address must verify they own it via a one time code or be logged in to prevent impersonation"
        title="Prevent impersonation on bookings"
      />
    </div>
  );
}


================================================
FILE: apps/examples/calcom/app/(settings)/settings/my-account/page.tsx
================================================
import { redirect } from "next/navigation";

export default function Page() {
  redirect("/settings/my-account/general");
}


================================================
FILE: apps/examples/calcom/app/(settings)/settings/my-account/profile/page.tsx
================================================
"use client";

import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@coss/ui/components/avatar";
import { Badge } from "@coss/ui/components/badge";
import { Button } from "@coss/ui/components/button";
import {
  Card,
  CardFrame,
  CardFrameDescription,
  CardFrameFooter,
  CardFrameHeader,
  CardFrameTitle,
  CardPanel,
} from "@coss/ui/components/card";
import { Field, FieldDescription, FieldLabel } from "@coss/ui/components/field";
import { Fieldset, FieldsetLegend } from "@coss/ui/components/fieldset";
import { Input } from "@coss/ui/components/input";
import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
  InputGroupText,
  InputGroupTextarea,
} from "@coss/ui/components/input-group";
import { Label } from "@coss/ui/components/label";
import {
  Menu,
  MenuItem,
  MenuPopup,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { Toggle } from "@coss/ui/components/toggle";
import {
  Tooltip,
  TooltipPopup,
  TooltipTrigger,
} from "@coss/ui/components/tooltip";
import { useCopyToClipboard } from "@coss/ui/hooks/use-copy-to-clipboard";
import {
  BoldIcon,
  CheckIcon,
  CopyIcon,
  EllipsisIcon,
  ItalicIcon,
  LinkIcon,
  PlusIcon,
} from "lucide-react";

function EmailInput({
  email,
  isPrimary,
  isVerified,
}: {
  email: string;
  isPrimary?: boolean;
  isVerified?: boolean;
}) {
  return (
    <Field className="contents">
      <InputGroup>
        <InputGroupInput defaultValue={email} type="email" />
        <InputGroupAddon align="inline-end">
          {isPrimary && <Badge variant="info">Primary</Badge>}
          {!isVerified && <Badge variant="warning">Unverified</Badge>}
          <Menu>
            <MenuTrigger
              render={
                <Button
                  aria-label="Email options"
                  size="icon-xs"
                  variant="ghost"
                />
              }
            >
              <EllipsisIcon />
            </MenuTrigger>
            <MenuPopup align="end" alignOffset={-4} sideOffset={8}>
              <MenuItem disabled={isPrimary}>Make primary</MenuItem>
              <MenuItem disabled={isVerified}>Resend verification</MenuItem>
              <MenuItem disabled={isPrimary} variant="destructive">
                Remove email
              </MenuItem>
            </MenuPopup>
          </Menu>
        </InputGroupAddon>
      </InputGroup>
    </Field>
  );
}

interface EmailItem {
  email: string;
  isPrimary?: boolean;
  isVerified?: boolean;
}

const emails: EmailItem[] = [
  { email: "pasquale@cal.com", isPrimary: true, isVerified: true },
  { email: "test@sfsfd.com", isPrimary: false, isVerified: false },
];

export default function ProfileSettingsPage() {
  const { copyToClipboard, isCopied } = useCopyToClipboard();

  return (
    <div className="flex flex-col gap-4">
      <CardFrame>
        <CardFrameHeader>
          <CardFrameTitle>Profile</CardFrameTitle>
          <CardFrameDescription>
            Manage settings for your Cal.com profile
          </CardFrameDescription>
        </CardFrameHeader>

        <Card className="rounded-b-none!">
          <CardPanel>
            <div className="grid grid-cols-1 gap-6 md:grid-cols-2">
              <div className="flex items-center gap-4 max-md:col-span-2">
                <Avatar className="size-16">
                  <AvatarImage
                    alt="Profile picture"
                    src="https://pbs.twimg.com/profile_images/1994776674391457792/7utKOMi6_400x400.jpg"
                  />
                  <AvatarFallback className="text-xl">PV</AvatarFallback>
                </Avatar>
                <div className="flex flex-col gap-1">
                  <Label className="text-sm">Profile picture</Label>
                  <div className="flex items-center gap-2">
                    <Button size="sm" variant="outline">
                      Upload avatar
                    </Button>
                    <Button size="sm" variant="ghost">
                      Remove
                    </Button>
                  </div>
                </div>
              </div>

              <div className="col-span-2 grid grid-cols-1 gap-4 md:grid-cols-2">
                <Field>
                  <FieldLabel>Username</FieldLabel>
                  <InputGroup className="opacity-100! has-disabled:cursor-not-allowed has-disabled:bg-muted has-disabled:text-muted-foreground has-disabled:*:cursor-not-allowed">
                    <InputGroupAddon>
                      <InputGroupText>i.cal.com/</InputGroupText>
                    </InputGroupAddon>
                    <InputGroupInput
                      aria-label="Set your URL"
                      className="*:[input]:ps-0! has-disabled:*:[input]:cursor-not-allowed"
                      defaultValue="pasquale"
                      disabled
                    />
                    <InputGroupAddon align="inline-end">
                      <Tooltip>
                        <TooltipTrigger
                          render={
                            <Button
                              aria-label="Copy URL"
                              onClick={() =>
                                copyToClipboard("https://i.cal.com/pasquale")
                              }
                              size="icon-xs"
                              variant="ghost"
                            />
                          }
                        >
                          {isCopied ? <CheckIcon /> : <CopyIcon />}
                        </TooltipTrigger>
                        <TooltipPopup>
                          <p>{isCopied ? "Copied!" : "Copy to clipboard"}</p>
                        </TooltipPopup>
                      </Tooltip>
                    </InputGroupAddon>
                  </InputGroup>
                  <FieldDescription>
                    Tip: You can add a &apos;+&apos; between usernames (e.g.
                    cal.com/anna+brian) to meet with multiple people
                  </FieldDescription>
                </Field>

                <Field>
                  <FieldLabel>Full name</FieldLabel>
                  <Input defaultValue="Pasquale Vitiello" />
                </Field>
              </div>

              <div className="col-span-2">
                <Fieldset className="max-w-none gap-2">
                  <Label render={<FieldsetLegend />}>Email</Label>
                  <div className="grid w-full grid-cols-1 gap-2 md:grid-cols-2 md:gap-4">
                    {emails.map((item) => (
                      <EmailInput
                        email={item.email}
                        isPrimary={item.isPrimary}
                        isVerified={item.isVerified}
                        key={item.email}
                      />
                    ))}
                  </div>
                  <div>
                    <Button size="sm" variant="outline">
                      <PlusIcon />
                      Add email
                    </Button>
                  </div>
                </Fieldset>
              </div>

              <Field className="col-span-2">
                <FieldLabel>About</FieldLabel>
                <InputGroup>
                  <InputGroupTextarea placeholder="Tell us about yourself…" />
                  <InputGroupAddon
                    align="block-start"
                    className="gap-1 rounded-t-lg border-b bg-muted/72 p-2!"
                  >
                    <Toggle aria-label="Toggle bold" size="sm">
                      <BoldIcon aria-hidden="true" />
                    </Toggle>
                    <Toggle aria-label="Toggle italic" size="sm">
                      <ItalicIcon aria-hidden="true" />
                    </Toggle>
                    <Button aria-label="Link" size="icon-sm" variant="ghost">
                      <LinkIcon aria-hidden="true" />
                    </Button>
                  </InputGroupAddon>
                </InputGroup>
              </Field>
            </div>
          </CardPanel>
        </Card>

        <CardFrameFooter className="flex justify-end">
          <Button>Update</Button>
        </CardFrameFooter>
      </CardFrame>

      <CardFrame className="flex-row items-center justify-between">
        <CardFrameHeader>
          <CardFrameTitle>Danger zone</CardFrameTitle>
          <CardFrameDescription>
            Be careful. Account deletion cannot be undone.
          </CardFrameDescription>
        </CardFrameHeader>

        <CardFrameFooter className="flex justify-end">
          <Button variant="destructive-outline">Delete account</Button>
        </CardFrameFooter>
      </CardFrame>
    </div>
  );
}


================================================
FILE: apps/examples/calcom/app/(settings)/settings/page.tsx
================================================
import { redirect } from "next/navigation";

export default function Page() {
  redirect("/settings/my-account/general");
}


================================================
FILE: apps/examples/calcom/app/globals.css
================================================
@import "@coss/ui/globals.css";

:root {
  --sidebar-foreground: color-mix(
    in srgb,
    var(--color-neutral-800) 80%,
    var(--sidebar)
  );
}

.dark {
  --sidebar-foreground: color-mix(
    in srgb,
    var(--color-neutral-200) 80%,
    var(--sidebar)
  );
}


================================================
FILE: apps/examples/calcom/app/layout.tsx
================================================
import "./globals.css";

import {
  AnchoredToastProvider,
  ToastProvider,
} from "@coss/ui/components/toast";
import { fontHeading, fontSans } from "@coss/ui/fonts";
import { ThemeProvider } from "@coss/ui/shared/theme-provider";
import type { Metadata } from "next";
import { AppCommand } from "@/components/app/app-command";
import { DebugProvider } from "@/components/debug-context";

export const metadata: Metadata = {
  description: "coss.com - the everything but AI company",
  metadataBase: new URL("https://coss.com"),
  title: "coss.com",
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="en" suppressHydrationWarning>
      <body
        className={`${fontHeading.variable} ${fontSans.variable} relative bg-sidebar font-sans text-foreground antialiased`}
      >
        <ThemeProvider>
          <ToastProvider>
            <AnchoredToastProvider>
              <DebugProvider>
                <AppCommand />
                {children}
              </DebugProvider>
            </AnchoredToastProvider>
          </ToastProvider>
        </ThemeProvider>
      </body>
    </html>
  );
}


================================================
FILE: apps/examples/calcom/components/app/app-command.tsx
================================================
"use client";

import { useAutocompleteFilter } from "@coss/ui/components/autocomplete";
import { Button } from "@coss/ui/components/button";
import {
  Command,
  CommandCollection,
  CommandCreateHandle,
  CommandDialog,
  CommandDialogPopup,
  CommandEmpty,
  CommandFooter,
  CommandGroup,
  CommandGroupLabel,
  CommandInput,
  CommandItem,
  CommandList,
  CommandPanel,
  CommandSeparator,
  CommandShortcut,
} from "@coss/ui/components/command";
import { EmptyMedia } from "@coss/ui/components/empty";
import { Input } from "@coss/ui/components/input";
import { Kbd, KbdGroup } from "@coss/ui/components/kbd";
import { ScrollArea } from "@coss/ui/components/scroll-area";
import { Skeleton } from "@coss/ui/components/skeleton";
import { Spinner } from "@coss/ui/components/spinner";
import {
  ArrowDownIcon,
  ArrowLeftIcon,
  ArrowUpIcon,
  CircleQuestionMarkIcon,
  CornerDownLeftIcon,
  SearchIcon,
  SparklesIcon,
} from "lucide-react";
import Link from "next/link";
import * as React from "react";
import { markdownToSafeHTML } from "@/lib/markdown-to-safe-html";
import {
  MOCK_AI_RESPONSE,
  MOCK_REFERENCE_LINKS,
  type ReferenceLink,
} from "@/lib/mock-ai-data";

interface Item {
  value: string;
  label: string;
  shortcut?: string;
  keywords?: string[];
}

interface Group {
  value: string;
  items: Item[];
}

const commandGroups: Group[] = [
  {
    items: [
      {
        keywords: ["wf"],
        label: "Workflows",
        shortcut: "w f",
        value: "workflows",
      },
    ],
    value: "Workflows",
  },
  {
    items: [
      {
        keywords: ["et"],
        label: "Event Types",
        shortcut: "e t",
        value: "event-types",
      },
      { label: "15 Min Meeting", value: "15-min-meeting" },
      { label: "30 Min Meeting", value: "30-min-meeting" },
      { label: "Secret Meeting", value: "secret-meeting" },
    ],
    value: "Event Types",
  },
  {
    items: [
      {
        keywords: ["as"],
        label: "App Store",
        shortcut: "a s",
        value: "app-store",
      },
    ],
    value: "Apps",
  },
  {
    items: [
      {
        keywords: ["ub"],
        label: "Upcoming",
        shortcut: "u b",
        value: "upcoming",
      },
      {
        keywords: ["rb"],
        label: "Recurring",
        shortcut: "r b",
        value: "recurring",
      },
      { keywords: ["pb"], label: "Past", shortcut: "p b", value: "past" },
      {
        keywords: ["cb"],
        label: "Canceled",
        shortcut: "c b",
        value: "canceled",
      },
    ],
    value: "Bookings",
  },
  {
    items: [
      {
        keywords: ["sa"],
        label: "Availability",
        shortcut: "s a",
        value: "availability",
      },
    ],
    value: "Availability",
  },
  {
    items: [
      {
        keywords: ["ps"],
        label: "Profile",
        shortcut: "p s",
        value: "profile",
      },
      {
        keywords: ["ca"],
        label: "Change Avatar",
        shortcut: "c a",
        value: "change-avatar",
      },
      {
        keywords: ["ct"],
        label: "Timezone",
        shortcut: "c t",
        value: "timezone",
      },
      {
        keywords: ["bc"],
        label: "Brand Color",
        shortcut: "b c",
        value: "brand-color",
      },
      { keywords: ["ts"], label: "Teams", shortcut: "t s", value: "teams" },
    ],
    value: "Profile",
  },
  {
    items: [
      {
        keywords: ["cp"],
        label: "Change Password",
        shortcut: "c p",
        value: "change-password",
      },
      {
        keywords: ["tfa"],
        label: "Two factor authentication",
        shortcut: "t f a",
        value: "two-factor-auth",
      },
      {
        keywords: ["ui"],
        label: "User Impersonation",
        shortcut: "u i",
        value: "user-impersonation",
      },
    ],
    value: "Security",
  },
  {
    items: [
      {
        keywords: ["ul"],
        label: "Choose a license",
        shortcut: "u l",
        value: "choose-license",
      },
    ],
    value: "Admin",
  },
  {
    items: [
      {
        keywords: ["wh"],
        label: "Webhooks",
        shortcut: "w h",
        value: "webhooks",
      },
      {
        keywords: ["api"],
        label: "API keys",
        shortcut: "a p i",
        value: "api-keys",
      },
    ],
    value: "Developer",
  },
  {
    items: [
      {
        keywords: ["mb"],
        label: "Manage billing",
        shortcut: "m b",
        value: "manage-billing",
      },
    ],
    value: "Billing",
  },
  {
    items: [
      { label: "Alby", value: "alby" },
      { label: "Amie", value: "amie" },
      { label: "Apple Calendar", value: "apple-calendar" },
      { label: "Attio", value: "attio" },
      { label: "Autocheckin", value: "autocheckin" },
      { label: "BAA for HIPAA", value: "baa-hipaa" },
    ],
    value: "Installable Apps",
  },
];

interface AIState {
  mode: boolean;
  query: string;
  submittedQuery: string;
  response: string;
  referenceLinks: ReferenceLink[];
  isGenerating: boolean;
  error: string | null;
}

const initialAIState: AIState = {
  error: null,
  isGenerating: false,
  mode: false,
  query: "",
  referenceLinks: [],
  response: "",
  submittedQuery: "",
};

export const commandHandle: ReturnType<typeof CommandCreateHandle> =
  CommandCreateHandle();

export function AppCommand(): React.ReactElement {
  const [open, setOpen] = React.useState(false);
  const [aiState, setAIState] = React.useState<AIState>(initialAIState);
  const [searchQuery, setSearchQuery] = React.useState("");
  const aiInputRef = React.useRef<HTMLInputElement>(null);
  const searchInputRef = React.useRef<HTMLInputElement>(null);
  const abortControllerRef = React.useRef<AbortController | null>(null);
  const commandResetKeyRef = React.useRef(0);

  // Cleanup on unmount
  React.useEffect((): (() => void) => {
    return (): void => {
      abortControllerRef.current?.abort();
    };
  }, []);

  const resetAIState = React.useCallback(() => {
    abortControllerRef.current?.abort();
    setAIState(initialAIState);
  }, []);

  const handleItemClick = React.useCallback(() => {
    setOpen(false);
  }, []);

  const handleBackToSearch = React.useCallback(() => {
    resetAIState();
    setSearchQuery("");
    // Force Command remount to reset Autocomplete's internal query state
    commandResetKeyRef.current += 1;
    // Focus search input after state updates
    searchInputRef.current?.focus();
  }, [resetAIState]);

  const handleGenerateAI = React.useCallback(
    async (queryOverride?: string) => {
      const query = queryOverride || aiState.query;
      if (!query.trim()) return;

      // Abort any ongoing request
      abortControllerRef.current?.abort();
      const controller = new AbortController();
      abortControllerRef.current = controller;

      setAIState((prev) => ({
        ...prev,
        error: null,
        isGenerating: true,
        query: "",
        referenceLinks: [],
        response: "",
        submittedQuery: query,
      }));

      try {
        // Simulate AI response - in production, this would call an API
        await new Promise<void>((resolve, reject) => {
          const timeout = setTimeout(resolve, 1500);
          controller.signal.addEventListener("abort", () => {
            clearTimeout(timeout);
            reject(new Error("aborted"));
          });
        });

        // Don't update state if request was aborted
        if (controller.signal.aborted) return;

        setAIState((prev) => ({
          ...prev,
          isGenerating: false,
          referenceLinks: MOCK_REFERENCE_LINKS,
          response: MOCK_AI_RESPONSE,
        }));
      } catch (error) {
        // Ignore abort errors - component cleanup handles this
        if (error instanceof Error && error.message === "aborted") {
          return;
        }

        // Only update if not aborted
        if (controller.signal.aborted) return;

        setAIState((prev) => ({
          ...prev,
          error: "Failed to generate response. Please try again.",
          isGenerating: false,
        }));
      }
    },
    [aiState.query],
  );

  const handleAskAI = React.useCallback(() => {
    const currentQuery = searchQuery;
    setSearchQuery("");

    if (currentQuery.trim()) {
      // If there's a query, ask AI immediately
      setAIState((prev) => ({ ...prev, mode: true }));
      handleGenerateAI(currentQuery);
    } else {
      // If no query, just switch to AI mode
      setAIState((prev) => ({ ...prev, mode: true, query: "" }));
      aiInputRef.current?.focus();
    }
  }, [searchQuery, handleGenerateAI]);

  const { contains } = useAutocompleteFilter({ sensitivity: "base" });

  const filterItem = React.useCallback(
    (itemValue: unknown, query: string): boolean => {
      if (typeof itemValue !== "object" || itemValue === null) {
        return false;
      }

      const item = itemValue as Item;

      // Search in label
      if (contains(item.label, query)) {
        return true;
      }

      // Search in value
      if (contains(item.value, query)) {
        return true;
      }

      // Search in keywords
      if (item.keywords?.some((keyword) => contains(keyword, query))) {
        return true;
      }

      return false;
    },
    [contains],
  );

  React.useEffect((): (() => void) => {
    const down = (e: KeyboardEvent): void => {
      if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
        if (
          (e.target instanceof HTMLElement && e.target.isContentEditable) ||
          e.target instanceof HTMLInputElement ||
          e.target instanceof HTMLTextAreaElement ||
          e.target instanceof HTMLSelectElement
        ) {
          return;
        }

        e.preventDefault();
        setOpen((open) => {
          if (!open) {
            setSearchQuery("");
          }
          return !open;
        });
      }
    };

    document.addEventListener("keydown", down);
    return (): void => document.removeEventListener("keydown", down);
  }, []);

  React.useEffect((): (() => void) | undefined => {
    if (!open || !aiState.mode) return;

    const handleEscape = (e: KeyboardEvent): void => {
      if (e.key === "Escape") {
        e.preventDefault();
        e.stopPropagation();
        handleBackToSearch();
      }
    };

    document.addEventListener("keydown", handleEscape, true);
    return (): void =>
      document.removeEventListener("keydown", handleEscape, true);
  }, [open, aiState.mode, handleBackToSearch]);

  React.useEffect(() => {
    if (aiState.mode && !aiState.isGenerating) {
      // Focus AI input when switching to AI mode or after response
      aiInputRef.current?.focus();
    }
  }, [aiState.mode, aiState.isGenerating]);

  const hasResults = React.useMemo(
    () =>
      !searchQuery.trim() ||
      commandGroups.some((group) =>
        group.items.some((item) => filterItem(item, searchQuery)),
      ),
    [searchQuery, filterItem],
  );

  const handleOpenChange = React.useCallback(
    (newOpen: boolean) => {
      setOpen(newOpen);
      if (!newOpen) {
        setSearchQuery("");
        resetAIState();
      }
    },
    [resetAIState],
  );

  return (
    <CommandDialog
      handle={commandHandle}
      onOpenChange={handleOpenChange}
      open={open}
    >
      <CommandDialogPopup>
        {!aiState.mode ? (
          <Command
            filter={filterItem}
            items={commandGroups}
            key={commandResetKeyRef.current}
          >
            <div className="relative flex items-center *:first:flex-1">
              <CommandInput
                onChange={(e: React.ChangeEvent<HTMLInputElement>): void =>
                  setSearchQuery(e.target.value)
                }
                onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>): void => {
                  if (e.key === "Tab") {
                    e.preventDefault();
                    handleAskAI();
                  }
                  if (e.key === "Enter" && !hasResults && searchQuery.trim()) {
                    e.preventDefault();
                    handleAskAI();
                  }
                }}
                placeholder="Type a command or search..."
                ref={searchInputRef}
                value={searchQuery}
              />
              <Button
                className="me-2.5 rounded-md not-hover:text-muted-foreground text-sm sm:text-xs"
                onClick={handleAskAI}
                size="sm"
                variant="ghost"
              >
                <SparklesIcon className="size-4 sm:size-3.5" />
                Ask AI
                <Kbd className="ms-0.5 -me-1.5">Tab</Kbd>
              </Button>
            </div>
            <CommandPanel>
              <CommandEmpty className="not-empty:py-12">
                {searchQuery.trim() && (
                  <div className="wrap-break-word flex flex-col flex-wrap items-center gap-2">
                    <EmptyMedia variant="icon">
                      <SearchIcon />
                    </EmptyMedia>
                    <p>No results found.</p>
                    <p>
                      Press <Kbd>Enter</Kbd> to ask AI about:
                      <br />{" "}
                      <strong className="font-medium text-foreground">
                        {searchQuery}
                      </strong>
                    </p>
                  </div>
                )}
              </CommandEmpty>
              <CommandList>
                {(group: Group): React.ReactElement => (
                  <React.Fragment key={group.value}>
                    <CommandGroup items={group.items}>
                      <CommandGroupLabel>{group.value}</CommandGroupLabel>
                      <CommandCollection>
                        {(item: Item): React.ReactElement => (
                          <CommandItem
                            key={item.value}
                            onClick={handleItemClick}
                            value={item.value}
                          >
                            <span className="flex-1">{item.label}</span>
                            {item.shortcut && (
                              <CommandShortcut>{item.shortcut}</CommandShortcut>
                            )}
                          </CommandItem>
                        )}
                      </CommandCollection>
                    </CommandGroup>
                    <CommandSeparator />
                  </React.Fragment>
                )}
              </CommandList>
            </CommandPanel>
            <CommandFooter>
              {hasResults ? (
                <>
                  <div className="flex items-center gap-4">
                    <div className="flex items-center gap-2">
                      <KbdGroup>
                        <Kbd>
                          <ArrowUpIcon />
                        </Kbd>
                        <Kbd>
                          <ArrowDownIcon />
                        </Kbd>
                      </KbdGroup>
                      <span>Navigate</span>
                    </div>
                    <div className="flex items-center gap-2">
                      <Kbd>
                        <CornerDownLeftIcon />
                      </Kbd>
                      <span>Open</span>
                    </div>
                  </div>
                  <div className="flex items-center gap-2">
                    <Kbd>Esc</Kbd>
                    <span>Close</span>
                  </div>
                </>
              ) : (
                <div className="ms-auto flex items-center gap-2">
                  <Kbd>Esc</Kbd>
                  <span>Close</span>
                </div>
              )}
            </CommandFooter>
          </Command>
        ) : (
          <Command>
            <div className="flex items-center *:first:flex-1">
              <div className="px-2.5 py-1.5">
                <div className="relative w-full">
                  <div
                    aria-hidden="true"
                    className="pointer-events-none absolute inset-y-0 start-px z-10 flex items-center ps-[calc(--spacing(3)-1px)] opacity-80 has-[+[data-size=sm]]:ps-[calc(--spacing(2.5)-1px)] [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:-mx-0.5"
                    data-slot="autocomplete-start-addon"
                  >
                    <SparklesIcon />
                  </div>
                  <Input
                    aria-label="AI query input"
                    className="border-transparent! bg-transparent! shadow-none before:hidden has-focus-visible:ring-0 *:data-[slot=input]:ps-[calc(--spacing(8.5)-1px)] sm:*:data-[slot=input]:ps-[calc(--spacing(8)-1px)]"
                    disabled={aiState.isGenerating}
                    onChange={(e: React.ChangeEvent<HTMLInputElement>): void =>
                      setAIState((prev) => ({ ...prev, query: e.target.value }))
                    }
                    onKeyDown={(
                      e: React.KeyboardEvent<HTMLInputElement>,
                    ): void => {
                      if (e.key === "Enter" && !aiState.isGenerating) {
                        handleGenerateAI();
                      }
                      if (e.key === "Escape") {
                        e.preventDefault();
                        handleBackToSearch();
                      }
                    }}
                    placeholder="Ask AI anything…"
                    ref={aiInputRef}
                    size="lg"
                    value={aiState.query}
                  />
                </div>
              </div>
              <Button
                className="me-2.5 rounded-md not-hover:text-muted-foreground text-sm sm:text-xs"
                onClick={handleBackToSearch}
                size="sm"
                variant="ghost"
              >
                <ArrowLeftIcon className="size-4 sm:size-3.5" />
                Back to search
                <Kbd className="ms-0.5 -me-1.5">Esc</Kbd>
              </Button>
            </div>
            <CommandPanel>
              <ScrollArea scrollbarGutter scrollFade>
                <div className="p-5">
                  {!aiState.isGenerating &&
                    !aiState.response &&
                    !aiState.error && (
                      <div className="flex items-center justify-center py-12">
                        <p className="text-muted-foreground text-sm">
                          Ask AI anything and press <Kbd>Enter</Kbd> to get
                          started.
                        </p>
                      </div>
                    )}

                  {aiState.error && (
                    <div
                      aria-live="polite"
                      className="text-destructive text-sm"
                      role="alert"
                    >
                      {aiState.error}
                    </div>
                  )}

                  {aiState.isGenerating && (
                    <div className="flex flex-col gap-4">
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-5/6" />
                      </div>
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-3/4" />
                      </div>
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-2/4" />
                      </div>
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-4/5" />
                      </div>
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-3/4" />
                      </div>
                      <div className="flex flex-col gap-2">
                        <Skeleton className="h-4 w-full" />
                        <Skeleton className="h-4 w-2/3" />
                      </div>
                    </div>
                  )}

                  {aiState.response && !aiState.isGenerating && (
                    <>
                      <div
                        aria-live="polite"
                        className="text-muted-foreground text-sm **:[a]:underline **:[a]:underline-offset-4 **:[code]:rounded-md **:[code]:bg-muted **:[code]:px-[0.3rem] **:[code]:py-[0.2rem] **:[code]:font-mono **:[h1,h2,h3,strong,a]:font-medium **:[h1,h2,h3,strong,a]:text-foreground **:[h1,h2,h3]:not-first:mt-4 **:[h1,h2,h3]:text-base **:[p]:not-first:mt-3 **:[p]:leading-relaxed **:[ul]:my-3 **:[ul]:ms-4 **:[ul]:list-disc"
                        dangerouslySetInnerHTML={{
                          __html: markdownToSafeHTML(aiState.response),
                        }}
                      />
                      {aiState.referenceLinks.length > 0 && (
                        <div className="mt-8 flex flex-wrap gap-2">
                          {aiState.referenceLinks.map((link, index) => (
                            <Button
                              key={`${link.url}-${index}`}
                              render={<Link href={link.url} />}
                              size="sm"
                              variant="secondary"
                            >
                              {link.title}
                            </Button>
                          ))}
                        </div>
                      )}
                    </>
                  )}
                </div>
              </ScrollArea>
            </CommandPanel>

            <CommandFooter>
              {aiState.isGenerating ? (
                <div aria-live="polite" className="flex items-center gap-2">
                  <div className="flex h-5 items-center justify-center">
                    <Spinner className="size-3" />
                  </div>
                  <span className="animate-pulse">Generating response…</span>
                </div>
              ) : aiState.response ? (
                <div className="flex items-center gap-2">
                  <div className="flex h-5 items-center justify-center">
                    <CircleQuestionMarkIcon className="size-3" />
                  </div>
                  You asked: <span>&quot;{aiState.submittedQuery}&quot;</span>
                </div>
              ) : (
                <div className="flex items-center gap-2">
                  <Kbd>
                    <CornerDownLeftIcon />
                  </Kbd>
                  <span>Ask AI</span>
                </div>
              )}
            </CommandFooter>
          </Command>
        )}
      </CommandDialogPopup>
    </CommandDialog>
  );
}


================================================
FILE: apps/examples/calcom/components/app/app-header.tsx
================================================
import { cn } from "@coss/ui/lib/utils";
import type * as React from "react";

export function AppHeader({
  className,
  ...props
}: React.ComponentProps<"header">): React.ReactElement {
  return (
    <header
      className={cn("mb-6 flex items-start justify-between gap-4", className)}
      {...props}
    />
  );
}

export function AppHeaderContent({
  children,
  className,
  title,
  ...props
}: React.ComponentProps<"div"> & { title: string }): React.ReactElement {
  return (
    <div className={cn("flex flex-col gap-1", className)} {...props}>
      <h1 className="font-heading font-semibold text-lg leading-none">
        {title}
      </h1>
      {children}
    </div>
  );
}

export function AppHeaderDescription({
  className,
  ...props
}: React.ComponentProps<"p">): React.ReactElement {
  return (
    <p
      className={cn("text-muted-foreground text-sm max-md:hidden", className)}
      {...props}
    />
  );
}

export function AppHeaderActions({
  className,
  ...props
}: React.ComponentProps<"div">): React.ReactElement {
  return (
    <div className={cn("flex items-center gap-2", className)} {...props} />
  );
}


================================================
FILE: apps/examples/calcom/components/app/app-mobile-footer.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import {
  Menu,
  MenuGroup,
  MenuItem,
  MenuPopup,
  MenuSeparator,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { cn } from "@coss/ui/lib/utils";
import { EllipsisIcon, PlusIcon } from "lucide-react";
import Link from "next/link";
import type * as React from "react";
import { WorkflowBadge } from "@/components/workflows-badge";
import { useScrollHide } from "@/hooks/use-scroll-hide";
import type { NavItem } from "@/lib/navigation-data";
import { navFooterItems, navMainItems } from "@/lib/navigation-data";

const primaryNavItems: NavItem[] = navMainItems.slice(0, 3);
const remainingMainItems: NavItem[] = navMainItems.slice(3);

export function AppMobileFooter(): React.ReactElement {
  const isHidden = useScrollHide();

  return (
    <footer
      className={cn(
        "fixed inset-x-0 bottom-0 z-50 flex items-center justify-center gap-2 pb-4 transition-transform duration-500 ease-in-out before:pointer-events-none before:absolute before:inset-x-0 before:-bottom-1 before:h-[200%] before:bg-linear-to-t before:from-60% before:from-background before:transition-opacity before:duration-500 before:ease-in-out md:hidden",
        isHidden
          ? "translate-y-full before:opacity-0"
          : "translate-y-0 before:opacity-100",
      )}
    >
      <div className="relative flex w-fit items-center justify-around gap-1 rounded-full border bg-popover p-1 shadow-black/5 shadow-lg backdrop-blur-sm before:pointer-events-none before:absolute before:inset-0 before:rounded-full before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)]">
        {primaryNavItems.map((item) => (
          <Link
            aria-current={item.isActive ? "page" : undefined}
            className="flex size-11 items-center justify-center rounded-full text-sidebar-foreground/80 aria-[current=page]:bg-sidebar-accent aria-[current=page]:text-sidebar-accent-foreground"
            href={item.url}
            key={item.title}
          >
            <item.icon className="size-5" />
          </Link>
        ))}
        <Menu>
          <MenuTrigger
            aria-label="More options"
            render={<Button className="size-11 rounded-full" variant="ghost" />}
          >
            <EllipsisIcon className="size-5" />
          </MenuTrigger>
          <MenuPopup side="top" sideOffset={8}>
            <MenuGroup>
              {remainingMainItems.map((item) => (
                <MenuItem key={item.title} render={<Link href={item.url} />}>
                  <item.icon />
                  <span>{item.title}</span>
                  {item.title === "Workflows" && <WorkflowBadge />}
                </MenuItem>
              ))}
            </MenuGroup>
            <MenuSeparator />
            <MenuGroup>
              {navFooterItems.map((item) => (
                <MenuItem key={item.title} render={<Link href={item.url} />}>
                  <item.icon />
                  <span>{item.title}</span>
                </MenuItem>
              ))}
            </MenuGroup>
          </MenuPopup>
        </Menu>
      </div>
      <Button className="size-12 rounded-full sm:size-12">
        <PlusIcon className="size-5" />
      </Button>
    </footer>
  );
}


================================================
FILE: apps/examples/calcom/components/app/app-mobile-header.tsx
================================================
import type * as React from "react";
import { HeaderActions } from "@/components/header-actions";
import { Logo } from "@/components/logo";
import { MobileHeader } from "@/components/mobile-header";

export function AppMobileHeader(): React.ReactElement {
  return (
    <MobileHeader>
      <Logo />
      <HeaderActions />
    </MobileHeader>
  );
}


================================================
FILE: apps/examples/calcom/components/app/app-sidebar.tsx
================================================
"use client";

import type * as React from "react";
import { NavMain } from "@/components/app/nav-main";
import { NavSecondary } from "@/components/app/nav-secondary";
import { DebugPopover } from "@/components/debug-popover";
import { HeaderActions } from "@/components/header-actions";
import { Logo } from "@/components/logo";
import {
  Sidebar,
  SidebarContent,
  SidebarHeader,
  SidebarMenuButton,
} from "@/components/ui/sidebar";
import { navFooterItems, navMainItems } from "@/lib/navigation-data";

export function AppSidebar({
  variant,
  ...props
}: React.ComponentProps<typeof Sidebar> & {
  variant?: never;
}): React.ReactElement {
  return (
    <Sidebar {...props}>
      <SidebarHeader>
        <div className="flex flex-col items-center justify-between gap-0.5 px-1 lg:flex-row">
          <SidebarMenuButton
            className="w-fit justify-center md:max-lg:p-0"
            render={(props: React.HTMLAttributes<HTMLAnchorElement>) => (
              <Logo {...props} />
            )}
          />
          <HeaderActions />
        </div>
      </SidebarHeader>
      <SidebarContent>
        <NavMain items={navMainItems} />
        <NavSecondary className="mt-auto" items={navFooterItems} />
        <div className="px-3 pb-4 text-[0.625rem] text-sidebar-foreground/50 max-lg:hidden">
          © 2025 Cal.com, Inc. v.5.9.6-h-2701b4d{" - "}
          <DebugPopover />
        </div>
      </SidebarContent>
    </Sidebar>
  );
}


================================================
FILE: apps/examples/calcom/components/app/bookings-filters.tsx
================================================
"use client";

import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@coss/ui/components/avatar";
import { Badge } from "@coss/ui/components/badge";
import { Button, buttonVariants } from "@coss/ui/components/button";
import {
  Combobox,
  ComboboxEmpty,
  ComboboxInput,
  ComboboxItem,
  ComboboxList,
  ComboboxPopup,
  ComboboxTrigger,
} from "@coss/ui/components/combobox";
import { Group, GroupSeparator, GroupText } from "@coss/ui/components/group";
import {
  Menu,
  MenuGroup,
  MenuGroupLabel,
  MenuItem,
  MenuPopup,
  MenuSeparator,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { Separator } from "@coss/ui/components/separator";
import { cn } from "@coss/ui/lib/utils";
import {
  ChevronsUpDownIcon,
  CopyIcon,
  EllipsisIcon,
  FunnelIcon,
  ListFilterIcon,
  PencilIcon,
  SearchIcon,
  TrashIcon,
  XIcon,
} from "lucide-react";
import type * as React from "react";
import { useEffect, useRef, useState } from "react";
import type { Booking } from "@/lib/mock-bookings-data";
import {
  mockPastBookings,
  mockUpcomingBookings,
} from "@/lib/mock-bookings-data";

function toKebabCase(str: string): string {
  return str
    .toLowerCase()
    .replace(/[^a-z0-9]+/g, "-")
    .replace(/(^-|-$)/g, "");
}

function getUniqueEventTypes(
  bookings: Booking[],
): { id: string; label: string }[] {
  const eventTypeMap = new Map<string, { id: string; label: string }>();
  for (const booking of bookings) {
    if (booking.eventType) {
      const id = toKebabCase(booking.eventType.slug);
      if (!eventTypeMap.has(id)) {
        eventTypeMap.set(id, {
          id,
          label: booking.eventType.title,
        });
      }
    }
  }
  return Array.from(eventTypeMap.values()).sort((a, b) =>
    a.label.localeCompare(b.label),
  );
}

function getUniqueMembers(
  bookings: Booking[],
): { avatar: string | null; id: string; label: string }[] {
  const memberMap = new Map<
    string,
    { avatar: string | null; id: string; label: string }
  >();
  for (const booking of bookings) {
    if (booking.user?.name) {
      const id = toKebabCase(booking.user.name);
      if (!memberMap.has(id)) {
        memberMap.set(id, {
          avatar: booking.user.avatarUrl,
          id,
          label: booking.user.name,
        });
      }
    }
  }
  return Array.from(memberMap.values()).sort((a, b) =>
    a.label.localeCompare(b.label),
  );
}

function getUniqueAttendeeNames(
  bookings: Booking[],
): { id: string; label: string }[] {
  const attendeeMap = new Map<string, { id: string; label: string }>();
  for (const booking of bookings) {
    for (const attendee of booking.attendees) {
      const id = toKebabCase(attendee.name);
      if (!attendeeMap.has(id)) {
        attendeeMap.set(id, {
          id,
          label: attendee.name,
        });
      }
    }
  }
  return Array.from(attendeeMap.values()).sort((a, b) =>
    a.label.localeCompare(b.label),
  );
}

function getUniqueAttendeeEmails(
  bookings: Booking[],
): { id: string; label: string }[] {
  const emailMap = new Map<string, { id: string; label: string }>();
  for (const booking of bookings) {
    for (const attendee of booking.attendees) {
      const id = toKebabCase(attendee.email.split("@")[0] ?? attendee.email);
      if (!emailMap.has(attendee.email)) {
        emailMap.set(attendee.email, {
          id,
          label: attendee.email,
        });
      }
    }
  }
  return Array.from(emailMap.values()).sort((a, b) =>
    a.label.localeCompare(b.label),
  );
}

function getUniqueBookingUids(
  bookings: Booking[],
): { id: string; label: string }[] {
  return bookings
    .map((booking) => ({
      id: toKebabCase(booking.uid),
      label: booking.uid,
    }))
    .sort((a, b) => a.label.localeCompare(b.label));
}

function getInitials(name: string): string {
  const parts = name.trim().split(/\s+/);
  if (parts.length === 1) {
    return parts[0]?.charAt(0).toUpperCase() ?? "";
  }
  const first = parts[0]?.charAt(0) ?? "";
  const last = parts[parts.length - 1]?.charAt(0) ?? "";
  return (first + last).toUpperCase();
}

function CountBadge({ count }: { count: number }): React.ReactElement {
  return (
    <Badge className="tabular-nums" variant="secondary">
      +{count}
    </Badge>
  );
}

function SelectionDisplay({
  children,
  label,
  remainingCount,
}: {
  children?: React.ReactNode;
  label: string;
  remainingCount: number;
}): React.ReactElement {
  return (
    <div className="flex items-center gap-2">
      {children}
      <span className="truncate">{label}</span>
      {remainingCount > 0 && <CountBadge count={remainingCount} />}
    </div>
  );
}

function MemberAvatar({
  name,
  avatarUrl,
  className,
}: {
  name: string;
  avatarUrl?: string | null;
  className?: string;
}): React.ReactElement {
  return (
    <Avatar className={cn("size-5", className)}>
      {avatarUrl ? <AvatarImage alt={name} src={avatarUrl} /> : null}
      <AvatarFallback className="text-[0.5rem]">
        {getInitials(name)}
      </AvatarFallback>
    </Avatar>
  );
}

const allBookings: Booking[] = [...mockPastBookings, ...mockUpcomingBookings];

function useActiveFilters(): {
  activeFilters: ActiveFilter[];
  addFilter: (columnId: string) => void;
  clearAll: () => void;
  removeFilter: (columnId: string) => void;
  updateFilter: (columnId: string, values: string[]) => void;
} {
  const [activeFilters, setActiveFilters] = useState<ActiveFilter[]>([]);

  const addFilter = (columnId: string): void => {
    if (!activeFilters.some((filter) => filter.f === columnId)) {
      setActiveFilters([...activeFilters, { f: columnId }]);
    }
  };

  const updateFilter = (columnId: string, values: string[]): void => {
    setActiveFilters((prev) => {
      const exists = prev.some((filter) => filter.f === columnId);
      if (exists) {
        return prev.map((filter) =>
          filter.f === columnId ? { ...filter, v: values } : filter,
        );
      }
      return [...prev, { f: columnId, v: values }];
    });
  };

  const removeFilter = (columnId: string): void => {
    setActiveFilters((prev) => prev.filter((filter) => filter.f !== columnId));
  };

  const clearAll = (): void => {
    setActiveFilters([]);
  };

  return {
    activeFilters,
    addFilter,
    clearAll,
    removeFilter,
    updateFilter,
  };
}

function FilterMenu({
  hasFilters = false,
  onSelectFilter,
  activeFilterIds,
}: {
  hasFilters?: boolean;
  onSelectFilter: (categoryId: string) => void;
  activeFilterIds: string[];
}): React.ReactElement | null {
  const availableCategories = filterCategories.filter(
    (category) => !activeFilterIds.includes(category.id),
  );

  if (availableCategories.length === 0 && hasFilters) {
    return null;
  }

  return (
    <Menu>
      <MenuTrigger render={<Button size="sm" variant="outline" />}>
        <ListFilterIcon />
        <span className="max-sm:sr-only">Add Filter</span>
      </MenuTrigger>
      <MenuPopup align="start">
        <MenuGroup>
          <MenuGroupLabel>Filter by</MenuGroupLabel>
          {availableCategories.map((category) => (
            <MenuItem
              key={category.id}
              onClick={(): void => onSelectFilter(category.id)}
            >
              {category.label}
            </MenuItem>
          ))}
        </MenuGroup>
      </MenuPopup>
    </Menu>
  );
}

function ActiveFilterComponent({
  filter,
  category,
  onUpdate,
  onRemove,
  autoOpen = false,
}: {
  filter: ActiveFilter;
  category: FilterCategory;
  onUpdate: (values: string[]) => void;
  onRemove: () => void;
  autoOpen?: boolean;
}): React.ReactElement {
  const [open, setOpen] = useState(autoOpen);
  const hasAutoOpened = useRef(false);
  // Snapshot of sorted items when combobox opens (selected first)
  const [sortedItems, setSortedItems] = useState<FilterOption[]>(
    category.options,
  );

  useEffect(() => {
    if (autoOpen && !hasAutoOpened.current) {
      setOpen(true);
      hasAutoOpened.current = true;
    }
  }, [autoOpen]);

  const selectedValues = filter.v ?? [];
  // Get selected options in the order they were selected (based on filter.v order)
  const selectedOptions = selectedValues
    .map((id) => category.options.find((opt) => opt.id === id))
    .filter((opt): opt is FilterOption => opt !== undefined);

  const renderTriggerContent = (): string | React.ReactElement => {
    if (selectedOptions.length === 0) return "Select";
    const firstOption = selectedOptions[0];
    const remainingCount = selectedOptions.length - 1;

    // For members, show avatar + name + badge
    if (category.id === "userIds") {
      return (
        <SelectionDisplay
          label={firstOption?.label ?? ""}
          remainingCount={remainingCount}
        >
          <MemberAvatar
            avatarUrl={firstOption?.avatar}
            name={firstOption?.label ?? ""}
          />
        </SelectionDisplay>
      );
    }

    // For other filters, show text + badge
    if (remainingCount > 0) {
      return (
        <SelectionDisplay
          label={firstOption?.label ?? ""}
          remainingCount={remainingCount}
        />
      );
    }

    return firstOption?.label ?? "Select";
  };

  const handleValueChange = (
    newValue: FilterOption | FilterOption[] | null,
  ): void => {
    if (Array.isArray(newValue)) {
      // Maintain selection order: keep existing selections in order, append new ones
      const newIds = newValue.map((v) => v.id);
      const existingIds = selectedValues.filter((id) => newIds.includes(id));
      const addedIds = newIds.filter((id) => !selectedValues.includes(id));
      onUpdate([...existingIds, ...addedIds]);
    } else if (newValue) {
      onUpdate([newValue.id]);
    } else {
      onUpdate([]);
    }
  };

  const handleOpenChange = (isOpen: boolean): void => {
    setOpen(isOpen);
    if (isOpen) {
      // When opening, sort items: selected first, then unselected
      const selected = category.options.filter((opt) =>
        selectedValues.includes(opt.id),
      );
      const unselected = category.options.filter(
        (opt) => !selectedValues.includes(opt.id),
      );
      setSortedItems([...selected, ...unselected]);
    }
    // Remove filter if combobox closes with no selection
    if (!isOpen && selectedValues.length === 0) {
      onRemove();
    }
  };

  return (
    <Group>
      <GroupText
        className={cn(
          buttonVariants({
            size: "sm",
            variant: "outline",
          }),
          "pointer-events-none",
        )}
      >
        <FunnelIcon />
        {category.label}
      </GroupText>
      <GroupSeparator />
      <Combobox
        autoHighlight
        items={sortedItems}
        multiple
        onOpenChange={handleOpenChange}
        onValueChange={handleValueChange}
        open={open}
        value={selectedOptions}
      >
        <ComboboxTrigger
          render={
            <Button
              className={
                selectedOptions.length === 0 ? "justify-between" : undefined
              }
              size="sm"
              variant="outline"
            />
          }
        >
          {renderTriggerContent()}
          {selectedOptions.length === 0 && (
            <ChevronsUpDownIcon className="-me-1!" />
          )}
        </ComboboxTrigger>
        <ComboboxPopup aria-label={`Select ${category.label}`}>
          <div className="border-b p-2">
            <ComboboxInput
              placeholder={`Search ${category.label.toLowerCase()}…`}
              showTrigger={false}
              startAddon={<SearchIcon />}
            />
          </div>
          <ComboboxEmpty>No items found.</ComboboxEmpty>
          <ComboboxList>
            {(option: FilterOption): React.ReactElement => (
              <ComboboxItem key={option.id} value={option}>
                {category.id === "userIds" ? (
                  <div className="flex items-center gap-2">
                    <MemberAvatar
                      avatarUrl={option.avatar}
                      name={option.label}
                    />
                    <span>{option.label}</span>
                  </div>
                ) : (
                  option.label
                )}
              </ComboboxItem>
            )}
          </ComboboxList>
        </ComboboxPopup>
      </Combobox>
      <GroupSeparator />
      <Button
        aria-label="Remove filter"
        onClick={onRemove}
        size="icon-sm"
        variant="outline"
      >
        <XIcon />
      </Button>
    </Group>
  );
}

type SavedFilter = {
  id: string;
  isDefault?: boolean;
  label: string;
};

const savedFilters: SavedFilter[] = [
  { id: "my-bookings", isDefault: true, label: "My bookings" },
  { id: "team-meetings", label: "Team meetings" },
  { id: "client-calls", label: "Client calls" },
];

function SavedFiltersCombobox(): React.ReactElement {
  const [selectedFilter, setSelectedFilter] = useState<SavedFilter | null>(
    null,
  );

  const handleClearSelection = (): void => {
    setSelectedFilter(null);
  };

  // When no filter is selected, show just the combobox trigger
  if (!selectedFilter) {
    return (
      <Combobox
        items={savedFilters}
        onValueChange={setSelectedFilter}
        value={selectedFilter}
      >
        <ComboboxTrigger render={<Button size="sm" variant="outline" />}>
          Saved Filters
          <ChevronsUpDownIcon />
        </ComboboxTrigger>
        <ComboboxPopup align="end" aria-label="Select saved filter">
          <div className="border-b p-2">
            <ComboboxInput
              placeholder="Search saved filters…"
              showTrigger={false}
              startAddon={<SearchIcon />}
            />
          </div>
          <ComboboxEmpty>No saved filters.</ComboboxEmpty>
          <ComboboxList>
            {(filter: SavedFilter): React.ReactElement => (
              <ComboboxItem key={filter.id} value={filter}>
                {filter.label}
              </ComboboxItem>
            )}
          </ComboboxList>
        </ComboboxPopup>
      </Combobox>
    );
  }

  // When a filter is selected, show Group with combobox and X button, plus edit menu outside
  return (
    <div className="flex items-center gap-2">
      <Group>
        <Combobox
          items={savedFilters}
          onValueChange={setSelectedFilter}
          value={selectedFilter}
        >
          <ComboboxTrigger render={<Button size="sm" variant="outline" />}>
            {selectedFilter.label}
            <ChevronsUpDownIcon />
          </ComboboxTrigger>
          <ComboboxPopup align="end" aria-label="Select saved filter">
            <div className="border-b p-2">
              <ComboboxInput
                placeholder="Search saved filters…"
                showTrigger={false}
                startAddon={<SearchIcon />}
              />
            </div>
            <ComboboxEmpty>No saved filters.</ComboboxEmpty>
            <ComboboxList>
              {(filter: SavedFilter): React.ReactElement => (
                <ComboboxItem key={filter.id} value={filter}>
                  {filter.label}
                </ComboboxItem>
              )}
            </ComboboxList>
          </ComboboxPopup>
        </Combobox>
        <GroupSeparator />
        <Button
          aria-label="Clear saved filter"
          onClick={handleClearSelection}
          size="icon-sm"
          variant="outline"
        >
          <XIcon />
        </Button>
      </Group>
      <Menu>
        <MenuTrigger
          render={
            <Button
              aria-label="Edit saved filter"
              size="icon-sm"
              variant="outline"
            />
          }
        >
          <EllipsisIcon />
        </MenuTrigger>
        <MenuPopup align="end">
          {!selectedFilter.isDefault && (
            <MenuItem>
              <PencilIcon />
              Rename
            </MenuItem>
          )}
          <MenuItem>
            <CopyIcon />
            Duplicate
          </MenuItem>
          {!selectedFilter.isDefault && (
            <>
              <MenuSeparator />
              <MenuItem variant="destructive">
                <TrashIcon />
                Delete
              </MenuItem>
            </>
          )}
        </MenuPopup>
      </Menu>
    </div>
  );
}

export type FilterOption = {
  id: string;
  label: string;
  avatar?: string | null;
};

export type FilterCategory = {
  id: string;
  label: string;
  options: FilterOption[];
};

export type ActiveFilter = {
  f: string;
  v?: string[];
};

export const filterCategories: FilterCategory[] = [
  {
    id: "eventTypeId",
    label: "Event Type",
    options: getUniqueEventTypes(allBookings),
  },
  {
    id: "userIds",
    label: "Member",
    options: getUniqueMembers(allBookings),
  },
  {
    id: "attendeesName",
    label: "Attendees Name",
    options: getUniqueAttendeeNames(allBookings),
  },
  {
    id: "attendeeEmail",
    label: "Attendee Email",
    options: getUniqueAttendeeEmails(allBookings),
  },
  {
    id: "dateRange",
    label: "Date Range",
    options: [
      { id: "today", label: "Today" },
      { id: "yesterday", label: "Yesterday" },
      { id: "this-week", label: "This Week" },
      { id: "last-week", label: "Last Week" },
      { id: "this-month", label: "This Month" },
      { id: "last-month", label: "Last Month" },
      { id: "custom", label: "Custom Range" },
    ],
  },
  {
    id: "bookingUid",
    label: "Booking UID",
    options: getUniqueBookingUids(allBookings),
  },
];

export function BookingsFilters(): React.ReactElement {
  const { activeFilters, addFilter, updateFilter, removeFilter, clearAll } =
    useActiveFilters();
  const [newlyAddedFilter, setNewlyAddedFilter] = useState<string | null>(null);

  const handleSelectFilter = (categoryId: string): void => {
    addFilter(categoryId);
    setNewlyAddedFilter(categoryId);
  };

  const handleUpdateFilter = (columnId: string, values: string[]): void => {
    updateFilter(columnId, values);
  };

  const handleRemoveFilter = (columnId: string): void => {
    removeFilter(columnId);
    if (newlyAddedFilter === columnId) {
      setNewlyAddedFilter(null);
    }
  };

  const hasFilters = activeFilters.length > 0;
  const activeFilterIds = activeFilters.map((f) => f.f);

  return (
    <div className="mt-6 grid grid-cols-[auto_1fr] items-start justify-between gap-2 sm:flex">
      <div className="flex flex-1 flex-wrap gap-2 max-sm:contents">
        <FilterMenu
          activeFilterIds={activeFilterIds}
          hasFilters={hasFilters}
          onSelectFilter={handleSelectFilter}
        />
        <div className="flex flex-wrap gap-2 max-sm:order-1 max-sm:col-span-2 sm:contents">
          {activeFilters.map((filter) => {
            const category = filterCategories.find((c) => c.id === filter.f);
            if (!category) return null;
            return (
              <ActiveFilterComponent
                autoOpen={newlyAddedFilter === filter.f}
                category={category}
                filter={filter}
                key={filter.f}
                onRemove={(): void => handleRemoveFilter(filter.f)}
                onUpdate={(values: string[]): void =>
                  handleUpdateFilter(filter.f, values)
                }
              />
            );
          })}
        </div>
      </div>
      <div className="flex items-center justify-end gap-2">
        {hasFilters && (
          <>
            <div className="flex items-center gap-1">
              <Button onClick={clearAll} size="sm" variant="ghost">
                Clear
              </Button>
              <Button size="sm" variant="outline">
                Save
              </Button>
            </div>
            <Separator className="my-1" orientation="vertical" />
          </>
        )}
        <SavedFiltersCombobox />
      </div>
    </div>
  );
}


================================================
FILE: apps/examples/calcom/components/app/bookings-nav.tsx
================================================
import { ScrollArea } from "@coss/ui/components/scroll-area";
import type * as React from "react";
import type { Tab } from "@/components/app/tabbed-nav";
import { TabbedNav } from "@/components/app/tabbed-nav";

const bookingTabs: Tab[] = [
  { title: "Upcoming", url: "/booking/upcoming" },
  { title: "Unconfirmed", url: "/booking/unconfirmed" },
  { title: "Recurring", url: "/booking/recurring" },
  { title: "Past", url: "/booking/past" },
  { title: "Canceled", url: "/booking/canceled" },
];

function BookingsNav(): React.ReactElement {
  return (
    <div className="max-sm:-mx-4 max-sm:-my-0.5">
      <ScrollArea scrollbarGutter scrollFade>
        <div className="w-fit max-sm:px-4 max-sm:py-0.5">
          <TabbedNav
            ariaLabel="Filter bookings"
            data-slot="bookings-nav"
            tabs={bookingTabs}
          />
        </div>
      </ScrollArea>
    </div>
  );
}

export { BookingsNav };


================================================
FILE: apps/examples/calcom/components/app/bookings-view.tsx
================================================
"use client";

import { CalendarIcon, LayoutListIcon } from "lucide-react";
import { usePathname } from "next/navigation";
import type * as React from "react";
import { TabbedNav } from "@/components/app/tabbed-nav";

function BookingsView(): React.ReactElement {
  const pathname = usePathname();

  const viewTabs = [
    {
      icon: <LayoutListIcon className="size-4" />,
      title: "List view",
      url: pathname,
    },
    {
      icon: <CalendarIcon className="size-4" />,
      title: "Calendar view",
      url: `${pathname}?view=calendar`,
    },
  ];

  return <TabbedNav ariaLabel="View type" tabs={viewTabs} />;
}

export { BookingsView };


================================================
FILE: apps/examples/calcom/components/app/nav-main.tsx
================================================
"use client";

import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from "@coss/ui/components/collapsible";
import {
  Menu,
  MenuGroup,
  MenuGroupLabel,
  MenuItem,
  MenuPopup,
  MenuTrigger,
} from "@coss/ui/components/menu";
import { useMediaQuery } from "@coss/ui/hooks/use-media-query";
import { ChevronRightIcon, type LucideIcon } from "lucide-react";
import Link from "next/link";
import { usePathname } from "next/navigation";
import type * as React from "react";
import { useEffect, useMemo, useRef, useState } from "react";
import {
  SidebarGroup,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
  SidebarMenuSub,
  SidebarMenuSubButton,
  SidebarMenuSubItem,
  useSidebarMenuOpen,
} from "@/components/ui/sidebar";
import { WorkflowBadge } from "@/components/workflows-badge";

type BaseNavItem = {
  title: string;
  url: string;
  icon: LucideIcon;
  isActive?: boolean;
  matchPath?: string;
};

type NavSubItem = {
  title: string;
  url: string;
};

type NavItemWithChildren = BaseNavItem & { items: NavSubItem[] };
type NavItemLeaf = BaseNavItem & { items?: undefined };
type NavItem = NavItemLeaf | NavItemWithChildren;

function hasSubItems(item: NavItem): item is NavItemWithChildren {
  return Array.isArray(item.items) && item.items.length > 0;
}

function NavItemWithSubmenu({
  item,
}: {
  item: NavItemWithChildren;
}): React.ReactElement {
  const isBetweenMdAndLg = useMediaQuery("md:max-lg");
  const { registerMenu } = useSidebarMenuOpen();
  const unregisterRef = useRef<(() => void) | null>(null);

  useEffect(() => {
    return (): void => {
      if (unregisterRef.current) {
        unregisterRef.current();
      }
    };
  }, []);

  /* Collapsible version for expanded sidebar */
  const pathname = usePathname();
  const isActive = useMemo(
    () => item.items.some((subItem) => pathname.startsWith(subItem.url)),
    [item.items, pathname],
  );

  const [isExpanded, setIsExpanded] = useState<boolean>(
    !!(isActive || item.isActive),
  );

  // Auto-expand when active
  useEffect(() => {
    if (isActive) {
      setIsExpanded(true);
    }
  }, [isActive]);

  return (
    <SidebarMenuItem>
      {/* Menu version for collapsed sidebar (md-lg breakpoint) */}
      <Menu
        onOpenChange={(open: boolean): void => {
          if (open) {
            unregisterRef.current = registerMenu();
          } else {
            if (unregisterRef.current) {
              unregisterRef.current();
              unregisterRef.current = null;
            }
          }
        }}
      >
        <div className="hidden md:max-lg:block">
          <SidebarMenuButton
            aria-label={item.title}
            isActive={isActive || item.isActive}
            render={<MenuTrigger />}
            tooltip={isBetweenMdAndLg ? item.title : undefined}
          >
            <item.icon />
          </SidebarMenuButton>
        </div>
        <MenuPopup align="start" alignOffset={0} side="right">
          <MenuGroup>
            <MenuGroupLabel>{item.title}</MenuGroupLabel>
            {item.items.map((subItem) => (
              <MenuItem
                key={subItem.title}
                render={<Link href={subItem.url} />}
              >
                <span>{subItem.title}</span>
              </MenuItem>
            ))}
          </MenuGroup>
        </MenuPopup>
      </Menu>

      {/* Collapsible version for expanded sidebar */}
      <Collapsible
        className="md:max-lg:hidden"
        onOpenChange={setIsExpanded}
        open={isExpanded}
      >
        <CollapsibleTrigger
          className="justify-between"
          render={
            <SidebarMenuButton
              tooltip={isBetweenMdAndLg ? item.title : undefined}
            />
          }
        >
          <span className="flex items-center gap-2">
            <item.icon className="size-4" />
            <span>{item.title}</span>
          </span>
          <ChevronRightIcon className="in-data-open:rotate-90 opacity-80 transition-transform" />
        </CollapsibleTrigger>
        <CollapsibleContent>
          <SidebarMenuSub className="mx-0 gap-0.5 border-none px-0">
            {item.items.map((subItem) => (
              <SidebarMenuSubItem key={subItem.title}>
                <SidebarMenuSubButton
                  className="ps-8 hover:bg-transparent active:bg-transparent data-[active=true]:bg-sidebar-accent"
                  isActive={pathname.startsWith(subItem.url)}
                  render={<Link href={subItem.url} />}
                >
                  <span>{subItem.title}</span>
                </SidebarMenuSubButton>
              </SidebarMenuSubItem>
            ))}
          </SidebarMenuSub>
        </CollapsibleContent>
      </Collapsible>
    </SidebarMenuItem>
  );
}

function NavItemSimple({ item }: { item: NavItemLeaf }): React.ReactElement {
  const isBetweenMdAndLg = useMediaQuery("md:max-lg");
  const pathname = usePathname();
  const isActive = pathname.startsWith(item.matchPath ?? item.url);

  return (
    <SidebarMenuItem>
      <SidebarMenuButton
        isActive={isActive}
        render={<Link href={item.url} />}
        tooltip={isBetweenMdAndLg ? item.title : undefined}
      >
        <item.icon />
        <span className="max-lg:sr-only">{item.title}</span>
        {item.title === "Workflows" && <WorkflowBadge />}
      </SidebarMenuButton>
    </SidebarMenuItem>
  );
}

export function NavMain({ items }: { items: NavItem[] }): React.ReactElement {
  return (
    <SidebarGroup>
      <SidebarMenu className="gap-0.5">
        {items.map((item) =>
          hasSubItems(item) ? (
            <NavItemWithSubmenu item={item} key={item.title} />
          ) : (
            <NavItemSimple item={item} key={item.title} />
          ),
        )}
      </SidebarMenu>
    </SidebarGroup>
  );
}


================================================
FILE: apps/examples/calcom/components/app/nav-secondary.tsx
================================================
"use client";

import { useMediaQuery } from "@coss/ui/hooks/use-media-query";
import type { LucideIcon } from "lucide-react";
import Link from "next/link";
import type * as React from "react";
import {
  SidebarGroup,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
} from "@/components/ui/sidebar";

export function NavSecondary({
  items,
  ...props
}: {
  items: {
    title: string;
    url: string;
    icon: LucideIcon;
  }[];
} & React.ComponentPropsWithoutRef<typeof SidebarGroup>): React.ReactElement {
  const isBetweenMdAndLg = useMediaQuery("md:max-lg");

  return (
    <SidebarGroup {...props}>
      <SidebarMenu className="gap-0.5">
        {items.map((item) => (
          <SidebarMenuItem key={item.title}>
            <SidebarMenuButton
              render={<Link href={item.url} />}
              tooltip={isBetweenMdAndLg ? item.title : undefined}
            >
              <item.icon />
              <span className="md:max-lg:sr-only lg:inline">{item.title}</span>
            </SidebarMenuButton>
          </SidebarMenuItem>
        ))}
      </SidebarMenu>
    </SidebarGroup>
  );
}


================================================
FILE: apps/examples/calcom/components/app/tabbed-nav.tsx
================================================
"use client";

import { cn } from "@coss/ui/lib/utils";
import Link from "next/link";
import { usePathname, useSearchParams } from "next/navigation";
import type * as React from "react";

type Tab = {
  icon?: React.ReactNode;
  title: string;
  url: string;
};

type TabbedNavProps = {
  ariaLabel?: string;
  className?: string;
  dataSlot?: string;
  tabs: Tab[];
};

function TabbedNav({
  ariaLabel,
  className,
  dataSlot,
  tabs,
}: TabbedNavProps): React.ReactElement {
  const pathname = usePathname();
  const searchParams = useSearchParams();
  const anyTabHasQuery = tabs.some((t) => t.url.includes("?"));
  const currentView = searchParams.get("view");

  return (
    <nav
      aria-label={ariaLabel}
      className={cn(
        "flex w-fit items-center gap-x-0.5 rounded-lg bg-muted p-0.5 text-muted-foreground/72",
        className,
      )}
      data-slot={dataSlot}
    >
      {tabs.map((tab) => {
        const tabUrl = tab.url.split("?")[0];
        const tabHasQuery = tab.url.includes("?");
        const tabView = tab.url.split("?view=")[1];

        let isActive = false;

        if (anyTabHasQuery) {
          if (tabHasQuery) {
            isActive = pathname === tabUrl && tabView === currentView;
          } else {
            isActive = pathname === tabUrl && !currentView;
          }
        } else {
          isActive = pathname === tabUrl;
        }
        const isIconOnly = !!tab.icon;
        return (
          <Link
            aria-current={isActive ? "page" : undefined}
            aria-label={isIconOnly ? tab.title : undefined}
            className={cn(
              "relative flex h-8 shrink-0 cursor-pointer items-center justify-center rounded-md font-medium text-sm outline-none transition-[color,background-color,box-shadow] not-aria-[current=page]:hover:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring aria-[current=page]:bg-background aria-[current=page]:text-foreground aria-[current=page]:shadow-sm/5 dark:aria-[current=page]:bg-input",
              isIconOnly ? "w-8" : "gap-1.5 whitespace-nowrap px-2.5",
            )}
            href={tab.url}
            key={tab.url}
          >
            {tab.icon ?? tab.title}
          </Link>
        );
      })}
    </nav>
  );
}

export { TabbedNav };
export type { Tab, TabbedNavProps };


================================================
FILE: apps/examples/calcom/components/copyable-field.tsx
================================================
"use client";

import { Button } from "@coss/ui/components/button";
import { Field, FieldDescription, FieldLabel } from "@coss/ui/components/field";
import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
} from "@coss/ui/components/input-group";
import { anchoredToastManager, toastManager } from "@coss/ui/components/toast";
import {
  Tooltip,
  TooltipPopup,
  TooltipTrigger,
} from "@coss/ui/components/tooltip";
import { useCopyToClipboard } from "@coss/ui/hooks/use-copy-to-clipboard";
import { cn } from "@coss/ui/lib/utils";
import { CheckIcon, ClipboardIcon } from "lucide-react";
import type * as React from "react";
import { useRef } from "react";

const RESET_DELAY = 2000;

interface CopyableFieldProps {
  label: string;
  value: string;
  monospace?: boolean;
  "aria-label"?: string;
  description?: React.ReactNode;
  copyTooltip?: string;
  copiedTooltip?: string;
  onCopySuccess?: () => void;
  "data-testid"?: string;
}

export function CopyableField({
  label,
  value,
  monospace = false,
  "aria-label": ariaLabel,
  description,
  copyTooltip = "Copy to clipboard",
  copiedTooltip = "Copied!",
  onCopySuccess,
  "data-testid": dataTestId,
}: CopyableFieldProps): React.ReactElement {
  const buttonRef = useRef<HTMLButtonElement>(null);
  const { copyToClipboard, isCopied } = useCopyToClipboard({
    onCopy: () => {
      if (buttonRef.current) {
        anchoredToastManager.add({
          data: { tooltipStyle: true },
          positionerProps: { anchor: buttonRef.current },
          timeout: RESET_DELAY,
          title: copiedTooltip,
          type: "success",
        });
      } else {
        toastManager.add({ title: copiedTooltip, type: "success" });
      }
      onCopySuccess?.();
    },
    timeout: RESET_DELAY,
  });

  const handleCopy = (): void => {
    if (isCopied) {
      return;
    }
    copyToClipboard(value);
  };

  return (
    <Field>
      <FieldLabel>{label}</FieldLabel>
      <InputGroup>
        <InputGroupInput
          aria-label={ariaLabel ?? label}
          className={cn("*:truncate", monospace && "font-mono")}
          data-testid={dataTestId}
          readOnly
          value={value}
        />
        <InputGroupAddon align="inline-end">
          <Tooltip>
            <TooltipTrigger
              render={
                <Button
                  ref={buttonRef}
                  aria-label={`Copy ${label}`}
                  size="icon-xs"
                  type="button"
                  variant="ghost"
                  onClick={handleCopy}
                  disabled={isCopied}
                />
              }
            >
              {isCopied ? (
                <CheckIcon aria-hidden />
              ) : (
                <ClipboardIcon aria-hidden />
              )}
            </TooltipTrigger>
            <TooltipPopup>
              <p>{isCopied ? copiedTooltip : copyTooltip}</p>
            </TooltipPopup>
          </Tooltip>
        </InputGroupAddon>
      </InputGroup>
      {description && <FieldDescription>{description}</FieldDescription>}
    </Field>
  );
}


================================================
FILE: apps/examples/calcom/components/debug-context.tsx
================================================
"use client";

import type * as React from "react";
import type { Context } from "react";
import { createContext, type ReactNode, useContext, useState } from "react";

interface DebugContextValue {
  enableArtificialDelay: boolean;
  isLoadingOverride: boolean | null;
  setEnableArtificialDelay: (value: boolean) => void;
  setIsLoadingOverride: (value: boolean | null) => void;
}

const DebugContext: Context<DebugContextValue | null> =
  createContext<DebugContextValue | null>(null);

export function DebugProvider({
  children,
}: {
  children: ReactNode;
}): React.ReactElement {
  const [isLoadingOverride, setIsLoadingOverride] = useState<boolean | null>(
    null,
  );
  const [enableArtificialDelay, setEnableArtificialDelay] = useState(false);

  return (
    <DebugContext.Provider
      value={{
        enableArtificialDelay,
        isLoadingOverride,
        setEnableArtificialDelay,
        setIsLoadingOverride,
      }}
    >
      {children}
    </DebugContext.Provider>
  );
}

export function useDebug(): DebugContextValue {
  const context = useContext(DebugContext);
  if (!context) {
    throw new Error("useDebug must be used within a DebugProvider");
  }
  return context;
}


================================================
FILE: apps/examples/calcom/components/debug-popover.tsx
================================================
"use client";

import { Label } from "@coss/ui/components/label";
import {
  Popover,
  PopoverPopup,
  PopoverTrigger,
} from "@coss/ui/components/popover";
import { Switch } from "@coss/ui/components/switch";
import type * as React from "react";
import { useDebug } from "./debug-context";

export function DebugPopover(): React.ReactElement {
  const {
    enableArtificialDelay,
    isLoadingOverride,
    setEnableArtificialDelay,
    setIsLoadingOverride,
  } = useDebug();

  return (
    <Popover>
      <PopoverTrigger className="cursor-pointer text-[0.625rem] text-sidebar-foreground/50 hover:text-sidebar-foreground/70">
        Debug
      </PopoverTrigger>
      <PopoverPopup align="center" className="w-64" side="top">
        <div className="flex flex-col gap-4">
          <div className="flex items-center justify-between gap-4">
            <Label htmlFor="delay-switch">Enable artificial delay</Label>
            <Switch
              checked={enableArtificialDelay}
              id="delay-switch"
              onCheckedChange={setEnableArtificialDelay}
            />
          </div>
          <div className="flex items-center justify-between gap-4">
            <Label htmlFor="loading-switch">Force loading state</Label>
            <Switch
              checked={isLoadingOverride === true}
              id="loading-switch"
              onCheckedChange={(checked: boolean): void =>
                setIsLoadingOverride(checked ? true : null)
              }
            />
          </div>
        </div>
      </PopoverPopup>
    </Popover>
  );
}


================================================
FILE: apps/examples/calcom/components/header-actions.tsx
================================================
"use client";

import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@coss/ui/components/avatar";
import { CommandDialogTrigger } from "@coss/ui/components/command";
import { SearchIcon } from "lucide-react";
import Link from "next/link";
import type * as React from "react";
import { commandHandle } from "@/components/app/app-command";
import { SidebarMenuButton } from "@/components/ui/sidebar";
import { UserMenu } from "@/components/user-menu";

export function HeaderActions(): React.ReactElement {
  return (
    <div className="flex items-center gap-0.5 md:flex-col lg:flex-row">
      <CommandDialogTrigger
        handle={commandHandle}
        render={
          <SidebarMenuButton
            aria-label="Search"
            className="shrink-0 justify-center p-0 md:max-lg:order-1 lg:size-8"
          />
        }
      >
        <SearchIcon />
      </CommandDialogTrigger>
      <SidebarMenuButton
        className="shrink-0 justify-center p-0 lg:size-8"
        render={
          <Link href="#">
            <Avatar className="lg:size-6">
              <AvatarImage
                alt="Luke Tracy"
                src="https://pbs.twimg.com/profile_images/1994776674391457792/7utKOMi6_400x400.jpg"
              />
              <AvatarFallback>CC</AvatarFallback>
            </Avatar>
          </Link>
        }
      />
      <UserMenu />
    </div>
  );
}


================================================
FILE: apps/examples/calcom/components/item-label.tsx
================================================
import { cn } from "@coss/ui/lib/utils";
import type * as React from "react";
import type { CSSProperties } from "react";

interface ItemLabelProps {
  colorLight?: string;
  colorDark?: string;
  className?: string;
}

export function ItemLabel({
  colorLight,
  colorDark,
  className,
}: ItemLabelProps): React.ReactElement | null {
  const hasColor = colorLight || colorDark;
  if (!hasColor) return null;

  const style = {
    "--label-color-dark": colorDark || "transparent",
    "--label-color-light": colorLight || "transparent",
  } as CSSProperties;

  return (
    <div
      aria-hidden="true"
      className={cn(
        "pointer-events-none absolute inset-y-4.5 start-2.5 in-[[data-draggable]:hover,[data-draggable]:has([data-slot=list-item-drag-handle]:focus-visible),[data-draggable][data-drag-overlay],[data-drag-release]]:top-10.5 w-[3px] rounded-full bg-(--label-color-light) not-in-data-drag-release:transition-[top] dark:bg-(--label-color-dark)",
        className,
      )}
      data-slot="item-label-color"
      style={style}
    />
  );
}


================================================
FILE: apps/examples/calcom/components/list-item.tsx
================================================
import { mergeProps } from "@coss/ui/base-ui/merge-props";
import { useRender } from "@coss/ui/base-ui/use-render";
import { Button } from "@coss/ui/components/button";
import { cn } from "@coss/ui/lib/utils";
import type { SyntheticListenerMap } from "@dnd-kit/core/dist/hooks/utilities";
import { GripVerticalIcon } from "lucide-react";
import Link, { type LinkProps } from "next/link";
import type * as React from "react";
import type { CSSProperties, ReactNode } from "react";
import { ItemLabel } from "./item-label";

const sortableListClasses =
  "has-[[data-drag-ghost],[data-drag-release]]:border-transparent has-[[data-drag-ghost],[data-drag-release]]:bg-transparent has-[[data-drag-ghost],[data-drag-release]]:shadow-none has-[[data-drag-ghost],[data-drag-release]]:before:hidden has-[[data-drag-ghost],[data-drag-release]]:**:data-[slot=list-item]:border-transparent has-[[data-drag-ghost],[data-drag-release]]:**:data-[slot=list-item]:after:visible";

interface ListItemProps extends useRender.ComponentProps<"div"> {
  sortable?: boolean;
  labelColorLight?: string;
  labelColorDark?: string;
  isOverlay?: boolean;
  sortableRef?: (node: HTMLElement | null) => void;
  sortableStyle?: CSSProperties;
  sortableDragging?: boolean;
  sortableDraggingAny?: boolean;
  sortableListeners?: SyntheticListenerMap;
  hasDragged?: boolean;
}

function ListItem({
  children,
  className,
  render,
  sortable = false,
  labelColorLight,
  labelColorDark,
  isOverlay,
  sortableRef,
  sortableStyle,
  sortableDragging,
  sortableDraggingAny,
  sortableListeners,
  hasDragged,
  ...props
}: ListItemProps): React.ReactElement {
  const baseClasses =
    "not-last:border-b bg-clip-padding has-[[data-slot=list-item-title]_a:hover]:z-1 has-[[data-slot=list-item-title]_a:hover]:bg-[color-mix(in_srgb,var(--card),var(--color-black)_2%)] dark:has-[[data-slot=list-item-title]_a:hover]:bg-[color-mix(in_srgb,var(--card),var(--color-white)_2%)] first:rounded-t-[calc(var(--radius-2xl)-1px)] last:rounded-b-[calc(var(--radius-2xl)-1px)] in-[[data-slot=card-frame]:has([data-slot=card-frame-header])]:first:rounded-t-[calc(var(--radius-xl)-1px)] in-[[data-slot=card-frame]:has([data-slot=card-frame-footer])]:last:rounded-b-[calc(var(--radius-xl)-1px)]";

  const staticClasses = "transition-[background-color]";

  const sortableClasses =
    "after:-inset-px relative translate-y-(--translate-y) data-has-dragged:starting:rounded-2xl not-data-drag-on:transition-[background-color] data-has-dragged:not-data-drag-on:transition-[background-color,border-radius] after:pointer-events-none after:invisible after:absolute data-has-dragged:starting:after:inset-y-1 data-has-dragged:starting:after:rounded-2xl first:after:rounded-t-2xl last:after:rounded-b-2xl after:border after:border-border after:bg-card after:transition-[border-radius,inset] data-drag-overlay:data-drag-release:hidden data-drag-overlay:pointer-events-none data-drag-on:not-data-drag-ghost:z-1 data-drag-on:rounded-2xl data-drag-on:transition-[translate] data-drag-on:after:visible data-drag-overlay:after:visible data-drag-on:after:inset-y-1 data-drag-overlay:after:inset-y-1 data-drag-on:after:rounded-2xl data-drag-overlay:after:rounded-2xl data-drag-ghost:after:border-dashed data-drag-ghost:after:bg-muted/24 not-dark:data-drag-overlay:after:bg-clip-padding data-drag-overlay:after:shadow-lg data-drag-ghost:*:opacity-0 before:pointer-events-none before:absolute before:inset-x-0 before:inset-y-[5px] before:rounded-[calc(var(--radius-2xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)] not-data-drag-overlay:before:hidden before:z-1";

  const innerContent = (
    <div
      className={cn(
        "relative flex items-center justify-between gap-4 px-6 py-4",
        sortable && "z-1",
      )}
    >
      {sortable && (
        <ItemLabel colorDark={labelColorDark} colorLight={labelColorLight} />
      )}
      {children}
    </div>
  );

  const defaultProps = {
    className: cn(
      baseClasses,
      sortable ? sortableClasses : staticClasses,
      className,
    ),
    "data-drag-ghost": sortable && sortableDragging ? "" : undefined,
    "data-drag-on": sortable && sortableDraggingAny ? "" : undefined,
    "data-drag-overlay": sortable && isOverlay ? "" : undefined,
    "data-draggable": sortable ? "" : undefined,
    "data-has-dragged": sortable && hasDragged ? "" : undefined,
    "data-slot": "list-item",
    ref: sortable ? sortableRef : undefined,
    style: sortable ? sortableStyle : undefined,
    ...(sortable ? sortableListeners : {}),
  };

  const mergedProps = mergeProps<"div">(defaultProps, props);
  const propsWithInnerContent = {
    ...mergedProps,
    children: innerContent,
  };

  return useRender({
    defaultTagName: "div",
    props: propsWithInnerContent,
    render,
  });
}

interface SortableListItemProps {
  children: ReactNode;
  className?: string;
  labelColorLight?: string;
  labelColorDark?: string;
  isOverlay?: boolean;
  sortableRef?: (node: HTMLElement | null) => void;
  sortableStyle?: CSSProperties;
  sortableDragging?: boolean;
  sortableDraggingAny?: boolean;
  sortableListeners?: SyntheticListenerMap;
  hasDragged?: boolean;
}

function SortableListItem({
  children,
  className,
  labelColorLight,
  labelColorDark,
  isOverlay,
  sortableRef,
  sortableStyle,
  sortableDragging,
  sortableDraggingAny,
  sortableListeners,
  hasDragged,
}: SortableListItemProps): React.ReactElement {
  return (
    <ListItem
      className={className}
      hasDragged={hasDragged}
      isOverlay={isOverlay}
      labelColorDark={l
Download .txt
gitextract_1xyzqltd/

├── .biome-packages-sync/
│   └── packages-sync.json
├── .github/
│   ├── labeler.yml
│   └── workflows/
│       ├── build.yml
│       ├── ci.yml
│       ├── format.yml
│       ├── labeler.yml
│       ├── lint.yml
│       ├── publish.yml
│       ├── semantic-pull-requests.yml
│       ├── test.yml
│       └── typecheck.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .vscode/
│   └── settings.json
├── .zed/
│   └── settings.json
├── AGENTS.md
├── LICENSE
├── LICENSING.md
├── README.md
├── apps/
│   ├── examples/
│   │   ├── calcom/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── app/
│   │   │   │   ├── (dashboard)/
│   │   │   │   │   ├── booking/
│   │   │   │   │   │   ├── booking-skeleton.tsx
│   │   │   │   │   │   ├── canceled/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── page.tsx
│   │   │   │   │   │   ├── past/
│   │   │   │   │   │   │   ├── booking-actions.tsx
│   │   │   │   │   │   │   ├── bookings-list.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── recurring/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── unconfirmed/
│   │   │   │   │   │   │   ├── bookings-empty.tsx
│   │   │   │   │   │   │   ├── loading.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   └── upcoming/
│   │   │   │   │   │       ├── bookings-empty.tsx
│   │   │   │   │   │       ├── loading.tsx
│   │   │   │   │   │       └── page.tsx
│   │   │   │   │   ├── event-types/
│   │   │   │   │   │   ├── add-event-type-dialog.tsx
│   │   │   │   │   │   ├── event-type-actions.tsx
│   │   │   │   │   │   ├── event-types-list.tsx
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── (settings)/
│   │   │   │   │   └── settings/
│   │   │   │   │       ├── layout.tsx
│   │   │   │   │       ├── my-account/
│   │   │   │   │       │   ├── general/
│   │   │   │   │       │   │   └── page.tsx
│   │   │   │   │       │   ├── page.tsx
│   │   │   │   │       │   └── profile/
│   │   │   │   │       │       └── page.tsx
│   │   │   │   │       └── page.tsx
│   │   │   │   ├── globals.css
│   │   │   │   └── layout.tsx
│   │   │   ├── components/
│   │   │   │   ├── app/
│   │   │   │   │   ├── app-command.tsx
│   │   │   │   │   ├── app-header.tsx
│   │   │   │   │   ├── app-mobile-footer.tsx
│   │   │   │   │   ├── app-mobile-header.tsx
│   │   │   │   │   ├── app-sidebar.tsx
│   │   │   │   │   ├── bookings-filters.tsx
│   │   │   │   │   ├── bookings-nav.tsx
│   │   │   │   │   ├── bookings-view.tsx
│   │   │   │   │   ├── nav-main.tsx
│   │   │   │   │   ├── nav-secondary.tsx
│   │   │   │   │   └── tabbed-nav.tsx
│   │   │   │   ├── copyable-field.tsx
│   │   │   │   ├── debug-context.tsx
│   │   │   │   ├── debug-popover.tsx
│   │   │   │   ├── header-actions.tsx
│   │   │   │   ├── item-label.tsx
│   │   │   │   ├── list-item.tsx
│   │   │   │   ├── logo.tsx
│   │   │   │   ├── mobile-header.tsx
│   │   │   │   ├── settings/
│   │   │   │   │   ├── settings-mobile-header.tsx
│   │   │   │   │   ├── settings-nav-section.tsx
│   │   │   │   │   ├── settings-sheet.tsx
│   │   │   │   │   ├── settings-sidebar.tsx
│   │   │   │   │   └── settings-toggle.tsx
│   │   │   │   ├── settings-toggle.tsx
│   │   │   │   ├── sortable.tsx
│   │   │   │   ├── ui/
│   │   │   │   │   └── sidebar.tsx
│   │   │   │   ├── user-menu.tsx
│   │   │   │   └── workflows-badge.tsx
│   │   │   ├── hooks/
│   │   │   │   ├── use-loading-state.ts
│   │   │   │   └── use-scroll-hide.ts
│   │   │   ├── lib/
│   │   │   │   ├── event-types-types.ts
│   │   │   │   ├── markdown-to-safe-html.ts
│   │   │   │   ├── mock-ai-data.ts
│   │   │   │   ├── mock-bookings-data.ts
│   │   │   │   ├── mock-event-types-data.ts
│   │   │   │   ├── navigation-data.ts
│   │   │   │   └── settings-navigation-data.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── postcss.config.mjs
│   │   │   └── tsconfig.json
│   │   └── next-env.d.ts
│   ├── origin/
│   │   ├── .gitignore
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [category]/
│   │   │   │   └── page.tsx
│   │   │   ├── easings/
│   │   │   │   ├── copy-class.tsx
│   │   │   │   ├── easings.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── not-found.tsx
│   │   │   ├── page.tsx
│   │   │   ├── search/
│   │   │   │   ├── components-container.tsx
│   │   │   │   ├── multiselect.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── search-field.tsx
│   │   │   └── sitemap.ts
│   │   ├── components/
│   │   │   ├── cli-commands.tsx
│   │   │   ├── code-block.tsx
│   │   │   ├── component-card.tsx
│   │   │   ├── component-details.tsx
│   │   │   ├── component-loader-client.tsx
│   │   │   ├── component-loader-server.tsx
│   │   │   ├── copy-button.tsx
│   │   │   ├── copy-layout.tsx
│   │   │   ├── copy-registry.tsx
│   │   │   ├── cta.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header-link.tsx
│   │   │   ├── header.tsx
│   │   │   ├── open-in-v0.tsx
│   │   │   ├── page-grid.tsx
│   │   │   ├── page-header.tsx
│   │   │   ├── search-button.tsx
│   │   │   ├── subscribe-action.ts
│   │   │   ├── subscribe-form.tsx
│   │   │   ├── theme-provider.tsx
│   │   │   ├── theme-toggle.tsx
│   │   │   └── top-banner.tsx
│   │   ├── components.json
│   │   ├── config/
│   │   │   └── components.ts
│   │   ├── docs/
│   │   │   └── use-file-upload.md
│   │   ├── hooks/
│   │   │   ├── use-config.ts
│   │   │   ├── use-copy.ts
│   │   │   └── use-mobile.tsx
│   │   ├── lib/
│   │   │   └── utils.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── public/
│   │   │   └── r/
│   │   │       ├── accordion.json
│   │   │       ├── alert-dialog.json
│   │   │       ├── avatar.json
│   │   │       ├── badge.json
│   │   │       ├── breadcrumb.json
│   │   │       ├── button.json
│   │   │       ├── calendar-rac.json
│   │   │       ├── calendar.json
│   │   │       ├── checkbox-tree.json
│   │   │       ├── checkbox.json
│   │   │       ├── collapsible.json
│   │   │       ├── command.json
│   │   │       ├── comp-01.json
│   │   │       ├── comp-02.json
│   │   │       ├── comp-03.json
│   │   │       ├── comp-04.json
│   │   │       ├── comp-05.json
│   │   │       ├── comp-06.json
│   │   │       ├── comp-07.json
│   │   │       ├── comp-08.json
│   │   │       ├── comp-09.json
│   │   │       ├── comp-10.json
│   │   │       ├── comp-100.json
│   │   │       ├── comp-101.json
│   │   │       ├── comp-102.json
│   │   │       ├── comp-103.json
│   │   │       ├── comp-104.json
│   │   │       ├── comp-105.json
│   │   │       ├── comp-106.json
│   │   │       ├── comp-107.json
│   │   │       ├── comp-108.json
│   │   │       ├── comp-109.json
│   │   │       ├── comp-11.json
│   │   │       ├── comp-110.json
│   │   │       ├── comp-111.json
│   │   │       ├── comp-112.json
│   │   │       ├── comp-113.json
│   │   │       ├── comp-114.json
│   │   │       ├── comp-115.json
│   │   │       ├── comp-116.json
│   │   │       ├── comp-117.json
│   │   │       ├── comp-118.json
│   │   │       ├── comp-119.json
│   │   │       ├── comp-12.json
│   │   │       ├── comp-120.json
│   │   │       ├── comp-121.json
│   │   │       ├── comp-122.json
│   │   │       ├── comp-123.json
│   │   │       ├── comp-124.json
│   │   │       ├── comp-125.json
│   │   │       ├── comp-126.json
│   │   │       ├── comp-127.json
│   │   │       ├── comp-128.json
│   │   │       ├── comp-129.json
│   │   │       ├── comp-13.json
│   │   │       ├── comp-130.json
│   │   │       ├── comp-131.json
│   │   │       ├── comp-132.json
│   │   │       ├── comp-133.json
│   │   │       ├── comp-134.json
│   │   │       ├── comp-135.json
│   │   │       ├── comp-136.json
│   │   │       ├── comp-137.json
│   │   │       ├── comp-138.json
│   │   │       ├── comp-139.json
│   │   │       ├── comp-14.json
│   │   │       ├── comp-140.json
│   │   │       ├── comp-141.json
│   │   │       ├── comp-142.json
│   │   │       ├── comp-143.json
│   │   │       ├── comp-144.json
│   │   │       ├── comp-145.json
│   │   │       ├── comp-146.json
│   │   │       ├── comp-147.json
│   │   │       ├── comp-148.json
│   │   │       ├── comp-149.json
│   │   │       ├── comp-15.json
│   │   │       ├── comp-150.json
│   │   │       ├── comp-151.json
│   │   │       ├── comp-152.json
│   │   │       ├── comp-153.json
│   │   │       ├── comp-154.json
│   │   │       ├── comp-155.json
│   │   │       ├── comp-156.json
│   │   │       ├── comp-157.json
│   │   │       ├── comp-158.json
│   │   │       ├── comp-159.json
│   │   │       ├── comp-16.json
│   │   │       ├── comp-160.json
│   │   │       ├── comp-161.json
│   │   │       ├── comp-162.json
│   │   │       ├── comp-163.json
│   │   │       ├── comp-164.json
│   │   │       ├── comp-165.json
│   │   │       ├── comp-166.json
│   │   │       ├── comp-167.json
│   │   │       ├── comp-168.json
│   │   │       ├── comp-169.json
│   │   │       ├── comp-17.json
│   │   │       ├── comp-170.json
│   │   │       ├── comp-171.json
│   │   │       ├── comp-172.json
│   │   │       ├── comp-173.json
│   │   │       ├── comp-174.json
│   │   │       ├── comp-175.json
│   │   │       ├── comp-176.json
│   │   │       ├── comp-177.json
│   │   │       ├── comp-178.json
│   │   │       ├── comp-179.json
│   │   │       ├── comp-18.json
│   │   │       ├── comp-180.json
│   │   │       ├── comp-181.json
│   │   │       ├── comp-182.json
│   │   │       ├── comp-183.json
│   │   │       ├── comp-184.json
│   │   │       ├── comp-185.json
│   │   │       ├── comp-186.json
│   │   │       ├── comp-187.json
│   │   │       ├── comp-188.json
│   │   │       ├── comp-189.json
│   │   │       ├── comp-19.json
│   │   │       ├── comp-190.json
│   │   │       ├── comp-191.json
│   │   │       ├── comp-192.json
│   │   │       ├── comp-193.json
│   │   │       ├── comp-194.json
│   │   │       ├── comp-195.json
│   │   │       ├── comp-196.json
│   │   │       ├── comp-197.json
│   │   │       ├── comp-198.json
│   │   │       ├── comp-199.json
│   │   │       ├── comp-20.json
│   │   │       ├── comp-200.json
│   │   │       ├── comp-201.json
│   │   │       ├── comp-202.json
│   │   │       ├── comp-203.json
│   │   │       ├── comp-204.json
│   │   │       ├── comp-205.json
│   │   │       ├── comp-206.json
│   │   │       ├── comp-207.json
│   │   │       ├── comp-208.json
│   │   │       ├── comp-209.json
│   │   │       ├── comp-21.json
│   │   │       ├── comp-210.json
│   │   │       ├── comp-211.json
│   │   │       ├── comp-212.json
│   │   │       ├── comp-213.json
│   │   │       ├── comp-214.json
│   │   │       ├── comp-215.json
│   │   │       ├── comp-216.json
│   │   │       ├── comp-217.json
│   │   │       ├── comp-218.json
│   │   │       ├── comp-219.json
│   │   │       ├── comp-22.json
│   │   │       ├── comp-220.json
│   │   │       ├── comp-221.json
│   │   │       ├── comp-222.json
│   │   │       ├── comp-223.json
│   │   │       ├── comp-224.json
│   │   │       ├── comp-225.json
│   │   │       ├── comp-226.json
│   │   │       ├── comp-227.json
│   │   │       ├── comp-228.json
│   │   │       ├── comp-229.json
│   │   │       ├── comp-23.json
│   │   │       ├── comp-230.json
│   │   │       ├── comp-231.json
│   │   │       ├── comp-232.json
│   │   │       ├── comp-233.json
│   │   │       ├── comp-234.json
│   │   │       ├── comp-235.json
│   │   │       ├── comp-236.json
│   │   │       ├── comp-237.json
│   │   │       ├── comp-238.json
│   │   │       ├── comp-239.json
│   │   │       ├── comp-24.json
│   │   │       ├── comp-240.json
│   │   │       ├── comp-241.json
│   │   │       ├── comp-242.json
│   │   │       ├── comp-243.json
│   │   │       ├── comp-244.json
│   │   │       ├── comp-245.json
│   │   │       ├── comp-246.json
│   │   │       ├── comp-247.json
│   │   │       ├── comp-248.json
│   │   │       ├── comp-249.json
│   │   │       ├── comp-25.json
│   │   │       ├── comp-250.json
│   │   │       ├── comp-251.json
│   │   │       ├── comp-252.json
│   │   │       ├── comp-253.json
│   │   │       ├── comp-254.json
│   │   │       ├── comp-255.json
│   │   │       ├── comp-256.json
│   │   │       ├── comp-257.json
│   │   │       ├── comp-258.json
│   │   │       ├── comp-259.json
│   │   │       ├── comp-26.json
│   │   │       ├── comp-260.json
│   │   │       ├── comp-261.json
│   │   │       ├── comp-262.json
│   │   │       ├── comp-263.json
│   │   │       ├── comp-264.json
│   │   │       ├── comp-265.json
│   │   │       ├── comp-266.json
│   │   │       ├── comp-267.json
│   │   │       ├── comp-268.json
│   │   │       ├── comp-269.json
│   │   │       ├── comp-27.json
│   │   │       ├── comp-270.json
│   │   │       ├── comp-271.json
│   │   │       ├── comp-272.json
│   │   │       ├── comp-273.json
│   │   │       ├── comp-274.json
│   │   │       ├── comp-275.json
│   │   │       ├── comp-276.json
│   │   │       ├── comp-277.json
│   │   │       ├── comp-278.json
│   │   │       ├── comp-279.json
│   │   │       ├── comp-28.json
│   │   │       ├── comp-280.json
│   │   │       ├── comp-281.json
│   │   │       ├── comp-282.json
│   │   │       ├── comp-283.json
│   │   │       ├── comp-284.json
│   │   │       ├── comp-285.json
│   │   │       ├── comp-286.json
│   │   │       ├── comp-287.json
│   │   │       ├── comp-288.json
│   │   │       ├── comp-289.json
│   │   │       ├── comp-29.json
│   │   │       ├── comp-290.json
│   │   │       ├── comp-291.json
│   │   │       ├── comp-292.json
│   │   │       ├── comp-293.json
│   │   │       ├── comp-294.json
│   │   │       ├── comp-295.json
│   │   │       ├── comp-296.json
│   │   │       ├── comp-297.json
│   │   │       ├── comp-298.json
│   │   │       ├── comp-299.json
│   │   │       ├── comp-30.json
│   │   │       ├── comp-300.json
│   │   │       ├── comp-301.json
│   │   │       ├── comp-302.json
│   │   │       ├── comp-303.json
│   │   │       ├── comp-304.json
│   │   │       ├── comp-305.json
│   │   │       ├── comp-306.json
│   │   │       ├── comp-307.json
│   │   │       ├── comp-308.json
│   │   │       ├── comp-309.json
│   │   │       ├── comp-31.json
│   │   │       ├── comp-310.json
│   │   │       ├── comp-311.json
│   │   │       ├── comp-312.json
│   │   │       ├── comp-313.json
│   │   │       ├── comp-314.json
│   │   │       ├── comp-315.json
│   │   │       ├── comp-316.json
│   │   │       ├── comp-317.json
│   │   │       ├── comp-318.json
│   │   │       ├── comp-319.json
│   │   │       ├── comp-32.json
│   │   │       ├── comp-320.json
│   │   │       ├── comp-321.json
│   │   │       ├── comp-322.json
│   │   │       ├── comp-323.json
│   │   │       ├── comp-324.json
│   │   │       ├── comp-325.json
│   │   │       ├── comp-326.json
│   │   │       ├── comp-327.json
│   │   │       ├── comp-328.json
│   │   │       ├── comp-329.json
│   │   │       ├── comp-33.json
│   │   │       ├── comp-330.json
│   │   │       ├── comp-331.json
│   │   │       ├── comp-332.json
│   │   │       ├── comp-333.json
│   │   │       ├── comp-334.json
│   │   │       ├── comp-335.json
│   │   │       ├── comp-336.json
│   │   │       ├── comp-337.json
│   │   │       ├── comp-338.json
│   │   │       ├── comp-339.json
│   │   │       ├── comp-34.json
│   │   │       ├── comp-340.json
│   │   │       ├── comp-341.json
│   │   │       ├── comp-342.json
│   │   │       ├── comp-343.json
│   │   │       ├── comp-344.json
│   │   │       ├── comp-345.json
│   │   │       ├── comp-346.json
│   │   │       ├── comp-347.json
│   │   │       ├── comp-348.json
│   │   │       ├── comp-349.json
│   │   │       ├── comp-35.json
│   │   │       ├── comp-350.json
│   │   │       ├── comp-351.json
│   │   │       ├── comp-352.json
│   │   │       ├── comp-353.json
│   │   │       ├── comp-354.json
│   │   │       ├── comp-355.json
│   │   │       ├── comp-356.json
│   │   │       ├── comp-357.json
│   │   │       ├── comp-358.json
│   │   │       ├── comp-359.json
│   │   │       ├── comp-36.json
│   │   │       ├── comp-360.json
│   │   │       ├── comp-361.json
│   │   │       ├── comp-362.json
│   │   │       ├── comp-363.json
│   │   │       ├── comp-364.json
│   │   │       ├── comp-365.json
│   │   │       ├── comp-366.json
│   │   │       ├── comp-367.json
│   │   │       ├── comp-368.json
│   │   │       ├── comp-369.json
│   │   │       ├── comp-37.json
│   │   │       ├── comp-370.json
│   │   │       ├── comp-371.json
│   │   │       ├── comp-372.json
│   │   │       ├── comp-373.json
│   │   │       ├── comp-374.json
│   │   │       ├── comp-375.json
│   │   │       ├── comp-376.json
│   │   │       ├── comp-377.json
│   │   │       ├── comp-378.json
│   │   │       ├── comp-379.json
│   │   │       ├── comp-38.json
│   │   │       ├── comp-380.json
│   │   │       ├── comp-381.json
│   │   │       ├── comp-382.json
│   │   │       ├── comp-383.json
│   │   │       ├── comp-384.json
│   │   │       ├── comp-385.json
│   │   │       ├── comp-386.json
│   │   │       ├── comp-387.json
│   │   │       ├── comp-388.json
│   │   │       ├── comp-389.json
│   │   │       ├── comp-39.json
│   │   │       ├── comp-390.json
│   │   │       ├── comp-391.json
│   │   │       ├── comp-392.json
│   │   │       ├── comp-393.json
│   │   │       ├── comp-394.json
│   │   │       ├── comp-395.json
│   │   │       ├── comp-396.json
│   │   │       ├── comp-397.json
│   │   │       ├── comp-398.json
│   │   │       ├── comp-399.json
│   │   │       ├── comp-40.json
│   │   │       ├── comp-400.json
│   │   │       ├── comp-401.json
│   │   │       ├── comp-402.json
│   │   │       ├── comp-403.json
│   │   │       ├── comp-404.json
│   │   │       ├── comp-405.json
│   │   │       ├── comp-406.json
│   │   │       ├── comp-407.json
│   │   │       ├── comp-408.json
│   │   │       ├── comp-409.json
│   │   │       ├── comp-41.json
│   │   │       ├── comp-410.json
│   │   │       ├── comp-411.json
│   │   │       ├── comp-412.json
│   │   │       ├── comp-413.json
│   │   │       ├── comp-414.json
│   │   │       ├── comp-415.json
│   │   │       ├── comp-416.json
│   │   │       ├── comp-417.json
│   │   │       ├── comp-418.json
│   │   │       ├── comp-419.json
│   │   │       ├── comp-42.json
│   │   │       ├── comp-420.json
│   │   │       ├── comp-421.json
│   │   │       ├── comp-422.json
│   │   │       ├── comp-423.json
│   │   │       ├── comp-424.json
│   │   │       ├── comp-425.json
│   │   │       ├── comp-426.json
│   │   │       ├── comp-427.json
│   │   │       ├── comp-428.json
│   │   │       ├── comp-429.json
│   │   │       ├── comp-43.json
│   │   │       ├── comp-430.json
│   │   │       ├── comp-431.json
│   │   │       ├── comp-432.json
│   │   │       ├── comp-433.json
│   │   │       ├── comp-434.json
│   │   │       ├── comp-435.json
│   │   │       ├── comp-436.json
│   │   │       ├── comp-437.json
│   │   │       ├── comp-438.json
│   │   │       ├── comp-439.json
│   │   │       ├── comp-44.json
│   │   │       ├── comp-440.json
│   │   │       ├── comp-441.json
│   │   │       ├── comp-442.json
│   │   │       ├── comp-443.json
│   │   │       ├── comp-444.json
│   │   │       ├── comp-445.json
│   │   │       ├── comp-446.json
│   │   │       ├── comp-447.json
│   │   │       ├── comp-448.json
│   │   │       ├── comp-449.json
│   │   │       ├── comp-45.json
│   │   │       ├── comp-450.json
│   │   │       ├── comp-451.json
│   │   │       ├── comp-452.json
│   │   │       ├── comp-453.json
│   │   │       ├── comp-454.json
│   │   │       ├── comp-455.json
│   │   │       ├── comp-456.json
│   │   │       ├── comp-457.json
│   │   │       ├── comp-458.json
│   │   │       ├── comp-459.json
│   │   │       ├── comp-46.json
│   │   │       ├── comp-460.json
│   │   │       ├── comp-461.json
│   │   │       ├── comp-462.json
│   │   │       ├── comp-463.json
│   │   │       ├── comp-464.json
│   │   │       ├── comp-465.json
│   │   │       ├── comp-466.json
│   │   │       ├── comp-467.json
│   │   │       ├── comp-468.json
│   │   │       ├── comp-469.json
│   │   │       ├── comp-47.json
│   │   │       ├── comp-470.json
│   │   │       ├── comp-471.json
│   │   │       ├── comp-472.json
│   │   │       ├── comp-473.json
│   │   │       ├── comp-474.json
│   │   │       ├── comp-475.json
│   │   │       ├── comp-476.json
│   │   │       ├── comp-477.json
│   │   │       ├── comp-478.json
│   │   │       ├── comp-479.json
│   │   │       ├── comp-48.json
│   │   │       ├── comp-480.json
│   │   │       ├── comp-481.json
│   │   │       ├── comp-482.json
│   │   │       ├── comp-483.json
│   │   │       ├── comp-484.json
│   │   │       ├── comp-485.json
│   │   │       ├── comp-486.json
│   │   │       ├── comp-487.json
│   │   │       ├── comp-488.json
│   │   │       ├── comp-489.json
│   │   │       ├── comp-49.json
│   │   │       ├── comp-490.json
│   │   │       ├── comp-491.json
│   │   │       ├── comp-492.json
│   │   │       ├── comp-493.json
│   │   │       ├── comp-494.json
│   │   │       ├── comp-495.json
│   │   │       ├── comp-496.json
│   │   │       ├── comp-497.json
│   │   │       ├── comp-498.json
│   │   │       ├── comp-499.json
│   │   │       ├── comp-50.json
│   │   │       ├── comp-500.json
│   │   │       ├── comp-501.json
│   │   │       ├── comp-502.json
│   │   │       ├── comp-503.json
│   │   │       ├── comp-504.json
│   │   │       ├── comp-505.json
│   │   │       ├── comp-506.json
│   │   │       ├── comp-507.json
│   │   │       ├── comp-508.json
│   │   │       ├── comp-509.json
│   │   │       ├── comp-51.json
│   │   │       ├── comp-510.json
│   │   │       ├── comp-511.json
│   │   │       ├── comp-512.json
│   │   │       ├── comp-513.json
│   │   │       ├── comp-514.json
│   │   │       ├── comp-515.json
│   │   │       ├── comp-516.json
│   │   │       ├── comp-517.json
│   │   │       ├── comp-518.json
│   │   │       ├── comp-519.json
│   │   │       ├── comp-52.json
│   │   │       ├── comp-520.json
│   │   │       ├── comp-521.json
│   │   │       ├── comp-522.json
│   │   │       ├── comp-523.json
│   │   │       ├── comp-524.json
│   │   │       ├── comp-525.json
│   │   │       ├── comp-526.json
│   │   │       ├── comp-527.json
│   │   │       ├── comp-528.json
│   │   │       ├── comp-529.json
│   │   │       ├── comp-53.json
│   │   │       ├── comp-530.json
│   │   │       ├── comp-531.json
│   │   │       ├── comp-532.json
│   │   │       ├── comp-533.json
│   │   │       ├── comp-534.json
│   │   │       ├── comp-535.json
│   │   │       ├── comp-536.json
│   │   │       ├── comp-537.json
│   │   │       ├── comp-538.json
│   │   │       ├── comp-539.json
│   │   │       ├── comp-54.json
│   │   │       ├── comp-540.json
│   │   │       ├── comp-541.json
│   │   │       ├── comp-542.json
│   │   │       ├── comp-543.json
│   │   │       ├── comp-544.json
│   │   │       ├── comp-545.json
│   │   │       ├── comp-546.json
│   │   │       ├── comp-547.json
│   │   │       ├── comp-548.json
│   │   │       ├── comp-549.json
│   │   │       ├── comp-55.json
│   │   │       ├── comp-550.json
│   │   │       ├── comp-551.json
│   │   │       ├── comp-552.json
│   │   │       ├── comp-553.json
│   │   │       ├── comp-554.json
│   │   │       ├── comp-555.json
│   │   │       ├── comp-556.json
│   │   │       ├── comp-557.json
│   │   │       ├── comp-558.json
│   │   │       ├── comp-559.json
│   │   │       ├── comp-56.json
│   │   │       ├── comp-560.json
│   │   │       ├── comp-561.json
│   │   │       ├── comp-562.json
│   │   │       ├── comp-563.json
│   │   │       ├── comp-564.json
│   │   │       ├── comp-565.json
│   │   │       ├── comp-566.json
│   │   │       ├── comp-567.json
│   │   │       ├── comp-568.json
│   │   │       ├── comp-569.json
│   │   │       ├── comp-57.json
│   │   │       ├── comp-570.json
│   │   │       ├── comp-571.json
│   │   │       ├── comp-572.json
│   │   │       ├── comp-573.json
│   │   │       ├── comp-574.json
│   │   │       ├── comp-575.json
│   │   │       ├── comp-576.json
│   │   │       ├── comp-577.json
│   │   │       ├── comp-578.json
│   │   │       ├── comp-579.json
│   │   │       ├── comp-58.json
│   │   │       ├── comp-580.json
│   │   │       ├── comp-581.json
│   │   │       ├── comp-582.json
│   │   │       ├── comp-583.json
│   │   │       ├── comp-584.json
│   │   │       ├── comp-585.json
│   │   │       ├── comp-586.json
│   │   │       ├── comp-587.json
│   │   │       ├── comp-588.json
│   │   │       ├── comp-589.json
│   │   │       ├── comp-59.json
│   │   │       ├── comp-590.json
│   │   │       ├── comp-591.json
│   │   │       ├── comp-592.json
│   │   │       ├── comp-593.json
│   │   │       ├── comp-594.json
│   │   │       ├── comp-595.json
│   │   │       ├── comp-596.json
│   │   │       ├── comp-597.json
│   │   │       ├── comp-598.json
│   │   │       ├── comp-599.json
│   │   │       ├── comp-60.json
│   │   │       ├── comp-61.json
│   │   │       ├── comp-62.json
│   │   │       ├── comp-63.json
│   │   │       ├── comp-64.json
│   │   │       ├── comp-65.json
│   │   │       ├── comp-66.json
│   │   │       ├── comp-67.json
│   │   │       ├── comp-68.json
│   │   │       ├── comp-69.json
│   │   │       ├── comp-70.json
│   │   │       ├── comp-71.json
│   │   │       ├── comp-72.json
│   │   │       ├── comp-73.json
│   │   │       ├── comp-74.json
│   │   │       ├── comp-75.json
│   │   │       ├── comp-76.json
│   │   │       ├── comp-77.json
│   │   │       ├── comp-78.json
│   │   │       ├── comp-79.json
│   │   │       ├── comp-80.json
│   │   │       ├── comp-81.json
│   │   │       ├── comp-82.json
│   │   │       ├── comp-83.json
│   │   │       ├── comp-84.json
│   │   │       ├── comp-85.json
│   │   │       ├── comp-86.json
│   │   │       ├── comp-87.json
│   │   │       ├── comp-88.json
│   │   │       ├── comp-89.json
│   │   │       ├── comp-90.json
│   │   │       ├── comp-91.json
│   │   │       ├── comp-92.json
│   │   │       ├── comp-93.json
│   │   │       ├── comp-94.json
│   │   │       ├── comp-95.json
│   │   │       ├── comp-96.json
│   │   │       ├── comp-97.json
│   │   │       ├── comp-98.json
│   │   │       ├── comp-99.json
│   │   │       ├── cropper.json
│   │   │       ├── datefield-rac.json
│   │   │       ├── dialog.json
│   │   │       ├── dropdown-menu.json
│   │   │       ├── hover-card.json
│   │   │       ├── input.json
│   │   │       ├── label.json
│   │   │       ├── multiselect.json
│   │   │       ├── navigation-menu.json
│   │   │       ├── pagination.json
│   │   │       ├── popover.json
│   │   │       ├── progress.json
│   │   │       ├── radio-group.json
│   │   │       ├── scroll-area.json
│   │   │       ├── select-native.json
│   │   │       ├── select.json
│   │   │       ├── slider.json
│   │   │       ├── sonner.json
│   │   │       ├── stepper.json
│   │   │       ├── switch.json
│   │   │       ├── table.json
│   │   │       ├── tabs.json
│   │   │       ├── textarea.json
│   │   │       ├── timeline.json
│   │   │       ├── toast.json
│   │   │       ├── toggle-group.json
│   │   │       ├── toggle.json
│   │   │       ├── tooltip.json
│   │   │       ├── tree.json
│   │   │       ├── use-character-limit.json
│   │   │       ├── use-file-upload.json
│   │   │       ├── use-pagination.json
│   │   │       ├── use-slider-with-input.json
│   │   │       ├── use-toast.json
│   │   │       └── utils.json
│   │   ├── registry/
│   │   │   ├── default/
│   │   │   │   ├── components/
│   │   │   │   │   ├── comp-01.tsx
│   │   │   │   │   ├── comp-02.tsx
│   │   │   │   │   ├── comp-03.tsx
│   │   │   │   │   ├── comp-04.tsx
│   │   │   │   │   ├── comp-05.tsx
│   │   │   │   │   ├── comp-06.tsx
│   │   │   │   │   ├── comp-07.tsx
│   │   │   │   │   ├── comp-08.tsx
│   │   │   │   │   ├── comp-09.tsx
│   │   │   │   │   ├── comp-10.tsx
│   │   │   │   │   ├── comp-100.tsx
│   │   │   │   │   ├── comp-101.tsx
│   │   │   │   │   ├── comp-102.tsx
│   │   │   │   │   ├── comp-103.tsx
│   │   │   │   │   ├── comp-104.tsx
│   │   │   │   │   ├── comp-105.tsx
│   │   │   │   │   ├── comp-106.tsx
│   │   │   │   │   ├── comp-107.tsx
│   │   │   │   │   ├── comp-108.tsx
│   │   │   │   │   ├── comp-109.tsx
│   │   │   │   │   ├── comp-11.tsx
│   │   │   │   │   ├── comp-110.tsx
│   │   │   │   │   ├── comp-111.tsx
│   │   │   │   │   ├── comp-112.tsx
│   │   │   │   │   ├── comp-113.tsx
│   │   │   │   │   ├── comp-114.tsx
│   │   │   │   │   ├── comp-115.tsx
│   │   │   │   │   ├── comp-116.tsx
│   │   │   │   │   ├── comp-117.tsx
│   │   │   │   │   ├── comp-118.tsx
│   │   │   │   │   ├── comp-119.tsx
│   │   │   │   │   ├── comp-12.tsx
│   │   │   │   │   ├── comp-120.tsx
│   │   │   │   │   ├── comp-121.tsx
│   │   │   │   │   ├── comp-122.tsx
│   │   │   │   │   ├── comp-123.tsx
│   │   │   │   │   ├── comp-124.tsx
│   │   │   │   │   ├── comp-125.tsx
│   │   │   │   │   ├── comp-126.tsx
│   │   │   │   │   ├── comp-127.tsx
│   │   │   │   │   ├── comp-128.tsx
│   │   │   │   │   ├── comp-129.tsx
│   │   │   │   │   ├── comp-13.tsx
│   │   │   │   │   ├── comp-130.tsx
│   │   │   │   │   ├── comp-131.tsx
│   │   │   │   │   ├── comp-132.tsx
│   │   │   │   │   ├── comp-133.tsx
│   │   │   │   │   ├── comp-134.tsx
│   │   │   │   │   ├── comp-135.tsx
│   │   │   │   │   ├── comp-136.tsx
│   │   │   │   │   ├── comp-137.tsx
│   │   │   │   │   ├── comp-138.tsx
│   │   │   │   │   ├── comp-139.tsx
│   │   │   │   │   ├── comp-14.tsx
│   │   │   │   │   ├── comp-140.tsx
│   │   │   │   │   ├── comp-141.tsx
│   │   │   │   │   ├── comp-142.tsx
│   │   │   │   │   ├── comp-143.tsx
│   │   │   │   │   ├── comp-144.tsx
│   │   │   │   │   ├── comp-145.tsx
│   │   │   │   │   ├── comp-146.tsx
│   │   │   │   │   ├── comp-147.tsx
│   │   │   │   │   ├── comp-148.tsx
│   │   │   │   │   ├── comp-149.tsx
│   │   │   │   │   ├── comp-15.tsx
│   │   │   │   │   ├── comp-150.tsx
│   │   │   │   │   ├── comp-151.tsx
│   │   │   │   │   ├── comp-152.tsx
│   │   │   │   │   ├── comp-153.tsx
│   │   │   │   │   ├── comp-154.tsx
│   │   │   │   │   ├── comp-155.tsx
│   │   │   │   │   ├── comp-156.tsx
│   │   │   │   │   ├── comp-157.tsx
│   │   │   │   │   ├── comp-158.tsx
│   │   │   │   │   ├── comp-159.tsx
│   │   │   │   │   ├── comp-16.tsx
│   │   │   │   │   ├── comp-160.tsx
│   │   │   │   │   ├── comp-161.tsx
│   │   │   │   │   ├── comp-162.tsx
│   │   │   │   │   ├── comp-163.tsx
│   │   │   │   │   ├── comp-164.tsx
│   │   │   │   │   ├── comp-165.tsx
│   │   │   │   │   ├── comp-166.tsx
│   │   │   │   │   ├── comp-167.tsx
│   │   │   │   │   ├── comp-168.tsx
│   │   │   │   │   ├── comp-169.tsx
│   │   │   │   │   ├── comp-17.tsx
│   │   │   │   │   ├── comp-170.tsx
│   │   │   │   │   ├── comp-171.tsx
│   │   │   │   │   ├── comp-172.tsx
│   │   │   │   │   ├── comp-173.tsx
│   │   │   │   │   ├── comp-174.tsx
│   │   │   │   │   ├── comp-175.tsx
│   │   │   │   │   ├── comp-176.tsx
│   │   │   │   │   ├── comp-177.tsx
│   │   │   │   │   ├── comp-178.tsx
│   │   │   │   │   ├── comp-179.tsx
│   │   │   │   │   ├── comp-18.tsx
│   │   │   │   │   ├── comp-180.tsx
│   │   │   │   │   ├── comp-181.tsx
│   │   │   │   │   ├── comp-182.tsx
│   │   │   │   │   ├── comp-183.tsx
│   │   │   │   │   ├── comp-184.tsx
│   │   │   │   │   ├── comp-185.tsx
│   │   │   │   │   ├── comp-186.tsx
│   │   │   │   │   ├── comp-187.tsx
│   │   │   │   │   ├── comp-188.tsx
│   │   │   │   │   ├── comp-189.tsx
│   │   │   │   │   ├── comp-19.tsx
│   │   │   │   │   ├── comp-190.tsx
│   │   │   │   │   ├── comp-191.tsx
│   │   │   │   │   ├── comp-192.tsx
│   │   │   │   │   ├── comp-193.tsx
│   │   │   │   │   ├── comp-194.tsx
│   │   │   │   │   ├── comp-195.tsx
│   │   │   │   │   ├── comp-196.tsx
│   │   │   │   │   ├── comp-197.tsx
│   │   │   │   │   ├── comp-198.tsx
│   │   │   │   │   ├── comp-199.tsx
│   │   │   │   │   ├── comp-20.tsx
│   │   │   │   │   ├── comp-200.tsx
│   │   │   │   │   ├── comp-201.tsx
│   │   │   │   │   ├── comp-202.tsx
│   │   │   │   │   ├── comp-203.tsx
│   │   │   │   │   ├── comp-204.tsx
│   │   │   │   │   ├── comp-205.tsx
│   │   │   │   │   ├── comp-206.tsx
│   │   │   │   │   ├── comp-207.tsx
│   │   │   │   │   ├── comp-208.tsx
│   │   │   │   │   ├── comp-209.tsx
│   │   │   │   │   ├── comp-21.tsx
│   │   │   │   │   ├── comp-210.tsx
│   │   │   │   │   ├── comp-211.tsx
│   │   │   │   │   ├── comp-212.tsx
│   │   │   │   │   ├── comp-213.tsx
│   │   │   │   │   ├── comp-214.tsx
│   │   │   │   │   ├── comp-215.tsx
│   │   │   │   │   ├── comp-216.tsx
│   │   │   │   │   ├── comp-217.tsx
│   │   │   │   │   ├── comp-218.tsx
│   │   │   │   │   ├── comp-219.tsx
│   │   │   │   │   ├── comp-22.tsx
│   │   │   │   │   ├── comp-220.tsx
│   │   │   │   │   ├── comp-221.tsx
│   │   │   │   │   ├── comp-222.tsx
│   │   │   │   │   ├── comp-223.tsx
│   │   │   │   │   ├── comp-224.tsx
│   │   │   │   │   ├── comp-225.tsx
│   │   │   │   │   ├── comp-226.tsx
│   │   │   │   │   ├── comp-227.tsx
│   │   │   │   │   ├── comp-228.tsx
│   │   │   │   │   ├── comp-229.tsx
│   │   │   │   │   ├── comp-23.tsx
│   │   │   │   │   ├── comp-230.tsx
│   │   │   │   │   ├── comp-231.tsx
│   │   │   │   │   ├── comp-232.tsx
│   │   │   │   │   ├── comp-233.tsx
│   │   │   │   │   ├── comp-234.tsx
│   │   │   │   │   ├── comp-235.tsx
│   │   │   │   │   ├── comp-236.tsx
│   │   │   │   │   ├── comp-237.tsx
│   │   │   │   │   ├── comp-238.tsx
│   │   │   │   │   ├── comp-239.tsx
│   │   │   │   │   ├── comp-24.tsx
│   │   │   │   │   ├── comp-240.tsx
│   │   │   │   │   ├── comp-241.tsx
│   │   │   │   │   ├── comp-242.tsx
│   │   │   │   │   ├── comp-243.tsx
│   │   │   │   │   ├── comp-244.tsx
│   │   │   │   │   ├── comp-245.tsx
│   │   │   │   │   ├── comp-246.tsx
│   │   │   │   │   ├── comp-247.tsx
│   │   │   │   │   ├── comp-248.tsx
│   │   │   │   │   ├── comp-249.tsx
│   │   │   │   │   ├── comp-25.tsx
│   │   │   │   │   ├── comp-250.tsx
│   │   │   │   │   ├── comp-251.tsx
│   │   │   │   │   ├── comp-252.tsx
│   │   │   │   │   ├── comp-253.tsx
│   │   │   │   │   ├── comp-254.tsx
│   │   │   │   │   ├── comp-255.tsx
│   │   │   │   │   ├── comp-256.tsx
│   │   │   │   │   ├── comp-257.tsx
│   │   │   │   │   ├── comp-258.tsx
│   │   │   │   │   ├── comp-259.tsx
│   │   │   │   │   ├── comp-26.tsx
│   │   │   │   │   ├── comp-260.tsx
│   │   │   │   │   ├── comp-261.tsx
│   │   │   │   │   ├── comp-262.tsx
│   │   │   │   │   ├── comp-263.tsx
│   │   │   │   │   ├── comp-264.tsx
│   │   │   │   │   ├── comp-265.tsx
│   │   │   │   │   ├── comp-266.tsx
│   │   │   │   │   ├── comp-267.tsx
│   │   │   │   │   ├── comp-268.tsx
│   │   │   │   │   ├── comp-269.tsx
│   │   │   │   │   ├── comp-27.tsx
│   │   │   │   │   ├── comp-270.tsx
│   │   │   │   │   ├── comp-271.tsx
│   │   │   │   │   ├── comp-272.tsx
│   │   │   │   │   ├── comp-273.tsx
│   │   │   │   │   ├── comp-274.tsx
│   │   │   │   │   ├── comp-275.tsx
│   │   │   │   │   ├── comp-276.tsx
│   │   │   │   │   ├── comp-277.tsx
│   │   │   │   │   ├── comp-278.tsx
│   │   │   │   │   ├── comp-279.tsx
│   │   │   │   │   ├── comp-28.tsx
│   │   │   │   │   ├── comp-280.tsx
│   │   │   │   │   ├── comp-281.tsx
│   │   │   │   │   ├── comp-282.tsx
│   │   │   │   │   ├── comp-283.tsx
│   │   │   │   │   ├── comp-284.tsx
│   │   │   │   │   ├── comp-285.tsx
│   │   │   │   │   ├── comp-286.tsx
│   │   │   │   │   ├── comp-287.tsx
│   │   │   │   │   ├── comp-288.tsx
│   │   │   │   │   ├── comp-289.tsx
│   │   │   │   │   ├── comp-29.tsx
│   │   │   │   │   ├── comp-290.tsx
│   │   │   │   │   ├── comp-291.tsx
│   │   │   │   │   ├── comp-292.tsx
│   │   │   │   │   ├── comp-293.tsx
│   │   │   │   │   ├── comp-294.tsx
│   │   │   │   │   ├── comp-295.tsx
│   │   │   │   │   ├── comp-296.tsx
│   │   │   │   │   ├── comp-297.tsx
│   │   │   │   │   ├── comp-298.tsx
│   │   │   │   │   ├── comp-299.tsx
│   │   │   │   │   ├── comp-30.tsx
│   │   │   │   │   ├── comp-300.tsx
│   │   │   │   │   ├── comp-301.tsx
│   │   │   │   │   ├── comp-302.tsx
│   │   │   │   │   ├── comp-303.tsx
│   │   │   │   │   ├── comp-304.tsx
│   │   │   │   │   ├── comp-305.tsx
│   │   │   │   │   ├── comp-306.tsx
│   │   │   │   │   ├── comp-307.tsx
│   │   │   │   │   ├── comp-308.tsx
│   │   │   │   │   ├── comp-309.tsx
│   │   │   │   │   ├── comp-31.tsx
│   │   │   │   │   ├── comp-310.tsx
│   │   │   │   │   ├── comp-311.tsx
│   │   │   │   │   ├── comp-312.tsx
│   │   │   │   │   ├── comp-313.tsx
│   │   │   │   │   ├── comp-314.tsx
│   │   │   │   │   ├── comp-315.tsx
│   │   │   │   │   ├── comp-316.tsx
│   │   │   │   │   ├── comp-317.tsx
│   │   │   │   │   ├── comp-318.tsx
│   │   │   │   │   ├── comp-319.tsx
│   │   │   │   │   ├── comp-32.tsx
│   │   │   │   │   ├── comp-320.tsx
│   │   │   │   │   ├── comp-321.tsx
│   │   │   │   │   ├── comp-322.tsx
│   │   │   │   │   ├── comp-323.tsx
│   │   │   │   │   ├── comp-324.tsx
│   │   │   │   │   ├── comp-325.tsx
│   │   │   │   │   ├── comp-326.tsx
│   │   │   │   │   ├── comp-327.tsx
│   │   │   │   │   ├── comp-328.tsx
│   │   │   │   │   ├── comp-329.tsx
│   │   │   │   │   ├── comp-33.tsx
│   │   │   │   │   ├── comp-330.tsx
│   │   │   │   │   ├── comp-331.tsx
│   │   │   │   │   ├── comp-332.tsx
│   │   │   │   │   ├── comp-333.tsx
│   │   │   │   │   ├── comp-334.tsx
│   │   │   │   │   ├── comp-335.tsx
│   │   │   │   │   ├── comp-336.tsx
│   │   │   │   │   ├── comp-337.tsx
│   │   │   │   │   ├── comp-338.tsx
│   │   │   │   │   ├── comp-339.tsx
│   │   │   │   │   ├── comp-34.tsx
│   │   │   │   │   ├── comp-340.tsx
│   │   │   │   │   ├── comp-341.tsx
│   │   │   │   │   ├── comp-342.tsx
│   │   │   │   │   ├── comp-343.tsx
│   │   │   │   │   ├── comp-344.tsx
│   │   │   │   │   ├── comp-345.tsx
│   │   │   │   │   ├── comp-346.tsx
│   │   │   │   │   ├── comp-347.tsx
│   │   │   │   │   ├── comp-348.tsx
│   │   │   │   │   ├── comp-349.tsx
│   │   │   │   │   ├── comp-35.tsx
│   │   │   │   │   ├── comp-350.tsx
│   │   │   │   │   ├── comp-351.tsx
│   │   │   │   │   ├── comp-352.tsx
│   │   │   │   │   ├── comp-353.tsx
│   │   │   │   │   ├── comp-354.tsx
│   │   │   │   │   ├── comp-355.tsx
│   │   │   │   │   ├── comp-356.tsx
│   │   │   │   │   ├── comp-357.tsx
│   │   │   │   │   ├── comp-358.tsx
│   │   │   │   │   ├── comp-359.tsx
│   │   │   │   │   ├── comp-36.tsx
│   │   │   │   │   ├── comp-360.tsx
│   │   │   │   │   ├── comp-361.tsx
│   │   │   │   │   ├── comp-362.tsx
│   │   │   │   │   ├── comp-363.tsx
│   │   │   │   │   ├── comp-364.tsx
│   │   │   │   │   ├── comp-365.tsx
│   │   │   │   │   ├── comp-366.tsx
│   │   │   │   │   ├── comp-367.tsx
│   │   │   │   │   ├── comp-368.tsx
│   │   │   │   │   ├── comp-369.tsx
│   │   │   │   │   ├── comp-37.tsx
│   │   │   │   │   ├── comp-370.tsx
│   │   │   │   │   ├── comp-371.tsx
│   │   │   │   │   ├── comp-372.tsx
│   │   │   │   │   ├── comp-373.tsx
│   │   │   │   │   ├── comp-374.tsx
│   │   │   │   │   ├── comp-375.tsx
│   │   │   │   │   ├── comp-376.tsx
│   │   │   │   │   ├── comp-377.tsx
│   │   │   │   │   ├── comp-378.tsx
│   │   │   │   │   ├── comp-379.tsx
│   │   │   │   │   ├── comp-38.tsx
│   │   │   │   │   ├── comp-380.tsx
│   │   │   │   │   ├── comp-381.tsx
│   │   │   │   │   ├── comp-382.tsx
│   │   │   │   │   ├── comp-383.tsx
│   │   │   │   │   ├── comp-384.tsx
│   │   │   │   │   ├── comp-385.tsx
│   │   │   │   │   ├── comp-386.tsx
│   │   │   │   │   ├── comp-387.tsx
│   │   │   │   │   ├── comp-388.tsx
│   │   │   │   │   ├── comp-389.tsx
│   │   │   │   │   ├── comp-39.tsx
│   │   │   │   │   ├── comp-390.tsx
│   │   │   │   │   ├── comp-391.tsx
│   │   │   │   │   ├── comp-392.tsx
│   │   │   │   │   ├── comp-393.tsx
│   │   │   │   │   ├── comp-394.tsx
│   │   │   │   │   ├── comp-395.tsx
│   │   │   │   │   ├── comp-396.tsx
│   │   │   │   │   ├── comp-397.tsx
│   │   │   │   │   ├── comp-398.tsx
│   │   │   │   │   ├── comp-399.tsx
│   │   │   │   │   ├── comp-40.tsx
│   │   │   │   │   ├── comp-400.tsx
│   │   │   │   │   ├── comp-401.tsx
│   │   │   │   │   ├── comp-402.tsx
│   │   │   │   │   ├── comp-403.tsx
│   │   │   │   │   ├── comp-404.tsx
│   │   │   │   │   ├── comp-405.tsx
│   │   │   │   │   ├── comp-406.tsx
│   │   │   │   │   ├── comp-407.tsx
│   │   │   │   │   ├── comp-408.tsx
│   │   │   │   │   ├── comp-409.tsx
│   │   │   │   │   ├── comp-41.tsx
│   │   │   │   │   ├── comp-410.tsx
│   │   │   │   │   ├── comp-411.tsx
│   │   │   │   │   ├── comp-412.tsx
│   │   │   │   │   ├── comp-413.tsx
│   │   │   │   │   ├── comp-414.tsx
│   │   │   │   │   ├── comp-415.tsx
│   │   │   │   │   ├── comp-416.tsx
│   │   │   │   │   ├── comp-417.tsx
│   │   │   │   │   ├── comp-418.tsx
│   │   │   │   │   ├── comp-419.tsx
│   │   │   │   │   ├── comp-42.tsx
│   │   │   │   │   ├── comp-420.tsx
│   │   │   │   │   ├── comp-421.tsx
│   │   │   │   │   ├── comp-422.tsx
│   │   │   │   │   ├── comp-423.tsx
│   │   │   │   │   ├── comp-424.tsx
│   │   │   │   │   ├── comp-425.tsx
│   │   │   │   │   ├── comp-426.tsx
│   │   │   │   │   ├── comp-427.tsx
│   │   │   │   │   ├── comp-428.tsx
│   │   │   │   │   ├── comp-429.tsx
│   │   │   │   │   ├── comp-43.tsx
│   │   │   │   │   ├── comp-430.tsx
│   │   │   │   │   ├── comp-431.tsx
│   │   │   │   │   ├── comp-432.tsx
│   │   │   │   │   ├── comp-433.tsx
│   │   │   │   │   ├── comp-434.tsx
│   │   │   │   │   ├── comp-435.tsx
│   │   │   │   │   ├── comp-436.tsx
│   │   │   │   │   ├── comp-437.tsx
│   │   │   │   │   ├── comp-438.tsx
│   │   │   │   │   ├── comp-439.tsx
│   │   │   │   │   ├── comp-44.tsx
│   │   │   │   │   ├── comp-440.tsx
│   │   │   │   │   ├── comp-441.tsx
│   │   │   │   │   ├── comp-442.tsx
│   │   │   │   │   ├── comp-443.tsx
│   │   │   │   │   ├── comp-444.tsx
│   │   │   │   │   ├── comp-445.tsx
│   │   │   │   │   ├── comp-446.tsx
│   │   │   │   │   ├── comp-447.tsx
│   │   │   │   │   ├── comp-448.tsx
│   │   │   │   │   ├── comp-449.tsx
│   │   │   │   │   ├── comp-45.tsx
│   │   │   │   │   ├── comp-450.tsx
│   │   │   │   │   ├── comp-451.tsx
│   │   │   │   │   ├── comp-452.tsx
│   │   │   │   │   ├── comp-453.tsx
│   │   │   │   │   ├── comp-454.tsx
│   │   │   │   │   ├── comp-455.tsx
│   │   │   │   │   ├── comp-456.tsx
│   │   │   │   │   ├── comp-457.tsx
│   │   │   │   │   ├── comp-458.tsx
│   │   │   │   │   ├── comp-459.tsx
│   │   │   │   │   ├── comp-46.tsx
│   │   │   │   │   ├── comp-460.tsx
│   │   │   │   │   ├── comp-461.tsx
│   │   │   │   │   ├── comp-462.tsx
│   │   │   │   │   ├── comp-463.tsx
│   │   │   │   │   ├── comp-464.tsx
│   │   │   │   │   ├── comp-465.tsx
│   │   │   │   │   ├── comp-466.tsx
│   │   │   │   │   ├── comp-467.tsx
│   │   │   │   │   ├── comp-468.tsx
│   │   │   │   │   ├── comp-469.tsx
│   │   │   │   │   ├── comp-47.tsx
│   │   │   │   │   ├── comp-470.tsx
│   │   │   │   │   ├── comp-471.tsx
│   │   │   │   │   ├── comp-472.tsx
│   │   │   │   │   ├── comp-473.tsx
│   │   │   │   │   ├── comp-474.tsx
│   │   │   │   │   ├── comp-475.tsx
│   │   │   │   │   ├── comp-476.tsx
│   │   │   │   │   ├── comp-477.tsx
│   │   │   │   │   ├── comp-478.tsx
│   │   │   │   │   ├── comp-479.tsx
│   │   │   │   │   ├── comp-48.tsx
│   │   │   │   │   ├── comp-480.tsx
│   │   │   │   │   ├── comp-481.tsx
│   │   │   │   │   ├── comp-482.tsx
│   │   │   │   │   ├── comp-483.tsx
│   │   │   │   │   ├── comp-484.tsx
│   │   │   │   │   ├── comp-485.tsx
│   │   │   │   │   ├── comp-486.tsx
│   │   │   │   │   ├── comp-487.tsx
│   │   │   │   │   ├── comp-488.tsx
│   │   │   │   │   ├── comp-489.tsx
│   │   │   │   │   ├── comp-49.tsx
│   │   │   │   │   ├── comp-490.tsx
│   │   │   │   │   ├── comp-491.tsx
│   │   │   │   │   ├── comp-492.tsx
│   │   │   │   │   ├── comp-493.tsx
│   │   │   │   │   ├── comp-494.tsx
│   │   │   │   │   ├── comp-495.tsx
│   │   │   │   │   ├── comp-496.tsx
│   │   │   │   │   ├── comp-497.tsx
│   │   │   │   │   ├── comp-498.tsx
│   │   │   │   │   ├── comp-499.tsx
│   │   │   │   │   ├── comp-50.tsx
│   │   │   │   │   ├── comp-500.tsx
│   │   │   │   │   ├── comp-501.tsx
│   │   │   │   │   ├── comp-502.tsx
│   │   │   │   │   ├── comp-503.tsx
│   │   │   │   │   ├── comp-504.tsx
│   │   │   │   │   ├── comp-505.tsx
│   │   │   │   │   ├── comp-506.tsx
│   │   │   │   │   ├── comp-507.tsx
│   │   │   │   │   ├── comp-508.tsx
│   │   │   │   │   ├── comp-509.tsx
│   │   │   │   │   ├── comp-51.tsx
│   │   │   │   │   ├── comp-510.tsx
│   │   │   │   │   ├── comp-511.tsx
│   │   │   │   │   ├── comp-512.tsx
│   │   │   │   │   ├── comp-513.tsx
│   │   │   │   │   ├── comp-514.tsx
│   │   │   │   │   ├── comp-515.tsx
│   │   │   │   │   ├── comp-516.tsx
│   │   │   │   │   ├── comp-517.tsx
│   │   │   │   │   ├── comp-518.tsx
│   │   │   │   │   ├── comp-519.tsx
│   │   │   │   │   ├── comp-52.tsx
│   │   │   │   │   ├── comp-520.tsx
│   │   │   │   │   ├── comp-521.tsx
│   │   │   │   │   ├── comp-522.tsx
│   │   │   │   │   ├── comp-523.tsx
│   │   │   │   │   ├── comp-524.tsx
│   │   │   │   │   ├── comp-525.tsx
│   │   │   │   │   ├── comp-526.tsx
│   │   │   │   │   ├── comp-527.tsx
│   │   │   │   │   ├── comp-528.tsx
│   │   │   │   │   ├── comp-529.tsx
│   │   │   │   │   ├── comp-53.tsx
│   │   │   │   │   ├── comp-530.tsx
│   │   │   │   │   ├── comp-531.tsx
│   │   │   │   │   ├── comp-532.tsx
│   │   │   │   │   ├── comp-533.tsx
│   │   │   │   │   ├── comp-534.tsx
│   │   │   │   │   ├── comp-535.tsx
│   │   │   │   │   ├── comp-536.tsx
│   │   │   │   │   ├── comp-537.tsx
│   │   │   │   │   ├── comp-538.tsx
│   │   │   │   │   ├── comp-539.tsx
│   │   │   │   │   ├── comp-54.tsx
│   │   │   │   │   ├── comp-540.tsx
│   │   │   │   │   ├── comp-541.tsx
│   │   │   │   │   ├── comp-542.tsx
│   │   │   │   │   ├── comp-543.tsx
│   │   │   │   │   ├── comp-544.tsx
│   │   │   │   │   ├── comp-545.tsx
│   │   │   │   │   ├── comp-546.tsx
│   │   │   │   │   ├── comp-547.tsx
│   │   │   │   │   ├── comp-548.tsx
│   │   │   │   │   ├── comp-549.tsx
│   │   │   │   │   ├── comp-55.tsx
│   │   │   │   │   ├── comp-550.tsx
│   │   │   │   │   ├── comp-551.tsx
│   │   │   │   │   ├── comp-552.tsx
│   │   │   │   │   ├── comp-553.tsx
│   │   │   │   │   ├── comp-554.tsx
│   │   │   │   │   ├── comp-555.tsx
│   │   │   │   │   ├── comp-556.tsx
│   │   │   │   │   ├── comp-557.tsx
│   │   │   │   │   ├── comp-558.tsx
│   │   │   │   │   ├── comp-559.tsx
│   │   │   │   │   ├── comp-56.tsx
│   │   │   │   │   ├── comp-560.tsx
│   │   │   │   │   ├── comp-561.tsx
│   │   │   │   │   ├── comp-562.tsx
│   │   │   │   │   ├── comp-563.tsx
│   │   │   │   │   ├── comp-564.tsx
│   │   │   │   │   ├── comp-565.tsx
│   │   │   │   │   ├── comp-566.tsx
│   │   │   │   │   ├── comp-567.tsx
│   │   │   │   │   ├── comp-568.tsx
│   │   │   │   │   ├── comp-569.tsx
│   │   │   │   │   ├── comp-57.tsx
│   │   │   │   │   ├── comp-570.tsx
│   │   │   │   │   ├── comp-571.tsx
│   │   │   │   │   ├── comp-572.tsx
│   │   │   │   │   ├── comp-573.tsx
│   │   │   │   │   ├── comp-574.tsx
│   │   │   │   │   ├── comp-575.tsx
│   │   │   │   │   ├── comp-576.tsx
│   │   │   │   │   ├── comp-577.tsx
│   │   │   │   │   ├── comp-578.tsx
│   │   │   │   │   ├── comp-579.tsx
│   │   │   │   │   ├── comp-58.tsx
│   │   │   │   │   ├── comp-580.tsx
│   │   │   │   │   ├── comp-581.tsx
│   │   │   │   │   ├── comp-582.tsx
│   │   │   │   │   ├── comp-583.tsx
│   │   │   │   │   ├── comp-584.tsx
│   │   │   │   │   ├── comp-585.tsx
│   │   │   │   │   ├── comp-586.tsx
│   │   │   │   │   ├── comp-587.tsx
│   │   │   │   │   ├── comp-588.tsx
│   │   │   │   │   ├── comp-589.tsx
│   │   │   │   │   ├── comp-59.tsx
│   │   │   │   │   ├── comp-590.tsx
│   │   │   │   │   ├── comp-591.tsx
│   │   │   │   │   ├── comp-592.tsx
│   │   │   │   │   ├── comp-593.tsx
│   │   │   │   │   ├── comp-594.tsx
│   │   │   │   │   ├── comp-595.tsx
│   │   │   │   │   ├── comp-596.tsx
│   │   │   │   │   ├── comp-597.tsx
│   │   │   │   │   ├── comp-598.tsx
│   │   │   │   │   ├── comp-599.tsx
│   │   │   │   │   ├── comp-60.tsx
│   │   │   │   │   ├── comp-61.tsx
│   │   │   │   │   ├── comp-62.tsx
│   │   │   │   │   ├── comp-63.tsx
│   │   │   │   │   ├── comp-64.tsx
│   │   │   │   │   ├── comp-65.tsx
│   │   │   │   │   ├── comp-66.tsx
│   │   │   │   │   ├── comp-67.tsx
│   │   │   │   │   ├── comp-68.tsx
│   │   │   │   │   ├── comp-69.tsx
│   │   │   │   │   ├── comp-70.tsx
│   │   │   │   │   ├── comp-71.tsx
│   │   │   │   │   ├── comp-72.tsx
│   │   │   │   │   ├── comp-73.tsx
│   │   │   │   │   ├── comp-74.tsx
│   │   │   │   │   ├── comp-75.tsx
│   │   │   │   │   ├── comp-76.tsx
│   │   │   │   │   ├── comp-77.tsx
│   │   │   │   │   ├── comp-78.tsx
│   │   │   │   │   ├── comp-79.tsx
│   │   │   │   │   ├── comp-80.tsx
│   │   │   │   │   ├── comp-81.tsx
│   │   │   │   │   ├── comp-82.tsx
│   │   │   │   │   ├── comp-83.tsx
│   │   │   │   │   ├── comp-84.tsx
│   │   │   │   │   ├── comp-85.tsx
│   │   │   │   │   ├── comp-86.tsx
│   │   │   │   │   ├── comp-87.tsx
│   │   │   │   │   ├── comp-88.tsx
│   │   │   │   │   ├── comp-89.tsx
│   │   │   │   │   ├── comp-90.tsx
│   │   │   │   │   ├── comp-91.tsx
│   │   │   │   │   ├── comp-92.tsx
│   │   │   │   │   ├── comp-93.tsx
│   │   │   │   │   ├── comp-94.tsx
│   │   │   │   │   ├── comp-95.tsx
│   │   │   │   │   ├── comp-96.tsx
│   │   │   │   │   ├── comp-97.tsx
│   │   │   │   │   ├── comp-98.tsx
│   │   │   │   │   ├── comp-99.tsx
│   │   │   │   │   ├── event-calendar/
│   │   │   │   │   │   ├── agenda-view.tsx
│   │   │   │   │   │   ├── calendar-dnd-context.tsx
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── day-view.tsx
│   │   │   │   │   │   ├── draggable-event.tsx
│   │   │   │   │   │   ├── droppable-cell.tsx
│   │   │   │   │   │   ├── event-calendar.tsx
│   │   │   │   │   │   ├── event-dialog.tsx
│   │   │   │   │   │   ├── event-item.tsx
│   │   │   │   │   │   ├── events-popup.tsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── use-current-time-indicator.ts
│   │   │   │   │   │   │   └── use-event-visibility.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── month-view.tsx
│   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   ├── utils.ts
│   │   │   │   │   │   └── week-view.tsx
│   │   │   │   │   └── navbar-components/
│   │   │   │   │       ├── app-toggle.tsx
│   │   │   │   │       ├── date-picker.tsx
│   │   │   │   │       ├── filters.tsx
│   │   │   │   │       ├── info-menu.tsx
│   │   │   │   │       ├── logo.tsx
│   │   │   │   │       ├── notification-menu.tsx
│   │   │   │   │       ├── settings-menu.tsx
│   │   │   │   │       ├── team-switcher.tsx
│   │   │   │   │       ├── theme-toggle.tsx
│   │   │   │   │       └── user-menu.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── use-character-limit.ts
│   │   │   │   │   ├── use-file-upload.ts
│   │   │   │   │   ├── use-pagination.ts
│   │   │   │   │   ├── use-slider-with-input.ts
│   │   │   │   │   └── use-toast.ts
│   │   │   │   ├── lib/
│   │   │   │   │   └── utils.ts
│   │   │   │   └── ui/
│   │   │   │       ├── accordion.tsx
│   │   │   │       ├── alert-dialog.tsx
│   │   │   │       ├── avatar.tsx
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── breadcrumb.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       ├── calendar-rac.tsx
│   │   │   │       ├── calendar.tsx
│   │   │   │       ├── checkbox-tree.tsx
│   │   │   │       ├── checkbox.tsx
│   │   │   │       ├── collapsible.tsx
│   │   │   │       ├── command.tsx
│   │   │   │       ├── cropper.tsx
│   │   │   │       ├── datefield-rac.tsx
│   │   │   │       ├── dialog.tsx
│   │   │   │       ├── dropdown-menu.tsx
│   │   │   │       ├── hover-card.tsx
│   │   │   │       ├── input.tsx
│   │   │   │       ├── label.tsx
│   │   │   │       ├── multiselect.tsx
│   │   │   │       ├── navigation-menu.tsx
│   │   │   │       ├── pagination.tsx
│   │   │   │       ├── popover.tsx
│   │   │   │       ├── progress.tsx
│   │   │   │       ├── radio-group.tsx
│   │   │   │       ├── resizable.tsx
│   │   │   │       ├── scroll-area.tsx
│   │   │   │       ├── select-native.tsx
│   │   │   │       ├── select.tsx
│   │   │   │       ├── slider.tsx
│   │   │   │       ├── sonner.tsx
│   │   │   │       ├── stepper.tsx
│   │   │   │       ├── switch.tsx
│   │   │   │       ├── table.tsx
│   │   │   │       ├── tabs.tsx
│   │   │   │       ├── textarea.tsx
│   │   │   │       ├── timeline.tsx
│   │   │   │       ├── toast.tsx
│   │   │   │       ├── toaster.tsx
│   │   │   │       ├── toggle-group.tsx
│   │   │   │       ├── toggle.tsx
│   │   │   │       ├── tooltip.tsx
│   │   │   │       └── tree.tsx
│   │   │   └── registry-tags.ts
│   │   ├── registry.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.scripts.json
│   │   └── types/
│   │       └── styled-jsx.d.ts
│   ├── ui/
│   │   ├── .gitignore
│   │   ├── AGENTS.md
│   │   ├── CONTRIBUTING.md
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── raw/
│   │   │   │       └── [...slug]/
│   │   │   │           └── route.ts
│   │   │   ├── docs/
│   │   │   │   ├── [[...slug]]/
│   │   │   │   │   └── page.tsx
│   │   │   │   └── layout.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── not-found.tsx
│   │   │   ├── page.tsx
│   │   │   ├── particles/
│   │   │   │   ├── page.tsx
│   │   │   │   ├── particle-card-container.tsx
│   │   │   │   ├── particle-card.tsx
│   │   │   │   ├── particles-display.tsx
│   │   │   │   ├── search-container.tsx
│   │   │   │   └── search-field.tsx
│   │   │   └── sitemap.ts
│   │   ├── components/
│   │   │   ├── category-thumbnails.tsx
│   │   │   ├── code-block-command.tsx
│   │   │   ├── code-collapsible-wrapper.tsx
│   │   │   ├── code-tabs.tsx
│   │   │   ├── command-menu.tsx
│   │   │   ├── component-preview-tabs.tsx
│   │   │   ├── component-preview.tsx
│   │   │   ├── component-source.tsx
│   │   │   ├── copy-registry.tsx
│   │   │   ├── docs-copy-page.tsx
│   │   │   ├── docs-sidebar.tsx
│   │   │   ├── docs-toc.tsx
│   │   │   ├── main-nav.tsx
│   │   │   ├── media-query-demo.tsx
│   │   │   ├── mobile-nav.tsx
│   │   │   ├── site-footer.tsx
│   │   │   └── site-header.tsx
│   │   ├── config/
│   │   │   └── categories.ts
│   │   ├── content/
│   │   │   └── docs/
│   │   │       ├── (root)/
│   │   │       │   ├── get-started.mdx
│   │   │       │   ├── index.mdx
│   │   │       │   ├── meta.json
│   │   │       │   ├── radix-migration.mdx
│   │   │       │   ├── roadmap.mdx
│   │   │       │   └── styling.mdx
│   │   │       ├── components/
│   │   │       │   ├── accordion.mdx
│   │   │       │   ├── alert-dialog.mdx
│   │   │       │   ├── alert.mdx
│   │   │       │   ├── autocomplete.mdx
│   │   │       │   ├── avatar.mdx
│   │   │       │   ├── badge.mdx
│   │   │       │   ├── breadcrumb.mdx
│   │   │       │   ├── button.mdx
│   │   │       │   ├── calendar.mdx
│   │   │       │   ├── card.mdx
│   │   │       │   ├── checkbox-group.mdx
│   │   │       │   ├── checkbox.mdx
│   │   │       │   ├── collapsible.mdx
│   │   │       │   ├── combobox.mdx
│   │   │       │   ├── command.mdx
│   │   │       │   ├── date-picker.mdx
│   │   │       │   ├── dialog.mdx
│   │   │       │   ├── drawer.mdx
│   │   │       │   ├── empty.mdx
│   │   │       │   ├── field.mdx
│   │   │       │   ├── fieldset.mdx
│   │   │       │   ├── form.mdx
│   │   │       │   ├── frame.mdx
│   │   │       │   ├── group.mdx
│   │   │       │   ├── input-group.mdx
│   │   │       │   ├── input-otp.mdx
│   │   │       │   ├── input.mdx
│   │   │       │   ├── kbd.mdx
│   │   │       │   ├── label.mdx
│   │   │       │   ├── menu.mdx
│   │   │       │   ├── meta.json
│   │   │       │   ├── meter.mdx
│   │   │       │   ├── number-field.mdx
│   │   │       │   ├── pagination.mdx
│   │   │       │   ├── popover.mdx
│   │   │       │   ├── preview-card.mdx
│   │   │       │   ├── progress.mdx
│   │   │       │   ├── radio-group.mdx
│   │   │       │   ├── scroll-area.mdx
│   │   │       │   ├── select.mdx
│   │   │       │   ├── separator.mdx
│   │   │       │   ├── sheet.mdx
│   │   │       │   ├── skeleton.mdx
│   │   │       │   ├── slider.mdx
│   │   │       │   ├── spinner.mdx
│   │   │       │   ├── switch.mdx
│   │   │       │   ├── table.mdx
│   │   │       │   ├── tabs.mdx
│   │   │       │   ├── textarea.mdx
│   │   │       │   ├── toast.mdx
│   │   │       │   ├── toggle-group.mdx
│   │   │       │   ├── toggle.mdx
│   │   │       │   ├── toolbar.mdx
│   │   │       │   └── tooltip.mdx
│   │   │       ├── hooks/
│   │   │       │   ├── meta.json
│   │   │       │   ├── use-copy-to-clipboard.mdx
│   │   │       │   └── use-media-query.mdx
│   │   │       ├── meta.json
│   │   │       └── resources/
│   │   │           └── meta.json
│   │   ├── hooks/
│   │   │   ├── use-config.ts
│   │   │   ├── use-is-mac.ts
│   │   │   └── use-mutation-observer.ts
│   │   ├── lib/
│   │   │   ├── config.ts
│   │   │   ├── docs.ts
│   │   │   ├── registry.ts
│   │   │   ├── source.ts
│   │   │   └── utils.ts
│   │   ├── mdx-components.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── public/
│   │   │   ├── llms.txt
│   │   │   └── r/
│   │   │       ├── accordion.json
│   │   │       ├── alert-dialog.json
│   │   │       ├── alert.json
│   │   │       ├── autocomplete.json
│   │   │       ├── avatar.json
│   │   │       ├── badge.json
│   │   │       ├── breadcrumb.json
│   │   │       ├── button.json
│   │   │       ├── calendar.json
│   │   │       ├── card.json
│   │   │       ├── checkbox-group.json
│   │   │       ├── checkbox.json
│   │   │       ├── collapsible.json
│   │   │       ├── colors-neutral.json
│   │   │       ├── combobox.json
│   │   │       ├── command.json
│   │   │       ├── csp-provider.json
│   │   │       ├── dialog.json
│   │   │       ├── direction-provider.json
│   │   │       ├── drawer.json
│   │   │       ├── empty.json
│   │   │       ├── field.json
│   │   │       ├── fieldset.json
│   │   │       ├── form.json
│   │   │       ├── frame.json
│   │   │       ├── group.json
│   │   │       ├── input-group.json
│   │   │       ├── input-otp.json
│   │   │       ├── input.json
│   │   │       ├── kbd.json
│   │   │       ├── label.json
│   │   │       ├── menu.json
│   │   │       ├── merge-props.json
│   │   │       ├── meter.json
│   │   │       ├── number-field.json
│   │   │       ├── p-accordion-1.json
│   │   │       ├── p-accordion-2.json
│   │   │       ├── p-accordion-3.json
│   │   │       ├── p-accordion-4.json
│   │   │       ├── p-alert-1.json
│   │   │       ├── p-alert-2.json
│   │   │       ├── p-alert-3.json
│   │   │       ├── p-alert-4.json
│   │   │       ├── p-alert-5.json
│   │   │       ├── p-alert-6.json
│   │   │       ├── p-alert-7.json
│   │   │       ├── p-alert-dialog-1.json
│   │   │       ├── p-alert-dialog-2.json
│   │   │       ├── p-autocomplete-1.json
│   │   │       ├── p-autocomplete-10.json
│   │   │       ├── p-autocomplete-11.json
│   │   │       ├── p-autocomplete-12.json
│   │   │       ├── p-autocomplete-13.json
│   │   │       ├── p-autocomplete-14.json
│   │   │       ├── p-autocomplete-15.json
│   │   │       ├── p-autocomplete-2.json
│   │   │       ├── p-autocomplete-3.json
│   │   │       ├── p-autocomplete-4.json
│   │   │       ├── p-autocomplete-5.json
│   │   │       ├── p-autocomplete-6.json
│   │   │       ├── p-autocomplete-7.json
│   │   │       ├── p-autocomplete-8.json
│   │   │       ├── p-autocomplete-9.json
│   │   │       ├── p-avatar-1.json
│   │   │       ├── p-avatar-10.json
│   │   │       ├── p-avatar-11.json
│   │   │       ├── p-avatar-12.json
│   │   │       ├── p-avatar-13.json
│   │   │       ├── p-avatar-14.json
│   │   │       ├── p-avatar-2.json
│   │   │       ├── p-avatar-3.json
│   │   │       ├── p-avatar-4.json
│   │   │       ├── p-avatar-5.json
│   │   │       ├── p-avatar-6.json
│   │   │       ├── p-avatar-7.json
│   │   │       ├── p-avatar-8.json
│   │   │       ├── p-avatar-9.json
│   │   │       ├── p-badge-1.json
│   │   │       ├── p-badge-10.json
│   │   │       ├── p-badge-11.json
│   │   │       ├── p-badge-12.json
│   │   │       ├── p-badge-13.json
│   │   │       ├── p-badge-14.json
│   │   │       ├── p-badge-15.json
│   │   │       ├── p-badge-16.json
│   │   │       ├── p-badge-17.json
│   │   │       ├── p-badge-18.json
│   │   │       ├── p-badge-19.json
│   │   │       ├── p-badge-2.json
│   │   │       ├── p-badge-20.json
│   │   │       ├── p-badge-3.json
│   │   │       ├── p-badge-4.json
│   │   │       ├── p-badge-5.json
│   │   │       ├── p-badge-6.json
│   │   │       ├── p-badge-7.json
│   │   │       ├── p-badge-8.json
│   │   │       ├── p-badge-9.json
│   │   │       ├── p-breadcrumb-1.json
│   │   │       ├── p-breadcrumb-2.json
│   │   │       ├── p-breadcrumb-3.json
│   │   │       ├── p-breadcrumb-4.json
│   │   │       ├── p-breadcrumb-5.json
│   │   │       ├── p-breadcrumb-6.json
│   │   │       ├── p-breadcrumb-7.json
│   │   │       ├── p-button-1.json
│   │   │       ├── p-button-10.json
│   │   │       ├── p-button-11.json
│   │   │       ├── p-button-12.json
│   │   │       ├── p-button-13.json
│   │   │       ├── p-button-14.json
│   │   │       ├── p-button-15.json
│   │   │       ├── p-button-16.json
│   │   │       ├── p-button-17.json
│   │   │       ├── p-button-18.json
│   │   │       ├── p-button-19.json
│   │   │       ├── p-button-2.json
│   │   │       ├── p-button-20.json
│   │   │       ├── p-button-21.json
│   │   │       ├── p-button-22.json
│   │   │       ├── p-button-23.json
│   │   │       ├── p-button-24.json
│   │   │       ├── p-button-26.json
│   │   │       ├── p-button-27.json
│   │   │       ├── p-button-28.json
│   │   │       ├── p-button-29.json
│   │   │       ├── p-button-3.json
│   │   │       ├── p-button-30.json
│   │   │       ├── p-button-31.json
│   │   │       ├── p-button-32.json
│   │   │       ├── p-button-33.json
│   │   │       ├── p-button-34.json
│   │   │       ├── p-button-35.json
│   │   │       ├── p-button-36.json
│   │   │       ├── p-button-37.json
│   │   │       ├── p-button-38.json
│   │   │       ├── p-button-39.json
│   │   │       ├── p-button-4.json
│   │   │       ├── p-button-40.json
│   │   │       ├── p-button-41.json
│   │   │       ├── p-button-5.json
│   │   │       ├── p-button-6.json
│   │   │       ├── p-button-7.json
│   │   │       ├── p-button-8.json
│   │   │       ├── p-button-9.json
│   │   │       ├── p-calendar-1.json
│   │   │       ├── p-calendar-10.json
│   │   │       ├── p-calendar-11.json
│   │   │       ├── p-calendar-12.json
│   │   │       ├── p-calendar-13.json
│   │   │       ├── p-calendar-14.json
│   │   │       ├── p-calendar-15.json
│   │   │       ├── p-calendar-16.json
│   │   │       ├── p-calendar-17.json
│   │   │       ├── p-calendar-18.json
│   │   │       ├── p-calendar-19.json
│   │   │       ├── p-calendar-2.json
│   │   │       ├── p-calendar-20.json
│   │   │       ├── p-calendar-21.json
│   │   │       ├── p-calendar-22.json
│   │   │       ├── p-calendar-23.json
│   │   │       ├── p-calendar-24.json
│   │   │       ├── p-calendar-3.json
│   │   │       ├── p-calendar-4.json
│   │   │       ├── p-calendar-5.json
│   │   │       ├── p-calendar-6.json
│   │   │       ├── p-calendar-7.json
│   │   │       ├── p-calendar-8.json
│   │   │       ├── p-calendar-9.json
│   │   │       ├── p-card-1.json
│   │   │       ├── p-card-10.json
│   │   │       ├── p-card-11.json
│   │   │       ├── p-card-2.json
│   │   │       ├── p-card-3.json
│   │   │       ├── p-card-4.json
│   │   │       ├── p-card-5.json
│   │   │       ├── p-card-6.json
│   │   │       ├── p-card-7.json
│   │   │       ├── p-card-8.json
│   │   │       ├── p-card-9.json
│   │   │       ├── p-checkbox-1.json
│   │   │       ├── p-checkbox-2.json
│   │   │       ├── p-checkbox-3.json
│   │   │       ├── p-checkbox-4.json
│   │   │       ├── p-checkbox-5.json
│   │   │       ├── p-checkbox-group-1.json
│   │   │       ├── p-checkbox-group-2.json
│   │   │       ├── p-checkbox-group-3.json
│   │   │       ├── p-checkbox-group-4.json
│   │   │       ├── p-checkbox-group-5.json
│   │   │       ├── p-collapsible-1.json
│   │   │       ├── p-combobox-1.json
│   │   │       ├── p-combobox-10.json
│   │   │       ├── p-combobox-11.json
│   │   │       ├── p-combobox-12.json
│   │   │       ├── p-combobox-13.json
│   │   │       ├── p-combobox-14.json
│   │   │       ├── p-combobox-15.json
│   │   │       ├── p-combobox-16.json
│   │   │       ├── p-combobox-17.json
│   │   │       ├── p-combobox-18.json
│   │   │       ├── p-combobox-2.json
│   │   │       ├── p-combobox-3.json
│   │   │       ├── p-combobox-4.json
│   │   │       ├── p-combobox-5.json
│   │   │       ├── p-combobox-6.json
│   │   │       ├── p-combobox-7.json
│   │   │       ├── p-combobox-8.json
│   │   │       ├── p-combobox-9.json
│   │   │       ├── p-command-1.json
│   │   │       ├── p-command-2.json
│   │   │       ├── p-date-picker-1.json
│   │   │       ├── p-date-picker-2.json
│   │   │       ├── p-date-picker-3.json
│   │   │       ├── p-date-picker-4.json
│   │   │       ├── p-date-picker-5.json
│   │   │       ├── p-date-picker-6.json
│   │   │       ├── p-date-picker-7.json
│   │   │       ├── p-date-picker-8.json
│   │   │       ├── p-date-picker-9.json
│   │   │       ├── p-dialog-1.json
│   │   │       ├── p-dialog-2.json
│   │   │       ├── p-dialog-3.json
│   │   │       ├── p-dialog-4.json
│   │   │       ├── p-dialog-5.json
│   │   │       ├── p-dialog-6.json
│   │   │       ├── p-drawer-1.json
│   │   │       ├── p-drawer-10.json
│   │   │       ├── p-drawer-11.json
│   │   │       ├── p-drawer-12.json
│   │   │       ├── p-drawer-13.json
│   │   │       ├── p-drawer-14.json
│   │   │       ├── p-drawer-2.json
│   │   │       ├── p-drawer-3.json
│   │   │       ├── p-drawer-4.json
│   │   │       ├── p-drawer-5.json
│   │   │       ├── p-drawer-6.json
│   │   │       ├── p-drawer-7.json
│   │   │       ├── p-drawer-8.json
│   │   │       ├── p-drawer-9.json
│   │   │       ├── p-empty-1.json
│   │   │       ├── p-field-1.json
│   │   │       ├── p-field-10.json
│   │   │       ├── p-field-11.json
│   │   │       ├── p-field-12.json
│   │   │       ├── p-field-13.json
│   │   │       ├── p-field-14.json
│   │   │       ├── p-field-15.json
│   │   │       ├── p-field-16.json
│   │   │       ├── p-field-17.json
│   │   │       ├── p-field-18.json
│   │   │       ├── p-field-2.json
│   │   │       ├── p-field-3.json
│   │   │       ├── p-field-4.json
│   │   │       ├── p-field-5.json
│   │   │       ├── p-field-6.json
│   │   │       ├── p-field-7.json
│   │   │       ├── p-field-8.json
│   │   │       ├── p-field-9.json
│   │   │       ├── p-fieldset-1.json
│   │   │       ├── p-form-1.json
│   │   │       ├── p-form-2.json
│   │   │       ├── p-frame-1.json
│   │   │       ├── p-frame-2.json
│   │   │       ├── p-frame-3.json
│   │   │       ├── p-frame-4.json
│   │   │       ├── p-group-1.json
│   │   │       ├── p-group-10.json
│   │   │       ├── p-group-11.json
│   │   │       ├── p-group-12.json
│   │   │       ├── p-group-13.json
│   │   │       ├── p-group-14.json
│   │   │       ├── p-group-15.json
│   │   │       ├── p-group-16.json
│   │   │       ├── p-group-17.json
│   │   │       ├── p-group-18.json
│   │   │       ├── p-group-19.json
│   │   │       ├── p-group-2.json
│   │   │       ├── p-group-20.json
│   │   │       ├── p-group-22.json
│   │   │       ├── p-group-23.json
│   │   │       ├── p-group-3.json
│   │   │       ├── p-group-4.json
│   │   │       ├── p-group-5.json
│   │   │       ├── p-group-6.json
│   │   │       ├── p-group-7.json
│   │   │       ├── p-group-8.json
│   │   │       ├── p-group-9.json
│   │   │       ├── p-input-1.json
│   │   │       ├── p-input-10.json
│   │   │       ├── p-input-11.json
│   │   │       ├── p-input-12.json
│   │   │       ├── p-input-13.json
│   │   │       ├── p-input-14.json
│   │   │       ├── p-input-15.json
│   │   │       ├── p-input-16.json
│   │   │       ├── p-input-17.json
│   │   │       ├── p-input-18.json
│   │   │       ├── p-input-19.json
│   │   │       ├── p-input-2.json
│   │   │       ├── p-input-3.json
│   │   │       ├── p-input-4.json
│   │   │       ├── p-input-5.json
│   │   │       ├── p-input-6.json
│   │   │       ├── p-input-7.json
│   │   │       ├── p-input-8.json
│   │   │       ├── p-input-9.json
│   │   │       ├── p-input-group-1.json
│   │   │       ├── p-input-group-10.json
│   │   │       ├── p-input-group-11.json
│   │   │       ├── p-input-group-12.json
│   │   │       ├── p-input-group-13.json
│   │   │       ├── p-input-group-14.json
│   │   │       ├── p-input-group-15.json
│   │   │       ├── p-input-group-16.json
│   │   │       ├── p-input-group-17.json
│   │   │       ├── p-input-group-18.json
│   │   │       ├── p-input-group-19.json
│   │   │       ├── p-input-group-2.json
│   │   │       ├── p-input-group-20.json
│   │   │       ├── p-input-group-21.json
│   │   │       ├── p-input-group-22.json
│   │   │       ├── p-input-group-23.json
│   │   │       ├── p-input-group-24.json
│   │   │       ├── p-input-group-25.json
│   │   │       ├── p-input-group-26.json
│   │   │       ├── p-input-group-27.json
│   │   │       ├── p-input-group-28.json
│   │   │       ├── p-input-group-29.json
│   │   │       ├── p-input-group-3.json
│   │   │       ├── p-input-group-4.json
│   │   │       ├── p-input-group-5.json
│   │   │       ├── p-input-group-6.json
│   │   │       ├── p-input-group-7.json
│   │   │       ├── p-input-group-8.json
│   │   │       ├── p-input-group-9.json
│   │   │       ├── p-input-otp-1.json
│   │   │       ├── p-input-otp-2.json
│   │   │       ├── p-input-otp-3.json
│   │   │       ├── p-input-otp-4.json
│   │   │       ├── p-input-otp-5.json
│   │   │       ├── p-input-otp-6.json
│   │   │       ├── p-input-otp-7.json
│   │   │       ├── p-kbd-1.json
│   │   │       ├── p-menu-1.json
│   │   │       ├── p-menu-2.json
│   │   │       ├── p-menu-3.json
│   │   │       ├── p-menu-4.json
│   │   │       ├── p-menu-5.json
│   │   │       ├── p-menu-6.json
│   │   │       ├── p-menu-7.json
│   │   │       ├── p-menu-8.json
│   │   │       ├── p-menu-9.json
│   │   │       ├── p-meter-1.json
│   │   │       ├── p-meter-2.json
│   │   │       ├── p-meter-3.json
│   │   │       ├── p-meter-4.json
│   │   │       ├── p-number-field-1.json
│   │   │       ├── p-number-field-10.json
│   │   │       ├── p-number-field-11.json
│   │   │       ├── p-number-field-2.json
│   │   │       ├── p-number-field-3.json
│   │   │       ├── p-number-field-4.json
│   │   │       ├── p-number-field-5.json
│   │   │       ├── p-number-field-6.json
│   │   │       ├── p-number-field-7.json
│   │   │       ├── p-number-field-8.json
│   │   │       ├── p-number-field-9.json
│   │   │       ├── p-pagination-1.json
│   │   │       ├── p-pagination-2.json
│   │   │       ├── p-pagination-3.json
│   │   │       ├── p-popover-1.json
│   │   │       ├── p-popover-2.json
│   │   │       ├── p-popover-3.json
│   │   │       ├── p-preview-card-1.json
│   │   │       ├── p-progress-1.json
│   │   │       ├── p-progress-2.json
│   │   │       ├── p-progress-3.json
│   │   │       ├── p-radio-group-1.json
│   │   │       ├── p-radio-group-2.json
│   │   │       ├── p-radio-group-3.json
│   │   │       ├── p-radio-group-4.json
│   │   │       ├── p-radio-group-5.json
│   │   │       ├── p-scroll-area-1.json
│   │   │       ├── p-scroll-area-2.json
│   │   │       ├── p-scroll-area-3.json
│   │   │       ├── p-scroll-area-4.json
│   │   │       ├── p-scroll-area-5.json
│   │   │       ├── p-select-1.json
│   │   │       ├── p-select-10.json
│   │   │       ├── p-select-11.json
│   │   │       ├── p-select-12.json
│   │   │       ├── p-select-13.json
│   │   │       ├── p-select-14.json
│   │   │       ├── p-select-15.json
│   │   │       ├── p-select-16.json
│   │   │       ├── p-select-17.json
│   │   │       ├── p-select-18.json
│   │   │       ├── p-select-19.json
│   │   │       ├── p-select-2.json
│   │   │       ├── p-select-20.json
│   │   │       ├── p-select-21.json
│   │   │       ├── p-select-22.json
│   │   │       ├── p-select-23.json
│   │   │       ├── p-select-3.json
│   │   │       ├── p-select-4.json
│   │   │       ├── p-select-5.json
│   │   │       ├── p-select-6.json
│   │   │       ├── p-select-7.json
│   │   │       ├── p-select-8.json
│   │   │       ├── p-select-9.json
│   │   │       ├── p-separator-1.json
│   │   │       ├── p-sheet-1.json
│   │   │       ├── p-sheet-2.json
│   │   │       ├── p-sheet-3.json
│   │   │       ├── p-skeleton-1.json
│   │   │       ├── p-skeleton-2.json
│   │   │       ├── p-slider-1.json
│   │   │       ├── p-slider-10.json
│   │   │       ├── p-slider-11.json
│   │   │       ├── p-slider-12.json
│   │   │       ├── p-slider-13.json
│   │   │       ├── p-slider-14.json
│   │   │       ├── p-slider-15.json
│   │   │       ├── p-slider-16.json
│   │   │       ├── p-slider-17.json
│   │   │       ├── p-slider-18.json
│   │   │       ├── p-slider-19.json
│   │   │       ├── p-slider-2.json
│   │   │       ├── p-slider-20.json
│   │   │       ├── p-slider-21.json
│   │   │       ├── p-slider-22.json
│   │   │       ├── p-slider-23.json
│   │   │       ├── p-slider-3.json
│   │   │       ├── p-slider-4.json
│   │   │       ├── p-slider-5.json
│   │   │       ├── p-slider-6.json
│   │   │       ├── p-slider-7.json
│   │   │       ├── p-slider-8.json
│   │   │       ├── p-slider-9.json
│   │   │       ├── p-spinner-1.json
│   │   │       ├── p-switch-1.json
│   │   │       ├── p-switch-2.json
│   │   │       ├── p-switch-3.json
│   │   │       ├── p-switch-4.json
│   │   │       ├── p-switch-5.json
│   │   │       ├── p-switch-6.json
│   │   │       ├── p-switch-7.json
│   │   │       ├── p-table-1.json
│   │   │       ├── p-table-2.json
│   │   │       ├── p-table-3.json
│   │   │       ├── p-table-4.json
│   │   │       ├── p-tabs-1.json
│   │   │       ├── p-tabs-10.json
│   │   │       ├── p-tabs-11.json
│   │   │       ├── p-tabs-12.json
│   │   │       ├── p-tabs-13.json
│   │   │       ├── p-tabs-2.json
│   │   │       ├── p-tabs-3.json
│   │   │       ├── p-tabs-4.json
│   │   │       ├── p-tabs-5.json
│   │   │       ├── p-tabs-6.json
│   │   │       ├── p-tabs-7.json
│   │   │       ├── p-tabs-8.json
│   │   │       ├── p-tabs-9.json
│   │   │       ├── p-textarea-1.json
│   │   │       ├── p-textarea-10.json
│   │   │       ├── p-textarea-11.json
│   │   │       ├── p-textarea-12.json
│   │   │       ├── p-textarea-13.json
│   │   │       ├── p-textarea-14.json
│   │   │       ├── p-textarea-15.json
│   │   │       ├── p-textarea-2.json
│   │   │       ├── p-textarea-3.json
│   │   │       ├── p-textarea-4.json
│   │   │       ├── p-textarea-5.json
│   │   │       ├── p-textarea-6.json
│   │   │       ├── p-textarea-7.json
│   │   │       ├── p-textarea-8.json
│   │   │       ├── p-textarea-9.json
│   │   │       ├── p-toast-1.json
│   │   │       ├── p-toast-2.json
│   │   │       ├── p-toast-3.json
│   │   │       ├── p-toast-4.json
│   │   │       ├── p-toast-5.json
│   │   │       ├── p-toast-6.json
│   │   │       ├── p-toast-7.json
│   │   │       ├── p-toast-8.json
│   │   │       ├── p-toast-9.json
│   │   │       ├── p-toggle-1.json
│   │   │       ├── p-toggle-2.json
│   │   │       ├── p-toggle-3.json
│   │   │       ├── p-toggle-4.json
│   │   │       ├── p-toggle-5.json
│   │   │       ├── p-toggle-6.json
│   │   │       ├── p-toggle-7.json
│   │   │       ├── p-toggle-8.json
│   │   │       ├── p-toggle-group-1.json
│   │   │       ├── p-toggle-group-2.json
│   │   │       ├── p-toggle-group-3.json
│   │   │       ├── p-toggle-group-4.json
│   │   │       ├── p-toggle-group-5.json
│   │   │       ├── p-toggle-group-6.json
│   │   │       ├── p-toggle-group-7.json
│   │   │       ├── p-toggle-group-8.json
│   │   │       ├── p-toggle-group-9.json
│   │   │       ├── p-toolbar-1.json
│   │   │       ├── p-tooltip-1.json
│   │   │       ├── p-tooltip-2.json
│   │   │       ├── p-tooltip-3.json
│   │   │       ├── p-tooltip-4.json
│   │   │       ├── pagination.json
│   │   │       ├── popover.json
│   │   │       ├── preview-card.json
│   │   │       ├── progress.json
│   │   │       ├── radio-group.json
│   │   │       ├── registry.json
│   │   │       ├── scroll-area.json
│   │   │       ├── select.json
│   │   │       ├── separator.json
│   │   │       ├── sheet.json
│   │   │       ├── sidebar.json
│   │   │       ├── skeleton.json
│   │   │       ├── slider.json
│   │   │       ├── spinner.json
│   │   │       ├── style.json
│   │   │       ├── switch.json
│   │   │       ├── table.json
│   │   │       ├── tabs.json
│   │   │       ├── textarea.json
│   │   │       ├── toast.json
│   │   │       ├── toggle-group.json
│   │   │       ├── toggle.json
│   │   │       ├── toolbar.json
│   │   │       ├── tooltip.json
│   │   │       ├── ui.json
│   │   │       ├── use-copy-to-clipboard.json
│   │   │       ├── use-media-query.json
│   │   │       ├── use-render.json
│   │   │       └── utils.json
│   │   ├── registry/
│   │   │   ├── __index__.tsx
│   │   │   ├── default/
│   │   │   │   ├── base-ui/
│   │   │   │   │   ├── csp-provider.ts
│   │   │   │   │   ├── direction-provider.ts
│   │   │   │   │   ├── merge-props.ts
│   │   │   │   │   └── use-render.ts
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── use-copy-to-clipboard.ts
│   │   │   │   │   └── use-media-query.ts
│   │   │   │   ├── lib/
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── particles/
│   │   │   │   │   ├── p-accordion-1.tsx
│   │   │   │   │   ├── p-accordion-2.tsx
│   │   │   │   │   ├── p-accordion-3.tsx
│   │   │   │   │   ├── p-accordion-4.tsx
│   │   │   │   │   ├── p-alert-1.tsx
│   │   │   │   │   ├── p-alert-2.tsx
│   │   │   │   │   ├── p-alert-3.tsx
│   │   │   │   │   ├── p-alert-4.tsx
│   │   │   │   │   ├── p-alert-5.tsx
│   │   │   │   │   ├── p-alert-6.tsx
│   │   │   │   │   ├── p-alert-7.tsx
│   │   │   │   │   ├── p-alert-dialog-1.tsx
│   │   │   │   │   ├── p-alert-dialog-2.tsx
│   │   │   │   │   ├── p-autocomplete-1.tsx
│   │   │   │   │   ├── p-autocomplete-10.tsx
│   │   │   │   │   ├── p-autocomplete-11.tsx
│   │   │   │   │   ├── p-autocomplete-12.tsx
│   │   │   │   │   ├── p-autocomplete-13.tsx
│   │   │   │   │   ├── p-autocomplete-14.tsx
│   │   │   │   │   ├── p-autocomplete-15.tsx
│   │   │   │   │   ├── p-autocomplete-2.tsx
│   │   │   │   │   ├── p-autocomplete-3.tsx
│   │   │   │   │   ├── p-autocomplete-4.tsx
│   │   │   │   │   ├── p-autocomplete-5.tsx
│   │   │   │   │   ├── p-autocomplete-6.tsx
│   │   │   │   │   ├── p-autocomplete-7.tsx
│   │   │   │   │   ├── p-autocomplete-8.tsx
│   │   │   │   │   ├── p-autocomplete-9.tsx
│   │   │   │   │   ├── p-avatar-1.tsx
│   │   │   │   │   ├── p-avatar-10.tsx
│   │   │   │   │   ├── p-avatar-11.tsx
│   │   │   │   │   ├── p-avatar-12.tsx
│   │   │   │   │   ├── p-avatar-13.tsx
│   │   │   │   │   ├── p-avatar-14.tsx
│   │   │   │   │   ├── p-avatar-2.tsx
│   │   │   │   │   ├── p-avatar-3.tsx
│   │   │   │   │   ├── p-avatar-4.tsx
│   │   │   │   │   ├── p-avatar-5.tsx
│   │   │   │   │   ├── p-avatar-6.tsx
│   │   │   │   │   ├── p-avatar-7.tsx
│   │   │   │   │   ├── p-avatar-8.tsx
│   │   │   │   │   ├── p-avatar-9.tsx
│   │   │   │   │   ├── p-badge-1.tsx
│   │   │   │   │   ├── p-badge-10.tsx
│   │   │   │   │   ├── p-badge-11.tsx
│   │   │   │   │   ├── p-badge-12.tsx
│   │   │   │   │   ├── p-badge-13.tsx
│   │   │   │   │   ├── p-badge-14.tsx
│   │   │   │   │   ├── p-badge-15.tsx
│   │   │   │   │   ├── p-badge-16.tsx
│   │   │   │   │   ├── p-badge-17.tsx
│   │   │   │   │   ├── p-badge-18.tsx
│   │   │   │   │   ├── p-badge-19.tsx
│   │   │   │   │   ├── p-badge-2.tsx
│   │   │   │   │   ├── p-badge-20.tsx
│   │   │   │   │   ├── p-badge-3.tsx
│   │   │   │   │   ├── p-badge-4.tsx
│   │   │   │   │   ├── p-badge-5.tsx
│   │   │   │   │   ├── p-badge-6.tsx
│   │   │   │   │   ├── p-badge-7.tsx
│   │   │   │   │   ├── p-badge-8.tsx
│   │   │   │   │   ├── p-badge-9.tsx
│   │   │   │   │   ├── p-breadcrumb-1.tsx
│   │   │   │   │   ├── p-breadcrumb-2.tsx
│   │   │   │   │   ├── p-breadcrumb-3.tsx
│   │   │   │   │   ├── p-breadcrumb-4.tsx
│   │   │   │   │   ├── p-breadcrumb-5.tsx
│   │   │   │   │   ├── p-breadcrumb-6.tsx
│   │   │   │   │   ├── p-breadcrumb-7.tsx
│   │   │   │   │   ├── p-button-1.tsx
│   │   │   │   │   ├── p-button-10.tsx
│   │   │   │   │   ├── p-button-11.tsx
│   │   │   │   │   ├── p-button-12.tsx
│   │   │   │   │   ├── p-button-13.tsx
│   │   │   │   │   ├── p-button-14.tsx
│   │   │   │   │   ├── p-button-15.tsx
│   │   │   │   │   ├── p-button-16.tsx
│   │   │   │   │   ├── p-button-17.tsx
│   │   │   │   │   ├── p-button-18.tsx
│   │   │   │   │   ├── p-button-19.tsx
│   │   │   │   │   ├── p-button-2.tsx
│   │   │   │   │   ├── p-button-20.tsx
│   │   │   │   │   ├── p-button-21.tsx
│   │   │   │   │   ├── p-button-22.tsx
│   │   │   │   │   ├── p-button-23.tsx
│   │   │   │   │   ├── p-button-24.tsx
│   │   │   │   │   ├── p-button-26.tsx
│   │   │   │   │   ├── p-button-27.tsx
│   │   │   │   │   ├── p-button-28.tsx
│   │   │   │   │   ├── p-button-29.tsx
│   │   │   │   │   ├── p-button-3.tsx
│   │   │   │   │   ├── p-button-30.tsx
│   │   │   │   │   ├── p-button-31.tsx
│   │   │   │   │   ├── p-button-32.tsx
│   │   │   │   │   ├── p-button-33.tsx
│   │   │   │   │   ├── p-button-34.tsx
│   │   │   │   │   ├── p-button-35.tsx
│   │   │   │   │   ├── p-button-36.tsx
│   │   │   │   │   ├── p-button-37.tsx
│   │   │   │   │   ├── p-button-38.tsx
│   │   │   │   │   ├── p-button-39.tsx
│   │   │   │   │   ├── p-button-4.tsx
│   │   │   │   │   ├── p-button-40.tsx
│   │   │   │   │   ├── p-button-41.tsx
│   │   │   │   │   ├── p-button-5.tsx
│   │   │   │   │   ├── p-button-6.tsx
│   │   │   │   │   ├── p-button-7.tsx
│   │   │   │   │   ├── p-button-8.tsx
│   │   │   │   │   ├── p-button-9.tsx
│   │   │   │   │   ├── p-calendar-1.tsx
│   │   │   │   │   ├── p-calendar-10.tsx
│   │   │   │   │   ├── p-calendar-11.tsx
│   │   │   │   │   ├── p-calendar-12.tsx
│   │   │   │   │   ├── p-calendar-13.tsx
│   │   │   │   │   ├── p-calendar-14.tsx
│   │   │   │   │   ├── p-calendar-15.tsx
│   │   │   │   │   ├── p-calendar-16.tsx
│   │   │   │   │   ├── p-calendar-17.tsx
│   │   │   │   │   ├── p-calendar-18.tsx
│   │   │   │   │   ├── p-calendar-19.tsx
│   │   │   │   │   ├── p-calendar-2.tsx
│   │   │   │   │   ├── p-calendar-20.tsx
│   │   │   │   │   ├── p-calendar-21.tsx
│   │   │   │   │   ├── p-calendar-22.tsx
│   │   │   │   │   ├── p-calendar-23.tsx
│   │   │   │   │   ├── p-calendar-24.tsx
│   │   │   │   │   ├── p-calendar-3.tsx
│   │   │   │   │   ├── p-calendar-4.tsx
│   │   │   │   │   ├── p-calendar-5.tsx
│   │   │   │   │   ├── p-calendar-6.tsx
│   │   │   │   │   ├── p-calendar-7.tsx
│   │   │   │   │   ├── p-calendar-8.tsx
│   │   │   │   │   ├── p-calendar-9.tsx
│   │   │   │   │   ├── p-card-1.tsx
│   │   │   │   │   ├── p-card-10.tsx
│   │   │   │   │   ├── p-card-11.tsx
│   │   │   │   │   ├── p-card-2.tsx
│   │   │   │   │   ├── p-card-3.tsx
│   │   │   │   │   ├── p-card-4.tsx
│   │   │   │   │   ├── p-card-5.tsx
│   │   │   │   │   ├── p-card-6.tsx
│   │   │   │   │   ├── p-card-7.tsx
│   │   │   │   │   ├── p-card-8.tsx
│   │   │   │   │   ├── p-card-9.tsx
│   │   │   │   │   ├── p-checkbox-1.tsx
│   │   │   │   │   ├── p-checkbox-2.tsx
│   │   │   │   │   ├── p-checkbox-3.tsx
│   │   │   │   │   ├── p-checkbox-4.tsx
│   │   │   │   │   ├── p-checkbox-5.tsx
│   │   │   │   │   ├── p-checkbox-group-1.tsx
│   │   │   │   │   ├── p-checkbox-group-2.tsx
│   │   │   │   │   ├── p-checkbox-group-3.tsx
│   │   │   │   │   ├── p-checkbox-group-4.tsx
│   │   │   │   │   ├── p-checkbox-group-5.tsx
│   │   │   │   │   ├── p-collapsible-1.tsx
│   │   │   │   │   ├── p-combobox-1.tsx
│   │   │   │   │   ├── p-combobox-10.tsx
│   │   │   │   │   ├── p-combobox-11.tsx
│   │   │   │   │   ├── p-combobox-12.tsx
│   │   │   │   │   ├── p-combobox-13.tsx
│   │   │   │   │   ├── p-combobox-14.tsx
│   │   │   │   │   ├── p-combobox-15.tsx
│   │   │   │   │   ├── p-combobox-16.tsx
│   │   │   │   │   ├── p-combobox-17.tsx
│   │   │   │   │   ├── p-combobox-18.tsx
│   │   │   │   │   ├── p-combobox-2.tsx
│   │   │   │   │   ├── p-combobox-3.tsx
│   │   │   │   │   ├── p-combobox-4.tsx
│   │   │   │   │   ├── p-combobox-5.tsx
│   │   │   │   │   ├── p-combobox-6.tsx
│   │   │   │   │   ├── p-combobox-7.tsx
│   │   │   │   │   ├── p-combobox-8.tsx
│   │   │   │   │   ├── p-combobox-9.tsx
│   │   │   │   │   ├── p-command-1.tsx
│   │   │   │   │   ├── p-command-2.tsx
│   │   │   │   │   ├── p-date-picker-1.tsx
│   │   │   │   │   ├── p-date-picker-2.tsx
│   │   │   │   │   ├── p-date-picker-3.tsx
│   │   │   │   │   ├── p-date-picker-4.tsx
│   │   │   │   │   ├── p-date-picker-5.tsx
│   │   │   │   │   ├── p-date-picker-6.tsx
│   │   │   │   │   ├── p-date-picker-7.tsx
│   │   │   │   │   ├── p-date-picker-8.tsx
│   │   │   │   │   ├── p-date-picker-9.tsx
│   │   │   │   │   ├── p-dialog-1.tsx
│   │   │   │   │   ├── p-dialog-2.tsx
│   │   │   │   │   ├── p-dialog-3.tsx
│   │   │   │   │   ├── p-dialog-4.tsx
│   │   │   │   │   ├── p-dialog-5.tsx
│   │   │   │   │   ├── p-dialog-6.tsx
│   │   │   │   │   ├── p-drawer-1.tsx
│   │   │   │   │   ├── p-drawer-10.tsx
│   │   │   │   │   ├── p-drawer-11.tsx
│   │   │   │   │   ├── p-drawer-12.tsx
│   │   │   │   │   ├── p-drawer-13.tsx
│   │   │   │   │   ├── p-drawer-14.tsx
│   │   │   │   │   ├── p-drawer-2.tsx
│   │   │   │   │   ├── p-drawer-3.tsx
│   │   │   │   │   ├── p-drawer-4.tsx
│   │   │   │   │   ├── p-drawer-5.tsx
│   │   │   │   │   ├── p-drawer-6.tsx
│   │   │   │   │   ├── p-drawer-7.tsx
│   │   │   │   │   ├── p-drawer-8.tsx
│   │   │   │   │   ├── p-drawer-9.tsx
│   │   │   │   │   ├── p-empty-1.tsx
│   │   │   │   │   ├── p-field-1.tsx
│   │   │   │   │   ├── p-field-10.tsx
│   │   │   │   │   ├── p-field-11.tsx
│   │   │   │   │   ├── p-field-12.tsx
│   │   │   │   │   ├── p-field-13.tsx
│   │   │   │   │   ├── p-field-14.tsx
│   │   │   │   │   ├── p-field-15.tsx
│   │   │   │   │   ├── p-field-16.tsx
│   │   │   │   │   ├── p-field-17.tsx
│   │   │   │   │   ├── p-field-18.tsx
│   │   │   │   │   ├── p-field-2.tsx
│   │   │   │   │   ├── p-field-3.tsx
│   │   │   │   │   ├── p-field-4.tsx
│   │   │   │   │   ├── p-field-5.tsx
│   │   │   │   │   ├── p-field-6.tsx
│   │   │   │   │   ├── p-field-7.tsx
│   │   │   │   │   ├── p-field-8.tsx
│   │   │   │   │   ├── p-field-9.tsx
│   │   │   │   │   ├── p-fieldset-1.tsx
│   │   │   │   │   ├── p-form-1.tsx
│   │   │   │   │   ├── p-form-2.tsx
│   │   │   │   │   ├── p-frame-1.tsx
│   │   │   │   │   ├── p-frame-2.tsx
│   │   │   │   │   ├── p-frame-3.tsx
│   │   │   │   │   ├── p-frame-4.tsx
│   │   │   │   │   ├── p-group-1.tsx
│   │   │   │   │   ├── p-group-10.tsx
│   │   │   │   │   ├── p-group-11.tsx
│   │   │   │   │   ├── p-group-12.tsx
│   │   │   │   │   ├── p-group-13.tsx
│   │   │   │   │   ├── p-group-14.tsx
│   │   │   │   │   ├── p-group-15.tsx
│   │   │   │   │   ├── p-group-16.tsx
│   │   │   │   │   ├── p-group-17.tsx
│   │   │   │   │   ├── p-group-18.tsx
│   │   │   │   │   ├── p-group-19.tsx
│   │   │   │   │   ├── p-group-2.tsx
│   │   │   │   │   ├── p-group-20.tsx
│   │   │   │   │   ├── p-group-22.tsx
│   │   │   │   │   ├── p-group-23.tsx
│   │   │   │   │   ├── p-group-3.tsx
│   │   │   │   │   ├── p-group-4.tsx
│   │   │   │   │   ├── p-group-5.tsx
│   │   │   │   │   ├── p-group-6.tsx
│   │   │   │   │   ├── p-group-7.tsx
│   │   │   │   │   ├── p-group-8.tsx
│   │   │   │   │   ├── p-group-9.tsx
│   │   │   │   │   ├── p-input-1.tsx
│   │   │   │   │   ├── p-input-10.tsx
│   │   │   │   │   ├── p-input-11.tsx
│   │   │   │   │   ├── p-input-12.tsx
│   │   │   │   │   ├── p-input-13.tsx
│   │   │   │   │   ├── p-input-14.tsx
│   │   │   │   │   ├── p-input-15.tsx
│   │   │   │   │   ├── p-input-16.tsx
│   │   │   │   │   ├── p-input-17.tsx
│   │   │   │   │   ├── p-input-18.tsx
│   │   │   │   │   ├── p-input-19.tsx
│   │   │   │   │   ├── p-input-2.tsx
│   │   │   │   │   ├── p-input-3.tsx
│   │   │   │   │   ├── p-input-4.tsx
│   │   │   │   │   ├── p-input-5.tsx
│   │   │   │   │   ├── p-input-6.tsx
│   │   │   │   │   ├── p-input-7.tsx
│   │   │   │   │   ├── p-input-8.tsx
│   │   │   │   │   ├── p-input-9.tsx
│   │   │   │   │   ├── p-input-group-1.tsx
│   │   │   │   │   ├── p-input-group-10.tsx
│   │   │   │   │   ├── p-input-group-11.tsx
│   │   │   │   │   ├── p-input-group-12.tsx
│   │   │   │   │   ├── p-input-group-13.tsx
│   │   │   │   │   ├── p-input-group-14.tsx
│   │   │   │   │   ├── p-input-group-15.tsx
│   │   │   │   │   ├── p-input-group-16.tsx
│   │   │   │   │   ├── p-input-group-17.tsx
│   │   │   │   │   ├── p-input-group-18.tsx
│   │   │   │   │   ├── p-input-group-19.tsx
│   │   │   │   │   ├── p-input-group-2.tsx
│   │   │   │   │   ├── p-input-group-20.tsx
│   │   │   │   │   ├── p-input-group-21.tsx
│   │   │   │   │   ├── p-input-group-22.tsx
│   │   │   │   │   ├── p-input-group-23.tsx
│   │   │   │   │   ├── p-input-group-24.tsx
│   │   │   │   │   ├── p-input-group-26.tsx
│   │   │   │   │   ├── p-input-group-27.tsx
│   │   │   │   │   ├── p-input-group-28.tsx
│   │   │   │   │   ├── p-input-group-29.tsx
│   │   │   │   │   ├── p-input-group-3.tsx
│   │   │   │   │   ├── p-input-group-4.tsx
│   │   │   │   │   ├── p-input-group-5.tsx
│   │   │   │   │   ├── p-input-group-6.tsx
│   │   │   │   │   ├── p-input-group-7.tsx
│   │   │   │   │   ├── p-input-group-8.tsx
│   │   │   │   │   ├── p-input-group-9.tsx
│   │   │   │   │   ├── p-input-otp-1.tsx
│   │   │   │   │   ├── p-input-otp-2.tsx
│   │   │   │   │   ├── p-input-otp-3.tsx
│   │   │   │   │   ├── p-input-otp-4.tsx
│   │   │   │   │   ├── p-input-otp-5.tsx
│   │   │   │   │   ├── p-input-otp-6.tsx
│   │   │   │   │   ├── p-input-otp-7.tsx
│   │   │   │   │   ├── p-kbd-1.tsx
│   │   │   │   │   ├── p-menu-1.tsx
│   │   │   │   │   ├── p-menu-2.tsx
│   │   │   │   │   ├── p-menu-3.tsx
│   │   │   │   │   ├── p-menu-4.tsx
│   │   │   │   │   ├── p-menu-5.tsx
│   │   │   │   │   ├── p-menu-6.tsx
│   │   │   │   │   ├── p-menu-7.tsx
│   │   │   │   │   ├── p-menu-8.tsx
│   │   │   │   │   ├── p-menu-9.tsx
│   │   │   │   │   ├── p-meter-1.tsx
│   │   │   │   │   ├── p-meter-2.tsx
│   │   │   │   │   ├── p-meter-3.tsx
│   │   │   │   │   ├── p-meter-4.tsx
│   │   │   │   │   ├── p-number-field-1.tsx
│   │   │   │   │   ├── p-number-field-10.tsx
│   │   │   │   │   ├── p-number-field-11.tsx
│   │   │   │   │   ├── p-number-field-2.tsx
│   │   │   │   │   ├── p-number-field-3.tsx
│   │   │   │   │   ├── p-number-field-4.tsx
│   │   │   │   │   ├── p-number-field-5.tsx
│   │   │   │   │   ├── p-number-field-6.tsx
│   │   │   │   │   ├── p-number-field-7.tsx
│   │   │   │   │   ├── p-number-field-8.tsx
│   │   │   │   │   ├── p-number-field-9.tsx
│   │   │   │   │   ├── p-pagination-1.tsx
│   │   │   │   │   ├── p-pagination-2.tsx
│   │   │   │   │   ├── p-pagination-3.tsx
│   │   │   │   │   ├── p-popover-1.tsx
│   │   │   │   │   ├── p-popover-2.tsx
│   │   │   │   │   ├── p-popover-3.tsx
│   │   │   │   │   ├── p-preview-card-1.tsx
│   │   │   │   │   ├── p-progress-1.tsx
│   │   │   │   │   ├── p-progress-2.tsx
│   │   │   │   │   ├── p-progress-3.tsx
│   │   │   │   │   ├── p-radio-group-1.tsx
│   │   │   │   │   ├── p-radio-group-2.tsx
│   │   │   │   │   ├── p-radio-group-3.tsx
│   │   │   │   │   ├── p-radio-group-4.tsx
│   │   │   │   │   ├── p-radio-group-5.tsx
│   │   │   │   │   ├── p-scroll-area-1.tsx
│   │   │   │   │   ├── p-scroll-area-2.tsx
│   │   │   │   │   ├── p-scroll-area-3.tsx
│   │   │   │   │   ├── p-scroll-area-4.tsx
│   │   │   │   │   ├── p-scroll-area-5.tsx
│   │   │   │   │   ├── p-select-1.tsx
│   │   │   │   │   ├── p-select-10.tsx
│   │   │   │   │   ├── p-select-11.tsx
│   │   │   │   │   ├── p-select-12.tsx
│   │   │   │   │   ├── p-select-13.tsx
│   │   │   │   │   ├── p-select-14.tsx
│   │   │   │   │   ├── p-select-15.tsx
│   │   │   │   │   ├── p-select-16.tsx
│   │   │   │   │   ├── p-select-17.tsx
│   │   │   │   │   ├── p-select-18.tsx
│   │   │   │   │   ├── p-select-19.tsx
│   │   │   │   │   ├── p-select-2.tsx
│   │   │   │   │   ├── p-select-20.tsx
│   │   │   │   │   ├── p-select-21.tsx
│   │   │   │   │   ├── p-select-22.tsx
│   │   │   │   │   ├── p-select-23.tsx
│   │   │   │   │   ├── p-select-3.tsx
│   │   │   │   │   ├── p-select-4.tsx
│   │   │   │   │   ├── p-select-5.tsx
│   │   │   │   │   ├── p-select-6.tsx
│   │   │   │   │   ├── p-select-7.tsx
│   │   │   │   │   ├── p-select-8.tsx
│   │   │   │   │   ├── p-select-9.tsx
│   │   │   │   │   ├── p-separator-1.tsx
│   │   │   │   │   ├── p-sheet-1.tsx
│   │   │   │   │   ├── p-sheet-2.tsx
│   │   │   │   │   ├── p-sheet-3.tsx
│   │   │   │   │   ├── p-skeleton-1.tsx
│   │   │   │   │   ├── p-skeleton-2.tsx
│   │   │   │   │   ├── p-slider-1.tsx
│   │   │   │   │   ├── p-slider-10.tsx
│   │   │   │   │   ├── p-slider-11.tsx
│   │   │   │   │   ├── p-slider-12.tsx
│   │   │   │   │   ├── p-slider-13.tsx
│   │   │   │   │   ├── p-slider-14.tsx
│   │   │   │   │   ├── p-slider-15.tsx
│   │   │   │   │   ├── p-slider-16.tsx
│   │   │   │   │   ├── p-slider-17.tsx
│   │   │   │   │   ├── p-slider-18.tsx
│   │   │   │   │   ├── p-slider-19.tsx
│   │   │   │   │   ├── p-slider-2.tsx
│   │   │   │   │   ├── p-slider-20.tsx
│   │   │   │   │   ├── p-slider-21.tsx
│   │   │   │   │   ├── p-slider-22.tsx
│   │   │   │   │   ├── p-slider-23.tsx
│   │   │   │   │   ├── p-slider-3.tsx
│   │   │   │   │   ├── p-slider-4.tsx
│   │   │   │   │   ├── p-slider-5.tsx
│   │   │   │   │   ├── p-slider-6.tsx
│   │   │   │   │   ├── p-slider-7.tsx
│   │   │   │   │   ├── p-slider-8.tsx
│   │   │   │   │   ├── p-slider-9.tsx
│   │   │   │   │   ├── p-spinner-1.tsx
│   │   │   │   │   ├── p-switch-1.tsx
│   │   │   │   │   ├── p-switch-2.tsx
│   │   │   │   │   ├── p-switch-3.tsx
│   │   │   │   │   ├── p-switch-4.tsx
│   │   │   │   │   ├── p-switch-5.tsx
│   │   │   │   │   ├── p-switch-6.tsx
│   │   │   │   │   ├── p-table-1.tsx
│   │   │   │   │   ├── p-table-2.tsx
│   │   │   │   │   ├── p-table-3.tsx
│   │   │   │   │   ├── p-table-4.tsx
│   │   │   │   │   ├── p-tabs-1.tsx
│   │   │   │   │   ├── p-tabs-10.tsx
│   │   │   │   │   ├── p-tabs-11.tsx
│   │   │   │   │   ├── p-tabs-12.tsx
│   │   │   │   │   ├── p-tabs-13.tsx
│   │   │   │   │   ├── p-tabs-2.tsx
│   │   │   │   │   ├── p-tabs-3.tsx
│   │   │   │   │   ├── p-tabs-4.tsx
│   │   │   │   │   ├── p-tabs-5.tsx
│   │   │   │   │   ├── p-tabs-6.tsx
│   │   │   │   │   ├── p-tabs-7.tsx
│   │   │   │   │   ├── p-tabs-8.tsx
│   │   │   │   │   ├── p-tabs-9.tsx
│   │   │   │   │   ├── p-textarea-1.tsx
│   │   │   │   │   ├── p-textarea-10.tsx
│   │   │   │   │   ├── p-textarea-11.tsx
│   │   │   │   │   ├── p-textarea-12.tsx
│   │   │   │   │   ├── p-textarea-13.tsx
│   │   │   │   │   ├── p-textarea-14.tsx
│   │   │   │   │   ├── p-textarea-15.tsx
│   │   │   │   │   ├── p-textarea-2.tsx
│   │   │   │   │   ├── p-textarea-3.tsx
│   │   │   │   │   ├── p-textarea-4.tsx
│   │   │   │   │   ├── p-textarea-5.tsx
│   │   │   │   │   ├── p-textarea-6.tsx
│   │   │   │   │   ├── p-textarea-7.tsx
│   │   │   │   │   ├── p-textarea-8.tsx
│   │   │   │   │   ├── p-textarea-9.tsx
│   │   │   │   │   ├── p-toast-1.tsx
│   │   │   │   │   ├── p-toast-2.tsx
│   │   │   │   │   ├── p-toast-3.tsx
│   │   │   │   │   ├── p-toast-4.tsx
│   │   │   │   │   ├── p-toast-5.tsx
│   │   │   │   │   ├── p-toast-6.tsx
│   │   │   │   │   ├── p-toast-7.tsx
│   │   │   │   │   ├── p-toast-8.tsx
│   │   │   │   │   ├── p-toast-9.tsx
│   │   │   │   │   ├── p-toggle-1.tsx
│   │   │   │   │   ├── p-toggle-2.tsx
│   │   │   │   │   ├── p-toggle-3.tsx
│   │   │   │   │   ├── p-toggle-4.tsx
│   │   │   │   │   ├── p-toggle-5.tsx
│   │   │   │   │   ├── p-toggle-6.tsx
│   │   │   │   │   ├── p-toggle-7.tsx
│   │   │   │   │   ├── p-toggle-8.tsx
│   │   │   │   │   ├── p-toggle-group-1.tsx
│   │   │   │   │   ├── p-toggle-group-2.tsx
│   │   │   │   │   ├── p-toggle-group-3.tsx
│   │   │   │   │   ├── p-toggle-group-4.tsx
│   │   │   │   │   ├── p-toggle-group-5.tsx
│   │   │   │   │   ├── p-toggle-group-6.tsx
│   │   │   │   │   ├── p-toggle-group-7.tsx
│   │   │   │   │   ├── p-toggle-group-8.tsx
│   │   │   │   │   ├── p-toggle-group-9.tsx
│   │   │   │   │   ├── p-toolbar-1.tsx
│   │   │   │   │   ├── p-tooltip-1.tsx
│   │   │   │   │   ├── p-tooltip-2.tsx
│   │   │   │   │   ├── p-tooltip-3.tsx
│   │   │   │   │   └── p-tooltip-4.tsx
│   │   │   │   └── ui/
│   │   │   │       ├── accordion.tsx
│   │   │   │       ├── alert-dialog.tsx
│   │   │   │       ├── alert.tsx
│   │   │   │       ├── autocomplete.tsx
│   │   │   │       ├── avatar.tsx
│   │   │   │       ├── badge.tsx
│   │   │   │       ├── breadcrumb.tsx
│   │   │   │       ├── button.tsx
│   │   │   │       ├── calendar.tsx
│   │   │   │       ├── card.tsx
│   │   │   │       ├── checkbox-group.tsx
│   │   │   │       ├── checkbox.tsx
│   │   │   │       ├── collapsible.tsx
│   │   │   │       ├── combobox.tsx
│   │   │   │       ├── command.tsx
│   │   │   │       ├── dialog.tsx
│   │   │   │       ├── drawer.tsx
│   │   │   │       ├── empty.tsx
│   │   │   │       ├── field.tsx
│   │   │   │       ├── fieldset.tsx
│   │   │   │       ├── form.tsx
│   │   │   │       ├── frame.tsx
│   │   │   │       ├── group.tsx
│   │   │   │       ├── input-group.tsx
│   │   │   │       ├── input-otp.tsx
│   │   │   │       ├── input.tsx
│   │   │   │       ├── kbd.tsx
│   │   │   │       ├── label.tsx
│   │   │   │       ├── menu.tsx
│   │   │   │       ├── meter.tsx
│   │   │   │       ├── number-field.tsx
│   │   │   │       ├── pagination.tsx
│   │   │   │       ├── popover.tsx
│   │   │   │       ├── preview-card.tsx
│   │   │   │       ├── progress.tsx
│   │   │   │       ├── radio-group.tsx
│   │   │   │       ├── scroll-area.tsx
│   │   │   │       ├── select.tsx
│   │   │   │       ├── separator.tsx
│   │   │   │       ├── sheet.tsx
│   │   │   │       ├── sidebar.tsx
│   │   │   │       ├── skeleton.tsx
│   │   │   │       ├── slider.tsx
│   │   │   │       ├── spinner.tsx
│   │   │   │       ├── switch.tsx
│   │   │   │       ├── table.tsx
│   │   │   │       ├── tabs.tsx
│   │   │   │       ├── textarea.tsx
│   │   │   │       ├── toast.tsx
│   │   │   │       ├── toggle-group.tsx
│   │   │   │       ├── toggle.tsx
│   │   │   │       ├── toolbar.tsx
│   │   │   │       └── tooltip.tsx
│   │   │   ├── index.ts
│   │   │   ├── registry-base-ui.ts
│   │   │   ├── registry-categories.ts
│   │   │   ├── registry-hooks.ts
│   │   │   ├── registry-lib.ts
│   │   │   ├── registry-particles.ts
│   │   │   ├── registry-styles.ts
│   │   │   └── registry-ui.ts
│   │   ├── registry.json
│   │   ├── scripts/
│   │   │   ├── build-registry.mts
│   │   │   ├── sync-ui.mts
│   │   │   └── validate-registry-deps.mts
│   │   ├── source.config.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.scripts.json
│   └── www/
│       ├── .gitignore
│       ├── README.md
│       ├── app/
│       │   ├── auth/
│       │   │   └── page.tsx
│       │   ├── auth copy/
│       │   │   └── page.tsx
│       │   ├── calendar/
│       │   │   └── page.tsx
│       │   ├── email/
│       │   │   └── page.tsx
│       │   ├── globals.css
│       │   ├── layout.tsx
│       │   ├── not-found.tsx
│       │   ├── notifications/
│       │   │   └── page.tsx
│       │   ├── page.tsx
│       │   ├── payments/
│       │   │   └── page.tsx
│       │   ├── robots.ts
│       │   ├── scheduling/
│       │   │   └── page.tsx
│       │   ├── sitemap.ts
│       │   ├── sms/
│       │   │   └── page.tsx
│       │   └── video/
│       │       └── page.tsx
│       ├── next.config.ts
│       ├── package.json
│       ├── postcss.config.mjs
│       └── tsconfig.json
├── biome.json
├── bunfig.toml
├── lint-staged.config.mjs
├── package.json
├── packages/
│   ├── typescript-config/
│   │   ├── base.json
│   │   ├── nextjs.json
│   │   ├── package.json
│   │   └── react-library.json
│   └── ui/
│       ├── components.json
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── src/
│       │   ├── base-ui/
│       │   │   ├── csp-provider.ts
│       │   │   ├── direction-provider.ts
│       │   │   ├── merge-props.ts
│       │   │   └── use-render.ts
│       │   ├── components/
│       │   │   ├── accordion.tsx
│       │   │   ├── alert-dialog.tsx
│       │   │   ├── alert.tsx
│       │   │   ├── autocomplete.tsx
│       │   │   ├── avatar.tsx
│       │   │   ├── badge.tsx
│       │   │   ├── breadcrumb.tsx
│       │   │   ├── button.tsx
│       │   │   ├── calendar.tsx
│       │   │   ├── card.tsx
│       │   │   ├── checkbox-group.tsx
│       │   │   ├── checkbox.tsx
│       │   │   ├── collapsible.tsx
│       │   │   ├── combobox.tsx
│       │   │   ├── command.tsx
│       │   │   ├── dialog.tsx
│       │   │   ├── drawer.tsx
│       │   │   ├── empty.tsx
│       │   │   ├── field.tsx
│       │   │   ├── fieldset.tsx
│       │   │   ├── form.tsx
│       │   │   ├── frame.tsx
│       │   │   ├── group.tsx
│       │   │   ├── input-group.tsx
│       │   │   ├── input-otp.tsx
│       │   │   ├── input.tsx
│       │   │   ├── kbd.tsx
│       │   │   ├── label.tsx
│       │   │   ├── menu.tsx
│       │   │   ├── meter.tsx
│       │   │   ├── number-field.tsx
│       │   │   ├── pagination.tsx
│       │   │   ├── popover.tsx
│       │   │   ├── preview-card.tsx
│       │   │   ├── progress.tsx
│       │   │   ├── radio-group.tsx
│       │   │   ├── scroll-area.tsx
│       │   │   ├── select.tsx
│       │   │   ├── separator.tsx
│       │   │   ├── sheet.tsx
│       │   │   ├── sidebar.tsx
│       │   │   ├── skeleton.tsx
│       │   │   ├── slider.tsx
│       │   │   ├── spinner.tsx
│       │   │   ├── switch.tsx
│       │   │   ├── table.tsx
│       │   │   ├── tabs.tsx
│       │   │   ├── textarea.tsx
│       │   │   ├── toast.tsx
│       │   │   ├── toggle-group.tsx
│       │   │   ├── toggle.tsx
│       │   │   ├── toolbar.tsx
│       │   │   └── tooltip.tsx
│       │   ├── fonts/
│       │   │   ├── README.md
│       │   │   └── index.ts
│       │   ├── hooks/
│       │   │   ├── use-copy-to-clipboard.ts
│       │   │   └── use-media-query.ts
│       │   ├── lib/
│       │   │   ├── config.ts
│       │   │   ├── highlight-code.ts
│       │   │   └── utils.ts
│       │   ├── shared/
│       │   │   ├── code-block.tsx
│       │   │   ├── copy-button.tsx
│       │   │   ├── github-link.tsx
│       │   │   ├── icons.tsx
│       │   │   ├── mobile-nav.tsx
│       │   │   ├── mode-switcher.tsx
│       │   │   ├── page-header.tsx
│       │   │   ├── product-label.tsx
│       │   │   ├── products-dropdown.tsx
│       │   │   ├── site-cta.tsx
│       │   │   ├── site-footer.tsx
│       │   │   ├── site-header.tsx
│       │   │   └── theme-provider.tsx
│       │   └── styles/
│       │       └── globals.css
│       ├── test/
│       │   └── components/
│       │       ├── button.test.tsx
│       │       └── separator.test.tsx
│       ├── tsconfig.json
│       ├── tsconfig.lint.json
│       └── tsconfig.tsbuildinfo
├── tsconfig.json
└── turbo.json
Download .txt
Showing preview only (240K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2547 symbols across 1429 files)

FILE: apps/examples/calcom/app/(dashboard)/booking/booking-skeleton.tsx
  function BookingSkeletonItem (line 13) | function BookingSkeletonItem() {
  function BookingsListSkeleton (line 44) | function BookingsListSkeleton() {

FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/bookings-empty.tsx
  constant ARTIFICIAL_DELAY_MS (line 14) | const ARTIFICIAL_DELAY_MS = 400;
  function BookingsEmpty (line 16) | function BookingsEmpty() {

FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/loading.tsx
  function Loading (line 3) | function Loading() {

FILE: apps/examples/calcom/app/(dashboard)/booking/canceled/page.tsx
  function Page (line 5) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/booking/page.tsx
  function Page (line 3) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/booking/past/booking-actions.tsx
  function BookingActions (line 31) | function BookingActions() {
  function BookingActionsSkeleton (line 103) | function BookingActionsSkeleton() {

FILE: apps/examples/calcom/app/(dashboard)/booking/past/bookings-list.tsx
  constant ARTIFICIAL_DELAY_MS (line 60) | const ARTIFICIAL_DELAY_MS = 800;
  function BookingsList (line 62) | function BookingsList() {

FILE: apps/examples/calcom/app/(dashboard)/booking/past/loading.tsx
  function Loading (line 3) | function Loading() {

FILE: apps/examples/calcom/app/(dashboard)/booking/past/page.tsx
  function Page (line 6) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/bookings-empty.tsx
  constant ARTIFICIAL_DELAY_MS (line 14) | const ARTIFICIAL_DELAY_MS = 300;
  function BookingsEmpty (line 16) | function BookingsEmpty() {

FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/loading.tsx
  function Loading (line 3) | function Loading() {

FILE: apps/examples/calcom/app/(dashboard)/booking/recurring/page.tsx
  function Page (line 5) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/bookings-empty.tsx
  constant ARTIFICIAL_DELAY_MS (line 14) | const ARTIFICIAL_DELAY_MS = 400;
  function BookingsEmpty (line 16) | function BookingsEmpty() {

FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/loading.tsx
  function Loading (line 3) | function Loading() {

FILE: apps/examples/calcom/app/(dashboard)/booking/unconfirmed/page.tsx
  function Page (line 5) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/bookings-empty.tsx
  constant ARTIFICIAL_DELAY_MS (line 14) | const ARTIFICIAL_DELAY_MS = 400;
  function BookingsEmpty (line 16) | function BookingsEmpty() {

FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/loading.tsx
  function Loading (line 3) | function Loading() {

FILE: apps/examples/calcom/app/(dashboard)/booking/upcoming/page.tsx
  function Page (line 5) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/event-types/add-event-type-dialog.tsx
  function AddEventTypeDialog (line 31) | function AddEventTypeDialog({

FILE: apps/examples/calcom/app/(dashboard)/event-types/event-type-actions.tsx
  type EventTypeActionsProps (line 32) | interface EventTypeActionsProps {
  function EventTypeActions (line 38) | function EventTypeActions({
  function EventTypeActionsSkeleton (line 175) | function EventTypeActionsSkeleton() {

FILE: apps/examples/calcom/app/(dashboard)/event-types/event-types-list.tsx
  function EventTypeSkeletonItem (line 62) | function EventTypeSkeletonItem() {
  constant ARTIFICIAL_DELAY_MS (line 83) | const ARTIFICIAL_DELAY_MS = 800;
  type EventTypeItemContentProps (line 85) | interface EventTypeItemContentProps {
  function EventTypeItemContent (line 93) | function EventTypeItemContent({
  function EventTypesList (line 220) | function EventTypesList() {

FILE: apps/examples/calcom/app/(dashboard)/event-types/page.tsx
  function Page (line 16) | function Page() {

FILE: apps/examples/calcom/app/(dashboard)/layout.tsx
  function DashboardLayout (line 8) | function DashboardLayout({

FILE: apps/examples/calcom/app/(dashboard)/page.tsx
  function Page (line 3) | function Page() {

FILE: apps/examples/calcom/app/(settings)/settings/layout.tsx
  function SettingsLayout (line 7) | function SettingsLayout({

FILE: apps/examples/calcom/app/(settings)/settings/my-account/general/page.tsx
  function GeneralSettingsPage (line 38) | function GeneralSettingsPage() {

FILE: apps/examples/calcom/app/(settings)/settings/my-account/page.tsx
  function Page (line 3) | function Page() {

FILE: apps/examples/calcom/app/(settings)/settings/my-account/profile/page.tsx
  function EmailInput (line 53) | function EmailInput({
  type EmailItem (line 95) | interface EmailItem {
  function ProfileSettingsPage (line 106) | function ProfileSettingsPage() {

FILE: apps/examples/calcom/app/(settings)/settings/page.tsx
  function Page (line 3) | function Page() {

FILE: apps/examples/calcom/app/layout.tsx
  function RootLayout (line 19) | function RootLayout({

FILE: apps/examples/calcom/components/app/app-command.tsx
  type Item (line 46) | interface Item {
  type Group (line 53) | interface Group {
  type AIState (line 235) | interface AIState {
  function AppCommand (line 258) | function AppCommand(): React.ReactElement {

FILE: apps/examples/calcom/components/app/app-header.tsx
  function AppHeader (line 4) | function AppHeader({
  function AppHeaderContent (line 16) | function AppHeaderContent({
  function AppHeaderDescription (line 32) | function AppHeaderDescription({
  function AppHeaderActions (line 44) | function AppHeaderActions({

FILE: apps/examples/calcom/components/app/app-mobile-footer.tsx
  function AppMobileFooter (line 24) | function AppMobileFooter(): React.ReactElement {

FILE: apps/examples/calcom/components/app/app-mobile-header.tsx
  function AppMobileHeader (line 6) | function AppMobileHeader(): React.ReactElement {

FILE: apps/examples/calcom/components/app/app-sidebar.tsx
  function AppSidebar (line 17) | function AppSidebar({

FILE: apps/examples/calcom/components/app/bookings-filters.tsx
  function toKebabCase (line 50) | function toKebabCase(str: string): string {
  function getUniqueEventTypes (line 57) | function getUniqueEventTypes(
  function getUniqueMembers (line 77) | function getUniqueMembers(
  function getUniqueAttendeeNames (line 101) | function getUniqueAttendeeNames(
  function getUniqueAttendeeEmails (line 121) | function getUniqueAttendeeEmails(
  function getUniqueBookingUids (line 141) | function getUniqueBookingUids(
  function getInitials (line 152) | function getInitials(name: string): string {
  function CountBadge (line 162) | function CountBadge({ count }: { count: number }): React.ReactElement {
  function SelectionDisplay (line 170) | function SelectionDisplay({
  function MemberAvatar (line 188) | function MemberAvatar({
  function useActiveFilters (line 209) | function useActiveFilters(): {
  function FilterMenu (line 253) | function FilterMenu({
  function ActiveFilterComponent (line 293) | function ActiveFilterComponent({
  type SavedFilter (line 474) | type SavedFilter = {
  function SavedFiltersCombobox (line 486) | function SavedFiltersCombobox(): React.ReactElement {
  type FilterOption (line 607) | type FilterOption = {
  type FilterCategory (line 613) | type FilterCategory = {
  type ActiveFilter (line 619) | type ActiveFilter = {
  function BookingsFilters (line 665) | function BookingsFilters(): React.ReactElement {

FILE: apps/examples/calcom/components/app/bookings-nav.tsx
  function BookingsNav (line 14) | function BookingsNav(): React.ReactElement {

FILE: apps/examples/calcom/components/app/bookings-view.tsx
  function BookingsView (line 8) | function BookingsView(): React.ReactElement {

FILE: apps/examples/calcom/components/app/nav-main.tsx
  type BaseNavItem (line 34) | type BaseNavItem = {
  type NavSubItem (line 42) | type NavSubItem = {
  type NavItemWithChildren (line 47) | type NavItemWithChildren = BaseNavItem & { items: NavSubItem[] };
  type NavItemLeaf (line 48) | type NavItemLeaf = BaseNavItem & { items?: undefined };
  type NavItem (line 49) | type NavItem = NavItemLeaf | NavItemWithChildren;
  function hasSubItems (line 51) | function hasSubItems(item: NavItem): item is NavItemWithChildren {
  function NavItemWithSubmenu (line 55) | function NavItemWithSubmenu({
  function NavItemSimple (line 170) | function NavItemSimple({ item }: { item: NavItemLeaf }): React.ReactElem...
  function NavMain (line 190) | function NavMain({ items }: { items: NavItem[] }): React.ReactElement {

FILE: apps/examples/calcom/components/app/nav-secondary.tsx
  function NavSecondary (line 14) | function NavSecondary({

FILE: apps/examples/calcom/components/app/tabbed-nav.tsx
  type Tab (line 8) | type Tab = {
  type TabbedNavProps (line 14) | type TabbedNavProps = {
  function TabbedNav (line 21) | function TabbedNav({

FILE: apps/examples/calcom/components/copyable-field.tsx
  constant RESET_DELAY (line 22) | const RESET_DELAY = 2000;
  type CopyableFieldProps (line 24) | interface CopyableFieldProps {
  function CopyableField (line 36) | function CopyableField({

FILE: apps/examples/calcom/components/debug-context.tsx
  type DebugContextValue (line 7) | interface DebugContextValue {
  function DebugProvider (line 17) | function DebugProvider({
  function useDebug (line 41) | function useDebug(): DebugContextValue {

FILE: apps/examples/calcom/components/debug-popover.tsx
  function DebugPopover (line 13) | function DebugPopover(): React.ReactElement {

FILE: apps/examples/calcom/components/header-actions.tsx
  function HeaderActions (line 16) | function HeaderActions(): React.ReactElement {

FILE: apps/examples/calcom/components/item-label.tsx
  type ItemLabelProps (line 5) | interface ItemLabelProps {
  function ItemLabel (line 11) | function ItemLabel({

FILE: apps/examples/calcom/components/list-item.tsx
  type ListItemProps (line 15) | interface ListItemProps extends useRender.ComponentProps<"div"> {
  function ListItem (line 28) | function ListItem({
  type SortableListItemProps (line 96) | interface SortableListItemProps {
  function SortableListItem (line 110) | function SortableListItem({
  function ListItemDragHandle (line 142) | function ListItemDragHandle({
  function ListItemContent (line 171) | function ListItemContent({
  function ListItemHeader (line 190) | function ListItemHeader({
  function ListItemTitle (line 209) | function ListItemTitle({
  function ListItemTitleLink (line 228) | function ListItemTitleLink({
  function ListItemDescription (line 250) | function ListItemDescription({
  function ListItemBadges (line 269) | function ListItemBadges({
  function ListItemActions (line 288) | function ListItemActions({

FILE: apps/examples/calcom/components/logo.tsx
  type LogoProps (line 4) | type LogoProps = Omit<React.ComponentPropsWithoutRef<typeof Link>, "href">;
  function Logo (line 6) | function Logo(props: LogoProps): React.ReactElement {

FILE: apps/examples/calcom/components/mobile-header.tsx
  function MobileHeader (line 7) | function MobileHeader({

FILE: apps/examples/calcom/components/settings-toggle.tsx
  type SettingsToggleProps (line 14) | interface SettingsToggleProps {
  function SettingsToggle (line 24) | function SettingsToggle({

FILE: apps/examples/calcom/components/settings/settings-mobile-header.tsx
  function SettingsMobileHeader (line 8) | function SettingsMobileHeader(): React.ReactElement {

FILE: apps/examples/calcom/components/settings/settings-nav-section.tsx
  type SettingsNavSectionProps (line 16) | interface SettingsNavSectionProps {
  function SettingsNavSectionHeader (line 23) | function SettingsNavSectionHeader({
  function SettingsNavSheetItem (line 51) | function SettingsNavSheetItem({
  function SettingsNavSection (line 73) | function SettingsNavSection({

FILE: apps/examples/calcom/components/settings/settings-sheet.tsx
  function SettingsSheet (line 11) | function SettingsSheet(): React.ReactElement {

FILE: apps/examples/calcom/components/settings/settings-sidebar.tsx
  function SettingsNavSection (line 27) | function SettingsNavSection({
  function SettingsSidebar (line 72) | function SettingsSidebar({

FILE: apps/examples/calcom/components/settings/settings-toggle.tsx
  type SettingsToggleProps (line 13) | interface SettingsToggleProps {
  function SettingsToggle (line 19) | function SettingsToggle({

FILE: apps/examples/calcom/components/sortable.tsx
  type SortableItemProps (line 51) | interface SortableItemProps {
  type SortableListProps (line 56) | interface SortableListProps<T extends { id: UniqueIdentifier }> {
  type SortableItemRenderProps (line 63) | interface SortableItemRenderProps {
  function SortableItem (line 73) | function SortableItem({ id, children }: SortableItemProps): ReactNode {
  function SortableList (line 93) | function SortableList<T extends { id: UniqueIdentifier }>({

FILE: apps/examples/calcom/components/ui/sidebar.tsx
  type SidebarTooltipHandle (line 19) | type SidebarTooltipHandle = ReturnType<
  function SidebarProvider (line 37) | function SidebarProvider({
  function useSidebarMenuOpen (line 81) | function useSidebarMenuOpen(): {
  function Sidebar (line 88) | function Sidebar({
  function SidebarInset (line 118) | function SidebarInset({
  function SidebarHeader (line 137) | function SidebarHeader({
  function SidebarSeparator (line 151) | function SidebarSeparator({
  function SidebarContent (line 165) | function SidebarContent({
  function SidebarGroup (line 181) | function SidebarGroup({
  function SidebarGroupLabel (line 198) | function SidebarGroupLabel({
  function SidebarGroupAction (line 220) | function SidebarGroupAction({
  function SidebarGroupContent (line 243) | function SidebarGroupContent({
  function SidebarMenu (line 257) | function SidebarMenu({
  function SidebarMenuItem (line 271) | function SidebarMenuItem({
  function SidebarMenuButton (line 285) | function SidebarMenuButton({
  function SidebarMenuAction (line 335) | function SidebarMenuAction({
  function SidebarMenuSkeleton (line 363) | function SidebarMenuSkeleton({
  function SidebarMenuSub (line 401) | function SidebarMenuSub({
  function SidebarMenuSubItem (line 419) | function SidebarMenuSubItem({
  function SidebarMenuSubButton (line 433) | function SidebarMenuSubButton({

FILE: apps/examples/calcom/components/user-menu.tsx
  type UserMenuProps (line 32) | interface UserMenuProps {
  function UserMenu (line 36) | function UserMenu({

FILE: apps/examples/calcom/components/workflows-badge.tsx
  function WorkflowBadge (line 5) | function WorkflowBadge(): React.ReactElement {

FILE: apps/examples/calcom/hooks/use-loading-state.ts
  function useLoadingState (line 9) | function useLoadingState(delayMs: number) {

FILE: apps/examples/calcom/hooks/use-scroll-hide.ts
  constant DEFAULT_SCROLL_THRESHOLD (line 3) | const DEFAULT_SCROLL_THRESHOLD = 48;
  function useScrollHide (line 5) | function useScrollHide(threshold = DEFAULT_SCROLL_THRESHOLD) {

FILE: apps/examples/calcom/lib/event-types-types.ts
  type SchedulingType (line 12) | type SchedulingType = "COLLECTIVE" | "ROUND_ROBIN" | "MANAGED";
  type PeriodType (line 17) | type PeriodType = "UNLIMITED" | "ROLLING" | "RANGE";
  type LocationType (line 22) | type LocationType =

FILE: apps/examples/calcom/lib/markdown-to-safe-html.ts
  function markdownToSafeHTML (line 6) | function markdownToSafeHTML(markdown: string | null) {

FILE: apps/examples/calcom/lib/mock-ai-data.ts
  type ReferenceLink (line 1) | interface ReferenceLink {
  constant MOCK_AI_RESPONSE (line 6) | const MOCK_AI_RESPONSE = `I'd be happy to help you with billing informat...
  constant MOCK_REFERENCE_LINKS (line 46) | const MOCK_REFERENCE_LINKS: ReferenceLink[] = [

FILE: apps/examples/calcom/lib/mock-bookings-data.ts
  type BookingStatus (line 12) | type BookingStatus =
  type SchedulingType (line 19) | type SchedulingType = "ROUND_ROBIN" | "COLLECTIVE" | "MANAGED" | null;
  type BookingUser (line 21) | interface BookingUser {
  type BookingAttendee (line 30) | interface BookingAttendee {
  type BookingEventType (line 40) | interface BookingEventType {
  type BookingReference (line 90) | interface BookingReference {
  type BookingPayment (line 103) | interface BookingPayment {
  type BookingSeat (line 112) | interface BookingSeat {
  type AssignmentReason (line 119) | interface AssignmentReason {
  type BookingReport (line 126) | interface BookingReport {
  type Booking (line 134) | interface Booking {
  function formatBookingDate (line 1106) | function formatBookingDate(date: Date): string {
  function formatBookingTime (line 1114) | function formatBookingTime(startTime: Date, endTime: Date): string {
  function getBookingParticipants (line 1124) | function getBookingParticipants(booking: Booking): string {
  function getLocationLabel (line 1135) | function getLocationLabel(location: string | null): string {
  function getLocationIcon (line 1146) | function getLocationIcon(
  type BookingFilter (line 1159) | interface BookingFilter {
  function filterBookings (line 1164) | function filterBookings(
  function getEventTypeLabel (line 1249) | function getEventTypeLabel(optionId: string): string {
  function isSameDay (line 1261) | function isSameDay(date1: Date, date2: Date): boolean {
  function addDays (line 1269) | function addDays(date: Date, days: number): Date {
  function isWithinWeek (line 1275) | function isWithinWeek(date: Date, referenceDate: Date): boolean {
  function isWithinLastWeek (line 1284) | function isWithinLastWeek(date: Date, referenceDate: Date): boolean {
  function isSameMonth (line 1293) | function isSameMonth(date: Date, referenceDate: Date): boolean {
  function isLastMonth (line 1300) | function isLastMonth(date: Date, referenceDate: Date): boolean {

FILE: apps/examples/calcom/lib/mock-event-types-data.ts
  type EventTypeUser (line 14) | interface EventTypeUser {
  type EventTypeHost (line 25) | interface EventTypeHost {
  type HashedLink (line 37) | interface HashedLink {
  type ChildEventType (line 48) | interface ChildEventType {
  type EventTypeColor (line 58) | interface EventTypeColor {
  type RecurringEvent (line 66) | interface RecurringEvent {
  type AIPhoneCallConfig (line 75) | interface AIPhoneCallConfig {
  type InstantMeetingSchedule (line 85) | interface InstantMeetingSchedule {
  type EventType (line 94) | interface EventType {
  type EventTypeProfile (line 195) | interface EventTypeProfile {
  type EventTypeGroup (line 205) | interface EventTypeGroup {
  function getPersonalEventTypes (line 1010) | function getPersonalEventTypes(): EventType[] {
  function getTeamEventTypes (line 1017) | function getTeamEventTypes(teamId: number): EventType[] {
  function formatDuration (line 1024) | function formatDuration(minutes: number): string {
  function buildEventTypePath (line 1039) | function buildEventTypePath(

FILE: apps/examples/calcom/lib/navigation-data.ts
  type NavItem (line 18) | interface NavItem {
  type User (line 31) | interface User {

FILE: apps/examples/calcom/lib/settings-navigation-data.ts
  type SettingsNavChild (line 8) | interface SettingsNavChild {
  type SettingsNavItem (line 14) | interface SettingsNavItem {

FILE: apps/origin/app/[category]/page.tsx
  type Props (line 12) | type Props = {
  function generateMetadata (line 16) | async function generateMetadata({ params }: Props): Promise<Metadata> {
  function generateStaticParams (line 50) | async function generateStaticParams() {
  function Page (line 56) | async function Page({ params }: Props) {

FILE: apps/origin/app/easings/easings.tsx
  type Easing (line 17) | interface Easing {
  type EasingsProps (line 22) | interface EasingsProps {
  type EasingFilter (line 26) | type EasingFilter = "all" | "in" | "out" | "in-out";
  type AnimationType (line 37) | type AnimationType = "translate" | "scale" | "rotate";
  function useAnimationKey (line 39) | function useAnimationKey(
  function Easings (line 270) | function Easings({ easings }: EasingsProps) {

FILE: apps/origin/app/easings/page.tsx
  function Page (line 130) | function Page() {

FILE: apps/origin/app/layout.tsx
  function RootLayout (line 38) | function RootLayout({

FILE: apps/origin/app/not-found.tsx
  function NotFound (line 5) | function NotFound() {

FILE: apps/origin/app/page.tsx
  function Page (line 7) | function Page() {
  type CategoryCardProps (line 46) | type CategoryCardProps = {
  function CategoryCard (line 53) | function CategoryCard({
  type ImageComponentProps (line 122) | type ImageComponentProps = {
  function ImageComponent (line 127) | function ImageComponent({ imageBasePath, alt }: ImageComponentProps) {

FILE: apps/origin/app/search/components-container.tsx
  function ComponentsContainer (line 14) | function ComponentsContainer() {

FILE: apps/origin/app/search/multiselect.tsx
  type Option (line 16) | interface Option {
  type GroupOption (line 25) | interface GroupOption {
  type MultipleSelectorProps (line 29) | interface MultipleSelectorProps {
  type MultipleSelectorRef (line 86) | interface MultipleSelectorRef {
  function useDebounce (line 93) | function useDebounce<T>(value: T, delay?: number): T {
  function transToGroupOption (line 107) | function transToGroupOption(options: Option[], groupBy?: string) {
  function removePickedOption (line 128) | function removePickedOption(groupOption: GroupOption, picked: Option[]) {
  function isOptionsExist (line 139) | function isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {

FILE: apps/origin/app/search/page.tsx
  function Page (line 11) | function Page() {

FILE: apps/origin/app/search/search-field.tsx
  type SearchFieldProps (line 10) | interface SearchFieldProps {
  function SearchField (line 20) | function SearchField({

FILE: apps/origin/app/sitemap.ts
  function sitemap (line 4) | function sitemap(): MetadataRoute.Sitemap {

FILE: apps/origin/components/cli-commands.tsx
  function CliCommands (line 12) | function CliCommands({ name }: { name: string }) {

FILE: apps/origin/components/code-block.tsx
  function highlight (line 9) | async function highlight(code: string, lang: BundledLanguage) {
  type Props (line 22) | type Props = {
  function CodeBlock (line 29) | function CodeBlock({

FILE: apps/origin/components/component-card.tsx
  function ComponentCard (line 4) | function ComponentCard({

FILE: apps/origin/components/component-details.tsx
  function ComponentDetails (line 28) | function ComponentDetails({

FILE: apps/origin/components/component-loader-client.tsx
  type ComponentLoaderProps (line 8) | interface ComponentLoaderProps {
  function ComponentLoader (line 12) | function ComponentLoader<TProps extends object>({

FILE: apps/origin/components/component-loader-server.tsx
  type ComponentLoaderProps (line 4) | interface ComponentLoaderProps {
  function ComponentLoader (line 8) | async function ComponentLoader<TProps extends object>({

FILE: apps/origin/components/cta.tsx
  function Cta (line 3) | function Cta() {

FILE: apps/origin/components/footer.tsx
  function Footer (line 1) | function Footer() {

FILE: apps/origin/components/header-link.tsx
  function HeaderLink (line 5) | function HeaderLink({

FILE: apps/origin/components/header.tsx
  function Header (line 11) | function Header() {

FILE: apps/origin/components/page-grid.tsx
  function PageGrid (line 1) | function PageGrid({ children }: { children: React.ReactNode }) {

FILE: apps/origin/components/page-header.tsx
  type PageHeaderProps (line 3) | interface PageHeaderProps {
  function PageHeader (line 9) | function PageHeader({

FILE: apps/origin/components/search-button.tsx
  function SearchButton (line 8) | function SearchButton() {

FILE: apps/origin/components/subscribe-action.ts
  type EmailOctopusError (line 5) | type EmailOctopusError = {
  type SubscribeResult (line 15) | type SubscribeResult = { success: true } | { success: false; error: stri...
  function subscribe (line 17) | async function subscribe(email: string): Promise<SubscribeResult> {

FILE: apps/origin/components/subscribe-form.tsx
  type FormStatus (line 11) | type FormStatus = "idle" | "loading" | "success" | "error";
  function Form (line 13) | function Form() {
  function SubscribeBottom (line 116) | function SubscribeBottom() {
  function Illustration (line 137) | function Illustration({ className }: { className?: string }) {

FILE: apps/origin/components/theme-provider.tsx
  function ThemeProvider (line 8) | function ThemeProvider({ children, ...props }: ThemeProviderProps) {

FILE: apps/origin/components/theme-toggle.tsx
  function ThemeToggle (line 7) | function ThemeToggle() {

FILE: apps/origin/components/top-banner.tsx
  function TopBanner (line 3) | function TopBanner() {

FILE: apps/origin/config/components.ts
  type ComponentCategory (line 1) | interface ComponentCategory {
  function getCategory (line 793) | function getCategory(slug: string): ComponentCategory | undefined {

FILE: apps/origin/hooks/use-config.ts
  type Config (line 4) | type Config = {
  function useConfig (line 12) | function useConfig() {

FILE: apps/origin/hooks/use-copy.ts
  function useCopy (line 3) | function useCopy(duration = 1500) {

FILE: apps/origin/hooks/use-mobile.tsx
  constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768;
  function useIsMobile (line 5) | function useIsMobile() {

FILE: apps/origin/lib/utils.ts
  function cn (line 60) | function cn(...inputs: ClassValue[]) {

FILE: apps/origin/registry/default/components/comp-01.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-02.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-03.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-04.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-05.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-06.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-07.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-08.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-09.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-10.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-100.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-101.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-102.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-103.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-104.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-105.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-106.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-107.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-108.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-109.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-11.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-110.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-111.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-112.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-113.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-114.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-115.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-116.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-117.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-118.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-119.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-12.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-120.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-121.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-122.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-123.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-124.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-125.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-126.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-127.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-128.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-129.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-13.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-130.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-131.tsx
  function Component (line 32) | function Component() {

FILE: apps/origin/registry/default/components/comp-132.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-133.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-134.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-135.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-136.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-137.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-138.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-139.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-14.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-140.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-141.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-142.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-143.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-144.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-145.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-146.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-147.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-148.tsx
  type TreeNode (line 8) | interface TreeNode {
  function Component (line 32) | function Component() {

FILE: apps/origin/registry/default/components/comp-149.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-15.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-150.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-151.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-152.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-153.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-154.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-155.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-156.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-157.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-158.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-159.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-16.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-160.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-161.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-162.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-163.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-164.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-165.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-166.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-167.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-168.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-169.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-17.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-170.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-171.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-172.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-173.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-174.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-175.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-176.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-177.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-178.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-179.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-18.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-180.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-181.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-182.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-183.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-184.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-185.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-186.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-187.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-188.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-189.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-19.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-190.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-191.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-192.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-193.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-194.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-195.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-196.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-197.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-198.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-199.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-20.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-200.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-201.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-202.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-203.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-204.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-205.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-206.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-207.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-208.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-209.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-21.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-210.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-211.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-212.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-213.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-214.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-215.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-216.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-217.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-218.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-219.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-22.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-220.tsx
  function StatusDot (line 11) | function StatusDot({ className }: { className?: string }) {
  function Component (line 27) | function Component() {

FILE: apps/origin/registry/default/components/comp-221.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-222.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-223.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-224.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-225.tsx
  function Component (line 55) | function Component() {

FILE: apps/origin/registry/default/components/comp-226.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-227.tsx
  function Component (line 33) | function Component() {

FILE: apps/origin/registry/default/components/comp-228.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-229.tsx
  function Component (line 89) | function Component() {

FILE: apps/origin/registry/default/components/comp-23.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-230.tsx
  function Component (line 34) | function Component() {

FILE: apps/origin/registry/default/components/comp-231.tsx
  function Component (line 22) | function Component() {

FILE: apps/origin/registry/default/components/comp-232.tsx
  function Component (line 63) | function Component() {

FILE: apps/origin/registry/default/components/comp-233.tsx
  function Component (line 96) | function Component() {

FILE: apps/origin/registry/default/components/comp-234.tsx
  function Component (line 76) | function Component() {

FILE: apps/origin/registry/default/components/comp-235.tsx
  function Component (line 73) | function Component() {

FILE: apps/origin/registry/default/components/comp-236.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-237.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-238.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-239.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-24.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-240.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-241.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-242.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-243.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-244.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-245.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-246.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-247.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-248.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-249.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-25.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-250.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-251.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-252.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-253.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-254.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-255.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-256.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-257.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-258.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-259.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-26.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-260.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-261.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-262.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-263.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-264.tsx
  function Component (line 11) | function Component() {
  function SliderWithInput (line 70) | function SliderWithInput({

FILE: apps/origin/registry/default/components/comp-265.tsx
  function Component (line 133) | function Component() {

FILE: apps/origin/registry/default/components/comp-266.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-267.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-268.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-269.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-27.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-270.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-271.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-272.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-273.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-274.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-275.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-276.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-277.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-278.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-279.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-28.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-280.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-281.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-282.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-283.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-284.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-285.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-286.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-287.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-288.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-289.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-29.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-290.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-291.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-292.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-293.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-294.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-295.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-296.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-297.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-298.tsx
  type UseProgressTimerProps (line 16) | interface UseProgressTimerProps {
  function useProgressTimer (line 22) | function useProgressTimer({
  function Component (line 99) | function Component() {

FILE: apps/origin/registry/default/components/comp-299.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-30.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-300.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-301.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-302.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-303.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-304.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-305.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-306.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-307.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-308.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-309.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-31.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-310.tsx
  type TimeLeft (line 12) | interface TimeLeft {
  function Component (line 20) | function Component() {

FILE: apps/origin/registry/default/components/comp-311.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-312.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-313.tsx
  function AlertComponent (line 14) | function AlertComponent() {

FILE: apps/origin/registry/default/components/comp-314.tsx
  function AlertComponent (line 15) | function AlertComponent() {

FILE: apps/origin/registry/default/components/comp-315.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-316.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-317.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-318.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-319.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-32.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-320.tsx
  constant PROJECT_NAME (line 19) | const PROJECT_NAME = "coss-ui";
  function Component (line 21) | function Component() {

FILE: apps/origin/registry/default/components/comp-321.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-322.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-323.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-324.tsx
  constant CORRECT_CODE (line 17) | const CORRECT_CODE = "6548";
  function Component (line 19) | function Component() {
  function Slot (line 129) | function Slot(props: SlotProps) {

FILE: apps/origin/registry/default/components/comp-325.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-326.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-327.tsx
  function Component (line 24) | function Component() {

FILE: apps/origin/registry/default/components/comp-328.tsx
  function Component (line 20) | function Component() {

FILE: apps/origin/registry/default/components/comp-329.tsx
  function Component (line 21) | function Component() {

FILE: apps/origin/registry/default/components/comp-33.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-330.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-331.tsx
  function Component (line 43) | function Component() {
  function ProfileBg (line 173) | function ProfileBg() {
  function Avatar (line 228) | function Avatar() {

FILE: apps/origin/registry/default/components/comp-332.tsx
  function Component (line 18) | function Component() {

FILE: apps/origin/registry/default/components/comp-333.tsx
  function Component (line 22) | function Component() {

FILE: apps/origin/registry/default/components/comp-334.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-335.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-336.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-337.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-338.tsx
  function Component (line 40) | function Component() {

FILE: apps/origin/registry/default/components/comp-339.tsx
  function Component (line 46) | function Component() {

FILE: apps/origin/registry/default/components/comp-34.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-340.tsx
  function Component (line 40) | function Component() {

FILE: apps/origin/registry/default/components/comp-341.tsx
  function Component (line 40) | function Component() {

FILE: apps/origin/registry/default/components/comp-342.tsx
  function Component (line 50) | function Component() {

FILE: apps/origin/registry/default/components/comp-343.tsx
  function Component (line 50) | function Component() {

FILE: apps/origin/registry/default/components/comp-344.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-345.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-346.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-347.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-348.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-349.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-35.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-350.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-351.tsx
  function Component (line 36) | function Component() {

FILE: apps/origin/registry/default/components/comp-352.tsx
  function Component (line 82) | function Component() {
  function CollapsibleDemo (line 118) | function CollapsibleDemo({

FILE: apps/origin/registry/default/components/comp-353.tsx
  function Component (line 103) | function Component() {
  function CollapsibleDemo (line 142) | function CollapsibleDemo({

FILE: apps/origin/registry/default/components/comp-354.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-355.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-356.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-357.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-358.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-359.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-36.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-360.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-361.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-362.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-363.tsx
  function HoverCardDemo (line 8) | function HoverCardDemo() {

FILE: apps/origin/registry/default/components/comp-364.tsx
  function HoverCardDemo (line 7) | function HoverCardDemo() {

FILE: apps/origin/registry/default/components/comp-365.tsx
  function HoverCardDemo (line 7) | function HoverCardDemo() {

FILE: apps/origin/registry/default/components/comp-366.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-367.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-368.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-369.tsx
  function Component (line 19) | function Component() {

FILE: apps/origin/registry/default/components/comp-37.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-370.tsx
  function Component (line 20) | function Component() {

FILE: apps/origin/registry/default/components/comp-371.tsx
  type Checked (line 13) | type Checked = boolean;
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-372.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-373.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-374.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-375.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-376.tsx
  function Component (line 21) | function Component() {

FILE: apps/origin/registry/default/components/comp-377.tsx
  function Component (line 26) | function Component() {

FILE: apps/origin/registry/default/components/comp-378.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-379.tsx
  function Component (line 18) | function Component() {

FILE: apps/origin/registry/default/components/comp-38.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-380.tsx
  type Theme (line 13) | type Theme = "light" | "dark" | "system";
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-381.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-382.tsx
  function Dot (line 64) | function Dot({ className }: { className?: string }) {
  function Component (line 79) | function Component() {

FILE: apps/origin/registry/default/components/comp-383.tsx
  function Dot (line 70) | function Dot({ className }: { className?: string }) {
  function Component (line 86) | function Component() {

FILE: apps/origin/registry/default/components/comp-384.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-385.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-386.tsx
  function Component (line 40) | function Component() {

FILE: apps/origin/registry/default/components/comp-387.tsx
  function Component (line 26) | function Component() {

FILE: apps/origin/registry/default/components/comp-388.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-389.tsx
  type TourStep (line 19) | interface TourStep {
  type CardProps (line 52) | interface CardProps {
  function Card (line 57) | function Card({ number, isActive }: CardProps) {
  function Component (line 67) | function Component() {

FILE: apps/origin/registry/default/components/comp-39.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-390.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-391.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-392.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-393.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-394.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-395.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-396.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-397.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-398.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-399.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-40.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-400.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-401.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-402.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-403.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-404.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-405.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-406.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-407.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-408.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-409.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-41.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-410.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-411.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-412.tsx
  function Component (line 1) | function Component() {

FILE: apps/origin/registry/default/components/comp-413.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-414.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-415.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-416.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-417.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-418.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-419.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-42.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-420.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-421.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-422.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-423.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-424.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-425.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-426.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-427.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-428.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-429.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-43.tsx
  function Component (line 19) | function Component() {

FILE: apps/origin/registry/default/components/comp-430.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-431.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-432.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-433.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-434.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-435.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-436.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-437.tsx
  function Component (line 18) | function Component() {

FILE: apps/origin/registry/default/components/comp-438.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-439.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-44.tsx
  function Component (line 8) | function Component() {
  function Slot (line 44) | function Slot(props: SlotProps) {

FILE: apps/origin/registry/default/components/comp-440.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-441.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-442.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-443.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-444.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-445.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-446.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-447.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-448.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-449.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-45.tsx
  function Component (line 9) | function Component() {
  function Slot (line 57) | function Slot(props: SlotProps) {

FILE: apps/origin/registry/default/components/comp-450.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-451.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-452.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-453.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-454.tsx
  type PaginationProps (line 9) | type PaginationProps = {
  function Component (line 14) | function Component({

FILE: apps/origin/registry/default/components/comp-455.tsx
  type PaginationProps (line 9) | type PaginationProps = {
  function Component (line 14) | function Component({

FILE: apps/origin/registry/default/components/comp-456.tsx
  type PaginationProps (line 11) | type PaginationProps = {
  function Component (line 16) | function Component({

FILE: apps/origin/registry/default/components/comp-457.tsx
  type PaginationProps (line 9) | type PaginationProps = {
  function Component (line 14) | function Component({

FILE: apps/origin/registry/default/components/comp-458.tsx
  type PaginationProps (line 8) | type PaginationProps = {
  function Component (line 13) | function Component({

FILE: apps/origin/registry/default/components/comp-459.tsx
  type PaginationProps (line 12) | type PaginationProps = {
  function Component (line 18) | function Component({

FILE: apps/origin/registry/default/components/comp-46.tsx
  function Component (line 12) | function Component() {
  type CountrySelectProps (line 64) | type CountrySelectProps = {

FILE: apps/origin/registry/default/components/comp-460.tsx
  type PaginationProps (line 16) | type PaginationProps = {
  function Component (line 22) | function Component({

FILE: apps/origin/registry/default/components/comp-461.tsx
  type PaginationProps (line 13) | type PaginationProps = {
  function Component (line 19) | function Component({

FILE: apps/origin/registry/default/components/comp-462.tsx
  type PaginationProps (line 18) | type PaginationProps = {
  function Component (line 24) | function Component({

FILE: apps/origin/registry/default/components/comp-463.tsx
  type PaginationProps (line 23) | type PaginationProps = {
  function Component (line 28) | function Component({

FILE: apps/origin/registry/default/components/comp-464.tsx
  type PaginationProps (line 21) | type PaginationProps = {
  function Component (line 27) | function Component({

FILE: apps/origin/registry/default/components/comp-465.tsx
  type PaginationProps (line 14) | type PaginationProps = {
  function Component (line 20) | function Component({

FILE: apps/origin/registry/default/components/comp-466.tsx
  function Component (line 54) | function Component() {

FILE: apps/origin/registry/default/components/comp-467.tsx
  function Component (line 57) | function Component() {

FILE: apps/origin/registry/default/components/comp-468.tsx
  function Component (line 54) | function Component() {

FILE: apps/origin/registry/default/components/comp-469.tsx
  function Component (line 54) | function Component() {

FILE: apps/origin/registry/default/components/comp-47.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-470.tsx
  function Component (line 53) | function Component() {

FILE: apps/origin/registry/default/components/comp-471.tsx
  function Component (line 68) | function Component() {

FILE: apps/origin/registry/default/components/comp-472.tsx
  function Component (line 56) | function Component() {

FILE: apps/origin/registry/default/components/comp-473.tsx
  function Component (line 56) | function Component() {

FILE: apps/origin/registry/default/components/comp-474.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-475.tsx
  function Component (line 134) | function Component() {

FILE: apps/origin/registry/default/components/comp-476.tsx
  function Component (line 65) | function Component() {

FILE: apps/origin/registry/default/components/comp-477.tsx
  type Item (line 23) | type Item = {
  function Component (line 103) | function Component() {

FILE: apps/origin/registry/default/components/comp-478.tsx
  type ColumnMeta (line 49) | interface ColumnMeta<TData extends RowData, TValue> {
  type Item (line 54) | type Item = {
  function Component (line 256) | function Component() {
  function Filter (line 434) | function Filter({ column }: { column: Column<Item, unknown> }) {

FILE: apps/origin/registry/default/components/comp-479.tsx
  type Item (line 23) | type Item = {
  function Component (line 100) | function Component() {

FILE: apps/origin/registry/default/components/comp-48.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-480.tsx
  type Item (line 35) | type Item = {
  function Component (line 122) | function Component() {

FILE: apps/origin/registry/default/components/comp-481.tsx
  type Item (line 43) | type Item = {
  function Component (line 100) | function Component() {

FILE: apps/origin/registry/default/components/comp-482.tsx
  type Item (line 25) | type Item = {
  function Component (line 140) | function Component() {

FILE: apps/origin/registry/default/components/comp-483.tsx
  type Item (line 48) | type Item = {
  function Component (line 135) | function Component() {

FILE: apps/origin/registry/default/components/comp-484.tsx
  type Item (line 47) | type Item = {
  function Component (line 134) | function Component() {

FILE: apps/origin/registry/default/components/comp-485.tsx
  type Item (line 94) | type Item = {
  function Component (line 214) | function Component() {
  function RowActions (line 723) | function RowActions({ row: _row }: { row: Row<Item> }) {

FILE: apps/origin/registry/default/components/comp-486.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-487.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-488.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-489.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-49.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-490.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-491.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-492.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-493.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-494.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-495.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-496.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-497.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-498.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-499.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-50.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-500.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-501.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-502.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-503.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-504.tsx
  function Component (line 24) | function Component() {
  function MonthGrid (line 102) | function MonthGrid({
  function CaptionLabel (line 201) | function CaptionLabel({
  function CollapsibleYear (line 227) | function CollapsibleYear({

FILE: apps/origin/registry/default/components/comp-505.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-506.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-507.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-508.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-509.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-51.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-510.tsx
  constant GOOD_PRICE_THRESHOLD (line 9) | const GOOD_PRICE_THRESHOLD = 100;
  function Component (line 11) | function Component() {
  function DayButton (line 84) | function DayButton(props: DayButtonProps & { prices: Record<string, numb...

FILE: apps/origin/registry/default/components/comp-511.tsx
  function Component (line 16) | function Component() {

FILE: apps/origin/registry/default/components/comp-512.tsx
  function Component (line 17) | function Component() {

FILE: apps/origin/registry/default/components/comp-513.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-514.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-515.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-516.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-517.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-518.tsx
  function Component (line 10) | function Component() {

FILE: apps/origin/registry/default/components/comp-519.tsx
  function Component (line 28) | function Component() {

FILE: apps/origin/registry/default/components/comp-52.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-520.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-521.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-522.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-523.tsx
  function Component (line 25) | function Component() {

FILE: apps/origin/registry/default/components/comp-524.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-525.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-526.tsx
  function Component (line 11) | function Component() {

FILE: apps/origin/registry/default/components/comp-527.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-528.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-529.tsx
  function Component (line 29) | function Component() {

FILE: apps/origin/registry/default/components/comp-53.tsx
  function Component (line 15) | function Component() {

FILE: apps/origin/registry/default/components/comp-530.tsx
  function Component (line 41) | function Component() {

FILE: apps/origin/registry/default/components/comp-531.tsx
  function Component (line 43) | function Component() {

FILE: apps/origin/registry/default/components/comp-532.tsx
  function Component (line 43) | function Component() {

FILE: apps/origin/registry/default/components/comp-533.tsx
  function Component (line 42) | function Component() {

FILE: apps/origin/registry/default/components/comp-534.tsx
  function Component (line 44) | function Component() {

FILE: apps/origin/registry/default/components/comp-535.tsx
  function Component (line 47) | function Component() {

FILE: apps/origin/registry/default/components/comp-536.tsx
  function Component (line 50) | function Component() {

FILE: apps/origin/registry/default/components/comp-537.tsx
  function Component (line 44) | function Component() {

FILE: apps/origin/registry/default/components/comp-538.tsx
  function Component (line 32) | function Component() {

FILE: apps/origin/registry/default/components/comp-539.tsx
  type ActionType (line 51) | type ActionType = "post" | "reply" | "edit" | "create";
  function getActionIcon (line 53) | function getActionIcon(action: ActionType): LucideIcon {
  function getActionText (line 63) | function getActionText(action: ActionType): string {
  function getRelativeTimeString (line 73) | function getRelativeTimeString(date: Date): string {
  function Component (line 92) | function Component() {

FILE: apps/origin/registry/default/components/comp-54.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-540.tsx
  function Component (line 39) | function Component() {

FILE: apps/origin/registry/default/components/comp-541.tsx
  function Component (line 39) | function Component() {

FILE: apps/origin/registry/default/components/comp-542.tsx
  function Component (line 134) | function Component() {

FILE: apps/origin/registry/default/components/comp-543.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-544.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-545.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-546.tsx
  function Component (line 39) | function Component() {

FILE: apps/origin/registry/default/components/comp-547.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-548.tsx
  function Component (line 26) | function Component() {

FILE: apps/origin/registry/default/components/comp-549.tsx
  function Component (line 86) | function Component() {

FILE: apps/origin/registry/default/components/comp-55.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-550.tsx
  function Component (line 87) | function Component() {

FILE: apps/origin/registry/default/components/comp-551.tsx
  function Component (line 96) | function Component() {

FILE: apps/origin/registry/default/components/comp-552.tsx
  function Component (line 133) | function Component() {

FILE: apps/origin/registry/default/components/comp-553.tsx
  type UploadProgress (line 136) | type UploadProgress = {
  function Component (line 192) | function Component() {

FILE: apps/origin/registry/default/components/comp-554.tsx
  type Area (line 30) | type Area = { x: number; y: number; width: number; height: number };
  function getCroppedImg (line 42) | async function getCroppedImg(
  function Component (line 86) | function Component() {

FILE: apps/origin/registry/default/components/comp-555.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-556.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-557.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-558.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-559.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-56.tsx
  function Component (line 22) | function Component() {

FILE: apps/origin/registry/default/components/comp-560.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-561.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/comp-562.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-563.tsx
  type Area (line 11) | type Area = { x: number; y: number; width: number; height: number };
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-564.tsx
  type Area (line 13) | type Area = { x: number; y: number; width: number; height: number };
  function getCroppedImg (line 25) | async function getCroppedImg(
  constant ORIGINAL_IMAGE_URL (line 70) | const ORIGINAL_IMAGE_URL =
  function Component (line 73) | function Component() {

FILE: apps/origin/registry/default/components/comp-565.tsx
  type Item (line 7) | interface Item {
  function Component (line 44) | function Component() {

FILE: apps/origin/registry/default/components/comp-566.tsx
  type Item (line 7) | interface Item {
  function Component (line 44) | function Component() {

FILE: apps/origin/registry/default/components/comp-567.tsx
  type Item (line 8) | interface Item {
  function Component (line 45) | function Component() {

FILE: apps/origin/registry/default/components/comp-568.tsx
  type Item (line 8) | interface Item {
  function Component (line 45) | function Component() {

FILE: apps/origin/registry/default/components/comp-569.tsx
  type Item (line 21) | interface Item {
  function Component (line 58) | function Component() {

FILE: apps/origin/registry/default/components/comp-57.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-570.tsx
  type Item (line 15) | interface Item {
  function Component (line 53) | function Component() {

FILE: apps/origin/registry/default/components/comp-571.tsx
  type Item (line 17) | interface Item {
  function Component (line 54) | function Component() {

FILE: apps/origin/registry/default/components/comp-572.tsx
  type Item (line 23) | interface Item {
  function Component (line 60) | function Component() {

FILE: apps/origin/registry/default/components/comp-573.tsx
  type Item (line 14) | interface Item {
  function Component (line 83) | function Component() {

FILE: apps/origin/registry/default/components/comp-574.tsx
  type Item (line 19) | interface Item {
  function Component (line 56) | function Component() {

FILE: apps/origin/registry/default/components/comp-575.tsx
  type Item (line 23) | interface Item {
  function getFileIcon (line 87) | function getFileIcon(extension: string | undefined, className: string) {
  function Component (line 112) | function Component() {

FILE: apps/origin/registry/default/components/comp-576.tsx
  type Item (line 7) | interface Item {
  function findPathToCurrent (line 35) | function findPathToCurrent(
  function Component (line 74) | function Component() {

FILE: apps/origin/registry/default/components/comp-577.tsx
  function Component (line 23) | function Component() {

FILE: apps/origin/registry/default/components/comp-578.tsx
  function Component (line 67) | function Component() {

FILE: apps/origin/registry/default/components/comp-579.tsx
  function Component (line 23) | function Component() {

FILE: apps/origin/registry/default/components/comp-58.tsx
  function Component (line 8) | function Component() {
  function Slot (line 44) | function Slot(props: SlotProps) {

FILE: apps/origin/registry/default/components/comp-580.tsx
  function Component (line 25) | function Component() {

FILE: apps/origin/registry/default/components/comp-581.tsx
  function Component (line 26) | function Component() {

FILE: apps/origin/registry/default/components/comp-582.tsx
  function Component (line 55) | function Component() {

FILE: apps/origin/registry/default/components/comp-583.tsx
  function Component (line 28) | function Component() {

FILE: apps/origin/registry/default/components/comp-584.tsx
  function Component (line 28) | function Component() {

FILE: apps/origin/registry/default/components/comp-585.tsx
  function Component (line 35) | function Component() {

FILE: apps/origin/registry/default/components/comp-586.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-587.tsx
  function Component (line 25) | function Component() {

FILE: apps/origin/registry/default/components/comp-588.tsx
  function Component (line 24) | function Component() {

FILE: apps/origin/registry/default/components/comp-589.tsx
  function Component (line 37) | function Component() {

FILE: apps/origin/registry/default/components/comp-59.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-590.tsx
  function Component (line 34) | function Component() {

FILE: apps/origin/registry/default/components/comp-591.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-592.tsx
  function Component (line 13) | function Component() {

FILE: apps/origin/registry/default/components/comp-593.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-594.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-595.tsx
  function Component (line 14) | function Component() {

FILE: apps/origin/registry/default/components/comp-596.tsx
  function Component (line 28) | function Component() {

FILE: apps/origin/registry/default/components/comp-597.tsx
  type Item (line 13) | interface Item {
  function Component (line 50) | function Component() {

FILE: apps/origin/registry/default/components/comp-598.tsx
  type Item (line 13) | interface Item {
  function Component (line 50) | function Component() {

FILE: apps/origin/registry/default/components/comp-599.tsx
  type Item (line 14) | interface Item {
  function Component (line 51) | function Component() {

FILE: apps/origin/registry/default/components/comp-60.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-61.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-62.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-63.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-64.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-65.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-66.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-67.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-68.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-69.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-70.tsx
  function Component (line 6) | function Component() {

FILE: apps/origin/registry/default/components/comp-71.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-72.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-73.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-74.tsx
  function Component (line 8) | function Component() {

FILE: apps/origin/registry/default/components/comp-75.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-76.tsx
  function Component (line 5) | function Component() {

FILE: apps/origin/registry/default/components/comp-77.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-78.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-79.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-80.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-81.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-82.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-83.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-84.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-85.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-86.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-87.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-88.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-89.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-90.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-91.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-92.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-93.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-94.tsx
  function Component (line 3) | function Component() {

FILE: apps/origin/registry/default/components/comp-95.tsx
  function Component (line 9) | function Component() {

FILE: apps/origin/registry/default/components/comp-96.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-97.tsx
  function Component (line 4) | function Component() {

FILE: apps/origin/registry/default/components/comp-98.tsx
  function Component (line 7) | function Component() {

FILE: apps/origin/registry/default/components/comp-99.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/event-calendar/agenda-view.tsx
  type AgendaViewProps (line 13) | interface AgendaViewProps {
  function AgendaView (line 19) | function AgendaView({

FILE: apps/origin/registry/default/components/event-calendar/calendar-dnd-context.tsx
  type CalendarDndContextType (line 31) | type CalendarDndContextType = {
  type CalendarDndProviderProps (line 65) | interface CalendarDndProviderProps {
  function CalendarDndProvider (line 70) | function CalendarDndProvider({

FILE: apps/origin/registry/default/components/event-calendar/day-view.tsx
  type DayViewProps (line 31) | interface DayViewProps {
  type PositionedEvent (line 38) | interface PositionedEvent {
  function DayView (line 47) | function DayView({

FILE: apps/origin/registry/default/components/event-calendar/draggable-event.tsx
  type DraggableEventProps (line 13) | interface DraggableEventProps {
  function DraggableEvent (line 26) | function DraggableEvent({

FILE: apps/origin/registry/default/components/event-calendar/droppable-cell.tsx
  type DroppableCellProps (line 7) | interface DroppableCellProps {
  function DroppableCell (line 16) | function DroppableCell({

FILE: apps/origin/registry/default/components/event-calendar/event-calendar.tsx
  type EventCalendarProps (line 48) | interface EventCalendarProps {
  function EventCalendar (line 57) | function EventCalendar({

FILE: apps/origin/registry/default/components/event-calendar/event-dialog.tsx
  type EventDialogProps (line 45) | interface EventDialogProps {
  function EventDialog (line 53) | function EventDialog({

FILE: apps/origin/registry/default/components/event-calendar/event-item.tsx
  type EventWrapperProps (line 22) | interface EventWrapperProps {
  function EventWrapper (line 38) | function EventWrapper({
  type EventItemProps (line 84) | interface EventItemProps {
  function EventItem (line 101) | function EventItem({

FILE: apps/origin/registry/default/components/event-calendar/events-popup.tsx
  type EventsPopupProps (line 11) | interface EventsPopupProps {
  function EventsPopup (line 19) | function EventsPopup({

FILE: apps/origin/registry/default/components/event-calendar/hooks/use-current-time-indicator.ts
  function useCurrentTimeIndicator (line 10) | function useCurrentTimeIndicator(

FILE: apps/origin/registry/default/components/event-calendar/hooks/use-event-visibility.ts
  type EventVisibilityOptions (line 5) | interface EventVisibilityOptions {
  type EventVisibilityResult (line 10) | interface EventVisibilityResult {
  function useEventVisibility (line 20) | function useEventVisibility({

FILE: apps/origin/registry/default/components/event-calendar/month-view.tsx
  type MonthViewProps (line 37) | interface MonthViewProps {
  function MonthView (line 44) | function MonthView({

FILE: apps/origin/registry/default/components/event-calendar/types.ts
  type CalendarView (line 1) | type CalendarView = "month" | "week" | "day" | "agenda";
  type CalendarEvent (line 3) | interface CalendarEvent {
  type EventColor (line 14) | type EventColor =

FILE: apps/origin/registry/default/components/event-calendar/utils.ts
  function getEventColorClasses (line 10) | function getEventColorClasses(color?: EventColor | string): string {
  function getBorderRadiusClasses (line 34) | function getBorderRadiusClasses(
  function isMultiDayEvent (line 53) | function isMultiDayEvent(event: CalendarEvent): boolean {
  function getEventsForDay (line 62) | function getEventsForDay(
  function sortEvents (line 77) | function sortEvents(events: CalendarEvent[]): CalendarEvent[] {
  function getSpanningEventsForDay (line 92) | function getSpanningEventsForDay(
  function getAllEventsForDay (line 113) | function getAllEventsForDay(
  function getAgendaEventsForDay (line 131) | function getAgendaEventsForDay(
  function addHoursToDate (line 151) | function addHoursToDate(date: Date, hours: number): Date {

FILE: apps/origin/registry/default/components/event-calendar/week-view.tsx
  type WeekViewProps (line 36) | interface WeekViewProps {
  type PositionedEvent (line 43) | interface PositionedEvent {
  function WeekView (line 52) | function WeekView({

FILE: apps/origin/registry/default/components/navbar-components/app-toggle.tsx
  function AppToggle (line 6) | function AppToggle() {

FILE: apps/origin/registry/default/components/navbar-components/date-picker.tsx
  function DatePicker (line 16) | function DatePicker() {

FILE: apps/origin/registry/default/components/navbar-components/filters.tsx
  function Component (line 12) | function Component() {

FILE: apps/origin/registry/default/components/navbar-components/info-menu.tsx
  function InfoMenu (line 16) | function InfoMenu() {

FILE: apps/origin/registry/default/components/navbar-components/logo.tsx
  function Logo (line 1) | function Logo() {

FILE: apps/origin/registry/default/components/navbar-components/notification-menu.tsx
  function Dot (line 63) | function Dot({ className }: { className?: string }) {
  function NotificationMenu (line 79) | function NotificationMenu() {

FILE: apps/origin/registry/default/components/navbar-components/settings-menu.tsx
  function SettingsMenu (line 10) | function SettingsMenu() {

FILE: apps/origin/registry/default/components/navbar-components/team-switcher.tsx
  function TeamSwitcher (line 13) | function TeamSwitcher({

FILE: apps/origin/registry/default/components/navbar-components/theme-toggle.tsx
  function ThemeToggle (line 7) | function ThemeToggle() {

FILE: apps/origin/registry/default/components/navbar-components/user-menu.tsx
  function UserMenu (line 25) | function UserMenu() {

FILE: apps/origin/registry/default/hooks/use-character-limit.ts
  type UseCharacterLimitProps (line 5) | type UseCharacterLimitProps = {
  function useCharacterLimit (line 10) | function useCharacterLimit({

FILE: apps/origin/registry/default/hooks/use-file-upload.ts
  type FileMetadata (line 12) | type FileMetadata = {
  type FileWithPreview (line 20) | type FileWithPreview = {
  type FileUploadOptions (line 26) | type FileUploadOptions = {
  type FileUploadState (line 36) | type FileUploadState = {
  type FileUploadActions (line 42) | type FileUploadActions = {

FILE: apps/origin/registry/default/hooks/use-pagination.ts
  type UsePaginationProps (line 1) | type UsePaginationProps = {
  type UsePaginationReturn (line 7) | type UsePaginationReturn = {
  function usePagination (line 13) | function usePagination({

FILE: apps/origin/registry/default/hooks/use-slider-with-input.ts
  type UseSliderWithInputProps (line 5) | type UseSliderWithInputProps = {
  function useSliderWithInput (line 12) | function useSliderWithInput({

FILE: apps/origin/registry/default/hooks/use-toast.ts
  constant TOAST_LIMIT (line 10) | const TOAST_LIMIT = 1;
  constant TOAST_REMOVE_DELAY (line 11) | const TOAST_REMOVE_DELAY = 1000000;
  type ToasterToast (line 13) | type ToasterToast = ToastProps & {
  function genId (line 29) | function genId() {
  type ActionType (line 34) | type ActionType = typeof actionTypes;
  type Action (line 36) | type Action =
  type State (line 54) | interface State {
  function dispatch (line 135) | function dispatch(action: Action) {
  type Toast (line 142) | type Toast = Omit<ToasterToast, "id">;
  function toast (line 144) | function toast({ ...props }: Toast) {
  function useToast (line 173) | function useToast() {

FILE: apps/origin/registry/default/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: apps/origin/registry/default/ui/accordion.tsx
  function Accordion (line 8) | function Accordion({
  function AccordionItem (line 14) | function AccordionItem({
  function AccordionTrigger (line 27) | function AccordionTrigger({
  function AccordionContent (line 53) | function AccordionContent({

FILE: apps/origin/registry/default/ui/alert-dialog.tsx
  function AlertDialog (line 8) | function AlertDialog({
  function AlertDialogTrigger (line 14) | function AlertDialogTrigger({
  function AlertDialogPortal (line 22) | function AlertDialogPortal({
  function AlertDialogOverlay (line 30) | function AlertDialogOverlay({
  function AlertDialogContent (line 46) | function AlertDialogContent({
  function AlertDialogHeader (line 65) | function AlertDialogHeader({
  function AlertDialogFooter (line 78) | function AlertDialogFooter({
  function AlertDialogTitle (line 94) | function AlertDialogTitle({
  function AlertDialogDescription (line 107) | function AlertDialogDescription({
  function AlertDialogAction (line 120) | function AlertDialogAction({
  function AlertDialogCancel (line 132) | function AlertDialogCancel({

FILE: apps/origin/registry/default/ui/avatar.tsx
  function Avatar (line 7) | function Avatar({
  function AvatarImage (line 23) | function AvatarImage({
  function AvatarFallback (line 36) | function AvatarFallback({

FILE: apps/origin/registry/default/ui/badge.tsx
  function Badge (line 27) | function Badge({

FILE: apps/origin/registry/default/ui/breadcrumb.tsx
  function Breadcrumb (line 6) | function Breadcrumb({ ...props }: React.ComponentProps<"nav">) {
  function BreadcrumbList (line 10) | function BreadcrumbList({ className, ...props }: React.ComponentProps<"o...
  function BreadcrumbItem (line 23) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<"l...
  function BreadcrumbLink (line 33) | function BreadcrumbLink({
  function BreadcrumbPage (line 51) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<"s...
  function BreadcrumbSeparator (line 65) | function BreadcrumbSeparator({
  function BreadcrumbEllipsis (line 83) | function BreadcrumbEllipsis({

FILE: apps/origin/registry/default/ui/button.tsx
  function Button (line 36) | function Button({

FILE: apps/origin/registry/default/ui/calendar-rac.tsx
  type BaseCalendarProps (line 20) | interface BaseCalendarProps {
  type CalendarProps (line 24) | type CalendarProps = ComponentProps<typeof CalendarRac> & BaseCalendarPr...
  type RangeCalendarProps (line 25) | type RangeCalendarProps = ComponentProps<typeof RangeCalendarRac> &
  function CalendarHeader (line 28) | function CalendarHeader() {
  function CalendarGridComponent (line 48) | function CalendarGridComponent({ isRange = false }: { isRange?: boolean ...
  function Calendar (line 85) | function Calendar({ className, ...props }: CalendarProps) {
  function RangeCalendar (line 99) | function RangeCalendar({ className, ...props }: RangeCalendarProps) {

FILE: apps/origin/registry/default/ui/calendar.tsx
  function Calendar (line 9) | function Calendar({

FILE: apps/origin/registry/default/ui/checkbox-tree.tsx
  type TreeNode (line 13) | interface TreeNode {
  function useCheckboxTree (line 20) | function useCheckboxTree(initialTree: TreeNode) {
  type CheckboxTreeProps (line 85) | interface CheckboxTreeProps {
  function CheckboxTree (line 95) | function CheckboxTree({ tree, renderNode }: CheckboxTreeProps) {

FILE: apps/origin/registry/default/ui/checkbox.tsx
  function Checkbox (line 7) | function Checkbox({

FILE: apps/origin/registry/default/ui/collapsible.tsx
  function Collapsible (line 5) | function Collapsible({
  function CollapsibleTrigger (line 11) | function CollapsibleTrigger({
  function CollapsibleContent (line 22) | function CollapsibleContent({

FILE: apps/origin/registry/default/ui/command.tsx
  function Command (line 15) | function Command({
  function CommandDialog (line 31) | function CommandDialog({
  function CommandInput (line 55) | function CommandInput({
  function CommandList (line 77) | function CommandList({
  function CommandEmpty (line 93) | function CommandEmpty({
  function CommandGroup (line 105) | function CommandGroup({
  function CommandSeparator (line 121) | function CommandSeparator({
  function CommandItem (line 134) | function CommandItem({
  function CommandShortcut (line 150) | function CommandShortcut({

FILE: apps/origin/registry/default/ui/cropper.tsx
  function Cropper (line 6) | function Cropper({
  function CropperDescription (line 22) | function CropperDescription({
  function CropperImage (line 35) | function CropperImage({
  function CropperCropArea (line 51) | function CropperCropArea({

FILE: apps/origin/registry/default/ui/datefield-rac.tsx
  function DateField (line 18) | function DateField<T extends DateValueRac>({
  function TimeField (line 33) | function TimeField<T extends TimeValueRac>({
  function DateSegment (line 48) | function DateSegment({ className, ...props }: DateSegmentProps) {
  type DateInputProps (line 66) | interface DateInputProps extends DateInputPropsRac {
  function DateInput (line 71) | function DateInput({

FILE: apps/origin/registry/default/ui/dialog.tsx
  function Dialog (line 8) | function Dialog({
  function DialogTrigger (line 14) | function DialogTrigger({
  function DialogPortal (line 20) | function DialogPortal({
  function DialogClose (line 26) | function DialogClose({
  function DialogOverlay (line 32) | function DialogOverlay({
  function DialogContent (line 48) | function DialogContent({
  function DialogHeader (line 77) | function DialogHeader({ className, ...props }: React.ComponentProps<"div...
  function DialogFooter (line 87) | function DialogFooter({ className, ...props }: React.ComponentProps<"div...
  function DialogTitle (line 100) | function DialogTitle({
  function DialogDescription (line 113) | function DialogDescription({

FILE: apps/origin/registry/default/ui/dropdown-menu.tsx
  type PointerDownEvent (line 8) | type PointerDownEvent = Parameters<
  type PointerDownOutsideEvent (line 11) | type PointerDownOutsideEvent = Parameters<
  function DropdownMenu (line 17) | function DropdownMenu({
  function DropdownMenuPortal (line 23) | function DropdownMenuPortal({
  function DropdownMenuTrigger (line 31) | function DropdownMenuTrigger({
  function DropdownMenuContent (line 42) | function DropdownMenuContent({
  function DropdownMenuGroup (line 102) | function DropdownMenuGroup({
  function DropdownMenuItem (line 110) | function DropdownMenuItem({
  function DropdownMenuCheckboxItem (line 133) | function DropdownMenuCheckboxItem({
  function DropdownMenuRadioGroup (line 159) | function DropdownMenuRadioGroup({
  function DropdownMenuRadioItem (line 170) | function DropdownMenuRadioItem({
  function DropdownMenuLabel (line 194) | function DropdownMenuLabel({
  function DropdownMenuSeparator (line 214) | function DropdownMenuSeparator({
  function DropdownMenuShortcut (line 227) | function DropdownMenuShortcut({
  function DropdownMenuSub (line 243) | function DropdownMenuSub({
  function DropdownMenuSubTrigger (line 249) | function DropdownMenuSubTrigger({
  function DropdownMenuSubContent (line 276) | function DropdownMenuSubContent({

FILE: apps/origin/registry/default/ui/hover-card.tsx
  function HoverCard (line 7) | function HoverCard({
  function HoverCardTrigger (line 13) | function HoverCardTrigger({
  function HoverCardContent (line 21) | function HoverCardContent({

FILE: apps/origin/registry/default/ui/input.tsx
  function Input (line 4) | function Input({ className, type, ...props }: React.ComponentProps<"inpu...

FILE: apps/origin/registry/default/ui/label.tsx
  function Label (line 7) | function Label({

FILE: apps/origin/registry/default/ui/multiselect.tsx
  type Option (line 15) | interface Option {
  type GroupOption (line 24) | interface GroupOption {
  type MultipleSelectorProps (line 28) | interface MultipleSelectorProps {
  type MultipleSelectorRef (line 85) | interface MultipleSelectorRef {
  function useDebounce (line 92) | function useDebounce<T>(value: T, delay?: number): T {
  function transToGroupOption (line 106) | function transToGroupOption(options: Option[], groupBy?: string) {
  function removePickedOption (line 127) | function removePickedOption(groupOption: GroupOption, picked: Option[]) {
  function isOptionsExist (line 138) | function isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {

FILE: apps/origin/registry/default/ui/navigation-menu.tsx
  function NavigationMenu (line 7) | function NavigationMenu({
  function NavigationMenuList (line 31) | function NavigationMenuList({
  function NavigationMenuItem (line 47) | function NavigationMenuItem({
  function NavigationMenuTrigger (line 64) | function NavigationMenuTrigger({
  function NavigationMenuContent (line 84) | function NavigationMenuContent({
  function NavigationMenuViewport (line 101) | function NavigationMenuViewport({
  function NavigationMenuLink (line 123) | function NavigationMenuLink({
  function NavigationMenuIndicator (line 139) | function NavigationMenuIndicator({

FILE: apps/origin/registry/default/ui/pagination.tsx
  function Pagination (line 10) | function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
  function PaginationContent (line 21) | function PaginationContent({
  function PaginationItem (line 34) | function PaginationItem({ ...props }: React.ComponentProps<"li">) {
  type PaginationLinkProps (line 38) | type PaginationLinkProps = {
  function PaginationLink (line 44) | function PaginationLink({
  function PaginationPrevious (line 67) | function PaginationPrevious({
  function PaginationNext (line 84) | function PaginationNext({
  function PaginationEllipsis (line 101) | function PaginationEllipsis({

FILE: apps/origin/registry/default/ui/popover.tsx
  function Popover (line 7) | function Popover({
  function PopoverTrigger (line 13) | function PopoverTrigger({
  function PopoverContent (line 19) | function PopoverContent({
  function PopoverAnchor (line 49) | function PopoverAnchor({

FILE: apps/origin/registry/default/ui/progress.tsx
  function Progress (line 7) | function Progress({

FILE: apps/origin/registry/default/ui/radio-group.tsx
  function RadioGroup (line 7) | function RadioGroup({
  function RadioGroupItem (line 20) | function RadioGroupItem({

FILE: apps/origin/registry/default/ui/resizable.tsx
  function ResizablePanelGroup (line 7) | function ResizablePanelGroup({
  function ResizablePanel (line 23) | function ResizablePanel({
  function ResizableHandle (line 29) | function ResizableHandle({

FILE: apps/origin/registry/default/ui/scroll-area.tsx
  function ScrollArea (line 7) | function ScrollArea({
  function ScrollBar (line 30) | function ScrollBar({

FILE: apps/origin/registry/default/ui/select.tsx
  function Select (line 8) | function Select({
  function SelectGroup (line 14) | function SelectGroup({
  function SelectValue (line 20) | function SelectValue({
  function SelectTrigger (line 26) | function SelectTrigger({
  function SelectContent (line 51) | function SelectContent({
  function SelectLabel (line 85) | function SelectLabel({
  function SelectItem (line 101) | function SelectItem({
  function SelectSeparator (line 125) | function SelectSeparator({
  function SelectScrollUpButton (line 138) | function SelectScrollUpButton({
  function SelectScrollDownButton (line 156) | function SelectScrollDownButton({

FILE: apps/origin/registry/default/ui/slider.tsx
  function Slider (line 13) | function Slider({

FILE: apps/origin/registry/default/ui/stepper.tsx
  type StepperContextValue (line 10) | type StepperContextValue = {
  type StepItemContextValue (line 16) | type StepItemContextValue = {
  type StepState (line 23) | type StepState = "active" | "completed" | "inactive" | "loading";
  type StepperProps (line 50) | interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {
  function Stepper (line 57) | function Stepper({
  type StepperItemProps (line 101) | interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {
  function StepperItem (line 108) | function StepperItem({
  type StepperTriggerProps (line 149) | interface StepperTriggerProps
  function StepperTrigger (line 154) | function StepperTrigger({
  type StepperIndicatorProps (line 190) | interface StepperIndicatorProps extends React.HTMLAttributes<HTMLDivElem...
  function StepperIndicator (line 194) | function StepperIndicator({
  function StepperTitle (line 240) | function StepperTitle({
  function StepperDescription (line 254) | function StepperDescription({
  function StepperSeparator (line 268) | function StepperSeparator({

FILE: apps/origin/registry/default/ui/switch.tsx
  function Switch (line 7) | function Switch({

FILE: apps/origin/registry/default/ui/table.tsx
  function Table (line 4) | function Table({ className, ...props }: React.ComponentProps<"table">) {
  function TableHeader (line 16) | function TableHeader({ className, ...props }: React.ComponentProps<"thea...
  function TableBody (line 22) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"...
  function TableFooter (line 32) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo...
  function TableRow (line 45) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
  function TableHead (line 58) | function TableHead({ className, ...props }: React.ComponentProps<"th">) {
  function TableCell (line 71) | function TableCell({ className, ...props }: React.ComponentProps<"td">) {
  function TableCaption (line 84) | function TableCaption({

FILE: apps/origin/registry/default/ui/tabs.tsx
  function Tabs (line 7) | function Tabs({
  function TabsList (line 20) | function TabsList({
  function TabsTrigger (line 36) | function TabsTrigger({
  function TabsContent (line 52) | function TabsContent({

FILE: apps/origin/registry/default/ui/textarea.tsx
  function Textarea (line 4) | function Textarea({ className, ...props }: React.ComponentProps<"textare...

FILE: apps/origin/registry/default/ui/timeline.tsx
  type TimelineContextValue (line 8) | type TimelineContextValue = {
  type TimelineProps (line 27) | interface TimelineProps extends React.HTMLAttributes<HTMLDivElement> {
  function Timeline (line 34) | function Timeline({
  function TimelineContent (line 74) | function TimelineContent({
  type TimelineDateProps (line 88) | interface TimelineDateProps extends React.HTMLAttributes<HTMLTimeElement> {
  function TimelineDate (line 92) | function TimelineDate({
  function TimelineHeader (line 112) | function TimelineHeader({
  type TimelineIndicatorProps (line 122) | interface TimelineIndicatorProps extends React.HTMLAttributes<HTMLDivEle...
  function TimelineIndicator (line 126) | function TimelineIndicator({
  type TimelineItemProps (line 148) | interface TimelineItemProps extends React.HTMLAttributes<HTMLDivElement> {
  function TimelineItem (line 152) | function TimelineItem({ step, className, ...props }: TimelineItemProps) {
  function TimelineSeparator (line 169) | function TimelineSeparator({
  function TimelineTitle (line 187) | function TimelineTitle({

FILE: apps/origin/registry/default/ui/toast.tsx
  function ToastViewport (line 11) | function ToastViewport({
  function Toast (line 42) | function Toast({
  function ToastAction (line 56) | function ToastAction({
  function ToastClose (line 76) | function ToastClose({
  function ToastTitle (line 105) | function ToastTitle({
  function ToastDescription (line 117) | function ToastDescription({
  type ToastProps (line 129) | type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
  type ToastActionElement (line 131) | type ToastActionElement = React.ReactElement<typeof ToastAction>;

FILE: apps/origin/registry/default/ui/toaster.tsx
  function Toaster (line 13) | function Toaster() {

FILE: apps/origin/registry/default/ui/toggle-group.tsx
  function ToggleGroup (line 16) | function ToggleGroup({
  function ToggleGroupItem (line 42) | function ToggleGroupItem({

FILE: apps/origin/registry/default/ui/toggle.tsx
  function Toggle (line 30) | function Toggle({

FILE: apps/origin/registry/default/ui/tooltip.tsx
  function TooltipProvider (line 7) | function TooltipProvider({
  function Tooltip (line 20) | function Tooltip({
  function TooltipTrigger (line 30) | function TooltipTrigger({
  function TooltipContent (line 36) | function TooltipContent({

FILE: apps/origin/registry/default/ui/tree.tsx
  type TreeContextValue (line 11) | interface TreeContextValue<T = any> {
  function useTreeContext (line 23) | function useTreeContext<T = any>() {
  type TreeProps (line 27) | interface TreeProps extends React.HTMLAttributes<HTMLDivElement> {
  function Tree (line 32) | function Tree({ indent = 20, tree, className, ...props }: TreeProps) {
  type TreeItemProps (line 60) | interface TreeItemProps<T = any>
  function TreeItem (line 67) | function TreeItem<T = any>({
  type TreeItemLabelProps (line 133) | interface TreeItemLabelProps<T = any>
  function TreeItemLabel (line 138) | function TreeItemLabel<T = any>({
  function TreeDragLine (line 170) | function TreeDragLine({

FILE: apps/origin/registry/registry-tags.ts
  type RegistryTag (line 140) | type RegistryTag = (typeof registryTags)[number];

FILE: apps/origin/types/styled-jsx.d.ts
  type StyleHTMLAttributes (line 4) | interface StyleHTMLAttributes<T>

FILE: apps/ui/app/api/raw/[...slug]/route.ts
  function GET (line 5) | async function GET(

FILE: apps/ui/app/docs/[[...slug]]/page.tsx
  function generateStaticParams (line 18) | function generateStaticParams() {
  function generateMetadata (line 22) | async function generateMetadata(props: {
  function Page (line 44) | async function Page(props: {

FILE: apps/ui/app/docs/layout.tsx
  function DocsLayout (line 5) | function DocsLayout({

FILE: apps/ui/app/layout.tsx
  function RootLayout (line 20) | function RootLayout({

FILE: apps/ui/app/not-found.tsx
  function NotFound (line 17) | function NotFound() {

FILE: apps/ui/app/page.tsx
  function Page (line 32) | function Page() {
  type CategoryCardProps (line 79) | type CategoryCardProps = {
  function CategoryCard (line 86) | function CategoryCard({

FILE: apps/ui/app/particles/page.tsx
  function ParticlesDisplayServer (line 22) | async function ParticlesDisplayServer({
  function Page (line 55) | function Page({

FILE: apps/ui/app/particles/particle-card-container.tsx
  function ParticleCardContainer (line 9) | function ParticleCardContainer({

FILE: apps/ui/app/particles/particle-card.tsx
  function ParticleRenderer (line 23) | function ParticleRenderer({ name }: { name: string }) {
  function ParticleCard (line 38) | async function ParticleCard({

FILE: apps/ui/app/particles/particles-display.tsx
  type Particle (line 8) | type Particle = {
  function calculateRelevanceWeight (line 15) | function calculateRelevanceWeight(
  function ParticleCardSkeleton (line 42) | function ParticleCardSkeleton({ className }: { className?: string }) {
  function ParticlesDisplay (line 71) | async function ParticlesDisplay({

FILE: apps/ui/app/particles/search-container.tsx
  function SearchContainer (line 25) | function SearchContainer() {

FILE: apps/ui/app/particles/search-field.tsx
  type SearchFieldProps (line 25) | interface SearchFieldProps {
  type RegistryItem (line 31) | interface RegistryItem {
  function SearchField (line 41) | function SearchField({

FILE: apps/ui/app/sitemap.ts
  function sitemap (line 4) | function sitemap(): MetadataRoute.Sitemap {

FILE: apps/ui/components/category-thumbnails.tsx
  function Icon (line 24) | function Icon({
  function Text (line 38) | function Text({
  function Button (line 50) | function Button({
  function Card (line 66) | function Card({
  function CardPanel (line 91) | function CardPanel({
  function CheckboxItem (line 110) | function CheckboxItem({
  function RadioItem (line 132) | function RadioItem({
  function FormField (line 154) | function FormField({
  function TableRow (line 172) | function TableRow({ showCheckbox = true }: { showCheckbox?: boolean }) {
  function CommandItem (line 185) | function CommandItem() {
  function getCategoryThumbnail (line 1059) | function getCategoryThumbnail(slug: string): ReactNode | undefined {

FILE: apps/ui/components/code-block-command.tsx
  function CodeBlockCommand (line 21) | function CodeBlockCommand({

FILE: apps/ui/components/code-collapsible-wrapper.tsx
  function CodeCollapsibleWrapper (line 13) | function CodeCollapsibleWrapper({

FILE: apps/ui/components/code-tabs.tsx
  function CodeTabs (line 7) | function CodeTabs({ children }: React.ComponentProps<typeof Tabs>) {

FILE: apps/ui/components/command-menu.tsx
  type PageItem (line 35) | interface PageItem {
  type PageGroup (line 43) | interface PageGroup {
  function CommandMenu (line 48) | function CommandMenu({

FILE: apps/ui/components/component-preview-tabs.tsx
  function ComponentPreviewTabs (line 7) | function ComponentPreviewTabs({

FILE: apps/ui/components/component-preview.tsx
  type ComponentPreviewProps (line 6) | interface ComponentPreviewProps
  function ComponentPreview (line 14) | function ComponentPreview({

FILE: apps/ui/components/component-source.tsx
  function ComponentSource (line 9) | async function ComponentSource({

FILE: apps/ui/components/copy-registry.tsx
  function CopyRegistry (line 16) | function CopyRegistry({

FILE: apps/ui/components/docs-copy-page.tsx
  function DocsCopyPage (line 8) | function DocsCopyPage({ page }: { page: string }) {

FILE: apps/ui/components/docs-sidebar.tsx
  function DocsSidebar (line 19) | function DocsSidebar({

FILE: apps/ui/components/docs-toc.tsx
  function useActiveItem (line 6) | function useActiveItem(itemIds: string[]) {
  function DocsTableOfContents (line 46) | function DocsTableOfContents({

FILE: apps/ui/components/main-nav.tsx
  function MainNav (line 8) | function MainNav({

FILE: apps/ui/components/media-query-demo.tsx
  function Section (line 7) | function Section({
  function MediaQueryDemo (line 51) | function MediaQueryDemo() {

FILE: apps/ui/components/mobile-nav.tsx
  function MobileNav (line 20) | function MobileNav({
  function MobileLink (line 109) | function MobileLink({

FILE: apps/ui/components/site-footer.tsx
  function SiteFooter (line 3) | function SiteFooter() {

FILE: apps/ui/components/site-header.tsx
  function SiteHeader (line 9) | function SiteHeader() {

FILE: apps/ui/config/categories.ts
  type ComponentCategory (line 4) | interface ComponentCategory {
  function slugToName (line 10) | function slugToName(slug: string): string {
  function getCategory (line 28) | function getCategory(slug: string): ComponentCategory | undefined {

FILE: apps/ui/hooks/use-config.ts
  type Config (line 4) | type Config = {
  function useConfig (line 14) | function useConfig() {

FILE: apps/ui/hooks/use-is-mac.ts
  function useIsMac (line 3) | function useIsMac() {

FILE: apps/ui/lib/docs.ts
  constant PAGES_NEW (line 1) | const PAGES_NEW = [

FILE: apps/ui/lib/registry.ts
  function getRegistryComponent (line 8) | function getRegistryComponent(name: string) {
  function getRegistryItem (line 12) | async function getRegistryItem(name: string) {
  function getFileContent (line 51) | async function getFileContent(file: { path: string; type?: string }) {
  function getFileTarget (line 83) | function getFileTarget(file: { path: string; type?: string; target?: str...
  function createTempSourceFile (line 114) | async function createTempSourceFile(filename: string) {
  function fixFilePaths (line 119) | function fixFilePaths(
  function fixImport (line 147) | function fixImport(content: string) {
  type FileTree (line 175) | type FileTree = {
  function createFileTreeForRegistryItemFiles (line 181) | function createFileTreeForRegistryItemFiles(

FILE: apps/ui/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: apps/ui/next.config.ts
  method redirects (line 8) | async redirects() {
  method rewrites (line 17) | async rewrites() {

FILE: apps/ui/registry/default/hooks/use-copy-to-clipboard.ts
  function useCopyToClipboard (line 5) | function useCopyToClipboard({

FILE: apps/ui/registry/default/hooks/use-media-query.ts
  constant BREAKPOINTS (line 5) | const BREAKPOINTS = {
  type Breakpoint (line 15) | type Breakpoint = keyof typeof BREAKPOINTS;
  type BreakpointQuery (line 17) | type BreakpointQuery =
  function resolveMin (line 22) | function resolveMin(value: Breakpoint | number): string {
  function resolveMax (line 27) | function resolveMax(value: Breakpoint | number): string {
  function parseQuery (line 32) | function parseQuery(
  function getServerSnapshot (line 60) | function getServerSnapshot(): boolean {
  type MediaQueryInput (line 64) | type MediaQueryInput = {
  function useMediaQuery (line 71) | function useMediaQuery(
  function useIsMobile (line 94) | function useIsMobile(): boolean {

FILE: apps/ui/registry/default/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]): string {

FILE: apps/ui/registry/default/particles/p-accordion-1.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-accordion-2.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-accordion-3.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-accordion-4.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-1.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-2.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-3.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-4.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-5.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-6.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-7.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-dialog-1.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-alert-dialog-2.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-1.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-10.tsx
  type Tag (line 18) | type Tag = { id: string; label: string; group: "Status" | "Priority" | "...
  type TagGroup (line 19) | type TagGroup = { value: string; items: Tag[] };
  function groupTags (line 69) | function groupTags(tags: Tag[]): TagGroup[] {
  function Particle (line 84) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-11.tsx
  type SimpleTag (line 17) | type SimpleTag = { id: string; value: string };
  function Particle (line 45) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-12.tsx
  type Movie (line 16) | type Movie = { id: string; title: string; year: number };
  function searchMovies (line 28) | async function searchMovies(
  function Particle (line 44) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-13.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-14.tsx
  function Particle (line 26) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-15.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-2.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-3.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-4.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-5.tsx
  function Particle (line 27) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-6.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-7.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-8.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-autocomplete-9.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-1.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-10.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-11.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-12.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-13.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-14.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-3.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-4.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-5.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-6.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-7.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-8.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-avatar-9.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-10.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-11.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-12.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-13.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-14.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-15.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-16.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-17.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-18.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-19.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-20.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-6.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-7.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-8.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-badge-9.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-1.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-2.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-3.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-4.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-5.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-6.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-breadcrumb-7.tsx
  function Particle (line 24) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-10.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-11.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-12.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-13.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-14.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-15.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-16.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-17.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-18.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-19.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-20.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-21.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-22.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-23.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-24.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-26.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-27.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-28.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-29.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-30.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-31.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-32.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-33.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-34.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-35.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-36.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-37.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-38.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-39.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-40.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-41.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-6.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-7.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-8.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-button-9.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-1.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-10.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-11.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-12.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-13.tsx
  type DropdownItem (line 15) | interface DropdownItem {
  function YearDropdown (line 21) | function YearDropdown(props: DropdownProps) {
  function Particle (line 72) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-14.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-15.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-16.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-17.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-18.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-19.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-2.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-20.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-21.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-22.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-23.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-24.tsx
  constant GOOD_PRICE_THRESHOLD (line 9) | const GOOD_PRICE_THRESHOLD = 100;
  function Particle (line 11) | function Particle() {
  function DayButton (line 65) | function DayButton(props: DayButtonProps & { prices: Record<string, numb...

FILE: apps/ui/registry/default/particles/p-calendar-3.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-4.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-5.tsx
  function CalendarDropdown (line 13) | function CalendarDropdown(props: DropdownProps) {
  function Particle (line 57) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-6.tsx
  type DropdownItem (line 14) | interface DropdownItem {
  function CalendarDropdown (line 20) | function CalendarDropdown(props: DropdownProps) {
  function Particle (line 71) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-7.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-8.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-calendar-9.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-1.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-10.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-11.tsx
  function Particle (line 20) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-2.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-3.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-4.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-5.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-6.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-7.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-8.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-card-9.tsx
  function Particle (line 27) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-1.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-3.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-4.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-5.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-group-1.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-group-2.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-group-3.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-group-4.tsx
  function Particle (line 21) | function Particle() {

FILE: apps/ui/registry/default/particles/p-checkbox-group-5.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-collapsible-1.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-1.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-10.tsx
  type Country (line 16) | interface Country {
  function Particle (line 434) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-11.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-12.tsx
  function Particle (line 33) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-13.tsx
  function Particle (line 26) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-14.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-15.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-16.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-17.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-18.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-2.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-3.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-4.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-5.tsx
  function Particle (line 27) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-6.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-7.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-8.tsx
  type Tag (line 18) | type Tag = { id: string; label: string; group: "Status" | "Priority" | "...
  type TagGroup (line 19) | type TagGroup = { value: string; items: Tag[] };
  function groupTags (line 69) | function groupTags(tags: Tag[]): TagGroup[] {
  function Particle (line 84) | function Particle() {

FILE: apps/ui/registry/default/particles/p-combobox-9.tsx
  function Particle (line 28) | function Particle() {

FILE: apps/ui/registry/default/particles/p-command-1.tsx
  type Item (line 25) | interface Item {
  type Group (line 31) | interface Group {
  function Particle (line 57) | function Particle() {

FILE: apps/ui/registry/default/particles/p-command-2.tsx
  type Item (line 47) | interface Item {
  type Group (line 54) | interface Group {
  constant MOCK_AI_RESPONSE (line 126) | const MOCK_AI_RESPONSE = `To create a new project, navigate to the Proje...
  constant MOCK_REFERENCE_LINKS (line 132) | const MOCK_REFERENCE_LINKS = [
  type AIState (line 141) | interface AIState {
  function markdownToSafeHTML (line 161) | function markdownToSafeHTML(markdown: string): string {
  function PCommand2 (line 169) | function PCommand2() {

FILE: apps/ui/registry/default/particles/p-date-picker-1.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-2.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-3.tsx
  type DropdownItem (line 24) | interface DropdownItem {
  function CalendarDropdown (line 30) | function CalendarDropdown(props: DropdownProps) {
  function Particle (line 81) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-4.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-5.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-6.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-7.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-8.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-date-picker-9.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-1.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-2.tsx
  function Particle (line 21) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-3.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-4.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-5.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-dialog-6.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-1.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-10.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-11.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-12.tsx
  constant FORM_TITLE (line 31) | const FORM_TITLE = "Edit profile";
  constant FORM_DESCRIPTION (line 32) | const FORM_DESCRIPTION =
  constant TRIGGER_LABEL (line 34) | const TRIGGER_LABEL = "Open";
  constant CANCEL_LABEL (line 35) | const CANCEL_LABEL = "Cancel";
  constant SAVE_LABEL (line 36) | const SAVE_LABEL = "Save";
  function Particle (line 51) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-13.tsx
  constant TRIGGER_ARIA_LABEL (line 44) | const TRIGGER_ARIA_LABEL = "Open menu";
  function Particle (line 46) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-14.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-2.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-3.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-4.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-5.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-6.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-7.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-8.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-drawer-9.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-empty-1.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-1.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-10.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-11.tsx
  function Particle (line 22) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-12.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-13.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-14.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-15.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-16.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-17.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-18.tsx
  function Particle (line 23) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-3.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-4.tsx
  function FieldWithErrorDemo (line 4) | function FieldWithErrorDemo() {

FILE: apps/ui/registry/default/particles/p-field-5.tsx
  function FieldWithValidityDemo (line 6) | function FieldWithValidityDemo() {

FILE: apps/ui/registry/default/particles/p-field-6.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-7.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-8.tsx
  function Particle (line 30) | function Particle() {

FILE: apps/ui/registry/default/particles/p-field-9.tsx
  function Particle (line 33) | function Particle() {

FILE: apps/ui/registry/default/particles/p-fieldset-1.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-form-1.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-form-2.tsx
  type Errors (line 18) | type Errors = Record<string, string | string[]>;
  function submitForm (line 20) | async function submitForm(event: FormEvent<HTMLFormElement>) {
  function Particle (line 36) | function Particle() {

FILE: apps/ui/registry/default/particles/p-frame-1.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-frame-2.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-frame-3.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-frame-4.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-1.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-10.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-11.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-12.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-13.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-14.tsx
  type Currency (line 19) | interface Currency {
  function Particle (line 39) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-15.tsx
  function Particle (line 28) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-16.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-17.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-18.tsx
  function Particle (line 18) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-19.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-2.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-20.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-22.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-23.tsx
  type FilterOption (line 29) | type FilterOption = {
  function getInitials (line 68) | function getInitials(name: string): string {
  function MemberAvatar (line 78) | function MemberAvatar({
  function Particle (line 97) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-3.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-4.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-5.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-6.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-7.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-8.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-group-9.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-10.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-11.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-12.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-13.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-14.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-15.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-16.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-17.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-18.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-19.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-6.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-7.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-8.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-9.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-1.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-10.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-11.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-12.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-13.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-14.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-15.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-16.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-17.tsx
  function Particle (line 23) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-18.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-19.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-2.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-20.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-21.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-22.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-23.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-24.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-26.tsx
  function Particle (line 20) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-27.tsx
  function Particle (line 32) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-28.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-29.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-3.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-4.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-5.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-6.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-7.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-8.tsx
  function Particle (line 18) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-group-9.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-1.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-2.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-3.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-4.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-5.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-6.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-input-otp-7.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-kbd-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-1.tsx
  function Particle (line 26) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-2.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-3.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-4.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-5.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-6.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-7.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-8.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-menu-9.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-meter-1.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-meter-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-meter-3.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-meter-4.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-1.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-10.tsx
  type Errors (line 25) | type Errors = Record<string, string | string[]>;
  function submitForm (line 27) | async function submitForm(event: FormEvent<HTMLFormElement>) {
  function Particle (line 44) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-11.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-2.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-3.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-4.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-5.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-6.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-7.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-8.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-number-field-9.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-pagination-1.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-pagination-2.tsx
  type PaginationProps (line 9) | type PaginationProps = {
  function Particle (line 14) | function Particle({ currentPage, totalPages }: PaginationProps) {

FILE: apps/ui/registry/default/particles/p-pagination-3.tsx
  type PaginationProps (line 20) | type PaginationProps = {
  function Particle (line 27) | function Particle({

FILE: apps/ui/registry/default/particles/p-popover-1.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-popover-2.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-popover-3.tsx
  function Particle (line 58) | function Particle() {

FILE: apps/ui/registry/default/particles/p-preview-card-1.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-progress-1.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-progress-2.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-progress-3.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-radio-group-1.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-radio-group-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-radio-group-3.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-radio-group-4.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-radio-group-5.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-scroll-area-1.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-scroll-area-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-scroll-area-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-scroll-area-4.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-scroll-area-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-1.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-10.tsx
  function Particle (line 18) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-11.tsx
  function Particle (line 28) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-12.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-13.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-14.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-15.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-16.tsx
  function Particle (line 18) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-17.tsx
  function Particle (line 43) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-18.tsx
  function Particle (line 25) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-19.tsx
  function Particle (line 42) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-2.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-20.tsx
  function Particle (line 43) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-21.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-22.tsx
  function Particle (line 15) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-23.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-3.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-4.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-5.tsx
  function Particle (line 16) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-6.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-7.tsx
  type Language (line 24) | type Language = keyof typeof languages;
  function renderValue (line 28) | function renderValue(value: Language[]) {
  function Particle (line 39) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-8.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-select-9.tsx
  function Particle (line 19) | function Particle() {

FILE: apps/ui/registry/default/particles/p-separator-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-sheet-1.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-sheet-2.tsx
  function Particle (line 17) | function Particle() {

FILE: apps/ui/registry/default/particles/p-sheet-3.tsx
  function Particle (line 12) | function Particle() {

FILE: apps/ui/registry/default/particles/p-skeleton-1.tsx
  function UserCard (line 43) | function UserCard({ delay, user }: { delay: number; user: (typeof users)...
  function UserCardSkeleton (line 85) | function UserCardSkeleton() {
  function Particle (line 101) | function Particle() {

FILE: apps/ui/registry/default/particles/p-skeleton-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-10.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-11.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-12.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-13.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-14.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-15.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-16.tsx
  function Particle (line 9) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-17.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-18.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-19.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-20.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-21.tsx
  function Particle (line 20) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-22.tsx
  function Particle (line 153) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-23.tsx
  function Particle (line 11) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-5.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-6.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-7.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-8.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-slider-9.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-spinner-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-1.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-3.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-4.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-5.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-switch-6.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-table-1.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-table-2.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-table-3.tsx
  type Project (line 24) | type Project = {
  function Particle (line 176) | function Particle() {

FILE: apps/ui/registry/default/particles/p-table-4.tsx
  type Flight (line 43) | type Flight = {
  function Particle (line 186) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-10.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-11.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-12.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-13.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-6.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-7.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-8.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tabs-9.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-10.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-11.tsx
  function Particle (line 7) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-12.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-13.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-14.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-15.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-3.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-5.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-6.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-7.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-8.tsx
  function Particle (line 5) | function Particle() {

FILE: apps/ui/registry/default/particles/p-textarea-9.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-1.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-2.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-3.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-4.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-5.tsx
  function Particle (line 6) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-6.tsx
  constant TEXTS (line 7) | const TEXTS = [
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-7.tsx
  function Particle (line 14) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-8.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toast-9.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-1.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-2.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-3.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-4.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-5.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-6.tsx
  function Particle (line 3) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-7.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-8.tsx
  function Particle (line 13) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-1.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-2.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-3.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-4.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-5.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-6.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-7.tsx
  function ParticleItem (line 4) | function ParticleItem() {

FILE: apps/ui/registry/default/particles/p-toggle-group-8.tsx
  function Particle (line 4) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toggle-group-9.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-toolbar-1.tsx
  function Particle (line 38) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tooltip-1.tsx
  function Particle (line 8) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tooltip-2.tsx
  function Particle (line 10) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tooltip-3.tsx
  function Particle (line 28) | function Particle() {

FILE: apps/ui/registry/default/particles/p-tooltip-4.tsx
  function Particle (line 29) | function Particle() {

FILE: apps/ui/registry/default/ui/accordion.tsx
  function Accordion (line 8) | function Accordion(
  function AccordionItem (line 14) | function AccordionItem({
  function AccordionTrigger (line 27) | function AccordionTrigger({
  function AccordionPanel (line 52) | function AccordionPanel({

FILE: apps/ui/registry/default/ui/alert-dialog.tsx
  function AlertDialogTrigger (line 16) | function AlertDialogTrigger(
  function AlertDialogBackdrop (line 24) | function AlertDialogBackdrop({
  function AlertDialogViewport (line 40) | function AlertDialogViewport({
  function AlertDialogPopup (line 56) | function AlertDialogPopup({
  function AlertDialogHeader (line 87) | function AlertDialogHeader({
  function AlertDialogFooter (line 103) | function AlertDialogFooter({
  function AlertDialogTitle (line 124) | function AlertDialogTitle({
  function AlertDialogDescription (line 140) | function AlertDialogDescription({
  function AlertDialogClose (line 153) | function AlertDialogClose(

FILE: apps/ui/registry/default/ui/alert.tsx
  function Alert (line 25) | function Alert({
  function AlertTitle (line 41) | function AlertTitle({
  function AlertDescription (line 54) | function AlertDescription({
  function AlertAction (line 70) | function AlertAction({

FILE: apps/ui/registry/default/ui/autocomplete.tsx
  function AutocompleteInput (line 13) | function AutocompleteInput({
  function AutocompletePopup (line 88) | function AutocompletePopup({
  function AutocompleteItem (line 134) | function AutocompleteItem({
  function AutocompleteSeparator (line 153) | function AutocompleteSeparator({
  function AutocompleteGroup (line 166) | function AutocompleteGroup({
  function AutocompleteGroupLabel (line 179) | function AutocompleteGroupLabel({
  function AutocompleteEmpty (line 195) | function AutocompleteEmpty({
  function AutocompleteRow (line 211) | function AutocompleteRow({
  function AutocompleteValue (line 224) | function AutocompleteValue({
  function AutocompleteList (line 232) | function AutocompleteList({
  function AutocompleteClear (line 250) | function AutocompleteClear({
  function AutocompleteStatus (line 268) | function AutocompleteStatus({
  function AutocompleteCollection (line 284) | function AutocompleteCollection({
  function AutocompleteTrigger (line 295) | function AutocompleteTrigger({

FILE: apps/ui/registry/default/ui/avatar.tsx
  function Avatar (line 7) | function Avatar({
  function AvatarImage (line 23) | function AvatarImage({
  function AvatarFallback (line 36) | function AvatarFallback({

FILE: apps/ui/registry/default/ui/badge.tsx
  type BadgeProps (line 42) | interface BadgeProps extends useRender.ComponentProps<"span"> {
  function Badge (line 47) | function Badge({

FILE: apps/ui/registry/default/ui/breadcrumb.tsx
  function Breadcrumb (line 9) | function Breadcrumb({
  function BreadcrumbList (line 15) | function BreadcrumbList({
  function BreadcrumbItem (line 31) | function BreadcrumbItem({
  function BreadcrumbLink (line 44) | function BreadcrumbLink({
  function BreadcrumbPage (line 61) | function BreadcrumbPage({
  function BreadcrumbSeparator (line 75) | function BreadcrumbSeparator({
  function BreadcrumbEllipsis (line 93) | function BreadcrumbEllipsis({

FILE: apps/ui/registry/default/ui/button.tsx
  type ButtonProps (line 51) | interface ButtonProps extends useRender.ComponentProps<"button"> {
  function Button (line 57) | function Button({

FILE: apps/ui/registry/default/ui/calendar.tsx
  function Calendar (line 15) | function Calendar({

FILE: apps/ui/registry/default/ui/card.tsx
  function Card (line 8) | function Card({
  function CardFrame (line 28) | function CardFrame({
  function CardFrameHeader (line 48) | function CardFrameHeader({
  function CardFrameTitle (line 68) | function CardFrameTitle({
  function CardFrameDescription (line 85) | function CardFrameDescription({
  function CardFrameAction (line 102) | function CardFrameAction({
  function CardFrameFooter (line 122) | function CardFrameFooter({
  function CardHeader (line 139) | function CardHeader({
  function CardTitle (line 159) | function CardTitle({
  function CardDescription (line 176) | function CardDescription({
  function CardAction (line 193) | function CardAction({
  function CardPanel (line 213) | function CardPanel({
  function CardFooter (line 233) | function CardFooter({

FILE: apps/ui/registry/default/ui/checkbox-group.tsx
  function CheckboxGroup (line 7) | function CheckboxGroup({

FILE: apps/ui/registry/default/ui/checkbox.tsx
  function Checkbox (line 7) | function Checkbox({

FILE: apps/ui/registry/default/ui/collapsible.tsx
  function Collapsible (line 7) | function Collapsible({
  function CollapsibleTrigger (line 13) | function CollapsibleTrigger({
  function CollapsiblePanel (line 26) | function CollapsiblePanel({

FILE: apps/ui/registry/default/ui/combobox.tsx
  function Combobox (line 21) | function Combobox<Value, Multiple extends boolean | undefined = false>(
  function ComboboxChipsInput (line 32) | function ComboboxChipsInput({
  function ComboboxInput (line 57) | function ComboboxInput({
  function ComboboxTrigger (line 138) | function ComboboxTrigger({
  function ComboboxPopup (line 154) | function ComboboxPopup({
  function ComboboxItem (line 203) | function ComboboxItem({
  function ComboboxSeparator (line 238) | function ComboboxSeparator({
  function ComboboxGroup (line 251) | function ComboboxGroup({
  function ComboboxGroupLabel (line 264) | function ComboboxGroupLabel({
  function ComboboxEmpty (line 280) | function ComboboxEmpty({
  function ComboboxRow (line 296) | function ComboboxRow({
  function ComboboxValue (line 309) | function ComboboxValue({
  function ComboboxList (line 315) | function ComboboxList({
  function ComboboxClear (line 333) | function ComboboxClear({
  function ComboboxStatus (line 346) | function ComboboxStatus({
  function ComboboxCollection (line 362) | function ComboboxCollection(
  function ComboboxChips (line 370) | function ComboboxChips({
  function ComboboxChip (line 404) | function ComboboxChip({
  function ComboboxChipRemove (line 423) | function ComboboxChipRemove(

FILE: apps/ui/registry/default/ui/command.tsx
  function CommandDialogTrigger (line 28) | function CommandDialogTrigger(
  function CommandDialogBackdrop (line 39) | function CommandDialogBackdrop({
  function CommandDialogViewport (line 55) | function CommandDialogViewport({
  function CommandDialogPopup (line 71) | function CommandDialogPopup({
  function Command (line 95) | function Command({
  function CommandInput (line 111) | function CommandInput({
  function CommandList (line 133) | function CommandList({
  function CommandEmpty (line 146) | function CommandEmpty({
  function CommandPanel (line 159) | function CommandPanel({
  function CommandGroup (line 171) | function CommandGroup({
  function CommandGroupLabel (line 184) | function CommandGroupLabel({
  function CommandCollection (line 197) | function CommandCollection({
  function CommandItem (line 203) | function CommandItem({
  function CommandSeparator (line 216) | function CommandSeparator({
  function CommandShortcut (line 229) | function CommandShortcut({
  function CommandFooter (line 245) | function CommandFooter({

FILE: apps/ui/registry/default/ui/dialog.tsx
  function DialogTrigger (line 20) | function DialogTrigger(
  function DialogClose (line 26) | function DialogClose(
  function DialogBackdrop (line 32) | function DialogBackdrop({
  function DialogViewport (line 48) | function DialogViewport({
  function DialogPopup (line 64) | function DialogPopup({
  function DialogHeader (line 112) | function DialogHeader({
  function DialogFooter (line 132) | function DialogFooter({
  function DialogTitle (line 158) | function DialogTitle({
  function DialogDescription (line 174) | function DialogDescription({
  function DialogPanel (line 187) | function DialogPanel({

FILE: apps/ui/registry/default/ui/drawer.tsx
  type DrawerPosition (line 16) | type DrawerPosition = "right" | "left" | "top" | "bottom";
  function Drawer (line 36) | function Drawer({
  function DrawerTrigger (line 56) | function DrawerTrigger(
  function DrawerClose (line 62) | function DrawerClose(
  function DrawerSwipeArea (line 68) | function DrawerSwipeArea({
  function DrawerBackdrop (line 94) | function DrawerBackdrop({
  function DrawerViewport (line 110) | function DrawerViewport({
  function DrawerPopup (line 138) | function DrawerPopup({
  function DrawerHeader (line 227) | function DrawerHeader({
  function DrawerFooter (line 251) | function DrawerFooter({
  function DrawerTitle (line 281) | function DrawerTitle({
  function DrawerDescription (line 297) | function DrawerDescription({
  function DrawerPanel (line 310) | function DrawerPanel({
  function DrawerBar (line 348) | function DrawerBar({
  function DrawerMenu (line 385) | function DrawerMenu({
  function DrawerMenuItem (line 402) | function DrawerMenuItem({
  function DrawerMenuSeparator (line 429) | function DrawerMenuSeparator({
  function DrawerMenuGroup (line 446) | function DrawerMenuGroup({
  function DrawerMenuGroupLabel (line 463) | function DrawerMenuGroupLabel({
  function DrawerMenuTrigger (line 483) | function DrawerMenuTrigger({
  function DrawerMenuCheckboxItem (line 503) | function DrawerMenuCheckboxItem({
  function DrawerMenuRadioGroup (line 568) | function DrawerMenuRadioGroup({
  function DrawerMenuRadioItem (line 581) | function DrawerMenuRadioItem({

FILE: apps/ui/registry/default/ui/empty.tsx
  function Empty (line 20) | function Empty({
  function EmptyHeader (line 36) | function EmptyHeader({
  function EmptyMedia (line 52) | function EmptyMedia({
  function EmptyTitle (line 91) | function EmptyTitle({
  function EmptyDescription (line 104) | function EmptyDescription({
  function EmptyContent (line 120) | function EmptyContent({

FILE: apps/ui/registry/default/ui/field.tsx
  function Field (line 7) | function Field({
  function FieldLabel (line 20) | function FieldLabel({
  function FieldItem (line 36) | function FieldItem({
  function FieldDescription (line 49) | function FieldDescription({
  function FieldError (line 62) | function FieldError({

FILE: apps/ui/registry/default/ui/fieldset.tsx
  function Fieldset (line 7) | function Fieldset({
  function FieldsetLegend (line 19) | function FieldsetLegend({

FILE: apps/ui/registry/default/ui/form.tsx
  function Form (line 7) | function Form({

FILE: apps/ui/registry/default/ui/frame.tsx
  function Frame (line 4) | function Frame({
  function FramePanel (line 21) | function FramePanel({
  function FrameHeader (line 37) | function FrameHeader({
  function FrameTitle (line 50) | function FrameTitle({
  function FrameDescription (line 63) | function FrameDescription({
  function FrameFooter (line 76) | function FrameFooter({

FILE: apps/ui/registry/default/ui/group.tsx
  function Group (line 27) | function Group({
  function GroupText (line 50) | function GroupText({
  function GroupSeparator (line 69) | function GroupSeparator({

FILE: apps/ui/registry/default/ui/input-group.tsx
  function InputGroup (line 30) | function InputGroup({
  function InputGroupAddon (line 47) | function InputGroupAddon({
  function InputGroupText (
Condensed preview — 2789 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,470K chars).
[
  {
    "path": ".biome-packages-sync/packages-sync.json",
    "chars": 204,
    "preview": "{\n  \"$schema\": \"https://biomejs.dev/schemas/2.3.10/schema.json\",\n  \"root\": false,\n  \"assist\": {\n    \"enabled\": true,\n   "
  },
  {
    "path": ".github/labeler.yml",
    "chars": 969,
    "preview": "\"area:apps/origin\":\n  - changed-files:\n      - any-glob-to-any-file: \"apps/origin/**\"\n\n\"area:apps/ui\":\n  - changed-files"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 643,
    "preview": "name: Build\n\non:\n  workflow_call:\n\nenv:\n  BUN_VERSION: 1.3.1\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n     "
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 655,
    "preview": "name: CI\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ githu"
  },
  {
    "path": ".github/workflows/format.yml",
    "chars": 681,
    "preview": "name: Format\n\non:\n  workflow_call:\n\nenv:\n  BUN_VERSION: 1.3.1\n\njobs:\n  format:\n    runs-on: ubuntu-latest\n    steps:\n   "
  },
  {
    "path": ".github/workflows/labeler.yml",
    "chars": 453,
    "preview": "name: PR Labeler\n\non:\n  pull_request:\n    types:\n      - opened\n      - synchronize\n      - reopened\n  pull_request_targ"
  },
  {
    "path": ".github/workflows/lint.yml",
    "chars": 639,
    "preview": "name: Lint\n\non:\n  workflow_call:\n\nenv:\n  BUN_VERSION: 1.3.1\n\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    steps:\n      -"
  },
  {
    "path": ".github/workflows/publish.yml",
    "chars": 3480,
    "preview": "name: Publish Package\n\non:\n  workflow_dispatch:\n    inputs:\n      package:\n        description: Name of the package dire"
  },
  {
    "path": ".github/workflows/semantic-pull-requests.yml",
    "chars": 1157,
    "preview": "name: \"Validate PRs\"\n\non:\n  pull_request_target:\n    types:\n      - opened\n      - reopened\n      - edited\n      - synch"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 640,
    "preview": "name: Test\n\non:\n  workflow_call:\n\nenv:\n  BUN_VERSION: 1.3.1\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      -"
  },
  {
    "path": ".github/workflows/typecheck.yml",
    "chars": 659,
    "preview": "name: Typecheck\n\non:\n  workflow_call:\n\nenv:\n  BUN_VERSION: 1.3.1\n\njobs:\n  typecheck:\n    runs-on: ubuntu-latest\n    step"
  },
  {
    "path": ".gitignore",
    "chars": 367,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# Dependencies\nnode_modules\n.pnp\n"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 17,
    "preview": "bunx lint-staged\n"
  },
  {
    "path": ".husky/pre-push",
    "chars": 153,
    "preview": "#!/bin/sh\n# Format all files first\nbun format:all || exit $?\n\n# Then build registry and sync UI components\ncd apps/ui\nbu"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 74,
    "preview": "{\n  \"eslint.workingDirectories\": [\n    {\n      \"mode\": \"auto\"\n    }\n  ]\n}\n"
  },
  {
    "path": ".zed/settings.json",
    "chars": 213,
    "preview": "{\n  \"code_actions_on_format\": {\n    \"source.fixAll.biome\": true,\n    \"source.organizeImports.biome\": true\n  },\n  \"format"
  },
  {
    "path": "AGENTS.md",
    "chars": 203,
    "preview": "# AGENTS.md\n\nGuidelines for AI agents working on this codebase.\n\n## Main Documentation\n\nThe comprehensive agent guidelin"
  },
  {
    "path": "LICENSE",
    "chars": 34522,
    "preview": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C)"
  },
  {
    "path": "LICENSING.md",
    "chars": 247,
    "preview": "# Licensing\n\nThis repository uses a mixed licensing approach. The default license for this project is [AGPLv3.0](LICENSE"
  },
  {
    "path": "README.md",
    "chars": 5584,
    "preview": "![coss.com](https://github.com/user-attachments/assets/56dfe7f7-85b7-44ee-b89a-1c30c5c4a156)\n\n<h3 align=\"center\">coss.co"
  },
  {
    "path": "apps/examples/calcom/.gitignore",
    "chars": 499,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "apps/examples/calcom/README.md",
    "chars": 1454,
    "preview": "This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-re"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/booking-skeleton.tsx",
    "chars": 2359,
    "preview": "import { Card, CardFrame, CardPanel } from \"@coss/ui/components/card\";\nimport { FrameFooter } from \"@coss/ui/components/"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/canceled/bookings-empty.tsx",
    "chars": 915,
    "preview": "\"use client\";\n\nimport {\n  Empty,\n  EmptyDescription,\n  EmptyHeader,\n  EmptyMedia,\n  EmptyTitle,\n} from \"@coss/ui/compone"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/canceled/loading.tsx",
    "chars": 134,
    "preview": "import { BookingsListSkeleton } from \"../booking-skeleton\";\n\nexport default function Loading() {\n  return <BookingsListS"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/canceled/page.tsx",
    "chars": 506,
    "preview": "import { BookingsEmpty } from \"./bookings-empty\";\nimport { BookingsNav } from \"@/components/app/bookings-nav\";\nimport { "
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/page.tsx",
    "chars": 113,
    "preview": "import { redirect } from \"next/navigation\";\n\nexport default function Page() {\n  redirect(\"/booking/upcoming\");\n}\n"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/past/booking-actions.tsx",
    "chars": 2431,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport {\n  Menu,\n  MenuGroup,\n  MenuGroupLabel,\n  Me"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/past/bookings-list.tsx",
    "chars": 10152,
    "preview": "\"use client\";\n\nimport { Badge } from \"@coss/ui/components/badge\";\nimport { Button } from \"@coss/ui/components/button\";\ni"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/past/loading.tsx",
    "chars": 134,
    "preview": "import { BookingsListSkeleton } from \"../booking-skeleton\";\n\nexport default function Loading() {\n  return <BookingsListS"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/past/page.tsx",
    "chars": 564,
    "preview": "import { BookingsList } from \"./bookings-list\";\nimport { BookingsFilters } from \"@/components/app/bookings-filters\";\nimp"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/recurring/bookings-empty.tsx",
    "chars": 924,
    "preview": "\"use client\";\n\nimport {\n  Empty,\n  EmptyDescription,\n  EmptyHeader,\n  EmptyMedia,\n  EmptyTitle,\n} from \"@coss/ui/compone"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/recurring/loading.tsx",
    "chars": 134,
    "preview": "import { BookingsListSkeleton } from \"../booking-skeleton\";\n\nexport default function Loading() {\n  return <BookingsListS"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/recurring/page.tsx",
    "chars": 506,
    "preview": "import { BookingsEmpty } from \"./bookings-empty\";\nimport { BookingsNav } from \"@/components/app/bookings-nav\";\nimport { "
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/unconfirmed/bookings-empty.tsx",
    "chars": 939,
    "preview": "\"use client\";\n\nimport {\n  Empty,\n  EmptyDescription,\n  EmptyHeader,\n  EmptyMedia,\n  EmptyTitle,\n} from \"@coss/ui/compone"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/unconfirmed/loading.tsx",
    "chars": 134,
    "preview": "import { BookingsListSkeleton } from \"../booking-skeleton\";\n\nexport default function Loading() {\n  return <BookingsListS"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/unconfirmed/page.tsx",
    "chars": 506,
    "preview": "import { BookingsEmpty } from \"./bookings-empty\";\nimport { BookingsNav } from \"@/components/app/bookings-nav\";\nimport { "
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/upcoming/bookings-empty.tsx",
    "chars": 943,
    "preview": "\"use client\";\n\nimport {\n  Empty,\n  EmptyDescription,\n  EmptyHeader,\n  EmptyMedia,\n  EmptyTitle,\n} from \"@coss/ui/compone"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/upcoming/loading.tsx",
    "chars": 134,
    "preview": "import { BookingsListSkeleton } from \"../booking-skeleton\";\n\nexport default function Loading() {\n  return <BookingsListS"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/booking/upcoming/page.tsx",
    "chars": 506,
    "preview": "import { BookingsEmpty } from \"./bookings-empty\";\nimport { BookingsNav } from \"@/components/app/bookings-nav\";\nimport { "
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/event-types/add-event-type-dialog.tsx",
    "chars": 3240,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport {\n  Dialog,\n  DialogClose,\n  DialogDescriptio"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/event-types/event-type-actions.tsx",
    "chars": 4674,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport { Group, GroupSeparator } from \"@coss/ui/comp"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/event-types/event-types-list.tsx",
    "chars": 9954,
    "preview": "\"use client\";\n\nimport { Badge } from \"@coss/ui/components/badge\";\nimport { Card, CardPanel } from \"@coss/ui/components/c"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/event-types/page.tsx",
    "chars": 1221,
    "preview": "import {\n  InputGroup,\n  InputGroupAddon,\n  InputGroupInput,\n} from \"@coss/ui/components/input-group\";\nimport { PlusIcon"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/layout.tsx",
    "chars": 598,
    "preview": "\"use client\";\n\nimport { AppMobileFooter } from \"@/components/app/app-mobile-footer\";\nimport { AppMobileHeader } from \"@/"
  },
  {
    "path": "apps/examples/calcom/app/(dashboard)/page.tsx",
    "chars": 108,
    "preview": "import { redirect } from \"next/navigation\";\n\nexport default function Page() {\n  redirect(\"/event-types\");\n}\n"
  },
  {
    "path": "apps/examples/calcom/app/(settings)/settings/layout.tsx",
    "chars": 598,
    "preview": "\"use client\";\n\nimport { SettingsMobileHeader } from \"@/components/settings/settings-mobile-header\";\nimport { SettingsSid"
  },
  {
    "path": "apps/examples/calcom/app/(settings)/settings/my-account/general/page.tsx",
    "chars": 8657,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport {\n  Card,\n  CardFrame,\n  CardFrameDescription"
  },
  {
    "path": "apps/examples/calcom/app/(settings)/settings/my-account/page.tsx",
    "chars": 124,
    "preview": "import { redirect } from \"next/navigation\";\n\nexport default function Page() {\n  redirect(\"/settings/my-account/general\")"
  },
  {
    "path": "apps/examples/calcom/app/(settings)/settings/my-account/profile/page.tsx",
    "chars": 8703,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport { Badge }"
  },
  {
    "path": "apps/examples/calcom/app/(settings)/settings/page.tsx",
    "chars": 124,
    "preview": "import { redirect } from \"next/navigation\";\n\nexport default function Page() {\n  redirect(\"/settings/my-account/general\")"
  },
  {
    "path": "apps/examples/calcom/app/globals.css",
    "chars": 266,
    "preview": "@import \"@coss/ui/globals.css\";\n\n:root {\n  --sidebar-foreground: color-mix(\n    in srgb,\n    var(--color-neutral-800) 80"
  },
  {
    "path": "apps/examples/calcom/app/layout.tsx",
    "chars": 1182,
    "preview": "import \"./globals.css\";\n\nimport {\n  AnchoredToastProvider,\n  ToastProvider,\n} from \"@coss/ui/components/toast\";\nimport {"
  },
  {
    "path": "apps/examples/calcom/components/app/app-command.tsx",
    "chars": 23175,
    "preview": "\"use client\";\n\nimport { useAutocompleteFilter } from \"@coss/ui/components/autocomplete\";\nimport { Button } from \"@coss/u"
  },
  {
    "path": "apps/examples/calcom/components/app/app-header.tsx",
    "chars": 1143,
    "preview": "import { cn } from \"@coss/ui/lib/utils\";\nimport type * as React from \"react\";\n\nexport function AppHeader({\n  className,\n"
  },
  {
    "path": "apps/examples/calcom/components/app/app-mobile-footer.tsx",
    "chars": 3307,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport {\n  Menu,\n  MenuGroup,\n  MenuItem,\n  MenuPopu"
  },
  {
    "path": "apps/examples/calcom/components/app/app-mobile-header.tsx",
    "chars": 352,
    "preview": "import type * as React from \"react\";\nimport { HeaderActions } from \"@/components/header-actions\";\nimport { Logo } from \""
  },
  {
    "path": "apps/examples/calcom/components/app/app-sidebar.tsx",
    "chars": 1461,
    "preview": "\"use client\";\n\nimport type * as React from \"react\";\nimport { NavMain } from \"@/components/app/nav-main\";\nimport { NavSec"
  },
  {
    "path": "apps/examples/calcom/components/app/bookings-filters.tsx",
    "chars": 19940,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport { Badge }"
  },
  {
    "path": "apps/examples/calcom/components/app/bookings-nav.tsx",
    "chars": 931,
    "preview": "import { ScrollArea } from \"@coss/ui/components/scroll-area\";\nimport type * as React from \"react\";\nimport type { Tab } f"
  },
  {
    "path": "apps/examples/calcom/components/app/bookings-view.tsx",
    "chars": 659,
    "preview": "\"use client\";\n\nimport { CalendarIcon, LayoutListIcon } from \"lucide-react\";\nimport { usePathname } from \"next/navigation"
  },
  {
    "path": "apps/examples/calcom/components/app/nav-main.tsx",
    "chars": 5837,
    "preview": "\"use client\";\n\nimport {\n  Collapsible,\n  CollapsibleContent,\n  CollapsibleTrigger,\n} from \"@coss/ui/components/collapsib"
  },
  {
    "path": "apps/examples/calcom/components/app/nav-secondary.tsx",
    "chars": 1122,
    "preview": "\"use client\";\n\nimport { useMediaQuery } from \"@coss/ui/hooks/use-media-query\";\nimport type { LucideIcon } from \"lucide-r"
  },
  {
    "path": "apps/examples/calcom/components/app/tabbed-nav.tsx",
    "chars": 2324,
    "preview": "\"use client\";\n\nimport { cn } from \"@coss/ui/lib/utils\";\nimport Link from \"next/link\";\nimport { usePathname, useSearchPar"
  },
  {
    "path": "apps/examples/calcom/components/copyable-field.tsx",
    "chars": 3096,
    "preview": "\"use client\";\n\nimport { Button } from \"@coss/ui/components/button\";\nimport { Field, FieldDescription, FieldLabel } from "
  },
  {
    "path": "apps/examples/calcom/components/debug-context.tsx",
    "chars": 1204,
    "preview": "\"use client\";\n\nimport type * as React from \"react\";\nimport type { Context } from \"react\";\nimport { createContext, type R"
  },
  {
    "path": "apps/examples/calcom/components/debug-popover.tsx",
    "chars": 1580,
    "preview": "\"use client\";\n\nimport { Label } from \"@coss/ui/components/label\";\nimport {\n  Popover,\n  PopoverPopup,\n  PopoverTrigger,\n"
  },
  {
    "path": "apps/examples/calcom/components/header-actions.tsx",
    "chars": 1387,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport { Command"
  },
  {
    "path": "apps/examples/calcom/components/item-label.tsx",
    "chars": 1067,
    "preview": "import { cn } from \"@coss/ui/lib/utils\";\nimport type * as React from \"react\";\nimport type { CSSProperties } from \"react\""
  },
  {
    "path": "apps/examples/calcom/components/list-item.tsx",
    "chars": 10765,
    "preview": "import { mergeProps } from \"@coss/ui/base-ui/merge-props\";\nimport { useRender } from \"@coss/ui/base-ui/use-render\";\nimpo"
  },
  {
    "path": "apps/examples/calcom/components/logo.tsx",
    "chars": 449,
    "preview": "import Link from \"next/link\";\nimport type * as React from \"react\";\n\ntype LogoProps = Omit<React.ComponentPropsWithoutRef"
  },
  {
    "path": "apps/examples/calcom/components/mobile-header.tsx",
    "chars": 668,
    "preview": "\"use client\";\n\nimport { cn } from \"@coss/ui/lib/utils\";\nimport type * as React from \"react\";\nimport { useScrollHide } fr"
  },
  {
    "path": "apps/examples/calcom/components/settings/settings-mobile-header.tsx",
    "chars": 644,
    "preview": "import { Button } from \"@coss/ui/components/button\";\nimport { ArrowLeftIcon } from \"lucide-react\";\nimport Link from \"nex"
  },
  {
    "path": "apps/examples/calcom/components/settings/settings-nav-section.tsx",
    "chars": 2813,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport { Externa"
  },
  {
    "path": "apps/examples/calcom/components/settings/settings-sheet.tsx",
    "chars": 1304,
    "preview": "\"use client\";\n\nimport { Sheet, SheetPopup, SheetTrigger } from \"@coss/ui/components/sheet\";\nimport { MenuIcon } from \"lu"
  },
  {
    "path": "apps/examples/calcom/components/settings/settings-sidebar.tsx",
    "chars": 3186,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport { ArrowLe"
  },
  {
    "path": "apps/examples/calcom/components/settings/settings-toggle.tsx",
    "chars": 880,
    "preview": "\"use client\";\n\nimport {\n  Card,\n  CardFrameDescription,\n  CardFrameHeader,\n  CardFrameTitle,\n  CardPanel,\n} from \"@coss/"
  },
  {
    "path": "apps/examples/calcom/components/settings-toggle.tsx",
    "chars": 1459,
    "preview": "\"use client\";\n\nimport {\n  Card,\n  CardFrameDescription,\n  CardFrameHeader,\n  CardFrameTitle,\n  CardPanel,\n} from \"@coss/"
  },
  {
    "path": "apps/examples/calcom/components/sortable.tsx",
    "chars": 5294,
    "preview": "\"use client\";\n\nimport type { DraggableAttributes } from \"@dnd-kit/core\";\nimport {\n  closestCenter,\n  DndContext,\n  type "
  },
  {
    "path": "apps/examples/calcom/components/ui/sidebar.tsx",
    "chars": 13643,
    "preview": "\"use client\";\n\nimport { mergeProps } from \"@coss/ui/base-ui/merge-props\";\nimport { useRender } from \"@coss/ui/base-ui/us"
  },
  {
    "path": "apps/examples/calcom/components/user-menu.tsx",
    "chars": 2850,
    "preview": "\"use client\";\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@coss/ui/components/avatar\";\nimport {\n  Menu,"
  },
  {
    "path": "apps/examples/calcom/components/workflows-badge.tsx",
    "chars": 540,
    "preview": "import { Badge } from \"@coss/ui/components/badge\";\nimport { SparklesIcon } from \"lucide-react\";\nimport type * as React f"
  },
  {
    "path": "apps/examples/calcom/hooks/use-loading-state.ts",
    "chars": 773,
    "preview": "import { useEffect, useState } from \"react\";\nimport { useDebug } from \"@/components/debug-context\";\n\n/**\n * Custom hook "
  },
  {
    "path": "apps/examples/calcom/hooks/use-scroll-hide.ts",
    "chars": 948,
    "preview": "import * as React from \"react\";\n\nconst DEFAULT_SCROLL_THRESHOLD = 48;\n\nexport function useScrollHide(threshold = DEFAULT"
  },
  {
    "path": "apps/examples/calcom/lib/event-types-types.ts",
    "chars": 827,
    "preview": "/**\n * Type definitions for event types matching Cal.com's structure.\n * These types are based on Cal.com's Prisma schem"
  },
  {
    "path": "apps/examples/calcom/lib/markdown-to-safe-html.ts",
    "chars": 284,
    "preview": "import DOMPurify from \"dompurify\";\nimport { marked } from \"marked\";\n\nmarked.use({ async: false });\n\nexport function mark"
  },
  {
    "path": "apps/examples/calcom/lib/mock-ai-data.ts",
    "chars": 4134,
    "preview": "export interface ReferenceLink {\n  title: string;\n  url: string;\n}\n\nexport const MOCK_AI_RESPONSE = `I'd be happy to hel"
  },
  {
    "path": "apps/examples/calcom/lib/mock-bookings-data.ts",
    "chars": 34418,
    "preview": "/**\n * Mock data for bookings that matches Cal.com's data structure.\n * This enables easier integration with the actual "
  },
  {
    "path": "apps/examples/calcom/lib/mock-event-types-data.ts",
    "chars": 26542,
    "preview": "/**\n * Mock data for event types that matches Cal.com's data structure.\n * This enables easier integration with the actu"
  },
  {
    "path": "apps/examples/calcom/lib/navigation-data.ts",
    "chars": 1957,
    "preview": "import {\n  ActivityIcon,\n  CalendarIcon,\n  ClockFadingIcon,\n  ContactRoundIcon,\n  CopyIcon,\n  ExternalLinkIcon,\n  GiftIc"
  },
  {
    "path": "apps/examples/calcom/lib/settings-navigation-data.ts",
    "chars": 3193,
    "preview": "import {\n  CreditCardIcon,\n  KeyIcon,\n  type LucideIcon,\n  TerminalIcon,\n} from \"lucide-react\";\n\nexport interface Settin"
  },
  {
    "path": "apps/examples/calcom/next.config.ts",
    "chars": 140,
    "preview": "import type { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {\n  transpilePackages: [\"@coss/ui\"],\n};\n\nexport "
  },
  {
    "path": "apps/examples/calcom/package.json",
    "chars": 1066,
    "preview": "{\n  \"dependencies\": {\n    \"@coss/ui\": \"workspace:*\",\n    \"@dnd-kit/core\": \"^6.3.1\",\n    \"@dnd-kit/sortable\": \"^10.0.0\",\n"
  },
  {
    "path": "apps/examples/calcom/postcss.config.mjs",
    "chars": 88,
    "preview": "import { postcssConfig } from \"@coss/ui/postcss.config\";\n\nexport default postcssConfig;\n"
  },
  {
    "path": "apps/examples/calcom/tsconfig.json",
    "chars": 339,
    "preview": "{\n  \"compilerOptions\": {\n    \"paths\": {\n      \"@/*\": [\"./*\"]\n    },\n    \"plugins\": [\n      {\n        \"name\": \"next\"\n    "
  },
  {
    "path": "apps/examples/next-env.d.ts",
    "chars": 251,
    "preview": "/// <reference types=\"next\" />\n/// <reference types=\"next/image-types/global\" />\nimport \"./.next/dev/types/routes.d.ts\";"
  },
  {
    "path": "apps/origin/.gitignore",
    "chars": 408,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "apps/origin/LICENSE.md",
    "chars": 1105,
    "preview": "MIT License\n\nCopyright (c) 2025 coss.com\nOriginally Copyright (c) 2025 Origin UI\n\nPermission is hereby granted, free of "
  },
  {
    "path": "apps/origin/README.md",
    "chars": 4612,
    "preview": "> Legacy snapshot\n>\n> - This app is a preserved, pre-acquisition version of Origin UI (Radix-based, shadcn-style).\n> - I"
  },
  {
    "path": "apps/origin/app/[category]/page.tsx",
    "chars": 4235,
    "preview": "import type { Metadata } from \"next\";\nimport { notFound } from \"next/navigation\";\nimport ComponentCard from \"@/component"
  },
  {
    "path": "apps/origin/app/easings/copy-class.tsx",
    "chars": 2549,
    "preview": "\"use client\";\n\nimport { useState } from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Button } fr"
  },
  {
    "path": "apps/origin/app/easings/easings.tsx",
    "chars": 13573,
    "preview": "\"use client\";\n\nimport type React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Input } from \"@/reg"
  },
  {
    "path": "apps/origin/app/easings/page.tsx",
    "chars": 2601,
    "preview": "import type { Metadata } from \"next\";\nimport Easings from \"./easings\";\nimport PageHeader from \"@/components/page-header\""
  },
  {
    "path": "apps/origin/app/globals.css",
    "chars": 6674,
    "preview": "@import \"tailwindcss\";\n@import \"tw-animate-css\";\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n  --color-backg"
  },
  {
    "path": "apps/origin/app/layout.tsx",
    "chars": 2800,
    "preview": "import type { Metadata, Viewport } from \"next\";\nimport { Cal_Sans as FontHeading, Inter as FontSans } from \"next/font/go"
  },
  {
    "path": "apps/origin/app/not-found.tsx",
    "chars": 526,
    "preview": "import Link from \"next/link\";\nimport { Button } from \"@/registry/default/ui/button\";\nimport PageHeader from \"@/component"
  },
  {
    "path": "apps/origin/app/page.tsx",
    "chars": 9310,
    "preview": "import Image from \"next/image\";\nimport Link from \"next/link\";\nimport SearchButton from \"@/components/search-button\";\nimp"
  },
  {
    "path": "apps/origin/app/search/components-container.tsx",
    "chars": 2140,
    "preview": "\"use client\";\n\nimport { useSearchParams } from \"next/navigation\";\nimport { useCallback, useMemo } from \"react\";\nimport t"
  },
  {
    "path": "apps/origin/app/search/multiselect.tsx",
    "chars": 20749,
    "preview": "\"use client\";\n\nimport { RiCloseCircleFill, RiCloseLine } from \"@remixicon/react\";\nimport { Command as CommandPrimitive, "
  },
  {
    "path": "apps/origin/app/search/page.tsx",
    "chars": 631,
    "preview": "import type { Metadata } from \"next\";\nimport { Suspense } from \"react\";\nimport ComponentsContainer from \"./components-co"
  },
  {
    "path": "apps/origin/app/search/search-field.tsx",
    "chars": 3352,
    "preview": "\"use client\";\n\nimport { RiSearch2Line } from \"@remixicon/react\";\nimport { useState } from \"react\";\nimport type { Registr"
  },
  {
    "path": "apps/origin/app/sitemap.ts",
    "chars": 518,
    "preview": "import type { MetadataRoute } from \"next\";\nimport { categories } from \"@/config/components\";\n\nexport default function si"
  },
  {
    "path": "apps/origin/components/cli-commands.tsx",
    "chars": 2924,
    "preview": "\"use client\";\n\nimport {\n  Tabs,\n  TabsContent,\n  TabsList,\n  TabsTrigger,\n} from \"@/registry/default/ui/tabs\";\nimport Co"
  },
  {
    "path": "apps/origin/components/code-block.tsx",
    "chars": 1714,
    "preview": "\"use client\";\n\nimport { toJsxRuntime } from \"hast-util-to-jsx-runtime\";\nimport { type JSX, useLayoutEffect, useState } f"
  },
  {
    "path": "apps/origin/components/component-card.tsx",
    "chars": 1608,
    "preview": "import type { RegistryItem } from \"shadcn/registry\";\nimport { cn } from \"@/registry/default/lib/utils\";\n\nexport default "
  },
  {
    "path": "apps/origin/components/component-details.tsx",
    "chars": 4825,
    "preview": "\"use client\";\n\nimport { CodeIcon } from \"lucide-react\";\nimport { type JSX, useEffect, useState } from \"react\";\nimport ty"
  },
  {
    "path": "apps/origin/components/component-loader-client.tsx",
    "chars": 1155,
    "preview": "\"use client\";\n\nimport { LoaderCircleIcon } from \"lucide-react\";\nimport dynamic from \"next/dynamic\";\nimport type { Compon"
  },
  {
    "path": "apps/origin/components/component-loader-server.tsx",
    "chars": 680,
    "preview": "import type { ComponentType } from \"react\";\nimport type { RegistryItem } from \"shadcn/registry\";\n\ninterface ComponentLoa"
  },
  {
    "path": "apps/origin/components/copy-button.tsx",
    "chars": 2784,
    "preview": "\"use client\";\n\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Button } from \"@/registry/default/ui/button\";"
  },
  {
    "path": "apps/origin/components/copy-layout.tsx",
    "chars": 1194,
    "preview": "\"use client\";\n\nimport { CheckIcon, TerminalIcon } from \"lucide-react\";\nimport {\n  Tooltip,\n  TooltipContent,\n  TooltipPr"
  },
  {
    "path": "apps/origin/components/copy-registry.tsx",
    "chars": 3170,
    "preview": "\"use client\";\n\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Button } from \"@/registry/default/ui/button\";"
  },
  {
    "path": "apps/origin/components/cta.tsx",
    "chars": 614,
    "preview": "import { Button } from \"@/registry/default/ui/button\";\n\nexport default function Cta() {\n  return (\n    <div className=\"m"
  },
  {
    "path": "apps/origin/components/footer.tsx",
    "chars": 842,
    "preview": "export default function Footer() {\n  return (\n    <footer className=\"relative mt-16 py-8 before:absolute before:-inset-x"
  },
  {
    "path": "apps/origin/components/header-link.tsx",
    "chars": 1356,
    "preview": "import { RiArrowRightUpLine } from \"@remixicon/react\";\nimport Link from \"next/link\";\nimport { cn } from \"@/registry/defa"
  },
  {
    "path": "apps/origin/components/header.tsx",
    "chars": 3180,
    "preview": "\"use client\";\n\nimport { RiGithubFill, RiTwitterXFill } from \"@remixicon/react\";\nimport Link from \"next/link\";\nimport Hea"
  },
  {
    "path": "apps/origin/components/open-in-v0.tsx",
    "chars": 2081,
    "preview": "\"use client\";\n\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { buttonVariants } from \"@/registry/default/ui/"
  },
  {
    "path": "apps/origin/components/page-grid.tsx",
    "chars": 301,
    "preview": "export default function PageGrid({ children }: { children: React.ReactNode }) {\n  return (\n    <div className=\"overflow-"
  },
  {
    "path": "apps/origin/components/page-header.tsx",
    "chars": 548,
    "preview": "import { cn } from \"@/registry/default/lib/utils\";\n\ninterface PageHeaderProps {\n  title: string;\n  className?: string;\n "
  },
  {
    "path": "apps/origin/components/search-button.tsx",
    "chars": 1504,
    "preview": "\"use client\";\n\nimport { RiSearch2Line } from \"@remixicon/react\";\nimport Link from \"next/link\";\nimport { useRouter } from"
  },
  {
    "path": "apps/origin/components/subscribe-action.ts",
    "chars": 3299,
    "preview": "\"use server\";\n\nimport { z } from \"zod\";\n\ntype EmailOctopusError = {\n  code?: string;\n  detail?: string;\n  title?: string"
  },
  {
    "path": "apps/origin/components/subscribe-form.tsx",
    "chars": 5386,
    "preview": "\"use client\";\n\nimport { RiLoader3Line, RiNavigationLine } from \"@remixicon/react\";\nimport { useId, useState } from \"reac"
  },
  {
    "path": "apps/origin/components/theme-provider.tsx",
    "chars": 264,
    "preview": "\"use client\";\n\nimport {\n  ThemeProvider as NextThemesProvider,\n  type ThemeProviderProps,\n} from \"next-themes\";\n\nexport "
  },
  {
    "path": "apps/origin/components/theme-toggle.tsx",
    "chars": 1805,
    "preview": "\"use client\";\n\nimport { RiMoonClearLine, RiSunLine } from \"@remixicon/react\";\nimport { useTheme } from \"next-themes\";\nim"
  },
  {
    "path": "apps/origin/components/top-banner.tsx",
    "chars": 1067,
    "preview": "import { ArrowUpRightIcon } from \"lucide-react\";\n\nexport default function TopBanner() {\n  const gatewayOrigin = process."
  },
  {
    "path": "apps/origin/components.json",
    "chars": 495,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"aliases\": {\n    \"components\": \"@/registry/default/components\",\n  "
  },
  {
    "path": "apps/origin/config/components.ts",
    "chars": 19445,
    "preview": "export interface ComponentCategory {\n  slug: string;\n  name: string;\n  components: { name: string }[];\n  isNew?: boolean"
  },
  {
    "path": "apps/origin/docs/use-file-upload.md",
    "chars": 20859,
    "preview": "# useFileUpload Hook\n\nA flexible and feature-rich React hook for handling file uploads with drag-and-drop support, file "
  },
  {
    "path": "apps/origin/hooks/use-config.ts",
    "chars": 300,
    "preview": "import { useAtom } from \"jotai\";\nimport { atomWithStorage } from \"jotai/utils\";\n\ntype Config = {\n  packageManager: \"npm\""
  },
  {
    "path": "apps/origin/hooks/use-copy.ts",
    "chars": 472,
    "preview": "import { useState } from \"react\";\n\nexport function useCopy(duration = 1500) {\n  const [copied, setCopied] = useState<boo"
  },
  {
    "path": "apps/origin/hooks/use-mobile.tsx",
    "chars": 585,
    "preview": "import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n  const [isMobile, setI"
  },
  {
    "path": "apps/origin/lib/utils.ts",
    "chars": 1952,
    "preview": "import { type ClassValue, clsx } from \"clsx\";\nimport type { RegistryItem } from \"shadcn/registry\";\nimport { twMerge } fr"
  },
  {
    "path": "apps/origin/next.config.ts",
    "chars": 165,
    "preview": "import type { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {\n  basePath: process.env.NEXT_PUBLIC_BASE_PATH "
  },
  {
    "path": "apps/origin/package.json",
    "chars": 2197,
    "preview": "{\n  \"dependencies\": {\n    \"@dnd-kit/core\": \"^6.3.1\",\n    \"@dnd-kit/modifiers\": \"^9.0.0\",\n    \"@dnd-kit/sortable\": \"^10.0"
  },
  {
    "path": "apps/origin/postcss.config.mjs",
    "chars": 146,
    "preview": "/** @type {import('postcss-load-config').Config} */\nconst config = {\n  plugins: {\n    \"@tailwindcss/postcss\": {},\n  },\n}"
  },
  {
    "path": "apps/origin/public/r/accordion.json",
    "chars": 3236,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"accordion\",\n  \"type\": \"registry:ui\",\n  \"dep"
  },
  {
    "path": "apps/origin/public/r/alert-dialog.json",
    "chars": 4509,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"alert-dialog\",\n  \"type\": \"registry:ui\",\n  \""
  },
  {
    "path": "apps/origin/public/r/avatar.json",
    "chars": 1492,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"avatar\",\n  \"type\": \"registry:ui\",\n  \"depend"
  },
  {
    "path": "apps/origin/public/r/badge.json",
    "chars": 1875,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"badge\",\n  \"type\": \"registry:ui\",\n  \"depende"
  },
  {
    "path": "apps/origin/public/r/breadcrumb.json",
    "chars": 2896,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"breadcrumb\",\n  \"type\": \"registry:ui\",\n  \"de"
  },
  {
    "path": "apps/origin/public/r/button.json",
    "chars": 2275,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"button\",\n  \"type\": \"registry:ui\",\n  \"depend"
  },
  {
    "path": "apps/origin/public/r/calendar-rac.json",
    "chars": 5170,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"calendar-rac\",\n  \"type\": \"registry:ui\",\n  \""
  },
  {
    "path": "apps/origin/public/r/calendar.json",
    "chars": 4516,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"calendar\",\n  \"type\": \"registry:ui\",\n  \"depe"
  },
  {
    "path": "apps/origin/public/r/checkbox-tree.json",
    "chars": 3290,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"checkbox-tree\",\n  \"type\": \"registry:ui\",\n  "
  },
  {
    "path": "apps/origin/public/r/checkbox.json",
    "chars": 2746,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"checkbox\",\n  \"type\": \"registry:ui\",\n  \"depe"
  },
  {
    "path": "apps/origin/public/r/collapsible.json",
    "chars": 1132,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"collapsible\",\n  \"type\": \"registry:ui\",\n  \"d"
  },
  {
    "path": "apps/origin/public/r/command.json",
    "chars": 5203,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"command\",\n  \"type\": \"registry:ui\",\n  \"depen"
  },
  {
    "path": "apps/origin/public/r/comp-01.json",
    "chars": 845,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-01\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-02.json",
    "chars": 938,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-02\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-03.json",
    "chars": 1068,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-03\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-04.json",
    "chars": 1066,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-04\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-05.json",
    "chars": 944,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-05\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-06.json",
    "chars": 1174,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-06\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-07.json",
    "chars": 956,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-07\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-08.json",
    "chars": 874,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-08\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-09.json",
    "chars": 1213,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-09\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-10.json",
    "chars": 1205,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-10\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-100.json",
    "chars": 1977,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-100\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-101.json",
    "chars": 1618,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-101\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-102.json",
    "chars": 1425,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-102\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-103.json",
    "chars": 1392,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-103\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-104.json",
    "chars": 2338,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-104\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-105.json",
    "chars": 2439,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-105\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-106.json",
    "chars": 1323,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-106\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-107.json",
    "chars": 2479,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-107\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-108.json",
    "chars": 1572,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-108\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-109.json",
    "chars": 886,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-109\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-11.json",
    "chars": 1204,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-11\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-110.json",
    "chars": 1217,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-110\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-111.json",
    "chars": 1105,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-111\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-112.json",
    "chars": 1186,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-112\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-113.json",
    "chars": 1224,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-113\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-114.json",
    "chars": 1472,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-114\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-115.json",
    "chars": 911,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-115\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-116.json",
    "chars": 903,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-116\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-117.json",
    "chars": 1024,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-117\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-118.json",
    "chars": 875,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-118\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-119.json",
    "chars": 1440,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-119\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-12.json",
    "chars": 1192,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-12\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-120.json",
    "chars": 2045,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-120\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-121.json",
    "chars": 1732,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-121\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-122.json",
    "chars": 1988,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-122\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-123.json",
    "chars": 1335,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-123\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-124.json",
    "chars": 760,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-124\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-125.json",
    "chars": 14571,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-125\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-126.json",
    "chars": 14141,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-126\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-127.json",
    "chars": 1728,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-127\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-128.json",
    "chars": 1064,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-128\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-129.json",
    "chars": 1281,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-129\",\n  \"type\": \"registry:component\",\n"
  },
  {
    "path": "apps/origin/public/r/comp-13.json",
    "chars": 1391,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-13\",\n  \"type\": \"registry:component\",\n "
  },
  {
    "path": "apps/origin/public/r/comp-130.json",
    "chars": 1717,
    "preview": "{\n  \"$schema\": \"https://ui.shadcn.com/schema/registry-item.json\",\n  \"name\": \"comp-130\",\n  \"type\": \"registry:component\",\n"
  }
]

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

About this extraction

This page contains the full source code of the cosscom/coss GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2789 files (8.3 MB), approximately 2.3M tokens, and a symbol index with 2547 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!