A design system in a box. hip-ui.tngl.io/docs/introduction
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add grid

+10844 -93
+8
.vscode/settings.json
··· 5 5 } 6 6 ], 7 7 "search.exclude": { 8 + "**/routeTree.gen.ts": true, 9 + "**/apps/docs/src/components/**": true, 8 10 "**/apps/example/src/components/**": true 11 + }, 12 + "files.watcherExclude": { 13 + "**/routeTree.gen.ts": true 14 + }, 15 + "files.readonlyInclude": { 16 + "**/routeTree.gen.ts": true 9 17 } 10 18 }
+2 -2
README.md
··· 18 18 19 19 - [ ] Alert / Callout 20 20 - [ ] Aspect Ratio 21 - - [ ] Badge 22 21 - [ ] Carousel 23 22 - [ ] Empty 24 - - [ ] Grid 25 23 - [ ] Input Group 26 24 - [ ] Input OTP 27 25 - [ ] Kbd ··· 77 75 - [ ] Toolbar 78 76 - [ ] Toast 79 77 78 + - [x] Grid 79 + - [x] Badge 80 80 - [x] Avatar 81 81 - [x] Alert Dialog 82 82 - [x] Dialog
+15
apps/docs/.cta.json
··· 1 + { 2 + "projectName": "docs", 3 + "mode": "file-router", 4 + "typescript": true, 5 + "tailwind": true, 6 + "packageManager": "pnpm", 7 + "addOnOptions": {}, 8 + "git": true, 9 + "version": 1, 10 + "framework": "react-cra", 11 + "chosenAddOns": [ 12 + "nitro", 13 + "start" 14 + ] 15 + }
+4
apps/docs/hip.config.json
··· 1 + { 2 + "packageManager": "pnpm", 3 + "componentDir": "src/components" 4 + }
+48
apps/docs/package.json
··· 1 + { 2 + "name": "docs", 3 + "private": true, 4 + "type": "module", 5 + "scripts": { 6 + "dev": "vite dev --port 3000", 7 + "build": "vite build", 8 + "serve": "vite preview", 9 + "test": "vitest run" 10 + }, 11 + "dependencies": { 12 + "@react-stately/utils": "^3.10.8", 13 + "@react-types/overlays": "^3.9.2", 14 + "@stylexjs/stylex": "^0.16.2", 15 + "@tailwindcss/vite": "^4.0.6", 16 + "@tanstack/nitro-v2-vite-plugin": "^1.132.31", 17 + "@tanstack/react-devtools": "^0.7.0", 18 + "@tanstack/react-router": "^1.132.0", 19 + "@tanstack/react-router-devtools": "^1.132.0", 20 + "@tanstack/react-router-ssr-query": "^1.131.7", 21 + "@tanstack/react-start": "^1.132.0", 22 + "@tanstack/router-plugin": "^1.132.0", 23 + "lucide-react": "^0.545.0", 24 + "react": "^19.0.0", 25 + "react-aria": "^3.44.0", 26 + "react-aria-components": "^1.13.0", 27 + "react-dom": "^19.0.0", 28 + "react-stately": "^3.42.0", 29 + "tailwindcss": "^4.0.6", 30 + "unplugin-stylex": "^0.5.5", 31 + "vite-tsconfig-paths": "^5.1.4" 32 + }, 33 + "devDependencies": { 34 + "@repo/typescript-config": "workspace:*", 35 + "@testing-library/dom": "^10.4.0", 36 + "@testing-library/react": "^16.2.0", 37 + "@types/node": "^22.10.2", 38 + "@types/react": "^19.0.8", 39 + "@types/react-dom": "^19.0.3", 40 + "@vitejs/plugin-react": "^5.0.4", 41 + "hip-ui": "workspace:*", 42 + "jsdom": "^27.0.0", 43 + "typescript": "^5.7.2", 44 + "vite": "^7.1.7", 45 + "vitest": "^3.0.5", 46 + "web-vitals": "^5.1.0" 47 + } 48 + }
apps/docs/public/favicon.ico

This is a binary file and will not be displayed.

apps/docs/public/logo192.png

This is a binary file and will not be displayed.

apps/docs/public/logo512.png

This is a binary file and will not be displayed.

+25
apps/docs/public/manifest.json
··· 1 + { 2 + "short_name": "TanStack App", 3 + "name": "Create TanStack App Sample", 4 + "icons": [ 5 + { 6 + "src": "favicon.ico", 7 + "sizes": "64x64 32x32 24x24 16x16", 8 + "type": "image/x-icon" 9 + }, 10 + { 11 + "src": "logo192.png", 12 + "type": "image/png", 13 + "sizes": "192x192" 14 + }, 15 + { 16 + "src": "logo512.png", 17 + "type": "image/png", 18 + "sizes": "512x512" 19 + } 20 + ], 21 + "start_url": ".", 22 + "display": "standalone", 23 + "theme_color": "#000000", 24 + "background_color": "#ffffff" 25 + }
+3
apps/docs/public/robots.txt
··· 1 + # https://www.robotstxt.org/robotstxt.html 2 + User-agent: * 3 + Disallow:
apps/docs/public/tanstack-circle-logo.png

This is a binary file and will not be displayed.

+1
apps/docs/public/tanstack-word-logo-white.svg
··· 1 + <svg height="660" viewBox="0 0 3178 660" width="3178" xmlns="http://www.w3.org/2000/svg"><g fill="#fff" transform="translate(.9778)"><g transform="translate(740.0222 38)"><path d="m101.695801 467h101.445312v-264.858398h90.917969v-80.390625h-283.28125v80.390625h90.917969z"/><path d="m241.544434 467h106.708984l68.666992-262.944336h33.017578v-82.304687h-95.703125zm70.820312-68.666992h211.025391l-21.054688-71.538086h-168.916015zm175.136719 68.666992h106.708984l-112.690429-345.249023h-62.685547v82.304687z"/><path d="m600.313965 467h101.445312v-179.443359h41.391602l-66.274414-38.759766 149.536133 218.203125h83.500976v-345.249023h-101.445312v176.572265h-41.391602l66.513672 38.759766-148.818359-215.332031h-84.458008z"/><path d="m1072.01318 473.220703c31.74154 0 58.85743-4.74528 81.34766-14.23584s39.67692-22.96875 51.56006-40.43457 17.82471-38.081869 17.82471-61.848145v-.239257c0-18.66211-3.94776-34.572754-11.84327-47.731934-7.8955-13.15918-19.89827-23.965658-36.0083-32.419434-16.11002-8.453776-36.52669-14.913737-61.25-19.379882l-34.69238-6.220703c-17.22656-3.190105-29.74772-6.898601-37.56348-11.125489-7.81575-4.226888-11.72363-10.248209-11.72363-18.063965v-.239257c0-5.263672 1.59505-10.008952 4.78516-14.23584 3.1901-4.226888 7.93538-7.576498 14.23584-10.048828 6.30045-2.472331 14.07633-3.708497 23.32763-3.708497 9.25131 0 17.5057 1.276042 24.76319 3.828126 7.25748 2.552083 13.07942 6.101074 17.46582 10.646972 4.38639 4.545899 6.8986 10.008952 7.53662 16.38916l.23926 2.392578h93.31054l-.23925-5.263671c-.95704-21.533204-7.01823-40.235189-18.1836-56.105957-11.16536-15.870769-27.27539-28.112793-48.33008-36.726075-21.05468-8.613281-46.97428-12.919922-77.75879-12.919922-27.27539 0-51.59993 4.625651-72.973628 13.876954-21.373698 9.251302-38.161621 22.330729-50.36377 39.238281-12.202148 16.907552-18.303222 36.925456-18.303222 60.053711v.239258c0 26.796875 9.131673 48.728841 27.395019 65.795898s44.541831 28.631185 78.835451 34.692383l34.69238 6.220703c19.14063 3.509115 32.61882 7.33724 40.43457 11.484375 7.81576 4.147135 11.72363 10.288086 11.72363 18.422852v.239257c0 5.742188-1.99381 10.846354-5.98144 15.3125s-9.61019 7.975261-16.86768 10.527344c-7.25748 2.552083-15.99039 3.828125-26.19873 3.828125-9.57031 0-18.3431-1.315918-26.31836-3.947754s-14.59472-6.260579-19.8584-10.88623c-5.26367-4.625651-8.61328-10.048828-10.04882-16.269532l-.47852-2.15332h-93.310546l.239258 4.545899c1.276042 22.649739 8.015137 41.909993 20.217285 57.780761 12.202149 15.870769 29.189453 27.953288 50.961914 36.247559 21.772459 8.294271 47.572429 12.441406 77.399899 12.441406z"/><path d="m1303.73682 467h101.44531v-264.858398h90.91797v-80.390625h-283.28125v80.390625h90.91797z"/><path d="m1443.58545 467h106.70898l68.667-262.944336h33.01757v-82.304687h-95.70312zm70.82031-68.666992h211.02539l-21.05469-71.538086h-168.91601zm175.13672 68.666992h106.70898l-112.69042-345.249023h-62.68555v82.304687z"/><path d="m1941.12451 473.220703c31.74154 0 59.65495-6.300456 83.74024-18.901367 24.08528-12.600912 42.94677-29.667969 56.58447-51.201172 13.63769-21.533203 20.45654-45.777995 20.45654-72.734375v-2.631836h-97.13867l-.23926 2.631836c-1.11653 12.122396-4.46614 22.689616-10.04883 31.70166-5.58268 9.012044-12.91992 15.990397-22.01171 20.935059-9.0918 4.944661-19.45964 7.416992-31.10352 7.416992-13.87695 0-25.9196-3.748372-36.12793-11.245117s-18.06396-18.462728-23.56689-32.897949c-5.50293-14.435222-8.2544-31.861166-8.2544-52.277832v-.239258c0-20.257162 2.75147-37.483724 8.2544-51.679688 5.50293-14.195963 13.31868-25.042317 23.44726-32.539062s22.13135-11.245117 36.0083-11.245117c12.60091 0 23.40739 2.591959 32.41944 7.775878 9.01204 5.18392 16.11002 12.281902 21.29394 21.293946s8.2544 19.260254 9.21143 30.744629l.23925 2.871093h97.13868v-2.15332c0-27.115885-6.69922-51.480306-20.09766-73.093262-13.39844-21.612955-32.10042-38.719889-56.10596-51.3208-24.00553-12.600912-52.03857-18.901368-84.09912-18.901368-35.09114 0-65.43701 6.978353-91.0376 20.935059-25.60058 13.956706-45.33935 34.213867-59.2163 60.771484-13.87696 26.557618-20.81543 58.817546-20.81543 96.779786v.239257c0 37.96224 6.8986 70.262045 20.6958 96.899414 13.7972 26.63737 33.49609 46.974284 59.09668 61.010743 25.60058 14.036458 56.0262 21.054687 91.27685 21.054687z"/><path d="m2214.23975 379.670898 75.36621-101.445312h26.0791l116.04004-156.474609h-106.46973l-106.70898 146.425781h-4.30664zm-99.05274 87.329102h101.44531v-345.249023h-101.44531zm203.84766 0h117.9541l-140.20508-226.577148-74.16992 64.121093z"/></g><path d="m305.114318.62443771c8.717817-1.14462121 17.926803-.36545135 26.712694-.36545135 32.548987 0 64.505987 5.05339923 95.64868 14.63098274 39.74418 12.2236582 76.762804 31.7666864 109.435876 57.477568 40.046637 31.5132839 73.228974 72.8472109 94.520714 119.2362609 39.836383 86.790386 39.544267 191.973146-1.268422 278.398081-26.388695 55.880442-68.724007 102.650458-119.964986 136.75724-41.808813 27.828603-90.706831 44.862601-140.45707 50.89341-63.325458 7.677926-131.784923-3.541603-188.712259-32.729444-106.868873-54.795293-179.52309291-165.076271-180.9604082-285.932068-.27660564-23.300971.08616998-46.74071 4.69884909-69.814998 7.51316071-37.57857 20.61272131-73.903917 40.28618971-106.877282 21.2814003-35.670293 48.7704861-67.1473767 81.6882804-92.5255597 38.602429-29.7610135 83.467691-51.1674988 130.978372-62.05777669 11.473831-2.62966514 22.9946-4.0869914 34.57273-5.4964306l3.658171-.44480576c3.050084-.37153079 6.104217-.74794222 9.162589-1.14972654zm-110.555861 549.44131429c-14.716752 1.577863-30.238964 4.25635-42.869928 12.522173 2.84343.683658 6.102369.004954 9.068638 0 7.124652-.011559 14.317732-.279903 21.434964.032202 17.817402.781913 36.381729 3.63214 53.58741 8.350042 22.029372 6.040631 41.432961 17.928687 62.656049 25.945156 22.389644 8.456554 44.67706 11.084675 68.427 11.084675 11.96813 0 23.845573-.035504 35.450133-3.302696-6.056202-3.225083-14.72582-2.619864-21.434964-3.963236-14.556814-2.915455-28.868774-6.474936-42.869928-11.470264-10.304996-3.676672-20.230803-8.214291-30.11097-12.848661l-6.348531-2.985046c-9.1705-4.309263-18.363277-8.560752-27.845391-12.142608-24.932161-9.418465-52.560181-14.071964-79.144482-11.221737zm22.259385-62.614168c-29.163917 0-58.660076 5.137344-84.915434 18.369597-6.361238 3.206092-12.407546 7.02566-18.137277 11.258891-1.746125 1.290529-4.841829 2.948483-5.487351 5.191839-.654591 2.275558 1.685942 4.182039 3.014086 5.637703 6.562396-3.497556 12.797498-7.199878 19.78612-9.855246 45.19892-17.169893 99.992458-13.570779 145.098218 2.172348 22.494346 7.851335 43.219483 19.592421 65.129314 28.800338 24.503461 10.297807 49.53043 16.975034 75.846795 20.399104 31.04195 4.037546 66.433549.7654 94.808495-13.242161 9.970556-4.921843 23.814245-12.422267 28.030337-23.320339-5.207047.454947-9.892236 2.685918-14.83959 4.224149-7.866632 2.445646-15.827248 4.51974-23.908229 6.138887-27.388113 5.486604-56.512458 6.619429-84.091013 1.639788-25.991939-4.693152-50.142596-14.119246-74.179513-24.03502l-3.068058-1.268177c-2.045137-.846788-4.089983-1.695816-6.135603-2.544467l-3.069142-1.272366c-12.279956-5.085721-24.606928-10.110797-37.210937-14.51024-24.485325-8.546552-50.726667-13.784628-76.671218-13.784628zm51.114145-447.9909432c-34.959602 7.7225298-66.276908 22.7605319-96.457338 41.7180089-17.521434 11.0054099-34.281927 22.2799893-49.465301 36.4444283-22.5792616 21.065423-39.8360564 46.668751-54.8866988 73.411509-15.507372 27.55357-25.4498976 59.665686-30.2554517 90.824149-4.7140432 30.568106-5.4906485 62.70747-.0906864 93.301172 6.7503648 38.248526 19.5989769 74.140579 39.8896436 107.337631 6.8187918-3.184625 11.659796-10.445603 17.3128555-15.336896 11.4149428-9.875888 23.3995608-19.029311 36.2745548-26.928535 4.765981-2.923712 9.662222-5.194315 14.83959-7.275014 1.953055-.785216 5.14604-1.502727 6.06527-3.647828 1.460876-3.406732-1.240754-9.335897-1.704904-12.865654-1.324845-10.095517-2.124534-20.362774-1.874735-30.549941.725492-29.668947 6.269727-59.751557 16.825623-87.521453 7.954845-20.924233 20.10682-39.922168 34.502872-56.971512 4.884699-5.785498 10.077731-11.170545 15.437296-16.512656 3.167428-3.157378 7.098271-5.858983 9.068639-9.908915-10.336599.006606-20.674847 2.987289-30.503603 6.013385-21.174447 6.519522-41.801477 16.19312-59.358362 29.841512-8.008432 6.226409-13.873368 14.387371-21.44733 20.939921-2.32322 2.010516-6.484901 4.704691-9.695199 3.187928-4.8500728-2.29042-4.1014979-11.835213-4.6571581-16.222019-2.1369011-16.873476 4.2548401-38.216325 12.3778671-52.843142 13.039878-23.479694 37.150915-43.528712 65.467327-42.82854 12.228647.302197 22.934587 4.551115 34.625711 7.324555-2.964621-4.211764-6.939158-7.28162-10.717482-10.733763-9.257431-8.459031-19.382979-16.184864-30.503603-22.028985-4.474136-2.350694-9.291232-3.77911-14.015169-5.506421-2.375159-.867783-5.36616-2.062533-6.259834-4.702213-1.654614-4.888817 7.148561-9.416813 10.381943-11.478522 12.499882-7.969406 27.826705-14.525258 42.869928-14.894334 23.509209-.577147 46.479246 12.467678 56.162903 34.665926 3.404469 7.803171 4.411273 16.054969 5.079109 24.382907l.121749 1.56229.174325 2.345587c.01913.260708.038244.521433.057403.782164l.11601 1.56437.120128 1.563971c7.38352-6.019164 12.576553-14.876995 19.78612-21.323859 16.861073-15.07846 39.936636-21.7722 61.831627-14.984333 19.786945 6.133107 36.984382 19.788105 47.105807 37.959541 2.648042 4.754231 10.035685 16.373942 4.698379 21.109183-4.177345 3.707277-9.475079.818243-13.880788-.719162-3.33605-1.16376-6.782939-1.90214-10.241828-2.585698l-1.887262-.369639c-.629089-.122886-1.257979-.246187-1.886079-.372129-11.980496-2.401886-25.91652-2.152533-37.923398-.041284-7.762754 1.364839-15.349083 4.127545-23.083807 5.271929v1.651348c21.149714.175043 41.608563 12.240618 52.043268 30.549941 4.323267 7.585468 6.482428 16.267431 8.138691 24.770223 2.047864 10.50918.608423 21.958802-2.263037 32.201289-.962925 3.433979-2.710699 9.255807-6.817143 10.046802-2.902789.558982-5.36781-2.330878-7.024898-4.279468-4.343878-5.10762-8.475879-9.96341-13.573278-14.374161-12.895604-11.157333-26.530715-21.449361-40.396663-31.373138-7.362086-5.269452-15.425755-12.12007-23.908229-15.340199 2.385052 5.745041 4.721463 11.086326 5.532694 17.339156 2.385876 18.392716-5.314223 35.704625-16.87179 49.540445-3.526876 4.222498-7.29943 8.475545-11.744712 11.755948-1.843407 1.360711-4.156734 3.137561-6.595373 2.752797-7.645687-1.207961-8.555849-12.73272-9.728176-18.637115-3.970415-19.998652-2.375984-39.861068 3.132802-59.448534-4.901187 2.485279-8.443727 7.923994-11.521293 12.385111-6.770975 9.816439-12.645804 20.199291-16.858599 31.375615-16.777806 44.519521-16.616219 96.664142 5.118834 139.523233 2.427098 4.786433 6.110614 4.144058 10.894733 4.144058.720854 0 1.44257-.004515 2.164851-.010924l2.168232-.022283c4.338648-.045438 8.686803-.064635 12.979772.508795 2.227588.297243 5.320818.032202 7.084256 1.673642 2.111344 1.966755.986008 5.338808.4996 7.758859-1.358647 6.765574-1.812904 12.914369-1.812904 19.816178 9.02412-1.398692 11.525415-15.866153 14.724172-23.118874 3.624982-8.216283 7.313444-16.440823 10.667192-24.770223 1.648843-4.093692 3.854171-8.671229 3.275427-13.210785-.649644-5.10184-4.335633-10.510831-6.904531-14.862134-4.86244-8.234447-10.389363-16.70834-13.969002-25.595896-2.861567-7.104926-.197036-15.983399 7.871579-18.521521 4.450228-1.400344 9.198073 1.345848 12.094266 4.562675 6.07269 6.74328 9.992815 16.777697 14.401823 24.692609l34.394873 61.925556c2.920926 5.243856 5.848447 10.481933 8.836976 15.687808 1.165732 2.031158 2.352075 5.167068 4.740424 6.0332 2.127008.77118 5.033095-.325315 7.148561-.748886 5.492297-1.099798 10.97635-2.287117 16.488434-3.28288 6.605266-1.193099 16.673928-.969342 21.434964-6.129805-6.963066-2.205375-15.011895-2.074919-22.259386-1.577863-4.352947.298894-9.178287 1.856116-13.178381-.686135-5.953149-3.783239-9.910373-12.522173-13.552668-18.377854-8.980425-14.439388-17.441465-29.095929-26.041008-43.760726l-1.376261-2.335014-2.765943-4.665258c-1.380597-2.334387-2.750786-4.67476-4.079753-7.036188-1.02723-1.826391-2.549937-4.233231-1.078344-6.24705 1.545791-2.114476 4.91472-2.239146 7.956473-2.243117l.603351.000261c1.195428.001526 2.315572.002427 3.222811-.11692 12.27399-1.615019 24.718635-2.952611 37.098976-2.952611-.963749-3.352237-3.719791-7.141255-2.838484-10.73046 1.972017-8.030506 13.526287-10.543033 18.899867-4.780653 3.60767 3.868283 5.704174 9.192229 8.051303 13.859765 3.097352 6.162006 6.624228 12.118418 9.940876 18.16483 5.805578 10.585967 12.146205 20.881297 18.116667 31.375615.49237.865561.999687 1.726685 1.512269 2.587098l.771613 1.290552c2.577138 4.303168 5.164895 8.635123 6.553094 13.461506-20.735854-.9487-36.30176-25.018751-45.343193-41.283704-.721369 2.604176.450959 4.928448 1.388326 7.431066 1.948109 5.197619 4.276275 10.147535 7.20627 14.862134 4.184765 6.732546 8.982075 13.665732 15.313633 18.553722 11.236043 8.673707 26.05255 8.721596 39.572241 7.794364 8.669619-.595311 19.50252-4.542034 28.030338-1.864372 8.513803 2.673532 11.940924 12.063098 6.884745 19.276187-3.787393 5.403211-8.842747 7.443452-15.128962 8.257566 4.445282 9.53571 10.268996 18.385285 14.490036 28.072919 1.758491 4.035895 3.59118 10.22102 7.8048 12.350433 2.805507 1.416857 6.824562.09743 9.85761.034678-3.043765-8.053625-8.742992-14.887729-11.541904-23.118874 8.533589.390544 16.786875 4.843404 24.732651 7.685374 15.630376 5.590144 31.063836 11.701854 46.475333 17.86913l7.112077 2.848685c6.338978 2.538947 12.71588 5.052299 18.961699 7.812528 2.285297 1.009799 5.449427 3.370401 7.975455 1.917215 2.061054-1.186494 3.394144-4.015253 4.665403-5.931643 3.55573-5.361927 6.775921-10.928622 9.965609-16.513481 12.774414-22.36586 22.143967-46.872692 28.402976-71.833646 20.645168-82.323009 2.934117-173.156241-46.677107-241.922507-19.061454-26.420745-43.033164-49.262193-69.46165-68.1783861-66.13923-47.336721-152.911262-66.294198-232.486917-48.7172481zm135.205158 410.5292842c-17.532977 4.570931-35.601827 8.714164-53.58741 11.040088 2.365265 8.052799 8.145286 15.885969 12.376218 23.118874 1.635653 2.796558 3.3859 6.541816 6.618457 7.755557 3.651364 1.370619 8.063669-.853747 11.508927-1.975838-1.595256-4.364513-4.279573-8.292245-6.476657-12.385112-.905215-1.687677-2.305907-3.685809-1.559805-5.68972 1.410585-3.786541 7.266452-3.563609 10.509727-4.221671 8.54678-1.733916 17.004522-3.898008 25.557073-5.611281 3.150939-.631641 7.538512-2.342438 10.705115-1.285575 2.371037.791232 3.800147 2.744743 5.152304 4.781948l.606196.918752c.80912 1.222827 1.637246 2.41754 2.671212 3.351165 3.457625 3.121874 8.628398 3.60159 13.017619 4.453686-2.678546-6.027421-7.130424-11.301001-9.984571-17.339156-1.659561-3.511592-3.023155-8.677834-6.656381-10.707341-5.005064-2.795733-15.341663 2.461334-20.458024 3.795624zm-110.472507-40.151706c-.825246 10.467897-4.036369 18.984725-9.068639 28.072919 5.76683.729896 11.649079.989984 17.312856 2.39363 4.244947 1.051908 8.156828 3.058296 12.366325 4.211763-2.250671-6.157877-6.426367-11.651913-9.661398-17.339156-3.266358-5.740912-6.189758-12.717032-10.949144-17.339156z"/></g></svg>
+174
apps/docs/src/components/alert-dialog/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { X } from "lucide-react"; 5 + import { use } from "react"; 6 + import { mergeProps } from "react-aria"; 7 + import { 8 + DialogTrigger, 9 + DialogTriggerProps, 10 + Dialog as AriaDialog, 11 + Modal, 12 + ModalOverlay, 13 + OverlayTriggerStateContext, 14 + Heading, 15 + } from "react-aria-components"; 16 + 17 + import { Button, ButtonProps } from "../button"; 18 + import { IconButton } from "../icon-button"; 19 + import { spacing } from "../theme/spacing.stylex"; 20 + import { typeramp } from "../theme/typography.stylex"; 21 + import { useDialogStyles } from "../theme/useDialogStyles"; 22 + 23 + const styles = stylex.create({ 24 + dialog: { 25 + paddingBottom: spacing["2"], 26 + paddingTop: spacing["2"], 27 + }, 28 + header: { 29 + alignItems: "center", 30 + display: "flex", 31 + gap: spacing["2"], 32 + height: spacing["8"], 33 + justifyContent: "space-between", 34 + paddingLeft: spacing["4"], 35 + paddingRight: spacing["4"], 36 + }, 37 + description: { 38 + paddingBottom: spacing["4"], 39 + paddingLeft: spacing["4"], 40 + paddingRight: spacing["4"], 41 + paddingTop: spacing["4"], 42 + }, 43 + footer: { 44 + display: "flex", 45 + gap: spacing["2"], 46 + justifyContent: "flex-end", 47 + paddingBottom: spacing["2"], 48 + paddingLeft: spacing["4"], 49 + paddingRight: spacing["4"], 50 + }, 51 + }); 52 + 53 + export interface AlertDialogProps extends DialogTriggerProps { 54 + trigger: React.ReactNode; 55 + children: React.ReactNode; 56 + } 57 + 58 + export const AlertDialog = ({ 59 + trigger, 60 + children, 61 + defaultOpen, 62 + isOpen, 63 + onOpenChange, 64 + }: AlertDialogProps) => { 65 + const dialogStyles = useDialogStyles({ size: "sm" }); 66 + 67 + return ( 68 + <DialogTrigger 69 + defaultOpen={defaultOpen} 70 + isOpen={isOpen} 71 + onOpenChange={onOpenChange} 72 + > 73 + {trigger} 74 + 75 + <ModalOverlay 76 + isKeyboardDismissDisabled 77 + {...stylex.props(dialogStyles.overlay)} 78 + > 79 + <Modal {...stylex.props(dialogStyles.modal)}> 80 + <AriaDialog 81 + {...stylex.props(dialogStyles.dialog, styles.dialog)} 82 + role="alertdialog" 83 + > 84 + {children} 85 + </AriaDialog> 86 + </Modal> 87 + </ModalOverlay> 88 + </DialogTrigger> 89 + ); 90 + }; 91 + 92 + export interface AlertDialogHeaderProps 93 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 94 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 95 + } 96 + 97 + export const AlertDialogHeader = ({ 98 + children, 99 + style, 100 + }: AlertDialogHeaderProps) => { 101 + return ( 102 + <div {...stylex.props(styles.header, typeramp.heading5, style)}> 103 + <Heading>{children}</Heading> 104 + <IconButton label="Close" size="sm" variant="tertiary" slot="close"> 105 + <X /> 106 + </IconButton> 107 + </div> 108 + ); 109 + }; 110 + 111 + export interface AlertDialogDescriptionProps 112 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 113 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 114 + } 115 + 116 + export const AlertDialogDescription = ({ 117 + children, 118 + style, 119 + }: AlertDialogDescriptionProps) => { 120 + return ( 121 + <div {...stylex.props(styles.description, typeramp.body, style)}> 122 + {children} 123 + </div> 124 + ); 125 + }; 126 + 127 + export interface AlertDialogFooterProps 128 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 129 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 130 + } 131 + 132 + export const AlertDialogFooter = ({ 133 + children, 134 + style, 135 + }: AlertDialogFooterProps) => { 136 + return <div {...stylex.props(styles.footer, style)}>{children}</div>; 137 + }; 138 + 139 + export type AlertDialogCancelButtonProps = Omit<ButtonProps, "slot">; 140 + 141 + export const AlertDialogCancelButton = ({ 142 + children = "Cancel", 143 + ...props 144 + }: AlertDialogCancelButtonProps) => { 145 + return ( 146 + <Button variant="secondary" {...props} slot="close"> 147 + {children} 148 + </Button> 149 + ); 150 + }; 151 + 152 + export type AlertDialogActionButtonProps = ButtonProps & { 153 + /** 154 + * Whether to close the dialog when the button is pressed. 155 + * If you are doing somthing async, you likely want to set this to false 156 + * and use isLoading=true. 157 + */ 158 + closeOnPress?: boolean; 159 + }; 160 + 161 + export const AlertDialogActionButton = ({ 162 + closeOnPress = true, 163 + children = "Ok", 164 + ...props 165 + }: AlertDialogActionButtonProps) => { 166 + const state = use(OverlayTriggerStateContext); 167 + const onPress = () => { 168 + if (closeOnPress) { 169 + state?.close(); 170 + } 171 + }; 172 + 173 + return <Button {...mergeProps(props, { onPress })}>{children}</Button>; 174 + };
+129
apps/docs/src/components/avatar/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use, useLayoutEffect, useState } from "react"; 3 + 4 + import { SizeContext } from "../context"; 5 + import { slate } from "../theme/colors.stylex"; 6 + import { radius } from "../theme/radius.stylex"; 7 + import { spacing } from "../theme/spacing.stylex"; 8 + import { 9 + fontSize, 10 + fontWeight, 11 + lineHeight, 12 + fontFamily, 13 + } from "../theme/typography.stylex"; 14 + import { Size } from "../types"; 15 + 16 + const styles = stylex.create({ 17 + wrapper: { 18 + alignItems: "center", 19 + backgroundColor: slate.component1, 20 + borderColor: slate.border1, 21 + borderStyle: "solid", 22 + borderWidth: 1, 23 + display: "flex", 24 + justifyContent: "center", 25 + overflow: "hidden", 26 + }, 27 + sm: { 28 + borderRadius: radius["sm"], 29 + height: spacing["6"], 30 + width: spacing["6"], 31 + }, 32 + md: { 33 + borderRadius: radius["md"], 34 + height: spacing["8"], 35 + width: spacing["8"], 36 + }, 37 + lg: { 38 + borderRadius: radius["lg"], 39 + height: spacing["10"], 40 + width: spacing["10"], 41 + }, 42 + xl: { 43 + borderRadius: radius["xl"], 44 + height: spacing["14"], 45 + width: spacing["14"], 46 + }, 47 + image: { 48 + height: "100%", 49 + objectFit: "cover", 50 + objectPosition: "center", 51 + width: "100%", 52 + }, 53 + fallback: { 54 + color: slate.text1, 55 + fontFamily: fontFamily["sans"], 56 + fontWeight: fontWeight["medium"], 57 + lineHeight: lineHeight["none"], 58 + }, 59 + smFallback: { 60 + fontSize: fontSize["sm"], 61 + }, 62 + mdFallback: { 63 + fontSize: fontSize["base"], 64 + }, 65 + lgFallback: { 66 + fontSize: fontSize["lg"], 67 + }, 68 + xlFallback: { 69 + fontSize: fontSize["xl"], 70 + }, 71 + }); 72 + 73 + export interface AvatarProps 74 + extends Omit< 75 + React.ComponentProps<"div">, 76 + "style" | "className" | "children" 77 + > { 78 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 79 + src?: string; 80 + alt?: string; 81 + fallback: React.ReactNode; 82 + size?: Size | "xl"; 83 + } 84 + 85 + export function Avatar({ 86 + style, 87 + alt = "", 88 + src, 89 + fallback, 90 + size: sizeProp, 91 + ...props 92 + }: AvatarProps) { 93 + const size = sizeProp || use(SizeContext); 94 + const [imageLoaded, setImageLoaded] = useState< 95 + "loading" | "loaded" | "error" 96 + >("loading"); 97 + 98 + useLayoutEffect(() => { 99 + if (!src) return; 100 + 101 + const onLoad = () => setImageLoaded("loaded"); 102 + const onError = () => setImageLoaded("error"); 103 + 104 + const image = new Image(); 105 + 106 + image.addEventListener("load", onLoad); 107 + image.addEventListener("error", onError); 108 + 109 + image.src = src; 110 + 111 + return () => { 112 + image.removeEventListener("load", onLoad); 113 + image.removeEventListener("error", onError); 114 + }; 115 + }, [src]); 116 + 117 + return ( 118 + <div {...props} {...stylex.props(styles.wrapper, styles[size], style)}> 119 + {imageLoaded === "loaded" && ( 120 + <img {...stylex.props(styles.image)} src={src} alt={alt} /> 121 + )} 122 + {(!src || imageLoaded === "error") && ( 123 + <div {...stylex.props(styles.fallback, styles[`${size}Fallback`])}> 124 + {fallback} 125 + </div> 126 + )} 127 + </div> 128 + ); 129 + }
+111
apps/docs/src/components/badge/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + 4 + import { SizeContext } from "../context"; 5 + import { radius } from "../theme/radius.stylex"; 6 + import { 7 + critical, 8 + gray, 9 + primary, 10 + success, 11 + warning, 12 + } from "../theme/semantic-color.stylex"; 13 + import { spacing } from "../theme/spacing.stylex"; 14 + import { fontFamily, fontSize, fontWeight } from "../theme/typography.stylex"; 15 + import { Size } from "../types"; 16 + 17 + const styles = stylex.create({ 18 + wrapper: { 19 + alignItems: "center", 20 + borderStyle: "solid", 21 + borderWidth: 1, 22 + display: "flex", 23 + fontFamily: fontFamily["sans"], 24 + fontWeight: fontWeight["semibold"], 25 + overflow: "hidden", 26 + width: "fit-content", 27 + }, 28 + sm: { 29 + borderRadius: radius["sm"], 30 + fontSize: fontSize["xs"], 31 + gap: spacing["1.5"], 32 + height: spacing["5"], 33 + paddingLeft: spacing["1.5"], 34 + paddingRight: spacing["1.5"], 35 + 36 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 37 + ":is(*) svg": { 38 + flexShrink: 0, 39 + height: spacing["3"], 40 + pointerEvents: "none", 41 + width: spacing["3"], 42 + }, 43 + }, 44 + md: { 45 + borderRadius: radius["md"], 46 + fontSize: fontSize["sm"], 47 + gap: spacing["1.5"], 48 + height: spacing["6"], 49 + paddingLeft: spacing["2"], 50 + paddingRight: spacing["2"], 51 + 52 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 53 + ":is(*) svg": { 54 + flexShrink: 0, 55 + height: spacing["3.5"], 56 + pointerEvents: "none", 57 + width: spacing["3.5"], 58 + }, 59 + }, 60 + }); 61 + 62 + export interface BadgeProps 63 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 64 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 65 + size?: Extract<Size, "sm" | "md">; 66 + variant?: "primary" | "default" | "warning" | "critical" | "success"; 67 + } 68 + 69 + export function Badge({ 70 + style, 71 + size: sizeProp, 72 + variant = "default", 73 + ...props 74 + }: BadgeProps) { 75 + const sizeContext = use(SizeContext); 76 + const size = 77 + sizeProp || 78 + (sizeContext === "sm" || sizeContext === "md" ? sizeContext : "md"); 79 + 80 + return ( 81 + <div 82 + {...props} 83 + {...stylex.props( 84 + styles.wrapper, 85 + styles[size], 86 + variant === "primary" && [ 87 + primary.bgDim, 88 + primary.borderDim, 89 + primary.text, 90 + ], 91 + variant === "default" && [gray.bgDim, gray.borderDim, gray.text], 92 + variant === "warning" && [ 93 + warning.bgDim, 94 + warning.borderDim, 95 + warning.text, 96 + ], 97 + variant === "critical" && [ 98 + critical.bgDim, 99 + critical.borderDim, 100 + critical.text, 101 + ], 102 + variant === "success" && [ 103 + success.bgDim, 104 + success.borderDim, 105 + success.text, 106 + ], 107 + style, 108 + )} 109 + /> 110 + ); 111 + }
+48
apps/docs/src/components/button-group/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { Group, GroupProps } from "react-aria-components"; 5 + 6 + import { ButtonGroupContext } from "../button/context"; 7 + 8 + const styles = stylex.create({ 9 + group: { 10 + display: "flex", 11 + }, 12 + horizontal: { 13 + alignItems: "center", 14 + flexDirection: "row", 15 + }, 16 + vertical: { 17 + flexDirection: "column", 18 + }, 19 + }); 20 + 21 + export interface ButtonGroupProps 22 + extends Omit<GroupProps, "className" | "style"> { 23 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 24 + orientation?: "horizontal" | "vertical"; 25 + } 26 + 27 + export const ButtonGroup = ({ 28 + children, 29 + style, 30 + orientation = "horizontal", 31 + ...props 32 + }: ButtonGroupProps) => { 33 + return ( 34 + <ButtonGroupContext value={orientation}> 35 + <Group 36 + {...stylex.props( 37 + styles.group, 38 + orientation === "horizontal" && styles.horizontal, 39 + orientation === "vertical" && styles.vertical, 40 + style 41 + )} 42 + {...props} 43 + > 44 + {children} 45 + </Group> 46 + </ButtonGroupContext> 47 + ); 48 + };
+5
apps/docs/src/components/button/context.ts
··· 1 + import { createContext } from "react"; 2 + 3 + export const ButtonGroupContext = createContext< 4 + undefined | "vertical" | "horizontal" 5 + >(undefined);
+33
apps/docs/src/components/button/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { 5 + Button as AriaButton, 6 + ButtonProps as AriaButtonProps, 7 + } from "react-aria-components"; 8 + 9 + import { useButtonStyles } from "../theme/useButtonStyles"; 10 + import { Size, ButtonVariant } from "../types"; 11 + 12 + export interface ButtonProps 13 + extends Omit<AriaButtonProps, "className" | "style"> { 14 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 15 + variant?: ButtonVariant; 16 + size?: Size; 17 + } 18 + 19 + export const Button = ({ 20 + children, 21 + style, 22 + variant = "primary", 23 + size, 24 + ...props 25 + }: ButtonProps) => { 26 + const buttonStyles = useButtonStyles({ variant, size }); 27 + 28 + return ( 29 + <AriaButton {...stylex.props(buttonStyles, style)} {...props}> 30 + {children} 31 + </AriaButton> 32 + ); 33 + };
+118
apps/docs/src/components/card/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { Flex } from "../flex"; 4 + import { radius } from "../theme/radius.stylex"; 5 + import { gray } from "../theme/semantic-color.stylex"; 6 + import { spacing } from "../theme/spacing.stylex"; 7 + import { fontFamily, fontSize, fontWeight } from "../theme/typography.stylex"; 8 + 9 + const styles = stylex.create({ 10 + card: { 11 + borderRadius: radius["lg"], 12 + display: "flex", 13 + flexDirection: "column", 14 + fontFamily: fontFamily["sans"], 15 + gap: spacing["6"], 16 + width: "fit-content", 17 + }, 18 + cardHeader: { 19 + paddingBottom: { ":last-child": spacing["4"] }, 20 + paddingLeft: spacing["4"], 21 + paddingRight: spacing["4"], 22 + paddingTop: spacing["5"], 23 + }, 24 + cardTitle: { 25 + fontSize: fontSize["lg"], 26 + fontWeight: fontWeight["bold"], 27 + }, 28 + cardDescription: { 29 + fontSize: fontSize["sm"], 30 + fontWeight: fontWeight["normal"], 31 + margin: 0, 32 + }, 33 + cardBody: { 34 + paddingBottom: { ":last-child": spacing["4"] }, 35 + paddingLeft: spacing["4"], 36 + paddingRight: spacing["4"], 37 + }, 38 + cardFooter: { 39 + paddingBottom: spacing["5"], 40 + paddingLeft: spacing["4"], 41 + paddingRight: spacing["4"], 42 + 43 + display: "flex", 44 + gap: spacing["2"], 45 + justifyContent: "flex-end", 46 + }, 47 + }); 48 + 49 + export interface CardProps 50 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 51 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 52 + } 53 + 54 + export const Card = ({ style, ...props }: CardProps) => { 55 + return ( 56 + <div 57 + {...props} 58 + {...stylex.props(styles.card, gray.bgSubtle, gray.border, style)} 59 + /> 60 + ); 61 + }; 62 + 63 + export interface CardHeaderProps 64 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 65 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 66 + } 67 + 68 + export const CardHeader = ({ style, ...props }: CardHeaderProps) => { 69 + return ( 70 + <Flex 71 + {...props} 72 + style={[styles.cardHeader as unknown as stylex.StyleXStyles, style]} 73 + direction="column" 74 + gap="3" 75 + /> 76 + ); 77 + }; 78 + 79 + export interface CardTitleProps 80 + extends Omit<React.ComponentProps<"h2">, "style" | "className"> { 81 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 82 + } 83 + 84 + export const CardTitle = ({ style, ...props }: CardTitleProps) => { 85 + return <div {...props} {...stylex.props(styles.cardTitle, style)} />; 86 + }; 87 + 88 + export interface CardDescriptionProps 89 + extends Omit<React.ComponentProps<"p">, "style" | "className"> { 90 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 91 + } 92 + 93 + export const CardDescription = ({ style, ...props }: CardDescriptionProps) => { 94 + return ( 95 + <p 96 + {...props} 97 + {...stylex.props(styles.cardDescription, gray.textDim, style)} 98 + /> 99 + ); 100 + }; 101 + 102 + export interface CardBodyProps 103 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 104 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 105 + } 106 + 107 + export const CardBody = ({ style, ...props }: CardBodyProps) => { 108 + return <div {...props} {...stylex.props(styles.cardBody, style)} />; 109 + }; 110 + 111 + export interface CardFooterProps 112 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 113 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 114 + } 115 + 116 + export const CardFooter = ({ style, ...props }: CardFooterProps) => { 117 + return <div {...props} {...stylex.props(styles.cardFooter, style)} />; 118 + };
+124
apps/docs/src/components/checkbox/index.tsx
··· 1 + import type { 2 + CheckboxProps as AriaCheckboxProps, 3 + CheckboxGroupProps as AriaCheckboxGroupProps, 4 + ValidationResult, 5 + } from "react-aria-components"; 6 + 7 + import * as stylex from "@stylexjs/stylex"; 8 + import { Check, Minus } from "lucide-react"; 9 + import { 10 + Checkbox as AriaCheckbox, 11 + CheckboxGroup as AriaCheckboxGroup, 12 + FieldError, 13 + } from "react-aria-components"; 14 + 15 + import { Flex } from "../flex"; 16 + import { Description, Label } from "../label"; 17 + import { radius } from "../theme/radius.stylex"; 18 + import { gray, primary } from "../theme/semantic-color.stylex"; 19 + import { spacing } from "../theme/spacing.stylex"; 20 + import { fontFamily, fontSize, lineHeight } from "../theme/typography.stylex"; 21 + import { Size } from "../types"; 22 + 23 + const styles = stylex.create({ 24 + wrapper: { 25 + alignItems: { 26 + default: "center", 27 + ":has(p)": "flex-start", 28 + }, 29 + display: "flex", 30 + gap: spacing["2.5"], 31 + 32 + fontFamily: fontFamily["sans"], 33 + fontSize: fontSize["sm"], 34 + lineHeight: lineHeight["sm"], 35 + opacity: { ":is([data-disabled])": 0.5 }, 36 + }, 37 + checkbox: { 38 + alignItems: "center", 39 + display: "flex", 40 + justifyContent: "center", 41 + 42 + borderRadius: radius["sm"], 43 + borderWidth: 2, 44 + height: spacing["4"], 45 + width: spacing["4"], 46 + }, 47 + checked: { 48 + color: "white", 49 + }, 50 + group: { 51 + display: "flex", 52 + flexDirection: "column", 53 + gap: spacing["3"], 54 + }, 55 + }); 56 + 57 + interface CheckboxGroupProps 58 + extends Omit<AriaCheckboxGroupProps, "children" | "style" | "className"> { 59 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 60 + children?: React.ReactNode; 61 + label?: React.ReactNode; 62 + description?: string; 63 + errorMessage?: string | ((validation: ValidationResult) => string); 64 + size?: Size; 65 + } 66 + 67 + export function CheckboxGroup({ 68 + label, 69 + description, 70 + errorMessage, 71 + children, 72 + size, 73 + style, 74 + ...props 75 + }: CheckboxGroupProps) { 76 + return ( 77 + <AriaCheckboxGroup {...props} {...stylex.props(styles.group, style)}> 78 + {label != null && <Label size={size}>{label}</Label>} 79 + <Flex direction="column" gap="2"> 80 + {children} 81 + </Flex> 82 + {description && <Description size={size}>{description}</Description>} 83 + <FieldError>{errorMessage}</FieldError> 84 + </AriaCheckboxGroup> 85 + ); 86 + } 87 + 88 + export interface CheckboxProps 89 + extends Omit<AriaCheckboxProps, "className" | "style" | "children"> { 90 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 91 + children?: React.ReactNode; 92 + } 93 + 94 + export function Checkbox({ children, style, ...props }: CheckboxProps) { 95 + return ( 96 + <AriaCheckbox {...props} {...stylex.props(styles.wrapper, style)}> 97 + {({ isIndeterminate, isSelected, isDisabled }) => ( 98 + <> 99 + <div 100 + {...stylex.props( 101 + styles.checkbox, 102 + isDisabled 103 + ? [gray.bgSolid, gray.border, styles.checked] 104 + : isSelected 105 + ? [primary.bgSolid, primary.borderInteractive, styles.checked] 106 + : [gray.borderInteractive], 107 + )} 108 + > 109 + {isIndeterminate ? ( 110 + <Minus size={16} /> 111 + ) : isSelected ? ( 112 + <Check size={16} /> 113 + ) : null} 114 + </div> 115 + {children != null && ( 116 + <Flex direction="column" gap="1"> 117 + {children} 118 + </Flex> 119 + )} 120 + </> 121 + )} 122 + </AriaCheckbox> 123 + ); 124 + }
+72
apps/docs/src/components/color-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { useRef } from "react"; 3 + import { 4 + ColorFieldProps as AriaColorFieldProps, 5 + Input, 6 + InputProps, 7 + ValidationResult, 8 + FieldError, 9 + ColorField as AriaColorField, 10 + } from "react-aria-components"; 11 + 12 + import { Description, Label } from "../label"; 13 + import { useInputStyles } from "../theme/useInputStyles"; 14 + import { Size } from "../types"; 15 + 16 + export interface ColorFieldProps 17 + extends Omit<AriaColorFieldProps, "style" | "className">, 18 + Pick<InputProps, "placeholder"> { 19 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 20 + label?: React.ReactNode; 21 + description?: string; 22 + errorMessage?: string | ((validation: ValidationResult) => string); 23 + size?: Size; 24 + prefix?: React.ReactNode; 25 + suffix?: React.ReactNode; 26 + } 27 + 28 + export function ColorField({ 29 + label, 30 + description, 31 + errorMessage, 32 + style, 33 + size, 34 + prefix, 35 + suffix, 36 + placeholder, 37 + ...props 38 + }: ColorFieldProps) { 39 + const inputRef = useRef<HTMLInputElement>(null); 40 + const inputStyles = useInputStyles({ size }); 41 + 42 + return ( 43 + <AriaColorField {...props} {...stylex.props(inputStyles.field, style)}> 44 + {label != null && <Label size={size}>{label}</Label>} 45 + {/* 46 + This onClick is specifically for mouse users not clicking directly on the input. 47 + A keyboard user would not encounter the same issue. 48 + */} 49 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 50 + <div 51 + {...stylex.props(inputStyles.wrapper)} 52 + onClick={() => inputRef.current?.focus()} 53 + > 54 + {prefix != null && ( 55 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 56 + )} 57 + <Input 58 + placeholder={placeholder} 59 + ref={inputRef} 60 + {...stylex.props(inputStyles.input)} 61 + /> 62 + {suffix != null && ( 63 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 64 + )} 65 + </div> 66 + {description !== undefined && ( 67 + <Description size={size}>{description}</Description> 68 + )} 69 + <FieldError>{errorMessage}</FieldError> 70 + </AriaColorField> 71 + ); 72 + }
+144
apps/docs/src/components/combobox/index.tsx
··· 1 + import type { ListBoxProps, ValidationResult } from "react-aria-components"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { ChevronDown } from "lucide-react"; 5 + import { use } from "react"; 6 + import { 7 + Button, 8 + Popover, 9 + PopoverProps, 10 + ComboBox as AriaComboBox, 11 + ComboBoxProps as AriaComboBoxProps, 12 + Input, 13 + FieldError, 14 + } from "react-aria-components"; 15 + 16 + import { SizeContext } from "../context"; 17 + import { IconButton } from "../icon-button"; 18 + import { Description, Label } from "../label"; 19 + import { ListBox } from "../listbox"; 20 + import { spacing } from "../theme/spacing.stylex"; 21 + import { useInputStyles } from "../theme/useInputStyles"; 22 + import { usePopoverStyles } from "../theme/usePopoverStyles"; 23 + import { Size } from "../types"; 24 + import { SmallBody } from "../typography"; 25 + 26 + const styles = stylex.create({ 27 + matchWidth: { 28 + width: "var(--trigger-width)", 29 + }, 30 + emptyState: { 31 + display: "flex", 32 + justifyContent: "center", 33 + padding: spacing["4"], 34 + }, 35 + }); 36 + 37 + function EmptyState() { 38 + return ( 39 + <div {...stylex.props(styles.emptyState)}> 40 + <SmallBody variant="secondary">No items found</SmallBody> 41 + </div> 42 + ); 43 + } 44 + 45 + export interface ComboBoxProps<T extends object> 46 + extends Omit<AriaComboBoxProps<T>, "children" | "style" | "className">, 47 + Pick< 48 + PopoverProps, 49 + | "shouldCloseOnInteractOutside" 50 + | "shouldFlip" 51 + | "shouldUpdatePosition" 52 + | "placement" 53 + >, 54 + Pick<ListBoxProps<T>, "renderEmptyState"> { 55 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 56 + label?: string; 57 + description?: string; 58 + errorMessage?: string | ((validation: ValidationResult) => string); 59 + items?: Iterable<T>; 60 + children: React.ReactNode | ((item: T) => React.ReactNode); 61 + size?: Size; 62 + placeholder?: string; 63 + prefix?: React.ReactNode; 64 + suffix?: React.ReactNode; 65 + } 66 + 67 + export function ComboBox<T extends object>({ 68 + label, 69 + description, 70 + errorMessage, 71 + children, 72 + items, 73 + style, 74 + size: sizeProp, 75 + shouldCloseOnInteractOutside, 76 + shouldFlip, 77 + shouldUpdatePosition, 78 + placement, 79 + placeholder = "Select an option", 80 + prefix, 81 + suffix, 82 + renderEmptyState, 83 + ...props 84 + }: ComboBoxProps<T>) { 85 + const size = sizeProp || use(SizeContext); 86 + const inputStyles = useInputStyles({ size }); 87 + const popoverStyles = usePopoverStyles(); 88 + 89 + return ( 90 + <SizeContext value={size}> 91 + <AriaComboBox {...props} {...stylex.props(inputStyles.field, style)}> 92 + {label && <Label size={size}>{label}</Label>} 93 + <Button {...stylex.props(inputStyles.wrapper)}> 94 + {prefix != null && ( 95 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 96 + )} 97 + <Input 98 + {...stylex.props(inputStyles.input)} 99 + placeholder={placeholder} 100 + /> 101 + {suffix != null && ( 102 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 103 + )} 104 + <div {...stylex.props(inputStyles.addon)}> 105 + <IconButton size="sm" variant="secondary" label="Open combobox"> 106 + <ChevronDown size={16} aria-hidden="true" /> 107 + </IconButton> 108 + </div> 109 + </Button> 110 + {description && <Description size={size}>{description}</Description>} 111 + <FieldError>{errorMessage}</FieldError> 112 + <Popover 113 + containerPadding={8} 114 + shouldCloseOnInteractOutside={shouldCloseOnInteractOutside} 115 + shouldFlip={shouldFlip} 116 + shouldUpdatePosition={shouldUpdatePosition} 117 + placement={placement} 118 + > 119 + <ListBox 120 + items={items} 121 + {...stylex.props(popoverStyles, styles.matchWidth)} 122 + renderEmptyState={renderEmptyState || EmptyState} 123 + > 124 + {children} 125 + </ListBox> 126 + </Popover> 127 + </AriaComboBox> 128 + </SizeContext> 129 + ); 130 + } 131 + 132 + export type { 133 + ListBoxItemProps as ComboBoxItemProps, 134 + ListBoxSectionProps as ComboBoxSectionProps, 135 + ListBoxSectionHeaderProps as ComboBoxSectionHeaderProps, 136 + ListBoxSeparatorProps as ComboBoxSeparatorProps, 137 + } from "../listbox"; 138 + 139 + export { 140 + ListBoxItem as ComboBoxItem, 141 + ListBoxSection as ComboBoxSection, 142 + ListBoxSectionHeader as ComboBoxSectionHeader, 143 + ListBoxSeparator as ComboBoxSeparator, 144 + } from "../listbox";
+138
apps/docs/src/components/command-menu/index.tsx
··· 1 + import { useControlledState } from "@react-stately/utils"; 2 + import * as stylex from "@stylexjs/stylex"; 3 + import { useEffect, useEffectEvent } from "react"; 4 + import { 5 + InputProps, 6 + Modal, 7 + Dialog, 8 + Autocomplete, 9 + Menu, 10 + useFilter, 11 + ModalOverlay, 12 + AutocompleteProps as AriaAutocompleteProps, 13 + } from "react-aria-components"; 14 + import { OverlayTriggerProps } from "react-stately"; 15 + 16 + import { SizeContext } from "../context"; 17 + import { SearchField } from "../search-field"; 18 + import { Separator } from "../separator"; 19 + import { spacing } from "../theme/spacing.stylex"; 20 + import { useDialogStyles } from "../theme/useDialogStyles"; 21 + 22 + const styles = stylex.create({ 23 + menu: { 24 + flexGrow: 1, 25 + marginLeft: `calc(${spacing["0.5"]} * -1)`, 26 + marginRight: `calc(${spacing["0.5"]} * -1)`, 27 + minHeight: 0, 28 + overflowY: "auto", 29 + paddingBottom: spacing["2"], 30 + paddingLeft: spacing["3"], 31 + paddingRight: spacing["3"], 32 + paddingTop: spacing["2"], 33 + }, 34 + searchField: { 35 + paddingBottom: spacing["3"], 36 + paddingLeft: spacing["3"], 37 + paddingRight: spacing["3"], 38 + paddingTop: spacing["3"], 39 + }, 40 + }); 41 + 42 + export interface CommandMenuProps<T extends object> 43 + extends OverlayTriggerProps, 44 + Pick<InputProps, "placeholder">, 45 + AriaAutocompleteProps<T> { 46 + children: React.ReactNode; 47 + disableGlobalShortcut?: boolean; 48 + } 49 + 50 + export function CommandMenu<T extends object>({ 51 + defaultOpen, 52 + isOpen: isOpenProp, 53 + onOpenChange, 54 + filter, 55 + placeholder = "Search commands", 56 + children, 57 + defaultInputValue, 58 + disableAutoFocusFirst, 59 + disableVirtualFocus, 60 + inputValue, 61 + onInputChange, 62 + disableGlobalShortcut = false, 63 + }: CommandMenuProps<T>) { 64 + const defaultFilter = useFilter({ sensitivity: "base" }); 65 + const dialogStyles = useDialogStyles({ size: "sm" }); 66 + const [isOpen, setIsOpen] = useControlledState( 67 + isOpenProp, 68 + defaultOpen ?? false, 69 + onOpenChange 70 + ); 71 + const onClose = useEffectEvent(() => { 72 + setIsOpen(false); 73 + }); 74 + 75 + useEffect(() => { 76 + if (disableGlobalShortcut) return; 77 + 78 + function handleKeyDown(event: KeyboardEvent) { 79 + if (event.metaKey && event.key === "k") { 80 + setIsOpen(true); 81 + } 82 + } 83 + 84 + globalThis.addEventListener("keydown", handleKeyDown); 85 + 86 + return () => { 87 + globalThis.removeEventListener("keydown", handleKeyDown); 88 + }; 89 + }, [setIsOpen, disableGlobalShortcut]); 90 + 91 + return ( 92 + <SizeContext value="lg"> 93 + <ModalOverlay 94 + isDismissable 95 + isOpen={isOpen} 96 + onOpenChange={setIsOpen} 97 + {...stylex.props(dialogStyles.overlay)} 98 + > 99 + <Modal {...stylex.props(dialogStyles.modal)}> 100 + <Dialog {...stylex.props(dialogStyles.dialog)}> 101 + <Autocomplete 102 + filter={filter ?? defaultFilter.contains} 103 + defaultInputValue={defaultInputValue} 104 + disableAutoFocusFirst={disableAutoFocusFirst} 105 + disableVirtualFocus={disableVirtualFocus} 106 + inputValue={inputValue} 107 + onInputChange={onInputChange} 108 + > 109 + <div {...stylex.props(styles.searchField)}> 110 + {/* This is part of the interaction for a CMD+K menu. */} 111 + {/* eslint-disable-next-line jsx-a11y/no-autofocus */} 112 + <SearchField placeholder={placeholder} autoFocus /> 113 + </div> 114 + <Separator /> 115 + <Menu {...stylex.props(styles.menu)} onAction={onClose}> 116 + {children} 117 + </Menu> 118 + </Autocomplete> 119 + </Dialog> 120 + </Modal> 121 + </ModalOverlay> 122 + </SizeContext> 123 + ); 124 + } 125 + 126 + export type { 127 + MenuItemProps as CommandMenuItemProps, 128 + MenuSectionHeaderProps as CommandMenuSectionHeaderProps, 129 + MenuSectionProps as CommandMenuSectionProps, 130 + MenuSeparatorProps as CommandMenuSeparatorProps, 131 + } from "../menu"; 132 + 133 + export { 134 + MenuItem as CommandMenuItem, 135 + MenuSectionHeader as CommandMenuSectionHeader, 136 + MenuSection as CommandMenuSection, 137 + MenuSeparator as CommandMenuSeparator, 138 + } from "../menu";
+181
apps/docs/src/components/context-menu/index.tsx
··· 1 + import { OverlayTriggerProps } from "@react-types/overlays"; 2 + import * as stylex from "@stylexjs/stylex"; 3 + import { 4 + Children, 5 + cloneElement, 6 + createContext, 7 + use, 8 + useCallback, 9 + useRef, 10 + useState, 11 + } from "react"; 12 + import { AriaButtonProps, useMenuTrigger } from "react-aria"; 13 + import { 14 + Menu as AriaMenu, 15 + MenuProps as AriaMenuProps, 16 + MenuContext, 17 + OverlayTriggerStateContext, 18 + Popover, 19 + PopoverContext, 20 + PopoverProps, 21 + Provider, 22 + RootMenuTriggerStateContext, 23 + } from "react-aria-components"; 24 + import { useMenuTriggerState } from "react-stately"; 25 + 26 + import { SizeContext } from "../context"; 27 + import { usePopoverStyles } from "../theme/usePopoverStyles"; 28 + import { Size } from "../types"; 29 + 30 + const ContextMenuTriggerPropsContext = createContext< 31 + AriaButtonProps & { ref?: React.Ref<HTMLDivElement> } 32 + >({}); 33 + 34 + interface Position { 35 + x: number; 36 + y: number; 37 + } 38 + 39 + const ContextMenuStateContext = createContext<{ 40 + position: Position; 41 + setPosition: (position: Position) => void; 42 + }>({ 43 + position: { x: 0, y: 0 }, 44 + setPosition: () => {}, 45 + }); 46 + 47 + function ContextMenuRoot({ 48 + children, 49 + ...props 50 + }: OverlayTriggerProps & { children: React.ReactNode }) { 51 + const scrollRef = useRef(null); 52 + const state = useMenuTriggerState(props); 53 + const ref = useRef<HTMLDivElement>(null); 54 + const [position, setPosition] = useState<Position>({ x: 0, y: 0 }); 55 + const { menuTriggerProps, menuProps } = useMenuTrigger( 56 + { ...props, type: "menu" }, 57 + state, 58 + ref, 59 + ); 60 + 61 + return ( 62 + <Provider 63 + values={[ 64 + [MenuContext, { ...menuProps, ref: scrollRef }], 65 + [OverlayTriggerStateContext, state], 66 + [RootMenuTriggerStateContext, state], 67 + [ContextMenuTriggerPropsContext, { ...menuTriggerProps, ref }], 68 + [ContextMenuStateContext, { position, setPosition }], 69 + [ 70 + PopoverContext, 71 + { 72 + trigger: "MenuTrigger", 73 + triggerRef: ref, 74 + scrollRef, 75 + placement: "bottom start", 76 + "aria-labelledby": menuProps["aria-labelledby"], 77 + }, 78 + ], 79 + ]} 80 + > 81 + {children} 82 + </Provider> 83 + ); 84 + } 85 + 86 + function ContextMenuTrigger({ 87 + children, 88 + ...props 89 + }: OverlayTriggerProps & { children: React.ReactNode }) { 90 + const overlayTriggerState = use(OverlayTriggerStateContext); 91 + const menuTriggerProps = use(ContextMenuTriggerPropsContext); 92 + const { position, setPosition } = use(ContextMenuStateContext); 93 + const onContextMenu = useCallback( 94 + (e: React.MouseEvent<HTMLButtonElement>) => { 95 + e.preventDefault(); 96 + e.stopPropagation(); 97 + overlayTriggerState?.open(); 98 + setPosition({ x: e.pageX, y: e.pageY }); 99 + }, 100 + [overlayTriggerState, setPosition], 101 + ); 102 + 103 + // eslint-disable-next-line @eslint-react/no-children-count 104 + if (Children.count(children) !== 1) { 105 + throw new Error("ContextMenuTrigger must have exactly one child"); 106 + } 107 + 108 + return ( 109 + <> 110 + {/* eslint-disable-next-line @eslint-react/no-clone-element */} 111 + {cloneElement( 112 + children as React.ReactElement<React.HTMLAttributes<HTMLElement>>, 113 + { 114 + ...props, 115 + "aria-controls": menuTriggerProps["aria-controls"], 116 + "aria-expanded": menuTriggerProps["aria-expanded"], 117 + "aria-haspopup": menuTriggerProps["aria-haspopup"], 118 + id: menuTriggerProps["id"], 119 + onContextMenu: onContextMenu, 120 + }, 121 + )} 122 + <div 123 + ref={menuTriggerProps.ref} 124 + style={{ position: "absolute", top: position.y, left: position.x }} 125 + /> 126 + </> 127 + ); 128 + } 129 + 130 + export interface ContextMenuProps<T extends object> 131 + extends OverlayTriggerProps, 132 + Omit<AriaMenuProps<T>, "children" | "className" | "style">, 133 + Pick< 134 + PopoverProps, 135 + | "shouldCloseOnInteractOutside" 136 + | "shouldFlip" 137 + | "shouldUpdatePosition" 138 + | "placement" 139 + > { 140 + trigger: React.ReactNode; 141 + items?: Iterable<T>; 142 + children: React.ReactNode | ((item: T) => React.ReactNode); 143 + size?: Size; 144 + } 145 + 146 + export function ContextMenu<T extends object>({ 147 + trigger, 148 + size: sizeProp, 149 + defaultOpen, 150 + isOpen, 151 + onOpenChange, 152 + shouldCloseOnInteractOutside, 153 + shouldFlip, 154 + shouldUpdatePosition, 155 + placement, 156 + ...props 157 + }: ContextMenuProps<T>) { 158 + const popoverStyles = usePopoverStyles(); 159 + const size = sizeProp || use(SizeContext); 160 + 161 + return ( 162 + <SizeContext value={size}> 163 + <ContextMenuRoot 164 + defaultOpen={defaultOpen} 165 + isOpen={isOpen} 166 + onOpenChange={onOpenChange} 167 + > 168 + <ContextMenuTrigger>{trigger}</ContextMenuTrigger> 169 + <Popover 170 + containerPadding={8} 171 + shouldCloseOnInteractOutside={shouldCloseOnInteractOutside} 172 + shouldFlip={shouldFlip} 173 + shouldUpdatePosition={shouldUpdatePosition} 174 + placement={placement} 175 + > 176 + <AriaMenu {...props} {...stylex.props(popoverStyles)} /> 177 + </Popover> 178 + </ContextMenuRoot> 179 + </SizeContext> 180 + ); 181 + }
+5
apps/docs/src/components/context.ts
··· 1 + import { createContext } from "react"; 2 + 3 + import { Size } from "./types"; 4 + 5 + export const SizeContext = createContext<Size>("md");
+67
apps/docs/src/components/date-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { useRef } from "react"; 3 + import { 4 + DateFieldProps as AriaDateFieldProps, 5 + DateInput, 6 + DateSegment, 7 + DateValue, 8 + ValidationResult, 9 + FieldError, 10 + DateField as AriaDateField, 11 + } from "react-aria-components"; 12 + 13 + import { Description, Label } from "../label"; 14 + import { useInputStyles } from "../theme/useInputStyles"; 15 + import { Size } from "../types"; 16 + 17 + export interface DateFieldProps<T extends DateValue> 18 + extends Omit<AriaDateFieldProps<T>, "style" | "className"> { 19 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 20 + label?: React.ReactNode; 21 + description?: string; 22 + errorMessage?: string | ((validation: ValidationResult) => string); 23 + size?: Size; 24 + prefix?: React.ReactNode; 25 + suffix?: React.ReactNode; 26 + } 27 + 28 + export function DateField<T extends DateValue>({ 29 + label, 30 + description, 31 + errorMessage, 32 + style, 33 + size, 34 + prefix, 35 + suffix, 36 + ...props 37 + }: DateFieldProps<T>) { 38 + const inputRef = useRef<HTMLInputElement>(null); 39 + const inputStyles = useInputStyles({ size }); 40 + 41 + return ( 42 + <AriaDateField {...props} {...stylex.props(inputStyles.field, style)}> 43 + {label != null && <Label size={size}>{label}</Label>} 44 + {/* 45 + This onClick is specifically for mouse users not clicking directly on the input. 46 + A keyboard user would not encounter the same issue. 47 + */} 48 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 49 + <div 50 + {...stylex.props(inputStyles.wrapper)} 51 + onClick={() => inputRef.current?.focus()} 52 + > 53 + {prefix != null && ( 54 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 55 + )} 56 + <DateInput {...stylex.props(inputStyles.input)} ref={inputRef}> 57 + {(segment) => <DateSegment segment={segment} />} 58 + </DateInput> 59 + {suffix != null && ( 60 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 61 + )} 62 + </div> 63 + {description && <Description size={size}>{description}</Description>} 64 + <FieldError>{errorMessage}</FieldError> 65 + </AriaDateField> 66 + ); 67 + }
+138
apps/docs/src/components/dialog/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { X } from "lucide-react"; 5 + import { 6 + DialogTrigger, 7 + DialogTriggerProps, 8 + Dialog as AriaDialog, 9 + Modal, 10 + ModalOverlay, 11 + Heading, 12 + } from "react-aria-components"; 13 + 14 + import { IconButton } from "../icon-button"; 15 + import { slate } from "../theme/colors.stylex"; 16 + import { spacing } from "../theme/spacing.stylex"; 17 + import { typeramp } from "../theme/typography.stylex"; 18 + import { useDialogStyles } from "../theme/useDialogStyles"; 19 + import { Size } from "../types"; 20 + 21 + const styles = stylex.create({ 22 + dialog: { 23 + paddingBottom: spacing["2"], 24 + paddingTop: spacing["2"], 25 + }, 26 + header: { 27 + alignItems: "center", 28 + display: "flex", 29 + gap: spacing["2"], 30 + height: spacing["8"], 31 + justifyContent: "space-between", 32 + paddingBottom: spacing["2"], 33 + paddingLeft: spacing["4"], 34 + paddingRight: spacing["4"], 35 + 36 + borderBottomColor: slate.border1, 37 + borderBottomStyle: "solid", 38 + borderBottomWidth: 1, 39 + }, 40 + description: { 41 + paddingBottom: spacing["4"], 42 + paddingLeft: spacing["4"], 43 + paddingRight: spacing["4"], 44 + paddingTop: spacing["4"], 45 + }, 46 + footer: { 47 + display: "flex", 48 + gap: spacing["2"], 49 + justifyContent: "flex-end", 50 + paddingBottom: spacing["2"], 51 + paddingLeft: spacing["4"], 52 + paddingRight: spacing["4"], 53 + paddingTop: spacing["4"], 54 + 55 + borderTopColor: slate.border1, 56 + borderTopStyle: "solid", 57 + borderTopWidth: 1, 58 + }, 59 + }); 60 + 61 + export interface DialogProps extends DialogTriggerProps { 62 + trigger: React.ReactNode; 63 + children: React.ReactNode; 64 + size?: Size; 65 + } 66 + 67 + export const Dialog = ({ 68 + trigger, 69 + children, 70 + defaultOpen, 71 + isOpen, 72 + onOpenChange, 73 + size, 74 + }: DialogProps) => { 75 + const dialogStyles = useDialogStyles({ size }); 76 + 77 + return ( 78 + <DialogTrigger 79 + defaultOpen={defaultOpen} 80 + isOpen={isOpen} 81 + onOpenChange={onOpenChange} 82 + > 83 + {trigger} 84 + 85 + <ModalOverlay 86 + isKeyboardDismissDisabled 87 + {...stylex.props(dialogStyles.overlay)} 88 + > 89 + <Modal {...stylex.props(dialogStyles.modal)}> 90 + <AriaDialog {...stylex.props(dialogStyles.dialog, styles.dialog)}> 91 + {children} 92 + </AriaDialog> 93 + </Modal> 94 + </ModalOverlay> 95 + </DialogTrigger> 96 + ); 97 + }; 98 + 99 + export interface DialogHeaderProps 100 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 101 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 102 + } 103 + 104 + export const DialogHeader = ({ children, style }: DialogHeaderProps) => { 105 + return ( 106 + <div {...stylex.props(styles.header, typeramp.heading5, style)}> 107 + <Heading>{children}</Heading> 108 + <IconButton label="Close" size="sm" variant="tertiary" slot="close"> 109 + <X /> 110 + </IconButton> 111 + </div> 112 + ); 113 + }; 114 + 115 + export interface DialogDescriptionProps 116 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 117 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 118 + } 119 + 120 + export const DialogDescription = ({ 121 + children, 122 + style, 123 + }: DialogDescriptionProps) => { 124 + return ( 125 + <div {...stylex.props(styles.description, typeramp.body, style)}> 126 + {children} 127 + </div> 128 + ); 129 + }; 130 + 131 + export interface DialogFooterProps 132 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 133 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 134 + } 135 + 136 + export const DialogFooter = ({ children, style }: DialogFooterProps) => { 137 + return <div {...stylex.props(styles.footer, style)}>{children}</div>; 138 + };
+149
apps/docs/src/components/flex/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { Spacing, spacing } from "../theme/spacing.stylex"; 4 + 5 + const styles = stylex.create({ 6 + base: { display: "flex" }, 7 + inline: { display: "inline-flex" }, 8 + row: { flexDirection: "row" }, 9 + "row-reverse": { flexDirection: "row-reverse" }, 10 + column: { flexDirection: "column" }, 11 + "column-reverse": { flexDirection: "column-reverse" }, 12 + wrap: { flexWrap: "wrap" }, 13 + "wrap-reverse": { flexWrap: "wrap-reverse" }, 14 + "justify-start": { justifyContent: "flex-start" }, 15 + "justify-end": { justifyContent: "flex-end" }, 16 + "justify-center": { justifyContent: "center" }, 17 + "justify-between": { justifyContent: "space-between" }, 18 + "justify-around": { justifyContent: "space-around" }, 19 + "justify-evenly": { justifyContent: "space-evenly" }, 20 + "align-stretch": { alignItems: "stretch" }, 21 + "align-start": { alignItems: "flex-start" }, 22 + "align-end": { alignItems: "flex-end" }, 23 + "align-center": { alignItems: "center" }, 24 + "align-baseline": { alignItems: "baseline" }, 25 + "gap-0.5": { gap: spacing["0.5"] }, 26 + "gap-1": { gap: spacing["1"] }, 27 + "gap-1.5": { gap: spacing["1.5"] }, 28 + "gap-2": { gap: spacing["2"] }, 29 + "gap-2.5": { gap: spacing["2.5"] }, 30 + "gap-3": { gap: spacing["3"] }, 31 + "gap-3.5": { gap: spacing["3.5"] }, 32 + "gap-4": { gap: spacing["4"] }, 33 + "gap-5": { gap: spacing["5"] }, 34 + "gap-6": { gap: spacing["6"] }, 35 + "gap-7": { gap: spacing["7"] }, 36 + "gap-8": { gap: spacing["8"] }, 37 + "gap-9": { gap: spacing["9"] }, 38 + "gap-10": { gap: spacing["10"] }, 39 + "gap-11": { gap: spacing["11"] }, 40 + "gap-12": { gap: spacing["12"] }, 41 + "gap-14": { gap: spacing["14"] }, 42 + "gap-16": { gap: spacing["16"] }, 43 + "gap-20": { gap: spacing["20"] }, 44 + "gap-24": { gap: spacing["24"] }, 45 + "gap-28": { gap: spacing["28"] }, 46 + "gap-32": { gap: spacing["32"] }, 47 + "gap-36": { gap: spacing["36"] }, 48 + "gap-40": { gap: spacing["40"] }, 49 + "gap-44": { gap: spacing["44"] }, 50 + "gap-48": { gap: spacing["48"] }, 51 + "gap-52": { gap: spacing["52"] }, 52 + "gap-56": { gap: spacing["56"] }, 53 + "gap-60": { gap: spacing["60"] }, 54 + "gap-64": { gap: spacing["64"] }, 55 + "gap-72": { gap: spacing["72"] }, 56 + "gap-80": { gap: spacing["80"] }, 57 + "gap-96": { gap: spacing["96"] }, 58 + }); 59 + 60 + export interface FlexProps 61 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 62 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 63 + /** 64 + * The direction of the flex container. 65 + * @default "row" 66 + * @type "row" | "row-reverse" | "column" | "column-reverse" 67 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction 68 + */ 69 + direction?: "row" | "row-reverse" | "column" | "column-reverse"; 70 + /** 71 + * The flex wrap of the flex container. 72 + * @default false 73 + * @type "nowrap" | "wrap" | "wrap-reverse" 74 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap 75 + */ 76 + wrap?: boolean | "reverse"; 77 + /** 78 + * The flex justify content of the flex container. 79 + * @default "start" 80 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 81 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content 82 + */ 83 + justify?: "start" | "end" | "center" | "between" | "around" | "evenly"; 84 + /** 85 + * The flex align items of the flex container. 86 + * @default "stretch" 87 + * @type "stretch" | "flex-start" | "flex-end" | "center" | "baseline" 88 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/align-items 89 + */ 90 + align?: "stretch" | "start" | "end" | "center" | "baseline"; 91 + /** 92 + * The gap of the flex container. 93 + * @default "0" 94 + * @type "0" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" 95 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/gap 96 + */ 97 + gap?: Spacing; 98 + /** 99 + * Whether the flex container is inline. 100 + * @default false 101 + * @type boolean 102 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/display 103 + */ 104 + inline?: boolean; 105 + } 106 + 107 + export const Flex = ({ 108 + style, 109 + direction, 110 + wrap, 111 + justify, 112 + align, 113 + gap, 114 + inline, 115 + ...props 116 + }: FlexProps) => { 117 + return ( 118 + <div 119 + {...props} 120 + {...stylex.props( 121 + inline ? styles.inline : styles.base, 122 + direction === "row" && styles.row, 123 + direction === "row-reverse" && styles["row-reverse"], 124 + direction === "column" && styles.column, 125 + direction === "column-reverse" && styles["column-reverse"], 126 + 127 + wrap && styles.wrap, 128 + wrap === "reverse" && styles["wrap-reverse"], 129 + 130 + justify === "start" && styles["justify-start"], 131 + justify === "end" && styles["justify-end"], 132 + justify === "center" && styles["justify-center"], 133 + justify === "between" && styles["justify-between"], 134 + justify === "around" && styles["justify-around"], 135 + justify === "evenly" && styles["justify-evenly"], 136 + 137 + align === "stretch" && styles["align-stretch"], 138 + align === "start" && styles["align-start"], 139 + align === "end" && styles["align-end"], 140 + align === "center" && styles["align-center"], 141 + align === "baseline" && styles["align-baseline"], 142 + 143 + typeof gap === "string" && styles[`gap-${gap}` as keyof typeof styles], 144 + 145 + style, 146 + )} 147 + /> 148 + ); 149 + };
+258
apps/docs/src/components/grid/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { Spacing, spacing } from "../theme/spacing.stylex"; 4 + 5 + const styles = stylex.create({ 6 + base: { display: "grid" }, 7 + 8 + rows: (template: string) => ({ gridTemplateRows: template }), 9 + columns: (template: string) => ({ gridTemplateColumns: template }), 10 + 11 + "justify-content-start": { justifyContent: "flex-start" }, 12 + "justify-content-end": { justifyContent: "flex-end" }, 13 + "justify-content-center": { justifyContent: "center" }, 14 + "justify-content-between": { justifyContent: "space-between" }, 15 + "justify-content-around": { justifyContent: "space-around" }, 16 + "justify-content-evenly": { justifyContent: "space-evenly" }, 17 + 18 + "align-items-stretch": { alignItems: "stretch" }, 19 + "align-items-start": { alignItems: "flex-start" }, 20 + "align-items-end": { alignItems: "flex-end" }, 21 + "align-items-center": { alignItems: "center" }, 22 + "align-items-baseline": { alignItems: "baseline" }, 23 + 24 + "align-content-start": { alignContent: "start" }, 25 + "align-content-end": { alignContent: "end" }, 26 + "align-content-center": { alignContent: "center" }, 27 + "align-content-between": { alignContent: "space-between" }, 28 + "align-content-around": { alignContent: "space-around" }, 29 + "align-content-evenly": { alignContent: "space-evenly" }, 30 + 31 + "justify-items-start": { justifyItems: "start" }, 32 + "justify-items-end": { justifyItems: "end" }, 33 + "justify-items-center": { justifyItems: "center" }, 34 + 35 + "row-gap-0.5": { gap: spacing["0.5"] }, 36 + "row-gap-1": { gap: spacing["1"] }, 37 + "row-gap-1.5": { gap: spacing["1.5"] }, 38 + "row-gap-2": { gap: spacing["2"] }, 39 + "row-gap-2.5": { gap: spacing["2.5"] }, 40 + "row-gap-3": { gap: spacing["3"] }, 41 + "row-gap-3.5": { gap: spacing["3.5"] }, 42 + "row-gap-4": { gap: spacing["4"] }, 43 + "row-gap-5": { gap: spacing["5"] }, 44 + "row-gap-6": { gap: spacing["6"] }, 45 + "row-gap-7": { gap: spacing["7"] }, 46 + "row-gap-8": { gap: spacing["8"] }, 47 + "row-gap-9": { gap: spacing["9"] }, 48 + "row-gap-10": { gap: spacing["10"] }, 49 + "row-gap-11": { gap: spacing["11"] }, 50 + "row-gap-12": { gap: spacing["12"] }, 51 + "row-gap-14": { gap: spacing["14"] }, 52 + "row-gap-16": { gap: spacing["16"] }, 53 + "row-gap-20": { gap: spacing["20"] }, 54 + "row-gap-24": { gap: spacing["24"] }, 55 + "row-gap-28": { gap: spacing["28"] }, 56 + "row-gap-32": { gap: spacing["32"] }, 57 + "row-gap-36": { gap: spacing["36"] }, 58 + "row-gap-40": { gap: spacing["40"] }, 59 + "row-gap-44": { gap: spacing["44"] }, 60 + "row-gap-48": { gap: spacing["48"] }, 61 + "row-gap-52": { gap: spacing["52"] }, 62 + "row-gap-56": { gap: spacing["56"] }, 63 + "row-gap-60": { gap: spacing["60"] }, 64 + "row-gap-64": { gap: spacing["64"] }, 65 + "row-gap-72": { gap: spacing["72"] }, 66 + "row-gap-80": { gap: spacing["80"] }, 67 + "row-gap-96": { gap: spacing["96"] }, 68 + 69 + "column-gap-0.5": { gap: spacing["0.5"] }, 70 + "column-gap-1": { gap: spacing["1"] }, 71 + "column-gap-1.5": { gap: spacing["1.5"] }, 72 + "column-gap-2": { gap: spacing["2"] }, 73 + "column-gap-2.5": { gap: spacing["2.5"] }, 74 + "column-gap-3": { gap: spacing["3"] }, 75 + "column-gap-3.5": { gap: spacing["3.5"] }, 76 + "column-gap-4": { gap: spacing["4"] }, 77 + "column-gap-5": { gap: spacing["5"] }, 78 + "column-gap-6": { gap: spacing["6"] }, 79 + "column-gap-7": { gap: spacing["7"] }, 80 + "column-gap-8": { gap: spacing["8"] }, 81 + "column-gap-9": { gap: spacing["9"] }, 82 + "column-gap-10": { gap: spacing["10"] }, 83 + "column-gap-11": { gap: spacing["11"] }, 84 + "column-gap-12": { gap: spacing["12"] }, 85 + "column-gap-14": { gap: spacing["14"] }, 86 + "column-gap-16": { gap: spacing["16"] }, 87 + "column-gap-20": { gap: spacing["20"] }, 88 + "column-gap-24": { gap: spacing["24"] }, 89 + "column-gap-28": { gap: spacing["28"] }, 90 + "column-gap-32": { gap: spacing["32"] }, 91 + "column-gap-36": { gap: spacing["36"] }, 92 + "column-gap-40": { gap: spacing["40"] }, 93 + "column-gap-44": { gap: spacing["44"] }, 94 + "column-gap-48": { gap: spacing["48"] }, 95 + "column-gap-52": { gap: spacing["52"] }, 96 + "column-gap-56": { gap: spacing["56"] }, 97 + "column-gap-60": { gap: spacing["60"] }, 98 + "column-gap-64": { gap: spacing["64"] }, 99 + "column-gap-72": { gap: spacing["72"] }, 100 + "column-gap-80": { gap: spacing["80"] }, 101 + "column-gap-96": { gap: spacing["96"] }, 102 + 103 + columnStart: (start: number) => ({ gridColumnStart: start }), 104 + columnEnd: (end: number) => ({ gridColumnEnd: end }), 105 + rowStart: (start: number) => ({ gridRowStart: start }), 106 + rowEnd: (end: number) => ({ gridRowEnd: end }), 107 + }); 108 + 109 + export interface GridProps 110 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 111 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 112 + /** 113 + * The grid template rows of the grid container. 114 + * @default "auto" 115 + * @type string 116 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows 117 + */ 118 + rows?: string; 119 + /** 120 + * The grid template columns of the grid container. 121 + * @default "auto" 122 + * @type string 123 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns 124 + */ 125 + columns?: string; 126 + /** 127 + * The flex justify content of the flex container. 128 + * @default "start" 129 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 130 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content 131 + */ 132 + justifyContent?: "start" | "end" | "center" | "between" | "around" | "evenly"; 133 + /** 134 + * The flex align items of the flex container. 135 + * @default "stretch" 136 + * @type "stretch" | "flex-start" | "flex-end" | "center" | "baseline" 137 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/align-items 138 + */ 139 + alignItems?: "stretch" | "start" | "end" | "center" | "baseline"; 140 + /** 141 + * The grid justify items of the grid container. 142 + * @default "stretch" 143 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 144 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items 145 + */ 146 + justifyItems?: "start" | "end" | "center"; 147 + /** 148 + * The grid align content of the grid container. 149 + * @default "stretch" 150 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 151 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/align-content 152 + */ 153 + alignContent?: "start" | "end" | "center" | "between" | "around" | "evenly"; 154 + /** 155 + * The gap of the flex container. 156 + * @default "0" 157 + * @type "0" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" 158 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/gap 159 + */ 160 + columnGap?: Spacing; 161 + /** 162 + * The row gap of the grid container. 163 + * @default "0" 164 + * @type "0" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" 165 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap 166 + */ 167 + rowGap?: Spacing; 168 + } 169 + 170 + export const Grid = ({ 171 + style, 172 + justifyContent, 173 + alignContent, 174 + justifyItems, 175 + alignItems, 176 + columnGap, 177 + rowGap, 178 + rows, 179 + columns, 180 + ...props 181 + }: GridProps) => { 182 + return ( 183 + <div 184 + {...props} 185 + {...stylex.props( 186 + styles.base, 187 + typeof rows === "string" && styles.rows(rows), 188 + typeof columns === "string" && styles.columns(columns), 189 + 190 + justifyContent === "start" && styles["justify-content-start"], 191 + justifyContent === "end" && styles["justify-content-end"], 192 + justifyContent === "center" && styles["justify-content-center"], 193 + justifyContent === "between" && styles["justify-content-between"], 194 + justifyContent === "around" && styles["justify-content-around"], 195 + justifyContent === "evenly" && styles["justify-content-evenly"], 196 + 197 + alignItems === "stretch" && styles["align-items-stretch"], 198 + alignItems === "start" && styles["align-items-start"], 199 + alignItems === "end" && styles["align-items-end"], 200 + alignItems === "center" && styles["align-items-center"], 201 + alignItems === "baseline" && styles["align-items-baseline"], 202 + 203 + alignContent === "start" && styles["align-content-start"], 204 + alignContent === "end" && styles["align-content-end"], 205 + alignContent === "center" && styles["align-content-center"], 206 + alignContent === "between" && styles["align-content-between"], 207 + alignContent === "around" && styles["align-content-around"], 208 + alignContent === "evenly" && styles["align-content-evenly"], 209 + 210 + justifyItems === "start" && styles["justify-items-start"], 211 + justifyItems === "end" && styles["justify-items-end"], 212 + justifyItems === "center" && styles["justify-items-center"], 213 + 214 + typeof columnGap === "string" && 215 + (styles[ 216 + `column-gap-${columnGap}` as keyof typeof styles 217 + ] as stylex.StyleXStyles), 218 + typeof rowGap === "string" && 219 + (styles[ 220 + `row-gap-${rowGap}` as keyof typeof styles 221 + ] as stylex.StyleXStyles), 222 + 223 + style, 224 + )} 225 + /> 226 + ); 227 + }; 228 + 229 + interface GridItemProps 230 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 231 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 232 + columnStart?: number; 233 + columnEnd?: number; 234 + rowStart?: number; 235 + rowEnd?: number; 236 + } 237 + 238 + export const GridItem = ({ 239 + style, 240 + columnStart, 241 + columnEnd, 242 + rowStart, 243 + rowEnd, 244 + ...props 245 + }: GridItemProps) => { 246 + return ( 247 + <div 248 + {...props} 249 + {...stylex.props( 250 + columnStart != null && styles.columnStart(columnStart), 251 + columnEnd != null && styles.columnEnd(columnEnd), 252 + rowStart != null && styles.rowStart(rowStart), 253 + rowEnd != null && styles.rowEnd(rowEnd), 254 + style, 255 + )} 256 + /> 257 + ); 258 + };
+51
apps/docs/src/components/icon-button/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { use } from "react"; 5 + import { ButtonProps as AriaButtonProps } from "react-aria-components"; 6 + 7 + import { Button } from "../button"; 8 + import { SizeContext } from "../context"; 9 + import { spacing } from "../theme/spacing.stylex"; 10 + import { Tooltip } from "../tooltip"; 11 + import { ButtonVariant, Size } from "../types"; 12 + 13 + const styles = stylex.create({ 14 + sm: { 15 + height: spacing["7"], 16 + width: spacing["7"], 17 + }, 18 + md: { 19 + height: spacing["8"], 20 + width: spacing["8"], 21 + }, 22 + lg: { 23 + height: spacing["10"], 24 + width: spacing["10"], 25 + }, 26 + }); 27 + 28 + interface IconButtonProps extends Omit<AriaButtonProps, "className" | "style"> { 29 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 30 + variant?: ButtonVariant; 31 + size?: Size; 32 + label: string; 33 + } 34 + 35 + export const IconButton = ({ 36 + children, 37 + size: sizeProp, 38 + label, 39 + style, 40 + ...props 41 + }: IconButtonProps) => { 42 + const size = sizeProp || use(SizeContext); 43 + 44 + return ( 45 + <Tooltip text={label}> 46 + <Button size={size} style={[styles[size], style]} {...props}> 47 + {children} 48 + </Button> 49 + </Tooltip> 50 + ); 51 + };
+84
apps/docs/src/components/label/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + import { 4 + LabelProps as AriaLabelProps, 5 + Text, 6 + TextProps, 7 + Label as AriaLabel, 8 + } from "react-aria-components"; 9 + 10 + import { SizeContext } from "../context"; 11 + import { gray } from "../theme/semantic-color.stylex"; 12 + import { fontSize, fontWeight, lineHeight } from "../theme/typography.stylex"; 13 + import { Size } from "../types"; 14 + 15 + const styles = stylex.create({ 16 + label: { 17 + fontWeight: fontWeight["semibold"], 18 + }, 19 + sm: { 20 + fontSize: fontSize["xs"], 21 + lineHeight: lineHeight["xs"], 22 + }, 23 + md: { 24 + fontSize: fontSize["sm"], 25 + lineHeight: lineHeight["sm"], 26 + }, 27 + lg: { 28 + fontSize: fontSize["base"], 29 + lineHeight: lineHeight["base"], 30 + }, 31 + description: { 32 + color: gray.textDim, 33 + fontSize: fontSize["sm"], 34 + lineHeight: lineHeight["sm"], 35 + }, 36 + descriptionSm: { 37 + fontSize: fontSize["xs"], 38 + lineHeight: lineHeight["xs"], 39 + }, 40 + }); 41 + 42 + export interface LabelProps 43 + extends Omit<AriaLabelProps, "style" | "className"> { 44 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 45 + size?: Size; 46 + } 47 + 48 + export function Label({ style, size: sizeProp, ...props }: LabelProps) { 49 + const size = sizeProp || use(SizeContext); 50 + 51 + return ( 52 + <AriaLabel 53 + {...props} 54 + {...stylex.props(styles[size], styles.label, style)} 55 + /> 56 + ); 57 + } 58 + 59 + export interface DescriptionProps 60 + extends Omit<TextProps, "style" | "className"> { 61 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 62 + size?: Size; 63 + } 64 + 65 + export function Description({ 66 + style, 67 + size: sizeProp, 68 + ...props 69 + }: DescriptionProps) { 70 + const size = sizeProp || use(SizeContext); 71 + 72 + return ( 73 + <Text 74 + slot="description" 75 + {...stylex.props( 76 + styles.description, 77 + gray.textDim, 78 + size === "sm" && styles.descriptionSm, 79 + style, 80 + )} 81 + {...props} 82 + /> 83 + ); 84 + }
+38
apps/docs/src/components/link/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + import { 4 + LinkProps as AriaLinkProps, 5 + Link as AriaLink, 6 + } from "react-aria-components"; 7 + 8 + import { plum } from "../theme/colors.stylex"; 9 + import { fontFamily, fontWeight } from "../theme/typography.stylex"; 10 + import { LinkContext } from "./link-context"; 11 + 12 + const styles = stylex.create({ 13 + link: { 14 + color: { 15 + default: plum.text1, 16 + ":visited": plum.text2, 17 + }, 18 + cursor: "pointer", 19 + fontFamily: fontFamily["sans"], 20 + fontWeight: fontWeight["normal"], 21 + textDecoration: { 22 + default: "none", 23 + ":hover": "underline", 24 + }, 25 + }, 26 + }); 27 + 28 + export interface LinkProps extends Omit<AriaLinkProps, "style" | "className"> { 29 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 30 + } 31 + 32 + export function Link({ style, ...props }: LinkProps) { 33 + const context = use(LinkContext); 34 + 35 + return ( 36 + <AriaLink {...props} {...stylex.props(styles.link, context.style, style)} /> 37 + ); 38 + }
+162
apps/docs/src/components/listbox/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { Check } from "lucide-react"; 3 + import { use } from "react"; 4 + import { 5 + ListBoxProps as AriaListBoxProps, 6 + ListBoxItem as AriaListBoxItem, 7 + ListBox as AriaListBox, 8 + ListBoxSection as AriaListBoxSection, 9 + ListBoxSectionProps as AriaListBoxSectionProps, 10 + ListBoxItemProps as AriaListBoxItemProps, 11 + Header, 12 + SeparatorProps, 13 + } from "react-aria-components"; 14 + 15 + import { SizeContext } from "../context"; 16 + import { Separator } from "../separator"; 17 + import { gray } from "../theme/semantic-color.stylex"; 18 + import { spacing } from "../theme/spacing.stylex"; 19 + import { typeramp } from "../theme/typography.stylex"; 20 + import { useListBoxItemStyles } from "../theme/useListBoxItemStyles"; 21 + import { Size } from "../types"; 22 + 23 + const styles = stylex.create({ 24 + listBox: { 25 + outline: "none", 26 + }, 27 + sectionLabel: { 28 + alignItems: "center", 29 + boxSizing: "border-box", 30 + display: "flex", 31 + paddingBottom: spacing["1"], 32 + paddingLeft: spacing["3"], 33 + paddingRight: spacing["3"], 34 + paddingTop: spacing["1"], 35 + }, 36 + smSectionLabel: { 37 + height: spacing["7"], 38 + }, 39 + mdSectionLabel: { 40 + height: spacing["7"], 41 + }, 42 + lgSectionLabel: { 43 + height: spacing["9"], 44 + }, 45 + separator: { 46 + marginBottom: spacing["1.5"], 47 + marginTop: spacing["1.5"], 48 + }, 49 + }); 50 + 51 + export interface ListBoxProps<T extends object> 52 + extends Omit<AriaListBoxProps<T>, "style" | "className"> { 53 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 54 + size?: Size; 55 + items?: Iterable<T>; 56 + children: React.ReactNode | ((item: T) => React.ReactNode); 57 + } 58 + 59 + export function ListBox<T extends object>({ 60 + size: sizeProp, 61 + style, 62 + ...props 63 + }: ListBoxProps<T>) { 64 + const size = sizeProp || use(SizeContext); 65 + 66 + return ( 67 + <SizeContext value={size}> 68 + <AriaListBox {...stylex.props(styles.listBox, style)} {...props} /> 69 + </SizeContext> 70 + ); 71 + } 72 + 73 + export interface ListBoxItemProps 74 + extends Omit<AriaListBoxItemProps, "style" | "className" | "children"> { 75 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 76 + children: React.ReactNode; 77 + prefix?: React.ReactNode; 78 + suffix?: React.ReactNode; 79 + } 80 + 81 + export function ListBoxItem({ 82 + style, 83 + children, 84 + prefix, 85 + suffix, 86 + ...props 87 + }: ListBoxItemProps) { 88 + const listBoxItemStyles = useListBoxItemStyles(); 89 + 90 + return ( 91 + <AriaListBoxItem 92 + {...props} 93 + value={props.value || { id: props.id, label: children }} 94 + textValue={ 95 + props.textValue || (typeof children === "string" ? children : undefined) 96 + } 97 + {...stylex.props(listBoxItemStyles.wrapper, style)} 98 + > 99 + {({ isSelected }) => ( 100 + <div {...stylex.props(listBoxItemStyles.inner)}> 101 + {prefix != null && ( 102 + <div {...stylex.props(listBoxItemStyles.addon)}>{prefix}</div> 103 + )} 104 + <div {...stylex.props(listBoxItemStyles.label)}>{children}</div> 105 + {suffix != null && ( 106 + <div {...stylex.props(listBoxItemStyles.addon)}>{suffix}</div> 107 + )} 108 + {isSelected && ( 109 + <Check size={16} {...stylex.props(listBoxItemStyles.check)} /> 110 + )} 111 + </div> 112 + )} 113 + </AriaListBoxItem> 114 + ); 115 + } 116 + 117 + export interface ListBoxSectionProps<T extends object> 118 + extends Omit<AriaListBoxSectionProps<T>, "style" | "className"> { 119 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 120 + children: React.ReactNode; 121 + } 122 + 123 + export function ListBoxSection<T extends object>({ 124 + style, 125 + ...props 126 + }: ListBoxSectionProps<T>) { 127 + return <AriaListBoxSection {...props} {...stylex.props(style)} />; 128 + } 129 + 130 + export interface ListBoxSeparatorProps 131 + extends Omit<SeparatorProps, "style" | "className"> { 132 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 133 + } 134 + 135 + export function ListBoxSeparator({ style, ...props }: ListBoxSeparatorProps) { 136 + return <Separator {...props} style={[styles.separator, style]} />; 137 + } 138 + 139 + export interface ListBoxSectionHeaderProps 140 + extends Omit<React.HTMLAttributes<HTMLElement>, "style" | "className"> { 141 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 142 + } 143 + 144 + export function ListBoxSectionHeader({ 145 + style, 146 + ...props 147 + }: ListBoxSectionHeaderProps) { 148 + const size = use(SizeContext); 149 + 150 + return ( 151 + <Header 152 + {...props} 153 + {...stylex.props( 154 + typeramp.sublabel, 155 + styles.sectionLabel, 156 + gray.textDim, 157 + styles[`${size}SectionLabel`], 158 + style, 159 + )} 160 + /> 161 + ); 162 + }
+195
apps/docs/src/components/menu/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { Check, ChevronRight } from "lucide-react"; 3 + import { use } from "react"; 4 + import { 5 + MenuTriggerProps, 6 + MenuTrigger, 7 + Popover, 8 + SubmenuTriggerProps, 9 + Menu as AriaMenu, 10 + MenuProps as AriaMenuProps, 11 + MenuSection as AriaMenuSection, 12 + MenuSectionProps as AriaMenuSectionProps, 13 + MenuItem as AriaMenuItem, 14 + MenuItemProps as AriaMenuItemProps, 15 + SubmenuTrigger, 16 + PopoverProps, 17 + } from "react-aria-components"; 18 + 19 + import { SizeContext } from "../context"; 20 + import { useListBoxItemStyles } from "../theme/useListBoxItemStyles"; 21 + import { usePopoverStyles } from "../theme/usePopoverStyles"; 22 + import { Size } from "../types"; 23 + 24 + export interface MenuProps<T extends object> 25 + extends Omit<MenuTriggerProps, "trigger" | "children">, 26 + Omit<AriaMenuProps<T>, "children" | "className" | "style">, 27 + Pick< 28 + PopoverProps, 29 + | "shouldCloseOnInteractOutside" 30 + | "shouldFlip" 31 + | "shouldUpdatePosition" 32 + | "placement" 33 + > { 34 + trigger: React.ReactNode; 35 + items?: Iterable<T>; 36 + children: React.ReactNode | ((item: T) => React.ReactNode); 37 + size?: Size; 38 + } 39 + 40 + export function Menu<T extends object>({ 41 + trigger, 42 + size: sizeProp, 43 + defaultOpen, 44 + isOpen, 45 + onOpenChange, 46 + shouldCloseOnInteractOutside, 47 + shouldFlip, 48 + shouldUpdatePosition, 49 + placement, 50 + ...props 51 + }: MenuProps<T>) { 52 + const popoverStyles = usePopoverStyles(); 53 + const size = sizeProp || use(SizeContext); 54 + 55 + return ( 56 + <SizeContext value={size}> 57 + <MenuTrigger 58 + defaultOpen={defaultOpen} 59 + isOpen={isOpen} 60 + onOpenChange={onOpenChange} 61 + > 62 + {trigger} 63 + <Popover 64 + containerPadding={8} 65 + shouldCloseOnInteractOutside={shouldCloseOnInteractOutside} 66 + shouldFlip={shouldFlip} 67 + shouldUpdatePosition={shouldUpdatePosition} 68 + placement={placement} 69 + > 70 + <AriaMenu {...props} {...stylex.props(popoverStyles)} /> 71 + </Popover> 72 + </MenuTrigger> 73 + </SizeContext> 74 + ); 75 + } 76 + 77 + export interface SubMenuProps<T extends object> 78 + extends Omit<SubmenuTriggerProps, "trigger" | "children">, 79 + Omit<AriaMenuProps<T>, "children" | "className" | "style">, 80 + Pick< 81 + PopoverProps, 82 + | "shouldCloseOnInteractOutside" 83 + | "shouldFlip" 84 + | "shouldUpdatePosition" 85 + | "placement" 86 + > { 87 + trigger: React.ReactElement<MenuTriggerProps>; 88 + children: React.ReactNode | ((item: T) => React.ReactNode); 89 + items?: Iterable<T>; 90 + size?: Size; 91 + } 92 + 93 + export function SubMenu<T extends object>({ 94 + trigger, 95 + delay, 96 + shouldCloseOnInteractOutside, 97 + shouldFlip, 98 + shouldUpdatePosition, 99 + placement, 100 + ...props 101 + }: SubMenuProps<T>) { 102 + const popoverStyles = usePopoverStyles(); 103 + 104 + return ( 105 + <SubmenuTrigger delay={delay}> 106 + {trigger} 107 + <Popover 108 + shouldCloseOnInteractOutside={shouldCloseOnInteractOutside} 109 + shouldFlip={shouldFlip} 110 + shouldUpdatePosition={shouldUpdatePosition} 111 + placement={placement} 112 + containerPadding={8} 113 + offset={-8} 114 + > 115 + <AriaMenu {...props} {...stylex.props(popoverStyles)} /> 116 + </Popover> 117 + </SubmenuTrigger> 118 + ); 119 + } 120 + 121 + export interface MenuSectionProps<T extends object> 122 + extends Omit<AriaMenuSectionProps<T>, "style" | "className"> { 123 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 124 + children: React.ReactNode; 125 + } 126 + 127 + export function MenuSection<T extends object>({ 128 + style, 129 + ...props 130 + }: MenuSectionProps<T>) { 131 + return <AriaMenuSection {...props} {...stylex.props(style)} />; 132 + } 133 + 134 + export interface MenuItemProps 135 + extends Omit<AriaMenuItemProps, "style" | "className" | "children"> { 136 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 137 + children: React.ReactNode; 138 + prefix?: React.ReactNode; 139 + suffix?: React.ReactNode; 140 + variant?: "default" | "destructive"; 141 + } 142 + 143 + export function MenuItem({ 144 + style, 145 + children, 146 + prefix, 147 + suffix, 148 + variant = "default", 149 + ...props 150 + }: MenuItemProps) { 151 + const menuItemStyles = useListBoxItemStyles(); 152 + 153 + return ( 154 + <AriaMenuItem 155 + {...props} 156 + data-variant={variant} 157 + textValue={ 158 + props.textValue || (typeof children === "string" ? children : undefined) 159 + } 160 + {...stylex.props(menuItemStyles.wrapper, style)} 161 + > 162 + {({ isSelected, hasSubmenu }) => ( 163 + <div {...stylex.props(menuItemStyles.inner)}> 164 + {prefix != null && ( 165 + <div {...stylex.props(menuItemStyles.addon)}>{prefix}</div> 166 + )} 167 + <div {...stylex.props(menuItemStyles.label)}>{children}</div> 168 + {suffix != null && ( 169 + <div {...stylex.props(menuItemStyles.addon)}>{suffix}</div> 170 + )} 171 + {isSelected && ( 172 + <div {...stylex.props(menuItemStyles.addon)}> 173 + <Check size={16} {...stylex.props(menuItemStyles.check)} /> 174 + </div> 175 + )} 176 + {hasSubmenu && ( 177 + <div {...stylex.props(menuItemStyles.addon)}> 178 + <ChevronRight size={16} /> 179 + </div> 180 + )} 181 + </div> 182 + )} 183 + </AriaMenuItem> 184 + ); 185 + } 186 + 187 + export type { 188 + ListBoxSectionHeaderProps as MenuSectionHeaderProps, 189 + ListBoxSeparatorProps as MenuSeparatorProps, 190 + } from "../listbox"; 191 + 192 + export { 193 + ListBoxSectionHeader as MenuSectionHeader, 194 + ListBoxSeparator as MenuSeparator, 195 + } from "../listbox";
+121
apps/docs/src/components/number-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { Minus, Plus } from "lucide-react"; 3 + import { useRef } from "react"; 4 + import { 5 + NumberFieldProps as AriaNumberFieldProps, 6 + Input, 7 + InputProps, 8 + ValidationResult, 9 + FieldError, 10 + NumberField as AriaNumberField, 11 + Group, 12 + Button, 13 + } from "react-aria-components"; 14 + 15 + import { Description, Label } from "../label"; 16 + import { slate } from "../theme/colors.stylex"; 17 + import { gray } from "../theme/semantic-color.stylex"; 18 + import { spacing } from "../theme/spacing.stylex"; 19 + import { useInputStyles } from "../theme/useInputStyles"; 20 + import { Size } from "../types"; 21 + 22 + const styles = stylex.create({ 23 + buttons: { 24 + display: "flex", 25 + }, 26 + button: { 27 + alignItems: "center", 28 + borderBottomWidth: 0, 29 + borderLeftStyle: "solid", 30 + borderLeftWidth: 1, 31 + borderRightWidth: 0, 32 + borderTopWidth: 0, 33 + borderWidth: 0, 34 + display: "flex", 35 + flexGrow: 1, 36 + justifyContent: "center", 37 + minHeight: 0, 38 + 39 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 40 + ":is(*) svg": { 41 + flexShrink: 0, 42 + height: spacing["4"], 43 + pointerEvents: "none", 44 + width: spacing["4"], 45 + }, 46 + 47 + color: { 48 + default: slate.text2, 49 + ":disabled": slate.text1, 50 + }, 51 + }, 52 + }); 53 + 54 + export interface NumberFieldProps 55 + extends Omit<AriaNumberFieldProps, "style" | "className">, 56 + Pick<InputProps, "placeholder"> { 57 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 58 + label?: React.ReactNode; 59 + description?: string; 60 + errorMessage?: string | ((validation: ValidationResult) => string); 61 + size?: Size; 62 + prefix?: React.ReactNode; 63 + suffix?: React.ReactNode; 64 + } 65 + 66 + export function NumberField({ 67 + label, 68 + description, 69 + errorMessage, 70 + style, 71 + size, 72 + prefix, 73 + suffix, 74 + placeholder, 75 + ...props 76 + }: NumberFieldProps) { 77 + const inputRef = useRef<HTMLInputElement>(null); 78 + const inputStyles = useInputStyles({ size }); 79 + const buttonStyles = stylex.props( 80 + styles.button, 81 + gray.borderInteractive, 82 + gray.bgAction, 83 + ); 84 + 85 + return ( 86 + <AriaNumberField {...props} {...stylex.props(inputStyles.field, style)}> 87 + <Label size={size}>{label}</Label> 88 + {/* 89 + This onClick is specifically for mouse users not clicking directly on the input. 90 + A keyboard user would not encounter the same issue. 91 + */} 92 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 93 + <div 94 + {...stylex.props(inputStyles.wrapper)} 95 + onClick={() => inputRef.current?.focus()} 96 + > 97 + {prefix != null && ( 98 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 99 + )} 100 + <Input 101 + placeholder={placeholder} 102 + ref={inputRef} 103 + {...stylex.props(inputStyles.input)} 104 + /> 105 + {suffix != null && ( 106 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 107 + )} 108 + <Group {...stylex.props(styles.buttons)}> 109 + <Button slot="decrement" {...buttonStyles}> 110 + <Minus /> 111 + </Button> 112 + <Button slot="increment" {...buttonStyles}> 113 + <Plus /> 114 + </Button> 115 + </Group> 116 + </div> 117 + {description && <Description size={size}>{description}</Description>} 118 + <FieldError>{errorMessage}</FieldError> 119 + </AriaNumberField> 120 + ); 121 + }
+82
apps/docs/src/components/popover/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { 5 + OverlayArrow, 6 + Popover as AriaPopover, 7 + PopoverProps as AriaPopoverProps, 8 + DialogTrigger, 9 + DialogTriggerProps, 10 + Dialog, 11 + } from "react-aria-components"; 12 + 13 + import { slate } from "../theme/colors.stylex"; 14 + import { spacing } from "../theme/spacing.stylex"; 15 + import { usePopoverStyles } from "../theme/usePopoverStyles"; 16 + 17 + const styles = stylex.create({ 18 + wrapper: { 19 + filter: `drop-shadow(-0.5px -0.5px 0 ${slate.border2}) drop-shadow(0.5px -0.5px 0 ${slate.border2}) drop-shadow(0.5px 0.5px 0 ${slate.border2}) drop-shadow(-0.5px 0.5px 0 ${slate.border2}) drop-shadow(0px 1px 3px rgb(0 0 0 / 0.1)) drop-shadow(0px -1px 3px rgb(0 0 0 / 0.1))`, 20 + }, 21 + content: { 22 + borderWidth: 0, 23 + boxShadow: "none", 24 + paddingBottom: spacing["2"], 25 + paddingLeft: spacing["2"], 26 + paddingRight: spacing["2"], 27 + paddingTop: spacing["2"], 28 + position: "relative", 29 + }, 30 + caret: {}, 31 + arrow: { 32 + backgroundColor: slate.bg2, 33 + height: spacing["2"], 34 + transform: { 35 + [":is([data-placement=bottom] *)"]: "rotate(180deg)", 36 + [":is([data-placement=top] *)"]: "translateY(-50%) rotate(-45deg)", 37 + [":is([data-placement=left] *)"]: "rotate(90deg)", 38 + [":is([data-placement=right] *)"]: "rotate(-90deg)", 39 + }, 40 + width: spacing["2"], 41 + zIndex: 0, 42 + }, 43 + }); 44 + interface TooltipProps 45 + extends DialogTriggerProps, 46 + Pick<AriaPopoverProps, "crossOffset" | "placement" | "shouldFlip"> { 47 + trigger: React.ReactNode; 48 + children: React.ReactNode; 49 + } 50 + 51 + export const Popover = ({ 52 + trigger, 53 + children, 54 + defaultOpen, 55 + isOpen, 56 + onOpenChange, 57 + ...popoverProps 58 + }: TooltipProps) => { 59 + const popoverStyles = usePopoverStyles(); 60 + 61 + return ( 62 + <DialogTrigger 63 + {...({ isOpen, onOpenChange, defaultOpen } as DialogTriggerProps)} 64 + > 65 + {trigger} 66 + 67 + <AriaPopover 68 + {...stylex.props(styles.wrapper)} 69 + {...popoverProps} 70 + offset={8} 71 + containerPadding={8} 72 + > 73 + <OverlayArrow {...stylex.props(styles.caret)}> 74 + <div {...stylex.props(styles.arrow)} /> 75 + </OverlayArrow> 76 + <Dialog {...stylex.props(popoverStyles, styles.content)}> 77 + {children} 78 + </Dialog> 79 + </AriaPopover> 80 + </DialogTrigger> 81 + ); 82 + };
+148
apps/docs/src/components/radio/index.tsx
··· 1 + import type { 2 + RadioProps as AriaRadioProps, 3 + RadioGroupProps as AriaRadioGroupProps, 4 + ValidationResult, 5 + } from "react-aria-components"; 6 + 7 + import * as stylex from "@stylexjs/stylex"; 8 + import { 9 + Radio as AriaRadio, 10 + RadioGroup as AriaRadioGroup, 11 + FieldError, 12 + SelectionIndicator, 13 + } from "react-aria-components"; 14 + 15 + import { Flex } from "../flex"; 16 + import { Description, Label } from "../label"; 17 + import { radius } from "../theme/radius.stylex"; 18 + import { gray, primary } from "../theme/semantic-color.stylex"; 19 + import { spacing } from "../theme/spacing.stylex"; 20 + import { fontFamily, fontSize, lineHeight } from "../theme/typography.stylex"; 21 + import { Size } from "../types"; 22 + 23 + const scaleIn = stylex.keyframes({ 24 + "0%": { 25 + transform: "translate(-50%, -50%) scale(0)", 26 + }, 27 + "100%": { 28 + transform: "translate(-50%, -50%) scale(1)", 29 + }, 30 + }); 31 + 32 + const styles = stylex.create({ 33 + wrapper: { 34 + alignItems: { 35 + default: "center", 36 + ":has(p)": "flex-start", 37 + }, 38 + display: "flex", 39 + gap: spacing["2.5"], 40 + 41 + fontFamily: fontFamily["sans"], 42 + fontSize: fontSize["sm"], 43 + lineHeight: lineHeight["sm"], 44 + opacity: { ":is([data-disabled])": 0.5 }, 45 + }, 46 + radio: { 47 + alignItems: "center", 48 + display: "flex", 49 + justifyContent: "center", 50 + 51 + borderRadius: radius["full"], 52 + borderWidth: 2, 53 + height: spacing["4"], 54 + position: "relative", 55 + width: spacing["4"], 56 + 57 + transitionDuration: "100ms", 58 + transitionProperty: "background-color, border-color, color", 59 + transitionTimingFunction: "ease-in-out", 60 + }, 61 + selectionIndicator: { 62 + backgroundColor: "white", 63 + borderRadius: radius["full"], 64 + height: spacing["2"], 65 + width: spacing["2"], 66 + 67 + left: "50%", 68 + position: "absolute", 69 + top: "50%", 70 + transform: "translate(-50%, -50%)", 71 + 72 + animationDuration: "100ms", 73 + animationFillMode: "forwards", 74 + animationName: scaleIn, 75 + animationTimingFunction: "ease-in-out", 76 + }, 77 + checked: { 78 + color: "white", 79 + }, 80 + group: { 81 + display: "flex", 82 + flexDirection: "column", 83 + gap: spacing["3"], 84 + }, 85 + }); 86 + 87 + interface RadioGroupProps 88 + extends Omit<AriaRadioGroupProps, "children" | "style" | "className"> { 89 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 90 + children?: React.ReactNode; 91 + label?: React.ReactNode; 92 + description?: string; 93 + errorMessage?: string | ((validation: ValidationResult) => string); 94 + size?: Size; 95 + } 96 + 97 + export function RadioGroup({ 98 + label, 99 + description, 100 + errorMessage, 101 + children, 102 + size, 103 + style, 104 + ...props 105 + }: RadioGroupProps) { 106 + return ( 107 + <AriaRadioGroup {...props} {...stylex.props(styles.group, style)}> 108 + {label != null && <Label size={size}>{label}</Label>} 109 + <Flex direction="column" gap="2"> 110 + {children} 111 + </Flex> 112 + {description && <Description size={size}>{description}</Description>} 113 + <FieldError>{errorMessage}</FieldError> 114 + </AriaRadioGroup> 115 + ); 116 + } 117 + 118 + export interface RadioProps 119 + extends Omit<AriaRadioProps, "className" | "style" | "children"> { 120 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 121 + children?: React.ReactNode; 122 + } 123 + 124 + export function Radio({ children, style, ...props }: RadioProps) { 125 + return ( 126 + <AriaRadio {...props} {...stylex.props(styles.wrapper, style)}> 127 + {({ isSelected, isDisabled }) => ( 128 + <> 129 + <div 130 + {...stylex.props( 131 + styles.radio, 132 + isDisabled 133 + ? [gray.bgSolid, gray.border, styles.checked] 134 + : isSelected 135 + ? [primary.bgSolid, primary.borderInteractive, styles.checked] 136 + : [gray.borderInteractive], 137 + )} 138 + > 139 + <SelectionIndicator {...stylex.props(styles.selectionIndicator)} /> 140 + </div> 141 + <Flex direction="column" gap="1"> 142 + {children} 143 + </Flex> 144 + </> 145 + )} 146 + </AriaRadio> 147 + ); 148 + }
+112
apps/docs/src/components/search-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { SearchIcon, X } from "lucide-react"; 3 + import { useRef } from "react"; 4 + import { 5 + SearchFieldProps as AriaSearchFieldProps, 6 + Input, 7 + InputProps, 8 + ValidationResult, 9 + FieldError, 10 + SearchField as AriaSearchField, 11 + } from "react-aria-components"; 12 + 13 + import { IconButton } from "../icon-button"; 14 + import { Description, Label } from "../label"; 15 + import { spacing } from "../theme/spacing.stylex"; 16 + import { useInputStyles } from "../theme/useInputStyles"; 17 + import { Size } from "../types"; 18 + 19 + const styles = stylex.create({ 20 + wrapper: { 21 + position: "relative", 22 + }, 23 + clearButton: { 24 + position: "absolute", 25 + right: 0, 26 + top: "50%", 27 + transform: "translateY(-50%)", 28 + }, 29 + clearButtonPadding: { 30 + paddingRight: spacing["8"], 31 + }, 32 + }); 33 + 34 + export interface SearchFieldProps 35 + extends Omit<AriaSearchFieldProps, "style" | "className">, 36 + Pick<InputProps, "placeholder"> { 37 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 38 + label?: React.ReactNode; 39 + description?: string; 40 + errorMessage?: string | ((validation: ValidationResult) => string); 41 + size?: Size; 42 + prefix?: React.ReactNode; 43 + suffix?: React.ReactNode; 44 + } 45 + 46 + const defaultPrefix = <SearchIcon />; 47 + 48 + export function SearchField({ 49 + label, 50 + description, 51 + errorMessage, 52 + style, 53 + size, 54 + prefix = defaultPrefix, 55 + suffix, 56 + placeholder, 57 + ...props 58 + }: SearchFieldProps) { 59 + const inputRef = useRef<HTMLInputElement>(null); 60 + const inputStyles = useInputStyles({ size }); 61 + 62 + return ( 63 + <AriaSearchField {...props} {...stylex.props(inputStyles.field, style)}> 64 + {({ isEmpty }) => { 65 + return ( 66 + <> 67 + {label != null && <Label size={size}>{label}</Label>} 68 + {/* 69 + This onClick is specifically for mouse users not clicking directly on the input. 70 + A keyboard user would not encounter the same issue. 71 + */} 72 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 73 + <div 74 + {...stylex.props(inputStyles.wrapper, styles.wrapper)} 75 + onClick={() => inputRef.current?.focus()} 76 + > 77 + {prefix != null && ( 78 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 79 + )} 80 + <Input 81 + placeholder={placeholder} 82 + ref={inputRef} 83 + {...stylex.props( 84 + inputStyles.input, 85 + !isEmpty && styles.clearButtonPadding, 86 + )} 87 + /> 88 + {suffix != null && ( 89 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 90 + )} 91 + {!isEmpty && ( 92 + <div {...stylex.props(inputStyles.addon, styles.clearButton)}> 93 + <IconButton 94 + label="Clear search" 95 + size="sm" 96 + variant="secondary" 97 + > 98 + <X /> 99 + </IconButton> 100 + </div> 101 + )} 102 + </div> 103 + {description && ( 104 + <Description size={size}>{description}</Description> 105 + )} 106 + <FieldError>{errorMessage}</FieldError> 107 + </> 108 + ); 109 + }} 110 + </AriaSearchField> 111 + ); 112 + }
+134
apps/docs/src/components/select/index.tsx
··· 1 + import type { ValidationResult } from "react-aria-components"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { ChevronDown } from "lucide-react"; 5 + import { use } from "react"; 6 + import { 7 + SelectProps as AriaSelectProps, 8 + Button, 9 + Popover, 10 + SelectValue, 11 + PopoverProps, 12 + Select as AriaSelect, 13 + FieldError, 14 + } from "react-aria-components"; 15 + 16 + import { SizeContext } from "../context"; 17 + import { Description, Label } from "../label"; 18 + import { ListBox } from "../listbox"; 19 + import { useInputStyles } from "../theme/useInputStyles"; 20 + import { usePopoverStyles } from "../theme/usePopoverStyles"; 21 + import { Size } from "../types"; 22 + 23 + const styles = stylex.create({ 24 + matchWidth: { 25 + width: "var(--trigger-width)", 26 + }, 27 + }); 28 + 29 + export interface SelectProps<T extends object, M extends "single" | "multiple"> 30 + extends Omit<AriaSelectProps<T, M>, "children" | "style" | "className">, 31 + Pick< 32 + PopoverProps, 33 + | "shouldCloseOnInteractOutside" 34 + | "shouldFlip" 35 + | "shouldUpdatePosition" 36 + | "placement" 37 + > { 38 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 39 + label?: string; 40 + description?: string; 41 + errorMessage?: string | ((validation: ValidationResult) => string); 42 + items?: Iterable<T>; 43 + children: React.ReactNode | ((item: T) => React.ReactNode); 44 + size?: Size; 45 + placeholder?: string; 46 + prefix?: React.ReactNode; 47 + suffix?: React.ReactNode; 48 + } 49 + 50 + export function Select< 51 + T extends object, 52 + M extends "single" | "multiple" = "single", 53 + >({ 54 + label, 55 + description, 56 + errorMessage, 57 + children, 58 + items, 59 + style, 60 + size: sizeProp, 61 + shouldCloseOnInteractOutside, 62 + shouldFlip, 63 + shouldUpdatePosition, 64 + placement, 65 + placeholder = "Select an option", 66 + prefix, 67 + suffix, 68 + ...props 69 + }: SelectProps<T, M>) { 70 + const size = sizeProp || use(SizeContext); 71 + const inputStyles = useInputStyles({ size }); 72 + const popoverStyles = usePopoverStyles(); 73 + 74 + return ( 75 + <SizeContext value={size}> 76 + <AriaSelect 77 + {...props} 78 + {...stylex.props(inputStyles.field, style)} 79 + placeholder={placeholder} 80 + > 81 + {label && <Label size={size}>{label}</Label>} 82 + <Button {...stylex.props(inputStyles.wrapper)}> 83 + {prefix != null && ( 84 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 85 + )} 86 + <SelectValue {...stylex.props(inputStyles.input)}> 87 + {({ selectedText, isPlaceholder, defaultChildren }) => { 88 + if (isPlaceholder) return placeholder; 89 + if (selectedText) return selectedText; 90 + 91 + return defaultChildren; 92 + }} 93 + </SelectValue> 94 + {suffix != null && ( 95 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 96 + )} 97 + <div {...stylex.props(inputStyles.addon)}> 98 + <ChevronDown size={16} aria-hidden="true" /> 99 + </div> 100 + </Button> 101 + {description && <Description size={size}>{description}</Description>} 102 + <FieldError>{errorMessage}</FieldError> 103 + <Popover 104 + containerPadding={8} 105 + shouldCloseOnInteractOutside={shouldCloseOnInteractOutside} 106 + shouldFlip={shouldFlip} 107 + shouldUpdatePosition={shouldUpdatePosition} 108 + placement={placement} 109 + > 110 + <ListBox 111 + items={items} 112 + {...stylex.props(popoverStyles, styles.matchWidth)} 113 + > 114 + {children} 115 + </ListBox> 116 + </Popover> 117 + </AriaSelect> 118 + </SizeContext> 119 + ); 120 + } 121 + 122 + export type { 123 + ListBoxItemProps as SelectItemProps, 124 + ListBoxSectionProps as SelectSectionProps, 125 + ListBoxSectionHeaderProps as SelectSectionHeaderProps, 126 + ListBoxSeparatorProps as SelectSeparatorProps, 127 + } from "../listbox"; 128 + 129 + export { 130 + ListBoxItem as SelectItem, 131 + ListBoxSection as SelectSection, 132 + ListBoxSectionHeader as SelectSectionHeader, 133 + ListBoxSeparator as SelectSeparator, 134 + } from "../listbox";
+34
apps/docs/src/components/separator/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { 3 + SeparatorProps as AriaSeparatorProps, 4 + Separator as AriaSeparator, 5 + } from "react-aria-components"; 6 + 7 + import { slate } from "../theme/colors.stylex"; 8 + 9 + const styles = stylex.create({ 10 + separator: { 11 + backgroundColor: slate.border2, 12 + borderWidth: 0, 13 + height: { 14 + default: "1px", 15 + ":is([aria-orientation=vertical])": "100%", 16 + }, 17 + margin: 0, 18 + width: { 19 + default: "100%", 20 + ":is([aria-orientation=vertical])": "1px", 21 + }, 22 + }, 23 + }); 24 + 25 + export interface SeparatorProps 26 + extends Omit<AriaSeparatorProps, "style" | "className"> { 27 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 28 + } 29 + 30 + export function Separator({ style, ...props }: SeparatorProps) { 31 + return ( 32 + <AriaSeparator {...props} {...stylex.props(styles.separator, style)} /> 33 + ); 34 + }
+167
apps/docs/src/components/text-area/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use, useRef } from "react"; 3 + import { 4 + TextArea as AriaTextArea, 5 + TextAreaProps as AriaTextAreaProps, 6 + InputProps, 7 + TextFieldProps, 8 + ValidationResult, 9 + FieldError, 10 + TextField as AriaTextField, 11 + } from "react-aria-components"; 12 + 13 + import { SizeContext } from "../context"; 14 + import { Description, Label } from "../label"; 15 + import { slate } from "../theme/colors.stylex"; 16 + import { radius } from "../theme/radius.stylex"; 17 + import { gray } from "../theme/semantic-color.stylex"; 18 + import { spacing } from "../theme/spacing.stylex"; 19 + import { lineHeight, fontSize, fontFamily } from "../theme/typography.stylex"; 20 + import { Size } from "../types"; 21 + 22 + const styles = stylex.create({ 23 + wrapper: { 24 + display: "flex", 25 + flexDirection: "column", 26 + gap: spacing["2"], 27 + }, 28 + addon: { 29 + color: gray.textDim, 30 + flexShrink: 0, 31 + height: "100%", 32 + minWidth: spacing["8"], 33 + paddingLeft: { ":first-child": spacing["0.5"] }, 34 + paddingRight: { 35 + ":last-child": spacing["2"], 36 + ":last-child:has(svg)": spacing["0.5"], 37 + }, 38 + 39 + alignItems: "center", 40 + display: "flex", 41 + gap: spacing["0.5"], 42 + justifyContent: "center", 43 + 44 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 45 + ":is(*) svg": { 46 + flexShrink: 0, 47 + height: spacing["4"], 48 + pointerEvents: "none", 49 + width: spacing["4"], 50 + }, 51 + }, 52 + inputWrapper: { 53 + borderRadius: radius["md"], 54 + boxSizing: "border-box", 55 + display: "flex", 56 + 57 + borderColor: { 58 + default: slate.border2, 59 + ":hover": slate.border3, 60 + ":focus": slate.solid1, 61 + }, 62 + borderStyle: "solid", 63 + borderWidth: 1, 64 + }, 65 + input: { 66 + backgroundColor: "transparent", 67 + borderWidth: 0, 68 + boxSizing: "border-box", 69 + color: { 70 + "::placeholder": slate.text1, 71 + }, 72 + flexGrow: 1, 73 + fontFamily: fontFamily["sans"], 74 + outline: "none", 75 + }, 76 + smInput: { 77 + fontSize: fontSize["xs"], 78 + lineHeight: lineHeight["xs"], 79 + minHeight: spacing["6"], 80 + paddingBottom: spacing["1"], 81 + paddingLeft: { ":first-child": spacing["1"] }, 82 + paddingRight: spacing["1"], 83 + paddingTop: spacing["1"], 84 + }, 85 + mdInput: { 86 + fontSize: fontSize["sm"], 87 + lineHeight: lineHeight["sm"], 88 + minHeight: spacing["8"], 89 + paddingBottom: spacing["2"], 90 + paddingLeft: { ":first-child": spacing["2"] }, 91 + paddingRight: spacing["2"], 92 + paddingTop: spacing["2"], 93 + }, 94 + lgInput: { 95 + fontSize: fontSize["base"], 96 + lineHeight: lineHeight["base"], 97 + minHeight: spacing["10"], 98 + paddingBottom: spacing["3"], 99 + paddingLeft: spacing["3"], 100 + paddingRight: spacing["3"], 101 + paddingTop: spacing["3"], 102 + }, 103 + description: { 104 + color: gray.textDim, 105 + fontSize: fontSize["sm"], 106 + lineHeight: lineHeight["sm"], 107 + }, 108 + descriptionSm: { 109 + fontSize: fontSize["xs"], 110 + lineHeight: lineHeight["xs"], 111 + }, 112 + }); 113 + 114 + export interface TextAreaProps 115 + extends Omit<TextFieldProps, "style" | "className">, 116 + Pick<AriaTextAreaProps, "rows">, 117 + Pick<InputProps, "placeholder"> { 118 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 119 + label?: React.ReactNode; 120 + description?: string; 121 + errorMessage?: string | ((validation: ValidationResult) => string); 122 + size?: Size; 123 + prefix?: React.ReactNode; 124 + suffix?: React.ReactNode; 125 + } 126 + 127 + export function TextArea({ 128 + label, 129 + description, 130 + errorMessage, 131 + style, 132 + size: sizeProp, 133 + prefix, 134 + suffix, 135 + placeholder, 136 + rows, 137 + ...props 138 + }: TextAreaProps) { 139 + const textAreaRef = useRef<HTMLTextAreaElement>(null); 140 + const size = sizeProp || use(SizeContext); 141 + 142 + return ( 143 + <AriaTextField {...props} {...stylex.props(styles.wrapper, style)}> 144 + {label != null && <Label size={size}>{label}</Label>} 145 + {/* 146 + This onClick is specifically for mouse users not clicking directly on the input. 147 + A keyboard user would not encounter the same issue. 148 + */} 149 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 150 + <div 151 + {...stylex.props(styles.inputWrapper, gray.bgUi, gray.text)} 152 + onClick={() => textAreaRef.current?.focus()} 153 + > 154 + {prefix != null && <div {...stylex.props(styles.addon)}>{prefix}</div>} 155 + <AriaTextArea 156 + {...stylex.props(styles.input, styles[`${size}Input`])} 157 + ref={textAreaRef} 158 + placeholder={placeholder} 159 + rows={rows} 160 + /> 161 + {suffix != null && <div {...stylex.props(styles.addon)}>{suffix}</div>} 162 + </div> 163 + {description && <Description size={size}>{description}</Description>} 164 + <FieldError>{errorMessage}</FieldError> 165 + </AriaTextField> 166 + ); 167 + }
+117
apps/docs/src/components/text-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { Eye, EyeOff } from "lucide-react"; 3 + import { useRef, useState, use } from "react"; 4 + import { 5 + TextFieldProps as AriaTextFieldProps, 6 + InputContext, 7 + InputProps, 8 + ValidationResult, 9 + FieldError, 10 + Input, 11 + TextField as AriaTextField, 12 + } from "react-aria-components"; 13 + 14 + import { IconButton } from "../icon-button"; 15 + import { Description, Label } from "../label"; 16 + import { useInputStyles } from "../theme/useInputStyles"; 17 + import { Size } from "../types"; 18 + 19 + function PasswordToggle({ 20 + type, 21 + setType, 22 + style, 23 + }: { 24 + type: TextFieldProps["type"]; 25 + setType: (type: TextFieldProps["type"]) => void; 26 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 27 + }) { 28 + const state = use(InputContext); 29 + 30 + if (!state || !("value" in state) || !state.value) return null; 31 + 32 + return ( 33 + <div {...stylex.props(style)}> 34 + <IconButton 35 + size="sm" 36 + variant="tertiary" 37 + label="Toggle password visibility" 38 + onPress={() => { 39 + setType(type === "password" ? "text" : "password"); 40 + }} 41 + > 42 + {type === "password" ? <EyeOff /> : <Eye />} 43 + </IconButton> 44 + </div> 45 + ); 46 + } 47 + 48 + export interface TextFieldProps 49 + extends Omit<AriaTextFieldProps, "style" | "className">, 50 + Pick<InputProps, "placeholder"> { 51 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 52 + label?: React.ReactNode; 53 + description?: string; 54 + errorMessage?: string | ((validation: ValidationResult) => string); 55 + size?: Size; 56 + prefix?: React.ReactNode; 57 + suffix?: React.ReactNode; 58 + } 59 + 60 + export function TextField({ 61 + label, 62 + description, 63 + errorMessage, 64 + style, 65 + size, 66 + prefix, 67 + suffix, 68 + placeholder, 69 + ...props 70 + }: TextFieldProps) { 71 + const inputRef = useRef<HTMLInputElement>(null); 72 + const [type, setType] = useState<TextFieldProps["type"]>( 73 + props.type || "text", 74 + ); 75 + const isPasswordInput = props.type === "password"; 76 + const inputStyles = useInputStyles({ size }); 77 + 78 + return ( 79 + <AriaTextField 80 + {...props} 81 + type={type} 82 + {...stylex.props(inputStyles.field, style)} 83 + > 84 + {label != null && <Label size={size}>{label}</Label>} 85 + {/* 86 + This onClick is specifically for mouse users not clicking directly on the input. 87 + A keyboard user would not encounter the same issue. 88 + */} 89 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 90 + <div 91 + {...stylex.props(inputStyles.wrapper)} 92 + onClick={() => inputRef.current?.focus()} 93 + > 94 + {prefix != null && ( 95 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 96 + )} 97 + <Input 98 + {...stylex.props(inputStyles.input)} 99 + ref={inputRef} 100 + placeholder={placeholder} 101 + /> 102 + {suffix != null && ( 103 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 104 + )} 105 + {isPasswordInput && ( 106 + <PasswordToggle 107 + type={type} 108 + setType={setType} 109 + style={inputStyles.addon} 110 + /> 111 + )} 112 + </div> 113 + {description && <Description size={size}>{description}</Description>} 114 + <FieldError>{errorMessage}</FieldError> 115 + </AriaTextField> 116 + ); 117 + }
+24
apps/docs/src/components/theme/animations.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + const fadeIn = stylex.keyframes({ 4 + from: { 5 + opacity: 0, 6 + }, 7 + to: { 8 + opacity: 1, 9 + }, 10 + }); 11 + 12 + const zoomIn = stylex.keyframes({ 13 + from: { 14 + transform: "scale(0.8)", 15 + }, 16 + to: { 17 + transform: "scale(1)", 18 + }, 19 + }); 20 + 21 + export const animations = stylex.defineVars({ 22 + fadeIn, 23 + zoomIn, 24 + });
+10
apps/docs/src/components/theme/breakpoints.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + // eslint-disable-next-line @stylexjs/enforce-extension 4 + export const breakpoints = stylex.defineConsts({ 5 + sm: "@media (min-width: 40rem)", 6 + md: "@media (min-width: 48rem)", 7 + lg: "@media (min-width: 64rem)", 8 + xl: "@media (min-width: 80rem)", 9 + "2xl": "@media (min-width: 96rem)", 10 + });
+478
apps/docs/src/components/theme/colors.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + export const slateLight = stylex.defineVars({ 4 + bg1: stylex.types.color("#fcfcfd"), 5 + bg2: stylex.types.color("#f9f9fb"), 6 + component1: stylex.types.color("#f0f0f3"), 7 + component2: stylex.types.color("#e8e8ec"), 8 + component3: stylex.types.color("#e0e1e6"), 9 + border1: stylex.types.color("#d9d9e0"), 10 + border2: stylex.types.color("#cdced6"), 11 + border3: stylex.types.color("#b9bbc6"), 12 + solid1: stylex.types.color("#8b8d98"), 13 + solid2: stylex.types.color("#80838d"), 14 + text1: stylex.types.color("#60646c"), 15 + text2: stylex.types.color("#1c2024"), 16 + }); 17 + 18 + export const slateLightP3 = stylex.defineVars({ 19 + bg1: stylex.types.color("color(display-p3 0.988 0.988 0.992)"), 20 + bg2: stylex.types.color("color(display-p3 0.976 0.976 0.984)"), 21 + component1: stylex.types.color("color(display-p3 0.94 0.941 0.953)"), 22 + component2: stylex.types.color("color(display-p3 0.908 0.909 0.925)"), 23 + component3: stylex.types.color("color(display-p3 0.88 0.881 0.901)"), 24 + border1: stylex.types.color("color(display-p3 0.85 0.852 0.876)"), 25 + border2: stylex.types.color("color(display-p3 0.805 0.808 0.838)"), 26 + border3: stylex.types.color("color(display-p3 0.727 0.733 0.773)"), 27 + solid1: stylex.types.color("color(display-p3 0.547 0.553 0.592)"), 28 + solid2: stylex.types.color("color(display-p3 0.503 0.512 0.549)"), 29 + text1: stylex.types.color("color(display-p3 0.379 0.392 0.421)"), 30 + text2: stylex.types.color("color(display-p3 0.113 0.125 0.14)"), 31 + }); 32 + 33 + export const slateDark = stylex.defineVars({ 34 + bg1: stylex.types.color("#111113"), 35 + bg2: stylex.types.color("#18191b"), 36 + component1: stylex.types.color("#212225"), 37 + component2: stylex.types.color("#272a2d"), 38 + component3: stylex.types.color("#2e3135"), 39 + border1: stylex.types.color("#363a3f"), 40 + border2: stylex.types.color("#43484e"), 41 + border3: stylex.types.color("#5a6169"), 42 + solid1: stylex.types.color("#696e77"), 43 + solid2: stylex.types.color("#777b84"), 44 + text1: stylex.types.color("#b0b4ba"), 45 + text2: stylex.types.color("#edeef0"), 46 + }); 47 + 48 + export const slateDarkP3 = stylex.defineVars({ 49 + bg1: stylex.types.color("color(display-p3 0.067 0.067 0.074)"), 50 + bg2: stylex.types.color("color(display-p3 0.095 0.098 0.105)"), 51 + component1: stylex.types.color("color(display-p3 0.13 0.135 0.145)"), 52 + component2: stylex.types.color("color(display-p3 0.156 0.163 0.176)"), 53 + component3: stylex.types.color("color(display-p3 0.183 0.191 0.206)"), 54 + border1: stylex.types.color("color(display-p3 0.215 0.226 0.244)"), 55 + border2: stylex.types.color("color(display-p3 0.265 0.28 0.302)"), 56 + border3: stylex.types.color("color(display-p3 0.357 0.381 0.409)"), 57 + solid1: stylex.types.color("color(display-p3 0.415 0.431 0.463)"), 58 + solid2: stylex.types.color("color(display-p3 0.469 0.483 0.514)"), 59 + text1: stylex.types.color("color(display-p3 0.692 0.704 0.728)"), 60 + text2: stylex.types.color("color(display-p3 0.93 0.933 0.94)"), 61 + }); 62 + 63 + export const slate = stylex.defineVars({ 64 + bg1: { 65 + default: `light-dark(${slateLight.bg1}, ${slateDark.bg1})`, 66 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.bg1}, ${slateDarkP3.bg1})`, 67 + }, 68 + bg2: { 69 + default: `light-dark(${slateLight.bg2}, ${slateDark.bg2})`, 70 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.bg2}, ${slateDarkP3.bg2})`, 71 + }, 72 + component1: { 73 + default: `light-dark(${slateLight.component1}, ${slateDark.component1})`, 74 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.component1}, ${slateDarkP3.component1})`, 75 + }, 76 + component2: { 77 + default: `light-dark(${slateLight.component2}, ${slateDark.component2})`, 78 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.component2}, ${slateDarkP3.component2})`, 79 + }, 80 + component3: { 81 + default: `light-dark(${slateLight.component3}, ${slateDark.component3})`, 82 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.component3}, ${slateDarkP3.component3})`, 83 + }, 84 + border1: { 85 + default: `light-dark(${slateLight.border1}, ${slateDark.border1})`, 86 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.border1}, ${slateDarkP3.border1})`, 87 + }, 88 + border2: { 89 + default: `light-dark(${slateLight.border2}, ${slateDark.border2})`, 90 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.border2}, ${slateDarkP3.border2})`, 91 + }, 92 + border3: { 93 + default: `light-dark(${slateLight.border3}, ${slateDark.border3})`, 94 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.border3}, ${slateDarkP3.border3})`, 95 + }, 96 + solid1: { 97 + default: `light-dark(${slateLight.solid1}, ${slateDark.solid1})`, 98 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.solid1}, ${slateDarkP3.solid1})`, 99 + }, 100 + solid2: { 101 + default: `light-dark(${slateLight.solid2}, ${slateDark.solid2})`, 102 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.solid2}, ${slateDarkP3.solid2})`, 103 + }, 104 + text1: { 105 + default: `light-dark(${slateLight.text1}, ${slateDark.text1})`, 106 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.text1}, ${slateDarkP3.text1})`, 107 + }, 108 + text2: { 109 + default: `light-dark(${slateLight.text2}, ${slateDark.text2})`, 110 + "@media (color-gamut: p3)": `light-dark(${slateLightP3.text2}, ${slateDarkP3.text2})`, 111 + }, 112 + }); 113 + 114 + export const slateInverted = stylex.defineVars({ 115 + bg1: { 116 + default: `light-dark(${slateDark.bg1}, ${slateLight.bg1})`, 117 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.bg1}, ${slateLightP3.bg1})`, 118 + }, 119 + bg2: { 120 + default: `light-dark(${slateDark.bg2}, ${slateLight.bg2})`, 121 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.bg2}, ${slateLightP3.bg2})`, 122 + }, 123 + component1: { 124 + default: `light-dark(${slateDark.component1}, ${slateLight["component1"]})`, 125 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.component1}, ${slateLightP3.component1})`, 126 + }, 127 + component2: { 128 + default: `light-dark(${slateDark.component2}, ${slateLight["component2"]})`, 129 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.component2}, ${slateLightP3.component2})`, 130 + }, 131 + component3: { 132 + default: `light-dark(${slateDark.component3}, ${slateLight["component3"]})`, 133 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.component3}, ${slateLightP3.component3})`, 134 + }, 135 + border1: { 136 + default: `light-dark(${slateDark.border1}, ${slateLight.border1})`, 137 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.border1}, ${slateLightP3.border1})`, 138 + }, 139 + border2: { 140 + default: `light-dark(${slateDark.border2}, ${slateLight.border2})`, 141 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.border2}, ${slateLightP3.border2})`, 142 + }, 143 + border3: { 144 + default: `light-dark(${slateDark.border3}, ${slateLight.border3})`, 145 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.border3}, ${slateLightP3.border3})`, 146 + }, 147 + solid1: { 148 + default: `light-dark(${slateDark.solid1}, ${slateLight.solid1})`, 149 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.solid1}, ${slateLightP3.solid1})`, 150 + }, 151 + solid2: { 152 + default: `light-dark(${slateDark.solid2}, ${slateLight.solid2})`, 153 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.solid2}, ${slateLightP3.solid2})`, 154 + }, 155 + text1: { 156 + default: `light-dark(${slateDark.text1}, ${slateLight.text1})`, 157 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.text1}, ${slateLightP3.text1})`, 158 + }, 159 + text2: { 160 + default: `light-dark(${slateDark.text2}, ${slateLight.text2})`, 161 + "@media (color-gamut: p3)": `light-dark(${slateDarkP3.text2}, ${slateLightP3.text2})`, 162 + }, 163 + }); 164 + 165 + export const plum = stylex.defineVars({ 166 + bg1: { 167 + default: "light-dark(#fefcff, #181118)", 168 + "@media (color-gamut: p3)": 169 + "light-dark(color(display-p3 0.995 0.988 0.999), color(display-p3 0.09 0.068 0.092))", 170 + }, 171 + bg2: { 172 + default: "light-dark(#fdf7fd, #201320)", 173 + "@media (color-gamut: p3)": 174 + "light-dark(color(display-p3 0.988 0.971 0.99), color(display-p3 0.118 0.077 0.121))", 175 + }, 176 + component1: { 177 + default: "light-dark(#fbebfb, #351a35)", 178 + "@media (color-gamut: p3)": 179 + "light-dark(color(display-p3 0.973 0.923 0.98), color(display-p3 0.192 0.105 0.202))", 180 + }, 181 + component2: { 182 + default: "light-dark(#f7def8, #451d47)", 183 + "@media (color-gamut: p3)": 184 + "light-dark(color(display-p3 0.953 0.875 0.966), color(display-p3 0.25 0.121 0.271))", 185 + }, 186 + component3: { 187 + default: "light-dark(#f2d1f3, #512454)", 188 + "@media (color-gamut: p3)": 189 + "light-dark(color(display-p3 0.926 0.825 0.945), color(display-p3 0.293 0.152 0.319))", 190 + }, 191 + border1: { 192 + default: "light-dark(#e9c2ec, #5e3061)", 193 + "@media (color-gamut: p3)": 194 + "light-dark(color(display-p3 0.89 0.765 0.916), color(display-p3 0.343 0.198 0.372))", 195 + }, 196 + border2: { 197 + default: "light-dark(#deade3, #734079)", 198 + "@media (color-gamut: p3)": 199 + "light-dark(color(display-p3 0.84 0.686 0.877), color(display-p3 0.424 0.262 0.461))", 200 + }, 201 + border3: { 202 + default: "light-dark(#cf91d8, #92549c)", 203 + "@media (color-gamut: p3)": 204 + "light-dark(color(display-p3 0.775 0.58 0.832), color(display-p3 0.54 0.341 0.595))", 205 + }, 206 + solid1: { 207 + default: "light-dark(#ab4aba, #ab4aba)", 208 + "@media (color-gamut: p3)": 209 + "light-dark(color(display-p3 0.624 0.313 0.708), color(display-p3 0.624 0.313 0.708))", 210 + }, 211 + solid2: { 212 + default: "light-dark(#a144af, #b658c4)", 213 + "@media (color-gamut: p3)": 214 + "light-dark(color(display-p3 0.587 0.29 0.667), color(display-p3 0.666 0.365 0.748))", 215 + }, 216 + text1: { 217 + default: "light-dark(#953ea3, #e796f3)", 218 + "@media (color-gamut: p3)": 219 + "light-dark(color(display-p3 0.543 0.263 0.619), color(display-p3 0.86 0.602 0.933))", 220 + }, 221 + text2: { 222 + default: "light-dark(#53195d, #f4d4f4)", 223 + "@media (color-gamut: p3)": 224 + "light-dark(color(display-p3 0.299 0.114 0.352), color(display-p3 0.936 0.836 0.949))", 225 + }, 226 + }); 227 + 228 + export const blue = stylex.defineVars({ 229 + bg1: { 230 + default: "light-dark(#fbfdff, #0d1520)", 231 + "@media (color-gamut: p3)": 232 + "light-dark(color(display-p3 0.986 0.992 0.999), color(display-p3 0.057 0.081 0.122))", 233 + }, 234 + bg2: { 235 + default: "light-dark(#f4faff, #111927)", 236 + "@media (color-gamut: p3)": 237 + "light-dark(color(display-p3 0.96 0.979 0.998), color(display-p3 0.072 0.098 0.147))", 238 + }, 239 + component1: { 240 + default: "light-dark(#e6f4fe, #0d2847)", 241 + "@media (color-gamut: p3)": 242 + "light-dark(color(display-p3 0.912 0.956 0.991), color(display-p3 0.078 0.154 0.27))", 243 + }, 244 + component2: { 245 + default: "light-dark(#d5efff, #003362)", 246 + "@media (color-gamut: p3)": 247 + "light-dark(color(display-p3 0.853 0.932 1), color(display-p3 0.033 0.197 0.37))", 248 + }, 249 + component3: { 250 + default: "light-dark(#c2e5ff, #004074)", 251 + "@media (color-gamut: p3)": 252 + "light-dark(color(display-p3 0.788 0.894 0.998), color(display-p3 0.08 0.245 0.441))", 253 + }, 254 + border1: { 255 + default: "light-dark(#acd8fc, #104d87)", 256 + "@media (color-gamut: p3)": 257 + "light-dark(color(display-p3 0.709 0.843 0.976), color(display-p3 0.14 0.298 0.511))", 258 + }, 259 + border2: { 260 + default: "light-dark(#8ec8f6, #205d9e)", 261 + "@media (color-gamut: p3)": 262 + "light-dark(color(display-p3 0.606 0.777 0.947), color(display-p3 0.195 0.361 0.6))", 263 + }, 264 + border3: { 265 + default: "light-dark(#5eb1ef, #2870bd)", 266 + "@media (color-gamut: p3)": 267 + "light-dark(color(display-p3 0.451 0.688 0.917), color(display-p3 0.239 0.434 0.72))", 268 + }, 269 + solid1: { 270 + default: "light-dark(#0090ff, #0090ff)", 271 + "@media (color-gamut: p3)": 272 + "light-dark(color(display-p3 0.247 0.556 0.969), color(display-p3 0.247 0.556 0.969))", 273 + }, 274 + solid2: { 275 + default: "light-dark(#0588f0, #3b9eff)", 276 + "@media (color-gamut: p3)": 277 + "light-dark(color(display-p3 0.234 0.523 0.912), color(display-p3 0.344 0.612 0.973))", 278 + }, 279 + text1: { 280 + default: "light-dark(#0d74ce, #70b8ff)", 281 + "@media (color-gamut: p3)": 282 + "light-dark(color(display-p3 0.15 0.44 0.84), color(display-p3 0.49 0.72 1))", 283 + }, 284 + text2: { 285 + default: "light-dark(#113264, #c2e6ff)", 286 + "@media (color-gamut: p3)": 287 + "light-dark(color(display-p3 0.102 0.193 0.379), color(display-p3 0.788 0.898 0.99))", 288 + }, 289 + }); 290 + 291 + export const red = stylex.defineVars({ 292 + bg1: { 293 + default: "light-dark(#fffcfc, #191111)", 294 + "@media (color-gamut: p3)": 295 + "light-dark(color(display-p3 0.998 0.989 0.988), color(display-p3 0.093 0.068 0.067))", 296 + }, 297 + bg2: { 298 + default: "light-dark(#fff7f7, #201314)", 299 + "@media (color-gamut: p3)": 300 + "light-dark(color(display-p3 0.995 0.971 0.971), color(display-p3 0.118 0.077 0.079))", 301 + }, 302 + component1: { 303 + default: "light-dark(#feebec, #3b1219)", 304 + "@media (color-gamut: p3)": 305 + "light-dark(color(display-p3 0.985 0.925 0.925), color(display-p3 0.211 0.081 0.099))", 306 + }, 307 + component2: { 308 + default: "light-dark(#ffdbdc, #500f1c)", 309 + "@media (color-gamut: p3)": 310 + "light-dark(color(display-p3 0.999 0.866 0.866), color(display-p3 0.287 0.079 0.113))", 311 + }, 312 + component3: { 313 + default: "light-dark(#ffcdce, #611623)", 314 + "@media (color-gamut: p3)": 315 + "light-dark(color(display-p3 0.984 0.812 0.811), color(display-p3 0.348 0.11 0.142))", 316 + }, 317 + border1: { 318 + default: "light-dark(#fdbdbe, #72232d)", 319 + "@media (color-gamut: p3)": 320 + "light-dark(color(display-p3 0.955 0.751 0.749), color(display-p3 0.414 0.16 0.183))", 321 + }, 322 + border2: { 323 + default: "light-dark(#f4a9aa, #8c333a)", 324 + "@media (color-gamut: p3)": 325 + "light-dark(color(display-p3 0.915 0.675 0.672), color(display-p3 0.508 0.224 0.236))", 326 + }, 327 + border3: { 328 + default: "light-dark(#eb8e90, #b54548)", 329 + "@media (color-gamut: p3)": 330 + "light-dark(color(display-p3 0.872 0.575 0.572), color(display-p3 0.659 0.298 0.297))", 331 + }, 332 + solid1: { 333 + default: "light-dark(#e5484d, #e5484d)", 334 + "@media (color-gamut: p3)": 335 + "light-dark(color(display-p3 0.83 0.329 0.324), color(display-p3 0.83 0.329 0.324))", 336 + }, 337 + solid2: { 338 + default: "light-dark(#dc3e42, #ec5d5e)", 339 + "@media (color-gamut: p3)": 340 + "light-dark(color(display-p3 0.798 0.294 0.285), color(display-p3 0.861 0.403 0.387))", 341 + }, 342 + text1: { 343 + default: "light-dark(#ce2c31, #ff9592)", 344 + "@media (color-gamut: p3)": 345 + "light-dark(color(display-p3 0.744 0.234 0.222), color(display-p3 1 0.57 0.55))", 346 + }, 347 + text2: { 348 + default: "light-dark(#641723, #ffd1d9)", 349 + "@media (color-gamut: p3)": 350 + "light-dark(color(display-p3 0.36 0.115 0.143), color(display-p3 0.971 0.826 0.852))", 351 + }, 352 + }); 353 + 354 + export const yellow = stylex.defineVars({ 355 + bg1: { 356 + default: "light-dark(#fdfdf9, #14120b)", 357 + "@media (color-gamut: p3)": 358 + "light-dark(color(display-p3 0.992 0.992 0.978), color(display-p3 0.078 0.069 0.047))", 359 + }, 360 + bg2: { 361 + default: "light-dark(#fefce9, #1b180f)", 362 + "@media (color-gamut: p3)": 363 + "light-dark(color(display-p3 0.995 0.99 0.922), color(display-p3 0.103 0.094 0.063))", 364 + }, 365 + component1: { 366 + default: "light-dark(#fffab8, #2d2305)", 367 + "@media (color-gamut: p3)": 368 + "light-dark(color(display-p3 0.997 0.982 0.749), color(display-p3 0.168 0.137 0.039))", 369 + }, 370 + component2: { 371 + default: "light-dark(#fff394, #362b00)", 372 + "@media (color-gamut: p3)": 373 + "light-dark(color(display-p3 0.992 0.953 0.627), color(display-p3 0.209 0.169 0))", 374 + }, 375 + component3: { 376 + default: "light-dark(#ffe770, #433500)", 377 + "@media (color-gamut: p3)": 378 + "light-dark(color(display-p3 0.984 0.91 0.51), color(display-p3 0.255 0.209 0))", 379 + }, 380 + border1: { 381 + default: "light-dark(#f3d768, #524202)", 382 + "@media (color-gamut: p3)": 383 + "light-dark(color(display-p3 0.934 0.847 0.474), color(display-p3 0.31 0.261 0.07))", 384 + }, 385 + border2: { 386 + default: "light-dark(#e4c767, #665417)", 387 + "@media (color-gamut: p3)": 388 + "light-dark(color(display-p3 0.876 0.785 0.46), color(display-p3 0.389 0.331 0.135))", 389 + }, 390 + border3: { 391 + default: "light-dark(#d5ae39, #836a21)", 392 + "@media (color-gamut: p3)": 393 + "light-dark(color(display-p3 0.811 0.689 0.313), color(display-p3 0.497 0.42 0.182))", 394 + }, 395 + solid1: { 396 + default: "light-dark(#ffe629, #ffe629)", 397 + "@media (color-gamut: p3)": 398 + "light-dark(color(display-p3 1 0.92 0.22), color(display-p3 1 0.92 0.22))", 399 + }, 400 + solid2: { 401 + default: "light-dark(#ffdc00, #ffff57)", 402 + "@media (color-gamut: p3)": 403 + "light-dark(color(display-p3 0.977 0.868 0.291), color(display-p3 1 1 0.456))", 404 + }, 405 + text1: { 406 + default: "light-dark(#9e6c00, #f5e147)", 407 + "@media (color-gamut: p3)": 408 + "light-dark(color(display-p3 0.6 0.44 0), color(display-p3 0.948 0.885 0.392))", 409 + }, 410 + text2: { 411 + default: "light-dark(#473b1f, #f6eeb4)", 412 + "@media (color-gamut: p3)": 413 + "light-dark(color(display-p3 0.271 0.233 0.137), color(display-p3 0.959 0.934 0.731))", 414 + }, 415 + }); 416 + 417 + export const green = stylex.defineVars({ 418 + bg1: { 419 + default: "light-dark(#fbfefc, #0e1512)", 420 + "@media (color-gamut: p3)": 421 + "light-dark(color(display-p3 0.986 0.996 0.989), color(display-p3 0.062 0.083 0.071))", 422 + }, 423 + bg2: { 424 + default: "light-dark(#f4fbf6, #121b17)", 425 + "@media (color-gamut: p3)": 426 + "light-dark(color(display-p3 0.963 0.983 0.967), color(display-p3 0.079 0.106 0.09))", 427 + }, 428 + component1: { 429 + default: "light-dark(#e6f6eb, #132d21)", 430 + "@media (color-gamut: p3)": 431 + "light-dark(color(display-p3 0.913 0.964 0.925), color(display-p3 0.1 0.173 0.133))", 432 + }, 433 + component2: { 434 + default: "light-dark(#d6f1df, #113b29)", 435 + "@media (color-gamut: p3)": 436 + "light-dark(color(display-p3 0.859 0.94 0.879), color(display-p3 0.115 0.229 0.166))", 437 + }, 438 + component3: { 439 + default: "light-dark(#c4e8d1, #174933)", 440 + "@media (color-gamut: p3)": 441 + "light-dark(color(display-p3 0.796 0.907 0.826), color(display-p3 0.147 0.282 0.206))", 442 + }, 443 + border1: { 444 + default: "light-dark(#adddc0, #19573a)", 445 + "@media (color-gamut: p3)": 446 + "light-dark(color(display-p3 0.718 0.863 0.761), color(display-p3 0.185 0.338 0.25))", 447 + }, 448 + border2: { 449 + default: "light-dark(#8eceaa, #28684a)", 450 + "@media (color-gamut: p3)": 451 + "light-dark(color(display-p3 0.61 0.801 0.675), color(display-p3 0.227 0.403 0.298))", 452 + }, 453 + border3: { 454 + default: "light-dark(#5bb98b, #2f7c57)", 455 + "@media (color-gamut: p3)": 456 + "light-dark(color(display-p3 0.451 0.715 0.559), color(display-p3 0.27 0.479 0.351))", 457 + }, 458 + solid1: { 459 + default: "light-dark(#30a46c, #30a46c)", 460 + "@media (color-gamut: p3)": 461 + "light-dark(color(display-p3 0.332 0.634 0.442), color(display-p3 0.332 0.634 0.442))", 462 + }, 463 + solid2: { 464 + default: "light-dark(#2b9a66, #33b074)", 465 + "@media (color-gamut: p3)": 466 + "light-dark(color(display-p3 0.308 0.595 0.417), color(display-p3 0.357 0.682 0.474))", 467 + }, 468 + text1: { 469 + default: "light-dark(#218358, #3dd68c)", 470 + "@media (color-gamut: p3)": 471 + "light-dark(color(display-p3 0.19 0.5 0.32), color(display-p3 0.434 0.828 0.573))", 472 + }, 473 + text2: { 474 + default: "light-dark(#193b2d, #b1f1cb)", 475 + "@media (color-gamut: p3)": 476 + "light-dark(color(display-p3 0.132 0.228 0.18), color(display-p3 0.747 0.938 0.807))", 477 + }, 478 + });
+13
apps/docs/src/components/theme/radius.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + export const radius = stylex.defineVars({ 4 + xs: "0.125rem", 5 + sm: "0.25rem", 6 + md: "0.375rem", 7 + lg: "0.5rem", 8 + xl: "0.75rem", 9 + "2xl": "1rem", 10 + "3xl": "1.5rem", 11 + "4xl": "2rem", 12 + full: "calc(infinity * 1px)", 13 + });
+376
apps/docs/src/components/theme/semantic-color.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { slate, plum, red, yellow, green } from "./colors.stylex"; 4 + import { fontFamily } from "./typography.stylex"; 5 + 6 + // eslint-disable-next-line @stylexjs/enforce-extension 7 + export const gray = stylex.create({ 8 + bg: { backgroundColor: slate.bg1 }, 9 + bgSubtle: { backgroundColor: slate.bg2 }, 10 + bgDim: { backgroundColor: slate.component1 }, 11 + bgSecondary: { backgroundColor: slate.component2 }, 12 + bgActive: { backgroundColor: slate.component3 }, 13 + borderDim: { 14 + borderColor: slate.border1, 15 + borderStyle: "solid", 16 + borderWidth: 1, 17 + }, 18 + border: { 19 + borderColor: slate.border2, 20 + borderStyle: "solid", 21 + borderWidth: 1, 22 + }, 23 + borderInteractive: { 24 + borderColor: { 25 + default: slate.border2, 26 + ":hover": slate.border3, 27 + }, 28 + borderStyle: "solid", 29 + borderWidth: 1, 30 + 31 + transitionDuration: "100ms", 32 + transitionProperty: "background-color, border-color", 33 + transitionTimingFunction: "ease-in-out", 34 + }, 35 + bgSolid: { backgroundColor: slate.solid1 }, 36 + bgSolidDark: { backgroundColor: slate.solid2 }, 37 + textDim: { color: slate.text1, fontFamily: fontFamily["sans"] }, 38 + text: { color: slate.text2, fontFamily: fontFamily["sans"] }, 39 + textContrast: { color: "white" }, 40 + 41 + bgGhost: { 42 + backgroundColor: { 43 + default: "transparent", 44 + ":hover:not(:has(* button:hover)):not(:disabled)": slate.component2, 45 + ":is(:active,[data-pressed=true]):not(:disabled)": slate.component3, 46 + ":disabled": slate.component1, 47 + }, 48 + transitionDuration: "100ms", 49 + transitionProperty: "background-color, border-color", 50 + transitionTimingFunction: "ease-in-out", 51 + }, 52 + bgUi: { 53 + backgroundColor: { 54 + default: slate.component1, 55 + ":hover:not(:has(* button:hover)):not(:disabled)": slate.component2, 56 + ":active:not(:disabled)": slate.component3, 57 + ":disabled": slate.component1, 58 + }, 59 + transitionDuration: "100ms", 60 + transitionProperty: "background-color, border-color", 61 + transitionTimingFunction: "ease-in-out", 62 + }, 63 + bgAction: { 64 + backgroundColor: { 65 + default: slate.component2, 66 + ":hover:not(:has(* button:hover)):not(:disabled)": slate.component3, 67 + ":active:not(:disabled)": slate.component3, 68 + ":disabled": slate.component1, 69 + }, 70 + transitionDuration: "100ms", 71 + transitionProperty: "background-color, border-color", 72 + transitionTimingFunction: "ease-in-out", 73 + }, 74 + }); 75 + 76 + // eslint-disable-next-line @stylexjs/enforce-extension 77 + export const primary = stylex.create({ 78 + bg: { backgroundColor: plum.bg1 }, 79 + bgSubtle: { backgroundColor: plum.bg2 }, 80 + bgDim: { backgroundColor: plum.component1 }, 81 + bgSecondary: { backgroundColor: plum.component2 }, 82 + bgActive: { backgroundColor: plum.component3 }, 83 + borderDim: { 84 + borderColor: plum.border1, 85 + borderStyle: "solid", 86 + borderWidth: 1, 87 + }, 88 + border: { 89 + borderColor: plum.border2, 90 + borderStyle: "solid", 91 + borderWidth: 1, 92 + }, 93 + borderInteractive: { 94 + borderColor: { 95 + default: plum.border2, 96 + ":hover": plum.border3, 97 + }, 98 + borderStyle: "solid", 99 + borderWidth: 1, 100 + 101 + transitionDuration: "100ms", 102 + transitionProperty: "background-color, border-color", 103 + transitionTimingFunction: "ease-in-out", 104 + }, 105 + bgSolid: { backgroundColor: plum.solid1 }, 106 + bgSolidDark: { backgroundColor: plum.solid2 }, 107 + textDim: { color: plum.text1, fontFamily: fontFamily["sans"] }, 108 + text: { color: plum.text2, fontFamily: fontFamily["sans"] }, 109 + textContrast: { color: "white" }, 110 + 111 + bgGhost: { 112 + backgroundColor: { 113 + default: "transparent", 114 + ":hover:not(:has(* button:hover)):not(:disabled)": plum.component2, 115 + ":active:not(:disabled)": plum.component3, 116 + ":disabled": plum.component1, 117 + }, 118 + transitionDuration: "100ms", 119 + transitionProperty: "background-color, border-color", 120 + transitionTimingFunction: "ease-in-out", 121 + }, 122 + bgUi: { 123 + backgroundColor: { 124 + default: plum.component1, 125 + ":hover:not(:has(* button:hover)):not(:disabled)": plum.component2, 126 + ":active": plum.component3, 127 + ":disabled": plum.component1, 128 + }, 129 + transitionDuration: "100ms", 130 + transitionProperty: "background-color, border-color", 131 + transitionTimingFunction: "ease-in-out", 132 + }, 133 + bgAction: { 134 + backgroundColor: { 135 + default: plum.component2, 136 + ":hover:not(:has(* button:hover)):not(:disabled)": plum.component3, 137 + ":active:not(:disabled)": plum.component3, 138 + ":disabled": plum.component1, 139 + }, 140 + transitionDuration: "100ms", 141 + transitionProperty: "background-color, border-color", 142 + transitionTimingFunction: "ease-in-out", 143 + }, 144 + }); 145 + 146 + // eslint-disable-next-line @stylexjs/enforce-extension 147 + export const critical = stylex.create({ 148 + bg: { backgroundColor: red.bg1 }, 149 + bgSubtle: { backgroundColor: red.bg2 }, 150 + bgDim: { backgroundColor: red.component1 }, 151 + bgSecondary: { backgroundColor: red.component2 }, 152 + bgActive: { backgroundColor: red.component3 }, 153 + borderDim: { 154 + borderColor: red.border1, 155 + borderStyle: "solid", 156 + borderWidth: 1, 157 + }, 158 + border: { 159 + borderColor: red.border2, 160 + borderStyle: "solid", 161 + borderWidth: 1, 162 + }, 163 + borderInteractive: { 164 + borderColor: { 165 + default: red.border2, 166 + ":hover": red.border3, 167 + }, 168 + borderStyle: "solid", 169 + borderWidth: 1, 170 + transitionDuration: "100ms", 171 + transitionProperty: "background-color, border-color", 172 + transitionTimingFunction: "ease-in-out", 173 + }, 174 + bgSolid: { backgroundColor: red.solid1 }, 175 + bgSolidDark: { backgroundColor: red.solid2 }, 176 + textDim: { color: red.text1, fontFamily: fontFamily["sans"] }, 177 + text: { color: red.text2, fontFamily: fontFamily["sans"] }, 178 + textContrast: { color: "white" }, 179 + 180 + bgGhost: { 181 + backgroundColor: { 182 + default: "transparent", 183 + ":hover:not(:has(* button:hover)):not(:disabled)": red.component2, 184 + ":active:not(:disabled)": red.component3, 185 + ":disabled": red.component1, 186 + }, 187 + transitionDuration: "100ms", 188 + transitionProperty: "background-color, border-color", 189 + transitionTimingFunction: "ease-in-out", 190 + }, 191 + bgUi: { 192 + backgroundColor: { 193 + default: red.component1, 194 + ":hover:not(:has(* button:hover)):not(:disabled)": red.component2, 195 + ":active:not(:disabled)": red.component3, 196 + ":disabled": red.component1, 197 + }, 198 + transitionDuration: "100ms", 199 + transitionProperty: "background-color, border-color", 200 + transitionTimingFunction: "ease-in-out", 201 + }, 202 + bgAction: { 203 + backgroundColor: { 204 + default: red.component2, 205 + ":hover:not(:has(* button:hover)):not(:disabled)": red.component3, 206 + ":active:not(:disabled)": red.component3, 207 + ":disabled": red.component1, 208 + }, 209 + transitionDuration: "100ms", 210 + transitionProperty: "background-color, border-color", 211 + transitionTimingFunction: "ease-in-out", 212 + }, 213 + bgSolidAction: { 214 + backgroundColor: { 215 + default: red.solid1, 216 + ":hover:not(:has(* button:hover)):not(:disabled)": red.solid2, 217 + ":disabled": red.component1, 218 + }, 219 + transitionDuration: "100ms", 220 + transitionProperty: "background-color, border-color", 221 + transitionTimingFunction: "ease-in-out", 222 + }, 223 + }); 224 + 225 + // eslint-disable-next-line @stylexjs/enforce-extension 226 + export const warning = stylex.create({ 227 + bg: { backgroundColor: yellow.bg1 }, 228 + bgSubtle: { backgroundColor: yellow.bg2 }, 229 + bgDim: { backgroundColor: yellow.component1 }, 230 + bgSecondary: { backgroundColor: yellow.component2 }, 231 + bgActive: { backgroundColor: yellow.component3 }, 232 + borderDim: { 233 + borderColor: yellow.border1, 234 + borderStyle: "solid", 235 + borderWidth: 1, 236 + }, 237 + border: { 238 + borderColor: yellow.border2, 239 + borderStyle: "solid", 240 + borderWidth: 1, 241 + }, 242 + borderInteractive: { 243 + borderColor: { 244 + default: yellow.border2, 245 + ":hover": yellow.border3, 246 + }, 247 + }, 248 + bgSolid: { backgroundColor: yellow.solid1 }, 249 + bgSolidDark: { backgroundColor: yellow.solid2 }, 250 + textDim: { color: yellow.text1, fontFamily: fontFamily["sans"] }, 251 + text: { color: yellow.text2, fontFamily: fontFamily["sans"] }, 252 + textContrast: { color: "black" }, 253 + 254 + bgGhost: { 255 + backgroundColor: { 256 + default: "transparent", 257 + ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component2, 258 + ":active:not(:disabled)": yellow.component3, 259 + ":disabled": yellow.component1, 260 + }, 261 + transitionDuration: "100ms", 262 + transitionProperty: "background-color, border-color", 263 + transitionTimingFunction: "ease-in-out", 264 + }, 265 + bgUi: { 266 + backgroundColor: { 267 + default: yellow.component1, 268 + ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component2, 269 + ":active:not(:disabled)": yellow.component3, 270 + ":disabled": yellow.component1, 271 + }, 272 + transitionDuration: "100ms", 273 + transitionProperty: "background-color, border-color", 274 + transitionTimingFunction: "ease-in-out", 275 + }, 276 + bgAction: { 277 + backgroundColor: { 278 + default: yellow.component2, 279 + ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component3, 280 + ":active:not(:disabled)": yellow.component3, 281 + ":disabled": yellow.component1, 282 + }, 283 + transitionDuration: "100ms", 284 + transitionProperty: "background-color, border-color", 285 + transitionTimingFunction: "ease-in-out", 286 + }, 287 + bgSolidAction: { 288 + backgroundColor: { 289 + default: yellow.solid1, 290 + ":hover:not(:has(* button:hover)):not(:disabled)": yellow.solid2, 291 + ":disabled": yellow.component1, 292 + }, 293 + transitionDuration: "100ms", 294 + transitionProperty: "background-color, border-color", 295 + transitionTimingFunction: "ease-in-out", 296 + }, 297 + }); 298 + 299 + // eslint-disable-next-line @stylexjs/enforce-extension 300 + export const success = stylex.create({ 301 + bg: { backgroundColor: green.bg1 }, 302 + bgSubtle: { backgroundColor: green.bg2 }, 303 + bgDim: { backgroundColor: green.component1 }, 304 + bgSecondary: { backgroundColor: green.component2 }, 305 + bgActive: { backgroundColor: green.component3 }, 306 + borderDim: { 307 + borderColor: green.border1, 308 + borderStyle: "solid", 309 + borderWidth: 1, 310 + }, 311 + border: { 312 + borderColor: green.border2, 313 + borderStyle: "solid", 314 + borderWidth: 1, 315 + }, 316 + borderInteractive: { 317 + borderColor: { 318 + default: green.border2, 319 + ":hover": green.border3, 320 + }, 321 + borderStyle: "solid", 322 + borderWidth: 1, 323 + transitionDuration: "100ms", 324 + transitionProperty: "background-color, border-color", 325 + transitionTimingFunction: "ease-in-out", 326 + }, 327 + bgSolid: { backgroundColor: green.solid1 }, 328 + bgSolidDark: { backgroundColor: green.solid2 }, 329 + textDim: { color: green.text1, fontFamily: fontFamily["sans"] }, 330 + text: { color: green.text2, fontFamily: fontFamily["sans"] }, 331 + textContrast: { color: "white" }, 332 + 333 + bgGhost: { 334 + backgroundColor: { 335 + default: "transparent", 336 + ":hover:not(:has(* button:hover)):not(:disabled)": green.component2, 337 + ":active:not(:disabled)": green.component3, 338 + ":disabled": green.component1, 339 + }, 340 + transitionDuration: "100ms", 341 + transitionProperty: "background-color, border-color", 342 + transitionTimingFunction: "ease-in-out", 343 + }, 344 + bgUi: { 345 + backgroundColor: { 346 + default: green.component1, 347 + ":hover:not(:has(* button:hover)):not(:disabled)": green.component2, 348 + ":active:not(:disabled)": green.component3, 349 + ":disabled": green.component1, 350 + }, 351 + transitionDuration: "100ms", 352 + transitionProperty: "background-color, border-color", 353 + transitionTimingFunction: "ease-in-out", 354 + }, 355 + bgAction: { 356 + backgroundColor: { 357 + default: green.component2, 358 + ":hover:not(:has(* button:hover)):not(:disabled)": green.component3, 359 + ":active:not(:disabled)": green.component3, 360 + ":disabled": green.component1, 361 + }, 362 + transitionDuration: "100ms", 363 + transitionProperty: "background-color, border-color", 364 + transitionTimingFunction: "ease-in-out", 365 + }, 366 + bgSolidAction: { 367 + backgroundColor: { 368 + default: green.solid1, 369 + ":hover:not(:has(* button:hover)):not(:disabled)": green.solid2, 370 + ":disabled": green.component1, 371 + }, 372 + transitionDuration: "100ms", 373 + transitionProperty: "background-color, border-color", 374 + transitionTimingFunction: "ease-in-out", 375 + }, 376 + });
+12
apps/docs/src/components/theme/shadow.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + export const shadow = stylex.defineVars({ 4 + "2xs": "0 1px rgb(0 0 0 / 0.05)", 5 + xs: "0 1px 2px 0 rgb(0 0 0 / 0.05)", 6 + sm: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", 7 + md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", 8 + lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", 9 + xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", 10 + "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", 11 + none: "0 0 #0000", 12 + });
+42
apps/docs/src/components/theme/spacing.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + export const spacing = stylex.defineVars({ 4 + px: "1px", 5 + "0": "0px", 6 + "0.5": "0.125rem", 7 + "1": "0.25rem", 8 + "1.5": "0.375rem", 9 + "2": "0.5rem", 10 + "2.5": "0.625rem", 11 + "3": "0.75rem", 12 + "3.5": "0.875rem", 13 + "4": "1rem", 14 + "5": "1.25rem", 15 + "6": "1.5rem", 16 + "7": "1.75rem", 17 + "8": "2rem", 18 + "9": "2.25rem", 19 + "10": "2.5rem", 20 + "11": "2.75rem", 21 + "12": "3rem", 22 + "14": "3.5rem", 23 + "16": "4rem", 24 + "20": "5rem", 25 + "24": "6rem", 26 + "28": "7rem", 27 + "32": "8rem", 28 + "36": "9rem", 29 + "40": "10rem", 30 + "44": "11rem", 31 + "48": "12rem", 32 + "52": "13rem", 33 + "56": "14rem", 34 + "60": "15rem", 35 + "64": "16rem", 36 + "72": "18rem", 37 + "80": "20rem", 38 + "96": "24rem", 39 + }); 40 + 41 + // eslint-disable-next-line @stylexjs/enforce-extension 42 + export type Spacing = keyof typeof spacing;
+167
apps/docs/src/components/theme/typography.stylex.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { breakpoints } from "./breakpoints.stylex"; 4 + import { spacing } from "./spacing.stylex"; 5 + 6 + export const fontFamily = stylex.defineVars({ 7 + sans: "Inter, sans-serif", 8 + serif: "Georgia, serif", 9 + mono: "Monaco, monospace", 10 + }); 11 + 12 + export const fontWeight = stylex.defineVars({ 13 + thin: "100", 14 + extralight: "200", 15 + light: "300", 16 + normal: "400", 17 + medium: "500", 18 + semibold: "600", 19 + bold: "700", 20 + extrabold: "800", 21 + black: "900", 22 + }); 23 + 24 + export const fontSize = stylex.defineVars({ 25 + xs: "0.75rem", 26 + sm: "0.85rem", 27 + base: "1rem", 28 + lg: "1.125rem", 29 + xl: "1.25rem", 30 + "2xl": "1.5rem", 31 + "3xl": "1.875rem", 32 + "4xl": "2.25rem", 33 + "5xl": "3rem", 34 + "6xl": "3.75rem", 35 + "7xl": "4.5rem", 36 + "8xl": "6rem", 37 + "9xl": "8rem", 38 + }); 39 + 40 + export const lineHeight = stylex.defineVars({ 41 + none: "1", 42 + xs: "1", 43 + sm: "1.25", 44 + base: "calc(1.5 / 1)", 45 + lg: "calc(1.75 / 1.125)", 46 + xl: "calc(1.75 / 1.25)", 47 + "2xl": "calc(2 / 1.5)", 48 + "3xl": "calc(2.25 / 1.875)", 49 + "4xl": "calc(2.5 / 2.25)", 50 + "5xl": "1", 51 + "6xl": "1", 52 + "7xl": "1", 53 + "8xl": "1", 54 + "9xl": "1", 55 + }); 56 + 57 + export const tracking = stylex.defineVars({ 58 + tighter: "-0.05em", 59 + tight: "-0.025em", 60 + normal: "0em", 61 + wide: "0.025em", 62 + wider: "0.05em", 63 + widest: "0.1em", 64 + }); 65 + 66 + // eslint-disable-next-line @stylexjs/enforce-extension 67 + export const typeramp = stylex.create({ 68 + heading1: { 69 + // eslint-disable-next-line @stylexjs/valid-styles 70 + fontFamily: fontFamily["sans"], 71 + fontSize: { 72 + default: fontSize["4xl"], 73 + [breakpoints["md"]]: fontSize["5xl"], 74 + }, 75 + // eslint-disable-next-line @stylexjs/valid-styles 76 + fontWeight: fontWeight["extrabold"], 77 + letterSpacing: tracking["tight"], 78 + lineHeight: { 79 + default: lineHeight["4xl"], 80 + [breakpoints["md"]]: lineHeight["5xl"], 81 + }, 82 + margin: 0, 83 + scrollMarginBlockStart: spacing["20"], 84 + }, 85 + heading2: { 86 + borderBottomWidth: 1, 87 + // eslint-disable-next-line @stylexjs/valid-styles 88 + fontFamily: fontFamily["sans"], 89 + fontSize: { 90 + default: fontSize["3xl"], 91 + [breakpoints["md"]]: fontSize["4xl"], 92 + }, 93 + // eslint-disable-next-line @stylexjs/valid-styles 94 + fontWeight: fontWeight["semibold"], 95 + letterSpacing: tracking["tight"], 96 + lineHeight: { 97 + default: lineHeight["3xl"], 98 + [breakpoints["md"]]: lineHeight["4xl"], 99 + }, 100 + margin: 0, 101 + paddingBottom: spacing["2"], 102 + scrollMarginBlockStart: spacing["20"], 103 + }, 104 + heading3: { 105 + // eslint-disable-next-line @stylexjs/valid-styles 106 + fontFamily: fontFamily["sans"], 107 + fontSize: { default: fontSize["2xl"] }, 108 + // eslint-disable-next-line @stylexjs/valid-styles 109 + fontWeight: fontWeight["semibold"], 110 + letterSpacing: tracking["tight"], 111 + lineHeight: { default: lineHeight["2xl"] }, 112 + margin: 0, 113 + scrollMarginBlockStart: spacing["20"], 114 + }, 115 + heading4: { 116 + // eslint-disable-next-line @stylexjs/valid-styles 117 + fontFamily: fontFamily["sans"], 118 + fontSize: { default: fontSize["xl"] }, 119 + // eslint-disable-next-line @stylexjs/valid-styles 120 + fontWeight: fontWeight["semibold"], 121 + letterSpacing: tracking["tight"], 122 + lineHeight: { default: lineHeight["xl"] }, 123 + margin: 0, 124 + scrollMarginBlockStart: spacing["20"], 125 + }, 126 + heading5: { 127 + // eslint-disable-next-line @stylexjs/valid-styles 128 + fontFamily: fontFamily["sans"], 129 + fontSize: { default: fontSize["lg"] }, 130 + // eslint-disable-next-line @stylexjs/valid-styles 131 + fontWeight: fontWeight["semibold"], 132 + letterSpacing: tracking["tight"], 133 + lineHeight: { default: lineHeight["lg"] }, 134 + }, 135 + body: { 136 + // eslint-disable-next-line @stylexjs/valid-styles 137 + fontFamily: fontFamily["sans"], 138 + fontSize: { default: fontSize["base"] }, 139 + lineHeight: spacing["7"], 140 + margin: 0, 141 + }, 142 + smallBody: { 143 + // eslint-disable-next-line @stylexjs/valid-styles 144 + fontFamily: fontFamily["sans"], 145 + fontSize: { default: fontSize["sm"] }, 146 + lineHeight: { default: lineHeight["sm"] }, 147 + margin: 0, 148 + }, 149 + label: { 150 + // eslint-disable-next-line @stylexjs/valid-styles 151 + fontFamily: fontFamily["sans"], 152 + fontSize: { default: fontSize["sm"] }, 153 + // eslint-disable-next-line @stylexjs/valid-styles 154 + fontWeight: fontWeight["semibold"], 155 + letterSpacing: tracking["tight"], 156 + lineHeight: { default: lineHeight["sm"] }, 157 + }, 158 + sublabel: { 159 + // eslint-disable-next-line @stylexjs/valid-styles 160 + fontFamily: fontFamily["sans"], 161 + fontSize: { default: fontSize["xs"] }, 162 + // eslint-disable-next-line @stylexjs/valid-styles 163 + fontWeight: fontWeight["medium"], 164 + lineHeight: { default: lineHeight["xs"] }, 165 + margin: 0, 166 + }, 167 + });
+184
apps/docs/src/components/theme/useButtonStyles.ts
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { use } from "react"; 5 + 6 + import { ButtonGroupContext } from "../button/context"; 7 + import { SizeContext } from "../context"; 8 + import { Size, ButtonVariant } from "../types"; 9 + import { slate } from "./colors.stylex"; 10 + import { radius } from "./radius.stylex"; 11 + import { critical, gray, primary } from "./semantic-color.stylex"; 12 + import { shadow } from "./shadow.stylex"; 13 + import { spacing } from "./spacing.stylex"; 14 + import { 15 + fontFamily, 16 + fontSize, 17 + fontWeight, 18 + lineHeight, 19 + } from "./typography.stylex"; 20 + 21 + const styles = stylex.create({ 22 + shadow: { 23 + boxShadow: shadow["xs"], 24 + }, 25 + base: { 26 + alignItems: "center", 27 + borderRadius: radius["md"], 28 + borderStyle: "solid", 29 + borderWidth: 1, 30 + boxSizing: "border-box", 31 + display: "inline-flex", 32 + flexShrink: 0, 33 + fontFamily: fontFamily["sans"], 34 + fontWeight: fontWeight["medium"], 35 + gap: spacing["1"], 36 + justifyContent: "center", 37 + opacity: { 38 + ":disabled": 0.5, 39 + }, 40 + pointerEvents: { 41 + ":disabled": "none", 42 + }, 43 + transitionDuration: "100ms", 44 + transitionProperty: "all", 45 + transitionTimingFunction: "ease-in-out", 46 + whiteSpace: "nowrap", 47 + 48 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 49 + ":is(*) svg": { 50 + flexShrink: 0, 51 + height: spacing["4"], 52 + pointerEvents: "none", 53 + width: spacing["4"], 54 + }, 55 + }, 56 + small: { 57 + fontSize: fontSize["xs"], 58 + height: spacing["7"], 59 + lineHeight: lineHeight["xs"], 60 + paddingLeft: { 61 + default: spacing["2"], 62 + }, 63 + paddingRight: spacing["2"], 64 + 65 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 66 + ":is(*) svg": { 67 + flexShrink: 0, 68 + height: spacing["3.5"], 69 + pointerEvents: "none", 70 + width: spacing["3.5"], 71 + }, 72 + }, 73 + medium: { 74 + fontSize: fontSize["sm"], 75 + gap: spacing["1.5"], 76 + height: spacing["8"], 77 + lineHeight: lineHeight["xs"], 78 + paddingLeft: { 79 + default: spacing["3"], 80 + ":has(svg+*)": spacing["2.5"], 81 + }, 82 + paddingRight: spacing["3"], 83 + }, 84 + large: { 85 + gap: spacing["2"], 86 + height: spacing["10"], 87 + paddingLeft: { 88 + default: spacing["4"], 89 + ":has(svg+*)": spacing["3"], 90 + }, 91 + paddingRight: spacing["4"], 92 + }, 93 + outline: { 94 + borderWidth: 1, 95 + }, 96 + secondary: { 97 + borderColor: { 98 + default: slate.component1, 99 + ":hover": slate.component2, 100 + ":active": slate.component3, 101 + }, 102 + }, 103 + tertiary: { 104 + borderColor: { 105 + default: "transparent", 106 + ":hover": slate.component2, 107 + ":active": slate.component3, 108 + }, 109 + }, 110 + 111 + groupHorizontal: { 112 + borderBottomLeftRadius: { ":not(:first-child)": 0 }, 113 + borderBottomRightRadius: { ":not(:last-child)": 0 }, 114 + borderLeftWidth: { ":not(:first-child)": 0 }, 115 + borderTopLeftRadius: { ":not(:first-child)": 0 }, 116 + borderTopRightRadius: { ":not(:last-child)": 0 }, 117 + }, 118 + secondaryGroupHorizontal: { 119 + borderRightColor: { ":not(:last-child)": slate.border2 }, 120 + }, 121 + groupVertical: { 122 + borderBottomLeftRadius: { ":not(:last-child)": 0 }, 123 + borderBottomRightRadius: { ":not(:last-child)": 0 }, 124 + borderTopLeftRadius: { ":not(:first-child)": 0 }, 125 + borderTopRightRadius: { ":not(:first-child)": 0 }, 126 + borderTopWidth: { ":not(:first-child)": 0 }, 127 + }, 128 + secondaryGroupVertical: { 129 + borderBottomColor: { ":not(:last-child)": slate.border2 }, 130 + }, 131 + }); 132 + 133 + export const useButtonStyles = ({ 134 + variant = "primary", 135 + size: sizeProp, 136 + }: { 137 + variant?: ButtonVariant; 138 + size?: Size; 139 + }) => { 140 + const size = sizeProp || use(SizeContext); 141 + const group = use(ButtonGroupContext); 142 + 143 + return [ 144 + styles.base, 145 + group === "horizontal" && styles.groupHorizontal, 146 + group === "vertical" && styles.groupVertical, 147 + variant === "primary" && [ 148 + primary.bgAction, 149 + primary.borderInteractive, 150 + primary.text, 151 + styles.shadow, 152 + ], 153 + variant === "secondary" && [ 154 + gray.bgUi, 155 + styles.secondary, 156 + gray.text, 157 + group === "horizontal" && styles.secondaryGroupHorizontal, 158 + group === "vertical" && styles.secondaryGroupVertical, 159 + ], 160 + variant === "tertiary" && [ 161 + gray.bgGhost, 162 + styles.tertiary, 163 + gray.text, 164 + group === "horizontal" && styles.secondaryGroupHorizontal, 165 + group === "vertical" && styles.secondaryGroupVertical, 166 + ], 167 + variant === "outline" && [ 168 + gray.borderInteractive, 169 + gray.bgGhost, 170 + gray.text, 171 + styles.outline, 172 + styles.shadow, 173 + ], 174 + variant === "critical" && [ 175 + critical.bgSolidAction, 176 + critical.borderInteractive, 177 + critical.textContrast, 178 + styles.shadow, 179 + ], 180 + size === "sm" && styles.small, 181 + size === "md" && styles.medium, 182 + size === "lg" && styles.large, 183 + ]; 184 + };
+87
apps/docs/src/components/theme/useDialogStyles.ts
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + 4 + import { SizeContext } from "../context"; 5 + import { animations } from "../theme/animations.stylex"; 6 + import { radius } from "../theme/radius.stylex"; 7 + import { shadow } from "../theme/shadow.stylex"; 8 + import { Size } from "../types"; 9 + import { gray } from "./semantic-color.stylex"; 10 + 11 + const styles = stylex.create({ 12 + overlay: { 13 + backgroundColor: "rgba(0, 0, 0, 0.5)", 14 + height: "var(--page-height)", 15 + left: 0, 16 + position: "absolute", 17 + top: 0, 18 + width: "100vw", 19 + zIndex: 100, 20 + 21 + animationDuration: "200ms", 22 + animationName: { 23 + ":is([data-entering])": animations.fadeIn, 24 + }, 25 + animationTimingFunction: "ease-in", 26 + opacity: { 27 + default: 1, 28 + ":is([data-exiting])": 0, 29 + }, 30 + transitionDuration: { 31 + ":is([data-exiting])": "100ms", 32 + }, 33 + transitionProperty: "opacity", 34 + transitionTimingFunction: "ease-in-out", 35 + }, 36 + modal: { 37 + borderRadius: radius["lg"], 38 + boxShadow: shadow["lg"], 39 + display: "flex", 40 + flexDirection: "column", 41 + left: "50%", 42 + maxHeight: "calc(var(--visual-viewport-height) * 0.8)", 43 + outline: "none", 44 + position: "fixed", 45 + top: "calc(var(--visual-viewport-height) / 2)", 46 + translate: "-50% -50%", 47 + 48 + animationDuration: { ":is([data-entering])": "300ms" }, 49 + animationName: { ":is([data-entering])": animations.zoomIn }, 50 + animationTimingFunction: { 51 + ":is([data-entering])": "cubic-bezier(0.175, 0.885, 0.32, 1.275)", 52 + }, 53 + }, 54 + dialog: { 55 + display: "flex", 56 + flexDirection: "column", 57 + flexGrow: 1, 58 + minHeight: 0, 59 + outline: "none", 60 + }, 61 + sm: { 62 + width: 400, 63 + }, 64 + md: { 65 + width: 600, 66 + }, 67 + lg: { 68 + width: 800, 69 + }, 70 + }); 71 + 72 + export function useDialogStyles({ size: sizeProp }: { size?: Size }) { 73 + const size = sizeProp || use(SizeContext); 74 + 75 + return { 76 + overlay: styles.overlay, 77 + modal: [ 78 + styles.modal, 79 + styles.modal, 80 + gray.bg, 81 + gray.text, 82 + gray.border, 83 + styles[size], 84 + ], 85 + dialog: styles.dialog, 86 + }; 87 + }
+113
apps/docs/src/components/theme/useInputStyles.ts
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + 4 + import { SizeContext } from "../context"; 5 + import { Size } from "../types"; 6 + import { slate } from "./colors.stylex"; 7 + import { radius } from "./radius.stylex"; 8 + import { gray } from "./semantic-color.stylex"; 9 + import { spacing } from "./spacing.stylex"; 10 + import { lineHeight, fontSize } from "./typography.stylex"; 11 + 12 + const styles = stylex.create({ 13 + field: { 14 + display: "flex", 15 + flexDirection: "column", 16 + gap: spacing["2"], 17 + }, 18 + addon: { 19 + color: gray.textDim, 20 + flexShrink: 0, 21 + height: "100%", 22 + minWidth: spacing["8"], 23 + paddingLeft: { ":first-child": spacing["0.5"] }, 24 + paddingRight: { 25 + ":last-child": spacing["2"], 26 + ":last-child:has(svg)": spacing["0.5"], 27 + }, 28 + 29 + alignItems: "center", 30 + display: "flex", 31 + gap: spacing["0.5"], 32 + justifyContent: "center", 33 + 34 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 35 + ":is(*) svg": { 36 + flexShrink: 0, 37 + height: spacing["4"], 38 + pointerEvents: "none", 39 + width: spacing["4"], 40 + }, 41 + }, 42 + inputWrapper: { 43 + borderRadius: radius["md"], 44 + boxSizing: "border-box", 45 + display: "flex", 46 + lineHeight: lineHeight["none"], 47 + overflow: "hidden", 48 + padding: 0, 49 + 50 + borderColor: { 51 + default: slate.border2, 52 + ":hover": slate.border3, 53 + ":focus": slate.solid1, 54 + }, 55 + borderStyle: "solid", 56 + borderWidth: 1, 57 + 58 + transitionProperty: "background-color, border-color", 59 + }, 60 + input: { 61 + alignItems: "center", 62 + backgroundColor: "transparent", 63 + borderWidth: 0, 64 + boxSizing: "border-box", 65 + color: { 66 + ":is(::placeholder,[data-placeholder])": slate.text1, 67 + }, 68 + display: "flex", 69 + flexGrow: 1, 70 + lineHeight: lineHeight["none"], 71 + outline: "none", 72 + 73 + appearance: { 74 + "::-webkit-search-cancel-button": "none", 75 + "::-webkit-search-decoration": "none", 76 + }, 77 + }, 78 + sm: { 79 + height: spacing["6"], 80 + }, 81 + smInput: { 82 + fontSize: fontSize["xs"], 83 + paddingLeft: { ":first-child": spacing["1"] }, 84 + paddingRight: spacing["1"], 85 + }, 86 + md: { 87 + height: spacing["8"], 88 + }, 89 + mdInput: { 90 + fontSize: fontSize["sm"], 91 + paddingLeft: { ":first-child": spacing["2"] }, 92 + paddingRight: spacing["2"], 93 + }, 94 + lg: { 95 + height: spacing["10"], 96 + }, 97 + lgInput: { 98 + fontSize: fontSize["base"], 99 + paddingLeft: spacing["1"], 100 + paddingRight: spacing["2"], 101 + }, 102 + }); 103 + 104 + export function useInputStyles({ size: sizeProp }: { size?: Size }) { 105 + const size = sizeProp || use(SizeContext); 106 + 107 + return { 108 + field: [styles.field], 109 + wrapper: [styles.inputWrapper, gray.bgUi, gray.text, styles[size]], 110 + input: [styles.input, styles[`${size}Input`]], 111 + addon: styles.addon as unknown as stylex.StyleXStyles, 112 + }; 113 + }
+116
apps/docs/src/components/theme/useListBoxItemStyles.ts
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { use } from "react"; 3 + 4 + import { SizeContext } from "../context"; 5 + import { plum, red, slate } from "../theme/colors.stylex"; 6 + import { radius } from "../theme/radius.stylex"; 7 + import { spacing } from "../theme/spacing.stylex"; 8 + import { 9 + fontSize, 10 + fontWeight, 11 + lineHeight, 12 + typeramp, 13 + } from "../theme/typography.stylex"; 14 + 15 + const styles = stylex.create({ 16 + item: { 17 + display: "flex", 18 + userSelect: "none", 19 + 20 + boxSizing: "border-box", 21 + fontWeight: fontWeight["medium"], 22 + outline: { 23 + default: "none", 24 + ":focus": "none", 25 + }, 26 + paddingBottom: spacing["0.5"], 27 + paddingLeft: spacing["1"], 28 + paddingRight: spacing["1"], 29 + paddingTop: spacing["0.5"], 30 + }, 31 + sm: { minHeight: spacing["7"] }, 32 + md: { minHeight: spacing["9"] }, 33 + lg: { minHeight: spacing["12"] }, 34 + itemInner: { 35 + alignItems: "center", 36 + backgroundColor: { 37 + default: "transparent", 38 + [":is([data-react-aria-pressable=true][data-focused] *)"]: 39 + slate.component2, 40 + [":is([data-react-aria-pressable=true][data-selected=true] *)"]: 41 + slate.component2, 42 + [":is([data-react-aria-pressable=true]:hover:not([data-disabled]) *)"]: 43 + slate.component2, 44 + [":is([data-react-aria-pressable=true]:not([data-disabled]):active *)"]: 45 + slate.component3, 46 + }, 47 + borderRadius: radius["md"], 48 + boxSizing: "border-box", 49 + color: { 50 + default: slate.text2, 51 + [":is([data-react-aria-pressable=true][data-disabled] *)"]: slate.border3, 52 + }, 53 + display: "flex", 54 + flexGrow: 1, 55 + gap: spacing["3"], 56 + paddingBottom: spacing["2"], 57 + paddingLeft: spacing["3"], 58 + paddingRight: spacing["3"], 59 + paddingTop: spacing["2"], 60 + transitionDuration: "100ms", 61 + transitionProperty: "background-color", 62 + transitionTimingFunction: "ease-in-out", 63 + }, 64 + smItemInner: { 65 + fontSize: fontSize["xs"], 66 + gap: spacing["2"], 67 + lineHeight: lineHeight["xs"], 68 + paddingBottom: spacing["1"], 69 + paddingTop: spacing["1"], 70 + }, 71 + lgItemInner: { 72 + fontSize: fontSize["base"], 73 + }, 74 + check: { 75 + color: plum.solid1, 76 + }, 77 + addon: { 78 + alignItems: "center", 79 + display: "flex", 80 + justifyContent: "center", 81 + minWidth: spacing["4"], 82 + 83 + // eslint-disable-next-line @stylexjs/no-legacy-contextual-styles, @stylexjs/valid-styles 84 + ":is(*) svg": { 85 + flexShrink: 0, 86 + height: spacing["4"], 87 + pointerEvents: "none", 88 + width: spacing["4"], 89 + }, 90 + }, 91 + label: { 92 + color: { 93 + [":is([data-variant=destructive] *)"]: red.text1, 94 + }, 95 + display: "flex", 96 + flexDirection: "column", 97 + flexGrow: 1, 98 + gap: spacing["1.5"], 99 + }, 100 + }); 101 + 102 + export function useListBoxItemStyles() { 103 + const size = use(SizeContext); 104 + 105 + return { 106 + wrapper: [typeramp.label, styles.item, styles[size]], 107 + inner: [ 108 + styles.itemInner, 109 + size === "sm" && styles.smItemInner, 110 + size === "lg" && styles.lgItemInner, 111 + ], 112 + label: styles.label, 113 + addon: styles.addon, 114 + check: styles.check, 115 + }; 116 + }
+24
apps/docs/src/components/theme/usePopoverStyles.ts
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { radius } from "./radius.stylex"; 4 + import { gray } from "./semantic-color.stylex"; 5 + import { shadow } from "./shadow.stylex"; 6 + import { spacing } from "./spacing.stylex"; 7 + 8 + const styles = stylex.create({ 9 + popover: { 10 + borderRadius: radius["md"], 11 + boxShadow: shadow["md"], 12 + minWidth: spacing["40"], 13 + outline: "none", 14 + overflow: "auto", 15 + 16 + paddingBottom: spacing["1"], 17 + paddingTop: spacing["1"], 18 + }, 19 + }); 20 + 21 + // eslint-disable-next-line @eslint-react/no-unnecessary-use-prefix 22 + export function usePopoverStyles() { 23 + return [styles.popover, gray.bgSubtle, gray.text, gray.border]; 24 + }
+67
apps/docs/src/components/time-field/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { useRef } from "react"; 3 + import { 4 + TimeFieldProps as AriaTimeFieldProps, 5 + DateInput, 6 + DateSegment, 7 + TimeValue, 8 + ValidationResult, 9 + FieldError, 10 + TimeField as AriaTimeField, 11 + } from "react-aria-components"; 12 + 13 + import { Description, Label } from "../label"; 14 + import { useInputStyles } from "../theme/useInputStyles"; 15 + import { Size } from "../types"; 16 + 17 + export interface TimeFieldProps<T extends TimeValue> 18 + extends Omit<AriaTimeFieldProps<T>, "style" | "className"> { 19 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 20 + label?: React.ReactNode; 21 + description?: string; 22 + errorMessage?: string | ((validation: ValidationResult) => string); 23 + size?: Size; 24 + prefix?: React.ReactNode; 25 + suffix?: React.ReactNode; 26 + } 27 + 28 + export function TimeField<T extends TimeValue>({ 29 + label, 30 + description, 31 + errorMessage, 32 + style, 33 + size, 34 + prefix, 35 + suffix, 36 + ...props 37 + }: TimeFieldProps<T>) { 38 + const inputRef = useRef<HTMLInputElement>(null); 39 + const inputStyles = useInputStyles({ size }); 40 + 41 + return ( 42 + <AriaTimeField {...props} {...stylex.props(inputStyles.field, style)}> 43 + {label != null && <Label size={size}>{label}</Label>} 44 + {/* 45 + This onClick is specifically for mouse users not clicking directly on the input. 46 + A keyboard user would not encounter the same issue. 47 + */} 48 + {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} 49 + <div 50 + {...stylex.props(inputStyles.wrapper)} 51 + onClick={() => inputRef.current?.focus()} 52 + > 53 + {prefix != null && ( 54 + <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 55 + )} 56 + <DateInput {...stylex.props(inputStyles.input)} ref={inputRef}> 57 + {(segment) => <DateSegment segment={segment} />} 58 + </DateInput> 59 + {suffix != null && ( 60 + <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 61 + )} 62 + </div> 63 + {description && <Description size={size}>{description}</Description>} 64 + <FieldError>{errorMessage}</FieldError> 65 + </AriaTimeField> 66 + ); 67 + }
+85
apps/docs/src/components/toggle-button-group/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { use } from "react"; 5 + import { 6 + ToggleButtonGroupProps as AriaToggleButtonGroupProps, 7 + ToggleButtonGroup as AriaToggleButtonGroup, 8 + } from "react-aria-components"; 9 + 10 + import { ButtonGroupContext } from "../button/context"; 11 + 12 + const styles = stylex.create({ 13 + group: { 14 + alignItems: "center", 15 + display: "flex", 16 + }, 17 + horizontal: { 18 + flexDirection: "row", 19 + }, 20 + vertical: { 21 + flexDirection: "column", 22 + }, 23 + contents: { 24 + display: "contents", 25 + }, 26 + horizontalContents: { 27 + borderBottomLeftRadius: { ":is(:not(:first-child)) *": "0" }, 28 + borderBottomRightRadius: { ":is(:not(:last-child)) *": "0" }, 29 + borderLeftWidth: { ":is(:not(:first-child)) *": "0" }, 30 + borderRightWidth: { ":is(:not(:last-child)) *": "0" }, 31 + borderTopLeftRadius: { ":is(:not(:first-child)) *": "0" }, 32 + borderTopRightRadius: { ":is(:not(:last-child)) *": "0" }, 33 + }, 34 + verticalContents: { 35 + // eslint-disable-next-line @stylexjs/valid-styles 36 + borderBottomLeftWidth: { ":is(:not(:first-child)) *": "0" }, 37 + borderBottomRightRadius: { ":is(:not(:last-child)) *": "0" }, 38 + borderBottomWidth: { ":is(:not(:last-child)) *": "0" }, 39 + borderTopLeftRadius: { ":is(:not(:first-child)) *": "0" }, 40 + borderTopRightRadius: { ":is(:not(:first-child)) *": "0" }, 41 + borderTopWidth: { ":is(:not(:first-child)) *": "0" }, 42 + }, 43 + }); 44 + 45 + interface ToggleButtonGroupProps 46 + extends Omit<AriaToggleButtonGroupProps, "className" | "style" | "children"> { 47 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 48 + orientation?: "horizontal" | "vertical"; 49 + children?: React.ReactNode; 50 + } 51 + 52 + export const ToggleButtonGroup = ({ 53 + children, 54 + style, 55 + orientation: orientationProp = "horizontal", 56 + ...props 57 + }: ToggleButtonGroupProps) => { 58 + const groupOrientation = use(ButtonGroupContext); 59 + const isInGroup = groupOrientation !== undefined; 60 + const orientation = groupOrientation || orientationProp; 61 + 62 + return ( 63 + <ButtonGroupContext value={orientation}> 64 + <AriaToggleButtonGroup 65 + {...stylex.props( 66 + isInGroup 67 + ? [ 68 + styles.contents, 69 + orientation === "horizontal" && styles.horizontalContents, 70 + orientation === "vertical" && styles.verticalContents, 71 + ] 72 + : [ 73 + styles.group, 74 + orientation === "horizontal" && styles.horizontal, 75 + orientation === "vertical" && styles.vertical, 76 + ], 77 + style, 78 + )} 79 + {...props} 80 + > 81 + {children} 82 + </AriaToggleButtonGroup> 83 + </ButtonGroupContext> 84 + ); 85 + };
+137
apps/docs/src/components/toggle-button/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { Children, use } from "react"; 3 + import { 4 + ToggleButtonProps as AriaToggleButtonProps, 5 + ToggleButton as AriaToggleButton, 6 + } from "react-aria-components"; 7 + 8 + import { SizeContext } from "../context"; 9 + import { plum, slate } from "../theme/colors.stylex"; 10 + import { spacing } from "../theme/spacing.stylex"; 11 + import { useButtonStyles } from "../theme/useButtonStyles"; 12 + import { ButtonVariant, Size } from "../types"; 13 + 14 + const styles = stylex.create({ 15 + primarySelected: { 16 + backgroundColor: { 17 + default: plum.solid1, 18 + ":hover": plum.solid2, 19 + ":active": plum.text1, 20 + }, 21 + color: "light-dark(white, black)", 22 + }, 23 + secondarySelected: { 24 + backgroundColor: { 25 + default: slate.border1, 26 + ":hover": slate.border2, 27 + ":active": slate.border3, 28 + }, 29 + borderColor: { 30 + default: slate.border1, 31 + ":hover": slate.border2, 32 + ":active": slate.border3, 33 + }, 34 + }, 35 + tertiarySelected: { 36 + backgroundColor: { 37 + default: slate.border1, 38 + ":hover": slate.border2, 39 + ":active": slate.border3, 40 + }, 41 + borderColor: { 42 + default: slate.border1, 43 + ":hover": slate.border2, 44 + ":active": slate.border3, 45 + }, 46 + }, 47 + outlineSelected: { 48 + backgroundColor: { 49 + default: slate.border1, 50 + ":hover": slate.border2, 51 + ":active": slate.border3, 52 + }, 53 + borderColor: { 54 + default: slate.border1, 55 + ":hover": slate.border2, 56 + ":active": slate.border3, 57 + }, 58 + }, 59 + sm: { 60 + paddingLeft: { 61 + ":has(> * + *, > *:not(svg):only-child)": spacing["2"], 62 + }, 63 + paddingRight: { 64 + ":has(> * + *, > *:not(svg):only-child)": spacing["2"], 65 + }, 66 + width: { 67 + ":has(svg:only-child)": spacing["7"], 68 + }, 69 + }, 70 + md: { 71 + paddingLeft: { 72 + ":has(> * + *, > *:not(svg):only-child)": spacing["3"], 73 + }, 74 + paddingRight: { 75 + ":has(> * + *, > *:not(svg):only-child)": spacing["3"], 76 + }, 77 + width: { 78 + ":has(svg:only-child)": spacing["8"], 79 + }, 80 + }, 81 + lg: { 82 + paddingLeft: { 83 + ":has(> * + *, > *:not(svg):only-child)": spacing["4"], 84 + }, 85 + paddingRight: { 86 + ":has(> * + *, > *:not(svg):only-child)": spacing["4"], 87 + }, 88 + width: { 89 + ":has(svg:only-child)": spacing["10"], 90 + }, 91 + }, 92 + }); 93 + 94 + export interface ToggleButtonProps 95 + extends Omit<AriaToggleButtonProps, "style" | "className" | "children"> { 96 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 97 + variant?: Exclude<ButtonVariant, "critical">; 98 + size?: Size; 99 + children?: React.ReactNode; 100 + } 101 + 102 + export function ToggleButton({ 103 + style, 104 + variant = "primary", 105 + size: sizeProp, 106 + children, 107 + ...props 108 + }: ToggleButtonProps) { 109 + const size = sizeProp || use(SizeContext); 110 + const buttonStyles = useButtonStyles({ variant, size }); 111 + const toggleButtonStyles = (isSelected?: boolean) => 112 + stylex.props( 113 + buttonStyles, 114 + styles[size], 115 + isSelected ? styles[`${variant}Selected`] : undefined, 116 + style, 117 + ); 118 + 119 + return ( 120 + <AriaToggleButton 121 + {...props} 122 + {...toggleButtonStyles()} 123 + className={({ isSelected }) => 124 + toggleButtonStyles(isSelected).className || "" 125 + } 126 + > 127 + {/* eslint-disable-next-line @eslint-react/no-children-map */} 128 + {Children.map(children, (child, index) => 129 + typeof child === "string" ? ( 130 + <span key={`${child}-${index.toString()}`}>{child}</span> 131 + ) : ( 132 + child 133 + ), 134 + )} 135 + </AriaToggleButton> 136 + ); 137 + }
+105
apps/docs/src/components/tooltip/index.tsx
··· 1 + "use client"; 2 + 3 + import * as stylex from "@stylexjs/stylex"; 4 + import { 5 + OverlayArrow, 6 + Tooltip as AriaTooltip, 7 + TooltipTrigger, 8 + TooltipTriggerComponentProps, 9 + TooltipProps as AriaTooltipProps, 10 + } from "react-aria-components"; 11 + 12 + import { slateInverted } from "../theme/colors.stylex"; 13 + import { radius } from "../theme/radius.stylex"; 14 + import { shadow } from "../theme/shadow.stylex"; 15 + import { spacing } from "../theme/spacing.stylex"; 16 + import { fontFamily, fontSize, lineHeight } from "../theme/typography.stylex"; 17 + 18 + const tooltipStyle = stylex.create({ 19 + content: { 20 + backgroundColor: slateInverted.bg1, 21 + borderRadius: radius["md"], 22 + boxShadow: shadow["sm"], 23 + color: slateInverted.text1, 24 + fontFamily: fontFamily["sans"], 25 + fontSize: fontSize["sm"], 26 + lineHeight: lineHeight["sm"], 27 + paddingBottom: spacing["1"], 28 + paddingLeft: spacing["2"], 29 + paddingRight: spacing["2"], 30 + paddingTop: spacing["1"], 31 + 32 + "--origin": { 33 + ":is([data-placement=top])": "translateY(4px)", 34 + ":is([data-placement=bottom])": "translateY(-4px)", 35 + ":is([data-placement=left])": "translateX(4px)", 36 + ":is([data-placement=right])": "translateX(-4px)", 37 + }, 38 + opacity: { 39 + default: 1, 40 + ":is([data-entering])": 0, 41 + ":is([data-exiting])": 0, 42 + }, 43 + transform: { 44 + ":is([data-entering])": "scale(0.9) var(--origin)", 45 + ":is([data-exiting])": "scale(0.9) var(--origin)", 46 + }, 47 + transitionDuration: "150ms", 48 + transitionProperty: "transform, opacity", 49 + }, 50 + caret: { 51 + display: "flex", 52 + fill: slateInverted.bg1, 53 + }, 54 + arrow: { 55 + transform: { 56 + [":is([data-placement=bottom] *)"]: "rotate(180deg)", 57 + [":is([data-placement=top] *)"]: "rotate(0deg)", 58 + [":is([data-placement=left] *)"]: "rotate(90deg)", 59 + [":is([data-placement=right] *)"]: "rotate(-90deg)", 60 + }, 61 + }, 62 + }); 63 + 64 + interface TooltipProps 65 + extends TooltipTriggerComponentProps, 66 + Pick<AriaTooltipProps, "crossOffset" | "placement" | "shouldFlip"> { 67 + text: string; 68 + children: React.ReactNode; 69 + } 70 + 71 + export const Tooltip = ({ 72 + text, 73 + children, 74 + crossOffset, 75 + placement, 76 + shouldFlip, 77 + ...triggerProps 78 + }: TooltipProps) => { 79 + return ( 80 + <TooltipTrigger {...triggerProps}> 81 + {children} 82 + 83 + <AriaTooltip 84 + {...stylex.props(tooltipStyle.content)} 85 + crossOffset={crossOffset} 86 + containerPadding={8} 87 + placement={placement} 88 + offset={8} 89 + shouldFlip={shouldFlip} 90 + > 91 + <OverlayArrow {...stylex.props(tooltipStyle.caret)}> 92 + <svg 93 + width={8} 94 + height={8} 95 + viewBox="0 0 8 8" 96 + {...stylex.props(tooltipStyle.arrow)} 97 + > 98 + <path d="M0 0 L4 4 L8 0" /> 99 + </svg> 100 + </OverlayArrow> 101 + {text} 102 + </AriaTooltip> 103 + </TooltipTrigger> 104 + ); 105 + };
+203
apps/docs/src/components/tree/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { ChevronRight, GripVertical } from "lucide-react"; 3 + import { use } from "react"; 4 + import { 5 + Button, 6 + Tree as AriaTree, 7 + TreeProps as AriaTreeProps, 8 + TreeItemContent as AriaTreeItemContent, 9 + TreeItem as AriaTreeItem, 10 + TreeItemProps as AriaTreeItemProps, 11 + TreeItemContentProps as AriaTreeItemContentProps, 12 + } from "react-aria-components"; 13 + 14 + import { Checkbox } from "../checkbox"; 15 + import { SizeContext } from "../context"; 16 + import { radius } from "../theme/radius.stylex"; 17 + import { gray } from "../theme/semantic-color.stylex"; 18 + import { spacing } from "../theme/spacing.stylex"; 19 + import { useListBoxItemStyles } from "../theme/useListBoxItemStyles"; 20 + import { Size } from "../types"; 21 + 22 + const styles = stylex.create({ 23 + wrapper: { 24 + position: "relative", 25 + }, 26 + itemInner: { 27 + gap: spacing["1"], 28 + }, 29 + spacer: { 30 + width: `calc((var(--tree-item-level, 0) - 1) * ${spacing["4"]})`, 31 + }, 32 + content: { 33 + alignItems: "center", 34 + display: "flex", 35 + flexGrow: 1, 36 + gap: spacing["2"], 37 + }, 38 + hidden: { 39 + opacity: 0, 40 + visibility: "hidden", 41 + }, 42 + chevron: { 43 + backgroundColor: "transparent", 44 + borderWidth: 0, 45 + paddingBottom: 0, 46 + paddingLeft: 0, 47 + paddingRight: 0, 48 + paddingTop: 0, 49 + transform: { 50 + default: "rotate(0deg)", 51 + ":is([aria-expanded=true] *)": "rotate(90deg)", 52 + }, 53 + }, 54 + addon: { 55 + marginBottom: `calc(${spacing["2"]} * -1)`, 56 + marginTop: `calc(${spacing["2"]} * -1)`, 57 + }, 58 + dragButtonWrapper: { 59 + left: 0, 60 + opacity: { 61 + default: 0, 62 + ":hover": 1, 63 + ":is([data-react-aria-pressable=true]:hover:not([data-disabled]) *)": 1, 64 + }, 65 + position: "absolute", 66 + top: "50%", 67 + transform: "translate(-100%, -50%)", 68 + transitionDuration: "100ms", 69 + transitionProperty: "opacity", 70 + transitionTimingFunction: "ease-in-out", 71 + }, 72 + dragButton: { 73 + alignItems: "center", 74 + borderRadius: radius["sm"], 75 + display: "flex", 76 + justifyContent: "center", 77 + 78 + height: spacing["8"], 79 + width: spacing["8"], 80 + }, 81 + }); 82 + 83 + interface TreeItemContentProps 84 + extends Omit<AriaTreeItemContentProps, "children"> { 85 + children?: React.ReactNode; 86 + prefix?: React.ReactNode; 87 + suffix?: React.ReactNode; 88 + } 89 + 90 + function TreeItemContent({ children, prefix, suffix }: TreeItemContentProps) { 91 + const listBoxItemStyles = useListBoxItemStyles(); 92 + 93 + return ( 94 + <AriaTreeItemContent> 95 + {({ 96 + hasChildItems, 97 + selectionBehavior, 98 + selectionMode, 99 + allowsDragging, 100 + }) => ( 101 + <div {...stylex.props(listBoxItemStyles.inner, styles.itemInner)}> 102 + {allowsDragging && ( 103 + <div {...stylex.props(styles.dragButtonWrapper)}> 104 + <Button 105 + slot="drag" 106 + {...stylex.props(styles.dragButton, gray.border, gray.bgSubtle)} 107 + > 108 + <GripVertical size={18} /> 109 + </Button> 110 + </div> 111 + )} 112 + {selectionBehavior === "toggle" && selectionMode !== "none" && ( 113 + <Checkbox slot="selection" /> 114 + )} 115 + <div {...stylex.props(styles.spacer)} /> 116 + <Button 117 + slot="chevron" 118 + {...stylex.props( 119 + styles.chevron, 120 + gray.textDim, 121 + listBoxItemStyles.addon, 122 + !hasChildItems && styles.hidden, 123 + )} 124 + > 125 + <ChevronRight size={16} /> 126 + </Button> 127 + 128 + <div {...stylex.props(styles.content)}> 129 + {prefix != null && ( 130 + <div {...stylex.props(listBoxItemStyles.addon, styles.addon)}> 131 + {prefix} 132 + </div> 133 + )} 134 + <div {...stylex.props(listBoxItemStyles.label)}>{children}</div> 135 + {suffix != null && ( 136 + <div {...stylex.props(listBoxItemStyles.addon, styles.addon)}> 137 + {suffix} 138 + </div> 139 + )} 140 + </div> 141 + </div> 142 + )} 143 + </AriaTreeItemContent> 144 + ); 145 + } 146 + 147 + interface TreeItemProps<T extends object> 148 + extends Omit<AriaTreeItemProps<T>, "style" | "textValue" | "children">, 149 + Pick<TreeItemContentProps, "prefix" | "suffix"> { 150 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 151 + title: string; 152 + children?: React.ReactNode; 153 + } 154 + 155 + export function TreeItem<T extends object>({ 156 + style, 157 + title, 158 + prefix, 159 + suffix, 160 + ...props 161 + }: TreeItemProps<T>) { 162 + const listBoxItemStyles = useListBoxItemStyles(); 163 + 164 + return ( 165 + <AriaTreeItem 166 + textValue={title} 167 + {...props} 168 + data-react-aria-pressable 169 + {...stylex.props( 170 + listBoxItemStyles.wrapper, 171 + styles.wrapper, 172 + styles.itemInner, 173 + style, 174 + )} 175 + > 176 + <TreeItemContent prefix={prefix} suffix={suffix}> 177 + {title} 178 + </TreeItemContent> 179 + {props.children} 180 + </AriaTreeItem> 181 + ); 182 + } 183 + 184 + export interface TreeProps<T extends object> 185 + extends Omit<AriaTreeProps<T>, "children" | "style"> { 186 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 187 + children: React.ReactNode | ((item: T) => React.ReactNode); 188 + size?: Size; 189 + } 190 + 191 + export function Tree<T extends object>({ 192 + style, 193 + size: sizeProp, 194 + ...props 195 + }: TreeProps<T>) { 196 + const size = sizeProp || use(SizeContext); 197 + 198 + return ( 199 + <SizeContext value={size}> 200 + <AriaTree {...props} {...stylex.props(style)} /> 201 + </SizeContext> 202 + ); 203 + }
+7
apps/docs/src/components/types.ts
··· 1 + export type Size = "sm" | "md" | "lg"; 2 + export type ButtonVariant = 3 + | "primary" 4 + | "secondary" 5 + | "tertiary" 6 + | "outline" 7 + | "critical";
+224
apps/docs/src/components/typography/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + import { useMemo } from "react"; 3 + 4 + import { LinkContext } from "../link/link-context"; 5 + import { radius } from "../theme/radius.stylex"; 6 + import { gray } from "../theme/semantic-color.stylex"; 7 + import { spacing } from "../theme/spacing.stylex"; 8 + import { 9 + fontFamily, 10 + fontSize, 11 + lineHeight, 12 + typeramp, 13 + } from "../theme/typography.stylex"; 14 + 15 + const styles = stylex.create({ 16 + blockquote: { 17 + borderLeftColor: gray.borderDim, 18 + borderLeftStyle: "solid", 19 + borderLeftWidth: 1, 20 + color: gray.textDim, 21 + fontFamily: fontFamily["serif"], 22 + marginBottom: 0, 23 + marginLeft: spacing["2"], 24 + marginRight: 0, 25 + marginTop: 0, 26 + paddingLeft: spacing["4"], 27 + }, 28 + unorderedList: { 29 + display: "flex", 30 + flexDirection: "column", 31 + gap: spacing["1"], 32 + listStyleType: "disc", 33 + margin: 0, 34 + paddingLeft: spacing["8"], 35 + }, 36 + orderedList: { 37 + display: "flex", 38 + flexDirection: "column", 39 + gap: spacing["1"], 40 + listStyleType: "decimal", 41 + margin: 0, 42 + paddingLeft: spacing["8"], 43 + }, 44 + listItem: { 45 + fontFamily: fontFamily["sans"], 46 + fontSize: fontSize["base"], 47 + lineHeight: lineHeight["base"], 48 + paddingLeft: spacing["1"], 49 + }, 50 + inlineCode: { 51 + borderRadius: radius["sm"], 52 + fontSize: "0.9em", 53 + padding: spacing["1"], 54 + }, 55 + underline: { 56 + textDecorationLine: "underline", 57 + }, 58 + }); 59 + 60 + export interface Heading1Props 61 + extends Omit<React.ComponentProps<"h1">, "style" | "className"> { 62 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 63 + } 64 + 65 + export const Heading1 = ({ style, ...props }: Heading1Props) => { 66 + // eslint-disable-next-line jsx-a11y/heading-has-content 67 + return <h1 {...stylex.props(typeramp.heading1, style)} {...props} />; 68 + }; 69 + 70 + export interface Heading2Props 71 + extends Omit<React.ComponentProps<"h2">, "style" | "className"> { 72 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 73 + } 74 + 75 + export const Heading2 = ({ style, ...props }: Heading2Props) => { 76 + // eslint-disable-next-line jsx-a11y/heading-has-content 77 + return <h2 {...stylex.props(typeramp.heading2, style)} {...props} />; 78 + }; 79 + 80 + export interface Heading3Props 81 + extends Omit<React.ComponentProps<"h3">, "style" | "className"> { 82 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 83 + } 84 + 85 + export const Heading3 = ({ style, ...props }: Heading3Props) => { 86 + // eslint-disable-next-line jsx-a11y/heading-has-content 87 + return <h3 {...stylex.props(typeramp.heading3, style)} {...props} />; 88 + }; 89 + 90 + export interface Heading4Props 91 + extends Omit<React.ComponentProps<"h4">, "style" | "className"> { 92 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 93 + } 94 + 95 + export const Heading4 = ({ style, ...props }: Heading4Props) => { 96 + // eslint-disable-next-line jsx-a11y/heading-has-content 97 + return <h4 {...stylex.props(typeramp.heading4, style)} {...props} />; 98 + }; 99 + 100 + export interface BodyProps 101 + extends Omit<React.ComponentProps<"p">, "style" | "className"> { 102 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 103 + variant?: "default" | "secondary"; 104 + } 105 + 106 + export const Body = ({ style, variant = "default", ...props }: BodyProps) => { 107 + const contextValue = useMemo( 108 + () => ({ 109 + style: [variant === "secondary" && gray.textDim, styles.underline], 110 + }), 111 + [variant], 112 + ); 113 + 114 + return ( 115 + <LinkContext value={contextValue}> 116 + <p {...stylex.props(typeramp.body, style)} {...props} /> 117 + </LinkContext> 118 + ); 119 + }; 120 + 121 + export interface SmallBodyProps 122 + extends Omit<React.ComponentProps<"p">, "style" | "className"> { 123 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 124 + variant?: "default" | "secondary"; 125 + } 126 + 127 + export const SmallBody = ({ 128 + style, 129 + variant = "default", 130 + ...props 131 + }: SmallBodyProps) => { 132 + return ( 133 + <p 134 + {...stylex.props( 135 + typeramp.smallBody, 136 + variant === "secondary" && gray.textDim, 137 + style, 138 + )} 139 + {...props} 140 + /> 141 + ); 142 + }; 143 + 144 + interface SubLabelProps 145 + extends Omit<React.ComponentProps<"p">, "style" | "className"> { 146 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 147 + variant?: "default" | "secondary"; 148 + } 149 + 150 + export const SubLabel = ({ 151 + style, 152 + variant = "default", 153 + ...props 154 + }: SubLabelProps) => { 155 + const contextValue = useMemo( 156 + () => ({ 157 + style: [variant === "secondary" && gray.textDim, styles.underline], 158 + }), 159 + [variant], 160 + ); 161 + 162 + return ( 163 + <LinkContext value={contextValue}> 164 + <p 165 + {...stylex.props( 166 + typeramp.sublabel, 167 + variant === "secondary" && gray.textDim, 168 + style, 169 + )} 170 + {...props} 171 + /> 172 + </LinkContext> 173 + ); 174 + }; 175 + 176 + export interface BlockquoteProps 177 + extends Omit<React.ComponentProps<"blockquote">, "style" | "className"> { 178 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 179 + } 180 + 181 + export const Blockquote = ({ style, ...props }: BlockquoteProps) => { 182 + return <blockquote {...stylex.props(styles.blockquote, style)} {...props} />; 183 + }; 184 + 185 + export interface UnorderedListProps 186 + extends Omit<React.ComponentProps<"ul">, "style" | "className"> { 187 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 188 + } 189 + 190 + export const UnorderedList = ({ style, ...props }: UnorderedListProps) => { 191 + return <ul {...stylex.props(styles.unorderedList, style)} {...props} />; 192 + }; 193 + 194 + export interface OrderedListProps 195 + extends Omit<React.ComponentProps<"ol">, "style" | "className"> { 196 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 197 + } 198 + 199 + export const OrderedList = ({ style, ...props }: OrderedListProps) => { 200 + return <ol {...stylex.props(styles.orderedList, style)} {...props} />; 201 + }; 202 + 203 + export interface ListItemProps 204 + extends Omit<React.ComponentProps<"li">, "style" | "className"> { 205 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 206 + } 207 + 208 + export const ListItem = ({ style, ...props }: ListItemProps) => { 209 + return <li {...stylex.props(styles.listItem, style)} {...props} />; 210 + }; 211 + 212 + export interface InlineCodeProps 213 + extends Omit<React.ComponentProps<"code">, "style" | "className"> { 214 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 215 + } 216 + 217 + export const InlineCode = ({ style, ...props }: InlineCodeProps) => { 218 + return ( 219 + <code 220 + {...stylex.props(styles.inlineCode, gray.bgSecondary, style)} 221 + {...props} 222 + /> 223 + ); 224 + };
+12
apps/docs/src/logo.svg
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <svg width="5355px" height="3786px" viewBox="0 0 5355 3786" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 3 + <title>logo</title> 4 + <g id="logo" stroke="none" fill="none" transform="translate(0.9778, 0)" fill-rule="evenodd" stroke-width="1"> 5 + <g id="Layer_1" transform="translate(1117.351, 496.0658)" fill="#61DAFB"> 6 + <g id="Group" fill-rule="nonzero"> 7 + <path d="M3119.93396,1389.62036 C3119.93396,1182.92626 2861.10536,987.043843 2464.27723,865.571309 C2555.85295,461.086847 2515.15263,139.280027 2335.81684,36.2509659 C2294.48058,12.0836553 2246.14895,0.635981858 2193.36572,0.635981858 L2193.36572,142.459936 C2222.61908,142.459936 2246.14895,148.183773 2265.86317,158.995464 C2352.35135,208.602049 2389.87196,397.488661 2360.6186,640.433731 C2353.62323,700.216026 2342.17627,763.178229 2328.18553,827.412397 C2203.5408,796.885268 2067.4491,773.353939 1924.36204,758.090375 C1838.5098,640.433731 1749.47785,533.588779 1659.80995,440.099446 C1867.12721,247.396943 2061.72562,141.823954 2194.00166,141.823954 L2194.00166,0 C2019.11747,0 1790.17817,124.652444 1558.69509,340.886276 C1327.21202,125.924408 1098.27272,2.54392743 923.388526,2.54392743 L923.388526,144.367882 C1055.02863,144.367882 1250.26298,249.304888 1457.58024,440.735428 C1368.54828,534.224761 1279.51633,640.433731 1194.93598,758.090375 C1051.21297,773.353939 915.121273,796.885268 790.476541,828.048379 C775.849863,764.450193 765.038841,702.759953 757.407531,643.61364 C727.518233,400.66857 764.402898,211.781959 850.255137,161.539392 C869.333413,150.091718 894.13517,145.003864 923.388526,145.003864 L923.388526,3.17990929 C869.969355,3.17990929 821.637724,14.6275827 779.665518,38.7948933 C600.965673,141.823954 560.901295,462.994793 653.112959,866.20729 C257.556717,988.315807 0,1183.56224 0,1389.62036 C0,1595.67848 258.828602,1792.19688 655.656729,1913.66941 C564.081007,2318.15387 604.781328,2639.96069 784.117116,2742.98975 C825.453379,2767.15706 873.78501,2778.60474 927.204181,2778.60474 C1102.08837,2778.60474 1331.02768,2653.95229 1562.51075,2437.71846 C1793.99382,2652.68033 2022.93313,2776.06081 2197.81732,2776.06081 C2251.23649,2776.06081 2299.56812,2764.61314 2341.54033,2740.44583 C2520.24017,2637.41676 2560.30455,2316.24593 2468.09289,1913.03343 C2862.37724,1791.56089 3119.93396,1595.67848 3119.93396,1389.62036 L3119.93396,1389.62036 Z M2291.93681,965.42046 C2268.40694,1047.46212 2239.15358,1132.04771 2206.08457,1216.63329 C2180.01093,1165.75475 2152.6654,1114.8762 2122.7761,1063.99765 C2093.52275,1013.1191 2062.36156,963.512515 2031.20038,915.177893 C2121.50422,928.533513 2208.62834,945.069041 2291.93681,965.42046 Z M2000.67514,1642.74114 C1951.07162,1728.59869 1900.19622,1810.00437 1847.41299,1885.68621 C1752.65756,1893.95397 1656.63024,1898.40585 1559.96698,1898.40585 C1463.30372,1898.40585 1367.91234,1893.95397 1273.79285,1886.32219 C1221.00962,1810.64035 1169.49828,1729.87065 1119.89476,1644.64908 C1071.56313,1561.33546 1027.6831,1476.74987 987.61872,1391.52831 C1027.04716,1306.30674 1071.56313,1221.08517 1119.25882,1137.77154 C1168.86234,1051.91399 1219.73774,970.508315 1272.52096,894.826474 C1367.2764,886.55871 1463.30372,882.106837 1559.96698,882.106837 C1656.63024,882.106837 1752.02162,886.55871 1846.14111,894.190492 C1898.92434,969.872333 1950.43568,1050.64203 2000.0392,1135.8636 C2048.37083,1219.17722 2092.25086,1303.76281 2132.31524,1388.98438 C2092.25086,1474.20595 2048.37083,1559.42752 2000.67514,1642.74114 Z M2206.08457,1560.0635 C2240.42547,1645.28507 2269.67882,1730.50664 2293.84464,1813.18428 C2210.53617,1833.5357 2122.7761,1850.70721 2031.83632,1864.06283 C2062.99751,1815.09222 2094.15869,1764.84966 2123.41204,1713.33513 C2152.6654,1662.45658 2180.01093,1610.94205 2206.08457,1560.0635 Z M1561.23886,2238.65614 C1502.09621,2177.60188 1442.95356,2109.55182 1384.44685,2035.14195 C1441.68167,2037.68587 1500.18838,2039.59382 1559.33104,2039.59382 C1618.47369,2039.59382 1678.25229,2038.32185 1736.12305,2035.14195 C1678.88823,2109.55182 1619.74558,2177.60188 1561.23886,2238.65614 Z M1088.09764,1864.06283 C997.7938,1850.70721 910.669676,1834.17168 827.361207,1813.82026 C850.89108,1731.7786 880.144435,1647.19301 913.213446,1562.60742 C939.287089,1613.48597 966.632617,1664.36452 996.521915,1715.24307 C1026.41121,1766.12162 1056.93645,1815.7282 1088.09764,1864.06283 Z M1558.05915,540.584579 C1617.20181,601.638838 1676.34446,669.688896 1734.85117,744.098774 C1677.61634,741.554846 1619.10963,739.646901 1559.96698,739.646901 C1500.82433,739.646901 1441.04573,740.918864 1383.17496,744.098774 C1440.40979,669.688896 1499.55244,601.638838 1558.05915,540.584579 Z M1087.46169,915.177893 C1056.30051,964.148497 1025.13933,1014.39106 995.885972,1065.90559 C966.632617,1116.78414 939.287089,1167.66269 913.213446,1218.54124 C878.87255,1133.31967 849.619195,1048.0981 825.453379,965.42046 C908.761848,945.705023 996.521915,928.533513 1087.46169,915.177893 Z M511.933721,1711.42718 C286.810072,1615.39392 141.179237,1489.46951 141.179237,1389.62036 C141.179237,1289.77121 286.810072,1163.21082 511.933721,1067.81354 C566.624777,1044.28221 626.403373,1023.29481 688.089797,1003.57937 C724.33852,1128.23182 772.034208,1257.97211 831.176862,1390.89232 C772.670151,1523.17655 725.610405,1652.28087 689.997624,1776.29733 C627.039316,1756.58189 567.26072,1734.95851 511.933721,1711.42718 Z M854.070792,2620.24525 C767.582611,2570.63867 730.062003,2381.75206 759.315358,2138.80699 C766.310726,2079.02469 777.757691,2016.06249 791.748426,1951.82832 C916.393158,1982.35545 1052.48486,2005.88678 1195.57192,2021.15034 C1281.42416,2138.80699 1370.45611,2245.65194 1460.12401,2339.14127 C1252.80675,2531.84378 1058.20834,2637.41676 925.932296,2637.41676 C897.314883,2636.78078 873.149068,2631.05695 854.070792,2620.24525 L854.070792,2620.24525 Z M2362.52643,2135.62708 C2392.41573,2378.57215 2355.53106,2567.45876 2269.67882,2617.70133 C2250.60055,2629.149 2225.79879,2634.23686 2196.54543,2634.23686 C2064.90533,2634.23686 1869.67098,2529.29985 1662.35372,2337.86931 C1751.38568,2244.37998 1840.41763,2138.17101 1924.99798,2020.51436 C2068.72099,2005.2508 2204.81269,1981.71947 2329.45742,1950.55636 C2344.0841,2014.79053 2355.53106,2076.48077 2362.52643,2135.62708 L2362.52643,2135.62708 Z M2607.3643,1711.42718 C2552.67324,1734.95851 2492.89464,1755.94591 2431.20822,1775.66135 C2394.9595,1651.0089 2347.26381,1521.2686 2288.12115,1388.3484 C2346.62787,1256.06417 2393.68761,1126.95985 2429.30039,1002.94339 C2492.2587,1022.65883 2552.0373,1044.28221 2608.00024,1067.81354 C2833.12389,1163.8468 2978.75472,1289.77121 2978.75472,1389.62036 C2978.75472,1489.46951 2832.48794,1616.0299 2607.3643,1711.42718 L2607.3643,1711.42718 Z" id="Shape"></path> 8 + </g> 9 + <path d="M1537.37834,1099.4829 C1545.02735,1098.47702 1553.10731,1099.16174 1560.81604,1099.16174 C1589.37451,1099.16174 1617.41357,1103.60261 1644.73816,1112.01928 C1679.60968,1122.76128 1712.08981,1139.93545 1740.75715,1162.52987 C1775.89405,1190.22336 1805.00822,1226.54711 1823.68958,1267.31325 C1858.64201,1343.58359 1858.38571,1436.01692 1822.57667,1511.96611 C1799.42324,1561.07316 1762.27826,1602.17408 1717.31944,1632.14671 C1680.63641,1656.60215 1637.73331,1671.57142 1594.08247,1676.87122 C1538.52074,1683.61849 1478.45443,1673.7589 1428.50641,1648.10898 C1334.7397,1599.95554 1270.99292,1503.04196 1269.73182,1396.83535 C1269.48913,1376.35874 1269.80743,1355.76018 1273.85459,1335.48277 C1280.44663,1302.45918 1291.94018,1270.53691 1309.20168,1241.56031 C1327.87397,1210.21369 1351.99288,1182.55201 1380.87494,1160.24997 C1414.74469,1134.09636 1454.10946,1115.2846 1495.79531,1105.71435 C1505.55336,1103.47438 1515.35011,1102.20236 1525.19388,1100.99838 L1528.67012,1100.57481 C1531.56864,1100.22174 1534.47131,1099.86541 1537.37834,1099.4829 Z M1440.28829,1582.05277 C1427.38628,1583.43854 1413.77812,1585.79095 1402.70469,1593.0505 C1405.19749,1593.65093 1408.05457,1593.05485 1410.65507,1593.0505 C1416.90117,1593.04035 1423.20727,1592.80467 1429.44687,1593.07878 C1445.06719,1593.76551 1461.34234,1596.26875 1476.42637,1600.4123 C1488.01412,1603.59545 1498.77315,1608.6274 1509.54524,1613.66442 L1512.23902,1614.92271 C1518.52742,1617.854 1524.84413,1620.73472 1531.35625,1623.19891 C1550.98501,1630.62598 1570.52415,1632.93415 1591.34546,1632.93415 L1593.25225,1632.93318 C1603.09908,1632.91995 1612.8672,1632.72906 1622.42421,1630.03352 C1617.1148,1627.20106 1609.51424,1627.7326 1603.63241,1626.55277 C1590.87061,1623.99224 1578.32347,1620.86608 1566.04881,1616.47888 C1546.68964,1609.55943 1528.85694,1599.16793 1509.6734,1591.90838 C1487.81565,1583.63651 1463.59446,1579.54953 1440.28829,1582.05277 Z M1459.80285,1527.06119 C1434.23516,1527.06119 1408.3762,1531.57312 1385.35841,1543.19449 C1379.78158,1546.01028 1374.48085,1549.36485 1369.45766,1553.08274 C1367.92685,1554.21616 1365.21288,1555.67227 1364.64696,1557.64252 C1364.07308,1559.64106 1366.125,1561.31545 1367.28937,1562.5939 C1373.04255,1559.52213 1378.5088,1556.27053 1384.63565,1553.93842 C1424.26105,1538.85878 1472.29796,1542.01974 1511.84169,1555.84631 C1531.56224,1562.74183 1549.73174,1573.05357 1568.93985,1581.14052 C1590.42177,1590.18468 1612.36265,1596.04903 1635.43392,1599.05625 C1662.64806,1602.60227 1693.67549,1599.72848 1718.5515,1587.42618 C1727.29258,1583.10352 1739.42919,1576.51619 1743.1254,1566.94484 C1738.56043,1567.3444 1734.45298,1569.30378 1730.11569,1570.65475 C1723.2191,1572.80266 1716.24011,1574.62426 1709.1556,1576.04629 C1685.14474,1580.86496 1659.61174,1581.85988 1635.43392,1577.48645 C1610.81165,1573.03264 1588.07413,1563.72547 1565.31061,1554.26664 L1562.27515,1553.00498 C1550.63735,1548.16833 1538.97057,1543.34664 1527.01968,1539.16769 C1505.55366,1531.66159 1482.54816,1527.06119 1459.80285,1527.06119 Z M1504.61407,1133.60828 C1473.96537,1140.39067 1446.50982,1153.59796 1420.05097,1170.24757 C1404.69012,1179.91319 1389.99637,1189.81522 1376.68527,1202.25529 C1356.89028,1220.75623 1341.76143,1243.24263 1328.5667,1266.72974 C1314.97155,1290.92897 1306.25505,1319.13178 1302.04207,1346.49704 C1297.90932,1373.34381 1297.22848,1401.57056 1301.96257,1428.43981 C1307.88054,1462.03199 1319.14478,1493.55458 1336.93339,1522.71025 C1342.91135,1519.91332 1347.1554,1513.53629 1352.11138,1509.24045 C1362.11874,1500.56685 1372.62552,1492.52776 1383.91289,1485.59018 C1388.09117,1483.02239 1392.38365,1481.02821 1396.9226,1479.20082 C1398.63482,1478.51119 1401.43407,1477.88103 1402.23995,1475.99707 C1403.52069,1473.00507 1401.1522,1467.79772 1400.74528,1464.69767 C1399.58381,1455.83117 1398.88273,1446.81384 1399.10172,1437.86685 C1399.73775,1411.80978 1404.59833,1385.3894 1413.85256,1361.00019 C1420.82649,1342.62325 1431.48,1325.93811 1444.10086,1310.96434 C1448.38322,1305.88316 1452.9359,1301.15368 1457.63457,1296.46192 C1458.21308,1295.88421 1458.82064,1295.32387 1459.43565,1294.76658 L1460.17587,1294.09838 C1462.27545,1292.20409 1464.36137,1290.27877 1465.58495,1287.7593 C1456.52296,1287.76511 1447.45953,1290.38292 1438.84277,1293.04062 C1420.27936,1298.76647 1402.19587,1307.26241 1386.80393,1319.24926 C1379.78303,1324.71767 1374.6413,1331.88512 1368.00129,1337.63997 C1365.96455,1339.40573 1362.31605,1341.77192 1359.50162,1340.4398 C1355.24961,1338.42822 1355.90588,1330.0454 1355.41874,1326.19264 C1353.54534,1311.37332 1359.14891,1292.62874 1366.27028,1279.78257 C1377.7022,1259.16128 1398.84008,1241.55301 1423.66478,1242.16794 C1434.3855,1242.43335 1443.77128,1246.16501 1454.02076,1248.60081 C1451.42171,1244.90179 1447.93728,1242.20565 1444.62486,1239.17377 C1436.50897,1231.74453 1427.63201,1224.95924 1417.88268,1219.82657 C1415.26773,1218.45023 1412.51915,1217.43388 1409.75022,1216.45975 L1408.08733,1215.8778 C1407.25557,1215.58681 1406.42402,1215.29391 1405.59574,1214.9905 C1403.51346,1214.22836 1400.89128,1213.17906 1400.10781,1210.86073 C1398.65722,1206.56707 1406.37487,1202.59031 1409.20954,1200.77959 C1420.16806,1193.78038 1433.60492,1188.02263 1446.79315,1187.69848 C1467.40342,1187.1916 1487.541,1198.64836 1496.03056,1218.14421 C1499.41855,1225.92354 1500.09804,1234.21057 1500.70889,1242.5268 L1500.82326,1244.08631 C1500.88069,1244.86613 1500.93897,1245.64593 1501.00027,1246.42534 C1507.47332,1241.13895 1512.02599,1233.35946 1518.34654,1227.69743 C1533.12846,1214.45461 1553.35856,1208.57576 1572.55366,1214.53728 C1589.90066,1219.92375 1604.97747,1231.9164 1613.85081,1247.87566 C1616.17232,1252.05111 1622.64899,1262.25625 1617.96983,1266.41503 C1614.3076,1269.67098 1609.66313,1267.13366 1605.80069,1265.78341 C1601.8125,1264.38966 1597.64361,1263.69061 1593.51375,1262.86103 C1583.01058,1260.75155 1570.79301,1260.97055 1560.26672,1262.82477 C1553.46119,1264.02346 1546.81034,1266.44983 1540.02939,1267.4549 L1540.02939,1268.90522 C1558.57112,1269.05895 1576.50717,1279.65567 1585.65516,1295.73603 C1589.44532,1302.39805 1591.33824,1310.02308 1592.79026,1317.49075 C1594.5856,1326.72055 1593.32366,1336.77631 1590.80628,1345.77188 C1589.9621,1348.78781 1588.42984,1353.9009 1584.82977,1354.5956 C1582.28492,1355.08653 1580.12387,1352.54848 1578.67112,1350.83711 C1574.86289,1346.35128 1571.2404,1342.08663 1566.77157,1338.21284 C1555.46613,1328.41379 1543.51238,1319.37471 1531.35625,1310.65904 C1524.90199,1306.03109 1517.83266,1300.01446 1510.39617,1297.18635 C1512.48712,1302.23199 1514.53542,1306.92303 1515.24662,1312.41465 C1517.33829,1328.56825 1510.5877,1343.77263 1500.4553,1355.92409 C1497.36333,1359.63254 1494.05597,1363.36782 1490.15884,1366.24887 C1488.54275,1367.44393 1486.51468,1369.00447 1484.37675,1368.66655 C1477.67386,1367.60564 1476.87593,1357.4839 1475.84816,1352.2983 C1472.36734,1334.73427 1473.76516,1317.28988 1478.59466,1300.08698 C1474.29784,1302.2697 1471.19213,1307.04631 1468.49406,1310.96434 C1462.55802,1319.58573 1457.40762,1328.70458 1453.71431,1338.52031 C1439.00539,1377.62006 1439.14705,1423.41664 1458.20194,1461.05811 C1460.32975,1465.26184 1463.55905,1464.69767 1467.75323,1464.69767 C1472.80895,1464.69767 1477.91309,1464.44387 1482.93123,1465.11536 C1484.88413,1465.37642 1487.59593,1465.14364 1489.14192,1466.58526 C1490.99291,1468.31258 1490.00634,1471.27412 1489.57991,1473.39956 C1488.3888,1479.3415 1487.99056,1484.74174 1487.99056,1490.80333 C1495.9019,1489.57492 1498.09476,1476.86871 1500.89908,1470.49893 C1504.07706,1463.28289 1507.3107,1456.0596 1510.25089,1448.74421 C1511.69641,1445.14888 1513.6298,1441.12861 1513.12242,1437.1417 C1512.55289,1432.66095 1509.32142,1427.91044 1507.06929,1424.08887 C1502.80645,1416.85687 1497.96105,1409.41458 1494.82282,1401.60899 C1492.31412,1395.36901 1494.65008,1387.5714 1501.72375,1385.34226 C1505.62522,1384.1124 1509.7876,1386.52427 1512.32666,1389.34948 C1515.93315,1393.3614 1518.67364,1398.69976 1521.26801,1403.88732 L1522.0059,1405.3641 C1522.98612,1407.32427 1523.95508,1409.24214 1524.95258,1411.03604 L1555.1062,1465.42283 C1557.66694,1470.0283 1560.23347,1474.6287 1562.85348,1479.20082 C1563.87546,1480.9847 1564.91552,1483.73885 1567.00936,1484.49954 C1568.87408,1485.17684 1571.42182,1484.21383 1573.27642,1483.84182 C1578.09146,1482.87591 1582.89927,1481.83314 1587.73166,1480.9586 C1593.52242,1479.91074 1602.34951,1480.10726 1606.52346,1475.57503 C1600.41901,1473.63813 1593.36269,1473.75271 1587.00889,1474.18925 C1586.22321,1474.2433 1585.41997,1474.34419 1584.60911,1474.45086 L1583.91244,1474.54275 C1581.00382,1474.92353 1578.03411,1475.22838 1575.45555,1473.58665 C1570.23649,1470.26398 1566.76723,1462.58891 1563.57407,1457.4461 C1555.70103,1444.76455 1548.28333,1431.89228 1540.7442,1419.01276 C1538.34102,1414.90692 1535.86628,1410.83299 1533.5361,1406.68509 C1532.63554,1405.08104 1531.3006,1402.96721 1532.59073,1401.19855 C1533.93235,1399.36006 1536.8405,1399.23436 1539.486,1399.22865 L1540.63853,1399.22883 C1541.48104,1399.22712 1542.26426,1399.21253 1542.92044,1399.12605 C1553.68091,1397.70765 1564.591,1396.53289 1575.44471,1396.53289 C1574.5998,1393.58875 1572.18361,1390.26101 1572.95624,1387.10875 C1574.68509,1380.05587 1584.81459,1377.84921 1589.52555,1382.91009 C1592.68835,1386.30745 1594.52634,1390.98326 1596.58404,1395.08258 C1599.29945,1400.49442 1602.39143,1405.72571 1605.2991,1411.03604 C1610.38879,1420.33328 1615.94754,1429.37526 1621.18178,1438.59201 C1621.64941,1439.41555 1622.13242,1440.23451 1622.62001,1441.05306 L1623.35349,1442.2811 C1625.55616,1445.9674 1627.74247,1449.68746 1628.92907,1453.82031 C1610.75017,1452.98711 1597.1037,1431.84732 1589.17718,1417.56245 C1588.54476,1419.8496 1589.57253,1421.89091 1590.39431,1424.08887 C1592.10219,1428.65373 1594.14327,1433.00105 1596.71197,1437.1417 C1600.38071,1443.05463 1604.58646,1449.14377 1610.13726,1453.4367 C1619.98778,1461.05448 1632.97725,1461.09654 1644.82982,1460.28219 C1652.43038,1459.75935 1661.92747,1456.2931 1669.40371,1458.64478 C1676.86767,1460.99284 1679.87219,1469.23933 1675.4395,1475.5743 C1672.11913,1480.31973 1667.68716,1482.1116 1662.1761,1482.8266 C1666.07323,1491.20144 1671.17882,1498.97368 1674.87936,1507.48195 C1676.42101,1511.02652 1678.02771,1516.45867 1681.72174,1518.32885 C1684.1813,1519.57322 1687.70476,1518.41442 1690.3638,1518.35931 C1687.69536,1511.28612 1682.69891,1505.284 1680.24514,1498.0549 C1687.72644,1498.3979 1694.96201,1502.30868 1701.92799,1504.80467 C1717.73912,1510.4696 1733.32041,1516.74438 1748.90749,1523.00031 C1754.4648,1525.23017 1760.05536,1527.43755 1765.53101,1529.86175 C1767.5345,1530.74862 1770.30846,1532.82184 1772.523,1531.54557 C1774.3299,1530.50352 1775.49861,1528.01913 1776.61311,1526.33604 C1779.73038,1521.62687 1782.55349,1516.73786 1785.34985,1511.83289 C1796.54904,1492.18983 1804.76323,1470.66644 1810.25043,1448.74421 C1828.34983,1376.44313 1812.82274,1296.66786 1769.32912,1236.27314 C1752.61815,1213.06883 1731.60241,1193.00808 1708.43284,1176.39473 C1650.44929,1134.82074 1574.37719,1118.17113 1504.61407,1133.60828 Z M1623.14697,1494.16008 C1607.776,1498.17456 1591.93524,1501.81339 1576.16747,1503.85616 C1578.24107,1510.92862 1583.30835,1517.80819 1587.01757,1524.16056 C1588.45153,1526.61667 1589.98595,1529.90599 1592.8199,1530.97197 C1596.02101,1532.17573 1599.88923,1530.22215 1602.90965,1529.23667 C1601.5111,1525.40348 1599.15779,1521.95391 1597.23163,1518.35931 C1596.43804,1516.87709 1595.21007,1515.1222 1595.86417,1513.36225 C1597.10081,1510.03668 1602.23459,1510.23247 1605.07793,1509.65452 C1612.5708,1508.13169 1619.98561,1506.23105 1627.48354,1504.72635 C1630.24594,1504.17161 1634.09247,1502.66908 1636.8686,1503.59728 C1640.50626,1504.81337 1641.61498,1509.15561 1644.25884,1511.54718 C1647.2901,1514.289 1651.82326,1514.71032 1655.67124,1515.45868 C1653.32299,1510.16503 1649.42008,1505.53345 1646.91788,1500.23038 C1645.46296,1497.14628 1644.26751,1492.60897 1641.0823,1490.82654 C1636.69442,1488.37115 1627.63243,1492.98823 1623.14697,1494.16008 Z M1526.29692,1458.89641 C1525.57344,1468.08996 1522.75828,1475.56995 1518.34654,1483.55176 C1523.40226,1484.1928 1528.55916,1484.42122 1533.52454,1485.65399 C1537.24604,1486.57784 1540.67554,1488.33997 1544.36596,1489.35302 C1542.39282,1483.94479 1538.73203,1479.1196 1535.89592,1474.12472 C1533.03234,1469.0827 1530.46942,1462.95584 1526.29692,1458.89641 Z" id="Combined-Shape-Copy" fill-rule="nonzero"></path> 10 + </g> 11 + </g> 12 + </svg>
+109
apps/docs/src/routeTree.gen.ts
··· 1 + /* eslint-disable */ 2 + 3 + // @ts-nocheck 4 + 5 + // noinspection JSUnusedGlobalSymbols 6 + 7 + // This file was automatically generated by TanStack Router. 8 + // You should NOT make any changes in this file as it will be overwritten. 9 + // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. 10 + 11 + import { Route as rootRouteImport } from './routes/__root' 12 + import { Route as DocsRouteImport } from './routes/_docs' 13 + import { Route as IndexRouteImport } from './routes/index' 14 + import { Route as DocsInvoiceAppRouteImport } from './routes/_docs.invoice-app' 15 + 16 + const DocsRoute = DocsRouteImport.update({ 17 + id: '/_docs', 18 + getParentRoute: () => rootRouteImport, 19 + } as any) 20 + const IndexRoute = IndexRouteImport.update({ 21 + id: '/', 22 + path: '/', 23 + getParentRoute: () => rootRouteImport, 24 + } as any) 25 + const DocsInvoiceAppRoute = DocsInvoiceAppRouteImport.update({ 26 + id: '/invoice-app', 27 + path: '/invoice-app', 28 + getParentRoute: () => DocsRoute, 29 + } as any) 30 + 31 + export interface FileRoutesByFullPath { 32 + '/': typeof IndexRoute 33 + '/invoice-app': typeof DocsInvoiceAppRoute 34 + } 35 + export interface FileRoutesByTo { 36 + '/': typeof IndexRoute 37 + '/invoice-app': typeof DocsInvoiceAppRoute 38 + } 39 + export interface FileRoutesById { 40 + __root__: typeof rootRouteImport 41 + '/': typeof IndexRoute 42 + '/_docs': typeof DocsRouteWithChildren 43 + '/_docs/invoice-app': typeof DocsInvoiceAppRoute 44 + } 45 + export interface FileRouteTypes { 46 + fileRoutesByFullPath: FileRoutesByFullPath 47 + fullPaths: '/' | '/invoice-app' 48 + fileRoutesByTo: FileRoutesByTo 49 + to: '/' | '/invoice-app' 50 + id: '__root__' | '/' | '/_docs' | '/_docs/invoice-app' 51 + fileRoutesById: FileRoutesById 52 + } 53 + export interface RootRouteChildren { 54 + IndexRoute: typeof IndexRoute 55 + DocsRoute: typeof DocsRouteWithChildren 56 + } 57 + 58 + declare module '@tanstack/react-router' { 59 + interface FileRoutesByPath { 60 + '/_docs': { 61 + id: '/_docs' 62 + path: '' 63 + fullPath: '' 64 + preLoaderRoute: typeof DocsRouteImport 65 + parentRoute: typeof rootRouteImport 66 + } 67 + '/': { 68 + id: '/' 69 + path: '/' 70 + fullPath: '/' 71 + preLoaderRoute: typeof IndexRouteImport 72 + parentRoute: typeof rootRouteImport 73 + } 74 + '/_docs/invoice-app': { 75 + id: '/_docs/invoice-app' 76 + path: '/invoice-app' 77 + fullPath: '/invoice-app' 78 + preLoaderRoute: typeof DocsInvoiceAppRouteImport 79 + parentRoute: typeof DocsRoute 80 + } 81 + } 82 + } 83 + 84 + interface DocsRouteChildren { 85 + DocsInvoiceAppRoute: typeof DocsInvoiceAppRoute 86 + } 87 + 88 + const DocsRouteChildren: DocsRouteChildren = { 89 + DocsInvoiceAppRoute: DocsInvoiceAppRoute, 90 + } 91 + 92 + const DocsRouteWithChildren = DocsRoute._addFileChildren(DocsRouteChildren) 93 + 94 + const rootRouteChildren: RootRouteChildren = { 95 + IndexRoute: IndexRoute, 96 + DocsRoute: DocsRouteWithChildren, 97 + } 98 + export const routeTree = rootRouteImport 99 + ._addFileChildren(rootRouteChildren) 100 + ._addFileTypes<FileRouteTypes>() 101 + 102 + import type { getRouter } from './router.tsx' 103 + import type { createStart } from '@tanstack/react-start' 104 + declare module '@tanstack/react-start' { 105 + interface Register { 106 + ssr: true 107 + router: Awaited<ReturnType<typeof getRouter>> 108 + } 109 + }
+13
apps/docs/src/router.tsx
··· 1 + import { createRouter } from '@tanstack/react-router' 2 + 3 + // Import the generated route tree 4 + import { routeTree } from './routeTree.gen' 5 + 6 + // Create a new router instance 7 + export const getRouter = () => { 8 + return createRouter({ 9 + routeTree, 10 + scrollRestoration: true, 11 + defaultPreloadStaleTime: 0, 12 + }) 13 + }
+47
apps/docs/src/routes/__root.tsx
··· 1 + import { HeadContent, Scripts, createRootRoute } from "@tanstack/react-router"; 2 + import { TanStackRouterDevtoolsPanel } from "@tanstack/react-router-devtools"; 3 + import { TanStackDevtools } from "@tanstack/react-devtools"; 4 + 5 + export const Route = createRootRoute({ 6 + head: () => ({ 7 + meta: [ 8 + { 9 + charSet: "utf-8", 10 + }, 11 + { 12 + name: "viewport", 13 + content: "width=device-width, initial-scale=1", 14 + }, 15 + { 16 + title: "TanStack Start Starter", 17 + }, 18 + ], 19 + }), 20 + 21 + shellComponent: RootDocument, 22 + }); 23 + 24 + function RootDocument({ children }: { children: React.ReactNode }) { 25 + return ( 26 + <html lang="en"> 27 + <head> 28 + <HeadContent /> 29 + </head> 30 + <body> 31 + {children} 32 + <TanStackDevtools 33 + config={{ 34 + position: "bottom-right", 35 + }} 36 + plugins={[ 37 + { 38 + name: "Tanstack Router", 39 + render: <TanStackRouterDevtoolsPanel />, 40 + }, 41 + ]} 42 + /> 43 + <Scripts /> 44 + </body> 45 + </html> 46 + ); 47 + }
+131
apps/docs/src/routes/_docs.invoice-app.tsx
··· 1 + import { Avatar } from "@/components/avatar"; 2 + import { Button } from "@/components/button"; 3 + import { 4 + Card, 5 + CardBody, 6 + CardDescription, 7 + CardHeader, 8 + CardTitle, 9 + } from "@/components/card"; 10 + import { Flex } from "@/components/flex"; 11 + import { Grid, GridItem } from "@/components/grid"; 12 + import { IconButton } from "@/components/icon-button"; 13 + import { Link } from "@/components/link"; 14 + import { Menu, MenuItem, MenuSeparator } from "@/components/menu"; 15 + import { Separator } from "@/components/separator"; 16 + import { TextField } from "@/components/text-field"; 17 + import { SmallBody } from "@/components/typography"; 18 + import { createFileRoute } from "@tanstack/react-router"; 19 + import { MoreHorizontal } from "lucide-react"; 20 + import { Fragment } from "react/jsx-runtime"; 21 + import * as stylex from "@stylexjs/stylex"; 22 + 23 + const styles = stylex.create({ 24 + grow: { 25 + flexGrow: 1, 26 + }, 27 + }); 28 + 29 + export const Route = createFileRoute("/_docs/invoice-app")({ 30 + component: RouteComponent, 31 + }); 32 + 33 + function YourTeam() { 34 + const members = [ 35 + { 36 + name: "Oliver Chen", 37 + email: "oliver.chen@example.com", 38 + avatar: 39 + "https://images.unsplash.com/photo-1544005313-94ddf0286df2?&w=64&h=64&dpr=2&q=70&crop=faces&fit=crop", 40 + }, 41 + { 42 + name: "Amelia Rodriguez", 43 + email: "amelia.r@example.com", 44 + avatar: 45 + "https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?&w=64&h=64&dpr=2&q=70&crop=faces&fit=crop", 46 + }, 47 + { 48 + name: "Theodore Kim", 49 + email: "theo.kim@example.com", 50 + avatar: 51 + "https://images.unsplash.com/photo-1526510747491-58f928ec870f?&w=64&h=64&dpr=2&q=70&crop=focalpoint&fp-x=0.48&fp-y=0.48&fp-z=1.3&fit=crop", 52 + }, 53 + { 54 + name: "Sofia Patel", 55 + email: "sofia.patel@example.com", 56 + avatar: 57 + "https://images.unsplash.com/photo-1541823709867-1b206113eafd?&w=64&h=64&dpr=2&q=70&crop=focalpoint&fp-x=0.5&fp-y=0.3&fp-z=1.5&fit=crop", 58 + }, 59 + { 60 + name: "Mateo Garcia", 61 + email: "m.garcia@example.com", 62 + avatar: 63 + "https://images.unsplash.com/photo-1532073150508-0c1df022bdd1?&w=64&h=64&dpr=2&q=70&crop=focalpoint&fp-x=0.48&fp-y=0.35&fp-z=2&fit=crop", 64 + }, 65 + ]; 66 + 67 + return ( 68 + <Card> 69 + <CardHeader> 70 + <CardTitle>Your Team</CardTitle> 71 + <CardDescription>Invite and manage your team members.</CardDescription> 72 + </CardHeader> 73 + <CardBody> 74 + <Flex direction="column" gap="8"> 75 + <Flex align="center" gap="2"> 76 + <TextField 77 + aria-label="Email" 78 + placeholder="you@example.com" 79 + style={styles.grow} 80 + /> 81 + <Button>Invite</Button> 82 + </Flex> 83 + 84 + <Grid 85 + columns="auto max-content 1fr auto" 86 + columnGap="4" 87 + rowGap="5" 88 + alignItems="center" 89 + > 90 + {members.map((member, index) => ( 91 + <Fragment key={member.email}> 92 + <Avatar 93 + size="lg" 94 + src={member.avatar} 95 + fallback={member.name.charAt(0)} 96 + /> 97 + <Link href={`mailto:${member.email}`}>{member.name}</Link> 98 + <SmallBody variant="secondary">{member.email}</SmallBody> 99 + <Menu 100 + trigger={ 101 + <IconButton label="More" variant="tertiary"> 102 + <MoreHorizontal /> 103 + </IconButton> 104 + } 105 + > 106 + <MenuItem>View profile</MenuItem> 107 + <MenuItem>Change role</MenuItem> 108 + <MenuSeparator /> 109 + <MenuItem variant="destructive">Remove</MenuItem> 110 + </Menu> 111 + {index < members.length - 1 && ( 112 + <GridItem columnStart={1} columnEnd={-1}> 113 + <Separator /> 114 + </GridItem> 115 + )} 116 + </Fragment> 117 + ))} 118 + </Grid> 119 + </Flex> 120 + </CardBody> 121 + </Card> 122 + ); 123 + } 124 + 125 + function RouteComponent() { 126 + return ( 127 + <div> 128 + <YourTeam /> 129 + </div> 130 + ); 131 + }
+13
apps/docs/src/routes/_docs.tsx
··· 1 + import { createFileRoute, Outlet } from "@tanstack/react-router"; 2 + 3 + export const Route = createFileRoute("/_docs")({ 4 + component: RouteComponent, 5 + }); 6 + 7 + function RouteComponent() { 8 + return ( 9 + <div> 10 + <Outlet /> 11 + </div> 12 + ); 13 + }
+9
apps/docs/src/routes/index.tsx
··· 1 + import { createFileRoute } from "@tanstack/react-router"; 2 + 3 + export const Route = createFileRoute("/")({ 4 + component: App, 5 + }); 6 + 7 + function App() { 8 + return <div>foo</div>; 9 + }
+28
apps/docs/tsconfig.json
··· 1 + { 2 + "include": ["**/*.ts", "**/*.tsx"], 3 + "compilerOptions": { 4 + "target": "ES2022", 5 + "jsx": "react-jsx", 6 + "module": "ESNext", 7 + "lib": ["ES2022", "DOM", "DOM.Iterable"], 8 + "types": ["vite/client"], 9 + 10 + /* Bundler mode */ 11 + "moduleResolution": "bundler", 12 + "allowImportingTsExtensions": true, 13 + "verbatimModuleSyntax": false, 14 + "noEmit": true, 15 + 16 + /* Linting */ 17 + "skipLibCheck": true, 18 + "strict": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "noFallthroughCasesInSwitch": true, 22 + "noUncheckedSideEffectImports": true, 23 + "baseUrl": ".", 24 + "paths": { 25 + "@/*": ["./src/*"], 26 + } 27 + } 28 + }
+23
apps/docs/vite.config.ts
··· 1 + import { defineConfig } from "vite"; 2 + import { tanstackStart } from "@tanstack/react-start/plugin/vite"; 3 + import viteReact from "@vitejs/plugin-react"; 4 + import viteTsConfigPaths from "vite-tsconfig-paths"; 5 + import tailwindcss from "@tailwindcss/vite"; 6 + import { nitroV2Plugin } from "@tanstack/nitro-v2-vite-plugin"; 7 + import stylexPlugin from "unplugin-stylex/vite"; 8 + 9 + const config = defineConfig({ 10 + plugins: [ 11 + stylexPlugin(), 12 + nitroV2Plugin(), 13 + // this is the plugin that enables path aliases 14 + viteTsConfigPaths({ 15 + projects: ["./tsconfig.json"], 16 + }), 17 + tailwindcss(), 18 + tanstackStart(), 19 + viteReact(), 20 + ], 21 + }); 22 + 23 + export default config;
+3 -1
apps/example/src/components/KitchenSink.tsx
··· 840 840 } 841 841 842 842 export function KitchenSink() { 843 - return <BadgeExample />; 844 843 return ( 845 844 <Flex 846 845 direction="column" 847 846 gap="10" 848 847 style={[gray.bg, gray.text, styles.container]} 849 848 > 849 + <TitleCard title="Badges"> 850 + <BadgeExample /> 851 + </TitleCard> 850 852 <TitleCard title="Avatars"> 851 853 <AvatarExample /> 852 854 </TitleCard>
+12 -3
packages/hip-ui/src/cli/install.tsx
··· 22 22 import { dateFieldConfig } from "../components/date-field/date-field-config.js"; 23 23 import { dialogConfig } from "../components/dialog/dialog-config.js"; 24 24 import { flexConfig } from "../components/flex/flex-config.js"; 25 + import { gridConfig } from "../components/grid/grid-config.js"; 25 26 import { iconButtonConfig } from "../components/icon-button/icon-button-config.js"; 26 27 import { labelConfig } from "../components/label/label-config.js"; 27 28 import { linkConfig } from "../components/link/link-config.js"; ··· 80 81 dialogConfig, 81 82 avatarConfig, 82 83 badgeConfig, 84 + gridConfig, 83 85 ]; 84 86 85 87 function StringSetting({ ··· 88 90 onChange, 89 91 onSubmit, 90 92 isEditing, 93 + placeholder, 91 94 }: { 92 95 label: string; 93 96 defaultValue: string | undefined; 94 97 onChange: (value: string) => void; 95 98 onSubmit: () => void; 96 99 isEditing: boolean; 100 + placeholder: string; 97 101 }) { 98 102 return ( 99 103 <Box gap={1}> ··· 102 106 <TextInput 103 107 defaultValue={defaultValue} 104 108 onChange={onChange} 105 - placeholder="src/components" 109 + placeholder={placeholder} 106 110 onSubmit={onSubmit} 107 111 /> 108 112 ) : ( ··· 165 169 166 170 <StringSetting 167 171 label="Component directory:" 172 + placeholder="src/components" 168 173 defaultValue={value} 169 174 onChange={setValue} 170 175 onSubmit={() => { 171 176 setStep(step + 1); 177 + 178 + if (!value) { 179 + setValue("src/components"); 180 + } 172 181 }} 173 182 isEditing={step === 0} 174 183 /> ··· 207 216 208 217 if ( 209 218 config.componentDir !== 210 - (loadedConfig?.config as ConfigOptions).componentDir || 219 + (loadedConfig?.config as ConfigOptions | undefined)?.componentDir || 211 220 config.packageManager !== 212 - (loadedConfig?.config as ConfigOptions).packageManager 221 + (loadedConfig?.config as ConfigOptions | undefined)?.packageManager 213 222 ) { 214 223 setConfig(loadedConfig, config as ConfigOptions); 215 224 }
+1
packages/hip-ui/src/components/alert-dialog/alert-dialog-config.ts
··· 8 8 "lucide-react": "^0.545.0", 9 9 "@react-stately/utils": "^3.10.8", 10 10 "react-stately": "^3.42.0", 11 + "@stylexjs/stylex": "^0.16.2", 11 12 }, 12 13 };
+1 -1
packages/hip-ui/src/components/avatar/index.tsx
··· 76 76 "style" | "className" | "children" 77 77 > { 78 78 style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 79 - src: string; 79 + src?: string; 80 80 alt?: string; 81 81 fallback: React.ReactNode; 82 82 size?: Size | "xl";
+3 -3
packages/hip-ui/src/components/checkbox/index.tsx
··· 75 75 }: CheckboxGroupProps) { 76 76 return ( 77 77 <AriaCheckboxGroup {...props} {...stylex.props(styles.group, style)}> 78 - {label !== null && <Label size={size}>{label}</Label>} 78 + {label != null && <Label size={size}>{label}</Label>} 79 79 <Flex direction="column" gap="2"> 80 80 {children} 81 81 </Flex> ··· 103 103 ? [gray.bgSolid, gray.border, styles.checked] 104 104 : isSelected 105 105 ? [primary.bgSolid, primary.borderInteractive, styles.checked] 106 - : [gray.borderInteractive] 106 + : [gray.borderInteractive], 107 107 )} 108 108 > 109 109 {isIndeterminate ? ( ··· 112 112 <Check size={16} /> 113 113 ) : null} 114 114 </div> 115 - {children !== null && ( 115 + {children != null && ( 116 116 <Flex direction="column" gap="1"> 117 117 {children} 118 118 </Flex>
+3 -3
packages/hip-ui/src/components/color-field/index.tsx
··· 41 41 42 42 return ( 43 43 <AriaColorField {...props} {...stylex.props(inputStyles.field, style)}> 44 - {label !== null && <Label size={size}>{label}</Label>} 44 + {label != null && <Label size={size}>{label}</Label>} 45 45 {/* 46 46 This onClick is specifically for mouse users not clicking directly on the input. 47 47 A keyboard user would not encounter the same issue. ··· 51 51 {...stylex.props(inputStyles.wrapper)} 52 52 onClick={() => inputRef.current?.focus()} 53 53 > 54 - {prefix !== null && ( 54 + {prefix != null && ( 55 55 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 56 56 )} 57 57 <Input ··· 59 59 ref={inputRef} 60 60 {...stylex.props(inputStyles.input)} 61 61 /> 62 - {suffix !== null && ( 62 + {suffix != null && ( 63 63 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 64 64 )} 65 65 </div>
+2 -2
packages/hip-ui/src/components/combobox/index.tsx
··· 91 91 <AriaComboBox {...props} {...stylex.props(inputStyles.field, style)}> 92 92 {label && <Label size={size}>{label}</Label>} 93 93 <Button {...stylex.props(inputStyles.wrapper)}> 94 - {prefix !== null && ( 94 + {prefix != null && ( 95 95 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 96 96 )} 97 97 <Input 98 98 {...stylex.props(inputStyles.input)} 99 99 placeholder={placeholder} 100 100 /> 101 - {suffix !== null && ( 101 + {suffix != null && ( 102 102 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 103 103 )} 104 104 <div {...stylex.props(inputStyles.addon)}>
+3 -3
packages/hip-ui/src/components/date-field/index.tsx
··· 40 40 41 41 return ( 42 42 <AriaDateField {...props} {...stylex.props(inputStyles.field, style)}> 43 - {label !== null && <Label size={size}>{label}</Label>} 43 + {label != null && <Label size={size}>{label}</Label>} 44 44 {/* 45 45 This onClick is specifically for mouse users not clicking directly on the input. 46 46 A keyboard user would not encounter the same issue. ··· 50 50 {...stylex.props(inputStyles.wrapper)} 51 51 onClick={() => inputRef.current?.focus()} 52 52 > 53 - {prefix !== null && ( 53 + {prefix != null && ( 54 54 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 55 55 )} 56 56 <DateInput {...stylex.props(inputStyles.input)} ref={inputRef}> 57 57 {(segment) => <DateSegment segment={segment} />} 58 58 </DateInput> 59 - {suffix !== null && ( 59 + {suffix != null && ( 60 60 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 61 61 )} 62 62 </div>
+7
packages/hip-ui/src/components/grid/grid-config.ts
··· 1 + import { ComponentConfig } from "../../types"; 2 + 3 + export const gridConfig: ComponentConfig = { 4 + name: "grid", 5 + filepath: "./index.tsx", 6 + hipDependencies: ["../theme/spacing.stylex.tsx"], 7 + };
+258
packages/hip-ui/src/components/grid/index.tsx
··· 1 + import * as stylex from "@stylexjs/stylex"; 2 + 3 + import { Spacing, spacing } from "../theme/spacing.stylex"; 4 + 5 + const styles = stylex.create({ 6 + base: { display: "grid" }, 7 + 8 + rows: (template: string) => ({ gridTemplateRows: template }), 9 + columns: (template: string) => ({ gridTemplateColumns: template }), 10 + 11 + "justify-content-start": { justifyContent: "flex-start" }, 12 + "justify-content-end": { justifyContent: "flex-end" }, 13 + "justify-content-center": { justifyContent: "center" }, 14 + "justify-content-between": { justifyContent: "space-between" }, 15 + "justify-content-around": { justifyContent: "space-around" }, 16 + "justify-content-evenly": { justifyContent: "space-evenly" }, 17 + 18 + "align-items-stretch": { alignItems: "stretch" }, 19 + "align-items-start": { alignItems: "flex-start" }, 20 + "align-items-end": { alignItems: "flex-end" }, 21 + "align-items-center": { alignItems: "center" }, 22 + "align-items-baseline": { alignItems: "baseline" }, 23 + 24 + "align-content-start": { alignContent: "start" }, 25 + "align-content-end": { alignContent: "end" }, 26 + "align-content-center": { alignContent: "center" }, 27 + "align-content-between": { alignContent: "space-between" }, 28 + "align-content-around": { alignContent: "space-around" }, 29 + "align-content-evenly": { alignContent: "space-evenly" }, 30 + 31 + "justify-items-start": { justifyItems: "start" }, 32 + "justify-items-end": { justifyItems: "end" }, 33 + "justify-items-center": { justifyItems: "center" }, 34 + 35 + "row-gap-0.5": { gap: spacing["0.5"] }, 36 + "row-gap-1": { gap: spacing["1"] }, 37 + "row-gap-1.5": { gap: spacing["1.5"] }, 38 + "row-gap-2": { gap: spacing["2"] }, 39 + "row-gap-2.5": { gap: spacing["2.5"] }, 40 + "row-gap-3": { gap: spacing["3"] }, 41 + "row-gap-3.5": { gap: spacing["3.5"] }, 42 + "row-gap-4": { gap: spacing["4"] }, 43 + "row-gap-5": { gap: spacing["5"] }, 44 + "row-gap-6": { gap: spacing["6"] }, 45 + "row-gap-7": { gap: spacing["7"] }, 46 + "row-gap-8": { gap: spacing["8"] }, 47 + "row-gap-9": { gap: spacing["9"] }, 48 + "row-gap-10": { gap: spacing["10"] }, 49 + "row-gap-11": { gap: spacing["11"] }, 50 + "row-gap-12": { gap: spacing["12"] }, 51 + "row-gap-14": { gap: spacing["14"] }, 52 + "row-gap-16": { gap: spacing["16"] }, 53 + "row-gap-20": { gap: spacing["20"] }, 54 + "row-gap-24": { gap: spacing["24"] }, 55 + "row-gap-28": { gap: spacing["28"] }, 56 + "row-gap-32": { gap: spacing["32"] }, 57 + "row-gap-36": { gap: spacing["36"] }, 58 + "row-gap-40": { gap: spacing["40"] }, 59 + "row-gap-44": { gap: spacing["44"] }, 60 + "row-gap-48": { gap: spacing["48"] }, 61 + "row-gap-52": { gap: spacing["52"] }, 62 + "row-gap-56": { gap: spacing["56"] }, 63 + "row-gap-60": { gap: spacing["60"] }, 64 + "row-gap-64": { gap: spacing["64"] }, 65 + "row-gap-72": { gap: spacing["72"] }, 66 + "row-gap-80": { gap: spacing["80"] }, 67 + "row-gap-96": { gap: spacing["96"] }, 68 + 69 + "column-gap-0.5": { gap: spacing["0.5"] }, 70 + "column-gap-1": { gap: spacing["1"] }, 71 + "column-gap-1.5": { gap: spacing["1.5"] }, 72 + "column-gap-2": { gap: spacing["2"] }, 73 + "column-gap-2.5": { gap: spacing["2.5"] }, 74 + "column-gap-3": { gap: spacing["3"] }, 75 + "column-gap-3.5": { gap: spacing["3.5"] }, 76 + "column-gap-4": { gap: spacing["4"] }, 77 + "column-gap-5": { gap: spacing["5"] }, 78 + "column-gap-6": { gap: spacing["6"] }, 79 + "column-gap-7": { gap: spacing["7"] }, 80 + "column-gap-8": { gap: spacing["8"] }, 81 + "column-gap-9": { gap: spacing["9"] }, 82 + "column-gap-10": { gap: spacing["10"] }, 83 + "column-gap-11": { gap: spacing["11"] }, 84 + "column-gap-12": { gap: spacing["12"] }, 85 + "column-gap-14": { gap: spacing["14"] }, 86 + "column-gap-16": { gap: spacing["16"] }, 87 + "column-gap-20": { gap: spacing["20"] }, 88 + "column-gap-24": { gap: spacing["24"] }, 89 + "column-gap-28": { gap: spacing["28"] }, 90 + "column-gap-32": { gap: spacing["32"] }, 91 + "column-gap-36": { gap: spacing["36"] }, 92 + "column-gap-40": { gap: spacing["40"] }, 93 + "column-gap-44": { gap: spacing["44"] }, 94 + "column-gap-48": { gap: spacing["48"] }, 95 + "column-gap-52": { gap: spacing["52"] }, 96 + "column-gap-56": { gap: spacing["56"] }, 97 + "column-gap-60": { gap: spacing["60"] }, 98 + "column-gap-64": { gap: spacing["64"] }, 99 + "column-gap-72": { gap: spacing["72"] }, 100 + "column-gap-80": { gap: spacing["80"] }, 101 + "column-gap-96": { gap: spacing["96"] }, 102 + 103 + columnStart: (start: number) => ({ gridColumnStart: start }), 104 + columnEnd: (end: number) => ({ gridColumnEnd: end }), 105 + rowStart: (start: number) => ({ gridRowStart: start }), 106 + rowEnd: (end: number) => ({ gridRowEnd: end }), 107 + }); 108 + 109 + export interface GridProps 110 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 111 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 112 + /** 113 + * The grid template rows of the grid container. 114 + * @default "auto" 115 + * @type string 116 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows 117 + */ 118 + rows?: string; 119 + /** 120 + * The grid template columns of the grid container. 121 + * @default "auto" 122 + * @type string 123 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns 124 + */ 125 + columns?: string; 126 + /** 127 + * The flex justify content of the flex container. 128 + * @default "start" 129 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 130 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content 131 + */ 132 + justifyContent?: "start" | "end" | "center" | "between" | "around" | "evenly"; 133 + /** 134 + * The flex align items of the flex container. 135 + * @default "stretch" 136 + * @type "stretch" | "flex-start" | "flex-end" | "center" | "baseline" 137 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/align-items 138 + */ 139 + alignItems?: "stretch" | "start" | "end" | "center" | "baseline"; 140 + /** 141 + * The grid justify items of the grid container. 142 + * @default "stretch" 143 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 144 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items 145 + */ 146 + justifyItems?: "start" | "end" | "center"; 147 + /** 148 + * The grid align content of the grid container. 149 + * @default "stretch" 150 + * @type "start" | "end" | "center" | "between" | "around" | "evenly" 151 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/align-content 152 + */ 153 + alignContent?: "start" | "end" | "center" | "between" | "around" | "evenly"; 154 + /** 155 + * The gap of the flex container. 156 + * @default "0" 157 + * @type "0" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" 158 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/gap 159 + */ 160 + columnGap?: Spacing; 161 + /** 162 + * The row gap of the grid container. 163 + * @default "0" 164 + * @type "0" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" 165 + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap 166 + */ 167 + rowGap?: Spacing; 168 + } 169 + 170 + export const Grid = ({ 171 + style, 172 + justifyContent, 173 + alignContent, 174 + justifyItems, 175 + alignItems, 176 + columnGap, 177 + rowGap, 178 + rows, 179 + columns, 180 + ...props 181 + }: GridProps) => { 182 + return ( 183 + <div 184 + {...props} 185 + {...stylex.props( 186 + styles.base, 187 + typeof rows === "string" && styles.rows(rows), 188 + typeof columns === "string" && styles.columns(columns), 189 + 190 + justifyContent === "start" && styles["justify-content-start"], 191 + justifyContent === "end" && styles["justify-content-end"], 192 + justifyContent === "center" && styles["justify-content-center"], 193 + justifyContent === "between" && styles["justify-content-between"], 194 + justifyContent === "around" && styles["justify-content-around"], 195 + justifyContent === "evenly" && styles["justify-content-evenly"], 196 + 197 + alignItems === "stretch" && styles["align-items-stretch"], 198 + alignItems === "start" && styles["align-items-start"], 199 + alignItems === "end" && styles["align-items-end"], 200 + alignItems === "center" && styles["align-items-center"], 201 + alignItems === "baseline" && styles["align-items-baseline"], 202 + 203 + alignContent === "start" && styles["align-content-start"], 204 + alignContent === "end" && styles["align-content-end"], 205 + alignContent === "center" && styles["align-content-center"], 206 + alignContent === "between" && styles["align-content-between"], 207 + alignContent === "around" && styles["align-content-around"], 208 + alignContent === "evenly" && styles["align-content-evenly"], 209 + 210 + justifyItems === "start" && styles["justify-items-start"], 211 + justifyItems === "end" && styles["justify-items-end"], 212 + justifyItems === "center" && styles["justify-items-center"], 213 + 214 + typeof columnGap === "string" && 215 + (styles[ 216 + `column-gap-${columnGap}` as keyof typeof styles 217 + ] as stylex.StyleXStyles), 218 + typeof rowGap === "string" && 219 + (styles[ 220 + `row-gap-${rowGap}` as keyof typeof styles 221 + ] as stylex.StyleXStyles), 222 + 223 + style, 224 + )} 225 + /> 226 + ); 227 + }; 228 + 229 + interface GridItemProps 230 + extends Omit<React.ComponentProps<"div">, "style" | "className"> { 231 + style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 232 + columnStart?: number; 233 + columnEnd?: number; 234 + rowStart?: number; 235 + rowEnd?: number; 236 + } 237 + 238 + export const GridItem = ({ 239 + style, 240 + columnStart, 241 + columnEnd, 242 + rowStart, 243 + rowEnd, 244 + ...props 245 + }: GridItemProps) => { 246 + return ( 247 + <div 248 + {...props} 249 + {...stylex.props( 250 + columnStart != null && styles.columnStart(columnStart), 251 + columnEnd != null && styles.columnEnd(columnEnd), 252 + rowStart != null && styles.rowStart(rowStart), 253 + rowEnd != null && styles.rowEnd(rowEnd), 254 + style, 255 + )} 256 + /> 257 + ); 258 + };
+3 -3
packages/hip-ui/src/components/link/index.tsx
··· 5 5 Link as AriaLink, 6 6 } from "react-aria-components"; 7 7 8 - import { blue } from "../theme/colors.stylex"; 8 + import { plum } from "../theme/colors.stylex"; 9 9 import { fontFamily, fontWeight } from "../theme/typography.stylex"; 10 10 import { LinkContext } from "./link-context"; 11 11 12 12 const styles = stylex.create({ 13 13 link: { 14 14 color: { 15 - default: blue.text2, 16 - ":visited": blue.text1, 15 + default: plum.text1, 16 + ":visited": plum.text2, 17 17 }, 18 18 cursor: "pointer", 19 19 fontFamily: fontFamily["sans"],
+2 -2
packages/hip-ui/src/components/listbox/index.tsx
··· 98 98 > 99 99 {({ isSelected }) => ( 100 100 <div {...stylex.props(listBoxItemStyles.inner)}> 101 - {prefix !== null && ( 101 + {prefix != null && ( 102 102 <div {...stylex.props(listBoxItemStyles.addon)}>{prefix}</div> 103 103 )} 104 104 <div {...stylex.props(listBoxItemStyles.label)}>{children}</div> 105 - {suffix !== null && ( 105 + {suffix != null && ( 106 106 <div {...stylex.props(listBoxItemStyles.addon)}>{suffix}</div> 107 107 )} 108 108 {isSelected && (
+5 -2
packages/hip-ui/src/components/menu/index.tsx
··· 137 137 children: React.ReactNode; 138 138 prefix?: React.ReactNode; 139 139 suffix?: React.ReactNode; 140 + variant?: "default" | "destructive"; 140 141 } 141 142 142 143 export function MenuItem({ ··· 144 145 children, 145 146 prefix, 146 147 suffix, 148 + variant = "default", 147 149 ...props 148 150 }: MenuItemProps) { 149 151 const menuItemStyles = useListBoxItemStyles(); ··· 151 153 return ( 152 154 <AriaMenuItem 153 155 {...props} 156 + data-variant={variant} 154 157 textValue={ 155 158 props.textValue || (typeof children === "string" ? children : undefined) 156 159 } ··· 158 161 > 159 162 {({ isSelected, hasSubmenu }) => ( 160 163 <div {...stylex.props(menuItemStyles.inner)}> 161 - {prefix !== null && ( 164 + {prefix != null && ( 162 165 <div {...stylex.props(menuItemStyles.addon)}>{prefix}</div> 163 166 )} 164 167 <div {...stylex.props(menuItemStyles.label)}>{children}</div> 165 - {suffix !== null && ( 168 + {suffix != null && ( 166 169 <div {...stylex.props(menuItemStyles.addon)}>{suffix}</div> 167 170 )} 168 171 {isSelected && (
+2 -2
packages/hip-ui/src/components/number-field/index.tsx
··· 94 94 {...stylex.props(inputStyles.wrapper)} 95 95 onClick={() => inputRef.current?.focus()} 96 96 > 97 - {prefix !== null && ( 97 + {prefix != null && ( 98 98 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 99 99 )} 100 100 <Input ··· 102 102 ref={inputRef} 103 103 {...stylex.props(inputStyles.input)} 104 104 /> 105 - {suffix !== null && ( 105 + {suffix != null && ( 106 106 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 107 107 )} 108 108 <Group {...stylex.props(styles.buttons)}>
+1 -1
packages/hip-ui/src/components/radio/index.tsx
··· 105 105 }: RadioGroupProps) { 106 106 return ( 107 107 <AriaRadioGroup {...props} {...stylex.props(styles.group, style)}> 108 - {label !== null && <Label size={size}>{label}</Label>} 108 + {label != null && <Label size={size}>{label}</Label>} 109 109 <Flex direction="column" gap="2"> 110 110 {children} 111 111 </Flex>
+3 -3
packages/hip-ui/src/components/search-field/index.tsx
··· 64 64 {({ isEmpty }) => { 65 65 return ( 66 66 <> 67 - {label !== null && <Label size={size}>{label}</Label>} 67 + {label != null && <Label size={size}>{label}</Label>} 68 68 {/* 69 69 This onClick is specifically for mouse users not clicking directly on the input. 70 70 A keyboard user would not encounter the same issue. ··· 74 74 {...stylex.props(inputStyles.wrapper, styles.wrapper)} 75 75 onClick={() => inputRef.current?.focus()} 76 76 > 77 - {prefix !== null && ( 77 + {prefix != null && ( 78 78 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 79 79 )} 80 80 <Input ··· 85 85 !isEmpty && styles.clearButtonPadding, 86 86 )} 87 87 /> 88 - {suffix !== null && ( 88 + {suffix != null && ( 89 89 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 90 90 )} 91 91 {!isEmpty && (
+2 -2
packages/hip-ui/src/components/select/index.tsx
··· 80 80 > 81 81 {label && <Label size={size}>{label}</Label>} 82 82 <Button {...stylex.props(inputStyles.wrapper)}> 83 - {prefix !== null && ( 83 + {prefix != null && ( 84 84 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 85 85 )} 86 86 <SelectValue {...stylex.props(inputStyles.input)}> ··· 91 91 return defaultChildren; 92 92 }} 93 93 </SelectValue> 94 - {suffix !== null && ( 94 + {suffix != null && ( 95 95 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 96 96 )} 97 97 <div {...stylex.props(inputStyles.addon)}>
+3 -3
packages/hip-ui/src/components/text-area/index.tsx
··· 141 141 142 142 return ( 143 143 <AriaTextField {...props} {...stylex.props(styles.wrapper, style)}> 144 - {label !== null && <Label size={size}>{label}</Label>} 144 + {label != null && <Label size={size}>{label}</Label>} 145 145 {/* 146 146 This onClick is specifically for mouse users not clicking directly on the input. 147 147 A keyboard user would not encounter the same issue. ··· 151 151 {...stylex.props(styles.inputWrapper, gray.bgUi, gray.text)} 152 152 onClick={() => textAreaRef.current?.focus()} 153 153 > 154 - {prefix !== null && <div {...stylex.props(styles.addon)}>{prefix}</div>} 154 + {prefix != null && <div {...stylex.props(styles.addon)}>{prefix}</div>} 155 155 <AriaTextArea 156 156 {...stylex.props(styles.input, styles[`${size}Input`])} 157 157 ref={textAreaRef} 158 158 placeholder={placeholder} 159 159 rows={rows} 160 160 /> 161 - {suffix !== null && <div {...stylex.props(styles.addon)}>{suffix}</div>} 161 + {suffix != null && <div {...stylex.props(styles.addon)}>{suffix}</div>} 162 162 </div> 163 163 {description && <Description size={size}>{description}</Description>} 164 164 <FieldError>{errorMessage}</FieldError>
+3 -3
packages/hip-ui/src/components/text-field/index.tsx
··· 81 81 type={type} 82 82 {...stylex.props(inputStyles.field, style)} 83 83 > 84 - {label !== null && <Label size={size}>{label}</Label>} 84 + {label != null && <Label size={size}>{label}</Label>} 85 85 {/* 86 86 This onClick is specifically for mouse users not clicking directly on the input. 87 87 A keyboard user would not encounter the same issue. ··· 91 91 {...stylex.props(inputStyles.wrapper)} 92 92 onClick={() => inputRef.current?.focus()} 93 93 > 94 - {prefix !== null && ( 94 + {prefix != null && ( 95 95 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 96 96 )} 97 97 <Input ··· 99 99 ref={inputRef} 100 100 placeholder={placeholder} 101 101 /> 102 - {suffix !== null && ( 102 + {suffix != null && ( 103 103 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 104 104 )} 105 105 {isPasswordInput && (
+15 -15
packages/hip-ui/src/components/theme/semantic-color.stylex.tsx
··· 42 42 backgroundColor: { 43 43 default: "transparent", 44 44 ":hover:not(:has(* button:hover)):not(:disabled)": slate.component2, 45 - ":active:not(:disabled)": slate.component3, 45 + ":is(:active,[data-pressed=true]):not(:disabled)": slate.component3, 46 46 ":disabled": slate.component1, 47 47 }, 48 48 transitionDuration: "100ms", ··· 53 53 backgroundColor: { 54 54 default: slate.component1, 55 55 ":hover:not(:has(* button:hover)):not(:disabled)": slate.component2, 56 - ":active:not(:disabled)": slate.component3, 56 + ":is(:active,[data-pressed=true]):not(:disabled)": slate.component3, 57 57 ":disabled": slate.component1, 58 58 }, 59 59 transitionDuration: "100ms", ··· 64 64 backgroundColor: { 65 65 default: slate.component2, 66 66 ":hover:not(:has(* button:hover)):not(:disabled)": slate.component3, 67 - ":active:not(:disabled)": slate.component3, 67 + ":is(:active,[data-pressed=true]):not(:disabled)": slate.component3, 68 68 ":disabled": slate.component1, 69 69 }, 70 70 transitionDuration: "100ms", ··· 112 112 backgroundColor: { 113 113 default: "transparent", 114 114 ":hover:not(:has(* button:hover)):not(:disabled)": plum.component2, 115 - ":active:not(:disabled)": plum.component3, 115 + ":is(:active,[data-pressed=true]):not(:disabled)": plum.component3, 116 116 ":disabled": plum.component1, 117 117 }, 118 118 transitionDuration: "100ms", ··· 123 123 backgroundColor: { 124 124 default: plum.component1, 125 125 ":hover:not(:has(* button:hover)):not(:disabled)": plum.component2, 126 - ":active": plum.component3, 126 + ":is(:active,[data-pressed=true])": plum.component3, 127 127 ":disabled": plum.component1, 128 128 }, 129 129 transitionDuration: "100ms", ··· 134 134 backgroundColor: { 135 135 default: plum.component2, 136 136 ":hover:not(:has(* button:hover)):not(:disabled)": plum.component3, 137 - ":active:not(:disabled)": plum.component3, 137 + ":is(:active,[data-pressed=true]):not(:disabled)": plum.component3, 138 138 ":disabled": plum.component1, 139 139 }, 140 140 transitionDuration: "100ms", ··· 181 181 backgroundColor: { 182 182 default: "transparent", 183 183 ":hover:not(:has(* button:hover)):not(:disabled)": red.component2, 184 - ":active:not(:disabled)": red.component3, 184 + ":is(:active,[data-pressed=true]):not(:disabled)": red.component3, 185 185 ":disabled": red.component1, 186 186 }, 187 187 transitionDuration: "100ms", ··· 192 192 backgroundColor: { 193 193 default: red.component1, 194 194 ":hover:not(:has(* button:hover)):not(:disabled)": red.component2, 195 - ":active:not(:disabled)": red.component3, 195 + ":is(:active,[data-pressed=true]):not(:disabled)": red.component3, 196 196 ":disabled": red.component1, 197 197 }, 198 198 transitionDuration: "100ms", ··· 203 203 backgroundColor: { 204 204 default: red.component2, 205 205 ":hover:not(:has(* button:hover)):not(:disabled)": red.component3, 206 - ":active:not(:disabled)": red.component3, 206 + ":is(:active,[data-pressed=true]):not(:disabled)": red.component3, 207 207 ":disabled": red.component1, 208 208 }, 209 209 transitionDuration: "100ms", ··· 255 255 backgroundColor: { 256 256 default: "transparent", 257 257 ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component2, 258 - ":active:not(:disabled)": yellow.component3, 258 + ":is(:active,[data-pressed=true]):not(:disabled)": yellow.component3, 259 259 ":disabled": yellow.component1, 260 260 }, 261 261 transitionDuration: "100ms", ··· 266 266 backgroundColor: { 267 267 default: yellow.component1, 268 268 ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component2, 269 - ":active:not(:disabled)": yellow.component3, 269 + ":is(:active,[data-pressed=true]):not(:disabled)": yellow.component3, 270 270 ":disabled": yellow.component1, 271 271 }, 272 272 transitionDuration: "100ms", ··· 277 277 backgroundColor: { 278 278 default: yellow.component2, 279 279 ":hover:not(:has(* button:hover)):not(:disabled)": yellow.component3, 280 - ":active:not(:disabled)": yellow.component3, 280 + ":is(:active,[data-pressed=true]):not(:disabled)": yellow.component3, 281 281 ":disabled": yellow.component1, 282 282 }, 283 283 transitionDuration: "100ms", ··· 334 334 backgroundColor: { 335 335 default: "transparent", 336 336 ":hover:not(:has(* button:hover)):not(:disabled)": green.component2, 337 - ":active:not(:disabled)": green.component3, 337 + ":is(:active,[data-pressed=true]):not(:disabled)": green.component3, 338 338 ":disabled": green.component1, 339 339 }, 340 340 transitionDuration: "100ms", ··· 345 345 backgroundColor: { 346 346 default: green.component1, 347 347 ":hover:not(:has(* button:hover)):not(:disabled)": green.component2, 348 - ":active:not(:disabled)": green.component3, 348 + ":is(:active,[data-pressed=true]):not(:disabled)": green.component3, 349 349 ":disabled": green.component1, 350 350 }, 351 351 transitionDuration: "100ms", ··· 356 356 backgroundColor: { 357 357 default: green.component2, 358 358 ":hover:not(:has(* button:hover)):not(:disabled)": green.component3, 359 - ":active:not(:disabled)": green.component3, 359 + ":is(:active,[data-pressed=true]):not(:disabled)": green.component3, 360 360 ":disabled": green.component1, 361 361 }, 362 362 transitionDuration: "100ms",
+4 -1
packages/hip-ui/src/components/theme/useListBoxItemStyles.ts
··· 2 2 import { use } from "react"; 3 3 4 4 import { SizeContext } from "../context"; 5 - import { plum, slate } from "../theme/colors.stylex"; 5 + import { plum, red, slate } from "../theme/colors.stylex"; 6 6 import { radius } from "../theme/radius.stylex"; 7 7 import { spacing } from "../theme/spacing.stylex"; 8 8 import { ··· 89 89 }, 90 90 }, 91 91 label: { 92 + color: { 93 + [":is([data-variant=destructive] *)"]: red.text1, 94 + }, 92 95 display: "flex", 93 96 flexDirection: "column", 94 97 flexGrow: 1,
+3 -3
packages/hip-ui/src/components/time-field/index.tsx
··· 40 40 41 41 return ( 42 42 <AriaTimeField {...props} {...stylex.props(inputStyles.field, style)}> 43 - {label !== null && <Label size={size}>{label}</Label>} 43 + {label != null && <Label size={size}>{label}</Label>} 44 44 {/* 45 45 This onClick is specifically for mouse users not clicking directly on the input. 46 46 A keyboard user would not encounter the same issue. ··· 50 50 {...stylex.props(inputStyles.wrapper)} 51 51 onClick={() => inputRef.current?.focus()} 52 52 > 53 - {prefix !== null && ( 53 + {prefix != null && ( 54 54 <div {...stylex.props(inputStyles.addon)}>{prefix}</div> 55 55 )} 56 56 <DateInput {...stylex.props(inputStyles.input)} ref={inputRef}> 57 57 {(segment) => <DateSegment segment={segment} />} 58 58 </DateInput> 59 - {suffix !== null && ( 59 + {suffix != null && ( 60 60 <div {...stylex.props(inputStyles.addon)}>{suffix}</div> 61 61 )} 62 62 </div>
+2 -2
packages/hip-ui/src/components/tree/index.tsx
··· 126 126 </Button> 127 127 128 128 <div {...stylex.props(styles.content)}> 129 - {prefix !== null && ( 129 + {prefix != null && ( 130 130 <div {...stylex.props(listBoxItemStyles.addon, styles.addon)}> 131 131 {prefix} 132 132 </div> 133 133 )} 134 134 <div {...stylex.props(listBoxItemStyles.label)}>{children}</div> 135 - {suffix !== null && ( 135 + {suffix != null && ( 136 136 <div {...stylex.props(listBoxItemStyles.addon, styles.addon)}> 137 137 {suffix} 138 138 </div>
+14 -2
packages/hip-ui/src/components/typography/index.tsx
··· 100 100 export interface BodyProps 101 101 extends Omit<React.ComponentProps<"p">, "style" | "className"> { 102 102 style?: stylex.StyleXStyles | stylex.StyleXStyles[]; 103 + variant?: "default" | "secondary"; 103 104 } 104 105 105 - export const Body = ({ style, ...props }: BodyProps) => { 106 - return <p {...stylex.props(typeramp.body, style)} {...props} />; 106 + export const Body = ({ style, variant = "default", ...props }: BodyProps) => { 107 + const contextValue = useMemo( 108 + () => ({ 109 + style: [variant === "secondary" && gray.textDim, styles.underline], 110 + }), 111 + [variant], 112 + ); 113 + 114 + return ( 115 + <LinkContext value={contextValue}> 116 + <p {...stylex.props(typeramp.body, style)} {...props} /> 117 + </LinkContext> 118 + ); 107 119 }; 108 120 109 121 export interface SmallBodyProps
+4179 -31
pnpm-lock.yaml
··· 33 33 specifier: 5.9.2 34 34 version: 5.9.2 35 35 36 + apps/docs: 37 + dependencies: 38 + '@react-stately/utils': 39 + specifier: ^3.10.8 40 + version: 3.10.8(react@19.2.0) 41 + '@react-types/overlays': 42 + specifier: ^3.9.2 43 + version: 3.9.2(react@19.2.0) 44 + '@stylexjs/stylex': 45 + specifier: ^0.16.2 46 + version: 0.16.2 47 + '@tailwindcss/vite': 48 + specifier: ^4.0.6 49 + version: 4.1.14(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 50 + '@tanstack/nitro-v2-vite-plugin': 51 + specifier: ^1.132.31 52 + version: 1.133.3(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 53 + '@tanstack/react-devtools': 54 + specifier: ^0.7.0 55 + version: 0.7.7(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(csstype@3.1.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9) 56 + '@tanstack/react-router': 57 + specifier: ^1.132.0 58 + version: 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 59 + '@tanstack/react-router-devtools': 60 + specifier: ^1.132.0 61 + version: 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(@types/node@22.15.3)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(terser@5.44.0)(tiny-invariant@1.3.3)(tsx@4.20.6) 62 + '@tanstack/react-router-ssr-query': 63 + specifier: ^1.131.7 64 + version: 1.133.13(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@19.2.0))(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 65 + '@tanstack/react-start': 66 + specifier: ^1.132.0 67 + version: 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1) 68 + '@tanstack/router-plugin': 69 + specifier: ^1.132.0 70 + version: 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1) 71 + lucide-react: 72 + specifier: ^0.545.0 73 + version: 0.545.0(react@19.2.0) 74 + react: 75 + specifier: ^19.0.0 76 + version: 19.2.0 77 + react-aria: 78 + specifier: ^3.44.0 79 + version: 3.44.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 80 + react-aria-components: 81 + specifier: ^1.13.0 82 + version: 1.13.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 83 + react-dom: 84 + specifier: ^19.0.0 85 + version: 19.2.0(react@19.2.0) 86 + react-stately: 87 + specifier: ^3.42.0 88 + version: 3.42.0(react@19.2.0) 89 + tailwindcss: 90 + specifier: ^4.0.6 91 + version: 4.1.14 92 + unplugin-stylex: 93 + specifier: ^0.5.5 94 + version: 0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 95 + vite-tsconfig-paths: 96 + specifier: ^5.1.4 97 + version: 5.1.4(typescript@5.9.2)(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 98 + devDependencies: 99 + '@repo/typescript-config': 100 + specifier: workspace:* 101 + version: link:../../packages/typescript-config 102 + '@testing-library/dom': 103 + specifier: ^10.4.0 104 + version: 10.4.1 105 + '@testing-library/react': 106 + specifier: ^16.2.0 107 + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 108 + '@types/node': 109 + specifier: ^22.10.2 110 + version: 22.15.3 111 + '@types/react': 112 + specifier: ^19.0.8 113 + version: 19.2.2 114 + '@types/react-dom': 115 + specifier: ^19.0.3 116 + version: 19.2.1(@types/react@19.2.2) 117 + '@vitejs/plugin-react': 118 + specifier: ^5.0.4 119 + version: 5.0.4(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 120 + hip-ui: 121 + specifier: workspace:* 122 + version: link:../../packages/hip-ui 123 + jsdom: 124 + specifier: ^27.0.0 125 + version: 27.0.1(postcss@8.5.6) 126 + typescript: 127 + specifier: ^5.7.2 128 + version: 5.9.2 129 + vite: 130 + specifier: ^7.1.7 131 + version: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 132 + vitest: 133 + specifier: ^3.0.5 134 + version: 3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 135 + web-vitals: 136 + specifier: ^5.1.0 137 + version: 5.1.0 138 + 36 139 apps/example: 37 140 dependencies: 38 141 '@react-stately/utils': ··· 73 176 version: 3.42.0(react@19.2.0) 74 177 unplugin-stylex: 75 178 specifier: ^0.5.5 76 - version: 0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 179 + version: 0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 77 180 waku: 78 181 specifier: 0.26.1 79 - version: 0.26.1(@swc/helpers@0.5.17)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react-server-dom-webpack@19.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(webpack@5.102.1))(react@19.2.0)(terser@5.44.0) 182 + version: 0.26.1(@swc/helpers@0.5.17)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react-server-dom-webpack@19.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(webpack@5.102.1))(react@19.2.0)(terser@5.44.0)(tsx@4.20.6) 80 183 devDependencies: 81 184 '@types/react': 82 185 specifier: 'catalog:' ··· 228 331 resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 229 332 engines: {node: '>=6.0.0'} 230 333 334 + '@asamuzakjp/css-color@4.0.5': 335 + resolution: {integrity: sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==} 336 + 337 + '@asamuzakjp/dom-selector@6.7.2': 338 + resolution: {integrity: sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==} 339 + 340 + '@asamuzakjp/nwsapi@2.3.9': 341 + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} 342 + 343 + '@babel/code-frame@7.26.2': 344 + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 345 + engines: {node: '>=6.9.0'} 346 + 231 347 '@babel/code-frame@7.27.1': 232 348 resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 233 349 engines: {node: '>=6.9.0'} ··· 244 360 resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 245 361 engines: {node: '>=6.9.0'} 246 362 363 + '@babel/helper-annotate-as-pure@7.27.3': 364 + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} 365 + engines: {node: '>=6.9.0'} 366 + 247 367 '@babel/helper-compilation-targets@7.27.2': 248 368 resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} 249 369 engines: {node: '>=6.9.0'} 250 370 371 + '@babel/helper-create-class-features-plugin@7.28.3': 372 + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} 373 + engines: {node: '>=6.9.0'} 374 + peerDependencies: 375 + '@babel/core': ^7.0.0 376 + 251 377 '@babel/helper-globals@7.28.0': 252 378 resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 253 379 engines: {node: '>=6.9.0'} 254 380 381 + '@babel/helper-member-expression-to-functions@7.27.1': 382 + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} 383 + engines: {node: '>=6.9.0'} 384 + 255 385 '@babel/helper-module-imports@7.27.1': 256 386 resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 257 387 engines: {node: '>=6.9.0'} ··· 262 392 peerDependencies: 263 393 '@babel/core': ^7.0.0 264 394 395 + '@babel/helper-optimise-call-expression@7.27.1': 396 + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} 397 + engines: {node: '>=6.9.0'} 398 + 265 399 '@babel/helper-plugin-utils@7.27.1': 266 400 resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} 401 + engines: {node: '>=6.9.0'} 402 + 403 + '@babel/helper-replace-supers@7.27.1': 404 + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} 405 + engines: {node: '>=6.9.0'} 406 + peerDependencies: 407 + '@babel/core': ^7.0.0 408 + 409 + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': 410 + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} 267 411 engines: {node: '>=6.9.0'} 268 412 269 413 '@babel/helper-string-parser@7.27.1': ··· 305 449 peerDependencies: 306 450 '@babel/core': ^7.0.0-0 307 451 452 + '@babel/plugin-transform-modules-commonjs@7.27.1': 453 + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} 454 + engines: {node: '>=6.9.0'} 455 + peerDependencies: 456 + '@babel/core': ^7.0.0-0 457 + 308 458 '@babel/plugin-transform-react-jsx-self@7.27.1': 309 459 resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 310 460 engines: {node: '>=6.9.0'} ··· 316 466 engines: {node: '>=6.9.0'} 317 467 peerDependencies: 318 468 '@babel/core': ^7.0.0-0 469 + 470 + '@babel/plugin-transform-typescript@7.28.0': 471 + resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} 472 + engines: {node: '>=6.9.0'} 473 + peerDependencies: 474 + '@babel/core': ^7.0.0-0 475 + 476 + '@babel/preset-typescript@7.27.1': 477 + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} 478 + engines: {node: '>=6.9.0'} 479 + peerDependencies: 480 + '@babel/core': ^7.0.0-0 481 + 482 + '@babel/runtime@7.28.4': 483 + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} 484 + engines: {node: '>=6.9.0'} 319 485 320 486 '@babel/template@7.27.2': 321 487 resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} ··· 331 497 332 498 '@bcoe/v8-coverage@1.0.2': 333 499 resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} 500 + engines: {node: '>=18'} 501 + 502 + '@cloudflare/kv-asset-handler@0.4.0': 503 + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} 504 + engines: {node: '>=18.0.0'} 505 + 506 + '@csstools/color-helpers@5.1.0': 507 + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} 508 + engines: {node: '>=18'} 509 + 510 + '@csstools/css-calc@2.1.4': 511 + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} 512 + engines: {node: '>=18'} 513 + peerDependencies: 514 + '@csstools/css-parser-algorithms': ^3.0.5 515 + '@csstools/css-tokenizer': ^3.0.4 516 + 517 + '@csstools/css-color-parser@3.1.0': 518 + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} 519 + engines: {node: '>=18'} 520 + peerDependencies: 521 + '@csstools/css-parser-algorithms': ^3.0.5 522 + '@csstools/css-tokenizer': ^3.0.4 523 + 524 + '@csstools/css-parser-algorithms@3.0.5': 525 + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} 526 + engines: {node: '>=18'} 527 + peerDependencies: 528 + '@csstools/css-tokenizer': ^3.0.4 529 + 530 + '@csstools/css-syntax-patches-for-csstree@1.0.14': 531 + resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} 532 + engines: {node: '>=18'} 533 + peerDependencies: 534 + postcss: ^8.4 535 + 536 + '@csstools/css-tokenizer@3.0.4': 537 + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 334 538 engines: {node: '>=18'} 335 539 336 540 '@dual-bundle/import-meta-resolve@4.2.1': ··· 644 848 '@internationalized/string@3.2.7': 645 849 resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} 646 850 851 + '@ioredis/commands@1.4.0': 852 + resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} 853 + 647 854 '@isaacs/cliui@8.0.2': 648 855 resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 649 856 engines: {node: '>=12'} 857 + 858 + '@isaacs/fs-minipass@4.0.1': 859 + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} 860 + engines: {node: '>=18.0.0'} 650 861 651 862 '@istanbuljs/schema@0.1.3': 652 863 resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} ··· 671 882 '@jridgewell/trace-mapping@0.3.31': 672 883 resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 673 884 885 + '@mapbox/node-pre-gyp@2.0.0': 886 + resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} 887 + engines: {node: '>=18'} 888 + hasBin: true 889 + 674 890 '@napi-rs/wasm-runtime@0.2.12': 675 891 resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} 676 892 ··· 689 905 resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 690 906 engines: {node: '>= 8'} 691 907 908 + '@oozcitak/dom@1.15.10': 909 + resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==} 910 + engines: {node: '>=8.0'} 911 + 912 + '@oozcitak/infra@1.0.8': 913 + resolution: {integrity: sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==} 914 + engines: {node: '>=6.0'} 915 + 916 + '@oozcitak/url@1.0.4': 917 + resolution: {integrity: sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==} 918 + engines: {node: '>=8.0'} 919 + 920 + '@oozcitak/util@8.3.8': 921 + resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==} 922 + engines: {node: '>=8.0'} 923 + 924 + '@parcel/watcher-android-arm64@2.5.1': 925 + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} 926 + engines: {node: '>= 10.0.0'} 927 + cpu: [arm64] 928 + os: [android] 929 + 930 + '@parcel/watcher-darwin-arm64@2.5.1': 931 + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} 932 + engines: {node: '>= 10.0.0'} 933 + cpu: [arm64] 934 + os: [darwin] 935 + 936 + '@parcel/watcher-darwin-x64@2.5.1': 937 + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} 938 + engines: {node: '>= 10.0.0'} 939 + cpu: [x64] 940 + os: [darwin] 941 + 942 + '@parcel/watcher-freebsd-x64@2.5.1': 943 + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} 944 + engines: {node: '>= 10.0.0'} 945 + cpu: [x64] 946 + os: [freebsd] 947 + 948 + '@parcel/watcher-linux-arm-glibc@2.5.1': 949 + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} 950 + engines: {node: '>= 10.0.0'} 951 + cpu: [arm] 952 + os: [linux] 953 + 954 + '@parcel/watcher-linux-arm-musl@2.5.1': 955 + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} 956 + engines: {node: '>= 10.0.0'} 957 + cpu: [arm] 958 + os: [linux] 959 + 960 + '@parcel/watcher-linux-arm64-glibc@2.5.1': 961 + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} 962 + engines: {node: '>= 10.0.0'} 963 + cpu: [arm64] 964 + os: [linux] 965 + 966 + '@parcel/watcher-linux-arm64-musl@2.5.1': 967 + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} 968 + engines: {node: '>= 10.0.0'} 969 + cpu: [arm64] 970 + os: [linux] 971 + 972 + '@parcel/watcher-linux-x64-glibc@2.5.1': 973 + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} 974 + engines: {node: '>= 10.0.0'} 975 + cpu: [x64] 976 + os: [linux] 977 + 978 + '@parcel/watcher-linux-x64-musl@2.5.1': 979 + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} 980 + engines: {node: '>= 10.0.0'} 981 + cpu: [x64] 982 + os: [linux] 983 + 984 + '@parcel/watcher-wasm@2.5.1': 985 + resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} 986 + engines: {node: '>= 10.0.0'} 987 + bundledDependencies: 988 + - napi-wasm 989 + 990 + '@parcel/watcher-win32-arm64@2.5.1': 991 + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} 992 + engines: {node: '>= 10.0.0'} 993 + cpu: [arm64] 994 + os: [win32] 995 + 996 + '@parcel/watcher-win32-ia32@2.5.1': 997 + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} 998 + engines: {node: '>= 10.0.0'} 999 + cpu: [ia32] 1000 + os: [win32] 1001 + 1002 + '@parcel/watcher-win32-x64@2.5.1': 1003 + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} 1004 + engines: {node: '>= 10.0.0'} 1005 + cpu: [x64] 1006 + os: [win32] 1007 + 1008 + '@parcel/watcher@2.5.1': 1009 + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} 1010 + engines: {node: '>= 10.0.0'} 1011 + 692 1012 '@pkgjs/parseargs@0.11.0': 693 1013 resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 694 1014 engines: {node: '>=14'} 1015 + 1016 + '@poppinss/colors@4.1.5': 1017 + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} 1018 + 1019 + '@poppinss/dumper@0.6.4': 1020 + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} 1021 + 1022 + '@poppinss/exception@1.2.2': 1023 + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} 695 1024 696 1025 '@react-aria/autocomplete@3.0.0-rc.3': 697 1026 resolution: {integrity: sha512-vemf7h3hvIDk3MxiiPryysfYgJDg8R72X46dRIeg0+cXKYxjPYou64/DTucSV2z5J6RC5JalINu0jIDaLhEILw==} ··· 1285 1614 '@rolldown/pluginutils@1.0.0-beta.34': 1286 1615 resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} 1287 1616 1617 + '@rolldown/pluginutils@1.0.0-beta.38': 1618 + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} 1619 + 1620 + '@rolldown/pluginutils@1.0.0-beta.40': 1621 + resolution: {integrity: sha512-s3GeJKSQOwBlzdUrj4ISjJj5SfSh+aqn0wjOar4Bx95iV1ETI7F6S/5hLcfAxZ9kXDcyrAkxPlqmd1ZITttf+w==} 1622 + 1623 + '@rollup/plugin-alias@5.1.1': 1624 + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} 1625 + engines: {node: '>=14.0.0'} 1626 + peerDependencies: 1627 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1628 + peerDependenciesMeta: 1629 + rollup: 1630 + optional: true 1631 + 1632 + '@rollup/plugin-commonjs@28.0.8': 1633 + resolution: {integrity: sha512-o1Ug9PxYsF61R7/NXO/GgMZZproLd/WH2XA53Tp9ppf6bU1lMlTtC/gUM6zM3mesi2E0rypk+PNtVrELREyWEQ==} 1634 + engines: {node: '>=16.0.0 || 14 >= 14.17'} 1635 + peerDependencies: 1636 + rollup: ^2.68.0||^3.0.0||^4.0.0 1637 + peerDependenciesMeta: 1638 + rollup: 1639 + optional: true 1640 + 1641 + '@rollup/plugin-inject@5.0.5': 1642 + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} 1643 + engines: {node: '>=14.0.0'} 1644 + peerDependencies: 1645 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1646 + peerDependenciesMeta: 1647 + rollup: 1648 + optional: true 1649 + 1650 + '@rollup/plugin-json@6.1.0': 1651 + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} 1652 + engines: {node: '>=14.0.0'} 1653 + peerDependencies: 1654 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1655 + peerDependenciesMeta: 1656 + rollup: 1657 + optional: true 1658 + 1659 + '@rollup/plugin-node-resolve@16.0.3': 1660 + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} 1661 + engines: {node: '>=14.0.0'} 1662 + peerDependencies: 1663 + rollup: ^2.78.0||^3.0.0||^4.0.0 1664 + peerDependenciesMeta: 1665 + rollup: 1666 + optional: true 1667 + 1668 + '@rollup/plugin-replace@6.0.2': 1669 + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} 1670 + engines: {node: '>=14.0.0'} 1671 + peerDependencies: 1672 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1673 + peerDependenciesMeta: 1674 + rollup: 1675 + optional: true 1676 + 1677 + '@rollup/plugin-terser@0.4.4': 1678 + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} 1679 + engines: {node: '>=14.0.0'} 1680 + peerDependencies: 1681 + rollup: ^2.0.0||^3.0.0||^4.0.0 1682 + peerDependenciesMeta: 1683 + rollup: 1684 + optional: true 1685 + 1288 1686 '@rollup/pluginutils@5.3.0': 1289 1687 resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} 1290 1688 engines: {node: '>=14.0.0'} ··· 1404 1802 cpu: [x64] 1405 1803 os: [win32] 1406 1804 1805 + '@sindresorhus/is@7.1.0': 1806 + resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} 1807 + engines: {node: '>=18'} 1808 + 1809 + '@sindresorhus/merge-streams@4.0.0': 1810 + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} 1811 + engines: {node: '>=18'} 1812 + 1813 + '@solid-primitives/event-listener@2.4.3': 1814 + resolution: {integrity: sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg==} 1815 + peerDependencies: 1816 + solid-js: ^1.6.12 1817 + 1818 + '@solid-primitives/keyboard@1.3.3': 1819 + resolution: {integrity: sha512-9dQHTTgLBqyAI7aavtO+HnpTVJgWQA1ghBSrmLtMu1SMxLPDuLfuNr+Tk5udb4AL4Ojg7h9JrKOGEEDqsJXWJA==} 1820 + peerDependencies: 1821 + solid-js: ^1.6.12 1822 + 1823 + '@solid-primitives/resize-observer@2.1.3': 1824 + resolution: {integrity: sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ==} 1825 + peerDependencies: 1826 + solid-js: ^1.6.12 1827 + 1828 + '@solid-primitives/rootless@1.5.2': 1829 + resolution: {integrity: sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ==} 1830 + peerDependencies: 1831 + solid-js: ^1.6.12 1832 + 1833 + '@solid-primitives/static-store@0.1.2': 1834 + resolution: {integrity: sha512-ReK+5O38lJ7fT+L6mUFvUr6igFwHBESZF+2Ug842s7fvlVeBdIVEdTCErygff6w7uR6+jrr7J8jQo+cYrEq4Iw==} 1835 + peerDependencies: 1836 + solid-js: ^1.6.12 1837 + 1838 + '@solid-primitives/utils@6.3.2': 1839 + resolution: {integrity: sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ==} 1840 + peerDependencies: 1841 + solid-js: ^1.6.12 1842 + 1843 + '@speed-highlight/core@1.2.7': 1844 + resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} 1845 + 1407 1846 '@stylexjs/babel-plugin@0.16.2': 1408 1847 resolution: {integrity: sha512-rnxEaAwZvg7WLjsKn1hYbTYXvRFRX6qisp+9JLrPY5cyzskh19k8sp+HiO8m2vTEvoScq1SC19fFzuiSXIRKbQ==} 1409 1848 ··· 1491 1930 '@swc/types@0.1.25': 1492 1931 resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} 1493 1932 1933 + '@tailwindcss/node@4.1.14': 1934 + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} 1935 + 1936 + '@tailwindcss/oxide-android-arm64@4.1.14': 1937 + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} 1938 + engines: {node: '>= 10'} 1939 + cpu: [arm64] 1940 + os: [android] 1941 + 1942 + '@tailwindcss/oxide-darwin-arm64@4.1.14': 1943 + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} 1944 + engines: {node: '>= 10'} 1945 + cpu: [arm64] 1946 + os: [darwin] 1947 + 1948 + '@tailwindcss/oxide-darwin-x64@4.1.14': 1949 + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} 1950 + engines: {node: '>= 10'} 1951 + cpu: [x64] 1952 + os: [darwin] 1953 + 1954 + '@tailwindcss/oxide-freebsd-x64@4.1.14': 1955 + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} 1956 + engines: {node: '>= 10'} 1957 + cpu: [x64] 1958 + os: [freebsd] 1959 + 1960 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': 1961 + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} 1962 + engines: {node: '>= 10'} 1963 + cpu: [arm] 1964 + os: [linux] 1965 + 1966 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': 1967 + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} 1968 + engines: {node: '>= 10'} 1969 + cpu: [arm64] 1970 + os: [linux] 1971 + 1972 + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': 1973 + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} 1974 + engines: {node: '>= 10'} 1975 + cpu: [arm64] 1976 + os: [linux] 1977 + 1978 + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': 1979 + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} 1980 + engines: {node: '>= 10'} 1981 + cpu: [x64] 1982 + os: [linux] 1983 + 1984 + '@tailwindcss/oxide-linux-x64-musl@4.1.14': 1985 + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} 1986 + engines: {node: '>= 10'} 1987 + cpu: [x64] 1988 + os: [linux] 1989 + 1990 + '@tailwindcss/oxide-wasm32-wasi@4.1.14': 1991 + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} 1992 + engines: {node: '>=14.0.0'} 1993 + cpu: [wasm32] 1994 + bundledDependencies: 1995 + - '@napi-rs/wasm-runtime' 1996 + - '@emnapi/core' 1997 + - '@emnapi/runtime' 1998 + - '@tybys/wasm-util' 1999 + - '@emnapi/wasi-threads' 2000 + - tslib 2001 + 2002 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': 2003 + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} 2004 + engines: {node: '>= 10'} 2005 + cpu: [arm64] 2006 + os: [win32] 2007 + 2008 + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': 2009 + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} 2010 + engines: {node: '>= 10'} 2011 + cpu: [x64] 2012 + os: [win32] 2013 + 2014 + '@tailwindcss/oxide@4.1.14': 2015 + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} 2016 + engines: {node: '>= 10'} 2017 + 2018 + '@tailwindcss/vite@4.1.14': 2019 + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} 2020 + peerDependencies: 2021 + vite: ^5.2.0 || ^6 || ^7 2022 + 2023 + '@tanstack/devtools-client@0.0.3': 2024 + resolution: {integrity: sha512-kl0r6N5iIL3t9gGDRAv55VRM3UIyMKVH83esRGq7xBjYsRLe/BeCIN2HqrlJkObUXQMKhy7i8ejuGOn+bDqDBw==} 2025 + engines: {node: '>=18'} 2026 + 2027 + '@tanstack/devtools-event-bus@0.3.2': 2028 + resolution: {integrity: sha512-yJT2As/drc+Epu0nsqCsJaKaLcaNGufiNxSlp/+/oeTD0jsBxF9/PJBfh66XVpYXkKr97b8689mSu7QMef0Rrw==} 2029 + engines: {node: '>=18'} 2030 + 2031 + '@tanstack/devtools-event-client@0.3.3': 2032 + resolution: {integrity: sha512-RfV+OPV/M3CGryYqTue684u10jUt55PEqeBOnOtCe6tAmHI9Iqyc8nHeDhWPEV9715gShuauFVaMc9RiUVNdwg==} 2033 + engines: {node: '>=18'} 2034 + 2035 + '@tanstack/devtools-ui@0.4.3': 2036 + resolution: {integrity: sha512-7QshnQIHifURyMwl/qmYm4KDpsf8UJrJ8BUu+YvPx35RJBe2EO5qHPsefzWh6MlG/dUdVMBxP9nPqchESyuNFg==} 2037 + engines: {node: '>=18'} 2038 + peerDependencies: 2039 + solid-js: '>=1.9.7' 2040 + 2041 + '@tanstack/devtools@0.6.21': 2042 + resolution: {integrity: sha512-j8cCmrOz7wu4G4jJ2ZZCo3fIGGDMygSQVPZDtyFylKtKC5i88Hnu6YioODP6I+0mbn9Qvr4eWgPHEONXAViXeA==} 2043 + engines: {node: '>=18'} 2044 + peerDependencies: 2045 + solid-js: '>=1.9.7' 2046 + 2047 + '@tanstack/directive-functions-plugin@1.133.9': 2048 + resolution: {integrity: sha512-mnJXMQNovd+BhAp5SoSF6BXWfB8e/s0PdxY1AW3wqGOoGA1T7cLXHXhvzuiefX0FVKyAbvsyejs1d5usHePjEA==} 2049 + engines: {node: '>=12'} 2050 + peerDependencies: 2051 + vite: '>=6.0.0 || >=7.0.0' 2052 + 2053 + '@tanstack/history@1.133.3': 2054 + resolution: {integrity: sha512-zFQnGdX0S4g5xRuS+95iiEXM+qlGvYG7ksmOKx7LaMv60lDWa0imR8/24WwXXvBWJT1KnwVdZcjvhCwz9IiJCw==} 2055 + engines: {node: '>=12'} 2056 + 2057 + '@tanstack/nitro-v2-vite-plugin@1.133.3': 2058 + resolution: {integrity: sha512-US3fPNsJjOrNdDJSy5Do6nJvfmlmvfj1wRjqyOpQ5DtVNkhwFffm+wRgluSZBF6bjX9SyTmV5tAzMwpvR2aMyQ==} 2059 + engines: {node: '>=22.12'} 2060 + peerDependencies: 2061 + vite: '>=7.0.0' 2062 + 2063 + '@tanstack/query-core@5.90.5': 2064 + resolution: {integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==} 2065 + 2066 + '@tanstack/react-devtools@0.7.7': 2067 + resolution: {integrity: sha512-mJ7Ixa+AadGF1b13tLkC8lX0JrM7CrH/SJMOqcCWot9l80KZCWeFnDF1+Ww25QosVbZ1db611LNcgsGz8pv3Zg==} 2068 + engines: {node: '>=18'} 2069 + peerDependencies: 2070 + '@types/react': '>=16.8' 2071 + '@types/react-dom': '>=16.8' 2072 + react: '>=16.8' 2073 + react-dom: '>=16.8' 2074 + 2075 + '@tanstack/react-query@5.90.5': 2076 + resolution: {integrity: sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==} 2077 + peerDependencies: 2078 + react: ^18 || ^19 2079 + 2080 + '@tanstack/react-router-devtools@1.133.13': 2081 + resolution: {integrity: sha512-Bc7jap95WD32U0KSuPDZOehujwycNE8cUoroQ8/A2FIugTV6msxW7/fm1Dny7MzVv2lc8VgRIykFGt1vveZgVA==} 2082 + engines: {node: '>=12'} 2083 + peerDependencies: 2084 + '@tanstack/react-router': ^1.133.13 2085 + react: '>=18.0.0 || >=19.0.0' 2086 + react-dom: '>=18.0.0 || >=19.0.0' 2087 + 2088 + '@tanstack/react-router-ssr-query@1.133.13': 2089 + resolution: {integrity: sha512-NzDfekYyQXzFI3j5HdLfeiiRcoqcX28qGJTSvcW55mAaR8zZpvHHxZy5h+w+fTcq6jS052wzAFWhbcZR2FBikg==} 2090 + engines: {node: '>=12'} 2091 + peerDependencies: 2092 + '@tanstack/query-core': '>=5.66.0' 2093 + '@tanstack/react-query': '>=5.66.2' 2094 + '@tanstack/react-router': '>=1.127.0' 2095 + react: '>=18.0.0 || >=19.0.0' 2096 + react-dom: '>=18.0.0 || >=19.0.0' 2097 + 2098 + '@tanstack/react-router@1.133.13': 2099 + resolution: {integrity: sha512-mVAj70mPOH/a60Hjlha3gHEWLFuE4kHeKau/AL5Xp6e5GtNk1JTRwN4sJ9QlSyLcClOUUtGfED1FoLj0D2W0Eg==} 2100 + engines: {node: '>=12'} 2101 + peerDependencies: 2102 + react: '>=18.0.0 || >=19.0.0' 2103 + react-dom: '>=18.0.0 || >=19.0.0' 2104 + 2105 + '@tanstack/react-start-client@1.133.13': 2106 + resolution: {integrity: sha512-dmnjmTQnbJcxOLbJ1ysyuFnfDhsxtHuBCzHQg4Df2xg6TpoDPXkNsLwt9yPjsblSgIichGE1qQIXuHv0imel7w==} 2107 + engines: {node: '>=22.12.0'} 2108 + peerDependencies: 2109 + react: '>=18.0.0 || >=19.0.0' 2110 + react-dom: '>=18.0.0 || >=19.0.0' 2111 + 2112 + '@tanstack/react-start-server@1.133.13': 2113 + resolution: {integrity: sha512-Bxh3YxX1kPmpDNM1bqbtHwuR/bHu4up4dB7PRB8oCaZdTY1DI4Ue5n5EObpPa7Z5JTRe00qqi64Hr/ge8ZVx3g==} 2114 + engines: {node: '>=22.12.0'} 2115 + peerDependencies: 2116 + react: '>=18.0.0 || >=19.0.0' 2117 + react-dom: '>=18.0.0 || >=19.0.0' 2118 + 2119 + '@tanstack/react-start@1.133.13': 2120 + resolution: {integrity: sha512-mQu8Tq5QUqncCvCFZN7efsz3QEscrzSj603KKZ2nr+0pMQc+5vz+xtsa54vCUTUjtS3nAsGmrVmSzPQSC8e8tg==} 2121 + engines: {node: '>=22.12.0'} 2122 + peerDependencies: 2123 + react: '>=18.0.0 || >=19.0.0' 2124 + react-dom: '>=18.0.0 || >=19.0.0' 2125 + vite: '>=7.0.0' 2126 + 2127 + '@tanstack/react-store@0.7.7': 2128 + resolution: {integrity: sha512-qqT0ufegFRDGSof9D/VqaZgjNgp4tRPHZIJq2+QIHkMUtHjaJ0lYrrXjeIUJvjnTbgPfSD1XgOMEt0lmANn6Zg==} 2129 + peerDependencies: 2130 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2131 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2132 + 2133 + '@tanstack/router-core@1.133.13': 2134 + resolution: {integrity: sha512-zZptdlS/wSkqozb07Y3zX5gas2OapJdjEG6/Id0e/twNefVdR4EY2TK/mgvyhHtKIpCxIcnZz/3opypgeQi9bg==} 2135 + engines: {node: '>=12'} 2136 + 2137 + '@tanstack/router-devtools-core@1.133.13': 2138 + resolution: {integrity: sha512-NyXZws0sVeB6+410fa2fopitFAbEqKMhGZw1ojI4bp3DyVwL6l9cnIRHw6qew3gRUVa3SBn00puJ++LfZSYc7w==} 2139 + engines: {node: '>=12'} 2140 + peerDependencies: 2141 + '@tanstack/router-core': ^1.133.13 2142 + csstype: ^3.0.10 2143 + solid-js: '>=1.9.5' 2144 + tiny-invariant: ^1.3.3 2145 + peerDependenciesMeta: 2146 + csstype: 2147 + optional: true 2148 + 2149 + '@tanstack/router-generator@1.133.13': 2150 + resolution: {integrity: sha512-W5locmcYSz0dY+KEOIFijUeOdQEzjCxY+uT9ExY/YeQcOBcBFIk9/UnBkE6wRLCPOBb1gfURjPNc9rI93HGrOA==} 2151 + engines: {node: '>=12'} 2152 + 2153 + '@tanstack/router-plugin@1.133.13': 2154 + resolution: {integrity: sha512-R5cbCwdw5chQhgaVERE2JlPpGWcER4FuVkRGDbLaW/rpawIskJCjkAbhqyfgXPF8VsEUOs9+7FK6ocODnqM/qA==} 2155 + engines: {node: '>=12'} 2156 + peerDependencies: 2157 + '@rsbuild/core': '>=1.0.2' 2158 + '@tanstack/react-router': ^1.133.13 2159 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' 2160 + vite-plugin-solid: ^2.11.8 2161 + webpack: '>=5.92.0' 2162 + peerDependenciesMeta: 2163 + '@rsbuild/core': 2164 + optional: true 2165 + '@tanstack/react-router': 2166 + optional: true 2167 + vite: 2168 + optional: true 2169 + vite-plugin-solid: 2170 + optional: true 2171 + webpack: 2172 + optional: true 2173 + 2174 + '@tanstack/router-ssr-query-core@1.133.13': 2175 + resolution: {integrity: sha512-2c5K8IlCWkrFvl61pBkJ9qAVP5LlnDnhlKqerAnR1J1WptWNs4d36iJGeSDZWkTvvGInAzWRlYvYF/58GkQgPw==} 2176 + engines: {node: '>=12'} 2177 + peerDependencies: 2178 + '@tanstack/query-core': '>=5.66.0' 2179 + '@tanstack/router-core': '>=1.127.0' 2180 + 2181 + '@tanstack/router-utils@1.133.3': 2182 + resolution: {integrity: sha512-miPFlt0aG6ID5VDolYuRXgLS7cofvbZGMvHwf2Wmyxjo6GLp/kxxpkQrfM4T1I5cwjwYZZAQmdUKbVHwFZz9sQ==} 2183 + engines: {node: '>=12'} 2184 + 2185 + '@tanstack/server-functions-plugin@1.133.11': 2186 + resolution: {integrity: sha512-i6w1fmnXCWsbIEq5LZ1+tSVsqy0Iy7zAUVJzfNw6AzfbWZymwl508xwQJkIowv7v+kH1yIqNaeZ75gyWNZuVEg==} 2187 + engines: {node: '>=12'} 2188 + 2189 + '@tanstack/start-client-core@1.133.13': 2190 + resolution: {integrity: sha512-rV44yl23yus1LDFSyDpkpd7TOrqt5Wa0cEFuULruCHUDbx14smZDFqOBb21eVLWaJRro15oXXWv4B4EvfkFIXQ==} 2191 + engines: {node: '>=22.12.0'} 2192 + 2193 + '@tanstack/start-plugin-core@1.133.13': 2194 + resolution: {integrity: sha512-IKo4cGPNWpg4rr6ZyWSG0eDQvj0yVgkQ/0cPUQVKCHmEuv4wILKMkyhdq5Ks13gtH+CVH3YKK8wJrCHzu8US8g==} 2195 + engines: {node: '>=22.12.0'} 2196 + peerDependencies: 2197 + vite: '>=7.0.0' 2198 + 2199 + '@tanstack/start-server-core@1.133.13': 2200 + resolution: {integrity: sha512-lYS8Fud+x+09VBGqvdYOML5lFDHDDRW62WImcAy7GB7ie7CDF+HUWNp+FSMxgadsiwz426mQmbTXxSqVkl+blA==} 2201 + engines: {node: '>=22.12.0'} 2202 + 2203 + '@tanstack/start-storage-context@1.133.13': 2204 + resolution: {integrity: sha512-DLkRAGiDVuqWqbXufivNQttm7bgraEehX/LmXnXMndRiC3BvIIcm3Cpcai3ft8atn0+8t7jJjPdrmjALGWqBjg==} 2205 + engines: {node: '>=22.12.0'} 2206 + 2207 + '@tanstack/store@0.7.7': 2208 + resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} 2209 + 2210 + '@tanstack/virtual-file-routes@1.133.3': 2211 + resolution: {integrity: sha512-6d2AP9hAjEi8mcIew2RkxBX+wClH1xedhfaYhs8fUiX+V2Cedk7RBD9E9ww2z6BGUYD8Es4fS0OIrzXZWHKGhw==} 2212 + engines: {node: '>=12'} 2213 + 2214 + '@testing-library/dom@10.4.1': 2215 + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} 2216 + engines: {node: '>=18'} 2217 + 2218 + '@testing-library/react@16.3.0': 2219 + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} 2220 + engines: {node: '>=18'} 2221 + peerDependencies: 2222 + '@testing-library/dom': ^10.0.0 2223 + '@types/react': ^18.0.0 || ^19.0.0 2224 + '@types/react-dom': ^18.0.0 || ^19.0.0 2225 + react: ^18.0.0 || ^19.0.0 2226 + react-dom: ^18.0.0 || ^19.0.0 2227 + peerDependenciesMeta: 2228 + '@types/react': 2229 + optional: true 2230 + '@types/react-dom': 2231 + optional: true 2232 + 1494 2233 '@tybys/wasm-util@0.10.1': 1495 2234 resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} 2235 + 2236 + '@types/aria-query@5.0.4': 2237 + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 1496 2238 1497 2239 '@types/babel__core@7.20.5': 1498 2240 resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} ··· 1543 2285 1544 2286 '@types/react@19.2.2': 1545 2287 resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} 2288 + 2289 + '@types/resolve@1.20.2': 2290 + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 1546 2291 1547 2292 '@typescript-eslint/eslint-plugin@8.40.0': 1548 2293 resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==} ··· 1742 2487 cpu: [x64] 1743 2488 os: [win32] 1744 2489 2490 + '@vercel/nft@0.30.3': 2491 + resolution: {integrity: sha512-UEq+eF0ocEf9WQCV1gktxKhha36KDs7jln5qii6UpPf5clMqDc0p3E7d9l2Smx0i9Pm1qpq4S4lLfNl97bbv6w==} 2492 + engines: {node: '>=18'} 2493 + hasBin: true 2494 + 1745 2495 '@vitejs/plugin-react@5.0.2': 1746 2496 resolution: {integrity: sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==} 1747 2497 engines: {node: ^20.19.0 || >=22.12.0} 1748 2498 peerDependencies: 1749 2499 vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 1750 2500 2501 + '@vitejs/plugin-react@5.0.4': 2502 + resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} 2503 + engines: {node: ^20.19.0 || >=22.12.0} 2504 + peerDependencies: 2505 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 2506 + 1751 2507 '@vitejs/plugin-rsc@0.4.29': 1752 2508 resolution: {integrity: sha512-sNR86RuKfk0KQ8H3Ustmp1GC9ABmWyJo736WqCtaipH8mfnxDO2c9gvm+q24yoESerOlNI/zHkCGX8vGm00NCw==} 1753 2509 peerDependencies: ··· 1844 2600 '@xtuc/long@4.2.2': 1845 2601 resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 1846 2602 2603 + abbrev@3.0.1: 2604 + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} 2605 + engines: {node: ^18.17.0 || >=20.5.0} 2606 + 2607 + abort-controller@3.0.0: 2608 + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 2609 + engines: {node: '>=6.5'} 2610 + 2611 + acorn-import-attributes@1.9.5: 2612 + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} 2613 + peerDependencies: 2614 + acorn: ^8 2615 + 1847 2616 acorn-import-phases@1.0.4: 1848 2617 resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} 1849 2618 engines: {node: '>=10.13.0'} ··· 1864 2633 engines: {node: '>=0.4.0'} 1865 2634 hasBin: true 1866 2635 2636 + agent-base@7.1.4: 2637 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 2638 + engines: {node: '>= 14'} 2639 + 1867 2640 ajv-formats@2.1.1: 1868 2641 resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 1869 2642 peerDependencies: ··· 1903 2676 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1904 2677 engines: {node: '>=8'} 1905 2678 2679 + ansi-styles@5.2.0: 2680 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 2681 + engines: {node: '>=10'} 2682 + 1906 2683 ansi-styles@6.2.3: 1907 2684 resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 1908 2685 engines: {node: '>=12'} 1909 2686 2687 + ansis@4.2.0: 2688 + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 2689 + engines: {node: '>=14'} 2690 + 2691 + anymatch@3.1.3: 2692 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 2693 + engines: {node: '>= 8'} 2694 + 2695 + archiver-utils@5.0.2: 2696 + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} 2697 + engines: {node: '>= 14'} 2698 + 2699 + archiver@7.0.1: 2700 + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} 2701 + engines: {node: '>= 14'} 2702 + 2703 + argparse@1.0.10: 2704 + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 2705 + 1910 2706 argparse@2.0.1: 1911 2707 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 2708 + 2709 + aria-query@5.3.0: 2710 + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 1912 2711 1913 2712 aria-query@5.3.2: 1914 2713 resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} ··· 1956 2755 1957 2756 ast-types-flow@0.0.8: 1958 2757 resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 2758 + 2759 + ast-types@0.16.1: 2760 + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 2761 + engines: {node: '>=4'} 1959 2762 1960 2763 ast-v8-to-istanbul@0.3.7: 1961 2764 resolution: {integrity: sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==} ··· 1964 2767 resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 1965 2768 engines: {node: '>= 0.4'} 1966 2769 2770 + async-sema@3.1.1: 2771 + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} 2772 + 2773 + async@3.2.6: 2774 + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 2775 + 1967 2776 auto-bind@5.0.1: 1968 2777 resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} 1969 2778 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} ··· 1980 2789 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 1981 2790 engines: {node: '>= 0.4'} 1982 2791 2792 + b4a@1.7.3: 2793 + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} 2794 + peerDependencies: 2795 + react-native-b4a: '*' 2796 + peerDependenciesMeta: 2797 + react-native-b4a: 2798 + optional: true 2799 + 2800 + babel-dead-code-elimination@1.0.10: 2801 + resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} 2802 + 1983 2803 balanced-match@1.0.2: 1984 2804 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1985 2805 2806 + bare-events@2.8.0: 2807 + resolution: {integrity: sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==} 2808 + peerDependencies: 2809 + bare-abort-controller: '*' 2810 + peerDependenciesMeta: 2811 + bare-abort-controller: 2812 + optional: true 2813 + 2814 + base64-js@1.5.1: 2815 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 2816 + 1986 2817 baseline-browser-mapping@2.8.16: 1987 2818 resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} 1988 2819 hasBin: true 1989 2820 2821 + bidi-js@1.0.3: 2822 + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} 2823 + 2824 + binary-extensions@2.3.0: 2825 + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 2826 + engines: {node: '>=8'} 2827 + 2828 + bindings@1.5.0: 2829 + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 2830 + 1990 2831 birecord@0.1.1: 1991 2832 resolution: {integrity: sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==} 2833 + 2834 + boolbase@1.0.0: 2835 + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1992 2836 1993 2837 brace-expansion@1.1.12: 1994 2838 resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} ··· 2005 2849 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 2006 2850 hasBin: true 2007 2851 2852 + buffer-crc32@1.0.0: 2853 + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} 2854 + engines: {node: '>=8.0.0'} 2855 + 2008 2856 buffer-from@1.1.2: 2009 2857 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 2010 2858 2859 + buffer@6.0.3: 2860 + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 2861 + 2011 2862 builtin-modules@5.0.0: 2012 2863 resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} 2013 2864 engines: {node: '>=18.20'} 2014 2865 2866 + c12@3.3.1: 2867 + resolution: {integrity: sha512-LcWQ01LT9tkoUINHgpIOv3mMs+Abv7oVCrtpMRi1PaapVEpWoMga5WuT7/DqFTu7URP9ftbOmimNw1KNIGh9DQ==} 2868 + peerDependencies: 2869 + magicast: ^0.3.5 2870 + peerDependenciesMeta: 2871 + magicast: 2872 + optional: true 2873 + 2015 2874 cac@6.7.14: 2016 2875 resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 2017 2876 engines: {node: '>=8'} ··· 2058 2917 resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 2059 2918 engines: {node: '>= 16'} 2060 2919 2920 + cheerio-select@2.1.0: 2921 + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 2922 + 2923 + cheerio@1.1.2: 2924 + resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} 2925 + engines: {node: '>=20.18.1'} 2926 + 2927 + chokidar@3.6.0: 2928 + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 2929 + engines: {node: '>= 8.10.0'} 2930 + 2931 + chokidar@4.0.3: 2932 + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 2933 + engines: {node: '>= 14.16.0'} 2934 + 2935 + chownr@3.0.0: 2936 + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} 2937 + engines: {node: '>=18'} 2938 + 2061 2939 chrome-trace-event@1.0.4: 2062 2940 resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} 2063 2941 engines: {node: '>=6.0'} ··· 2065 2943 ci-info@4.3.1: 2066 2944 resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} 2067 2945 engines: {node: '>=8'} 2946 + 2947 + citty@0.1.6: 2948 + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} 2068 2949 2069 2950 clean-regexp@1.0.0: 2070 2951 resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} ··· 2089 2970 client-only@0.0.1: 2090 2971 resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 2091 2972 2973 + clipboardy@4.0.0: 2974 + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} 2975 + engines: {node: '>=18'} 2976 + 2977 + cliui@8.0.1: 2978 + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 2979 + engines: {node: '>=12'} 2980 + 2092 2981 clsx@2.1.1: 2093 2982 resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 2094 2983 engines: {node: '>=6'} 2984 + 2985 + cluster-key-slot@1.1.2: 2986 + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} 2987 + engines: {node: '>=0.10.0'} 2095 2988 2096 2989 code-excerpt@4.0.0: 2097 2990 resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} ··· 2128 3021 resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 2129 3022 engines: {node: '>= 12.0.0'} 2130 3023 3024 + commondir@1.0.1: 3025 + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 3026 + 2131 3027 compare-versions@6.1.1: 2132 3028 resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} 2133 3029 3030 + compatx@0.2.0: 3031 + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} 3032 + 3033 + compress-commons@6.0.2: 3034 + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} 3035 + engines: {node: '>= 14'} 3036 + 2134 3037 concat-map@0.0.1: 2135 3038 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 2136 3039 3040 + confbox@0.1.8: 3041 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 3042 + 3043 + confbox@0.2.2: 3044 + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} 3045 + 3046 + consola@3.4.2: 3047 + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 3048 + engines: {node: ^14.18.0 || >=16.10.0} 3049 + 2137 3050 convert-source-map@2.0.0: 2138 3051 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 2139 3052 ··· 2141 3054 resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} 2142 3055 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2143 3056 3057 + cookie-es@1.2.2: 3058 + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} 3059 + 3060 + cookie-es@2.0.0: 3061 + resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} 3062 + 3063 + cookie@1.0.2: 3064 + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} 3065 + engines: {node: '>=18'} 3066 + 2144 3067 core-js-compat@3.46.0: 2145 3068 resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} 2146 3069 3070 + core-util-is@1.0.3: 3071 + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 3072 + 3073 + crc-32@1.2.2: 3074 + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} 3075 + engines: {node: '>=0.8'} 3076 + hasBin: true 3077 + 3078 + crc32-stream@6.0.0: 3079 + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} 3080 + engines: {node: '>= 14'} 3081 + 3082 + croner@9.1.0: 3083 + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} 3084 + engines: {node: '>=18.0'} 3085 + 2147 3086 cross-spawn@7.0.6: 2148 3087 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 2149 3088 engines: {node: '>= 8'} 2150 3089 3090 + crossws@0.3.5: 3091 + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 3092 + 2151 3093 css-color-names@0.0.1: 2152 3094 resolution: {integrity: sha512-i7o8lqlrmiG/EUzlBftBncsrkYgBCfCI9X6plNxdyXMZlMNd4hPX7u/o7YLH9vwXPPPAr+BUs3R0oto+lzjbyA==} 2153 3095 2154 3096 css-mediaquery@0.1.2: 2155 3097 resolution: {integrity: sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==} 2156 3098 3099 + css-select@5.2.2: 3100 + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} 3101 + 2157 3102 css-shorthand-expand@1.2.0: 2158 3103 resolution: {integrity: sha512-L3RS1VNYuXgMOfVGX4WzP9AFK6KL0JuioSoO8661egEac2eHX9/s4yFO8mgK6QEtm8UmU8IvuKzPgdQpU0DhpQ==} 2159 3104 3105 + css-tree@3.1.0: 3106 + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 3107 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 3108 + 2160 3109 css-url-regex@0.0.1: 2161 3110 resolution: {integrity: sha512-nFtRgFyJUwz9pyMpyscglpHEFdEJ+y2Q8pK33I99gzhUV1OFzS3t5DtIop3VWLIoGFr4mWcM4hJuWPLXn1NXgA==} 2162 3111 3112 + css-what@6.2.2: 3113 + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} 3114 + engines: {node: '>= 6'} 3115 + 3116 + cssstyle@5.3.1: 3117 + resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==} 3118 + engines: {node: '>=20'} 3119 + 2163 3120 csstype@3.1.3: 2164 3121 resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 2165 3122 2166 3123 damerau-levenshtein@1.0.8: 2167 3124 resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 2168 3125 3126 + data-urls@6.0.0: 3127 + resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} 3128 + engines: {node: '>=20'} 3129 + 2169 3130 data-view-buffer@1.0.2: 2170 3131 resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 2171 3132 engines: {node: '>= 0.4'} ··· 2177 3138 data-view-byte-offset@1.0.1: 2178 3139 resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 2179 3140 engines: {node: '>= 0.4'} 3141 + 3142 + db0@0.3.4: 3143 + resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} 3144 + peerDependencies: 3145 + '@electric-sql/pglite': '*' 3146 + '@libsql/client': '*' 3147 + better-sqlite3: '*' 3148 + drizzle-orm: '*' 3149 + mysql2: '*' 3150 + sqlite3: '*' 3151 + peerDependenciesMeta: 3152 + '@electric-sql/pglite': 3153 + optional: true 3154 + '@libsql/client': 3155 + optional: true 3156 + better-sqlite3: 3157 + optional: true 3158 + drizzle-orm: 3159 + optional: true 3160 + mysql2: 3161 + optional: true 3162 + sqlite3: 3163 + optional: true 2180 3164 2181 3165 debug@4.4.1: 2182 3166 resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} ··· 2209 3193 resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 2210 3194 engines: {node: '>= 0.4'} 2211 3195 3196 + define-lazy-prop@2.0.0: 3197 + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 3198 + engines: {node: '>=8'} 3199 + 2212 3200 define-properties@1.2.1: 2213 3201 resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 2214 3202 engines: {node: '>= 0.4'} 2215 3203 3204 + defu@6.1.4: 3205 + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 3206 + 3207 + denque@2.1.0: 3208 + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} 3209 + engines: {node: '>=0.10'} 3210 + 3211 + depd@2.0.0: 3212 + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 3213 + engines: {node: '>= 0.8'} 3214 + 3215 + dequal@2.0.3: 3216 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 3217 + engines: {node: '>=6'} 3218 + 3219 + destr@2.0.5: 3220 + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 3221 + 3222 + detect-libc@1.0.3: 3223 + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 3224 + engines: {node: '>=0.10'} 3225 + hasBin: true 3226 + 2216 3227 detect-libc@2.1.2: 2217 3228 resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 2218 3229 engines: {node: '>=8'} 2219 3230 3231 + diff@8.0.2: 3232 + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} 3233 + engines: {node: '>=0.3.1'} 3234 + 2220 3235 doctrine@2.1.0: 2221 3236 resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 2222 3237 engines: {node: '>=0.10.0'} 2223 3238 3239 + dom-accessibility-api@0.5.16: 3240 + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 3241 + 3242 + dom-serializer@2.0.0: 3243 + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 3244 + 3245 + domelementtype@2.3.0: 3246 + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 3247 + 3248 + domhandler@5.0.3: 3249 + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 3250 + engines: {node: '>= 4'} 3251 + 3252 + domutils@3.2.2: 3253 + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} 3254 + 3255 + dot-prop@10.1.0: 3256 + resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} 3257 + engines: {node: '>=20'} 3258 + 2224 3259 dotenv@16.0.3: 2225 3260 resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} 2226 3261 engines: {node: '>=12'} ··· 2229 3264 resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} 2230 3265 engines: {node: '>=12'} 2231 3266 3267 + dotenv@17.2.3: 3268 + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} 3269 + engines: {node: '>=12'} 3270 + 2232 3271 dunder-proto@1.0.1: 2233 3272 resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 2234 3273 engines: {node: '>= 0.4'} 2235 3274 3275 + duplexer@0.1.2: 3276 + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} 3277 + 2236 3278 eastasianwidth@0.2.0: 2237 3279 resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 3280 + 3281 + ee-first@1.1.1: 3282 + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 2238 3283 2239 3284 electron-to-chromium@1.5.234: 2240 3285 resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} ··· 2248 3293 emoji-regex@9.2.2: 2249 3294 resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 2250 3295 3296 + encodeurl@2.0.0: 3297 + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 3298 + engines: {node: '>= 0.8'} 3299 + 3300 + encoding-sniffer@0.2.1: 3301 + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} 3302 + 2251 3303 enhanced-resolve@5.18.3: 2252 3304 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} 2253 3305 engines: {node: '>=10.13.0'} 2254 3306 3307 + entities@4.5.0: 3308 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 3309 + engines: {node: '>=0.12'} 3310 + 3311 + entities@6.0.1: 3312 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 3313 + engines: {node: '>=0.12'} 3314 + 2255 3315 environment@1.1.0: 2256 3316 resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 2257 3317 engines: {node: '>=18'} 3318 + 3319 + error-stack-parser-es@1.0.5: 3320 + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} 2258 3321 2259 3322 es-abstract@1.24.0: 2260 3323 resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} ··· 2303 3366 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 2304 3367 engines: {node: '>=6'} 2305 3368 3369 + escape-html@1.0.3: 3370 + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 3371 + 2306 3372 escape-string-regexp@1.0.5: 2307 3373 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 2308 3374 engines: {node: '>=0.8.0'} ··· 2314 3380 escape-string-regexp@4.0.0: 2315 3381 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 2316 3382 engines: {node: '>=10'} 3383 + 3384 + escape-string-regexp@5.0.0: 3385 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 3386 + engines: {node: '>=12'} 2317 3387 2318 3388 eslint-config-flat-gitignore@2.1.0: 2319 3389 resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} ··· 2467 3537 resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 2468 3538 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2469 3539 3540 + esprima@4.0.1: 3541 + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 3542 + engines: {node: '>=4'} 3543 + hasBin: true 3544 + 2470 3545 esquery@1.6.0: 2471 3546 resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 2472 3547 engines: {node: '>=0.10'} ··· 2493 3568 resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2494 3569 engines: {node: '>=0.10.0'} 2495 3570 3571 + etag@1.8.1: 3572 + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 3573 + engines: {node: '>= 0.6'} 3574 + 3575 + event-target-shim@5.0.1: 3576 + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 3577 + engines: {node: '>=6'} 3578 + 3579 + events-universal@1.0.1: 3580 + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} 3581 + 2496 3582 events@3.3.0: 2497 3583 resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 2498 3584 engines: {node: '>=0.8.x'} 2499 3585 3586 + execa@8.0.1: 3587 + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 3588 + engines: {node: '>=16.17'} 3589 + 2500 3590 expect-type@1.2.2: 2501 3591 resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} 2502 3592 engines: {node: '>=12.0.0'} 3593 + 3594 + exsolve@1.0.7: 3595 + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} 2503 3596 2504 3597 fast-deep-equal@3.1.3: 2505 3598 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 3599 + 3600 + fast-fifo@1.3.2: 3601 + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 2506 3602 2507 3603 fast-glob@3.3.1: 2508 3604 resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} ··· 2532 3628 peerDependenciesMeta: 2533 3629 picomatch: 2534 3630 optional: true 3631 + 3632 + fetchdts@0.1.7: 3633 + resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} 2535 3634 2536 3635 figures@6.1.0: 2537 3636 resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} ··· 2541 3640 resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 2542 3641 engines: {node: '>=16.0.0'} 2543 3642 3643 + file-uri-to-path@1.0.0: 3644 + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 3645 + 2544 3646 fill-range@7.1.1: 2545 3647 resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 2546 3648 engines: {node: '>=8'} ··· 2572 3674 resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 2573 3675 engines: {node: '>=14'} 2574 3676 3677 + fresh@2.0.0: 3678 + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} 3679 + engines: {node: '>= 0.8'} 3680 + 2575 3681 fsevents@2.3.3: 2576 3682 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2577 3683 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} ··· 2591 3697 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2592 3698 engines: {node: '>=6.9.0'} 2593 3699 3700 + get-caller-file@2.0.5: 3701 + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 3702 + engines: {node: 6.* || 8.* || >= 10.*} 3703 + 2594 3704 get-east-asian-width@1.4.0: 2595 3705 resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} 2596 3706 engines: {node: '>=18'} ··· 2599 3709 resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 2600 3710 engines: {node: '>= 0.4'} 2601 3711 3712 + get-port-please@3.2.0: 3713 + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} 3714 + 2602 3715 get-proto@1.0.1: 2603 3716 resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 2604 3717 engines: {node: '>= 0.4'} 2605 3718 3719 + get-stream@8.0.1: 3720 + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 3721 + engines: {node: '>=16'} 3722 + 2606 3723 get-symbol-description@1.1.0: 2607 3724 resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 2608 3725 engines: {node: '>= 0.4'} 2609 3726 2610 3727 get-tsconfig@4.12.0: 2611 3728 resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} 3729 + 3730 + giget@2.0.0: 3731 + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} 3732 + hasBin: true 2612 3733 2613 3734 glob-parent@5.1.2: 2614 3735 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} ··· 2637 3758 resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 2638 3759 engines: {node: '>= 0.4'} 2639 3760 3761 + globby@15.0.0: 3762 + resolution: {integrity: sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==} 3763 + engines: {node: '>=20'} 3764 + 3765 + globrex@0.1.2: 3766 + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 3767 + 3768 + goober@2.1.18: 3769 + resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==} 3770 + peerDependencies: 3771 + csstype: ^3.0.10 3772 + 2640 3773 gopd@1.2.0: 2641 3774 resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 2642 3775 engines: {node: '>= 0.4'} ··· 2647 3780 graphemer@1.4.0: 2648 3781 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2649 3782 3783 + gzip-size@7.0.0: 3784 + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} 3785 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3786 + 3787 + h3@1.15.4: 3788 + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} 3789 + 3790 + h3@2.0.0-beta.4: 3791 + resolution: {integrity: sha512-/JdwHUGuHjbBXAVxQN7T7QeI9cVlhsqMKVNFHebZVs9RoEYH85Ogh9O1DEy/1ZiJkmMwa1gNg6bBcGhc1Itjdg==} 3792 + engines: {node: '>=20.11.1'} 3793 + peerDependencies: 3794 + crossws: ^0.4.1 3795 + peerDependenciesMeta: 3796 + crossws: 3797 + optional: true 3798 + 2650 3799 has-bigints@1.1.0: 2651 3800 resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 2652 3801 engines: {node: '>= 0.4'} ··· 2685 3834 resolution: {integrity: sha512-doVjXhSFvYZ7y0dNokjwwSahcrAfdz+/BCLvAMa/vHLzjj8+CFyV5xteThGUsKdkaasgN+gF2mUxao+SGLpUeA==} 2686 3835 engines: {node: '>=16.9.0'} 2687 3836 3837 + hookable@5.5.3: 3838 + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 3839 + 2688 3840 hsl-regex@1.0.0: 2689 3841 resolution: {integrity: sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==} 2690 3842 2691 3843 hsla-regex@1.0.0: 2692 3844 resolution: {integrity: sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==} 2693 3845 3846 + html-encoding-sniffer@4.0.0: 3847 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 3848 + engines: {node: '>=18'} 3849 + 2694 3850 html-escaper@2.0.2: 2695 3851 resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 2696 3852 3853 + htmlparser2@10.0.0: 3854 + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} 3855 + 3856 + http-errors@2.0.0: 3857 + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 3858 + engines: {node: '>= 0.8'} 3859 + 3860 + http-proxy-agent@7.0.2: 3861 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 3862 + engines: {node: '>= 14'} 3863 + 3864 + http-shutdown@1.2.2: 3865 + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} 3866 + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 3867 + 3868 + https-proxy-agent@7.0.6: 3869 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 3870 + engines: {node: '>= 14'} 3871 + 3872 + httpxy@0.1.7: 3873 + resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} 3874 + 3875 + human-signals@5.0.0: 3876 + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 3877 + engines: {node: '>=16.17.0'} 3878 + 3879 + iconv-lite@0.6.3: 3880 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 3881 + engines: {node: '>=0.10.0'} 3882 + 3883 + ieee754@1.2.1: 3884 + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 3885 + 2697 3886 ignore@5.3.2: 2698 3887 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 2699 3888 engines: {node: '>= 4'} ··· 2714 3903 resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} 2715 3904 engines: {node: '>=12'} 2716 3905 3906 + inherits@2.0.4: 3907 + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 3908 + 2717 3909 ink@6.3.1: 2718 3910 resolution: {integrity: sha512-3wGwITGrzL6rkWsi2gEKzgwdafGn4ZYd3u4oRp+sOPvfoxEHlnoB5Vnk9Uy5dMRUhDOqF3hqr4rLQ4lEzBc2sQ==} 2719 3911 engines: {node: '>=20'} ··· 2737 3929 invariant@2.2.4: 2738 3930 resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 2739 3931 3932 + ioredis@5.8.1: 3933 + resolution: {integrity: sha512-Qho8TgIamqEPdgiMadJwzRMW3TudIg6vpg4YONokGDudy4eqRIJtDbVX72pfLBcWxvbn3qm/40TyGUObdW4tLQ==} 3934 + engines: {node: '>=12.22.0'} 3935 + 3936 + iron-webcrypto@1.2.1: 3937 + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} 3938 + 2740 3939 is-array-buffer@3.0.5: 2741 3940 resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 2742 3941 engines: {node: '>= 0.4'} ··· 2748 3947 is-bigint@1.1.0: 2749 3948 resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 2750 3949 engines: {node: '>= 0.4'} 3950 + 3951 + is-binary-path@2.1.0: 3952 + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 3953 + engines: {node: '>=8'} 2751 3954 2752 3955 is-boolean-object@1.2.2: 2753 3956 resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} ··· 2776 3979 resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 2777 3980 engines: {node: '>= 0.4'} 2778 3981 3982 + is-docker@2.2.1: 3983 + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 3984 + engines: {node: '>=8'} 3985 + hasBin: true 3986 + 3987 + is-docker@3.0.0: 3988 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 3989 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3990 + hasBin: true 3991 + 2779 3992 is-extglob@2.1.1: 2780 3993 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2781 3994 engines: {node: '>=0.10.0'} ··· 2815 4028 engines: {node: '>=20'} 2816 4029 hasBin: true 2817 4030 4031 + is-inside-container@1.0.0: 4032 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 4033 + engines: {node: '>=14.16'} 4034 + hasBin: true 4035 + 2818 4036 is-map@2.0.3: 2819 4037 resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 2820 4038 engines: {node: '>= 0.4'} 4039 + 4040 + is-module@1.0.0: 4041 + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 2821 4042 2822 4043 is-negative-zero@2.0.3: 2823 4044 resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} ··· 2831 4052 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2832 4053 engines: {node: '>=0.12.0'} 2833 4054 4055 + is-potential-custom-element-name@1.0.1: 4056 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 4057 + 4058 + is-reference@1.2.1: 4059 + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 4060 + 2834 4061 is-reference@3.0.3: 2835 4062 resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} 2836 4063 ··· 2846 4073 resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 2847 4074 engines: {node: '>= 0.4'} 2848 4075 4076 + is-stream@2.0.1: 4077 + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 4078 + engines: {node: '>=8'} 4079 + 4080 + is-stream@3.0.0: 4081 + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 4082 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4083 + 2849 4084 is-string@1.1.1: 2850 4085 resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 2851 4086 engines: {node: '>= 0.4'} ··· 2874 4109 resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 2875 4110 engines: {node: '>= 0.4'} 2876 4111 4112 + is-wsl@2.2.0: 4113 + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 4114 + engines: {node: '>=8'} 4115 + 4116 + is-wsl@3.1.0: 4117 + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 4118 + engines: {node: '>=16'} 4119 + 4120 + is64bit@2.0.0: 4121 + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} 4122 + engines: {node: '>=18'} 4123 + 4124 + isarray@1.0.0: 4125 + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 4126 + 2877 4127 isarray@2.0.5: 2878 4128 resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 4129 + 4130 + isbot@5.1.31: 4131 + resolution: {integrity: sha512-DPgQshehErHAqSCKDb3rNW03pa2wS/v5evvUqtxt6TTnHRqAG8FdzcSSJs9656pK6Y+NT7K9R4acEYXLHYfpUQ==} 4132 + engines: {node: '>=18'} 2879 4133 2880 4134 isexe@2.0.0: 2881 4135 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} ··· 2917 4171 js-tokens@9.0.1: 2918 4172 resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 2919 4173 4174 + js-yaml@3.14.1: 4175 + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 4176 + hasBin: true 4177 + 2920 4178 js-yaml@4.1.0: 2921 4179 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2922 4180 hasBin: true 2923 4181 4182 + jsdom@27.0.1: 4183 + resolution: {integrity: sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==} 4184 + engines: {node: '>=20'} 4185 + peerDependencies: 4186 + canvas: ^3.0.0 4187 + peerDependenciesMeta: 4188 + canvas: 4189 + optional: true 4190 + 2924 4191 jsesc@3.0.2: 2925 4192 resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 2926 4193 engines: {node: '>=6'} ··· 2958 4225 keyv@4.5.4: 2959 4226 resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2960 4227 4228 + kleur@4.1.5: 4229 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 4230 + engines: {node: '>=6'} 4231 + 4232 + klona@2.0.6: 4233 + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 4234 + engines: {node: '>= 8'} 4235 + 4236 + knitwork@1.2.0: 4237 + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} 4238 + 2961 4239 language-subtag-registry@0.3.23: 2962 4240 resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 2963 4241 ··· 2965 4243 resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 2966 4244 engines: {node: '>=0.10'} 2967 4245 4246 + lazystream@1.0.1: 4247 + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} 4248 + engines: {node: '>= 0.6.3'} 4249 + 2968 4250 levn@0.4.1: 2969 4251 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2970 4252 engines: {node: '>= 0.8.0'} ··· 3037 4319 resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 3038 4320 engines: {node: '>=14'} 3039 4321 4322 + listhen@1.9.0: 4323 + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} 4324 + hasBin: true 4325 + 3040 4326 loader-runner@4.3.1: 3041 4327 resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} 3042 4328 engines: {node: '>=6.11.5'} 3043 4329 4330 + local-pkg@1.1.2: 4331 + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} 4332 + engines: {node: '>=14'} 4333 + 3044 4334 locate-path@6.0.0: 3045 4335 resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 3046 4336 engines: {node: '>=10'} 3047 4337 3048 4338 lodash.camelcase@4.3.0: 3049 4339 resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} 4340 + 4341 + lodash.defaults@4.2.0: 4342 + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} 4343 + 4344 + lodash.isarguments@3.1.0: 4345 + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} 3050 4346 3051 4347 lodash.merge@4.6.2: 3052 4348 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 3053 4349 4350 + lodash@4.17.21: 4351 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 4352 + 3054 4353 loose-envify@1.4.0: 3055 4354 resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 3056 4355 hasBin: true ··· 3061 4360 lru-cache@10.4.3: 3062 4361 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 3063 4362 4363 + lru-cache@11.2.2: 4364 + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} 4365 + engines: {node: 20 || >=22} 4366 + 3064 4367 lru-cache@5.1.1: 3065 4368 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 3066 4369 ··· 3069 4372 peerDependencies: 3070 4373 react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 3071 4374 4375 + lz-string@1.5.0: 4376 + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 4377 + hasBin: true 4378 + 3072 4379 magic-string@0.30.19: 3073 4380 resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 3074 4381 ··· 3087 4394 resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 3088 4395 engines: {node: '>= 0.4'} 3089 4396 4397 + mdn-data@2.12.2: 4398 + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 4399 + 3090 4400 meant@1.0.3: 3091 4401 resolution: {integrity: sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==} 3092 4402 ··· 3105 4415 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 3106 4416 engines: {node: '>= 0.6'} 3107 4417 4418 + mime-db@1.54.0: 4419 + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 4420 + engines: {node: '>= 0.6'} 4421 + 3108 4422 mime-types@2.1.35: 3109 4423 resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 3110 4424 engines: {node: '>= 0.6'} 3111 4425 4426 + mime-types@3.0.1: 4427 + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} 4428 + engines: {node: '>= 0.6'} 4429 + 4430 + mime@3.0.0: 4431 + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 4432 + engines: {node: '>=10.0.0'} 4433 + hasBin: true 4434 + 4435 + mime@4.1.0: 4436 + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} 4437 + engines: {node: '>=16'} 4438 + hasBin: true 4439 + 3112 4440 mimic-fn@2.1.0: 3113 4441 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 3114 4442 engines: {node: '>=6'} 3115 4443 4444 + mimic-fn@4.0.0: 4445 + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 4446 + engines: {node: '>=12'} 4447 + 3116 4448 minimatch@3.1.2: 3117 4449 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 3118 4450 4451 + minimatch@5.1.6: 4452 + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 4453 + engines: {node: '>=10'} 4454 + 3119 4455 minimatch@9.0.5: 3120 4456 resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 3121 4457 engines: {node: '>=16 || 14 >=14.17'} ··· 3124 4460 resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 3125 4461 engines: {node: '>=16 || 14 >=14.17'} 3126 4462 4463 + minizlib@3.1.0: 4464 + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} 4465 + engines: {node: '>= 18'} 4466 + 4467 + mlly@1.8.0: 4468 + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} 4469 + 3127 4470 ms@2.1.3: 3128 4471 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 3129 4472 ··· 3147 4490 neo-async@2.6.2: 3148 4491 resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 3149 4492 4493 + nitropack@2.12.7: 4494 + resolution: {integrity: sha512-HWyzMBj2d8b14J6Cfnxv97ztnuHIgXNcrGiWCruLfb2ZfKsp6OCbZYJm5T9sv/ZKl8LedhatrMKG66HWJux9Rg==} 4495 + engines: {node: ^20.19.0 || >=22.12.0} 4496 + hasBin: true 4497 + peerDependencies: 4498 + xml2js: ^0.6.2 4499 + peerDependenciesMeta: 4500 + xml2js: 4501 + optional: true 4502 + 4503 + node-addon-api@7.1.1: 4504 + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} 4505 + 4506 + node-fetch-native@1.6.7: 4507 + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 4508 + 4509 + node-fetch@2.7.0: 4510 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 4511 + engines: {node: 4.x || >=6.0.0} 4512 + peerDependencies: 4513 + encoding: ^0.1.0 4514 + peerDependenciesMeta: 4515 + encoding: 4516 + optional: true 4517 + 4518 + node-forge@1.3.1: 4519 + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 4520 + engines: {node: '>= 6.13.0'} 4521 + 4522 + node-gyp-build@4.8.4: 4523 + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} 4524 + hasBin: true 4525 + 4526 + node-mock-http@1.0.3: 4527 + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} 4528 + 3150 4529 node-releases@2.0.23: 3151 4530 resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} 3152 4531 4532 + nopt@8.1.0: 4533 + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} 4534 + engines: {node: ^18.17.0 || >=20.5.0} 4535 + hasBin: true 4536 + 4537 + normalize-path@3.0.0: 4538 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 4539 + engines: {node: '>=0.10.0'} 4540 + 4541 + npm-run-path@5.3.0: 4542 + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 4543 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4544 + 4545 + nth-check@2.1.1: 4546 + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 4547 + 4548 + nypm@0.6.2: 4549 + resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} 4550 + engines: {node: ^14.16.0 || >=16.10.0} 4551 + hasBin: true 4552 + 3153 4553 object-assign@4.1.1: 3154 4554 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 3155 4555 engines: {node: '>=0.10.0'} ··· 3178 4578 resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 3179 4579 engines: {node: '>= 0.4'} 3180 4580 4581 + ofetch@1.4.1: 4582 + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} 4583 + 4584 + ohash@2.0.11: 4585 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 4586 + 4587 + on-finished@2.4.1: 4588 + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 4589 + engines: {node: '>= 0.8'} 4590 + 3181 4591 onetime@5.1.2: 3182 4592 resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 3183 4593 engines: {node: '>=6'} 3184 4594 4595 + onetime@6.0.0: 4596 + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 4597 + engines: {node: '>=12'} 4598 + 4599 + open@8.4.2: 4600 + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} 4601 + engines: {node: '>=12'} 4602 + 3185 4603 optionator@0.9.4: 3186 4604 resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 3187 4605 engines: {node: '>= 0.8.0'} ··· 3205 4623 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3206 4624 engines: {node: '>=6'} 3207 4625 4626 + parse5-htmlparser2-tree-adapter@7.1.0: 4627 + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} 4628 + 4629 + parse5-parser-stream@7.1.2: 4630 + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} 4631 + 4632 + parse5@7.3.0: 4633 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 4634 + 4635 + parse5@8.0.0: 4636 + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} 4637 + 4638 + parseurl@1.3.3: 4639 + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 4640 + engines: {node: '>= 0.8'} 4641 + 3208 4642 patch-console@2.0.0: 3209 4643 resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} 3210 4644 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} ··· 3217 4651 resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3218 4652 engines: {node: '>=8'} 3219 4653 4654 + path-key@4.0.0: 4655 + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 4656 + engines: {node: '>=12'} 4657 + 3220 4658 path-parse@1.0.7: 3221 4659 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3222 4660 ··· 3224 4662 resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 3225 4663 engines: {node: '>=16 || 14 >=14.18'} 3226 4664 4665 + path-type@6.0.0: 4666 + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} 4667 + engines: {node: '>=18'} 4668 + 4669 + pathe@1.1.2: 4670 + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 4671 + 3227 4672 pathe@2.0.3: 3228 4673 resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 3229 4674 3230 4675 pathval@2.0.1: 3231 4676 resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} 3232 4677 engines: {node: '>= 14.16'} 4678 + 4679 + perfect-debounce@2.0.0: 4680 + resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} 3233 4681 3234 4682 periscopic@4.0.2: 3235 4683 resolution: {integrity: sha512-sqpQDUy8vgB7ycLkendSKS6HnVz1Rneoc3Rc+ZBUCe2pbqlVuCC5vF52l0NJ1aiMg/r1qfYF9/myz8CZeI2rjA==} ··· 3245 4693 resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 3246 4694 engines: {node: '>=12'} 3247 4695 4696 + pkg-types@1.3.1: 4697 + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 4698 + 4699 + pkg-types@2.3.0: 4700 + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} 4701 + 3248 4702 pluralize@8.0.0: 3249 4703 resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 3250 4704 engines: {node: '>=4'} ··· 3269 4723 engines: {node: '>=14'} 3270 4724 hasBin: true 3271 4725 4726 + pretty-bytes@7.1.0: 4727 + resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} 4728 + engines: {node: '>=20'} 4729 + 4730 + pretty-format@27.5.1: 4731 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 4732 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 4733 + 4734 + process-nextick-args@2.0.1: 4735 + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 4736 + 4737 + process@0.11.10: 4738 + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 4739 + engines: {node: '>= 0.6.0'} 4740 + 3272 4741 prop-types@15.8.1: 3273 4742 resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 3274 4743 ··· 3276 4745 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 3277 4746 engines: {node: '>=6'} 3278 4747 4748 + quansync@0.2.11: 4749 + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} 4750 + 3279 4751 queue-microtask@1.2.3: 3280 4752 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3281 4753 4754 + radix3@1.1.2: 4755 + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} 4756 + 3282 4757 randombytes@2.1.0: 3283 4758 resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 3284 4759 4760 + range-parser@1.2.1: 4761 + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 4762 + engines: {node: '>= 0.6'} 4763 + 4764 + rc9@2.1.2: 4765 + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} 4766 + 3285 4767 react-aria-components@1.13.0: 3286 4768 resolution: {integrity: sha512-t1mm3AVy/MjUJBZ7zrb+sFC5iya8Vvw3go3mGKtTm269bXGZho7BLA4IgT+0nOS3j+ku6ChVi8NEoQVFoYzJJA==} 3287 4769 peerDependencies: ··· 3301 4783 3302 4784 react-is@16.13.1: 3303 4785 resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 4786 + 4787 + react-is@17.0.2: 4788 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 3304 4789 3305 4790 react-reconciler@0.32.0: 3306 4791 resolution: {integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==} ··· 3329 4814 resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} 3330 4815 engines: {node: '>=0.10.0'} 3331 4816 4817 + readable-stream@2.3.8: 4818 + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 4819 + 4820 + readable-stream@4.7.0: 4821 + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 4822 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 4823 + 4824 + readdir-glob@1.1.3: 4825 + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} 4826 + 4827 + readdirp@3.6.0: 4828 + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 4829 + engines: {node: '>=8.10.0'} 4830 + 4831 + readdirp@4.1.2: 4832 + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 4833 + engines: {node: '>= 14.18.0'} 4834 + 4835 + recast@0.23.11: 4836 + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} 4837 + engines: {node: '>= 4'} 4838 + 4839 + redis-errors@1.2.0: 4840 + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} 4841 + engines: {node: '>=4'} 4842 + 4843 + redis-parser@3.0.0: 4844 + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} 4845 + engines: {node: '>=4'} 4846 + 3332 4847 reduce-flatten@2.0.0: 3333 4848 resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} 3334 4849 engines: {node: '>=6'} ··· 3354 4869 3355 4870 repeat-element@1.1.4: 3356 4871 resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} 4872 + engines: {node: '>=0.10.0'} 4873 + 4874 + require-directory@2.1.1: 4875 + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3357 4876 engines: {node: '>=0.10.0'} 3358 4877 3359 4878 require-from-string@2.0.2: ··· 3364 4883 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3365 4884 engines: {node: '>=4'} 3366 4885 4886 + resolve-from@5.0.0: 4887 + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 4888 + engines: {node: '>=8'} 4889 + 3367 4890 resolve-pkg-maps@1.0.0: 3368 4891 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3369 4892 4893 + resolve@1.22.10: 4894 + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 4895 + engines: {node: '>= 0.4'} 4896 + hasBin: true 4897 + 3370 4898 resolve@2.0.0-next.5: 3371 4899 resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 3372 4900 hasBin: true ··· 3385 4913 rgba-regex@1.0.0: 3386 4914 resolution: {integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==} 3387 4915 4916 + rollup-plugin-visualizer@6.0.5: 4917 + resolution: {integrity: sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==} 4918 + engines: {node: '>=18'} 4919 + hasBin: true 4920 + peerDependencies: 4921 + rolldown: 1.x || ^1.0.0-beta 4922 + rollup: 2.x || 3.x || 4.x 4923 + peerDependenciesMeta: 4924 + rolldown: 4925 + optional: true 4926 + rollup: 4927 + optional: true 4928 + 3388 4929 rollup@4.52.4: 3389 4930 resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} 3390 4931 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3391 4932 hasBin: true 3392 4933 4934 + rou3@0.7.7: 4935 + resolution: {integrity: sha512-z+6o7c3DarUbuBMLIdhzj2CqJLtUWrGk4fZlf07dIMitX3UpBXeInJ3lMD9huxj9yh9eo1RqtXf9aL0YzkDDUA==} 4936 + 4937 + rrweb-cssom@0.8.0: 4938 + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 4939 + 3393 4940 rsc-html-stream@0.0.7: 3394 4941 resolution: {integrity: sha512-v9+fuY7usTgvXdNl8JmfXCvSsQbq2YMd60kOeeMIqCJFZ69fViuIxztHei7v5mlMMa2h3SqS+v44Gu9i9xANZA==} 3395 4942 ··· 3400 4947 resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 3401 4948 engines: {node: '>=0.4'} 3402 4949 4950 + safe-buffer@5.1.2: 4951 + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 4952 + 3403 4953 safe-buffer@5.2.1: 3404 4954 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3405 4955 ··· 3411 4961 resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 3412 4962 engines: {node: '>= 0.4'} 3413 4963 4964 + safer-buffer@2.1.2: 4965 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 4966 + 4967 + saxes@6.0.0: 4968 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 4969 + engines: {node: '>=v12.22.7'} 4970 + 3414 4971 scheduler@0.26.0: 3415 4972 resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} 3416 4973 ··· 3421 4978 resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} 3422 4979 engines: {node: '>= 10.13.0'} 3423 4980 4981 + scule@1.3.0: 4982 + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} 4983 + 3424 4984 semver@6.3.1: 3425 4985 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3426 4986 hasBin: true ··· 3430 4990 engines: {node: '>=10'} 3431 4991 hasBin: true 3432 4992 4993 + send@1.2.0: 4994 + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} 4995 + engines: {node: '>= 18'} 4996 + 3433 4997 serialize-javascript@6.0.2: 3434 4998 resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 3435 4999 5000 + seroval-plugins@1.3.3: 5001 + resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} 5002 + engines: {node: '>=10'} 5003 + peerDependencies: 5004 + seroval: ^1.0 5005 + 5006 + seroval@1.3.2: 5007 + resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 5008 + engines: {node: '>=10'} 5009 + 5010 + serve-placeholder@2.0.2: 5011 + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} 5012 + 5013 + serve-static@2.2.0: 5014 + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} 5015 + engines: {node: '>= 18'} 5016 + 3436 5017 set-function-length@1.2.2: 3437 5018 resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 3438 5019 engines: {node: '>= 0.4'} ··· 3444 5025 set-proto@1.0.0: 3445 5026 resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 3446 5027 engines: {node: '>= 0.4'} 5028 + 5029 + setprototypeof@1.2.0: 5030 + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 3447 5031 3448 5032 shebang-command@2.0.0: 3449 5033 resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} ··· 3479 5063 resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3480 5064 engines: {node: '>=14'} 3481 5065 5066 + slash@5.1.0: 5067 + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 5068 + engines: {node: '>=14.16'} 5069 + 3482 5070 slice-ansi@5.0.0: 3483 5071 resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3484 5072 engines: {node: '>=12'} ··· 3487 5075 resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} 3488 5076 engines: {node: '>=18'} 3489 5077 5078 + smob@1.5.0: 5079 + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} 5080 + 5081 + solid-js@1.9.9: 5082 + resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} 5083 + 3490 5084 source-map-js@1.2.1: 3491 5085 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 3492 5086 engines: {node: '>=0.10.0'} ··· 3498 5092 resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3499 5093 engines: {node: '>=0.10.0'} 3500 5094 5095 + source-map@0.7.6: 5096 + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 5097 + engines: {node: '>= 12'} 5098 + 5099 + sprintf-js@1.0.3: 5100 + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 5101 + 5102 + srvx@0.8.16: 5103 + resolution: {integrity: sha512-hmcGW4CgroeSmzgF1Ihwgl+Ths0JqAJ7HwjP2X7e3JzY7u4IydLMcdnlqGQiQGUswz+PO9oh/KtCpOISIvs9QQ==} 5104 + engines: {node: '>=20.16.0'} 5105 + hasBin: true 5106 + 3501 5107 stable-hash-x@0.2.0: 3502 5108 resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} 3503 5109 engines: {node: '>=12.0.0'} ··· 3509 5115 stackback@0.0.2: 3510 5116 resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3511 5117 5118 + standard-as-callback@2.1.0: 5119 + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} 5120 + 5121 + statuses@2.0.1: 5122 + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 5123 + engines: {node: '>= 0.8'} 5124 + 5125 + statuses@2.0.2: 5126 + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} 5127 + engines: {node: '>= 0.8'} 5128 + 3512 5129 std-env@3.10.0: 3513 5130 resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 3514 5131 3515 5132 stop-iteration-iterator@1.1.0: 3516 5133 resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} 3517 5134 engines: {node: '>= 0.4'} 5135 + 5136 + streamx@2.23.0: 5137 + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} 3518 5138 3519 5139 string-ts@2.2.1: 3520 5140 resolution: {integrity: sha512-Q2u0gko67PLLhbte5HmPfdOjNvUKbKQM+mCNQae6jE91DmoFHY6HH9GcdqCeNx87DZ2KKjiFxmA0R/42OneGWw==} ··· 3554 5174 resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 3555 5175 engines: {node: '>= 0.4'} 3556 5176 5177 + string_decoder@1.1.1: 5178 + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 5179 + 5180 + string_decoder@1.3.0: 5181 + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 5182 + 3557 5183 strip-ansi@6.0.1: 3558 5184 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3559 5185 engines: {node: '>=8'} 3560 5186 3561 5187 strip-ansi@7.1.2: 3562 5188 resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 5189 + engines: {node: '>=12'} 5190 + 5191 + strip-final-newline@3.0.0: 5192 + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3563 5193 engines: {node: '>=12'} 3564 5194 3565 5195 strip-indent@4.1.1: ··· 3576 5206 styleq@0.2.1: 3577 5207 resolution: {integrity: sha512-L0TR0NQb+X4/ktDEKmjWyp27gla+LUYi/by5k5SjKXf6/pvZP7wbwEB5J+tqxdFVPgzbsuz+d4RTScO/QZquBw==} 3578 5208 5209 + supports-color@10.2.2: 5210 + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} 5211 + engines: {node: '>=18'} 5212 + 3579 5213 supports-color@5.5.0: 3580 5214 resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3581 5215 engines: {node: '>=4'} ··· 3591 5225 supports-preserve-symlinks-flag@1.0.0: 3592 5226 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3593 5227 engines: {node: '>= 0.4'} 5228 + 5229 + symbol-tree@3.2.4: 5230 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 5231 + 5232 + system-architecture@0.1.0: 5233 + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} 5234 + engines: {node: '>=18'} 3594 5235 3595 5236 table-layout@1.0.2: 3596 5237 resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} 3597 5238 engines: {node: '>=8.0.0'} 3598 5239 5240 + tagged-tag@1.0.0: 5241 + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} 5242 + engines: {node: '>=20'} 5243 + 5244 + tailwindcss@4.1.14: 5245 + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} 5246 + 3599 5247 tapable@2.3.0: 3600 5248 resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 3601 5249 engines: {node: '>=6'} 5250 + 5251 + tar-stream@3.1.7: 5252 + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 5253 + 5254 + tar@7.5.1: 5255 + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} 5256 + engines: {node: '>=18'} 3602 5257 3603 5258 terser-webpack-plugin@5.3.14: 3604 5259 resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} ··· 3625 5280 resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} 3626 5281 engines: {node: '>=18'} 3627 5282 5283 + text-decoder@1.2.3: 5284 + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} 5285 + 5286 + tiny-invariant@1.3.3: 5287 + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 5288 + 5289 + tiny-warning@1.0.3: 5290 + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} 5291 + 3628 5292 tinybench@2.9.0: 3629 5293 resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 3630 5294 3631 5295 tinyexec@0.3.2: 3632 5296 resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 3633 5297 5298 + tinyexec@1.0.1: 5299 + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} 5300 + 3634 5301 tinyglobby@0.2.15: 3635 5302 resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 3636 5303 engines: {node: '>=12.0.0'} ··· 3646 5313 tinyspy@4.0.4: 3647 5314 resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} 3648 5315 engines: {node: '>=14.0.0'} 5316 + 5317 + tldts-core@7.0.17: 5318 + resolution: {integrity: sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==} 5319 + 5320 + tldts@7.0.17: 5321 + resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==} 5322 + hasBin: true 3649 5323 3650 5324 to-regex-range@5.0.1: 3651 5325 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3652 5326 engines: {node: '>=8.0'} 3653 5327 5328 + toidentifier@1.0.1: 5329 + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 5330 + engines: {node: '>=0.6'} 5331 + 5332 + tough-cookie@6.0.0: 5333 + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} 5334 + engines: {node: '>=16'} 5335 + 5336 + tr46@0.0.3: 5337 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 5338 + 5339 + tr46@6.0.0: 5340 + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} 5341 + engines: {node: '>=20'} 5342 + 3654 5343 ts-api-utils@2.1.0: 3655 5344 resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 3656 5345 engines: {node: '>=18.12'} ··· 3665 5354 ts-pattern@5.8.0: 3666 5355 resolution: {integrity: sha512-kIjN2qmWiHnhgr5DAkAafF9fwb0T5OhMVSWrm8XEdTFnX6+wfXwYOFjeF86UZ54vduqiR7BfqScFmXSzSaH8oA==} 3667 5356 5357 + tsconfck@3.1.6: 5358 + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} 5359 + engines: {node: ^18 || >=20} 5360 + hasBin: true 5361 + peerDependencies: 5362 + typescript: ^5.0.0 5363 + peerDependenciesMeta: 5364 + typescript: 5365 + optional: true 5366 + 3668 5367 tslib@1.10.0: 3669 5368 resolution: {integrity: sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==} 3670 5369 3671 5370 tslib@2.8.1: 3672 5371 resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 5372 + 5373 + tsx@4.20.6: 5374 + resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} 5375 + engines: {node: '>=18.0.0'} 5376 + hasBin: true 3673 5377 3674 5378 turbo-darwin-64@2.5.8: 3675 5379 resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==} ··· 3716 5420 resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 3717 5421 engines: {node: '>=16'} 3718 5422 5423 + type-fest@5.1.0: 5424 + resolution: {integrity: sha512-wQ531tuWvB6oK+pchHIu5lHe5f5wpSCqB8Kf4dWQRbOYc9HTge7JL0G4Qd44bh6QuJCccIzL3bugb8GI0MwHrg==} 5425 + engines: {node: '>=20'} 5426 + 3719 5427 typed-array-buffer@1.0.3: 3720 5428 resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 3721 5429 engines: {node: '>= 0.4'} ··· 3752 5460 resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} 3753 5461 engines: {node: '>=8'} 3754 5462 5463 + ufo@1.6.1: 5464 + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 5465 + 5466 + ultrahtml@1.6.0: 5467 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 5468 + 3755 5469 unbox-primitive@1.1.0: 3756 5470 resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 3757 5471 engines: {node: '>= 0.4'} 3758 5472 5473 + uncrypto@0.1.3: 5474 + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 5475 + 5476 + unctx@2.4.1: 5477 + resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} 5478 + 3759 5479 undici-types@6.21.0: 3760 5480 resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 3761 5481 3762 5482 undici-types@7.14.0: 3763 5483 resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} 3764 5484 5485 + undici@7.16.0: 5486 + resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} 5487 + engines: {node: '>=20.18.1'} 5488 + 5489 + unenv@2.0.0-rc.21: 5490 + resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} 5491 + 5492 + unicorn-magic@0.3.0: 5493 + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} 5494 + engines: {node: '>=18'} 5495 + 5496 + unimport@5.5.0: 5497 + resolution: {integrity: sha512-/JpWMG9s1nBSlXJAQ8EREFTFy3oy6USFd8T6AoBaw1q2GGcF4R9yp3ofg32UODZlYEO5VD0EWE1RpI9XDWyPYg==} 5498 + engines: {node: '>=18.12.0'} 5499 + 3765 5500 unplugin-stylex@0.5.5: 3766 5501 resolution: {integrity: sha512-88HOvm771zQs9fzLVFB7SsZQQHFKy5t903uXnMZuq99FGV22M07paPV8qBy/JQ9/1Rage71r2altr9gXhHoadQ==} 3767 5502 engines: {node: '>=18'} 3768 5503 peerDependencies: 3769 5504 '@stylexjs/stylex': 0.x 3770 5505 5506 + unplugin-utils@0.3.1: 5507 + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} 5508 + engines: {node: '>=20.19.0'} 5509 + 3771 5510 unplugin@1.16.1: 3772 5511 resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} 3773 5512 engines: {node: '>=14.0.0'} 3774 5513 5514 + unplugin@2.3.10: 5515 + resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} 5516 + engines: {node: '>=18.12.0'} 5517 + 3775 5518 unrs-resolver@1.11.1: 3776 5519 resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} 3777 5520 5521 + unstorage@1.17.1: 5522 + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} 5523 + peerDependencies: 5524 + '@azure/app-configuration': ^1.8.0 5525 + '@azure/cosmos': ^4.2.0 5526 + '@azure/data-tables': ^13.3.0 5527 + '@azure/identity': ^4.6.0 5528 + '@azure/keyvault-secrets': ^4.9.0 5529 + '@azure/storage-blob': ^12.26.0 5530 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 5531 + '@deno/kv': '>=0.9.0' 5532 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 5533 + '@planetscale/database': ^1.19.0 5534 + '@upstash/redis': ^1.34.3 5535 + '@vercel/blob': '>=0.27.1' 5536 + '@vercel/functions': ^2.2.12 || ^3.0.0 5537 + '@vercel/kv': ^1.0.1 5538 + aws4fetch: ^1.0.20 5539 + db0: '>=0.2.1' 5540 + idb-keyval: ^6.2.1 5541 + ioredis: ^5.4.2 5542 + uploadthing: ^7.4.4 5543 + peerDependenciesMeta: 5544 + '@azure/app-configuration': 5545 + optional: true 5546 + '@azure/cosmos': 5547 + optional: true 5548 + '@azure/data-tables': 5549 + optional: true 5550 + '@azure/identity': 5551 + optional: true 5552 + '@azure/keyvault-secrets': 5553 + optional: true 5554 + '@azure/storage-blob': 5555 + optional: true 5556 + '@capacitor/preferences': 5557 + optional: true 5558 + '@deno/kv': 5559 + optional: true 5560 + '@netlify/blobs': 5561 + optional: true 5562 + '@planetscale/database': 5563 + optional: true 5564 + '@upstash/redis': 5565 + optional: true 5566 + '@vercel/blob': 5567 + optional: true 5568 + '@vercel/functions': 5569 + optional: true 5570 + '@vercel/kv': 5571 + optional: true 5572 + aws4fetch: 5573 + optional: true 5574 + db0: 5575 + optional: true 5576 + idb-keyval: 5577 + optional: true 5578 + ioredis: 5579 + optional: true 5580 + uploadthing: 5581 + optional: true 5582 + 5583 + untun@0.1.3: 5584 + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} 5585 + hasBin: true 5586 + 5587 + untyped@2.0.0: 5588 + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} 5589 + hasBin: true 5590 + 5591 + unwasm@0.3.11: 5592 + resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==} 5593 + 3778 5594 update-browserslist-db@1.1.3: 3779 5595 resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 3780 5596 hasBin: true 3781 5597 peerDependencies: 3782 5598 browserslist: '>= 4.21.0' 3783 5599 5600 + uqr@0.1.2: 5601 + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} 5602 + 3784 5603 uri-js@4.4.1: 3785 5604 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3786 5605 ··· 3788 5607 resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} 3789 5608 peerDependencies: 3790 5609 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 5610 + 5611 + util-deprecate@1.0.2: 5612 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3791 5613 3792 5614 vite-node@3.2.4: 3793 5615 resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} 3794 5616 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 3795 5617 hasBin: true 3796 5618 5619 + vite-tsconfig-paths@5.1.4: 5620 + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} 5621 + peerDependencies: 5622 + vite: '*' 5623 + peerDependenciesMeta: 5624 + vite: 5625 + optional: true 5626 + 5627 + vite@7.1.10: 5628 + resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==} 5629 + engines: {node: ^20.19.0 || >=22.12.0} 5630 + hasBin: true 5631 + peerDependencies: 5632 + '@types/node': ^20.19.0 || >=22.12.0 5633 + jiti: '>=1.21.0' 5634 + less: ^4.0.0 5635 + lightningcss: ^1.21.0 5636 + sass: ^1.70.0 5637 + sass-embedded: ^1.70.0 5638 + stylus: '>=0.54.8' 5639 + sugarss: ^5.0.0 5640 + terser: ^5.16.0 5641 + tsx: ^4.8.1 5642 + yaml: ^2.4.2 5643 + peerDependenciesMeta: 5644 + '@types/node': 5645 + optional: true 5646 + jiti: 5647 + optional: true 5648 + less: 5649 + optional: true 5650 + lightningcss: 5651 + optional: true 5652 + sass: 5653 + optional: true 5654 + sass-embedded: 5655 + optional: true 5656 + stylus: 5657 + optional: true 5658 + sugarss: 5659 + optional: true 5660 + terser: 5661 + optional: true 5662 + tsx: 5663 + optional: true 5664 + yaml: 5665 + optional: true 5666 + 3797 5667 vite@7.1.5: 3798 5668 resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} 3799 5669 engines: {node: ^20.19.0 || >=22.12.0} ··· 3870 5740 jsdom: 3871 5741 optional: true 3872 5742 5743 + w3c-xmlserializer@5.0.0: 5744 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 5745 + engines: {node: '>=18'} 5746 + 3873 5747 waku@0.26.1: 3874 5748 resolution: {integrity: sha512-b8nH8PFlZfnL8Yu1vbHISLAgcyFXeDaJAllKdB3oAWk71INQcTN8x0JfdZGUa0x/b2Lcn7souvub2chkGGh9Lg==} 3875 5749 engines: {node: ^24.0.0 || ^22.12.0 || ^20.19.0} ··· 3883 5757 resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} 3884 5758 engines: {node: '>=10.13.0'} 3885 5759 5760 + web-vitals@5.1.0: 5761 + resolution: {integrity: sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==} 5762 + 5763 + webidl-conversions@3.0.1: 5764 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 5765 + 5766 + webidl-conversions@8.0.0: 5767 + resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} 5768 + engines: {node: '>=20'} 5769 + 3886 5770 webpack-sources@3.3.3: 3887 5771 resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} 3888 5772 engines: {node: '>=10.13.0'} ··· 3899 5783 peerDependenciesMeta: 3900 5784 webpack-cli: 3901 5785 optional: true 5786 + 5787 + whatwg-encoding@3.1.1: 5788 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 5789 + engines: {node: '>=18'} 5790 + 5791 + whatwg-mimetype@4.0.0: 5792 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 5793 + engines: {node: '>=18'} 5794 + 5795 + whatwg-url@15.1.0: 5796 + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} 5797 + engines: {node: '>=20'} 5798 + 5799 + whatwg-url@5.0.0: 5800 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3902 5801 3903 5802 which-boxed-primitive@1.1.1: 3904 5803 resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} ··· 3962 5861 utf-8-validate: 3963 5862 optional: true 3964 5863 5864 + xml-name-validator@5.0.0: 5865 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 5866 + engines: {node: '>=18'} 5867 + 5868 + xmlbuilder2@3.1.1: 5869 + resolution: {integrity: sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==} 5870 + engines: {node: '>=12.0'} 5871 + 5872 + xmlchars@2.2.0: 5873 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 5874 + 3965 5875 xtend@4.0.2: 3966 5876 resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 3967 5877 engines: {node: '>=0.4'} 3968 5878 5879 + y18n@5.0.8: 5880 + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 5881 + engines: {node: '>=10'} 5882 + 3969 5883 yallist@3.1.1: 3970 5884 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3971 5885 5886 + yallist@5.0.0: 5887 + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} 5888 + engines: {node: '>=18'} 5889 + 5890 + yargs-parser@21.1.1: 5891 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 5892 + engines: {node: '>=12'} 5893 + 5894 + yargs@17.7.2: 5895 + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 5896 + engines: {node: '>=12'} 5897 + 3972 5898 yocto-queue@0.1.0: 3973 5899 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3974 5900 engines: {node: '>=10'} ··· 3976 5902 yoga-layout@3.2.1: 3977 5903 resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} 3978 5904 5905 + youch-core@0.3.3: 5906 + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} 5907 + 5908 + youch@4.1.0-beta.11: 5909 + resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} 5910 + 3979 5911 zimmerframe@1.1.4: 3980 5912 resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} 3981 5913 5914 + zip-stream@6.0.1: 5915 + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} 5916 + engines: {node: '>= 14'} 5917 + 5918 + zod@3.25.76: 5919 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 5920 + 3982 5921 zod@4.1.12: 3983 5922 resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} 3984 5923 ··· 3994 5933 '@jridgewell/gen-mapping': 0.3.13 3995 5934 '@jridgewell/trace-mapping': 0.3.31 3996 5935 5936 + '@asamuzakjp/css-color@4.0.5': 5937 + dependencies: 5938 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 5939 + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 5940 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 5941 + '@csstools/css-tokenizer': 3.0.4 5942 + lru-cache: 11.2.2 5943 + 5944 + '@asamuzakjp/dom-selector@6.7.2': 5945 + dependencies: 5946 + '@asamuzakjp/nwsapi': 2.3.9 5947 + bidi-js: 1.0.3 5948 + css-tree: 3.1.0 5949 + is-potential-custom-element-name: 1.0.1 5950 + lru-cache: 11.2.2 5951 + 5952 + '@asamuzakjp/nwsapi@2.3.9': {} 5953 + 5954 + '@babel/code-frame@7.26.2': 5955 + dependencies: 5956 + '@babel/helper-validator-identifier': 7.27.1 5957 + js-tokens: 4.0.0 5958 + picocolors: 1.1.1 5959 + 3997 5960 '@babel/code-frame@7.27.1': 3998 5961 dependencies: 3999 5962 '@babel/helper-validator-identifier': 7.27.1 ··· 4030 5993 '@jridgewell/trace-mapping': 0.3.31 4031 5994 jsesc: 3.1.0 4032 5995 5996 + '@babel/helper-annotate-as-pure@7.27.3': 5997 + dependencies: 5998 + '@babel/types': 7.28.4 5999 + 4033 6000 '@babel/helper-compilation-targets@7.27.2': 4034 6001 dependencies: 4035 6002 '@babel/compat-data': 7.28.4 ··· 4038 6005 lru-cache: 5.1.1 4039 6006 semver: 6.3.1 4040 6007 6008 + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': 6009 + dependencies: 6010 + '@babel/core': 7.28.4 6011 + '@babel/helper-annotate-as-pure': 7.27.3 6012 + '@babel/helper-member-expression-to-functions': 7.27.1 6013 + '@babel/helper-optimise-call-expression': 7.27.1 6014 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) 6015 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 6016 + '@babel/traverse': 7.28.4 6017 + semver: 6.3.1 6018 + transitivePeerDependencies: 6019 + - supports-color 6020 + 4041 6021 '@babel/helper-globals@7.28.0': {} 4042 6022 6023 + '@babel/helper-member-expression-to-functions@7.27.1': 6024 + dependencies: 6025 + '@babel/traverse': 7.28.4 6026 + '@babel/types': 7.28.4 6027 + transitivePeerDependencies: 6028 + - supports-color 6029 + 4043 6030 '@babel/helper-module-imports@7.27.1': 4044 6031 dependencies: 4045 6032 '@babel/traverse': 7.28.4 ··· 4056 6043 transitivePeerDependencies: 4057 6044 - supports-color 4058 6045 6046 + '@babel/helper-optimise-call-expression@7.27.1': 6047 + dependencies: 6048 + '@babel/types': 7.28.4 6049 + 4059 6050 '@babel/helper-plugin-utils@7.27.1': {} 4060 6051 6052 + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': 6053 + dependencies: 6054 + '@babel/core': 7.28.4 6055 + '@babel/helper-member-expression-to-functions': 7.27.1 6056 + '@babel/helper-optimise-call-expression': 7.27.1 6057 + '@babel/traverse': 7.28.4 6058 + transitivePeerDependencies: 6059 + - supports-color 6060 + 6061 + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': 6062 + dependencies: 6063 + '@babel/traverse': 7.28.4 6064 + '@babel/types': 7.28.4 6065 + transitivePeerDependencies: 6066 + - supports-color 6067 + 4061 6068 '@babel/helper-string-parser@7.27.1': {} 4062 6069 4063 6070 '@babel/helper-validator-identifier@7.27.1': {} ··· 4088 6095 '@babel/core': 7.28.4 4089 6096 '@babel/helper-plugin-utils': 7.27.1 4090 6097 6098 + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': 6099 + dependencies: 6100 + '@babel/core': 7.28.4 6101 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) 6102 + '@babel/helper-plugin-utils': 7.27.1 6103 + transitivePeerDependencies: 6104 + - supports-color 6105 + 4091 6106 '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': 4092 6107 dependencies: 4093 6108 '@babel/core': 7.28.4 ··· 4098 6113 '@babel/core': 7.28.4 4099 6114 '@babel/helper-plugin-utils': 7.27.1 4100 6115 6116 + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': 6117 + dependencies: 6118 + '@babel/core': 7.28.4 6119 + '@babel/helper-annotate-as-pure': 7.27.3 6120 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) 6121 + '@babel/helper-plugin-utils': 7.27.1 6122 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 6123 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) 6124 + transitivePeerDependencies: 6125 + - supports-color 6126 + 6127 + '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': 6128 + dependencies: 6129 + '@babel/core': 7.28.4 6130 + '@babel/helper-plugin-utils': 7.27.1 6131 + '@babel/helper-validator-option': 7.27.1 6132 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) 6133 + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) 6134 + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) 6135 + transitivePeerDependencies: 6136 + - supports-color 6137 + 6138 + '@babel/runtime@7.28.4': {} 6139 + 4101 6140 '@babel/template@7.27.2': 4102 6141 dependencies: 4103 6142 '@babel/code-frame': 7.27.1 ··· 4122 6161 '@babel/helper-validator-identifier': 7.27.1 4123 6162 4124 6163 '@bcoe/v8-coverage@1.0.2': {} 6164 + 6165 + '@cloudflare/kv-asset-handler@0.4.0': 6166 + dependencies: 6167 + mime: 3.0.0 6168 + 6169 + '@csstools/color-helpers@5.1.0': {} 6170 + 6171 + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 6172 + dependencies: 6173 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 6174 + '@csstools/css-tokenizer': 3.0.4 6175 + 6176 + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 6177 + dependencies: 6178 + '@csstools/color-helpers': 5.1.0 6179 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 6180 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 6181 + '@csstools/css-tokenizer': 3.0.4 6182 + 6183 + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': 6184 + dependencies: 6185 + '@csstools/css-tokenizer': 3.0.4 6186 + 6187 + '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': 6188 + dependencies: 6189 + postcss: 8.5.6 6190 + 6191 + '@csstools/css-tokenizer@3.0.4': {} 4125 6192 4126 6193 '@dual-bundle/import-meta-resolve@4.2.1': {} 4127 6194 ··· 4420 6487 dependencies: 4421 6488 '@swc/helpers': 0.5.17 4422 6489 6490 + '@ioredis/commands@1.4.0': {} 6491 + 4423 6492 '@isaacs/cliui@8.0.2': 4424 6493 dependencies: 4425 6494 string-width: 5.1.2 ··· 4428 6497 strip-ansi-cjs: strip-ansi@6.0.1 4429 6498 wrap-ansi: 8.1.0 4430 6499 wrap-ansi-cjs: wrap-ansi@7.0.0 6500 + 6501 + '@isaacs/fs-minipass@4.0.1': 6502 + dependencies: 6503 + minipass: 7.1.2 4431 6504 4432 6505 '@istanbuljs/schema@0.1.3': {} 4433 6506 ··· 4455 6528 '@jridgewell/resolve-uri': 3.1.2 4456 6529 '@jridgewell/sourcemap-codec': 1.5.5 4457 6530 6531 + '@mapbox/node-pre-gyp@2.0.0': 6532 + dependencies: 6533 + consola: 3.4.2 6534 + detect-libc: 2.1.2 6535 + https-proxy-agent: 7.0.6 6536 + node-fetch: 2.7.0 6537 + nopt: 8.1.0 6538 + semver: 7.7.2 6539 + tar: 7.5.1 6540 + transitivePeerDependencies: 6541 + - encoding 6542 + - supports-color 6543 + 4458 6544 '@napi-rs/wasm-runtime@0.2.12': 4459 6545 dependencies: 4460 6546 '@emnapi/core': 1.5.0 ··· 4478 6564 '@nodelib/fs.scandir': 2.1.5 4479 6565 fastq: 1.19.1 4480 6566 6567 + '@oozcitak/dom@1.15.10': 6568 + dependencies: 6569 + '@oozcitak/infra': 1.0.8 6570 + '@oozcitak/url': 1.0.4 6571 + '@oozcitak/util': 8.3.8 6572 + 6573 + '@oozcitak/infra@1.0.8': 6574 + dependencies: 6575 + '@oozcitak/util': 8.3.8 6576 + 6577 + '@oozcitak/url@1.0.4': 6578 + dependencies: 6579 + '@oozcitak/infra': 1.0.8 6580 + '@oozcitak/util': 8.3.8 6581 + 6582 + '@oozcitak/util@8.3.8': {} 6583 + 6584 + '@parcel/watcher-android-arm64@2.5.1': 6585 + optional: true 6586 + 6587 + '@parcel/watcher-darwin-arm64@2.5.1': 6588 + optional: true 6589 + 6590 + '@parcel/watcher-darwin-x64@2.5.1': 6591 + optional: true 6592 + 6593 + '@parcel/watcher-freebsd-x64@2.5.1': 6594 + optional: true 6595 + 6596 + '@parcel/watcher-linux-arm-glibc@2.5.1': 6597 + optional: true 6598 + 6599 + '@parcel/watcher-linux-arm-musl@2.5.1': 6600 + optional: true 6601 + 6602 + '@parcel/watcher-linux-arm64-glibc@2.5.1': 6603 + optional: true 6604 + 6605 + '@parcel/watcher-linux-arm64-musl@2.5.1': 6606 + optional: true 6607 + 6608 + '@parcel/watcher-linux-x64-glibc@2.5.1': 6609 + optional: true 6610 + 6611 + '@parcel/watcher-linux-x64-musl@2.5.1': 6612 + optional: true 6613 + 6614 + '@parcel/watcher-wasm@2.5.1': 6615 + dependencies: 6616 + is-glob: 4.0.3 6617 + micromatch: 4.0.8 6618 + 6619 + '@parcel/watcher-win32-arm64@2.5.1': 6620 + optional: true 6621 + 6622 + '@parcel/watcher-win32-ia32@2.5.1': 6623 + optional: true 6624 + 6625 + '@parcel/watcher-win32-x64@2.5.1': 6626 + optional: true 6627 + 6628 + '@parcel/watcher@2.5.1': 6629 + dependencies: 6630 + detect-libc: 1.0.3 6631 + is-glob: 4.0.3 6632 + micromatch: 4.0.8 6633 + node-addon-api: 7.1.1 6634 + optionalDependencies: 6635 + '@parcel/watcher-android-arm64': 2.5.1 6636 + '@parcel/watcher-darwin-arm64': 2.5.1 6637 + '@parcel/watcher-darwin-x64': 2.5.1 6638 + '@parcel/watcher-freebsd-x64': 2.5.1 6639 + '@parcel/watcher-linux-arm-glibc': 2.5.1 6640 + '@parcel/watcher-linux-arm-musl': 2.5.1 6641 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 6642 + '@parcel/watcher-linux-arm64-musl': 2.5.1 6643 + '@parcel/watcher-linux-x64-glibc': 2.5.1 6644 + '@parcel/watcher-linux-x64-musl': 2.5.1 6645 + '@parcel/watcher-win32-arm64': 2.5.1 6646 + '@parcel/watcher-win32-ia32': 2.5.1 6647 + '@parcel/watcher-win32-x64': 2.5.1 6648 + 4481 6649 '@pkgjs/parseargs@0.11.0': 4482 6650 optional: true 6651 + 6652 + '@poppinss/colors@4.1.5': 6653 + dependencies: 6654 + kleur: 4.1.5 6655 + 6656 + '@poppinss/dumper@0.6.4': 6657 + dependencies: 6658 + '@poppinss/colors': 4.1.5 6659 + '@sindresorhus/is': 7.1.0 6660 + supports-color: 10.2.2 6661 + 6662 + '@poppinss/exception@1.2.2': {} 4483 6663 4484 6664 '@react-aria/autocomplete@3.0.0-rc.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 4485 6665 dependencies: ··· 5526 7706 5527 7707 '@rolldown/pluginutils@1.0.0-beta.34': {} 5528 7708 7709 + '@rolldown/pluginutils@1.0.0-beta.38': {} 7710 + 7711 + '@rolldown/pluginutils@1.0.0-beta.40': {} 7712 + 7713 + '@rollup/plugin-alias@5.1.1(rollup@4.52.4)': 7714 + optionalDependencies: 7715 + rollup: 4.52.4 7716 + 7717 + '@rollup/plugin-commonjs@28.0.8(rollup@4.52.4)': 7718 + dependencies: 7719 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 7720 + commondir: 1.0.1 7721 + estree-walker: 2.0.2 7722 + fdir: 6.5.0(picomatch@4.0.3) 7723 + is-reference: 1.2.1 7724 + magic-string: 0.30.19 7725 + picomatch: 4.0.3 7726 + optionalDependencies: 7727 + rollup: 4.52.4 7728 + 7729 + '@rollup/plugin-inject@5.0.5(rollup@4.52.4)': 7730 + dependencies: 7731 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 7732 + estree-walker: 2.0.2 7733 + magic-string: 0.30.19 7734 + optionalDependencies: 7735 + rollup: 4.52.4 7736 + 7737 + '@rollup/plugin-json@6.1.0(rollup@4.52.4)': 7738 + dependencies: 7739 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 7740 + optionalDependencies: 7741 + rollup: 4.52.4 7742 + 7743 + '@rollup/plugin-node-resolve@16.0.3(rollup@4.52.4)': 7744 + dependencies: 7745 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 7746 + '@types/resolve': 1.20.2 7747 + deepmerge: 4.3.1 7748 + is-module: 1.0.0 7749 + resolve: 1.22.10 7750 + optionalDependencies: 7751 + rollup: 4.52.4 7752 + 7753 + '@rollup/plugin-replace@6.0.2(rollup@4.52.4)': 7754 + dependencies: 7755 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 7756 + magic-string: 0.30.19 7757 + optionalDependencies: 7758 + rollup: 4.52.4 7759 + 7760 + '@rollup/plugin-terser@0.4.4(rollup@4.52.4)': 7761 + dependencies: 7762 + serialize-javascript: 6.0.2 7763 + smob: 1.5.0 7764 + terser: 5.44.0 7765 + optionalDependencies: 7766 + rollup: 4.52.4 7767 + 5529 7768 '@rollup/pluginutils@5.3.0(rollup@4.52.4)': 5530 7769 dependencies: 5531 7770 '@types/estree': 1.0.8 ··· 5600 7839 '@rollup/rollup-win32-x64-msvc@4.52.4': 5601 7840 optional: true 5602 7841 7842 + '@sindresorhus/is@7.1.0': {} 7843 + 7844 + '@sindresorhus/merge-streams@4.0.0': {} 7845 + 7846 + '@solid-primitives/event-listener@2.4.3(solid-js@1.9.9)': 7847 + dependencies: 7848 + '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) 7849 + solid-js: 1.9.9 7850 + 7851 + '@solid-primitives/keyboard@1.3.3(solid-js@1.9.9)': 7852 + dependencies: 7853 + '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9) 7854 + '@solid-primitives/rootless': 1.5.2(solid-js@1.9.9) 7855 + '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) 7856 + solid-js: 1.9.9 7857 + 7858 + '@solid-primitives/resize-observer@2.1.3(solid-js@1.9.9)': 7859 + dependencies: 7860 + '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9) 7861 + '@solid-primitives/rootless': 1.5.2(solid-js@1.9.9) 7862 + '@solid-primitives/static-store': 0.1.2(solid-js@1.9.9) 7863 + '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) 7864 + solid-js: 1.9.9 7865 + 7866 + '@solid-primitives/rootless@1.5.2(solid-js@1.9.9)': 7867 + dependencies: 7868 + '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) 7869 + solid-js: 1.9.9 7870 + 7871 + '@solid-primitives/static-store@0.1.2(solid-js@1.9.9)': 7872 + dependencies: 7873 + '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) 7874 + solid-js: 1.9.9 7875 + 7876 + '@solid-primitives/utils@6.3.2(solid-js@1.9.9)': 7877 + dependencies: 7878 + solid-js: 1.9.9 7879 + 7880 + '@speed-highlight/core@1.2.7': {} 7881 + 5603 7882 '@stylexjs/babel-plugin@0.16.2': 5604 7883 dependencies: 5605 7884 '@babel/core': 7.28.4 ··· 5681 7960 dependencies: 5682 7961 '@swc/counter': 0.1.3 5683 7962 7963 + '@tailwindcss/node@4.1.14': 7964 + dependencies: 7965 + '@jridgewell/remapping': 2.3.5 7966 + enhanced-resolve: 5.18.3 7967 + jiti: 2.6.1 7968 + lightningcss: 1.30.1 7969 + magic-string: 0.30.19 7970 + source-map-js: 1.2.1 7971 + tailwindcss: 4.1.14 7972 + 7973 + '@tailwindcss/oxide-android-arm64@4.1.14': 7974 + optional: true 7975 + 7976 + '@tailwindcss/oxide-darwin-arm64@4.1.14': 7977 + optional: true 7978 + 7979 + '@tailwindcss/oxide-darwin-x64@4.1.14': 7980 + optional: true 7981 + 7982 + '@tailwindcss/oxide-freebsd-x64@4.1.14': 7983 + optional: true 7984 + 7985 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': 7986 + optional: true 7987 + 7988 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': 7989 + optional: true 7990 + 7991 + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': 7992 + optional: true 7993 + 7994 + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': 7995 + optional: true 7996 + 7997 + '@tailwindcss/oxide-linux-x64-musl@4.1.14': 7998 + optional: true 7999 + 8000 + '@tailwindcss/oxide-wasm32-wasi@4.1.14': 8001 + optional: true 8002 + 8003 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': 8004 + optional: true 8005 + 8006 + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': 8007 + optional: true 8008 + 8009 + '@tailwindcss/oxide@4.1.14': 8010 + dependencies: 8011 + detect-libc: 2.1.2 8012 + tar: 7.5.1 8013 + optionalDependencies: 8014 + '@tailwindcss/oxide-android-arm64': 4.1.14 8015 + '@tailwindcss/oxide-darwin-arm64': 4.1.14 8016 + '@tailwindcss/oxide-darwin-x64': 4.1.14 8017 + '@tailwindcss/oxide-freebsd-x64': 4.1.14 8018 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 8019 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 8020 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 8021 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 8022 + '@tailwindcss/oxide-linux-x64-musl': 4.1.14 8023 + '@tailwindcss/oxide-wasm32-wasi': 4.1.14 8024 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 8025 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 8026 + 8027 + '@tailwindcss/vite@4.1.14(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8028 + dependencies: 8029 + '@tailwindcss/node': 4.1.14 8030 + '@tailwindcss/oxide': 4.1.14 8031 + tailwindcss: 4.1.14 8032 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8033 + 8034 + '@tanstack/devtools-client@0.0.3': 8035 + dependencies: 8036 + '@tanstack/devtools-event-client': 0.3.3 8037 + 8038 + '@tanstack/devtools-event-bus@0.3.2': 8039 + dependencies: 8040 + ws: 8.18.3 8041 + transitivePeerDependencies: 8042 + - bufferutil 8043 + - utf-8-validate 8044 + 8045 + '@tanstack/devtools-event-client@0.3.3': {} 8046 + 8047 + '@tanstack/devtools-ui@0.4.3(csstype@3.1.3)(solid-js@1.9.9)': 8048 + dependencies: 8049 + clsx: 2.1.1 8050 + goober: 2.1.18(csstype@3.1.3) 8051 + solid-js: 1.9.9 8052 + transitivePeerDependencies: 8053 + - csstype 8054 + 8055 + '@tanstack/devtools@0.6.21(csstype@3.1.3)(solid-js@1.9.9)': 8056 + dependencies: 8057 + '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9) 8058 + '@solid-primitives/keyboard': 1.3.3(solid-js@1.9.9) 8059 + '@solid-primitives/resize-observer': 2.1.3(solid-js@1.9.9) 8060 + '@tanstack/devtools-client': 0.0.3 8061 + '@tanstack/devtools-event-bus': 0.3.2 8062 + '@tanstack/devtools-ui': 0.4.3(csstype@3.1.3)(solid-js@1.9.9) 8063 + clsx: 2.1.1 8064 + goober: 2.1.18(csstype@3.1.3) 8065 + solid-js: 1.9.9 8066 + transitivePeerDependencies: 8067 + - bufferutil 8068 + - csstype 8069 + - utf-8-validate 8070 + 8071 + '@tanstack/directive-functions-plugin@1.133.9(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8072 + dependencies: 8073 + '@babel/code-frame': 7.27.1 8074 + '@babel/core': 7.28.4 8075 + '@babel/traverse': 7.28.4 8076 + '@babel/types': 7.28.4 8077 + '@tanstack/router-utils': 1.133.3 8078 + babel-dead-code-elimination: 1.0.10 8079 + pathe: 2.0.3 8080 + tiny-invariant: 1.3.3 8081 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8082 + transitivePeerDependencies: 8083 + - supports-color 8084 + 8085 + '@tanstack/history@1.133.3': {} 8086 + 8087 + '@tanstack/nitro-v2-vite-plugin@1.133.3(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8088 + dependencies: 8089 + nitropack: 2.12.7 8090 + pathe: 2.0.3 8091 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8092 + transitivePeerDependencies: 8093 + - '@azure/app-configuration' 8094 + - '@azure/cosmos' 8095 + - '@azure/data-tables' 8096 + - '@azure/identity' 8097 + - '@azure/keyvault-secrets' 8098 + - '@azure/storage-blob' 8099 + - '@capacitor/preferences' 8100 + - '@deno/kv' 8101 + - '@electric-sql/pglite' 8102 + - '@libsql/client' 8103 + - '@netlify/blobs' 8104 + - '@planetscale/database' 8105 + - '@upstash/redis' 8106 + - '@vercel/blob' 8107 + - '@vercel/functions' 8108 + - '@vercel/kv' 8109 + - aws4fetch 8110 + - bare-abort-controller 8111 + - better-sqlite3 8112 + - drizzle-orm 8113 + - encoding 8114 + - idb-keyval 8115 + - mysql2 8116 + - react-native-b4a 8117 + - rolldown 8118 + - sqlite3 8119 + - supports-color 8120 + - uploadthing 8121 + - xml2js 8122 + 8123 + '@tanstack/query-core@5.90.5': {} 8124 + 8125 + '@tanstack/react-devtools@0.7.7(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(csstype@3.1.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)': 8126 + dependencies: 8127 + '@tanstack/devtools': 0.6.21(csstype@3.1.3)(solid-js@1.9.9) 8128 + '@types/react': 19.2.2 8129 + '@types/react-dom': 19.2.1(@types/react@19.2.2) 8130 + react: 19.2.0 8131 + react-dom: 19.2.0(react@19.2.0) 8132 + transitivePeerDependencies: 8133 + - bufferutil 8134 + - csstype 8135 + - solid-js 8136 + - utf-8-validate 8137 + 8138 + '@tanstack/react-query@5.90.5(react@19.2.0)': 8139 + dependencies: 8140 + '@tanstack/query-core': 5.90.5 8141 + react: 19.2.0 8142 + 8143 + '@tanstack/react-router-devtools@1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(@types/node@22.15.3)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(terser@5.44.0)(tiny-invariant@1.3.3)(tsx@4.20.6)': 8144 + dependencies: 8145 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8146 + '@tanstack/router-devtools-core': 1.133.13(@tanstack/router-core@1.133.13)(@types/node@22.15.3)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.44.0)(tiny-invariant@1.3.3)(tsx@4.20.6) 8147 + react: 19.2.0 8148 + react-dom: 19.2.0(react@19.2.0) 8149 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8150 + transitivePeerDependencies: 8151 + - '@tanstack/router-core' 8152 + - '@types/node' 8153 + - csstype 8154 + - jiti 8155 + - less 8156 + - lightningcss 8157 + - sass 8158 + - sass-embedded 8159 + - solid-js 8160 + - stylus 8161 + - sugarss 8162 + - terser 8163 + - tiny-invariant 8164 + - tsx 8165 + - yaml 8166 + 8167 + '@tanstack/react-router-ssr-query@1.133.13(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@19.2.0))(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8168 + dependencies: 8169 + '@tanstack/query-core': 5.90.5 8170 + '@tanstack/react-query': 5.90.5(react@19.2.0) 8171 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8172 + '@tanstack/router-ssr-query-core': 1.133.13(@tanstack/query-core@5.90.5)(@tanstack/router-core@1.133.13) 8173 + react: 19.2.0 8174 + react-dom: 19.2.0(react@19.2.0) 8175 + transitivePeerDependencies: 8176 + - '@tanstack/router-core' 8177 + 8178 + '@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8179 + dependencies: 8180 + '@tanstack/history': 1.133.3 8181 + '@tanstack/react-store': 0.7.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8182 + '@tanstack/router-core': 1.133.13 8183 + isbot: 5.1.31 8184 + react: 19.2.0 8185 + react-dom: 19.2.0(react@19.2.0) 8186 + tiny-invariant: 1.3.3 8187 + tiny-warning: 1.0.3 8188 + 8189 + '@tanstack/react-start-client@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8190 + dependencies: 8191 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8192 + '@tanstack/router-core': 1.133.13 8193 + '@tanstack/start-client-core': 1.133.13 8194 + react: 19.2.0 8195 + react-dom: 19.2.0(react@19.2.0) 8196 + tiny-invariant: 1.3.3 8197 + tiny-warning: 1.0.3 8198 + 8199 + '@tanstack/react-start-server@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8200 + dependencies: 8201 + '@tanstack/history': 1.133.3 8202 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8203 + '@tanstack/router-core': 1.133.13 8204 + '@tanstack/start-client-core': 1.133.13 8205 + '@tanstack/start-server-core': 1.133.13 8206 + react: 19.2.0 8207 + react-dom: 19.2.0(react@19.2.0) 8208 + transitivePeerDependencies: 8209 + - crossws 8210 + 8211 + '@tanstack/react-start@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1)': 8212 + dependencies: 8213 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8214 + '@tanstack/react-start-client': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8215 + '@tanstack/react-start-server': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8216 + '@tanstack/router-utils': 1.133.3 8217 + '@tanstack/start-client-core': 1.133.13 8218 + '@tanstack/start-plugin-core': 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1) 8219 + '@tanstack/start-server-core': 1.133.13 8220 + pathe: 2.0.3 8221 + react: 19.2.0 8222 + react-dom: 19.2.0(react@19.2.0) 8223 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8224 + transitivePeerDependencies: 8225 + - '@rsbuild/core' 8226 + - crossws 8227 + - supports-color 8228 + - vite-plugin-solid 8229 + - webpack 8230 + 8231 + '@tanstack/react-store@0.7.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8232 + dependencies: 8233 + '@tanstack/store': 0.7.7 8234 + react: 19.2.0 8235 + react-dom: 19.2.0(react@19.2.0) 8236 + use-sync-external-store: 1.6.0(react@19.2.0) 8237 + 8238 + '@tanstack/router-core@1.133.13': 8239 + dependencies: 8240 + '@tanstack/history': 1.133.3 8241 + '@tanstack/store': 0.7.7 8242 + cookie-es: 2.0.0 8243 + seroval: 1.3.2 8244 + seroval-plugins: 1.3.3(seroval@1.3.2) 8245 + tiny-invariant: 1.3.3 8246 + tiny-warning: 1.0.3 8247 + 8248 + '@tanstack/router-devtools-core@1.133.13(@tanstack/router-core@1.133.13)(@types/node@22.15.3)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.44.0)(tiny-invariant@1.3.3)(tsx@4.20.6)': 8249 + dependencies: 8250 + '@tanstack/router-core': 1.133.13 8251 + clsx: 2.1.1 8252 + goober: 2.1.18(csstype@3.1.3) 8253 + solid-js: 1.9.9 8254 + tiny-invariant: 1.3.3 8255 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8256 + optionalDependencies: 8257 + csstype: 3.1.3 8258 + transitivePeerDependencies: 8259 + - '@types/node' 8260 + - jiti 8261 + - less 8262 + - lightningcss 8263 + - sass 8264 + - sass-embedded 8265 + - stylus 8266 + - sugarss 8267 + - terser 8268 + - tsx 8269 + - yaml 8270 + 8271 + '@tanstack/router-generator@1.133.13': 8272 + dependencies: 8273 + '@tanstack/router-core': 1.133.13 8274 + '@tanstack/router-utils': 1.133.3 8275 + '@tanstack/virtual-file-routes': 1.133.3 8276 + prettier: 3.6.2 8277 + recast: 0.23.11 8278 + source-map: 0.7.6 8279 + tsx: 4.20.6 8280 + zod: 3.25.76 8281 + transitivePeerDependencies: 8282 + - supports-color 8283 + 8284 + '@tanstack/router-plugin@1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1)': 8285 + dependencies: 8286 + '@babel/core': 7.28.4 8287 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) 8288 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) 8289 + '@babel/template': 7.27.2 8290 + '@babel/traverse': 7.28.4 8291 + '@babel/types': 7.28.4 8292 + '@tanstack/router-core': 1.133.13 8293 + '@tanstack/router-generator': 1.133.13 8294 + '@tanstack/router-utils': 1.133.3 8295 + '@tanstack/virtual-file-routes': 1.133.3 8296 + babel-dead-code-elimination: 1.0.10 8297 + chokidar: 3.6.0 8298 + unplugin: 2.3.10 8299 + zod: 3.25.76 8300 + optionalDependencies: 8301 + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 8302 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8303 + webpack: 5.102.1 8304 + transitivePeerDependencies: 8305 + - supports-color 8306 + 8307 + '@tanstack/router-ssr-query-core@1.133.13(@tanstack/query-core@5.90.5)(@tanstack/router-core@1.133.13)': 8308 + dependencies: 8309 + '@tanstack/query-core': 5.90.5 8310 + '@tanstack/router-core': 1.133.13 8311 + 8312 + '@tanstack/router-utils@1.133.3': 8313 + dependencies: 8314 + '@babel/core': 7.28.4 8315 + '@babel/generator': 7.28.3 8316 + '@babel/parser': 7.28.4 8317 + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) 8318 + ansis: 4.2.0 8319 + diff: 8.0.2 8320 + pathe: 2.0.3 8321 + tinyglobby: 0.2.15 8322 + transitivePeerDependencies: 8323 + - supports-color 8324 + 8325 + '@tanstack/server-functions-plugin@1.133.11(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8326 + dependencies: 8327 + '@babel/code-frame': 7.27.1 8328 + '@babel/core': 7.28.4 8329 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) 8330 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) 8331 + '@babel/template': 7.27.2 8332 + '@babel/traverse': 7.28.4 8333 + '@babel/types': 7.28.4 8334 + '@tanstack/directive-functions-plugin': 1.133.9(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8335 + babel-dead-code-elimination: 1.0.10 8336 + tiny-invariant: 1.3.3 8337 + transitivePeerDependencies: 8338 + - supports-color 8339 + - vite 8340 + 8341 + '@tanstack/start-client-core@1.133.13': 8342 + dependencies: 8343 + '@tanstack/router-core': 1.133.13 8344 + '@tanstack/start-storage-context': 1.133.13 8345 + seroval: 1.3.2 8346 + tiny-invariant: 1.3.3 8347 + tiny-warning: 1.0.3 8348 + 8349 + '@tanstack/start-plugin-core@1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1)': 8350 + dependencies: 8351 + '@babel/code-frame': 7.26.2 8352 + '@babel/core': 7.28.4 8353 + '@babel/types': 7.28.4 8354 + '@rolldown/pluginutils': 1.0.0-beta.40 8355 + '@tanstack/router-core': 1.133.13 8356 + '@tanstack/router-generator': 1.133.13 8357 + '@tanstack/router-plugin': 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))(webpack@5.102.1) 8358 + '@tanstack/router-utils': 1.133.3 8359 + '@tanstack/server-functions-plugin': 1.133.11(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8360 + '@tanstack/start-client-core': 1.133.13 8361 + '@tanstack/start-server-core': 1.133.13 8362 + babel-dead-code-elimination: 1.0.10 8363 + cheerio: 1.1.2 8364 + exsolve: 1.0.7 8365 + pathe: 2.0.3 8366 + srvx: 0.8.16 8367 + tinyglobby: 0.2.15 8368 + ufo: 1.6.1 8369 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8370 + vitefu: 1.1.1(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8371 + xmlbuilder2: 3.1.1 8372 + zod: 3.25.76 8373 + transitivePeerDependencies: 8374 + - '@rsbuild/core' 8375 + - '@tanstack/react-router' 8376 + - crossws 8377 + - supports-color 8378 + - vite-plugin-solid 8379 + - webpack 8380 + 8381 + '@tanstack/start-server-core@1.133.13': 8382 + dependencies: 8383 + '@tanstack/history': 1.133.3 8384 + '@tanstack/router-core': 1.133.13 8385 + '@tanstack/start-client-core': 1.133.13 8386 + '@tanstack/start-storage-context': 1.133.13 8387 + h3-v2: h3@2.0.0-beta.4 8388 + seroval: 1.3.2 8389 + tiny-invariant: 1.3.3 8390 + transitivePeerDependencies: 8391 + - crossws 8392 + 8393 + '@tanstack/start-storage-context@1.133.13': 8394 + dependencies: 8395 + '@tanstack/router-core': 1.133.13 8396 + 8397 + '@tanstack/store@0.7.7': {} 8398 + 8399 + '@tanstack/virtual-file-routes@1.133.3': {} 8400 + 8401 + '@testing-library/dom@10.4.1': 8402 + dependencies: 8403 + '@babel/code-frame': 7.27.1 8404 + '@babel/runtime': 7.28.4 8405 + '@types/aria-query': 5.0.4 8406 + aria-query: 5.3.0 8407 + dom-accessibility-api: 0.5.16 8408 + lz-string: 1.5.0 8409 + picocolors: 1.1.1 8410 + pretty-format: 27.5.1 8411 + 8412 + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 8413 + dependencies: 8414 + '@babel/runtime': 7.28.4 8415 + '@testing-library/dom': 10.4.1 8416 + react: 19.2.0 8417 + react-dom: 19.2.0(react@19.2.0) 8418 + optionalDependencies: 8419 + '@types/react': 19.2.2 8420 + '@types/react-dom': 19.2.1(@types/react@19.2.2) 8421 + 5684 8422 '@tybys/wasm-util@0.10.1': 5685 8423 dependencies: 5686 8424 tslib: 2.8.1 5687 8425 optional: true 8426 + 8427 + '@types/aria-query@5.0.4': {} 5688 8428 5689 8429 '@types/babel__core@7.20.5': 5690 8430 dependencies: ··· 5746 8486 '@types/react@19.2.2': 5747 8487 dependencies: 5748 8488 csstype: 3.1.3 8489 + 8490 + '@types/resolve@1.20.2': {} 5749 8491 5750 8492 '@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.6.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.6.1))(typescript@5.9.2)': 5751 8493 dependencies: ··· 5963 8705 '@unrs/resolver-binding-win32-x64-msvc@1.11.1': 5964 8706 optional: true 5965 8707 5966 - '@vitejs/plugin-react@5.0.2(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0))': 8708 + '@vercel/nft@0.30.3(rollup@4.52.4)': 8709 + dependencies: 8710 + '@mapbox/node-pre-gyp': 2.0.0 8711 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 8712 + acorn: 8.15.0 8713 + acorn-import-attributes: 1.9.5(acorn@8.15.0) 8714 + async-sema: 3.1.1 8715 + bindings: 1.5.0 8716 + estree-walker: 2.0.2 8717 + glob: 10.4.5 8718 + graceful-fs: 4.2.11 8719 + node-gyp-build: 4.8.4 8720 + picomatch: 4.0.3 8721 + resolve-from: 5.0.0 8722 + transitivePeerDependencies: 8723 + - encoding 8724 + - rollup 8725 + - supports-color 8726 + 8727 + '@vitejs/plugin-react@5.0.2(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 5967 8728 dependencies: 5968 8729 '@babel/core': 7.28.4 5969 8730 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) ··· 5971 8732 '@rolldown/pluginutils': 1.0.0-beta.34 5972 8733 '@types/babel__core': 7.20.5 5973 8734 react-refresh: 0.17.0 5974 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 8735 + vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8736 + transitivePeerDependencies: 8737 + - supports-color 8738 + 8739 + '@vitejs/plugin-react@5.0.4(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8740 + dependencies: 8741 + '@babel/core': 7.28.4 8742 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) 8743 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) 8744 + '@rolldown/pluginutils': 1.0.0-beta.38 8745 + '@types/babel__core': 7.20.5 8746 + react-refresh: 0.17.0 8747 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 5975 8748 transitivePeerDependencies: 5976 8749 - supports-color 5977 8750 5978 - '@vitejs/plugin-rsc@0.4.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0))': 8751 + '@vitejs/plugin-rsc@0.4.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 5979 8752 dependencies: 5980 8753 '@remix-run/node-fetch-server': 0.8.1 5981 8754 es-module-lexer: 1.7.0 ··· 5985 8758 react: 19.2.0 5986 8759 react-dom: 19.2.0(react@19.2.0) 5987 8760 turbo-stream: 3.1.0 5988 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 5989 - vitefu: 1.1.1(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 8761 + vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8762 + vitefu: 1.1.1(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 5990 8763 5991 - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0))': 8764 + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 5992 8765 dependencies: 5993 8766 '@ampproject/remapping': 2.3.0 5994 8767 '@bcoe/v8-coverage': 1.0.2 ··· 6003 8776 std-env: 3.10.0 6004 8777 test-exclude: 7.0.1 6005 8778 tinyrainbow: 2.0.0 6006 - vitest: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 8779 + vitest: 3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8780 + transitivePeerDependencies: 8781 + - supports-color 8782 + 8783 + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8784 + dependencies: 8785 + '@ampproject/remapping': 2.3.0 8786 + '@bcoe/v8-coverage': 1.0.2 8787 + ast-v8-to-istanbul: 0.3.7 8788 + debug: 4.4.1 8789 + istanbul-lib-coverage: 3.2.2 8790 + istanbul-lib-report: 3.0.1 8791 + istanbul-lib-source-maps: 5.0.6 8792 + istanbul-reports: 3.2.0 8793 + magic-string: 0.30.19 8794 + magicast: 0.3.5 8795 + std-env: 3.10.0 8796 + test-exclude: 7.0.1 8797 + tinyrainbow: 2.0.0 8798 + vitest: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 6007 8799 transitivePeerDependencies: 6008 8800 - supports-color 6009 8801 ··· 6015 8807 chai: 5.3.3 6016 8808 tinyrainbow: 2.0.0 6017 8809 6018 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0))': 8810 + '@vitest/mocker@3.2.4(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 6019 8811 dependencies: 6020 8812 '@vitest/spy': 3.2.4 6021 8813 estree-walker: 3.0.3 6022 8814 magic-string: 0.30.19 6023 8815 optionalDependencies: 6024 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 8816 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8817 + 8818 + '@vitest/mocker@3.2.4(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': 8819 + dependencies: 8820 + '@vitest/spy': 3.2.4 8821 + estree-walker: 3.0.3 8822 + magic-string: 0.30.19 8823 + optionalDependencies: 8824 + vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 6025 8825 6026 8826 '@vitest/pretty-format@3.2.4': 6027 8827 dependencies: ··· 6129 8929 6130 8930 '@xtuc/long@4.2.2': {} 6131 8931 8932 + abbrev@3.0.1: {} 8933 + 8934 + abort-controller@3.0.0: 8935 + dependencies: 8936 + event-target-shim: 5.0.1 8937 + 8938 + acorn-import-attributes@1.9.5(acorn@8.15.0): 8939 + dependencies: 8940 + acorn: 8.15.0 8941 + 6132 8942 acorn-import-phases@1.0.4(acorn@8.15.0): 6133 8943 dependencies: 6134 8944 acorn: 8.15.0 ··· 6142 8952 acorn: 8.15.0 6143 8953 6144 8954 acorn@8.15.0: {} 8955 + 8956 + agent-base@7.1.4: {} 6145 8957 6146 8958 ajv-formats@2.1.1(ajv@8.17.1): 6147 8959 optionalDependencies: ··· 6182 8994 dependencies: 6183 8995 color-convert: 2.0.1 6184 8996 8997 + ansi-styles@5.2.0: {} 8998 + 6185 8999 ansi-styles@6.2.3: {} 6186 9000 9001 + ansis@4.2.0: {} 9002 + 9003 + anymatch@3.1.3: 9004 + dependencies: 9005 + normalize-path: 3.0.0 9006 + picomatch: 2.3.1 9007 + 9008 + archiver-utils@5.0.2: 9009 + dependencies: 9010 + glob: 10.4.5 9011 + graceful-fs: 4.2.11 9012 + is-stream: 2.0.1 9013 + lazystream: 1.0.1 9014 + lodash: 4.17.21 9015 + normalize-path: 3.0.0 9016 + readable-stream: 4.7.0 9017 + 9018 + archiver@7.0.1: 9019 + dependencies: 9020 + archiver-utils: 5.0.2 9021 + async: 3.2.6 9022 + buffer-crc32: 1.0.0 9023 + readable-stream: 4.7.0 9024 + readdir-glob: 1.1.3 9025 + tar-stream: 3.1.7 9026 + zip-stream: 6.0.1 9027 + transitivePeerDependencies: 9028 + - bare-abort-controller 9029 + - react-native-b4a 9030 + 9031 + argparse@1.0.10: 9032 + dependencies: 9033 + sprintf-js: 1.0.3 9034 + 6187 9035 argparse@2.0.1: {} 9036 + 9037 + aria-query@5.3.0: 9038 + dependencies: 9039 + dequal: 2.0.3 6188 9040 6189 9041 aria-query@5.3.2: {} 6190 9042 ··· 6253 9105 6254 9106 ast-types-flow@0.0.8: {} 6255 9107 9108 + ast-types@0.16.1: 9109 + dependencies: 9110 + tslib: 2.8.1 9111 + 6256 9112 ast-v8-to-istanbul@0.3.7: 6257 9113 dependencies: 6258 9114 '@jridgewell/trace-mapping': 0.3.31 ··· 6261 9117 6262 9118 async-function@1.0.0: {} 6263 9119 9120 + async-sema@3.1.1: {} 9121 + 9122 + async@3.2.6: {} 9123 + 6264 9124 auto-bind@5.0.1: {} 6265 9125 6266 9126 available-typed-arrays@1.0.7: ··· 6271 9131 6272 9132 axobject-query@4.1.0: {} 6273 9133 9134 + b4a@1.7.3: {} 9135 + 9136 + babel-dead-code-elimination@1.0.10: 9137 + dependencies: 9138 + '@babel/core': 7.28.4 9139 + '@babel/parser': 7.28.4 9140 + '@babel/traverse': 7.28.4 9141 + '@babel/types': 7.28.4 9142 + transitivePeerDependencies: 9143 + - supports-color 9144 + 6274 9145 balanced-match@1.0.2: {} 6275 9146 9147 + bare-events@2.8.0: {} 9148 + 9149 + base64-js@1.5.1: {} 9150 + 6276 9151 baseline-browser-mapping@2.8.16: {} 6277 9152 9153 + bidi-js@1.0.3: 9154 + dependencies: 9155 + require-from-string: 2.0.2 9156 + 9157 + binary-extensions@2.3.0: {} 9158 + 9159 + bindings@1.5.0: 9160 + dependencies: 9161 + file-uri-to-path: 1.0.0 9162 + 6278 9163 birecord@0.1.1: {} 9164 + 9165 + boolbase@1.0.0: {} 6279 9166 6280 9167 brace-expansion@1.1.12: 6281 9168 dependencies: ··· 6298 9185 node-releases: 2.0.23 6299 9186 update-browserslist-db: 1.1.3(browserslist@4.26.3) 6300 9187 9188 + buffer-crc32@1.0.0: {} 9189 + 6301 9190 buffer-from@1.1.2: {} 6302 9191 9192 + buffer@6.0.3: 9193 + dependencies: 9194 + base64-js: 1.5.1 9195 + ieee754: 1.2.1 9196 + 6303 9197 builtin-modules@5.0.0: {} 6304 9198 9199 + c12@3.3.1(magicast@0.3.5): 9200 + dependencies: 9201 + chokidar: 4.0.3 9202 + confbox: 0.2.2 9203 + defu: 6.1.4 9204 + dotenv: 17.2.3 9205 + exsolve: 1.0.7 9206 + giget: 2.0.0 9207 + jiti: 2.6.1 9208 + ohash: 2.0.11 9209 + pathe: 2.0.3 9210 + perfect-debounce: 2.0.0 9211 + pkg-types: 2.3.0 9212 + rc9: 2.1.2 9213 + optionalDependencies: 9214 + magicast: 0.3.5 9215 + 6305 9216 cac@6.7.14: {} 6306 9217 6307 9218 call-bind-apply-helpers@1.0.2: ··· 6350 9261 6351 9262 check-error@2.1.1: {} 6352 9263 9264 + cheerio-select@2.1.0: 9265 + dependencies: 9266 + boolbase: 1.0.0 9267 + css-select: 5.2.2 9268 + css-what: 6.2.2 9269 + domelementtype: 2.3.0 9270 + domhandler: 5.0.3 9271 + domutils: 3.2.2 9272 + 9273 + cheerio@1.1.2: 9274 + dependencies: 9275 + cheerio-select: 2.1.0 9276 + dom-serializer: 2.0.0 9277 + domhandler: 5.0.3 9278 + domutils: 3.2.2 9279 + encoding-sniffer: 0.2.1 9280 + htmlparser2: 10.0.0 9281 + parse5: 7.3.0 9282 + parse5-htmlparser2-tree-adapter: 7.1.0 9283 + parse5-parser-stream: 7.1.2 9284 + undici: 7.16.0 9285 + whatwg-mimetype: 4.0.0 9286 + 9287 + chokidar@3.6.0: 9288 + dependencies: 9289 + anymatch: 3.1.3 9290 + braces: 3.0.3 9291 + glob-parent: 5.1.2 9292 + is-binary-path: 2.1.0 9293 + is-glob: 4.0.3 9294 + normalize-path: 3.0.0 9295 + readdirp: 3.6.0 9296 + optionalDependencies: 9297 + fsevents: 2.3.3 9298 + 9299 + chokidar@4.0.3: 9300 + dependencies: 9301 + readdirp: 4.1.2 9302 + 9303 + chownr@3.0.0: {} 9304 + 6353 9305 chrome-trace-event@1.0.4: {} 6354 9306 6355 9307 ci-info@4.3.1: {} 9308 + 9309 + citty@0.1.6: 9310 + dependencies: 9311 + consola: 3.4.2 6356 9312 6357 9313 clean-regexp@1.0.0: 6358 9314 dependencies: ··· 6373 9329 6374 9330 client-only@0.0.1: {} 6375 9331 9332 + clipboardy@4.0.0: 9333 + dependencies: 9334 + execa: 8.0.1 9335 + is-wsl: 3.1.0 9336 + is64bit: 2.0.0 9337 + 9338 + cliui@8.0.1: 9339 + dependencies: 9340 + string-width: 4.2.3 9341 + strip-ansi: 6.0.1 9342 + wrap-ansi: 7.0.0 9343 + 6376 9344 clsx@2.1.1: {} 9345 + 9346 + cluster-key-slot@1.1.2: {} 6377 9347 6378 9348 code-excerpt@4.0.0: 6379 9349 dependencies: ··· 6419 9389 commander@2.20.3: {} 6420 9390 6421 9391 comment-parser@1.4.1: {} 9392 + 9393 + commondir@1.0.1: {} 6422 9394 6423 9395 compare-versions@6.1.1: {} 6424 9396 9397 + compatx@0.2.0: {} 9398 + 9399 + compress-commons@6.0.2: 9400 + dependencies: 9401 + crc-32: 1.2.2 9402 + crc32-stream: 6.0.0 9403 + is-stream: 2.0.1 9404 + normalize-path: 3.0.0 9405 + readable-stream: 4.7.0 9406 + 6425 9407 concat-map@0.0.1: {} 6426 9408 9409 + confbox@0.1.8: {} 9410 + 9411 + confbox@0.2.2: {} 9412 + 9413 + consola@3.4.2: {} 9414 + 6427 9415 convert-source-map@2.0.0: {} 6428 9416 6429 9417 convert-to-spaces@2.0.1: {} 6430 9418 9419 + cookie-es@1.2.2: {} 9420 + 9421 + cookie-es@2.0.0: {} 9422 + 9423 + cookie@1.0.2: {} 9424 + 6431 9425 core-js-compat@3.46.0: 6432 9426 dependencies: 6433 9427 browserslist: 4.26.3 9428 + 9429 + core-util-is@1.0.3: {} 9430 + 9431 + crc-32@1.2.2: {} 9432 + 9433 + crc32-stream@6.0.0: 9434 + dependencies: 9435 + crc-32: 1.2.2 9436 + readable-stream: 4.7.0 9437 + 9438 + croner@9.1.0: {} 6434 9439 6435 9440 cross-spawn@7.0.6: 6436 9441 dependencies: ··· 6438 9443 shebang-command: 2.0.0 6439 9444 which: 2.0.2 6440 9445 9446 + crossws@0.3.5: 9447 + dependencies: 9448 + uncrypto: 0.1.3 9449 + 6441 9450 css-color-names@0.0.1: {} 6442 9451 6443 9452 css-mediaquery@0.1.2: {} 6444 9453 9454 + css-select@5.2.2: 9455 + dependencies: 9456 + boolbase: 1.0.0 9457 + css-what: 6.2.2 9458 + domhandler: 5.0.3 9459 + domutils: 3.2.2 9460 + nth-check: 2.1.1 9461 + 6445 9462 css-shorthand-expand@1.2.0: 6446 9463 dependencies: 6447 9464 css-color-names: 0.0.1 ··· 6454 9471 rgb-regex: 1.0.1 6455 9472 rgba-regex: 1.0.0 6456 9473 xtend: 4.0.2 9474 + 9475 + css-tree@3.1.0: 9476 + dependencies: 9477 + mdn-data: 2.12.2 9478 + source-map-js: 1.2.1 6457 9479 6458 9480 css-url-regex@0.0.1: {} 6459 9481 9482 + css-what@6.2.2: {} 9483 + 9484 + cssstyle@5.3.1(postcss@8.5.6): 9485 + dependencies: 9486 + '@asamuzakjp/css-color': 4.0.5 9487 + '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) 9488 + css-tree: 3.1.0 9489 + transitivePeerDependencies: 9490 + - postcss 9491 + 6460 9492 csstype@3.1.3: {} 6461 9493 6462 9494 damerau-levenshtein@1.0.8: {} 9495 + 9496 + data-urls@6.0.0: 9497 + dependencies: 9498 + whatwg-mimetype: 4.0.0 9499 + whatwg-url: 15.1.0 6463 9500 6464 9501 data-view-buffer@1.0.2: 6465 9502 dependencies: ··· 6479 9516 es-errors: 1.3.0 6480 9517 is-data-view: 1.0.2 6481 9518 9519 + db0@0.3.4: {} 9520 + 6482 9521 debug@4.4.1: 6483 9522 dependencies: 6484 9523 ms: 2.1.3 ··· 6499 9538 es-errors: 1.3.0 6500 9539 gopd: 1.2.0 6501 9540 9541 + define-lazy-prop@2.0.0: {} 9542 + 6502 9543 define-properties@1.2.1: 6503 9544 dependencies: 6504 9545 define-data-property: 1.1.4 6505 9546 has-property-descriptors: 1.0.2 6506 9547 object-keys: 1.1.1 6507 9548 6508 - detect-libc@2.1.2: 6509 - optional: true 9549 + defu@6.1.4: {} 9550 + 9551 + denque@2.1.0: {} 9552 + 9553 + depd@2.0.0: {} 9554 + 9555 + dequal@2.0.3: {} 9556 + 9557 + destr@2.0.5: {} 9558 + 9559 + detect-libc@1.0.3: {} 9560 + 9561 + detect-libc@2.1.2: {} 9562 + 9563 + diff@8.0.2: {} 6510 9564 6511 9565 doctrine@2.1.0: 6512 9566 dependencies: 6513 9567 esutils: 2.0.3 6514 9568 9569 + dom-accessibility-api@0.5.16: {} 9570 + 9571 + dom-serializer@2.0.0: 9572 + dependencies: 9573 + domelementtype: 2.3.0 9574 + domhandler: 5.0.3 9575 + entities: 4.5.0 9576 + 9577 + domelementtype@2.3.0: {} 9578 + 9579 + domhandler@5.0.3: 9580 + dependencies: 9581 + domelementtype: 2.3.0 9582 + 9583 + domutils@3.2.2: 9584 + dependencies: 9585 + dom-serializer: 2.0.0 9586 + domelementtype: 2.3.0 9587 + domhandler: 5.0.3 9588 + 9589 + dot-prop@10.1.0: 9590 + dependencies: 9591 + type-fest: 5.1.0 9592 + 6515 9593 dotenv@16.0.3: {} 6516 9594 6517 9595 dotenv@17.2.2: {} 6518 9596 9597 + dotenv@17.2.3: {} 9598 + 6519 9599 dunder-proto@1.0.1: 6520 9600 dependencies: 6521 9601 call-bind-apply-helpers: 1.0.2 6522 9602 es-errors: 1.3.0 6523 9603 gopd: 1.2.0 9604 + 9605 + duplexer@0.1.2: {} 6524 9606 6525 9607 eastasianwidth@0.2.0: {} 6526 9608 9609 + ee-first@1.1.1: {} 9610 + 6527 9611 electron-to-chromium@1.5.234: {} 6528 9612 6529 9613 emoji-regex@10.5.0: {} ··· 6532 9616 6533 9617 emoji-regex@9.2.2: {} 6534 9618 9619 + encodeurl@2.0.0: {} 9620 + 9621 + encoding-sniffer@0.2.1: 9622 + dependencies: 9623 + iconv-lite: 0.6.3 9624 + whatwg-encoding: 3.1.1 9625 + 6535 9626 enhanced-resolve@5.18.3: 6536 9627 dependencies: 6537 9628 graceful-fs: 4.2.11 6538 9629 tapable: 2.3.0 6539 9630 9631 + entities@4.5.0: {} 9632 + 9633 + entities@6.0.1: {} 9634 + 6540 9635 environment@1.1.0: {} 9636 + 9637 + error-stack-parser-es@1.0.5: {} 6541 9638 6542 9639 es-abstract@1.24.0: 6543 9640 dependencies: ··· 6675 9772 6676 9773 escalade@3.2.0: {} 6677 9774 9775 + escape-html@1.0.3: {} 9776 + 6678 9777 escape-string-regexp@1.0.5: {} 6679 9778 6680 9779 escape-string-regexp@2.0.0: {} 6681 9780 6682 9781 escape-string-regexp@4.0.0: {} 6683 9782 9783 + escape-string-regexp@5.0.0: {} 9784 + 6684 9785 eslint-config-flat-gitignore@2.1.0(eslint@9.34.0(jiti@2.6.1)): 6685 9786 dependencies: 6686 9787 '@eslint/compat': 1.4.0(eslint@9.34.0(jiti@2.6.1)) ··· 6970 10071 acorn-jsx: 5.3.2(acorn@8.15.0) 6971 10072 eslint-visitor-keys: 4.2.1 6972 10073 10074 + esprima@4.0.1: {} 10075 + 6973 10076 esquery@1.6.0: 6974 10077 dependencies: 6975 10078 estraverse: 5.3.0 ··· 6990 10093 6991 10094 esutils@2.0.3: {} 6992 10095 10096 + etag@1.8.1: {} 10097 + 10098 + event-target-shim@5.0.1: {} 10099 + 10100 + events-universal@1.0.1: 10101 + dependencies: 10102 + bare-events: 2.8.0 10103 + transitivePeerDependencies: 10104 + - bare-abort-controller 10105 + 6993 10106 events@3.3.0: {} 6994 10107 10108 + execa@8.0.1: 10109 + dependencies: 10110 + cross-spawn: 7.0.6 10111 + get-stream: 8.0.1 10112 + human-signals: 5.0.0 10113 + is-stream: 3.0.0 10114 + merge-stream: 2.0.0 10115 + npm-run-path: 5.3.0 10116 + onetime: 6.0.0 10117 + signal-exit: 4.1.0 10118 + strip-final-newline: 3.0.0 10119 + 6995 10120 expect-type@1.2.2: {} 6996 10121 10122 + exsolve@1.0.7: {} 10123 + 6997 10124 fast-deep-equal@3.1.3: {} 10125 + 10126 + fast-fifo@1.3.2: {} 6998 10127 6999 10128 fast-glob@3.3.1: 7000 10129 dependencies: ··· 7026 10155 optionalDependencies: 7027 10156 picomatch: 4.0.3 7028 10157 10158 + fetchdts@0.1.7: {} 10159 + 7029 10160 figures@6.1.0: 7030 10161 dependencies: 7031 10162 is-unicode-supported: 2.1.0 ··· 7034 10165 dependencies: 7035 10166 flat-cache: 4.0.1 7036 10167 10168 + file-uri-to-path@1.0.0: {} 10169 + 7037 10170 fill-range@7.1.1: 7038 10171 dependencies: 7039 10172 to-regex-range: 5.0.1 ··· 7065 10198 cross-spawn: 7.0.6 7066 10199 signal-exit: 4.1.0 7067 10200 10201 + fresh@2.0.0: {} 10202 + 7068 10203 fsevents@2.3.3: 7069 10204 optional: true 7070 10205 ··· 7082 10217 functions-have-names@1.2.3: {} 7083 10218 7084 10219 gensync@1.0.0-beta.2: {} 10220 + 10221 + get-caller-file@2.0.5: {} 7085 10222 7086 10223 get-east-asian-width@1.4.0: {} 7087 10224 ··· 7098 10235 hasown: 2.0.2 7099 10236 math-intrinsics: 1.1.0 7100 10237 10238 + get-port-please@3.2.0: {} 10239 + 7101 10240 get-proto@1.0.1: 7102 10241 dependencies: 7103 10242 dunder-proto: 1.0.1 7104 10243 es-object-atoms: 1.1.1 10244 + 10245 + get-stream@8.0.1: {} 7105 10246 7106 10247 get-symbol-description@1.1.0: 7107 10248 dependencies: ··· 7113 10254 dependencies: 7114 10255 resolve-pkg-maps: 1.0.0 7115 10256 10257 + giget@2.0.0: 10258 + dependencies: 10259 + citty: 0.1.6 10260 + consola: 3.4.2 10261 + defu: 6.1.4 10262 + node-fetch-native: 1.6.7 10263 + nypm: 0.6.2 10264 + pathe: 2.0.3 10265 + 7116 10266 glob-parent@5.1.2: 7117 10267 dependencies: 7118 10268 is-glob: 4.0.3 ··· 7140 10290 dependencies: 7141 10291 define-properties: 1.2.1 7142 10292 gopd: 1.2.0 10293 + 10294 + globby@15.0.0: 10295 + dependencies: 10296 + '@sindresorhus/merge-streams': 4.0.0 10297 + fast-glob: 3.3.3 10298 + ignore: 7.0.5 10299 + path-type: 6.0.0 10300 + slash: 5.1.0 10301 + unicorn-magic: 0.3.0 10302 + 10303 + globrex@0.1.2: {} 10304 + 10305 + goober@2.1.18(csstype@3.1.3): 10306 + dependencies: 10307 + csstype: 3.1.3 7143 10308 7144 10309 gopd@1.2.0: {} 7145 10310 ··· 7147 10312 7148 10313 graphemer@1.4.0: {} 7149 10314 10315 + gzip-size@7.0.0: 10316 + dependencies: 10317 + duplexer: 0.1.2 10318 + 10319 + h3@1.15.4: 10320 + dependencies: 10321 + cookie-es: 1.2.2 10322 + crossws: 0.3.5 10323 + defu: 6.1.4 10324 + destr: 2.0.5 10325 + iron-webcrypto: 1.2.1 10326 + node-mock-http: 1.0.3 10327 + radix3: 1.1.2 10328 + ufo: 1.6.1 10329 + uncrypto: 0.1.3 10330 + 10331 + h3@2.0.0-beta.4: 10332 + dependencies: 10333 + cookie-es: 2.0.0 10334 + fetchdts: 0.1.7 10335 + rou3: 0.7.7 10336 + srvx: 0.8.16 10337 + 7150 10338 has-bigints@1.1.0: {} 7151 10339 7152 10340 has-flag@3.0.0: {} ··· 7175 10363 7176 10364 hono@4.9.6: {} 7177 10365 10366 + hookable@5.5.3: {} 10367 + 7178 10368 hsl-regex@1.0.0: {} 7179 10369 7180 10370 hsla-regex@1.0.0: {} 7181 10371 10372 + html-encoding-sniffer@4.0.0: 10373 + dependencies: 10374 + whatwg-encoding: 3.1.1 10375 + 7182 10376 html-escaper@2.0.2: {} 7183 10377 10378 + htmlparser2@10.0.0: 10379 + dependencies: 10380 + domelementtype: 2.3.0 10381 + domhandler: 5.0.3 10382 + domutils: 3.2.2 10383 + entities: 6.0.1 10384 + 10385 + http-errors@2.0.0: 10386 + dependencies: 10387 + depd: 2.0.0 10388 + inherits: 2.0.4 10389 + setprototypeof: 1.2.0 10390 + statuses: 2.0.1 10391 + toidentifier: 1.0.1 10392 + 10393 + http-proxy-agent@7.0.2: 10394 + dependencies: 10395 + agent-base: 7.1.4 10396 + debug: 4.4.1 10397 + transitivePeerDependencies: 10398 + - supports-color 10399 + 10400 + http-shutdown@1.2.2: {} 10401 + 10402 + https-proxy-agent@7.0.6: 10403 + dependencies: 10404 + agent-base: 7.1.4 10405 + debug: 4.4.1 10406 + transitivePeerDependencies: 10407 + - supports-color 10408 + 10409 + httpxy@0.1.7: {} 10410 + 10411 + human-signals@5.0.0: {} 10412 + 10413 + iconv-lite@0.6.3: 10414 + dependencies: 10415 + safer-buffer: 2.1.2 10416 + 10417 + ieee754@1.2.1: {} 10418 + 7184 10419 ignore@5.3.2: {} 7185 10420 7186 10421 ignore@7.0.5: {} ··· 7193 10428 imurmurhash@0.1.4: {} 7194 10429 7195 10430 indent-string@5.0.0: {} 10431 + 10432 + inherits@2.0.4: {} 7196 10433 7197 10434 ink@6.3.1(@types/react@19.2.2)(react@19.2.0): 7198 10435 dependencies: ··· 7243 10480 dependencies: 7244 10481 loose-envify: 1.4.0 7245 10482 10483 + ioredis@5.8.1: 10484 + dependencies: 10485 + '@ioredis/commands': 1.4.0 10486 + cluster-key-slot: 1.1.2 10487 + debug: 4.4.1 10488 + denque: 2.1.0 10489 + lodash.defaults: 4.2.0 10490 + lodash.isarguments: 3.1.0 10491 + redis-errors: 1.2.0 10492 + redis-parser: 3.0.0 10493 + standard-as-callback: 2.1.0 10494 + transitivePeerDependencies: 10495 + - supports-color 10496 + 10497 + iron-webcrypto@1.2.1: {} 10498 + 7246 10499 is-array-buffer@3.0.5: 7247 10500 dependencies: 7248 10501 call-bind: 1.0.8 ··· 7261 10514 dependencies: 7262 10515 has-bigints: 1.1.0 7263 10516 10517 + is-binary-path@2.1.0: 10518 + dependencies: 10519 + binary-extensions: 2.3.0 10520 + 7264 10521 is-boolean-object@1.2.2: 7265 10522 dependencies: 7266 10523 call-bound: 1.0.4 ··· 7290 10547 dependencies: 7291 10548 call-bound: 1.0.4 7292 10549 has-tostringtag: 1.0.2 10550 + 10551 + is-docker@2.2.1: {} 10552 + 10553 + is-docker@3.0.0: {} 7293 10554 7294 10555 is-extglob@2.1.1: {} 7295 10556 ··· 7328 10589 7329 10590 is-in-ci@2.0.0: {} 7330 10591 10592 + is-inside-container@1.0.0: 10593 + dependencies: 10594 + is-docker: 3.0.0 10595 + 7331 10596 is-map@2.0.3: {} 10597 + 10598 + is-module@1.0.0: {} 7332 10599 7333 10600 is-negative-zero@2.0.3: {} 7334 10601 ··· 7338 10605 has-tostringtag: 1.0.2 7339 10606 7340 10607 is-number@7.0.0: {} 10608 + 10609 + is-potential-custom-element-name@1.0.1: {} 10610 + 10611 + is-reference@1.2.1: 10612 + dependencies: 10613 + '@types/estree': 1.0.8 7341 10614 7342 10615 is-reference@3.0.3: 7343 10616 dependencies: ··· 7356 10629 dependencies: 7357 10630 call-bound: 1.0.4 7358 10631 10632 + is-stream@2.0.1: {} 10633 + 10634 + is-stream@3.0.0: {} 10635 + 7359 10636 is-string@1.1.1: 7360 10637 dependencies: 7361 10638 call-bound: 1.0.4 ··· 7384 10661 call-bound: 1.0.4 7385 10662 get-intrinsic: 1.3.0 7386 10663 10664 + is-wsl@2.2.0: 10665 + dependencies: 10666 + is-docker: 2.2.1 10667 + 10668 + is-wsl@3.1.0: 10669 + dependencies: 10670 + is-inside-container: 1.0.0 10671 + 10672 + is64bit@2.0.0: 10673 + dependencies: 10674 + system-architecture: 0.1.0 10675 + 10676 + isarray@1.0.0: {} 10677 + 7387 10678 isarray@2.0.5: {} 10679 + 10680 + isbot@5.1.31: {} 7388 10681 7389 10682 isexe@2.0.0: {} 7390 10683 ··· 7430 10723 merge-stream: 2.0.0 7431 10724 supports-color: 8.1.1 7432 10725 7433 - jiti@2.6.1: 7434 - optional: true 10726 + jiti@2.6.1: {} 7435 10727 7436 10728 js-tokens@4.0.0: {} 7437 10729 7438 10730 js-tokens@9.0.1: {} 7439 10731 10732 + js-yaml@3.14.1: 10733 + dependencies: 10734 + argparse: 1.0.10 10735 + esprima: 4.0.1 10736 + 7440 10737 js-yaml@4.1.0: 7441 10738 dependencies: 7442 10739 argparse: 2.0.1 7443 10740 10741 + jsdom@27.0.1(postcss@8.5.6): 10742 + dependencies: 10743 + '@asamuzakjp/dom-selector': 6.7.2 10744 + cssstyle: 5.3.1(postcss@8.5.6) 10745 + data-urls: 6.0.0 10746 + decimal.js: 10.6.0 10747 + html-encoding-sniffer: 4.0.0 10748 + http-proxy-agent: 7.0.2 10749 + https-proxy-agent: 7.0.6 10750 + is-potential-custom-element-name: 1.0.1 10751 + parse5: 8.0.0 10752 + rrweb-cssom: 0.8.0 10753 + saxes: 6.0.0 10754 + symbol-tree: 3.2.4 10755 + tough-cookie: 6.0.0 10756 + w3c-xmlserializer: 5.0.0 10757 + webidl-conversions: 8.0.0 10758 + whatwg-encoding: 3.1.1 10759 + whatwg-mimetype: 4.0.0 10760 + whatwg-url: 15.1.0 10761 + ws: 8.18.3 10762 + xml-name-validator: 5.0.0 10763 + transitivePeerDependencies: 10764 + - bufferutil 10765 + - postcss 10766 + - supports-color 10767 + - utf-8-validate 10768 + 7444 10769 jsesc@3.0.2: {} 7445 10770 7446 10771 jsesc@3.1.0: {} ··· 7468 10793 dependencies: 7469 10794 json-buffer: 3.0.1 7470 10795 10796 + kleur@4.1.5: {} 10797 + 10798 + klona@2.0.6: {} 10799 + 10800 + knitwork@1.2.0: {} 10801 + 7471 10802 language-subtag-registry@0.3.23: {} 7472 10803 7473 10804 language-tags@1.0.9: 7474 10805 dependencies: 7475 10806 language-subtag-registry: 0.3.23 10807 + 10808 + lazystream@1.0.1: 10809 + dependencies: 10810 + readable-stream: 2.3.8 7476 10811 7477 10812 levn@0.4.1: 7478 10813 dependencies: ··· 7523 10858 lightningcss-linux-x64-musl: 1.30.1 7524 10859 lightningcss-win32-arm64-msvc: 1.30.1 7525 10860 lightningcss-win32-x64-msvc: 1.30.1 7526 - optional: true 7527 10861 7528 10862 lilconfig@3.1.3: {} 7529 10863 10864 + listhen@1.9.0: 10865 + dependencies: 10866 + '@parcel/watcher': 2.5.1 10867 + '@parcel/watcher-wasm': 2.5.1 10868 + citty: 0.1.6 10869 + clipboardy: 4.0.0 10870 + consola: 3.4.2 10871 + crossws: 0.3.5 10872 + defu: 6.1.4 10873 + get-port-please: 3.2.0 10874 + h3: 1.15.4 10875 + http-shutdown: 1.2.2 10876 + jiti: 2.6.1 10877 + mlly: 1.8.0 10878 + node-forge: 1.3.1 10879 + pathe: 1.1.2 10880 + std-env: 3.10.0 10881 + ufo: 1.6.1 10882 + untun: 0.1.3 10883 + uqr: 0.1.2 10884 + 7530 10885 loader-runner@4.3.1: {} 7531 10886 10887 + local-pkg@1.1.2: 10888 + dependencies: 10889 + mlly: 1.8.0 10890 + pkg-types: 2.3.0 10891 + quansync: 0.2.11 10892 + 7532 10893 locate-path@6.0.0: 7533 10894 dependencies: 7534 10895 p-locate: 5.0.0 7535 10896 7536 10897 lodash.camelcase@4.3.0: {} 10898 + 10899 + lodash.defaults@4.2.0: {} 10900 + 10901 + lodash.isarguments@3.1.0: {} 7537 10902 7538 10903 lodash.merge@4.6.2: {} 7539 10904 10905 + lodash@4.17.21: {} 10906 + 7540 10907 loose-envify@1.4.0: 7541 10908 dependencies: 7542 10909 js-tokens: 4.0.0 ··· 7544 10911 loupe@3.2.1: {} 7545 10912 7546 10913 lru-cache@10.4.3: {} 10914 + 10915 + lru-cache@11.2.2: {} 7547 10916 7548 10917 lru-cache@5.1.1: 7549 10918 dependencies: ··· 7553 10922 dependencies: 7554 10923 react: 19.2.0 7555 10924 10925 + lz-string@1.5.0: {} 10926 + 7556 10927 magic-string@0.30.19: 7557 10928 dependencies: 7558 10929 '@jridgewell/sourcemap-codec': 1.5.5 ··· 7570 10941 map-obj@1.0.1: {} 7571 10942 7572 10943 math-intrinsics@1.1.0: {} 10944 + 10945 + mdn-data@2.12.2: {} 7573 10946 7574 10947 meant@1.0.3: {} 7575 10948 ··· 7584 10957 7585 10958 mime-db@1.52.0: {} 7586 10959 10960 + mime-db@1.54.0: {} 10961 + 7587 10962 mime-types@2.1.35: 7588 10963 dependencies: 7589 10964 mime-db: 1.52.0 7590 10965 10966 + mime-types@3.0.1: 10967 + dependencies: 10968 + mime-db: 1.54.0 10969 + 10970 + mime@3.0.0: {} 10971 + 10972 + mime@4.1.0: {} 10973 + 7591 10974 mimic-fn@2.1.0: {} 10975 + 10976 + mimic-fn@4.0.0: {} 7592 10977 7593 10978 minimatch@3.1.2: 7594 10979 dependencies: 7595 10980 brace-expansion: 1.1.12 10981 + 10982 + minimatch@5.1.6: 10983 + dependencies: 10984 + brace-expansion: 2.0.2 7596 10985 7597 10986 minimatch@9.0.5: 7598 10987 dependencies: ··· 7600 10989 7601 10990 minipass@7.1.2: {} 7602 10991 10992 + minizlib@3.1.0: 10993 + dependencies: 10994 + minipass: 7.1.2 10995 + 10996 + mlly@1.8.0: 10997 + dependencies: 10998 + acorn: 8.15.0 10999 + pathe: 2.0.3 11000 + pkg-types: 1.3.1 11001 + ufo: 1.6.1 11002 + 7603 11003 ms@2.1.3: {} 7604 11004 7605 11005 nanoid@3.3.11: {} ··· 7612 11012 7613 11013 neo-async@2.6.2: {} 7614 11014 11015 + nitropack@2.12.7: 11016 + dependencies: 11017 + '@cloudflare/kv-asset-handler': 0.4.0 11018 + '@rollup/plugin-alias': 5.1.1(rollup@4.52.4) 11019 + '@rollup/plugin-commonjs': 28.0.8(rollup@4.52.4) 11020 + '@rollup/plugin-inject': 5.0.5(rollup@4.52.4) 11021 + '@rollup/plugin-json': 6.1.0(rollup@4.52.4) 11022 + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.4) 11023 + '@rollup/plugin-replace': 6.0.2(rollup@4.52.4) 11024 + '@rollup/plugin-terser': 0.4.4(rollup@4.52.4) 11025 + '@vercel/nft': 0.30.3(rollup@4.52.4) 11026 + archiver: 7.0.1 11027 + c12: 3.3.1(magicast@0.3.5) 11028 + chokidar: 4.0.3 11029 + citty: 0.1.6 11030 + compatx: 0.2.0 11031 + confbox: 0.2.2 11032 + consola: 3.4.2 11033 + cookie-es: 2.0.0 11034 + croner: 9.1.0 11035 + crossws: 0.3.5 11036 + db0: 0.3.4 11037 + defu: 6.1.4 11038 + destr: 2.0.5 11039 + dot-prop: 10.1.0 11040 + esbuild: 0.25.10 11041 + escape-string-regexp: 5.0.0 11042 + etag: 1.8.1 11043 + exsolve: 1.0.7 11044 + globby: 15.0.0 11045 + gzip-size: 7.0.0 11046 + h3: 1.15.4 11047 + hookable: 5.5.3 11048 + httpxy: 0.1.7 11049 + ioredis: 5.8.1 11050 + jiti: 2.6.1 11051 + klona: 2.0.6 11052 + knitwork: 1.2.0 11053 + listhen: 1.9.0 11054 + magic-string: 0.30.19 11055 + magicast: 0.3.5 11056 + mime: 4.1.0 11057 + mlly: 1.8.0 11058 + node-fetch-native: 1.6.7 11059 + node-mock-http: 1.0.3 11060 + ofetch: 1.4.1 11061 + ohash: 2.0.11 11062 + pathe: 2.0.3 11063 + perfect-debounce: 2.0.0 11064 + pkg-types: 2.3.0 11065 + pretty-bytes: 7.1.0 11066 + radix3: 1.1.2 11067 + rollup: 4.52.4 11068 + rollup-plugin-visualizer: 6.0.5(rollup@4.52.4) 11069 + scule: 1.3.0 11070 + semver: 7.7.2 11071 + serve-placeholder: 2.0.2 11072 + serve-static: 2.2.0 11073 + source-map: 0.7.6 11074 + std-env: 3.10.0 11075 + ufo: 1.6.1 11076 + ultrahtml: 1.6.0 11077 + uncrypto: 0.1.3 11078 + unctx: 2.4.1 11079 + unenv: 2.0.0-rc.21 11080 + unimport: 5.5.0 11081 + unplugin-utils: 0.3.1 11082 + unstorage: 1.17.1(db0@0.3.4)(ioredis@5.8.1) 11083 + untyped: 2.0.0 11084 + unwasm: 0.3.11 11085 + youch: 4.1.0-beta.11 11086 + youch-core: 0.3.3 11087 + transitivePeerDependencies: 11088 + - '@azure/app-configuration' 11089 + - '@azure/cosmos' 11090 + - '@azure/data-tables' 11091 + - '@azure/identity' 11092 + - '@azure/keyvault-secrets' 11093 + - '@azure/storage-blob' 11094 + - '@capacitor/preferences' 11095 + - '@deno/kv' 11096 + - '@electric-sql/pglite' 11097 + - '@libsql/client' 11098 + - '@netlify/blobs' 11099 + - '@planetscale/database' 11100 + - '@upstash/redis' 11101 + - '@vercel/blob' 11102 + - '@vercel/functions' 11103 + - '@vercel/kv' 11104 + - aws4fetch 11105 + - bare-abort-controller 11106 + - better-sqlite3 11107 + - drizzle-orm 11108 + - encoding 11109 + - idb-keyval 11110 + - mysql2 11111 + - react-native-b4a 11112 + - rolldown 11113 + - sqlite3 11114 + - supports-color 11115 + - uploadthing 11116 + 11117 + node-addon-api@7.1.1: {} 11118 + 11119 + node-fetch-native@1.6.7: {} 11120 + 11121 + node-fetch@2.7.0: 11122 + dependencies: 11123 + whatwg-url: 5.0.0 11124 + 11125 + node-forge@1.3.1: {} 11126 + 11127 + node-gyp-build@4.8.4: {} 11128 + 11129 + node-mock-http@1.0.3: {} 11130 + 7615 11131 node-releases@2.0.23: {} 7616 11132 11133 + nopt@8.1.0: 11134 + dependencies: 11135 + abbrev: 3.0.1 11136 + 11137 + normalize-path@3.0.0: {} 11138 + 11139 + npm-run-path@5.3.0: 11140 + dependencies: 11141 + path-key: 4.0.0 11142 + 11143 + nth-check@2.1.1: 11144 + dependencies: 11145 + boolbase: 1.0.0 11146 + 11147 + nypm@0.6.2: 11148 + dependencies: 11149 + citty: 0.1.6 11150 + consola: 3.4.2 11151 + pathe: 2.0.3 11152 + pkg-types: 2.3.0 11153 + tinyexec: 1.0.1 11154 + 7617 11155 object-assign@4.1.1: {} 7618 11156 7619 11157 object-inspect@1.13.4: {} ··· 7650 11188 define-properties: 1.2.1 7651 11189 es-object-atoms: 1.1.1 7652 11190 11191 + ofetch@1.4.1: 11192 + dependencies: 11193 + destr: 2.0.5 11194 + node-fetch-native: 1.6.7 11195 + ufo: 1.6.1 11196 + 11197 + ohash@2.0.11: {} 11198 + 11199 + on-finished@2.4.1: 11200 + dependencies: 11201 + ee-first: 1.1.1 11202 + 7653 11203 onetime@5.1.2: 7654 11204 dependencies: 7655 11205 mimic-fn: 2.1.0 7656 11206 11207 + onetime@6.0.0: 11208 + dependencies: 11209 + mimic-fn: 4.0.0 11210 + 11211 + open@8.4.2: 11212 + dependencies: 11213 + define-lazy-prop: 2.0.0 11214 + is-docker: 2.2.1 11215 + is-wsl: 2.2.0 11216 + 7657 11217 optionator@0.9.4: 7658 11218 dependencies: 7659 11219 deep-is: 0.1.4 ··· 7683 11243 dependencies: 7684 11244 callsites: 3.1.0 7685 11245 11246 + parse5-htmlparser2-tree-adapter@7.1.0: 11247 + dependencies: 11248 + domhandler: 5.0.3 11249 + parse5: 7.3.0 11250 + 11251 + parse5-parser-stream@7.1.2: 11252 + dependencies: 11253 + parse5: 7.3.0 11254 + 11255 + parse5@7.3.0: 11256 + dependencies: 11257 + entities: 6.0.1 11258 + 11259 + parse5@8.0.0: 11260 + dependencies: 11261 + entities: 6.0.1 11262 + 11263 + parseurl@1.3.3: {} 11264 + 7686 11265 patch-console@2.0.0: {} 7687 11266 7688 11267 path-exists@4.0.0: {} 7689 11268 7690 11269 path-key@3.1.1: {} 7691 11270 11271 + path-key@4.0.0: {} 11272 + 7692 11273 path-parse@1.0.7: {} 7693 11274 7694 11275 path-scurry@1.11.1: ··· 7696 11277 lru-cache: 10.4.3 7697 11278 minipass: 7.1.2 7698 11279 11280 + path-type@6.0.0: {} 11281 + 11282 + pathe@1.1.2: {} 11283 + 7699 11284 pathe@2.0.3: {} 7700 11285 7701 11286 pathval@2.0.1: {} 11287 + 11288 + perfect-debounce@2.0.0: {} 7702 11289 7703 11290 periscopic@4.0.2: 7704 11291 dependencies: ··· 7712 11299 7713 11300 picomatch@4.0.3: {} 7714 11301 11302 + pkg-types@1.3.1: 11303 + dependencies: 11304 + confbox: 0.1.8 11305 + mlly: 1.8.0 11306 + pathe: 2.0.3 11307 + 11308 + pkg-types@2.3.0: 11309 + dependencies: 11310 + confbox: 0.2.2 11311 + exsolve: 1.0.7 11312 + pathe: 2.0.3 11313 + 7715 11314 pluralize@8.0.0: {} 7716 11315 7717 11316 possible-typed-array-names@1.1.0: {} ··· 7728 11327 7729 11328 prettier@3.6.2: {} 7730 11329 11330 + pretty-bytes@7.1.0: {} 11331 + 11332 + pretty-format@27.5.1: 11333 + dependencies: 11334 + ansi-regex: 5.0.1 11335 + ansi-styles: 5.2.0 11336 + react-is: 17.0.2 11337 + 11338 + process-nextick-args@2.0.1: {} 11339 + 11340 + process@0.11.10: {} 11341 + 7731 11342 prop-types@15.8.1: 7732 11343 dependencies: 7733 11344 loose-envify: 1.4.0 ··· 7736 11347 7737 11348 punycode@2.3.1: {} 7738 11349 11350 + quansync@0.2.11: {} 11351 + 7739 11352 queue-microtask@1.2.3: {} 11353 + 11354 + radix3@1.1.2: {} 7740 11355 7741 11356 randombytes@2.1.0: 7742 11357 dependencies: 7743 11358 safe-buffer: 5.2.1 7744 11359 11360 + range-parser@1.2.1: {} 11361 + 11362 + rc9@2.1.2: 11363 + dependencies: 11364 + defu: 6.1.4 11365 + destr: 2.0.5 11366 + 7745 11367 react-aria-components@1.13.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): 7746 11368 dependencies: 7747 11369 '@internationalized/date': 3.10.0 ··· 7830 11452 7831 11453 react-is@16.13.1: {} 7832 11454 11455 + react-is@17.0.2: {} 11456 + 7833 11457 react-reconciler@0.32.0(react@19.2.0): 7834 11458 dependencies: 7835 11459 react: 19.2.0 ··· 7878 11502 7879 11503 react@19.2.0: {} 7880 11504 11505 + readable-stream@2.3.8: 11506 + dependencies: 11507 + core-util-is: 1.0.3 11508 + inherits: 2.0.4 11509 + isarray: 1.0.0 11510 + process-nextick-args: 2.0.1 11511 + safe-buffer: 5.1.2 11512 + string_decoder: 1.1.1 11513 + util-deprecate: 1.0.2 11514 + 11515 + readable-stream@4.7.0: 11516 + dependencies: 11517 + abort-controller: 3.0.0 11518 + buffer: 6.0.3 11519 + events: 3.3.0 11520 + process: 0.11.10 11521 + string_decoder: 1.3.0 11522 + 11523 + readdir-glob@1.1.3: 11524 + dependencies: 11525 + minimatch: 5.1.6 11526 + 11527 + readdirp@3.6.0: 11528 + dependencies: 11529 + picomatch: 2.3.1 11530 + 11531 + readdirp@4.1.2: {} 11532 + 11533 + recast@0.23.11: 11534 + dependencies: 11535 + ast-types: 0.16.1 11536 + esprima: 4.0.1 11537 + source-map: 0.6.1 11538 + tiny-invariant: 1.3.3 11539 + tslib: 2.8.1 11540 + 11541 + redis-errors@1.2.0: {} 11542 + 11543 + redis-parser@3.0.0: 11544 + dependencies: 11545 + redis-errors: 1.2.0 11546 + 7881 11547 reduce-flatten@2.0.0: {} 7882 11548 7883 11549 reflect.getprototypeof@1.0.10: ··· 7910 11576 7911 11577 repeat-element@1.1.4: {} 7912 11578 11579 + require-directory@2.1.1: {} 11580 + 7913 11581 require-from-string@2.0.2: {} 7914 11582 7915 11583 resolve-from@4.0.0: {} 7916 11584 11585 + resolve-from@5.0.0: {} 11586 + 7917 11587 resolve-pkg-maps@1.0.0: {} 11588 + 11589 + resolve@1.22.10: 11590 + dependencies: 11591 + is-core-module: 2.16.1 11592 + path-parse: 1.0.7 11593 + supports-preserve-symlinks-flag: 1.0.0 7918 11594 7919 11595 resolve@2.0.0-next.5: 7920 11596 dependencies: ··· 7932 11608 rgb-regex@1.0.1: {} 7933 11609 7934 11610 rgba-regex@1.0.0: {} 11611 + 11612 + rollup-plugin-visualizer@6.0.5(rollup@4.52.4): 11613 + dependencies: 11614 + open: 8.4.2 11615 + picomatch: 4.0.3 11616 + source-map: 0.7.6 11617 + yargs: 17.7.2 11618 + optionalDependencies: 11619 + rollup: 4.52.4 7935 11620 7936 11621 rollup@4.52.4: 7937 11622 dependencies: ··· 7961 11646 '@rollup/rollup-win32-x64-msvc': 4.52.4 7962 11647 fsevents: 2.3.3 7963 11648 11649 + rou3@0.7.7: {} 11650 + 11651 + rrweb-cssom@0.8.0: {} 11652 + 7964 11653 rsc-html-stream@0.0.7: {} 7965 11654 7966 11655 run-parallel@1.2.0: ··· 7975 11664 has-symbols: 1.1.0 7976 11665 isarray: 2.0.5 7977 11666 11667 + safe-buffer@5.1.2: {} 11668 + 7978 11669 safe-buffer@5.2.1: {} 7979 11670 7980 11671 safe-push-apply@1.0.0: ··· 7988 11679 es-errors: 1.3.0 7989 11680 is-regex: 1.2.1 7990 11681 11682 + safer-buffer@2.1.2: {} 11683 + 11684 + saxes@6.0.0: 11685 + dependencies: 11686 + xmlchars: 2.2.0 11687 + 7991 11688 scheduler@0.26.0: {} 7992 11689 7993 11690 scheduler@0.27.0: {} ··· 7999 11696 ajv-formats: 2.1.1(ajv@8.17.1) 8000 11697 ajv-keywords: 5.1.0(ajv@8.17.1) 8001 11698 11699 + scule@1.3.0: {} 11700 + 8002 11701 semver@6.3.1: {} 8003 11702 8004 11703 semver@7.7.2: {} 8005 11704 11705 + send@1.2.0: 11706 + dependencies: 11707 + debug: 4.4.1 11708 + encodeurl: 2.0.0 11709 + escape-html: 1.0.3 11710 + etag: 1.8.1 11711 + fresh: 2.0.0 11712 + http-errors: 2.0.0 11713 + mime-types: 3.0.1 11714 + ms: 2.1.3 11715 + on-finished: 2.4.1 11716 + range-parser: 1.2.1 11717 + statuses: 2.0.2 11718 + transitivePeerDependencies: 11719 + - supports-color 11720 + 8006 11721 serialize-javascript@6.0.2: 8007 11722 dependencies: 8008 11723 randombytes: 2.1.0 8009 11724 11725 + seroval-plugins@1.3.3(seroval@1.3.2): 11726 + dependencies: 11727 + seroval: 1.3.2 11728 + 11729 + seroval@1.3.2: {} 11730 + 11731 + serve-placeholder@2.0.2: 11732 + dependencies: 11733 + defu: 6.1.4 11734 + 11735 + serve-static@2.2.0: 11736 + dependencies: 11737 + encodeurl: 2.0.0 11738 + escape-html: 1.0.3 11739 + parseurl: 1.3.3 11740 + send: 1.2.0 11741 + transitivePeerDependencies: 11742 + - supports-color 11743 + 8010 11744 set-function-length@1.2.2: 8011 11745 dependencies: 8012 11746 define-data-property: 1.1.4 ··· 8029 11763 es-errors: 1.3.0 8030 11764 es-object-atoms: 1.1.1 8031 11765 11766 + setprototypeof@1.2.0: {} 11767 + 8032 11768 shebang-command@2.0.0: 8033 11769 dependencies: 8034 11770 shebang-regex: 3.0.0 ··· 8069 11805 8070 11806 signal-exit@4.1.0: {} 8071 11807 11808 + slash@5.1.0: {} 11809 + 8072 11810 slice-ansi@5.0.0: 8073 11811 dependencies: 8074 11812 ansi-styles: 6.2.3 ··· 8079 11817 ansi-styles: 6.2.3 8080 11818 is-fullwidth-code-point: 5.1.0 8081 11819 11820 + smob@1.5.0: {} 11821 + 11822 + solid-js@1.9.9: 11823 + dependencies: 11824 + csstype: 3.1.3 11825 + seroval: 1.3.2 11826 + seroval-plugins: 1.3.3(seroval@1.3.2) 11827 + 8082 11828 source-map-js@1.2.1: {} 8083 11829 8084 11830 source-map-support@0.5.21: ··· 8088 11834 8089 11835 source-map@0.6.1: {} 8090 11836 11837 + source-map@0.7.6: {} 11838 + 11839 + sprintf-js@1.0.3: {} 11840 + 11841 + srvx@0.8.16: {} 11842 + 8091 11843 stable-hash-x@0.2.0: {} 8092 11844 8093 11845 stack-utils@2.0.6: ··· 8096 11848 8097 11849 stackback@0.0.2: {} 8098 11850 11851 + standard-as-callback@2.1.0: {} 11852 + 11853 + statuses@2.0.1: {} 11854 + 11855 + statuses@2.0.2: {} 11856 + 8099 11857 std-env@3.10.0: {} 8100 11858 8101 11859 stop-iteration-iterator@1.1.0: 8102 11860 dependencies: 8103 11861 es-errors: 1.3.0 8104 11862 internal-slot: 1.1.0 11863 + 11864 + streamx@2.23.0: 11865 + dependencies: 11866 + events-universal: 1.0.1 11867 + fast-fifo: 1.3.2 11868 + text-decoder: 1.2.3 11869 + transitivePeerDependencies: 11870 + - bare-abort-controller 11871 + - react-native-b4a 8105 11872 8106 11873 string-ts@2.2.1: {} 8107 11874 ··· 8173 11940 define-properties: 1.2.1 8174 11941 es-object-atoms: 1.1.1 8175 11942 11943 + string_decoder@1.1.1: 11944 + dependencies: 11945 + safe-buffer: 5.1.2 11946 + 11947 + string_decoder@1.3.0: 11948 + dependencies: 11949 + safe-buffer: 5.2.1 11950 + 8176 11951 strip-ansi@6.0.1: 8177 11952 dependencies: 8178 11953 ansi-regex: 5.0.1 ··· 8181 11956 dependencies: 8182 11957 ansi-regex: 6.2.2 8183 11958 11959 + strip-final-newline@3.0.0: {} 11960 + 8184 11961 strip-indent@4.1.1: {} 8185 11962 8186 11963 strip-json-comments@3.1.1: {} ··· 8190 11967 js-tokens: 9.0.1 8191 11968 8192 11969 styleq@0.2.1: {} 11970 + 11971 + supports-color@10.2.2: {} 8193 11972 8194 11973 supports-color@5.5.0: 8195 11974 dependencies: ··· 8205 11984 8206 11985 supports-preserve-symlinks-flag@1.0.0: {} 8207 11986 11987 + symbol-tree@3.2.4: {} 11988 + 11989 + system-architecture@0.1.0: {} 11990 + 8208 11991 table-layout@1.0.2: 8209 11992 dependencies: 8210 11993 array-back: 4.0.2 ··· 8212 11995 typical: 5.2.0 8213 11996 wordwrapjs: 4.0.1 8214 11997 11998 + tagged-tag@1.0.0: {} 11999 + 12000 + tailwindcss@4.1.14: {} 12001 + 8215 12002 tapable@2.3.0: {} 8216 12003 12004 + tar-stream@3.1.7: 12005 + dependencies: 12006 + b4a: 1.7.3 12007 + fast-fifo: 1.3.2 12008 + streamx: 2.23.0 12009 + transitivePeerDependencies: 12010 + - bare-abort-controller 12011 + - react-native-b4a 12012 + 12013 + tar@7.5.1: 12014 + dependencies: 12015 + '@isaacs/fs-minipass': 4.0.1 12016 + chownr: 3.0.0 12017 + minipass: 7.1.2 12018 + minizlib: 3.1.0 12019 + yallist: 5.0.0 12020 + 8217 12021 terser-webpack-plugin@5.3.14(webpack@5.102.1): 8218 12022 dependencies: 8219 12023 '@jridgewell/trace-mapping': 0.3.31 ··· 8236 12040 glob: 10.4.5 8237 12041 minimatch: 9.0.5 8238 12042 12043 + text-decoder@1.2.3: 12044 + dependencies: 12045 + b4a: 1.7.3 12046 + transitivePeerDependencies: 12047 + - react-native-b4a 12048 + 12049 + tiny-invariant@1.3.3: {} 12050 + 12051 + tiny-warning@1.0.3: {} 12052 + 8239 12053 tinybench@2.9.0: {} 8240 12054 8241 12055 tinyexec@0.3.2: {} 12056 + 12057 + tinyexec@1.0.1: {} 8242 12058 8243 12059 tinyglobby@0.2.15: 8244 12060 dependencies: ··· 8251 12067 8252 12068 tinyspy@4.0.4: {} 8253 12069 12070 + tldts-core@7.0.17: {} 12071 + 12072 + tldts@7.0.17: 12073 + dependencies: 12074 + tldts-core: 7.0.17 12075 + 8254 12076 to-regex-range@5.0.1: 8255 12077 dependencies: 8256 12078 is-number: 7.0.0 12079 + 12080 + toidentifier@1.0.1: {} 12081 + 12082 + tough-cookie@6.0.0: 12083 + dependencies: 12084 + tldts: 7.0.17 12085 + 12086 + tr46@0.0.3: {} 12087 + 12088 + tr46@6.0.0: 12089 + dependencies: 12090 + punycode: 2.3.1 8257 12091 8258 12092 ts-api-utils@2.1.0(typescript@5.9.2): 8259 12093 dependencies: ··· 8266 12100 8267 12101 ts-pattern@5.8.0: {} 8268 12102 12103 + tsconfck@3.1.6(typescript@5.9.2): 12104 + optionalDependencies: 12105 + typescript: 5.9.2 12106 + 8269 12107 tslib@1.10.0: {} 8270 12108 8271 12109 tslib@2.8.1: {} 8272 12110 12111 + tsx@4.20.6: 12112 + dependencies: 12113 + esbuild: 0.25.10 12114 + get-tsconfig: 4.12.0 12115 + optionalDependencies: 12116 + fsevents: 2.3.3 12117 + 8273 12118 turbo-darwin-64@2.5.8: 8274 12119 optional: true 8275 12120 ··· 8304 12149 prelude-ls: 1.2.1 8305 12150 8306 12151 type-fest@4.41.0: {} 12152 + 12153 + type-fest@5.1.0: 12154 + dependencies: 12155 + tagged-tag: 1.0.0 8307 12156 8308 12157 typed-array-buffer@1.0.3: 8309 12158 dependencies: ··· 8355 12204 8356 12205 typical@5.2.0: {} 8357 12206 12207 + ufo@1.6.1: {} 12208 + 12209 + ultrahtml@1.6.0: {} 12210 + 8358 12211 unbox-primitive@1.1.0: 8359 12212 dependencies: 8360 12213 call-bound: 1.0.4 ··· 8362 12215 has-symbols: 1.1.0 8363 12216 which-boxed-primitive: 1.1.1 8364 12217 12218 + uncrypto@0.1.3: {} 12219 + 12220 + unctx@2.4.1: 12221 + dependencies: 12222 + acorn: 8.15.0 12223 + estree-walker: 3.0.3 12224 + magic-string: 0.30.19 12225 + unplugin: 2.3.10 12226 + 8365 12227 undici-types@6.21.0: {} 8366 12228 8367 12229 undici-types@7.14.0: {} 8368 12230 8369 - unplugin-stylex@0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)): 12231 + undici@7.16.0: {} 12232 + 12233 + unenv@2.0.0-rc.21: 12234 + dependencies: 12235 + defu: 6.1.4 12236 + exsolve: 1.0.7 12237 + ohash: 2.0.11 12238 + pathe: 2.0.3 12239 + ufo: 1.6.1 12240 + 12241 + unicorn-magic@0.3.0: {} 12242 + 12243 + unimport@5.5.0: 12244 + dependencies: 12245 + acorn: 8.15.0 12246 + escape-string-regexp: 5.0.0 12247 + estree-walker: 3.0.3 12248 + local-pkg: 1.1.2 12249 + magic-string: 0.30.19 12250 + mlly: 1.8.0 12251 + pathe: 2.0.3 12252 + picomatch: 4.0.3 12253 + pkg-types: 2.3.0 12254 + scule: 1.3.0 12255 + strip-literal: 3.1.0 12256 + tinyglobby: 0.2.15 12257 + unplugin: 2.3.10 12258 + unplugin-utils: 0.3.1 12259 + 12260 + unplugin-stylex@0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): 8370 12261 dependencies: 8371 12262 '@babel/core': 7.28.4 8372 12263 '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) ··· 8376 12267 '@stylexjs/babel-plugin': 0.16.2 8377 12268 '@stylexjs/stylex': 0.16.2 8378 12269 '@types/node': 24.7.2 8379 - '@vitest/coverage-v8': 3.2.4(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 12270 + '@vitest/coverage-v8': 3.2.4(vitest@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8380 12271 unplugin: 1.16.1 8381 12272 transitivePeerDependencies: 8382 12273 - '@vitest/browser' ··· 8384 12275 - supports-color 8385 12276 - vitest 8386 12277 12278 + unplugin-stylex@0.5.5(@stylexjs/stylex@0.16.2)(rollup@4.52.4)(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): 12279 + dependencies: 12280 + '@babel/core': 7.28.4 12281 + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) 12282 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) 12283 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) 12284 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 12285 + '@stylexjs/babel-plugin': 0.16.2 12286 + '@stylexjs/stylex': 0.16.2 12287 + '@types/node': 24.7.2 12288 + '@vitest/coverage-v8': 3.2.4(vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 12289 + unplugin: 1.16.1 12290 + transitivePeerDependencies: 12291 + - '@vitest/browser' 12292 + - rollup 12293 + - supports-color 12294 + - vitest 12295 + 12296 + unplugin-utils@0.3.1: 12297 + dependencies: 12298 + pathe: 2.0.3 12299 + picomatch: 4.0.3 12300 + 8387 12301 unplugin@1.16.1: 8388 12302 dependencies: 8389 12303 acorn: 8.15.0 12304 + webpack-virtual-modules: 0.6.2 12305 + 12306 + unplugin@2.3.10: 12307 + dependencies: 12308 + '@jridgewell/remapping': 2.3.5 12309 + acorn: 8.15.0 12310 + picomatch: 4.0.3 8390 12311 webpack-virtual-modules: 0.6.2 8391 12312 8392 12313 unrs-resolver@1.11.1: ··· 8413 12334 '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 8414 12335 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 8415 12336 12337 + unstorage@1.17.1(db0@0.3.4)(ioredis@5.8.1): 12338 + dependencies: 12339 + anymatch: 3.1.3 12340 + chokidar: 4.0.3 12341 + destr: 2.0.5 12342 + h3: 1.15.4 12343 + lru-cache: 10.4.3 12344 + node-fetch-native: 1.6.7 12345 + ofetch: 1.4.1 12346 + ufo: 1.6.1 12347 + optionalDependencies: 12348 + db0: 0.3.4 12349 + ioredis: 5.8.1 12350 + 12351 + untun@0.1.3: 12352 + dependencies: 12353 + citty: 0.1.6 12354 + consola: 3.4.2 12355 + pathe: 1.1.2 12356 + 12357 + untyped@2.0.0: 12358 + dependencies: 12359 + citty: 0.1.6 12360 + defu: 6.1.4 12361 + jiti: 2.6.1 12362 + knitwork: 1.2.0 12363 + scule: 1.3.0 12364 + 12365 + unwasm@0.3.11: 12366 + dependencies: 12367 + knitwork: 1.2.0 12368 + magic-string: 0.30.19 12369 + mlly: 1.8.0 12370 + pathe: 2.0.3 12371 + pkg-types: 2.3.0 12372 + unplugin: 2.3.10 12373 + 8416 12374 update-browserslist-db@1.1.3(browserslist@4.26.3): 8417 12375 dependencies: 8418 12376 browserslist: 4.26.3 8419 12377 escalade: 3.2.0 8420 12378 picocolors: 1.1.1 12379 + 12380 + uqr@0.1.2: {} 8421 12381 8422 12382 uri-js@4.4.1: 8423 12383 dependencies: ··· 8427 12387 dependencies: 8428 12388 react: 19.2.0 8429 12389 8430 - vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0): 12390 + util-deprecate@1.0.2: {} 12391 + 12392 + vite-node@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 8431 12393 dependencies: 8432 12394 cac: 6.7.14 8433 12395 debug: 4.4.1 8434 12396 es-module-lexer: 1.7.0 8435 12397 pathe: 2.0.3 8436 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 12398 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8437 12399 transitivePeerDependencies: 8438 12400 - '@types/node' 8439 12401 - jiti ··· 8448 12410 - tsx 8449 12411 - yaml 8450 12412 8451 - vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0): 12413 + vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 12414 + dependencies: 12415 + cac: 6.7.14 12416 + debug: 4.4.1 12417 + es-module-lexer: 1.7.0 12418 + pathe: 2.0.3 12419 + vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12420 + transitivePeerDependencies: 12421 + - '@types/node' 12422 + - jiti 12423 + - less 12424 + - lightningcss 12425 + - sass 12426 + - sass-embedded 12427 + - stylus 12428 + - sugarss 12429 + - supports-color 12430 + - terser 12431 + - tsx 12432 + - yaml 12433 + 12434 + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): 12435 + dependencies: 12436 + debug: 4.4.1 12437 + globrex: 0.1.2 12438 + tsconfck: 3.1.6(typescript@5.9.2) 12439 + optionalDependencies: 12440 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12441 + transitivePeerDependencies: 12442 + - supports-color 12443 + - typescript 12444 + 12445 + vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 12446 + dependencies: 12447 + esbuild: 0.25.10 12448 + fdir: 6.5.0(picomatch@4.0.3) 12449 + picomatch: 4.0.3 12450 + postcss: 8.5.6 12451 + rollup: 4.52.4 12452 + tinyglobby: 0.2.15 12453 + optionalDependencies: 12454 + '@types/node': 22.15.3 12455 + fsevents: 2.3.3 12456 + jiti: 2.6.1 12457 + lightningcss: 1.30.1 12458 + terser: 5.44.0 12459 + tsx: 4.20.6 12460 + 12461 + vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 8452 12462 dependencies: 8453 12463 esbuild: 0.25.10 8454 12464 fdir: 6.5.0(picomatch@4.0.3) ··· 8462 12472 jiti: 2.6.1 8463 12473 lightningcss: 1.30.1 8464 12474 terser: 5.44.0 12475 + tsx: 4.20.6 8465 12476 8466 - vitefu@1.1.1(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)): 12477 + vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 12478 + dependencies: 12479 + esbuild: 0.25.10 12480 + fdir: 6.5.0(picomatch@4.0.3) 12481 + picomatch: 4.0.3 12482 + postcss: 8.5.6 12483 + rollup: 4.52.4 12484 + tinyglobby: 0.2.15 12485 + optionalDependencies: 12486 + '@types/node': 24.7.2 12487 + fsevents: 2.3.3 12488 + jiti: 2.6.1 12489 + lightningcss: 1.30.1 12490 + terser: 5.44.0 12491 + tsx: 4.20.6 12492 + 12493 + vitefu@1.1.1(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): 12494 + optionalDependencies: 12495 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12496 + 12497 + vitefu@1.1.1(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): 12498 + optionalDependencies: 12499 + vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12500 + 12501 + vitest@3.2.4(@types/node@22.15.3)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 12502 + dependencies: 12503 + '@types/chai': 5.2.2 12504 + '@vitest/expect': 3.2.4 12505 + '@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 12506 + '@vitest/pretty-format': 3.2.4 12507 + '@vitest/runner': 3.2.4 12508 + '@vitest/snapshot': 3.2.4 12509 + '@vitest/spy': 3.2.4 12510 + '@vitest/utils': 3.2.4 12511 + chai: 5.3.3 12512 + debug: 4.4.1 12513 + expect-type: 1.2.2 12514 + magic-string: 0.30.19 12515 + pathe: 2.0.3 12516 + picomatch: 4.0.3 12517 + std-env: 3.10.0 12518 + tinybench: 2.9.0 12519 + tinyexec: 0.3.2 12520 + tinyglobby: 0.2.15 12521 + tinypool: 1.1.1 12522 + tinyrainbow: 2.0.0 12523 + vite: 7.1.10(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12524 + vite-node: 3.2.4(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12525 + why-is-node-running: 2.3.0 8467 12526 optionalDependencies: 8468 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 12527 + '@types/node': 22.15.3 12528 + jsdom: 27.0.1(postcss@8.5.6) 12529 + transitivePeerDependencies: 12530 + - jiti 12531 + - less 12532 + - lightningcss 12533 + - msw 12534 + - sass 12535 + - sass-embedded 12536 + - stylus 12537 + - sugarss 12538 + - supports-color 12539 + - terser 12540 + - tsx 12541 + - yaml 8469 12542 8470 - vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0): 12543 + vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): 8471 12544 dependencies: 8472 12545 '@types/chai': 5.2.2 8473 12546 '@vitest/expect': 3.2.4 8474 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 12547 + '@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8475 12548 '@vitest/pretty-format': 3.2.4 8476 12549 '@vitest/runner': 3.2.4 8477 12550 '@vitest/snapshot': 3.2.4 ··· 8489 12562 tinyglobby: 0.2.15 8490 12563 tinypool: 1.1.1 8491 12564 tinyrainbow: 2.0.0 8492 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 8493 - vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 12565 + vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 12566 + vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8494 12567 why-is-node-running: 2.3.0 8495 12568 optionalDependencies: 8496 12569 '@types/node': 24.7.2 12570 + jsdom: 27.0.1(postcss@8.5.6) 8497 12571 transitivePeerDependencies: 8498 12572 - jiti 8499 12573 - less ··· 8508 12582 - tsx 8509 12583 - yaml 8510 12584 8511 - waku@0.26.1(@swc/helpers@0.5.17)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react-server-dom-webpack@19.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(webpack@5.102.1))(react@19.2.0)(terser@5.44.0): 12585 + w3c-xmlserializer@5.0.0: 12586 + dependencies: 12587 + xml-name-validator: 5.0.0 12588 + 12589 + waku@0.26.1(@swc/helpers@0.5.17)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react-server-dom-webpack@19.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(webpack@5.102.1))(react@19.2.0)(terser@5.44.0)(tsx@4.20.6): 8512 12590 dependencies: 8513 12591 '@hono/node-server': 1.19.1(hono@4.9.6) 8514 12592 '@swc/core': 1.13.5(@swc/helpers@0.5.17) 8515 - '@vitejs/plugin-react': 5.0.2(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 8516 - '@vitejs/plugin-rsc': 0.4.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)) 12593 + '@vitejs/plugin-react': 5.0.2(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 12594 + '@vitejs/plugin-rsc': 0.4.29(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) 8517 12595 dotenv: 17.2.2 8518 12596 hono: 4.9.6 8519 12597 react: 19.2.0 8520 12598 react-dom: 19.2.0(react@19.2.0) 8521 12599 react-server-dom-webpack: 19.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(webpack@5.102.1) 8522 12600 rsc-html-stream: 0.0.7 8523 - vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0) 12601 + vite: 7.1.5(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) 8524 12602 transitivePeerDependencies: 8525 12603 - '@swc/helpers' 8526 12604 - '@types/node' ··· 8541 12619 glob-to-regexp: 0.4.1 8542 12620 graceful-fs: 4.2.11 8543 12621 12622 + web-vitals@5.1.0: {} 12623 + 12624 + webidl-conversions@3.0.1: {} 12625 + 12626 + webidl-conversions@8.0.0: {} 12627 + 8544 12628 webpack-sources@3.3.3: {} 8545 12629 8546 12630 webpack-virtual-modules@0.6.2: {} ··· 8576 12660 - '@swc/core' 8577 12661 - esbuild 8578 12662 - uglify-js 12663 + 12664 + whatwg-encoding@3.1.1: 12665 + dependencies: 12666 + iconv-lite: 0.6.3 12667 + 12668 + whatwg-mimetype@4.0.0: {} 12669 + 12670 + whatwg-url@15.1.0: 12671 + dependencies: 12672 + tr46: 6.0.0 12673 + webidl-conversions: 8.0.0 12674 + 12675 + whatwg-url@5.0.0: 12676 + dependencies: 12677 + tr46: 0.0.3 12678 + webidl-conversions: 3.0.1 8579 12679 8580 12680 which-boxed-primitive@1.1.1: 8581 12681 dependencies: ··· 8658 12758 8659 12759 ws@8.18.3: {} 8660 12760 12761 + xml-name-validator@5.0.0: {} 12762 + 12763 + xmlbuilder2@3.1.1: 12764 + dependencies: 12765 + '@oozcitak/dom': 1.15.10 12766 + '@oozcitak/infra': 1.0.8 12767 + '@oozcitak/util': 8.3.8 12768 + js-yaml: 3.14.1 12769 + 12770 + xmlchars@2.2.0: {} 12771 + 8661 12772 xtend@4.0.2: {} 8662 12773 12774 + y18n@5.0.8: {} 12775 + 8663 12776 yallist@3.1.1: {} 8664 12777 12778 + yallist@5.0.0: {} 12779 + 12780 + yargs-parser@21.1.1: {} 12781 + 12782 + yargs@17.7.2: 12783 + dependencies: 12784 + cliui: 8.0.1 12785 + escalade: 3.2.0 12786 + get-caller-file: 2.0.5 12787 + require-directory: 2.1.1 12788 + string-width: 4.2.3 12789 + y18n: 5.0.8 12790 + yargs-parser: 21.1.1 12791 + 8665 12792 yocto-queue@0.1.0: {} 8666 12793 8667 12794 yoga-layout@3.2.1: {} 8668 12795 12796 + youch-core@0.3.3: 12797 + dependencies: 12798 + '@poppinss/exception': 1.2.2 12799 + error-stack-parser-es: 1.0.5 12800 + 12801 + youch@4.1.0-beta.11: 12802 + dependencies: 12803 + '@poppinss/colors': 4.1.5 12804 + '@poppinss/dumper': 0.6.4 12805 + '@speed-highlight/core': 1.2.7 12806 + cookie: 1.0.2 12807 + youch-core: 0.3.3 12808 + 8669 12809 zimmerframe@1.1.4: {} 12810 + 12811 + zip-stream@6.0.1: 12812 + dependencies: 12813 + archiver-utils: 5.0.2 12814 + compress-commons: 6.0.2 12815 + readable-stream: 4.7.0 12816 + 12817 + zod@3.25.76: {} 8670 12818 8671 12819 zod@4.1.12: {}