yuyeon 0.3.4-beta.14 → 0.3.4-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +2303 -2172
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/img/YImg.js +14 -8
  5. package/lib/components/img/YImg.js.map +1 -1
  6. package/lib/components/img/index.js +1 -1
  7. package/lib/components/img/index.js.map +1 -1
  8. package/lib/components/index.js +1 -0
  9. package/lib/components/index.js.map +1 -1
  10. package/lib/components/layer/YLayer.js +22 -20
  11. package/lib/components/layer/YLayer.js.map +1 -1
  12. package/lib/composables/coordinate/types.js.map +1 -1
  13. package/lib/directives/plate-wave/index.js.map +1 -1
  14. package/package.json +1 -1
  15. package/types/components/dialog/YDialog.d.ts +4 -4
  16. package/types/components/img/YImg.d.ts +4 -1
  17. package/types/components/img/index.d.ts +1 -0
  18. package/types/components/index.d.ts +1 -0
  19. package/types/components/layer/YLayer.d.ts +2 -2
  20. package/types/components/menu/YMenu.d.ts +4 -4
  21. package/types/composables/coordinate/types.d.ts +1 -0
  22. package/types/directives/plate-wave/index.d.ts +1 -1
  23. package/types/shims.d.ts +5 -4
  24. package/types/components/table/composibles/header.d.ts +0 -207
  25. package/types/components/table/composibles/items.d.ts +0 -55
  26. package/types/components/table/composibles/measure.d.ts +0 -8
  27. package/types/components/table/composibles/options.d.ts +0 -11
  28. package/types/components/table/composibles/pagination.d.ts +0 -81
  29. package/types/components/table/composibles/selection.d.ts +0 -82
  30. package/types/components/table/composibles/sorted-items.d.ts +0 -7
  31. package/types/components/table/composibles/sorting.d.ts +0 -62
  32. package/types/src/abstract/items.d.ts +0 -49
  33. package/types/src/components/alert/YAlert.d.ts +0 -13
  34. package/types/src/components/alert/index.d.ts +0 -1
  35. package/types/src/components/app/YApp.d.ts +0 -8
  36. package/types/src/components/app/index.d.ts +0 -1
  37. package/types/src/components/badge/YBadge.d.ts +0 -126
  38. package/types/src/components/badge/index.d.ts +0 -1
  39. package/types/src/components/bench/YBench.d.ts +0 -4
  40. package/types/src/components/bench/index.d.ts +0 -1
  41. package/types/src/components/button/YButton.d.ts +0 -189
  42. package/types/src/components/button/index.d.ts +0 -1
  43. package/types/src/components/card/YCard.d.ts +0 -9
  44. package/types/src/components/card/YCardBody.d.ts +0 -2
  45. package/types/src/components/card/YCardFooter.d.ts +0 -2
  46. package/types/src/components/card/YCardHeader.d.ts +0 -2
  47. package/types/src/components/card/index.d.ts +0 -4
  48. package/types/src/components/checkbox/YCheckbox.d.ts +0 -23
  49. package/types/src/components/checkbox/YInputCheckbox.d.ts +0 -31
  50. package/types/src/components/checkbox/index.d.ts +0 -4
  51. package/types/src/components/chip/YChip.d.ts +0 -37
  52. package/types/src/components/chip/index.d.ts +0 -1
  53. package/types/src/components/date-picker/YDateCalendar.d.ts +0 -115
  54. package/types/src/components/date-picker/YDatePicker.d.ts +0 -94
  55. package/types/src/components/date-picker/YDatePickerControl.d.ts +0 -97
  56. package/types/src/components/date-picker/YMonthPicker.d.ts +0 -25
  57. package/types/src/components/date-picker/YYearPicker.d.ts +0 -38
  58. package/types/src/components/date-picker/index.d.ts +0 -3
  59. package/types/src/components/default-provider/YDefaultProvider.d.ts +0 -0
  60. package/types/src/components/default-provider/index.d.ts +0 -0
  61. package/types/src/components/dialog/YDialog.d.ts +0 -715
  62. package/types/src/components/dialog/index.d.ts +0 -1
  63. package/types/src/components/divider/YDivider.d.ts +0 -14
  64. package/types/src/components/divider/index.d.ts +0 -1
  65. package/types/src/components/draggable/YDraggable.d.ts +0 -36
  66. package/types/src/components/draggable/index.d.ts +0 -1
  67. package/types/src/components/dropdown/YDropdown.d.ts +0 -574
  68. package/types/src/components/dropdown/index.d.ts +0 -1
  69. package/types/src/components/field-input/YFieldInput.d.ts +0 -322
  70. package/types/src/components/field-input/index.d.ts +0 -1
  71. package/types/src/components/form/YForm.d.ts +0 -20
  72. package/types/src/components/form/index.d.ts +0 -1
  73. package/types/src/components/hover/YHover.d.ts +0 -57
  74. package/types/src/components/hover/index.d.ts +0 -1
  75. package/types/src/components/icon/YIcon.d.ts +0 -67
  76. package/types/src/components/icon/index.d.ts +0 -1
  77. package/types/src/components/icons/YIconCheckbox.d.ts +0 -6
  78. package/types/src/components/icons/YIconClear.d.ts +0 -1
  79. package/types/src/components/icons/YIconDropdown.d.ts +0 -1
  80. package/types/src/components/icons/YIconExpand.d.ts +0 -1
  81. package/types/src/components/icons/YIconPageControl.d.ts +0 -14
  82. package/types/src/components/icons/YIconSort.d.ts +0 -10
  83. package/types/src/components/icons/index.d.ts +0 -51
  84. package/types/src/components/img/YImg.d.ts +0 -133
  85. package/types/src/components/img/index.d.ts +0 -0
  86. package/types/src/components/index.d.ts +0 -38
  87. package/types/src/components/input/YInput.d.ts +0 -249
  88. package/types/src/components/input/index.d.ts +0 -1
  89. package/types/src/components/ip-field/YIpv4Field.d.ts +0 -65
  90. package/types/src/components/ip-field/index.d.ts +0 -1
  91. package/types/src/components/layer/YLayer.d.ts +0 -436
  92. package/types/src/components/layer/active-delay.d.ts +0 -4
  93. package/types/src/components/layer/active-stack.d.ts +0 -16
  94. package/types/src/components/layer/base.d.ts +0 -28
  95. package/types/src/components/layer/content.d.ts +0 -21
  96. package/types/src/components/layer/index.d.ts +0 -1
  97. package/types/src/components/layer/scroll-strategies.d.ts +0 -41
  98. package/types/src/components/list/YList.d.ts +0 -19
  99. package/types/src/components/list/YListItem.d.ts +0 -42
  100. package/types/src/components/list/index.d.ts +0 -2
  101. package/types/src/components/loading/YSpinnerRing.d.ts +0 -3
  102. package/types/src/components/loading/index.d.ts +0 -1
  103. package/types/src/components/menu/YMenu.d.ts +0 -517
  104. package/types/src/components/menu/index.d.ts +0 -1
  105. package/types/src/components/navigation/YNavigation.d.ts +0 -1
  106. package/types/src/components/navigation/index.d.ts +0 -1
  107. package/types/src/components/pagination/YPagination.d.ts +0 -137
  108. package/types/src/components/pagination/index.d.ts +0 -1
  109. package/types/src/components/panel/YDividePanel.d.ts +0 -5
  110. package/types/src/components/panel/index.d.ts +0 -1
  111. package/types/src/components/plate/YPlate.d.ts +0 -9
  112. package/types/src/components/plate/index.d.ts +0 -1
  113. package/types/src/components/progress-bar/YProgressBar.d.ts +0 -38
  114. package/types/src/components/progress-bar/index.d.ts +0 -1
  115. package/types/src/components/progress-ring/YProgressRing.d.ts +0 -34
  116. package/types/src/components/progress-ring/index.d.ts +0 -1
  117. package/types/src/components/radio/YRadio.d.ts +0 -25
  118. package/types/src/components/radio/YRadioIcon.d.ts +0 -6
  119. package/types/src/components/radio/index.d.ts +0 -2
  120. package/types/src/components/select/YSelect.d.ts +0 -1221
  121. package/types/src/components/select/index.d.ts +0 -1
  122. package/types/src/components/slider/YSlider.d.ts +0 -16
  123. package/types/src/components/slider/index.d.ts +0 -1
  124. package/types/src/components/slider/slider.d.ts +0 -0
  125. package/types/src/components/snackbar/YSnackbar.d.ts +0 -452
  126. package/types/src/components/snackbar/index.d.ts +0 -1
  127. package/types/src/components/switch/YSwitch.d.ts +0 -137
  128. package/types/src/components/switch/index.d.ts +0 -1
  129. package/types/src/components/tab/YTab.d.ts +0 -218
  130. package/types/src/components/tab/YTabs.d.ts +0 -98
  131. package/types/src/components/tab/index.d.ts +0 -3
  132. package/types/src/components/tab/shared.d.ts +0 -4
  133. package/types/src/components/tab/types.d.ts +0 -5
  134. package/types/src/components/table/YDataTable.d.ts +0 -459
  135. package/types/src/components/table/YDataTableBody.d.ts +0 -99
  136. package/types/src/components/table/YDataTableCell.d.ts +0 -32
  137. package/types/src/components/table/YDataTableControl.d.ts +0 -68
  138. package/types/src/components/table/YDataTableHead.d.ts +0 -54
  139. package/types/src/components/table/YDataTableLayer.d.ts +0 -13
  140. package/types/src/components/table/YDataTableLayerRow.d.ts +0 -22
  141. package/types/src/components/table/YDataTableLayerRows.d.ts +0 -9
  142. package/types/src/components/table/YDataTableRow.d.ts +0 -53
  143. package/types/src/components/table/YDataTableServer.d.ts +0 -502
  144. package/types/src/components/table/YTable.d.ts +0 -65
  145. package/types/src/components/table/composables/expand.d.ts +0 -42
  146. package/types/src/components/table/composables/header.d.ts +0 -175
  147. package/types/src/components/table/composables/items.d.ts +0 -55
  148. package/types/src/components/table/composables/measure.d.ts +0 -8
  149. package/types/src/components/table/composables/options.d.ts +0 -11
  150. package/types/src/components/table/composables/pagination.d.ts +0 -81
  151. package/types/src/components/table/composables/provides.d.ts +0 -15
  152. package/types/src/components/table/composables/selection.d.ts +0 -82
  153. package/types/src/components/table/composables/sorted-items.d.ts +0 -7
  154. package/types/src/components/table/composables/sorting.d.ts +0 -56
  155. package/types/src/components/table/index.d.ts +0 -10
  156. package/types/src/components/table/types/common.d.ts +0 -2
  157. package/types/src/components/table/types/header.d.ts +0 -25
  158. package/types/src/components/table/types/index.d.ts +0 -59
  159. package/types/src/components/table/types/item.d.ts +0 -23
  160. package/types/src/components/table/types/row.d.ts +0 -4
  161. package/types/src/components/text-ellipsis/YTextEllipsis.d.ts +0 -11
  162. package/types/src/components/text-ellipsis/index.d.ts +0 -1
  163. package/types/src/components/text-highlighter/YTextHighlighter.d.ts +0 -26
  164. package/types/src/components/text-highlighter/index.d.ts +0 -1
  165. package/types/src/components/text-interpolation/YTi.d.ts +0 -11
  166. package/types/src/components/text-interpolation/index.d.ts +0 -1
  167. package/types/src/components/textarea/YTextarea.d.ts +0 -583
  168. package/types/src/components/textarea/index.d.ts +0 -1
  169. package/types/src/components/toggle-button/YToggleButton.d.ts +0 -4
  170. package/types/src/components/toggle-button/index.d.ts +0 -1
  171. package/types/src/components/tooltip/YTooltip.d.ts +0 -502
  172. package/types/src/components/tooltip/index.d.ts +0 -1
  173. package/types/src/components/transitions/expand-transition.d.ts +0 -20
  174. package/types/src/components/transitions/index.d.ts +0 -38
  175. package/types/src/components/tree-view/YTreeView.d.ts +0 -172
  176. package/types/src/components/tree-view/YTreeViewNode.d.ts +0 -176
  177. package/types/src/components/tree-view/index.d.ts +0 -2
  178. package/types/src/components/tree-view/tree-view.d.ts +0 -51
  179. package/types/src/components/tree-view/types.d.ts +0 -17
  180. package/types/src/components/tree-view/util.d.ts +0 -6
  181. package/types/src/composables/choice-link.d.ts +0 -3
  182. package/types/src/composables/choice.d.ts +0 -113
  183. package/types/src/composables/communication.d.ts +0 -8
  184. package/types/src/composables/component.d.ts +0 -3
  185. package/types/src/composables/coordinate/arrangement.d.ts +0 -7
  186. package/types/src/composables/coordinate/index.d.ts +0 -87
  187. package/types/src/composables/coordinate/levitation.d.ts +0 -7
  188. package/types/src/composables/coordinate/types.d.ts +0 -7
  189. package/types/src/composables/coordinate/utils/point.d.ts +0 -22
  190. package/types/src/composables/date/factory.d.ts +0 -3
  191. package/types/src/composables/date/index.d.ts +0 -12
  192. package/types/src/composables/date/setting.d.ts +0 -5
  193. package/types/src/composables/date/types.d.ts +0 -13
  194. package/types/src/composables/defaults/index.d.ts +0 -11
  195. package/types/src/composables/defaults/share.d.ts +0 -4
  196. package/types/src/composables/defaults/types.d.ts +0 -12
  197. package/types/src/composables/dimension.d.ts +0 -54
  198. package/types/src/composables/focus.d.ts +0 -30
  199. package/types/src/composables/form.d.ts +0 -132
  200. package/types/src/composables/i18n/index.d.ts +0 -9
  201. package/types/src/composables/i18n/locale.d.ts +0 -3
  202. package/types/src/composables/i18n/rtl.d.ts +0 -21
  203. package/types/src/composables/i18n/share.d.ts +0 -1
  204. package/types/src/composables/icon.d.ts +0 -79
  205. package/types/src/composables/index.d.ts +0 -10
  206. package/types/src/composables/layer-group.d.ts +0 -10
  207. package/types/src/composables/layout.d.ts +0 -10
  208. package/types/src/composables/list-items.d.ts +0 -113
  209. package/types/src/composables/progress.d.ts +0 -4
  210. package/types/src/composables/ref.d.ts +0 -6
  211. package/types/src/composables/resize-observer.d.ts +0 -24
  212. package/types/src/composables/scope.d.ts +0 -3
  213. package/types/src/composables/style-color.d.ts +0 -14
  214. package/types/src/composables/theme/factory.d.ts +0 -4
  215. package/types/src/composables/theme/helper.d.ts +0 -3
  216. package/types/src/composables/theme/index.d.ts +0 -57
  217. package/types/src/composables/theme/setting.d.ts +0 -11
  218. package/types/src/composables/theme/types.d.ts +0 -29
  219. package/types/src/composables/timing.d.ts +0 -20
  220. package/types/src/composables/transition.d.ts +0 -40
  221. package/types/src/composables/validation.d.ts +0 -82
  222. package/types/src/composables/vue-router.d.ts +0 -43
  223. package/types/src/declares.d.ts +0 -1
  224. package/types/src/directives/complement-click/index.d.ts +0 -26
  225. package/types/src/directives/index.d.ts +0 -2
  226. package/types/src/directives/plate-wave/index.d.ts +0 -20
  227. package/types/src/directives/theme-class/index.d.ts +0 -4
  228. package/types/src/etc/index.d.ts +0 -1
  229. package/types/src/globals.d.ts +0 -20
  230. package/types/src/i18n/built-in.d.ts +0 -3
  231. package/types/src/i18n/config.d.ts +0 -81
  232. package/types/src/i18n/types.d.ts +0 -20
  233. package/types/src/index.d.ts +0 -13
  234. package/types/src/locales/en.d.ts +0 -6
  235. package/types/src/locales/index.d.ts +0 -2
  236. package/types/src/locales/ko.d.ts +0 -6
  237. package/types/src/mixins/di.d.ts +0 -2
  238. package/types/src/mixins/rebind-attrs.d.ts +0 -5
  239. package/types/src/shims.d.ts +0 -64
  240. package/types/src/types/index.d.ts +0 -9
  241. package/types/src/util/anchor.d.ts +0 -23
  242. package/types/src/util/array.d.ts +0 -2
  243. package/types/src/util/collection.d.ts +0 -1
  244. package/types/src/util/color/apca.d.ts +0 -29
  245. package/types/src/util/color/const.d.ts +0 -5
  246. package/types/src/util/color/contrast/contrast.d.ts +0 -74
  247. package/types/src/util/color/conversion.d.ts +0 -131
  248. package/types/src/util/color/hct/cam16.d.ts +0 -116
  249. package/types/src/util/color/hct/hct-solver.d.ts +0 -131
  250. package/types/src/util/color/hct/hct.d.ts +0 -71
  251. package/types/src/util/color/hct/viewing-conditions.d.ts +0 -58
  252. package/types/src/util/color/index.d.ts +0 -5
  253. package/types/src/util/color/palettes/core-palette.d.ts +0 -44
  254. package/types/src/util/color/palettes/tonal-palette.d.ts +0 -40
  255. package/types/src/util/color/types.d.ts +0 -14
  256. package/types/src/util/color/utils/math-utils.d.ts +0 -82
  257. package/types/src/util/common.d.ts +0 -17
  258. package/types/src/util/component/component.d.ts +0 -5
  259. package/types/src/util/component/index.d.ts +0 -11
  260. package/types/src/util/component/inject-self.d.ts +0 -3
  261. package/types/src/util/component/props.d.ts +0 -32
  262. package/types/src/util/component/types.d.ts +0 -21
  263. package/types/src/util/date/adapters/yuyeon-date-adapter.d.ts +0 -43
  264. package/types/src/util/date/built-in.d.ts +0 -41
  265. package/types/src/util/date/index.d.ts +0 -3
  266. package/types/src/util/date/types.d.ts +0 -167
  267. package/types/src/util/debounce.d.ts +0 -11
  268. package/types/src/util/dom.d.ts +0 -5
  269. package/types/src/util/environments.d.ts +0 -6
  270. package/types/src/util/frame-scheduler.d.ts +0 -7
  271. package/types/src/util/index.d.ts +0 -16
  272. package/types/src/util/reactivity.d.ts +0 -7
  273. package/types/src/util/rect.d.ts +0 -36
  274. package/types/src/util/scroll.d.ts +0 -3
  275. package/types/src/util/string.d.ts +0 -9
  276. package/types/src/util/ui.d.ts +0 -4
  277. package/types/src/util/validation.d.ts +0 -3
