sa2kit 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
- package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
- package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
- package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
- package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
- package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
- package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
- package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
- package/dist/chunk-2234T4A6.js +303 -0
- package/dist/chunk-2234T4A6.js.map +1 -0
- package/dist/chunk-36KGNXKW.js +16 -0
- package/dist/chunk-36KGNXKW.js.map +1 -0
- package/dist/chunk-375C7WL7.js +2695 -0
- package/dist/chunk-375C7WL7.js.map +1 -0
- package/dist/chunk-3J24Z4MB.js +991 -0
- package/dist/chunk-3J24Z4MB.js.map +1 -0
- package/dist/chunk-3QCATFQV.js +43 -0
- package/dist/chunk-3QCATFQV.js.map +1 -0
- package/dist/chunk-3R6JHA6D.js +120 -0
- package/dist/chunk-3R6JHA6D.js.map +1 -0
- package/dist/chunk-4OXKHV7J.js +43 -0
- package/dist/chunk-4OXKHV7J.js.map +1 -0
- package/dist/chunk-4PJM4752.js +4 -0
- package/dist/chunk-4PJM4752.js.map +1 -0
- package/dist/chunk-65JRVC3F.mjs +54 -0
- package/dist/chunk-65JRVC3F.mjs.map +1 -0
- package/dist/chunk-6HL54I2B.js +336 -0
- package/dist/chunk-6HL54I2B.js.map +1 -0
- package/dist/chunk-6V2MIQPF.mjs +77 -0
- package/dist/chunk-6V2MIQPF.mjs.map +1 -0
- package/dist/chunk-6YLCRWKM.mjs +8 -0
- package/dist/chunk-6YLCRWKM.mjs.map +1 -0
- package/dist/chunk-7CRU2Y5X.mjs +152 -0
- package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
- package/dist/chunk-7PMT4L4I.js +324 -0
- package/dist/chunk-7PMT4L4I.js.map +1 -0
- package/dist/chunk-7VVZHFEM.js +88 -0
- package/dist/chunk-7VVZHFEM.js.map +1 -0
- package/dist/chunk-AWHGIKTQ.js +56 -0
- package/dist/chunk-AWHGIKTQ.js.map +1 -0
- package/dist/chunk-B3GYF6TY.js +37 -0
- package/dist/chunk-B3GYF6TY.js.map +1 -0
- package/dist/chunk-BDBJFOXM.mjs +14 -0
- package/dist/chunk-BDBJFOXM.mjs.map +1 -0
- package/dist/chunk-BTW3SWQN.mjs +25 -0
- package/dist/chunk-BTW3SWQN.mjs.map +1 -0
- package/dist/chunk-CHYSSZ4E.mjs +734 -0
- package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
- package/dist/chunk-DO6QYAZV.mjs +298 -0
- package/dist/chunk-DO6QYAZV.mjs.map +1 -0
- package/dist/chunk-DTR53LQO.mjs +781 -0
- package/dist/chunk-DTR53LQO.mjs.map +1 -0
- package/dist/chunk-EI2S4XDG.mjs +89 -0
- package/dist/chunk-EI2S4XDG.mjs.map +1 -0
- package/dist/chunk-EOZHUI46.js +93 -0
- package/dist/chunk-EOZHUI46.js.map +1 -0
- package/dist/chunk-F2BZIU67.js +184 -0
- package/dist/chunk-F2BZIU67.js.map +1 -0
- package/dist/chunk-F2TEJSCP.js +756 -0
- package/dist/chunk-F2TEJSCP.js.map +1 -0
- package/dist/chunk-FCLS5R24.js +148 -0
- package/dist/chunk-FCLS5R24.js.map +1 -0
- package/dist/chunk-FUA6ZGMI.mjs +376 -0
- package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
- package/dist/chunk-FY2X3LYR.mjs +3 -0
- package/dist/chunk-FY2X3LYR.mjs.map +1 -0
- package/dist/chunk-GS4SAW25.mjs +116 -0
- package/dist/chunk-GS4SAW25.mjs.map +1 -0
- package/dist/chunk-H56ICWUO.js +321 -0
- package/dist/chunk-H56ICWUO.js.map +1 -0
- package/dist/chunk-HG34SGMN.mjs +546 -0
- package/dist/chunk-HG34SGMN.mjs.map +1 -0
- package/dist/chunk-HL4H2HF6.js +279 -0
- package/dist/chunk-HL4H2HF6.js.map +1 -0
- package/dist/chunk-IJIQUMAK.mjs +272 -0
- package/dist/chunk-IJIQUMAK.mjs.map +1 -0
- package/dist/chunk-KEZFTDZT.mjs +559 -0
- package/dist/chunk-KEZFTDZT.mjs.map +1 -0
- package/dist/chunk-KHOVC2KL.js +144 -0
- package/dist/chunk-KHOVC2KL.js.map +1 -0
- package/dist/chunk-KRBSTLKC.js +6154 -0
- package/dist/chunk-KRBSTLKC.js.map +1 -0
- package/dist/chunk-KVYHCGRY.js +2011 -0
- package/dist/chunk-KVYHCGRY.js.map +1 -0
- package/dist/chunk-LZ5YTMMP.mjs +41 -0
- package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
- package/dist/chunk-MJ6XJGAL.js +1551 -0
- package/dist/chunk-MJ6XJGAL.js.map +1 -0
- package/dist/chunk-MKLXCV4Z.mjs +1510 -0
- package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
- package/dist/chunk-MMDSZIXD.mjs +286 -0
- package/dist/chunk-MMDSZIXD.mjs.map +1 -0
- package/dist/chunk-N2O3OX5Y.mjs +243 -0
- package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
- package/dist/chunk-O6NNSPWD.mjs +35 -0
- package/dist/chunk-O6NNSPWD.mjs.map +1 -0
- package/dist/chunk-OIRZXSYM.js +80 -0
- package/dist/chunk-OIRZXSYM.js.map +1 -0
- package/dist/chunk-P7JQRNBJ.mjs +76 -0
- package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
- package/dist/chunk-PA4ELVGI.js +20 -0
- package/dist/chunk-PA4ELVGI.js.map +1 -0
- package/dist/chunk-PLIG5257.mjs +2613 -0
- package/dist/chunk-PLIG5257.mjs.map +1 -0
- package/dist/chunk-QIF4MG5V.mjs +283 -0
- package/dist/chunk-QIF4MG5V.mjs.map +1 -0
- package/dist/chunk-RHECN4E2.mjs +6077 -0
- package/dist/chunk-RHECN4E2.mjs.map +1 -0
- package/dist/chunk-RHHTZTIN.mjs +314 -0
- package/dist/chunk-RHHTZTIN.mjs.map +1 -0
- package/dist/chunk-RRQ2X26Z.js +106 -0
- package/dist/chunk-RRQ2X26Z.js.map +1 -0
- package/dist/chunk-RST2T54Y.js +836 -0
- package/dist/chunk-RST2T54Y.js.map +1 -0
- package/dist/chunk-RVNQI6BI.js +249 -0
- package/dist/chunk-RVNQI6BI.js.map +1 -0
- package/dist/chunk-S3K4LTRI.mjs +226 -0
- package/dist/chunk-S3K4LTRI.mjs.map +1 -0
- package/dist/chunk-SWZ5XNF6.js +158 -0
- package/dist/chunk-SWZ5XNF6.js.map +1 -0
- package/dist/chunk-TNJ6LYX7.mjs +18 -0
- package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
- package/dist/chunk-U7HNBCBS.js +207 -0
- package/dist/chunk-U7HNBCBS.js.map +1 -0
- package/dist/chunk-UJS3YSD3.mjs +37 -0
- package/dist/chunk-UJS3YSD3.mjs.map +1 -0
- package/dist/chunk-UJUWDF7M.mjs +336 -0
- package/dist/chunk-UJUWDF7M.mjs.map +1 -0
- package/dist/chunk-UR5NENGE.js +78 -0
- package/dist/chunk-UR5NENGE.js.map +1 -0
- package/dist/chunk-V7HGBDCB.mjs +135 -0
- package/dist/chunk-V7HGBDCB.mjs.map +1 -0
- package/dist/chunk-V7RLIZMN.js +90 -0
- package/dist/chunk-V7RLIZMN.js.map +1 -0
- package/dist/chunk-VCKXK6V5.js +345 -0
- package/dist/chunk-VCKXK6V5.js.map +1 -0
- package/dist/chunk-VIEXDTNF.mjs +100 -0
- package/dist/chunk-VIEXDTNF.mjs.map +1 -0
- package/dist/chunk-VN2DULIA.js +579 -0
- package/dist/chunk-VN2DULIA.js.map +1 -0
- package/dist/chunk-VNWMRUY6.js +168 -0
- package/dist/chunk-VNWMRUY6.js.map +1 -0
- package/dist/chunk-VYK4M2D6.mjs +177 -0
- package/dist/chunk-VYK4M2D6.mjs.map +1 -0
- package/dist/chunk-WB4H6ZUW.mjs +86 -0
- package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
- package/dist/chunk-WM3AEJ2E.mjs +981 -0
- package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
- package/dist/chunk-X5GINUGI.mjs +162 -0
- package/dist/chunk-X5GINUGI.mjs.map +1 -0
- package/dist/chunk-XB7GUEHZ.mjs +82 -0
- package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
- package/dist/chunk-XE5RGZ3B.js +242 -0
- package/dist/chunk-XE5RGZ3B.js.map +1 -0
- package/dist/chunk-XNTIMVSL.mjs +193 -0
- package/dist/chunk-XNTIMVSL.mjs.map +1 -0
- package/dist/chunk-Y7WHUKJF.js +387 -0
- package/dist/chunk-Y7WHUKJF.js.map +1 -0
- package/dist/chunk-YIRPPMCN.mjs +1916 -0
- package/dist/chunk-YIRPPMCN.mjs.map +1 -0
- package/dist/chunk-YTGUIRRH.js +10 -0
- package/dist/chunk-YTGUIRRH.js.map +1 -0
- package/dist/chunk-Z2SNB5LJ.js +28 -0
- package/dist/chunk-Z2SNB5LJ.js.map +1 -0
- package/dist/chunk-ZOP7YIVX.js +552 -0
- package/dist/chunk-ZOP7YIVX.js.map +1 -0
- package/dist/chunk-ZUZLWHH5.mjs +146 -0
- package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
- package/dist/common/ai/llm/core/index.d.mts +70 -0
- package/dist/common/ai/llm/core/index.d.ts +70 -0
- package/dist/common/ai/llm/core/index.js +54 -0
- package/dist/common/ai/llm/core/index.mjs +5 -0
- package/dist/common/ai/llm/electron/index.d.mts +6 -0
- package/dist/common/ai/llm/electron/index.d.ts +6 -0
- package/dist/common/ai/llm/electron/index.js +67 -0
- package/dist/common/ai/llm/electron/index.mjs +10 -0
- package/dist/common/ai/llm/index.d.mts +3 -0
- package/dist/common/ai/llm/index.d.ts +3 -0
- package/dist/common/ai/llm/index.js +54 -0
- package/dist/common/ai/llm/index.mjs +5 -0
- package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
- package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
- package/dist/common/ai/llm/miniapp/index.js +59 -0
- package/dist/common/ai/llm/miniapp/index.mjs +6 -0
- package/dist/common/ai/llm/rn/index.d.mts +6 -0
- package/dist/common/ai/llm/rn/index.d.ts +6 -0
- package/dist/common/ai/llm/rn/index.js +59 -0
- package/dist/common/ai/llm/rn/index.mjs +6 -0
- package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
- package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
- package/dist/common/ai/llm/ui/electron/index.js +22 -0
- package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
- package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
- package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
- package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
- package/dist/common/ai/llm/ui/rn/index.js +14 -0
- package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
- package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
- package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
- package/dist/common/ai/llm/ui/web/index.js +21 -0
- package/dist/common/ai/llm/ui/web/index.mjs +8 -0
- package/dist/common/ai/llm/web/index.d.mts +6 -0
- package/dist/common/ai/llm/web/index.d.ts +6 -0
- package/dist/common/ai/llm/web/index.js +66 -0
- package/dist/common/ai/llm/web/index.mjs +9 -0
- package/dist/common/analytics/index.d.mts +2 -0
- package/dist/common/analytics/index.d.ts +2 -0
- package/dist/common/analytics/index.js +314 -0
- package/dist/common/analytics/index.mjs +5 -0
- package/dist/common/analytics/server/index.js +529 -0
- package/dist/common/analytics/server/index.js.map +1 -0
- package/dist/common/analytics/server/index.mjs +525 -0
- package/dist/common/analytics/server/index.mjs.map +1 -0
- package/dist/common/api/index.d.mts +3 -0
- package/dist/common/api/index.d.ts +3 -0
- package/dist/common/api/index.js +21 -0
- package/dist/common/api/index.mjs +4 -0
- package/dist/common/auth/client/index.d.mts +1 -31
- package/dist/common/auth/client/index.d.ts +1 -31
- package/dist/common/auth/client/index.js +2 -15
- package/dist/common/auth/client/index.mjs +1 -2
- package/dist/common/auth/components/index.d.mts +5 -239
- package/dist/common/auth/components/index.d.ts +5 -239
- package/dist/common/auth/components/index.js +878 -49
- package/dist/common/auth/components/index.js.map +1 -1
- package/dist/common/auth/components/index.mjs +871 -5
- package/dist/common/auth/components/index.mjs.map +1 -1
- package/dist/common/auth/hooks/index.d.mts +2 -29
- package/dist/common/auth/hooks/index.d.ts +2 -29
- package/dist/common/auth/hooks/index.js +2 -11
- package/dist/common/auth/hooks/index.mjs +1 -2
- package/dist/common/auth/index.d.mts +5 -9
- package/dist/common/auth/index.d.ts +5 -9
- package/dist/common/auth/index.js +5 -26
- package/dist/common/auth/index.mjs +3 -4
- package/dist/common/auth/rn/index.d.mts +1 -17
- package/dist/common/auth/rn/index.d.ts +1 -17
- package/dist/common/auth/rn/index.js +2 -34
- package/dist/common/auth/rn/index.js.map +1 -1
- package/dist/common/auth/rn/index.mjs +2 -31
- package/dist/common/auth/rn/index.mjs.map +1 -1
- package/dist/common/auth/server/index.d.mts +81 -2
- package/dist/common/auth/server/index.d.ts +81 -2
- package/dist/common/auth/server/index.js +128 -37
- package/dist/common/auth/server/index.js.map +1 -1
- package/dist/common/auth/server/index.mjs +124 -1
- package/dist/common/auth/server/index.mjs.map +1 -1
- package/dist/common/auth/services/index.js +12 -9
- package/dist/common/auth/services/index.js.map +1 -1
- package/dist/common/auth/services/index.mjs +10 -1
- package/dist/common/auth/services/index.mjs.map +1 -1
- package/dist/common/components/index.d.mts +4 -0
- package/dist/common/components/index.d.ts +4 -0
- package/dist/common/components/index.js +414 -0
- package/dist/common/components/index.mjs +9 -0
- package/dist/common/config/index.d.mts +1 -0
- package/dist/common/config/index.d.ts +1 -0
- package/dist/common/config/index.js +21 -0
- package/dist/common/config/index.mjs +4 -0
- package/dist/common/config/server/index.js +1177 -0
- package/dist/common/config/server/index.js.map +1 -0
- package/dist/common/config/server/index.mjs +1138 -0
- package/dist/common/config/server/index.mjs.map +1 -0
- package/dist/common/export/index.d.mts +2 -2
- package/dist/common/export/index.d.ts +2 -2
- package/dist/common/export/index.js +67 -67
- package/dist/common/export/index.mjs +3 -3
- package/dist/common/export/server/index.d.mts +2 -2
- package/dist/common/export/server/index.d.ts +2 -2
- package/dist/common/export/server/index.js +76 -48
- package/dist/common/export/server/index.mjs +3 -3
- package/dist/common/file/index.d.mts +2 -2
- package/dist/common/file/index.d.ts +2 -2
- package/dist/common/file/index.js +27 -27
- package/dist/common/file/index.mjs +5 -5
- package/dist/common/file/server/index.d.mts +2 -2
- package/dist/common/file/server/index.d.ts +2 -2
- package/dist/common/file/server/index.js +58 -50
- package/dist/common/file/server/index.mjs +8 -8
- package/dist/common/i18n/index.d.mts +2 -0
- package/dist/common/i18n/index.d.ts +2 -0
- package/dist/common/i18n/index.js +73 -0
- package/dist/common/i18n/index.mjs +4 -0
- package/dist/common/imageCrop/index.d.mts +2 -0
- package/dist/common/imageCrop/index.d.ts +2 -0
- package/dist/common/imageCrop/index.js +61 -0
- package/dist/common/imageCrop/index.mjs +4 -0
- package/dist/common/index.d.mts +17 -20
- package/dist/common/index.d.ts +17 -20
- package/dist/common/index.js +76 -70
- package/dist/common/index.mjs +27 -29
- package/dist/common/logger/index.d.mts +1 -1
- package/dist/common/logger/index.d.ts +1 -1
- package/dist/common/logger/index.js +6 -7
- package/dist/common/logger/index.mjs +1 -2
- package/dist/common/ossFile/index.d.mts +61 -0
- package/dist/common/ossFile/index.d.ts +61 -0
- package/dist/common/ossFile/index.js +96 -0
- package/dist/common/ossFile/index.mjs +7 -0
- package/dist/common/ossFile/server/index.d.mts +94 -0
- package/dist/common/ossFile/server/index.d.ts +94 -0
- package/dist/common/ossFile/server/index.js +221 -0
- package/dist/common/ossFile/server/index.mjs +12 -0
- package/dist/common/platform/index.js +8 -8
- package/dist/common/platform/index.mjs +4 -4
- package/dist/common/request/index.d.mts +1 -1
- package/dist/common/request/index.d.ts +1 -1
- package/dist/common/request/index.js +5 -7
- package/dist/common/request/index.mjs +2 -4
- package/dist/common/storage/index.d.mts +1 -1
- package/dist/common/storage/index.d.ts +1 -1
- package/dist/common/storage/index.js +17 -17
- package/dist/common/storage/index.mjs +5 -5
- package/dist/common/universalExport/index.d.mts +232 -0
- package/dist/common/universalExport/index.d.ts +232 -0
- package/dist/common/universalExport/index.js +178 -0
- package/dist/common/universalExport/index.mjs +5 -0
- package/dist/common/universalExport/server/index.d.mts +1189 -0
- package/dist/common/universalExport/server/index.d.ts +1189 -0
- package/dist/common/universalExport/server/index.js +151 -0
- package/dist/common/universalExport/server/index.mjs +6 -0
- package/dist/common/universalFile/index.d.mts +409 -0
- package/dist/common/universalFile/index.d.ts +409 -0
- package/dist/common/universalFile/index.js +1742 -0
- package/dist/common/universalFile/index.js.map +1 -0
- package/dist/common/universalFile/index.mjs +1497 -0
- package/dist/common/universalFile/index.mjs.map +1 -0
- package/dist/common/universalFile/server/index.d.mts +1064 -0
- package/dist/common/universalFile/server/index.d.ts +1064 -0
- package/dist/common/universalFile/server/index.js +311 -0
- package/dist/common/universalFile/server/index.mjs +10 -0
- package/dist/common/utils/index.d.mts +1 -1
- package/dist/common/utils/index.d.ts +1 -1
- package/dist/common/utils/index.js +11 -12
- package/dist/common/utils/index.mjs +2 -3
- package/dist/index-BRLygK4h.d.ts +67 -0
- package/dist/index-BWNK5mH2.d.ts +76 -0
- package/dist/index-Bd7cKF1j.d.mts +50 -0
- package/dist/index-BiCK6gg6.d.mts +210 -0
- package/dist/index-BiCK6gg6.d.ts +210 -0
- package/dist/index-C-P2yBTH.d.mts +76 -0
- package/dist/index-CT4K2z-O.d.ts +81 -0
- package/dist/index-D6RJTGce.d.mts +81 -0
- package/dist/index-DA7L9JlE.d.mts +159 -0
- package/dist/index-DRQxtCDw.d.ts +50 -0
- package/dist/index-DXVph21C.d.mts +201 -0
- package/dist/index-DXVph21C.d.ts +201 -0
- package/dist/index-DzyK789B.d.mts +67 -0
- package/dist/index-FVJZCEtm.d.mts +145 -0
- package/dist/index-FVJZCEtm.d.ts +145 -0
- package/dist/index-nD9vPCZT.d.ts +159 -0
- package/dist/index-nOmIv2BG.d.mts +559 -0
- package/dist/index-nOmIv2BG.d.ts +559 -0
- package/dist/path-Bzc7hj1N.d.ts +45 -0
- package/dist/path-DN_65vhO.d.mts +45 -0
- package/dist/utils-Dm3O1rAa.d.mts +366 -0
- package/dist/utils-Dm3O1rAa.d.ts +366 -0
- package/package.json +293 -348
- package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
- package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
- package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
- package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
- package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
- package/dist/ConfigService-BxK06xP6.d.mts +0 -262
- package/dist/ConfigService-BxK06xP6.d.ts +0 -262
- package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
- package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
- package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
- package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
- package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
- package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
- package/dist/ai/llm/core/index.d.mts +0 -70
- package/dist/ai/llm/core/index.d.ts +0 -70
- package/dist/ai/llm/core/index.js +0 -54
- package/dist/ai/llm/core/index.mjs +0 -5
- package/dist/ai/llm/electron/index.d.mts +0 -6
- package/dist/ai/llm/electron/index.d.ts +0 -6
- package/dist/ai/llm/electron/index.js +0 -66
- package/dist/ai/llm/electron/index.mjs +0 -9
- package/dist/ai/llm/index.d.mts +0 -3
- package/dist/ai/llm/index.d.ts +0 -3
- package/dist/ai/llm/index.js +0 -54
- package/dist/ai/llm/index.mjs +0 -5
- package/dist/ai/llm/miniapp/index.d.mts +0 -6
- package/dist/ai/llm/miniapp/index.d.ts +0 -6
- package/dist/ai/llm/miniapp/index.js +0 -59
- package/dist/ai/llm/miniapp/index.mjs +0 -6
- package/dist/ai/llm/rn/index.d.mts +0 -6
- package/dist/ai/llm/rn/index.d.ts +0 -6
- package/dist/ai/llm/rn/index.js +0 -59
- package/dist/ai/llm/rn/index.mjs +0 -6
- package/dist/ai/llm/ui/electron/index.d.mts +0 -5
- package/dist/ai/llm/ui/electron/index.d.ts +0 -5
- package/dist/ai/llm/ui/electron/index.js +0 -21
- package/dist/ai/llm/ui/electron/index.mjs +0 -8
- package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
- package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
- package/dist/ai/llm/ui/miniapp/index.js +0 -14
- package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
- package/dist/ai/llm/ui/rn/index.d.mts +0 -9
- package/dist/ai/llm/ui/rn/index.d.ts +0 -9
- package/dist/ai/llm/ui/rn/index.js +0 -14
- package/dist/ai/llm/ui/rn/index.mjs +0 -5
- package/dist/ai/llm/ui/web/index.d.mts +0 -15
- package/dist/ai/llm/ui/web/index.d.ts +0 -15
- package/dist/ai/llm/ui/web/index.js +0 -20
- package/dist/ai/llm/ui/web/index.mjs +0 -7
- package/dist/ai/llm/web/index.d.mts +0 -6
- package/dist/ai/llm/web/index.d.ts +0 -6
- package/dist/ai/llm/web/index.js +0 -65
- package/dist/ai/llm/web/index.mjs +0 -8
- package/dist/analytics/index.d.mts +0 -2
- package/dist/analytics/index.d.ts +0 -2
- package/dist/analytics/index.js +0 -314
- package/dist/analytics/index.mjs +0 -5
- package/dist/analytics/server/index.js +0 -529
- package/dist/analytics/server/index.js.map +0 -1
- package/dist/analytics/server/index.mjs +0 -525
- package/dist/analytics/server/index.mjs.map +0 -1
- package/dist/api/index.d.mts +0 -3
- package/dist/api/index.d.ts +0 -3
- package/dist/api/index.js +0 -21
- package/dist/api/index.mjs +0 -4
- package/dist/audioDetection/index.d.mts +0 -449
- package/dist/audioDetection/index.d.ts +0 -449
- package/dist/audioDetection/index.js +0 -1244
- package/dist/audioDetection/index.js.map +0 -1
- package/dist/audioDetection/index.mjs +0 -1227
- package/dist/audioDetection/index.mjs.map +0 -1
- package/dist/auth/client/index.d.mts +0 -13
- package/dist/auth/client/index.d.ts +0 -13
- package/dist/auth/client/index.js +0 -26
- package/dist/auth/client/index.mjs +0 -5
- package/dist/auth/components/index.d.mts +0 -10
- package/dist/auth/components/index.d.ts +0 -10
- package/dist/auth/components/index.js +0 -70
- package/dist/auth/components/index.mjs +0 -9
- package/dist/auth/hooks/index.d.mts +0 -13
- package/dist/auth/hooks/index.d.ts +0 -13
- package/dist/auth/hooks/index.js +0 -28
- package/dist/auth/hooks/index.mjs +0 -7
- package/dist/auth/index.d.mts +0 -21
- package/dist/auth/index.d.ts +0 -21
- package/dist/auth/index.js +0 -112
- package/dist/auth/index.mjs +0 -11
- package/dist/auth/rn/index.d.mts +0 -3133
- package/dist/auth/rn/index.d.ts +0 -3133
- package/dist/auth/rn/index.js +0 -684
- package/dist/auth/rn/index.js.map +0 -1
- package/dist/auth/rn/index.mjs +0 -663
- package/dist/auth/rn/index.mjs.map +0 -1
- package/dist/auth/schema/index.d.mts +0 -4
- package/dist/auth/schema/index.d.ts +0 -4
- package/dist/auth/schema/index.js +0 -49
- package/dist/auth/schema/index.mjs +0 -4
- package/dist/auth/services/index.d.mts +0 -1
- package/dist/auth/services/index.d.ts +0 -1
- package/dist/auth/services/index.js +0 -17
- package/dist/auth/services/index.mjs +0 -4
- package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
- package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
- package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
- package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
- package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
- package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
- package/dist/business/index.d.mts +0 -2
- package/dist/business/index.d.ts +0 -2
- package/dist/business/index.js +0 -581
- package/dist/business/index.js.map +0 -1
- package/dist/business/index.mjs +0 -575
- package/dist/business/index.mjs.map +0 -1
- package/dist/calendar/index.d.mts +0 -1325
- package/dist/calendar/index.d.ts +0 -1325
- package/dist/calendar/index.js +0 -5964
- package/dist/calendar/index.js.map +0 -1
- package/dist/calendar/index.mjs +0 -5878
- package/dist/calendar/index.mjs.map +0 -1
- package/dist/calendar/routes/index.d.mts +0 -191
- package/dist/calendar/routes/index.d.ts +0 -191
- package/dist/calendar/routes/index.js +0 -844
- package/dist/calendar/routes/index.js.map +0 -1
- package/dist/calendar/routes/index.mjs +0 -826
- package/dist/calendar/routes/index.mjs.map +0 -1
- package/dist/chunk-25OFOKNF.js +0 -171
- package/dist/chunk-25OFOKNF.js.map +0 -1
- package/dist/chunk-2Y7BKFKZ.js +0 -37
- package/dist/chunk-2Y7BKFKZ.js.map +0 -1
- package/dist/chunk-3DXPQ4YV.mjs +0 -165
- package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
- package/dist/chunk-3FRAIS4T.mjs +0 -35
- package/dist/chunk-3FRAIS4T.mjs.map +0 -1
- package/dist/chunk-3NHAT7D4.mjs +0 -361
- package/dist/chunk-3NHAT7D4.mjs.map +0 -1
- package/dist/chunk-3Z43XGA4.mjs +0 -54
- package/dist/chunk-3Z43XGA4.mjs.map +0 -1
- package/dist/chunk-4FDUURSD.js +0 -22
- package/dist/chunk-4FDUURSD.js.map +0 -1
- package/dist/chunk-4WBCWJSN.js +0 -836
- package/dist/chunk-4WBCWJSN.js.map +0 -1
- package/dist/chunk-5GBDDXYL.mjs +0 -23
- package/dist/chunk-5GBDDXYL.mjs.map +0 -1
- package/dist/chunk-5USIS3UM.js +0 -4
- package/dist/chunk-5USIS3UM.js.map +0 -1
- package/dist/chunk-7E3J7VAD.mjs +0 -3
- package/dist/chunk-7E3J7VAD.mjs.map +0 -1
- package/dist/chunk-ACUFEDVQ.js +0 -345
- package/dist/chunk-ACUFEDVQ.js.map +0 -1
- package/dist/chunk-AQPU2AXH.js +0 -756
- package/dist/chunk-AQPU2AXH.js.map +0 -1
- package/dist/chunk-ATUCZXJY.js +0 -80
- package/dist/chunk-ATUCZXJY.js.map +0 -1
- package/dist/chunk-B3CZ3HXJ.mjs +0 -126
- package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
- package/dist/chunk-BCE6RUZV.js +0 -2695
- package/dist/chunk-BCE6RUZV.js.map +0 -1
- package/dist/chunk-BIHYZA67.mjs +0 -2613
- package/dist/chunk-BIHYZA67.mjs.map +0 -1
- package/dist/chunk-C6KV7VTZ.mjs +0 -152
- package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
- package/dist/chunk-CAYOQDBR.js +0 -78
- package/dist/chunk-CAYOQDBR.js.map +0 -1
- package/dist/chunk-CIVO4R6N.mjs +0 -37
- package/dist/chunk-CIVO4R6N.mjs.map +0 -1
- package/dist/chunk-CX2GHCAI.mjs +0 -217
- package/dist/chunk-CX2GHCAI.mjs.map +0 -1
- package/dist/chunk-DIF5VRL3.mjs +0 -73
- package/dist/chunk-DIF5VRL3.mjs.map +0 -1
- package/dist/chunk-FCEBAWN6.js +0 -18
- package/dist/chunk-FCEBAWN6.js.map +0 -1
- package/dist/chunk-FHIE5MTC.mjs +0 -541
- package/dist/chunk-FHIE5MTC.mjs.map +0 -1
- package/dist/chunk-FHLTPXAR.js +0 -56
- package/dist/chunk-FHLTPXAR.js.map +0 -1
- package/dist/chunk-FIUBFREP.mjs +0 -298
- package/dist/chunk-FIUBFREP.mjs.map +0 -1
- package/dist/chunk-FOQEQWX5.js +0 -4
- package/dist/chunk-FOQEQWX5.js.map +0 -1
- package/dist/chunk-FXQOXLDE.js +0 -120
- package/dist/chunk-FXQOXLDE.js.map +0 -1
- package/dist/chunk-G4NFB2QA.mjs +0 -212
- package/dist/chunk-G4NFB2QA.mjs.map +0 -1
- package/dist/chunk-G5HJGXGC.mjs +0 -39
- package/dist/chunk-G5HJGXGC.mjs.map +0 -1
- package/dist/chunk-G6HXNQ2U.mjs +0 -336
- package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
- package/dist/chunk-G6NSKJMH.js +0 -106
- package/dist/chunk-G6NSKJMH.js.map +0 -1
- package/dist/chunk-G7UBMCUT.mjs +0 -41
- package/dist/chunk-G7UBMCUT.mjs.map +0 -1
- package/dist/chunk-GQZHGSRR.js +0 -44
- package/dist/chunk-GQZHGSRR.js.map +0 -1
- package/dist/chunk-GS7XLKET.js +0 -41
- package/dist/chunk-GS7XLKET.js.map +0 -1
- package/dist/chunk-GWNBVGDT.mjs +0 -1232
- package/dist/chunk-GWNBVGDT.mjs.map +0 -1
- package/dist/chunk-HDMIOOZY.mjs +0 -546
- package/dist/chunk-HDMIOOZY.mjs.map +0 -1
- package/dist/chunk-HJ6MH7J7.js +0 -552
- package/dist/chunk-HJ6MH7J7.js.map +0 -1
- package/dist/chunk-HJZHQW5R.mjs +0 -146
- package/dist/chunk-HJZHQW5R.mjs.map +0 -1
- package/dist/chunk-I5ZPEDNR.mjs +0 -734
- package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
- package/dist/chunk-IBWDBBX5.mjs +0 -16
- package/dist/chunk-IBWDBBX5.mjs.map +0 -1
- package/dist/chunk-J77KR2EV.mjs +0 -193
- package/dist/chunk-J77KR2EV.mjs.map +0 -1
- package/dist/chunk-KH6RQ4J5.js +0 -28
- package/dist/chunk-KH6RQ4J5.js.map +0 -1
- package/dist/chunk-KQ643L7Z.js +0 -144
- package/dist/chunk-KQ643L7Z.js.map +0 -1
- package/dist/chunk-LFB5EIIM.mjs +0 -31
- package/dist/chunk-LFB5EIIM.mjs.map +0 -1
- package/dist/chunk-LHJKLUM7.mjs +0 -18
- package/dist/chunk-LHJKLUM7.mjs.map +0 -1
- package/dist/chunk-MBANGIG3.mjs +0 -781
- package/dist/chunk-MBANGIG3.mjs.map +0 -1
- package/dist/chunk-MWSAH7ZG.mjs +0 -42
- package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
- package/dist/chunk-MZOGYD4N.mjs +0 -186
- package/dist/chunk-MZOGYD4N.mjs.map +0 -1
- package/dist/chunk-NCRP2YHY.mjs +0 -1598
- package/dist/chunk-NCRP2YHY.mjs.map +0 -1
- package/dist/chunk-NDGHXVGS.js +0 -25
- package/dist/chunk-NDGHXVGS.js.map +0 -1
- package/dist/chunk-NDPO5OMC.js +0 -563
- package/dist/chunk-NDPO5OMC.js.map +0 -1
- package/dist/chunk-PBI7FKMB.js +0 -43
- package/dist/chunk-PBI7FKMB.js.map +0 -1
- package/dist/chunk-Q5EDCKQA.js +0 -336
- package/dist/chunk-Q5EDCKQA.js.map +0 -1
- package/dist/chunk-Q5VFBPMG.mjs +0 -76
- package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
- package/dist/chunk-QDUBO567.js +0 -1148
- package/dist/chunk-QDUBO567.js.map +0 -1
- package/dist/chunk-QP5N3ER6.js +0 -18
- package/dist/chunk-QP5N3ER6.js.map +0 -1
- package/dist/chunk-QXAOXBVB.mjs +0 -135
- package/dist/chunk-QXAOXBVB.mjs.map +0 -1
- package/dist/chunk-R2DXTE2L.js +0 -249
- package/dist/chunk-R2DXTE2L.js.map +0 -1
- package/dist/chunk-RJP2BRJD.mjs +0 -6077
- package/dist/chunk-RJP2BRJD.mjs.map +0 -1
- package/dist/chunk-RTD2WHQQ.mjs +0 -16
- package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
- package/dist/chunk-RWCD2CAD.mjs +0 -1132
- package/dist/chunk-RWCD2CAD.mjs.map +0 -1
- package/dist/chunk-S37OK2QG.js +0 -216
- package/dist/chunk-S37OK2QG.js.map +0 -1
- package/dist/chunk-S3PUP7N4.js +0 -20
- package/dist/chunk-S3PUP7N4.js.map +0 -1
- package/dist/chunk-S6YSGVWD.js +0 -224
- package/dist/chunk-S6YSGVWD.js.map +0 -1
- package/dist/chunk-S732H246.js +0 -6154
- package/dist/chunk-S732H246.js.map +0 -1
- package/dist/chunk-SFDJNKWC.js +0 -22
- package/dist/chunk-SFDJNKWC.js.map +0 -1
- package/dist/chunk-SKFEJPMJ.mjs +0 -226
- package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
- package/dist/chunk-SLKOEYFH.js +0 -303
- package/dist/chunk-SLKOEYFH.js.map +0 -1
- package/dist/chunk-TC5YU6A4.mjs +0 -243
- package/dist/chunk-TC5YU6A4.mjs.map +0 -1
- package/dist/chunk-TXMX6PZR.js +0 -190
- package/dist/chunk-TXMX6PZR.js.map +0 -1
- package/dist/chunk-UCOE6SET.js +0 -148
- package/dist/chunk-UCOE6SET.js.map +0 -1
- package/dist/chunk-UIYKZ73N.js +0 -36
- package/dist/chunk-UIYKZ73N.js.map +0 -1
- package/dist/chunk-V7EVKD5G.mjs +0 -116
- package/dist/chunk-V7EVKD5G.mjs.map +0 -1
- package/dist/chunk-VHN7PF5I.js +0 -20
- package/dist/chunk-VHN7PF5I.js.map +0 -1
- package/dist/chunk-VMTEDX5H.js +0 -1275
- package/dist/chunk-VMTEDX5H.js.map +0 -1
- package/dist/chunk-VRN76M56.mjs +0 -3
- package/dist/chunk-VRN76M56.mjs.map +0 -1
- package/dist/chunk-VXFUXZN5.mjs +0 -20
- package/dist/chunk-VXFUXZN5.mjs.map +0 -1
- package/dist/chunk-WEEXCPSE.mjs +0 -86
- package/dist/chunk-WEEXCPSE.mjs.map +0 -1
- package/dist/chunk-WW4GE6CZ.js +0 -1647
- package/dist/chunk-WW4GE6CZ.js.map +0 -1
- package/dist/chunk-WZDTNDYR.js +0 -207
- package/dist/chunk-WZDTNDYR.js.map +0 -1
- package/dist/chunk-XBZIS3MV.mjs +0 -13
- package/dist/chunk-XBZIS3MV.mjs.map +0 -1
- package/dist/chunk-XFOZ56FB.mjs +0 -20
- package/dist/chunk-XFOZ56FB.mjs.map +0 -1
- package/dist/chunk-XJ7ZAGC5.js +0 -88
- package/dist/chunk-XJ7ZAGC5.js.map +0 -1
- package/dist/chunk-XUS5ACKR.mjs +0 -100
- package/dist/chunk-XUS5ACKR.mjs.map +0 -1
- package/dist/chunk-YOTQG4NP.mjs +0 -314
- package/dist/chunk-YOTQG4NP.mjs.map +0 -1
- package/dist/chunk-Z23HAXHL.js +0 -136
- package/dist/chunk-Z23HAXHL.js.map +0 -1
- package/dist/chunk-ZGVB35L2.mjs +0 -25
- package/dist/chunk-ZGVB35L2.mjs.map +0 -1
- package/dist/chunk-ZLYPALF3.js +0 -242
- package/dist/chunk-ZLYPALF3.js.map +0 -1
- package/dist/chunk-ZM2SZJTZ.js +0 -158
- package/dist/chunk-ZM2SZJTZ.js.map +0 -1
- package/dist/chunk-ZRAW3HXA.js +0 -43
- package/dist/chunk-ZRAW3HXA.js.map +0 -1
- package/dist/chunk-ZWQJSZEY.js +0 -371
- package/dist/chunk-ZWQJSZEY.js.map +0 -1
- package/dist/components/index.d.mts +0 -405
- package/dist/components/index.d.ts +0 -405
- package/dist/components/index.js +0 -2516
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.mjs +0 -2396
- package/dist/components/index.mjs.map +0 -1
- package/dist/config/index.d.mts +0 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -21
- package/dist/config/index.mjs +0 -4
- package/dist/config/server/index.js +0 -1177
- package/dist/config/server/index.js.map +0 -1
- package/dist/config/server/index.mjs +0 -1138
- package/dist/config/server/index.mjs.map +0 -1
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
- package/dist/festivalCard/index.d.mts +0 -76
- package/dist/festivalCard/index.d.ts +0 -76
- package/dist/festivalCard/index.js +0 -1492
- package/dist/festivalCard/index.js.map +0 -1
- package/dist/festivalCard/index.mjs +0 -1475
- package/dist/festivalCard/index.mjs.map +0 -1
- package/dist/festivalCard/routes/index.d.mts +0 -42
- package/dist/festivalCard/routes/index.d.ts +0 -42
- package/dist/festivalCard/routes/index.js +0 -361
- package/dist/festivalCard/routes/index.js.map +0 -1
- package/dist/festivalCard/routes/index.mjs +0 -356
- package/dist/festivalCard/routes/index.mjs.map +0 -1
- package/dist/festivalCard/server/index.d.mts +0 -120
- package/dist/festivalCard/server/index.d.ts +0 -120
- package/dist/festivalCard/server/index.js +0 -272
- package/dist/festivalCard/server/index.js.map +0 -1
- package/dist/festivalCard/server/index.mjs +0 -265
- package/dist/festivalCard/server/index.mjs.map +0 -1
- package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
- package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
- package/dist/i18n/index.d.mts +0 -2
- package/dist/i18n/index.d.ts +0 -2
- package/dist/i18n/index.js +0 -73
- package/dist/i18n/index.mjs +0 -4
- package/dist/imageCrop/index.d.mts +0 -165
- package/dist/imageCrop/index.d.ts +0 -165
- package/dist/imageCrop/index.js +0 -560
- package/dist/imageCrop/index.js.map +0 -1
- package/dist/imageCrop/index.mjs +0 -541
- package/dist/imageCrop/index.mjs.map +0 -1
- package/dist/index-2G9Dxjvt.d.ts +0 -81
- package/dist/index-BcjDRcKp.d.mts +0 -40
- package/dist/index-Bjem5rWn.d.mts +0 -17
- package/dist/index-BlpXrrTy.d.ts +0 -40
- package/dist/index-C5U-2hJq.d.ts +0 -23
- package/dist/index-CYuUB8aF.d.mts +0 -67
- package/dist/index-CifSBBP2.d.ts +0 -17
- package/dist/index-D0K4ehme.d.mts +0 -20
- package/dist/index-DLnfKN-a.d.mts +0 -23
- package/dist/index-DSel44Ke.d.mts +0 -93
- package/dist/index-DSel44Ke.d.ts +0 -93
- package/dist/index-DZ5iJtNO.d.mts +0 -102
- package/dist/index-DZ5iJtNO.d.ts +0 -102
- package/dist/index-Da7qdkgW.d.ts +0 -20
- package/dist/index-DrPcMJPc.d.mts +0 -250
- package/dist/index-DrPcMJPc.d.ts +0 -250
- package/dist/index-WrR57hKT.d.ts +0 -67
- package/dist/index-oLUvfqT8.d.ts +0 -20
- package/dist/index-pe38RDgC.d.mts +0 -20
- package/dist/index-qcOvRVuN.d.mts +0 -81
- package/dist/index.d.mts +0 -11590
- package/dist/index.d.ts +0 -11590
- package/dist/index.js +0 -17679
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -17403
- package/dist/index.mjs.map +0 -1
- package/dist/logger/index.d.mts +0 -125
- package/dist/logger/index.d.ts +0 -125
- package/dist/logger/index.js +0 -29
- package/dist/logger/index.mjs +0 -4
- package/dist/mikuContest/ui/web/index.d.mts +0 -2
- package/dist/mikuContest/ui/web/index.d.ts +0 -2
- package/dist/mikuContest/ui/web/index.js +0 -353
- package/dist/mikuContest/ui/web/index.js.map +0 -1
- package/dist/mikuContest/ui/web/index.mjs +0 -343
- package/dist/mikuContest/ui/web/index.mjs.map +0 -1
- package/dist/mikuFireworks3D/index.d.mts +0 -268
- package/dist/mikuFireworks3D/index.d.ts +0 -268
- package/dist/mikuFireworks3D/index.js +0 -1267
- package/dist/mikuFireworks3D/index.js.map +0 -1
- package/dist/mikuFireworks3D/index.mjs +0 -1228
- package/dist/mikuFireworks3D/index.mjs.map +0 -1
- package/dist/mikuFusionGame/index.d.mts +0 -117
- package/dist/mikuFusionGame/index.d.ts +0 -117
- package/dist/mikuFusionGame/index.js +0 -1208
- package/dist/mikuFusionGame/index.js.map +0 -1
- package/dist/mikuFusionGame/index.mjs +0 -1195
- package/dist/mikuFusionGame/index.mjs.map +0 -1
- package/dist/mmd/admin/index.d.mts +0 -487
- package/dist/mmd/admin/index.d.ts +0 -487
- package/dist/mmd/admin/index.js +0 -1058
- package/dist/mmd/admin/index.js.map +0 -1
- package/dist/mmd/admin/index.mjs +0 -1027
- package/dist/mmd/admin/index.mjs.map +0 -1
- package/dist/mmd/index.d.mts +0 -2467
- package/dist/mmd/index.d.ts +0 -2467
- package/dist/mmd/index.js +0 -10119
- package/dist/mmd/index.js.map +0 -1
- package/dist/mmd/index.mjs +0 -10028
- package/dist/mmd/index.mjs.map +0 -1
- package/dist/mmd/server/index.d.mts +0 -139
- package/dist/mmd/server/index.d.ts +0 -139
- package/dist/mmd/server/index.js +0 -424
- package/dist/mmd/server/index.js.map +0 -1
- package/dist/mmd/server/index.mjs +0 -404
- package/dist/mmd/server/index.mjs.map +0 -1
- package/dist/music/index.d.mts +0 -74
- package/dist/music/index.d.ts +0 -74
- package/dist/music/index.js +0 -830
- package/dist/music/index.js.map +0 -1
- package/dist/music/index.mjs +0 -809
- package/dist/music/index.mjs.map +0 -1
- package/dist/music/server/index.d.mts +0 -1
- package/dist/music/server/index.d.ts +0 -1
- package/dist/music/server/index.js +0 -194
- package/dist/music/server/index.js.map +0 -1
- package/dist/music/server/index.mjs +0 -182
- package/dist/music/server/index.mjs.map +0 -1
- package/dist/navigation/index.d.mts +0 -93
- package/dist/navigation/index.d.ts +0 -93
- package/dist/navigation/index.js +0 -453
- package/dist/navigation/index.js.map +0 -1
- package/dist/navigation/index.mjs +0 -443
- package/dist/navigation/index.mjs.map +0 -1
- package/dist/ossFile/index.d.mts +0 -61
- package/dist/ossFile/index.d.ts +0 -61
- package/dist/ossFile/index.js +0 -96
- package/dist/ossFile/index.js.map +0 -1
- package/dist/ossFile/index.mjs +0 -7
- package/dist/ossFile/index.mjs.map +0 -1
- package/dist/ossFile/server/index.d.mts +0 -94
- package/dist/ossFile/server/index.d.ts +0 -94
- package/dist/ossFile/server/index.js +0 -213
- package/dist/ossFile/server/index.js.map +0 -1
- package/dist/ossFile/server/index.mjs +0 -12
- package/dist/ossFile/server/index.mjs.map +0 -1
- package/dist/path-DkaHQSyW.d.mts +0 -41
- package/dist/path-qjVnH8qU.d.ts +0 -41
- package/dist/portfolio/index.d.mts +0 -66
- package/dist/portfolio/index.d.ts +0 -66
- package/dist/portfolio/index.js +0 -736
- package/dist/portfolio/index.js.map +0 -1
- package/dist/portfolio/index.mjs +0 -724
- package/dist/portfolio/index.mjs.map +0 -1
- package/dist/qqbot/server/index.d.mts +0 -216
- package/dist/qqbot/server/index.d.ts +0 -216
- package/dist/qqbot/server/index.js +0 -394
- package/dist/qqbot/server/index.js.map +0 -1
- package/dist/qqbot/server/index.mjs +0 -385
- package/dist/qqbot/server/index.mjs.map +0 -1
- package/dist/qqbot/ui/web/index.d.mts +0 -10
- package/dist/qqbot/ui/web/index.d.ts +0 -10
- package/dist/qqbot/ui/web/index.js +0 -105
- package/dist/qqbot/ui/web/index.js.map +0 -1
- package/dist/qqbot/ui/web/index.mjs +0 -99
- package/dist/qqbot/ui/web/index.mjs.map +0 -1
- package/dist/request/index.d.mts +0 -59
- package/dist/request/index.d.ts +0 -59
- package/dist/request/index.js +0 -23
- package/dist/request/index.js.map +0 -1
- package/dist/request/index.mjs +0 -6
- package/dist/request/index.mjs.map +0 -1
- package/dist/screenReceiver/index.d.mts +0 -86
- package/dist/screenReceiver/index.d.ts +0 -86
- package/dist/screenReceiver/index.js +0 -281
- package/dist/screenReceiver/index.js.map +0 -1
- package/dist/screenReceiver/index.mjs +0 -273
- package/dist/screenReceiver/index.mjs.map +0 -1
- package/dist/session-BCXvGCnm.d.mts +0 -81
- package/dist/session-BCXvGCnm.d.ts +0 -81
- package/dist/storage/index.d.mts +0 -136
- package/dist/storage/index.d.ts +0 -136
- package/dist/storage/index.js +0 -48
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/index.mjs +0 -7
- package/dist/storage/index.mjs.map +0 -1
- package/dist/testYourself/admin/index.d.mts +0 -58
- package/dist/testYourself/admin/index.d.ts +0 -58
- package/dist/testYourself/admin/index.js +0 -1009
- package/dist/testYourself/admin/index.js.map +0 -1
- package/dist/testYourself/admin/index.mjs +0 -1002
- package/dist/testYourself/admin/index.mjs.map +0 -1
- package/dist/testYourself/index.d.mts +0 -53
- package/dist/testYourself/index.d.ts +0 -53
- package/dist/testYourself/index.js +0 -2551
- package/dist/testYourself/index.js.map +0 -1
- package/dist/testYourself/index.mjs +0 -2531
- package/dist/testYourself/index.mjs.map +0 -1
- package/dist/testYourself/server/index.d.mts +0 -1029
- package/dist/testYourself/server/index.d.ts +0 -1029
- package/dist/testYourself/server/index.js +0 -825
- package/dist/testYourself/server/index.js.map +0 -1
- package/dist/testYourself/server/index.mjs +0 -816
- package/dist/testYourself/server/index.mjs.map +0 -1
- package/dist/types-3ujSNAXb.d.mts +0 -286
- package/dist/types-3ujSNAXb.d.ts +0 -286
- package/dist/types-B6B210gX.d.mts +0 -270
- package/dist/types-B6B210gX.d.ts +0 -270
- package/dist/types-Bdnte5EN.d.mts +0 -292
- package/dist/types-C_W_CoUD.d.ts +0 -99
- package/dist/types-Cs0CLvrH.d.mts +0 -70
- package/dist/types-Cs0CLvrH.d.ts +0 -70
- package/dist/types-DCRvasyH.d.mts +0 -99
- package/dist/types-HorDyIRv.d.mts +0 -303
- package/dist/types-HorDyIRv.d.ts +0 -303
- package/dist/types-_rFX1atk.d.ts +0 -292
- package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
- package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
- package/dist/universalExport/index.d.mts +0 -312
- package/dist/universalExport/index.d.ts +0 -312
- package/dist/universalExport/index.js +0 -178
- package/dist/universalExport/index.js.map +0 -1
- package/dist/universalExport/index.mjs +0 -5
- package/dist/universalExport/index.mjs.map +0 -1
- package/dist/universalExport/server/index.d.mts +0 -1270
- package/dist/universalExport/server/index.d.ts +0 -1270
- package/dist/universalExport/server/index.js +0 -123
- package/dist/universalExport/server/index.js.map +0 -1
- package/dist/universalExport/server/index.mjs +0 -6
- package/dist/universalExport/server/index.mjs.map +0 -1
- package/dist/universalFile/index.d.mts +0 -409
- package/dist/universalFile/index.d.ts +0 -409
- package/dist/universalFile/index.js +0 -1742
- package/dist/universalFile/index.js.map +0 -1
- package/dist/universalFile/index.mjs +0 -1497
- package/dist/universalFile/index.mjs.map +0 -1
- package/dist/universalFile/server/index.d.mts +0 -1064
- package/dist/universalFile/server/index.d.ts +0 -1064
- package/dist/universalFile/server/index.js +0 -311
- package/dist/universalFile/server/index.js.map +0 -1
- package/dist/universalFile/server/index.mjs +0 -10
- package/dist/universalFile/server/index.mjs.map +0 -1
- package/dist/utils/index.d.mts +0 -192
- package/dist/utils/index.d.ts +0 -192
- package/dist/utils/index.js +0 -46
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/index.mjs +0 -5
- package/dist/utils/index.mjs.map +0 -1
- package/dist/vocaloidBooth/index.d.mts +0 -64
- package/dist/vocaloidBooth/index.d.ts +0 -64
- package/dist/vocaloidBooth/index.js +0 -376
- package/dist/vocaloidBooth/index.js.map +0 -1
- package/dist/vocaloidBooth/index.mjs +0 -362
- package/dist/vocaloidBooth/index.mjs.map +0 -1
- package/dist/vocaloidBooth/server/index.d.mts +0 -111
- package/dist/vocaloidBooth/server/index.d.ts +0 -111
- package/dist/vocaloidBooth/server/index.js +0 -247
- package/dist/vocaloidBooth/server/index.js.map +0 -1
- package/dist/vocaloidBooth/server/index.mjs +0 -237
- package/dist/vocaloidBooth/server/index.mjs.map +0 -1
- package/dist/vocaloidBooth/web/index.d.mts +0 -3
- package/dist/vocaloidBooth/web/index.d.ts +0 -3
- package/dist/vocaloidBooth/web/index.js +0 -376
- package/dist/vocaloidBooth/web/index.js.map +0 -1
- package/dist/vocaloidBooth/web/index.mjs +0 -362
- package/dist/vocaloidBooth/web/index.mjs.map +0 -1
- /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
- /package/dist/{analytics → common/analytics}/index.js.map +0 -0
- /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
- /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
- /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
- /package/dist/{api → common/api}/index.js.map +0 -0
- /package/dist/{api → common/api}/index.mjs.map +0 -0
- /package/dist/{auth/client → common/components}/index.js.map +0 -0
- /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
- /package/dist/{auth/components → common/config}/index.js.map +0 -0
- /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
- /package/dist/{config → common/config}/server/index.d.mts +0 -0
- /package/dist/{config → common/config}/server/index.d.ts +0 -0
- /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
- /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
- /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
- /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
- /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
- /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
- /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
- /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
- /package/dist/{config → common/universalExport}/index.js.map +0 -0
- /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
- /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
- /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
- /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
- /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/logger/console-adapter.ts","../../src/logger/Logger.ts","../../src/utils/cn.ts","../../src/components/Button.tsx","../../src/components/Card.tsx","../../src/components/Badge.tsx","../../src/components/Input.tsx","../../src/components/Label.tsx","../../src/components/internal/ui-core.tsx","../../src/components/Tabs.tsx","../../src/components/Dialog.tsx","../../src/components/AlertDialog.tsx","../../src/components/DropdownMenu.tsx","../../src/components/Popover.tsx","../../src/components/Progress.tsx","../../src/components/ScrollArea.tsx","../../src/components/Select.tsx","../../src/components/Separator.tsx","../../src/components/Sheet.tsx","../../src/components/Textarea.tsx","../../src/components/Tooltip.tsx","../../src/components/Avatar.tsx","../../src/components/Grid.tsx","../../src/components/SearchBox.tsx","../../src/components/Timeline.tsx","../../src/components/CollisionBalls.tsx","../../src/components/GenericOrderManager.tsx","../../src/components/BackButton.tsx","../../src/components/FilterButtonGroup.tsx","../../src/components/SearchResultHint.tsx","../../src/components/PopWindow.tsx","../../src/components/ImageMappingPanel.tsx","../../src/storage/hooks/useStorage.ts","../../src/storage/adapters/web-adapter.ts","../../src/storage/hooks/useLocalStorage.ts","../../src/components/LocalImageMappingPanel.tsx"],"names":["React","React2","cva","React3","React4","React5","React6","React7","React8","React9","React11","React12","React13","React14","Check","React15","React16","X","React17","React18","React19","clsx","useRef","useState","useEffect","draggedBall","width","height","mousePos","useCallback","ChevronUp","ChevronDown"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { LoggerAdapter, LogEntry, LogLevel } from './types';\n\n/**\n * 控制台日志适配器\n * 使用 console.info/warn/error 输出日志\n */\nexport class ConsoleLoggerAdapter implements LoggerAdapter {\n private readonly colors = {\n DEBUG: '\\x1b[36m', // Cyan\n INFO: '\\x1b[32m', // Green\n WARN: '\\x1b[33m', // Yellow\n ERROR: '\\x1b[31m', // Red\n RESET: '\\x1b[0m',\n };\n\n log(entry: LogEntry): void {\n const { level, message, timestamp, data, context, error } = entry;\n\n // 构建日志消息\n let logMessage = '';\n\n // 添加时间戳\n if (timestamp) {\n logMessage += '[' + (this.formatTimestamp(timestamp)) + '] ';\n }\n\n // 添加日志级别\n const levelName = this.getLevelName(level);\n logMessage += (levelName) + ': ';\n\n // 添加上下文\n if (context) {\n logMessage += '[' + (context) + '] ';\n }\n\n // 添加消息\n logMessage += message;\n\n // 根据日志级别选择输出方式\n switch (level) {\n case 0: // DEBUG\n console.debug(this.colorize(logMessage, 'DEBUG'), data || '');\n break;\n case 1: // INFO\n console.info(this.colorize(logMessage, 'INFO'), data || '');\n break;\n case 2: // WARN\n console.warn(this.colorize(logMessage, 'WARN'), data || '');\n break;\n case 3: // ERROR\n console.error(this.colorize(logMessage, 'ERROR'), data || '');\n if (error) {\n console.error(error);\n }\n break;\n }\n }\n\n private formatTimestamp(date: Date): string {\n return date.toISOString();\n }\n\n private getLevelName(level: LogLevel): string {\n const names = ['DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE'];\n return names[level] || 'UNKNOWN';\n }\n\n private colorize(message: string, level: keyof typeof this.colors): string {\n // 只在支持颜色的环境中使用颜色\n if (typeof process !== 'undefined' && process.stdout?.isTTY) {\n return (this.colors[level]) + (message) + (this.colors.RESET);\n }\n return message;\n }\n}\n\n","import type { LogLevel, LogEntry, LoggerConfig, LoggerAdapter } from './types';\nimport { ConsoleLoggerAdapter } from './console-adapter';\n\n/**\n * 统一日志管理类\n */\nexport class Logger {\n private config: Required<LoggerConfig>;\n private adapter: LoggerAdapter;\n private context?: string;\n\n constructor(config?: Partial<LoggerConfig>, context?: string) {\n const isProduction =\n typeof process !== 'undefined' ? process.env.NODE_ENV === 'production' : false;\n\n this.config = {\n minLevel: config?.minLevel ?? (isProduction ? 1 : 0), // INFO in prod, DEBUG in dev\n enableTimestamp: config?.enableTimestamp ?? true,\n enableContext: config?.enableContext ?? true,\n environment: config?.environment ?? (isProduction ? 'production' : 'development'),\n adapter: config?.adapter ?? new ConsoleLoggerAdapter(),\n };\n this.adapter = this.config.adapter;\n this.context = context;\n }\n\n /**\n * 创建带上下文的子 Logger\n */\n createChild(context: string): Logger {\n return new Logger(this.config, context);\n }\n\n /**\n * 调试日志\n */\n debug(message: string, data?: any): void {\n this.log(0, message, data); // LogLevel.DEBUG\n }\n\n /**\n * 信息日志\n */\n info(message: string, data?: any): void {\n this.log(1, message, data); // LogLevel.INFO\n }\n\n /**\n * 警告日志\n */\n warn(message: string, data?: any): void {\n this.log(2, message, data); // LogLevel.WARN\n }\n\n /**\n * 错误日志\n */\n error(message: string, error?: Error | any): void {\n this.log(\n 3, // LogLevel.ERROR\n message,\n error instanceof Error ? undefined : error,\n error instanceof Error ? error : undefined\n );\n }\n\n /**\n * 核心日志方法\n */\n private log(level: LogLevel, message: string, data?: any, error?: Error): void {\n // 检查日志级别\n if (level < this.config.minLevel) {\n return;\n }\n\n // 检查动态调试配置(仅在浏览器环境)\n if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {\n const loggerDebug = localStorage.getItem('logger-debug');\n // 如果明确设置为 false,则不输出(但 Error 级别始终输出)\n if (loggerDebug === 'false' && level < 3) {\n // level < ERROR\n return;\n }\n }\n\n const entry: LogEntry = {\n level,\n message,\n timestamp: this.config.enableTimestamp ? new Date() : (undefined as any),\n data,\n context: this.config.enableContext ? this.context : undefined,\n error,\n };\n\n this.adapter.log(entry);\n }\n\n /**\n * 设置日志级别\n */\n setLevel(level: LogLevel): void {\n this.config.minLevel = level;\n }\n\n /**\n * 获取当前日志级别\n */\n getLevel(): LogLevel {\n return this.config.minLevel;\n }\n}\n\n/**\n * 默认全局 Logger 实例\n */\nexport const logger = new Logger();\n\n/**\n * 创建带上下文的 Logger\n */\nexport function createLogger(context: string, config?: Partial<LoggerConfig>): Logger {\n return new Logger(config, context);\n}\n\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n","import * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\n size?: 'default' | 'sm' | 'lg' | 'icon';\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'default', size = 'default', asChild = false, children, ...props }, ref) => {\n if (asChild && React.isValidElement(children)) {\n const childProps = children.props as { className?: string }\n return React.cloneElement(children, {\n ...(props as object),\n className: cn(buttonVariants({ variant, size, className }), childProps.className),\n })\n }\n\n return (\n <button\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...(props as any)}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...(props as any)}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...(props as any)}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...(props as any)}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...(props as any)} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...(props as any)}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...(props as any)} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...(props as any)}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(labelVariants(), className)}\n {...(props as any)}\n />\n))\nLabel.displayName = \"Label\"\n\nexport { Label }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nexport function useControllableState<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T;\n defaultValue: T;\n onChange?: (next: T) => void;\n}) {\n const [internal, setInternal] = React.useState<T>(defaultValue);\n const isControlled = value !== undefined;\n const state = isControlled ? (value as T) : internal;\n\n const setState = React.useCallback(\n (next: T) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n return [state, setState] as const;\n}\n\nexport function Portal({\n children,\n container,\n}: {\n children: React.ReactNode;\n container?: Element | null;\n}) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) return null;\n return createPortal(children, container ?? document.body);\n}\n\nexport function useOnClickOutside(\n refs: Array<React.RefObject<HTMLElement | null>>,\n handler: (event: MouseEvent | TouchEvent) => void,\n enabled: boolean\n) {\n React.useEffect(() => {\n if (!enabled) return;\n\n const listener = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node;\n const clickedInside = refs.some((ref) => {\n const el = ref.current;\n return el && el.contains(target);\n });\n if (!clickedInside) {\n handler(event);\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [refs, handler, enabled]);\n}\n\nexport function mergeRefs<T>(\n ...refs: Array<React.Ref<T> | undefined>\n): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n };\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { useControllableState } from \"./internal/ui-core\"\n\ninterface TabsContextValue {\n value: string\n setValue: (next: string) => void\n}\n\nconst TabsContext = React.createContext<TabsContextValue | null>(null)\n\ninterface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n}\n\nconst Tabs = ({\n value,\n defaultValue = \"\",\n onValueChange,\n className,\n ...props\n}: TabsProps) => {\n const [current, setCurrent] = useControllableState({\n value,\n defaultValue,\n onChange: onValueChange,\n })\n\n return (\n <TabsContext.Provider value={{ value: current, setValue: setCurrent }}>\n <div className={className} {...(props as any)} />\n </TabsContext.Provider>\n )\n}\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...(props as any)}\n />\n))\nTabsList.displayName = \"TabsList\"\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n}\n\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, onClick, ...props }, ref) => {\n const ctx = React.useContext(TabsContext)\n const active = ctx?.value === value\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-state={active ? \"active\" : \"inactive\"}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active && \"bg-background text-foreground shadow\",\n className\n )}\n onClick={(e) => {\n ctx?.setValue(value)\n onClick?.(e)\n }}\n {...(props as any)}\n />\n )\n }\n)\nTabsTrigger.displayName = \"TabsTrigger\"\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n forceMount?: boolean\n}\n\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, forceMount = false, ...props }, ref) => {\n const ctx = React.useContext(TabsContext)\n const active = ctx?.value === value\n if (!active && !forceMount) return null\n\n return (\n <div\n ref={ref}\n data-state={active ? \"active\" : \"inactive\"}\n hidden={!active && forceMount}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...(props as any)}\n />\n )\n }\n)\nTabsContent.displayName = \"TabsContent\"\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface DialogContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nconst DialogContext = React.createContext<DialogContextValue | null>(null)\n\ninterface DialogProps {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst Dialog = ({ open, defaultOpen = false, onOpenChange, children }: DialogProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <DialogContext.Provider value={{ open: isOpen, setOpen: setIsOpen, triggerRef, contentRef }}>\n {children}\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean\n children: React.ReactNode\n}\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, TriggerProps>(\n ({ children, onClick, ...props }, ref) => {\n const ctx = React.useContext(DialogContext)\n if (!ctx) return null\n\n const mergedRef = mergeRefs<HTMLButtonElement>(ctx.triggerRef, ref)\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(true)\n onClick?.(e)\n }\n\n return (\n <button ref={mergedRef} type=\"button\" onClick={handleClick} {...(props as any)}>\n {children}\n </button>\n )\n }\n)\nDialogTrigger.displayName = \"DialogTrigger\"\n\nconst DialogPortal = ({ children }: { children: React.ReactNode }) => {\n const ctx = React.useContext(DialogContext)\n if (!ctx?.open) return null\n return <Portal>{children}</Portal>\n}\n\nconst DialogClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ onClick, ...props }, ref) => {\n const ctx = React.useContext(DialogContext)\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={(e) => {\n ctx?.setOpen(false)\n onClick?.(e)\n }}\n {...(props as any)}\n />\n )\n})\nDialogClose.displayName = \"DialogClose\"\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const ctx = React.useContext(DialogContext)\n if (!ctx?.open) return null\n return (\n <div\n ref={ref}\n className={cn(\"fixed inset-0 z-[9999] bg-black/80\", className)}\n {...(props as any)}\n />\n )\n})\nDialogOverlay.displayName = \"DialogOverlay\"\n\nexport interface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onPointerDownOutside?: (event: PointerEvent) => void\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n showCloseButton?: boolean\n overlayClassName?: string\n}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, onPointerDownOutside, onEscapeKeyDown, showCloseButton = true, overlayClassName, ...props }, ref) => {\n const ctx = React.useContext(DialogContext)\n const open = !!ctx?.open\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n (evt) => {\n onPointerDownOutside?.(evt as PointerEvent)\n if (!(evt as Event).defaultPrevented) {\n ctx?.setOpen(false)\n }\n },\n open\n )\n\n React.useEffect(() => {\n if (!open) return\n const onKey = (e: KeyboardEvent) => {\n if (e.key !== \"Escape\") return\n onEscapeKeyDown?.(e)\n if (!e.defaultPrevented) {\n ctx?.setOpen(false)\n }\n }\n document.addEventListener(\"keydown\", onKey)\n return () => document.removeEventListener(\"keydown\", onKey)\n }, [ctx, onEscapeKeyDown, open])\n\n if (!ctx || !open) return null\n\n return (\n <DialogPortal>\n <DialogOverlay className={overlayClassName} />\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"fixed left-[50%] top-[50%] z-[10000] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg sm:rounded-lg\",\n className\n )}\n {...(props as any)}\n >\n {children}\n {showCloseButton ? (\n <DialogClose className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogClose>\n ) : null}\n </div>\n </DialogPortal>\n )\n }\n)\nDialogContent.displayName = \"DialogContent\"\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...(props as any)}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...(props as any)}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...(props as any)}\n />\n))\nDialogTitle.displayName = \"DialogTitle\"\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...(props as any)}\n />\n))\nDialogDescription.displayName = \"DialogDescription\"\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { buttonVariants } from \"./Button\"\nimport {\n Dialog as AlertDialog,\n DialogPortal as AlertDialogPortal,\n DialogOverlay as AlertDialogOverlay,\n DialogTrigger as AlertDialogTrigger,\n DialogContent as AlertDialogContentBase,\n DialogHeader as AlertDialogHeader,\n DialogFooter as AlertDialogFooter,\n DialogTitle as AlertDialogTitle,\n DialogDescription as AlertDialogDescription,\n DialogClose,\n} from \"./Dialog\"\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof AlertDialogContentBase>\n>(({ className, ...props }, ref) => (\n <AlertDialogContentBase\n ref={ref}\n className={cn(\"z-[9999]\", className)}\n {...(props as any)}\n />\n))\nAlertDialogContent.displayName = \"AlertDialogContent\"\n\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <DialogClose\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...(props as any)}\n />\n))\nAlertDialogAction.displayName = \"AlertDialogAction\"\n\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <DialogClose\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...(props as any)}\n />\n))\nAlertDialogCancel.displayName = \"AlertDialogCancel\"\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface DropdownMenuContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nconst DropdownMenuContext = React.createContext<DropdownMenuContextValue | null>(null)\nconst DropdownMenuRadioGroupContext = React.createContext<{\n value?: string\n onValueChange?: (value: string) => void\n} | null>(null)\n\ninterface DropdownMenuProps {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst DropdownMenu = ({ open, defaultOpen = false, onOpenChange, children }: DropdownMenuProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <DropdownMenuContext.Provider value={{ open: isOpen, setOpen: setIsOpen, triggerRef, contentRef }}>\n {children}\n </DropdownMenuContext.Provider>\n )\n}\n\nconst DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean; children: React.ReactNode }\n>(({ children, onClick, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n if (!ctx) return null\n\n const mergedRef = mergeRefs<HTMLButtonElement>(ctx.triggerRef, ref)\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }\n\n return (\n <button ref={mergedRef} type=\"button\" onClick={handleClick} {...(props as any)}>\n {children}\n </button>\n )\n})\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\"\n\nconst DropdownMenuGroup = ({ children }: { children: React.ReactNode }) => <>{children}</>\nconst DropdownMenuPortal = ({ children }: { children: React.ReactNode }) => <Portal>{children}</Portal>\nconst DropdownMenuSub = ({ children }: { children: React.ReactNode }) => <>{children}</>\n\nconst DropdownMenuContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { sideOffset?: number }\n>(({ className, sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({ top: rect.bottom + sideOffset, left: rect.left })\n }, [trigger, sideOffset])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <DropdownMenuPortal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n className\n )}\n style={{ position: \"fixed\", top: pos.top, left: pos.left, ...style }}\n {...(props as any)}\n />\n </DropdownMenuPortal>\n )\n})\nDropdownMenuContent.displayName = \"DropdownMenuContent\"\n\ntype SelectEventLike = Event & { preventDefault: () => void; defaultPrevented: boolean }\n\nconst DropdownMenuItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n inset?: boolean\n onSelect?: (event: SelectEventLike) => void\n }\n>(({ className, inset, onSelect, onClick, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n onClick={(e) => {\n onSelect?.(e.nativeEvent as SelectEventLike)\n onClick?.(e)\n if (!e.isDefaultPrevented()) {\n ctx?.setOpen(false)\n }\n }}\n {...(props as any)}\n />\n )\n})\nDropdownMenuItem.displayName = \"DropdownMenuItem\"\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n checked?: boolean\n onCheckedChange?: (checked: boolean) => void\n }\n>(({ className, children, checked = false, onCheckedChange, onClick, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n onCheckedChange?.(!checked)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {checked ? <Check className=\"h-4 w-4\" /> : null}\n </span>\n {children}\n </button>\n))\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\"\n\nconst DropdownMenuRadioGroup = ({\n value,\n onValueChange,\n children,\n}: {\n value?: string\n onValueChange?: (value: string) => void\n children: React.ReactNode\n}) => (\n <DropdownMenuRadioGroupContext.Provider value={{ value, onValueChange }}>\n {children}\n </DropdownMenuRadioGroupContext.Provider>\n)\n\nconst DropdownMenuRadioItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { value: string }\n>(({ className, children, value, onClick, ...props }, ref) => {\n const radioCtx = React.useContext(DropdownMenuRadioGroupContext)\n const menuCtx = React.useContext(DropdownMenuContext)\n const checked = radioCtx?.value === value\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n radioCtx?.onValueChange?.(value)\n onClick?.(e)\n menuCtx?.setOpen(false)\n }}\n {...(props as any)}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {checked ? <Circle className=\"h-2 w-2 fill-current\" /> : null}\n </span>\n {children}\n </button>\n )\n})\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\"\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className)}\n {...(props as any)}\n />\n))\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\"\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...(props as any)}\n />\n))\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\"\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...(props as any)}\n />\n)\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent\",\n inset && \"pl-8\",\n className\n )}\n {...(props as any)}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </button>\n))\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\"\n\nconst DropdownMenuSubContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg\",\n className\n )}\n {...(props as any)}\n />\n))\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface PopoverContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n anchorRef: React.RefObject<HTMLSpanElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nconst PopoverContext = React.createContext<PopoverContextValue | null>(null)\n\ninterface PopoverProps {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst Popover = ({ open, defaultOpen = false, onOpenChange, children }: PopoverProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const anchorRef = React.useRef<HTMLSpanElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PopoverContext.Provider value={{ open: isOpen, setOpen: setIsOpen, triggerRef, anchorRef, contentRef }}>\n {children}\n </PopoverContext.Provider>\n )\n}\n\ninterface PopoverTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean\n children: React.ReactNode\n}\n\nconst PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ children, onClick, ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n if (!ctx) return null\n\n const mergedRef = mergeRefs<HTMLButtonElement>(ctx.triggerRef, ref)\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }\n\n return (\n <button ref={mergedRef} type=\"button\" onClick={handleClick} {...(props as any)}>\n {children}\n </button>\n )\n }\n)\nPopoverTrigger.displayName = \"PopoverTrigger\"\n\nconst PopoverAnchor = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n if (!ctx) return null\n\n return (\n <span ref={mergeRefs(ctx.anchorRef, ref)} {...(props as any)} />\n )\n }\n)\nPopoverAnchor.displayName = \"PopoverAnchor\"\n\ninterface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n}\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ className, align = \"center\", sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n const [position, setPosition] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const anchor = ctx?.anchorRef.current ?? ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!anchor) return\n const rect = anchor.getBoundingClientRect()\n let left = rect.left + rect.width / 2\n if (align === \"start\") left = rect.left\n if (align === \"end\") left = rect.right\n setPosition({ top: rect.bottom + sideOffset, left })\n }, [anchor, align, sideOffset])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open) return null\n\n return (\n <Portal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none\",\n className\n )}\n style={{\n position: \"fixed\",\n top: position.top,\n left: position.left,\n transform: align === \"center\" ? \"translateX(-50%)\" : align === \"end\" ? \"translateX(-100%)\" : undefined,\n ...style,\n }}\n {...(props as any)}\n />\n </Portal>\n )\n }\n)\nPopoverContent.displayName = \"PopoverContent\"\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: number\n max?: number\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const safeMax = max <= 0 ? 100 : max\n const safeValue = Math.max(0, Math.min(value, safeMax))\n const percent = (safeValue / safeMax) * 100\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={safeValue}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-primary/20\",\n className\n )}\n {...(props as any)}\n >\n <div\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - percent}%)` }}\n />\n </div>\n )\n }\n)\nProgress.displayName = \"Progress\"\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"relative overflow-auto\", className)}\n {...(props as any)}\n >\n {children}\n </div>\n))\nScrollArea.displayName = \"ScrollArea\"\n\ninterface ScrollBarProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"vertical\" | \"horizontal\"\n}\n\nconst ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, orientation = \"vertical\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"pointer-events-none absolute\",\n orientation === \"vertical\"\n ? \"right-0 top-0 h-full w-2.5\"\n : \"bottom-0 left-0 h-2.5 w-full\",\n className\n )}\n {...(props as any)}\n />\n )\n)\nScrollBar.displayName = \"ScrollBar\"\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface SelectContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n value?: string\n setValue: (value: string) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n contentRef: React.RefObject<HTMLDivElement>\n itemsRef: React.MutableRefObject<Map<string, React.ReactNode>>\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null)\nconst SelectGroupContext = React.createContext<boolean>(false)\n\ninterface SelectProps {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n disabled?: boolean\n children: React.ReactNode\n}\n\nconst Select = ({\n value,\n defaultValue,\n onValueChange,\n open,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n children,\n}: SelectProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [currentValue, setCurrentValue] = useControllableState<string | undefined>({\n value,\n defaultValue,\n onChange: (next) => {\n if (next !== undefined) {\n onValueChange?.(next)\n }\n },\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n const itemsRef = React.useRef<Map<string, React.ReactNode>>(new Map())\n\n return (\n <SelectContext.Provider\n value={{\n open: disabled ? false : isOpen,\n setOpen: disabled ? () => undefined : setIsOpen,\n value: currentValue,\n setValue: (next) => {\n if (disabled) return\n setCurrentValue(next)\n setIsOpen(false)\n },\n triggerRef,\n contentRef,\n itemsRef,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nconst SelectGroup = ({ children }: { children: React.ReactNode }) => (\n <SelectGroupContext.Provider value={true}>{children}</SelectGroupContext.Provider>\n)\n\nconst SelectValue = ({\n placeholder,\n children,\n}: {\n placeholder?: React.ReactNode\n children?: React.ReactNode\n}) => {\n const ctx = React.useContext(SelectContext)\n if (!ctx) return null\n if (children) return <>{children}</>\n if (ctx.value && ctx.itemsRef.current.has(ctx.value)) {\n return <>{ctx.itemsRef.current.get(ctx.value)}</>\n }\n return <span className=\"text-muted-foreground\">{placeholder}</span>\n}\n\nconst SelectTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n if (!ctx) return null\n\n return (\n <button\n ref={mergeRefs(ctx.triggerRef, ref)}\n type=\"button\"\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n onClick={(e) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span>{children}</span>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </button>\n )\n})\nSelectTrigger.displayName = \"SelectTrigger\"\n\nconst SelectScrollUpButton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...(props as any)}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </div>\n))\nSelectScrollUpButton.displayName = \"SelectScrollUpButton\"\n\nconst SelectScrollDownButton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...(props as any)}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </div>\n))\nSelectScrollDownButton.displayName = \"SelectScrollDownButton\"\n\nconst SelectContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n position?: \"item-aligned\" | \"popper\"\n }\n>(({ className, children, style, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0, width: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({ top: rect.bottom + 4, left: rect.left, width: rect.width })\n }, [trigger])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <Portal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"relative z-50 max-h-80 overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md\",\n className\n )}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n minWidth: Math.max(pos.width, 128),\n ...style,\n }}\n {...(props as any)}\n >\n <div className=\"p-1\">{children}</div>\n </div>\n </Portal>\n )\n})\nSelectContent.displayName = \"SelectContent\"\n\nconst SelectLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...(props as any)}\n />\n))\nSelectLabel.displayName = \"SelectLabel\"\n\ninterface SelectItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n}\n\nconst SelectItem = React.forwardRef<HTMLButtonElement, SelectItemProps>(\n ({ className, children, value, onClick, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n\n React.useEffect(() => {\n if (!ctx) return\n ctx.itemsRef.current.set(value, children)\n return () => {\n ctx.itemsRef.current.delete(value)\n }\n }, [ctx, value, children])\n\n if (!ctx) return null\n\n const selected = ctx.value === value\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n ctx.setValue(value)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n {selected ? <Check className=\"h-4 w-4\" /> : null}\n </span>\n <span>{children}</span>\n </button>\n )\n }\n)\nSelectItem.displayName = \"SelectItem\"\n\nconst SelectSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...(props as any)}\n />\n))\nSelectSeparator.displayName = \"SelectSeparator\"\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\"\n decorative?: boolean\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <div\n ref={ref}\n role={decorative ? undefined : \"separator\"}\n aria-orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...(props as any)}\n />\n )\n)\nSeparator.displayName = \"Separator\"\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport {\n Dialog as Sheet,\n DialogTrigger as SheetTrigger,\n DialogClose as SheetClose,\n DialogPortal as SheetPortal,\n DialogOverlay as SheetOverlay,\n DialogContent as BaseDialogContent,\n} from \"./Dialog\"\n\nconst sheetVariants = cva(\n \"fixed z-[10000] gap-4 bg-background p-6 shadow-lg transition ease-in-out translate-x-0 translate-y-0\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 left-0 border-b\",\n bottom: \"inset-x-0 bottom-0 left-0 border-t\",\n left: \"inset-y-0 left-0 top-0 h-full w-3/4 border-r sm:max-w-sm\",\n right: \"inset-y-0 right-0 top-0 h-full w-3/4 border-l sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends Omit<React.ComponentPropsWithoutRef<typeof BaseDialogContent>, \"children\">,\n VariantProps<typeof sheetVariants> {\n children?: React.ReactNode\n}\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ side = \"right\", className, children, ...props }, ref) => (\n <BaseDialogContent\n ref={ref}\n className={cn(\n \"max-w-none rounded-none\",\n sheetVariants({ side }),\n className\n )}\n showCloseButton={false}\n {...(props as any)}\n >\n <SheetClose className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetClose>\n {children}\n </BaseDialogContent>\n )\n)\nSheetContent.displayName = \"SheetContent\"\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...(props as any)}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...(props as any)}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...(props as any)}\n />\n))\nSheetTitle.displayName = \"SheetTitle\"\n\nconst SheetDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...(props as any)}\n />\n))\nSheetDescription.displayName = \"SheetDescription\"\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...(props as any)}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal } from \"./internal/ui-core\"\n\nconst TooltipConfigContext = React.createContext<{ delayDuration: number }>({\n delayDuration: 200,\n})\n\ninterface TooltipContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLSpanElement>\n}\n\nconst TooltipContext = React.createContext<TooltipContextValue | null>(null)\n\nconst TooltipProvider = ({\n children,\n delayDuration = 200,\n}: {\n children: React.ReactNode\n delayDuration?: number\n}) => {\n return (\n <TooltipConfigContext.Provider value={{ delayDuration }}>\n {children}\n </TooltipConfigContext.Provider>\n )\n}\n\nconst Tooltip = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = React.useState(false)\n const triggerRef = React.useRef<HTMLSpanElement>(null)\n return (\n <TooltipContext.Provider value={{ open, setOpen, triggerRef }}>\n {children}\n </TooltipContext.Provider>\n )\n}\n\nconst TooltipTrigger = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement> & { asChild?: boolean; children: React.ReactNode }\n>(({ children, ...props }, ref) => {\n const ctx = React.useContext(TooltipContext)\n const cfg = React.useContext(TooltipConfigContext)\n const timer = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n if (!ctx) return null\n\n const setRef = mergeRefs(ctx.triggerRef, ref)\n\n const openWithDelay = () => {\n if (timer.current) clearTimeout(timer.current)\n timer.current = setTimeout(() => ctx.setOpen(true), cfg.delayDuration)\n }\n\n const closeNow = () => {\n if (timer.current) clearTimeout(timer.current)\n ctx.setOpen(false)\n }\n\n const shared = {\n onMouseEnter: openWithDelay,\n onMouseLeave: closeNow,\n onFocus: openWithDelay,\n onBlur: closeNow,\n ...props,\n }\n\n return (\n <span ref={setRef} {...(shared as any)}>\n {children}\n </span>\n )\n})\nTooltipTrigger.displayName = \"TooltipTrigger\"\n\nconst TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { sideOffset?: number }\n>(({ className, sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(TooltipContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({\n top: rect.top - sideOffset,\n left: rect.left + rect.width / 2,\n })\n }, [trigger, sideOffset])\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <Portal>\n <div\n ref={ref}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground\",\n className\n )}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n transform: \"translate(-50%, -100%)\",\n ...style,\n }}\n {...(props as any)}\n />\n </Portal>\n )\n})\nTooltipContent.displayName = \"TooltipContent\"\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\ntype AvatarStatus = \"idle\" | \"loaded\" | \"error\"\n\nconst AvatarContext = React.createContext<{\n status: AvatarStatus\n setStatus: (next: AvatarStatus) => void\n} | null>(null)\n\nconst Avatar = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const [status, setStatus] = React.useState<AvatarStatus>(\"idle\")\n\n return (\n <AvatarContext.Provider value={{ status, setStatus }}>\n <span\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...(props as any)}\n />\n </AvatarContext.Provider>\n )\n})\nAvatar.displayName = \"Avatar\"\n\nconst AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, onLoad, onError, ...props }, ref) => {\n const ctx = React.useContext(AvatarContext)\n\n return (\n <img\n ref={ref}\n className={cn(\n \"aspect-square h-full w-full\",\n ctx?.status === \"error\" ? \"hidden\" : undefined,\n className\n )}\n onLoad={(e) => {\n ctx?.setStatus(\"loaded\")\n onLoad?.(e)\n }}\n onError={(e) => {\n ctx?.setStatus(\"error\")\n onError?.(e)\n }}\n {...(props as any)}\n />\n )\n})\nAvatarImage.displayName = \"AvatarImage\"\n\nconst AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const ctx = React.useContext(AvatarContext)\n const show = ctx?.status !== \"loaded\"\n\n if (!show) return null\n\n return (\n <span\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...(props as any)}\n />\n )\n})\nAvatarFallback.displayName = \"AvatarFallback\"\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import React from 'react';\nimport { clsx } from 'clsx';\n\n// ==================== 公共类型定义 ====================\n\n/** 基础网格项接口 */\nexport interface GridItem {\n id: string;\n [key: string]: any; // 允许额外的属性\n }\n \n /** 网格列数配置 */\n export interface GridColumns {\n /** 小屏幕列数 (640px+) */\n sm?: number;\n /** 中等屏幕列数 (768px+) */\n md?: number;\n /** 大屏幕列数 (1024px+) */\n lg?: number;\n /** 超大屏幕列数 (1280px+) */\n xl?: number;\n }\n \n /** 网格间距类型 */\n export type GridGap = 'sm' | 'md' | 'lg' | 'xl';\n \n // ==================== 公共工具函数 ====================\n \n /** 构建网格列数类名 */\n export function buildGridColsClasses(columns: GridColumns): string {\n return [\n 'grid-cols-1', // 默认单列\n columns.sm ? 'sm:grid-cols-' + (columns.sm) : '',\n columns.md ? 'md:grid-cols-' + (columns.md) : 'md:grid-cols-2',\n columns.lg ? 'lg:grid-cols-' + (columns.lg) : 'lg:grid-cols-3',\n columns.xl ? 'xl:grid-cols-' + (columns.xl) : ''\n ].filter(Boolean).join(' ');\n }\n \n /** 获取间距类名 */\n export function getGapClassName(gap: GridGap): string {\n const gapClasses: Record<GridGap, string> = {\n sm: 'gap-3',\n md: 'gap-6',\n lg: 'gap-8',\n xl: 'gap-10'\n };\n return gapClasses[gap];\n }\n \n // ==================== 通用网格组件 ====================\n \n /** 通用网格组件 Props */\n export interface GridProps<T extends GridItem> {\n /** 数据项数组 */\n items: T[];\n /** 渲染函数 */\n renderItem: (item: T, index: number) => React.ReactNode;\n /** 网格列数配置 */\n columns?: GridColumns;\n /** 间距配置 */\n gap?: GridGap;\n /** 额外的容器类名 */\n className?: string;\n /** 容器样式 */\n style?: React.CSSProperties;\n }\n \n /** 通用网格组件 */\n export function Grid<T extends GridItem>({\n items,\n renderItem,\n columns = { md: 2, lg: 3 },\n gap = 'md',\n className = '',\n style\n }: GridProps<T>) {\n const gridColsClasses = buildGridColsClasses(columns);\n const gapClass = getGapClassName(gap);\n \n return (\n <div \n className={clsx('grid', gridColsClasses, gapClass, className)}\n style={style}\n >\n {items.map((item, index) => (\n <div key={item.id}>\n {renderItem(item, index)}\n </div>\n ))}\n </div>\n );\n }","import React from 'react';\nimport { clsx } from 'clsx';\n\ninterface SearchBoxProps {\n searchQuery: string;\n onSearchChange: (query: string) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const SearchBox: React.FC<SearchBoxProps> = ({ \n searchQuery, \n onSearchChange, \n placeholder = \"搜索实验项目的标题、描述或标签...\",\n size = 'large'\n}) => {\n // 根据尺寸获取样式\n const getSizeStyles = () => {\n switch (size) {\n case 'small':\n return {\n container: 'h-10',\n input: 'pl-10 pr-10 text-sm',\n icon: 'w-4 h-4',\n iconPosition: 'left-3',\n clearButton: 'right-2 w-6 h-6',\n clearIcon: 'w-3 h-3'\n };\n case 'medium':\n return {\n container: 'h-12',\n input: 'pl-12 pr-12 text-base',\n icon: 'w-5 h-5',\n iconPosition: 'left-3',\n clearButton: 'right-3 w-7 h-7',\n clearIcon: 'w-4 h-4'\n };\n case 'large':\n default:\n return {\n container: 'h-16',\n input: 'pl-6 pr-16 text-lg',\n icon: 'w-6 h-6',\n iconPosition: 'left-6',\n clearButton: 'right-4 w-8 h-8',\n clearIcon: 'w-4 h-4'\n };\n }\n };\n\n const styles = getSizeStyles();\n const isLarge = size === 'large';\n\n return (\n <div className=\"relative group w-full\">\n {/* 搜索输入框 */}\n <input\n type=\"text\"\n placeholder={placeholder}\n value={searchQuery}\n onChange={(e) => onSearchChange(e.target.value)}\n className={clsx(\n 'w-full',\n styles.container,\n styles.input,\n isLarge ? 'border-2 border-gray-200 rounded-2xl shadow-lg' : 'border border-gray-300 rounded-lg shadow-sm',\n 'bg-white focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 hover:border-gray-400',\n isLarge ? 'hover:shadow-xl' : 'hover:shadow-md',\n 'transition-all duration-300 ease-out text-gray-800 placeholder-gray-500',\n isLarge ? 'font-medium' : 'font-normal'\n )}\n />\n\n {/* 清除按钮 */}\n {searchQuery && (\n <button\n onClick={() => onSearchChange('')}\n className={clsx(\n 'absolute top-1/2',\n styles.clearButton,\n 'transform -translate-y-1/2 z-10 group/clear'\n )}\n >\n <div className={clsx(\n styles.clearButton,\n 'flex items-center justify-center rounded-full bg-gray-100 hover:bg-gray-200 transition-all duration-200 group-hover/clear:scale-105'\n )}>\n <svg \n className={clsx(styles.clearIcon, 'text-gray-500 group-hover/clear:text-gray-700')}\n fill=\"none\" \n stroke=\"currentColor\" \n viewBox=\"0 0 24 24\"\n >\n <path \n strokeLinecap=\"round\" \n strokeLinejoin=\"round\" \n strokeWidth={2} \n d=\"M6 18L18 6M6 6l12 12\" \n />\n </svg>\n </div>\n </button>\n )}\n </div>\n );\n}","'use client';\n\nimport React from 'react';\n\n// Timeline相关的类型定义\nexport interface TimelineItem {\n date: string;\n title: string;\n description: string;\n}\n\nexport interface TimelineConfig {\n items: TimelineItem[];\n}\n\ninterface TimelineProps {\n items?: TimelineItem[];\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ items = [] }) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <div className=\"relative\">\n {/* 时间线 */}\n <div className=\"absolute left-4 top-0 bottom-0 w-0.5 bg-gray-200\"></div>\n \n {/* 时间线项目 */}\n {items.map((item, index) => (\n <div key={index} className=\"relative pl-12 pb-8\">\n {/* 时间点 */}\n <div className=\"absolute left-0 w-8 h-8 rounded-full bg-blue-500 border-4 border-white shadow-md flex items-center justify-center\">\n <div className=\"w-2 h-2 rounded-full bg-white\"></div>\n </div>\n \n {/* 内容 */}\n <div className=\"bg-white rounded-lg p-4 shadow-md\">\n <div className=\"text-sm text-gray-500 mb-2\">{item.date}</div>\n <h4 className=\"text-lg font-semibold mb-2\">{item.title}</h4>\n <p className=\"text-gray-600\">{item.description}</p>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Timeline;\n","'use client';\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { clsx } from 'clsx';\n\n// CollisionBalls相关的类型定义\nexport interface Ball {\n x: number;\n y: number;\n vx: number;\n vy: number;\n radius: number;\n color: string;\n text?: string;\n isDragging?: boolean;\n}\n\nexport interface CollisionBallsConfig {\n balls: {\n id: string;\n label: string;\n color: string;\n size: number;\n }[];\n width: number;\n height: number;\n}\n\ninterface CollisionBallsProps {\n collisionBallsConfig: CollisionBallsConfig;\n}\n\nexport const CollisionBalls: React.FC<CollisionBallsProps> = ({\n collisionBallsConfig: {\n balls,\n width,\n height\n },\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const ballsRef = useRef<Ball[]>([]);\n const [isShaking, setIsShaking] = useState(false);\n const [draggedBall, setDraggedBall] = useState<Ball | null>(null);\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\n const animationRef = useRef<number | null>(null);\n\n // 更新canvas尺寸\n const updateCanvasSize = () => {\n const container = containerRef.current;\n const canvas = canvasRef.current;\n if (!container || !canvas) {\n console.error('Container or canvas not found');\n return;\n }\n\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n \n console.log('Container size:', { containerWidth, containerHeight });\n \n // 设置canvas的实际尺寸\n canvas.width = containerWidth;\n canvas.height = containerHeight;\n \n // 设置canvas的显示尺寸\n canvas.style.width = (containerWidth) + 'px';\n canvas.style.height = (containerHeight) + 'px';\n \n console.log('Canvas size updated:', {\n width: canvas.width,\n height: canvas.height,\n containerWidth,\n containerHeight\n });\n };\n\n // 初始化小球\n const initBalls = () => {\n const canvas = canvasRef.current;\n if (!canvas) {\n console.error('Canvas not found during ball initialization');\n return [];\n }\n\n console.log('Initializing balls with canvas size:', {\n width: canvas.width,\n height: canvas.height\n });\n\n return balls.map((ballConfig) => ({\n x: Math.random() * (canvas.width - 100) + 50,\n y: Math.random() * (canvas.height - 100) + 50,\n vx: (Math.random() - 0.5) * 4,\n vy: (Math.random() - 0.5) * 4,\n radius: ballConfig.size,\n color: ballConfig.color,\n text: ballConfig.label,\n isDragging: false\n }));\n };\n\n // 添加resize监听\n useEffect(() => {\n const handleResize = () => {\n console.log('Window resized');\n updateCanvasSize();\n };\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', handleResize);\n // 初始设置尺寸\n updateCanvasSize();\n }\n\n return () => {\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', handleResize);\n }\n };\n }, []);\n\n // 动画循环\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) {\n console.error('Canvas element not found');\n return;\n }\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n console.error('Failed to get canvas context');\n return;\n }\n\n console.log('Starting animation setup...');\n \n // 确保canvas尺寸已更新\n updateCanvasSize();\n \n // 初始化小球\n ballsRef.current = initBalls();\n console.log('Balls initialized:', ballsRef.current);\n\n let lastTime = performance.now();\n let frameCount = 0;\n\n const animate = (currentTime: number) => {\n try {\n // 计算帧率\n frameCount++;\n if (currentTime - lastTime >= 1000) {\n console.log('FPS: ' + (frameCount));\n frameCount = 0;\n lastTime = currentTime;\n }\n\n // 清除画布\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n // 更新和绘制每个小球\n ballsRef.current.forEach((ball) => {\n if (!ball.isDragging) {\n updatePosition(ball, canvas.width, canvas.height);\n }\n\n for (let i = 0; i < ballsRef.current.length; i++) {\n for (let j = i + 1; j < ballsRef.current.length; j++) {\n const ball1 = ballsRef.current[i];\n const ball2 = ballsRef.current[j];\n if (ball1 && ball2) {\n checkCollision(ball1, ball2);\n }\n }\n }\n\n draw(ctx, ball);\n });\n\n // 继续动画循环\n animationRef.current = requestAnimationFrame(animate);\n } catch (error) {\n console.error('Animation error:', error);\n }\n };\n\n // 启动动画\n console.log('Starting animation loop...');\n animationRef.current = requestAnimationFrame(animate);\n\n // 清理函数\n return () => {\n console.log('Cleaning up animation...');\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n animationRef.current = null;\n }\n };\n }, []);\n\n const shake = () => {\n setIsShaking(true);\n ballsRef.current.forEach((ball) => {\n ball.vx = (Math.random() - 0.5) * 10;\n ball.vy = (Math.random() - 0.5) * 10;\n });\n setTimeout(() => setIsShaking(false), 200);\n };\n\n const slowdown = () => {\n setIsShaking(true);\n ballsRef.current.forEach((ball) => {\n ball.vx = ball.vx * 0.5;\n ball.vy = ball.vy * 0.5;\n });\n setTimeout(() => setIsShaking(false), 200);\n };\n\n const checkCollision = (ball1: Ball, ball2: Ball) => {\n const dx = ball2.x - ball1.x;\n const dy = ball2.y - ball1.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n if (distance < ball1.radius + ball2.radius) {\n const angle = Math.atan2(dy, dx);\n const overlap = (ball1.radius + ball2.radius - distance) / 2;\n\n if (ball1.isDragging || ball2.isDragging) {\n const draggedBall = ball1.isDragging ? ball1 : ball2;\n const otherBall = ball1.isDragging ? ball2 : ball1;\n\n otherBall.x += (draggedBall === ball1 ? 1 : -1) * overlap * Math.cos(angle);\n otherBall.y += (draggedBall === ball1 ? 1 : -1) * overlap * Math.sin(angle);\n\n const pushForce = 2;\n otherBall.vx = (draggedBall === ball1 ? -1 : 1) * Math.cos(angle) * pushForce;\n otherBall.vy = (draggedBall === ball1 ? -1 : 1) * Math.sin(angle) * pushForce;\n\n return;\n }\n\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n\n const vx1 = ball1.vx * cos + ball1.vy * sin;\n const vy1 = ball1.vy * cos - ball1.vx * sin;\n const vx2 = ball2.vx * cos + ball2.vy * sin;\n const vy2 = ball2.vy * cos - ball2.vx * sin;\n\n const newVx1 = vx2;\n const newVx2 = vx1;\n\n ball1.vx = newVx1 * cos - vy1 * sin;\n ball1.vy = vy1 * cos + newVx1 * sin;\n ball2.vx = newVx2 * cos - vy2 * sin;\n ball2.vy = vy2 * cos + newVx2 * sin;\n\n ball1.x -= overlap * Math.cos(angle);\n ball1.y -= overlap * Math.sin(angle);\n ball2.x += overlap * Math.cos(angle);\n ball2.y += overlap * Math.sin(angle);\n }\n };\n\n const updatePosition = (ball: Ball, width: number, height: number) => {\n const handleBoundaryCollision = (\n velocity: number,\n position: number,\n boundary: number,\n radius: number,\n ): [number, number] => {\n let newVelocity = velocity;\n let newPosition = position;\n\n if (position - radius < 0) {\n newPosition = radius;\n newVelocity = Math.abs(velocity);\n } else if (position + radius > boundary) {\n newPosition = boundary - radius;\n newVelocity = -Math.abs(velocity);\n }\n\n return [newVelocity, newPosition];\n };\n\n const [newVx, newX] = handleBoundaryCollision(\n ball.vx,\n ball.x,\n width,\n ball.radius,\n );\n const [newVy, newY] = handleBoundaryCollision(\n ball.vy,\n ball.y,\n height,\n ball.radius,\n );\n\n ball.vx = newVx;\n ball.vy = newVy;\n ball.x = newX;\n ball.y = newY;\n };\n\n const draw = (ctx: CanvasRenderingContext2D, ball: Ball) => {\n ctx.beginPath();\n ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2);\n ctx.fillStyle = ball.color;\n ctx.fill();\n ctx.closePath();\n\n if (ball.text) {\n ctx.font = \"14px Arial\";\n ctx.fillStyle = \"#fff\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(ball.text, ball.x, ball.y);\n }\n };\n\n const handleMouseDown = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const mousePos = getMousePos(event);\n const ball = ballsRef.current.find((b) => {\n const dx = b.x - mousePos.x;\n const dy = b.y - mousePos.y;\n return Math.sqrt(dx * dx + dy * dy) < b.radius;\n });\n\n if (ball) {\n ball.isDragging = true;\n setDraggedBall(ball);\n }\n };\n\n const handleMouseMove = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const mousePos = getMousePos(event);\n setMousePos(mousePos);\n\n if (draggedBall) {\n draggedBall.x = mousePos.x;\n draggedBall.y = mousePos.y;\n draggedBall.vx = 0;\n draggedBall.vy = 0;\n }\n };\n\n const handleMouseUp = () => {\n if (draggedBall) {\n draggedBall.isDragging = false;\n setDraggedBall(null);\n }\n };\n\n const getMousePos = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const canvas = canvasRef.current;\n if (!canvas) return { x: 0, y: 0 };\n\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n \n return {\n x: (event.clientX - rect.left) * scaleX,\n y: (event.clientY - rect.top) * scaleY\n };\n };\n\n return (\n <div style={{ width: '100%', height: '100%', position: 'relative', backgroundColor: '#f9fafb', borderRadius: '0.5rem' }}>\n <div ref={containerRef} style={{ width: '100%', height: '100%', position: 'absolute', top: 0, left: 0 }}>\n <canvas\n ref={canvasRef}\n style={{ \n width: '100%', \n height: '100%',\n display: 'block' // 确保canvas正确显示\n }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n />\n </div>\n <div className=\"absolute bottom-4 right-4 flex gap-2\">\n <button\n onClick={shake}\n className={clsx('px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors', isShaking ? \"animate-pulse\" : \"\")}\n >\n 摇一摇\n </button>\n <button\n onClick={slowdown}\n className={clsx('px-4 py-2 bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors', isShaking ? \"animate-pulse\" : \"\")}\n >\n 减速\n </button>\n </div>\n </div>\n );\n};\n\nexport default CollisionBalls;\n","'use client';\n\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { \n ChevronUp, \n ChevronDown, \n GripVertical, \n Save,\n RotateCcw,\n AlertCircle\n} from 'lucide-react';\nimport { cn } from '../utils';\n\nexport interface OrderableItem {\n id: number;\n [key: string]: any;\n}\n\nexport interface OrderManagerOperations<T extends OrderableItem> {\n loadItems: () => Promise<T[]>;\n moveItemUp: (id: number) => Promise<void>;\n moveItemDown: (id: number) => Promise<void>;\n updateItemOrder: (orders: { id: number; order: number }[]) => Promise<void>;\n}\n\nexport interface GenericOrderManagerProps<T extends OrderableItem> {\n operations: OrderManagerOperations<T>;\n renderItem: (item: T, index: number, isFirst: boolean, isLast: boolean) => React.ReactNode;\n className?: string;\n title?: string;\n description?: string;\n onOrderChanged?: () => void;\n emptyMessage?: string;\n loadingMessage?: string;\n}\n\nexport function GenericOrderManager<T extends OrderableItem>({\n operations,\n renderItem,\n className = '',\n title = '顺序管理',\n description = '拖拽或使用按钮调整显示顺序',\n onOrderChanged,\n emptyMessage = '暂无数据',\n loadingMessage = '加载数据...'\n}: GenericOrderManagerProps<T>) {\n const [items, setItems] = useState<T[]>([]);\n const [originalOrder, setOriginalOrder] = useState<T[]>([]);\n const [loading, setLoading] = useState(true);\n const [saving, setSaving] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [hasChanges, setHasChanges] = useState(false);\n const [draggedItem, setDraggedItem] = useState<number | null>(null);\n\n // 加载数据\n const loadItems = useCallback(async () => {\n try {\n setLoading(true);\n setError(null);\n \n const data = await operations.loadItems();\n \n setItems(data);\n setOriginalOrder([...data]);\n setHasChanges(false);\n } catch (err) {\n console.error('❌ [通用排序] 加载数据错误:', err);\n setError(err instanceof Error ? err.message : '加载数据失败');\n } finally {\n setLoading(false);\n }\n }, [operations]);\n\n useEffect(() => {\n loadItems();\n }, [loadItems]);\n\n // 检查是否有变更\n useEffect(() => {\n const hasOrderChanged = items.some((item, index) => \n originalOrder[index]?.id !== item.id\n );\n setHasChanges(hasOrderChanged);\n }, [items, originalOrder]);\n\n // 上移项目\n const handleMoveUp = async (itemId: number) => {\n try {\n setError(null);\n \n const currentIndex = items.findIndex(item => item.id === itemId);\n if (currentIndex === -1) {\n setError('项目不存在');\n return;\n }\n if (currentIndex === 0) {\n setError('项目已经在最前面,无法上移');\n return;\n }\n \n await operations.moveItemUp(itemId);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 上移项目错误:', err);\n setError(err instanceof Error ? err.message : '上移失败');\n }\n };\n\n // 下移项目\n const handleMoveDown = async (itemId: number) => {\n try {\n setError(null);\n \n const currentIndex = items.findIndex(item => item.id === itemId);\n if (currentIndex === -1) {\n setError('项目不存在');\n return;\n }\n if (currentIndex === items.length - 1) {\n setError('项目已经在最后面,无法下移');\n return;\n }\n \n await operations.moveItemDown(itemId);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 下移项目错误:', err);\n setError(err instanceof Error ? err.message : '下移失败');\n }\n };\n\n // 拖拽开始\n const handleDragStart = (e: React.DragEvent, index: number) => {\n setDraggedItem(index);\n e.dataTransfer.effectAllowed = 'move';\n };\n\n // 拖拽悬停\n const handleDragOver = (e: React.DragEvent, _index: number) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n };\n\n // 拖拽放置\n const handleDrop = async (e: React.DragEvent, dropIndex: number) => {\n e.preventDefault();\n \n if (draggedItem === null || draggedItem === dropIndex) {\n setDraggedItem(null);\n return;\n }\n\n try {\n setError(null);\n \n const newItems = [...items];\n const draggedItemData = newItems[draggedItem];\n if (!draggedItemData) return;\n \n newItems.splice(draggedItem, 1);\n newItems.splice(dropIndex, 0, draggedItemData);\n \n const itemOrders = newItems.map((item, index) => ({\n id: item.id,\n order: index,\n }));\n \n await operations.updateItemOrder(itemOrders);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 拖拽排序错误:', err);\n setError(err instanceof Error ? err.message : '排序失败');\n } finally {\n setDraggedItem(null);\n }\n };\n\n // 保存新顺序\n const handleSaveOrder = async () => {\n try {\n setSaving(true);\n setError(null);\n \n const itemOrders = items.map((item, index) => ({\n id: item.id,\n order: index,\n }));\n\n await operations.updateItemOrder(itemOrders);\n \n setOriginalOrder([...items]);\n setHasChanges(false);\n onOrderChanged?.();\n } catch (err) {\n console.error('❌ [通用排序] 保存顺序错误:', err);\n setError(err instanceof Error ? err.message : '保存失败');\n await loadItems();\n } finally {\n setSaving(false);\n }\n };\n\n // 重置顺序\n const handleResetOrder = () => {\n setItems([...originalOrder]);\n };\n\n if (loading) {\n return (\n <div className={cn(\"flex flex-col items-center justify-center p-12 text-gray-500\", className)}>\n <div className=\"w-6 h-6 border-2 border-gray-200 border-t-blue-500 rounded-full animate-spin mb-2\" />\n <span>{loadingMessage}</span>\n </div>\n );\n }\n\n return (\n <div className={cn(\"bg-white rounded-xl p-6 shadow-md border-2 border-gray-100\", className)}>\n <div className=\"flex items-center justify-between mb-4 pb-3 border-b border-gray-100 sm:flex-row flex-col sm:items-center items-start gap-4\">\n <h3 className=\"m-0 text-gray-900 text-lg font-semibold\">{title}</h3>\n <div className=\"flex gap-3 w-full sm:w-auto\">\n {hasChanges && (\n <>\n <button\n onClick={handleResetOrder}\n className=\"flex items-center gap-2 bg-amber-500 hover:bg-amber-600 text-white px-4 py-2 rounded-lg font-medium transition-colors\"\n title=\"重置为原始顺序\"\n >\n <RotateCcw size={16} />\n 重置\n </button>\n <button\n onClick={handleSaveOrder}\n disabled={saving}\n className=\"flex items-center gap-2 bg-blue-500 hover:bg-blue-600 disabled:opacity-50 disabled:cursor-not-allowed text-white px-4 py-2 rounded-lg font-medium transition-colors\"\n title=\"保存新顺序\"\n >\n <Save size={16} />\n {saving ? '保存中...' : '保存顺序'}\n </button>\n </>\n )}\n </div>\n </div>\n\n {error && (\n <div className=\"flex items-center gap-2 bg-red-50 text-red-600 p-3 rounded-lg mb-4 border border-red-200\">\n <AlertCircle size={16} />\n <span>{error}</span>\n </div>\n )}\n\n <div className=\"bg-slate-50 border border-slate-200 rounded-lg p-4 mb-6\">\n <p className=\"m-0 mb-2 color-slate-500 text-sm\">{description}</p>\n <ul className=\"m-0 pl-6 color-slate-500 text-sm list-disc\">\n <li className=\"mb-1\">使用拖拽:点击并拖动 <GripVertical size={14} className=\"inline-block align-middle text-gray-500\" /> 图标</li>\n <li className=\"mb-1\">使用按钮:点击 <ChevronUp size={14} className=\"inline-block align-middle text-gray-500\" /> 或 <ChevronDown size={14} className=\"inline-block align-middle text-gray-500\" /> 按钮</li>\n <li>完成调整后,点击\"保存顺序\"按钮保存更改</li>\n </ul>\n </div>\n\n <div className=\"flex flex-col gap-3\">\n {items.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"flex items-center gap-3 p-4 bg-gray-50 border-2 border-gray-200 rounded-lg transition-all hover:border-gray-300 hover:shadow-sm\",\n draggedItem === index && \"opacity-50 rotate-2 border-blue-500\"\n )}\n draggable\n onDragStart={(e) => handleDragStart(e, index)}\n onDragOver={(e) => handleDragOver(e, index)}\n onDrop={(e) => handleDrop(e, index)}\n >\n <div className=\"flex items-center cursor-grab active:cursor-grabbing text-gray-400 p-1 rounded hover:text-gray-500 hover:bg-gray-100 transition-colors\">\n <GripVertical size={20} />\n </div>\n \n <div className=\"flex-1 min-w-0\">\n {renderItem(item, index, index === 0, index === items.length - 1)}\n </div>\n\n <div className=\"flex items-center mx-3\">\n <span className=\"flex items-center justify-center w-8 h-8 bg-blue-500 text-white text-sm font-semibold rounded-full sm:w-8 sm:h-8 w-7 h-7 sm:text-sm text-xs\">\n #{index + 1}\n </span>\n </div>\n\n <div className=\"flex flex-col gap-1 sm:flex-col flex-row\">\n <button\n onClick={() => handleMoveUp(item.id)}\n disabled={index === 0}\n className=\"flex items-center justify-center w-8 h-8 p-0 border border-gray-300 bg-white text-gray-500 rounded cursor-pointer transition-all hover:bg-gray-100 hover:border-gray-400 hover:text-gray-700 disabled:opacity-40 disabled:cursor-not-allowed disabled:bg-gray-50 sm:w-8 sm:h-8 w-7 h-7\"\n title=\"上移\"\n >\n <ChevronUp size={18} />\n </button>\n <button\n onClick={() => handleMoveDown(item.id)}\n disabled={index === items.length - 1}\n className=\"flex items-center justify-center w-8 h-8 p-0 border border-gray-300 bg-white text-gray-500 rounded cursor-pointer transition-all hover:bg-gray-100 hover:border-gray-400 hover:text-gray-700 disabled:opacity-40 disabled:cursor-not-allowed disabled:bg-gray-50 sm:w-8 sm:h-8 w-7 h-7\"\n title=\"下移\"\n >\n <ChevronDown size={18} />\n </button>\n </div>\n </div>\n ))}\n </div>\n\n {items.length === 0 && (\n <div className=\"text-center p-12 text-gray-400 italic\">\n <p className=\"m-0\">{emptyMessage}</p>\n </div>\n )}\n </div>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { useRouter } from 'next/navigation';\nimport { cn } from '../utils';\n\nexport interface BackButtonProps {\n href?: string;\n className?: string;\n}\n\nexport const BackButton: React.FC<BackButtonProps> = ({ href, className = '' }) => {\n const router = useRouter();\n\n const handleClick = () => {\n if (href) {\n router.push(href);\n } else {\n router.back();\n }\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n \"inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors\",\n className\n )}\n >\n <svg\n className=\"w-5 h-5 mr-2\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 19l-7-7m0 0l7-7m-7 7h18\"\n />\n </svg>\n 返回\n </button>\n );\n};\n\nexport default BackButton;\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../utils';\n\nexport interface FilterOption<T> {\n value: T;\n label: string;\n icon: string;\n activeColor: {\n bg: string;\n shadow: string;\n };\n count?: number;\n showCount?: boolean;\n}\n\nexport interface FilterButtonGroupProps<T> {\n label: string;\n value: T;\n options: FilterOption<T>[];\n onChange: (value: T) => void;\n className?: string;\n}\n\n// 辅助函数:将 Tailwind 背景色类名转换为实际颜色值\nfunction getColorValue(bgClass: string): string {\n const colorMap: Record<string, string> = {\n 'bg-blue-500': '#3b82f6',\n 'bg-green-500': '#10b981',\n 'bg-red-500': '#ef4444',\n 'bg-purple-500': '#8b5cf6',\n 'bg-slate-500': '#64748b',\n 'bg-emerald-500': '#10b981',\n 'bg-orange-500': '#f97316',\n };\n return colorMap[bgClass] || '#3b82f6'; // 默认蓝色\n}\n\nexport function FilterButtonGroup<T extends string>({ \n label, \n value, \n options, \n onChange,\n className\n}: FilterButtonGroupProps<T>) {\n return (\n <div className={cn(\"space-y-4\", className)}>\n <h3 className=\"text-lg font-semibold text-gray-800\">\n {label}\n </h3>\n\n <div className=\"flex gap-3\">\n {options.map((option) => {\n const isActive = value === option.value;\n \n return (\n <button\n key={option.value}\n onClick={() => onChange(option.value)}\n style={isActive ? { backgroundColor: getColorValue(option.activeColor.bg) } : undefined}\n className={cn(\n \"flex-1 h-12 rounded-lg font-medium text-sm transition-all duration-200 ease-out focus:outline-none focus:ring-2 focus:ring-opacity-50 border\",\n isActive\n ? \"text-white border-transparent shadow-md focus:ring-white\"\n : \"bg-white text-gray-700 border-gray-200 shadow-sm hover:bg-gray-50 hover:border-gray-300 hover:shadow focus:ring-blue-300\"\n )}\n >\n <div className=\"flex items-center justify-center space-x-2\">\n <span className=\"text-lg\">{option.icon}</span>\n <span>{option.label}</span>\n {option.showCount && option.count !== undefined && (\n <span className={cn(\n \"text-xs font-semibold px-2 py-0.5 rounded-full min-w-[1.25rem] text-center\",\n isActive ? \"bg-white/20 text-white\" : \"bg-gray-100 text-gray-600\"\n )}>\n {option.count}\n </span>\n )}\n </div>\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../utils';\n\nexport interface SearchResultHintProps {\n searchQuery: string;\n resultCount: number;\n className?: string;\n}\n\nexport function SearchResultHint({ searchQuery, resultCount, className }: SearchResultHintProps) {\n if (!searchQuery) return null;\n\n return (\n <div className={cn(\"mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg\", className)}>\n <p className=\"text-sm text-blue-700\">\n 搜索 \"<span className=\"font-medium\">{searchQuery}</span>\" \n 找到 {resultCount} 个结果\n </p>\n </div>\n );\n}\n\nexport default SearchResultHint;\n\n","'use client';\n\nimport React from 'react';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n} from './Dialog';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from './AlertDialog';\nimport { cn } from '@/utils';\n\nexport interface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n width?: number | string;\n height?: number | string;\n className?: string;\n maskClosable?: boolean;\n children: React.ReactNode;\n zIndex?: number;\n overlayClassName?: string;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n width,\n height,\n className,\n maskClosable = true,\n children,\n zIndex = 50,\n overlayClassName,\n}) => {\n const contentZIndex = Math.max(zIndex, 10000);\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => {\n if (!open) {\n if (maskClosable) {\n onClose();\n } else {\n // If maskClosable is false, we don't allow closing via backdrop/ESC\n }\n }\n }}>\n <DialogContent \n className={cn(\"sm:max-w-[425px]\", className)}\n overlayClassName={overlayClassName}\n onPointerDownOutside={(e) => {\n if (!maskClosable) e.preventDefault();\n }}\n onEscapeKeyDown={(e) => {\n if (!maskClosable) e.preventDefault();\n }}\n style={{\n zIndex: contentZIndex,\n ...(width ? { maxWidth: typeof width === 'number' ? `${width}px` : width } : undefined),\n ...(height ? { height: typeof height === 'number' ? `${height}px` : height } : undefined),\n }}\n >\n {title ? (\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n </DialogHeader>\n ) : (\n // 无障碍性:始终需要 DialogTitle,使用 sr-only 对视觉隐藏但对屏幕阅读器可见\n <DialogTitle className=\"sr-only\">弹窗</DialogTitle>\n )}\n <div className=\"py-4\">\n {children}\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport interface ConfirmModalProps {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n title?: string;\n message: string;\n confirmText?: string;\n cancelText?: string;\n isLoading?: boolean;\n}\n\nexport const ConfirmModal: React.FC<ConfirmModalProps> = ({\n isOpen,\n onClose,\n onConfirm,\n title = \"确认操作\",\n message,\n confirmText = \"确认\",\n cancelText = \"取消\",\n isLoading = false,\n}) => {\n return (\n <AlertDialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{message}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isLoading}>{cancelText}</AlertDialogCancel>\n <AlertDialogAction \n onClick={(e) => {\n e.preventDefault();\n onConfirm();\n }}\n disabled={isLoading}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n >\n {isLoading ? \"处理中...\" : confirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n","import React from 'react';\nimport { cn } from '../utils';\n\nexport interface ImageMappingItem {\n id: string;\n label: string;\n}\n\nexport type ImageMappingValue = Record<string, string>;\n\nexport interface ImageMappingPanelProps {\n title: string;\n items: ImageMappingItem[];\n value: ImageMappingValue;\n onChange: (next: ImageMappingValue) => void;\n className?: string;\n uploadLabel?: string;\n clearLabel?: string;\n}\n\nexport function ImageMappingPanel({\n title,\n items,\n value,\n onChange,\n className,\n uploadLabel = '上传图片',\n clearLabel = '清除',\n}: ImageMappingPanelProps) {\n const handleFileChange = (id: string, file?: File) => {\n if (!file) {\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const base64 = typeof reader.result === 'string' ? reader.result : '';\n if (!base64) {\n return;\n }\n onChange({\n ...value,\n [id]: base64,\n });\n };\n reader.readAsDataURL(file);\n };\n\n const handleRemove = (id: string) => {\n const next = { ...value };\n delete next[id];\n onChange(next);\n };\n\n return (\n <details className={cn('rounded-lg border border-slate-200 bg-white/80 p-3', className)}>\n <summary className=\"cursor-pointer text-sm font-semibold text-slate-700\">{title}</summary>\n <div className=\"mt-3 grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {items.map((item) => {\n const image = value[item.id];\n return (\n <div\n key={item.id}\n className=\"flex items-center gap-2 rounded-md border border-slate-200 bg-white p-2\"\n >\n <div className=\"w-16 text-xs font-semibold text-slate-600\">{item.label}</div>\n <label className=\"flex-1 cursor-pointer rounded-md bg-cyan-600 px-2 py-1 text-center text-xs font-medium text-white\">\n {uploadLabel}\n <input\n type=\"file\"\n accept=\"image/*\"\n className=\"hidden\"\n onChange={(event) => {\n handleFileChange(item.id, event.target.files?.[0]);\n event.currentTarget.value = '';\n }}\n />\n </label>\n {image ? (\n <>\n <img\n src={image}\n alt={item.label}\n className=\"h-8 w-8 rounded-full border border-slate-200 object-cover\"\n />\n <button\n type=\"button\"\n className=\"rounded-md border border-red-200 px-2 py-1 text-xs text-red-600\"\n onClick={() => handleRemove(item.id)}\n >\n {clearLabel}\n </button>\n </>\n ) : null}\n </div>\n );\n })}\n </div>\n </details>\n );\n}\n\n","/**\n * 通用存储 Hook\n * 支持多平台:Web、React Native、小程序\n *\n * 优点:\n * 1. 异步读取,不阻塞渲染\n * 2. 统一的错误处理\n * 3. 类型安全\n * 4. 跨平台支持\n * 5. 自动同步(支持的平台)\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport type { StorageAdapter } from '../types';\n\nexport function useStorage<T>(\n storage: StorageAdapter,\n key: string,\n defaultValue: T\n): [T, (value: T) => void, () => void, boolean] {\n const [value, setValue] = useState<T>(defaultValue);\n const [loading, setLoading] = useState(true);\n\n // 初始化时从存储读取\n useEffect(() => {\n const loadValue = async () => {\n try {\n const stored = await storage.getItem(key);\n if (stored !== null) {\n setValue(JSON.parse(stored));\n }\n } catch (error) {\n console.error('Error reading storage key \"' + (key) + '\":', error);\n } finally {\n setLoading(false);\n }\n };\n\n void loadValue();\n }, [storage, key]);\n\n // 更新值并同步到存储\n const updateValue = useCallback(\n async (newValue: T) => {\n try {\n setValue(newValue);\n await storage.setItem(key, JSON.stringify(newValue));\n\n // 如果是 Web 适配器,触发自定义事件\n if ('dispatchChange' in storage && typeof storage.dispatchChange === 'function') {\n (storage as any).dispatchChange(key, JSON.stringify(newValue));\n }\n } catch (error) {\n console.error('Error setting storage key \"' + (key) + '\":', error);\n }\n },\n [storage, key]\n );\n\n // 删除值\n const removeValue = useCallback(async () => {\n try {\n setValue(defaultValue);\n await storage.removeItem(key);\n\n // 如果是 Web 适配器,触发自定义事件\n if ('dispatchChange' in storage && typeof storage.dispatchChange === 'function') {\n (storage as any).dispatchChange(key, null);\n }\n } catch (error) {\n console.error('Error removing storage key \"' + (key) + '\":', error);\n }\n }, [storage, key, defaultValue]);\n\n // 监听存储变化\n useEffect(() => {\n if (!storage.addChangeListener) {\n return;\n }\n\n const cleanup = storage.addChangeListener((changedKey: string, newValue: string | null) => {\n if (changedKey === key) {\n try {\n if (newValue === null) {\n setValue(defaultValue);\n } else {\n setValue(JSON.parse(newValue));\n }\n } catch (error) {\n console.error('Error parsing storage change event:', error);\n }\n }\n });\n\n return cleanup;\n }, [storage, key, defaultValue]);\n\n return [value, updateValue, removeValue, loading];\n}\n\n","/**\n * Web 平台存储适配器 (localStorage)\n */\n\nimport type { StorageAdapter } from '../types';\n\n/**\n * 检查是否在浏览器环境中\n */\nconst isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';\n\nexport class WebStorageAdapter implements StorageAdapter {\n async getItem(key: string): Promise<string | null> {\n // SSR 环境下返回 null\n if (!isBrowser) {\n return null;\n }\n\n try {\n return localStorage.getItem(key);\n } catch (error) {\n console.error('[WebStorage] Error getting item \"' + (key) + '\":', error);\n return null;\n }\n }\n\n async setItem(key: string, value: string): Promise<void> {\n // SSR 环境下静默忽略\n if (!isBrowser) {\n return;\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (error) {\n console.error('[WebStorage] Error setting item \"' + (key) + '\":', error);\n throw error;\n }\n }\n\n async removeItem(key: string): Promise<void> {\n // SSR 环境下静默忽略\n if (!isBrowser) {\n return;\n }\n\n try {\n localStorage.removeItem(key);\n } catch (error) {\n console.error('[WebStorage] Error removing item \"' + (key) + '\":', error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n // SSR 环境下静默忽略\n if (!isBrowser) {\n return;\n }\n\n try {\n localStorage.clear();\n } catch (error) {\n console.error('[WebStorage] Error clearing storage:', error);\n throw error;\n }\n }\n\n addChangeListener(callback: (key: string, value: string | null) => void): () => void {\n // SSR 环境下返回空函数\n if (!isBrowser) {\n return () => {};\n }\n\n // 监听 storage 事件(跨标签页)\n const handleStorageEvent = (e: StorageEvent) => {\n if (e.key) {\n callback(e.key, e.newValue);\n }\n };\n\n // 监听自定义事件(同标签页)\n const handleCustomEvent = (e: Event) => {\n const customEvent = e as CustomEvent;\n callback(customEvent.detail.key, customEvent.detail.value);\n };\n\n window.addEventListener('storage', handleStorageEvent);\n window.addEventListener('local-storage-change', handleCustomEvent);\n\n // 返回清理函数\n return () => {\n window.removeEventListener('storage', handleStorageEvent);\n window.removeEventListener('local-storage-change', handleCustomEvent);\n };\n }\n\n /**\n * 触发自定义事件,通知同标签页的其他组件\n */\n dispatchChange(key: string, value: string | null): void {\n // SSR 环境下静默忽略\n if (!isBrowser) {\n return;\n }\n\n window.dispatchEvent(\n new CustomEvent('local-storage-change', {\n detail: { key, value },\n })\n );\n }\n}\n\n","/**\n * Web 平台 localStorage Hook\n * 基于通用 useStorage 的便捷封装\n */\n\nimport { useStorage } from './useStorage';\nimport { WebStorageAdapter } from '../adapters/web-adapter';\n\n// 创建单例适配器\nconst webStorage = new WebStorageAdapter();\n\n/**\n * Web 平台的 localStorage Hook\n *\n * @param key - 存储键名\n * @param defaultValue - 默认值\n * @returns [value, setValue, removeValue, isLoading]\n */\nexport function useLocalStorage<T>(\n key: string,\n defaultValue: T\n): [T, (value: T) => void, () => void, boolean] {\n return useStorage(webStorage, key, defaultValue);\n}\n\n","import React from 'react';\nimport { useLocalStorage } from '../storage/hooks/useLocalStorage';\nimport {\n ImageMappingPanel,\n type ImageMappingItem,\n type ImageMappingPanelProps,\n type ImageMappingValue,\n} from './ImageMappingPanel';\n\nexport interface LocalImageMappingPanelProps\n extends Omit<ImageMappingPanelProps, 'value' | 'onChange'> {\n storageKey: string;\n defaultValue?: ImageMappingValue;\n onValueChange?: (next: ImageMappingValue) => void;\n}\n\nexport function LocalImageMappingPanel({\n storageKey,\n defaultValue = {},\n onValueChange,\n ...panelProps\n}: LocalImageMappingPanelProps) {\n const [value, setValue] = useLocalStorage<ImageMappingValue>(storageKey, defaultValue);\n\n return (\n <ImageMappingPanel\n {...panelProps}\n value={value}\n onChange={(next) => {\n setValue(next);\n onValueChange?.(next);\n }}\n />\n );\n}\n\nexport type { ImageMappingItem };\n\n"]}
|
package/dist/config/index.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { A as AllConfigs, C as ConfigItem, U as UseConfigsOptions, c as createUseConfigs, a as invalidateAllConfigs, p as prefetchConfigs } from '../index-CIRO-7ub.mjs';
|
package/dist/config/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { A as AllConfigs, C as ConfigItem, U as UseConfigsOptions, c as createUseConfigs, a as invalidateAllConfigs, p as prefetchConfigs } from '../index-CIRO-7ub.js';
|
package/dist/config/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkKQ643L7Z_js = require('../chunk-KQ643L7Z.js');
|
|
4
|
-
require('../chunk-NSBPE2FW.js');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "createUseConfigs", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function () { return chunkKQ643L7Z_js.createUseConfigs; }
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "invalidateAllConfigs", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return chunkKQ643L7Z_js.invalidateAllConfigs; }
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "prefetchConfigs", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () { return chunkKQ643L7Z_js.prefetchConfigs; }
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
package/dist/config/index.mjs
DELETED