yuyeon 0.3.2-rc.9 → 0.3.4-beta.12

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 (455) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3841 -3625
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/abstract/items.js.map +1 -1
  5. package/lib/components/alert/YAlert.js +3 -4
  6. package/lib/components/alert/YAlert.js.map +1 -1
  7. package/lib/components/alert/index.js.map +1 -1
  8. package/lib/components/app/YApp.js +2 -2
  9. package/lib/components/app/YApp.js.map +1 -1
  10. package/lib/components/app/index.js.map +1 -1
  11. package/lib/components/badge/YBadge.js +3 -3
  12. package/lib/components/badge/YBadge.js.map +1 -1
  13. package/lib/components/badge/YBadge.scss +3 -2
  14. package/lib/components/badge/index.js.map +1 -1
  15. package/lib/components/bench/YBench.js +3 -4
  16. package/lib/components/bench/YBench.js.map +1 -1
  17. package/lib/components/bench/index.js.map +1 -1
  18. package/lib/components/button/YButton.js +1 -2
  19. package/lib/components/button/YButton.js.map +1 -1
  20. package/lib/components/button/index.js.map +1 -1
  21. package/lib/components/card/YCard.js.map +1 -1
  22. package/lib/components/card/YCard.scss +2 -2
  23. package/lib/components/card/YCardBody.js.map +1 -1
  24. package/lib/components/card/YCardFooter.js.map +1 -1
  25. package/lib/components/card/YCardHeader.js.map +1 -1
  26. package/lib/components/card/index.js.map +1 -1
  27. package/lib/components/checkbox/YCheckbox.js +1 -2
  28. package/lib/components/checkbox/YCheckbox.js.map +1 -1
  29. package/lib/components/checkbox/YInputCheckbox.js +1 -2
  30. package/lib/components/checkbox/YInputCheckbox.js.map +1 -1
  31. package/lib/components/checkbox/index.js.map +1 -1
  32. package/lib/components/chip/YChip.js +1 -2
  33. package/lib/components/chip/YChip.js.map +1 -1
  34. package/lib/components/chip/index.js.map +1 -1
  35. package/lib/components/date-picker/YDateCalendar.js +55 -53
  36. package/lib/components/date-picker/YDateCalendar.js.map +1 -1
  37. package/lib/components/date-picker/YDatePicker.js +24 -25
  38. package/lib/components/date-picker/YDatePicker.js.map +1 -1
  39. package/lib/components/date-picker/YDatePickerControl.js +19 -20
  40. package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
  41. package/lib/components/date-picker/YMonthPicker.js +10 -11
  42. package/lib/components/date-picker/YMonthPicker.js.map +1 -1
  43. package/lib/components/date-picker/YYearPicker.js +11 -13
  44. package/lib/components/date-picker/YYearPicker.js.map +1 -1
  45. package/lib/components/date-picker/index.js.map +1 -1
  46. package/lib/components/default-provider/YDefaultProvider.js.map +1 -1
  47. package/lib/components/default-provider/index.js.map +1 -1
  48. package/lib/components/dialog/YDialog.js +32 -32
  49. package/lib/components/dialog/YDialog.js.map +1 -1
  50. package/lib/components/dialog/index.js.map +1 -1
  51. package/lib/components/divider/YDivider.js +5 -5
  52. package/lib/components/divider/YDivider.js.map +1 -1
  53. package/lib/components/divider/index.js.map +1 -1
  54. package/lib/components/draggable/YDraggable.js +10 -11
  55. package/lib/components/draggable/YDraggable.js.map +1 -1
  56. package/lib/components/draggable/index.js +2 -0
  57. package/lib/components/draggable/index.js.map +1 -0
  58. package/lib/components/dropdown/YDropdown.js +16 -17
  59. package/lib/components/dropdown/YDropdown.js.map +1 -1
  60. package/lib/components/dropdown/index.js.map +1 -1
  61. package/lib/components/field-input/YFieldInput.js +42 -40
  62. package/lib/components/field-input/YFieldInput.js.map +1 -1
  63. package/lib/components/field-input/index.js.map +1 -1
  64. package/lib/components/form/YForm.js +12 -14
  65. package/lib/components/form/YForm.js.map +1 -1
  66. package/lib/components/form/index.js.map +1 -1
  67. package/lib/components/hover/YHover.js +9 -8
  68. package/lib/components/hover/YHover.js.map +1 -1
  69. package/lib/components/hover/index.js.map +1 -1
  70. package/lib/components/icon/YIcon.js +2 -4
  71. package/lib/components/icon/YIcon.js.map +1 -1
  72. package/lib/components/icon/index.js.map +1 -1
  73. package/lib/components/icons/YIconCheckbox.js +7 -6
  74. package/lib/components/icons/YIconCheckbox.js.map +1 -1
  75. package/lib/components/icons/YIconClear.js +2 -1
  76. package/lib/components/icons/YIconClear.js.map +1 -1
  77. package/lib/components/icons/YIconDropdown.js +2 -1
  78. package/lib/components/icons/YIconDropdown.js.map +1 -1
  79. package/lib/components/icons/YIconExpand.js +1 -0
  80. package/lib/components/icons/YIconExpand.js.map +1 -1
  81. package/lib/components/icons/YIconPageControl.js +7 -6
  82. package/lib/components/icons/YIconPageControl.js.map +1 -1
  83. package/lib/components/icons/YIconSort.js +6 -5
  84. package/lib/components/icons/YIconSort.js.map +1 -1
  85. package/lib/components/icons/YIconSort.scss +2 -0
  86. package/lib/components/icons/index.js.map +1 -1
  87. package/lib/components/img/YImg.js +30 -31
  88. package/lib/components/img/YImg.js.map +1 -1
  89. package/lib/components/img/index.js.map +1 -1
  90. package/lib/components/index.js.map +1 -1
  91. package/lib/components/input/YInput.js +1 -2
  92. package/lib/components/input/YInput.js.map +1 -1
  93. package/lib/components/input/YInput.scss +10 -9
  94. package/lib/components/input/index.js.map +1 -1
  95. package/lib/components/ip-field/YIpv4Field.js +1 -2
  96. package/lib/components/ip-field/YIpv4Field.js.map +1 -1
  97. package/lib/components/ip-field/index.js.map +1 -1
  98. package/lib/components/layer/YLayer.js +4 -3
  99. package/lib/components/layer/YLayer.js.map +1 -1
  100. package/lib/components/layer/active-delay.js.map +1 -1
  101. package/lib/components/layer/active-stack.js.map +1 -1
  102. package/lib/components/layer/base.js.map +1 -1
  103. package/lib/components/layer/content.js.map +1 -1
  104. package/lib/components/layer/index.js.map +1 -1
  105. package/lib/components/layer/scroll-strategies.js.map +1 -1
  106. package/lib/components/list/YList.js +1 -2
  107. package/lib/components/list/YList.js.map +1 -1
  108. package/lib/components/list/YListItem.js +1 -2
  109. package/lib/components/list/YListItem.js.map +1 -1
  110. package/lib/components/list/index.js.map +1 -1
  111. package/lib/components/loading/YSpinnerRing.js.map +1 -1
  112. package/lib/components/loading/index.js.map +1 -1
  113. package/lib/components/menu/YMenu.js +5 -8
  114. package/lib/components/menu/YMenu.js.map +1 -1
  115. package/lib/components/menu/YMenu.scss +3 -4
  116. package/lib/components/menu/index.js.map +1 -1
  117. package/lib/components/navigation/YNavigation.js +1 -2
  118. package/lib/components/navigation/YNavigation.js.map +1 -1
  119. package/lib/components/navigation/index.js.map +1 -1
  120. package/lib/components/pagination/YPagination.js +1 -2
  121. package/lib/components/pagination/YPagination.js.map +1 -1
  122. package/lib/components/pagination/index.js.map +1 -1
  123. package/lib/components/panel/YDividePanel.js +1 -2
  124. package/lib/components/panel/YDividePanel.js.map +1 -1
  125. package/lib/components/panel/YDividePanel.scss +1 -0
  126. package/lib/components/panel/index.js.map +1 -1
  127. package/lib/components/plate/YPlate.js +3 -4
  128. package/lib/components/plate/YPlate.js.map +1 -1
  129. package/lib/components/plate/index.js.map +1 -1
  130. package/lib/components/progress-bar/YProgressBar.js +1 -2
  131. package/lib/components/progress-bar/YProgressBar.js.map +1 -1
  132. package/lib/components/progress-bar/index.js.map +1 -1
  133. package/lib/components/progress-ring/YProgressRing.js +3 -4
  134. package/lib/components/progress-ring/YProgressRing.js.map +1 -1
  135. package/lib/components/progress-ring/index.js.map +1 -1
  136. package/lib/components/radio/YRadio.js +58 -0
  137. package/lib/components/radio/YRadio.js.map +1 -0
  138. package/lib/components/radio/YRadio.scss +38 -0
  139. package/lib/components/radio/YRadioIcon.js +33 -0
  140. package/lib/components/radio/YRadioIcon.js.map +1 -0
  141. package/lib/components/radio/YRadioIcon.scss +43 -0
  142. package/lib/components/radio/index.js +3 -0
  143. package/lib/components/radio/index.js.map +1 -0
  144. package/lib/components/select/YSelect.js +41 -43
  145. package/lib/components/select/YSelect.js.map +1 -1
  146. package/lib/components/select/index.js.map +1 -1
  147. package/lib/components/slider/YSlider.js.map +1 -1
  148. package/lib/components/slider/index.js.map +1 -1
  149. package/lib/components/slider/slider.js.map +1 -1
  150. package/lib/components/snackbar/YSnackbar.js +6 -6
  151. package/lib/components/snackbar/YSnackbar.js.map +1 -1
  152. package/lib/components/snackbar/index.js.map +1 -1
  153. package/lib/components/switch/YSwitch.js +1 -2
  154. package/lib/components/switch/YSwitch.js.map +1 -1
  155. package/lib/components/switch/index.js.map +1 -1
  156. package/lib/components/tab/YTab.js +2 -3
  157. package/lib/components/tab/YTab.js.map +1 -1
  158. package/lib/components/tab/YTab.scss +1 -1
  159. package/lib/components/tab/YTabs.js +1 -2
  160. package/lib/components/tab/YTabs.js.map +1 -1
  161. package/lib/components/tab/index.js.map +1 -1
  162. package/lib/components/tab/shared.js.map +1 -1
  163. package/lib/components/tab/types.js.map +1 -1
  164. package/lib/components/table/YDataTable.js +26 -14
  165. package/lib/components/table/YDataTable.js.map +1 -1
  166. package/lib/components/table/YDataTableBody.js +14 -19
  167. package/lib/components/table/YDataTableBody.js.map +1 -1
  168. package/lib/components/table/YDataTableCell.js +1 -2
  169. package/lib/components/table/YDataTableCell.js.map +1 -1
  170. package/lib/components/table/YDataTableControl.js +8 -6
  171. package/lib/components/table/YDataTableControl.js.map +1 -1
  172. package/lib/components/table/YDataTableControl.scss +10 -0
  173. package/lib/components/table/YDataTableHead.js +1 -1
  174. package/lib/components/table/YDataTableHead.js.map +1 -1
  175. package/lib/components/table/YDataTableLayer.js +1 -2
  176. package/lib/components/table/YDataTableLayer.js.map +1 -1
  177. package/lib/components/table/YDataTableLayerRow.js +86 -0
  178. package/lib/components/table/YDataTableLayerRow.js.map +1 -0
  179. package/lib/components/table/YDataTableLayerRow.vue +7 -6
  180. package/lib/components/table/YDataTableLayerRows.js +59 -0
  181. package/lib/components/table/YDataTableLayerRows.js.map +1 -0
  182. package/lib/components/table/YDataTableLayerRows.scss +14 -0
  183. package/lib/components/table/YDataTableRow.js +14 -7
  184. package/lib/components/table/YDataTableRow.js.map +1 -1
  185. package/lib/components/table/YDataTableRows.scss +14 -0
  186. package/lib/components/table/YDataTableServer.js +19 -8
  187. package/lib/components/table/YDataTableServer.js.map +1 -1
  188. package/lib/components/table/YTable.js +1 -2
  189. package/lib/components/table/YTable.js.map +1 -1
  190. package/lib/components/table/composables/expand.js +49 -0
  191. package/lib/components/table/composables/expand.js.map +1 -0
  192. package/lib/components/table/composables/header.js.map +1 -1
  193. package/lib/components/table/composables/items.js +8 -2
  194. package/lib/components/table/composables/items.js.map +1 -1
  195. package/lib/components/table/composables/measure.js +1 -1
  196. package/lib/components/table/composables/measure.js.map +1 -1
  197. package/lib/components/table/composables/options.js.map +1 -1
  198. package/lib/components/table/composables/pagination.js.map +1 -1
  199. package/lib/components/table/composables/provides.js.map +1 -1
  200. package/lib/components/table/composables/selection.js.map +1 -1
  201. package/lib/components/table/composables/sorted-items.js.map +1 -1
  202. package/lib/components/table/composables/sorting.js.map +1 -1
  203. package/lib/components/table/index.js +2 -0
  204. package/lib/components/table/index.js.map +1 -1
  205. package/lib/components/table/types/common.js.map +1 -1
  206. package/lib/components/table/types/header.js.map +1 -1
  207. package/lib/components/table/types/index.js.map +1 -1
  208. package/lib/components/table/types/item.js.map +1 -1
  209. package/lib/components/table/types/row.js.map +1 -1
  210. package/lib/components/text-ellipsis/YTextEllipsis.js +1 -2
  211. package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
  212. package/lib/components/text-ellipsis/index.js.map +1 -1
  213. package/lib/components/text-highlighter/YTextHighlighter.js +2 -1
  214. package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
  215. package/lib/components/text-highlighter/index.js.map +1 -1
  216. package/lib/components/text-interpolation/YTi.js +2 -2
  217. package/lib/components/text-interpolation/YTi.js.map +1 -1
  218. package/lib/components/text-interpolation/index.js.map +1 -1
  219. package/lib/components/textarea/YTextarea.js +1 -2
  220. package/lib/components/textarea/YTextarea.js.map +1 -1
  221. package/lib/components/textarea/index.js.map +1 -1
  222. package/lib/components/toggle-button/YToggleButton.js.map +1 -1
  223. package/lib/components/toggle-button/index.js.map +1 -1
  224. package/lib/components/tooltip/YTooltip.js +1 -2
  225. package/lib/components/tooltip/YTooltip.js.map +1 -1
  226. package/lib/components/tooltip/index.js.map +1 -1
  227. package/lib/components/transitions/expand-transition.js.map +1 -1
  228. package/lib/components/transitions/index.js.map +1 -1
  229. package/lib/components/tree-view/YTreeView.js +1 -2
  230. package/lib/components/tree-view/YTreeView.js.map +1 -1
  231. package/lib/components/tree-view/YTreeViewNode.js +7 -4
  232. package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
  233. package/lib/components/tree-view/index.js.map +1 -1
  234. package/lib/components/tree-view/tree-view.js.map +1 -1
  235. package/lib/components/tree-view/types.js.map +1 -1
  236. package/lib/components/tree-view/util.js.map +1 -1
  237. package/lib/composables/choice-link.js.map +1 -1
  238. package/lib/composables/choice.js.map +1 -1
  239. package/lib/composables/communication.js.map +1 -1
  240. package/lib/composables/component.js.map +1 -1
  241. package/lib/composables/coordinate/arrangement.js.map +1 -1
  242. package/lib/composables/coordinate/index.js.map +1 -1
  243. package/lib/composables/coordinate/levitation.js +2 -2
  244. package/lib/composables/coordinate/levitation.js.map +1 -1
  245. package/lib/composables/coordinate/types.js.map +1 -1
  246. package/lib/composables/coordinate/utils/point.js.map +1 -1
  247. package/lib/composables/date/factory.js.map +1 -1
  248. package/lib/composables/date/index.js.map +1 -1
  249. package/lib/composables/date/setting.js.map +1 -1
  250. package/lib/composables/date/types.js.map +1 -1
  251. package/lib/composables/defaults/index.js.map +1 -1
  252. package/lib/composables/defaults/share.js.map +1 -1
  253. package/lib/composables/defaults/types.js.map +1 -1
  254. package/lib/composables/dimension.js.map +1 -1
  255. package/lib/composables/focus.js.map +1 -1
  256. package/lib/composables/form.js +5 -5
  257. package/lib/composables/form.js.map +1 -1
  258. package/lib/composables/i18n/index.js.map +1 -1
  259. package/lib/composables/i18n/locale.js.map +1 -1
  260. package/lib/composables/i18n/rtl.js.map +1 -1
  261. package/lib/composables/i18n/share.js.map +1 -1
  262. package/lib/composables/icon.js +1 -2
  263. package/lib/composables/icon.js.map +1 -1
  264. package/lib/composables/index.js.map +1 -1
  265. package/lib/composables/layer-group.js.map +1 -1
  266. package/lib/composables/layout.js.map +1 -1
  267. package/lib/composables/list-items.js.map +1 -1
  268. package/lib/composables/progress.js.map +1 -1
  269. package/lib/composables/ref.js.map +1 -1
  270. package/lib/composables/resize-observer.js.map +1 -1
  271. package/lib/composables/scope.js.map +1 -1
  272. package/lib/composables/style-color.js +1 -2
  273. package/lib/composables/style-color.js.map +1 -1
  274. package/lib/composables/theme/factory.js.map +1 -1
  275. package/lib/composables/theme/helper.js.map +1 -1
  276. package/lib/composables/theme/index.js +8 -1
  277. package/lib/composables/theme/index.js.map +1 -1
  278. package/lib/composables/theme/setting.js.map +1 -1
  279. package/lib/composables/theme/types.js.map +1 -1
  280. package/lib/composables/timing.js.map +1 -1
  281. package/lib/composables/transition.js.map +1 -1
  282. package/lib/composables/validation.js +7 -4
  283. package/lib/composables/validation.js.map +1 -1
  284. package/lib/composables/vue-router.js.map +1 -1
  285. package/lib/directives/complement-click/index.js.map +1 -1
  286. package/lib/directives/index.js +3 -0
  287. package/lib/directives/index.js.map +1 -0
  288. package/lib/directives/plate-wave/index.js +2 -2
  289. package/lib/directives/plate-wave/index.js.map +1 -1
  290. package/lib/directives/theme-class/index.js +24 -0
  291. package/lib/directives/theme-class/index.js.map +1 -0
  292. package/lib/etc/index.js.map +1 -1
  293. package/lib/i18n/built-in.js.map +1 -1
  294. package/lib/i18n/config.js.map +1 -1
  295. package/lib/i18n/types.js.map +1 -1
  296. package/lib/index.js +3 -3
  297. package/lib/index.js.map +1 -1
  298. package/lib/locales/en.js.map +1 -1
  299. package/lib/locales/index.js.map +1 -1
  300. package/lib/locales/ko.js.map +1 -1
  301. package/lib/mixins/di.js.map +1 -1
  302. package/lib/mixins/rebind-attrs.js +0 -2
  303. package/lib/mixins/rebind-attrs.js.map +1 -1
  304. package/lib/styles/_elevation.scss +0 -1
  305. package/lib/styles/base.scss +3 -1
  306. package/lib/styles/settings/_elevation.scss +12 -12
  307. package/lib/styles/settings/_provided.scss +23 -23
  308. package/lib/styles/theme/dark.scss +3 -3
  309. package/lib/styles/theme/index.scss +0 -1
  310. package/lib/styles/theme/light.scss +3 -3
  311. package/lib/styles/util/_mixin.scss +16 -16
  312. package/lib/types/index.js.map +1 -1
  313. package/lib/util/anchor.js.map +1 -1
  314. package/lib/util/array.js.map +1 -1
  315. package/lib/util/collection.js.map +1 -1
  316. package/lib/util/color/apca.js +1 -0
  317. package/lib/util/color/apca.js.map +1 -1
  318. package/lib/util/color/const.js.map +1 -1
  319. package/lib/util/color/contrast/contrast.js.map +1 -1
  320. package/lib/util/color/conversion.js.map +1 -1
  321. package/lib/util/color/hct/cam16.js.map +1 -1
  322. package/lib/util/color/hct/hct-solver.js +6 -6
  323. package/lib/util/color/hct/hct-solver.js.map +1 -1
  324. package/lib/util/color/hct/hct.js.map +1 -1
  325. package/lib/util/color/hct/viewing-conditions.js +6 -4
  326. package/lib/util/color/hct/viewing-conditions.js.map +1 -1
  327. package/lib/util/color/index.js +13 -13
  328. package/lib/util/color/index.js.map +1 -1
  329. package/lib/util/color/palettes/core-palette.js.map +1 -1
  330. package/lib/util/color/palettes/tonal-palette.js +3 -3
  331. package/lib/util/color/palettes/tonal-palette.js.map +1 -1
  332. package/lib/util/color/types.js.map +1 -1
  333. package/lib/util/color/utils/math-utils.js +62 -62
  334. package/lib/util/color/utils/math-utils.js.map +1 -1
  335. package/lib/util/common.js +28 -13
  336. package/lib/util/common.js.map +1 -1
  337. package/lib/util/component/component.js.map +1 -1
  338. package/lib/util/component/index.js.map +1 -1
  339. package/lib/util/component/inject-self.js.map +1 -1
  340. package/lib/util/component/props.js.map +1 -1
  341. package/lib/util/component/types.js.map +1 -1
  342. package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -3
  343. package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
  344. package/lib/util/date/built-in.js +2 -0
  345. package/lib/util/date/built-in.js.map +1 -1
  346. package/lib/util/date/index.js +1 -1
  347. package/lib/util/date/index.js.map +1 -1
  348. package/lib/util/date/types.js.map +1 -1
  349. package/lib/util/debounce.js +1 -1
  350. package/lib/util/debounce.js.map +1 -1
  351. package/lib/util/dom.js +10 -1
  352. package/lib/util/dom.js.map +1 -1
  353. package/lib/util/environments.js.map +1 -1
  354. package/lib/util/frame-scheduler.js +3 -3
  355. package/lib/util/frame-scheduler.js.map +1 -1
  356. package/lib/util/index.js +11 -11
  357. package/lib/util/index.js.map +1 -1
  358. package/lib/util/reactivity.js +3 -3
  359. package/lib/util/reactivity.js.map +1 -1
  360. package/lib/util/rect.js.map +1 -1
  361. package/lib/util/scroll.js.map +1 -1
  362. package/lib/util/string.js +6 -1
  363. package/lib/util/string.js.map +1 -1
  364. package/lib/util/ui.js.map +1 -1
  365. package/lib/util/validation.js.map +1 -1
  366. package/package.json +132 -120
  367. package/types/abstract/items.d.ts +8 -8
  368. package/types/components/alert/YAlert.d.ts +2 -2
  369. package/types/components/badge/YBadge.d.ts +4 -7
  370. package/types/components/button/YButton.d.ts +11 -11
  371. package/types/components/checkbox/YCheckbox.d.ts +4 -4
  372. package/types/components/chip/YChip.d.ts +1 -4
  373. package/types/components/date-picker/YDateCalendar.d.ts +4 -4
  374. package/types/components/date-picker/YDatePicker.d.ts +1 -1
  375. package/types/components/date-picker/YDatePickerControl.d.ts +12 -12
  376. package/types/components/dialog/YDialog.d.ts +158 -6530
  377. package/types/components/draggable/YDraggable.d.ts +6 -6
  378. package/types/components/draggable/index.d.ts +1 -0
  379. package/types/components/dropdown/YDropdown.d.ts +139 -139
  380. package/types/components/field-input/YFieldInput.d.ts +33 -27
  381. package/types/components/form/YForm.d.ts +3 -3
  382. package/types/components/hover/YHover.d.ts +3 -3
  383. package/types/components/icon/YIcon.d.ts +6 -6
  384. package/types/components/icons/YIconPageControl.d.ts +1 -1
  385. package/types/components/icons/YIconSort.d.ts +1 -1
  386. package/types/components/icons/index.d.ts +4 -4
  387. package/types/components/img/YImg.d.ts +31 -31
  388. package/types/components/input/YInput.d.ts +22 -22
  389. package/types/components/ip-field/YIpv4Field.d.ts +6 -6
  390. package/types/components/layer/YLayer.d.ts +81 -3266
  391. package/types/components/layer/content.d.ts +1 -1
  392. package/types/components/layer/scroll-strategies.d.ts +5 -5
  393. package/types/components/list/YListItem.d.ts +1 -1
  394. package/types/components/menu/YMenu.d.ts +83 -6455
  395. package/types/components/pagination/YPagination.d.ts +8 -8
  396. package/types/components/radio/YRadio.d.ts +25 -0
  397. package/types/components/radio/YRadioIcon.d.ts +6 -0
  398. package/types/components/radio/index.d.ts +2 -0
  399. package/types/components/select/YSelect.d.ts +235 -553
  400. package/types/components/slider/YSlider.d.ts +1 -1
  401. package/types/components/snackbar/YSnackbar.d.ts +88 -88
  402. package/types/components/switch/YSwitch.d.ts +10 -10
  403. package/types/components/tab/YTab.d.ts +15 -15
  404. package/types/components/tab/YTabs.d.ts +5 -5
  405. package/types/components/table/YDataTable.d.ts +70 -102
  406. package/types/components/table/YDataTableBody.d.ts +6 -8
  407. package/types/components/table/YDataTableCell.d.ts +2 -2
  408. package/types/components/table/YDataTableControl.d.ts +20 -8
  409. package/types/components/table/YDataTableHead.d.ts +2 -2
  410. package/types/components/table/YDataTableLayer.d.ts +2 -2
  411. package/types/components/table/YDataTableLayerRow.d.ts +22 -0
  412. package/types/components/table/YDataTableLayerRows.d.ts +9 -0
  413. package/types/components/table/YDataTableRow.d.ts +1 -1
  414. package/types/components/table/YDataTableServer.d.ts +94 -117
  415. package/types/components/table/YTable.d.ts +7 -7
  416. package/types/components/table/composables/expand.d.ts +42 -0
  417. package/types/components/table/composables/header.d.ts +17 -49
  418. package/types/components/table/composables/items.d.ts +5 -5
  419. package/types/components/table/composables/pagination.d.ts +12 -12
  420. package/types/components/table/composables/selection.d.ts +9 -9
  421. package/types/components/table/composables/sorting.d.ts +9 -15
  422. package/types/components/table/index.d.ts +2 -0
  423. package/types/components/table/types/item.d.ts +2 -1
  424. package/types/components/textarea/YTextarea.d.ts +48 -48
  425. package/types/components/tooltip/YTooltip.d.ts +113 -113
  426. package/types/components/tree-view/YTreeView.d.ts +11 -11
  427. package/types/components/tree-view/YTreeViewNode.d.ts +13 -13
  428. package/types/components/tree-view/tree-view.d.ts +2 -2
  429. package/types/composables/choice.d.ts +3 -3
  430. package/types/composables/coordinate/index.d.ts +35 -3213
  431. package/types/composables/dimension.d.ts +6 -6
  432. package/types/composables/form.d.ts +19 -29
  433. package/types/composables/icon.d.ts +2 -2
  434. package/types/composables/list-items.d.ts +13 -13
  435. package/types/composables/style-color.d.ts +0 -1
  436. package/types/composables/theme/index.d.ts +1 -0
  437. package/types/composables/transition.d.ts +11 -11
  438. package/types/composables/validation.d.ts +9 -9
  439. package/types/composables/vue-router.d.ts +3 -3
  440. package/types/declares.d.ts +1 -0
  441. package/types/directives/index.d.ts +2 -0
  442. package/types/directives/plate-wave/index.d.ts +7 -1
  443. package/types/globals.d.ts +19 -20
  444. package/types/shims.d.ts +64 -56
  445. package/types/types/index.d.ts +3 -0
  446. package/types/util/anchor.d.ts +1 -1
  447. package/types/util/common.d.ts +3 -0
  448. package/types/util/component/component.d.ts +1 -2
  449. package/types/util/component/props.d.ts +1 -1
  450. package/types/util/component/types.d.ts +1 -1
  451. package/types/util/date/index.d.ts +1 -1
  452. package/types/util/dom.d.ts +2 -0
  453. package/types/util/index.d.ts +11 -11
  454. package/types/util/string.d.ts +1 -0
  455. /package/types/directives/{theme-class.d.ts → theme-class/index.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\r\n type ComputedRef,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n type VNode,\r\n computed,\r\n inject,\r\n provide,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n} from 'vue';\r\n\r\nimport { type EventProp, propsFactory } from '@/util/component';\r\n\r\nimport { useModelDuplex } from './communication';\r\nimport { type ValidationProps } from './validation';\r\n\r\nexport interface FormInput {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n isError: boolean | undefined | null;\r\n errors: any[];\r\n}\r\n\r\nexport interface InputValidationResult {\r\n id: number | string;\r\n vnode: VNode;\r\n exposed: any;\r\n errors: any[];\r\n}\r\n\r\nexport interface FormValidationResult {\r\n valid: boolean;\r\n errors: InputValidationResult[];\r\n}\r\n\r\nexport interface SubmitEventPromise\r\n extends SubmitEvent,\r\n Promise<FormValidationResult> {}\r\n\r\nexport interface FormInstance {\r\n register: (input: {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n resetValidation: () => Promise<void>;\r\n }) => void;\r\n unregister: (id: number | string) => void;\r\n update: (\r\n id: number | string,\r\n isError: boolean | undefined | null,\r\n errors: any[],\r\n ) => void;\r\n inputs: Ref<FormInput[]>;\r\n isDisabled: ComputedRef<boolean>;\r\n isReadonly: ComputedRef<boolean>;\r\n isLoading: ComputedRef<boolean>;\r\n isValidating: Ref<boolean>;\r\n isValid: Ref<boolean | null>;\r\n validateOn: Ref<FormProps['validateOn']>;\r\n}\r\n\r\nexport const YUYEON_FORM_KEY: InjectionKey<FormInstance> =\r\n Symbol.for('yuyeon.form');\r\n\r\nexport interface FormProps {\r\n readonly: boolean;\r\n disabled: boolean;\r\n loading: boolean;\r\n modelValue: boolean | null;\r\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined;\r\n validateOn: ValidationProps['validateOn'];\r\n}\r\n\r\nexport const pressFormPropsOptions = propsFactory(\r\n {\r\n readonly: Boolean,\r\n disabled: Boolean,\r\n loading: Boolean,\r\n modelValue: {\r\n type: Boolean as PropType<boolean | null>,\r\n default: null,\r\n },\r\n validateOn: {\r\n type: String as PropType<ValidationProps['validateOn']>,\r\n default: 'input',\r\n },\r\n },\r\n 'form',\r\n);\r\n\r\nexport function createForm(props: FormProps) {\r\n const model = useModelDuplex(props);\r\n const isValidating = shallowRef(false);\r\n const inputs = ref<FormInput[]>([]);\r\n const errors = ref<InputValidationResult[]>([]);\r\n\r\n const isReadonly = computed(() => props.readonly);\r\n const isDisabled = computed(() => props.disabled);\r\n const isLoading = computed(() => props.loading);\r\n\r\n async function validate() {\r\n const results: InputValidationResult[] = [];\r\n let valid = true;\r\n\r\n errors.value = [];\r\n isValidating.value = true;\r\n\r\n for (const item of inputs.value) {\r\n const itemErrors = await item.validate();\r\n\r\n if (itemErrors.length > 0) {\r\n valid = false;\r\n\r\n results.push({\r\n id: item.id,\r\n vnode: item.vnode,\r\n exposed: item.vnode.component?.exposed,\r\n errors: itemErrors,\r\n });\r\n }\r\n }\r\n\r\n errors.value = results;\r\n isValidating.value = false;\r\n\r\n return { valid, errors: errors.value };\r\n }\r\n\r\n function register(input: {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n }) {\r\n const { id, validate, vnode } = input;\r\n inputs.value.push({\r\n id,\r\n validate,\r\n vnode,\r\n isError: null,\r\n errors: [],\r\n });\r\n }\r\n\r\n function unregister(id: number | string) {\r\n inputs.value = inputs.value.filter((input) => input.id !== id);\r\n }\r\n\r\n function update(\r\n id: number | string,\r\n isError: boolean | undefined | null,\r\n errors: any[],\r\n ) {\r\n const found = inputs.value.find((item) => item.id === id);\r\n\r\n if (!found) return;\r\n\r\n found.isError = isError;\r\n found.errors = errors;\r\n }\r\n\r\n const provideInstance: FormInstance = {\r\n inputs,\r\n isDisabled,\r\n isReadonly,\r\n isLoading,\r\n isValid: model,\r\n isValidating,\r\n register,\r\n unregister,\r\n update,\r\n validateOn: toRef(props, 'validateOn'),\r\n };\r\n\r\n provide(YUYEON_FORM_KEY, provideInstance);\r\n\r\n return {\r\n inputs,\r\n errors,\r\n isValid: model,\r\n isDisabled,\r\n isReadonly,\r\n isLoading,\r\n isValidating,\r\n validate,\r\n };\r\n}\r\n\r\nexport function useForm() {\r\n return inject(YUYEON_FORM_KEY, null);\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"form.js","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\n\ttype ComputedRef,\n\tcomputed,\n\ttype InjectionKey,\n\tinject,\n\ttype PropType,\n\tprovide,\n\ttype Ref,\n\tref,\n\tshallowRef,\n\ttoRef,\n\ttype VNode,\n} from \"vue\";\n\nimport { type EventProp, propsFactory } from \"@/util/component\";\n\nimport { useModelDuplex } from \"./communication\";\nimport type { ValidationProps } from \"./validation\";\n\nexport interface FormInput {\n\tid: number | string;\n\tvnode: VNode;\n\tvalidate: () => Promise<any[]>;\n\tisError: boolean | undefined | null;\n\terrors: any[];\n}\n\nexport interface InputValidationResult {\n\tid: number | string;\n\tvnode: VNode;\n\texposed: any;\n\terrors: any[];\n}\n\nexport interface FormValidationResult {\n\tvalid: boolean;\n\terrors: InputValidationResult[];\n}\n\nexport interface SubmitEventPromise\n\textends SubmitEvent,\n\t\tPromise<FormValidationResult> {}\n\nexport interface FormInstance {\n\tregister: (input: {\n\t\tid: number | string;\n\t\tvnode: VNode;\n\t\tvalidate: () => Promise<any[]>;\n\t\tresetValidation: () => Promise<void>;\n\t}) => void;\n\tunregister: (id: number | string) => void;\n\tupdate: (\n\t\tid: number | string,\n\t\tisError: boolean | undefined | null,\n\t\terrors: any[],\n\t) => void;\n\tinputs: Ref<FormInput[]>;\n\tisDisabled: ComputedRef<boolean>;\n\tisReadonly: ComputedRef<boolean>;\n\tisLoading: ComputedRef<boolean>;\n\tisValidating: Ref<boolean>;\n\tisValid: Ref<boolean | null>;\n\tvalidateOn: Ref<FormProps[\"validateOn\"]>;\n}\n\nexport const YUYEON_FORM_KEY: InjectionKey<FormInstance> =\n\tSymbol.for(\"yuyeon.form\");\n\nexport interface FormProps {\n\treadonly: boolean;\n\tdisabled: boolean;\n\tloading: boolean;\n\tmodelValue: boolean | null;\n\t\"onUpdate:modelValue\": EventProp<[boolean | null]> | undefined;\n\tvalidateOn: ValidationProps[\"validateOn\"];\n}\n\nexport const pressFormPropsOptions = propsFactory(\n\t{\n\t\treadonly: Boolean,\n\t\tdisabled: Boolean,\n\t\tloading: Boolean,\n\t\tmodelValue: {\n\t\t\ttype: Boolean as PropType<boolean | null>,\n\t\t\tdefault: null,\n\t\t},\n\t\tvalidateOn: {\n\t\t\ttype: String as PropType<ValidationProps[\"validateOn\"]>,\n\t\t\tdefault: \"input\",\n\t\t},\n\t},\n\t\"form\",\n);\n\nexport function createForm(props: FormProps) {\n\tconst model = useModelDuplex(props);\n\tconst isValidating = shallowRef(false);\n\tconst inputs = ref<FormInput[]>([]);\n\tconst errors = ref<InputValidationResult[]>([]);\n\n\tconst isReadonly = computed(() => props.readonly);\n\tconst isDisabled = computed(() => props.disabled);\n\tconst isLoading = computed(() => props.loading);\n\n\tasync function validate() {\n\t\tconst results: InputValidationResult[] = [];\n\t\tlet valid = true;\n\n\t\terrors.value = [];\n\t\tisValidating.value = true;\n\n\t\tfor (const item of inputs.value) {\n\t\t\tconst itemErrors = await item.validate();\n\n\t\t\tif (itemErrors.length > 0) {\n\t\t\t\tvalid = false;\n\n\t\t\t\tresults.push({\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tvnode: item.vnode,\n\t\t\t\t\texposed: item.vnode.component?.exposed,\n\t\t\t\t\terrors: itemErrors,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\terrors.value = results;\n\t\tisValidating.value = false;\n\n\t\treturn { valid, errors: errors.value };\n\t}\n\n\tfunction register(input: {\n\t\tid: number | string;\n\t\tvnode: VNode;\n\t\tvalidate: () => Promise<any[]>;\n\t}) {\n\t\tconst { id, validate, vnode } = input;\n\t\tinputs.value.push({\n\t\t\tid,\n\t\t\tvalidate,\n\t\t\tvnode,\n\t\t\tisError: null,\n\t\t\terrors: [],\n\t\t});\n\t}\n\n\tfunction unregister(id: number | string) {\n\t\tinputs.value = inputs.value.filter((input) => input.id !== id);\n\t}\n\n\tfunction update(\n\t\tid: number | string,\n\t\tisError: boolean | undefined | null,\n\t\terrors: any[],\n\t) {\n\t\tconst found = inputs.value.find((item) => item.id === id);\n\n\t\tif (!found) return;\n\n\t\tfound.isError = isError;\n\t\tfound.errors = errors;\n\t}\n\n\tconst provideInstance: FormInstance = {\n\t\tinputs,\n\t\tisDisabled,\n\t\tisReadonly,\n\t\tisLoading,\n\t\tisValid: model,\n\t\tisValidating,\n\t\tregister,\n\t\tunregister,\n\t\tupdate,\n\t\tvalidateOn: toRef(props, \"validateOn\"),\n\t};\n\n\tprovide(YUYEON_FORM_KEY, provideInstance);\n\n\treturn {\n\t\tinputs,\n\t\terrors,\n\t\tisValid: model,\n\t\tisDisabled,\n\t\tisReadonly,\n\t\tisLoading,\n\t\tisValidating,\n\t\tvalidate,\n\t};\n}\n\nexport function useForm() {\n\treturn inject(YUYEON_FORM_KEY, null);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\r\n\r\nimport type { LocaleModule, LocaleOptions } from '@/i18n/types';\r\n\r\nimport { createLocaleModule } from './locale';\r\nimport {\r\n type RtlModule,\r\n type RtlOptions,\r\n type RtlProps,\r\n createRtlModule,\r\n createRtlProvideValue,\r\n} from './rtl';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\r\n const localeModule = createLocaleModule(options);\r\n const rtlModule = createRtlModule(localeModule, options);\r\n\r\n return {\r\n localeModule,\r\n rtlModule,\r\n };\r\n}\r\n\r\nexport function useI18n(): LocaleModule & RtlModule {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\r\n return i18n;\r\n}\r\n\r\nexport function provideI18n(props: LocaleOptions & RtlProps) {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\r\n\r\n const locale = i18n.getContext(props);\r\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\r\n\r\n const state = {\r\n ...locale,\r\n ...rtl,\r\n };\r\n provide(YUYEON_I18N_KEY, state);\r\n\r\n return state;\r\n}\r\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAI7BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EACtE,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EAEtE,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd"}
