@ruixinkeji/prism-ui 1.0.16 → 1.0.17

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 (382) hide show
  1. package/package.json +3 -2
  2. package/dist/build/h5/assets/PrismCode-D1lrgx1M.css +0 -1
  3. package/dist/build/h5/assets/PrismCode.CNOtat_X.js +0 -1
  4. package/dist/build/h5/assets/PrismGroupSticky-CBFeo0AB.css +0 -1
  5. package/dist/build/h5/assets/PrismGroupSticky.CmJXt6ws.js +0 -1
  6. package/dist/build/h5/assets/PrismMusicPlayer-CHVtYDn7.css +0 -1
  7. package/dist/build/h5/assets/PrismMusicPlayer.DAW3y5Km.js +0 -1
  8. package/dist/build/h5/assets/PrismNavBar-CYetauMR.css +0 -1
  9. package/dist/build/h5/assets/PrismNavBar.CFM58fal.js +0 -1
  10. package/dist/build/h5/assets/PrismSwiper-CDtZrfyq.css +0 -1
  11. package/dist/build/h5/assets/PrismSwiper.DTGFNn5Q.js +0 -1
  12. package/dist/build/h5/assets/PrismTabBar-BW0exu0j.css +0 -1
  13. package/dist/build/h5/assets/PrismTabBar.DPe-iC_F.js +0 -1
  14. package/dist/build/h5/assets/basic-tn0RQdqM.css +0 -0
  15. package/dist/build/h5/assets/card-layout-BZuodKCJ.css +0 -1
  16. package/dist/build/h5/assets/colors-RgTfwcKp.css +0 -1
  17. package/dist/build/h5/assets/data-DSHiB3Xs.css +0 -1
  18. package/dist/build/h5/assets/effects-CNFDtZjf.css +0 -1
  19. package/dist/build/h5/assets/examples-CSzKlb8B.css +0 -1
  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 +0 -1
  24. package/dist/build/h5/assets/form-va-eFD7k.css +0 -1
  25. package/dist/build/h5/assets/group-CDa_hQkB.css +0 -1
  26. package/dist/build/h5/assets/iconfont-CW81RyG4.ttf +0 -0
  27. package/dist/build/h5/assets/icons-83wAdmdh.css +0 -1
  28. package/dist/build/h5/assets/index-BQ-qpvZH.css +0 -1
  29. package/dist/build/h5/assets/index-BQnv3xQ8.css +0 -1
  30. package/dist/build/h5/assets/index-C83xA4hX.css +0 -1
  31. package/dist/build/h5/assets/index-Cvc14mto.css +0 -1
  32. package/dist/build/h5/assets/index-D2djL_pA.js +0 -32
  33. package/dist/build/h5/assets/navigation-D0rlyjtK.css +0 -1
  34. package/dist/build/h5/assets/pages-demo-basic.BsC9sqol.js +0 -1
  35. package/dist/build/h5/assets/pages-demo-code-index.BXECig1w.js +0 -1
  36. package/dist/build/h5/assets/pages-demo-colors.Dl__3Mv9.js +0 -1
  37. package/dist/build/h5/assets/pages-demo-container.Cy-M9f41.js +0 -1
  38. package/dist/build/h5/assets/pages-demo-data.CK2JdeBK.js +0 -1
  39. package/dist/build/h5/assets/pages-demo-effects.CV0rqKht.js +0 -1
  40. package/dist/build/h5/assets/pages-demo-feedback.BO-G3E1J.js +0 -1
  41. package/dist/build/h5/assets/pages-demo-form.CsUNLqqe.js +0 -1
  42. package/dist/build/h5/assets/pages-demo-layout-card-layout.CQ6fF8IK.js +0 -1
  43. package/dist/build/h5/assets/pages-demo-layout.261GXW2o.js +0 -1
  44. package/dist/build/h5/assets/pages-demo-navigation.C5hFijVt.js +0 -1
  45. package/dist/build/h5/assets/pages-demo-other.CVdLVU3_.js +0 -1
  46. package/dist/build/h5/assets/pages-demo-sticky-group.MDzv6I5L.js +0 -1
  47. package/dist/build/h5/assets/pages-demo-sticky-index.D2UJUdon.js +0 -1
  48. package/dist/build/h5/assets/pages-examples-examples.hyUWuu8C.js +0 -1
  49. package/dist/build/h5/assets/pages-icons-icons.R2erKYQX.js +0 -1
  50. package/dist/build/h5/assets/pages-index-index.BlfkIjJo.js +0 -1
  51. package/dist/build/h5/assets/pages-tools-tools.tm3Y1cFN.js +0 -1
  52. package/dist/build/h5/assets/tools-C1YBcrWJ.css +0 -1
  53. package/dist/build/h5/assets/uni-app.es.DfNmMcUd.js +0 -1
  54. package/dist/build/h5/assets/uni.e2868147.css +0 -1
  55. package/dist/build/h5/assets/useNavbar.BdajVjjC.js +0 -1
  56. package/dist/build/h5/index.html +0 -23
  57. package/dist/build/h5/static/fonts/all-icons.txt +0 -453
  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 +0 -943
  63. package/dist/build/h5/static/fonts/iconfont.css +0 -62
  64. package/dist/build/h5/static/fonts/iconfont.js +0 -1
  65. package/dist/build/h5/static/fonts/iconfont.json +0 -79
  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 +0 -453
  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 +0 -11
  79. package/dist/dev/.nvue/app.js +0 -2
  80. package/dist/dev/.sourcemap/mp-weixin/app.js.map +0 -1
  81. package/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +0 -1
  82. package/dist/dev/.sourcemap/mp-weixin/components/PrismAddressInput/PrismAddressInput.js.map +0 -1
  83. package/dist/dev/.sourcemap/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.js.map +0 -1
  84. package/dist/dev/.sourcemap/mp-weixin/components/PrismCityPicker/PrismCityPicker.js.map +0 -1
  85. package/dist/dev/.sourcemap/mp-weixin/components/PrismCitySelect/PrismCitySelect.js.map +0 -1
  86. package/dist/dev/.sourcemap/mp-weixin/components/PrismCode/PrismCode.js.map +0 -1
  87. package/dist/dev/.sourcemap/mp-weixin/components/PrismCodeInput/PrismCodeInput.js.map +0 -1
  88. package/dist/dev/.sourcemap/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.js.map +0 -1
  89. package/dist/dev/.sourcemap/mp-weixin/components/PrismDropdown/PrismDropdown.js.map +0 -1
  90. package/dist/dev/.sourcemap/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.js.map +0 -1
  91. package/dist/dev/.sourcemap/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.js.map +0 -1
  92. package/dist/dev/.sourcemap/mp-weixin/components/PrismIndexBar/PrismIndexBar.js.map +0 -1
  93. package/dist/dev/.sourcemap/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.js.map +0 -1
  94. package/dist/dev/.sourcemap/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.js.map +0 -1
  95. package/dist/dev/.sourcemap/mp-weixin/components/PrismNavBar/PrismNavBar.js.map +0 -1
  96. package/dist/dev/.sourcemap/mp-weixin/components/PrismSecureInput/PrismSecureInput.js.map +0 -1
  97. package/dist/dev/.sourcemap/mp-weixin/components/PrismSticky/PrismSticky.js.map +0 -1
  98. package/dist/dev/.sourcemap/mp-weixin/components/PrismSwiper/PrismSwiper.js.map +0 -1
  99. package/dist/dev/.sourcemap/mp-weixin/components/PrismSwitch/PrismSwitch.js.map +0 -1
  100. package/dist/dev/.sourcemap/mp-weixin/components/PrismTabBar/PrismTabBar.js.map +0 -1
  101. package/dist/dev/.sourcemap/mp-weixin/components/PrismTabs/PrismTabs.js.map +0 -1
  102. package/dist/dev/.sourcemap/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.js.map +0 -1
  103. package/dist/dev/.sourcemap/mp-weixin/composables/useNavbar.js.map +0 -1
  104. package/dist/dev/.sourcemap/mp-weixin/config/theme-colors.js.map +0 -1
  105. package/dist/dev/.sourcemap/mp-weixin/pages/demo/basic.js.map +0 -1
  106. package/dist/dev/.sourcemap/mp-weixin/pages/demo/card.js.map +0 -1
  107. package/dist/dev/.sourcemap/mp-weixin/pages/demo/code/index.js.map +0 -1
  108. package/dist/dev/.sourcemap/mp-weixin/pages/demo/colors.js.map +0 -1
  109. package/dist/dev/.sourcemap/mp-weixin/pages/demo/container.js.map +0 -1
  110. package/dist/dev/.sourcemap/mp-weixin/pages/demo/data.js.map +0 -1
  111. package/dist/dev/.sourcemap/mp-weixin/pages/demo/effects.js.map +0 -1
  112. package/dist/dev/.sourcemap/mp-weixin/pages/demo/feedback.js.map +0 -1
  113. package/dist/dev/.sourcemap/mp-weixin/pages/demo/form.js.map +0 -1
  114. package/dist/dev/.sourcemap/mp-weixin/pages/demo/layout/card-layout.js.map +0 -1
  115. package/dist/dev/.sourcemap/mp-weixin/pages/demo/layout.js.map +0 -1
  116. package/dist/dev/.sourcemap/mp-weixin/pages/demo/navigation.js.map +0 -1
  117. package/dist/dev/.sourcemap/mp-weixin/pages/demo/other.js.map +0 -1
  118. package/dist/dev/.sourcemap/mp-weixin/pages/demo/sticky/group.js.map +0 -1
  119. package/dist/dev/.sourcemap/mp-weixin/pages/demo/sticky/index.js.map +0 -1
  120. package/dist/dev/.sourcemap/mp-weixin/pages/examples/examples.js.map +0 -1
  121. package/dist/dev/.sourcemap/mp-weixin/pages/icons/icons.js.map +0 -1
  122. package/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map +0 -1
  123. package/dist/dev/.sourcemap/mp-weixin/pages/tools/tools.js.map +0 -1
  124. package/dist/dev/.sourcemap/mp-weixin/store/app.js.map +0 -1
  125. package/dist/dev/.sourcemap/mp-weixin/utils/lunar.js.map +0 -1
  126. package/dist/dev/.sourcemap/mp-weixin/utils/system.js.map +0 -1
  127. package/dist/dev/app-plus/__uniappautomator.js +0 -16
  128. package/dist/dev/app-plus/__uniappchooselocation.js +0 -32
  129. package/dist/dev/app-plus/__uniapperror.png +0 -0
  130. package/dist/dev/app-plus/__uniappopenlocation.js +0 -32
  131. package/dist/dev/app-plus/__uniapppicker.js +0 -33
  132. package/dist/dev/app-plus/__uniappquill.js +0 -8
  133. package/dist/dev/app-plus/__uniappquillimageresize.js +0 -1
  134. package/dist/dev/app-plus/__uniappscan.js +0 -32
  135. package/dist/dev/app-plus/__uniappsuccess.png +0 -0
  136. package/dist/dev/app-plus/__uniappview.html +0 -24
  137. package/dist/dev/app-plus/app-config-service.js +0 -11
  138. package/dist/dev/app-plus/app-config.js +0 -1
  139. package/dist/dev/app-plus/app-service.js +0 -23663
  140. package/dist/dev/app-plus/app.css +0 -8955
  141. package/dist/dev/app-plus/manifest.json +0 -91
  142. package/dist/dev/app-plus/pages/demo/basic.css +0 -524
  143. package/dist/dev/app-plus/pages/demo/code/index.css +0 -541
  144. package/dist/dev/app-plus/pages/demo/colors.css +0 -4008
  145. package/dist/dev/app-plus/pages/demo/container.css +0 -524
  146. package/dist/dev/app-plus/pages/demo/data.css +0 -705
  147. package/dist/dev/app-plus/pages/demo/effects.css +0 -530
  148. package/dist/dev/app-plus/pages/demo/feedback.css +0 -590
  149. package/dist/dev/app-plus/pages/demo/form.css +0 -3422
  150. package/dist/dev/app-plus/pages/demo/layout/card-layout.css +0 -785
  151. package/dist/dev/app-plus/pages/demo/layout.css +0 -524
  152. package/dist/dev/app-plus/pages/demo/navigation.css +0 -769
  153. package/dist/dev/app-plus/pages/demo/other.css +0 -524
  154. package/dist/dev/app-plus/pages/demo/sticky/group.css +0 -788
  155. package/dist/dev/app-plus/pages/demo/sticky/index.css +0 -894
  156. package/dist/dev/app-plus/pages/examples/examples.css +0 -1031
  157. package/dist/dev/app-plus/pages/icons/icons.css +0 -3310
  158. package/dist/dev/app-plus/pages/index/index.css +0 -696
  159. package/dist/dev/app-plus/pages/tools/tools.css +0 -378
  160. package/dist/dev/app-plus/static/fonts/all-icons.txt +0 -453
  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 +0 -943
  166. package/dist/dev/app-plus/static/fonts/iconfont.css +0 -62
  167. package/dist/dev/app-plus/static/fonts/iconfont.js +0 -1
  168. package/dist/dev/app-plus/static/fonts/iconfont.json +0 -79
  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 +0 -453
  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 +0 -7
  182. package/dist/dev/mp-weixin/app.js +0 -49
  183. package/dist/dev/mp-weixin/app.json +0 -29
  184. package/dist/dev/mp-weixin/app.wxss +0 -9072
  185. package/dist/dev/mp-weixin/common/vendor.js +0 -15968
  186. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.js +0 -200
  187. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.json +0 -4
  188. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.wxml +0 -1
  189. package/dist/dev/mp-weixin/components/PrismAddressInput/PrismAddressInput.wxss +0 -327
  190. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.js +0 -449
  191. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.json +0 -4
  192. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.wxml +0 -1
  193. package/dist/dev/mp-weixin/components/PrismCityCascadeSelect/PrismCityCascadeSelect.wxss +0 -264
  194. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.js +0 -531
  195. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.json +0 -4
  196. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.wxml +0 -1
  197. package/dist/dev/mp-weixin/components/PrismCityPicker/PrismCityPicker.wxss +0 -309
  198. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.js +0 -200
  199. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.json +0 -6
  200. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.wxml +0 -1
  201. package/dist/dev/mp-weixin/components/PrismCitySelect/PrismCitySelect.wxss +0 -225
  202. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.js +0 -337
  203. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.json +0 -4
  204. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.wxml +0 -1
  205. package/dist/dev/mp-weixin/components/PrismCode/PrismCode.wxss +0 -345
  206. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.js +0 -70
  207. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.json +0 -4
  208. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.wxml +0 -1
  209. package/dist/dev/mp-weixin/components/PrismCodeInput/PrismCodeInput.wxss +0 -115
  210. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.js +0 -468
  211. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.json +0 -4
  212. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.wxml +0 -1
  213. package/dist/dev/mp-weixin/components/PrismDateTimePicker/PrismDateTimePicker.wxss +0 -309
  214. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.js +0 -63
  215. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.json +0 -4
  216. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.wxml +0 -1
  217. package/dist/dev/mp-weixin/components/PrismDropdown/PrismDropdown.wxss +0 -0
  218. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.js +0 -128
  219. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.json +0 -4
  220. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.wxml +0 -1
  221. package/dist/dev/mp-weixin/components/PrismGroupSticky/PrismGroupSticky.wxss +0 -191
  222. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.js +0 -123
  223. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.json +0 -4
  224. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.wxml +0 -1
  225. package/dist/dev/mp-weixin/components/PrismIdCardInput/PrismIdCardInput.wxss +0 -114
  226. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.js +0 -108
  227. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.json +0 -4
  228. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.wxml +0 -1
  229. package/dist/dev/mp-weixin/components/PrismIndexBar/PrismIndexBar.wxss +0 -135
  230. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.js +0 -449
  231. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.json +0 -4
  232. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.wxml +0 -1
  233. package/dist/dev/mp-weixin/components/PrismLicensePlateInput/PrismLicensePlateInput.wxss +0 -445
  234. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.js +0 -200
  235. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.json +0 -4
  236. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.wxml +0 -1
  237. package/dist/dev/mp-weixin/components/PrismMusicPlayer/PrismMusicPlayer.wxss +0 -334
  238. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.js +0 -71
  239. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.json +0 -4
  240. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.wxml +0 -1
  241. package/dist/dev/mp-weixin/components/PrismNavBar/PrismNavBar.wxss +0 -150
  242. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.js +0 -140
  243. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.json +0 -4
  244. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.wxml +0 -1
  245. package/dist/dev/mp-weixin/components/PrismSecureInput/PrismSecureInput.wxss +0 -215
  246. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.js +0 -120
  247. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.json +0 -4
  248. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.wxml +0 -1
  249. package/dist/dev/mp-weixin/components/PrismSticky/PrismSticky.wxss +0 -62
  250. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.js +0 -163
  251. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.json +0 -4
  252. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.wxml +0 -1
  253. package/dist/dev/mp-weixin/components/PrismSwiper/PrismSwiper.wxss +0 -203
  254. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.js +0 -69
  255. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.json +0 -4
  256. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.wxml +0 -1
  257. package/dist/dev/mp-weixin/components/PrismSwitch/PrismSwitch.wxss +0 -151
  258. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.js +0 -58
  259. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.json +0 -4
  260. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.wxml +0 -1
  261. package/dist/dev/mp-weixin/components/PrismTabBar/PrismTabBar.wxss +0 -119
  262. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.js +0 -51
  263. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.json +0 -4
  264. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.wxml +0 -1
  265. package/dist/dev/mp-weixin/components/PrismTabs/PrismTabs.wxss +0 -51
  266. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.js +0 -182
  267. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.json +0 -4
  268. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.wxml +0 -1
  269. package/dist/dev/mp-weixin/components/PrismVoiceInput/PrismVoiceInput.wxss +0 -329
  270. package/dist/dev/mp-weixin/composables/useNavbar.js +0 -19
  271. package/dist/dev/mp-weixin/config/theme-colors.js +0 -73
  272. package/dist/dev/mp-weixin/pages/demo/basic.js +0 -77
  273. package/dist/dev/mp-weixin/pages/demo/basic.json +0 -7
  274. package/dist/dev/mp-weixin/pages/demo/basic.wxml +0 -1
  275. package/dist/dev/mp-weixin/pages/demo/basic.wxss +0 -54
  276. package/dist/dev/mp-weixin/pages/demo/code/index.js +0 -190
  277. package/dist/dev/mp-weixin/pages/demo/code/index.json +0 -7
  278. package/dist/dev/mp-weixin/pages/demo/code/index.wxml +0 -1
  279. package/dist/dev/mp-weixin/pages/demo/code/index.wxss +0 -71
  280. package/dist/dev/mp-weixin/pages/demo/colors.js +0 -130
  281. package/dist/dev/mp-weixin/pages/demo/colors.json +0 -7
  282. package/dist/dev/mp-weixin/pages/demo/colors.wxml +0 -1
  283. package/dist/dev/mp-weixin/pages/demo/colors.wxss +0 -3793
  284. package/dist/dev/mp-weixin/pages/demo/container.js +0 -65
  285. package/dist/dev/mp-weixin/pages/demo/container.json +0 -7
  286. package/dist/dev/mp-weixin/pages/demo/container.wxml +0 -1
  287. package/dist/dev/mp-weixin/pages/demo/container.wxss +0 -54
  288. package/dist/dev/mp-weixin/pages/demo/data.js +0 -398
  289. package/dist/dev/mp-weixin/pages/demo/data.json +0 -7
  290. package/dist/dev/mp-weixin/pages/demo/data.wxml +0 -1
  291. package/dist/dev/mp-weixin/pages/demo/data.wxss +0 -235
  292. package/dist/dev/mp-weixin/pages/demo/effects.js +0 -62
  293. package/dist/dev/mp-weixin/pages/demo/effects.json +0 -7
  294. package/dist/dev/mp-weixin/pages/demo/effects.wxml +0 -1
  295. package/dist/dev/mp-weixin/pages/demo/effects.wxss +0 -60
  296. package/dist/dev/mp-weixin/pages/demo/feedback.js +0 -256
  297. package/dist/dev/mp-weixin/pages/demo/feedback.json +0 -7
  298. package/dist/dev/mp-weixin/pages/demo/feedback.wxml +0 -1
  299. package/dist/dev/mp-weixin/pages/demo/feedback.wxss +0 -120
  300. package/dist/dev/mp-weixin/pages/demo/form.js +0 -689
  301. package/dist/dev/mp-weixin/pages/demo/form.json +0 -18
  302. package/dist/dev/mp-weixin/pages/demo/form.wxml +0 -1
  303. package/dist/dev/mp-weixin/pages/demo/form.wxss +0 -54
  304. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.js +0 -61
  305. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.json +0 -7
  306. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.wxml +0 -1
  307. package/dist/dev/mp-weixin/pages/demo/layout/card-layout.wxss +0 -326
  308. package/dist/dev/mp-weixin/pages/demo/layout.js +0 -96
  309. package/dist/dev/mp-weixin/pages/demo/layout.json +0 -7
  310. package/dist/dev/mp-weixin/pages/demo/layout.wxml +0 -1
  311. package/dist/dev/mp-weixin/pages/demo/layout.wxss +0 -54
  312. package/dist/dev/mp-weixin/pages/demo/navigation.js +0 -142
  313. package/dist/dev/mp-weixin/pages/demo/navigation.json +0 -10
  314. package/dist/dev/mp-weixin/pages/demo/navigation.wxml +0 -1
  315. package/dist/dev/mp-weixin/pages/demo/navigation.wxss +0 -61
  316. package/dist/dev/mp-weixin/pages/demo/other.js +0 -50
  317. package/dist/dev/mp-weixin/pages/demo/other.json +0 -7
  318. package/dist/dev/mp-weixin/pages/demo/other.wxml +0 -1
  319. package/dist/dev/mp-weixin/pages/demo/other.wxss +0 -54
  320. package/dist/dev/mp-weixin/pages/demo/sticky/group.js +0 -212
  321. package/dist/dev/mp-weixin/pages/demo/sticky/group.json +0 -8
  322. package/dist/dev/mp-weixin/pages/demo/sticky/group.wxml +0 -1
  323. package/dist/dev/mp-weixin/pages/demo/sticky/group.wxss +0 -135
  324. package/dist/dev/mp-weixin/pages/demo/sticky/index.js +0 -90
  325. package/dist/dev/mp-weixin/pages/demo/sticky/index.json +0 -9
  326. package/dist/dev/mp-weixin/pages/demo/sticky/index.wxml +0 -1
  327. package/dist/dev/mp-weixin/pages/demo/sticky/index.wxss +0 -175
  328. package/dist/dev/mp-weixin/pages/examples/examples.js +0 -65
  329. package/dist/dev/mp-weixin/pages/examples/examples.json +0 -8
  330. package/dist/dev/mp-weixin/pages/examples/examples.wxml +0 -1
  331. package/dist/dev/mp-weixin/pages/examples/examples.wxss +0 -461
  332. package/dist/dev/mp-weixin/pages/icons/icons.js +0 -350
  333. package/dist/dev/mp-weixin/pages/icons/icons.json +0 -8
  334. package/dist/dev/mp-weixin/pages/icons/icons.wxml +0 -1
  335. package/dist/dev/mp-weixin/pages/icons/icons.wxss +0 -3079
  336. package/dist/dev/mp-weixin/pages/index/index.js +0 -118
  337. package/dist/dev/mp-weixin/pages/index/index.json +0 -8
  338. package/dist/dev/mp-weixin/pages/index/index.wxml +0 -1
  339. package/dist/dev/mp-weixin/pages/index/index.wxss +0 -123
  340. package/dist/dev/mp-weixin/pages/tools/tools.js +0 -37
  341. package/dist/dev/mp-weixin/pages/tools/tools.json +0 -7
  342. package/dist/dev/mp-weixin/pages/tools/tools.wxml +0 -1
  343. package/dist/dev/mp-weixin/pages/tools/tools.wxss +0 -134
  344. package/dist/dev/mp-weixin/project.config.json +0 -36
  345. package/dist/dev/mp-weixin/project.private.config.json +0 -23
  346. package/dist/dev/mp-weixin/static/fonts/all-icons.txt +0 -453
  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 +0 -943
  352. package/dist/dev/mp-weixin/static/fonts/iconfont.css +0 -62
  353. package/dist/dev/mp-weixin/static/fonts/iconfont.js +0 -1
  354. package/dist/dev/mp-weixin/static/fonts/iconfont.json +0 -79
  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 +0 -453
  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 +0 -64
  368. package/dist/dev/mp-weixin/utils/lunar.js +0 -330
  369. package/dist/dev/mp-weixin/utils/system.js +0 -18
  370. package/dist/styles/base.scss +0 -213
  371. package/dist/styles/button.scss +0 -120
  372. package/dist/styles/card.scss +0 -306
  373. package/dist/styles/data.scss +0 -1229
  374. package/dist/styles/effects.scss +0 -407
  375. package/dist/styles/feedback.scss +0 -698
  376. package/dist/styles/form.scss +0 -1574
  377. package/dist/styles/index.scss +0 -43
  378. package/dist/styles/list.scss +0 -184
  379. package/dist/styles/navigation.scss +0 -501
  380. package/dist/styles/overlay.scss +0 -182
  381. package/dist/styles/utilities.scss +0 -134
  382. package/dist/styles/variables.scss +0 -154
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.js","sources":["pages/demo/layout.vue","../uniPage:/cGFnZXMvZGVtby9sYXlvdXQudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 导航栏 -->\n <PrismNavBar\n title=\"布局组件\"\n icon=\"fa-table-cells\"\n icon-color=\"blue\"\n :show-back=\"true\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n\n <!-- 组件入口 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">布局组件</view>\n <view class=\"flex flex-col gap-[16rpx]\">\n <view class=\"prism-list-item\" @click=\"goTo('/pages/demo/sticky/index')\">\n <view class=\"list-item-icon prism-icon blue round\">\n <text class=\"fa fa-anchor\"></text>\n </view>\n <view class=\"list-item-content\">\n <text class=\"list-item-title\">Sticky 吸顶</text>\n <text class=\"list-item-desc\">通用吸顶组件</text>\n </view>\n <text class=\"fa fa-angle-right list-item-arrow\"></text>\n </view>\n <view class=\"prism-list-item\" @click=\"goTo('/pages/demo/sticky/group')\">\n <view class=\"list-item-icon prism-icon green\">\n <text class=\"fa fa-list\"></text>\n </view>\n <view class=\"list-item-content\">\n <text class=\"list-item-title\">GroupSticky 分组吸顶</text>\n <text class=\"list-item-desc\">分组吸顶,支持索引条</text>\n </view>\n <text class=\"fa fa-angle-right list-item-arrow\"></text>\n </view>\n <view class=\"prism-list-item\" @click=\"goTo('/pages/demo/layout/card-layout')\">\n <view class=\"list-item-icon prism-icon violet\">\n <text class=\"fa fa-id-card\"></text>\n </view>\n <view class=\"list-item-content\">\n <text class=\"list-item-title\">卡片案例</text>\n <text class=\"list-item-desc\">多种卡片布局展示</text>\n </view>\n <text class=\"fa fa-angle-right list-item-arrow\"></text>\n </view>\n </view>\n </view>\n\n <!-- Section 区块 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Section 区块</view>\n <view class=\"section-desc\">页面区块容器,透明背景,用于分组内容</view>\n <view class=\"prism-card glass p-[20rpx]\">\n <text class=\"prism-text-secondary\">prism-section 包含 section-title、section-desc 和内容</text>\n <PrismCode code=\"prism-section > section-title + section-desc + 内容\" />\n </view>\n\n </view>\n\n <!-- Flex 布局 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Flex 布局</view>\n\n <view class=\"prism-card glass p-[20rpx]\">\n <view class=\"flex flex-row mb-[20rpx] gap-[20rpx]\">\n <view class=\"prism-icon blue solid sm\">1</view>\n <view class=\"prism-icon blue solid sm\">2</view>\n <view class=\"prism-icon blue solid sm\">3</view>\n </view>\n <text class=\"prism-text-placeholder\">flex-row 水平排列</text>\n <PrismCode code=\"flex-row/ gap-[20rpx]\" />\n </view>\n\n <view class=\"prism-card glass p-[20rpx] mt-[20rpx]\">\n <view class=\"flex flex-col mb-[20rpx] gap-[20rpx]\">\n <view class=\"prism-icon blue solid sm\">1</view>\n <view class=\"prism-icon blue solid sm\">2</view>\n </view>\n <text class=\"prism-text-placeholder\">flex-col 垂直排列</text>\n <PrismCode code=\"flex-col / gap-[20rpx]\" />\n </view>\n\n </view>\n\n <!-- 间距 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">间距</view>\n\n <view class=\"prism-card glass flex flex-col gap-[16rpx]\">\n <view class=\"p-[10rpx] prism-bg-blue-light \" style=\"border-radius: 8rpx;\">\n <text class=\"prism-text-secondary\">p-[10rpx]</text>\n </view>\n <view class=\"p-[20rpx] prism-bg-blue-light\" style=\"border-radius: 8rpx;\">\n <text class=\"prism-text-secondary\">p-[20rpx]</text>\n </view>\n <view class=\"p-[30rpx] prism-bg-blue-light\" style=\"border-radius: 8rpx;\">\n <text class=\"prism-text-secondary\">p-[30rpx]</text>\n </view>\n <PrismCode code=\"p-{10|20|30} / m-{10|20|30}\" />\n\n </view>\n\n </view>\n\n <!-- 安全区 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">SafeArea 安全区</view>\n\n <view class=\"prism-card glass p-[20rpx]\">\n <text class=\"prism-text-secondary\">底部安全区用于适配全面屏手机</text>\n <PrismCode code=\"prism-safe-area-bottom / prism-safe-area-top\" />\n </view>\n\n </view>\n\n <!-- 区块头部 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">SectionHeader 区块头部</view>\n\n <view class=\"prism-section-header\">\n <text class=\"prism-section-title\">最近项目</text>\n <view class=\"prism-more-link\">\n <text class=\"more-text\">查看更多</text>\n <text class=\"more-icon fa fa-angle-right\"></text>\n </view>\n </view>\n\n <view class=\"prism-card glass\">\n <view class=\"p-[30rpx]\">\n <text class=\"prism-text-secondary\">这里是内容区域</text>\n </view>\n </view>\n <PrismCode code=\"prism-section-header + prism-section-title + prism-more-link\" />\n </view>\n\n <!-- Grid 宫格 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Grid 宫格</view>\n\n <!-- prism-quick-actions 快捷功能 -->\n <view class=\"subsection-title\">prism-quick-actions (固定4列,用于快捷入口)</view>\n <view class=\"prism-card glass prism-quick-actions\">\n <view class=\"quick-item\" v-for=\"(item, i) in gridItems\" :key=\"'quick-'+i\">\n <view :class=\"['quick-icon', 'prism-icon', item.color]\">\n <text :class=\"['fa', item.icon]\"></text>\n </view>\n <text class=\"quick-text\">{{item.label}}</text>\n <view class=\"prism-number-badge\" v-if=\"item.badge > 0\">{{item.badge}}</view>\n </view>\n </view>\n\n <!-- prism-grid 通用宫格 -->\n <view class=\"subsection-title mt-[20rpx]\">prism-grid (可配置列数,通用宫格)</view>\n <view class=\"prism-grid col-4 glass\">\n <view class=\"grid-item\" v-for=\"(item, i) in gridItems\" :key=\"'grid-'+i\">\n <view :class=\"['prism-icon', item.color]\">\n <text :class=\"['fa', item.icon]\"></text>\n </view>\n <text class=\"grid-label\">{{item.label}}</text>\n <view class=\"prism-number-badge\" v-if=\"item.badge > 0\">{{item.badge}}</view>\n </view>\n </view>\n\n <PrismCode code=\"prism-quick-actions: 快捷入口 | prism-grid: 通用宫格\" />\n </view>\n\n <!-- 底部安全区 -->\n <view class=\"prism-safe-area-bottom\"></view>\n </scroll-view>\n </view>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\n\nconst appStore = useAppStore();\n\nconst navbarHeight = computed(() => {\n return appStore.statusBarHeight + 44;\n});\n\nconst goTo = (url) => {\n uni.navigateTo({ url });\n};\n\nconst gridItems = [\n { icon: 'fa-home', color: 'blue', label: '首页', badge: 0 },\n { icon: 'fa-user', color: 'green', label: '用户', badge: 0 },\n { icon: 'fa-cog', color: 'orange', label: '设置', badge: 0 },\n { icon: 'fa-bell', color: 'red', label: '通知', badge: 5 },\n { icon: 'fa-heart', color: 'pink', label: '收藏', badge: 0 },\n { icon: 'fa-search', color: 'cyan', label: '搜索', badge: 0 },\n { icon: 'fa-folder', color: 'purple', label: '文件', badge: 12 },\n { icon: 'fa-chart-line', color: 'indigo', label: '统计', badge: 0 },\n];\n</script>\n\n<style lang=\"scss\">\n@import './demo-common.scss';\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/demo/layout.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","computed","uni","MiniProgramPage"],"mappings":";;;;;;;;;;;AAAA,MAAA,YAAA,MAAA;;;;AAAA,UAAA,WAAAA,UAAAA,YAAA;AAAA,UAAA,eAAAC,cAAAA,SAAA,MAAA;AAAA,aAAA,SAAA,kBAAA;AAAA,IAAA,CAAA;AAAA,UAAA,OAAA,CAAA,QAAA;AAAAC,0BAAA,WAAA,EAAA,KAAA;AAAA,IAAA;AAAA,UAAA,YAAA;AAAA,MAAA,EAAA,MAAA,WAAA,OAAA,QAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,WAAA,OAAA,SAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,UAAA,OAAA,UAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,WAAA,OAAA,OAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,YAAA,OAAA,QAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,aAAA,OAAA,QAAA,OAAA,MAAA,OAAA,EAAA;AAAA,MAAA,EAAA,MAAA,aAAA,OAAA,UAAA,OAAA,MAAA,OAAA,GAAA;AAAA,MAAA,EAAA,MAAA,iBAAA,OAAA,UAAA,OAAA,MAAA,OAAA,EAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation.js","sources":["pages/demo/navigation.vue","../uniPage:/cGFnZXMvZGVtby9uYXZpZ2F0aW9uLnZ1ZQ"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 导航栏 -->\n <PrismNavBar\n title=\"导航组件\"\n icon=\"fa-compass\"\n icon-color=\"green\"\n :show-back=\"true\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n\n <!-- NavBar 导航栏 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">NavBar 导航栏</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <text class=\"prism-text-secondary\">当前页面顶部即为 PrismNavBar 组件</text>\n <PrismCode code=\"<PrismNavBar title='标题' icon='fa-xxx' />\" />\n </view>\n </view>\n\n <!-- Tabs 标签页 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Tabs 标签页</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <PrismTabs v-model=\"activeTab\" :tabs=\"lineTabs\" type=\"line\" />\n <PrismCode code=\"<PrismTabs v-model='active' :tabs='tabs' type='line' />\" />\n </view>\n </view>\n\n <!-- CapsuleTabs 胶囊选项卡 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">CapsuleTabs 胶囊选项卡</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <scroll-view class=\"prism-capsule-tabs-scroll\" scroll-x>\n <view class=\"prism-capsule-tabs\">\n <view class=\"prism-capsule-tab\" :class=\"{ active: activeCapsule === 0 }\" @click=\"activeCapsule = 0\">日</view>\n <view class=\"prism-capsule-tab\" :class=\"{ active: activeCapsule === 1 }\" @click=\"activeCapsule = 1\">周</view>\n <view class=\"prism-capsule-tab\" :class=\"{ active: activeCapsule === 2 }\" @click=\"activeCapsule = 2\">月</view>\n <view class=\"prism-capsule-tab\" :class=\"{ active: activeCapsule === 3 }\" @click=\"activeCapsule = 3\">年</view>\n </view>\n </scroll-view>\n <PrismCode code=\"prism-capsule-tabs > prism-capsule-tab.active\" />\n </view>\n </view>\n\n <!-- Steps 步骤条 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Steps 步骤条</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <view class=\"prism-steps prism-steps--horizontal\">\n <view class=\"prism-step prism-step--finished\">\n <view class=\"prism-step__icon\">\n <text class=\"fa fa-check\"></text>\n </view>\n <view class=\"prism-step__title\">提交订单</view>\n <view class=\"prism-step__line\"></view>\n </view>\n <view class=\"prism-step prism-step--process\">\n <view class=\"prism-step__icon\">2</view>\n <view class=\"prism-step__title\">付款</view>\n <view class=\"prism-step__line\"></view>\n </view>\n <view class=\"prism-step prism-step--wait\">\n <view class=\"prism-step__icon\">3</view>\n <view class=\"prism-step__title\">发货</view>\n <view class=\"prism-step__line\"></view>\n </view>\n <view class=\"prism-step prism-step--wait\">\n <view class=\"prism-step__icon\">4</view>\n <view class=\"prism-step__title\">完成</view>\n </view>\n </view>\n <PrismCode code=\"prism-steps > prism-step--finished/process/wait\" />\n </view>\n </view>\n\n <!-- Breadcrumb 面包屑 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Breadcrumb 面包屑</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <view class=\"prism-breadcrumb\">\n <view class=\"prism-breadcrumb__item prism-breadcrumb__item--link\">\n <text>首页</text>\n <text class=\"prism-breadcrumb__separator fa fa-chevron-right\"></text>\n </view>\n <view class=\"prism-breadcrumb__item prism-breadcrumb__item--link\">\n <text>组件</text>\n <text class=\"prism-breadcrumb__separator fa fa-chevron-right\"></text>\n </view>\n <view class=\"prism-breadcrumb__item\">\n <text>导航</text>\n </view>\n </view>\n <PrismCode code=\"prism-breadcrumb > prism-breadcrumb__item\" />\n </view>\n </view>\n\n <!-- ChromeTabs Chrome风格标签页 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">ChromeTabs Chrome风格标签页</view>\n\n <view class=\"prism-card chrome-tabs-container\">\n <view class=\"card-title\">基础用法</view>\n <PrismTabs v-model=\"chromeTab\" :tabs=\"chromeTabs\" type=\"chrome\">\n <PrismCode code=\"<PrismTabs v-model='active' :tabs='tabs' type='chrome' />\" />\n </PrismTabs>\n </view>\n </view>\n\n <!-- DropdownMenu 下拉菜单 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">DropdownMenu 下拉菜单</view>\n\n <view class=\"prism-card\">\n <view class=\"card-title\">基础用法</view>\n <PrismDropdown :menus=\"dropdownMenus\" @change=\"onDropdownChange\" />\n <PrismCode code=\"<PrismDropdown :menus='menus' @change='onChange' />\" />\n </view>\n </view>\n\n <!-- MenuList 菜单列表 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">MenuList 菜单列表</view>\n\n <view class=\"prism-menu-list prism-card glass\">\n <view class=\"menu-item\">\n <view class=\"menu-left\">\n <view class=\"menu-icon prism-icon blue\">\n <text class=\"fa fa-user\"></text>\n </view>\n <text class=\"menu-text\">个人信息</text>\n </view>\n <view class=\"menu-right\">\n <text class=\"fa fa-angle-right arrow\"></text>\n </view>\n </view>\n\n <view class=\"menu-item\">\n <view class=\"menu-left\">\n <view class=\"menu-icon prism-icon orange\">\n <text class=\"fa fa-bell\"></text>\n </view>\n <text class=\"menu-text\">消息通知</text>\n </view>\n <view class=\"menu-right\">\n <text class=\"menu-value\">已开启</text>\n <text class=\"fa fa-angle-right arrow\"></text>\n </view>\n </view>\n\n <view class=\"menu-item\">\n <view class=\"menu-left\">\n <view class=\"menu-icon prism-icon green\">\n <text class=\"fa fa-gear\"></text>\n </view>\n <text class=\"menu-text\">系统设置</text>\n </view>\n <view class=\"menu-right\">\n <text class=\"fa fa-angle-right arrow\"></text>\n </view>\n </view>\n </view>\n\n <PrismCode code=\"prism-menu-list > menu-item > menu-icon.prism-icon.{color}\" />\n </view>\n\n <!-- Swiper 轮播图 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">Swiper 轮播图</view>\n\n <view class=\"card-title\">圆点指示器</view>\n <PrismSwiper :list=\"swiperList\" height=\"300rpx\" indicatorType=\"dots\" :is-dark-mode=\"appStore.isDarkMode\" class=\"mb-[20rpx]\" />\n\n <view class=\"card-title\">数字指示器</view>\n <PrismSwiper :list=\"swiperList\" height=\"300rpx\" indicatorType=\"number\" :is-dark-mode=\"appStore.isDarkMode\" class=\"mb-[20rpx]\" />\n\n <view class=\"card-title\">预览图指示器</view>\n <PrismSwiper :list=\"swiperList\" height=\"300rpx\" indicatorType=\"thumbnails\" :is-dark-mode=\"appStore.isDarkMode\" class=\"mb-[20rpx]\" />\n\n <view class=\"card-title\">预览模式 - 中间显示完整,两边显示一半</view>\n <PrismSwiper\n :list=\"swiperList\"\n height=\"300rpx\"\n displayMode=\"preview\"\n previousMargin=\"60rpx\"\n nextMargin=\"60rpx\"\n indicatorType=\"dots\"\n :is-dark-mode=\"appStore.isDarkMode\"\n class=\"mb-[20rpx]\"\n />\n\n <PrismCode code=\"<PrismSwiper :list='list' height='300rpx' indicatorType='dots|number|thumbnails|accordion' displayMode='preview' />\" />\n </view>\n\n <!-- 底部安全区 -->\n <view class=\"prism-safe-area-bottom\"></view>\n </scroll-view>\n </view>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\nimport PrismDropdown from '@/components/PrismDropdown/PrismDropdown.vue';\nimport PrismSwiper from '@/components/PrismSwiper/PrismSwiper.vue';\nimport PrismTabs from '@/components/PrismTabs/PrismTabs.vue';\n\nconst appStore = useAppStore();\n\nconst navbarHeight = computed(() => {\n return appStore.statusBarHeight + 44;\n});\n\nconst activeTab = ref(0);\nconst activeCapsule = ref(0);\nconst chromeTab = ref(0);\n\n// Tabs 数据\nconst lineTabs = ['全部', '进行中', '已完成'];\nconst chromeTabs = ['我创建的', '我参与的'];\n\n// 轮播图数据\nconst swiperList = ref([\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/1.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/2.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/3.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/4.jpg' }\n]);\n\n// 下拉菜单\nconst dropdownMenus = ref([\n {\n title: '排序',\n value: '综合排序',\n options: ['综合排序', '销量优先', '价格从低到高', '价格从高到低']\n },\n {\n title: '分类',\n value: '全部分类',\n options: ['全部分类', '手机数码', '电脑办公', '家用电器', '服饰鞋包', '美妆护肤']\n }\n]);\n\nfunction onDropdownChange({ index, value, menu }) {\n console.log('下拉菜单变化:', index, value);\n}\n</script>\n\n<style lang=\"scss\">\n@import './demo-common.scss';\n\n/* Chrome 标签容器样式 */\n.prism-section .prism-card.chrome-tabs-container {\n background: #ffffff !important;\n}\n\n.dark-mode .prism-section .prism-card.chrome-tabs-container {\n background: rgba(255, 255, 255, 0.12) !important;\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/demo/navigation.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","computed","ref","uni","MiniProgramPage"],"mappings":";;;;;;;;;;;AAAA,MAAA,YAAA,MAAA;AAAA,MAAA,gBAAA,MAAA;AAAA,MAAA,cAAA,MAAA;AAAA,MAAA,YAAA,MAAA;;;;AAAA,UAAA,WAAAA,UAAAA,YAAA;AAAA,UAAA,eAAAC,cAAAA,SAAA,MAAA;AAAA,aAAA,SAAA,kBAAA;AAAA,IAAA,CAAA;AAAA,UAAA,YAAAC,cAAAA,IAAA,CAAA;AAAA,UAAA,gBAAAA,cAAAA,IAAA,CAAA;AAAA,UAAA,YAAAA,cAAAA,IAAA,CAAA;AAAA,UAAA,WAAA,CAAA,MAAA,OAAA,KAAA;AAAA,UAAA,aAAA,CAAA,QAAA,MAAA;AAAA,UAAA,aAAAA,cAAAA,IAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,IAAA,CAAA;AAAA,UAAA,gBAAAA,cAAAA,IAAA;AAAA,MAAA;AAAA,QAAA,OAAA;AAAA,QAAA,OAAA;AAAA,QAAA,SAAA,CAAA,QAAA,QAAA,UAAA,QAAA;AAAA,MAAA;AAAA,MAAA;AAAA,QAAA,OAAA;AAAA,QAAA,OAAA;AAAA,QAAA,SAAA,CAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAAA;AAAA,MAAA;AAAA,IAAA,CAAA;AAAA,aAAA,iBAAA,EAAA,OAAA,OAAA,KAAA,GAAA;AAAAC,oBAAAA,MAAA,MAAA,OAAA,oCAAA,WAAA,OAAA,KAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"other.js","sources":["pages/demo/other.vue","../uniPage:/cGFnZXMvZGVtby9vdGhlci52dWU"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 导航栏 -->\n <PrismNavBar\n title=\"其他组件\"\n icon=\"fa-ellipsis\"\n icon-color=\"indigo\"\n :show-back=\"true\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n\n\n <!-- 代码展示基础示例 -->\n <view class=\"prism-section\">\n <view class=\"prism-section-header\">\n <view class=\"section-title\">代码展示</view>\n <view class=\"prism-more-link\" @click=\"goTo('/pages/demo/code/index')\">\n <text class=\"more-text\">更多用法</text>\n <text class=\"more-icon fa fa-angle-right\"></text>\n </view>\n </view>\n <view class=\"section-desc\">基础用法示例</view>\n\n <view class=\"prism-card\">\n <PrismCode code=\"npm install @ruixin/prism-ui\" />\n </view>\n\n <view class=\"prism-card\">\n <PrismCode :code=\"sampleCode\" language=\"vue\" :copyable=\"true\" />\n </view>\n </view>\n\n <!-- 底部安全区 -->\n <view class=\"prism-safe-area-bottom\"></view>\n </scroll-view>\n </view>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\n\nconst appStore = useAppStore();\n\nconst navbarHeight = computed(() => {\n return appStore.statusBarHeight + 44;\n});\n\nconst goTo = (url) => {\n uni.navigateTo({ url });\n};\n\nconst sampleCode = `<template>\n <PrismCode code=\"hello\" />\n</template>`;\n</script>\n\n<style lang=\"scss\">\n@import './demo-common.scss';\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/demo/other.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","computed","uni","MiniProgramPage"],"mappings":";;;;;;;;;;;AA2CA,MAAM,YAAY,MAAW;AAY7B,MAAM,aAAa;AAAA;AAAA;;;;AAVnB,UAAM,WAAWA,UAAAA,YAAW;AAE5B,UAAM,eAAeC,cAAAA,SAAS,MAAM;AAClC,aAAO,SAAS,kBAAkB;AAAA,IACpC,CAAC;AAED,UAAM,OAAO,CAAC,QAAQ;AACpBC,0BAAI,WAAW,EAAE,KAAK;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;ACpDA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"group.js","sources":["pages/demo/sticky/group.vue","../uniPage:/cGFnZXMvZGVtby9zdGlja3kvZ3JvdXAudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <PrismNavBar\n title=\"GroupSticky 分组吸顶\"\n icon=\"fa-list\"\n icon-color=\"green\"\n :show-back=\"true\"\n />\n\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n <!-- 分组吸顶示例 -->\n <view class=\"demo-container\">\n <PrismGroupSticky\n height=\"100%\"\n :show-index-bar=\"true\"\n :index-list=\"indexList\"\n >\n <view v-for=\"group in contactGroups\" :key=\"group.index\" :id=\"'group-' + group.index\">\n <view class=\"group-index\">{{ group.index }}</view>\n <view class=\"group-item\" v-for=\"item in group.items\" :key=\"item.name\">\n <view class=\"group-avatar\">{{ item.name[0] }}</view>\n <view class=\"group-info\">\n <view class=\"group-title\">{{ item.name }}</view>\n <view class=\"group-desc\">{{ item.desc }}</view>\n </view>\n </view>\n </view>\n </PrismGroupSticky>\n </view>\n\n <!-- 代码示例 -->\n <view class=\"code-float-bottom prism-card\">\n <PrismCode code=\"<PrismGroupSticky show-index-bar :index-list>\" />\n </view>\n\n <view class=\"prism-safe-area-bottom\"></view>\n </scroll-view>\n </view>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport PrismGroupSticky from '@/components/PrismGroupSticky/PrismGroupSticky.vue';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\n\nconst appStore = useAppStore();\n\nconst navbarHeight = computed(() => {\n return appStore.statusBarHeight + 44;\n});\n\nconst indexList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'Q', 'S', 'T', 'W', 'X', 'Y', 'Z'];\n\nconst contactGroups = [\n {\n index: 'A',\n items: [\n { name: '阿里巴巴', desc: '杭州市余杭区' },\n { name: '爱奇艺', desc: '北京市海淀区' },\n { name: 'OPPO', desc: '广东省东莞市' },\n ]\n },\n {\n index: 'B',\n items: [\n { name: '百度', desc: '北京市海淀区' },\n { name: '哔哩哔哩', desc: '上海市杨浦区' },\n { name: '比亚迪', desc: '深圳市坪山区' },\n { name: '贝壳找房', desc: '北京市朝阳区' },\n ]\n },\n {\n index: 'C',\n items: [\n { name: '长城汽车', desc: '河北省保定市' },\n { name: '传音控股', desc: '深圳市南山区' },\n ]\n },\n {\n index: 'D',\n items: [\n { name: '滴滴出行', desc: '北京市海淀区' },\n { name: '大疆创新', desc: '深圳市南山区' },\n { name: '得物', desc: '上海市杨浦区' },\n ]\n },\n {\n index: 'E',\n items: [\n { name: '饿了么', desc: '上海市普陀区' },\n ]\n },\n {\n index: 'F',\n items: [\n { name: '飞书', desc: '北京市海淀区' },\n { name: '富士康', desc: '深圳市龙华区' },\n ]\n },\n {\n index: 'G',\n items: [\n { name: '高德地图', desc: '北京市朝阳区' },\n { name: '广汽集团', desc: '广州市天河区' },\n ]\n },\n {\n index: 'H',\n items: [\n { name: '华为', desc: '深圳市龙岗区' },\n { name: '海尔智家', desc: '青岛市崂山区' },\n { name: '海康威视', desc: '杭州市滨江区' },\n { name: '货拉拉', desc: '深圳市南山区' },\n ]\n },\n {\n index: 'J',\n items: [\n { name: '京东', desc: '北京市亦庄' },\n { name: '极氪汽车', desc: '杭州市滨江区' },\n ]\n },\n {\n index: 'K',\n items: [\n { name: '快手', desc: '北京市海淀区' },\n { name: '科大讯飞', desc: '合肥市高新区' },\n ]\n },\n {\n index: 'L',\n items: [\n { name: '理想汽车', desc: '北京市顺义区' },\n { name: '联想集团', desc: '北京市海淀区' },\n ]\n },\n {\n index: 'M',\n items: [\n { name: '美团', desc: '北京市朝阳区' },\n { name: '蚂蚁集团', desc: '杭州市西湖区' },\n { name: '米哈游', desc: '上海市徐汇区' },\n ]\n },\n {\n index: 'N',\n items: [\n { name: '蔚来汽车', desc: '上海市嘉定区' },\n { name: '宁德时代', desc: '福建省宁德市' },\n ]\n },\n {\n index: 'Q',\n items: [\n { name: '腾讯', desc: '深圳市南山区' },\n { name: '去哪儿', desc: '北京市海淀区' },\n ]\n },\n {\n index: 'S',\n items: [\n { name: '顺丰速运', desc: '深圳市福田区' },\n { name: '商汤科技', desc: '上海市徐汇区' },\n { name: '三一重工', desc: '长沙市经开区' },\n ]\n },\n {\n index: 'T',\n items: [\n { name: '抖音', desc: '北京市海淀区' },\n { name: '特斯拉中国', desc: '上海市浦东新区' },\n ]\n },\n {\n index: 'W',\n items: [\n { name: '网易', desc: '杭州市滨江区' },\n { name: '微信', desc: '广州市海珠区' },\n { name: '蔚来汽车', desc: '上海市嘉定区' },\n ]\n },\n {\n index: 'X',\n items: [\n { name: '小米', desc: '北京市海淀区' },\n { name: '小鹏汽车', desc: '广州市天河区' },\n { name: '携程旅行', desc: '上海市长宁区' },\n ]\n },\n {\n index: 'Y',\n items: [\n { name: '阅文集团', desc: '上海市浦东新区' },\n { name: '云从科技', desc: '广州市南沙区' },\n ]\n },\n {\n index: 'Z',\n items: [\n { name: '字节跳动', desc: '北京市海淀区' },\n { name: '中兴通讯', desc: '深圳市南山区' },\n { name: '中芯国际', desc: '上海市浦东新区' },\n ]\n },\n];\n</script>\n\n<style lang=\"scss\">\n@import '../demo-common.scss';\n\n.demo-container {\n height: calc(100vh - 240rpx);\n overflow: hidden;\n margin: 0 30rpx;\n}\n\n.code-float-bottom {\n position: fixed;\n left: 30rpx;\n right: 30rpx;\n bottom: calc(8rpx + env(safe-area-inset-bottom));\n z-index: 100;\n}\n\n.group-index {\n padding: 16rpx 24rpx;\n background: var(--prism-bg-color, #F7F8FA);\n font-size: 26rpx;\n font-weight: 600;\n color: var(--prism-text-secondary, #86909C);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.group-item {\n display: flex;\n align-items: center;\n padding: 24rpx;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-bottom: 1rpx solid var(--prism-border-color-light, #F2F3F5);\n\n &:active {\n background: var(--prism-bg-color, #F7F8FA);\n }\n}\n\n.group-avatar {\n width: 80rpx;\n height: 80rpx;\n border-radius: 50%;\n background: rgba(52, 120, 246, 0.1);\n color: var(--prism-primary-color, #3478F6);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 32rpx;\n font-weight: 600;\n margin-right: 24rpx;\n flex-shrink: 0;\n}\n\n.group-info {\n flex: 1;\n min-width: 0;\n}\n\n.group-title {\n font-size: 30rpx;\n font-weight: 500;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 8rpx;\n}\n\n.group-desc {\n font-size: 24rpx;\n color: var(--prism-text-secondary, #86909C);\n}\n\n.dark-mode {\n .group-index {\n background: var(--prism-bg-color, #1A1A1A);\n color: var(--prism-text-secondary, #A9AEB8);\n }\n\n .group-item {\n background: var(--prism-bg-color-card, #242424);\n border-bottom-color: rgba(255, 255, 255, 0.08);\n\n &:active {\n background: var(--prism-bg-color, #1A1A1A);\n }\n }\n\n .group-avatar {\n background: rgba(52, 120, 246, 0.2);\n color: var(--prism-primary-color, #3478F6);\n }\n\n .group-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .group-desc {\n color: var(--prism-text-secondary, #A9AEB8);\n }\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/demo/sticky/group.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","computed","MiniProgramPage"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["pages/demo/sticky/index.vue","../uniPage:/cGFnZXMvZGVtby9zdGlja3kvaW5kZXgudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <PrismNavBar\n title=\"Sticky 吸顶\"\n icon=\"fa-anchor\"\n icon-color=\"blue\"\n :show-back=\"true\"\n />\n\n <view class=\"prism-main\" :style=\"{ paddingTop: navbarHeight + 'px' }\">\n <!-- Banner 轮播图 -->\n <PrismSwiper :list=\"bannerList\" height=\"300rpx\" radius=\"0\" />\n\n <!-- 页面吸顶 - 分类切换器 -->\n <PrismSticky :nav-height=\"navbarHeight\">\n <view class=\"sticky-tabs-wrapper\">\n <view class=\"prism-tabs\">\n <view class=\"tab-item\" :class=\"{ active: activeTab === 0 }\" @click=\"activeTab = 0\">综合</view>\n <view class=\"tab-item\" :class=\"{ active: activeTab === 1 }\" @click=\"activeTab = 1\">销量</view>\n <view class=\"tab-item\" :class=\"{ active: activeTab === 2 }\" @click=\"activeTab = 2\">价格</view>\n <view class=\"tab-item\" :class=\"{ active: activeTab === 3 }\" @click=\"activeTab = 3\">新品</view>\n </view>\n <view class=\"view-toggle\" @click=\"toggleViewMode\">\n <text class=\"fa\" :class=\"isGridView ? 'fa-list' : 'fa-table-cells'\"></text>\n </view>\n </view>\n </PrismSticky>\n\n <!-- 代码示例 -->\n <view class=\"p-[10rpx] \" >\n <PrismCode code=\"<PrismSticky>内容</PrismSticky>\" />\n </view>\n\n <!-- 内容列表 -->\n <view class=\"demo-content\" :class=\"{ 'list-view': !isGridView }\">\n <view class=\"product-item\" v-for=\"item in products\" :key=\"item.id\">\n <image class=\"product-image\" :src=\"item.image\" mode=\"aspectFill\" />\n <view class=\"product-info\">\n <view class=\"product-title\">{{ item.title }}</view>\n <view class=\"product-desc\">{{ item.desc }}</view>\n <view class=\"product-footer\">\n <view class=\"product-price\">¥{{ item.price }}</view>\n <view class=\"product-btn\">购买</view>\n </view>\n </view>\n </view>\n </view>\n\n <view class=\"prism-safe-area-bottom\"></view>\n </view>\n </view>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport { useNavbar } from '@/composables/useNavbar';\nimport PrismSticky from '@/components/PrismSticky/PrismSticky.vue';\nimport PrismSwiper from '@/components/PrismSwiper/PrismSwiper.vue';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\n\nconst appStore = useAppStore();\nconst { navbarHeight } = useNavbar();\n\nconst activeTab = ref(0);\nconst isGridView = ref(true);\n\nfunction toggleViewMode() {\n isGridView.value = !isGridView.value;\n}\n\n// 轮播图数据\nconst bannerList = ref([\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/1.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/2.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/3.jpg' },\n { image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/banner/4.jpg' }\n]);\n\n// 产品数据\nconst products = [\n { id: 1, title: '时尚休闲双肩包', desc: '大容量防水面料', price: '129.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p1.jpg' },\n { id: 2, title: '简约商务手提包', desc: '头层牛皮材质', price: '299.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p2.jpg' },\n { id: 3, title: '复古帆布斜挎包', desc: '文艺范十足', price: '89.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p3.jpg' },\n { id: 4, title: '运动健身背包', desc: '透气网面设计', price: '159.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p4.jpg' },\n { id: 5, title: '迷你链条小包', desc: '精致小巧百搭', price: '199.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p5.jpg' },\n { id: 6, title: '大容量旅行包', desc: '出行必备神器', price: '259.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p6.jpg' },\n { id: 7, title: '学生书包双肩包', desc: '减负护脊设计', price: '149.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p7.jpg' },\n { id: 8, title: '女士手拿包', desc: '优雅气质之选', price: '179.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p8.jpg' },\n { id: 9, title: '男士公文包', desc: '商务精英首选', price: '399.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p9.jpg' },\n { id: 10, title: '户外登山包', desc: '专业户外装备', price: '329.00', image: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/prism-ui/product/p10.jpg' },\n];\n</script>\n\n<style lang=\"scss\">\n@import '../demo-common.scss';\n\n/* 覆盖页面容器样式,让 sticky 正常工作 */\n.prism-page {\n height: auto;\n overflow: visible;\n}\n\n.prism-main {\n height: auto;\n min-height: 100vh;\n overflow: visible;\n}\n\n.sticky-tabs-wrapper {\n padding: 20rpx 30rpx;\n background: var(--prism-bg-color-card, #fff);\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .dark-mode & {\n background: var(--prism-bg-color-card, #242424);\n }\n\n .prism-tabs {\n margin-bottom: 0;\n flex: 1;\n }\n}\n\n.view-toggle {\n width: 60rpx;\n height: 60rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--prism-text-secondary, #86909C);\n font-size: 36rpx;\n\n &:active {\n opacity: 0.7;\n }\n}\n\n.demo-content {\n padding: 20rpx;\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20rpx;\n transition: all 0.3s ease;\n\n /* 列表视图 */\n &.list-view {\n grid-template-columns: 1fr;\n\n .product-item {\n display: flex;\n flex-direction: row;\n }\n\n .product-image {\n width: 200rpx;\n height: 200rpx;\n flex-shrink: 0;\n }\n\n .product-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n }\n}\n\n.product-item {\n background: var(--prism-bg-color-card, #FFFFFF);\n border-radius: 12rpx;\n overflow: hidden;\n\n &:active {\n opacity: 0.9;\n }\n\n .dark-mode & {\n background: var(--prism-bg-color-card, #242424);\n }\n}\n\n.product-image {\n width: 100%;\n height: 280rpx;\n background: var(--prism-bg-color, #F7F8FA);\n\n .dark-mode & {\n background: var(--prism-bg-color, #1A1A1A);\n }\n}\n\n.product-info {\n padding: 20rpx;\n}\n\n.product-title {\n font-size: 28rpx;\n font-weight: 500;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 8rpx;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n .dark-mode & {\n color: var(--prism-text-primary, #E5E6EB);\n }\n}\n\n.product-desc {\n font-size: 22rpx;\n color: var(--prism-text-secondary, #86909C);\n margin-bottom: 16rpx;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.product-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.product-price {\n font-size: 32rpx;\n font-weight: 700;\n color: var(--prism-danger-color, #F53F3F);\n}\n\n.product-btn {\n padding: 8rpx 24rpx;\n background: var(--prism-primary-color, #3478F6);\n color: #FFFFFF;\n border-radius: 20rpx;\n font-size: 24rpx;\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/demo/sticky/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","useNavbar","ref","MiniProgramPage"],"mappings":";;;;;;;;;;;;AAAA,MAAA,cAAA,MAAA;AAAA,MAAA,cAAA,MAAA;AAAA,MAAA,YAAA,MAAA;;;;AAAA,UAAA,WAAAA,UAAAA,YAAA;AAAA,UAAA,EAAA,aAAA,IAAAC,gCAAA;AAAA,UAAA,YAAAC,cAAAA,IAAA,CAAA;AAAA,UAAA,aAAAA,cAAAA,IAAA,IAAA;AAAA,aAAA,iBAAA;AAAA,iBAAA,QAAA,CAAA,WAAA;AAAA,IAAA;AAAA,UAAA,aAAAA,cAAAA,IAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,MAAA,EAAA,OAAA,gFAAA;AAAA,IAAA,CAAA;AAAA,UAAA,WAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,WAAA,MAAA,WAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,WAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,WAAA,MAAA,SAAA,OAAA,SAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,UAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,UAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,UAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,WAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,SAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,GAAA,OAAA,SAAA,MAAA,UAAA,OAAA,UAAA,OAAA,kFAAA;AAAA,MAAA,EAAA,IAAA,IAAA,OAAA,SAAA,MAAA,UAAA,OAAA,UAAA,OAAA,mFAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"examples.js","sources":["pages/examples/examples.vue","../uniPage:/cGFnZXMvZXhhbXBsZXMvZXhhbXBsZXMudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 固定导航栏 -->\n <PrismNavBar\n title=\"案例\"\n icon=\"fa-layer-group\"\n icon-color=\"green\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n <!-- 案例列表 -->\n <view class=\"example-section\">\n <view class=\"section-title\">精选案例</view>\n <view class=\"example-grid\">\n <view class=\"example-card\" style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\">\n <view class=\"card-cover\">\n <text class=\"fa fa-lock\"></text>\n </view>\n <view class=\"card-content\">\n <text class=\"card-title\">登录页面</text>\n <text class=\"card-desc\">玻璃态登录表单设计</text>\n </view>\n </view>\n <view class=\"example-card\" style=\"background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);\">\n <view class=\"card-cover\">\n <text class=\"fa fa-user\"></text>\n </view>\n <view class=\"card-content\">\n <text class=\"card-title\">个人中心</text>\n <text class=\"card-desc\">用户信息展示页面</text>\n </view>\n </view>\n <view class=\"example-card\" style=\"background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);\">\n <view class=\"card-cover\">\n <text class=\"fa fa-chart-line\"></text>\n </view>\n <view class=\"card-content\">\n <text class=\"card-title\">数据看板</text>\n <text class=\"card-desc\">数据统计可视化</text>\n </view>\n </view>\n <view class=\"example-card\" style=\"background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);\">\n <view class=\"card-cover\">\n <text class=\"fa fa-bag-shopping\"></text>\n </view>\n <view class=\"card-content\">\n <text class=\"card-title\">商品列表</text>\n <text class=\"card-desc\">电商商品展示</text>\n </view>\n </view>\n </view>\n </view>\n\n <!-- 快速开始 -->\n <view class=\"example-section\">\n <view class=\"section-title\">快速开始</view>\n <view class=\"quick-actions-grid\">\n <view class=\"quick-action-card cyan-gradient\">\n <view class=\"action-icon-wrapper\">\n <text class=\"fa fa-comments action-icon\"></text>\n </view>\n <text class=\"action-title\">聊天界面</text>\n <text class=\"action-desc\">即时通讯聊天</text>\n </view>\n <view class=\"quick-action-card orange-gradient\">\n <view class=\"action-icon-wrapper\">\n <text class=\"fa fa-bell action-icon\"></text>\n </view>\n <text class=\"action-title\">消息中心</text>\n <text class=\"action-desc\">通知消息列表</text>\n </view>\n <view class=\"quick-action-card green-gradient\">\n <view class=\"action-icon-wrapper\">\n <text class=\"fa fa-gear action-icon\"></text>\n </view>\n <text class=\"action-title\">设置页面</text>\n <text class=\"action-desc\">应用设置选项</text>\n </view>\n <view class=\"quick-action-card purple-gradient\">\n <view class=\"action-icon-wrapper\">\n <text class=\"fa fa-magnifying-glass action-icon\"></text>\n </view>\n <text class=\"action-title\">搜索页面</text>\n <text class=\"action-desc\">搜索与筛选功能</text>\n </view>\n </view>\n </view>\n\n <!-- 快速功能 -->\n <view class=\"example-section\">\n <view class=\"section-title\">快速功能</view>\n <view class=\"quick-grid\">\n <view class=\"quick-card\">\n <view class=\"prism-icon cyan\">\n <text class=\"fa fa-camera\"></text>\n </view>\n <text class=\"quick-title\">拍照上传</text>\n </view>\n <view class=\"quick-card\">\n <view class=\"prism-icon orange\">\n <text class=\"fa fa-qrcode\"></text>\n </view>\n <text class=\"quick-title\">扫一扫</text>\n </view>\n <view class=\"quick-card\">\n <view class=\"prism-icon green\">\n <text class=\"fa fa-location-dot\"></text>\n </view>\n <text class=\"quick-title\">定位签到</text>\n </view>\n <view class=\"quick-card\">\n <view class=\"prism-icon purple\">\n <text class=\"fa fa-share-nodes\"></text>\n </view>\n <text class=\"quick-title\">分享</text>\n </view>\n </view>\n </view>\n\n <!-- 任务入口 -->\n <view class=\"example-section\">\n <view class=\"section-title\">任务入口</view>\n <view class=\"task-actions-grid\">\n <view class=\"task-action-card primary-gradient\">\n <view class=\"task-icon-wrapper\">\n <text class=\"fa fa-plus task-icon\"></text>\n </view>\n <text class=\"task-title\">创建任务</text>\n <text class=\"task-desc\">新建施工、采购或验收任务</text>\n </view>\n <view class=\"task-action-card pink-gradient\">\n <view class=\"task-icon-wrapper\">\n <text class=\"fa fa-list-check task-icon\"></text>\n </view>\n <text class=\"task-title\">我的任务</text>\n <text class=\"task-desc\">查看分配给我的所有任务</text>\n </view>\n </view>\n </view>\n\n <!-- 项目视图 -->\n <view class=\"example-section\">\n <view class=\"section-title\">项目视图</view>\n <view class=\"view-cards-grid\">\n <view class=\"view-card\">\n <view class=\"view-icon\" style=\"background: rgba(52, 120, 246, 0.15);\">\n <text class=\"fa fa-table\" style=\"color: #3478F6;\"></text>\n </view>\n <text class=\"view-title\">项目报表</text>\n <text class=\"view-desc\">数据统计与分析</text>\n </view>\n <view class=\"view-card\">\n <view class=\"view-icon\" style=\"background: rgba(0, 180, 42, 0.15);\">\n <text class=\"fa fa-map\" style=\"color: #00B42A;\"></text>\n </view>\n <text class=\"view-title\">地图视图</text>\n <text class=\"view-desc\">项目地理分布</text>\n </view>\n <view class=\"view-card\">\n <view class=\"view-icon\" style=\"background: rgba(255, 125, 0, 0.15);\">\n <text class=\"fa fa-filter\" style=\"color: #FF7D00;\"></text>\n </view>\n <text class=\"view-title\">数据筛选</text>\n <text class=\"view-desc\">多维度筛选查询</text>\n </view>\n <view class=\"view-card\">\n <view class=\"view-icon\" style=\"background: rgba(114, 46, 209, 0.15);\">\n <text class=\"fa fa-calendar\" style=\"color: #722ED1;\"></text>\n </view>\n <text class=\"view-title\">日历视图</text>\n <text class=\"view-desc\">项目日程安排</text>\n </view>\n </view>\n </view>\n\n <!-- 项目配置 -->\n <view class=\"example-section\">\n <view class=\"section-title\">项目配置</view>\n <view class=\"config-cards-grid\">\n <view class=\"config-card\">\n <view class=\"config-icon\" style=\"background: rgba(52, 120, 246, 0.15);\">\n <text class=\"fa fa-bars\" style=\"color: #3478F6;\"></text>\n </view>\n <text class=\"config-title\">阶段配置</text>\n <text class=\"config-desc\">项目阶段管理</text>\n </view>\n <view class=\"config-card\">\n <view class=\"config-icon\" style=\"background: rgba(0, 180, 42, 0.15);\">\n <text class=\"fa fa-file-lines\" style=\"color: #00B42A;\"></text>\n </view>\n <text class=\"config-title\">项目模板</text>\n <text class=\"config-desc\">项目模板管理</text>\n </view>\n <view class=\"config-card\">\n <view class=\"config-icon\" style=\"background: rgba(255, 125, 0, 0.15);\">\n <text class=\"fa fa-list\" style=\"color: #FF7D00;\"></text>\n </view>\n <text class=\"config-title\">任务模板</text>\n <text class=\"config-desc\">任务模板管理</text>\n </view>\n </view>\n </view>\n\n <!-- 音乐播放器 -->\n <view class=\"example-section\">\n <view class=\"section-title\">音乐播放器</view>\n <PrismMusicPlayer\n title=\"疗愈音乐\"\n :songs=\"musicSongs\"\n :is-dark-mode=\"appStore.isDarkMode\"\n />\n </view>\n\n <!-- 底部占位 -->\n <view class=\"prism-bottom-placeholder\"></view>\n </scroll-view>\n\n <!-- 底部 TabBar -->\n <PrismTabBar current=\"/pages/examples/examples\" />\n </view>\n</template>\n\n<script setup>\nimport { useAppStore } from '@/store/app';\nimport { useNavbar } from '@/composables/useNavbar';\n\nconst appStore = useAppStore();\nconst { navbarHeight } = useNavbar();\n\n// 音乐播放器数据\nconst COVER_BASE = 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/awesome/music/covers/';\nconst musicSongs = {\n '放松舒缓': [\n { name: '01.僕は帰ろう', file: 'http://music.ruixinkeji.com/1.mp3', cover: COVER_BASE + '僕は帰ろう.jpg', album: '1Y Music 大自然轻音乐/最好听' },\n { name: '05.優しさは風のように', file: 'http://music.ruixinkeji.com/5.mp3', cover: COVER_BASE + '優しさは風のように.jpg', album: '妹尾武 - 優しさは風のように' },\n { name: '木兰诗', file: 'https://ruixinkeji.oss-cn-hangzhou.aliyuncs.com/docs/Mulan_Poem.mp3', album: '古诗词吟唱' }\n ],\n '专注冥想': [\n { name: '02.Yuunagi', file: 'http://music.ruixinkeji.com/2.mp3', cover: COVER_BASE + 'Yuunagi.jpg', album: 'Paniyolo - Yuunagi' },\n { name: '06.Music for Dreaming', file: 'http://music.ruixinkeji.com/6.mp3', cover: COVER_BASE + 'Music for Dreaming.jpg', album: 'PianoPeace - Music for Dreaming' }\n ],\n '情绪提振': [\n { name: '03.风の诗', file: 'http://music.ruixinkeji.com/3.mp3', cover: COVER_BASE + '风の诗.jpg', album: '神山純一 - 风の诗' },\n { name: '07.Memory Lane', file: 'http://music.ruixinkeji.com/7.mp3', cover: COVER_BASE + 'Memory Lane.jpg', album: 'yutaka hirasaka - Memory Lane' },\n { name: '09.南国之舞', file: 'http://music.ruixinkeji.com/9.mp3', cover: COVER_BASE + '南国之舞.jpg', album: '梁翘柏 - 南国之舞' }\n ],\n '助眠安神': [\n { name: '04.Inside the Hut', file: 'http://music.ruixinkeji.com/4.mp3', cover: COVER_BASE + 'Inside the Hut.jpg', album: '陈越龙 - Inside the Hut' },\n { name: '08.Respite', file: 'http://music.ruixinkeji.com/8.mp3', cover: COVER_BASE + 'Respite.jpg', album: 'Ólafur Arnalds - Respite' }\n ]\n};\n</script>\n\n<style lang=\"scss\">\n.prism-page {\n width: 100%;\n min-height: 100vh;\n background: var(--prism-bg-color-page, #F7F8FA);\n}\n\n.prism-main {\n height: 100vh;\n padding-bottom: 120rpx;\n}\n\n.example-section {\n padding: 24rpx;\n}\n\n.section-title {\n font-size: 28rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 16rpx;\n}\n\n.example-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20rpx;\n}\n\n.quick-actions-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20rpx;\n}\n\n.quick-grid {\n display: flex;\n gap: 24rpx;\n}\n\n.quick-card {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 24rpx 16rpx;\n border-radius: 16rpx;\n background: var(--prism-bg-color-card);\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);\n\n &:active {\n opacity: 0.8;\n }\n\n .prism-icon {\n width: 80rpx;\n height: 80rpx;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 12rpx;\n\n .fa {\n font-size: 32rpx;\n }\n }\n}\n\n.quick-title {\n font-size: 24rpx;\n color: var(--prism-text-secondary);\n}\n\n/* 任务入口卡片 - task.vue 风格 */\n.task-actions-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20rpx;\n}\n\n.task-action-card {\n border-radius: 20rpx;\n padding: 32rpx 24rpx;\n position: relative;\n overflow: hidden;\n transition: all 0.3s ease;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n &:active {\n transform: scale(0.98);\n }\n\n // 顶部高光线\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2rpx;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n }\n\n &.primary-gradient {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n box-shadow: 0 8rpx 32rpx rgba(102, 126, 234, 0.3);\n }\n\n &.pink-gradient {\n background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);\n box-shadow: 0 8rpx 32rpx rgba(240, 147, 251, 0.3);\n }\n\n .task-icon-wrapper {\n width: 64rpx;\n height: 64rpx;\n background: rgba(255, 255, 255, 0.25);\n border-radius: 16rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 16rpx;\n\n .task-icon {\n font-size: 32rpx;\n color: #ffffff;\n }\n }\n\n .task-title {\n font-size: 32rpx;\n font-weight: 600;\n color: #ffffff;\n margin-bottom: 8rpx;\n }\n\n .task-desc {\n font-size: 24rpx;\n color: rgba(255, 255, 255, 0.85);\n }\n}\n\n/* 项目视图卡片 */\n.view-cards-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20rpx;\n}\n\n.view-card {\n padding: 32rpx 24rpx;\n background: linear-gradient(135deg,\n rgba(255, 255, 255, 0.95) 0%,\n rgba(255, 255, 255, 0.85) 100%);\n border-radius: 20rpx;\n box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.06);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border: 1rpx solid rgba(255, 255, 255, 0.8);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16rpx;\n transition: all 0.3s ease;\n\n &:active {\n transform: translateY(-4rpx);\n box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.1);\n }\n\n .view-icon {\n width: 80rpx;\n height: 80rpx;\n border-radius: 20rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .fa {\n font-size: 40rpx;\n }\n }\n\n .view-title {\n font-size: 28rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n }\n\n .view-desc {\n font-size: 22rpx;\n color: var(--prism-text-secondary, #86909C);\n }\n}\n\n/* 项目配置卡片 */\n.config-cards-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20rpx;\n}\n\n.config-card {\n padding: 28rpx 16rpx;\n background: linear-gradient(135deg,\n rgba(255, 255, 255, 0.95) 0%,\n rgba(255, 255, 255, 0.85) 100%);\n border-radius: 16rpx;\n box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.06);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border: 1rpx solid rgba(255, 255, 255, 0.8);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12rpx;\n transition: all 0.3s ease;\n position: relative;\n overflow: hidden;\n\n // 顶部高光线\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1rpx;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.8), transparent);\n }\n\n &:active {\n transform: translateY(-4rpx);\n box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.1);\n }\n\n .config-icon {\n width: 64rpx;\n height: 64rpx;\n border-radius: 16rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .fa {\n font-size: 32rpx;\n }\n }\n\n .config-title {\n font-size: 26rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n }\n\n .config-desc {\n font-size: 20rpx;\n color: var(--prism-text-secondary, #86909C);\n }\n}\n\n.quick-action-card {\n padding: 32rpx 20rpx;\n border-radius: 20rpx;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12rpx;\n position: relative;\n overflow: hidden;\n box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.15);\n\n &:active {\n transform: translateY(-4rpx);\n box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.2);\n }\n\n &.cyan-gradient {\n background: linear-gradient(135deg, #13C2C2 0%, #36CFC9 100%);\n }\n\n &.orange-gradient {\n background: linear-gradient(135deg, #FF7D00 0%, #FFA940 100%);\n }\n\n &.green-gradient {\n background: linear-gradient(135deg, #00B42A 0%, #52c41a 100%);\n }\n\n &.purple-gradient {\n background: linear-gradient(135deg, #722ED1 0%, #9254DE 100%);\n }\n\n // 气泡装饰 - 右上角\n &::before {\n content: '';\n position: absolute;\n top: -50rpx;\n right: -50rpx;\n width: 160rpx;\n height: 160rpx;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 50%;\n }\n\n // 气泡装饰 - 左下角\n &::after {\n content: '';\n position: absolute;\n bottom: -30rpx;\n left: -30rpx;\n width: 120rpx;\n height: 120rpx;\n background: rgba(255, 255, 255, 0.08);\n border-radius: 50%;\n }\n\n .action-icon-wrapper {\n width: 96rpx;\n height: 96rpx;\n background: rgba(255, 255, 255, 0.25);\n border-radius: 24rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n position: relative;\n z-index: 1;\n\n .action-icon {\n font-size: 48rpx;\n color: #ffffff;\n }\n }\n\n .action-title {\n font-size: 32rpx;\n font-weight: 600;\n color: #ffffff;\n position: relative;\n z-index: 1;\n }\n\n .action-desc {\n font-size: 24rpx;\n color: rgba(255, 255, 255, 0.85);\n text-align: center;\n position: relative;\n z-index: 1;\n }\n}\n\n.example-card {\n border-radius: 16rpx;\n overflow: hidden;\n position: relative;\n\n // 顶部高光线\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2rpx;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n z-index: 2;\n }\n\n &:active {\n opacity: 0.8;\n }\n\n .card-cover {\n height: 160rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .fa {\n width: 88rpx;\n height: 88rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 48rpx;\n color: #ffffff;\n background: rgba(255, 255, 255, 0.25);\n border-radius: 20rpx;\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n }\n }\n\n .card-content {\n padding: 16rpx;\n background: rgba(0, 0, 0, 0.3);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n }\n\n .card-title {\n display: block;\n font-size: 28rpx;\n font-weight: 600;\n color: rgba(255, 255, 255, 0.95);\n margin-bottom: 4rpx;\n }\n\n .card-desc {\n display: block;\n font-size: 22rpx;\n color: rgba(255, 255, 255, 0.7);\n }\n}\n\n/* 深色模式 */\n.dark-mode {\n .section-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .quick-card {\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.2);\n }\n\n .example-card {\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n pointer-events: none;\n }\n\n .card-content {\n background: rgba(0, 0, 0, 0.15);\n position: relative;\n z-index: 1;\n }\n\n .card-cover {\n position: relative;\n z-index: 1;\n }\n\n .card-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .card-desc {\n color: rgba(255, 255, 255, 0.6);\n }\n }\n\n .view-card {\n background: linear-gradient(135deg,\n rgba(36, 36, 36, 0.95) 0%,\n rgba(32, 32, 32, 0.9) 100%);\n border-color: rgba(255, 255, 255, 0.08);\n box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.3);\n\n .view-title {\n color: #E5E6EB;\n }\n }\n\n .config-card {\n background: linear-gradient(135deg,\n rgba(36, 36, 36, 0.95) 0%,\n rgba(32, 32, 32, 0.9) 100%);\n border-color: rgba(255, 255, 255, 0.08);\n box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.3);\n\n &::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n }\n\n .config-title {\n color: #E5E6EB;\n }\n }\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/examples/examples.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","useNavbar","MiniProgramPage"],"mappings":";;;;;;;;;;;;;;;;AAuOA,MAAM,aAAa;;;;AAJnB,UAAM,WAAWA,UAAAA,YAAW;AAC5B,UAAM,EAAE,aAAY,IAAKC,gCAAS;AAIlC,UAAM,aAAa;AAAA,MACjB,QAAQ;AAAA,QACN,EAAE,MAAM,YAAY,MAAM,qCAAqC,OAAO,aAAa,aAAa,OAAO,sBAAqB;AAAA,QAC5H,EAAE,MAAM,gBAAgB,MAAM,qCAAqC,OAAO,aAAa,iBAAiB,OAAO,kBAAiB;AAAA,QAChI,EAAE,MAAM,OAAO,MAAM,uEAAuE,OAAO,QAAO;AAAA,MAC9G;AAAA,MACE,QAAQ;AAAA,QACN,EAAE,MAAM,cAAc,MAAM,qCAAqC,OAAO,aAAa,eAAe,OAAO,qBAAoB;AAAA,QAC/H,EAAE,MAAM,yBAAyB,MAAM,qCAAqC,OAAO,aAAa,0BAA0B,OAAO,kCAAiC;AAAA,MACtK;AAAA,MACE,QAAQ;AAAA,QACN,EAAE,MAAM,UAAU,MAAM,qCAAqC,OAAO,aAAa,WAAW,OAAO,aAAY;AAAA,QAC/G,EAAE,MAAM,kBAAkB,MAAM,qCAAqC,OAAO,aAAa,mBAAmB,OAAO,gCAA+B;AAAA,QAClJ,EAAE,MAAM,WAAW,MAAM,qCAAqC,OAAO,aAAa,YAAY,OAAO,aAAY;AAAA,MACrH;AAAA,MACE,QAAQ;AAAA,QACN,EAAE,MAAM,qBAAqB,MAAM,qCAAqC,OAAO,aAAa,sBAAsB,OAAO,uBAAsB;AAAA,QAC/I,EAAE,MAAM,cAAc,MAAM,qCAAqC,OAAO,aAAa,eAAe,OAAO,2BAA0B;AAAA,MACzI;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;AC1PA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icons.js","sources":["pages/icons/icons.vue","../uniPage:/cGFnZXMvaWNvbnMvaWNvbnMudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 固定导航栏 -->\n <PrismNavBar\n title=\"图标库\"\n icon=\"fa-icons\"\n icon-color=\"red\"\n />\n\n <!-- 搜索框区域 -->\n <view class=\"search-header\" :style=\"{ paddingTop: (appStore.statusBarHeight + 88 / 750 * systemInfoWidth) + 'px' }\">\n <view class=\"search-box\">\n <view class=\"prism-input-box\">\n <text class=\"fa fa-search search-icon\"></text>\n <input placeholder=\"搜索图标...\" v-model=\"searchText\" />\n </view>\n <!-- 样式切换按钮 -->\n <view\n class=\"prism-icon-btn prism-icon-btn--md\"\n :class=\"{ active: selectedColor }\"\n @click=\"showStylePanel = !showStylePanel\"\n >\n <text class=\"fa fa-palette\"></text>\n </view>\n <!-- 分类按钮 -->\n <view\n class=\"prism-icon-btn prism-icon-btn--md\"\n v-show=\"activeTab === 'fa'\"\n @click=\"showCategoryNav = !showCategoryNav\"\n >\n <text class=\"fa fa-list\"></text>\n </view>\n </view>\n </view>\n\n <!-- 主内容区 -->\n <scroll-view\n class=\"prism-main\"\n scroll-y\n :scroll-into-view=\"scrollToId\"\n :style=\"{ paddingTop: navbarHeight + 'px' }\"\n >\n <!-- Tab 切换 -->\n <PrismTabs v-model=\"activeTabIndex\" :tabs=\"tabList\" type=\"card\" @change=\"onTabChange\" />\n\n <!-- Font Awesome 图标 -->\n <view v-show=\"activeTabIndex === 0\">\n <view\n class=\"icon-section\"\n v-for=\"(category, index) in filteredFaCategories\"\n :key=\"index\"\n :id=\"'fa-section-' + index\"\n >\n <view class=\"section-title\">{{ category.name }}</view>\n <view class=\"icon-grid\">\n <view class=\"icon-item\" v-for=\"icon in category.icons\" :key=\"icon\" @click=\"copyIcon(icon, 'fa', category.name === '品牌图标')\">\n <view class=\"icon-box\" :class=\"iconContainerClass\">\n <text :class=\"[category.name === '品牌图标' ? 'fa-brands' : 'fa', icon]\"></text>\n </view>\n <text class=\"icon-name\">{{ icon.replace('fa-', '') }}</text>\n </view>\n </view>\n </view>\n </view>\n\n <!-- Iconfont 图标 -->\n <view v-show=\"activeTabIndex === 1\">\n <view\n class=\"icon-section\"\n v-for=\"(category, index) in filteredIconfontCategories\"\n :key=\"index\"\n :id=\"'iconfont-section-' + index\"\n >\n <view class=\"section-title\">{{ category.name }}</view>\n <view class=\"icon-grid\">\n <view class=\"icon-item\" v-for=\"icon in category.icons\" :key=\"icon\" @click=\"copyIcon(icon, 'iconfont')\">\n <view class=\"icon-box\" :class=\"iconContainerClass\">\n <text class=\"iconfont\" :class=\"icon\"></text>\n </view>\n <text class=\"icon-name\">{{ icon.replace('icon-', '') }}</text>\n </view>\n </view>\n </view>\n </view>\n\n <!-- 底部占位 -->\n <view class=\"prism-bottom-placeholder\"></view>\n </scroll-view>\n\n <!-- 样式选择面板 - 底部弹出 -->\n <view class=\"style-sheet-wrapper\" v-show=\"showStylePanel\" @click=\"showStylePanel = false\">\n <view class=\"style-sheet\" @click.stop>\n <!-- 拖拽指示条 -->\n <view class=\"sheet-handle\"></view>\n <!-- 标题 -->\n <view class=\"sheet-header\">\n <text class=\"sheet-title\">图标样式</text>\n </view>\n <!-- 内容 -->\n <view class=\"sheet-body\">\n <!-- 颜色选择 -->\n <view class=\"sheet-section\">\n <text class=\"sheet-label\">颜色</text>\n <view class=\"color-grid\">\n <view\n v-for=\"color in colorOptions\"\n :key=\"color.name\"\n class=\"color-item\"\n :class=\"{ active: selectedColor === color.name }\"\n @click=\"selectedColor = color.name\"\n >\n <view class=\"color-circle\" :style=\"{ background: color.hex }\"></view>\n <text class=\"color-label\">{{ color.label }}</text>\n </view>\n </view>\n </view>\n <!-- 形态选择 -->\n <view class=\"sheet-section\" v-show=\"selectedColor\">\n <text class=\"sheet-label\">形态</text>\n <view class=\"style-grid\">\n <view\n v-for=\"style in styleOptions\"\n :key=\"style.name\"\n class=\"style-item\"\n :class=\"{ active: selectedStyle === style.name }\"\n @click=\"selectedStyle = style.name\"\n >{{ style.label }}</view>\n </view>\n </view>\n </view>\n <!-- 底部安全区 -->\n <view class=\"prism-safe-area-bottom\" style=\"min-height: 40rpx;\"></view>\n </view>\n </view>\n\n <!-- 分类抽屉 -->\n <view class=\"category-nav-wrapper\" v-show=\"showCategoryNav\">\n <!-- 抽屉面板 -->\n <view\n class=\"category-nav-drawer show\"\n :style=\"{ top: (navbarHeight + 20) + 'px' }\"\n >\n <view class=\"drawer-header\">\n <text>选择分类</text>\n <text class=\"drawer-close\" @click=\"showCategoryNav = false\">\n <text class=\"fa fa-xmark\"></text>\n </text>\n </view>\n <scroll-view scroll-y class=\"drawer-content\">\n <view\n class=\"drawer-item\"\n v-for=\"(category, index) in faCategories\"\n :key=\"index\"\n :class=\"{ active: currentCategoryIndex === index }\"\n @click=\"scrollToCategory(index); showCategoryNav = false\"\n >\n <text class=\"drawer-item-index\">{{ index + 1 }}</text>\n <text class=\"drawer-item-name\">{{ category.name }}</text>\n <text class=\"drawer-item-count\">{{ category.icons.length }}</text>\n </view>\n </scroll-view>\n </view>\n\n <!-- 遮罩层 -->\n <view\n class=\"category-nav-mask\"\n @click=\"showCategoryNav = false\"\n ></view>\n </view>\n\n <!-- 底部 TabBar -->\n <PrismTabBar current=\"/pages/icons/icons\" />\n </view>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport { useNavbar } from '@/composables/useNavbar';\nimport PrismTabs from '@/components/PrismTabs/PrismTabs.vue';\n\nconst appStore = useAppStore();\nconst searchText = ref('');\nconst activeTabIndex = ref(0);\nconst scrollToId = ref('');\nconst currentCategoryIndex = ref(0);\nconst showCategoryNav = ref(false);\nconst showStylePanel = ref(false);\n\n// 颜色和形态选择\nconst selectedColor = ref(''); // 空字符串表示不应用颜色\nconst selectedStyle = ref(''); // 空字符串表示自适应\n\n// 可选颜色列表\nconst colorOptions = [\n { name: '', label: '默认', hex: '#86909C' },\n { name: 'blue', label: '蓝', hex: '#3478F6' },\n { name: 'purple', label: '紫', hex: '#722ED1' },\n { name: 'green', label: '绿', hex: '#00B42A' },\n { name: 'red', label: '红', hex: '#F53F3F' },\n { name: 'orange', label: '橙', hex: '#FF7D00' },\n { name: 'cyan', label: '青', hex: '#14C9C9' },\n { name: 'pink', label: '粉', hex: '#F53F7F' }\n];\n\n// 可选形态列表\nconst styleOptions = [\n { name: '', label: '默认' },\n { name: 'solid', label: '实心' },\n { name: 'gradient', label: '渐变' },\n { name: 'glass', label: '玻璃' },\n { name: 'outline', label: '轮廓' }\n];\n\n// 计算图标容器的类名\nconst iconContainerClass = computed(() => {\n if (!selectedColor.value) return '';\n if (!selectedStyle.value) return `prism-icon ${selectedColor.value}`;\n return `prism-icon ${selectedColor.value} ${selectedStyle.value}`;\n});\n\nconst systemInfo = uni.getSystemInfoSync();\nconst systemInfoWidth = systemInfo.windowWidth;\nconst { navbarContentHeight } = useNavbar();\n\n// 滚动到指定分类\nfunction scrollToCategory(index) {\n currentCategoryIndex.value = index;\n scrollToId.value = '';\n setTimeout(() => {\n scrollToId.value = 'fa-section-' + index;\n }, 50);\n}\n\nconst navbarHeight = computed(() => {\n const searchBoxHeight = 140 / 750 * systemInfoWidth; // 搜索框高度\n return appStore.statusBarHeight + navbarContentHeight.value + searchBoxHeight;\n});\n\n// Font Awesome 图标分类\nconst faCategories = [\n {\n name: '基础操作',\n icons: ['fa-sun', 'fa-moon', 'fa-circle-half-stroke', 'fa-bell', 'fa-bell-slash', 'fa-search', 'fa-plus', 'fa-check', 'fa-times', 'fa-xmark', 'fa-edit', 'fa-trash', 'fa-trash-can', 'fa-refresh', 'fa-link', 'fa-cube', 'fa-keyboard', 'fa-compass', 'fa-comment', 'fa-comment-dots', 'fa-comments', 'fa-comment-sms', 'fa-comments-dollar', 'fa-wand-magic-sparkles', 'fa-wand-sparkles', 'fa-magic', 'fa-briefcase', 'fa-layer-group', 'fa-layer-plus', 'fa-layer-minus', 'fa-qrcode', 'fa-camera', 'fa-camera-retro', 'fa-palette', 'fa-icons', 'fa-clone', 'fa-copy', 'fa-paste', 'fa-scissors', 'fa-cut']\n },\n {\n name: '箭头方向',\n icons: ['fa-angle-right', 'fa-angle-down', 'fa-angle-left', 'fa-angle-up', 'fa-angles-left', 'fa-angles-right', 'fa-angles-up', 'fa-angles-down', 'fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrow-down', 'fa-arrow-left-long', 'fa-arrow-right-long', 'fa-arrow-up-long', 'fa-arrow-down-long', 'fa-arrow-rotate-right', 'fa-arrow-rotate-left', 'fa-arrows-rotate', 'fa-arrows-spin', 'fa-arrow-trend-up', 'fa-arrow-turn-down', 'fa-arrow-turn-up', 'fa-arrow-up-from-bracket', 'fa-arrow-down-to-bracket', 'fa-arrow-up-right-from-square', 'fa-up-right-from-square', 'fa-external-link', 'fa-rotate', 'fa-rotate-right', 'fa-rotate-left', 'fa-redo', 'fa-undo', 'fa-reply', 'fa-chevron-left', 'fa-chevron-right', 'fa-chevron-up', 'fa-chevron-down', 'fa-caret-left', 'fa-caret-right', 'fa-caret-up', 'fa-caret-down', 'fa-sort', 'fa-sort-up', 'fa-sort-down', 'fa-circle-arrow-left', 'fa-circle-arrow-right', 'fa-circle-arrow-up', 'fa-circle-arrow-down']\n },\n {\n name: '用户相关',\n icons: ['fa-user', 'fa-users', 'fa-user-plus', 'fa-user-minus', 'fa-user-group', 'fa-user-gear', 'fa-user-cog', 'fa-user-check', 'fa-user-tag', 'fa-user-edit', 'fa-user-pen', 'fa-user-lock', 'fa-user-slash', 'fa-user-clock', 'fa-user-doctor', 'fa-user-nurse', 'fa-user-graduate', 'fa-user-tie', 'fa-user-secret', 'fa-user-astronaut', 'fa-user-ninja', 'fa-user-shield', 'fa-user-shield-alt', 'fa-users-gear', 'fa-users-cog']\n },\n {\n name: '文件文件夹',\n icons: ['fa-file', 'fa-file-text', 'fa-file-lines', 'fa-files', 'fa-folder', 'fa-folder-open', 'fa-folder-tree', 'fa-folder-plus', 'fa-folder-minus', 'fa-folder-closed', 'fa-file-pdf', 'fa-file-word', 'fa-file-excel', 'fa-file-powerpoint', 'fa-file-image', 'fa-file-video', 'fa-file-audio', 'fa-file-code', 'fa-file-zipper', 'fa-file-csv', 'fa-file-arrow-up', 'fa-file-arrow-down', 'fa-file-export', 'fa-file-import', 'fa-file-circle-plus', 'fa-file-circle-minus', 'fa-file-circle-check', 'fa-file-circle-xmark', 'fa-file-medical', 'fa-file-prescription', 'fa-file-signature', 'fa-file-contract', 'fa-file-invoice', 'fa-file-invoice-dollar', 'fa-download', 'fa-upload', 'fa-cloud-arrow-up', 'fa-cloud-arrow-down']\n },\n {\n name: '时间日历',\n icons: ['fa-calendar', 'fa-calendar-days', 'fa-calendar-week', 'fa-calendar-check', 'fa-calendar-xmark', 'fa-calendar-plus', 'fa-calendar-minus', 'fa-clock', 'fa-clock-rotate-left', 'fa-history', 'fa-hourglass', 'fa-hourglass-half', 'fa-stopwatch', 'fa-timer', 'fa-alarm-clock']\n },\n {\n name: '导航界面',\n icons: ['fa-home', 'fa-house', 'fa-house-chimney', 'fa-house-user', 'fa-house-building', 'fa-house-lock', 'fa-cog', 'fa-gear', 'fa-gears', 'fa-sliders', 'fa-info-circle', 'fa-mobile', 'fa-mobile-alt', 'fa-mobile-screen', 'fa-mobile-button', 'fa-bars', 'fa-bars-staggered', 'fa-bars-filter', 'fa-ellipsis', 'fa-ellipsis-vertical', 'fa-ellipsis-v', 'fa-filter', 'fa-filter-circle-xmark', 'fa-magnifying-glass', 'fa-magnifying-glass-plus', 'fa-magnifying-glass-minus', 'fa-expand', 'fa-compress', 'fa-maximize', 'fa-minimize', 'fa-grid', 'fa-grid-2', 'fa-grid-3', 'fa-sidebar', 'fa-sidebar-flip', 'fa-window-maximize', 'fa-window-minimize', 'fa-window-restore']\n },\n {\n name: '状态提示',\n icons: ['fa-shield', 'fa-shield-halved', 'fa-shield-check', 'fa-shield-xmark', 'fa-shield-exclamation', 'fa-circle-check', 'fa-circle-xmark', 'fa-circle-info', 'fa-circle-question', 'fa-circle-exclamation', 'fa-circle-plus', 'fa-circle-minus', 'fa-circle-pause', 'fa-circle-pause-alt', 'fa-circle-play', 'fa-circle-stop', 'fa-square-check', 'fa-square-xmark', 'fa-square-plus', 'fa-square-minus', 'fa-triangle-exclamation', 'fa-triangle-exclamation-alt', 'fa-octagon-exclamation', 'fa-hexagon-exclamation', 'fa-exclamation', 'fa-question', 'fa-ban', 'fa-xmark', 'fa-minus', 'fa-equals', 'fa-spinner', 'fa-circle-notch']\n },\n {\n name: '图表统计',\n icons: ['fa-chart-bar', 'fa-chart-pie', 'fa-chart-line', 'fa-chart-area', 'fa-chart-column', 'fa-chart-simple', 'fa-chart-gantt', 'fa-chart-scatter', 'fa-chart-waterfall', 'fa-chart-tree-map', 'fa-chart-pyramid', 'fa-chart-network', 'fa-chart-mixed', 'fa-square-poll-vertical', 'fa-ranking-star', 'fa-list-check', 'fa-clipboard-list', 'fa-address-book', 'fa-diagram-project', 'fa-project-diagram']\n },\n {\n name: 'VIP会员',\n icons: ['fa-crown', 'fa-crown-alt', 'fa-gem', 'fa-gem-alt', 'fa-award', 'fa-award-simple', 'fa-trophy', 'fa-trophy-alt', 'fa-medal', 'fa-medal-alt', 'fa-ribbon', 'fa-certificate', 'fa-stars', 'fa-sparkles', 'fa-infinity', 'fa-database', 'fa-cloud', 'fa-hard-drive']\n },\n {\n name: '营销促销',\n icons: ['fa-gift', 'fa-gift-card', 'fa-gifts', 'fa-tags', 'fa-tag', 'fa-percent', 'fa-percent-simple', 'fa-ticket', 'fa-ticket-simple', 'fa-ticket-alt', 'fa-bullhorn', 'fa-megaphone', 'fa-ad', 'fa-rectangle-ad', 'fa-star', 'fa-star-half', 'fa-heart', 'fa-thumbs-up', 'fa-thumbs-down', 'fa-fire', 'fa-bolt']\n },\n {\n name: '购物电商',\n icons: ['fa-cart-shopping', 'fa-shopping-cart', 'fa-cart-plus', 'fa-cart-arrow-down', 'fa-bag-shopping', 'fa-basket-shopping', 'fa-store', 'fa-store-alt', 'fa-store-slash', 'fa-shop', 'fa-shop-lock', 'fa-shop-slash', 'fa-receipt', 'fa-barcode', 'fa-barcode-scan', 'fa-box', 'fa-box-open', 'fa-box-archive', 'fa-boxes-stacked', 'fa-boxes-alt', 'fa-boxes-packing', 'fa-truck', 'fa-truck-fast', 'fa-truck-ramp-box']\n },\n {\n name: '支付金融',\n icons: ['fa-credit-card', 'fa-credit-card-blank', 'fa-wallet', 'fa-money-bill', 'fa-money-bills', 'fa-money-bill-wave', 'fa-money-bill-transfer', 'fa-money-bill-trend-up', 'fa-money-check', 'fa-money-check-dollar', 'fa-coins', 'fa-coins-exchange', 'fa-piggy-bank', 'fa-landmark', 'fa-sack-dollar', 'fa-hand-holding-dollar', 'fa-circle-dollar-to-slot', 'fa-cash-register', 'fa-calculator', 'fa-calculator-simple', 'fa-dollar-sign', 'fa-dollar', 'fa-yuan-sign', 'fa-yen-sign', 'fa-euro-sign', 'fa-pound-sign', 'fa-bitcoin-sign']\n },\n {\n name: '通讯社交',\n icons: ['fa-phone', 'fa-phone-volume', 'fa-phone-flip', 'fa-phone-slash', 'fa-square-phone', 'fa-envelope', 'fa-envelope-open', 'fa-paper-plane', 'fa-message', 'fa-inbox', 'fa-voicemail', 'fa-fax', 'fa-sms', 'fa-share', 'fa-share-nodes', 'fa-share-alt', 'fa-share-from-square', 'fa-at', 'fa-hashtag', 'fa-location-dot', 'fa-location-pin', 'fa-location-arrow', 'fa-location-crosshairs', 'fa-map-marker', 'fa-map-marker-alt', 'fa-map', 'fa-map-location', 'fa-map-location-dot', 'fa-globe', 'fa-earth-asia']\n },\n {\n name: '媒体播放',\n icons: ['fa-play', 'fa-pause', 'fa-play-pause', 'fa-stop', 'fa-forward', 'fa-backward', 'fa-forward-step', 'fa-backward-step', 'fa-forward-fast', 'fa-backward-fast', 'fa-volume-high', 'fa-volume-low', 'fa-volume-off', 'fa-volume-xmark', 'fa-volume-xmark-alt', 'fa-music', 'fa-music-note', 'fa-video', 'fa-film', 'fa-photo-film', 'fa-clapperboard', 'fa-image', 'fa-images', 'fa-microphone', 'fa-microphone-slash', 'fa-headphones', 'fa-headset', 'fa-guitar', 'fa-drum']\n },\n {\n name: '设备技术',\n icons: ['fa-desktop', 'fa-display', 'fa-laptop', 'fa-laptop-code', 'fa-laptop-mobile', 'fa-tablet', 'fa-tablet-button', 'fa-computer', 'fa-tv', 'fa-mouse', 'fa-print', 'fa-wifi', 'fa-signal', 'fa-battery-full', 'fa-battery-half', 'fa-battery-empty', 'fa-plug', 'fa-power-off', 'fa-server', 'fa-network-wired', 'fa-router', 'fa-memory', 'fa-microchip', 'fa-sim-card', 'fa-sd-card', 'fa-usb-drive', 'fa-code', 'fa-code-branch', 'fa-code-commit', 'fa-code-compare', 'fa-code-fork', 'fa-code-merge', 'fa-code-pull-request', 'fa-terminal', 'fa-brackets-curly', 'fa-bug', 'fa-robot']\n },\n {\n name: '安全隐私',\n icons: ['fa-lock', 'fa-lock-open', 'fa-unlock', 'fa-key', 'fa-key-skeleton', 'fa-eye', 'fa-eye-slash', 'fa-eye-low-vision', 'fa-eye-dropper', 'fa-fingerprint', 'fa-fingerprint-simple', 'fa-fingerprint-lock', 'fa-id-card', 'fa-id-badge', 'fa-passport']\n },\n {\n name: '文档编辑',\n icons: ['fa-pen', 'fa-pen-to-square', 'fa-pen-clip', 'fa-pen-alt', 'fa-pen-fancy', 'fa-pen-nib', 'fa-pen-ruler', 'fa-pencil', 'fa-eraser', 'fa-highlighter', 'fa-marker', 'fa-paperclip', 'fa-bookmark', 'fa-book', 'fa-book-open', 'fa-book-bookmark', 'fa-newspaper', 'fa-crop', 'fa-crop-simple', 'fa-crop-alt']\n },\n {\n name: '列表布局',\n icons: ['fa-list', 'fa-list-ul', 'fa-list-ol', 'fa-list-check', 'fa-list-radio', 'fa-table', 'fa-table-cells', 'fa-table-columns', 'fa-grip', 'fa-grip-vertical']\n },\n {\n name: '天气自然',\n icons: ['fa-cloud-sun', 'fa-cloud-moon', 'fa-cloud-rain', 'fa-cloud-showers-heavy', 'fa-cloud-bolt', 'fa-cloud-snow', 'fa-snowflake', 'fa-snowflake-droplets', 'fa-temperature-high', 'fa-temperature-low', 'fa-wind', 'fa-tornado', 'fa-smog', 'fa-rainbow', 'fa-umbrella', 'fa-droplet', 'fa-water', 'fa-leaf', 'fa-tree', 'fa-tree-deciduous', 'fa-seedling', 'fa-mountain', 'fa-mountains', 'fa-volcano', 'fa-poo-storm']\n },\n {\n name: '交通出行',\n icons: ['fa-car', 'fa-car-side', 'fa-car-rear', 'fa-bus', 'fa-bus-simple', 'fa-train', 'fa-train-subway', 'fa-plane', 'fa-plane-departure', 'fa-plane-arrival', 'fa-helicopter', 'fa-ship', 'fa-bicycle', 'fa-motorcycle', 'fa-taxi', 'fa-gas-pump', 'fa-charging-station', 'fa-road', 'fa-road-barrier', 'fa-route', 'fa-traffic-light']\n },\n {\n name: '建筑场所',\n icons: ['fa-building', 'fa-building-columns', 'fa-building-user', 'fa-building-lock', 'fa-building-shield', 'fa-hospital', 'fa-school', 'fa-school-flag', 'fa-hotel', 'fa-warehouse', 'fa-warehouse-full', 'fa-industry', 'fa-city']\n },\n {\n name: '食物餐饮',\n icons: ['fa-utensils', 'fa-plate-utensils', 'fa-fork-knife', 'fa-mug-hot', 'fa-mug-saucer', 'fa-coffee', 'fa-wine-glass', 'fa-martini-glass', 'fa-champagne-glasses', 'fa-beer-mug-empty', 'fa-bottle-water', 'fa-pizza-slice', 'fa-burger', 'fa-ice-cream', 'fa-cake-candles', 'fa-cookie', 'fa-candy-cane', 'fa-apple-whole']\n },\n {\n name: '健康医疗',\n icons: ['fa-heart-pulse', 'fa-stethoscope', 'fa-syringe', 'fa-pills', 'fa-capsules', 'fa-prescription-bottle', 'fa-bandage', 'fa-kit-medical', 'fa-dna', 'fa-virus', 'fa-hand-holding-heart']\n },\n {\n name: '教育学习',\n icons: ['fa-graduation-cap', 'fa-chalkboard', 'fa-chalkboard-user', 'fa-book-bookmark', 'fa-pen-ruler', 'fa-calculator', 'fa-flask', 'fa-atom', 'fa-microscope', 'fa-brain', 'fa-lightbulb', 'fa-puzzle-piece']\n },\n {\n name: '工具',\n icons: ['fa-wrench', 'fa-screwdriver', 'fa-hammer', 'fa-screwdriver-wrench', 'fa-toolbox']\n },\n {\n name: '手势',\n icons: ['fa-hand', 'fa-hand-pointer', 'fa-hand-point-up', 'fa-hand-point-down', 'fa-hand-point-left', 'fa-hand-point-right', 'fa-hands-clapping']\n },\n {\n name: '表情',\n icons: ['fa-face-smile', 'fa-face-meh', 'fa-face-frown', 'fa-face-laugh', 'fa-face-sad-tear', 'fa-face-angry', 'fa-face-surprise']\n },\n {\n name: '形状符号',\n icons: ['fa-circle', 'fa-square', 'fa-rectangle', 'fa-diamond', 'fa-certificate', 'fa-flag', 'fa-quote-left', 'fa-quote-right', 'fa-copyright', 'fa-registered', 'fa-trademark']\n },\n {\n name: '其他',\n icons: ['fa-recycle', 'fa-trash-can', 'fa-broom', 'fa-magnet', 'fa-anchor', 'fa-rocket', 'fa-satellite', 'fa-space-shuttle', 'fa-parachute-box', 'fa-dice', 'fa-gamepad', 'fa-chess', 'fa-brush', 'fa-paint-roller', 'fa-fill-drip', 'fa-swatchbook', 'fa-magic', 'fa-hat-wizard', 'fa-ghost', 'fa-skull']\n },\n {\n name: '动物',\n icons: ['fa-paw', 'fa-cat', 'fa-dog', 'fa-fish', 'fa-dove', 'fa-feather', 'fa-hippo', 'fa-dragon', 'fa-spider', 'fa-otter', 'fa-kiwi-bird', 'fa-crow', 'fa-frog', 'fa-horse']\n },\n {\n name: '品牌图标',\n icons: ['fa-bluetooth', 'fa-weixin', 'fa-wechat', 'fa-alipay', 'fa-qq', 'fa-weibo', 'fa-apple', 'fa-android', 'fa-windows', 'fa-linux', 'fa-github', 'fa-gitlab', 'fa-google', 'fa-facebook', 'fa-twitter', 'fa-instagram', 'fa-youtube', 'fa-tiktok', 'fa-linkedin', 'fa-whatsapp', 'fa-telegram', 'fa-discord', 'fa-slack', 'fa-skype', 'fa-paypal', 'fa-stripe', 'fa-amazon', 'fa-spotify', 'fa-steam', 'fa-twitch', 'fa-reddit', 'fa-pinterest', 'fa-snapchat', 'fa-dribbble', 'fa-behance', 'fa-figma', 'fa-sketch', 'fa-npm', 'fa-node-js', 'fa-python', 'fa-java', 'fa-php', 'fa-html5', 'fa-css3', 'fa-js', 'fa-react', 'fa-vuejs', 'fa-angular', 'fa-sass', 'fa-less', 'fa-bootstrap', 'fa-docker', 'fa-aws', 'fa-chrome', 'fa-firefox', 'fa-safari', 'fa-edge', 'fa-opera', 'fa-app-store', 'fa-google-play']\n },\n {\n name: 'FA5兼容别名',\n icons: ['fa-archive', 'fa-check-circle', 'fa-check-square', 'fa-close', 'fa-cloud-upload', 'fa-cogs', 'fa-ellipsis-h', 'fa-exclamation-circle', 'fa-exclamation-triangle', 'fa-file-alt', 'fa-file-archive', 'fa-question-circle', 'fa-tasks', 'fa-times-circle', 'fa-volume-up', 'fa-save', 'fa-sign-out-alt', 'fa-clipboard', 'fa-clipboard-check', 'fa-sticky-note', 'fa-th-large', 'fa-exchange-alt', 'fa-font', 'fa-drafting-compass', 'fa-hard-hat', 'fa-circle-dot']\n }\n];\n\n// Iconfont 图标分类\nconst iconfontCategories = [\n {\n name: '项目图标',\n icons: ['icon-tukuxiangce', 'icon-yulan', 'icon-tukuguanlixuanzhong', 'icon-fanzhuan', 'icon-fenxiang', 'icon-shuiyinxiangjishuiyin', 'icon-f-vip', 'icon-suitcase', 'icon-tasks', 'icon-user-circle']\n }\n];\n\n// 计算图标总数\nconst faIconCount = computed(() => {\n return faCategories.reduce((sum, cat) => sum + cat.icons.length, 0);\n});\n\nconst iconfontCount = computed(() => {\n return iconfontCategories.reduce((sum, cat) => sum + cat.icons.length, 0);\n});\n\n// Tab 列表\nconst tabList = computed(() => [\n { label: 'Font Awesome', badge: faIconCount.value },\n { label: 'Iconfont', badge: iconfontCount.value }\n]);\n\n// Tab 切换\nfunction onTabChange(index) {\n scrollToId.value = '';\n currentCategoryIndex.value = 0;\n}\n\n// 过滤 Font Awesome 图标\nconst filteredFaCategories = computed(() => {\n if (!searchText.value) return faCategories;\n const keyword = searchText.value.toLowerCase();\n return faCategories.map(cat => ({\n ...cat,\n icons: cat.icons.filter(icon => icon.toLowerCase().includes(keyword))\n })).filter(cat => cat.icons.length > 0);\n});\n\n// 过滤 Iconfont 图标\nconst filteredIconfontCategories = computed(() => {\n if (!searchText.value) return iconfontCategories;\n const keyword = searchText.value.toLowerCase();\n return iconfontCategories.map(cat => ({\n ...cat,\n icons: cat.icons.filter(icon => icon.toLowerCase().includes(keyword))\n })).filter(cat => cat.icons.length > 0);\n});\n\nfunction copyIcon(icon, type, isBrand = false) {\n let copyText;\n if (type === 'fa') {\n copyText = isBrand ? `fa-brands ${icon}` : `fa ${icon}`;\n } else {\n copyText = `iconfont ${icon}`;\n }\n uni.setClipboardData({\n data: copyText,\n success: () => {\n uni.showToast({ title: '已复制: ' + copyText, icon: 'none' });\n }\n });\n}\n</script>\n\n<style lang=\"scss\">\n@import '@/styles/colors.scss';\n\n.prism-page {\n width: 100%;\n min-height: 100vh;\n background: var(--prism-bg-color-page, #F7F8FA);\n}\n\n/* 搜索框区域 */\n.search-header {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 99;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-bottom: 1rpx solid var(--prism-border-color-light, #F2F3F5);\n}\n\n.prism-main {\n height: 100vh;\n padding-bottom: 120rpx;\n}\n\n.search-box {\n padding: 16rpx 24rpx;\n display: flex;\n align-items: center;\n gap: 16rpx;\n\n .prism-input-box {\n flex: 1;\n min-height: 72rpx;\n }\n\n // 统一按钮样式(与主题切换按钮一致)\n .prism-icon-btn {\n border: 1rpx solid var(--prism-border-color-light);\n }\n\n .search-icon {\n color: var(--prism-text-placeholder);\n margin-right: 16rpx;\n }\n}\n\n/* 底部弹出样式面板 */\n.style-sheet-wrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n align-items: flex-end;\n}\n\n.style-sheet {\n width: 100%;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-radius: 32rpx 32rpx 0 0;\n overflow: hidden;\n}\n\n.sheet-handle {\n width: 64rpx;\n height: 8rpx;\n background: var(--prism-border-color-light, #E5E6EB);\n border-radius: 4rpx;\n margin: 16rpx auto;\n}\n\n.sheet-header {\n padding: 8rpx 32rpx 24rpx;\n text-align: center;\n}\n\n.sheet-title {\n font-size: 32rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n}\n\n.sheet-body {\n padding: 0 32rpx 24rpx;\n}\n\n.sheet-section {\n margin-bottom: 32rpx;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.sheet-label {\n display: block;\n font-size: 26rpx;\n color: var(--prism-text-secondary, #86909C);\n margin-bottom: 20rpx;\n}\n\n.color-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 24rpx;\n}\n\n.color-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8rpx;\n padding: 16rpx;\n border-radius: 16rpx;\n transition: all 0.2s;\n\n &.active {\n background: var(--prism-primary-alpha-10, rgba(52, 120, 246, 0.1));\n }\n}\n\n.color-circle {\n width: 56rpx;\n height: 56rpx;\n border-radius: 50%;\n box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);\n}\n\n.color-item.active .color-circle {\n box-shadow: 0 0 0 4rpx #fff, 0 0 0 7rpx var(--prism-primary-color, #3478F6);\n}\n\n.color-label {\n font-size: 24rpx;\n color: var(--prism-text-secondary, #86909C);\n}\n\n.color-item.active .color-label {\n color: var(--prism-primary-color, #3478F6);\n font-weight: 500;\n}\n\n.style-grid {\n display: flex;\n gap: 16rpx;\n flex-wrap: wrap;\n}\n\n.style-item {\n padding: 16rpx 32rpx;\n background: var(--prism-bg-color, #F7F8FA);\n border-radius: 32rpx;\n font-size: 26rpx;\n color: var(--prism-text-secondary, #86909C);\n transition: all 0.2s;\n\n &.active {\n background: var(--prism-primary-color, #3478F6);\n color: #fff;\n }\n}\n\n.sheet-safe-area {\n height: calc(20rpx + env(safe-area-inset-bottom, 20rpx));\n}\n\n/* 颜色和形态选择 */\n.color-options {\n display: flex;\n gap: 16rpx;\n flex-wrap: wrap;\n}\n\n.color-dot {\n width: 48rpx;\n height: 48rpx;\n border-radius: 50%;\n transition: all 0.2s;\n border: 3rpx solid transparent;\n\n &.active {\n border-color: #fff;\n box-shadow: 0 0 0 3rpx currentColor, 0 4rpx 12rpx rgba(0, 0, 0, 0.2);\n transform: scale(1.1);\n }\n}\n\n.style-options {\n display: flex;\n gap: 12rpx;\n flex-wrap: wrap;\n}\n\n.style-tag {\n padding: 8rpx 20rpx;\n background: var(--prism-bg-color-card, #fff);\n border-radius: 8rpx;\n font-size: 24rpx;\n color: var(--prism-text-secondary, #86909C);\n border: 1rpx solid var(--prism-border-color-light, #F2F3F5);\n transition: all 0.2s;\n\n &.active {\n background: var(--prism-primary-color, #3478F6);\n color: #fff;\n border-color: var(--prism-primary-color, #3478F6);\n }\n}\n\n.icon-section {\n padding: 0 24rpx 24rpx;\n}\n\n.section-title {\n font-size: 28rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 16rpx;\n}\n\n.icon-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16rpx;\n}\n\n.icon-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding: 20rpx 8rpx;\n height: 160rpx;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-radius: 16rpx;\n overflow: hidden;\n min-width: 0;\n box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);\n\n &:active {\n opacity: 0.7;\n transform: scale(0.96);\n }\n\n .icon-box {\n width: 64rpx;\n height: 64rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 12rpx;\n flex-shrink: 0;\n\n .fa, .fa-brands, .iconfont {\n font-size: 36rpx;\n }\n }\n\n // 无颜色时的默认样式\n .icon-box:not(.prism-icon) {\n .fa, .fa-brands, .iconfont {\n font-size: 44rpx;\n color: var(--prism-text-primary, #1D2129);\n }\n }\n\n .icon-name {\n font-size: 20rpx;\n color: var(--prism-text-secondary, #86909C);\n text-align: center;\n width: 100%;\n line-height: 1.2;\n padding: 0 4rpx;\n box-sizing: border-box;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n}\n\n/* 分类抽屉 */\n.category-nav-wrapper {\n position: relative;\n}\n\n.category-nav-mask {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 100;\n}\n\n.category-nav-drawer {\n position: fixed;\n right: 0;\n width: 400rpx;\n max-height: 70vh;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-radius: 24rpx 0 0 24rpx;\n box-shadow: -8rpx 0 32rpx rgba(0, 0, 0, 0.15);\n z-index: 102;\n overflow: hidden;\n}\n\n.drawer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 24rpx 32rpx;\n border-bottom: 1rpx solid var(--prism-border-color-light, #F2F3F5);\n font-size: 30rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n}\n\n.drawer-close {\n width: 48rpx;\n height: 48rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.05);\n\n .fa {\n font-size: 24rpx;\n color: var(--prism-text-secondary, #86909C);\n }\n}\n\n.drawer-content {\n max-height: calc(70vh - 100rpx);\n}\n\n.drawer-item {\n display: flex;\n align-items: center;\n padding: 24rpx 32rpx;\n transition: all 0.2s;\n\n &:active {\n background: rgba(52, 120, 246, 0.08);\n }\n\n &.active {\n background: rgba(52, 120, 246, 0.1);\n\n .drawer-item-index {\n background: linear-gradient(135deg, #3478F6 0%, #5B9BF8 100%);\n color: #FFFFFF;\n }\n\n .drawer-item-name {\n color: #3478F6;\n font-weight: 600;\n }\n }\n}\n\n.drawer-item-index {\n width: 40rpx;\n height: 40rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.05);\n border-radius: 8rpx;\n font-size: 22rpx;\n color: var(--prism-text-secondary, #86909C);\n margin-right: 20rpx;\n}\n\n.drawer-item-name {\n flex: 1;\n font-size: 28rpx;\n color: var(--prism-text-primary, #1D2129);\n}\n\n.drawer-item-count {\n font-size: 24rpx;\n color: var(--prism-text-placeholder, #C9CDD4);\n}\n\n/* 深色模式 */\n.dark-mode {\n .search-header {\n background: var(--prism-bg-color-card, #1A1A1A);\n border-bottom-color: var(--prism-border-color-light, #2D2D2D);\n }\n\n .section-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n // 底部弹出面板深色模式\n .style-sheet {\n background: var(--prism-bg-color-card, #242424);\n }\n\n .sheet-handle {\n background: rgba(255, 255, 255, 0.2);\n }\n\n .sheet-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .color-item.active {\n background: rgba(52, 120, 246, 0.2);\n }\n\n .style-item {\n background: rgba(255, 255, 255, 0.08);\n color: var(--prism-text-secondary, #A9AEB8);\n }\n\n .tab-item {\n background: var(--prism-bg-color-card, #1A1A1A);\n color: var(--prism-text-secondary, #A9AEB8);\n\n &.active {\n background: linear-gradient(135deg, #3478F6 0%, #5B9BF8 100%);\n color: #FFFFFF;\n }\n }\n\n .icon-item {\n background: var(--prism-bg-color-card, #1A1A1A);\n\n .icon-box:not(.prism-icon) {\n .fa, .fa-brands, .iconfont {\n color: var(--prism-text-primary, #E5E6EB);\n }\n }\n }\n\n .category-nav-drawer {\n background: var(--prism-bg-color-card, #1A1A1A);\n box-shadow: -8rpx 0 32rpx rgba(0, 0, 0, 0.4);\n }\n\n .drawer-header {\n border-bottom-color: var(--prism-border-color-light, #2D2D2D);\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .drawer-close {\n background: rgba(255, 255, 255, 0.1);\n\n .fa {\n color: var(--prism-text-secondary, #A9AEB8);\n }\n }\n\n .drawer-item-index {\n background: rgba(255, 255, 255, 0.1);\n color: var(--prism-text-secondary, #A9AEB8);\n }\n\n .drawer-item-name {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .drawer-item.active {\n background: rgba(52, 120, 246, 0.15);\n }\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/icons/icons.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","ref","computed","uni","useNavbar","MiniProgramPage"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["pages/index/index.vue","../uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 固定导航栏 -->\n <PrismNavBar\n title=\"Prism UI\"\n icon=\"fa-palette\"\n icon-color=\"purple\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n <!-- 头部介绍 -->\n <view class=\"prism-section intro-section flex flex-col items-center\">\n <view class=\"intro-icon w-[120rpx] h-[120rpx] rounded-full flex items-center justify-center mb-[24rpx]\">\n <text class=\"fa fa-palette text-[56rpx] text-white\"></text>\n </view>\n <text class=\"intro-title text-[40rpx] font-bold mb-[12rpx] text-white\">Prism UI 组件库</text>\n <text class=\"intro-desc text-[26rpx] text-white/80\">现代化玻璃态设计 · 支持深浅主题 · 流畅交互体验</text>\n </view>\n\n <!-- 欢迎卡片 -->\n <view class=\"prism-section\">\n <view class=\"prism-card glass p-[32rpx]\">\n <text class=\"block text-[32rpx] font-bold mb-[12rpx]\" style=\"color: var(--prism-text-primary)\">欢迎使用 Prism UI</text>\n <text class=\"block text-[26rpx] leading-[1.5]\" style=\"color: var(--prism-text-secondary)\">一个专为 uni-app 打造的现代化 UI 组件库,提供丰富的玻璃态设计组件</text>\n </view>\n </view>\n\n <!-- 特性展示 -->\n <view class=\"prism-section\">\n <view class=\"grid grid-cols-2 gap-[16rpx]\">\n <view v-for=\"feature in features\" :key=\"feature.icon\" class=\"prism-card glass p-[28rpx] text-center\">\n <text class=\"fa block text-[48rpx] mb-[12rpx]\" :class=\"feature.icon\" style=\"color: var(--prism-primary-color)\"></text>\n <text class=\"block text-[28rpx] font-bold mb-[6rpx]\" style=\"color: var(--prism-text-primary)\">{{ feature.title }}</text>\n <text class=\"block text-[22rpx]\" style=\"color: var(--prism-text-secondary)\">{{ feature.desc }}</text>\n </view>\n </view>\n </view>\n\n <!-- 快速开始 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">快速开始</view>\n <PrismCode code=\"npm install @ruixin/prism-ui\" />\n </view>\n\n <!-- 组件分类 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">组件分类</view>\n <view class=\"flex flex-col gap-[16rpx]\">\n <view v-for=\"category in categories\" :key=\"category.id\" class=\"prism-list-item\" @click=\"goToPage(category.path)\">\n <view class=\"list-item-icon prism-icon\" :class=\"category.color\">\n <text class=\"fa\" :class=\"category.icon\"></text>\n </view>\n <view class=\"list-item-content\">\n <text class=\"list-item-title\">{{ category.title }}</text>\n <text class=\"list-item-desc\">{{ category.desc }}</text>\n </view>\n <text class=\"fa fa-angle-right list-item-arrow\"></text>\n </view>\n </view>\n </view>\n\n <!-- 快速功能 -->\n <view class=\"prism-section\">\n <view class=\"section-title\">快速功能</view>\n <view class=\"flex gap-[24rpx]\">\n <view v-for=\"action in quickActions\" :key=\"action.id\" class=\"quick-card flex-1 flex flex-col items-center p-[24rpx_16rpx] rounded-[16rpx]\" @click=\"action.handler\">\n <view class=\"prism-icon w-[80rpx] h-[80rpx] rounded-full flex items-center justify-center mb-[12rpx]\" :class=\"action.color\">\n <text class=\"fa text-[32rpx]\" :class=\"typeof action.icon === 'string' ? action.icon : action.icon.value\"></text>\n </view>\n <text class=\"text-[24rpx]\" style=\"color: var(--prism-text-secondary)\">{{ action.title }}</text>\n </view>\n </view>\n </view>\n\n <!-- 底部占位 -->\n <view class=\"prism-bottom-placeholder\"></view>\n </scroll-view>\n\n <!-- 底部 TabBar -->\n <PrismTabBar current=\"/pages/index/index\" />\n </view>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useAppStore } from '@/store/app';\nimport PrismCode from '@/components/PrismCode/PrismCode.vue';\nimport { useNavbar } from '@/composables/useNavbar';\n\nconst appStore = useAppStore();\nconst { navbarHeight } = useNavbar();\n\n// 特性数据\nconst features = [\n { icon: 'fa-palette', title: '现代设计', desc: '玻璃态设计风格' },\n { icon: 'fa-mobile', title: '全平台支持', desc: 'H5/小程序/App' },\n { icon: 'fa-code', title: '易于使用', desc: '简洁的 API' },\n { icon: 'fa-rocket', title: '开箱即用', desc: '一键安装' }\n];\n\n// 组件分类数据\nconst categories = [\n { id: 'colors', title: '主题系统', desc: 'CSS 变量、深色模式、颜色系统', icon: 'fa-palette', color: 'pink', path: '/pages/demo/colors' },\n { id: 'basic', title: '基础组件', desc: '按钮、图标、徽章', icon: 'fa-cube', color: 'blue', path: '/pages/demo/basic' },\n { id: 'container', title: '容器组件', desc: '卡片、列表项、折叠面板', icon: 'fa-layer-group', color: 'purple', path: '/pages/demo/container' },\n { id: 'layout', title: '布局组件', desc: '吸顶、宫格、区块头部', icon: 'fa-table-cells', color: 'cyan', path: '/pages/demo/layout' },\n { id: 'navigation', title: '导航组件', desc: '标签页、轮播图、菜单列表', icon: 'fa-compass', color: 'green', path: '/pages/demo/navigation' },\n { id: 'form', title: '表单组件', desc: '输入框、选择器、开关', icon: 'fa-keyboard', color: 'teal', path: '/pages/demo/form' },\n { id: 'data', title: '数据展示', desc: '头像、统计、进度、里程碑', icon: 'fa-chart-bar', color: 'orange', path: '/pages/demo/data' },\n { id: 'feedback', title: '反馈组件', desc: '提示、对话框、骨架屏', icon: 'fa-comment-dots', color: 'red', path: '/pages/demo/feedback' },\n { id: 'effects', title: '特效组件', desc: '悬浮按钮、霓虹灯、脉冲', icon: 'fa-wand-magic-sparkles', color: 'yellow', path: '/pages/demo/effects' },\n { id: 'other', title: '其他组件', desc: '代码展示等', icon: 'fa-ellipsis', color: 'indigo', path: '/pages/demo/other' }\n];\n\n// 快速功能数据\nconst quickActions = [\n { id: 'scan', title: '扫一扫', icon: 'fa-qrcode', color: 'purple', handler: handleScan },\n { id: 'watermark', title: '水印拍照', icon: 'fa-camera', color: 'red', handler: handleWatermark },\n { id: 'theme', title: '切换主题', icon: computed(() => appStore.isDarkMode ? 'fa-sun' : 'fa-moon'), color: 'blue', handler: () => appStore.toggleTheme() }\n];\n\nfunction goToPage(path) {\n if (path) {\n uni.navigateTo({ url: path });\n }\n}\n\nfunction handleScan() {\n uni.scanCode({\n success: (res) => {\n uni.showModal({\n title: '扫码结果',\n content: res.result,\n showCancel: false\n });\n },\n fail: (err) => {\n if (err.errMsg && !err.errMsg.includes('cancel')) {\n uni.showToast({ title: '扫码失败', icon: 'none' });\n }\n }\n });\n}\n\nfunction handleWatermark() {\n uni.showToast({\n title: '水印拍照功能',\n icon: 'none'\n });\n}\n</script>\n\n<style lang=\"scss\">\n@import '@/styles/variables.scss';\n\n/* 头部介绍 */\n.intro-section {\n padding: 48rpx $prism-page-spacing;\n background: linear-gradient(135deg, #3478F6 0%, #5B9BF8 100%);\n\n .dark-mode & {\n background: linear-gradient(135deg, rgba(52, 120, 246, 0.3), rgba(91, 155, 248, 0.2));\n }\n}\n\n.intro-icon {\n background: rgba(255, 255, 255, 0.2);\n}\n\n/* 快速功能卡片 */\n.quick-card {\n background: var(--prism-bg-color-card);\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);\n\n &:active {\n opacity: 0.8;\n }\n}\n\n/* 深色模式 */\n.prism-page.dark-mode {\n .quick-card {\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.2);\n }\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","useNavbar","computed","uni","MiniProgramPage"],"mappings":";;;;;;;;;;;;;;AAAA,MAAA,YAAA,MAAA;;;;AAAA,UAAA,WAAAA,UAAAA,YAAA;AAAA,UAAA,EAAA,aAAA,IAAAC,gCAAA;AAAA,UAAA,WAAA;AAAA,MAAA,EAAA,MAAA,cAAA,OAAA,QAAA,MAAA,UAAA;AAAA,MAAA,EAAA,MAAA,aAAA,OAAA,SAAA,MAAA,aAAA;AAAA,MAAA,EAAA,MAAA,WAAA,OAAA,QAAA,MAAA,UAAA;AAAA,MAAA,EAAA,MAAA,aAAA,OAAA,QAAA,MAAA,OAAA;AAAA,IAAA;AAAA,UAAA,aAAA;AAAA,MAAA,EAAA,IAAA,UAAA,OAAA,QAAA,MAAA,oBAAA,MAAA,cAAA,OAAA,QAAA,MAAA,qBAAA;AAAA,MAAA,EAAA,IAAA,SAAA,OAAA,QAAA,MAAA,YAAA,MAAA,WAAA,OAAA,QAAA,MAAA,oBAAA;AAAA,MAAA,EAAA,IAAA,aAAA,OAAA,QAAA,MAAA,eAAA,MAAA,kBAAA,OAAA,UAAA,MAAA,wBAAA;AAAA,MAAA,EAAA,IAAA,UAAA,OAAA,QAAA,MAAA,cAAA,MAAA,kBAAA,OAAA,QAAA,MAAA,qBAAA;AAAA,MAAA,EAAA,IAAA,cAAA,OAAA,QAAA,MAAA,gBAAA,MAAA,cAAA,OAAA,SAAA,MAAA,yBAAA;AAAA,MAAA,EAAA,IAAA,QAAA,OAAA,QAAA,MAAA,cAAA,MAAA,eAAA,OAAA,QAAA,MAAA,mBAAA;AAAA,MAAA,EAAA,IAAA,QAAA,OAAA,QAAA,MAAA,gBAAA,MAAA,gBAAA,OAAA,UAAA,MAAA,mBAAA;AAAA,MAAA,EAAA,IAAA,YAAA,OAAA,QAAA,MAAA,cAAA,MAAA,mBAAA,OAAA,OAAA,MAAA,uBAAA;AAAA,MAAA,EAAA,IAAA,WAAA,OAAA,QAAA,MAAA,eAAA,MAAA,0BAAA,OAAA,UAAA,MAAA,sBAAA;AAAA,MAAA,EAAA,IAAA,SAAA,OAAA,QAAA,MAAA,SAAA,MAAA,eAAA,OAAA,UAAA,MAAA,oBAAA;AAAA,IAAA;AAAA,UAAA,eAAA;AAAA,MAAA,EAAA,IAAA,QAAA,OAAA,OAAA,MAAA,aAAA,OAAA,UAAA,SAAA,WAAA;AAAA,MAAA,EAAA,IAAA,aAAA,OAAA,QAAA,MAAA,aAAA,OAAA,OAAA,SAAA,gBAAA;AAAA,MAAA,EAAA,IAAA,SAAA,OAAA,QAAA,MAAAC,cAAAA,SAAA,MAAA,SAAA,aAAA,WAAA,SAAA,GAAA,OAAA,QAAA,SAAA,MAAA,SAAA,YAAA,EAAA;AAAA,IAAA;AAAA,aAAA,SAAA,MAAA;AAAA,UAAA,MAAA;AAAAC,sBAAAA,MAAA,WAAA,EAAA,KAAA,KAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,aAAA,aAAA;AAAAA,oBAAAA,MAAA,SAAA;AAAA,QAAA,SAAA,CAAA,QAAA;AAAAA,wBAAAA,MAAA,UAAA;AAAA,YAAA,OAAA;AAAA,YAAA,SAAA,IAAA;AAAA,YAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,QAAA,MAAA,CAAA,QAAA;AAAA,cAAA,IAAA,UAAA,CAAA,IAAA,OAAA,SAAA,QAAA,GAAA;AAAAA,0BAAAA,MAAA,UAAA,EAAA,OAAA,QAAA,MAAA,QAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,aAAA,kBAAA;AAAAA,oBAAAA,MAAA,UAAA;AAAA,QAAA,OAAA;AAAA,QAAA,MAAA;AAAA,MAAA,CAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCA,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sources":["pages/tools/tools.vue","../uniPage:/cGFnZXMvdG9vbHMvdG9vbHMudnVl"],"sourcesContent":["<template>\n <view class=\"prism-page\" :class=\"{ 'dark-mode': appStore.isDarkMode }\">\n <!-- 固定导航栏 -->\n <PrismNavBar\n title=\"工具\"\n icon=\"fa-toolbox\"\n icon-color=\"blue\"\n />\n\n <!-- 主内容区 -->\n <scroll-view class=\"prism-main\" scroll-y :style=\"{ paddingTop: navbarHeight + 'px' }\">\n <!-- 工具列表 -->\n <view class=\"tool-section\">\n <view class=\"section-title\">开发工具</view>\n <view class=\"tool-list\">\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(114, 46, 209, 0.15);\">\n <text class=\"fa fa-palette\" style=\"color: #722ED1;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">颜色转换</text>\n <text class=\"tool-desc\">HEX、RGB、HSL 颜色格式转换</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(52, 120, 246, 0.15);\">\n <text class=\"fa fa-ruler\" style=\"color: #3478F6;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">尺寸计算</text>\n <text class=\"tool-desc\">px、rpx、rem 单位换算</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(0, 180, 42, 0.15);\">\n <text class=\"fa fa-clone\" style=\"color: #00B42A;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">阴影生成</text>\n <text class=\"tool-desc\">CSS Box Shadow 生成器</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(245, 63, 63, 0.15);\">\n <text class=\"fa fa-wand-magic-sparkles\" style=\"color: #F53F3F;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">渐变生成</text>\n <text class=\"tool-desc\">CSS 渐变背景生成器</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(255, 125, 0, 0.15);\">\n <text class=\"fa fa-square\" style=\"color: #FF7D00;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">圆角预览</text>\n <text class=\"tool-desc\">Border Radius 可视化调整</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n <view class=\"tool-card\">\n <view class=\"tool-icon\" style=\"background: rgba(22, 93, 255, 0.15);\">\n <text class=\"fa fa-code\" style=\"color: #165DFF;\"></text>\n </view>\n <view class=\"tool-info\">\n <text class=\"tool-title\">代码片段</text>\n <text class=\"tool-desc\">常用代码模板快速复制</text>\n </view>\n <text class=\"fa fa-angle-right tool-arrow\"></text>\n </view>\n </view>\n </view>\n\n <!-- 底部占位 -->\n <view class=\"prism-bottom-placeholder\"></view>\n </scroll-view>\n\n <!-- 底部 TabBar -->\n <PrismTabBar current=\"/pages/tools/tools\" />\n </view>\n</template>\n\n<script setup>\nimport { useAppStore } from '@/store/app';\nimport { useNavbar } from '@/composables/useNavbar';\n\nconst appStore = useAppStore();\nconst { navbarHeight } = useNavbar();\n</script>\n\n<style lang=\"scss\">\n.prism-page {\n width: 100%;\n min-height: 100vh;\n background: var(--prism-bg-color-page, #F7F8FA);\n}\n\n.prism-main {\n height: 100vh;\n padding-bottom: 120rpx;\n}\n\n.tool-section {\n padding: 24rpx;\n}\n\n.section-title {\n font-size: 28rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 16rpx;\n}\n\n.tool-list {\n display: flex;\n flex-direction: column;\n gap: 16rpx;\n}\n\n.tool-card {\n display: flex;\n align-items: center;\n padding: 24rpx;\n background: var(--prism-bg-color-card, #FFFFFF);\n border-radius: 16rpx;\n\n &:active {\n opacity: 0.8;\n }\n\n .tool-icon {\n width: 88rpx;\n height: 88rpx;\n border-radius: 16rpx;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 24rpx;\n flex-shrink: 0;\n\n .fa {\n font-size: 36rpx;\n }\n }\n\n .tool-info {\n flex: 1;\n min-width: 0;\n }\n\n .tool-title {\n display: block;\n font-size: 30rpx;\n font-weight: 600;\n color: var(--prism-text-primary, #1D2129);\n margin-bottom: 6rpx;\n }\n\n .tool-desc {\n display: block;\n font-size: 24rpx;\n color: var(--prism-text-secondary, #86909C);\n }\n\n .tool-arrow {\n font-size: 28rpx;\n color: var(--prism-text-placeholder, #C9CDD4);\n margin-left: 16rpx;\n }\n}\n\n/* 深色模式 */\n.dark-mode {\n .section-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .tool-card {\n background: var(--prism-bg-color-card, #1A1A1A);\n\n .tool-title {\n color: var(--prism-text-primary, #E5E6EB);\n }\n\n .tool-desc {\n color: var(--prism-text-secondary, #A9AEB8);\n }\n\n .tool-arrow {\n color: var(--prism-text-placeholder, #4E4E4E);\n }\n }\n}\n</style>\n","import MiniProgramPage from 'E:/git/ruixin-gitlab/ruixin-keiji/ruixin-prism-ui-uniApp/src/pages/tools/tools.vue'\nwx.createPage(MiniProgramPage)"],"names":["useAppStore","useNavbar","MiniProgramPage"],"mappings":";;;;;;;;;;;;;;;;;AA2FA,UAAM,WAAWA,UAAAA,YAAW;AAC5B,UAAM,EAAE,aAAY,IAAKC,gCAAS;;;;;;;;;;;;;;;;;AC3FlC,GAAG,WAAWC,SAAe;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sources":["store/app.js"],"sourcesContent":["import { defineStore } from 'pinia';\r\n\r\nexport const useAppStore = defineStore('app', {\r\n state: () => ({\r\n themeMode: 'system', // 'light' | 'dark' | 'system'\r\n systemTheme: 'light', // 系统当前主题\r\n statusBarHeight: 0,\r\n menuButtonBounds: null // 胶囊按钮位置信息\r\n }),\r\n\r\n getters: {\r\n isDarkMode: (state) => {\r\n if (state.themeMode === 'system') {\r\n return state.systemTheme === 'dark';\r\n }\r\n return state.themeMode === 'dark';\r\n }\r\n },\r\n\r\n actions: {\r\n // 更新状态栏和浏览器主题色\r\n updateThemeStyle() {\r\n const isDark = this.isDarkMode;\r\n\r\n // #ifdef H5\r\n // H5 环境 - 给根元素添加 dark-mode 类以更新 CSS 变量\r\n const htmlElement = document.documentElement;\r\n const bodyElement = document.body;\r\n const bgColor = isDark ? '#121212' : '#F5F7FA';\r\n\r\n if (isDark) {\r\n htmlElement.classList.add('dark-mode');\r\n } else {\r\n htmlElement.classList.remove('dark-mode');\r\n }\r\n\r\n // 设置 html 和 body 背景色,防止页面切换时闪白\r\n htmlElement.style.backgroundColor = bgColor;\r\n bodyElement.style.backgroundColor = bgColor;\r\n\r\n // 更新 meta theme-color 和 color-scheme\r\n setTimeout(() => {\r\n const themeColor = isDark ? '#0F0F0F' : '#F5F7FA';\r\n const colorScheme = isDark ? 'dark' : 'light';\r\n\r\n // 更新 theme-color\r\n let metaThemeColor = document.querySelector('meta[name=\"theme-color\"]');\r\n if (metaThemeColor) {\r\n metaThemeColor.content = themeColor;\r\n } else {\r\n metaThemeColor = document.createElement('meta');\r\n metaThemeColor.name = 'theme-color';\r\n metaThemeColor.content = themeColor;\r\n document.head.appendChild(metaThemeColor);\r\n }\r\n\r\n // 更新 color-scheme\r\n let metaColorScheme = document.querySelector('meta[name=\"color-scheme\"]');\r\n if (metaColorScheme) {\r\n metaColorScheme.content = colorScheme;\r\n } else {\r\n metaColorScheme = document.createElement('meta');\r\n metaColorScheme.name = 'color-scheme';\r\n metaColorScheme.content = colorScheme;\r\n document.head.appendChild(metaColorScheme);\r\n }\r\n\r\n console.log('Updated theme-color to:', themeColor);\r\n console.log('Updated color-scheme to:', colorScheme);\r\n }, 50);\r\n // #endif\r\n\r\n // #ifdef APP-PLUS || MP-WEIXIN\r\n // APP 或小程序环境\r\n uni.setNavigationBarColor({\r\n frontColor: isDark ? '#ffffff' : '#000000',\r\n backgroundColor: isDark ? '#0F0F0F' : '#F5F7FA'\r\n });\r\n // #endif\r\n },\r\n\r\n setThemeMode(mode) {\r\n this.themeMode = mode;\r\n uni.setStorageSync('prism_theme_mode', mode);\r\n this.updateThemeStyle();\r\n },\r\n\r\n // 三种模式循环切换: light -> dark -> system -> light\r\n toggleTheme() {\r\n const modes = ['light', 'dark', 'system'];\r\n const currentIndex = modes.indexOf(this.themeMode);\r\n const nextIndex = (currentIndex + 1) % modes.length;\r\n this.setThemeMode(modes[nextIndex]);\r\n },\r\n\r\n initTheme() {\r\n // 获取保存的主题模式\r\n const savedMode = uni.getStorageSync('prism_theme_mode');\r\n if (savedMode) {\r\n this.themeMode = savedMode;\r\n }\r\n\r\n // 获取系统信息\r\n const systemInfo = uni.getSystemInfoSync();\r\n this.statusBarHeight = systemInfo.statusBarHeight || 0;\r\n this.systemTheme = systemInfo.theme || 'light';\r\n\r\n // 获取胶囊按钮位置(仅小程序)\r\n // #ifdef MP\r\n try {\r\n this.menuButtonBounds = uni.getMenuButtonBoundingClientRect();\r\n } catch (e) {\r\n this.menuButtonBounds = null;\r\n }\r\n // #endif\r\n\r\n // 监听系统主题变化\r\n uni.onThemeChange((res) => {\r\n this.systemTheme = res.theme;\r\n this.updateThemeStyle();\r\n });\r\n\r\n // 初始化主题样式\r\n this.updateThemeStyle();\r\n }\r\n }\r\n});\r\n"],"names":["defineStore","uni"],"mappings":";;AAEY,MAAC,cAAcA,cAAAA,YAAY,OAAO;AAAA,EAC5C,OAAO,OAAO;AAAA,IACZ,WAAW;AAAA;AAAA,IACX,aAAa;AAAA;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA;AAAA,EACtB;AAAA,EAEE,SAAS;AAAA,IACP,YAAY,CAAC,UAAU;AACrB,UAAI,MAAM,cAAc,UAAU;AAChC,eAAO,MAAM,gBAAgB;AAAA,MAC/B;AACA,aAAO,MAAM,cAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEE,SAAS;AAAA;AAAA,IAEP,mBAAmB;AACjB,YAAM,SAAS,KAAK;AAoDpBC,oBAAAA,MAAI,sBAAsB;AAAA,QACxB,YAAY,SAAS,YAAY;AAAA,QACjC,iBAAiB,SAAS,YAAY;AAAA,MAC9C,CAAO;AAAA,IAEH;AAAA,IAEA,aAAa,MAAM;AACjB,WAAK,YAAY;AACjBA,oBAAAA,MAAI,eAAe,oBAAoB,IAAI;AAC3C,WAAK,iBAAgB;AAAA,IACvB;AAAA;AAAA,IAGA,cAAc;AACZ,YAAM,QAAQ,CAAC,SAAS,QAAQ,QAAQ;AACxC,YAAM,eAAe,MAAM,QAAQ,KAAK,SAAS;AACjD,YAAM,aAAa,eAAe,KAAK,MAAM;AAC7C,WAAK,aAAa,MAAM,SAAS,CAAC;AAAA,IACpC;AAAA,IAEA,YAAY;AAEV,YAAM,YAAYA,cAAAA,MAAI,eAAe,kBAAkB;AACvD,UAAI,WAAW;AACb,aAAK,YAAY;AAAA,MACnB;AAGA,YAAM,aAAaA,oBAAI;AACvB,WAAK,kBAAkB,WAAW,mBAAmB;AACrD,WAAK,cAAc,WAAW,SAAS;AAIvC,UAAI;AACF,aAAK,mBAAmBA,oBAAI;MAC9B,SAAS,GAAG;AACV,aAAK,mBAAmB;AAAA,MAC1B;AAIAA,0BAAI,cAAc,CAAC,QAAQ;AACzB,aAAK,cAAc,IAAI;AACvB,aAAK,iBAAgB;AAAA,MACvB,CAAC;AAGD,WAAK,iBAAgB;AAAA,IACvB;AAAA,EACJ;AACA,CAAC;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lunar.js","sources":["utils/lunar.js"],"sourcesContent":["/**\r\n * 农历工具\r\n */\r\n\r\n// 农历数据(1900-2100年)\r\nconst lunarInfo = [\r\n 0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,\r\n 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,\r\n 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,\r\n 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,\r\n 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,\r\n 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0,\r\n 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,\r\n 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6,\r\n 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,\r\n 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0,\r\n 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,\r\n 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,\r\n 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,\r\n 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,\r\n 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0,\r\n 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0,\r\n 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4,\r\n 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0,\r\n 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160,\r\n 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252,\r\n 0x0d520\r\n];\r\n\r\n// 农历月份名称\r\nconst lunarMonths = ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '冬', '腊'];\r\n\r\n// 农历日期名称\r\nconst lunarDays = [\r\n '初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十',\r\n '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十',\r\n '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '三十'\r\n];\r\n\r\n// 天干\r\nconst tianGan = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];\r\n\r\n// 地支\r\nconst diZhi = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];\r\n\r\n// 生肖\r\nconst animals = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'];\r\n\r\n/**\r\n * 返回农历年的总天数\r\n */\r\nfunction getLunarYearDays(year) {\r\n let sum = 348;\r\n for (let i = 0x8000; i > 0x8; i >>= 1) {\r\n sum += (lunarInfo[year - 1900] & i) ? 1 : 0;\r\n }\r\n return sum + getLeapDays(year);\r\n}\r\n\r\n/**\r\n * 返回农历年闰月的天数\r\n */\r\nfunction getLeapDays(year) {\r\n if (getLeapMonth(year)) {\r\n return (lunarInfo[year - 1900] & 0x10000) ? 30 : 29;\r\n }\r\n return 0;\r\n}\r\n\r\n/**\r\n * 返回农历年闰月是哪个月(1-12),没有闰月返回0\r\n */\r\nfunction getLeapMonth(year) {\r\n return lunarInfo[year - 1900] & 0xf;\r\n}\r\n\r\n/**\r\n * 返回农历年某月的天数\r\n */\r\nfunction getLunarMonthDays(year, month) {\r\n return (lunarInfo[year - 1900] & (0x10000 >> month)) ? 30 : 29;\r\n}\r\n\r\n/**\r\n * 公历转农历\r\n * @param {number} year - 公历年\r\n * @param {number} month - 公历月(1-12)\r\n * @param {number} day - 公历日\r\n * @returns {Object} 农历信息\r\n */\r\nexport function solarToLunar(year, month, day) {\r\n // 参数检查\r\n if (year < 1900 || year > 2100) {\r\n return null;\r\n }\r\n\r\n let offset = 0;\r\n const baseDate = new Date(1900, 0, 31);\r\n const objDate = new Date(year, month - 1, day);\r\n\r\n offset = Math.floor((objDate - baseDate) / 86400000);\r\n\r\n let lunarYear, lunarMonth, lunarDay;\r\n let isLeap = false;\r\n\r\n // 计算农历年\r\n for (lunarYear = 1900; lunarYear < 2101 && offset > 0; lunarYear++) {\r\n const yearDays = getLunarYearDays(lunarYear);\r\n offset -= yearDays;\r\n }\r\n if (offset < 0) {\r\n offset += getLunarYearDays(--lunarYear);\r\n }\r\n\r\n // 计算农历月\r\n const leapMonth = getLeapMonth(lunarYear);\r\n let isLeapMonth = false;\r\n\r\n for (lunarMonth = 1; lunarMonth < 13 && offset > 0; lunarMonth++) {\r\n // 闰月\r\n if (leapMonth > 0 && lunarMonth === (leapMonth + 1) && !isLeapMonth) {\r\n --lunarMonth;\r\n isLeapMonth = true;\r\n const leapDays = getLeapDays(lunarYear);\r\n offset -= leapDays;\r\n } else {\r\n offset -= getLunarMonthDays(lunarYear, lunarMonth);\r\n }\r\n\r\n if (isLeapMonth && lunarMonth === (leapMonth + 1)) {\r\n isLeapMonth = false;\r\n }\r\n }\r\n\r\n if (offset === 0 && leapMonth > 0 && lunarMonth === leapMonth + 1) {\r\n if (isLeapMonth) {\r\n isLeapMonth = false;\r\n } else {\r\n isLeapMonth = true;\r\n --lunarMonth;\r\n }\r\n }\r\n\r\n if (offset < 0) {\r\n offset += getLunarMonthDays(lunarYear, --lunarMonth);\r\n }\r\n\r\n lunarDay = offset + 1;\r\n isLeap = isLeapMonth;\r\n\r\n return {\r\n year: lunarYear,\r\n month: lunarMonth,\r\n day: lunarDay,\r\n isLeap,\r\n monthStr: (isLeap ? '闰' : '') + lunarMonths[lunarMonth - 1] + '月',\r\n dayStr: lunarDays[lunarDay - 1],\r\n yearGanZhi: getGanZhiYear(lunarYear),\r\n animal: animals[(lunarYear - 4) % 12]\r\n };\r\n}\r\n\r\n/**\r\n * 获取农历年的干支\r\n */\r\nfunction getGanZhiYear(year) {\r\n const ganIndex = (year - 4) % 10;\r\n const zhiIndex = (year - 4) % 12;\r\n return tianGan[ganIndex] + diZhi[zhiIndex];\r\n}\r\n\r\n/**\r\n * 获取农历日期的简短显示(用于日历)\r\n * @param {number} year - 公历年\r\n * @param {number} month - 公历月(1-12)\r\n * @param {number} day - 公历日\r\n * @returns {string} 农历日期简短显示\r\n */\r\nexport function getLunarDayStr(year, month, day) {\r\n const lunar = solarToLunar(year, month, day);\r\n if (!lunar) return '';\r\n\r\n // 初一显示月份,其他显示日期\r\n if (lunar.day === 1) {\r\n return lunar.monthStr;\r\n }\r\n return lunar.dayStr;\r\n}\r\n"],"names":[],"mappings":";AAKA,MAAM,YAAY;AAAA,EAChB;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACjF;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.js","sources":["utils/system.js"],"sourcesContent":["/**\r\n * 系统工具方法\r\n */\r\n\r\n// 缓存系统信息,避免重复获取\r\nlet systemInfoCache = null;\r\n\r\n/**\r\n * 获取系统信息(带缓存)\r\n * @returns {Object} 系统信息\r\n */\r\nexport function getSystemInfo() {\r\n if (!systemInfoCache) {\r\n systemInfoCache = uni.getSystemInfoSync();\r\n }\r\n return systemInfoCache;\r\n}\r\n\r\n/**\r\n * 获取屏幕宽度\r\n * @returns {number} 屏幕宽度(px)\r\n */\r\nexport function getScreenWidth() {\r\n return getSystemInfo().windowWidth;\r\n}\r\n\r\n/**\r\n * 获取屏幕高度\r\n * @returns {number} 屏幕高度(px)\r\n */\r\nexport function getScreenHeight() {\r\n return getSystemInfo().windowHeight;\r\n}\r\n\r\n/**\r\n * rpx 转 px\r\n * @param {number} rpx - rpx 值\r\n * @returns {number} px 值(取整)\r\n */\r\nexport function rpx2px(rpx) {\r\n const screenWidth = getScreenWidth();\r\n return Math.round(rpx * screenWidth / 750);\r\n}\r\n\r\n/**\r\n * px 转 rpx\r\n * @param {number} px - px 值\r\n * @returns {number} rpx 值(取整)\r\n */\r\nexport function px2rpx(px) {\r\n const screenWidth = getScreenWidth();\r\n return Math.round(px * 750 / screenWidth);\r\n}\r\n\r\n/**\r\n * 获取状态栏高度\r\n * @returns {number} 状态栏高度(px)\r\n */\r\nexport function getStatusBarHeight() {\r\n return getSystemInfo().statusBarHeight || 0;\r\n}\r\n\r\n/**\r\n * 获取导航栏高度(状态栏 + 标题栏)\r\n * @returns {number} 导航栏高度(px)\r\n */\r\nexport function getNavBarHeight() {\r\n const statusBarHeight = getStatusBarHeight();\r\n // 标题栏高度:iOS 44px,Android 48px\r\n const titleBarHeight = getSystemInfo().platform === 'ios' ? 44 : 48;\r\n return statusBarHeight + titleBarHeight;\r\n}\r\n\r\n/**\r\n * 获取安全区域信息\r\n * @returns {Object} 安全区域 { top, bottom, left, right }\r\n */\r\nexport function getSafeArea() {\r\n const info = getSystemInfo();\r\n return info.safeArea || {\r\n top: info.statusBarHeight || 0,\r\n bottom: 0,\r\n left: 0,\r\n right: info.windowWidth\r\n };\r\n}\r\n\r\n/**\r\n * 获取底部安全区域高度\r\n * @returns {number} 底部安全区域高度(px)\r\n */\r\nexport function getSafeAreaBottom() {\r\n const info = getSystemInfo();\r\n const safeArea = info.safeArea;\r\n if (safeArea) {\r\n return info.screenHeight - safeArea.bottom;\r\n }\r\n return 0;\r\n}\r\n\r\n/**\r\n * 判断是否为 iOS 系统\r\n * @returns {boolean}\r\n */\r\nexport function isIOS() {\r\n return getSystemInfo().platform === 'ios';\r\n}\r\n\r\n/**\r\n * 判断是否为 Android 系统\r\n * @returns {boolean}\r\n */\r\nexport function isAndroid() {\r\n return getSystemInfo().platform === 'android';\r\n}\r\n\r\n/**\r\n * 判断是否为 H5 环境\r\n * @returns {boolean}\r\n */\r\nexport function isH5() {\r\n // #ifdef H5\r\n return true;\r\n // #endif\r\n // #ifndef H5\r\n return false;\r\n // #endif\r\n}\r\n\r\n/**\r\n * 判断是否为小程序环境\r\n * @returns {boolean}\r\n */\r\nexport function isMiniProgram() {\r\n // #ifdef MP\r\n return true;\r\n // #endif\r\n // #ifndef MP\r\n return false;\r\n // #endif\r\n}\r\n\r\n/**\r\n * 判断是否为 App 环境\r\n * @returns {boolean}\r\n */\r\nexport function isApp() {\r\n // #ifdef APP-PLUS\r\n return true;\r\n // #endif\r\n // #ifndef APP-PLUS\r\n return false;\r\n // #endif\r\n}\r\n"],"names":["uni"],"mappings":";;AAKA,IAAI,kBAAkB;AAMf,SAAS,gBAAgB;AAC9B,MAAI,CAAC,iBAAiB;AACpB,sBAAkBA,cAAAA,MAAI;EACxB;AACA,SAAO;AACT;AAMO,SAAS,iBAAiB;AAC/B,SAAO,cAAa,EAAG;AACzB;AAeO,SAAS,OAAO,KAAK;AAC1B,QAAM,cAAc;AACpB,SAAO,KAAK,MAAM,MAAM,cAAc,GAAG;AAC3C;;"}
@@ -1,16 +0,0 @@
1
- var n;
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */
16
- function __spreadArrays(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;var r=Array(s),k=0;for(i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r}n=function(){function e(e){var n=this.constructor;return this.then((function(t){return n.resolve(e()).then((function(){return t}))}),(function(t){return n.resolve(e()).then((function(){return n.reject(t)}))}))}function n(e){return!(!e||void 0===e.length)}function t(){}function o(e){if(!(this instanceof o))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function r(e,n){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,o._immediateFn((function(){var t=1===e._state?n.onFulfilled:n.onRejected;if(null!==t){var o;try{o=t(e._value)}catch(r){return void f(n.promise,r)}i(n.promise,o)}else(1===e._state?i:f)(n.promise,e._value)}))):e._deferreds.push(n)}function i(e,n){try{if(n===e)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if(n instanceof o)return e._state=3,e._value=n,void u(e);if("function"==typeof t)return void c(function(e,n){return function(){e.apply(n,arguments)}}(t,n),e)}e._state=1,e._value=n,u(e)}catch(r){f(e,r)}}function f(e,n){e._state=2,e._value=n,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&o._immediateFn((function(){e._handled||o._unhandledRejectionFn(e._value)}));for(var n=0,t=e._deferreds.length;t>n;n++)r(e,e._deferreds[n]);e._deferreds=null}function c(e,n){var t=!1;try{e((function(e){t||(t=!0,i(n,e))}),(function(e){t||(t=!0,f(n,e))}))}catch(o){if(t)return;t=!0,f(n,o)}}var a=setTimeout;o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,n){var o=new this.constructor(t);return r(this,new function(e,n,t){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof n?n:null,this.promise=t}(e,n,o)),o},o.prototype.finally=e,o.all=function(e){return new o((function(t,o){function r(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var u=n.then;if("function"==typeof u)return void u.call(n,(function(n){r(e,n)}),o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])}))},o.resolve=function(e){return e&&"object"==typeof e&&e.constructor===o?e:new o((function(n){n(e)}))},o.reject=function(e){return new o((function(n,t){t(e)}))},o.race=function(e){return new o((function(t,r){if(!n(e))return r(new TypeError("Promise.race accepts an array"));for(var i=0,f=e.length;f>i;i++)o.resolve(e[i]).then(t,r)}))},o._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},o._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var l=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"Promise"in l?l.Promise.prototype.finally||(l.Promise.prototype.finally=e):l.Promise=o},"object"==typeof exports&&"undefined"!=typeof module?n():"function"==typeof define&&define.amd?define(n):n();var getRandomValues="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),rnds8=new Uint8Array(16);function rng(){if(!getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}for(var byteToHex=[],i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"===options?new Array(16):null,options=null);var rnds=(options=options||{}).random||(options.rng||rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;++ii)buf[i+ii]=rnds[ii];return buf||function(buf,offset){var i=offset||0,bth=byteToHex;return[bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]]].join("")}(rnds)}var hasOwnProperty=Object.prototype.hasOwnProperty,isArray=Array.isArray,PATH_RE=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;function getPaths(path,data){if(isArray(path))return path;if(data&&(val=data,key=path,hasOwnProperty.call(val,key)))return[path];var val,key,res=[];return path.replace(PATH_RE,(function(match,p1,offset,string){return res.push(offset?string.replace(/\\(\\)?/g,"$1"):p1||match),string})),res}function getDataByPath(data,path){var dataPath,paths=getPaths(path,data);for(dataPath=paths.shift();null!=dataPath;){if(null==(data=data[dataPath]))return;dataPath=paths.shift()}return data}var elementMap=new Map;function transEl(el){var _a;if(!function(el){if(el){var tagName=el.tagName;return 0===tagName.indexOf("UNI-")||"BODY"===tagName||0===tagName.indexOf("V-UNI-")||el.__isUniElement}return!1}(el))throw Error("no such element");var element,elementId,elem={elementId:(element=el,elementId=element._id,elementId||(elementId=v4(),element._id=elementId,elementMap.set(elementId,{id:elementId,element:element})),elementId),tagName:el.tagName.toLocaleLowerCase().replace("uni-","")};if(el.__vue__)(vm=el.__vue__)&&(vm.$parent&&vm.$parent.$el===el&&(vm=vm.$parent),vm&&!(null===(_a=vm.$options)||void 0===_a?void 0:_a.isReserved)&&(elem.nodeId=function(vm){if(vm._$weex)return vm._uid;if(vm._$id)return vm._$id;if(vm.uid)return vm.uid;var parent_1=function(vm){for(var parent=vm.$parent;parent;){if(parent._$id)return parent;parent=parent.$parent}}(vm);if(!vm.$parent)return"-1";var vnode=vm.$vnode,context=vnode.context;return context&&context!==parent_1&&context._$id?context._$id+";"+parent_1._$id+","+vnode.data.attrs._i:parent_1._$id+","+vnode.data.attrs._i}(vm)));else var vm;return"video"===elem.tagName&&(elem.videoId=elem.nodeId),elem}function getVm(el){return el.__vue__?{isVue3:!1,vm:el.__vue__}:{isVue3:!0,vm:el.__vueParentComponent}}function getScrollViewMain(el){var _a=getVm(el),isVue3=_a.isVue3,vm=_a.vm;return isVue3?vm.exposed.$getMain():vm.$refs.main}var FUNCTIONS={input:{input:function(el,value){var _a=getVm(el),isVue3=_a.isVue3,vm=_a.vm;isVue3?vm.exposed&&vm.exposed.$triggerInput({value:value}):(vm.valueSync=value,vm.$triggerInput({},{value:value}))}},textarea:{input:function(el,value){var _a=getVm(el),isVue3=_a.isVue3,vm=_a.vm;isVue3?vm.exposed&&vm.exposed.$triggerInput({value:value}):(vm.valueSync=value,vm.$triggerInput({},{value:value}))}},"scroll-view":{scrollTo:function(el,x,y){var main=getScrollViewMain(el);main.scrollLeft=x,main.scrollTop=y},scrollTop:function(el){return getScrollViewMain(el).scrollTop},scrollLeft:function(el){return getScrollViewMain(el).scrollLeft},scrollWidth:function(el){return getScrollViewMain(el).scrollWidth},scrollHeight:function(el){return getScrollViewMain(el).scrollHeight}},swiper:{swipeTo:function(el,index){el.__vue__.current=index}},"movable-view":{moveTo:function(el,x,y){el.__vue__._animationTo(x,y)}},switch:{tap:function(el){el.click()}},slider:{slideTo:function(el,value){var vm=el.__vue__,slider=vm.$refs["uni-slider"],offsetWidth=slider.offsetWidth,boxLeft=slider.getBoundingClientRect().left;vm.value=value,vm._onClick({x:(value-vm.min)*offsetWidth/(vm.max-vm.min)+boxLeft})}}};function createTouchList(touchInits){var _a,touches=touchInits.map((function(touch){return function(touch){if(document.createTouch)return document.createTouch(window,touch.target,touch.identifier,touch.pageX,touch.pageY,touch.screenX,touch.screenY,touch.clientX,touch.clientY);return new Touch(touch)}(touch)}));return document.createTouchList?(_a=document).createTouchList.apply(_a,touches):touches}var WebAdapter={getWindow:function(pageId){return window},getDocument:function(pageId){return document},getEl:function(elementId){var element=elementMap.get(elementId);if(!element)throw Error("element destroyed");return element.element},getOffset:function(node){var rect=node.getBoundingClientRect();return Promise.resolve({left:rect.left+window.pageXOffset,top:rect.top+window.pageYOffset})},querySelector:function(context,selector){return"page"===selector&&(selector="body"),Promise.resolve(transEl(context.querySelector(selector)))},querySelectorAll:function(context,selector){var elements=[],nodeList=document.querySelectorAll(selector);return[].forEach.call(nodeList,(function(node){try{elements.push(transEl(node))}catch(e){}})),Promise.resolve({elements:elements})},queryProperties:function(context,names){return Promise.resolve({properties:names.map((function(name){var value=getDataByPath(context,name.replace(/-([a-z])/g,(function(g){return g[1].toUpperCase()})));return"document.documentElement.scrollTop"===name&&0===value&&(value=getDataByPath(context,"document.body.scrollTop")),value}))})},queryAttributes:function(context,names){return Promise.resolve({attributes:names.map((function(name){return String(context.getAttribute(name))}))})},queryStyles:function(context,names){var style=getComputedStyle(context);return Promise.resolve({styles:names.map((function(name){return style[name]}))})},queryHTML:function(context,type){return Promise.resolve({html:(html="outer"===type?context.outerHTML:context.innerHTML,html.replace(/\n/g,"").replace(/(<uni-text[^>]*>)(<span[^>]*>[^<]*<\/span>)(.*?<\/uni-text>)/g,"$1$3").replace(/<\/?[^>]*>/g,(function(replacement){return-1<replacement.indexOf("<body")?"<page>":"</body>"===replacement?"</page>":0!==replacement.indexOf("<uni-")&&0!==replacement.indexOf("</uni-")?"":replacement.replace(/uni-/g,"").replace(/ role=""/g,"").replace(/ aria-label=""/g,"")})))});var html},dispatchTapEvent:function(el){return el.click(),Promise.resolve()},dispatchLongpressEvent:function(el){return new Promise((function(resolve){el.dispatchEvent(new TouchEvent("touchstart",{cancelable:!0,bubbles:!0,touches:createTouchList([{identifier:1,target:el,pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0}]),targetTouches:createTouchList([]),changedTouches:createTouchList([{identifier:1,target:el,pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0}])})),setTimeout((function(){resolve()}),400)}))},dispatchTouchEvent:function(el,type,eventInitDict){eventInitDict||(eventInitDict={}),eventInitDict.touches||(eventInitDict.touches=[]),eventInitDict.changedTouches||(eventInitDict.changedTouches=[]),eventInitDict.touches.length||eventInitDict.touches.push({identifier:1,target:el}),eventInitDict.touches.forEach((function(touch){touch.target=el})),eventInitDict.changedTouches.forEach((function(touch){touch.target=el}));var touches=createTouchList(eventInitDict.touches),changedTouches=createTouchList(eventInitDict.changedTouches),targetTouches=createTouchList([]);return el.dispatchEvent(new TouchEvent(type,{cancelable:!0,bubbles:!0,touches:touches,targetTouches:targetTouches,changedTouches:changedTouches})),Promise.resolve()},callFunction:function(el,functionName,args){var fn=getDataByPath(FUNCTIONS,functionName);return fn?Promise.resolve({result:fn.apply(null,__spreadArrays([el],args))}):Promise.reject(Error(functionName+" not exists"))},triggerEvent:function(el,type,detail){var vm=el.__vue__;if(null==vm?void 0:vm.$trigger)vm.$trigger(type,{},detail);else switch(type){case"focus":el.focus();break;case"blur":el.getElementsByTagName("input")[0].blur()}return Promise.resolve()}};var Api=Object.assign({},function(adapter){return{"Page.getElement":function(params){return adapter.querySelector(adapter.getDocument(params.pageId),params.selector)},"Page.getElements":function(params){return adapter.querySelectorAll(adapter.getDocument(params.pageId),params.selector)},"Page.getWindowProperties":function(params){return adapter.queryProperties(adapter.getWindow(params.pageId),params.names)}}}(WebAdapter),function(adapter){var getEl=function(params){return adapter.getEl(params.elementId,params.pageId)};return{"Element.getElement":function(params){return adapter.querySelector(getEl(params),params.selector)},"Element.getElements":function(params){return adapter.querySelectorAll(getEl(params),params.selector)},"Element.getDOMProperties":function(params){return adapter.queryProperties(getEl(params),params.names)},"Element.getProperties":function(params){var el=getEl(params),ctx=el.__vue__||el.attr||{};return el.__vueParentComponent&&(ctx=Object.assign({},ctx,el.__vueParentComponent.attrs,el.__vueParentComponent.props)),adapter.queryProperties(ctx,params.names)},"Element.getOffset":function(params){return adapter.getOffset(getEl(params))},"Element.getAttributes":function(params){return adapter.queryAttributes(getEl(params),params.names)},"Element.getStyles":function(params){return adapter.queryStyles(getEl(params),params.names)},"Element.getHTML":function(params){return adapter.queryHTML(getEl(params),params.type)},"Element.tap":function(params){return adapter.dispatchTapEvent(getEl(params))},"Element.longpress":function(params){return adapter.dispatchLongpressEvent(getEl(params))},"Element.touchstart":function(params){return adapter.dispatchTouchEvent(getEl(params),"touchstart",params)},"Element.touchmove":function(params){return adapter.dispatchTouchEvent(getEl(params),"touchmove",params)},"Element.touchend":function(params){return adapter.dispatchTouchEvent(getEl(params),"touchend",params)},"Element.callFunction":function(params){return adapter.callFunction(getEl(params),params.functionName,params.args)},"Element.triggerEvent":function(params){return adapter.triggerEvent(getEl(params),params.type,params.detail)}}}(WebAdapter));function send(data){return UniViewJSBridge.publishHandler("onAutoMessageReceive",data)}UniViewJSBridge.subscribe("sendAutoMessage",(function(_a){var id=_a.id,method=_a.method,params=_a.params,data={id:id};if("ping"==method)return data.result="pong",void send(data);var fn=Api[method];if(!fn)return data.error={message:method+" unimplemented"},send(data);try{fn(params).then((function(res){res&&(data.result=res)})).catch((function(err){data.error={message:err.message}})).finally((function(){send(data)}))}catch(err){data.error={message:err.message},send(data)}}));