@ruixinkeji/prism-ui 1.0.14 → 1.0.16

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.
Files changed (396) hide show
  1. package/README.md +6 -2
  2. package/dist/build/h5/assets/PrismCode-D1lrgx1M.css +1 -0
  3. package/dist/build/h5/assets/PrismCode.CNOtat_X.js +1 -0
  4. package/dist/build/h5/assets/PrismGroupSticky-CBFeo0AB.css +1 -0
  5. package/dist/build/h5/assets/PrismGroupSticky.CmJXt6ws.js +1 -0
  6. package/dist/build/h5/assets/PrismMusicPlayer-CHVtYDn7.css +1 -0
  7. package/dist/build/h5/assets/PrismMusicPlayer.DAW3y5Km.js +1 -0
  8. package/dist/build/h5/assets/PrismNavBar-CYetauMR.css +1 -0
  9. package/dist/build/h5/assets/PrismNavBar.CFM58fal.js +1 -0
  10. package/dist/build/h5/assets/PrismSwiper-CDtZrfyq.css +1 -0
  11. package/dist/build/h5/assets/PrismSwiper.DTGFNn5Q.js +1 -0
  12. package/dist/build/h5/assets/PrismTabBar-BW0exu0j.css +1 -0
  13. package/dist/build/h5/assets/PrismTabBar.DPe-iC_F.js +1 -0
  14. package/dist/build/h5/assets/basic-tn0RQdqM.css +0 -0
  15. package/dist/build/h5/assets/card-layout-BZuodKCJ.css +1 -0
  16. package/dist/build/h5/assets/colors-RgTfwcKp.css +1 -0
  17. package/dist/build/h5/assets/data-DSHiB3Xs.css +1 -0
  18. package/dist/build/h5/assets/effects-CNFDtZjf.css +1 -0
  19. package/dist/build/h5/assets/examples-CSzKlb8B.css +1 -0
  20. package/dist/build/h5/assets/fa-brands-400-C99Yv4gD.woff2 +0 -0
  21. package/dist/build/h5/assets/fa-regular-400-OOsPf1xj.woff2 +0 -0
  22. package/dist/build/h5/assets/fa-solid-900-DAI24fNt.woff2 +0 -0
  23. package/dist/build/h5/assets/feedback-BaC8qSUp.css +1 -0
  24. package/dist/build/h5/assets/form-va-eFD7k.css +1 -0
  25. package/dist/build/h5/assets/group-CDa_hQkB.css +1 -0
  26. package/dist/build/h5/assets/iconfont-CW81RyG4.ttf +0 -0
  27. package/dist/build/h5/assets/icons-83wAdmdh.css +1 -0
  28. package/dist/build/h5/assets/index-BQ-qpvZH.css +1 -0
  29. package/dist/build/h5/assets/index-BQnv3xQ8.css +1 -0
  30. package/dist/build/h5/assets/index-C83xA4hX.css +1 -0
  31. package/dist/build/h5/assets/index-Cvc14mto.css +1 -0
  32. package/dist/build/h5/assets/index-D2djL_pA.js +32 -0
  33. package/dist/build/h5/assets/navigation-D0rlyjtK.css +1 -0
  34. package/dist/build/h5/assets/pages-demo-basic.BsC9sqol.js +1 -0
  35. package/dist/build/h5/assets/pages-demo-code-index.BXECig1w.js +1 -0
  36. package/dist/build/h5/assets/pages-demo-colors.Dl__3Mv9.js +1 -0
  37. package/dist/build/h5/assets/pages-demo-container.Cy-M9f41.js +1 -0
  38. package/dist/build/h5/assets/pages-demo-data.CK2JdeBK.js +1 -0
  39. package/dist/build/h5/assets/pages-demo-effects.CV0rqKht.js +1 -0
  40. package/dist/build/h5/assets/pages-demo-feedback.BO-G3E1J.js +1 -0
  41. package/dist/build/h5/assets/pages-demo-form.CsUNLqqe.js +1 -0
  42. package/dist/build/h5/assets/pages-demo-layout-card-layout.CQ6fF8IK.js +1 -0
  43. package/dist/build/h5/assets/pages-demo-layout.261GXW2o.js +1 -0
  44. package/dist/build/h5/assets/pages-demo-navigation.C5hFijVt.js +1 -0
  45. package/dist/build/h5/assets/pages-demo-other.CVdLVU3_.js +1 -0
  46. package/dist/build/h5/assets/pages-demo-sticky-group.MDzv6I5L.js +1 -0
  47. package/dist/build/h5/assets/pages-demo-sticky-index.D2UJUdon.js +1 -0
  48. package/dist/build/h5/assets/pages-examples-examples.hyUWuu8C.js +1 -0
  49. package/dist/build/h5/assets/pages-icons-icons.R2erKYQX.js +1 -0
  50. package/dist/build/h5/assets/pages-index-index.BlfkIjJo.js +1 -0
  51. package/dist/build/h5/assets/pages-tools-tools.tm3Y1cFN.js +1 -0
  52. package/dist/build/h5/assets/tools-C1YBcrWJ.css +1 -0
  53. package/dist/build/h5/assets/uni-app.es.DfNmMcUd.js +1 -0
  54. package/dist/build/h5/assets/uni.e2868147.css +1 -0
  55. package/dist/build/h5/assets/useNavbar.BdajVjjC.js +1 -0
  56. package/dist/build/h5/index.html +23 -0
  57. package/dist/build/h5/static/fonts/all-icons.txt +453 -0
  58. package/dist/build/h5/static/fonts/fa-brands-400.woff2 +0 -0
  59. package/dist/build/h5/static/fonts/fa-regular-400.woff2 +0 -0
  60. package/dist/build/h5/static/fonts/fa-solid-900.woff2 +0 -0
  61. package/dist/build/h5/static/fonts/fa-v4compatibility.woff2 +0 -0
  62. package/dist/build/h5/static/fonts/font-awesome.css +943 -0
  63. package/dist/build/h5/static/fonts/iconfont.css +62 -0
  64. package/dist/build/h5/static/fonts/iconfont.js +1 -0
  65. package/dist/build/h5/static/fonts/iconfont.json +79 -0
  66. package/dist/build/h5/static/fonts/iconfont.ttf +0 -0
  67. package/dist/build/h5/static/fonts/iconfont.woff +0 -0
  68. package/dist/build/h5/static/fonts/iconfont.woff2 +0 -0
  69. package/dist/build/h5/static/fonts/icons-list.txt +453 -0
  70. package/dist/build/h5/static/tabbar/examples-active.png +0 -0
  71. package/dist/build/h5/static/tabbar/examples.png +0 -0
  72. package/dist/build/h5/static/tabbar/home-active.png +0 -0
  73. package/dist/build/h5/static/tabbar/home.png +0 -0
  74. package/dist/build/h5/static/tabbar/icons-active.png +0 -0
  75. package/dist/build/h5/static/tabbar/icons.png +0 -0
  76. package/dist/build/h5/static/tabbar/tools-active.png +0 -0
  77. package/dist/build/h5/static/tabbar/tools.png +0 -0
  78. package/dist/dev/.nvue/app.css.js +11 -0
  79. package/dist/dev/.nvue/app.js +2 -0
  80. package/dist/dev/.sourcemap/mp-weixin/app.js.map +1 -0
  81. package/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +1 -0
  82. package/dist/dev/.sourcemap/mp-weixin/components/PrismAddressInput/PrismAddressInput.js.map +1 -0
  83. package/dist/dev/.sourcemap/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.js.map +1 -0
  84. package/dist/dev/.sourcemap/mp-weixin/components/PrismCityPicker/PrismCityPicker.js.map +1 -0
  85. package/dist/dev/.sourcemap/mp-weixin/components/PrismCitySelect/PrismCitySelect.js.map +1 -0
  86. package/dist/dev/.sourcemap/mp-weixin/components/PrismCode/PrismCode.js.map +1 -0
  87. package/dist/dev/.sourcemap/mp-weixin/components/PrismCodeInput/PrismCodeInput.js.map +1 -0
  88. package/dist/dev/.sourcemap/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.js.map +1 -0
  89. package/dist/dev/.sourcemap/mp-weixin/components/PrismDropdown/PrismDropdown.js.map +1 -0
  90. package/dist/dev/.sourcemap/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.js.map +1 -0
  91. package/dist/dev/.sourcemap/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.js.map +1 -0
  92. package/dist/dev/.sourcemap/mp-weixin/components/PrismIndexBar/PrismIndexBar.js.map +1 -0
  93. package/dist/dev/.sourcemap/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.js.map +1 -0
  94. package/dist/dev/.sourcemap/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.js.map +1 -0
  95. package/dist/dev/.sourcemap/mp-weixin/components/PrismNavBar/PrismNavBar.js.map +1 -0
  96. package/dist/dev/.sourcemap/mp-weixin/components/PrismSecureInput/PrismSecureInput.js.map +1 -0
  97. package/dist/dev/.sourcemap/mp-weixin/components/PrismSticky/PrismSticky.js.map +1 -0
  98. package/dist/dev/.sourcemap/mp-weixin/components/PrismSwiper/PrismSwiper.js.map +1 -0
  99. package/dist/dev/.sourcemap/mp-weixin/components/PrismSwitch/PrismSwitch.js.map +1 -0
  100. package/dist/dev/.sourcemap/mp-weixin/components/PrismTabBar/PrismTabBar.js.map +1 -0
  101. package/dist/dev/.sourcemap/mp-weixin/components/PrismTabs/PrismTabs.js.map +1 -0
  102. package/dist/dev/.sourcemap/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.js.map +1 -0
  103. package/dist/dev/.sourcemap/mp-weixin/composables/useNavbar.js.map +1 -0
  104. package/dist/dev/.sourcemap/mp-weixin/config/theme-colors.js.map +1 -0
  105. package/dist/dev/.sourcemap/mp-weixin/pages/demo/basic.js.map +1 -0
  106. package/dist/dev/.sourcemap/mp-weixin/pages/demo/card.js.map +1 -0
  107. package/dist/dev/.sourcemap/mp-weixin/pages/demo/code/index.js.map +1 -0
  108. package/dist/dev/.sourcemap/mp-weixin/pages/demo/colors.js.map +1 -0
  109. package/dist/dev/.sourcemap/mp-weixin/pages/demo/container.js.map +1 -0
  110. package/dist/dev/.sourcemap/mp-weixin/pages/demo/data.js.map +1 -0
  111. package/dist/dev/.sourcemap/mp-weixin/pages/demo/effects.js.map +1 -0
  112. package/dist/dev/.sourcemap/mp-weixin/pages/demo/feedback.js.map +1 -0
  113. package/dist/dev/.sourcemap/mp-weixin/pages/demo/form.js.map +1 -0
  114. package/dist/dev/.sourcemap/mp-weixin/pages/demo/layout/card-layout.js.map +1 -0
  115. package/dist/dev/.sourcemap/mp-weixin/pages/demo/layout.js.map +1 -0
  116. package/dist/dev/.sourcemap/mp-weixin/pages/demo/navigation.js.map +1 -0
  117. package/dist/dev/.sourcemap/mp-weixin/pages/demo/other.js.map +1 -0
  118. package/dist/dev/.sourcemap/mp-weixin/pages/demo/sticky/group.js.map +1 -0
  119. package/dist/dev/.sourcemap/mp-weixin/pages/demo/sticky/index.js.map +1 -0
  120. package/dist/dev/.sourcemap/mp-weixin/pages/examples/examples.js.map +1 -0
  121. package/dist/dev/.sourcemap/mp-weixin/pages/icons/icons.js.map +1 -0
  122. package/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map +1 -0
  123. package/dist/dev/.sourcemap/mp-weixin/pages/tools/tools.js.map +1 -0
  124. package/dist/dev/.sourcemap/mp-weixin/store/app.js.map +1 -0
  125. package/dist/dev/.sourcemap/mp-weixin/utils/lunar.js.map +1 -0
  126. package/dist/dev/.sourcemap/mp-weixin/utils/system.js.map +1 -0
  127. package/dist/dev/app-plus/__uniappautomator.js +16 -0
  128. package/dist/dev/app-plus/__uniappchooselocation.js +32 -0
  129. package/dist/dev/app-plus/__uniapperror.png +0 -0
  130. package/dist/dev/app-plus/__uniappopenlocation.js +32 -0
  131. package/dist/dev/app-plus/__uniapppicker.js +33 -0
  132. package/dist/dev/app-plus/__uniappquill.js +8 -0
  133. package/dist/dev/app-plus/__uniappquillimageresize.js +1 -0
  134. package/dist/dev/app-plus/__uniappscan.js +32 -0
  135. package/dist/dev/app-plus/__uniappsuccess.png +0 -0
  136. package/dist/dev/app-plus/__uniappview.html +24 -0
  137. package/dist/dev/app-plus/app-config-service.js +11 -0
  138. package/dist/dev/app-plus/app-config.js +1 -0
  139. package/dist/dev/app-plus/app-service.js +23663 -0
  140. package/dist/dev/app-plus/app.css +8955 -0
  141. package/dist/dev/app-plus/manifest.json +91 -0
  142. package/dist/dev/app-plus/pages/demo/basic.css +524 -0
  143. package/dist/dev/app-plus/pages/demo/code/index.css +541 -0
  144. package/dist/dev/app-plus/pages/demo/colors.css +4008 -0
  145. package/dist/dev/app-plus/pages/demo/container.css +524 -0
  146. package/dist/dev/app-plus/pages/demo/data.css +705 -0
  147. package/dist/dev/app-plus/pages/demo/effects.css +530 -0
  148. package/dist/dev/app-plus/pages/demo/feedback.css +590 -0
  149. package/dist/dev/app-plus/pages/demo/form.css +3422 -0
  150. package/dist/dev/app-plus/pages/demo/layout/card-layout.css +785 -0
  151. package/dist/dev/app-plus/pages/demo/layout.css +524 -0
  152. package/dist/dev/app-plus/pages/demo/navigation.css +769 -0
  153. package/dist/dev/app-plus/pages/demo/other.css +524 -0
  154. package/dist/dev/app-plus/pages/demo/sticky/group.css +788 -0
  155. package/dist/dev/app-plus/pages/demo/sticky/index.css +894 -0
  156. package/dist/dev/app-plus/pages/examples/examples.css +1031 -0
  157. package/dist/dev/app-plus/pages/icons/icons.css +3310 -0
  158. package/dist/dev/app-plus/pages/index/index.css +696 -0
  159. package/dist/dev/app-plus/pages/tools/tools.css +378 -0
  160. package/dist/dev/app-plus/static/fonts/all-icons.txt +453 -0
  161. package/dist/dev/app-plus/static/fonts/fa-brands-400.woff2 +0 -0
  162. package/dist/dev/app-plus/static/fonts/fa-regular-400.woff2 +0 -0
  163. package/dist/dev/app-plus/static/fonts/fa-solid-900.woff2 +0 -0
  164. package/dist/dev/app-plus/static/fonts/fa-v4compatibility.woff2 +0 -0
  165. package/dist/dev/app-plus/static/fonts/font-awesome.css +943 -0
  166. package/dist/dev/app-plus/static/fonts/iconfont.css +62 -0
  167. package/dist/dev/app-plus/static/fonts/iconfont.js +1 -0
  168. package/dist/dev/app-plus/static/fonts/iconfont.json +79 -0
  169. package/dist/dev/app-plus/static/fonts/iconfont.ttf +0 -0
  170. package/dist/dev/app-plus/static/fonts/iconfont.woff +0 -0
  171. package/dist/dev/app-plus/static/fonts/iconfont.woff2 +0 -0
  172. package/dist/dev/app-plus/static/fonts/icons-list.txt +453 -0
  173. package/dist/dev/app-plus/static/tabbar/examples-active.png +0 -0
  174. package/dist/dev/app-plus/static/tabbar/examples.png +0 -0
  175. package/dist/dev/app-plus/static/tabbar/home-active.png +0 -0
  176. package/dist/dev/app-plus/static/tabbar/home.png +0 -0
  177. package/dist/dev/app-plus/static/tabbar/icons-active.png +0 -0
  178. package/dist/dev/app-plus/static/tabbar/icons.png +0 -0
  179. package/dist/dev/app-plus/static/tabbar/tools-active.png +0 -0
  180. package/dist/dev/app-plus/static/tabbar/tools.png +0 -0
  181. package/dist/dev/app-plus/uni-app-view.umd.js +7 -0
  182. package/dist/dev/mp-weixin/app.js +49 -0
  183. package/dist/dev/mp-weixin/app.json +29 -0
  184. package/dist/dev/mp-weixin/app.wxss +9072 -0
  185. package/dist/dev/mp-weixin/common/vendor.js +15968 -0
  186. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.js +200 -0
  187. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.json +4 -0
  188. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.wxml +1 -0
  189. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.wxss +327 -0
  190. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.js +449 -0
  191. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.json +4 -0
  192. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.wxml +1 -0
  193. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.wxss +264 -0
  194. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.js +531 -0
  195. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.json +4 -0
  196. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.wxml +1 -0
  197. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.wxss +309 -0
  198. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.js +200 -0
  199. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.json +6 -0
  200. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.wxml +1 -0
  201. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.wxss +225 -0
  202. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.js +337 -0
  203. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.json +4 -0
  204. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.wxml +1 -0
  205. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.wxss +345 -0
  206. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.js +70 -0
  207. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.json +4 -0
  208. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.wxml +1 -0
  209. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.wxss +115 -0
  210. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.js +468 -0
  211. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.json +4 -0
  212. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.wxml +1 -0
  213. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.wxss +309 -0
  214. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.js +63 -0
  215. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.json +4 -0
  216. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.wxml +1 -0
  217. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.wxss +0 -0
  218. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.js +128 -0
  219. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.json +4 -0
  220. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.wxml +1 -0
  221. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.wxss +191 -0
  222. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.js +123 -0
  223. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.json +4 -0
  224. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.wxml +1 -0
  225. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.wxss +114 -0
  226. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.js +108 -0
  227. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.json +4 -0
  228. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.wxml +1 -0
  229. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.wxss +135 -0
  230. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.js +449 -0
  231. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.json +4 -0
  232. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.wxml +1 -0
  233. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.wxss +445 -0
  234. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.js +200 -0
  235. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.json +4 -0
  236. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.wxml +1 -0
  237. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.wxss +334 -0
  238. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.js +71 -0
  239. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.json +4 -0
  240. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.wxml +1 -0
  241. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.wxss +150 -0
  242. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.js +140 -0
  243. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.json +4 -0
  244. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.wxml +1 -0
  245. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.wxss +215 -0
  246. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.js +120 -0
  247. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.json +4 -0
  248. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.wxml +1 -0
  249. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.wxss +62 -0
  250. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.js +163 -0
  251. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.json +4 -0
  252. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.wxml +1 -0
  253. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.wxss +203 -0
  254. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.js +69 -0
  255. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.json +4 -0
  256. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.wxml +1 -0
  257. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.wxss +151 -0
  258. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.js +58 -0
  259. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.json +4 -0
  260. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.wxml +1 -0
  261. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.wxss +119 -0
  262. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.js +51 -0
  263. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.json +4 -0
  264. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.wxml +1 -0
  265. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.wxss +51 -0
  266. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.js +182 -0
  267. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.json +4 -0
  268. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.wxml +1 -0
  269. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.wxss +329 -0
  270. package/dist/dev/mp-weixin/composables/useNavbar.js +19 -0
  271. package/dist/dev/mp-weixin/config/theme-colors.js +73 -0
  272. package/dist/dev/mp-weixin/pages/demo/basic.js +77 -0
  273. package/dist/dev/mp-weixin/pages/demo/basic.json +7 -0
  274. package/dist/dev/mp-weixin/pages/demo/basic.wxml +1 -0
  275. package/dist/dev/mp-weixin/pages/demo/basic.wxss +54 -0
  276. package/dist/dev/mp-weixin/pages/demo/code/index.js +190 -0
  277. package/dist/dev/mp-weixin/pages/demo/code/index.json +7 -0
  278. package/dist/dev/mp-weixin/pages/demo/code/index.wxml +1 -0
  279. package/dist/dev/mp-weixin/pages/demo/code/index.wxss +71 -0
  280. package/dist/dev/mp-weixin/pages/demo/colors.js +130 -0
  281. package/dist/dev/mp-weixin/pages/demo/colors.json +7 -0
  282. package/dist/dev/mp-weixin/pages/demo/colors.wxml +1 -0
  283. package/dist/dev/mp-weixin/pages/demo/colors.wxss +3793 -0
  284. package/dist/dev/mp-weixin/pages/demo/container.js +65 -0
  285. package/dist/dev/mp-weixin/pages/demo/container.json +7 -0
  286. package/dist/dev/mp-weixin/pages/demo/container.wxml +1 -0
  287. package/dist/dev/mp-weixin/pages/demo/container.wxss +54 -0
  288. package/dist/dev/mp-weixin/pages/demo/data.js +398 -0
  289. package/dist/dev/mp-weixin/pages/demo/data.json +7 -0
  290. package/dist/dev/mp-weixin/pages/demo/data.wxml +1 -0
  291. package/dist/dev/mp-weixin/pages/demo/data.wxss +235 -0
  292. package/dist/dev/mp-weixin/pages/demo/effects.js +62 -0
  293. package/dist/dev/mp-weixin/pages/demo/effects.json +7 -0
  294. package/dist/dev/mp-weixin/pages/demo/effects.wxml +1 -0
  295. package/dist/dev/mp-weixin/pages/demo/effects.wxss +60 -0
  296. package/dist/dev/mp-weixin/pages/demo/feedback.js +256 -0
  297. package/dist/dev/mp-weixin/pages/demo/feedback.json +7 -0
  298. package/dist/dev/mp-weixin/pages/demo/feedback.wxml +1 -0
  299. package/dist/dev/mp-weixin/pages/demo/feedback.wxss +120 -0
  300. package/dist/dev/mp-weixin/pages/demo/form.js +689 -0
  301. package/dist/dev/mp-weixin/pages/demo/form.json +18 -0
  302. package/dist/dev/mp-weixin/pages/demo/form.wxml +1 -0
  303. package/dist/dev/mp-weixin/pages/demo/form.wxss +54 -0
  304. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.js +61 -0
  305. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.json +7 -0
  306. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.wxml +1 -0
  307. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.wxss +326 -0
  308. package/dist/dev/mp-weixin/pages/demo/layout.js +96 -0
  309. package/dist/dev/mp-weixin/pages/demo/layout.json +7 -0
  310. package/dist/dev/mp-weixin/pages/demo/layout.wxml +1 -0
  311. package/dist/dev/mp-weixin/pages/demo/layout.wxss +54 -0
  312. package/dist/dev/mp-weixin/pages/demo/navigation.js +142 -0
  313. package/dist/dev/mp-weixin/pages/demo/navigation.json +10 -0
  314. package/dist/dev/mp-weixin/pages/demo/navigation.wxml +1 -0
  315. package/dist/dev/mp-weixin/pages/demo/navigation.wxss +61 -0
  316. package/dist/dev/mp-weixin/pages/demo/other.js +50 -0
  317. package/dist/dev/mp-weixin/pages/demo/other.json +7 -0
  318. package/dist/dev/mp-weixin/pages/demo/other.wxml +1 -0
  319. package/dist/dev/mp-weixin/pages/demo/other.wxss +54 -0
  320. package/dist/dev/mp-weixin/pages/demo/sticky/group.js +212 -0
  321. package/dist/dev/mp-weixin/pages/demo/sticky/group.json +8 -0
  322. package/dist/dev/mp-weixin/pages/demo/sticky/group.wxml +1 -0
  323. package/dist/dev/mp-weixin/pages/demo/sticky/group.wxss +135 -0
  324. package/dist/dev/mp-weixin/pages/demo/sticky/index.js +90 -0
  325. package/dist/dev/mp-weixin/pages/demo/sticky/index.json +9 -0
  326. package/dist/dev/mp-weixin/pages/demo/sticky/index.wxml +1 -0
  327. package/dist/dev/mp-weixin/pages/demo/sticky/index.wxss +175 -0
  328. package/dist/dev/mp-weixin/pages/examples/examples.js +65 -0
  329. package/dist/dev/mp-weixin/pages/examples/examples.json +8 -0
  330. package/dist/dev/mp-weixin/pages/examples/examples.wxml +1 -0
  331. package/dist/dev/mp-weixin/pages/examples/examples.wxss +461 -0
  332. package/dist/dev/mp-weixin/pages/icons/icons.js +350 -0
  333. package/dist/dev/mp-weixin/pages/icons/icons.json +8 -0
  334. package/dist/dev/mp-weixin/pages/icons/icons.wxml +1 -0
  335. package/dist/dev/mp-weixin/pages/icons/icons.wxss +3079 -0
  336. package/dist/dev/mp-weixin/pages/index/index.js +118 -0
  337. package/dist/dev/mp-weixin/pages/index/index.json +8 -0
  338. package/dist/dev/mp-weixin/pages/index/index.wxml +1 -0
  339. package/dist/dev/mp-weixin/pages/index/index.wxss +123 -0
  340. package/dist/dev/mp-weixin/pages/tools/tools.js +37 -0
  341. package/dist/dev/mp-weixin/pages/tools/tools.json +7 -0
  342. package/dist/dev/mp-weixin/pages/tools/tools.wxml +1 -0
  343. package/dist/dev/mp-weixin/pages/tools/tools.wxss +134 -0
  344. package/dist/dev/mp-weixin/project.config.json +36 -0
  345. package/dist/dev/mp-weixin/project.private.config.json +23 -0
  346. package/dist/dev/mp-weixin/static/fonts/all-icons.txt +453 -0
  347. package/dist/dev/mp-weixin/static/fonts/fa-brands-400.woff2 +0 -0
  348. package/dist/dev/mp-weixin/static/fonts/fa-regular-400.woff2 +0 -0
  349. package/dist/dev/mp-weixin/static/fonts/fa-solid-900.woff2 +0 -0
  350. package/dist/dev/mp-weixin/static/fonts/fa-v4compatibility.woff2 +0 -0
  351. package/dist/dev/mp-weixin/static/fonts/font-awesome.css +943 -0
  352. package/dist/dev/mp-weixin/static/fonts/iconfont.css +62 -0
  353. package/dist/dev/mp-weixin/static/fonts/iconfont.js +1 -0
  354. package/dist/dev/mp-weixin/static/fonts/iconfont.json +79 -0
  355. package/dist/dev/mp-weixin/static/fonts/iconfont.ttf +0 -0
  356. package/dist/dev/mp-weixin/static/fonts/iconfont.woff +0 -0
  357. package/dist/dev/mp-weixin/static/fonts/iconfont.woff2 +0 -0
  358. package/dist/dev/mp-weixin/static/fonts/icons-list.txt +453 -0
  359. package/dist/dev/mp-weixin/static/tabbar/examples-active.png +0 -0
  360. package/dist/dev/mp-weixin/static/tabbar/examples.png +0 -0
  361. package/dist/dev/mp-weixin/static/tabbar/home-active.png +0 -0
  362. package/dist/dev/mp-weixin/static/tabbar/home.png +0 -0
  363. package/dist/dev/mp-weixin/static/tabbar/icons-active.png +0 -0
  364. package/dist/dev/mp-weixin/static/tabbar/icons.png +0 -0
  365. package/dist/dev/mp-weixin/static/tabbar/tools-active.png +0 -0
  366. package/dist/dev/mp-weixin/static/tabbar/tools.png +0 -0
  367. package/dist/dev/mp-weixin/store/app.js +64 -0
  368. package/dist/dev/mp-weixin/utils/lunar.js +330 -0
  369. package/dist/dev/mp-weixin/utils/system.js +18 -0
  370. package/dist/index.d.ts +26 -0
  371. package/dist/index.esm.js +33 -0
  372. package/dist/index.js +33 -0
  373. package/dist/prism-ui.css +7776 -0
  374. package/dist/prism-ui.min.css +1 -0
  375. package/dist/styles/base.scss +213 -0
  376. package/dist/styles/button.scss +120 -0
  377. package/dist/styles/card.scss +306 -0
  378. package/dist/styles/data.scss +1229 -0
  379. package/dist/styles/effects.scss +407 -0
  380. package/dist/styles/feedback.scss +698 -0
  381. package/dist/styles/form.scss +1574 -0
  382. package/dist/styles/index.scss +43 -0
  383. package/dist/styles/list.scss +184 -0
  384. package/dist/styles/navigation.scss +501 -0
  385. package/dist/styles/overlay.scss +182 -0
  386. package/dist/styles/utilities.scss +134 -0
  387. package/dist/styles/variables.scss +154 -0
  388. package/package.json +2 -5
  389. package/styles/base.scss +0 -1
  390. package/styles/card.scss +0 -1
  391. package/styles/colors.scss +0 -1
  392. package/styles/effects.scss +0 -1
  393. package/styles/form.scss +0 -1
  394. package/styles/index.scss +13 -13
  395. package/styles/navigation.scss +0 -1
  396. package/styles/variables.scss +1 -1