@@ -76,16 +76,14 @@ export const YImg = defineComponent({
76
76
  watch(() => props.src, () => {
77
77
  initIntersect();
78
78
  });
79
- const _Placeholder = () => {
79
+ const _Placeholder = placeholderProps => {
80
80
  if (!slots.placeholder) return null;
81
81
  return _createVNode(PolyTransition, _mergeProps(polyTransitionBindProps.value, {
82
82
  "appear": true
83
83
  }), {
84
- default: () => [(status.value === "idle" || status.value === "error") && _createVNode("div", {
84
+ default: () => [(placeholderProps.status === "idle" || placeholderProps.status === "error") && _createVNode("div", {
85
85
  "class": "y-img__placeholder"
86
- }, [slots.placeholder?.({
87
- status: status.value
88
- })])]
86
+ }, [slots.placeholder?.(placeholderProps)])]
89
87
  });
90
88
  };
91
89
  function onLoad() {
@@ -97,7 +95,7 @@ export const YImg = defineComponent({
97
95
  status.value = "error";
98
96
  emit("error", event);
99
97
  }
100
- const _Image = () => {
98
+ const _Image = imageProps => {
101
99
  const Img = _createVNode("img", {
102
100
  "ref": image$,
103
101
  "src": srcMeta.value.src,
@@ -112,7 +110,7 @@ export const YImg = defineComponent({
112
110
  return _createVNode(PolyTransition, _mergeProps(polyTransitionBindProps.value, {
113
111
  "appear": true
114
112
  }), {
115
- default: () => [withDirectives(Img, [[vShow, status.value === "loaded"]])]
113
+ default: () => [withDirectives(Img, [[vShow, imageProps.status === "loaded"]])]
116
114
  });
117
115
  };
118
116
  let requestTimer = -1;
@@ -165,8 +163,16 @@ export const YImg = defineComponent({
165
163
  useRender(() => {
166
164
  return _createVNode("div", {
167
165
  "class": ["y-img"]
168
- }, [_createVNode(_Placeholder, null, null), _createVNode(_Image, null, null)]);
166
+ }, [_createVNode(_Placeholder, {
167
+ "status": status.value
168
+ }, null), _createVNode(_Image, {
169
+ "status": status.value
170
+ }, null)]);
169
171
  });
172
+ return {
173
+ status,
174
+ image$: image$
175
+ };
170
176
  }
171
177
  });
172
178
  //# sourceMappingURL=YImg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholder","onLoad","isUnmounted","onError","event","_Image","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\n\ttype CSSProperties,\n\tcomputed,\n\tgetCurrentInstance,\n\ttype ImgHTMLAttributes,\n\tnextTick,\n\tonBeforeMount,\n\tonBeforeUnmount,\n\ttype PropType,\n\tref,\n\ttype SlotsType,\n\tshallowRef,\n\tvShow,\n\twatch,\n\twithDirectives,\n} from \"vue\";\n\nimport { useRender } from \"@/composables/component\";\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\nimport {\n\tPolyTransition,\n\tpressPolyTransitionPropsOptions,\n\tusePolyTransition,\n} from \"@/composables/transition\";\nimport { defineComponent, propsFactory } from \"@/util/component\";\nimport Environments from \"@/util/environments\";\n\nimport \"./YImg.scss\";\n\nexport const pressYImgPropsOptions = propsFactory(\n\t{\n\t\tsrc: String as PropType<string>,\n\t\tcrossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\n\t\treferrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\n\t\t...pressPolyTransitionPropsOptions({\n\t\t\ttransition: \"fade\",\n\t\t}),\n\t\tobjectFit: {\n\t\t\ttype: String as PropType<\n\t\t\t\tExtract<\n\t\t\t\t\tCSSProperties[\"objectFit\"],\n\t\t\t\t\t\"contain\" | \"cover\" | \"fill\" | \"scale-down\"\n\t\t\t\t>\n\t\t\t>,\n\t\t\tdefault: \"contain\",\n\t\t},\n\t\teager: Boolean,\n\t\t...pressDimensionPropsOptions(),\n\t},\n\t\"YImg\",\n);\n\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\n\nexport const YImg = defineComponent({\n\tname: \"YImg\",\n\tprops: {\n\t\t...pressYImgPropsOptions(),\n\t},\n\tslots: Object as SlotsType<{\n\t\tplaceholder: any;\n\t}>,\n\temits: [\"load\", \"loaded\", \"error\"],\n\tsetup(props, { slots, attrs, emit }) {\n\t\tconst vm = getCurrentInstance()!;\n\t\tconst image$ = ref<HTMLImageElement>();\n\t\tconst status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\n\t\tconst imgSrc = shallowRef(\"\");\n\t\tconst naturalWidth = shallowRef<number>();\n\t\tconst naturalHeight = shallowRef<number>();\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\n\n\t\tconst srcMeta = computed(() => {\n\t\t\tconst src = props.src;\n\n\t\t\treturn {\n\t\t\t\tsrc,\n\t\t\t};\n\t\t});\n\n\t\tconst imgClasses = computed(() => {\n\t\t\treturn {\n\t\t\t\t\"y-img--cover\": props.objectFit === \"cover\",\n\t\t\t\t\"y-img--contain\": props.objectFit === \"contain\",\n\t\t\t\t\"y-img--fill\": props.objectFit === \"fill\",\n\t\t\t\t\"y-img--scale-down\": props.objectFit === \"scale-down\",\n\t\t\t};\n\t\t});\n\n\t\tfunction getImgSrc() {\n\t\t\tconst imgEl = image$.value;\n\t\t\tif (imgEl) {\n\t\t\t\timgSrc.value = imgEl.currentSrc || imgEl.src;\n\t\t\t}\n\t\t}\n\n\t\tfunction inspectImage(imgEl: HTMLImageElement) {\n\t\t\tif (imgEl.naturalWidth || imgEl.naturalHeight) {\n\t\t\t\tnaturalWidth.value = imgEl.naturalWidth;\n\t\t\t\tnaturalHeight.value = imgEl.naturalHeight;\n\t\t\t} else if (!imgEl.complete && status.value === \"loading\") {\n\t\t\t\treturn false;\n\t\t\t} else if (\n\t\t\t\timgEl.currentSrc.endsWith(\".svg\") ||\n\t\t\t\timgEl.currentSrc.startsWith(\"data:image/svg+xml\")\n\t\t\t) {\n\t\t\t\tnaturalWidth.value = 1;\n\t\t\t\tnaturalHeight.value = 1;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\twatch(\n\t\t\t() => props.src,\n\t\t\t() => {\n\t\t\t\tinitIntersect();\n\t\t\t},\n\t\t);\n\n\t\tconst _Placeholder = () => {\n\t\t\tif (!slots.placeholder) return null;\n\t\t\treturn (\n\t\t\t\t<PolyTransition {...polyTransitionBindProps.value} appear>\n\t\t\t\t\t{(status.value === \"idle\" || status.value === \"error\") && (\n\t\t\t\t\t\t<div class=\"y-img__placeholder\">\n\t\t\t\t\t\t\t{slots.placeholder?.({ status: status.value })}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</PolyTransition>\n\t\t\t);\n\t\t};\n\n\t\tfunction onLoad() {\n\t\t\tif (vm.isUnmounted) return;\n\t\t\tstatus.value = \"loaded\";\n\t\t}\n\n\t\tfunction onError(event?: Event) {\n\t\t\tif (vm.isUnmounted) return;\n\t\t\tstatus.value = \"error\";\n\t\t\temit(\"error\", event);\n\t\t}\n\n\t\tconst _Image = () => {\n\t\t\tconst Img = (\n\t\t\t\t<img\n\t\t\t\t\tref={image$}\n\t\t\t\t\tsrc={srcMeta.value.src}\n\t\t\t\t\tcrossorigin={props.crossorigin}\n\t\t\t\t\treferrerpolicy={props.referrerpolicy}\n\t\t\t\t\tdraggable={(attrs as ImgHTMLAttributes).draggable}\n\t\t\t\t\talt={(attrs as ImgHTMLAttributes).alt}\n\t\t\t\t\tclass={[\"y-img__img\", imgClasses.value]}\n\t\t\t\t\tonLoad={onLoad}\n\t\t\t\t\tonError={onError}\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<PolyTransition {...polyTransitionBindProps.value} appear>\n\t\t\t\t\t{withDirectives(Img, [[vShow, status.value === \"loaded\"]])}\n\t\t\t\t</PolyTransition>\n\t\t\t);\n\t\t};\n\n\t\tlet requestTimer = -1;\n\n\t\t/**\n\t\t *\n\t\t * @param imgEl\n\t\t * @param timeout null: once\n\t\t */\n\t\tfunction requestInspectImage(\n\t\t\timgEl: HTMLImageElement,\n\t\t\ttimeout: number | null = 100,\n\t\t) {\n\t\t\tconst _request = () => {\n\t\t\t\tclearTimeout(requestTimer);\n\t\t\t\tif (vm.isUnmounted) return;\n\t\t\t\tif (!inspectImage(imgEl) && timeout != null) {\n\t\t\t\t\trequestTimer = window.setTimeout(_request, timeout);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t_request();\n\t\t}\n\n\t\tfunction initIntersect(isIntersection?: boolean) {\n\t\t\tif (props.eager && isIntersection) return;\n\t\t\tif (\n\t\t\t\tEnvironments.canUseIntersectionObserver &&\n\t\t\t\t!isIntersection &&\n\t\t\t\t!props.eager\n\t\t\t)\n\t\t\t\treturn;\n\n\t\t\tstatus.value = \"loading\";\n\n\t\t\tif (!srcMeta.value.src) return;\n\t\t\tnextTick(() => {\n\t\t\t\temit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (vm.isUnmounted) return;\n\t\t\t\t\tif (image$.value?.complete) {\n\t\t\t\t\t\tif (!image$.value?.naturalWidth) {\n\t\t\t\t\t\t\tonError();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (status.value === \"error\") return;\n\t\t\t\t\t\trequestInspectImage(image$.value, null);\n\t\t\t\t\t\tif (status.value === \"loading\") onLoad();\n\t\t\t\t\t} else if (image$.value) {\n\t\t\t\t\t\trequestInspectImage(image$.value);\n\t\t\t\t\t\tgetImgSrc();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tonBeforeMount(() => {\n\t\t\tinitIntersect();\n\t\t});\n\n\t\tonBeforeUnmount(() => {\n\t\t\tclearTimeout(requestTimer);\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\treturn (\n\t\t\t\t<div class={[\"y-img\"]}>\n\t\t\t\t\t<_Placeholder />\n\t\t\t\t\t<_Image />\n\t\t\t\t</div>\n\t\t\t);\n\t\t});\n\t},\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholderProps","placeholder","onLoad","isUnmounted","onError","event","_Image","imageProps","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\n type CSSProperties,\n computed,\n getCurrentInstance,\n type ImgHTMLAttributes,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n ref,\n type SlotsType,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from \"vue\";\n\nimport { useRender } from \"@/composables/component\";\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from \"@/composables/transition\";\nimport { defineComponent, propsFactory } from \"@/util/component\";\nimport Environments from \"@/util/environments\";\n\nimport \"./YImg.scss\";\n\nexport const pressYImgPropsOptions = propsFactory(\n {\n src: String as PropType<string>,\n crossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\n referrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\n ...pressPolyTransitionPropsOptions({\n transition: \"fade\",\n }),\n objectFit: {\n type: String as PropType<\n Extract<\n CSSProperties[\"objectFit\"],\n \"contain\" | \"cover\" | \"fill\" | \"scale-down\"\n >\n >,\n default: \"contain\",\n },\n eager: Boolean,\n ...pressDimensionPropsOptions(),\n },\n \"YImg\",\n);\n\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\n\nexport const YImg = defineComponent({\n name: \"YImg\",\n props: {\n ...pressYImgPropsOptions(),\n },\n slots: Object as SlotsType<{\n placeholder: any;\n }>,\n emits: [\"load\", \"loaded\", \"error\"],\n setup(props, { slots, attrs, emit }) {\n const vm = getCurrentInstance()!;\n const image$ = ref<HTMLImageElement>();\n const status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\n const imgSrc = shallowRef(\"\");\n const naturalWidth = shallowRef<number>();\n const naturalHeight = shallowRef<number>();\n const { polyTransitionBindProps } = usePolyTransition(props);\n\n const srcMeta = computed(() => {\n const src = props.src;\n\n return {\n src,\n };\n });\n\n const imgClasses = computed(() => {\n return {\n \"y-img--cover\": props.objectFit === \"cover\",\n \"y-img--contain\": props.objectFit === \"contain\",\n \"y-img--fill\": props.objectFit === \"fill\",\n \"y-img--scale-down\": props.objectFit === \"scale-down\",\n };\n });\n\n function getImgSrc() {\n const imgEl = image$.value;\n if (imgEl) {\n imgSrc.value = imgEl.currentSrc || imgEl.src;\n }\n }\n\n function inspectImage(imgEl: HTMLImageElement) {\n if (imgEl.naturalWidth || imgEl.naturalHeight) {\n naturalWidth.value = imgEl.naturalWidth;\n naturalHeight.value = imgEl.naturalHeight;\n } else if (!imgEl.complete && status.value === \"loading\") {\n return false;\n } else if (\n imgEl.currentSrc.endsWith(\".svg\") ||\n imgEl.currentSrc.startsWith(\"data:image/svg+xml\")\n ) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n\n return true;\n }\n\n watch(\n () => props.src,\n () => {\n initIntersect();\n },\n );\n\n const _Placeholder = (placeholderProps: { status: string }) => {\n if (!slots.placeholder) return null;\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {(placeholderProps.status === \"idle\" || placeholderProps.status === \"error\") && (\n <div class=\"y-img__placeholder\">\n {slots.placeholder?.(placeholderProps)}\n </div>\n )}\n </PolyTransition>\n );\n };\n\n function onLoad() {\n if (vm.isUnmounted) return;\n status.value = \"loaded\";\n }\n\n function onError(event?: Event) {\n if (vm.isUnmounted) return;\n status.value = \"error\";\n emit(\"error\", event);\n }\n\n const _Image = (imageProps: { status: string }) => {\n const Img = (\n <img\n ref={image$}\n src={srcMeta.value.src}\n crossorigin={props.crossorigin}\n referrerpolicy={props.referrerpolicy}\n draggable={(attrs as ImgHTMLAttributes).draggable}\n alt={(attrs as ImgHTMLAttributes).alt}\n class={[\"y-img__img\", imgClasses.value]}\n onLoad={onLoad}\n onError={onError}\n />\n );\n\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {withDirectives(Img, [[vShow, imageProps.status === \"loaded\"]])}\n </PolyTransition>\n );\n };\n\n let requestTimer = -1;\n\n /**\n *\n * @param imgEl\n * @param timeout null: once\n */\n function requestInspectImage(\n imgEl: HTMLImageElement,\n timeout: number | null = 100,\n ) {\n const _request = () => {\n clearTimeout(requestTimer);\n if (vm.isUnmounted) return;\n if (!inspectImage(imgEl) && timeout != null) {\n requestTimer = window.setTimeout(_request, timeout);\n }\n };\n\n _request();\n }\n\n function initIntersect(isIntersection?: boolean) {\n if (props.eager && isIntersection) return;\n if (\n Environments.canUseIntersectionObserver &&\n !isIntersection &&\n !props.eager\n )\n return;\n\n status.value = \"loading\";\n\n if (!srcMeta.value.src) return;\n nextTick(() => {\n emit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image$.value?.complete) {\n if (!image$.value?.naturalWidth) {\n onError();\n }\n if (status.value === \"error\") return;\n requestInspectImage(image$.value, null);\n if (status.value === \"loading\") onLoad();\n } else if (image$.value) {\n requestInspectImage(image$.value);\n getImgSrc();\n }\n });\n });\n }\n\n onBeforeMount(() => {\n initIntersect();\n });\n\n onBeforeUnmount(() => {\n clearTimeout(requestTimer);\n });\n\n useRender(() => {\n return (\n <div class={[\"y-img\"]}>\n <_Placeholder status={status.value} />\n <_Image status={status.value} />\n </div>\n );\n });\n\n return {\n status,\n image$: image$\n }\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
-
1
+ export * from "./YImg.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/img/index.ts"],"sourcesContent":[""],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/img/index.ts"],"sourcesContent":["export * from \"./YImg\";\n"],"mappings":"","ignoreList":[]}
@@ -36,4 +36,5 @@ export * from "./ip-field/index.js";
36
36
  export * from "./hover/index.js";
37
37
  export * from "./text-interpolation/index.js";
38
38
  export * from "./text-highlighter/index.js";
39
+ export * from "./img/index.js";
39
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './app';\nexport * from './button';\nexport * from './input';\nexport * from './field-input';\nexport * from './textarea';\nexport * from './form';\nexport * from './progress-bar';\nexport * from './progress-ring';\nexport * from './card';\nexport * from './chip';\nexport * from './switch';\nexport * from './layer';\nexport * from './dialog';\nexport * from './snackbar';\nexport * from './tooltip';\nexport * from './transitions';\nexport * from './panel';\nexport * from './tree-view';\nexport * from './list';\nexport * from './icons';\nexport * from './table';\nexport * from './menu';\nexport * from './checkbox';\nexport * from './pagination';\nexport * from './loading';\nexport * from './dropdown';\nexport * from './select';\nexport * from './tab';\nexport * from './alert';\nexport * from './divider';\nexport * from './date-picker';\nexport * from './icon';\nexport * from './badge';\nexport * from './text-ellipsis';\nexport * from './ip-field';\nexport * from './hover';\nexport * from './text-interpolation';\nexport * from './text-highlighter';\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from \"./app\";\nexport * from \"./button\";\nexport * from \"./input\";\nexport * from \"./field-input\";\nexport * from \"./textarea\";\nexport * from \"./form\";\nexport * from \"./progress-bar\";\nexport * from \"./progress-ring\";\nexport * from \"./card\";\nexport * from \"./chip\";\nexport * from \"./switch\";\nexport * from \"./layer\";\nexport * from \"./dialog\";\nexport * from \"./snackbar\";\nexport * from \"./tooltip\";\nexport * from \"./transitions\";\nexport * from \"./panel\";\nexport * from \"./tree-view\";\nexport * from \"./list\";\nexport * from \"./icons\";\nexport * from \"./table\";\nexport * from \"./menu\";\nexport * from \"./checkbox\";\nexport * from \"./pagination\";\nexport * from \"./loading\";\nexport * from \"./dropdown\";\nexport * from \"./select\";\nexport * from \"./tab\";\nexport * from \"./alert\";\nexport * from \"./divider\";\nexport * from \"./date-picker\";\nexport * from \"./icon\";\nexport * from \"./badge\";\nexport * from \"./text-ellipsis\";\nexport * from \"./ip-field\";\nexport * from \"./hover\";\nexport * from \"./text-interpolation\";\nexport * from \"./text-highlighter\";\nexport * from \"./img\";\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { computed, getCurrentInstance, mergeProps, reactive, ref, shallowRef, Teleport, toRef, Transition, Fragment as _Fragment, createVNode as _createVNode, vShow as _vShow, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from 'vue';
1
+ import { computed, getCurrentInstance, mergeProps, reactive, ref, shallowRef, Teleport, Transition, toRef, Fragment as _Fragment, createVNode as _createVNode, vShow as _vShow, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from "vue";
2
2
  import { useModelDuplex } from "../../composables/communication.js";
3
3
  import { useRender } from "../../composables/component.js";
4
4
  import { pressCoordinateProps, useCoordinate } from "../../composables/coordinate/index.js";
@@ -72,9 +72,9 @@ export const pressYLayerProps = propsFactory({
72
72
  ...pressCoordinateProps(),
73
73
  ...pressScrollStrategyProps(),
74
74
  ...pressDimensionPropsOptions()
75
- }, 'YLayer');
75
+ }, "YLayer");
76
76
  export const YLayer = defineComponent({
77
- name: 'YLayer',
77
+ name: "YLayer",
78
78
  inheritAttrs: false,
79
79
  components: {
80
80
  PolyTransition
@@ -87,8 +87,8 @@ export const YLayer = defineComponent({
87
87
  ...pressYLayerProps()
88
88
  },
89
89
  emits: {
90
- 'update:modelValue': value => true,
91
- 'click:complement': mouseEvent => true,
90
+ "update:modelValue": value => true,
91
+ "click:complement": mouseEvent => true,
92
92
  afterLeave: () => true
93
93
  },
94
94
  slots: Object,
@@ -140,13 +140,13 @@ export const YLayer = defineComponent({
140
140
  const {
141
141
  lazyValue,
142
142
  onAfterUpdate
143
- } = useLazy(toRef(props, 'eager'), active);
143
+ } = useLazy(toRef(props, "eager"), active);
144
144
  // States
145
145
  const finish = shallowRef(false);
146
146
  const hovered = ref(false);
147
147
  const focused = ref(false);
148
- const disabled = toRef(props, 'disabled');
149
- const maximized = toRef(props, 'maximized');
148
+ const disabled = toRef(props, "disabled");
149
+ const maximized = toRef(props, "maximized");
150
150
  const rendered = computed(() => !disabled.value && (lazyValue.value || active.value));
151
151
  const {
152
152
  coordinateStyles,
@@ -164,7 +164,7 @@ export const YLayer = defineComponent({
164
164
  updateCoordinate
165
165
  });
166
166
  function onClickComplementLayer(mouseEvent) {
167
- emit('click:complement', mouseEvent);
167
+ emit("click:complement", mouseEvent);
168
168
  if (!props.modal) {
169
169
  if (scrim$.value !== null && scrim$.value === mouseEvent.target && props.closeClickScrim) {
170
170
  active.value = false;
@@ -187,7 +187,7 @@ export const YLayer = defineComponent({
187
187
  function onAfterLeave() {
188
188
  onAfterUpdate();
189
189
  finish.value = false;
190
- emit('afterLeave');
190
+ emit("afterLeave");
191
191
  }
192
192
  function onClickScrim() {
193
193
  if (props.closeClickScrim) {
@@ -202,7 +202,7 @@ export const YLayer = defineComponent({
202
202
  }
203
203
  const computedStyle = computed(() => {
204
204
  return {
205
- zIndex: (props.zIndex ?? '2000').toString()
205
+ zIndex: (props.zIndex ?? "2000").toString()
206
206
  };
207
207
  });
208
208
  const computedClass = computed(() => {
@@ -212,7 +212,7 @@ export const YLayer = defineComponent({
212
212
  const boundClasses = bindClasses(classes);
213
213
  return {
214
214
  ...boundClasses,
215
- 'y-layer--active': !!active.value
215
+ "y-layer--active": !!active.value
216
216
  };
217
217
  });
218
218
  const computedContentClasses = computed(() => {
@@ -243,8 +243,8 @@ export const YLayer = defineComponent({
243
243
  props: mergeProps({
244
244
  ref: base$,
245
245
  class: {
246
- 'y-layer-base': true,
247
- 'y-layer-base--active': active.value
246
+ "y-layer-base": true,
247
+ "y-layer-base--active": active.value
248
248
  },
249
249
  ...(props.baseProps ?? {})
250
250
  })
@@ -256,9 +256,9 @@ export const YLayer = defineComponent({
256
256
  }, {
257
257
  default: () => [rendered.value && _createVNode("div", _mergeProps({
258
258
  "class": [{
259
- 'y-layer': true,
260
- 'y-layer--finish': finish.value,
261
- 'y-layer--contained': props.contained,
259
+ "y-layer": true,
260
+ "y-layer--finish": finish.value,
261
+ "y-layer--contained": props.contained,
262
262
  ...computedClass.value
263
263
  }, themeClasses.value],
264
264
  "onMouseenter": onMouseenter,
@@ -269,10 +269,12 @@ export const YLayer = defineComponent({
269
269
  "name": "fade",
270
270
  "appear": true
271
271
  }, {
272
- default: () => [active.value && props.scrim && _createVNode("div", {
272
+ default: () => [active.value && props.scrim && // biome-ignore lint/a11y/noStaticElementInteractions: <explanation>
273
+ // biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>
274
+ _createVNode("div", {
273
275
  "class": "y-layer__scrim",
274
276
  "style": {
275
- '--y-layer-scrim-opacity': props.scrimOpacity
277
+ "--y-layer-scrim-opacity": props.scrimOpacity
276
278
  },
277
279
  "onClick": onClickScrim,
278
280
  "onKeydown": noop(),
@@ -286,7 +288,7 @@ export const YLayer = defineComponent({
286
288
  }, polyTransitionBindProps.value), {
287
289
  default: () => [_withDirectives(_createVNode("div", _mergeProps({
288
290
  "class": {
289
- 'y-layer__content': true,
291
+ "y-layer__content": true,
290
292
  ...computedContentClasses.value
291
293
  },
292
294
  "style": [{
@@ -1 +1 @@
1
- {"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","toRef","Transition","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from 'vue';\nimport {\n computed,\n getCurrentInstance,\n mergeProps,\n reactive,\n ref,\n shallowRef,\n Teleport,\n toRef,\n Transition,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { pressCoordinateProps, useCoordinate } from '@/composables/coordinate';\nimport {\n pressDimensionPropsOptions,\n useDimension,\n} from '@/composables/dimension';\nimport { useLayerGroup } from '@/composables/layer-group';\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\nimport { useLazy } from '@/composables/timing';\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from '@/composables/transition';\nimport {\n ComplementClick,\n ComplementClickBindingOptions,\n} from '@/directives/complement-click';\nimport { bindClasses, defineComponent, propsFactory } from '@/util/component';\n\nimport { pressBasePropsOptions, useBase } from './base';\nimport { pressContentPropsOptions, useContent } from './content';\nimport {\n pressScrollStrategyProps,\n useScrollStrategies,\n} from './scroll-strategies';\n\nimport './YLayer.scss';\nimport { CssProperties } from '@/types';\nimport { noop } from '@/util';\n\nexport const pressYLayerProps = propsFactory(\n {\n modelValue: {\n type: Boolean as PropType<boolean>,\n },\n scrim: {\n type: Boolean as PropType<boolean>,\n },\n scrimOpacity: {\n type: Number as PropType<number>,\n },\n eager: {\n type: Boolean as PropType<boolean>,\n },\n classes: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n contentClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n closeClickScrim: {\n type: Boolean as PropType<boolean>,\n },\n contentStyles: {\n type: Object as PropType<CssProperties>,\n default: () => {},\n },\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n maximized: {\n type: Boolean as PropType<boolean>,\n },\n openOnHover: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n zIndex: {\n type: [Number, String] as PropType<number | string>,\n default: 2000,\n },\n contained: Boolean,\n layerGroup: [String, Object] as PropType<string | Element>,\n ...pressThemePropsOptions(),\n ...pressPolyTransitionPropsOptions(),\n ...pressBasePropsOptions(),\n ...pressContentPropsOptions(),\n ...pressCoordinateProps(),\n ...pressScrollStrategyProps(),\n ...pressDimensionPropsOptions(),\n },\n 'YLayer',\n);\n\nexport const YLayer = defineComponent({\n name: 'YLayer',\n inheritAttrs: false,\n components: {\n PolyTransition,\n },\n directives: {\n ComplementClick,\n },\n props: {\n modal: Boolean as PropType<boolean>,\n ...pressYLayerProps(),\n },\n emits: {\n 'update:modelValue': (value: boolean) => true,\n 'click:complement': (mouseEvent: MouseEvent) => true,\n afterLeave: () => true,\n },\n slots: Object as SlotsType<{\n base: any;\n default: any;\n }>,\n setup(props, { emit, expose, attrs, slots }) {\n const vm = getCurrentInstance();\n const scrim$ = ref<HTMLElement>();\n const content$ = ref<HTMLElement>();\n const root$ = ref<HTMLElement>();\n const model = useModelDuplex(props);\n const active = computed({\n get: (): boolean => {\n return !!model.value;\n },\n set: (v: boolean) => {\n if (!(v && props.disabled)) model.value = v;\n },\n });\n // Frags\n const { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n const { contentEvents } = useContent(props, active);\n const { themeClasses } = useLocalTheme(props);\n const { layerGroup, layerGroupState, getActiveLayers } =\n useLayerGroup(props);\n const { polyTransitionBindProps } = usePolyTransition(props);\n const { dimensionStyles } = useDimension(props);\n\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\n // States\n const finish = shallowRef(false);\n const hovered = ref(false);\n const focused = ref(false);\n const disabled = toRef(props, 'disabled');\n const maximized = toRef(props, 'maximized');\n\n const rendered = computed<boolean>(\n () => !disabled.value && (lazyValue.value || active.value),\n );\n\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\n contentEl: content$,\n base,\n active,\n });\n useScrollStrategies(props, {\n root: root$,\n contentEl: content$,\n active,\n baseEl: base,\n updateCoordinate,\n });\n\n function onClickComplementLayer(mouseEvent: MouseEvent) {\n emit('click:complement', mouseEvent);\n if (!props.modal) {\n if (\n scrim$.value !== null &&\n scrim$.value === mouseEvent.target &&\n props.closeClickScrim\n ) {\n active.value = false;\n }\n } else {\n // TODO: shrug ani\n }\n }\n\n function closeConditional(): boolean {\n return (\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n active.value &&\n finish.value\n ); // TODO: && groupTopLevel.value;\n }\n\n const complementClickOption = reactive<ComplementClickBindingOptions>({\n handler: onClickComplementLayer,\n determine: closeConditional,\n include: () => [baseEl.value],\n });\n\n function onAfterEnter() {\n finish.value = true;\n }\n\n function onAfterLeave() {\n onAfterUpdate();\n finish.value = false;\n emit('afterLeave');\n }\n\n function onClickScrim() {\n if (props.closeClickScrim) {\n active.value = false;\n }\n }\n\n function onMouseenter(event: Event) {\n hovered.value = true;\n }\n\n function onMouseleave(event: Event) {\n hovered.value = false;\n }\n\n const computedStyle = computed(() => {\n return {\n zIndex: (props.zIndex ?? '2000').toString(),\n };\n });\n\n const computedClass = computed<Record<string, boolean>>(() => {\n const { classes } = props;\n const boundClasses = bindClasses(classes);\n return {\n ...boundClasses,\n 'y-layer--active': !!active.value,\n };\n });\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n };\n });\n\n expose({\n scrim$,\n base$,\n content$: computed(() => content$.value),\n baseEl,\n active,\n onAfterUpdate,\n updateCoordinate,\n hovered,\n finish,\n modal: computed(() => props.modal),\n getActiveLayers,\n isMe: (vnode: ComponentInternalInstance) => {\n return vnode === vm;\n },\n });\n\n useRender(() => {\n const slotBase = slots.base?.({\n active: active.value,\n props: mergeProps({\n ref: base$,\n class: {\n 'y-layer-base': true,\n 'y-layer-base--active': active.value,\n },\n ...(props.baseProps ?? {}),\n }),\n });\n baseSlot.value = slotBase;\n return (\n <>\n {slotBase}\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n {rendered.value && (\n <div\n class={[\n {\n 'y-layer': true,\n 'y-layer--finish': finish.value,\n 'y-layer--contained': props.contained,\n ...computedClass.value,\n },\n themeClasses.value,\n ]}\n onMouseenter={onMouseenter}\n onMouseleave={onMouseleave}\n style={computedStyle.value}\n ref={root$}\n {...attrs}\n >\n <Transition name=\"fade\" appear>\n {active.value && props.scrim && (\n <div\n class=\"y-layer__scrim\"\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\n onClick={onClickScrim}\n onKeydown={noop()}\n onKeyup={noop()}\n ref=\"scrim$\"\n ></div>\n )}\n </Transition>\n <PolyTransition\n onAfterEnter={onAfterEnter}\n onAfterLeave={onAfterLeave}\n appear\n {...polyTransitionBindProps.value}\n >\n <div\n v-show={active.value}\n v-complement-click={{ ...complementClickOption }}\n class={{\n 'y-layer__content': true,\n ...computedContentClasses.value,\n }}\n style={[\n {\n ...dimensionStyles.value,\n ...coordinateStyles.value,\n ...props.contentStyles,\n },\n ]}\n {...contentEvents.value}\n ref={content$}\n >\n {slots.default?.({ active: active.value })}\n </div>\n </PolyTransition>\n </div>\n )}\n </Teleport>\n </>\n );\n });\n\n return {\n complementClickOption,\n layerGroup,\n active,\n finish,\n rendered,\n lazyValue,\n onAfterUpdate: onAfterUpdate as () => void,\n scrim$,\n content$,\n base$,\n baseEl,\n baseFromSlotEl,\n polyTransitionBindProps,\n coordinateStyles,\n layerGroupState,\n getActiveLayers,\n };\n },\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\nimport {\n\tcomputed,\n\tgetCurrentInstance,\n\tmergeProps,\n\treactive,\n\tref,\n\tshallowRef,\n\tTeleport,\n\tTransition,\n\ttoRef,\n} from \"vue\";\n\nimport { useModelDuplex } from \"@/composables/communication\";\nimport { useRender } from \"@/composables/component\";\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\nimport {\n\tpressDimensionPropsOptions,\n\tuseDimension,\n} from \"@/composables/dimension\";\nimport { useLayerGroup } from \"@/composables/layer-group\";\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\nimport { useLazy } from \"@/composables/timing\";\nimport {\n\tPolyTransition,\n\tpressPolyTransitionPropsOptions,\n\tusePolyTransition,\n} from \"@/composables/transition\";\nimport {\n\tComplementClick,\n\ttype ComplementClickBindingOptions,\n} from \"@/directives/complement-click\";\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\n\nimport { pressBasePropsOptions, useBase } from \"./base\";\nimport { pressContentPropsOptions, useContent } from \"./content\";\nimport {\n\tpressScrollStrategyProps,\n\tuseScrollStrategies,\n} from \"./scroll-strategies\";\n\nimport \"./YLayer.scss\";\nimport type { CssProperties } from \"@/types\";\nimport { noop } from \"@/util\";\n\nexport const pressYLayerProps = propsFactory(\n\t{\n\t\tmodelValue: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrimOpacity: {\n\t\t\ttype: Number as PropType<number>,\n\t\t},\n\t\teager: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tclasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcontentClasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcloseClickScrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tcontentStyles: {\n\t\t\ttype: Object as PropType<CssProperties>,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\tmaximized: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\topenOnHover: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\topenDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tcloseDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tzIndex: {\n\t\t\ttype: [Number, String] as PropType<number | string>,\n\t\t\tdefault: 2000,\n\t\t},\n\t\tcontained: Boolean,\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\n\t\t...pressThemePropsOptions(),\n\t\t...pressPolyTransitionPropsOptions(),\n\t\t...pressBasePropsOptions(),\n\t\t...pressContentPropsOptions(),\n\t\t...pressCoordinateProps(),\n\t\t...pressScrollStrategyProps(),\n\t\t...pressDimensionPropsOptions(),\n\t},\n\t\"YLayer\",\n);\n\nexport const YLayer = defineComponent({\n\tname: \"YLayer\",\n\tinheritAttrs: false,\n\tcomponents: {\n\t\tPolyTransition,\n\t},\n\tdirectives: {\n\t\tComplementClick,\n\t},\n\tprops: {\n\t\tmodal: Boolean as PropType<boolean>,\n\t\t...pressYLayerProps(),\n\t},\n\temits: {\n\t\t\"update:modelValue\": (value: boolean) => true,\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\n\t\tafterLeave: () => true,\n\t},\n\tslots: Object as SlotsType<{\n\t\tbase: any;\n\t\tdefault: any;\n\t}>,\n\tsetup(props, { emit, expose, attrs, slots }) {\n\t\tconst vm = getCurrentInstance();\n\t\tconst scrim$ = ref<HTMLElement>();\n\t\tconst content$ = ref<HTMLElement>();\n\t\tconst root$ = ref<HTMLElement>();\n\t\tconst model = useModelDuplex(props);\n\t\tconst active = computed({\n\t\t\tget: (): boolean => {\n\t\t\t\treturn !!model.value;\n\t\t\t},\n\t\t\tset: (v: boolean) => {\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\n\t\t\t},\n\t\t});\n\t\t// Frags\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\t\tconst { contentEvents } = useContent(props, active);\n\t\tconst { themeClasses } = useLocalTheme(props);\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\n\t\t\tuseLayerGroup(props);\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\n\t\tconst { dimensionStyles } = useDimension(props);\n\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\n\t\t// States\n\t\tconst finish = shallowRef(false);\n\t\tconst hovered = ref(false);\n\t\tconst focused = ref(false);\n\t\tconst disabled = toRef(props, \"disabled\");\n\t\tconst maximized = toRef(props, \"maximized\");\n\n\t\tconst rendered = computed<boolean>(\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\n\t\t);\n\n\t\tconst { coordinateStyles, updateCoordinate } = useCoordinate(props, {\n\t\t\tcontentEl: content$,\n\t\t\tbase,\n\t\t\tactive,\n\t\t});\n\t\tuseScrollStrategies(props, {\n\t\t\troot: root$,\n\t\t\tcontentEl: content$,\n\t\t\tactive,\n\t\t\tbaseEl: base,\n\t\t\tupdateCoordinate,\n\t\t});\n\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\n\t\t\temit(\"click:complement\", mouseEvent);\n\t\t\tif (!props.modal) {\n\t\t\t\tif (\n\t\t\t\t\tscrim$.value !== null &&\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\n\t\t\t\t\tprops.closeClickScrim\n\t\t\t\t) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// TODO: shrug ani\n\t\t\t}\n\t\t}\n\n\t\tfunction closeConditional(): boolean {\n\t\t\treturn (\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n\t\t\t\tactive.value &&\n\t\t\t\tfinish.value\n\t\t\t); // TODO: && groupTopLevel.value;\n\t\t}\n\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\n\t\t\thandler: onClickComplementLayer,\n\t\t\tdetermine: closeConditional,\n\t\t\tinclude: () => [baseEl.value],\n\t\t});\n\n\t\tfunction onAfterEnter() {\n\t\t\tfinish.value = true;\n\t\t}\n\n\t\tfunction onAfterLeave() {\n\t\t\tonAfterUpdate();\n\t\t\tfinish.value = false;\n\t\t\temit(\"afterLeave\");\n\t\t}\n\n\t\tfunction onClickScrim() {\n\t\t\tif (props.closeClickScrim) {\n\t\t\t\tactive.value = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseenter(event: Event) {\n\t\t\thovered.value = true;\n\t\t}\n\n\t\tfunction onMouseleave(event: Event) {\n\t\t\thovered.value = false;\n\t\t}\n\n\t\tconst computedStyle = computed(() => {\n\t\t\treturn {\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\n\t\t\t};\n\t\t});\n\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\n\t\t\tconst { classes } = props;\n\t\t\tconst boundClasses = bindClasses(classes);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t\t\"y-layer--active\": !!active.value,\n\t\t\t};\n\t\t});\n\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t};\n\t\t});\n\n\t\texpose({\n\t\t\tscrim$,\n\t\t\tbase$,\n\t\t\tcontent$: computed(() => content$.value),\n\t\t\tbaseEl,\n\t\t\tactive,\n\t\t\tonAfterUpdate,\n\t\t\tupdateCoordinate,\n\t\t\thovered,\n\t\t\tfinish,\n\t\t\tmodal: computed(() => props.modal),\n\t\t\tgetActiveLayers,\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\n\t\t\t\treturn vnode === vm;\n\t\t\t},\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\tconst slotBase = slots.base?.({\n\t\t\t\tactive: active.value,\n\t\t\t\tprops: mergeProps({\n\t\t\t\t\tref: base$,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t\"y-layer-base\": true,\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\n\t\t\t\t\t},\n\t\t\t\t\t...(props.baseProps ?? {}),\n\t\t\t\t}),\n\t\t\t});\n\t\t\tbaseSlot.value = slotBase;\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{slotBase}\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n\t\t\t\t\t\t{rendered.value && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\n\t\t\t\t\t\t\t\tref={root$}\n\t\t\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\n\t\t\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Transition>\n\t\t\t\t\t\t\t\t<PolyTransition\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\n\t\t\t\t\t\t\t\t\tappear\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\n\t\t\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\n\t\t\t\t\t\t\t\t\t\tref={content$}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</PolyTransition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Teleport>\n\t\t\t\t</>\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tcomplementClickOption,\n\t\t\tlayerGroup,\n\t\t\tactive,\n\t\t\tfinish,\n\t\t\trendered,\n\t\t\tlazyValue,\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\n\t\t\tscrim$,\n\t\t\tcontent$,\n\t\t\tbase$,\n\t\t\tbaseEl,\n\t\t\tbaseFromSlotEl,\n\t\t\tpolyTransitionBindProps,\n\t\t\tcoordinateStyles,\n\t\t\tlayerGroupState,\n\t\t\tgetActiveLayers,\n\t\t};\n\t},\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from 'vue';\n\nexport interface CoordinateState {\n contentEl: Ref<HTMLElement | undefined>;\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\n active: Ref<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from 'vue';\n\nexport interface CoordinateState {\n contentEl: Ref<HTMLElement | undefined>;\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\n active: Ref<boolean>;\n placement?: Ref<any>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["CLASS_NAME","showAnimation","el","animation","document","createElement","className","appendChild","dataset","activated","String","performance","now","hideAnimation","animations","getElementsByClassName","length","isHiding","diff","Number","delay","Math","max","setTimeout","removeChild","keyboardEventFlag","spawn","event","currentTarget","clean","stop","keyboardSpawn","key","keyboardClean","destroyListeners","removeEventListener","attachWave","binding","init","arguments","undefined","value","modifiers","enabled","addEventListener","PlateWave","mounted","updated","oldValue","unmount"],"sources":["../../../src/directives/plate-wave/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue';\n\nimport './plate-wave.scss';\n\nexport interface PlateWaveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean;\n modifiers: { stop?: boolean };\n}\n\nconst CLASS_NAME = 'y-plate-wave__animation';\n\nfunction showAnimation(el: HTMLElement | null) {\n if (!el) return;\n const animation = document.createElement('span');\n animation.className = CLASS_NAME;\n el.appendChild(animation);\n animation.dataset.activated = String(performance.now());\n}\n\nfunction hideAnimation(el: HTMLElement | null) {\n if (!el) {\n return;\n }\n const animations = el.getElementsByClassName(CLASS_NAME);\n if (animations.length === 0) return;\n const animation = animations[animations.length - 1] as HTMLElement;\n if (animation.dataset.isHiding) return;\n animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n if (animation) {\n el.removeChild(animation);\n }\n }, delay + 300);\n}\n\n/*\n * Event\n * */\n\nlet keyboardEventFlag = false;\n\nfunction spawn(event: Event) {\n showAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction clean(event: Event) {\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction stop(event: Event) {\n //\n}\n\nfunction keyboardSpawn(event: KeyboardEvent) {\n if (!keyboardEventFlag && (event.key === 'Enter' || event.key === 'Space')) {\n keyboardEventFlag = true;\n showAnimation(event.currentTarget as HTMLElement);\n }\n}\n\nfunction keyboardClean(event: KeyboardEvent) {\n keyboardEventFlag = false;\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction destroyListeners(el: HTMLElement) {\n el.removeEventListener('mousedown', spawn);\n el.removeEventListener('mouseup', clean);\n el.removeEventListener('mouseleave', clean);\n el.removeEventListener('keydown', keyboardSpawn);\n el.removeEventListener('keyup', keyboardClean);\n}\n\nfunction attachWave(el: HTMLElement, binding: PlateWaveBinding, init = false) {\n const { value, modifiers } = binding;\n let enabled = value ?? true;\n if (typeof value === 'boolean') {\n enabled = value;\n }\n if (!enabled) hideAnimation(el);\n\n if (enabled && init) {\n if (modifiers.stop) {\n el.addEventListener('mousedown', stop);\n return;\n }\n\n el.addEventListener('mousedown', spawn);\n el.addEventListener('mouseup', clean);\n el.addEventListener('mouseleave', clean);\n el.addEventListener('keydown', keyboardSpawn);\n el.addEventListener('keyup', keyboardClean);\n el.addEventListener('blur', clean);\n } else if (!enabled && !init) {\n destroyListeners(el);\n }\n}\n\nexport const PlateWave = {\n mounted(el: HTMLElement, binding: PlateWaveBinding) {\n attachWave(el, binding, true);\n },\n updated(el: HTMLElement, binding: PlateWaveBinding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n attachWave(el, binding);\n },\n unmount(el: HTMLElement) {\n destroyListeners(el);\n },\n};\n\nexport type PlateWaveDirective = Directive<HTMLElement, PlateWaveBinding>;\n\ndeclare module 'vue' {\n export interface ComponentCustomProperties {\n vPlateWave: PlateWaveDirective;\n }\n}\n\nexport default PlateWave;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["CLASS_NAME","showAnimation","el","animation","document","createElement","className","appendChild","dataset","activated","String","performance","now","hideAnimation","animations","getElementsByClassName","length","isHiding","diff","Number","delay","Math","max","setTimeout","removeChild","keyboardEventFlag","spawn","event","currentTarget","clean","stop","keyboardSpawn","key","keyboardClean","destroyListeners","removeEventListener","attachWave","binding","init","arguments","undefined","value","modifiers","enabled","addEventListener","PlateWave","mounted","updated","oldValue","unmount"],"sources":["../../../src/directives/plate-wave/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue';\n\nimport './plate-wave.scss';\n\nexport interface PlateWaveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean;\n modifiers: { stop?: boolean };\n}\n\nconst CLASS_NAME = 'y-plate-wave__animation';\n\nfunction showAnimation(el: HTMLElement | null) {\n if (!el) return;\n const animation = document.createElement('span');\n animation.className = CLASS_NAME;\n el.appendChild(animation);\n animation.dataset.activated = String(performance.now());\n}\n\nfunction hideAnimation(el: HTMLElement | null) {\n if (!el) {\n return;\n }\n const animations = el.getElementsByClassName(CLASS_NAME);\n if (animations.length === 0) return;\n const animation = animations[animations.length - 1] as HTMLElement;\n if (animation.dataset.isHiding) return;\n animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n if (animation) {\n el.removeChild(animation);\n }\n }, delay + 300);\n}\n\n/*\n * Event\n * */\n\nlet keyboardEventFlag = false;\n\nfunction spawn(event: Event) {\n showAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction clean(event: Event) {\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction stop(event: Event) {\n //\n}\n\nfunction keyboardSpawn(event: KeyboardEvent) {\n if (!keyboardEventFlag && (event.key === 'Enter' || event.key === 'Space')) {\n keyboardEventFlag = true;\n showAnimation(event.currentTarget as HTMLElement);\n }\n}\n\nfunction keyboardClean(event: KeyboardEvent) {\n keyboardEventFlag = false;\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction destroyListeners(el: HTMLElement) {\n el.removeEventListener('mousedown', spawn);\n el.removeEventListener('mouseup', clean);\n el.removeEventListener('mouseleave', clean);\n el.removeEventListener('keydown', keyboardSpawn);\n el.removeEventListener('keyup', keyboardClean);\n}\n\nfunction attachWave(el: HTMLElement, binding: PlateWaveBinding, init = false) {\n const { value, modifiers } = binding;\n let enabled = value ?? true;\n if (typeof value === 'boolean') {\n enabled = value;\n }\n if (!enabled) hideAnimation(el);\n\n if (enabled && init) {\n if (modifiers.stop) {\n el.addEventListener('mousedown', stop);\n return;\n }\n\n el.addEventListener('mousedown', spawn);\n el.addEventListener('mouseup', clean);\n el.addEventListener('mouseleave', clean);\n el.addEventListener('keydown', keyboardSpawn);\n el.addEventListener('keyup', keyboardClean);\n el.addEventListener('blur', clean);\n } else if (!enabled && !init) {\n destroyListeners(el);\n }\n}\n\nexport const PlateWave = {\n mounted(el: HTMLElement, binding: PlateWaveBinding) {\n attachWave(el, binding, true);\n },\n updated(el: HTMLElement, binding: PlateWaveBinding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n attachWave(el, binding);\n },\n unmount(el: HTMLElement) {\n destroyListeners(el);\n },\n};\n\nexport type PlateWaveDirective = Directive<HTMLElement, boolean>;\n\ndeclare module 'vue' {\n export interface ComponentCustomProperties {\n vPlateWave: PlateWaveDirective;\n }\n}\n\nexport default PlateWave;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.3.4-beta.14",
3
+ "version": "0.3.4-beta.17",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -577,8 +577,8 @@ export declare const YDialog: import('vue').DefineComponent<{
577
577
  layerGroupState: WeakMap<HTMLElement, Set<any>>;
578
578
  getActiveLayers: () => import('vue').ComponentInternalInstance[];
579
579
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
580
- 'update:modelValue': (value: boolean) => true;
581
- 'click:complement': (mouseEvent: MouseEvent) => true;
580
+ "update:modelValue": (value: boolean) => true;
581
+ "click:complement": (mouseEvent: MouseEvent) => true;
582
582
  afterLeave: () => true;
583
583
  }, string> | undefined, import('vue').DefineComponent<{
584
584
  minWidth: PropType<number | string>;
@@ -703,8 +703,8 @@ export declare const YDialog: import('vue').DefineComponent<{
703
703
  layerGroupState: WeakMap<HTMLElement, Set<any>>;
704
704
  getActiveLayers: () => import('vue').ComponentInternalInstance[];
705
705
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
706
- 'update:modelValue': (value: boolean) => true;
707
- 'click:complement': (mouseEvent: MouseEvent) => true;
706
+ "update:modelValue": (value: boolean) => true;
707
+ "click:complement": (mouseEvent: MouseEvent) => true;
708
708
  afterLeave: () => true;
709
709
  }, string> | undefined>;
710
710
  classes: import('vue').ComputedRef<{
@@ -130,4 +130,7 @@ export declare const YImg: import('vue').DefineComponent<{
130
130
  src: PropType<string>;
131
131
  crossorigin: PropType<ImgHTMLAttributes["crossorigin"]>;
132
132
  referrerpolicy: PropType<ImgHTMLAttributes["referrerpolicy"]>;
133
- }, void, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("error" | "load" | "loaded")[], "error" | "load" | "loaded">;
133
+ }, {
134
+ status: import('vue').ShallowRef<YImgStatus, YImgStatus>;
135
+ image$: import('vue').Ref<HTMLImageElement | undefined, HTMLImageElement | undefined>;
136
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("error" | "load" | "loaded")[], "error" | "load" | "loaded">;
@@ -0,0 +1 @@
1
+ export * from './YImg';
@@ -36,3 +36,4 @@ export * from './ip-field';
36
36
  export * from './hover';
37
37
  export * from './text-interpolation';
38
38
  export * from './text-highlighter';
39
+ export * from './img';
@@ -429,8 +429,8 @@ export declare const YLayer: import('vue').DefineComponent<{
429
429
  layerGroupState: WeakMap<HTMLElement, Set<any>>;
430
430
  getActiveLayers: () => ComponentInternalInstance[];
431
431
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
432
- 'update:modelValue': (value: boolean) => true;
433
- 'click:complement': (mouseEvent: MouseEvent) => true;
432
+ "update:modelValue": (value: boolean) => true;
433
+ "click:complement": (mouseEvent: MouseEvent) => true;
434
434
  afterLeave: () => true;
435
435
  }, string>;
436
436
  export type YLayer = InstanceType<typeof YLayer>;
@@ -373,8 +373,8 @@ export declare const YMenu: import('vue').DefineComponent<{
373
373
  layerGroupState: WeakMap<HTMLElement, Set<any>>;
374
374
  getActiveLayers: () => import('vue').ComponentInternalInstance[];
375
375
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
376
- 'update:modelValue': (value: boolean) => true;
377
- 'click:complement': (mouseEvent: MouseEvent) => true;
376
+ "update:modelValue": (value: boolean) => true;
377
+ "click:complement": (mouseEvent: MouseEvent) => true;
378
378
  afterLeave: () => true;
379
379
  }, string> | undefined, import('vue').DefineComponent<{
380
380
  minWidth: PropType<number | string>;
@@ -499,8 +499,8 @@ export declare const YMenu: import('vue').DefineComponent<{
499
499
  layerGroupState: WeakMap<HTMLElement, Set<any>>;
500
500
  getActiveLayers: () => import('vue').ComponentInternalInstance[];
501
501
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
502
- 'update:modelValue': (value: boolean) => true;
503
- 'click:complement': (mouseEvent: MouseEvent) => true;
502
+ "update:modelValue": (value: boolean) => true;
503
+ "click:complement": (mouseEvent: MouseEvent) => true;
504
504
  afterLeave: () => true;
505
505
  }, string> | undefined>;
506
506
  baseEl: import('vue').ComputedRef<any>;
@@ -4,4 +4,5 @@ export interface CoordinateState {
4
4
  contentEl: Ref<HTMLElement | undefined>;
5
5
  base: Ref<HTMLElement | [x: number, y: number] | undefined>;
6
6
  active: Ref<boolean>;
7
+ placement?: Ref<any>;
7
8
  }
@@ -11,7 +11,7 @@ export declare const PlateWave: {
11
11
  updated(el: HTMLElement, binding: PlateWaveBinding): void;
12
12
  unmount(el: HTMLElement): void;
13
13
  };
14
- export type PlateWaveDirective = Directive<HTMLElement, PlateWaveBinding>;
14
+ export type PlateWaveDirective = Directive<HTMLElement, boolean>;
15
15
  declare module 'vue' {
16
16
  interface ComponentCustomProperties {
17
17
  vPlateWave: PlateWaveDirective;
package/types/shims.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { YAlert, YApp, YBadge, YButton, YCard, YCardBody, YCardFooter, YCardHeader, YCheckbox, YChip, YDataTable, YDataTableLayerRow, YDataTableLayerRows, YDataTableServer, YDateCalendar, YDatePicker, YDialog, YDividePanel, YDivider, YDropdown, YExpandHTransition, YExpandVTransition, YFieldInput, YForm, YHover, YIcon, YInput, YInputCheckbox, YIpv4Field, YLayer, YList, YListItem, YMenu, YMonthPicker, YPagination, YProgressBar, YProgressRing, YSelect, YSnackbar, YSpinnerRing, YSwitch, YTab, YTable, YTabs, YTextarea, YTextEllipsis, YTextHighlighter, YTi, YTooltip, YTreeView, YTreeViewNode } from 'yuyeon/components';
1
+ import { YAlert, YApp, YBadge, YButton, YCard, YCardBody, YCardFooter, YCardHeader, YCheckbox, YChip, YDataTable, YDataTableServer, YDateCalendar, YDatePicker, YDividePanel, YDivider, YExpandHTransition, YExpandVTransition, YFieldInput, YForm, YHover, YIcon, YImg, YInput, YIpv4Field, YLayer, YList, YListItem, YMenu, YMonthPicker, YPagination, YProgressBar, YProgressRing, YSelect, YSnackbar, YSpinnerRing, YSwitch, YTab, YTable, YTabs, YTextarea, YTextEllipsis, YTextHighlighter, YTi, YTooltip, YTreeView } from 'yuyeon/components';
2
2
 
3
3
 
4
- declare module 'vue' {
4
+ declare module "vue" {
5
5
  export interface GlobalComponents {
6
6
  // @define-components
7
7
  YApp: YApp;
@@ -55,10 +55,11 @@ declare module 'vue' {
55
55
  YTextHighlighter: YTextHighlighter;
56
56
  YProgressRing: YProgressRing;
57
57
  YTextEllipsis: YTextEllipsis;
58
+ YImg: YImg;
58
59
  }
59
60
 
60
61
  export interface GlobalDirectives {
61
- vPlateWave: typeof import('yuyeon/directives')['PlateWave'];
62
- vComplementClick: typeof import('yuyeon/directives')['ComplementClick'];
62
+ vPlateWave: (typeof import("yuyeon/directives"))["PlateWave"];
63
+ vComplementClick: (typeof import("yuyeon/directives"))["ComplementClick"];
63
64
  }
64
65
  }