1
+ {"version":3,"file":"index.js","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\n\nimport type { LocaleModule, LocaleOptions } from '@/i18n/types';\n\nimport { createLocaleModule } from './locale';\nimport {\n type RtlModule,\n type RtlOptions,\n type RtlProps,\n createRtlModule,\n createRtlProvideValue,\n} from './rtl';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\n const localeModule = createLocaleModule(options);\n const rtlModule = createRtlModule(localeModule, options);\n\n return {\n localeModule,\n rtlModule,\n };\n}\n\nexport function useI18n(): LocaleModule & RtlModule {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n return i18n;\n}\n\nexport function provideI18n(props: LocaleOptions & RtlProps) {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n\n const locale = i18n.getContext(props);\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\n\n const state = {\n ...locale,\n ...rtl,\n };\n provide(YUYEON_I18N_KEY, state);\n\n return state;\n}\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAI7BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EACtE,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EAEtE,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\r\nimport { LocaleOptions } from '../../i18n/types';\r\n\r\nexport function createLocaleModule(options?: LocaleOptions) {\r\n return options?.adapter && options.adapter?.name\r\n ? options.adapter\r\n : constructYuyeonI18nAdapter(options);\r\n}\r\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC"}
1
+ {"version":3,"file":"locale.js","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\nimport { LocaleOptions } from '../../i18n/types';\n\nexport function createLocaleModule(options?: LocaleOptions) {\n return options?.adapter && options.adapter?.name\n ? options.adapter\n : constructYuyeonI18nAdapter(options);\n}\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"rtl.js","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\nimport { defaultRtl } from '../../i18n/config';\r\nimport { LocaleModule } from '../../i18n/types';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\r\n\r\nexport interface RtlOptions {\r\n rtlOptions: Record<string, boolean>;\r\n}\r\n\r\nexport interface RtlProps {\r\n rtl?: boolean;\r\n}\r\n\r\nexport interface RtlModule {\r\n rtl: Ref<boolean>;\r\n rtlOptions: Ref<Record<string, boolean>>;\r\n rtlClasses: Ref<string>;\r\n}\r\n\r\nexport function createRtlModule(\r\n localeModule: LocaleModule,\r\n options?: RtlOptions,\r\n): RtlModule {\r\n const rtlOptions = ref<Record<string, boolean>>(\r\n options?.rtlOptions ?? defaultRtl,\r\n );\r\n const rtl = computed(() => {\r\n return rtlOptions.value[localeModule.locale.value] ?? false;\r\n });\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtlOptions,\r\n rtl,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function createRtlProvideValue(\r\n localeModule: LocaleModule,\r\n rtlOptions: RtlModule['rtlOptions'],\r\n props: RtlProps,\r\n): RtlModule {\r\n const rtl = computed(\r\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\r\n );\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtl,\r\n rtlOptions,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function useRtl() {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\r\n return {\r\n rtl: i18n.rtl,\r\n rtlClasses: i18n.rtlClasses,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH"}
1
+ {"version":3,"file":"rtl.js","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\nimport type { Ref } from 'vue';\n\nimport { defaultRtl } from '../../i18n/config';\nimport { LocaleModule } from '../../i18n/types';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\n\nexport interface RtlOptions {\n rtlOptions: Record<string, boolean>;\n}\n\nexport interface RtlProps {\n rtl?: boolean;\n}\n\nexport interface RtlModule {\n rtl: Ref<boolean>;\n rtlOptions: Ref<Record<string, boolean>>;\n rtlClasses: Ref<string>;\n}\n\nexport function createRtlModule(\n localeModule: LocaleModule,\n options?: RtlOptions,\n): RtlModule {\n const rtlOptions = ref<Record<string, boolean>>(\n options?.rtlOptions ?? defaultRtl,\n );\n const rtl = computed(() => {\n return rtlOptions.value[localeModule.locale.value] ?? false;\n });\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtlOptions,\n rtl,\n rtlClasses,\n };\n}\n\nexport function createRtlProvideValue(\n localeModule: LocaleModule,\n rtlOptions: RtlModule['rtlOptions'],\n props: RtlProps,\n): RtlModule {\n const rtl = computed(\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\n );\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtl,\n rtlOptions,\n rtlClasses,\n };\n}\n\nexport function useRtl() {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\n return {\n rtl: i18n.rtl,\n rtlClasses: i18n.rtlClasses,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAM,WAAWY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAM,WAAWY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\r\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC"}
1
+ {"version":3,"file":"share.js","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC","ignoreList":[]}
@@ -1,5 +1,4 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
- import { computed, h, inject, mergeProps, unref } from 'vue';
1
+ import { computed, h, inject, mergeProps, unref, Fragment as _Fragment, createVNode as _createVNode } from 'vue';
3
2
  import { builtSet } from "../components/icons/index.js";
4
3
  import { mergeDeep } from "../util/common.js";
5
4
  import { defineComponent } from "../util/component/component.js";
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","names":["computed","h","inject","mergeProps","unref","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\r\n type HTMLAttributes,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n type SVGAttributes,\r\n computed,\r\n h,\r\n inject,\r\n mergeProps,\r\n unref,\r\n} from 'vue';\r\n\r\nimport { builtSet } from '@/components/icons';\r\nimport type { JSXComponent } from '@/types';\r\nimport { mergeDeep } from '@/util/common';\r\nimport { defineComponent } from '@/util/component/component';\r\nimport { propsFactory } from '@/util/component/props';\r\n\r\ntype IconComponent =\r\n | JSXComponent<IconProps>\r\n | JSXComponent<SVGAttributes | HTMLAttributes>;\r\n\r\nexport type IconValue =\r\n | string\r\n | (string | [path: string, opacity: number])[]\r\n | IconComponent\r\n | { component: JSXComponent; props?: any }\r\n | { alias: string; iconProps?: any };\r\n\r\nexport const IconPropOption = [\r\n String,\r\n Function,\r\n Object,\r\n Array,\r\n] as PropType<IconValue>;\r\n\r\ntype IconProps = {\r\n tag: string;\r\n icon?: IconValue;\r\n disabled?: Boolean;\r\n};\r\n\r\nexport interface IconSet {\r\n component: IconComponent;\r\n}\r\n\r\nexport const IconValue = [\r\n String,\r\n Object,\r\n Array,\r\n Function,\r\n] as PropType<IconValue>;\r\n\r\nexport type IconModuleOptions = {\r\n defaultSet?: string;\r\n sets?: Record<string, IconSet>;\r\n aliases?: Partial<Record<string, any>>;\r\n};\r\n\r\nexport const pressIconPropsOptions = propsFactory(\r\n {\r\n icon: {\r\n type: IconValue,\r\n },\r\n tag: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n 'icon',\r\n);\r\n\r\nexport const YComponentIcon = defineComponent({\r\n name: 'YComponentIcon',\r\n props: pressIconPropsOptions(),\r\n setup(props, { slots }) {\r\n return () => {\r\n const icon = props.icon as unknown;\r\n let Icon: JSXComponent = () => <></>;\r\n let iconProps: any = {};\r\n if (icon instanceof Object) {\r\n Icon = icon as JSXComponent;\r\n if ('component' in icon) {\r\n Icon = icon.component as JSXComponent;\r\n iconProps = (icon as any)?.props;\r\n }\r\n }\r\n return (\r\n <props.tag>\r\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\r\n\r\nexport const YSvgIcon = defineComponent({\r\n name: 'YSvgIcon',\r\n inheritAttrs: false,\r\n props: pressIconPropsOptions(),\r\n setup(props, { attrs }) {\r\n return () => {\r\n return (\r\n <props.tag {...attrs}>\r\n <svg\r\n class=\"y-icon__svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n role=\"img\"\r\n aria-hidden=\"true\"\r\n >\r\n {Array.isArray(props.icon) ? (\r\n props.icon.map((path) =>\r\n Array.isArray(path) ? (\r\n <path d={path[0] as string} fill-opacity={path[1]}></path>\r\n ) : (\r\n <path d={path as string}></path>\r\n ),\r\n )\r\n ) : (\r\n <path d={props.icon as string}></path>\r\n )}\r\n </svg>\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\r\n\r\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\r\n Symbol.for('yuyeon.icon');\r\n\r\nexport function createIconModule(options?: IconModuleOptions) {\r\n return mergeDeep(\r\n {\r\n defaultSet: 'built',\r\n sets: {\r\n svg: {\r\n component: YSvgIcon,\r\n },\r\n },\r\n aliases: {\r\n ...builtSet,\r\n },\r\n },\r\n options,\r\n ) as Required<IconModuleOptions>;\r\n}\r\n\r\ntype IconInstance = {\r\n component: IconComponent;\r\n icon?: IconValue;\r\n};\r\n\r\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\r\n const iconModule = inject(YUYEON_ICON_KEY);\r\n\r\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\r\n\r\n const iconData = computed<IconInstance>(() => {\r\n const iconMeta = unref(iconProp);\r\n\r\n if (!iconMeta) return { component: YComponentIcon };\r\n\r\n let icon: IconValue | undefined = iconMeta;\r\n\r\n if (\r\n typeof icon === 'object' &&\r\n 'alias' in icon &&\r\n typeof icon.alias === 'string'\r\n ) {\r\n icon = icon.alias;\r\n }\r\n\r\n if (typeof icon === 'string') {\r\n icon = icon.trim();\r\n\r\n if (icon.startsWith('$')) {\r\n icon = iconModule.aliases?.[icon.slice(1)];\r\n }\r\n }\r\n\r\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\r\n\r\n if (Array.isArray(icon)) {\r\n return {\r\n component: YSvgIcon,\r\n icon,\r\n };\r\n } else if (typeof icon !== 'string') {\r\n const iconValue = unref(iconProp);\r\n if (\r\n iconValue &&\r\n typeof iconValue === 'object' &&\r\n 'iconProps' in iconValue\r\n ) {\r\n icon = {\r\n component:\r\n 'component' in icon ? icon.component : (icon as JSXComponent),\r\n props:\r\n 'props' in icon\r\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\r\n : iconValue.iconProps,\r\n };\r\n }\r\n\r\n return {\r\n component: YComponentIcon,\r\n icon,\r\n };\r\n }\r\n\r\n const iconSetName = Object.keys(iconModule.sets).find(\r\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\r\n );\r\n\r\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\r\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\r\n\r\n if (!iconSet?.component && typeof icon === 'string') {\r\n const text = new DOMParser().parseFromString(icon, 'text/xml');\r\n const svgNode = text.querySelector('svg');\r\n if (svgNode) {\r\n return {\r\n component: YComponentIcon,\r\n icon: {\r\n mounted() {\r\n svgNode.childNodes.forEach((child) => {\r\n this.$el?.appendChild(child);\r\n });\r\n },\r\n render: function () {\r\n const attrs: any = {};\r\n if (svgNode.hasAttributes()) {\r\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\r\n const attr = svgNode.attributes.item(i);\r\n if (attr) {\r\n attrs[`^${attr.name}`] = attr.value;\r\n }\r\n }\r\n }\r\n\r\n const node = h('svg', { ...attrs }, []);\r\n return node;\r\n },\r\n } as any,\r\n };\r\n }\r\n }\r\n\r\n return {\r\n icon: iconName,\r\n component: iconSet.component,\r\n };\r\n });\r\n\r\n return {\r\n iconData,\r\n };\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"icon.js","names":["computed","h","inject","mergeProps","unref","Fragment","_Fragment","createVNode","_createVNode","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type InjectionKey,\n type PropType,\n type Ref,\n type SVGAttributes,\n computed,\n h,\n inject,\n mergeProps,\n unref,\n} from 'vue';\n\nimport { builtSet } from '@/components/icons';\nimport type { JSXComponent } from '@/types';\nimport { mergeDeep } from '@/util/common';\nimport { defineComponent } from '@/util/component/component';\nimport { propsFactory } from '@/util/component/props';\n\ntype IconComponent =\n | JSXComponent<IconProps>\n | JSXComponent<SVGAttributes | HTMLAttributes>;\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | IconComponent\n | { component: JSXComponent; props?: any }\n | { alias: string; iconProps?: any };\n\nexport const IconPropOption = [\n String,\n Function,\n Object,\n Array,\n] as PropType<IconValue>;\n\ntype IconProps = {\n tag: string;\n icon?: IconValue;\n disabled?: Boolean;\n};\n\nexport interface IconSet {\n component: IconComponent;\n}\n\nexport const IconValue = [\n String,\n Object,\n Array,\n Function,\n] as PropType<IconValue>;\n\nexport type IconModuleOptions = {\n defaultSet?: string;\n sets?: Record<string, IconSet>;\n aliases?: Partial<Record<string, any>>;\n};\n\nexport const pressIconPropsOptions = propsFactory(\n {\n icon: {\n type: IconValue,\n },\n tag: {\n type: String,\n required: true,\n },\n },\n 'icon',\n);\n\nexport const YComponentIcon = defineComponent({\n name: 'YComponentIcon',\n props: pressIconPropsOptions(),\n setup(props, { slots }) {\n return () => {\n const icon = props.icon as unknown;\n let Icon: JSXComponent = () => <></>;\n let iconProps: any = {};\n if (icon instanceof Object) {\n Icon = icon as JSXComponent;\n if ('component' in icon) {\n Icon = icon.component as JSXComponent;\n iconProps = (icon as any)?.props;\n }\n }\n return (\n <props.tag>\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\n </props.tag>\n );\n };\n },\n});\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\n\nexport const YSvgIcon = defineComponent({\n name: 'YSvgIcon',\n inheritAttrs: false,\n props: pressIconPropsOptions(),\n setup(props, { attrs }) {\n return () => {\n return (\n <props.tag {...attrs}>\n <svg\n class=\"y-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n {Array.isArray(props.icon) ? (\n props.icon.map((path) =>\n Array.isArray(path) ? (\n <path d={path[0] as string} fill-opacity={path[1]}></path>\n ) : (\n <path d={path as string}></path>\n ),\n )\n ) : (\n <path d={props.icon as string}></path>\n )}\n </svg>\n </props.tag>\n );\n };\n },\n});\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\n\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\n Symbol.for('yuyeon.icon');\n\nexport function createIconModule(options?: IconModuleOptions) {\n return mergeDeep(\n {\n defaultSet: 'built',\n sets: {\n svg: {\n component: YSvgIcon,\n },\n },\n aliases: {\n ...builtSet,\n },\n },\n options,\n ) as Required<IconModuleOptions>;\n}\n\ntype IconInstance = {\n component: IconComponent;\n icon?: IconValue;\n};\n\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\n const iconModule = inject(YUYEON_ICON_KEY);\n\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\n\n const iconData = computed<IconInstance>(() => {\n const iconMeta = unref(iconProp);\n\n if (!iconMeta) return { component: YComponentIcon };\n\n let icon: IconValue | undefined = iconMeta;\n\n if (\n typeof icon === 'object' &&\n 'alias' in icon &&\n typeof icon.alias === 'string'\n ) {\n icon = icon.alias;\n }\n\n if (typeof icon === 'string') {\n icon = icon.trim();\n\n if (icon.startsWith('$')) {\n icon = iconModule.aliases?.[icon.slice(1)];\n }\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\n\n if (Array.isArray(icon)) {\n return {\n component: YSvgIcon,\n icon,\n };\n } else if (typeof icon !== 'string') {\n const iconValue = unref(iconProp);\n if (\n iconValue &&\n typeof iconValue === 'object' &&\n 'iconProps' in iconValue\n ) {\n icon = {\n component:\n 'component' in icon ? icon.component : (icon as JSXComponent),\n props:\n 'props' in icon\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\n : iconValue.iconProps,\n };\n }\n\n return {\n component: YComponentIcon,\n icon,\n };\n }\n\n const iconSetName = Object.keys(iconModule.sets).find(\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\n );\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\n\n if (!iconSet?.component && typeof icon === 'string') {\n const text = new DOMParser().parseFromString(icon, 'text/xml');\n const svgNode = text.querySelector('svg');\n if (svgNode) {\n return {\n component: YComponentIcon,\n icon: {\n mounted() {\n svgNode.childNodes.forEach((child) => {\n this.$el?.appendChild(child);\n });\n },\n render: function () {\n const attrs: any = {};\n if (svgNode.hasAttributes()) {\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\n const attr = svgNode.attributes.item(i);\n if (attr) {\n attrs[`^${attr.name}`] = attr.value;\n }\n }\n }\n\n const node = h('svg', { ...attrs }, []);\n return node;\n },\n } as any,\n };\n }\n }\n\n return {\n icon: iconName,\n component: iconSet.component,\n };\n });\n\n return {\n iconData,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\r\nexport * from './date';\r\nexport * from './resize-observer';\r\nexport * from './component';\r\nexport * from './focus';\r\nexport * from './scope';\r\nexport * from './timing';\r\nexport * from './transition';\r\nexport * from './vue-router';\r\nexport * from './theme';\r\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\nexport * from './date';\nexport * from './resize-observer';\nexport * from './component';\nexport * from './focus';\nexport * from './scope';\nexport * from './timing';\nexport * from './transition';\nexport * from './vue-router';\nexport * from './theme';\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"layer-group.js","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\r\n type MaybeRef,\r\n computed,\r\n getCurrentInstance,\r\n onBeforeUnmount,\r\n unref,\r\n watch,\r\n} from 'vue';\r\nimport type { ComponentInternalInstance, Ref } from 'vue';\r\n\r\nimport { useYuyeon } from '@/index';\r\n\r\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\r\n\r\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\r\n\r\nexport function useLayerGroup(props: {\r\n layerGroup?: MaybeRef<string | Element | undefined>;\r\n}) {\r\n const vm = getCurrentInstance()!;\r\n const yuyeon = useYuyeon();\r\n\r\n const layerGroup = computed<HTMLElement>(() => {\r\n let targetEl: Element = document.body;\r\n const rootEl = vm.root.proxy?.$el;\r\n if (rootEl) {\r\n targetEl = rootEl;\r\n }\r\n const refTarget = unref(props.layerGroup);\r\n if (typeof refTarget === 'string') {\r\n const el = document.querySelector(refTarget);\r\n if (el) {\r\n targetEl = el;\r\n }\r\n }\r\n if (refTarget && (refTarget as Element).nodeType === 1) {\r\n targetEl = refTarget as Element;\r\n }\r\n //\r\n let layerEl = targetEl.querySelector(\r\n `:scope > .${Y_LAYER_GROUP_CLASS_NAME}`,\r\n );\r\n if (!layerEl) {\r\n layerEl = document.createElement('div');\r\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\r\n targetEl.appendChild(layerEl);\r\n }\r\n return layerEl as HTMLElement;\r\n });\r\n\r\n watch(\r\n layerGroup,\r\n (neo, old) => {\r\n if (old && layerGroupState.has(old)) {\r\n layerGroupState.get(old)?.delete(vm);\r\n }\r\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\r\n layerGroupState.set(neo, new Set());\r\n }\r\n layerGroupState.get(neo)?.add(vm);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n function getActiveLayers() {\r\n const activeLayers: ComponentInternalInstance[] = [];\r\n const currentGroup = layerGroupState.get(layerGroup.value);\r\n currentGroup?.forEach((value) => {\r\n if (value?.ctx?.active && !value?.isUnmounted) {\r\n activeLayers.push(value);\r\n }\r\n });\r\n return activeLayers;\r\n }\r\n\r\n function unregister() {\r\n layerGroupState.get(layerGroup.value)?.delete(vm);\r\n }\r\n\r\n onBeforeUnmount(() => {\r\n unregister();\r\n });\r\n\r\n return { layerGroup, layerGroupState, getActiveLayers };\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"layer-group.js","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n unref,\n watch,\n} from 'vue';\nimport type { ComponentInternalInstance, Ref } from 'vue';\n\nimport { useYuyeon } from '@/index';\n\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\n\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\n\nexport function useLayerGroup(props: {\n layerGroup?: MaybeRef<string | Element | undefined>;\n}) {\n const vm = getCurrentInstance()!;\n const yuyeon = useYuyeon();\n\n const layerGroup = computed<HTMLElement>(() => {\n let targetEl: Element = document.body;\n const rootEl = vm.root.proxy?.$el;\n if (rootEl) {\n targetEl = rootEl;\n }\n const refTarget = unref(props.layerGroup);\n if (typeof refTarget === 'string') {\n const el = document.querySelector(refTarget);\n if (el) {\n targetEl = el;\n }\n }\n if (refTarget && (refTarget as Element).nodeType === 1) {\n targetEl = refTarget as Element;\n }\n //\n let layerEl = targetEl.querySelector(\n `:scope > .${Y_LAYER_GROUP_CLASS_NAME}`,\n );\n if (!layerEl) {\n layerEl = document.createElement('div');\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\n targetEl.appendChild(layerEl);\n }\n return layerEl as HTMLElement;\n });\n\n watch(\n layerGroup,\n (neo, old) => {\n if (old && layerGroupState.has(old)) {\n layerGroupState.get(old)?.delete(vm);\n }\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\n layerGroupState.set(neo, new Set());\n }\n layerGroupState.get(neo)?.add(vm);\n },\n { immediate: true },\n );\n\n function getActiveLayers() {\n const activeLayers: ComponentInternalInstance[] = [];\n const currentGroup = layerGroupState.get(layerGroup.value);\n currentGroup?.forEach((value) => {\n if (value?.ctx?.active && !value?.isUnmounted) {\n activeLayers.push(value);\n }\n });\n return activeLayers;\n }\n\n function unregister() {\n layerGroupState.get(layerGroup.value)?.delete(vm);\n }\n\n onBeforeUnmount(() => {\n unregister();\n });\n\n return { layerGroup, layerGroupState, getActiveLayers };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\r\n\r\ndeclare function register(): void;\r\n\r\ninterface LayoutProvide {\r\n register: typeof register;\r\n unregister: (id: string) => void;\r\n}\r\n\r\nexport const YUYEON_LAYOUT_KEY: InjectionKey<LayoutProvide> =\r\n Symbol.for('yuyeon.layout');\r\n\r\nexport function initLayoutSystem() {\r\n provide(YUYEON_LAYOUT_KEY, {\r\n register: () => {\r\n return;\r\n },\r\n unregister: () => {\r\n return;\r\n },\r\n });\r\n}\r\n"],"mappings":"AAAA,SAA4BA,OAAO,QAAQ,KAAK;AAShD,OAAO,MAAMC,iBAA8C,GACzDC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE7B,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjCJ,OAAO,CAACC,iBAAiB,EAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAM;MACd;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAM;MAChB;IACF;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"layout.js","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\n\ndeclare function register(): void;\n\ninterface LayoutProvide {\n register: typeof register;\n unregister: (id: string) => void;\n}\n\nexport const YUYEON_LAYOUT_KEY: InjectionKey<LayoutProvide> =\n Symbol.for('yuyeon.layout');\n\nexport function initLayoutSystem() {\n provide(YUYEON_LAYOUT_KEY, {\n register: () => {\n return;\n },\n unregister: () => {\n return;\n },\n });\n}\n"],"mappings":"AAAA,SAA4BA,OAAO,QAAQ,KAAK;AAShD,OAAO,MAAMC,iBAA8C,GACzDC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE7B,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjCJ,OAAO,CAACC,iBAAiB,EAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAM;MACd;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAM;MAChB;IACF;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"list-items.js","names":["computed","pressItemsPropsOptions","deepEqual","getPropertyFromItem","propsFactory","listItemsPropsOptions","itemKey","itemChildren","returnItem","Boolean","pressListItemsPropsOptions","refineListItems","props","items","ret","item","push","refineListItem","hide","disabled","text","itemText","value","children","Array","isArray","undefined","raw","useItems","toRefineItems","values","filter","v","some","map","found","find","toEmitItems","_ref","_ref2"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["import { type ExtractPropTypes, computed } from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '@/abstract/items';\r\nimport { deepEqual, getPropertyFromItem } from '@/util/common';\r\nimport { propsFactory } from '@/util/component';\r\n\r\nexport interface ListItem<T = any> {\r\n value: any;\r\n text: string;\r\n hide: boolean;\r\n disabled: boolean;\r\n props: {\r\n [key: string]: any;\r\n value: any;\r\n text: string;\r\n };\r\n children?: ListItem<T>[];\r\n raw: T;\r\n}\r\n\r\nconst listItemsPropsOptions = {\r\n ...pressItemsPropsOptions({\r\n itemKey: 'value',\r\n itemChildren: false,\r\n }),\r\n returnItem: Boolean,\r\n};\r\n\r\ntype ListItemProps = ExtractPropTypes<typeof listItemsPropsOptions>;\r\n\r\nexport const pressListItemsPropsOptions = propsFactory(\r\n listItemsPropsOptions,\r\n 'list-items',\r\n);\r\n\r\nexport function refineListItems(\r\n props: Omit<ListItemProps, 'items'>,\r\n items: any[],\r\n) {\r\n const ret: ListItem[] = [];\r\n for (const item of items) {\r\n ret.push(refineListItem(props, item));\r\n }\r\n return ret;\r\n}\r\n\r\nexport function refineListItem(\r\n props: Omit<ListItemProps, 'items'>,\r\n item: any,\r\n): ListItem {\r\n const hide = !!item?.hide;\r\n const disabled = !!item?.disabled;\r\n const text = getPropertyFromItem(item, props.itemText, item);\r\n const value = props.returnItem\r\n ? item\r\n : getPropertyFromItem(item, props.itemKey, text);\r\n const children = getPropertyFromItem(item, props.itemChildren);\r\n\r\n return {\r\n value,\r\n text,\r\n hide,\r\n disabled,\r\n props: {\r\n value,\r\n text,\r\n },\r\n children: Array.isArray(children)\r\n ? refineListItems(props, children)\r\n : undefined,\r\n raw: item,\r\n };\r\n}\r\n\r\nexport function useItems(props: ListItemProps) {\r\n const items = computed(() => refineListItems(props, props.items));\r\n\r\n function toRefineItems(values: any[]) {\r\n return values\r\n .filter(\r\n (v) => v !== null || items.value.some((item) => item.value === null),\r\n )\r\n .map((v) => {\r\n const found = items.value.find((item) => deepEqual(v, item.value));\r\n return found ?? refineListItem(props, v);\r\n });\r\n }\r\n\r\n function toEmitItems(items: any[]) {\r\n return props.returnItem\r\n ? items.map(({ raw }) => raw)\r\n : items.map(({ value }) => value);\r\n }\r\n\r\n return {\r\n items,\r\n toEmitItems,\r\n toRefineItems,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAAgCA,QAAQ,QAAQ,KAAK;AAAC,SAE7CC,sBAAsB;AAAA,SACtBC,SAAS,EAAEC,mBAAmB;AAAA,SAC9BC,YAAY;AAgBrB,MAAMC,qBAAqB,GAAG;EAC5B,GAAGJ,sBAAsB,CAAC;IACxBK,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE;EAChB,CAAC,CAAC;EACFC,UAAU,EAAEC;AACd,CAAC;AAID,OAAO,MAAMC,0BAA0B,GAAGN,YAAY,CACpDC,qBAAqB,EACrB,YACF,CAAC;AAED,OAAO,SAASM,eAAeA,CAC7BC,KAAmC,EACnCC,KAAY,EACZ;EACA,MAAMC,GAAe,GAAG,EAAE;EAC1B,KAAK,MAAMC,IAAI,IAAIF,KAAK,EAAE;IACxBC,GAAG,CAACE,IAAI,CAACC,cAAc,CAACL,KAAK,EAAEG,IAAI,CAAC,CAAC;EACvC;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASG,cAAcA,CAC5BL,KAAmC,EACnCG,IAAS,EACC;EACV,MAAMG,IAAI,GAAG,CAAC,CAACH,IAAI,EAAEG,IAAI;EACzB,MAAMC,QAAQ,GAAG,CAAC,CAACJ,IAAI,EAAEI,QAAQ;EACjC,MAAMC,IAAI,GAAGjB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACS,QAAQ,EAAEN,IAAI,CAAC;EAC5D,MAAMO,KAAK,GAAGV,KAAK,CAACJ,UAAU,GAC1BO,IAAI,GACJZ,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACN,OAAO,EAAEc,IAAI,CAAC;EAClD,MAAMG,QAAQ,GAAGpB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACL,YAAY,CAAC;EAE9D,OAAO;IACLe,KAAK;IACLF,IAAI;IACJF,IAAI;IACJC,QAAQ;IACRP,KAAK,EAAE;MACLU,KAAK;MACLF;IACF,CAAC;IACDG,QAAQ,EAAEC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAC7BZ,eAAe,CAACC,KAAK,EAAEW,QAAQ,CAAC,GAChCG,SAAS;IACbC,GAAG,EAAEZ;EACP,CAAC;AACH;AAEA,OAAO,SAASa,QAAQA,CAAChB,KAAoB,EAAE;EAC7C,MAAMC,KAAK,GAAGb,QAAQ,CAAC,MAAMW,eAAe,CAACC,KAAK,EAAEA,KAAK,CAACC,KAAK,CAAC,CAAC;EAEjE,SAASgB,aAAaA,CAACC,MAAa,EAAE;IACpC,OAAOA,MAAM,CACVC,MAAM,CACJC,CAAC,IAAKA,CAAC,KAAK,IAAI,IAAInB,KAAK,CAACS,KAAK,CAACW,IAAI,CAAElB,IAAI,IAAKA,IAAI,CAACO,KAAK,KAAK,IAAI,CACrE,CAAC,CACAY,GAAG,CAAEF,CAAC,IAAK;MACV,MAAMG,KAAK,GAAGtB,KAAK,CAACS,KAAK,CAACc,IAAI,CAAErB,IAAI,IAAKb,SAAS,CAAC8B,CAAC,EAAEjB,IAAI,CAACO,KAAK,CAAC,CAAC;MAClE,OAAOa,KAAK,IAAIlB,cAAc,CAACL,KAAK,EAAEoB,CAAC,CAAC;IAC1C,CAAC,CAAC;EACN;EAEA,SAASK,WAAWA,CAACxB,KAAY,EAAE;IACjC,OAAOD,KAAK,CAACJ,UAAU,GACnBK,KAAK,CAACqB,GAAG,CAACI,IAAA;MAAA,IAAC;QAAEX;MAAI,CAAC,GAAAW,IAAA;MAAA,OAAKX,GAAG;IAAA,EAAC,GAC3Bd,KAAK,CAACqB,GAAG,CAACK,KAAA;MAAA,IAAC;QAAEjB;MAAM,CAAC,GAAAiB,KAAA;MAAA,OAAKjB,KAAK;IAAA,EAAC;EACrC;EAEA,OAAO;IACLT,KAAK;IACLwB,WAAW;IACXR;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"list-items.js","names":["computed","pressItemsPropsOptions","deepEqual","getPropertyFromItem","propsFactory","listItemsPropsOptions","itemKey","itemChildren","returnItem","Boolean","pressListItemsPropsOptions","refineListItems","props","items","ret","item","push","refineListItem","hide","disabled","text","itemText","value","children","Array","isArray","undefined","raw","useItems","toRefineItems","values","filter","v","some","map","found","find","toEmitItems","_ref","_ref2"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["import { type ExtractPropTypes, computed } from 'vue';\n\nimport { pressItemsPropsOptions } from '@/abstract/items';\nimport { deepEqual, getPropertyFromItem } from '@/util/common';\nimport { propsFactory } from '@/util/component';\n\nexport interface ListItem<T = any> {\n value: any;\n text: string;\n hide: boolean;\n disabled: boolean;\n props: {\n [key: string]: any;\n value: any;\n text: string;\n };\n children?: ListItem<T>[];\n raw: T;\n}\n\nconst listItemsPropsOptions = {\n ...pressItemsPropsOptions({\n itemKey: 'value',\n itemChildren: false,\n }),\n returnItem: Boolean,\n};\n\ntype ListItemProps = ExtractPropTypes<typeof listItemsPropsOptions>;\n\nexport const pressListItemsPropsOptions = propsFactory(\n listItemsPropsOptions,\n 'list-items',\n);\n\nexport function refineListItems(\n props: Omit<ListItemProps, 'items'>,\n items: any[],\n) {\n const ret: ListItem[] = [];\n for (const item of items) {\n ret.push(refineListItem(props, item));\n }\n return ret;\n}\n\nexport function refineListItem(\n props: Omit<ListItemProps, 'items'>,\n item: any,\n): ListItem {\n const hide = !!item?.hide;\n const disabled = !!item?.disabled;\n const text = getPropertyFromItem(item, props.itemText, item);\n const value = props.returnItem\n ? item\n : getPropertyFromItem(item, props.itemKey, text);\n const children = getPropertyFromItem(item, props.itemChildren);\n\n return {\n value,\n text,\n hide,\n disabled,\n props: {\n value,\n text,\n },\n children: Array.isArray(children)\n ? refineListItems(props, children)\n : undefined,\n raw: item,\n };\n}\n\nexport function useItems(props: ListItemProps) {\n const items = computed(() => refineListItems(props, props.items));\n\n function toRefineItems(values: any[]) {\n return values\n .filter(\n (v) => v !== null || items.value.some((item) => item.value === null),\n )\n .map((v) => {\n const found = items.value.find((item) => deepEqual(v, item.value));\n return found ?? refineListItem(props, v);\n });\n }\n\n function toEmitItems(items: any[]) {\n return props.returnItem\n ? items.map(({ raw }) => raw)\n : items.map(({ value }) => value);\n }\n\n return {\n items,\n toEmitItems,\n toRefineItems,\n };\n}\n"],"mappings":"AAAA,SAAgCA,QAAQ,QAAQ,KAAK;AAAC,SAE7CC,sBAAsB;AAAA,SACtBC,SAAS,EAAEC,mBAAmB;AAAA,SAC9BC,YAAY;AAgBrB,MAAMC,qBAAqB,GAAG;EAC5B,GAAGJ,sBAAsB,CAAC;IACxBK,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE;EAChB,CAAC,CAAC;EACFC,UAAU,EAAEC;AACd,CAAC;AAID,OAAO,MAAMC,0BAA0B,GAAGN,YAAY,CACpDC,qBAAqB,EACrB,YACF,CAAC;AAED,OAAO,SAASM,eAAeA,CAC7BC,KAAmC,EACnCC,KAAY,EACZ;EACA,MAAMC,GAAe,GAAG,EAAE;EAC1B,KAAK,MAAMC,IAAI,IAAIF,KAAK,EAAE;IACxBC,GAAG,CAACE,IAAI,CAACC,cAAc,CAACL,KAAK,EAAEG,IAAI,CAAC,CAAC;EACvC;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASG,cAAcA,CAC5BL,KAAmC,EACnCG,IAAS,EACC;EACV,MAAMG,IAAI,GAAG,CAAC,CAACH,IAAI,EAAEG,IAAI;EACzB,MAAMC,QAAQ,GAAG,CAAC,CAACJ,IAAI,EAAEI,QAAQ;EACjC,MAAMC,IAAI,GAAGjB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACS,QAAQ,EAAEN,IAAI,CAAC;EAC5D,MAAMO,KAAK,GAAGV,KAAK,CAACJ,UAAU,GAC1BO,IAAI,GACJZ,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACN,OAAO,EAAEc,IAAI,CAAC;EAClD,MAAMG,QAAQ,GAAGpB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACL,YAAY,CAAC;EAE9D,OAAO;IACLe,KAAK;IACLF,IAAI;IACJF,IAAI;IACJC,QAAQ;IACRP,KAAK,EAAE;MACLU,KAAK;MACLF;IACF,CAAC;IACDG,QAAQ,EAAEC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAC7BZ,eAAe,CAACC,KAAK,EAAEW,QAAQ,CAAC,GAChCG,SAAS;IACbC,GAAG,EAAEZ;EACP,CAAC;AACH;AAEA,OAAO,SAASa,QAAQA,CAAChB,KAAoB,EAAE;EAC7C,MAAMC,KAAK,GAAGb,QAAQ,CAAC,MAAMW,eAAe,CAACC,KAAK,EAAEA,KAAK,CAACC,KAAK,CAAC,CAAC;EAEjE,SAASgB,aAAaA,CAACC,MAAa,EAAE;IACpC,OAAOA,MAAM,CACVC,MAAM,CACJC,CAAC,IAAKA,CAAC,KAAK,IAAI,IAAInB,KAAK,CAACS,KAAK,CAACW,IAAI,CAAElB,IAAI,IAAKA,IAAI,CAACO,KAAK,KAAK,IAAI,CACrE,CAAC,CACAY,GAAG,CAAEF,CAAC,IAAK;MACV,MAAMG,KAAK,GAAGtB,KAAK,CAACS,KAAK,CAACc,IAAI,CAAErB,IAAI,IAAKb,SAAS,CAAC8B,CAAC,EAAEjB,IAAI,CAACO,KAAK,CAAC,CAAC;MAClE,OAAOa,KAAK,IAAIlB,cAAc,CAACL,KAAK,EAAEoB,CAAC,CAAC;IAC1C,CAAC,CAAC;EACN;EAEA,SAASK,WAAWA,CAACxB,KAAY,EAAE;IACjC,OAAOD,KAAK,CAACJ,UAAU,GACnBK,KAAK,CAACqB,GAAG,CAACI,IAAA;MAAA,IAAC;QAAEX;MAAI,CAAC,GAAAW,IAAA;MAAA,OAAKX,GAAG;IAAA,EAAC,GAC3Bd,KAAK,CAACqB,GAAG,CAACK,KAAA;MAAA,IAAC;QAAEjB;MAAM,CAAC,GAAAiB,KAAA;MAAA,OAAKjB,KAAK;IAAA,EAAC;EACrC;EAEA,OAAO;IACLT,KAAK;IACLwB,WAAW;IACXR;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","names":["computed","shallowRef","watch","useProgress","props","delta","numValue","modelValue","value","Number","isNaN","neo","old"],"sources":["../../src/composables/progress.ts"],"sourcesContent":["import { computed, shallowRef, watch } from 'vue';\r\n\r\nexport function useProgress(props: any) {\r\n const delta = shallowRef(0);\r\n\r\n const numValue = computed(() => {\r\n const { modelValue, value } = props;\r\n const numValue = Number(modelValue ?? value);\r\n if (Number.isNaN(numValue) || numValue < 0) {\r\n return 0;\r\n }\r\n if (numValue > 100) {\r\n return 100;\r\n }\r\n return numValue;\r\n });\r\n\r\n watch(numValue, (neo, old) => {\r\n delta.value = neo - old;\r\n });\r\n\r\n return {\r\n numValue,\r\n delta,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAEjD,OAAO,SAASC,WAAWA,CAACC,KAAU,EAAE;EACtC,MAAMC,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAE3B,MAAMK,QAAQ,GAAGN,QAAQ,CAAC,MAAM;IAC9B,MAAM;MAAEO,UAAU;MAAEC;IAAM,CAAC,GAAGJ,KAAK;IACnC,MAAME,QAAQ,GAAGG,MAAM,CAACF,UAAU,IAAIC,KAAK,CAAC;IAC5C,IAAIC,MAAM,CAACC,KAAK,CAACJ,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC1C,OAAO,CAAC;IACV;IACA,IAAIA,QAAQ,GAAG,GAAG,EAAE;MAClB,OAAO,GAAG;IACZ;IACA,OAAOA,QAAQ;EACjB,CAAC,CAAC;EAEFJ,KAAK,CAACI,QAAQ,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;IAC5BP,KAAK,CAACG,KAAK,GAAGG,GAAG,GAAGC,GAAG;EACzB,CAAC,CAAC;EAEF,OAAO;IACLN,QAAQ;IACRD;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"progress.js","names":["computed","shallowRef","watch","useProgress","props","delta","numValue","modelValue","value","Number","isNaN","neo","old"],"sources":["../../src/composables/progress.ts"],"sourcesContent":["import { computed, shallowRef, watch } from 'vue';\n\nexport function useProgress(props: any) {\n const delta = shallowRef(0);\n\n const numValue = computed(() => {\n const { modelValue, value } = props;\n const numValue = Number(modelValue ?? value);\n if (Number.isNaN(numValue) || numValue < 0) {\n return 0;\n }\n if (numValue > 100) {\n return 100;\n }\n return numValue;\n });\n\n watch(numValue, (neo, old) => {\n delta.value = neo - old;\n });\n\n return {\n numValue,\n delta,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAEjD,OAAO,SAASC,WAAWA,CAACC,KAAU,EAAE;EACtC,MAAMC,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAE3B,MAAMK,QAAQ,GAAGN,QAAQ,CAAC,MAAM;IAC9B,MAAM;MAAEO,UAAU;MAAEC;IAAM,CAAC,GAAGJ,KAAK;IACnC,MAAME,QAAQ,GAAGG,MAAM,CAACF,UAAU,IAAIC,KAAK,CAAC;IAC5C,IAAIC,MAAM,CAACC,KAAK,CAACJ,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC1C,OAAO,CAAC;IACV;IACA,IAAIA,QAAQ,GAAG,GAAG,EAAE;MAClB,OAAO,GAAG;IACZ;IACA,OAAOA,QAAQ;EACjB,CAAC,CAAC;EAEFJ,KAAK,CAACI,QAAQ,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;IAC5BP,KAAK,CAACG,KAAK,GAAGG,GAAG,GAAGC,GAAG;EACzB,CAAC,CAAC;EAEF,OAAO;IACLN,QAAQ;IACRD;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","names":["onBeforeUpdate","ref","useRefs","refs","value","updateRef","e","i"],"sources":["../../src/composables/ref.ts"],"sourcesContent":["import { type Ref, onBeforeUpdate, ref } from 'vue';\r\n\r\nexport function useRefs<T extends {}>() {\r\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>;\r\n\r\n onBeforeUpdate(() => (refs.value = []));\r\n\r\n function updateRef(e: any, i: number) {\r\n refs.value[i] = e;\r\n }\r\n\r\n return { refs, updateRef };\r\n}\r\n"],"mappings":"AAAA,SAAmBA,cAAc,EAAEC,GAAG,QAAQ,KAAK;AAEnD,OAAO,SAASC,OAAOA,CAAA,EAAiB;EACtC,MAAMC,IAAI,GAAGF,GAAG,CAAoB,EAAE,CAA2B;EAEjED,cAAc,CAAC,MAAOG,IAAI,CAACC,KAAK,GAAG,EAAG,CAAC;EAEvC,SAASC,SAASA,CAACC,CAAM,EAAEC,CAAS,EAAE;IACpCJ,IAAI,CAACC,KAAK,CAACG,CAAC,CAAC,GAAGD,CAAC;EACnB;EAEA,OAAO;IAAEH,IAAI;IAAEE;EAAU,CAAC;AAC5B"}
1
+ {"version":3,"file":"ref.js","names":["onBeforeUpdate","ref","useRefs","refs","value","updateRef","e","i"],"sources":["../../src/composables/ref.ts"],"sourcesContent":["import { type Ref, onBeforeUpdate, ref } from 'vue';\n\nexport function useRefs<T extends {}>() {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>;\n\n onBeforeUpdate(() => (refs.value = []));\n\n function updateRef(e: any, i: number) {\n refs.value[i] = e;\n }\n\n return { refs, updateRef };\n}\n"],"mappings":"AAAA,SAAmBA,cAAc,EAAEC,GAAG,QAAQ,KAAK;AAEnD,OAAO,SAASC,OAAOA,CAAA,EAAiB;EACtC,MAAMC,IAAI,GAAGF,GAAG,CAAoB,EAAE,CAA2B;EAEjED,cAAc,CAAC,MAAOG,IAAI,CAACC,KAAK,GAAG,EAAG,CAAC;EAEvC,SAASC,SAASA,CAACC,CAAM,EAAEC,CAAS,EAAE;IACpCJ,IAAI,CAACC,KAAK,CAACG,CAAC,CAAC,GAAGD,CAAC;EACnB;EAEA,OAAO;IAAEH,IAAI;IAAEE;EAAU,CAAC;AAC5B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"resize-observer.js","names":["onBeforeUnmount","readonly","ref","watch","getHtmlElement","Environments","useResizeObserver","callback","resizeObservedRef","contentRect","canUseResizeObserver","observer","ResizeObserver","entries","length","value","disconnect","neo","old","unobserve","undefined","observe","flush"],"sources":["../../src/composables/resize-observer.ts"],"sourcesContent":["import { onBeforeUnmount, readonly, ref, watch } from 'vue';\r\n\r\nimport { getHtmlElement } from '@/util/component';\r\nimport Environments from '@/util/environments';\r\n\r\nexport function useResizeObserver(callback?: ResizeObserverCallback) {\r\n const resizeObservedRef = ref<HTMLElement>();\r\n const contentRect = ref<DOMRectReadOnly>();\r\n if (Environments.canUseResizeObserver) {\r\n const observer = new ResizeObserver((entries, observer) => {\r\n callback?.(entries, observer);\r\n if (!entries.length) return;\r\n contentRect.value = entries[0].contentRect;\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n observer.disconnect();\r\n });\r\n\r\n watch(\r\n resizeObservedRef,\r\n (neo, old) => {\r\n if (old) {\r\n observer.unobserve(getHtmlElement(old));\r\n contentRect.value = undefined;\r\n }\r\n if (neo) {\r\n observer.observe(getHtmlElement(neo));\r\n }\r\n },\r\n { flush: 'post' },\r\n );\r\n }\r\n\r\n return {\r\n resizeObservedRef,\r\n contentRect: readonly(contentRect),\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAEnDC,cAAc;AAAA,OAChBC,YAAY;AAEnB,OAAO,SAASC,iBAAiBA,CAACC,QAAiC,EAAE;EACnE,MAAMC,iBAAiB,GAAGN,GAAG,CAAc,CAAC;EAC5C,MAAMO,WAAW,GAAGP,GAAG,CAAkB,CAAC;EAC1C,IAAIG,YAAY,CAACK,oBAAoB,EAAE;IACrC,MAAMC,QAAQ,GAAG,IAAIC,cAAc,CAAC,CAACC,OAAO,EAAEF,QAAQ,KAAK;MACzDJ,QAAQ,GAAGM,OAAO,EAAEF,QAAQ,CAAC;MAC7B,IAAI,CAACE,OAAO,CAACC,MAAM,EAAE;MACrBL,WAAW,CAACM,KAAK,GAAGF,OAAO,CAAC,CAAC,CAAC,CAACJ,WAAW;IAC5C,CAAC,CAAC;IAEFT,eAAe,CAAC,MAAM;MACpBW,QAAQ,CAACK,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFb,KAAK,CACHK,iBAAiB,EACjB,CAACS,GAAG,EAAEC,GAAG,KAAK;MACZ,IAAIA,GAAG,EAAE;QACPP,QAAQ,CAACQ,SAAS,CAACf,cAAc,CAACc,GAAG,CAAC,CAAC;QACvCT,WAAW,CAACM,KAAK,GAAGK,SAAS;MAC/B;MACA,IAAIH,GAAG,EAAE;QACPN,QAAQ,CAACU,OAAO,CAACjB,cAAc,CAACa,GAAG,CAAC,CAAC;MACvC;IACF,CAAC,EACD;MAAEK,KAAK,EAAE;IAAO,CAClB,CAAC;EACH;EAEA,OAAO;IACLd,iBAAiB;IACjBC,WAAW,EAAER,QAAQ,CAACQ,WAAW;EACnC,CAAC;AACH"}
1
+ {"version":3,"file":"resize-observer.js","names":["onBeforeUnmount","readonly","ref","watch","getHtmlElement","Environments","useResizeObserver","callback","resizeObservedRef","contentRect","canUseResizeObserver","observer","ResizeObserver","entries","length","value","disconnect","neo","old","unobserve","undefined","observe","flush"],"sources":["../../src/composables/resize-observer.ts"],"sourcesContent":["import { onBeforeUnmount, readonly, ref, watch } from 'vue';\n\nimport { getHtmlElement } from '@/util/component';\nimport Environments from '@/util/environments';\n\nexport function useResizeObserver(callback?: ResizeObserverCallback) {\n const resizeObservedRef = ref<HTMLElement>();\n const contentRect = ref<DOMRectReadOnly>();\n if (Environments.canUseResizeObserver) {\n const observer = new ResizeObserver((entries, observer) => {\n callback?.(entries, observer);\n if (!entries.length) return;\n contentRect.value = entries[0].contentRect;\n });\n\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n\n watch(\n resizeObservedRef,\n (neo, old) => {\n if (old) {\n observer.unobserve(getHtmlElement(old));\n contentRect.value = undefined;\n }\n if (neo) {\n observer.observe(getHtmlElement(neo));\n }\n },\n { flush: 'post' },\n );\n }\n\n return {\n resizeObservedRef,\n contentRect: readonly(contentRect),\n };\n}\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAEnDC,cAAc;AAAA,OAChBC,YAAY;AAEnB,OAAO,SAASC,iBAAiBA,CAACC,QAAiC,EAAE;EACnE,MAAMC,iBAAiB,GAAGN,GAAG,CAAc,CAAC;EAC5C,MAAMO,WAAW,GAAGP,GAAG,CAAkB,CAAC;EAC1C,IAAIG,YAAY,CAACK,oBAAoB,EAAE;IACrC,MAAMC,QAAQ,GAAG,IAAIC,cAAc,CAAC,CAACC,OAAO,EAAEF,QAAQ,KAAK;MACzDJ,QAAQ,GAAGM,OAAO,EAAEF,QAAQ,CAAC;MAC7B,IAAI,CAACE,OAAO,CAACC,MAAM,EAAE;MACrBL,WAAW,CAACM,KAAK,GAAGF,OAAO,CAAC,CAAC,CAAC,CAACJ,WAAW;IAC5C,CAAC,CAAC;IAEFT,eAAe,CAAC,MAAM;MACpBW,QAAQ,CAACK,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFb,KAAK,CACHK,iBAAiB,EACjB,CAACS,GAAG,EAAEC,GAAG,KAAK;MACZ,IAAIA,GAAG,EAAE;QACPP,QAAQ,CAACQ,SAAS,CAACf,cAAc,CAACc,GAAG,CAAC,CAAC;QACvCT,WAAW,CAACM,KAAK,GAAGK,SAAS;MAC/B;MACA,IAAIH,GAAG,EAAE;QACPN,QAAQ,CAACU,OAAO,CAACjB,cAAc,CAACa,GAAG,CAAC,CAAC;MACvC;IACF,CAAC,EACD;MAAEK,KAAK,EAAE;IAAO,CAClB,CAAC;EACH;EAEA,OAAO;IACLd,iBAAiB;IACjBC,WAAW,EAAER,QAAQ,CAACQ,WAAW;EACnC,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","names":["effectScope","onScopeDispose","watch","useToggleScope","source","fn","scope","start","run","length","stop","active","undefined","immediate"],"sources":["../../src/composables/scope.ts"],"sourcesContent":["// vuetify/@/composables/toggleScope.ts\r\nimport {\r\n type EffectScope,\r\n type WatchSource,\r\n effectScope,\r\n onScopeDispose,\r\n watch,\r\n} from 'vue';\r\n\r\nexport function useToggleScope(\r\n source: WatchSource<boolean>,\r\n fn: (reset: () => void) => void,\r\n) {\r\n let scope: EffectScope | undefined;\r\n function start() {\r\n scope = effectScope();\r\n scope.run(() =>\r\n fn.length\r\n ? fn(() => {\r\n scope?.stop();\r\n start();\r\n })\r\n : (fn as any)(),\r\n );\r\n }\r\n\r\n watch(\r\n source,\r\n (active) => {\r\n if (active && !scope) {\r\n start();\r\n } else if (!active) {\r\n scope?.stop();\r\n scope = undefined;\r\n }\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onScopeDispose(() => {\r\n scope?.stop();\r\n });\r\n}\r\n"],"mappings":"AAAA;AACA,SAGEA,WAAW,EACXC,cAAc,EACdC,KAAK,QACA,KAAK;AAEZ,OAAO,SAASC,cAAcA,CAC5BC,MAA4B,EAC5BC,EAA+B,EAC/B;EACA,IAAIC,KAA8B;EAClC,SAASC,KAAKA,CAAA,EAAG;IACfD,KAAK,GAAGN,WAAW,CAAC,CAAC;IACrBM,KAAK,CAACE,GAAG,CAAC,MACRH,EAAE,CAACI,MAAM,GACLJ,EAAE,CAAC,MAAM;MACPC,KAAK,EAAEI,IAAI,CAAC,CAAC;MACbH,KAAK,CAAC,CAAC;IACT,CAAC,CAAC,GACDF,EAAE,CAAS,CAClB,CAAC;EACH;EAEAH,KAAK,CACHE,MAAM,EACLO,MAAM,IAAK;IACV,IAAIA,MAAM,IAAI,CAACL,KAAK,EAAE;MACpBC,KAAK,CAAC,CAAC;IACT,CAAC,MAAM,IAAI,CAACI,MAAM,EAAE;MAClBL,KAAK,EAAEI,IAAI,CAAC,CAAC;MACbJ,KAAK,GAAGM,SAAS;IACnB;EACF,CAAC,EACD;IAAEC,SAAS,EAAE;EAAK,CACpB,CAAC;EAEDZ,cAAc,CAAC,MAAM;IACnBK,KAAK,EAAEI,IAAI,CAAC,CAAC;EACf,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"scope.js","names":["effectScope","onScopeDispose","watch","useToggleScope","source","fn","scope","start","run","length","stop","active","undefined","immediate"],"sources":["../../src/composables/scope.ts"],"sourcesContent":["// vuetify/@/composables/toggleScope.ts\nimport {\n type EffectScope,\n type WatchSource,\n effectScope,\n onScopeDispose,\n watch,\n} from 'vue';\n\nexport function useToggleScope(\n source: WatchSource<boolean>,\n fn: (reset: () => void) => void,\n) {\n let scope: EffectScope | undefined;\n function start() {\n scope = effectScope();\n scope.run(() =>\n fn.length\n ? fn(() => {\n scope?.stop();\n start();\n })\n : (fn as any)(),\n );\n }\n\n watch(\n source,\n (active) => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n },\n { immediate: true },\n );\n\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n"],"mappings":"AAAA;AACA,SAGEA,WAAW,EACXC,cAAc,EACdC,KAAK,QACA,KAAK;AAEZ,OAAO,SAASC,cAAcA,CAC5BC,MAA4B,EAC5BC,EAA+B,EAC/B;EACA,IAAIC,KAA8B;EAClC,SAASC,KAAKA,CAAA,EAAG;IACfD,KAAK,GAAGN,WAAW,CAAC,CAAC;IACrBM,KAAK,CAACE,GAAG,CAAC,MACRH,EAAE,CAACI,MAAM,GACLJ,EAAE,CAAC,MAAM;MACPC,KAAK,EAAEI,IAAI,CAAC,CAAC;MACbH,KAAK,CAAC,CAAC;IACT,CAAC,CAAC,GACDF,EAAE,CAAS,CAClB,CAAC;EACH;EAEAH,KAAK,CACHE,MAAM,EACLO,MAAM,IAAK;IACV,IAAIA,MAAM,IAAI,CAACL,KAAK,EAAE;MACpBC,KAAK,CAAC,CAAC;IACT,CAAC,MAAM,IAAI,CAACI,MAAM,EAAE;MAClBL,KAAK,EAAEI,IAAI,CAAC,CAAC;MACbJ,KAAK,GAAGM,SAAS;IACnB;EACF,CAAC,EACD;IAAEC,SAAS,EAAE;EAAK,CACpB,CAAC;EAEDZ,cAAc,CAAC,MAAM;IACnBK,KAAK,EAAEI,IAAI,CAAC,CAAC;EACf,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -4,8 +4,7 @@ export const styleColorPropsOptions = {
4
4
  color: String,
5
5
  background: String,
6
6
  backgroundOpacity: {
7
- type: Number,
8
- default: 1
7
+ type: Number
9
8
  }
10
9
  };
11
10
  export function useStyleColor(props, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"style-color.js","names":["computed","colorRgb","isColorValue","styleColorPropsOptions","color","String","background","backgroundOpacity","type","Number","default","useStyleColor","props","name","colorVars","startsWith"],"sources":["../../src/composables/style-color.ts"],"sourcesContent":["import { ExtractPropTypes, computed } from 'vue';\n\nimport { colorRgb, isColorValue } from '@/util';\n\nexport const styleColorPropsOptions = {\n color: String,\n background: String,\n backgroundOpacity: {\n type: Number,\n default: 1,\n },\n};\n\nexport function useStyleColor(\n props: ExtractPropTypes<typeof styleColorPropsOptions>,\n name: string,\n) {\n const colorVars = computed(() => {\n let { color, background } = props;\n if (!background) background = color;\n\n if (color && !isColorValue(color)) {\n color = `var(--y-theme-${color})`;\n }\n\n if (background) {\n if (isColorValue(background)) {\n background = `rgba(${colorRgb(background)}, ${props.backgroundOpacity})`;\n } else if (!background.startsWith('var(')) {\n background = `rgba(${`var(--y-theme-${background}-rgb)`}, ${props.backgroundOpacity})`;\n }\n }\n\n return {\n [`--y-${name}__color`]: color,\n [`--y-${name}__background`]: background,\n };\n });\n\n return {\n colorVars,\n };\n}\n"],"mappings":"AAAA,SAA2BA,QAAQ,QAAQ,KAAK;AAAC,SAExCC,QAAQ,EAAEC,YAAY;AAE/B,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,KAAK,EAAEC,MAAM;EACbC,UAAU,EAAED,MAAM;EAClBE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX;AACF,CAAC;AAED,OAAO,SAASC,aAAaA,CAC3BC,KAAsD,EACtDC,IAAY,EACZ;EACA,MAAMC,SAAS,GAAGd,QAAQ,CAAC,MAAM;IAC/B,IAAI;MAAEI,KAAK;MAAEE;IAAW,CAAC,GAAGM,KAAK;IACjC,IAAI,CAACN,UAAU,EAAEA,UAAU,GAAGF,KAAK;IAEnC,IAAIA,KAAK,IAAI,CAACF,YAAY,CAACE,KAAK,CAAC,EAAE;MACjCA,KAAK,GAAI,iBAAgBA,KAAM,GAAE;IACnC;IAEA,IAAIE,UAAU,EAAE;MACd,IAAIJ,YAAY,CAACI,UAAU,CAAC,EAAE;QAC5BA,UAAU,GAAI,QAAOL,QAAQ,CAACK,UAAU,CAAE,KAAIM,KAAK,CAACL,iBAAkB,GAAE;MAC1E,CAAC,MAAM,IAAI,CAACD,UAAU,CAACS,UAAU,CAAC,MAAM,CAAC,EAAE;QACzCT,UAAU,GAAI,QAAQ,iBAAgBA,UAAW,OAAO,KAAIM,KAAK,CAACL,iBAAkB,GAAE;MACxF;IACF;IAEA,OAAO;MACL,CAAE,OAAMM,IAAK,SAAQ,GAAGT,KAAK;MAC7B,CAAE,OAAMS,IAAK,cAAa,GAAGP;IAC/B,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLQ;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"style-color.js","names":["computed","colorRgb","isColorValue","styleColorPropsOptions","color","String","background","backgroundOpacity","type","Number","useStyleColor","props","name","colorVars","startsWith"],"sources":["../../src/composables/style-color.ts"],"sourcesContent":["import { ExtractPropTypes, computed } from 'vue';\n\nimport { colorRgb, isColorValue } from '@/util';\n\nexport const styleColorPropsOptions = {\n color: String,\n background: String,\n backgroundOpacity: {\n type: Number,\n },\n};\n\nexport function useStyleColor(\n props: ExtractPropTypes<typeof styleColorPropsOptions>,\n name: string,\n) {\n const colorVars = computed(() => {\n let { color, background } = props;\n if (!background) background = color;\n\n if (color && !isColorValue(color)) {\n color = `var(--y-theme-${color})`;\n }\n\n if (background) {\n if (isColorValue(background)) {\n background = `rgba(${colorRgb(background)}, ${props.backgroundOpacity})`;\n } else if (!background.startsWith('var(')) {\n background = `rgba(${`var(--y-theme-${background}-rgb)`}, ${props.backgroundOpacity})`;\n }\n }\n\n return {\n [`--y-${name}__color`]: color,\n [`--y-${name}__background`]: background,\n };\n });\n\n return {\n colorVars,\n };\n}\n"],"mappings":"AAAA,SAA2BA,QAAQ,QAAQ,KAAK;AAAC,SAExCC,QAAQ,EAAEC,YAAY;AAE/B,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,KAAK,EAAEC,MAAM;EACbC,UAAU,EAAED,MAAM;EAClBE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC;EACR;AACF,CAAC;AAED,OAAO,SAASC,aAAaA,CAC3BC,KAAsD,EACtDC,IAAY,EACZ;EACA,MAAMC,SAAS,GAAGb,QAAQ,CAAC,MAAM;IAC/B,IAAI;MAAEI,KAAK;MAAEE;IAAW,CAAC,GAAGK,KAAK;IACjC,IAAI,CAACL,UAAU,EAAEA,UAAU,GAAGF,KAAK;IAEnC,IAAIA,KAAK,IAAI,CAACF,YAAY,CAACE,KAAK,CAAC,EAAE;MACjCA,KAAK,GAAG,iBAAiBA,KAAK,GAAG;IACnC;IAEA,IAAIE,UAAU,EAAE;MACd,IAAIJ,YAAY,CAACI,UAAU,CAAC,EAAE;QAC5BA,UAAU,GAAG,QAAQL,QAAQ,CAACK,UAAU,CAAC,KAAKK,KAAK,CAACJ,iBAAiB,GAAG;MAC1E,CAAC,MAAM,IAAI,CAACD,UAAU,CAACQ,UAAU,CAAC,MAAM,CAAC,EAAE;QACzCR,UAAU,GAAG,QAAQ,iBAAiBA,UAAU,OAAO,KAAKK,KAAK,CAACJ,iBAAiB,GAAG;MACxF;IACF;IAEA,OAAO;MACL,CAAC,OAAOK,IAAI,SAAS,GAAGR,KAAK;MAC7B,CAAC,OAAOQ,IAAI,cAAc,GAAGN;IAC/B,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLO;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","names":["APCAcontrast","sRGBtoY","rgbFromHex","createThemes","options","acc","themeKey","themeOptions","Object","entries","theme","colors","variables","colorName","keys","color","test","join","onColor","colorY","blackContrast","Math","abs","whiteContrast","min","createPalette","scaleMethod","value"],"sources":["../../../src/composables/theme/factory.ts"],"sourcesContent":["import { APCAcontrast, sRGBtoY } from '@/util/color/apca';\r\nimport { rgbFromHex } from '@/util/color/conversion';\r\n\r\nimport { ThemeDefinition } from './types';\r\n\r\nexport function createThemes(options: Record<string, any>) {\r\n const acc: Record<'light' | 'dark' | string, ThemeDefinition> = {};\r\n\r\n for (const [themeKey, themeOptions] of Object.entries(options)) {\r\n const theme = (acc[themeKey] = {\r\n ...themeOptions,\r\n colors: {\r\n ...themeOptions.colors,\r\n },\r\n variables: {\r\n ...themeOptions.variables,\r\n },\r\n });\r\n\r\n for (const colorName of Object.keys(theme.colors)) {\r\n const color = theme.colors[colorName];\r\n if (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i.test(color)) {\r\n theme.colors[colorName] = color;\r\n theme.colors[`${colorName}-rgb`] = rgbFromHex(color)?.join(', ');\r\n }\r\n\r\n if (/^on-[a-z]/.test(colorName) || theme.colors[`on-${colorName}`])\r\n continue;\r\n\r\n const onColor = `on-${colorName}`;\r\n const colorY = sRGBtoY(rgbFromHex(color!) ?? [0, 0, 0]);\r\n\r\n const blackContrast = Math.abs(\r\n APCAcontrast(sRGBtoY([0, 0, 0]), colorY) as number,\r\n );\r\n const whiteContrast = Math.abs(\r\n APCAcontrast(sRGBtoY([255, 255, 255]), colorY) as number,\r\n );\r\n\r\n // Prefer white text if both have an acceptable contrast ratio\r\n theme.colors[onColor] =\r\n whiteContrast > Math.min(blackContrast, 50) ? '#ffffff' : '#000000';\r\n theme.colors[`${onColor}-rgb`] =\r\n whiteContrast > Math.min(blackContrast, 50)\r\n ? '255, 255, 255'\r\n : '0, 0, 0';\r\n }\r\n }\r\n\r\n return acc;\r\n}\r\n\r\nexport function createPalette(options: Record<string, string | any>) {\r\n const acc: Record<string, string> = {};\r\n const { scaleMethod, colors } = options;\r\n for (const [colorName, value] of Object.entries(colors)) {\r\n if (typeof value === 'string') {\r\n acc[colorName] = value;\r\n }\r\n }\r\n return acc;\r\n}\r\n"],"mappings":"SAASA,YAAY,EAAEC,OAAO;AAAA,SACrBC,UAAU;AAInB,OAAO,SAASC,YAAYA,CAACC,OAA4B,EAAE;EACzD,MAAMC,GAAuD,GAAG,CAAC,CAAC;EAElE,KAAK,MAAM,CAACC,QAAQ,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IAC9D,MAAMM,KAAK,GAAIL,GAAG,CAACC,QAAQ,CAAC,GAAG;MAC7B,GAAGC,YAAY;MACfI,MAAM,EAAE;QACN,GAAGJ,YAAY,CAACI;MAClB,CAAC;MACDC,SAAS,EAAE;QACT,GAAGL,YAAY,CAACK;MAClB;IACF,CAAE;IAEF,KAAK,MAAMC,SAAS,IAAIL,MAAM,CAACM,IAAI,CAACJ,KAAK,CAACC,MAAM,CAAC,EAAE;MACjD,MAAMI,KAAK,GAAGL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC;MACrC,IAAI,0CAA0C,CAACG,IAAI,CAACD,KAAK,CAAC,EAAE;QAC1DL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC,GAAGE,KAAK;QAC/BL,KAAK,CAACC,MAAM,CAAE,GAAEE,SAAU,MAAK,CAAC,GAAGX,UAAU,CAACa,KAAK,CAAC,EAAEE,IAAI,CAAC,IAAI,CAAC;MAClE;MAEA,IAAI,WAAW,CAACD,IAAI,CAACH,SAAS,CAAC,IAAIH,KAAK,CAACC,MAAM,CAAE,MAAKE,SAAU,EAAC,CAAC,EAChE;MAEF,MAAMK,OAAO,GAAI,MAAKL,SAAU,EAAC;MACjC,MAAMM,MAAM,GAAGlB,OAAO,CAACC,UAAU,CAACa,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MAEvD,MAAMK,aAAa,GAAGC,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEkB,MAAM,CACzC,CAAC;MACD,MAAMI,aAAa,GAAGF,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEkB,MAAM,CAC/C,CAAC;;MAED;MACAT,KAAK,CAACC,MAAM,CAACO,OAAO,CAAC,GACnBK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS;MACrEV,KAAK,CAACC,MAAM,CAAE,GAAEO,OAAQ,MAAK,CAAC,GAC5BK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GACvC,eAAe,GACf,SAAS;IACjB;EACF;EAEA,OAAOf,GAAG;AACZ;AAEA,OAAO,SAASoB,aAAaA,CAACrB,OAAqC,EAAE;EACnE,MAAMC,GAA2B,GAAG,CAAC,CAAC;EACtC,MAAM;IAAEqB,WAAW;IAAEf;EAAO,CAAC,GAAGP,OAAO;EACvC,KAAK,MAAM,CAACS,SAAS,EAAEc,KAAK,CAAC,IAAInB,MAAM,CAACC,OAAO,CAACE,MAAM,CAAC,EAAE;IACvD,IAAI,OAAOgB,KAAK,KAAK,QAAQ,EAAE;MAC7BtB,GAAG,CAACQ,SAAS,CAAC,GAAGc,KAAK;IACxB;EACF;EACA,OAAOtB,GAAG;AACZ"}
1
+ {"version":3,"file":"factory.js","names":["APCAcontrast","sRGBtoY","rgbFromHex","createThemes","options","acc","themeKey","themeOptions","Object","entries","theme","colors","variables","colorName","keys","color","test","join","onColor","colorY","blackContrast","Math","abs","whiteContrast","min","createPalette","scaleMethod","value"],"sources":["../../../src/composables/theme/factory.ts"],"sourcesContent":["import { APCAcontrast, sRGBtoY } from '@/util/color/apca';\nimport { rgbFromHex } from '@/util/color/conversion';\n\nimport { ThemeDefinition } from './types';\n\nexport function createThemes(options: Record<string, any>) {\n const acc: Record<'light' | 'dark' | string, ThemeDefinition> = {};\n\n for (const [themeKey, themeOptions] of Object.entries(options)) {\n const theme = (acc[themeKey] = {\n ...themeOptions,\n colors: {\n ...themeOptions.colors,\n },\n variables: {\n ...themeOptions.variables,\n },\n });\n\n for (const colorName of Object.keys(theme.colors)) {\n const color = theme.colors[colorName];\n if (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i.test(color)) {\n theme.colors[colorName] = color;\n theme.colors[`${colorName}-rgb`] = rgbFromHex(color)?.join(', ');\n }\n\n if (/^on-[a-z]/.test(colorName) || theme.colors[`on-${colorName}`])\n continue;\n\n const onColor = `on-${colorName}`;\n const colorY = sRGBtoY(rgbFromHex(color!) ?? [0, 0, 0]);\n\n const blackContrast = Math.abs(\n APCAcontrast(sRGBtoY([0, 0, 0]), colorY) as number,\n );\n const whiteContrast = Math.abs(\n APCAcontrast(sRGBtoY([255, 255, 255]), colorY) as number,\n );\n\n // Prefer white text if both have an acceptable contrast ratio\n theme.colors[onColor] =\n whiteContrast > Math.min(blackContrast, 50) ? '#ffffff' : '#000000';\n theme.colors[`${onColor}-rgb`] =\n whiteContrast > Math.min(blackContrast, 50)\n ? '255, 255, 255'\n : '0, 0, 0';\n }\n }\n\n return acc;\n}\n\nexport function createPalette(options: Record<string, string | any>) {\n const acc: Record<string, string> = {};\n const { scaleMethod, colors } = options;\n for (const [colorName, value] of Object.entries(colors)) {\n if (typeof value === 'string') {\n acc[colorName] = value;\n }\n }\n return acc;\n}\n"],"mappings":"SAASA,YAAY,EAAEC,OAAO;AAAA,SACrBC,UAAU;AAInB,OAAO,SAASC,YAAYA,CAACC,OAA4B,EAAE;EACzD,MAAMC,GAAuD,GAAG,CAAC,CAAC;EAElE,KAAK,MAAM,CAACC,QAAQ,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IAC9D,MAAMM,KAAK,GAAIL,GAAG,CAACC,QAAQ,CAAC,GAAG;MAC7B,GAAGC,YAAY;MACfI,MAAM,EAAE;QACN,GAAGJ,YAAY,CAACI;MAClB,CAAC;MACDC,SAAS,EAAE;QACT,GAAGL,YAAY,CAACK;MAClB;IACF,CAAE;IAEF,KAAK,MAAMC,SAAS,IAAIL,MAAM,CAACM,IAAI,CAACJ,KAAK,CAACC,MAAM,CAAC,EAAE;MACjD,MAAMI,KAAK,GAAGL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC;MACrC,IAAI,0CAA0C,CAACG,IAAI,CAACD,KAAK,CAAC,EAAE;QAC1DL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC,GAAGE,KAAK;QAC/BL,KAAK,CAACC,MAAM,CAAC,GAAGE,SAAS,MAAM,CAAC,GAAGX,UAAU,CAACa,KAAK,CAAC,EAAEE,IAAI,CAAC,IAAI,CAAC;MAClE;MAEA,IAAI,WAAW,CAACD,IAAI,CAACH,SAAS,CAAC,IAAIH,KAAK,CAACC,MAAM,CAAC,MAAME,SAAS,EAAE,CAAC,EAChE;MAEF,MAAMK,OAAO,GAAG,MAAML,SAAS,EAAE;MACjC,MAAMM,MAAM,GAAGlB,OAAO,CAACC,UAAU,CAACa,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MAEvD,MAAMK,aAAa,GAAGC,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEkB,MAAM,CACzC,CAAC;MACD,MAAMI,aAAa,GAAGF,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEkB,MAAM,CAC/C,CAAC;;MAED;MACAT,KAAK,CAACC,MAAM,CAACO,OAAO,CAAC,GACnBK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS;MACrEV,KAAK,CAACC,MAAM,CAAC,GAAGO,OAAO,MAAM,CAAC,GAC5BK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GACvC,eAAe,GACf,SAAS;IACjB;EACF;EAEA,OAAOf,GAAG;AACZ;AAEA,OAAO,SAASoB,aAAaA,CAACrB,OAAqC,EAAE;EACnE,MAAMC,GAA2B,GAAG,CAAC,CAAC;EACtC,MAAM;IAAEqB,WAAW;IAAEf;EAAO,CAAC,GAAGP,OAAO;EACvC,KAAK,MAAM,CAACS,SAAS,EAAEc,KAAK,CAAC,IAAInB,MAAM,CAACC,OAAO,CAACE,MAAM,CAAC,EAAE;IACvD,IAAI,OAAOgB,KAAK,KAAK,QAAQ,EAAE;MAC7BtB,GAAG,CAACQ,SAAS,CAAC,GAAGc,KAAK;IACxB;EACF;EACA,OAAOtB,GAAG;AACZ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","names":["cssClass","selector","content","map","c","cssVariables","variables","prefix","arguments","length","undefined","Object","entries","_ref","property","value","cssVariable"],"sources":["../../../src/composables/theme/helper.ts"],"sourcesContent":["export function cssClass(selector: string, content: string[]) {\n return [`${selector} {\\n`, ...content.map((c) => ` ${c}\\n`), `}\\n`];\n}\n\nexport function cssVariables(\n variables: Record<string, string>,\n prefix: string = '',\n) {\n return Object.entries(variables).map(([property, value]) => {\n return cssVariable(`${prefix}-${property}`, value);\n });\n}\n\nexport function cssVariable(property: string, value: string) {\n return `--y-${property}: ${value};`;\n}\n"],"mappings":"AAAA,OAAO,SAASA,QAAQA,CAACC,QAAgB,EAAEC,OAAiB,EAAE;EAC5D,OAAO,CAAE,GAAED,QAAS,MAAK,EAAE,GAAGC,OAAO,CAACC,GAAG,CAAEC,CAAC,IAAM,KAAIA,CAAE,IAAG,CAAC,EAAG,KAAI,CAAC;AACtE;AAEA,OAAO,SAASC,YAAYA,CAC1BC,SAAiC,EAEjC;EAAA,IADAC,MAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnB,OAAOG,MAAM,CAACC,OAAO,CAACN,SAAS,CAAC,CAACH,GAAG,CAACU,IAAA,IAAuB;IAAA,IAAtB,CAACC,QAAQ,EAAEC,KAAK,CAAC,GAAAF,IAAA;IACrD,OAAOG,WAAW,CAAE,GAAET,MAAO,IAAGO,QAAS,EAAC,EAAEC,KAAK,CAAC;EACpD,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,WAAWA,CAACF,QAAgB,EAAEC,KAAa,EAAE;EAC3D,OAAQ,OAAMD,QAAS,KAAIC,KAAM,GAAE;AACrC"}
1
+ {"version":3,"file":"helper.js","names":["cssClass","selector","content","map","c","cssVariables","variables","prefix","arguments","length","undefined","Object","entries","_ref","property","value","cssVariable"],"sources":["../../../src/composables/theme/helper.ts"],"sourcesContent":["export function cssClass(selector: string, content: string[]) {\n return [`${selector} {\\n`, ...content.map((c) => ` ${c}\\n`), `}\\n`];\n}\n\nexport function cssVariables(\n variables: Record<string, string>,\n prefix: string = '',\n) {\n return Object.entries(variables).map(([property, value]) => {\n return cssVariable(`${prefix}-${property}`, value);\n });\n}\n\nexport function cssVariable(property: string, value: string) {\n return `--y-${property}: ${value};`;\n}\n"],"mappings":"AAAA,OAAO,SAASA,QAAQA,CAACC,QAAgB,EAAEC,OAAiB,EAAE;EAC5D,OAAO,CAAC,GAAGD,QAAQ,MAAM,EAAE,GAAGC,OAAO,CAACC,GAAG,CAAEC,CAAC,IAAK,KAAKA,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AACtE;AAEA,OAAO,SAASC,YAAYA,CAC1BC,SAAiC,EAEjC;EAAA,IADAC,MAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnB,OAAOG,MAAM,CAACC,OAAO,CAACN,SAAS,CAAC,CAACH,GAAG,CAACU,IAAA,IAAuB;IAAA,IAAtB,CAACC,QAAQ,EAAEC,KAAK,CAAC,GAAAF,IAAA;IACrD,OAAOG,WAAW,CAAC,GAAGT,MAAM,IAAIO,QAAQ,EAAE,EAAEC,KAAK,CAAC;EACpD,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,WAAWA,CAACF,QAAgB,EAAEC,KAAa,EAAE;EAC3D,OAAO,OAAOD,QAAQ,KAAKC,KAAK,GAAG;AACrC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { computed, effectScope, getCurrentInstance, inject, provide, reactive, readonly, ref, unref, watch } from 'vue';
2
- import bindThemeClass from "../../directives/theme-class.js";
2
+ import bindThemeClass from "../../directives/theme-class/index.js";
3
3
  import { propsFactory } from "../../util/component/props.js";
4
4
  import { createPalette, createThemes } from "./factory.js";
5
5
  import { cssClass, cssVariables } from "./helper.js";
@@ -53,6 +53,12 @@ export function createThemeModule(options) {
53
53
  const computedThemes = computed(() => {
54
54
  return createThemes(themes.value);
55
55
  });
56
+ const currentThemeColors = computed(() => {
57
+ const themeKey = currentThemeKey.value;
58
+ const theme = computedThemes.value[themeKey];
59
+ if (!theme?.colors) return {};
60
+ return theme.colors;
61
+ });
56
62
  const styles = computed(() => {
57
63
  const separationId = config.separation ? `#${config.separation}` : '';
58
64
  const lines = [];
@@ -139,6 +145,7 @@ export function createThemeModule(options) {
139
145
  scheme,
140
146
  theme,
141
147
  currentThemeKey,
148
+ currentThemeColors,
142
149
  themeClasses,
143
150
  computedThemes,
144
151
  computedPalette,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["computed","effectScope","getCurrentInstance","inject","provide","reactive","readonly","ref","unref","watch","bindThemeClass","propsFactory","createPalette","createThemes","cssClass","cssVariables","configureOptions","Y_THEME_PREFIX","YUYEON_THEME_KEY","Symbol","for","pressThemePropsOptions","theme","String","isDarkMode","window","matchMedia","matches","isSupportAutoScheme","media","createThemeModule","options","appMountedScope","config","scheme","themes","palette","supportedAutoMode","preferColorScheme","darkModeWatcher","mediaQueryList","value","currentColorScheme","currentThemeKey","computedThemes","Array","isArray","computedPalette","styles","separationId","separation","lines","push","themeKey","themeDefs","Object","entries","colors","variables","isDark","records","themeScheme","join","install","app","directive","styleEl","document","getElementById","updateStyleEl","immediate","el","createElement","type","id","cspNonce","setAttribute","head","appendChild","innerHTML","bindTheme","yuyeon","mql","addEventListener","neo","lightTheme","darkTheme","root","dataset","init","run","themeClasses","scope","instance","global","useLocalTheme","props","themeModule","Error","moduleTheme","newTheme","useTheme"],"sources":["../../../src/composables/theme/index.ts"],"sourcesContent":["import type { App, ComputedRef, PropType, Ref } from 'vue';\r\nimport {\r\n computed,\r\n effectScope,\r\n getCurrentInstance,\r\n inject,\r\n provide,\r\n reactive,\r\n readonly,\r\n ref,\r\n unref,\r\n watch,\r\n} from 'vue';\r\n\r\nimport bindThemeClass from '@/directives/theme-class';\r\nimport { propsFactory } from '@/util/component/props';\r\n\r\nimport { createPalette, createThemes } from './factory';\r\nimport { cssClass, cssVariables } from './helper';\r\nimport { ThemeScheme, configureOptions } from './setting';\r\nimport type { ThemeOptions } from './types';\r\n\r\nexport type { ThemeOptions };\r\n\r\nexport const Y_THEME_PREFIX = 'y-theme';\r\n\r\nexport interface ThemeModuleInstance {\r\n scheme: Ref<keyof typeof ThemeScheme | 'auto'>;\r\n theme: Ref<[string, string?]>;\r\n // theme values(schemes) for colors & variables\r\n readonly themes: any;\r\n readonly global: {\r\n // currentThemeKeys: [lightThemeKey, darkThemeKey]\r\n // If used manually, fix the scheme to 'light' and have a [lightThemeKey] value.\r\n // Use the appropriate default theme scheme if it does not match the themeKey\r\n scheme: Ref<keyof typeof ThemeScheme | 'auto'>;\r\n theme: Ref<[string, string?]>;\r\n };\r\n /* computed */\r\n readonly currentThemeKey: Readonly<ComputedRef<string>>;\r\n readonly themeClasses: Readonly<ComputedRef<string | undefined>>;\r\n readonly computedThemes: Readonly<ComputedRef<any>>;\r\n readonly computedPalette: Readonly<ComputedRef<any>>;\r\n /* */\r\n readonly supportedAutoMode: Readonly<Ref<boolean>>;\r\n readonly preferColorScheme: Readonly<Ref<'light' | 'dark'>>;\r\n}\r\n\r\nexport const YUYEON_THEME_KEY = Symbol.for('yuyeon.theme');\r\n\r\nexport const pressThemePropsOptions = propsFactory(\r\n {\r\n theme: String as PropType<string>,\r\n },\r\n 'theme',\r\n);\r\n\r\nexport function isDarkMode() {\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n}\r\n\r\nexport function isSupportAutoScheme() {\r\n return window.matchMedia('(prefers-color-scheme)').media !== 'not all';\r\n}\r\n\r\nexport function createThemeModule(options: ThemeOptions) {\r\n const appMountedScope = effectScope();\r\n const config = reactive(configureOptions(options));\r\n const scheme = ref<string>(config.scheme);\r\n const theme = ref<[string, string]>(config.theme);\r\n const themes = ref(config.themes);\r\n const palette = ref(config.palette);\r\n const supportedAutoMode = ref(true);\r\n const preferColorScheme = ref('');\r\n\r\n function darkModeWatcher(\r\n mediaQueryList: MediaQueryListEvent | MediaQueryList,\r\n ) {\r\n preferColorScheme.value = mediaQueryList.matches ? 'dark' : 'light';\r\n }\r\n\r\n const currentColorScheme = computed<'light' | 'dark'>(() => {\r\n if (scheme.value === 'auto') {\r\n return preferColorScheme.value as 'light' | 'dark';\r\n }\r\n if (scheme.value === 'dark') {\r\n return 'dark';\r\n }\r\n return 'light';\r\n });\r\n\r\n const currentThemeKey = computed(() => {\r\n if (typeof theme.value === 'string') {\r\n if (theme.value in computedThemes) {\r\n return theme.value;\r\n }\r\n }\r\n if (Array.isArray(theme.value)) {\r\n return currentColorScheme.value === 'dark'\r\n ? theme.value?.[1] ?? 'dark'\r\n : theme.value?.[0] ?? 'light';\r\n }\r\n return currentColorScheme.value;\r\n });\r\n\r\n const computedPalette = computed(() => {\r\n return createPalette(palette.value);\r\n });\r\n\r\n const computedThemes = computed(() => {\r\n return createThemes(themes.value);\r\n });\r\n\r\n const styles = computed(() => {\r\n const separationId = config.separation ? `#${config.separation}` : '';\r\n const lines = [];\r\n lines.push(\r\n ...cssClass(':root', cssVariables(computedPalette.value, 'palette')),\r\n );\r\n for (const [themeKey, themeDefs] of Object.entries(computedThemes.value)) {\r\n const { colors, variables, isDark } = themeDefs;\r\n const records: Record<string, string> = {\r\n ...colors,\r\n ...variables,\r\n };\r\n // if (currentThemeKey.value === themeKey) {\r\n // lines.push(...cssClass(':root', cssVariables(records, 'theme')));\r\n // }\r\n const themeScheme = isDark ? 'dark' : 'light';\r\n if (scheme.value === 'auto') {\r\n lines.push(\r\n ...cssClass(\r\n `@media (prefers-color-scheme: ${themeScheme})`,\r\n cssClass(\r\n `${separationId}[data-theme-scheme='auto'][data-${themeScheme}-theme='${themeKey}']`,\r\n cssVariables(records, 'theme'),\r\n ),\r\n ),\r\n );\r\n } else {\r\n lines.push(\r\n ...cssClass(\r\n `${separationId}[data-theme-scheme='${themeScheme}'][data-${themeScheme}-theme='${themeKey}']`,\r\n cssVariables(records, 'theme'),\r\n ),\r\n );\r\n }\r\n\r\n lines.push(\r\n ...cssClass(\r\n `${separationId} .y-theme--${themeKey}`,\r\n cssVariables(records, 'theme'),\r\n ),\r\n );\r\n }\r\n return lines.join('');\r\n });\r\n\r\n function install(app: App) {\r\n app.directive('theme', bindThemeClass);\r\n\r\n let styleEl = document.getElementById(\r\n 'yuyeon-theme-palette' +\r\n `${config.separation ? '__' + config.separation : ''}`,\r\n );\r\n\r\n watch(styles, updateStyleEl, { immediate: true });\r\n\r\n function updateStyleEl() {\r\n if (typeof document !== 'undefined' && !styleEl) {\r\n const el = document.createElement('style');\r\n el.type = 'text/css';\r\n el.id =\r\n 'yuyeon-theme-palette' +\r\n `${config.separation ? '__' + config.separation : ''}`;\r\n if (options?.cspNonce) el.setAttribute('nonce', options.cspNonce);\r\n styleEl = el;\r\n document.head.appendChild(styleEl);\r\n }\r\n if (styleEl) {\r\n styleEl.innerHTML = styles.value;\r\n }\r\n }\r\n }\r\n\r\n function bindTheme(yuyeon: any) {\r\n supportedAutoMode.value = isSupportAutoScheme();\r\n if (supportedAutoMode.value) {\r\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\r\n darkModeWatcher(mql);\r\n mql.addEventListener('change' as 'change', darkModeWatcher);\r\n }\r\n watch(\r\n theme,\r\n (neo) => {\r\n const [lightTheme, darkTheme] = neo;\r\n yuyeon.root.dataset.lightTheme = lightTheme;\r\n yuyeon.root.dataset.darkTheme = darkTheme;\r\n },\r\n { immediate: true },\r\n );\r\n watch(\r\n scheme,\r\n (neo) => {\r\n yuyeon.root.setAttribute(\r\n 'data-theme-scheme',\r\n neo === 'auto' ? 'auto' : currentColorScheme.value,\r\n );\r\n },\r\n { immediate: true },\r\n );\r\n }\r\n\r\n function init(yuyeon: any) {\r\n appMountedScope.run(() => {\r\n bindTheme(yuyeon);\r\n });\r\n }\r\n\r\n const themeClasses = computed(() => `y-theme--${currentThemeKey.value}`);\r\n\r\n return {\r\n install,\r\n init,\r\n scope: appMountedScope,\r\n instance: {\r\n global: {\r\n scheme,\r\n theme,\r\n },\r\n themes,\r\n scheme,\r\n theme,\r\n currentThemeKey,\r\n themeClasses,\r\n computedThemes,\r\n computedPalette,\r\n supportedAutoMode: readonly(supportedAutoMode),\r\n preferColorScheme: readonly(preferColorScheme),\r\n },\r\n };\r\n}\r\n\r\nexport function useLocalTheme(props: { theme?: string }) {\r\n getCurrentInstance();\r\n\r\n const themeModule = inject<ThemeModuleInstance | null>(\r\n YUYEON_THEME_KEY,\r\n null,\r\n );\r\n\r\n if (!themeModule) throw new Error('Not found provided \"ThemeModule\"');\r\n\r\n const palette = themeModule.computedPalette;\r\n\r\n const currentThemeKey = computed<string>(() => {\r\n if (props.theme) {\r\n const moduleTheme = unref(themeModule.theme);\r\n switch (props.theme) {\r\n case 'light':\r\n return moduleTheme?.[0] ?? 'light';\r\n case 'dark':\r\n return moduleTheme?.[1] ?? 'dark';\r\n // TODO: props.theme(themeKey) validation in themes\r\n default:\r\n return props.theme;\r\n }\r\n }\r\n return unref(themeModule.currentThemeKey);\r\n });\r\n\r\n const themeClasses = computed(() => {\r\n return `y-theme--${currentThemeKey.value}`;\r\n });\r\n\r\n const newTheme: ThemeModuleInstance = {\r\n ...themeModule,\r\n currentThemeKey,\r\n themeClasses,\r\n };\r\n\r\n provide(YUYEON_THEME_KEY, newTheme);\r\n\r\n return newTheme;\r\n}\r\n\r\nexport function useTheme() {\r\n getCurrentInstance();\r\n\r\n const theme = inject<ThemeModuleInstance | null>(YUYEON_THEME_KEY, null);\r\n\r\n if (!theme) throw new Error('【yuyeon】 Not found provided \"ThemeModule\"');\r\n\r\n return theme;\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["computed","effectScope","getCurrentInstance","inject","provide","reactive","readonly","ref","unref","watch","bindThemeClass","propsFactory","createPalette","createThemes","cssClass","cssVariables","configureOptions","Y_THEME_PREFIX","YUYEON_THEME_KEY","Symbol","for","pressThemePropsOptions","theme","String","isDarkMode","window","matchMedia","matches","isSupportAutoScheme","media","createThemeModule","options","appMountedScope","config","scheme","themes","palette","supportedAutoMode","preferColorScheme","darkModeWatcher","mediaQueryList","value","currentColorScheme","currentThemeKey","computedThemes","Array","isArray","computedPalette","currentThemeColors","themeKey","colors","styles","separationId","separation","lines","push","themeDefs","Object","entries","variables","isDark","records","themeScheme","join","install","app","directive","styleEl","document","getElementById","updateStyleEl","immediate","el","createElement","type","id","cspNonce","setAttribute","head","appendChild","innerHTML","bindTheme","yuyeon","mql","addEventListener","neo","lightTheme","darkTheme","root","dataset","init","run","themeClasses","scope","instance","global","useLocalTheme","props","themeModule","Error","moduleTheme","newTheme","useTheme"],"sources":["../../../src/composables/theme/index.ts"],"sourcesContent":["import type { App, ComputedRef, PropType, Ref } from 'vue';\nimport {\n computed,\n effectScope,\n getCurrentInstance,\n inject,\n provide,\n reactive,\n readonly,\n ref,\n unref,\n watch,\n} from 'vue';\n\nimport bindThemeClass from '@/directives/theme-class';\nimport { propsFactory } from '@/util/component/props';\n\nimport { createPalette, createThemes } from './factory';\nimport { cssClass, cssVariables } from './helper';\nimport { ThemeScheme, configureOptions } from './setting';\nimport type { ThemeOptions } from './types';\n\nexport type { ThemeOptions };\n\nexport const Y_THEME_PREFIX = 'y-theme';\n\nexport interface ThemeModuleInstance {\n scheme: Ref<keyof typeof ThemeScheme | 'auto'>;\n theme: Ref<[string, string?]>;\n // theme values(schemes) for colors & variables\n readonly themes: any;\n readonly global: {\n // currentThemeKeys: [lightThemeKey, darkThemeKey]\n // If used manually, fix the scheme to 'light' and have a [lightThemeKey] value.\n // Use the appropriate default theme scheme if it does not match the themeKey\n scheme: Ref<keyof typeof ThemeScheme | 'auto'>;\n theme: Ref<[string, string?]>;\n };\n /* computed */\n readonly currentThemeKey: Readonly<ComputedRef<string>>;\n readonly themeClasses: Readonly<ComputedRef<string | undefined>>;\n readonly computedThemes: Readonly<ComputedRef<any>>;\n readonly computedPalette: Readonly<ComputedRef<any>>;\n /* */\n readonly supportedAutoMode: Readonly<Ref<boolean>>;\n readonly preferColorScheme: Readonly<Ref<'light' | 'dark'>>;\n}\n\nexport const YUYEON_THEME_KEY = Symbol.for('yuyeon.theme');\n\nexport const pressThemePropsOptions = propsFactory(\n {\n theme: String as PropType<string>,\n },\n 'theme',\n);\n\nexport function isDarkMode() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\nexport function isSupportAutoScheme() {\n return window.matchMedia('(prefers-color-scheme)').media !== 'not all';\n}\n\nexport function createThemeModule(options: ThemeOptions) {\n const appMountedScope = effectScope();\n const config = reactive(configureOptions(options));\n const scheme = ref<string>(config.scheme);\n const theme = ref<[string, string]>(config.theme);\n const themes = ref(config.themes);\n const palette = ref(config.palette);\n const supportedAutoMode = ref(true);\n const preferColorScheme = ref('');\n\n function darkModeWatcher(\n mediaQueryList: MediaQueryListEvent | MediaQueryList,\n ) {\n preferColorScheme.value = mediaQueryList.matches ? 'dark' : 'light';\n }\n\n const currentColorScheme = computed<'light' | 'dark'>(() => {\n if (scheme.value === 'auto') {\n return preferColorScheme.value as 'light' | 'dark';\n }\n if (scheme.value === 'dark') {\n return 'dark';\n }\n return 'light';\n });\n\n const currentThemeKey = computed(() => {\n if (typeof theme.value === 'string') {\n if (theme.value in computedThemes) {\n return theme.value;\n }\n }\n if (Array.isArray(theme.value)) {\n return currentColorScheme.value === 'dark'\n ? (theme.value?.[1] ?? 'dark')\n : (theme.value?.[0] ?? 'light');\n }\n return currentColorScheme.value;\n });\n\n const computedPalette = computed(() => {\n return createPalette(palette.value);\n });\n\n const computedThemes = computed(() => {\n return createThemes(themes.value);\n });\n\n const currentThemeColors = computed(() => {\n const themeKey = currentThemeKey.value;\n const theme = computedThemes.value[themeKey];\n if (!theme?.colors) return {};\n return theme.colors;\n });\n\n const styles = computed(() => {\n const separationId = config.separation ? `#${config.separation}` : '';\n const lines = [];\n lines.push(\n ...cssClass(':root', cssVariables(computedPalette.value, 'palette')),\n );\n for (const [themeKey, themeDefs] of Object.entries(computedThemes.value)) {\n const { colors, variables, isDark } = themeDefs;\n const records: Record<string, string> = {\n ...colors,\n ...variables,\n };\n // if (currentThemeKey.value === themeKey) {\n // lines.push(...cssClass(':root', cssVariables(records, 'theme')));\n // }\n const themeScheme = isDark ? 'dark' : 'light';\n if (scheme.value === 'auto') {\n lines.push(\n ...cssClass(\n `@media (prefers-color-scheme: ${themeScheme})`,\n cssClass(\n `${separationId}[data-theme-scheme='auto'][data-${themeScheme}-theme='${themeKey}']`,\n cssVariables(records, 'theme'),\n ),\n ),\n );\n } else {\n lines.push(\n ...cssClass(\n `${separationId}[data-theme-scheme='${themeScheme}'][data-${themeScheme}-theme='${themeKey}']`,\n cssVariables(records, 'theme'),\n ),\n );\n }\n\n lines.push(\n ...cssClass(\n `${separationId} .y-theme--${themeKey}`,\n cssVariables(records, 'theme'),\n ),\n );\n }\n return lines.join('');\n });\n\n function install(app: App) {\n app.directive('theme', bindThemeClass);\n\n let styleEl = document.getElementById(\n 'yuyeon-theme-palette' +\n `${config.separation ? '__' + config.separation : ''}`,\n );\n\n watch(styles, updateStyleEl, { immediate: true });\n\n function updateStyleEl() {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style');\n el.type = 'text/css';\n el.id =\n 'yuyeon-theme-palette' +\n `${config.separation ? '__' + config.separation : ''}`;\n if (options?.cspNonce) el.setAttribute('nonce', options.cspNonce);\n styleEl = el;\n document.head.appendChild(styleEl);\n }\n if (styleEl) {\n styleEl.innerHTML = styles.value;\n }\n }\n }\n\n function bindTheme(yuyeon: any) {\n supportedAutoMode.value = isSupportAutoScheme();\n if (supportedAutoMode.value) {\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n darkModeWatcher(mql);\n mql.addEventListener('change' as 'change', darkModeWatcher);\n }\n watch(\n theme,\n (neo) => {\n const [lightTheme, darkTheme] = neo;\n yuyeon.root.dataset.lightTheme = lightTheme;\n yuyeon.root.dataset.darkTheme = darkTheme;\n },\n { immediate: true },\n );\n watch(\n scheme,\n (neo) => {\n yuyeon.root.setAttribute(\n 'data-theme-scheme',\n neo === 'auto' ? 'auto' : currentColorScheme.value,\n );\n },\n { immediate: true },\n );\n }\n\n function init(yuyeon: any) {\n appMountedScope.run(() => {\n bindTheme(yuyeon);\n });\n }\n\n const themeClasses = computed(() => `y-theme--${currentThemeKey.value}`);\n\n return {\n install,\n init,\n scope: appMountedScope,\n instance: {\n global: {\n scheme,\n theme,\n },\n themes,\n scheme,\n theme,\n currentThemeKey,\n currentThemeColors,\n themeClasses,\n computedThemes,\n computedPalette,\n supportedAutoMode: readonly(supportedAutoMode),\n preferColorScheme: readonly(preferColorScheme),\n },\n };\n}\n\nexport function useLocalTheme(props: { theme?: string }) {\n getCurrentInstance();\n\n const themeModule = inject<ThemeModuleInstance | null>(\n YUYEON_THEME_KEY,\n null,\n );\n\n if (!themeModule) throw new Error('Not found provided \"ThemeModule\"');\n\n const palette = themeModule.computedPalette;\n\n const currentThemeKey = computed<string>(() => {\n if (props.theme) {\n const moduleTheme = unref(themeModule.theme);\n switch (props.theme) {\n case 'light':\n return moduleTheme?.[0] ?? 'light';\n case 'dark':\n return moduleTheme?.[1] ?? 'dark';\n // TODO: props.theme(themeKey) validation in themes\n default:\n return props.theme;\n }\n }\n return unref(themeModule.currentThemeKey);\n });\n\n const themeClasses = computed(() => {\n return `y-theme--${currentThemeKey.value}`;\n });\n\n const newTheme: ThemeModuleInstance = {\n ...themeModule,\n currentThemeKey,\n themeClasses,\n };\n\n provide(YUYEON_THEME_KEY, newTheme);\n\n return newTheme;\n}\n\nexport function useTheme() {\n getCurrentInstance();\n\n const theme = inject<ThemeModuleInstance | null>(YUYEON_THEME_KEY, null);\n\n if (!theme) throw new Error('【yuyeon】 Not found provided \"ThemeModule\"');\n\n return theme;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"setting.js","names":["mergeDeep","ThemeScheme","light","dark","schemes","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","highlighter","variables","configureOptions","options","scheme","theme","themes","palette","includes","separation"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '@/util/common';\n\nimport type { PaletteOption, ThemeOptions } from './types';\n\nexport const ThemeScheme = {\n light: 'light',\n dark: 'dark',\n} as const;\n\nexport const schemes = ['light', 'dark', 'auto'] as const;\n\nexport const defaultTonalLuminance = [\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\n];\n\nexport const defaultPalette: PaletteOption = {\n scaleMethod: 'tonal',\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n neutral: '#5d5e61',\n positive: '#009d61',\n negative: '#ba1a1a',\n warning: '#f69400',\n info: '#0d62e6',\n },\n};\n\nexport const defaultThemesValues: any = {\n light: {\n isDark: false,\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n background: '#fdfbff',\n 'on-background': '#1a1c1e',\n surface: '#fdfbff',\n 'on-surface': '#1a1c1e',\n 'surface-variant': '#dfe3eb',\n 'on-surface-variant': '#42474e',\n outline: '#73777f',\n 'outline-variant': '#c2c7cf',\n error: '#ba1a1a',\n 'on-error': '#ffffff',\n warning: '#8a5100',\n 'on-warning': '#ffffff',\n info: '#0056d0',\n 'on-info': '#ffffff',\n success: '#006d42',\n 'on-success': '#ffffff',\n shadow: '#000000',\n highlighter: '#ffff00',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#141414',\n },\n },\n dark: {\n isDark: true,\n colors: {\n primary: '#9ccaff',\n 'on-primary': '#003257',\n secondary: '#cbbeff',\n 'on-secondary': '#332074',\n tertiary: '#a1d57a',\n 'on-tertiary': '#173800',\n background: '#1a1c1e',\n 'on-background': '#e2e2e6',\n surface: '#1a1c1e',\n 'on-surface': '#e2e2e6',\n 'surface-variant': '#42474e',\n 'on-surface-variant': '#c2c7cf',\n outline: '#8c9199',\n 'outline-variant': '#42474e',\n error: '#ffb4ab',\n 'on-error': '#690005',\n warning: '#ffb86e',\n 'on-warning': '#492900',\n info: '#b1c5ff',\n 'on-info': '#002c72',\n success: '#61dd9a',\n 'on-success': '#003920',\n shadow: '#000000',\n highlighter: '#51510d',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#f5f5f5',\n },\n },\n};\n\nexport function configureOptions(options?: ThemeOptions): any {\n if (!options) {\n return {\n scheme: ThemeScheme.light,\n theme: ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues) },\n palette: { ...mergeDeep(defaultPalette) },\n };\n }\n return {\n scheme: schemes.includes(options.scheme)\n ? options.scheme\n : ThemeScheme.light,\n theme: options.theme ?? ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\n palette: { ...mergeDeep(defaultPalette, options.palette) },\n separation: options?.separation,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"setting.js","names":["mergeDeep","ThemeScheme","light","dark","schemes","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","highlighter","variables","configureOptions","options","scheme","theme","themes","palette","includes","separation"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '@/util/common';\n\nimport type { PaletteOption, ThemeOptions } from './types';\n\nexport const ThemeScheme = {\n light: 'light',\n dark: 'dark',\n} as const;\n\nexport const schemes = ['light', 'dark', 'auto'] as const;\n\nexport const defaultTonalLuminance = [\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\n];\n\nexport const defaultPalette: PaletteOption = {\n scaleMethod: 'tonal',\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n neutral: '#5d5e61',\n positive: '#009d61',\n negative: '#ba1a1a',\n warning: '#f69400',\n info: '#0d62e6',\n },\n};\n\nexport const defaultThemesValues: any = {\n light: {\n isDark: false,\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n background: '#fdfbff',\n 'on-background': '#1a1c1e',\n surface: '#fdfbff',\n 'on-surface': '#1a1c1e',\n 'surface-variant': '#dfe3eb',\n 'on-surface-variant': '#42474e',\n outline: '#73777f',\n 'outline-variant': '#c2c7cf',\n error: '#ba1a1a',\n 'on-error': '#ffffff',\n warning: '#8a5100',\n 'on-warning': '#ffffff',\n info: '#0056d0',\n 'on-info': '#ffffff',\n success: '#006d42',\n 'on-success': '#ffffff',\n shadow: '#000000',\n highlighter: '#ffff00',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#141414',\n },\n },\n dark: {\n isDark: true,\n colors: {\n primary: '#9ccaff',\n 'on-primary': '#003257',\n secondary: '#cbbeff',\n 'on-secondary': '#332074',\n tertiary: '#a1d57a',\n 'on-tertiary': '#173800',\n background: '#1a1c1e',\n 'on-background': '#e2e2e6',\n surface: '#1a1c1e',\n 'on-surface': '#e2e2e6',\n 'surface-variant': '#42474e',\n 'on-surface-variant': '#c2c7cf',\n outline: '#8c9199',\n 'outline-variant': '#42474e',\n error: '#ffb4ab',\n 'on-error': '#690005',\n warning: '#ffb86e',\n 'on-warning': '#492900',\n info: '#b1c5ff',\n 'on-info': '#002c72',\n success: '#61dd9a',\n 'on-success': '#003920',\n shadow: '#000000',\n highlighter: '#51510d',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#f5f5f5',\n },\n },\n};\n\nexport function configureOptions(options?: ThemeOptions): any {\n if (!options) {\n return {\n scheme: ThemeScheme.light,\n theme: ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues) },\n palette: { ...mergeDeep(defaultPalette) },\n };\n }\n return {\n scheme: schemes.includes(options.scheme)\n ? options.scheme\n : ThemeScheme.light,\n theme: options.theme ?? ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\n palette: { ...mergeDeep(defaultPalette, options.palette) },\n separation: options?.separation,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/theme/types.ts"],"sourcesContent":["export interface ThemeOptions {\r\n scheme: 'light' | 'dark' | 'auto';\r\n theme: [string, string?];\r\n themes: Record<string, ThemeDefinition>;\r\n palette?: PaletteOption;\r\n cspNonce?: string;\r\n separation?: string;\r\n}\r\n\r\nexport interface PaletteOption {\r\n scaleMethod: 'manual' | 'luma' | 'tonal';\r\n colors: Record<string, string | PaletteLevelColorOption | PaletteLumaColorOption>;\r\n defaultLamaScale?: {\r\n darken?: 0 | 1 | 2 | 3 | 4;\r\n lighten?: 0 | 1 | 2 | 3 | 4 | 5;\r\n }\r\n}\r\n\r\ntype ScaleLevel = number;\r\nexport type PaletteLevelColorOption = Record<ScaleLevel, string>\r\n\r\nexport type PaletteLumaColorOption = {\r\n value: string,\r\n darken?: 0 | 1 | 2 | 3 | 4;\r\n lighten?: 0 | 1 | 2 | 3 | 4 | 5;\r\n}\r\n\r\nexport interface ThemeDefinition {\r\n isDark: boolean;\r\n colors: Record<string, string>;\r\n variables: Record<string, string>;\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/theme/types.ts"],"sourcesContent":["export interface ThemeOptions {\n scheme: 'light' | 'dark' | 'auto';\n theme: [string, string?];\n themes: Record<string, ThemeDefinition>;\n palette?: PaletteOption;\n cspNonce?: string;\n separation?: string;\n}\n\nexport interface PaletteOption {\n scaleMethod: 'manual' | 'luma' | 'tonal';\n colors: Record<\n string,\n string | PaletteLevelColorOption | PaletteLumaColorOption\n >;\n defaultLamaScale?: {\n darken?: 0 | 1 | 2 | 3 | 4;\n lighten?: 0 | 1 | 2 | 3 | 4 | 5;\n };\n}\n\ntype ScaleLevel = number;\nexport type PaletteLevelColorOption = Record<ScaleLevel, string>;\n\nexport type PaletteLumaColorOption = {\n value: string;\n darken?: 0 | 1 | 2 | 3 | 4;\n lighten?: 0 | 1 | 2 | 3 | 4 | 5;\n};\n\nexport interface ThemeDefinition {\n isDark: boolean;\n colors: Record<string, string>;\n variables: Record<string, string>;\n}\n"],"mappings":"","ignoreList":[]}