@@ -0,0 +1,1574 @@
1
+ /**
2
+ * Prism UI - 表单组件样式
3
+ * 输入框、复选框、选项卡等
4
+ */
5
+
6
+ /* ============================================================
7
+ 输入框容器
8
+ ============================================================ */
9
+
10
+ .prism-input-box {
11
+ display: flex;
12
+ align-items: center;
13
+ background: var(--prism-input-bg, #EBEEF2);
14
+ border-radius: 12rpx;
15
+ padding: 0 28rpx;
16
+ min-height: 88rpx;
17
+ transition: all 0.3s ease;
18
+
19
+ // 聚焦状态 - 浅色模式
20
+ &:focus-within {
21
+ background: var(--prism-primary-light, #E3EEFF);
22
+ }
23
+
24
+ // 前置图标
25
+ .prefix-icon {
26
+ margin-right: 16rpx;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ flex-shrink: 0;
31
+
32
+ .fa, .fa-solid {
33
+ font-size: 32rpx;
34
+ color: var(--prism-text-secondary, #86909C);
35
+ }
36
+ }
37
+
38
+ // 输入框
39
+ .input, input, textarea {
40
+ flex: 1;
41
+ font-size: 28rpx;
42
+ color: var(--prism-text-primary);
43
+ background: transparent !important;
44
+ border: none;
45
+ outline: none;
46
+ }
47
+
48
+ // 清空图标
49
+ .clear-icon {
50
+ padding: 16rpx 0 16rpx 16rpx;
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ flex-shrink: 0;
55
+
56
+ .fa-circle-xmark {
57
+ font-size: 32rpx;
58
+ color: var(--prism-text-placeholder, #C9CDD4);
59
+ }
60
+ }
61
+
62
+ // 密码眼睛图标
63
+ .eye-icon {
64
+ padding: 16rpx 0 16rpx 16rpx;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ flex-shrink: 0;
69
+
70
+ .fa-solid, .fa {
71
+ font-size: 32rpx;
72
+ color: var(--prism-text-placeholder, #C9CDD4);
73
+ }
74
+ }
75
+
76
+ // 验证码按钮
77
+ .code-btn {
78
+ padding: 18rpx 0 18rpx 28rpx;
79
+ font-size: 28rpx;
80
+ color: var(--prism-primary-color, #3478F6);
81
+ white-space: nowrap;
82
+ font-weight: 500;
83
+ flex-shrink: 0;
84
+
85
+ &.disabled {
86
+ color: var(--prism-text-placeholder, #C9CDD4);
87
+ }
88
+ }
89
+
90
+ .dark-mode & {
91
+ background: var(--prism-input-bg, $prism-bg-color-input-dark);
92
+
93
+ // 深色模式聚焦效果 - 蓝色边框和发光
94
+ &:focus-within {
95
+ background: $prism-primary-alpha-12;
96
+ box-shadow: 0 0 0 2rpx $prism-primary-alpha-40, 0 4rpx 16rpx $prism-primary-alpha-15;
97
+ }
98
+
99
+ .clear-icon .fa-circle-xmark,
100
+ .eye-icon .fa-solid,
101
+ .eye-icon .fa {
102
+ color: var(--prism-text-placeholder, $prism-text-placeholder-dark);
103
+ }
104
+
105
+ .code-btn {
106
+ color: var(--prism-primary-color, $prism-primary-color-dark);
107
+
108
+ &.disabled {
109
+ color: var(--prism-text-placeholder, $prism-text-placeholder-dark);
110
+ }
111
+ }
112
+ }
113
+ }
114
+
115
+ /* ============================================================
116
+ 表单项
117
+ ============================================================ */
118
+
119
+ .prism-form-item {
120
+ margin-bottom: 32rpx;
121
+
122
+ .label,
123
+ text.label {
124
+ display: block !important;
125
+ font-size: 28rpx !important;
126
+ color: var(--prism-text-regular, #4E5969) !important;
127
+ margin-bottom: 16rpx !important;
128
+ font-weight: 500 !important;
129
+ line-height: 1.4 !important;
130
+ }
131
+
132
+ .dark-mode & {
133
+ .label,
134
+ text.label {
135
+ color: var(--prism-text-regular, #D4D6DB) !important;
136
+ }
137
+ }
138
+ }
139
+
140
+ /* ============================================================
141
+ 复选框
142
+ ============================================================ */
143
+
144
+ .prism-checkbox {
145
+ width: 40rpx;
146
+ height: 40rpx;
147
+ border: 2rpx solid var(--prism-border-color-base, $prism-border-color-base);
148
+ border-radius: 8rpx;
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ transition: all 0.25s ease;
153
+ background: var(--prism-bg-color-card, #fff);
154
+
155
+ &.checked {
156
+ background: var(--prism-primary-color, $prism-primary-color);
157
+ border-color: var(--prism-primary-color, $prism-primary-color);
158
+ }
159
+
160
+ .check-icon {
161
+ color: #fff;
162
+ font-size: 24rpx;
163
+ font-weight: bold;
164
+ }
165
+
166
+ .dark-mode & {
167
+ border-color: $prism-primary-alpha-30;
168
+ background: $prism-primary-alpha-15;
169
+
170
+ &.checked {
171
+ background: $prism-primary-alpha-25;
172
+ border-color: $prism-primary-alpha-50;
173
+
174
+ .check-icon {
175
+ color: var(--prism-primary-color, $prism-primary-color-dark);
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ /* ============================================================
182
+ 选项卡组件
183
+ ============================================================ */
184
+
185
+ .prism-tabs {
186
+ display: flex;
187
+ justify-content: flex-start;
188
+ margin-bottom: 40rpx;
189
+ gap: 48rpx;
190
+
191
+ .tab-item {
192
+ padding: 8rpx 0;
193
+ font-size: 30rpx;
194
+ font-weight: 500;
195
+ color: var(--prism-text-secondary, $prism-text-secondary);
196
+ text-align: center;
197
+ position: relative;
198
+ transition: all 0.3s ease;
199
+
200
+ &.active {
201
+ color: var(--prism-text-primary, $prism-text-primary);
202
+ font-weight: 600;
203
+
204
+ &::after {
205
+ content: '';
206
+ position: absolute;
207
+ bottom: 0;
208
+ left: 0;
209
+ right: 0;
210
+ height: 4rpx;
211
+ background: var(--prism-primary-color, $prism-primary-color);
212
+ border-radius: 2rpx;
213
+ }
214
+ }
215
+ }
216
+
217
+ .dark-mode & .tab-item {
218
+ color: var(--prism-text-secondary, $prism-text-secondary-dark);
219
+
220
+ &.active {
221
+ color: var(--prism-primary-color, $prism-primary-color-dark);
222
+
223
+ &::after {
224
+ background: var(--prism-primary-color, $prism-primary-color-dark);
225
+ }
226
+ }
227
+ }
228
+ }
229
+
230
+ /* ============================================================
231
+ 胶囊标签
232
+ ============================================================ */
233
+
234
+ .prism-capsule-tabs-scroll {
235
+ white-space: nowrap;
236
+ -webkit-overflow-scrolling: touch;
237
+
238
+ &::-webkit-scrollbar {
239
+ display: none;
240
+ }
241
+ }
242
+
243
+ .prism-capsule-tabs {
244
+ display: inline-flex;
245
+ align-items: center;
246
+ gap: 16rpx;
247
+ padding: 8rpx 0;
248
+ }
249
+
250
+ .prism-capsule-tab {
251
+ display: inline-flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ gap: 6rpx;
255
+ padding: 12rpx 18rpx;
256
+ font-size: 26rpx;
257
+ line-height: 1.4;
258
+ color: var(--prism-text-secondary, #86909C);
259
+ font-weight: 500;
260
+ white-space: nowrap;
261
+ flex-shrink: 0;
262
+ background: rgba(0, 0, 0, 0.04);
263
+ border-radius: 30rpx;
264
+ transition: all 0.2s ease;
265
+
266
+ &:active {
267
+ opacity: 0.8;
268
+ transform: scale(0.98);
269
+ }
270
+
271
+ &.active {
272
+ color: #ffffff;
273
+ background: var(--prism-primary-color, #3478F6);
274
+ box-shadow: 0 4rpx 12rpx rgba(52, 120, 246, 0.3);
275
+ }
276
+
277
+ .tab-count {
278
+ font-size: 24rpx;
279
+ }
280
+
281
+ .dark-mode & {
282
+ background: rgba(255, 255, 255, 0.06);
283
+ color: var(--prism-text-secondary, #86909C);
284
+
285
+ &.active {
286
+ background: var(--prism-primary-color, #3478F6);
287
+ color: #ffffff;
288
+ }
289
+ }
290
+ }
291
+
292
+ /* ============================================================
293
+ 分割线
294
+ ============================================================ */
295
+
296
+ .prism-divider {
297
+ display: flex;
298
+ align-items: center;
299
+
300
+ &::before,
301
+ &::after {
302
+ content: '';
303
+ flex: 1;
304
+ height: 1rpx;
305
+ background: var(--prism-border-color-base, $prism-border-color-base);
306
+ }
307
+
308
+ .text {
309
+ padding: 0 32rpx;
310
+ font-size: 26rpx;
311
+ color: var(--prism-text-secondary, $prism-text-secondary);
312
+ }
313
+
314
+ .dark-mode & {
315
+ &::before,
316
+ &::after {
317
+ background: var(--prism-border-color-base, $prism-border-color-base-dark);
318
+ }
319
+
320
+ .text {
321
+ color: var(--prism-text-secondary, $prism-text-secondary-dark);
322
+ }
323
+ }
324
+ }
325
+
326
+ /* ============================================================
327
+ 开关组件
328
+ ============================================================ */
329
+
330
+ .prism-switch {
331
+ position: relative;
332
+ width: 100rpx;
333
+ height: 56rpx;
334
+ background: var(--prism-border-color-base, #E5E6EB);
335
+ border-radius: 28rpx;
336
+ transition: all 0.3s ease;
337
+ cursor: pointer;
338
+
339
+ &::after {
340
+ content: '';
341
+ position: absolute;
342
+ top: 4rpx;
343
+ left: 4rpx;
344
+ width: 48rpx;
345
+ height: 48rpx;
346
+ background: #FFFFFF;
347
+ border-radius: 50%;
348
+ box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.15);
349
+ transition: all 0.3s ease;
350
+ }
351
+
352
+ &.active {
353
+ background: var(--prism-primary-color, #3478F6);
354
+
355
+ &::after {
356
+ left: calc(100% - 52rpx);
357
+ }
358
+ }
359
+
360
+ // 方形开关
361
+ &.square {
362
+ border-radius: 12rpx;
363
+
364
+ &::after {
365
+ border-radius: 8rpx;
366
+ }
367
+ }
368
+
369
+ .dark-mode & {
370
+ // 关闭状态 - 灰色
371
+ background: rgba(255, 255, 255, 0.15);
372
+ border: 2rpx solid rgba(255, 255, 255, 0.2);
373
+
374
+ &::after {
375
+ background: rgba(255, 255, 255, 0.7);
376
+ }
377
+
378
+ // 开启状态 - 蓝色
379
+ &.active {
380
+ background: var(--prism-primary-color, #3478F6);
381
+ border-color: var(--prism-primary-color, #3478F6);
382
+
383
+ &::after {
384
+ background: #FFFFFF;
385
+ }
386
+ }
387
+ }
388
+ }
389
+
390
+ /* ============================================================
391
+ Textarea 文本域
392
+ ============================================================ */
393
+
394
+ .prism-textarea {
395
+ width: 100%;
396
+ min-height: 200rpx;
397
+ padding: 24rpx 28rpx;
398
+ font-size: 28rpx;
399
+ color: var(--prism-text-primary, #1D2129);
400
+ background: var(--prism-input-bg, #EBEEF2);
401
+ border: none;
402
+ border-radius: 12rpx;
403
+ box-sizing: border-box;
404
+ transition: all 0.3s ease;
405
+ resize: none;
406
+
407
+ &::placeholder {
408
+ color: var(--prism-text-placeholder, #C9CDD4);
409
+ }
410
+
411
+ &:focus {
412
+ outline: none;
413
+ }
414
+
415
+ &--count {
416
+ padding-bottom: 48rpx;
417
+ }
418
+
419
+ .dark-mode & {
420
+ background: var(--prism-input-bg, #2A2A2A);
421
+ color: var(--prism-text-primary, #E5E6EB);
422
+ }
423
+ }
424
+
425
+ .prism-textarea-wrapper {
426
+ position: relative;
427
+ background: var(--prism-input-bg, #EBEEF2);
428
+ border-radius: 12rpx;
429
+ overflow: hidden;
430
+
431
+ .prism-textarea {
432
+ background: transparent;
433
+ }
434
+
435
+ .prism-textarea-count {
436
+ position: absolute;
437
+ right: 20rpx;
438
+ bottom: 16rpx;
439
+ font-size: 24rpx;
440
+ color: var(--prism-text-placeholder, #C9CDD4);
441
+ }
442
+
443
+ .dark-mode & {
444
+ background: var(--prism-input-bg, #2A2A2A);
445
+ }
446
+ }
447
+
448
+ /* ============================================================
449
+ Search 搜索框
450
+ ============================================================ */
451
+
452
+ .prism-search {
453
+ display: flex;
454
+ align-items: center;
455
+ background: var(--prism-input-bg, #EBEEF2);
456
+ border-radius: 40rpx;
457
+ padding: 0 24rpx;
458
+ height: 72rpx;
459
+ transition: all 0.3s ease;
460
+
461
+ &__icon {
462
+ font-size: 28rpx;
463
+ color: var(--prism-text-placeholder, #C9CDD4);
464
+ margin-right: 16rpx;
465
+ flex-shrink: 0;
466
+ }
467
+
468
+ &__input {
469
+ flex: 1;
470
+ font-size: 28rpx;
471
+ color: var(--prism-text-primary, #1D2129);
472
+ background: transparent;
473
+ border: none;
474
+ outline: none;
475
+ }
476
+
477
+ &__clear {
478
+ font-size: 28rpx;
479
+ color: var(--prism-text-placeholder, #C9CDD4);
480
+ padding: 8rpx;
481
+ margin-left: 8rpx;
482
+ flex-shrink: 0;
483
+ }
484
+
485
+ &__action {
486
+ font-size: 28rpx;
487
+ color: var(--prism-primary-color, #3478F6);
488
+ margin-left: 16rpx;
489
+ flex-shrink: 0;
490
+ }
491
+
492
+ .dark-mode & {
493
+ background: var(--prism-input-bg, #2A2A2A);
494
+
495
+ &__input {
496
+ color: var(--prism-text-primary, #E5E6EB);
497
+ }
498
+ }
499
+ }
500
+
501
+ /* ============================================================
502
+ Radio 单选框
503
+ ============================================================ */
504
+
505
+ .prism-radio {
506
+ width: 40rpx;
507
+ height: 40rpx;
508
+ border: 2rpx solid var(--prism-border-color-base, #E5E6EB);
509
+ border-radius: 50%;
510
+ display: flex;
511
+ align-items: center;
512
+ justify-content: center;
513
+ transition: all 0.25s ease;
514
+ background: var(--prism-bg-color-card, #fff);
515
+
516
+ &.checked {
517
+ border-color: var(--prism-primary-color, #3478F6);
518
+
519
+ &::after {
520
+ content: '';
521
+ width: 20rpx;
522
+ height: 20rpx;
523
+ background: var(--prism-primary-color, #3478F6);
524
+ border-radius: 50%;
525
+ }
526
+ }
527
+
528
+ .dark-mode & {
529
+ border-color: rgba(52, 120, 246, 0.3);
530
+ background: rgba(52, 120, 246, 0.15);
531
+
532
+ &.checked {
533
+ border-color: rgba(52, 120, 246, 0.5);
534
+
535
+ &::after {
536
+ background: var(--prism-primary-color, #3478F6);
537
+ }
538
+ }
539
+ }
540
+ }
541
+
542
+ /* ============================================================
543
+ Picker 选择器触发器
544
+ ============================================================ */
545
+
546
+ .prism-picker {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: space-between;
550
+ background: var(--prism-input-bg, #EBEEF2);
551
+ border-radius: 12rpx;
552
+ padding: 0 28rpx;
553
+ min-height: 88rpx;
554
+ transition: all 0.3s ease;
555
+
556
+ &__value {
557
+ flex: 1;
558
+ font-size: 28rpx;
559
+ color: var(--prism-text-primary, #1D2129);
560
+ }
561
+
562
+ &__placeholder {
563
+ flex: 1;
564
+ font-size: 28rpx;
565
+ color: var(--prism-text-placeholder, #C9CDD4);
566
+ }
567
+
568
+ &__arrow {
569
+ font-size: 24rpx;
570
+ color: var(--prism-text-placeholder, #C9CDD4);
571
+ margin-left: 16rpx;
572
+ }
573
+
574
+ .dark-mode & {
575
+ background: var(--prism-input-bg, #2A2A2A);
576
+
577
+ &__value {
578
+ color: var(--prism-text-primary, #E5E6EB);
579
+ }
580
+ }
581
+ }
582
+
583
+ /* ============================================================
584
+ Stepper 步进器
585
+ ============================================================ */
586
+
587
+ .prism-stepper {
588
+ display: inline-flex;
589
+ align-items: center;
590
+ background: var(--prism-input-bg, #EBEEF2);
591
+ border-radius: 8rpx;
592
+ overflow: hidden;
593
+
594
+ &__btn {
595
+ width: 56rpx;
596
+ height: 56rpx;
597
+ display: flex;
598
+ align-items: center;
599
+ justify-content: center;
600
+ font-size: 28rpx;
601
+ color: var(--prism-text-primary, #1D2129);
602
+ transition: all 0.2s ease;
603
+
604
+ &:active {
605
+ background: rgba(0, 0, 0, 0.05);
606
+ }
607
+
608
+ &--disabled {
609
+ color: var(--prism-text-placeholder, #C9CDD4);
610
+ pointer-events: none;
611
+ }
612
+ }
613
+
614
+ &__input {
615
+ width: 80rpx;
616
+ height: 56rpx;
617
+ text-align: center;
618
+ font-size: 28rpx;
619
+ color: var(--prism-text-primary, #1D2129);
620
+ background: transparent;
621
+ border: none;
622
+ border-left: 1rpx solid var(--prism-border-color-light, #F2F3F5);
623
+ border-right: 1rpx solid var(--prism-border-color-light, #F2F3F5);
624
+ }
625
+
626
+ .dark-mode & {
627
+ background: var(--prism-input-bg, #2A2A2A);
628
+
629
+ &__btn {
630
+ color: var(--prism-text-primary, #E5E6EB);
631
+
632
+ &:active {
633
+ background: rgba(255, 255, 255, 0.1);
634
+ }
635
+ }
636
+
637
+ &__input {
638
+ color: var(--prism-text-primary, #E5E6EB);
639
+ border-color: rgba(255, 255, 255, 0.1);
640
+ }
641
+ }
642
+ }
643
+
644
+ /* ============================================================
645
+ Rate 评分
646
+ ============================================================ */
647
+
648
+ .prism-rate {
649
+ display: inline-flex;
650
+ align-items: center;
651
+ gap: 8rpx;
652
+
653
+ &__item {
654
+ font-size: 40rpx;
655
+ color: var(--prism-border-color-base, #E5E6EB);
656
+ transition: all 0.2s ease;
657
+
658
+ &--active {
659
+ color: #FADB14;
660
+ }
661
+
662
+ &--half {
663
+ position: relative;
664
+
665
+ &::before {
666
+ content: '\f005';
667
+ font-family: 'Font Awesome 6 Free';
668
+ font-weight: 900;
669
+ position: absolute;
670
+ left: 0;
671
+ top: 0;
672
+ width: 50%;
673
+ overflow: hidden;
674
+ color: #FADB14;
675
+ }
676
+ }
677
+ }
678
+
679
+ &--disabled {
680
+ opacity: 0.6;
681
+ pointer-events: none;
682
+ }
683
+
684
+ .dark-mode & {
685
+ &__item {
686
+ color: rgba(255, 255, 255, 0.2);
687
+ }
688
+ }
689
+ }
690
+
691
+ /* ============================================================
692
+ 语音输入图标
693
+ ============================================================ */
694
+
695
+ .prism-voice-icon {
696
+ padding: 16rpx 0 16rpx 16rpx;
697
+ display: flex;
698
+ align-items: center;
699
+ justify-content: center;
700
+ flex-shrink: 0;
701
+
702
+ .fa, .fa-solid {
703
+ font-size: 32rpx;
704
+ color: var(--prism-primary-color, #3478F6);
705
+ }
706
+
707
+ &:active {
708
+ opacity: 0.6;
709
+ }
710
+
711
+ .dark-mode & {
712
+ .fa, .fa-solid {
713
+ color: var(--prism-primary-color, #3478F6);
714
+ }
715
+ }
716
+ }
717
+
718
+ /* ============================================================
719
+ 选择框样式
720
+ ============================================================ */
721
+
722
+ .prism-select-box {
723
+ display: flex;
724
+ align-items: center;
725
+ justify-content: space-between;
726
+ background: var(--prism-input-bg, #EBEEF2);
727
+ border-radius: 12rpx;
728
+ padding: 0 28rpx;
729
+ min-height: 88rpx;
730
+ transition: all 0.3s ease;
731
+
732
+ .placeholder {
733
+ color: var(--prism-text-placeholder, #C9CDD4);
734
+ }
735
+
736
+ .select-text {
737
+ flex: 1;
738
+ font-size: 28rpx;
739
+ color: var(--prism-text-primary, #1D2129);
740
+ }
741
+
742
+ .select-arrow {
743
+ font-size: 28rpx;
744
+ color: var(--prism-text-placeholder, #C9CDD4);
745
+ flex-shrink: 0;
746
+ margin-left: 16rpx;
747
+ }
748
+
749
+ .dark-mode & {
750
+ background: var(--prism-input-bg, #2A2A2A);
751
+
752
+ .select-text {
753
+ color: var(--prism-text-primary, #E5E6EB);
754
+ }
755
+ }
756
+ }
757
+
758
+ /* ============================================================
759
+ 地址输入
760
+ ============================================================ */
761
+
762
+ .prism-address-wrapper {
763
+ display: flex;
764
+ align-items: center;
765
+ min-height: 88rpx;
766
+ background: var(--prism-input-bg, #EBEEF2);
767
+ border-radius: 12rpx;
768
+ padding: 0 28rpx;
769
+
770
+ .prism-input-box {
771
+ flex: 1;
772
+ background: transparent !important;
773
+ border: none !important;
774
+ padding: 0 !important;
775
+ min-height: auto;
776
+ }
777
+
778
+ .location-btn {
779
+ padding: 8rpx 0 8rpx 16rpx;
780
+ display: flex;
781
+ align-items: center;
782
+ justify-content: center;
783
+ flex-shrink: 0;
784
+
785
+ .fa, .fa-solid {
786
+ font-size: 32rpx;
787
+ color: var(--prism-primary-color, #3478F6);
788
+ }
789
+
790
+ &:active {
791
+ opacity: 0.6;
792
+ }
793
+ }
794
+
795
+ .dark-mode & {
796
+ background: var(--prism-input-bg, #2A2A2A);
797
+ }
798
+ }
799
+
800
+ /* 地图容器 */
801
+ .prism-map-container {
802
+ margin-top: 16rpx;
803
+ border-radius: 16rpx;
804
+ overflow: hidden;
805
+ position: relative;
806
+ height: 300rpx;
807
+ }
808
+
809
+ .prism-location-map {
810
+ width: 100%;
811
+ height: 100%;
812
+ border-radius: 16rpx;
813
+ display: block;
814
+ }
815
+
816
+ .prism-relocate-tip {
817
+ position: absolute;
818
+ bottom: 16rpx;
819
+ left: 50%;
820
+ transform: translateX(-50%);
821
+ padding: 10rpx 24rpx;
822
+ font-size: 24rpx;
823
+ color: #fff;
824
+ background-color: rgba(52, 120, 246, 0.9);
825
+ border-radius: 20rpx;
826
+ text-align: center;
827
+ white-space: nowrap;
828
+ display: flex;
829
+ align-items: center;
830
+ gap: 8rpx;
831
+ }
832
+
833
+ .dark-mode .prism-map-container {
834
+ border-color: rgba(255, 255, 255, 0.1);
835
+ }
836
+
837
+ /* ============================================================
838
+ 标签选择器
839
+ ============================================================ */
840
+
841
+ .prism-tag-selector {
842
+ display: flex;
843
+ flex-wrap: wrap;
844
+ gap: 16rpx;
845
+ }
846
+
847
+ .prism-tag-option {
848
+ padding: 16rpx 32rpx;
849
+ background: var(--prism-bg-color, #F7F8FA);
850
+ border: 1rpx solid var(--prism-border-color-light, #EBEEF2);
851
+ border-radius: 32rpx;
852
+ font-size: 26rpx;
853
+ color: var(--prism-text-secondary, #86909C);
854
+ transition: all 0.2s ease;
855
+
856
+ &.active {
857
+ background: rgba(52, 120, 246, 0.1);
858
+ border-color: var(--prism-primary-color, #3478F6);
859
+ color: var(--prism-primary-color, #3478F6);
860
+ }
861
+
862
+ &:active {
863
+ opacity: 0.8;
864
+ }
865
+
866
+ // 方形圆角标签
867
+ &.square {
868
+ border-radius: 8rpx;
869
+ }
870
+
871
+ .dark-mode & {
872
+ background: rgba(255, 255, 255, 0.06);
873
+ border-color: rgba(255, 255, 255, 0.1);
874
+
875
+ &.active {
876
+ background: rgba(52, 120, 246, 0.2);
877
+ }
878
+ }
879
+ }
880
+
881
+ /* ============================================================
882
+ 图片上传
883
+ ============================================================ */
884
+
885
+ .prism-image-upload-grid {
886
+ display: grid;
887
+ grid-template-columns: repeat(3, 1fr);
888
+ gap: 16rpx;
889
+ }
890
+
891
+ .prism-image-item {
892
+ position: relative;
893
+ width: 100%;
894
+ padding-bottom: 100%;
895
+ background: var(--prism-input-bg, #EBEEF2);
896
+ border-radius: 12rpx;
897
+ overflow: hidden;
898
+
899
+ &.has-image {
900
+ background: transparent;
901
+ }
902
+ }
903
+
904
+ .prism-image-preview {
905
+ position: absolute;
906
+ top: 0;
907
+ left: 0;
908
+ width: 100%;
909
+ height: 100%;
910
+ object-fit: cover;
911
+ }
912
+
913
+ .prism-image-remove {
914
+ position: absolute;
915
+ top: 8rpx;
916
+ right: 8rpx;
917
+ width: 40rpx;
918
+ height: 40rpx;
919
+ background: rgba(0, 0, 0, 0.5);
920
+ border-radius: 50%;
921
+ display: flex;
922
+ align-items: center;
923
+ justify-content: center;
924
+
925
+ .fa {
926
+ font-size: 24rpx;
927
+ color: #FFFFFF;
928
+ }
929
+ }
930
+
931
+ .prism-image-main-badge {
932
+ position: absolute;
933
+ left: 0;
934
+ bottom: 0;
935
+ padding: 4rpx 12rpx;
936
+ background: var(--prism-primary-color, #3478F6);
937
+ color: #FFFFFF;
938
+ font-size: 20rpx;
939
+ border-radius: 0 8rpx 0 0;
940
+ }
941
+
942
+ .prism-image-upload-btn {
943
+ position: absolute;
944
+ top: 0;
945
+ left: 0;
946
+ width: 100%;
947
+ height: 100%;
948
+ display: flex;
949
+ flex-direction: column;
950
+ align-items: center;
951
+ justify-content: center;
952
+ gap: 8rpx;
953
+
954
+ .fa {
955
+ font-size: 48rpx;
956
+ color: var(--prism-text-placeholder, #C9CDD4);
957
+ }
958
+
959
+ text:last-child {
960
+ font-size: 24rpx;
961
+ color: var(--prism-text-placeholder, #C9CDD4);
962
+ }
963
+ }
964
+
965
+ .prism-upload-tip {
966
+ font-size: 24rpx;
967
+ color: var(--prism-text-secondary, #86909C);
968
+ margin-top: 16rpx;
969
+ }
970
+
971
+ /* 头像上传 */
972
+ .prism-avatar-upload {
973
+ position: relative;
974
+ width: 160rpx;
975
+ height: 160rpx;
976
+ border-radius: 50%;
977
+ overflow: visible;
978
+ }
979
+
980
+ .prism-avatar-preview {
981
+ width: 100%;
982
+ height: 100%;
983
+ border-radius: 50%;
984
+ object-fit: cover;
985
+ }
986
+
987
+ .prism-avatar-placeholder {
988
+ width: 100%;
989
+ height: 100%;
990
+ border-radius: 50%;
991
+ background: var(--prism-input-bg, #EBEEF2);
992
+ display: flex;
993
+ align-items: center;
994
+ justify-content: center;
995
+
996
+ .fa {
997
+ font-size: 64rpx;
998
+ color: var(--prism-text-placeholder, #C9CDD4);
999
+ }
1000
+
1001
+ .dark-mode & {
1002
+ background: var(--prism-input-bg, #2A2A2A);
1003
+ }
1004
+ }
1005
+
1006
+ .prism-avatar-edit {
1007
+ position: absolute;
1008
+ right: 0;
1009
+ bottom: 0;
1010
+ width: 48rpx;
1011
+ height: 48rpx;
1012
+ background: var(--prism-primary-color, #3478F6);
1013
+ border-radius: 50%;
1014
+ display: flex;
1015
+ align-items: center;
1016
+ justify-content: center;
1017
+ border: 4rpx solid var(--prism-bg-color-card, #FFFFFF);
1018
+
1019
+ .fa {
1020
+ font-size: 24rpx;
1021
+ color: #FFFFFF;
1022
+ }
1023
+
1024
+ .dark-mode & {
1025
+ border-color: var(--prism-bg-color-card, #1A1A1A);
1026
+ }
1027
+ }
1028
+
1029
+ /* ============================================================
1030
+ Slider 滑块
1031
+ ============================================================ */
1032
+
1033
+ .prism-slider-wrapper {
1034
+ padding: 16rpx 0;
1035
+ }
1036
+
1037
+ .prism-slider-label {
1038
+ display: flex;
1039
+ justify-content: space-between;
1040
+ align-items: center;
1041
+ margin-bottom: 8rpx;
1042
+
1043
+ .value-text {
1044
+ font-size: 28rpx;
1045
+ font-weight: 600;
1046
+ color: var(--prism-primary-color, #3478F6);
1047
+ }
1048
+ }
1049
+
1050
+ /* ============================================================
1051
+ Textarea 带工具栏
1052
+ ============================================================ */
1053
+
1054
+ .prism-textarea-tools-wrapper {
1055
+ position: relative;
1056
+ background: var(--prism-input-bg, #EBEEF2);
1057
+ border-radius: 12rpx;
1058
+ overflow: hidden;
1059
+
1060
+ .prism-textarea {
1061
+ padding-bottom: 80rpx;
1062
+ background: transparent;
1063
+ }
1064
+
1065
+ .dark-mode & {
1066
+ background: var(--prism-input-bg, #2A2A2A);
1067
+ }
1068
+ }
1069
+
1070
+ .prism-textarea-tools {
1071
+ position: absolute;
1072
+ bottom: 12rpx;
1073
+ left: 24rpx;
1074
+ right: 24rpx;
1075
+ display: flex;
1076
+ justify-content: space-between;
1077
+ align-items: center;
1078
+ z-index: 10;
1079
+ }
1080
+
1081
+ .prism-textarea-tools-right {
1082
+ display: flex;
1083
+ gap: 16rpx;
1084
+ }
1085
+
1086
+ .prism-tool-icon-btn {
1087
+ width: 64rpx;
1088
+ height: 64rpx;
1089
+ border-radius: 50%;
1090
+ border: 1rpx solid var(--prism-border-color-light, #E2E8F0);
1091
+ background: var(--prism-bg-color-card, #FFFFFF);
1092
+ display: flex;
1093
+ align-items: center;
1094
+ justify-content: center;
1095
+ color: var(--prism-text-secondary, #86909C);
1096
+ box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.1);
1097
+
1098
+ .fa, .fa-solid {
1099
+ font-size: 28rpx;
1100
+ }
1101
+
1102
+ &:active {
1103
+ background: var(--prism-bg-color, #F8F9FA);
1104
+ border-color: var(--prism-primary-color, #3478F6);
1105
+ color: var(--prism-primary-color, #3478F6);
1106
+ }
1107
+
1108
+ .dark-mode & {
1109
+ background: rgba(255, 255, 255, 0.1);
1110
+ border-color: rgba(255, 255, 255, 0.15);
1111
+ color: var(--prism-text-secondary, #86909C);
1112
+ }
1113
+ }
1114
+
1115
+ /* AI 辅助按钮 */
1116
+ .prism-ai-assist-btn {
1117
+ height: 64rpx;
1118
+ padding: 0 4rpx;
1119
+ background: transparent;
1120
+ display: inline-flex;
1121
+ align-items: center;
1122
+ gap: 12rpx;
1123
+ font-size: 30rpx;
1124
+ font-weight: 700;
1125
+ margin-top: 16rpx;
1126
+
1127
+ .fa, .fa-solid {
1128
+ font-size: 36rpx;
1129
+ background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 25%, #c44569 50%, #764ba2 75%, #667eea 100%);
1130
+ -webkit-background-clip: text;
1131
+ -webkit-text-fill-color: transparent;
1132
+ background-clip: text;
1133
+ }
1134
+
1135
+ text:last-child {
1136
+ background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 25%, #c44569 50%, #764ba2 75%, #667eea 100%);
1137
+ -webkit-background-clip: text;
1138
+ -webkit-text-fill-color: transparent;
1139
+ background-clip: text;
1140
+ }
1141
+
1142
+ &:active {
1143
+ opacity: 0.8;
1144
+ }
1145
+ }
1146
+
1147
+ /* ============================================================
1148
+ 分格输入框(验证码/密码)
1149
+ ============================================================ */
1150
+
1151
+ // 公共分格输入框样式
1152
+ .prism-box-input {
1153
+ display: flex;
1154
+ justify-content: center;
1155
+ gap: 16rpx;
1156
+ }
1157
+
1158
+ .prism-box-item {
1159
+ width: 76rpx;
1160
+ height: 88rpx;
1161
+ background: var(--prism-input-bg, #EBEEF2);
1162
+ border-radius: 12rpx;
1163
+ display: flex;
1164
+ align-items: center;
1165
+ justify-content: center;
1166
+ border: 2rpx solid transparent;
1167
+ transition: all 0.2s ease;
1168
+ position: relative;
1169
+
1170
+ &.active {
1171
+ border-color: var(--prism-primary-color, #3478F6);
1172
+ background: var(--prism-primary-light, rgba(52, 120, 246, 0.08));
1173
+ }
1174
+
1175
+ &.filled {
1176
+ background: var(--prism-primary-light, rgba(52, 120, 246, 0.08));
1177
+ }
1178
+
1179
+ .dark-mode & {
1180
+ background: var(--prism-input-bg, #2A2A2A);
1181
+
1182
+ &.active {
1183
+ background: rgba(52, 120, 246, 0.15);
1184
+ }
1185
+
1186
+ &.filled {
1187
+ background: rgba(52, 120, 246, 0.15);
1188
+ }
1189
+ }
1190
+ }
1191
+
1192
+ // 闪烁光标
1193
+ .prism-input-cursor {
1194
+ width: 4rpx;
1195
+ height: 40rpx;
1196
+ background: var(--prism-primary-color, #3478F6);
1197
+ animation: prism-cursor-blink 1s infinite;
1198
+ }
1199
+
1200
+ @keyframes prism-cursor-blink {
1201
+ 0%, 50% { opacity: 1; }
1202
+ 51%, 100% { opacity: 0; }
1203
+ }
1204
+
1205
+ // 密码点
1206
+ .prism-password-dot {
1207
+ width: 24rpx;
1208
+ height: 24rpx;
1209
+ background: var(--prism-text-primary, #1D2129);
1210
+ border-radius: 50%;
1211
+
1212
+ .dark-mode & {
1213
+ background: var(--prism-text-primary, #E5E6EB);
1214
+ }
1215
+ }
1216
+
1217
+ // 验证码文字
1218
+ .prism-code-text {
1219
+ font-size: 48rpx;
1220
+ font-weight: 600;
1221
+ color: var(--prism-text-primary, #1D2129);
1222
+
1223
+ .dark-mode & {
1224
+ color: var(--prism-text-primary, #E5E6EB);
1225
+ }
1226
+ }
1227
+
1228
+ /* ============================================================
1229
+ 自定义数字键盘
1230
+ ============================================================ */
1231
+
1232
+ .prism-keyboard-modal {
1233
+ position: fixed;
1234
+ top: 0;
1235
+ left: 0;
1236
+ right: 0;
1237
+ bottom: 0;
1238
+ background: var(--prism-mask-bg, rgba(0, 0, 0, 0.5));
1239
+ z-index: 9999;
1240
+ display: flex;
1241
+ align-items: flex-end;
1242
+ }
1243
+
1244
+ .prism-keyboard-content {
1245
+ width: 100%;
1246
+ background: var(--prism-bg-color, #F7F8FA);
1247
+ border-radius: 24rpx 24rpx 0 0;
1248
+ padding-bottom: env(safe-area-inset-bottom);
1249
+
1250
+ .dark-mode & {
1251
+ background: var(--prism-bg-color, #1A1A1A);
1252
+ }
1253
+ }
1254
+
1255
+ .prism-keyboard-header {
1256
+ display: flex;
1257
+ justify-content: space-between;
1258
+ align-items: center;
1259
+ padding: 24rpx 32rpx;
1260
+ background: var(--prism-bg-color-card, #FFFFFF);
1261
+ border-radius: 24rpx 24rpx 0 0;
1262
+
1263
+ .keyboard-title {
1264
+ font-size: 32rpx;
1265
+ font-weight: 600;
1266
+ color: var(--prism-text-primary, #1D2129);
1267
+ }
1268
+
1269
+ .keyboard-done {
1270
+ font-size: 30rpx;
1271
+ color: var(--prism-primary-color, #3478F6);
1272
+ font-weight: 500;
1273
+ }
1274
+
1275
+ .dark-mode & {
1276
+ background: var(--prism-bg-color-card, #242424);
1277
+
1278
+ .keyboard-title {
1279
+ color: var(--prism-text-primary, #E5E6EB);
1280
+ }
1281
+ }
1282
+ }
1283
+
1284
+ .prism-keyboard-grid {
1285
+ padding: 16rpx;
1286
+ }
1287
+
1288
+ .prism-keyboard-row {
1289
+ display: flex;
1290
+ gap: 12rpx;
1291
+ margin-bottom: 12rpx;
1292
+
1293
+ &:last-child {
1294
+ margin-bottom: 0;
1295
+ }
1296
+ }
1297
+
1298
+ .prism-key-btn {
1299
+ flex: 1;
1300
+ height: 100rpx;
1301
+ background: var(--prism-bg-color-card, #FFFFFF);
1302
+ border-radius: 12rpx;
1303
+ display: flex;
1304
+ align-items: center;
1305
+ justify-content: center;
1306
+ transition: all 0.15s ease;
1307
+ box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.05);
1308
+
1309
+ .key-text {
1310
+ font-size: 44rpx;
1311
+ font-weight: 500;
1312
+ color: var(--prism-text-primary, #1D2129);
1313
+ }
1314
+
1315
+ &:active {
1316
+ background: var(--prism-primary-color, #3478F6);
1317
+ transform: scale(0.98);
1318
+
1319
+ .key-text {
1320
+ color: #FFFFFF;
1321
+ }
1322
+ }
1323
+
1324
+ &--func {
1325
+ background: var(--prism-bg-color, #E8E8E8);
1326
+
1327
+ .key-text {
1328
+ font-size: 28rpx;
1329
+ color: var(--prism-text-secondary, #86909C);
1330
+ }
1331
+ }
1332
+
1333
+ &--delete {
1334
+ background: var(--prism-bg-color, #E8E8E8);
1335
+
1336
+ .key-text {
1337
+ font-size: 28rpx;
1338
+ font-weight: 500;
1339
+ color: var(--prism-danger-color, #F53F3F);
1340
+ }
1341
+ }
1342
+
1343
+ .dark-mode & {
1344
+ background: var(--prism-bg-color-card, #242424);
1345
+
1346
+ .key-text {
1347
+ color: var(--prism-text-primary, #E5E6EB);
1348
+ }
1349
+
1350
+ &--func, &--delete {
1351
+ background: rgba(255, 255, 255, 0.1);
1352
+ }
1353
+ }
1354
+ }
1355
+
1356
+ /* ============================================================
1357
+ 语音输入弹窗
1358
+ ============================================================ */
1359
+
1360
+ .voice-panel {
1361
+ position: fixed;
1362
+ top: 0;
1363
+ left: 0;
1364
+ right: 0;
1365
+ bottom: 0;
1366
+ background: var(--prism-mask-bg, rgba(0, 0, 0, 0.5));
1367
+ display: flex;
1368
+ align-items: center;
1369
+ justify-content: center;
1370
+ z-index: 9999;
1371
+ }
1372
+
1373
+ .voice-content {
1374
+ width: 560rpx;
1375
+ background: var(--prism-bg-color-card, #FFFFFF);
1376
+ border-radius: 24rpx;
1377
+ padding: 40rpx;
1378
+ display: flex;
1379
+ flex-direction: column;
1380
+ align-items: center;
1381
+
1382
+ .dark-mode & {
1383
+ background: var(--prism-bg-color-card, #1A1A1A);
1384
+ }
1385
+ }
1386
+
1387
+ .voice-title {
1388
+ font-size: 32rpx;
1389
+ font-weight: 600;
1390
+ color: var(--prism-text-primary, #1D2129);
1391
+ margin-bottom: 40rpx;
1392
+
1393
+ .dark-mode & {
1394
+ color: var(--prism-text-primary, #E5E6EB);
1395
+ }
1396
+ }
1397
+
1398
+ .voice-wave {
1399
+ display: flex;
1400
+ align-items: center;
1401
+ justify-content: center;
1402
+ gap: 12rpx;
1403
+ height: 100rpx;
1404
+ margin-bottom: 24rpx;
1405
+
1406
+ .wave-bar {
1407
+ width: 8rpx;
1408
+ height: 20rpx;
1409
+ background: var(--prism-text-placeholder, #C9CDD4);
1410
+ border-radius: 4rpx;
1411
+ transition: all 0.3s;
1412
+ }
1413
+
1414
+ &.recording .wave-bar {
1415
+ background: var(--prism-primary-color, #3478F6);
1416
+ animation: voice-wave 0.5s ease-in-out infinite alternate;
1417
+ }
1418
+
1419
+ &.recording .wave-bar:nth-child(1) { animation-delay: 0s; }
1420
+ &.recording .wave-bar:nth-child(2) { animation-delay: 0.1s; }
1421
+ &.recording .wave-bar:nth-child(3) { animation-delay: 0.2s; }
1422
+ &.recording .wave-bar:nth-child(4) { animation-delay: 0.3s; }
1423
+ &.recording .wave-bar:nth-child(5) { animation-delay: 0.4s; }
1424
+ }
1425
+
1426
+ @keyframes voice-wave {
1427
+ 0% { height: 20rpx; }
1428
+ 100% { height: 80rpx; }
1429
+ }
1430
+
1431
+ .voice-time {
1432
+ font-size: 48rpx;
1433
+ font-weight: 600;
1434
+ color: var(--prism-text-primary, #1D2129);
1435
+ margin-bottom: 16rpx;
1436
+
1437
+ .dark-mode & {
1438
+ color: var(--prism-text-primary, #E5E6EB);
1439
+ }
1440
+ }
1441
+
1442
+ .voice-tip {
1443
+ font-size: 26rpx;
1444
+ color: var(--prism-text-secondary, #86909C);
1445
+ margin-bottom: 40rpx;
1446
+ }
1447
+
1448
+ .voice-actions {
1449
+ display: flex;
1450
+ align-items: center;
1451
+ justify-content: space-between;
1452
+ width: 100%;
1453
+ }
1454
+
1455
+ .voice-cancel-btn,
1456
+ .voice-confirm-btn {
1457
+ display: flex;
1458
+ flex-direction: column;
1459
+ align-items: center;
1460
+ gap: 8rpx;
1461
+ color: var(--prism-text-secondary, #86909C);
1462
+
1463
+ .fa {
1464
+ width: 64rpx;
1465
+ height: 64rpx;
1466
+ border-radius: 50%;
1467
+ display: flex;
1468
+ align-items: center;
1469
+ justify-content: center;
1470
+ font-size: 28rpx;
1471
+ }
1472
+
1473
+ text:last-child {
1474
+ font-size: 24rpx;
1475
+ }
1476
+
1477
+ &:active {
1478
+ opacity: 0.7;
1479
+ }
1480
+ }
1481
+
1482
+ .voice-cancel-btn .fa {
1483
+ color: var(--prism-danger-color, #F53F3F);
1484
+ background: rgba(245, 63, 63, 0.15);
1485
+ }
1486
+
1487
+ .voice-confirm-btn {
1488
+ color: var(--prism-success-color, #00B42A);
1489
+
1490
+ .fa {
1491
+ background: rgba(0, 180, 42, 0.15);
1492
+ color: #00B42A;
1493
+ }
1494
+
1495
+ &.disabled {
1496
+ opacity: 0.4;
1497
+ pointer-events: none;
1498
+ }
1499
+ }
1500
+
1501
+ .voice-record-btn {
1502
+ width: 120rpx;
1503
+ height: 120rpx;
1504
+ background: var(--prism-primary-color, #3478F6);
1505
+ border-radius: 50%;
1506
+ display: flex;
1507
+ align-items: center;
1508
+ justify-content: center;
1509
+ transition: all 0.2s ease;
1510
+
1511
+ .fa {
1512
+ font-size: 48rpx;
1513
+ color: #FFFFFF;
1514
+ }
1515
+
1516
+ &:active,
1517
+ &.recording {
1518
+ transform: scale(1.1);
1519
+ background: #2563EB;
1520
+ box-shadow: 0 0 0 16rpx rgba(52, 120, 246, 0.2);
1521
+ }
1522
+ }
1523
+
1524
+ .dark-mode .voice-cancel-btn .fa,
1525
+ .dark-mode .voice-confirm-btn .fa {
1526
+ background: rgba(255, 255, 255, 0.1);
1527
+ }
1528
+
1529
+ /* 头像选择器 */
1530
+ .prism-avatar-selector {
1531
+ display: flex;
1532
+ align-items: flex-start;
1533
+ gap: 24rpx;
1534
+ }
1535
+
1536
+ .prism-default-avatars {
1537
+ display: grid;
1538
+ grid-template-columns: repeat(4, 1fr);
1539
+ gap: 16rpx;
1540
+ flex: 1;
1541
+ }
1542
+
1543
+ .prism-default-avatar-item {
1544
+ width: 100rpx;
1545
+ height: 100rpx;
1546
+ border-radius: 50%;
1547
+ overflow: hidden;
1548
+ border: 3rpx solid var(--prism-border-color-light, #E5E6EB);
1549
+ cursor: pointer;
1550
+ transition: all 0.2s ease;
1551
+
1552
+ image {
1553
+ width: 100%;
1554
+ height: 100%;
1555
+ }
1556
+
1557
+ &.active {
1558
+ border-color: var(--prism-primary-color, #3478F6);
1559
+ box-shadow: 0 0 0 4rpx rgba(52, 120, 246, 0.2);
1560
+ }
1561
+
1562
+ &:active {
1563
+ transform: scale(0.95);
1564
+ }
1565
+ }
1566
+
1567
+ .dark-mode .prism-default-avatar-item {
1568
+ border-color: var(--prism-border-color-base, #3A3A3A);
1569
+
1570
+ &.active {
1571
+ border-color: var(--prism-primary-color, #3478F6);
1572
+ }
1573
+ }
1574
+