@v-miniapp/ui-react 1.0.45 → 1.0.59

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 (255) hide show
  1. package/dist/components/app/app.d.ts +17 -0
  2. package/dist/components/app/bottom-tab-bar-layout/hook.d.ts +21 -0
  3. package/dist/components/app/bottom-tab-bar-layout/store.d.ts +13 -0
  4. package/dist/components/app/bottom-tab-bar-layout/type.d.ts +13 -0
  5. package/dist/components/app/data-theme.d.ts +8 -0
  6. package/dist/components/app/index.d.ts +9 -18
  7. package/dist/components/app/navigation-bar-layout/hook.d.ts +17 -0
  8. package/dist/components/app/navigation-bar-layout/store.d.ts +13 -0
  9. package/dist/components/app/navigation-bar-layout/type.d.ts +7 -0
  10. package/dist/components/app/page-layout/hook.d.ts +21 -0
  11. package/dist/components/app/page-layout/store.d.ts +13 -0
  12. package/dist/components/app/page-layout/type.d.ts +8 -0
  13. package/dist/components/app/type.d.ts +27 -0
  14. package/dist/components/calendar/default-render.d.ts +1 -1
  15. package/dist/components/calendar/utils.d.ts +1 -1
  16. package/dist/components/carousel/index.d.ts +1 -0
  17. package/dist/components/input-wrapper/input-wrapper.d.ts +2 -2
  18. package/dist/components/layout/page.d.ts +8 -1
  19. package/dist/external/index.js +11344 -7959
  20. package/dist/external/styles.css +1 -1
  21. package/dist/index.d.ts +4 -1
  22. package/dist/index.js +4194 -4376
  23. package/dist/styles.css +1 -1
  24. package/dist/utils/event-emitter.d.ts +4 -0
  25. package/dist-storybook/assets/App-Dp1UG-xp.js +93 -0
  26. package/dist-storybook/assets/{Color-AVL7NMMY-1_8XTICv.js → Color-AVL7NMMY-XA8cFKdV.js} +1 -1
  27. package/dist-storybook/assets/DEEPLINK-cjgFMuRJ.js +33 -0
  28. package/dist-storybook/assets/{DocsRenderer-PQXLIZUC-BO86igwd.js → DocsRenderer-PQXLIZUC-D10-0Yfb.js} +2 -2
  29. package/dist-storybook/assets/EVENTS-BY66PjI7.js +65 -0
  30. package/dist-storybook/assets/GETTING_STARTED-580o-9Mx.js +64 -0
  31. package/dist-storybook/assets/GETTING_STARTED-BiQMvjvo.js +62 -0
  32. package/dist-storybook/assets/GETTING_STARTED-CIVMqKZW.js +80 -0
  33. package/dist-storybook/assets/{INFINITE_SCROLL-BtM3uoX0.js → INFINITE_SCROLL-BbeR5HeP.js} +1 -1
  34. package/dist-storybook/assets/LocalesProvider-CMlmwAyY.js +53 -0
  35. package/dist-storybook/assets/MIGRATE_DARKMODE_TO_THEME-CBDyZyg2.js +107 -0
  36. package/dist-storybook/assets/{MIGRATION_GUIDE-2LONslE4.js → MIGRATION_GUIDE-FZyRWI-B.js} +3 -3
  37. package/dist-storybook/assets/OVERVIEW-C9_6gX5Q.js +51 -0
  38. package/dist-storybook/assets/Router-B5U8bubH.js +71 -0
  39. package/dist-storybook/assets/{TAILWIND_INTEGRATION-_T-VfvkM.js → TAILWIND_INTEGRATION-BJdy5DAv.js} +1 -1
  40. package/dist-storybook/assets/THEME-CRbvH7KT.js +103 -0
  41. package/dist-storybook/assets/_baseClone-DQVxEhny.js +1 -0
  42. package/dist-storybook/assets/alert-CKwsuaPI.js +1 -0
  43. package/dist-storybook/assets/{alert.stories-B-vuojPh.js → alert.stories-D0X5wUHk.js} +3 -3
  44. package/dist-storybook/assets/app-CTv8lFU3.js +1 -0
  45. package/dist-storybook/assets/avatar-rWcYGe6j.js +1 -0
  46. package/dist-storybook/assets/{avatar.stories-KYFztAc8.js → avatar.stories-8lrbhMma.js} +6 -6
  47. package/dist-storybook/assets/{axe-CmvD4WV5.js → axe-BHGdSCoA.js} +1 -1
  48. package/dist-storybook/assets/badge-VcjGVEum.js +1 -0
  49. package/dist-storybook/assets/{badge.stories-Be2ItCmQ.js → badge.stories-BEFNaUA1.js} +3 -3
  50. package/dist-storybook/assets/{blocks-BuaOUtiH.js → blocks-DKR3P4qW.js} +3 -3
  51. package/dist-storybook/assets/{bottom-tab-bar-CtcTAxuI.js → bottom-tab-bar-B6IAoRwz.js} +1 -1
  52. package/dist-storybook/assets/{bottom-tab-bar.stories-CDmEve6z.js → bottom-tab-bar.stories-DXzLlO5o.js} +3 -3
  53. package/dist-storybook/assets/button-DJH3RlJl.js +1 -0
  54. package/dist-storybook/assets/{button.stories-CaqLWQiY.js → button.stories-DgYDJ6x7.js} +3 -3
  55. package/dist-storybook/assets/calendar-C4Xe_TW2.js +1 -0
  56. package/dist-storybook/assets/{calendar.stories-DLWZldet.js → calendar.stories-IVvRAjWN.js} +3 -3
  57. package/dist-storybook/assets/carousel-DJlgMyS5.js +37 -0
  58. package/dist-storybook/assets/{carousel.stories-B8YbGOOr.js → carousel.stories-3rA3nxdL.js} +3 -3
  59. package/dist-storybook/assets/checkbox-JOxcmyCZ.js +1 -0
  60. package/dist-storybook/assets/{checkbox.stories-CLvfZPiw.js → checkbox.stories-ge3pgfBb.js} +3 -3
  61. package/dist-storybook/assets/chip-Crt60rph.js +1 -0
  62. package/dist-storybook/assets/{chip.stories-BbwJb5eD.js → chip.stories-D7E6fdiV.js} +3 -3
  63. package/dist-storybook/assets/{date-Cg-Uk_pp.js → date-B3PFMb6s.js} +1 -1
  64. package/dist-storybook/assets/date-field-range-B-sv9nbW.js +1 -0
  65. package/dist-storybook/assets/date-field.stories-B9G2heHt.js +129 -0
  66. package/dist-storybook/assets/date-picker-BPzKPdhO.js +1 -0
  67. package/dist-storybook/assets/{date-picker.stories-BuGWvzFL.js → date-picker.stories-CIFgk4q_.js} +3 -3
  68. package/dist-storybook/assets/dialog-BAfGQzk5.js +1 -0
  69. package/dist-storybook/assets/{dialog.stories-DJ0WsSkA.js → dialog.stories-vDMKz9Tw.js} +3 -3
  70. package/dist-storybook/assets/{chip-kG4p82WT.js → dropdown-Dtomaqpw.js} +2 -2
  71. package/dist-storybook/assets/{dropdown.stories-D6JUYP73.js → dropdown.stories-Cj0HM0VI.js} +3 -3
  72. package/dist-storybook/assets/{embla-carousel-react.esm-BYjpaHZ9.js → embla-carousel-react.esm-5D5fs7OQ.js} +1 -1
  73. package/dist-storybook/assets/icon-CdiFzFyf.js +1 -0
  74. package/dist-storybook/assets/{icon.stories-B-ZvRzFf.js → icon.stories-DWwbUUY-.js} +3 -3
  75. package/dist-storybook/assets/iframe-BHaCv4dM.css +1 -0
  76. package/dist-storybook/assets/{iframe-CQAwSt4E.js → iframe-DfPay7Zl.js} +42 -42
  77. package/dist-storybook/assets/image-CMKb-R3x.js +9 -0
  78. package/dist-storybook/assets/{image.stories-C4l8D3ju.js → image.stories-BhZU057W.js} +3 -3
  79. package/dist-storybook/assets/index-BWpuenI4.js +1 -0
  80. package/dist-storybook/assets/{index-CgMRTj-o.js → index-DqZh6B0b.js} +1 -1
  81. package/dist-storybook/assets/{index-BV0AJWP6.js → index-EGt7xBnA.js} +1 -1
  82. package/dist-storybook/assets/{index-DHiZ-gXR.js → index-cMNObl2z.js} +1 -1
  83. package/dist-storybook/assets/input-wrapper-CgaUwbbE.js +1 -0
  84. package/dist-storybook/assets/{label-DV2iCDmN.js → label-D44azUgi.js} +1 -1
  85. package/dist-storybook/assets/{label.stories-BwTIPFXX.js → label.stories-CXJjdYf_.js} +3 -3
  86. package/dist-storybook/assets/{navigation-bar-vI-FPasP.js → navigation-bar-DK3TxcTu.js} +2 -2
  87. package/dist-storybook/assets/{navigation-bar.stories-DYuFaJFD.js → navigation-bar.stories-CB3Kg-sH.js} +3 -3
  88. package/dist-storybook/assets/number-field-Bz7su9S1.js +1 -0
  89. package/dist-storybook/assets/{number-field.stories--fn26TJu.js → number-field.stories-DSxPSzLv.js} +3 -3
  90. package/dist-storybook/assets/omit-BWHsnDSR.js +1 -0
  91. package/dist-storybook/assets/option-item-CpeNcb5w.js +1 -0
  92. package/dist-storybook/assets/{option-item.stories-snjAvgay.js → option-item.stories-BvXoc8WX.js} +3 -3
  93. package/dist-storybook/assets/pagination-Cp-DHO4Q.js +1 -0
  94. package/dist-storybook/assets/{pagination.stories-BoEs0jzS.js → pagination.stories-_5qj2nTS.js} +4 -4
  95. package/dist-storybook/assets/proxy-B4G9nIBd.js +1 -0
  96. package/dist-storybook/assets/radio-D0aV0RIg.js +1 -0
  97. package/dist-storybook/assets/{radio.stories-DuN-Awi_.js → radio.stories-BNR-wwuw.js} +3 -3
  98. package/dist-storybook/assets/rating-D2e8RTGl.js +1 -0
  99. package/dist-storybook/assets/{rating.stories-BCcQjMEx.js → rating.stories-CI0LG0Qq.js} +3 -3
  100. package/dist-storybook/assets/{react-18-CNyWQ7je.js → react-18-C7pDmBBf.js} +1 -1
  101. package/dist-storybook/assets/{react-hufnxGVs.js → react-I9jCW2VV.js} +1 -1
  102. package/dist-storybook/assets/search-field-DINESW8Y.js +1 -0
  103. package/dist-storybook/assets/{search-field.stories-DiCZbhng.js → search-field.stories-CKXC6-Za.js} +3 -3
  104. package/dist-storybook/assets/section-content-D49PabBW.js +1 -0
  105. package/dist-storybook/assets/{section.stories-C2I_kKhu.js → section.stories-9vd48AgB.js} +3 -3
  106. package/dist-storybook/assets/sheet-footer-nEdxsYan.js +1 -0
  107. package/dist-storybook/assets/{sheet.stories-wk1JaKU5.js → sheet.stories-C3gLIQsn.js} +3 -3
  108. package/dist-storybook/assets/skeleton-B12XbNAJ.js +1 -0
  109. package/dist-storybook/assets/{skeleton.stories-BCmX-VNr.js → skeleton.stories-C0y1o1Y_.js} +3 -3
  110. package/dist-storybook/assets/{store-D2RudmNr.js → store-Ce3Ikv5g.js} +5 -5
  111. package/dist-storybook/assets/switch-D0Z9tWin.js +1 -0
  112. package/dist-storybook/assets/{switch.stories-BqPLNKB9.js → switch.stories-BdWFln-M.js} +3 -3
  113. package/dist-storybook/assets/{tab-bar-CSeCmtIZ.js → tab-bar-kExoGg5P.js} +1 -1
  114. package/dist-storybook/assets/{tab-bar.stories-Cb6v8H2w.js → tab-bar.stories-BgDXX0of.js} +3 -3
  115. package/dist-storybook/assets/text-area-GKy5HL12.js +1 -0
  116. package/dist-storybook/assets/{text-area.stories-By8bCfgc.js → text-area.stories-DCt3RB3A.js} +3 -3
  117. package/dist-storybook/assets/text-field-CGWNqitB.js +1 -0
  118. package/dist-storybook/assets/{text-field.stories-CrWBAhvI.js → text-field.stories-Bqv7f948.js} +3 -3
  119. package/dist-storybook/assets/toast-provider-DKSrfhJD.js +9 -0
  120. package/dist-storybook/assets/{toast.stories-iWAToAZA.js → toast.stories-CcFzS6QI.js} +1 -1
  121. package/dist-storybook/assets/tooltip-B9rDI6z9.js +1 -0
  122. package/dist-storybook/assets/{tooltip.stories-RC6SuPPD.js → tooltip.stories-DDdsuU3U.js} +3 -3
  123. package/dist-storybook/assets/typography-CB8hPDyK.js +1 -0
  124. package/dist-storybook/assets/{typography.stories-Bu8qFugR.js → typography.stories-BzCxaZQU.js} +3 -3
  125. package/dist-storybook/assets/{uploader.stories-B2wW9qVy.js → uploader.stories-izVumFqZ.js} +3 -3
  126. package/dist-storybook/assets/use-app-pause-ClsUnndr.js +21 -0
  127. package/dist-storybook/assets/use-app-resume-D_EcIvMd.js +21 -0
  128. package/dist-storybook/assets/use-bottom-tab-bar-BC1cz2uE.js +49 -0
  129. package/dist-storybook/assets/use-custom-icon-event-cUk4Md0Y.js +26 -0
  130. package/dist-storybook/assets/use-did-hide-BmABiaUE.js +30 -0
  131. package/dist-storybook/assets/use-did-show-CQuySkkT.js +30 -0
  132. package/dist-storybook/assets/use-histories-CBm09Lno.js +30 -0
  133. package/dist-storybook/assets/use-history-7yguNz6O.js +33 -0
  134. package/dist-storybook/assets/use-language-DPyWMce2.js +46 -0
  135. package/dist-storybook/assets/use-load-more-KlDJZhj2.js +42 -0
  136. package/dist-storybook/assets/use-location-C7kE1yla.js +39 -0
  137. package/dist-storybook/assets/use-navigate-BpIyvtwc.js +36 -0
  138. package/dist-storybook/assets/use-navigation-bar-guzwhM_u.js +42 -0
  139. package/dist-storybook/assets/use-navigation-type-DOndDqQH.js +27 -0
  140. package/dist-storybook/assets/use-page-layout-dO6ylI1b.js +37 -0
  141. package/dist-storybook/assets/use-page-scroll-CCG2d2Gb.js +42 -0
  142. package/dist-storybook/assets/use-pull-to-refresh-lhumDu1H.js +38 -0
  143. package/dist-storybook/assets/use-settings-changed-Bt58DJ-c.js +30 -0
  144. package/dist-storybook/assets/use-translate-Jhz6jTXo.js +59 -0
  145. package/dist-storybook/assets/{visibility-sensor-CwrzJO06.js → visibility-sensor-Jf-Nmil6.js} +1 -1
  146. package/dist-storybook/iframe.html +2 -2
  147. package/dist-storybook/index.json +1 -1
  148. package/dist-storybook/project.json +1 -1
  149. package/dist-storybook/sb-addons/a11y-2/manager-bundle.js +2 -2
  150. package/dist-storybook/sb-addons/docs-1/manager-bundle.js +2 -2
  151. package/dist-storybook/sb-addons/storybook-build-3/manager-bundle.js +1 -1
  152. package/dist-storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +4 -4
  153. package/dist-storybook/stories-data.json +152 -122
  154. package/package.json +3 -1
  155. package/dist/components/app/components/app.d.ts +0 -13
  156. package/dist/components/app/components/link.d.ts +0 -8
  157. package/dist/components/app/components/navigation-analytic.d.ts +0 -2
  158. package/dist/components/app/components/pages-render.d.ts +0 -2
  159. package/dist/components/app/context/location-key.d.ts +0 -4
  160. package/dist/components/app/hooks/use-app-pause.d.ts +0 -1
  161. package/dist/components/app/hooks/use-app-resume.d.ts +0 -1
  162. package/dist/components/app/hooks/use-app-state.d.ts +0 -7
  163. package/dist/components/app/hooks/use-bottom-tab-bar.d.ts +0 -13
  164. package/dist/components/app/hooks/use-did-hide.d.ts +0 -1
  165. package/dist/components/app/hooks/use-did-show.d.ts +0 -1
  166. package/dist/components/app/hooks/use-history.d.ts +0 -2
  167. package/dist/components/app/hooks/use-location.d.ts +0 -1
  168. package/dist/components/app/hooks/use-navigate.d.ts +0 -1
  169. package/dist/components/app/hooks/use-navigation-bar.d.ts +0 -12
  170. package/dist/components/app/hooks/use-navigation-type.d.ts +0 -1
  171. package/dist/components/app/hooks/use-page-config.d.ts +0 -1
  172. package/dist/components/app/hooks/use-page-layout.d.ts +0 -14
  173. package/dist/components/app/hooks/use-page-scroll.d.ts +0 -5
  174. package/dist/components/app/hooks/use-page-state.d.ts +0 -6
  175. package/dist/components/app/stores/app.d.ts +0 -24
  176. package/dist/components/app/stores/app.selector.d.ts +0 -11
  177. package/dist/components/app/types/app.d.ts +0 -55
  178. package/dist/components/app/types/navigation.d.ts +0 -30
  179. package/dist/components/app/utils/animation.d.ts +0 -2
  180. package/dist/components/app/utils/data-theme.d.ts +0 -5
  181. package/dist/components/app/utils/history.d.ts +0 -7
  182. package/dist/hooks/use-analytic.d.ts +0 -1
  183. package/dist/hooks/use-is-using-app.d.ts +0 -1
  184. package/dist/hooks/use-is-using-locales.d.ts +0 -1
  185. package/dist/locales/defaultResources/en.d.ts +0 -27
  186. package/dist/locales/defaultResources/vi.d.ts +0 -27
  187. package/dist/locales/fns.d.ts +0 -6
  188. package/dist/locales/hooks.d.ts +0 -9
  189. package/dist/locales/index.d.ts +0 -4
  190. package/dist/locales/provider.d.ts +0 -6
  191. package/dist/locales/store.d.ts +0 -13
  192. package/dist/locales/types.d.ts +0 -37
  193. package/dist/locales/utils.d.ts +0 -2
  194. package/dist-storybook/assets/ANIMATION-CUdn1GTK.js +0 -99
  195. package/dist-storybook/assets/APP_FRAMEWORK-ljbIOHYd.js +0 -197
  196. package/dist-storybook/assets/BOTTOM_TAB_BAR-DxCwCfBK.js +0 -175
  197. package/dist-storybook/assets/CUSTOM_ERROR_BOUNDARY-B4wTQNZc.js +0 -250
  198. package/dist-storybook/assets/DARK_MODE-CoHseCDO.js +0 -57
  199. package/dist-storybook/assets/GETTING_STARTED-H_vVi5cv.js +0 -77
  200. package/dist-storybook/assets/KEEP_ALIVE-CL2au0al.js +0 -126
  201. package/dist-storybook/assets/LOCALE-XTCey55y.js +0 -465
  202. package/dist-storybook/assets/MOBILE_BEHAVIOURS-DZ6alKTX.js +0 -177
  203. package/dist-storybook/assets/PAGE_LAYOUT-BuOpN-1Y.js +0 -192
  204. package/dist-storybook/assets/ROUTING_NAVIGATION-BCPHXNto.js +0 -335
  205. package/dist-storybook/assets/_setToString-CbM921C9.js +0 -1
  206. package/dist-storybook/assets/alert-DLW8CoyB.js +0 -1
  207. package/dist-storybook/assets/avatar-GxcYPA1p.js +0 -1
  208. package/dist-storybook/assets/badge-D_LzMVtw.js +0 -1
  209. package/dist-storybook/assets/button-CL7GeC23.js +0 -1
  210. package/dist-storybook/assets/calendar-dOCsjhVU.js +0 -1
  211. package/dist-storybook/assets/carousel-1Kww3hIz.js +0 -37
  212. package/dist-storybook/assets/checkbox-MGytNNRt.js +0 -1
  213. package/dist-storybook/assets/classname-CUR_zgkh.js +0 -1
  214. package/dist-storybook/assets/date-field.stories-Diptwqfv.js +0 -129
  215. package/dist-storybook/assets/date-picker-Dnq_-0Md.js +0 -1
  216. package/dist-storybook/assets/icon-DdQsMyRa.js +0 -1
  217. package/dist-storybook/assets/iframe-yMKl6hJA.css +0 -1
  218. package/dist-storybook/assets/image-C3EsNRhz.js +0 -9
  219. package/dist-storybook/assets/input-wrapper-BKHgnPy6.js +0 -1
  220. package/dist-storybook/assets/number-field-CXKmnfKe.js +0 -1
  221. package/dist-storybook/assets/omit-Bsx5nTI0.js +0 -1
  222. package/dist-storybook/assets/option-item-LRh_OyV4.js +0 -1
  223. package/dist-storybook/assets/pagination-DZHoBs_4.js +0 -1
  224. package/dist-storybook/assets/pick-BhmhLmLe.js +0 -1
  225. package/dist-storybook/assets/radio-B5NJxG_l.js +0 -1
  226. package/dist-storybook/assets/rating-BdXViYBv.js +0 -1
  227. package/dist-storybook/assets/search-field-CQqgFbfg.js +0 -1
  228. package/dist-storybook/assets/section-content-DGNB4eLN.js +0 -1
  229. package/dist-storybook/assets/skeleton-C91JgehG.js +0 -1
  230. package/dist-storybook/assets/store-CPumdfcU.js +0 -1
  231. package/dist-storybook/assets/switch-p-aXI-ev.js +0 -1
  232. package/dist-storybook/assets/text-area-DwSXyqOe.js +0 -1
  233. package/dist-storybook/assets/text-field-jK6rpOo2.js +0 -1
  234. package/dist-storybook/assets/toast-provider-DurnMJhd.js +0 -9
  235. package/dist-storybook/assets/tooltip-QDdel5My.js +0 -1
  236. package/dist-storybook/assets/typography-DEpAJl_i.js +0 -1
  237. package/dist-storybook/assets/use-app-pause-B_tWHKJK.js +0 -29
  238. package/dist-storybook/assets/use-app-resume--900G-dV.js +0 -29
  239. package/dist-storybook/assets/use-custom-icon-event-3VExRzvC.js +0 -29
  240. package/dist-storybook/assets/use-did-hide-BUsL73ab.js +0 -48
  241. package/dist-storybook/assets/use-did-show-C1-VLDxi.js +0 -49
  242. package/dist-storybook/assets/use-histories-E4E2jJEY.js +0 -50
  243. package/dist-storybook/assets/use-history-o1im8IDj.js +0 -67
  244. package/dist-storybook/assets/use-location-CUEaBO4P.js +0 -56
  245. package/dist-storybook/assets/use-navigate-C4CTuFSZ.js +0 -84
  246. package/dist-storybook/assets/use-navigation-type-Dcz4hgKo.js +0 -44
  247. package/dist-storybook/assets/use-page-config-DSJBVQbq.js +0 -48
  248. package/dist-storybook/assets/use-page-scroll-dY-U1Vv4.js +0 -69
  249. package/dist-storybook/assets/use-page-state-CtNpwGPN.js +0 -79
  250. package/dist-storybook/assets/use-settings-changed-BBJwIHTE.js +0 -29
  251. /package/dist/components/app/{components/bottom-tab-bar.d.ts → bottom-tab-bar-layout/index.d.ts} +0 -0
  252. /package/dist/components/app/{components/navigation-bar.d.ts → navigation-bar-layout/index.d.ts} +0 -0
  253. /package/dist/components/app/{components/page-layout.d.ts → page-layout/index.d.ts} +0 -0
  254. /package/dist/{components/app/hooks → hooks}/use-custom-icon-event.d.ts +0 -0
  255. /package/dist/{components/app/hooks → hooks}/use-settings-changed.d.ts +0 -0
@@ -1,5 +1,9 @@
1
1
  export type IEventHandler<Data> = (data: Data) => void;
2
2
  export declare class EventEmitter<IEventMapping extends Record<string, any>> {
3
+ private emitCustomEvent?;
4
+ constructor(options?: {
5
+ emitCustomEvent?: boolean;
6
+ });
3
7
  private listeners;
4
8
  on<T extends keyof IEventMapping>(event: T, handler: IEventHandler<IEventMapping[T]>): () => void;
5
9
  off<T extends keyof IEventMapping>(event: T, handler: IEventHandler<IEventMapping[T]>): void;
@@ -0,0 +1,93 @@
1
+ import{j as e}from"./iframe-DfPay7Zl.js";import{useMDXComponents as i}from"./index-DqZh6B0b.js";import{b as r,M as t}from"./blocks-DKR3P4qW.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";function a(o){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...i(),...o.components};return e.jsxs(e.Fragment,{children:[`
2
+ `,`
3
+ `,e.jsx(r,{title:"UI React/App"}),`
4
+ `,e.jsx(n.h1,{id:"app",children:"App"}),`
5
+ `,e.jsxs(n.p,{children:["Component ",e.jsx(n.strong,{children:"App"})," là khung chính để xây dựng V-MiniApp: bọc ",e.jsx(n.strong,{children:"Router"}),", ",e.jsx(n.strong,{children:"Locale"}),", ",e.jsx(n.strong,{children:"ErrorBoundary"}),", ",e.jsx(n.strong,{children:"ToastProvider"}),", và điều phối ",e.jsx(n.strong,{children:"NavigationBar"}),", ",e.jsx(n.strong,{children:"BottomTabBar"}),", ",e.jsx(n.strong,{children:"PageLayout"})," (pull-to-refresh, scroll) theo config. Routing và history do Router xử lý; App bổ sung UI và behaviour cho từng page."]}),`
6
+ `,e.jsx(n.h2,{id:"import",children:"Import"}),`
7
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-typescript",children:`import { App, type IAppConfig, type IAppProps } from '@v-miniapp/ui-react'
8
+ `})}),`
9
+ `,e.jsx(n.h2,{id:"usage",children:"Usage"}),`
10
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`import { App, type IAppConfig } from '@v-miniapp/ui-react'
11
+
12
+ const appConfig: IAppConfig = {
13
+ pages: [
14
+ { pathname: '/', Component: HomePage, navigationBar: { title: 'Trang chủ' } },
15
+ { pathname: '/settings', Component: SettingsPage, navigationBar: { title: 'Cài đặt' } },
16
+ ],
17
+ animation: { type: 'slide_left' },
18
+ keepAlive: { enable: true },
19
+ }
20
+
21
+ export const MiniApp = () => <App config={appConfig} />
22
+ `})}),`
23
+ `,e.jsx(n.h2,{id:"props",children:"Props"}),`
24
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-typescript",children:`type IAppProps = ComponentPropsWithRef<'div'> & {
25
+ config?: IAppConfig | IAppConfigFunction
26
+ localesConfig?: ILocalesConfig
27
+ }
28
+ `})}),`
29
+ `,e.jsx(t,{children:"\n| Prop | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `config` | `IAppConfig` hoặc `(context) => IAppConfig` | | Cấu hình app (pages, animation, navigationBar, bottomTabBar, keepAlive, pageLayout, theme). Chỉ đọc một lần khi mount. |\n| `localesConfig` | `ILocalesConfig` | | Thuộc tính tại Locale [ILocalesConfig](?path=/docs/locale-localesprovider--docs#props) |\n| `className` | `string` | | Class name cho wrapper div. |\n| `...props` | `ComponentPropsWithRef<'div'>` | | Các props div khác. |\n"}),`
30
+ `,e.jsx(n.h2,{id:"iappconfig",children:"IAppConfig"}),`
31
+ `,e.jsx(n.p,{children:"Cấu hình toàn bộ app. Kế thừa từ router config và thêm navigationBar, bottomTabBar, pageLayout, theme."}),`
32
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `...IRouterConfig` | `IRouterConfig` | ✓ | Sử dụng lại các thuộc tính của Router [IRouterConfig](?path=/docs/router-router--docs#irouterconfig). |\n| `pages` | `IPageConfig[]` | ✓ | Danh sách page (pathname, Component, navigationBar, bottomTabBarId, pageLayout, …). |\n| `navigationBar` | `IAppNavigationBarConfig` | | Cấu hình navigation bar mặc định (có thể `hidden`). |\n| `bottomTabBar` | `IAppBottomTabBarConfig` | | Cấu hình bottom tab bar. |\n| `pageLayout` | `IAppPageLayoutState` | | Page layout mặc định (pull-to-refresh, contentClassName, …). |\n| `theme` | `IThemeConfig` | | Cấu hình theme. Xem chi tiết tại [Theme](?path=/docs/ui-react-theme--docs). |\n"}),`
33
+ `,e.jsx(n.h2,{id:"ipageconfig",children:"IPageConfig"}),`
34
+ `,e.jsxs(n.p,{children:["Cấu hình từng page. Mở rộng từ router page config, thêm navigationBar, bottomTabBar, pageLayout. Các thuộc tính này ",e.jsx(n.strong,{children:"override"})," cấu hình app-level cho page đó."]}),`
35
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `...IRouterPageConfig` | `IRouterPageConfig` | ✓ | Sử dụng các thuộc tính của Router [IRouterPageConfig](?path=/docs/router-router--docs#irouterpageconfig). |\n| `navigationBar` | `IPageNavigationBarConfig` | | Override navigation bar (title, custom icons, …). |\n| `bottomTabBarId` | `string` | | ID tab tương ứng trong bottomTabBar. |\n| `bottomTabBar` | `IPageBottomTabBarConfig` | | Override bottom tab bar cho page. |\n| `pageLayout` | `IPagePageConfig` | | Override page layout (pull-to-refresh, contentClassName). |\n"}),`
36
+ `,e.jsx(n.h2,{id:"iappnavigationbarconfig",children:"IAppNavigationBarConfig"}),`
37
+ `,e.jsxs(n.p,{children:["Kế thừa từ ",e.jsx(n.a,{href:"?path=/docs/components-navigationbar--docs",children:"NavigationBar"})," props, thêm ",e.jsx(n.code,{children:"hidden"}),". Dùng cho ",e.jsx(n.code,{children:"IAppConfig.navigationBar"})," và ",e.jsx(n.code,{children:"IPageConfig.navigationBar"}),"."]}),`
38
+ `,e.jsxs(n.blockquote,{children:[`
39
+ `,e.jsxs(n.p,{children:["Có thể sử dụng hook ",e.jsx(n.a,{href:"?path=/docs/ui-react-usenavigationbar--docs",children:"useNavigationBar"})," để thay đổi config tại từng page"]}),`
40
+ `]}),`
41
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `hidden` | `boolean` | | `true`: không render navigation bar (không có trong DOM). |\n| `title` | `string \\| ReactNode` | | Tiêu đề thanh nav. |\n| `theme` | `'default' \\| 'inverse'` | | Giao diện (màu nền/ chữ). |\n| `transparent` | `'auto' \\| 'always' \\| 'none'` | | Độ trong suốt khi scroll. |\n| `divider` | `boolean` | | Hiển thị đường gạch dưới. |\n| `backIcon` | `boolean \\| IIconProps \\| ReactNode` | | Nút back: `true` (icon mặc định), `false` (ẩn), hoặc custom. |\n| `onBackClick` | `() => void` | | Callback khi bấm back. |\n| `leftIcon`, `left` | `IIconProps \\| ReactNode` | | Icon/ node bên trái. |\n| `onLeftIconClick` | `() => void` | | Callback khi bấm icon trái. |\n| `rightIcon`, `right` | `IIconProps \\| ReactNode` | | Icon/ node bên phải. |\n| `onRightIconClick` | `() => void` | | Callback khi bấm icon phải. |\n| `color` | `IColor` | | Màu chữ/ icon. |\n| `scrollElementSelector` | `string \\| HTMLElement \\| (() => HTMLElement)` | | Element dùng để tính transparent. |\n| `scrollThreshold` | `number` | | Ngưỡng scroll (transparent). |\n| `className` | `string` | | Class name. |\n| `locationKey` | `string` | | Key để trigger lại scroll (internal). |\n"}),`
42
+ `,e.jsx(n.h2,{id:"iappbottomtabbarconfig",children:"IAppBottomTabBarConfig"}),`
43
+ `,e.jsxs(n.p,{children:["Cấu hình bottom tab bar. ",e.jsx(n.strong,{children:"items"})," bắt buộc; mỗi item có ",e.jsx(n.code,{children:"path"})," (và optional ",e.jsx(n.code,{children:"params"}),") để navigate. Các thuộc tính khác kế thừa từ ",e.jsx(n.a,{href:"?path=/docs/components-bottombarbar--docs",children:"BottomTabBar"})," (optional). ",e.jsx(n.code,{children:"IPageBottomTabBarConfig"})," thêm ",e.jsx(n.code,{children:"bottomTabBarId"})," cho từng page."]}),`
44
+ `,e.jsxs(n.blockquote,{children:[`
45
+ `,e.jsxs(n.p,{children:["Có thể sử dụng hook ",e.jsx(n.a,{href:"?path=/docs/ui-react-usebottomtabbar--docs",children:"useBottomTabBar"})," để thay đổi config tại từng page"]}),`
46
+ `]}),`
47
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `items` | `IBottomTabBarItem[]` | ✓ | Danh sách tab: `id`, `name`, `icon`, `activeIcon`, `path`, `params?`. |\n| `hidden` | `boolean` | | `true`: ẩn bottom tab bar. |\n| `className` | `string` | | Class name. |\n| `indicator` | `boolean` | | Hiển thị indicator tab active. |\n| `setCssVariable` | `boolean` | | Set biến CSS. |\n| `bgColor`, `color`, `activeColor` | `IColor` | | Màu nền, chữ, chữ active. |\n| `onItemClick` | `(item, index) => void` | | Callback khi bấm item (override navigate mặc định). |\n| `safeAreaBottomOffset` | `boolean` | | Offset safe area dưới. |\n| `bottomTabBarId` | `string` | | Chỉ trong `IPageConfig`: ID tab tương ứng với page. |\n"}),`
48
+ `,e.jsx(n.h2,{id:"iapppagelayoutstate",children:"IAppPageLayoutState"}),`
49
+ `,e.jsxs(n.p,{children:["Cấu hình page layout (vùng scroll, pull-to-refresh, load more). Kế thừa từ ",e.jsx(n.a,{href:"?path=/docs/components-page--docs",children:"Page"})," (",e.jsx(n.code,{children:"IPageBaseProps"}),"), thêm ",e.jsx(n.code,{children:"hidden"}),", ",e.jsx(n.code,{children:"scrollRestoration"}),". Dùng cho ",e.jsx(n.code,{children:"IAppConfig.pageLayout"})," và ",e.jsx(n.code,{children:"IPageConfig.pageLayout"}),"."]}),`
50
+ `,e.jsxs(n.blockquote,{children:[`
51
+ `,e.jsxs(n.p,{children:["Có thể sử dụng hook ",e.jsx(n.a,{href:"?path=/docs/ui-react-usepagelayout--docs",children:"usePageLayout"})," để thay đổi config tại từng page"]}),`
52
+ `]}),`
53
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `hidden` | `boolean` | | `true`: ẩn page layout. |\n| `scrollRestoration` | `boolean` | | Khôi phục vị trí scroll khi quay lại page (mặc định `true`). |\n| `contentClassName` | `string` | | Class name cho vùng content (scroll). |\n| `hasSpacing` | `boolean` | | Có padding spacing. |\n| `headerOffset` | `boolean` | | Offset cho header. |\n| `safeAreaTopOffset`, `safeAreaBottomOffset` | `boolean` | | Offset safe area. |\n| `pullToRefresh` | `IPullToRefreshBasProps` | | Cấu hình pull-to-refresh (`onRefresh`, …). |\n| `onEndReached` | `() => void` | | Gọi khi scroll tới cuối (load more). |\n| `onEndReachedThreshold` | `number` | | Khoảng cách (px) tới cuối để gọi `onEndReached` (mặc định 50). |\n| `onPageScroll` | `(target, event) => void` | | Callback khi page scroll. |\n| `pageScrollOptions` | `IPageScrollOptions` | | Throttle options cho `onPageScroll`. |\n| `id`, `className`, `style` | `string \\| React.CSSProperties` | | HTML/ style. |\n"}),`
54
+ `,e.jsx(n.h2,{id:"ithemeconfig",children:"IThemeConfig"}),`
55
+ `,e.jsxs(n.p,{children:["Cấu hình theme (light / dark / system). Dùng trong ",e.jsx(n.code,{children:"IAppConfig.theme"}),"."]}),`
56
+ `,e.jsxs(n.blockquote,{children:[`
57
+ `,e.jsxs(n.p,{children:[e.jsx(n.strong,{children:"Xem chi tiết:"})," ",e.jsx(n.a,{href:"?path=/docs/ui-react-theme--docs",children:"Theme"})," - Hướng dẫn đầy đủ về theme, các API functions, và ví dụ sử dụng."]}),`
58
+ `]}),`
59
+ `,e.jsx(t,{children:"\n| Thuộc tính | Kiểu | Bắt buộc | Mô tả |\n| :--- | :--- | :--- | :--- |\n| `mode` | `'light' \\| 'dark' \\| 'system'` | | Chế độ theme: `'light'` (mặc định), `'dark'`, `'system'` (theo thiết bị). |\n"}),`
60
+ `,e.jsx(n.h2,{id:"hooks",children:"Hooks"}),`
61
+ `,e.jsxs(n.p,{children:["Bạn có thể dùng các ",e.jsx(n.strong,{children:"hooks"})," ngay trong từng page để ",e.jsx(n.strong,{children:"thay đổi nội dung"})," (title navigation bar, pull-to-refresh, layout, …) theo logic hoặc theo state của page. Config trong hook sẽ override config khai báo trong ",e.jsx(n.code,{children:"IAppConfig"})," / ",e.jsx(n.code,{children:"IPageConfig"})," cho ",e.jsx(n.strong,{children:"đúng page hiện tại"}),"."]}),`
62
+ `,e.jsxs(n.p,{children:[e.jsx(n.strong,{children:"Ví dụ:"})," Đổi title thanh navigation bar khi user thao tác (ví dụ sau khi chọn item):"]}),`
63
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`import { useState } from 'react'
64
+ import { usePageState } from '@v-miniapp/ui-react'
65
+
66
+ const DetailPage = () => {
67
+ const [item, setItem] = useState(null)
68
+ const { setPageState } = useNavigationBar()
69
+
70
+ const handleSelectItem = (selected) => {
71
+ setItem(selected)
72
+ // Cập nhật title navigation bar theo item đã chọn
73
+ setPageState({
74
+ title: selected ? selected.name : 'Chi tiết',
75
+ })
76
+ }
77
+
78
+ return (
79
+ <div>
80
+ {/* ... chọn item, setPageState cập nhật title ngay cho page này */}
81
+ </div>
82
+ )
83
+ }
84
+ `})}),`
85
+ `,e.jsx(n.p,{children:e.jsx(n.strong,{children:"Một số hooks hữu ích:"})}),`
86
+ `,e.jsxs(n.ul,{children:[`
87
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"useNavigationBar"})," — Đọc/cập nhật state navigation bar (title, hidden, …) theo page hoặc app. ",e.jsx(n.a,{href:"?path=/docs/ui-react-usenavigationbar--docs",children:"useNavigationBar"})]}),`
88
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"useBottomTabBar"})," — Đọc/cập nhật state bottom tab bar (items, hidden). ",e.jsx(n.a,{href:"?path=/docs/ui-react-usebottomtabbar--docs",children:"useBottomTabBar"})]}),`
89
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"usePageLayout"})," — Đọc/cập nhật state page layout (pullToRefresh, onEndReached, contentClassName). ",e.jsx(n.a,{href:"?path=/docs/ui-react-usepagelayout--docs",children:"usePageLayout"})]}),`
90
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"usePullToRefresh"})," — Đăng ký handler pull-to-refresh cho page hiện tại. ",e.jsx(n.a,{href:"?path=/docs/ui-react-usepulltorefresh--docs",children:"usePullToRefresh"})]}),`
91
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"useLoadMore"})," — Đăng ký handler load more (onEndReached) cho page hiện tại. ",e.jsx(n.a,{href:"?path=/docs/ui-react-useloadmore--docs",children:"useLoadMore"})]}),`
92
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"usePageScroll"})," — Đăng ký handler pull-to-refresh cho page hiện tại. ",e.jsx(n.a,{href:"?path=/docs/ui-react-usepagescroll--docs",children:"usePageScroll"})]}),`
93
+ `]})]})}function d(o={}){const{wrapper:n}={...i(),...o.components};return n?e.jsx(n,{...o,children:e.jsx(a,{...o})}):a(o)}export{d as default};
@@ -1 +1 @@
1
- import{d as ce,x as E,u as U,g as he,c as fe,e as de,f as ge,_ as be,h as I}from"./blocks-BuaOUtiH.js";import{r as p,e as v}from"./iframe-CQAwSt4E.js";import"./preload-helper-PPVm8Dsz.js";import"./index-DHiZ-gXR.js";var ve=I({"../../node_modules/color-name/index.js"(r,l){l.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),Y=I({"../../node_modules/color-convert/conversions.js"(r,l){var s=ve(),h={};for(let e of Object.keys(s))h[s[e]]=e;var u={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};l.exports=u;for(let e of Object.keys(u)){if(!("channels"in u[e]))throw new Error("missing channels property: "+e);if(!("labels"in u[e]))throw new Error("missing channel labels property: "+e);if(u[e].labels.length!==u[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:n,labels:t}=u[e];delete u[e].channels,delete u[e].labels,Object.defineProperty(u[e],"channels",{value:n}),Object.defineProperty(u[e],"labels",{value:t})}u.rgb.hsl=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.min(n,t,a),i=Math.max(n,t,a),c=i-o,f,g;i===o?f=0:n===i?f=(t-a)/c:t===i?f=2+(a-n)/c:a===i&&(f=4+(n-t)/c),f=Math.min(f*60,360),f<0&&(f+=360);let b=(o+i)/2;return i===o?g=0:b<=.5?g=c/(i+o):g=c/(2-i-o),[f,g*100,b*100]},u.rgb.hsv=function(e){let n,t,a,o,i,c=e[0]/255,f=e[1]/255,g=e[2]/255,b=Math.max(c,f,g),y=b-Math.min(c,f,g),m=function(k){return(b-k)/6/y+1/2};return y===0?(o=0,i=0):(i=y/b,n=m(c),t=m(f),a=m(g),c===b?o=a-t:f===b?o=1/3+n-a:g===b&&(o=2/3+t-n),o<0?o+=1:o>1&&(o-=1)),[o*360,i*100,b*100]},u.rgb.hwb=function(e){let n=e[0],t=e[1],a=e[2],o=u.rgb.hsl(e)[0],i=1/255*Math.min(n,Math.min(t,a));return a=1-1/255*Math.max(n,Math.max(t,a)),[o,i*100,a*100]},u.rgb.cmyk=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.min(1-n,1-t,1-a),i=(1-n-o)/(1-o)||0,c=(1-t-o)/(1-o)||0,f=(1-a-o)/(1-o)||0;return[i*100,c*100,f*100,o*100]};function d(e,n){return(e[0]-n[0])**2+(e[1]-n[1])**2+(e[2]-n[2])**2}u.rgb.keyword=function(e){let n=h[e];if(n)return n;let t=1/0,a;for(let o of Object.keys(s)){let i=s[o],c=d(e,i);c<t&&(t=c,a=o)}return a},u.keyword.rgb=function(e){return s[e]},u.rgb.xyz=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;let o=n*.4124+t*.3576+a*.1805,i=n*.2126+t*.7152+a*.0722,c=n*.0193+t*.1192+a*.9505;return[o*100,i*100,c*100]},u.rgb.lab=function(e){let n=u.rgb.xyz(e),t=n[0],a=n[1],o=n[2];t/=95.047,a/=100,o/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let i=116*a-16,c=500*(t-a),f=200*(a-o);return[i,c,f]},u.hsl.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100,o,i,c;if(t===0)return c=a*255,[c,c,c];a<.5?o=a*(1+t):o=a+t-a*t;let f=2*a-o,g=[0,0,0];for(let b=0;b<3;b++)i=n+1/3*-(b-1),i<0&&i++,i>1&&i--,6*i<1?c=f+(o-f)*6*i:2*i<1?c=o:3*i<2?c=f+(o-f)*(2/3-i)*6:c=f,g[b]=c*255;return g},u.hsl.hsv=function(e){let n=e[0],t=e[1]/100,a=e[2]/100,o=t,i=Math.max(a,.01);a*=2,t*=a<=1?a:2-a,o*=i<=1?i:2-i;let c=(a+t)/2,f=a===0?2*o/(i+o):2*t/(a+t);return[n,f*100,c*100]},u.hsv.rgb=function(e){let n=e[0]/60,t=e[1]/100,a=e[2]/100,o=Math.floor(n)%6,i=n-Math.floor(n),c=255*a*(1-t),f=255*a*(1-t*i),g=255*a*(1-t*(1-i));switch(a*=255,o){case 0:return[a,g,c];case 1:return[f,a,c];case 2:return[c,a,g];case 3:return[c,f,a];case 4:return[g,c,a];case 5:return[a,c,f]}},u.hsv.hsl=function(e){let n=e[0],t=e[1]/100,a=e[2]/100,o=Math.max(a,.01),i,c;c=(2-t)*a;let f=(2-t)*o;return i=t*o,i/=f<=1?f:2-f,i=i||0,c/=2,[n,i*100,c*100]},u.hwb.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100,o=t+a,i;o>1&&(t/=o,a/=o);let c=Math.floor(6*n),f=1-a;i=6*n-c,(c&1)!==0&&(i=1-i);let g=t+i*(f-t),b,y,m;switch(c){default:case 6:case 0:b=f,y=g,m=t;break;case 1:b=g,y=f,m=t;break;case 2:b=t,y=f,m=g;break;case 3:b=t,y=g,m=f;break;case 4:b=g,y=t,m=f;break;case 5:b=f,y=t,m=g;break}return[b*255,y*255,m*255]},u.cmyk.rgb=function(e){let n=e[0]/100,t=e[1]/100,a=e[2]/100,o=e[3]/100,i=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,t*(1-o)+o),f=1-Math.min(1,a*(1-o)+o);return[i*255,c*255,f*255]},u.xyz.rgb=function(e){let n=e[0]/100,t=e[1]/100,a=e[2]/100,o,i,c;return o=n*3.2406+t*-1.5372+a*-.4986,i=n*-.9689+t*1.8758+a*.0415,c=n*.0557+t*-.204+a*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),c=Math.min(Math.max(0,c),1),[o*255,i*255,c*255]},u.xyz.lab=function(e){let n=e[0],t=e[1],a=e[2];n/=95.047,t/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*t-16,i=500*(n-t),c=200*(t-a);return[o,i,c]},u.lab.xyz=function(e){let n=e[0],t=e[1],a=e[2],o,i,c;i=(n+16)/116,o=t/500+i,c=i-a/200;let f=i**3,g=o**3,b=c**3;return i=f>.008856?f:(i-16/116)/7.787,o=g>.008856?g:(o-16/116)/7.787,c=b>.008856?b:(c-16/116)/7.787,o*=95.047,i*=100,c*=108.883,[o,i,c]},u.lab.lch=function(e){let n=e[0],t=e[1],a=e[2],o;o=Math.atan2(a,t)*360/2/Math.PI,o<0&&(o+=360);let i=Math.sqrt(t*t+a*a);return[n,i,o]},u.lch.lab=function(e){let n=e[0],t=e[1],a=e[2]/360*2*Math.PI,o=t*Math.cos(a),i=t*Math.sin(a);return[n,o,i]},u.rgb.ansi16=function(e,n=null){let[t,a,o]=e,i=n===null?u.rgb.hsv(e)[2]:n;if(i=Math.round(i/50),i===0)return 30;let c=30+(Math.round(o/255)<<2|Math.round(a/255)<<1|Math.round(t/255));return i===2&&(c+=60),c},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){let n=e[0],t=e[1],a=e[2];return n===t&&t===a?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(a/255*5)},u.ansi16.rgb=function(e){let n=e%10;if(n===0||n===7)return e>50&&(n+=3.5),n=n/10.5*255,[n,n,n];let t=(~~(e>50)+1)*.5,a=(n&1)*t*255,o=(n>>1&1)*t*255,i=(n>>2&1)*t*255;return[a,o,i]},u.ansi256.rgb=function(e){if(e>=232){let i=(e-232)*10+8;return[i,i,i]}e-=16;let n,t=Math.floor(e/36)/5*255,a=Math.floor((n=e%36)/6)/5*255,o=n%6/5*255;return[t,a,o]},u.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n},u.hex.rgb=function(e){let n=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let t=n[0];n[0].length===3&&(t=t.split("").map(f=>f+f).join(""));let a=parseInt(t,16),o=a>>16&255,i=a>>8&255,c=a&255;return[o,i,c]},u.rgb.hcg=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.max(Math.max(n,t),a),i=Math.min(Math.min(n,t),a),c=o-i,f,g;return c<1?f=i/(1-c):f=0,c<=0?g=0:o===n?g=(t-a)/c%6:o===t?g=2+(a-n)/c:g=4+(n-t)/c,g/=6,g%=1,[g*360,c*100,f*100]},u.hsl.hcg=function(e){let n=e[1]/100,t=e[2]/100,a=t<.5?2*n*t:2*n*(1-t),o=0;return a<1&&(o=(t-.5*a)/(1-a)),[e[0],a*100,o*100]},u.hsv.hcg=function(e){let n=e[1]/100,t=e[2]/100,a=n*t,o=0;return a<1&&(o=(t-a)/(1-a)),[e[0],a*100,o*100]},u.hcg.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100;if(t===0)return[a*255,a*255,a*255];let o=[0,0,0],i=n%1*6,c=i%1,f=1-c,g=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=c,o[2]=0;break;case 1:o[0]=f,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=c;break;case 3:o[0]=0,o[1]=f,o[2]=1;break;case 4:o[0]=c,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=f}return g=(1-t)*a,[(t*o[0]+g)*255,(t*o[1]+g)*255,(t*o[2]+g)*255]},u.hcg.hsv=function(e){let n=e[1]/100,t=e[2]/100,a=n+t*(1-n),o=0;return a>0&&(o=n/a),[e[0],o*100,a*100]},u.hcg.hsl=function(e){let n=e[1]/100,t=e[2]/100*(1-n)+.5*n,a=0;return t>0&&t<.5?a=n/(2*t):t>=.5&&t<1&&(a=n/(2*(1-t))),[e[0],a*100,t*100]},u.hcg.hwb=function(e){let n=e[1]/100,t=e[2]/100,a=n+t*(1-n);return[e[0],(a-n)*100,(1-a)*100]},u.hwb.hcg=function(e){let n=e[1]/100,t=1-e[2]/100,a=t-n,o=0;return a<1&&(o=(t-a)/(1-a)),[e[0],a*100,o*100]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=function(e){return[0,0,e[0]]},u.gray.hsv=u.gray.hsl,u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){let n=Math.round(e[0]/100*255)&255,t=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),me=I({"../../node_modules/color-convert/route.js"(r,l){var s=Y();function h(){let n={},t=Object.keys(s);for(let a=t.length,o=0;o<a;o++)n[t[o]]={distance:-1,parent:null};return n}function u(n){let t=h(),a=[n];for(t[n].distance=0;a.length;){let o=a.pop(),i=Object.keys(s[o]);for(let c=i.length,f=0;f<c;f++){let g=i[f],b=t[g];b.distance===-1&&(b.distance=t[o].distance+1,b.parent=o,a.unshift(g))}}return t}function d(n,t){return function(a){return t(n(a))}}function e(n,t){let a=[t[n].parent,n],o=s[t[n].parent][n],i=t[n].parent;for(;t[i].parent;)a.unshift(t[i].parent),o=d(s[t[i].parent][i],o),i=t[i].parent;return o.conversion=a,o}l.exports=function(n){let t=u(n),a={},o=Object.keys(t);for(let i=o.length,c=0;c<i;c++){let f=o[c];t[f].parent!==null&&(a[f]=e(f,t))}return a}}}),pe=I({"../../node_modules/color-convert/index.js"(r,l){var s=Y(),h=me(),u={},d=Object.keys(s);function e(t){let a=function(...o){let i=o[0];return i==null?i:(i.length>1&&(o=i),t(o))};return"conversion"in t&&(a.conversion=t.conversion),a}function n(t){let a=function(...o){let i=o[0];if(i==null)return i;i.length>1&&(o=i);let c=t(o);if(typeof c=="object")for(let f=c.length,g=0;g<f;g++)c[g]=Math.round(c[g]);return c};return"conversion"in t&&(a.conversion=t.conversion),a}d.forEach(t=>{u[t]={},Object.defineProperty(u[t],"channels",{value:s[t].channels}),Object.defineProperty(u[t],"labels",{value:s[t].labels});let a=h(t);Object.keys(a).forEach(o=>{let i=a[o];u[t][o]=n(i),u[t][o].raw=e(i)})}),l.exports=u}}),_=be(pe());function M(){return(M=Object.assign||function(r){for(var l=1;l<arguments.length;l++){var s=arguments[l];for(var h in s)Object.prototype.hasOwnProperty.call(s,h)&&(r[h]=s[h])}return r}).apply(this,arguments)}function X(r,l){if(r==null)return{};var s,h,u={},d=Object.keys(r);for(h=0;h<d.length;h++)l.indexOf(s=d[h])>=0||(u[s]=r[s]);return u}function P(r){var l=p.useRef(r),s=p.useRef(function(h){l.current&&l.current(h)});return l.current=r,s.current}var $=function(r,l,s){return l===void 0&&(l=0),s===void 0&&(s=1),r>s?s:r<l?l:r},O=function(r){return"touches"in r},L=function(r){return r&&r.ownerDocument.defaultView||self},G=function(r,l,s){var h=r.getBoundingClientRect(),u=O(l)?(function(d,e){for(var n=0;n<d.length;n++)if(d[n].identifier===e)return d[n];return d[0]})(l.touches,s):l;return{left:$((u.pageX-(h.left+L(r).pageXOffset))/h.width),top:$((u.pageY-(h.top+L(r).pageYOffset))/h.height)}},F=function(r){!O(r)&&r.preventDefault()},V=v.memo(function(r){var l=r.onMove,s=r.onKey,h=X(r,["onMove","onKey"]),u=p.useRef(null),d=P(l),e=P(s),n=p.useRef(null),t=p.useRef(!1),a=p.useMemo(function(){var f=function(y){F(y),(O(y)?y.touches.length>0:y.buttons>0)&&u.current?d(G(u.current,y,n.current)):b(!1)},g=function(){return b(!1)};function b(y){var m=t.current,k=L(u.current),x=y?k.addEventListener:k.removeEventListener;x(m?"touchmove":"mousemove",f),x(m?"touchend":"mouseup",g)}return[function(y){var m=y.nativeEvent,k=u.current;if(k&&(F(m),!(function(N,se){return se&&!O(N)})(m,t.current)&&k)){if(O(m)){t.current=!0;var x=m.changedTouches||[];x.length&&(n.current=x[0].identifier)}k.focus(),d(G(k,m,n.current)),b(!0)}},function(y){var m=y.which||y.keyCode;m<37||m>40||(y.preventDefault(),e({left:m===39?.05:m===37?-.05:0,top:m===40?.05:m===38?-.05:0}))},b]},[e,d]),o=a[0],i=a[1],c=a[2];return p.useEffect(function(){return c},[c]),v.createElement("div",M({},h,{onTouchStart:o,onMouseDown:o,className:"react-colorful__interactive",ref:u,onKeyDown:i,tabIndex:0,role:"slider"}))}),S=function(r){return r.filter(Boolean).join(" ")},D=function(r){var l=r.color,s=r.left,h=r.top,u=h===void 0?.5:h,d=S(["react-colorful__pointer",r.className]);return v.createElement("div",{className:d,style:{top:100*u+"%",left:100*s+"%"}},v.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:l}}))},w=function(r,l,s){return l===void 0&&(l=0),s===void 0&&(s=Math.pow(10,l)),Math.round(s*r)/s},ye={grad:.9,turn:360,rad:360/(2*Math.PI)},xe=function(r){return Z(B(r))},B=function(r){return r[0]==="#"&&(r=r.substring(1)),r.length<6?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?w(parseInt(r[3]+r[3],16)/255,2):1}:{r:parseInt(r.substring(0,2),16),g:parseInt(r.substring(2,4),16),b:parseInt(r.substring(4,6),16),a:r.length===8?w(parseInt(r.substring(6,8),16)/255,2):1}},we=function(r,l){return l===void 0&&(l="deg"),Number(r)*(ye[l]||1)},ke=function(r){var l=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(r);return l?_e({h:we(l[1],l[2]),s:Number(l[3]),l:Number(l[4]),a:l[5]===void 0?1:Number(l[5])/(l[6]?100:1)}):{h:0,s:0,v:0,a:1}},_e=function(r){var l=r.s,s=r.l;return{h:r.h,s:(l*=(s<50?s:100-s)/100)>0?2*l/(s+l)*100:0,v:s+l,a:r.a}},Ee=function(r){return Ce(Q(r))},J=function(r){var l=r.s,s=r.v,h=r.a,u=(200-l)*s/100;return{h:w(r.h),s:w(u>0&&u<200?l*s/100/(u<=100?u:200-u)*100:0),l:w(u/2),a:w(h,2)}},K=function(r){var l=J(r);return"hsl("+l.h+", "+l.s+"%, "+l.l+"%)"},z=function(r){var l=J(r);return"hsla("+l.h+", "+l.s+"%, "+l.l+"%, "+l.a+")"},Q=function(r){var l=r.h,s=r.s,h=r.v,u=r.a;l=l/360*6,s/=100,h/=100;var d=Math.floor(l),e=h*(1-s),n=h*(1-(l-d)*s),t=h*(1-(1-l+d)*s),a=d%6;return{r:w(255*[h,n,e,e,t,h][a]),g:w(255*[t,h,h,n,e,e][a]),b:w(255*[e,e,t,h,h,n][a]),a:w(u,2)}},Me=function(r){var l=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(r);return l?Z({r:Number(l[1])/(l[2]?100/255:1),g:Number(l[3])/(l[4]?100/255:1),b:Number(l[5])/(l[6]?100/255:1),a:l[7]===void 0?1:Number(l[7])/(l[8]?100:1)}):{h:0,s:0,v:0,a:1}},j=function(r){var l=r.toString(16);return l.length<2?"0"+l:l},Ce=function(r){var l=r.r,s=r.g,h=r.b,u=r.a,d=u<1?j(w(255*u)):"";return"#"+j(l)+j(s)+j(h)+d},Z=function(r){var l=r.r,s=r.g,h=r.b,u=r.a,d=Math.max(l,s,h),e=d-Math.min(l,s,h),n=e?d===l?(s-h)/e:d===s?2+(h-l)/e:4+(l-s)/e:0;return{h:w(60*(n<0?n+6:n)),s:w(d?e/d*100:0),v:w(d/255*100),a:u}},ee=v.memo(function(r){var l=r.hue,s=r.onChange,h=S(["react-colorful__hue",r.className]);return v.createElement("div",{className:h},v.createElement(V,{onMove:function(u){s({h:360*u.left})},onKey:function(u){s({h:$(l+360*u.left,0,360)})},"aria-label":"Hue","aria-valuenow":w(l),"aria-valuemax":"360","aria-valuemin":"0"},v.createElement(D,{className:"react-colorful__hue-pointer",left:l/360,color:K({h:l,s:100,v:100,a:1})})))}),re=v.memo(function(r){var l=r.hsva,s=r.onChange,h={backgroundColor:K({h:l.h,s:100,v:100,a:1})};return v.createElement("div",{className:"react-colorful__saturation",style:h},v.createElement(V,{onMove:function(u){s({s:100*u.left,v:100-100*u.top})},onKey:function(u){s({s:$(l.s+100*u.left,0,100),v:$(l.v-100*u.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+w(l.s)+"%, Brightness "+w(l.v)+"%"},v.createElement(D,{className:"react-colorful__saturation-pointer",top:1-l.v/100,left:l.s/100,color:K(l)})))}),te=function(r,l){if(r===l)return!0;for(var s in r)if(r[s]!==l[s])return!1;return!0},ne=function(r,l){return r.replace(/\s/g,"")===l.replace(/\s/g,"")},$e=function(r,l){return r.toLowerCase()===l.toLowerCase()||te(B(r),B(l))};function ae(r,l,s){var h=P(s),u=p.useState(function(){return r.toHsva(l)}),d=u[0],e=u[1],n=p.useRef({color:l,hsva:d});p.useEffect(function(){if(!r.equal(l,n.current.color)){var a=r.toHsva(l);n.current={hsva:a,color:l},e(a)}},[l,r]),p.useEffect(function(){var a;te(d,n.current.hsva)||r.equal(a=r.fromHsva(d),n.current.color)||(n.current={hsva:d,color:a},h(a))},[d,r,h]);var t=p.useCallback(function(a){e(function(o){return Object.assign({},o,a)})},[]);return[d,t]}var Oe=typeof window<"u"?p.useLayoutEffect:p.useEffect,Se=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},W=new Map,oe=function(r){Oe(function(){var l=r.current?r.current.ownerDocument:document;if(l!==void 0&&!W.has(l)){var s=l.createElement("style");s.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,W.set(l,s);var h=Se();h&&s.setAttribute("nonce",h),l.head.appendChild(s)}},[])},Ne=function(r){var l=r.className,s=r.colorModel,h=r.color,u=h===void 0?s.defaultColor:h,d=r.onChange,e=X(r,["className","colorModel","color","onChange"]),n=p.useRef(null);oe(n);var t=ae(s,u,d),a=t[0],o=t[1],i=S(["react-colorful",l]);return v.createElement("div",M({},e,{ref:n,className:i}),v.createElement(re,{hsva:a,onChange:o}),v.createElement(ee,{hue:a.h,onChange:o,className:"react-colorful__last-control"}))},je={defaultColor:"000",toHsva:xe,fromHsva:function(r){return Ee({h:r.h,s:r.s,v:r.v,a:1})},equal:$e},Re=function(r){return v.createElement(Ne,M({},r,{colorModel:je}))},ze=function(r){var l=r.className,s=r.hsva,h=r.onChange,u={backgroundImage:"linear-gradient(90deg, "+z(Object.assign({},s,{a:0}))+", "+z(Object.assign({},s,{a:1}))+")"},d=S(["react-colorful__alpha",l]),e=w(100*s.a);return v.createElement("div",{className:d},v.createElement("div",{className:"react-colorful__alpha-gradient",style:u}),v.createElement(V,{onMove:function(n){h({a:n.left})},onKey:function(n){h({a:$(s.a+n.left)})},"aria-label":"Alpha","aria-valuetext":e+"%","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"100"},v.createElement(D,{className:"react-colorful__alpha-pointer",left:s.a,color:z(s)})))},le=function(r){var l=r.className,s=r.colorModel,h=r.color,u=h===void 0?s.defaultColor:h,d=r.onChange,e=X(r,["className","colorModel","color","onChange"]),n=p.useRef(null);oe(n);var t=ae(s,u,d),a=t[0],o=t[1],i=S(["react-colorful",l]);return v.createElement("div",M({},e,{ref:n,className:i}),v.createElement(re,{hsva:a,onChange:o}),v.createElement(ee,{hue:a.h,onChange:o}),v.createElement(ze,{hsva:a,onChange:o,className:"react-colorful__last-control"}))},He={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:ke,fromHsva:z,equal:ne},Ie=function(r){return v.createElement(le,M({},r,{colorModel:He}))},qe={defaultColor:"rgba(0, 0, 0, 1)",toHsva:Me,fromHsva:function(r){var l=Q(r);return"rgba("+l.r+", "+l.g+", "+l.b+", "+l.a+")"},equal:ne},Pe=function(r){return v.createElement(le,M({},r,{colorModel:qe}))},Le=E.div({position:"relative",maxWidth:250,'&[aria-readonly="true"]':{opacity:.5}}),Be=E(U)({position:"absolute",zIndex:1,top:4,left:4,"[aria-readonly=true] &":{cursor:"not-allowed"}}),Ke=E.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:"4px 4px 0 0"},".react-colorful__hue":{boxShadow:"inset 0 0 0 1px rgb(0 0 0 / 5%)"},".react-colorful__last-control":{borderRadius:"0 0 4px 4px"}}),Te=E(fe)(({theme:r})=>({fontFamily:r.typography.fonts.base})),Xe=E.div({display:"grid",gridTemplateColumns:"repeat(9, 16px)",gap:6,padding:3,marginTop:5,width:200}),Ve=E.div(({theme:r,active:l})=>({width:16,height:16,boxShadow:l?`${r.appBorderColor} 0 0 0 1px inset, ${r.textMutedColor}50 0 0 0 4px`:`${r.appBorderColor} 0 0 0 1px inset`,borderRadius:r.appBorderRadius})),De=`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,A=({value:r,style:l,...s})=>{let h=`linear-gradient(${r}, ${r}), ${De}, linear-gradient(#fff, #fff)`;return v.createElement(Ve,{...s,style:{...l,backgroundImage:h}})},Ge=E(de.Input)(({theme:r,readOnly:l})=>({width:"100%",paddingLeft:30,paddingRight:30,boxSizing:"border-box",fontFamily:r.typography.fonts.base})),Fe=E(ge)(({theme:r})=>({position:"absolute",zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:"border-box",cursor:"pointer",color:r.input.color})),ue=(r=>(r.RGB="rgb",r.HSL="hsl",r.HEX="hex",r))(ue||{}),q=Object.values(ue),We=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Ae=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,Ue=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,T=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Ye=/^\s*#?([0-9a-f]{3})\s*$/i,Je={hex:Re,rgb:Pe,hsl:Ie},R={hex:"transparent",rgb:"rgba(0, 0, 0, 0)",hsl:"hsla(0, 0%, 0%, 0)"},ie=r=>{let l=r?.match(We);if(!l)return[0,0,0,1];let[,s,h,u,d=1]=l;return[s,h,u,d].map(Number)},Qe=r=>{let[l,s,h,u]=ie(r),[d,e,n]=_.default.rgb.hsl([l,s,h])||[0,0,0];return{valid:!0,value:r,keyword:_.default.rgb.keyword([l,s,h]),colorSpace:"rgb",rgb:r,hsl:`hsla(${d}, ${e}%, ${n}%, ${u})`,hex:`#${_.default.rgb.hex([l,s,h]).toLowerCase()}`}},Ze=r=>{let[l,s,h,u]=ie(r),[d,e,n]=_.default.hsl.rgb([l,s,h])||[0,0,0];return{valid:!0,value:r,keyword:_.default.hsl.keyword([l,s,h]),colorSpace:"hsl",rgb:`rgba(${d}, ${e}, ${n}, ${u})`,hsl:r,hex:`#${_.default.hsl.hex([l,s,h]).toLowerCase()}`}},er=r=>{let l=r.replace("#",""),s=_.default.keyword.rgb(l)||_.default.hex.rgb(l),h=_.default.rgb.hsl(s),u=r;/[^#a-f0-9]/i.test(r)?u=l:T.test(r)&&(u=`#${l}`);let d=!0;if(u.startsWith("#"))d=T.test(u);else try{_.default.keyword.hex(u)}catch{d=!1}return{valid:d,value:u,keyword:_.default.rgb.keyword(s),colorSpace:"hex",rgb:`rgba(${s[0]}, ${s[1]}, ${s[2]}, 1)`,hsl:`hsla(${h[0]}, ${h[1]}%, ${h[2]}%, 1)`,hex:u}},C=r=>{if(r)return Ae.test(r)?Qe(r):Ue.test(r)?Ze(r):er(r)},rr=(r,l,s)=>{if(!r||!l?.valid)return R[s];if(s!=="hex")return l?.[s]||R[s];if(!l.hex.startsWith("#"))try{return`#${_.default.keyword.hex(l.hex)}`}catch{return R.hex}let h=l.hex.match(Ye);if(!h)return T.test(l.hex)?l.hex:R.hex;let[u,d,e]=h[1].split("");return`#${u}${u}${d}${d}${e}${e}`},tr=(r,l)=>{let[s,h]=p.useState(r||""),[u,d]=p.useState(()=>C(s)),[e,n]=p.useState(u?.colorSpace||"hex");p.useEffect(()=>{let i=r||"",c=C(i);h(i),d(c),n(c?.colorSpace||"hex")},[r]);let t=p.useMemo(()=>rr(s,u,e).toLowerCase(),[s,u,e]),a=p.useCallback(i=>{let c=C(i),f=c?.value||i||"";h(f),f===""&&(d(void 0),l(void 0)),c&&(d(c),n(c.colorSpace),l(c.value))},[l]),o=p.useCallback(()=>{let i=(q.indexOf(e)+1)%q.length,c=q[i];n(c);let f=u?.[c]||"";h(f),l(f)},[u,e,l]);return{value:s,realValue:t,updateValue:a,color:u,colorSpace:e,cycleColorSpace:o}},H=r=>r.replace(/\s*/,"").toLowerCase(),nr=(r,l,s)=>{let[h,u]=p.useState(l?.valid?[l]:[]);p.useEffect(()=>{l===void 0&&u([])},[l]);let d=p.useMemo(()=>(r||[]).map(n=>typeof n=="string"?C(n):n.title?{...C(n.color),keyword:n.title}:C(n.color)).concat(h).filter(Boolean).slice(-27),[r,h]),e=p.useCallback(n=>{n?.valid&&(d.some(t=>t&&t[s]&&H(t[s]||"")===H(n[s]||""))||u(t=>t.concat(n)))},[s,d]);return{presets:d,addPreset:e}},ar=({name:r,value:l,onChange:s,onFocus:h,onBlur:u,presetColors:d,startOpen:e=!1,argType:n})=>{let t=p.useCallback(ce(s,200),[s]),{value:a,realValue:o,updateValue:i,color:c,colorSpace:f,cycleColorSpace:g}=tr(l,t),{presets:b,addPreset:y}=nr(d??[],c,f),m=Je[f],k=!!n?.table?.readonly;return v.createElement(Le,{"aria-readonly":k},v.createElement(Be,{startOpen:e,trigger:k?null:void 0,closeOnOutsideClick:!0,onVisibleChange:()=>c&&y(c),tooltip:v.createElement(Ke,null,v.createElement(m,{color:o==="transparent"?"#000000":o,onChange:i,onFocus:h,onBlur:u}),b.length>0&&v.createElement(Xe,null,b.map((x,N)=>v.createElement(U,{key:`${x?.value||N}-${N}`,hasChrome:!1,tooltip:v.createElement(Te,{note:x?.keyword||x?.value||""})},v.createElement(A,{value:x?.[f]||"",active:!!(c&&x&&x[f]&&H(x[f]||"")===H(c[f])),onClick:()=>x&&i(x.value||"")})))))},v.createElement(A,{value:o,style:{margin:4}})),v.createElement(Ge,{id:he(r),value:a,onChange:x=>i(x.target.value),onFocus:x=>x.target.select(),readOnly:k,placeholder:"Choose color..."}),a?v.createElement(Fe,{onClick:g}):null)},sr=ar;export{ar as ColorControl,sr as default};
1
+ import{d as ce,x as E,u as U,g as he,c as fe,e as de,f as ge,_ as be,h as I}from"./blocks-DKR3P4qW.js";import{r as p,e as v}from"./iframe-DfPay7Zl.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";var ve=I({"../../node_modules/color-name/index.js"(r,l){l.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),Y=I({"../../node_modules/color-convert/conversions.js"(r,l){var s=ve(),h={};for(let e of Object.keys(s))h[s[e]]=e;var u={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};l.exports=u;for(let e of Object.keys(u)){if(!("channels"in u[e]))throw new Error("missing channels property: "+e);if(!("labels"in u[e]))throw new Error("missing channel labels property: "+e);if(u[e].labels.length!==u[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:n,labels:t}=u[e];delete u[e].channels,delete u[e].labels,Object.defineProperty(u[e],"channels",{value:n}),Object.defineProperty(u[e],"labels",{value:t})}u.rgb.hsl=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.min(n,t,a),i=Math.max(n,t,a),c=i-o,f,g;i===o?f=0:n===i?f=(t-a)/c:t===i?f=2+(a-n)/c:a===i&&(f=4+(n-t)/c),f=Math.min(f*60,360),f<0&&(f+=360);let b=(o+i)/2;return i===o?g=0:b<=.5?g=c/(i+o):g=c/(2-i-o),[f,g*100,b*100]},u.rgb.hsv=function(e){let n,t,a,o,i,c=e[0]/255,f=e[1]/255,g=e[2]/255,b=Math.max(c,f,g),y=b-Math.min(c,f,g),m=function(k){return(b-k)/6/y+1/2};return y===0?(o=0,i=0):(i=y/b,n=m(c),t=m(f),a=m(g),c===b?o=a-t:f===b?o=1/3+n-a:g===b&&(o=2/3+t-n),o<0?o+=1:o>1&&(o-=1)),[o*360,i*100,b*100]},u.rgb.hwb=function(e){let n=e[0],t=e[1],a=e[2],o=u.rgb.hsl(e)[0],i=1/255*Math.min(n,Math.min(t,a));return a=1-1/255*Math.max(n,Math.max(t,a)),[o,i*100,a*100]},u.rgb.cmyk=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.min(1-n,1-t,1-a),i=(1-n-o)/(1-o)||0,c=(1-t-o)/(1-o)||0,f=(1-a-o)/(1-o)||0;return[i*100,c*100,f*100,o*100]};function d(e,n){return(e[0]-n[0])**2+(e[1]-n[1])**2+(e[2]-n[2])**2}u.rgb.keyword=function(e){let n=h[e];if(n)return n;let t=1/0,a;for(let o of Object.keys(s)){let i=s[o],c=d(e,i);c<t&&(t=c,a=o)}return a},u.keyword.rgb=function(e){return s[e]},u.rgb.xyz=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;let o=n*.4124+t*.3576+a*.1805,i=n*.2126+t*.7152+a*.0722,c=n*.0193+t*.1192+a*.9505;return[o*100,i*100,c*100]},u.rgb.lab=function(e){let n=u.rgb.xyz(e),t=n[0],a=n[1],o=n[2];t/=95.047,a/=100,o/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let i=116*a-16,c=500*(t-a),f=200*(a-o);return[i,c,f]},u.hsl.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100,o,i,c;if(t===0)return c=a*255,[c,c,c];a<.5?o=a*(1+t):o=a+t-a*t;let f=2*a-o,g=[0,0,0];for(let b=0;b<3;b++)i=n+1/3*-(b-1),i<0&&i++,i>1&&i--,6*i<1?c=f+(o-f)*6*i:2*i<1?c=o:3*i<2?c=f+(o-f)*(2/3-i)*6:c=f,g[b]=c*255;return g},u.hsl.hsv=function(e){let n=e[0],t=e[1]/100,a=e[2]/100,o=t,i=Math.max(a,.01);a*=2,t*=a<=1?a:2-a,o*=i<=1?i:2-i;let c=(a+t)/2,f=a===0?2*o/(i+o):2*t/(a+t);return[n,f*100,c*100]},u.hsv.rgb=function(e){let n=e[0]/60,t=e[1]/100,a=e[2]/100,o=Math.floor(n)%6,i=n-Math.floor(n),c=255*a*(1-t),f=255*a*(1-t*i),g=255*a*(1-t*(1-i));switch(a*=255,o){case 0:return[a,g,c];case 1:return[f,a,c];case 2:return[c,a,g];case 3:return[c,f,a];case 4:return[g,c,a];case 5:return[a,c,f]}},u.hsv.hsl=function(e){let n=e[0],t=e[1]/100,a=e[2]/100,o=Math.max(a,.01),i,c;c=(2-t)*a;let f=(2-t)*o;return i=t*o,i/=f<=1?f:2-f,i=i||0,c/=2,[n,i*100,c*100]},u.hwb.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100,o=t+a,i;o>1&&(t/=o,a/=o);let c=Math.floor(6*n),f=1-a;i=6*n-c,(c&1)!==0&&(i=1-i);let g=t+i*(f-t),b,y,m;switch(c){default:case 6:case 0:b=f,y=g,m=t;break;case 1:b=g,y=f,m=t;break;case 2:b=t,y=f,m=g;break;case 3:b=t,y=g,m=f;break;case 4:b=g,y=t,m=f;break;case 5:b=f,y=t,m=g;break}return[b*255,y*255,m*255]},u.cmyk.rgb=function(e){let n=e[0]/100,t=e[1]/100,a=e[2]/100,o=e[3]/100,i=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,t*(1-o)+o),f=1-Math.min(1,a*(1-o)+o);return[i*255,c*255,f*255]},u.xyz.rgb=function(e){let n=e[0]/100,t=e[1]/100,a=e[2]/100,o,i,c;return o=n*3.2406+t*-1.5372+a*-.4986,i=n*-.9689+t*1.8758+a*.0415,c=n*.0557+t*-.204+a*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),c=Math.min(Math.max(0,c),1),[o*255,i*255,c*255]},u.xyz.lab=function(e){let n=e[0],t=e[1],a=e[2];n/=95.047,t/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*t-16,i=500*(n-t),c=200*(t-a);return[o,i,c]},u.lab.xyz=function(e){let n=e[0],t=e[1],a=e[2],o,i,c;i=(n+16)/116,o=t/500+i,c=i-a/200;let f=i**3,g=o**3,b=c**3;return i=f>.008856?f:(i-16/116)/7.787,o=g>.008856?g:(o-16/116)/7.787,c=b>.008856?b:(c-16/116)/7.787,o*=95.047,i*=100,c*=108.883,[o,i,c]},u.lab.lch=function(e){let n=e[0],t=e[1],a=e[2],o;o=Math.atan2(a,t)*360/2/Math.PI,o<0&&(o+=360);let i=Math.sqrt(t*t+a*a);return[n,i,o]},u.lch.lab=function(e){let n=e[0],t=e[1],a=e[2]/360*2*Math.PI,o=t*Math.cos(a),i=t*Math.sin(a);return[n,o,i]},u.rgb.ansi16=function(e,n=null){let[t,a,o]=e,i=n===null?u.rgb.hsv(e)[2]:n;if(i=Math.round(i/50),i===0)return 30;let c=30+(Math.round(o/255)<<2|Math.round(a/255)<<1|Math.round(t/255));return i===2&&(c+=60),c},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){let n=e[0],t=e[1],a=e[2];return n===t&&t===a?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(a/255*5)},u.ansi16.rgb=function(e){let n=e%10;if(n===0||n===7)return e>50&&(n+=3.5),n=n/10.5*255,[n,n,n];let t=(~~(e>50)+1)*.5,a=(n&1)*t*255,o=(n>>1&1)*t*255,i=(n>>2&1)*t*255;return[a,o,i]},u.ansi256.rgb=function(e){if(e>=232){let i=(e-232)*10+8;return[i,i,i]}e-=16;let n,t=Math.floor(e/36)/5*255,a=Math.floor((n=e%36)/6)/5*255,o=n%6/5*255;return[t,a,o]},u.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n},u.hex.rgb=function(e){let n=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let t=n[0];n[0].length===3&&(t=t.split("").map(f=>f+f).join(""));let a=parseInt(t,16),o=a>>16&255,i=a>>8&255,c=a&255;return[o,i,c]},u.rgb.hcg=function(e){let n=e[0]/255,t=e[1]/255,a=e[2]/255,o=Math.max(Math.max(n,t),a),i=Math.min(Math.min(n,t),a),c=o-i,f,g;return c<1?f=i/(1-c):f=0,c<=0?g=0:o===n?g=(t-a)/c%6:o===t?g=2+(a-n)/c:g=4+(n-t)/c,g/=6,g%=1,[g*360,c*100,f*100]},u.hsl.hcg=function(e){let n=e[1]/100,t=e[2]/100,a=t<.5?2*n*t:2*n*(1-t),o=0;return a<1&&(o=(t-.5*a)/(1-a)),[e[0],a*100,o*100]},u.hsv.hcg=function(e){let n=e[1]/100,t=e[2]/100,a=n*t,o=0;return a<1&&(o=(t-a)/(1-a)),[e[0],a*100,o*100]},u.hcg.rgb=function(e){let n=e[0]/360,t=e[1]/100,a=e[2]/100;if(t===0)return[a*255,a*255,a*255];let o=[0,0,0],i=n%1*6,c=i%1,f=1-c,g=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=c,o[2]=0;break;case 1:o[0]=f,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=c;break;case 3:o[0]=0,o[1]=f,o[2]=1;break;case 4:o[0]=c,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=f}return g=(1-t)*a,[(t*o[0]+g)*255,(t*o[1]+g)*255,(t*o[2]+g)*255]},u.hcg.hsv=function(e){let n=e[1]/100,t=e[2]/100,a=n+t*(1-n),o=0;return a>0&&(o=n/a),[e[0],o*100,a*100]},u.hcg.hsl=function(e){let n=e[1]/100,t=e[2]/100*(1-n)+.5*n,a=0;return t>0&&t<.5?a=n/(2*t):t>=.5&&t<1&&(a=n/(2*(1-t))),[e[0],a*100,t*100]},u.hcg.hwb=function(e){let n=e[1]/100,t=e[2]/100,a=n+t*(1-n);return[e[0],(a-n)*100,(1-a)*100]},u.hwb.hcg=function(e){let n=e[1]/100,t=1-e[2]/100,a=t-n,o=0;return a<1&&(o=(t-a)/(1-a)),[e[0],a*100,o*100]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=function(e){return[0,0,e[0]]},u.gray.hsv=u.gray.hsl,u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){let n=Math.round(e[0]/100*255)&255,t=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),me=I({"../../node_modules/color-convert/route.js"(r,l){var s=Y();function h(){let n={},t=Object.keys(s);for(let a=t.length,o=0;o<a;o++)n[t[o]]={distance:-1,parent:null};return n}function u(n){let t=h(),a=[n];for(t[n].distance=0;a.length;){let o=a.pop(),i=Object.keys(s[o]);for(let c=i.length,f=0;f<c;f++){let g=i[f],b=t[g];b.distance===-1&&(b.distance=t[o].distance+1,b.parent=o,a.unshift(g))}}return t}function d(n,t){return function(a){return t(n(a))}}function e(n,t){let a=[t[n].parent,n],o=s[t[n].parent][n],i=t[n].parent;for(;t[i].parent;)a.unshift(t[i].parent),o=d(s[t[i].parent][i],o),i=t[i].parent;return o.conversion=a,o}l.exports=function(n){let t=u(n),a={},o=Object.keys(t);for(let i=o.length,c=0;c<i;c++){let f=o[c];t[f].parent!==null&&(a[f]=e(f,t))}return a}}}),pe=I({"../../node_modules/color-convert/index.js"(r,l){var s=Y(),h=me(),u={},d=Object.keys(s);function e(t){let a=function(...o){let i=o[0];return i==null?i:(i.length>1&&(o=i),t(o))};return"conversion"in t&&(a.conversion=t.conversion),a}function n(t){let a=function(...o){let i=o[0];if(i==null)return i;i.length>1&&(o=i);let c=t(o);if(typeof c=="object")for(let f=c.length,g=0;g<f;g++)c[g]=Math.round(c[g]);return c};return"conversion"in t&&(a.conversion=t.conversion),a}d.forEach(t=>{u[t]={},Object.defineProperty(u[t],"channels",{value:s[t].channels}),Object.defineProperty(u[t],"labels",{value:s[t].labels});let a=h(t);Object.keys(a).forEach(o=>{let i=a[o];u[t][o]=n(i),u[t][o].raw=e(i)})}),l.exports=u}}),_=be(pe());function M(){return(M=Object.assign||function(r){for(var l=1;l<arguments.length;l++){var s=arguments[l];for(var h in s)Object.prototype.hasOwnProperty.call(s,h)&&(r[h]=s[h])}return r}).apply(this,arguments)}function X(r,l){if(r==null)return{};var s,h,u={},d=Object.keys(r);for(h=0;h<d.length;h++)l.indexOf(s=d[h])>=0||(u[s]=r[s]);return u}function P(r){var l=p.useRef(r),s=p.useRef(function(h){l.current&&l.current(h)});return l.current=r,s.current}var $=function(r,l,s){return l===void 0&&(l=0),s===void 0&&(s=1),r>s?s:r<l?l:r},O=function(r){return"touches"in r},L=function(r){return r&&r.ownerDocument.defaultView||self},G=function(r,l,s){var h=r.getBoundingClientRect(),u=O(l)?(function(d,e){for(var n=0;n<d.length;n++)if(d[n].identifier===e)return d[n];return d[0]})(l.touches,s):l;return{left:$((u.pageX-(h.left+L(r).pageXOffset))/h.width),top:$((u.pageY-(h.top+L(r).pageYOffset))/h.height)}},F=function(r){!O(r)&&r.preventDefault()},V=v.memo(function(r){var l=r.onMove,s=r.onKey,h=X(r,["onMove","onKey"]),u=p.useRef(null),d=P(l),e=P(s),n=p.useRef(null),t=p.useRef(!1),a=p.useMemo(function(){var f=function(y){F(y),(O(y)?y.touches.length>0:y.buttons>0)&&u.current?d(G(u.current,y,n.current)):b(!1)},g=function(){return b(!1)};function b(y){var m=t.current,k=L(u.current),x=y?k.addEventListener:k.removeEventListener;x(m?"touchmove":"mousemove",f),x(m?"touchend":"mouseup",g)}return[function(y){var m=y.nativeEvent,k=u.current;if(k&&(F(m),!(function(N,se){return se&&!O(N)})(m,t.current)&&k)){if(O(m)){t.current=!0;var x=m.changedTouches||[];x.length&&(n.current=x[0].identifier)}k.focus(),d(G(k,m,n.current)),b(!0)}},function(y){var m=y.which||y.keyCode;m<37||m>40||(y.preventDefault(),e({left:m===39?.05:m===37?-.05:0,top:m===40?.05:m===38?-.05:0}))},b]},[e,d]),o=a[0],i=a[1],c=a[2];return p.useEffect(function(){return c},[c]),v.createElement("div",M({},h,{onTouchStart:o,onMouseDown:o,className:"react-colorful__interactive",ref:u,onKeyDown:i,tabIndex:0,role:"slider"}))}),S=function(r){return r.filter(Boolean).join(" ")},D=function(r){var l=r.color,s=r.left,h=r.top,u=h===void 0?.5:h,d=S(["react-colorful__pointer",r.className]);return v.createElement("div",{className:d,style:{top:100*u+"%",left:100*s+"%"}},v.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:l}}))},w=function(r,l,s){return l===void 0&&(l=0),s===void 0&&(s=Math.pow(10,l)),Math.round(s*r)/s},ye={grad:.9,turn:360,rad:360/(2*Math.PI)},xe=function(r){return Z(B(r))},B=function(r){return r[0]==="#"&&(r=r.substring(1)),r.length<6?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?w(parseInt(r[3]+r[3],16)/255,2):1}:{r:parseInt(r.substring(0,2),16),g:parseInt(r.substring(2,4),16),b:parseInt(r.substring(4,6),16),a:r.length===8?w(parseInt(r.substring(6,8),16)/255,2):1}},we=function(r,l){return l===void 0&&(l="deg"),Number(r)*(ye[l]||1)},ke=function(r){var l=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(r);return l?_e({h:we(l[1],l[2]),s:Number(l[3]),l:Number(l[4]),a:l[5]===void 0?1:Number(l[5])/(l[6]?100:1)}):{h:0,s:0,v:0,a:1}},_e=function(r){var l=r.s,s=r.l;return{h:r.h,s:(l*=(s<50?s:100-s)/100)>0?2*l/(s+l)*100:0,v:s+l,a:r.a}},Ee=function(r){return Ce(Q(r))},J=function(r){var l=r.s,s=r.v,h=r.a,u=(200-l)*s/100;return{h:w(r.h),s:w(u>0&&u<200?l*s/100/(u<=100?u:200-u)*100:0),l:w(u/2),a:w(h,2)}},K=function(r){var l=J(r);return"hsl("+l.h+", "+l.s+"%, "+l.l+"%)"},z=function(r){var l=J(r);return"hsla("+l.h+", "+l.s+"%, "+l.l+"%, "+l.a+")"},Q=function(r){var l=r.h,s=r.s,h=r.v,u=r.a;l=l/360*6,s/=100,h/=100;var d=Math.floor(l),e=h*(1-s),n=h*(1-(l-d)*s),t=h*(1-(1-l+d)*s),a=d%6;return{r:w(255*[h,n,e,e,t,h][a]),g:w(255*[t,h,h,n,e,e][a]),b:w(255*[e,e,t,h,h,n][a]),a:w(u,2)}},Me=function(r){var l=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(r);return l?Z({r:Number(l[1])/(l[2]?100/255:1),g:Number(l[3])/(l[4]?100/255:1),b:Number(l[5])/(l[6]?100/255:1),a:l[7]===void 0?1:Number(l[7])/(l[8]?100:1)}):{h:0,s:0,v:0,a:1}},j=function(r){var l=r.toString(16);return l.length<2?"0"+l:l},Ce=function(r){var l=r.r,s=r.g,h=r.b,u=r.a,d=u<1?j(w(255*u)):"";return"#"+j(l)+j(s)+j(h)+d},Z=function(r){var l=r.r,s=r.g,h=r.b,u=r.a,d=Math.max(l,s,h),e=d-Math.min(l,s,h),n=e?d===l?(s-h)/e:d===s?2+(h-l)/e:4+(l-s)/e:0;return{h:w(60*(n<0?n+6:n)),s:w(d?e/d*100:0),v:w(d/255*100),a:u}},ee=v.memo(function(r){var l=r.hue,s=r.onChange,h=S(["react-colorful__hue",r.className]);return v.createElement("div",{className:h},v.createElement(V,{onMove:function(u){s({h:360*u.left})},onKey:function(u){s({h:$(l+360*u.left,0,360)})},"aria-label":"Hue","aria-valuenow":w(l),"aria-valuemax":"360","aria-valuemin":"0"},v.createElement(D,{className:"react-colorful__hue-pointer",left:l/360,color:K({h:l,s:100,v:100,a:1})})))}),re=v.memo(function(r){var l=r.hsva,s=r.onChange,h={backgroundColor:K({h:l.h,s:100,v:100,a:1})};return v.createElement("div",{className:"react-colorful__saturation",style:h},v.createElement(V,{onMove:function(u){s({s:100*u.left,v:100-100*u.top})},onKey:function(u){s({s:$(l.s+100*u.left,0,100),v:$(l.v-100*u.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+w(l.s)+"%, Brightness "+w(l.v)+"%"},v.createElement(D,{className:"react-colorful__saturation-pointer",top:1-l.v/100,left:l.s/100,color:K(l)})))}),te=function(r,l){if(r===l)return!0;for(var s in r)if(r[s]!==l[s])return!1;return!0},ne=function(r,l){return r.replace(/\s/g,"")===l.replace(/\s/g,"")},$e=function(r,l){return r.toLowerCase()===l.toLowerCase()||te(B(r),B(l))};function ae(r,l,s){var h=P(s),u=p.useState(function(){return r.toHsva(l)}),d=u[0],e=u[1],n=p.useRef({color:l,hsva:d});p.useEffect(function(){if(!r.equal(l,n.current.color)){var a=r.toHsva(l);n.current={hsva:a,color:l},e(a)}},[l,r]),p.useEffect(function(){var a;te(d,n.current.hsva)||r.equal(a=r.fromHsva(d),n.current.color)||(n.current={hsva:d,color:a},h(a))},[d,r,h]);var t=p.useCallback(function(a){e(function(o){return Object.assign({},o,a)})},[]);return[d,t]}var Oe=typeof window<"u"?p.useLayoutEffect:p.useEffect,Se=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},W=new Map,oe=function(r){Oe(function(){var l=r.current?r.current.ownerDocument:document;if(l!==void 0&&!W.has(l)){var s=l.createElement("style");s.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,W.set(l,s);var h=Se();h&&s.setAttribute("nonce",h),l.head.appendChild(s)}},[])},Ne=function(r){var l=r.className,s=r.colorModel,h=r.color,u=h===void 0?s.defaultColor:h,d=r.onChange,e=X(r,["className","colorModel","color","onChange"]),n=p.useRef(null);oe(n);var t=ae(s,u,d),a=t[0],o=t[1],i=S(["react-colorful",l]);return v.createElement("div",M({},e,{ref:n,className:i}),v.createElement(re,{hsva:a,onChange:o}),v.createElement(ee,{hue:a.h,onChange:o,className:"react-colorful__last-control"}))},je={defaultColor:"000",toHsva:xe,fromHsva:function(r){return Ee({h:r.h,s:r.s,v:r.v,a:1})},equal:$e},Re=function(r){return v.createElement(Ne,M({},r,{colorModel:je}))},ze=function(r){var l=r.className,s=r.hsva,h=r.onChange,u={backgroundImage:"linear-gradient(90deg, "+z(Object.assign({},s,{a:0}))+", "+z(Object.assign({},s,{a:1}))+")"},d=S(["react-colorful__alpha",l]),e=w(100*s.a);return v.createElement("div",{className:d},v.createElement("div",{className:"react-colorful__alpha-gradient",style:u}),v.createElement(V,{onMove:function(n){h({a:n.left})},onKey:function(n){h({a:$(s.a+n.left)})},"aria-label":"Alpha","aria-valuetext":e+"%","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"100"},v.createElement(D,{className:"react-colorful__alpha-pointer",left:s.a,color:z(s)})))},le=function(r){var l=r.className,s=r.colorModel,h=r.color,u=h===void 0?s.defaultColor:h,d=r.onChange,e=X(r,["className","colorModel","color","onChange"]),n=p.useRef(null);oe(n);var t=ae(s,u,d),a=t[0],o=t[1],i=S(["react-colorful",l]);return v.createElement("div",M({},e,{ref:n,className:i}),v.createElement(re,{hsva:a,onChange:o}),v.createElement(ee,{hue:a.h,onChange:o}),v.createElement(ze,{hsva:a,onChange:o,className:"react-colorful__last-control"}))},He={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:ke,fromHsva:z,equal:ne},Ie=function(r){return v.createElement(le,M({},r,{colorModel:He}))},qe={defaultColor:"rgba(0, 0, 0, 1)",toHsva:Me,fromHsva:function(r){var l=Q(r);return"rgba("+l.r+", "+l.g+", "+l.b+", "+l.a+")"},equal:ne},Pe=function(r){return v.createElement(le,M({},r,{colorModel:qe}))},Le=E.div({position:"relative",maxWidth:250,'&[aria-readonly="true"]':{opacity:.5}}),Be=E(U)({position:"absolute",zIndex:1,top:4,left:4,"[aria-readonly=true] &":{cursor:"not-allowed"}}),Ke=E.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:"4px 4px 0 0"},".react-colorful__hue":{boxShadow:"inset 0 0 0 1px rgb(0 0 0 / 5%)"},".react-colorful__last-control":{borderRadius:"0 0 4px 4px"}}),Te=E(fe)(({theme:r})=>({fontFamily:r.typography.fonts.base})),Xe=E.div({display:"grid",gridTemplateColumns:"repeat(9, 16px)",gap:6,padding:3,marginTop:5,width:200}),Ve=E.div(({theme:r,active:l})=>({width:16,height:16,boxShadow:l?`${r.appBorderColor} 0 0 0 1px inset, ${r.textMutedColor}50 0 0 0 4px`:`${r.appBorderColor} 0 0 0 1px inset`,borderRadius:r.appBorderRadius})),De=`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,A=({value:r,style:l,...s})=>{let h=`linear-gradient(${r}, ${r}), ${De}, linear-gradient(#fff, #fff)`;return v.createElement(Ve,{...s,style:{...l,backgroundImage:h}})},Ge=E(de.Input)(({theme:r,readOnly:l})=>({width:"100%",paddingLeft:30,paddingRight:30,boxSizing:"border-box",fontFamily:r.typography.fonts.base})),Fe=E(ge)(({theme:r})=>({position:"absolute",zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:"border-box",cursor:"pointer",color:r.input.color})),ue=(r=>(r.RGB="rgb",r.HSL="hsl",r.HEX="hex",r))(ue||{}),q=Object.values(ue),We=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Ae=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,Ue=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,T=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Ye=/^\s*#?([0-9a-f]{3})\s*$/i,Je={hex:Re,rgb:Pe,hsl:Ie},R={hex:"transparent",rgb:"rgba(0, 0, 0, 0)",hsl:"hsla(0, 0%, 0%, 0)"},ie=r=>{let l=r?.match(We);if(!l)return[0,0,0,1];let[,s,h,u,d=1]=l;return[s,h,u,d].map(Number)},Qe=r=>{let[l,s,h,u]=ie(r),[d,e,n]=_.default.rgb.hsl([l,s,h])||[0,0,0];return{valid:!0,value:r,keyword:_.default.rgb.keyword([l,s,h]),colorSpace:"rgb",rgb:r,hsl:`hsla(${d}, ${e}%, ${n}%, ${u})`,hex:`#${_.default.rgb.hex([l,s,h]).toLowerCase()}`}},Ze=r=>{let[l,s,h,u]=ie(r),[d,e,n]=_.default.hsl.rgb([l,s,h])||[0,0,0];return{valid:!0,value:r,keyword:_.default.hsl.keyword([l,s,h]),colorSpace:"hsl",rgb:`rgba(${d}, ${e}, ${n}, ${u})`,hsl:r,hex:`#${_.default.hsl.hex([l,s,h]).toLowerCase()}`}},er=r=>{let l=r.replace("#",""),s=_.default.keyword.rgb(l)||_.default.hex.rgb(l),h=_.default.rgb.hsl(s),u=r;/[^#a-f0-9]/i.test(r)?u=l:T.test(r)&&(u=`#${l}`);let d=!0;if(u.startsWith("#"))d=T.test(u);else try{_.default.keyword.hex(u)}catch{d=!1}return{valid:d,value:u,keyword:_.default.rgb.keyword(s),colorSpace:"hex",rgb:`rgba(${s[0]}, ${s[1]}, ${s[2]}, 1)`,hsl:`hsla(${h[0]}, ${h[1]}%, ${h[2]}%, 1)`,hex:u}},C=r=>{if(r)return Ae.test(r)?Qe(r):Ue.test(r)?Ze(r):er(r)},rr=(r,l,s)=>{if(!r||!l?.valid)return R[s];if(s!=="hex")return l?.[s]||R[s];if(!l.hex.startsWith("#"))try{return`#${_.default.keyword.hex(l.hex)}`}catch{return R.hex}let h=l.hex.match(Ye);if(!h)return T.test(l.hex)?l.hex:R.hex;let[u,d,e]=h[1].split("");return`#${u}${u}${d}${d}${e}${e}`},tr=(r,l)=>{let[s,h]=p.useState(r||""),[u,d]=p.useState(()=>C(s)),[e,n]=p.useState(u?.colorSpace||"hex");p.useEffect(()=>{let i=r||"",c=C(i);h(i),d(c),n(c?.colorSpace||"hex")},[r]);let t=p.useMemo(()=>rr(s,u,e).toLowerCase(),[s,u,e]),a=p.useCallback(i=>{let c=C(i),f=c?.value||i||"";h(f),f===""&&(d(void 0),l(void 0)),c&&(d(c),n(c.colorSpace),l(c.value))},[l]),o=p.useCallback(()=>{let i=(q.indexOf(e)+1)%q.length,c=q[i];n(c);let f=u?.[c]||"";h(f),l(f)},[u,e,l]);return{value:s,realValue:t,updateValue:a,color:u,colorSpace:e,cycleColorSpace:o}},H=r=>r.replace(/\s*/,"").toLowerCase(),nr=(r,l,s)=>{let[h,u]=p.useState(l?.valid?[l]:[]);p.useEffect(()=>{l===void 0&&u([])},[l]);let d=p.useMemo(()=>(r||[]).map(n=>typeof n=="string"?C(n):n.title?{...C(n.color),keyword:n.title}:C(n.color)).concat(h).filter(Boolean).slice(-27),[r,h]),e=p.useCallback(n=>{n?.valid&&(d.some(t=>t&&t[s]&&H(t[s]||"")===H(n[s]||""))||u(t=>t.concat(n)))},[s,d]);return{presets:d,addPreset:e}},ar=({name:r,value:l,onChange:s,onFocus:h,onBlur:u,presetColors:d,startOpen:e=!1,argType:n})=>{let t=p.useCallback(ce(s,200),[s]),{value:a,realValue:o,updateValue:i,color:c,colorSpace:f,cycleColorSpace:g}=tr(l,t),{presets:b,addPreset:y}=nr(d??[],c,f),m=Je[f],k=!!n?.table?.readonly;return v.createElement(Le,{"aria-readonly":k},v.createElement(Be,{startOpen:e,trigger:k?null:void 0,closeOnOutsideClick:!0,onVisibleChange:()=>c&&y(c),tooltip:v.createElement(Ke,null,v.createElement(m,{color:o==="transparent"?"#000000":o,onChange:i,onFocus:h,onBlur:u}),b.length>0&&v.createElement(Xe,null,b.map((x,N)=>v.createElement(U,{key:`${x?.value||N}-${N}`,hasChrome:!1,tooltip:v.createElement(Te,{note:x?.keyword||x?.value||""})},v.createElement(A,{value:x?.[f]||"",active:!!(c&&x&&x[f]&&H(x[f]||"")===H(c[f])),onClick:()=>x&&i(x.value||"")})))))},v.createElement(A,{value:o,style:{margin:4}})),v.createElement(Ge,{id:he(r),value:a,onChange:x=>i(x.target.value),onFocus:x=>x.target.select(),readOnly:k,placeholder:"Choose color..."}),a?v.createElement(Fe,{onClick:g}):null)},sr=ar;export{ar as ColorControl,sr as default};
@@ -0,0 +1,33 @@
1
+ import{j as n}from"./iframe-DfPay7Zl.js";import{useMDXComponents as s}from"./index-DqZh6B0b.js";import{b as c,M as p}from"./blocks-DKR3P4qW.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";function r(i){const e={code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...s(),...i.components};return n.jsxs(n.Fragment,{children:[`
2
+ `,`
3
+ `,n.jsx(c,{title:"Router/Deeplink"}),`
4
+ `,n.jsx(e.h1,{id:"deeplink",children:"Deeplink"}),`
5
+ `,n.jsxs(e.p,{children:["V-MiniApp hỗ trợ mở trực tiếp tới một page qua ",n.jsx(e.strong,{children:"Deeplink"})," (custom scheme) hoặc ",n.jsx(e.strong,{children:"Universal link"})," (HTTPS). Cả hai đều dùng cùng cấu trúc: ",n.jsx(e.code,{children:"{appid}"}),", ",n.jsx(e.code,{children:"{pathname}"})," và query ",n.jsx(e.code,{children:"{params}"}),"."]}),`
6
+ `,n.jsx(e.h2,{id:"deeplink-custom-scheme",children:"Deeplink (custom scheme)"}),`
7
+ `,n.jsxs(e.p,{children:["Dùng scheme ",n.jsx(e.strong,{children:"vapp"})," để mở app từ bên ngoài (link, notification, QR, v.v.)."]}),`
8
+ `,n.jsx(e.p,{children:n.jsx(e.strong,{children:"Định dạng:"})}),`
9
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{children:`vapp://mini/{appid}/{pathname}?{params}
10
+ `})}),`
11
+ `,n.jsx(p,{children:"\n| Thành phần | Mô tả |\n| :--- | :--- |\n| `vapp://mini/` | Scheme và prefix cố định. |\n| `{appid}` | ID của mini app. |\n| `{pathname}` | Đường dẫn page (khớp với `pathname` trong `IRouterPageConfig`). Bỏ `/` đầu nếu có. |\n| `?{params}` | Query string (optional). Sẽ map vào `location.params` khi router xử lý. |\n"}),`
12
+ `,n.jsx(e.p,{children:n.jsx(e.strong,{children:"Ví dụ:"})}),`
13
+ `,n.jsxs(e.ul,{children:[`
14
+ `,n.jsxs(e.li,{children:[n.jsx(e.code,{children:"vapp://mini/my-app/home"})," → mở app ",n.jsx(e.code,{children:"my-app"}),", page ",n.jsx(e.code,{children:"/home"})]}),`
15
+ `,n.jsxs(e.li,{children:[n.jsx(e.code,{children:"vapp://mini/my-app/detail?id=123"})," → mở app ",n.jsx(e.code,{children:"my-app"}),", page ",n.jsx(e.code,{children:"/detail"}),", params ",n.jsx(e.code,{children:"{ id: '123' }"})]}),`
16
+ `]}),`
17
+ `,n.jsx(e.h2,{id:"universal-link-https",children:"Universal link (HTTPS)"}),`
18
+ `,n.jsx(e.p,{children:"Dùng URL HTTPS để mở app (share, web redirect, SEO). Khi user mở link trên thiết bị có cài app, có thể mở trực tiếp vào mini app."}),`
19
+ `,n.jsx(e.p,{children:n.jsx(e.strong,{children:"Định dạng:"})}),`
20
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{children:`https://v-app.vn/mini/{appid}/{pathname}?{params}
21
+ `})}),`
22
+ `,n.jsx(p,{children:"\n| Thành phần | Mô tả |\n| :--- | :--- |\n| `https://v-app.vn/mini/` | Domain và prefix cố định. |\n| `{appid}` | ID của mini app. |\n| `{pathname}` | Đường dẫn page (khớp với `pathname` trong config router). |\n| `?{params}` | Query string (optional). Map vào `location.params`. |\n"}),`
23
+ `,n.jsx(e.p,{children:n.jsx(e.strong,{children:"Ví dụ:"})}),`
24
+ `,n.jsxs(e.ul,{children:[`
25
+ `,n.jsxs(e.li,{children:[n.jsx(e.code,{children:"https://v-app.vn/mini/my-app/home"})," → mở app ",n.jsx(e.code,{children:"my-app"}),", page ",n.jsx(e.code,{children:"/home"})]}),`
26
+ `,n.jsxs(e.li,{children:[n.jsx(e.code,{children:"https://v-app.vn/mini/my-app/settings?tab=profile"})," → mở app ",n.jsx(e.code,{children:"my-app"}),", page ",n.jsx(e.code,{children:"/settings"}),", params ",n.jsx(e.code,{children:"{ tab: 'profile' }"})]}),`
27
+ `]}),`
28
+ `,n.jsx(e.h2,{id:"lưu-ý",children:"Lưu ý"}),`
29
+ `,n.jsxs(e.ul,{children:[`
30
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"pathname"})," phải khớp exact với một trong các ",n.jsx(e.code,{children:"pathname"})," đã khai báo trong ",n.jsx(e.code,{children:"IRouterConfig.pages"})," (exact match, không hỗ trợ dynamic segment)."]}),`
31
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"params"})," từ query string sẽ có sẵn trong ",n.jsx(e.code,{children:"useLocation().params"})," (hoặc ",n.jsx(e.code,{children:"useHistory().location.params"}),") khi page được mở bằng deeplink/universal link."]}),`
32
+ `,n.jsxs(e.li,{children:["Cách app nhận và xử lý deeplink/universal link phụ thuộc vào môi trường V-MiniApp (native/web); router chỉ consume ",n.jsx(e.code,{children:"pathname"})," và ",n.jsx(e.code,{children:"params"})," sau khi đã được resolve."]}),`
33
+ `]})]})}function o(i={}){const{wrapper:e}={...s(),...i.components};return e?n.jsx(e,{...i,children:n.jsx(r,{...i})}):r(i)}export{o as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CgMRTj-o.js","./iframe-CQAwSt4E.js","./preload-helper-PPVm8Dsz.js","./iframe-yMKl6hJA.css"])))=>i.map(i=>d[i]);
2
- import{_ as i}from"./preload-helper-PPVm8Dsz.js";import{e as t,r as p}from"./iframe-CQAwSt4E.js";import{renderElement as l,unmountElement as u}from"./react-18-CNyWQ7je.js";import{H as d,A as h,C as E,D as x}from"./blocks-BuaOUtiH.js";import"./index-DHiZ-gXR.js";var D={code:E,a:h,...d},_=class extends p.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){let{showException:r}=this.props;r(e)}render(){let{hasError:e}=this.state,{children:r}=this.props;return e?null:t.createElement(t.Fragment,null,r)}},y=class{constructor(){this.render=async(e,r,n)=>{let s={...D,...r?.components},a=x;return new Promise((m,c)=>{i(async()=>{const{MDXProvider:o}=await import("./index-CgMRTj-o.js");return{MDXProvider:o}},__vite__mapDeps([0,1,2,3]),import.meta.url).then(({MDXProvider:o})=>l(t.createElement(_,{showException:c,key:Math.random()},t.createElement(o,{components:s},t.createElement(a,{context:e,docsParameter:r}))),n)).then(()=>m())})},this.unmount=e=>{u(e)}}};export{y as DocsRenderer,D as defaultComponents};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-DqZh6B0b.js","./iframe-DfPay7Zl.js","./preload-helper-PPVm8Dsz.js","./iframe-BHaCv4dM.css"])))=>i.map(i=>d[i]);
2
+ import{_ as i}from"./preload-helper-PPVm8Dsz.js";import{e as t,r as p}from"./iframe-DfPay7Zl.js";import{renderElement as l,unmountElement as u}from"./react-18-C7pDmBBf.js";import{H as d,A as h,C as E,D as x}from"./blocks-DKR3P4qW.js";import"./index-cMNObl2z.js";var D={code:E,a:h,...d},_=class extends p.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){let{showException:r}=this.props;r(e)}render(){let{hasError:e}=this.state,{children:r}=this.props;return e?null:t.createElement(t.Fragment,null,r)}},y=class{constructor(){this.render=async(e,r,n)=>{let s={...D,...r?.components},a=x;return new Promise((m,c)=>{i(async()=>{const{MDXProvider:o}=await import("./index-DqZh6B0b.js");return{MDXProvider:o}},__vite__mapDeps([0,1,2,3]),import.meta.url).then(({MDXProvider:o})=>l(t.createElement(_,{showException:c,key:Math.random()},t.createElement(o,{components:s},t.createElement(a,{context:e,docsParameter:r}))),n)).then(()=>m())})},this.unmount=e=>{u(e)}}};export{y as DocsRenderer,D as defaultComponents};
@@ -0,0 +1,65 @@
1
+ import{j as n}from"./iframe-DfPay7Zl.js";import{useMDXComponents as s}from"./index-DqZh6B0b.js";import{b as a,M as i}from"./blocks-DKR3P4qW.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";function r(e){const t={code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...s(),...e.components};return n.jsxs(n.Fragment,{children:[`
2
+ `,`
3
+ `,n.jsx(a,{title:"Router/Events"}),`
4
+ `,n.jsx(t.h1,{id:"events",children:"Events"}),`
5
+ `,n.jsxs(t.p,{children:[n.jsx(t.strong,{children:"routerEvents"})," là một ",n.jsx(t.code,{children:"EventEmitter"})," dùng để lắng nghe các sự kiện trong luồng routing: trước/sau khi history thay đổi, trước/sau khi navigate, và sau khi router init. Dùng khi cần đồng bộ UI bên ngoài, analytics, hoặc lifecycle tùy chỉnh."]}),`
6
+ `,n.jsx(t.h2,{id:"import",children:"Import"}),`
7
+ `,n.jsx(t.pre,{children:n.jsx(t.code,{className:"language-typescript",children:`import { routerEvents } from '@v-miniapp/router'
8
+ `})}),`
9
+ `,n.jsx(t.h2,{id:"api",children:"API"}),`
10
+ `,n.jsxs(t.ul,{children:[`
11
+ `,n.jsxs(t.li,{children:[n.jsx(t.strong,{children:"on(event, handler)"})," — Đăng ký listener. Trả về hàm ",n.jsx(t.strong,{children:"unsubscribe"})," (gọi để gỡ listener)."]}),`
12
+ `,n.jsxs(t.li,{children:[n.jsx(t.strong,{children:"off(event, handler)"})," — Gỡ listener."]}),`
13
+ `,n.jsxs(t.li,{children:["Nếu cần lắng nghe từ môi trường không React, có thể dùng ",n.jsx(t.strong,{children:"window.addEventListener(eventName, listener)"})]}),`
14
+ `]}),`
15
+ `,n.jsx(t.h2,{id:"usage",children:"Usage"}),`
16
+ `,n.jsx(t.pre,{children:n.jsx(t.code,{className:"language-tsx",children:`import { routerEvents } from '@v-miniapp/router'
17
+
18
+ // Lắng nghe và unsubscribe khi không dùng nữa
19
+ const unsubscribe = routerEvents.on('afterHistoryChange', (data) => {
20
+ console.log('History changed:', data.history.location.pathname)
21
+ console.log('Prev:', data.prevHistory?.location.pathname)
22
+ })
23
+
24
+ // Gỡ listener
25
+ unsubscribe()
26
+ `})}),`
27
+ `,n.jsx(t.pre,{children:n.jsx(t.code,{className:"language-tsx",children:`// Dùng trong useEffect
28
+ useEffect(() => {
29
+ const unsub = routerEvents.on('beforeHistoryChange', ({ nextHistory }) => {
30
+ // Chuẩn bị trước khi chuyển sang nextHistory
31
+ })
32
+ return unsub
33
+ }, [])
34
+ `})}),`
35
+ `,n.jsx(t.h2,{id:"các-event",children:"Các event"}),`
36
+ `,n.jsx(i,{children:"\n| Event | Thời điểm | Payload |\n| :--- | :--- | :--- |\n| `afterInit` | Một lần sau khi `init(config)` chạy xong (router đã có histories ban đầu). | `IAfterInitData` |\n| `beforeNavigate` | Ngay trước khi thay đổi state (push/replace/go). Có thêm `to`, `options` (khi navigate bằng pathname). | `IBeforeNavigateData` |\n| `beforeHistoryChange` | Ngay sau `beforeNavigate`, trước khi set state histories. | `IBeforeHistoryChangeData` |\n| `afterHistoryChange` | Sau khi đã set state histories (sau animation nếu có). | `IAfterHistoryChangeData` |\n| `afterNavigate` | Phát cùng lúc với `afterHistoryChange`, có thêm `to`, `options`. | `IAfterNavigateData` |\n"}),`
37
+ `,n.jsx(t.h2,{id:"payload-types",children:"Payload types"}),`
38
+ `,n.jsx(t.h3,{id:"iafterinitdata",children:"IAfterInitData"}),`
39
+ `,n.jsx(t.p,{children:"Chỉ có sau khi router init xong."}),`
40
+ `,n.jsx(i,{children:"\n| Thuộc tính | Kiểu | Mô tả |\n| :--- | :--- | :--- |\n| `history` | `IHistory` | History entry đang active sau init. |\n| `histories` | `IHistory[]` | Stack ban đầu sau init. |\n"}),`
41
+ `,n.jsx(t.h3,{id:"ibeforehistorychangedata",children:"IBeforeHistoryChangeData"}),`
42
+ `,n.jsxs(t.p,{children:["Trạng thái ",n.jsx(t.strong,{children:"hiện tại"})," và ",n.jsx(t.strong,{children:"sắp tới"})," (trước khi state thay đổi)."]}),`
43
+ `,n.jsx(i,{children:"\n| Thuộc tính | Kiểu | Mô tả |\n| :--- | :--- | :--- |\n| `history` | `IHistory` | History entry **hiện tại** (đang active). |\n| `histories` | `IHistory[]` | Toàn bộ stack **hiện tại**. |\n| `nextHistory` | `IHistory` | History entry **sắp active** sau khi đổi. |\n| `nextHistories` | `IHistory[]` | Stack **sau khi** thay đổi. |\n"}),`
44
+ `,n.jsx(t.h3,{id:"iafterhistorychangedata",children:"IAfterHistoryChangeData"}),`
45
+ `,n.jsxs(t.p,{children:["Trạng thái ",n.jsx(t.strong,{children:"sau khi"})," đổi và ",n.jsx(t.strong,{children:"trước đó"}),"."]}),`
46
+ `,n.jsx(i,{children:"\n| Thuộc tính | Kiểu | Mô tả |\n| :--- | :--- | :--- |\n| `history` | `IHistory` | History entry **hiện tại** (vừa active). |\n| `histories` | `IHistory[]` | Stack **hiện tại**. |\n| `prevHistory` | `IHistory` | History entry **trước đó** (vừa bị rời khỏi). |\n| `prevHistories` | `IHistory[]` | Stack **trước khi** thay đổi. |\n"}),`
47
+ `,n.jsx(t.h3,{id:"ibeforenavigatedata--iafternavigatedata",children:"IBeforeNavigateData / IAfterNavigateData"}),`
48
+ `,n.jsx(t.p,{children:"Mở rộng từ data before/after history change, thêm thông tin navigate:"}),`
49
+ `,n.jsx(i,{children:"\n| Thuộc tính | Kiểu | Mô tả |\n| :--- | :--- | :--- |\n| ...histories | `IBeforeHistoryChangeData` / `IAfterHistoryChangeData` | Các thuộc tính của `IBeforeHistoryChangeData` hoặc `IAfterHistoryChangeData`. |\n| `to` | `string | number` | pathname (navigate bằng path) hoặc delta (navigate bằng số). |\n| `options` | `object` (optional) | Chỉ có khi `to` là string: `params`, `state`, `replace`. |\n"}),`
50
+ `,n.jsx(t.h2,{id:"thứ-tự-phát-event-navigate-bằng-pathname",children:"Thứ tự phát event (navigate bằng pathname)"}),`
51
+ `,n.jsxs(t.ol,{children:[`
52
+ `,n.jsx(t.li,{children:n.jsx(t.em,{children:"(Khởi tạo router hoàn thành)"})}),`
53
+ `,n.jsx(t.li,{children:n.jsx(t.code,{children:"afterInit"})}),`
54
+ `,n.jsx(t.li,{children:n.jsx(t.code,{children:"beforeNavigate"})}),`
55
+ `,n.jsx(t.li,{children:n.jsx(t.code,{children:"beforeHistoryChange"})}),`
56
+ `,n.jsx(t.li,{children:n.jsx(t.em,{children:"(cập nhật state, có thể chạy animation)"})}),`
57
+ `,n.jsx(t.li,{children:n.jsx(t.code,{children:"afterNavigate"})}),`
58
+ `,n.jsx(t.li,{children:n.jsx(t.code,{children:"afterHistoryChange"})}),`
59
+ `]}),`
60
+ `,n.jsxs(t.p,{children:["Khi ",n.jsx(t.strong,{children:"back/forward"})," (popstate), thứ tự tương tự: ",n.jsx(t.code,{children:"beforeNavigate"})," → ",n.jsx(t.code,{children:"beforeHistoryChange"})," → state update (và có thể animation) → ",n.jsx(t.code,{children:"afterNavigate"})," → ",n.jsx(t.code,{children:"afterHistoryChange"}),"."]}),`
61
+ `,n.jsx(t.h2,{id:"lưu-ý",children:"Lưu ý"}),`
62
+ `,n.jsxs(t.ul,{children:[`
63
+ `,n.jsxs(t.li,{children:[n.jsx(t.strong,{children:"afterInit"})," chỉ phát ",n.jsx(t.strong,{children:"một lần"})," sau khi ",n.jsx(t.code,{children:"Router"})," mount và ",n.jsx(t.code,{children:"init(config)"})," chạy xong."]}),`
64
+ `,n.jsxs(t.li,{children:["Nếu cần lắng nghe từ môi trường không React, có thể dùng ",n.jsx(t.strong,{children:"window.addEventListener(eventName, listener)"}),"."]}),`
65
+ `]})]})}function g(e={}){const{wrapper:t}={...s(),...e.components};return t?n.jsx(t,{...e,children:n.jsx(r,{...e})}):r(e)}export{g as default};
@@ -0,0 +1,64 @@
1
+ import{j as n}from"./iframe-DfPay7Zl.js";import{useMDXComponents as r}from"./index-DqZh6B0b.js";import{b as o}from"./blocks-DKR3P4qW.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";function i(t){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...r(),...t.components};return n.jsxs(n.Fragment,{children:[`
2
+ `,`
3
+ `,n.jsx(o,{title:"Router/Getting Started"}),`
4
+ `,n.jsx(e.h1,{id:"getting-started",children:"Getting Started"}),`
5
+ `,n.jsxs(e.p,{children:[n.jsx(e.strong,{children:"@v-miniapp/router"})," cung cấp routing và navigation cho V-MiniApp: quản lý history stack, chuyển trang với animation, keep-alive, và các hooks lifecycle."]}),`
6
+ `,n.jsxs(e.blockquote,{children:[`
7
+ `,n.jsxs(e.p,{children:[n.jsx(e.strong,{children:"Ghi chú:"})," ",n.jsx(e.strong,{children:"@v-miniapp/router"})," đã được cấu hình để tương thích với ",n.jsx(e.strong,{children:"deeplink"})," và ",n.jsx(e.strong,{children:"universal link"})," của v-app. Xem ",n.jsx(e.a,{href:"?path=/docs/router-deeplink--docs",children:"Deeplink"})," để biết định dạng và cách sử dụng."]}),`
8
+ `]}),`
9
+ `,n.jsx(e.h2,{id:"cài-đặt",children:"Cài đặt"}),`
10
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-bash",children:`npm install @v-miniapp/router
11
+ # hoặc
12
+ pnpm add @v-miniapp/router
13
+ # hoặc
14
+ yarn add @v-miniapp/router
15
+ `})}),`
16
+ `,n.jsx(e.h2,{id:"import-styles",children:"Import styles"}),`
17
+ `,n.jsx(e.p,{children:"Để giao diện chuyển trang (animation, layout) hoạt động đúng:"}),`
18
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-tsx",children:`import '@v-miniapp/router/styles.css'
19
+ `})}),`
20
+ `,n.jsx(e.h2,{id:"cấu-hình-cơ-bản",children:"Cấu hình cơ bản"}),`
21
+ `,n.jsxs(e.p,{children:["Tạo config với danh sách ",n.jsx(e.strong,{children:"pages"})," (pathname + Component). Mỗi page dùng ",n.jsx(e.strong,{children:"exact path matching"})," — không hỗ trợ dynamic segment như ",n.jsx(e.code,{children:"/:id"})," hay nested routes."]}),`
22
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-tsx",children:`import { Router, type IRouterConfig } from '@v-miniapp/router'
23
+
24
+ const HomePage = () => <div>Trang chủ</div>
25
+ const SettingsPage = () => <div>Cài đặt</div>
26
+
27
+ const routerConfig: IRouterConfig = {
28
+ animation: {
29
+ type: 'slide_left', // 'none' | 'slide_up' | 'slide_left' | 'fade_in'
30
+ mode: 'view-transition', // 'view-transition' | 'style-transition'
31
+ },
32
+ keepAlive: {
33
+ enable: true,
34
+ maxStack: 10,
35
+ },
36
+ pages: [
37
+ { pathname: '/home', Component: HomePage },
38
+ { pathname: '/settings', Component: SettingsPage },
39
+ ],
40
+ }
41
+
42
+ export const MiniApp = () => {
43
+ return <Router config={routerConfig} />
44
+ }
45
+ `})}),`
46
+ `,n.jsx(e.h2,{id:"navigate-trong-page",children:"Navigate trong page"}),`
47
+ `,n.jsxs(e.p,{children:["Dùng hook ",n.jsx(e.code,{children:"useNavigate"})," để lấy function ",n.jsx(e.code,{children:"navigate"}),":"]}),`
48
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-tsx",children:`import { useNavigate } from '@v-miniapp/router'
49
+
50
+ const HomePage = () => {
51
+ const navigate = useNavigate()
52
+
53
+ return (
54
+ <div>
55
+ <button onClick={() => navigate('/settings')}>Đi tới Cài đặt</button>
56
+ <button onClick={() => navigate(-1)}>Quay lại</button>
57
+ </div>
58
+ )
59
+ }
60
+ `})}),`
61
+ `,n.jsxs(e.ul,{children:[`
62
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"pathname"}),": ",n.jsx(e.code,{children:"navigate('/pathname', { params, state, replace, ... })"})]}),`
63
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"delta (back/forward)"}),": ",n.jsx(e.code,{children:"navigate(-1)"})," hoặc ",n.jsx(e.code,{children:"navigate(1)"})]}),`
64
+ `]})]})}function l(t={}){const{wrapper:e}={...r(),...t.components};return e?n.jsx(e,{...t,children:n.jsx(i,{...t})}):i(t)}export{l as default};
@@ -0,0 +1,62 @@
1
+ import{j as n}from"./iframe-DfPay7Zl.js";import{useMDXComponents as l}from"./index-DqZh6B0b.js";import{b as i}from"./blocks-DKR3P4qW.js";import"./preload-helper-PPVm8Dsz.js";import"./index-cMNObl2z.js";function o(c){const e={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...l(),...c.components};return n.jsxs(n.Fragment,{children:[`
2
+ `,`
3
+ `,n.jsx(i,{title:"Locale/Getting Started"}),`
4
+ `,n.jsx(e.h1,{id:"getting-started",children:"Getting Started"}),`
5
+ `,n.jsxs(e.p,{children:[n.jsx(e.strong,{children:"Locale"})," module cung cấp giải pháp đa ngôn ngữ (i18n) với TypeScript type safety, hỗ trợ custom locale keys và custom language codes thông qua module augmentation."]}),`
6
+ `,n.jsxs(e.blockquote,{children:[`
7
+ `,n.jsxs(e.p,{children:[n.jsx(e.strong,{children:"Ghi chú"}),": ",n.jsx(e.code,{children:"@v-miniapp/locale"})," được tích hợp sẵn trong ",n.jsx(e.code,{children:"@v-miniapp/ui-react"}),". Chúng tôi khuyến nghị bạn dùng ",n.jsx(e.code,{children:"@v-miniapp/ui-react"})," để hỗ hỗ trợ các components nâng cao như ",n.jsx(e.code,{children:"NavigationBar"}),", ",n.jsx(e.code,{children:"BottomTabBar"}),",..."]}),`
8
+ `]}),`
9
+ `,n.jsxs(e.blockquote,{children:[`
10
+ `,n.jsx(e.p,{children:"Todo: Thêm Link tới ui-react"}),`
11
+ `]}),`
12
+ `,n.jsx(e.h2,{id:"cài-đặt",children:"Cài đặt"}),`
13
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-bash",children:`npm install @v-miniapp/locale
14
+ # hoặc
15
+ pnpm add @v-miniapp/locale
16
+ # hoặc
17
+ yarn add @v-miniapp/locale
18
+ `})}),`
19
+ `,n.jsx(e.h2,{id:"khởi-tạo",children:"Khởi tạo"}),`
20
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-tsx",children:`import { LocalesProvider, type ILocalesConfig } from '@v-miniapp/locale'
21
+
22
+ const localesConfig: ILocalesConfig = {
23
+ defaultLanguage: 'vi',
24
+ resources: {
25
+ vi: { 'app.title': 'Ứng dụng của tôi' },
26
+ en: { 'app.title': 'My Application' },
27
+ },
28
+ }
29
+
30
+ function MyApp() {
31
+ return (
32
+ <LocalesProvider config={localesConfig}>
33
+ {/* Your app content */}
34
+ </LocalesProvider>
35
+ )
36
+ }
37
+ `})}),`
38
+ `,n.jsxs(e.p,{children:[n.jsx(e.strong,{children:"Lưu ý:"})," Đặt ",n.jsx(e.code,{children:"LocalesProvider"})," ở top-level; nó chỉ khởi tạo một lần khi mount."]}),`
39
+ `,n.jsx(e.h2,{id:"mở-rộng-custom-languages-và-keys",children:"Mở rộng custom languages và keys"}),`
40
+ `,n.jsxs(e.p,{children:["Định nghĩa thêm ngôn ngữ và key với type safety qua ",n.jsx(e.strong,{children:"module augmentation"})," trong ",n.jsx(e.code,{children:"global.d.ts"}),":"]}),`
41
+ `,n.jsx(e.pre,{children:n.jsx(e.code,{className:"language-tsx",children:`import vi from './locales/vi.json'
42
+
43
+ declare module '@v-miniapp/locale' {
44
+ interface ICustomLocales {
45
+ resource: typeof vi
46
+ language: 'jp' | 'en' | 'vi'
47
+ }
48
+ }
49
+ `})}),`
50
+ `,n.jsxs(e.p,{children:["Sau đó dùng ",n.jsx(e.code,{children:"resources"})," và ",n.jsx(e.code,{children:"defaultLanguage"})," với các language đã khai báo; ",n.jsx(e.code,{children:"t()"})," và ",n.jsx(e.code,{children:"setLanguage()"})," sẽ có autocomplete và type check."]}),`
51
+ `,n.jsx(e.h2,{id:"thứ-tự-ưu-tiên-ngôn-ngữ",children:"Thứ tự ưu tiên ngôn ngữ"}),`
52
+ `,n.jsxs(e.ol,{children:[`
53
+ `,n.jsxs(e.li,{children:["Config: ",n.jsx(e.code,{children:"defaultLanguage"})]}),`
54
+ `,n.jsxs(e.li,{children:["Mặc định: ",n.jsx(e.code,{children:"'vi'"})]}),`
55
+ `]}),`
56
+ `,n.jsx(e.h2,{id:"text-mặc-định",children:"Text mặc định"}),`
57
+ `,n.jsx(e.p,{children:"Module có sẵn một số key cho component:"}),`
58
+ `,n.jsxs(e.ul,{children:[`
59
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"Pull to Refresh:"})," ",n.jsx(e.code,{children:"pullToRefresh.canReleaseText"}),", ",n.jsx(e.code,{children:"pullToRefresh.completeText"}),", ",n.jsx(e.code,{children:"pullToRefresh.pullingText"}),", ",n.jsx(e.code,{children:"pullToRefresh.refreshingText"})]}),`
60
+ `,n.jsxs(e.li,{children:[n.jsx(e.strong,{children:"Calendar:"})," ",n.jsx(e.code,{children:"calendar.monthLabel[0-11]"}),", ",n.jsx(e.code,{children:"calendar.weekdayLabel[0-6]"}),", ",n.jsx(e.code,{children:"calendar.headerLabel"}),", ",n.jsx(e.code,{children:"calendar.weekday"})]}),`
61
+ `]}),`
62
+ `,n.jsxs(e.p,{children:["Bạn có thể override hoặc thêm key trong ",n.jsx(e.code,{children:"localesConfig.resources"}),"."]})]})}function h(c={}){const{wrapper:e}={...l(),...c.components};return e?n.jsx(e,{...c,children:n.jsx(o,{...c})}):o(c)}export{h as default};