@moubing/bing-ui 0.11.2 → 0.12.0

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 (210) hide show
  1. package/README.md +300 -171
  2. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  3. package/dist/bing-ui.css +1 -1
  4. package/dist/components/BingAnimatedText/BingAnimatedText.js +7 -0
  5. package/dist/components/BingAnimatedText/BingAnimatedText.vue_vue_type_script_setup_true_lang.js +194 -0
  6. package/dist/components/BingAppSwitcherTransition/BingAppSwitcherTransition.js +7 -0
  7. package/dist/components/BingAppSwitcherTransition/BingAppSwitcherTransition.vue_vue_type_script_setup_true_lang.js +244 -0
  8. package/dist/components/BingAutocomplete/BingAutocomplete.js +7 -0
  9. package/dist/components/BingAutocomplete/BingAutocomplete.vue.d.ts +4 -4
  10. package/dist/components/BingAutocomplete/BingAutocomplete.vue_vue_type_script_setup_true_lang.js +560 -0
  11. package/dist/components/BingButton/BingButton.js +7 -0
  12. package/dist/components/BingButton/BingButton.vue.d.ts +2 -2
  13. package/dist/components/BingButton/BingButton.vue_vue_type_script_setup_true_lang.js +200 -0
  14. package/dist/components/BingCard/BingCard.js +7 -0
  15. package/dist/components/BingCard/BingCard.vue_vue_type_script_setup_true_lang.js +481 -0
  16. package/dist/components/BingCarouselTransition/BingCarouselTransition.js +7 -0
  17. package/dist/components/BingCarouselTransition/BingCarouselTransition.vue_vue_type_script_setup_true_lang.js +174 -0
  18. package/dist/components/BingCheckbox/BingCheckbox.js +7 -0
  19. package/dist/components/BingCheckbox/BingCheckbox.vue.d.ts +4 -4
  20. package/dist/components/BingCheckbox/BingCheckbox.vue_vue_type_script_setup_true_lang.js +233 -0
  21. package/dist/components/BingCheckboxGroup/BingCheckboxGroup.context.js +4 -0
  22. package/dist/components/BingCheckboxGroup/BingCheckboxGroup.js +7 -0
  23. package/dist/components/BingCheckboxGroup/BingCheckboxGroup.vue.d.ts +4 -4
  24. package/dist/components/BingCheckboxGroup/BingCheckboxGroup.vue_vue_type_script_setup_true_lang.js +105 -0
  25. package/dist/components/BingCodeBlock/BingCodeBlock.highlight.js +78 -0
  26. package/dist/components/BingCodeBlock/BingCodeBlock.js +7 -0
  27. package/dist/components/BingCodeBlock/BingCodeBlock.vue_vue_type_script_setup_true_lang.js +347 -0
  28. package/dist/components/BingColorPicker/BingColorPicker.js +7 -0
  29. package/dist/components/BingColorPicker/BingColorPicker.utils.d.ts +70 -0
  30. package/dist/components/BingColorPicker/BingColorPicker.utils.js +265 -0
  31. package/dist/components/BingColorPicker/BingColorPicker.vue.d.ts +7 -7
  32. package/dist/components/BingColorPicker/BingColorPicker.vue_vue_type_script_setup_true_lang.js +540 -0
  33. package/dist/components/BingColorPicker/BingColorPickerFormatEditor.js +7 -0
  34. package/dist/components/BingColorPicker/BingColorPickerFormatEditor.vue.d.ts +27 -0
  35. package/dist/components/BingColorPicker/BingColorPickerFormatEditor.vue_vue_type_script_setup_true_lang.js +142 -0
  36. package/dist/components/BingColorPicker/BingColorPickerSpectrum.js +7 -0
  37. package/dist/components/BingColorPicker/BingColorPickerSpectrum.vue.d.ts +26 -0
  38. package/dist/components/BingColorPicker/BingColorPickerSpectrum.vue_vue_type_script_setup_true_lang.js +168 -0
  39. package/dist/components/BingConfigProvider/BingConfigProvider.js +5 -0
  40. package/dist/components/BingConfigProvider/BingConfigProvider.types.d.ts +5 -0
  41. package/dist/components/BingConfigProvider/BingConfigProvider.vue.d.ts +18 -0
  42. package/dist/components/BingConfigProvider/BingConfigProvider.vue_vue_type_script_setup_true_lang.js +18 -0
  43. package/dist/components/BingConfigProvider/index.d.ts +3 -0
  44. package/dist/components/BingCursor/BingCursor.controller.js +240 -0
  45. package/dist/components/BingCursor/BingCursor.js +7 -0
  46. package/dist/components/BingCursor/BingCursor.native.js +20 -0
  47. package/dist/components/BingCursor/BingCursor.presets.js +60 -0
  48. package/dist/components/BingCursor/BingCursor.shapes.js +83 -0
  49. package/dist/components/BingCursor/BingCursor.styleSource.js +83 -0
  50. package/dist/components/BingCursor/BingCursor.vue_vue_type_script_setup_true_lang.js +73 -0
  51. package/dist/components/BingDatePicker/BingDatePicker.js +7 -0
  52. package/dist/components/BingDatePicker/BingDatePicker.utils.d.ts +26 -0
  53. package/dist/components/BingDatePicker/BingDatePicker.utils.js +137 -0
  54. package/dist/components/BingDatePicker/BingDatePicker.vue.d.ts +14 -14
  55. package/dist/components/BingDatePicker/BingDatePicker.vue_vue_type_script_setup_true_lang.js +804 -0
  56. package/dist/components/BingDatePicker/BingDatePickerCalendar.js +7 -0
  57. package/dist/components/BingDatePicker/BingDatePickerCalendar.vue.d.ts +37 -0
  58. package/dist/components/BingDatePicker/BingDatePickerCalendar.vue_vue_type_script_setup_true_lang.js +248 -0
  59. package/dist/components/BingDatePicker/BingDatePickerTimePanel.js +7 -0
  60. package/dist/components/BingDatePicker/BingDatePickerTimePanel.vue.d.ts +26 -0
  61. package/dist/components/BingDatePicker/BingDatePickerTimePanel.vue_vue_type_script_setup_true_lang.js +97 -0
  62. package/dist/components/BingDeckTransition/BingDeckTransition.js +7 -0
  63. package/dist/components/BingDeckTransition/BingDeckTransition.vue_vue_type_script_setup_true_lang.js +187 -0
  64. package/dist/components/BingDialog/BingDialog.js +7 -0
  65. package/dist/components/BingDialog/BingDialog.vue.d.ts +4 -5
  66. package/dist/components/BingDialog/BingDialog.vue_vue_type_script_setup_true_lang.js +558 -0
  67. package/dist/components/BingDropDown/BingDropDown.context.js +4 -0
  68. package/dist/components/BingDropDown/BingDropDown.js +7 -0
  69. package/dist/components/BingDropDown/BingDropDown.vue.d.ts +1 -2
  70. package/dist/components/BingDropDown/BingDropDown.vue_vue_type_script_setup_true_lang.js +649 -0
  71. package/dist/components/BingDropDown/BingDropDownItem.js +7 -0
  72. package/dist/components/BingDropDown/BingDropDownItem.vue.d.ts +1 -1
  73. package/dist/components/BingDropDown/BingDropDownItem.vue_vue_type_script_setup_true_lang.js +308 -0
  74. package/dist/components/BingFilePreview/BingFilePreview.js +7 -0
  75. package/dist/components/BingFilePreview/BingFilePreview.vue.d.ts +4 -5
  76. package/dist/components/BingFilePreview/BingFilePreview.vue_vue_type_script_setup_true_lang.js +589 -0
  77. package/dist/components/BingForm/BingForm.context.js +7 -0
  78. package/dist/components/BingForm/BingForm.js +7 -0
  79. package/dist/components/BingForm/BingForm.vue.d.ts +0 -1
  80. package/dist/components/BingForm/BingForm.vue_vue_type_script_setup_true_lang.js +300 -0
  81. package/dist/components/BingForm/formFocus.js +13 -0
  82. package/dist/components/BingForm/formTabOrder.js +27 -0
  83. package/dist/components/BingForm/useFormControl.d.ts +1 -1
  84. package/dist/components/BingForm/useFormControl.js +24 -0
  85. package/dist/components/BingForm/useFormNextHint.js +135 -0
  86. package/dist/components/BingFormItem/BingFormItem.js +7 -0
  87. package/dist/components/BingFormItem/BingFormItem.vue.d.ts +1 -1
  88. package/dist/components/BingFormItem/BingFormItem.vue_vue_type_script_setup_true_lang.js +252 -0
  89. package/dist/components/BingIcon/BingIcon.js +7 -0
  90. package/dist/components/BingIcon/BingIcon.vue_vue_type_script_setup_true_lang.js +48 -0
  91. package/dist/components/BingImage/BingImage.js +7 -0
  92. package/dist/components/BingImage/BingImage.vue_vue_type_script_setup_true_lang.js +244 -0
  93. package/dist/components/BingImagePreview/BingImagePreview.js +7 -0
  94. package/dist/components/BingImagePreview/BingImagePreview.vue.d.ts +4 -5
  95. package/dist/components/BingImagePreview/BingImagePreview.vue_vue_type_script_setup_true_lang.js +699 -0
  96. package/dist/components/BingInput/BingInput.js +7 -0
  97. package/dist/components/BingInput/BingInput.vue.d.ts +6 -6
  98. package/dist/components/BingInput/BingInput.vue_vue_type_script_setup_true_lang.js +311 -0
  99. package/dist/components/BingRadio/BingRadio.js +7 -0
  100. package/dist/components/BingRadio/BingRadio.vue.d.ts +4 -4
  101. package/dist/components/BingRadio/BingRadio.vue_vue_type_script_setup_true_lang.js +170 -0
  102. package/dist/components/BingRadioGroup/BingRadioGroup.context.js +4 -0
  103. package/dist/components/BingRadioGroup/BingRadioGroup.js +7 -0
  104. package/dist/components/BingRadioGroup/BingRadioGroup.vue.d.ts +4 -4
  105. package/dist/components/BingRadioGroup/BingRadioGroup.vue_vue_type_script_setup_true_lang.js +125 -0
  106. package/dist/components/BingResizable/BingResizable.js +7 -0
  107. package/dist/components/BingResizable/BingResizable.vue.d.ts +1 -1
  108. package/dist/components/BingResizable/BingResizable.vue_vue_type_script_setup_true_lang.js +555 -0
  109. package/dist/components/BingScrollbar/BingScrollbar.js +7 -0
  110. package/dist/components/BingScrollbar/BingScrollbar.vue.d.ts +2 -2
  111. package/dist/components/BingScrollbar/BingScrollbar.vue_vue_type_script_setup_true_lang.js +398 -0
  112. package/dist/components/BingSelect/BingSelect.js +7 -0
  113. package/dist/components/BingSelect/BingSelect.vue.d.ts +7 -7
  114. package/dist/components/BingSelect/BingSelect.vue_vue_type_script_setup_true_lang.js +1066 -0
  115. package/dist/components/BingSlider/BingSlider.js +7 -0
  116. package/dist/components/BingSlider/BingSlider.vue.d.ts +6 -6
  117. package/dist/components/BingSlider/BingSlider.vue_vue_type_script_setup_true_lang.js +130 -0
  118. package/dist/components/BingSortableList/BingSortableList.js +7 -0
  119. package/dist/components/BingSortableList/BingSortableList.vue_vue_type_script_setup_true_lang.js +334 -0
  120. package/dist/components/BingSortableList/BingSortableListItem.js +7 -0
  121. package/dist/components/BingSortableList/BingSortableListItem.vue_vue_type_script_setup_true_lang.js +76 -0
  122. package/dist/components/BingSplitPane/BingSplitPane.js +7 -0
  123. package/dist/components/BingSplitPane/BingSplitPane.vue_vue_type_script_setup_true_lang.js +167 -0
  124. package/dist/components/BingTable/BingTable.js +7 -0
  125. package/dist/components/BingTable/BingTable.measurements.js +72 -0
  126. package/dist/components/BingTable/BingTable.vue.d.ts +1 -2
  127. package/dist/components/BingTable/BingTable.vue_vue_type_script_setup_true_lang.js +1416 -0
  128. package/dist/components/BingTable/BingTableCellValue.js +7 -0
  129. package/dist/components/BingTable/BingTableCellValue.vue_vue_type_script_setup_true_lang.js +68 -0
  130. package/dist/components/BingTable/BingTableHeaderCell.js +5 -0
  131. package/dist/components/BingTable/BingTableHeaderCell.vue_vue_type_script_setup_true_lang.js +45 -0
  132. package/dist/components/BingTable/BingTableHeaderContent.js +7 -0
  133. package/dist/components/BingTable/BingTableHeaderContent.vue_vue_type_script_setup_true_lang.js +110 -0
  134. package/dist/components/BingTable/useTableColumns.js +126 -0
  135. package/dist/components/BingTableColumnControls/BingTableColumnControls.js +7 -0
  136. package/dist/components/BingTableColumnControls/BingTableColumnControls.vue.d.ts +1 -1
  137. package/dist/components/BingTableColumnControls/BingTableColumnControls.vue_vue_type_script_setup_true_lang.js +251 -0
  138. package/dist/components/BingTabs/BingTabs.js +7 -0
  139. package/dist/components/BingTabs/BingTabs.vue.d.ts +2 -3
  140. package/dist/components/BingTabs/BingTabs.vue_vue_type_script_setup_true_lang.js +320 -0
  141. package/dist/components/BingTag/BingTag.js +7 -0
  142. package/dist/components/BingTag/BingTag.vue.d.ts +0 -1
  143. package/dist/components/BingTag/BingTag.vue_vue_type_script_setup_true_lang.js +65 -0
  144. package/dist/components/BingTextarea/BingTextarea.js +7 -0
  145. package/dist/components/BingTextarea/BingTextarea.vue.d.ts +6 -6
  146. package/dist/components/BingTextarea/BingTextarea.vue_vue_type_script_setup_true_lang.js +243 -0
  147. package/dist/components/BingToast/BingToast.js +7 -0
  148. package/dist/components/BingToast/BingToast.service.js +132 -0
  149. package/dist/components/BingToast/BingToast.types.d.ts +1 -1
  150. package/dist/components/BingToast/BingToast.types.js +19 -0
  151. package/dist/components/BingToast/BingToast.vue.d.ts +0 -1
  152. package/dist/components/BingToast/BingToast.vue_vue_type_script_setup_true_lang.js +307 -0
  153. package/dist/components/BingTooltip/BingTooltip.js +7 -0
  154. package/dist/components/BingTooltip/BingTooltip.shared.js +14 -0
  155. package/dist/components/BingTooltip/BingTooltip.vue.d.ts +4 -5
  156. package/dist/components/BingTooltip/BingTooltip.vue_vue_type_script_setup_true_lang.js +572 -0
  157. package/dist/components/BingTreeSelect/BingTreeSelect.js +7 -0
  158. package/dist/components/BingTreeSelect/BingTreeSelect.vue.d.ts +7 -7
  159. package/dist/components/BingTreeSelect/BingTreeSelect.vue_vue_type_script_setup_true_lang.js +1274 -0
  160. package/dist/components/index.d.ts +1 -0
  161. package/dist/icons/LICENSE-lucide.txt +39 -0
  162. package/dist/icons/createIcon.d.ts +8 -0
  163. package/dist/icons/createIcon.js +36 -0
  164. package/dist/icons/icons.d.ts +51 -0
  165. package/dist/icons/icons.js +252 -0
  166. package/dist/icons/index.d.ts +3 -0
  167. package/dist/index.js +48 -0
  168. package/dist/motion/clickParticles.d.ts +1 -1
  169. package/dist/motion/clickParticles2.js +66 -0
  170. package/dist/motion/index.d.ts +1 -1
  171. package/dist/motion/index.js +17 -0
  172. package/dist/motion/liquidHover.js +36 -0
  173. package/dist/motion/optionDetailMotion.d.ts +7 -1
  174. package/dist/motion/optionDetailMotion.js +74 -0
  175. package/dist/motion/panelMotion.js +19 -0
  176. package/dist/motion/reducedMotion.d.ts +16 -0
  177. package/dist/motion/reducedMotion.js +28 -0
  178. package/dist/motion/selectPanelMotion.js +115 -0
  179. package/dist/motion/smoothScroll.d.ts +2 -0
  180. package/dist/motion/smoothScroll.js +276 -0
  181. package/dist/motion/useClickFeedback.js +47 -0
  182. package/dist/motion/useTextControlCaret.js +136 -0
  183. package/dist/utils/clipboard.d.ts +9 -0
  184. package/dist/utils/clipboard.js +16 -0
  185. package/dist/utils/config.d.ts +42 -0
  186. package/dist/utils/config.js +37 -0
  187. package/dist/utils/controlAttrs.js +37 -0
  188. package/dist/utils/floating.d.ts +86 -0
  189. package/dist/utils/floating.js +99 -0
  190. package/dist/utils/glass.js +25 -0
  191. package/dist/utils/overlay.js +94 -0
  192. package/dist/utils/scrollLock.js +44 -0
  193. package/dist/utils/search.d.ts +16 -0
  194. package/dist/utils/search.js +23 -0
  195. package/dist/utils/useClientReady.js +10 -0
  196. package/dist/utils/useDeferredBlurValidation.d.ts +18 -0
  197. package/dist/utils/useDeferredBlurValidation.js +34 -0
  198. package/dist/utils/useKeyboardScrollSync.d.ts +11 -0
  199. package/dist/utils/useKeyboardScrollSync.js +28 -0
  200. package/dist/utils/useOptionDetailPanel.d.ts +50 -0
  201. package/dist/utils/useOptionDetailPanel.js +180 -0
  202. package/dist/utils/useOutsidePointerDown.d.ts +8 -0
  203. package/dist/utils/useOutsidePointerDown.js +17 -0
  204. package/dist/utils/useSearchShortcutFocus.d.ts +18 -0
  205. package/dist/utils/useSearchShortcutFocus.js +47 -0
  206. package/dist/utils/useVirtualList.d.ts +42 -0
  207. package/dist/utils/useVirtualList.js +74 -0
  208. package/package.json +15 -9
  209. package/dist/bing-ui.es.js +0 -31278
  210. package/dist/bing-ui.umd.js +0 -229
@@ -0,0 +1,252 @@
1
+ import { useConfigSize as e } from "../../utils/config.js";
2
+ import { useReducedMotion as t } from "../../motion/reducedMotion.js";
3
+ import { bingFormContextKey as n, bingFormItemContextKey as r } from "../BingForm/BingForm.context.js";
4
+ import { findFormControlTarget as i } from "../BingForm/formFocus.js";
5
+ import { Transition as ee, computed as a, createBlock as te, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as ne, defineComponent as l, h as u, inject as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as re, openBlock as h, provide as ie, ref as ae, renderSlot as oe, shallowReactive as se, toDisplayString as g, unref as _, useId as ce, watch as v, withCtx as y } from "vue";
6
+ import { gsap as b } from "gsap";
7
+ //#region src/components/BingFormItem/BingFormItem.vue?vue&type=script&setup=true&lang.ts
8
+ var le = { class: "bing-form-item__control" }, ue = { class: "bing-form-item__label-text" }, de = {
9
+ key: 0,
10
+ class: "bing-form-item__required",
11
+ "aria-hidden": "true"
12
+ }, x = {
13
+ key: 1,
14
+ class: "bing-form-item__message-slot",
15
+ "aria-live": "polite"
16
+ }, S = ["id", "role"], C = /* @__PURE__ */ l({
17
+ __name: "BingFormItem",
18
+ props: {
19
+ prop: { default: void 0 },
20
+ label: { default: void 0 },
21
+ required: {
22
+ type: Boolean,
23
+ default: !1
24
+ },
25
+ span: { default: 1 },
26
+ help: { default: void 0 },
27
+ showMessage: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ labelPosition: { default: void 0 }
32
+ },
33
+ setup(C) {
34
+ let w = t(), T = C, E = d(n, null), D = `bing-form-item-${ce()}`, O = ae(null), k = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Set(), j = !1, M = 0, N = a(() => `${D}-control`), P = se(/* @__PURE__ */ new Set()), F = {
35
+ label: () => T.label ?? T.prop ?? "字段",
36
+ element: () => O.value,
37
+ target: Z
38
+ }, I = E?.nextHint?.register(F), L = a(() => T.label ? `${D}-label` : void 0), R = a(() => {
39
+ let e = [...P];
40
+ return e.length === 0 ? N.value : e.length === 1 && !e[0].group ? e[0].id.value : void 0;
41
+ }), z = l({ setup(e, { slots: t }) {
42
+ return () => u("label", {
43
+ id: L.value,
44
+ for: R.value
45
+ }, t.default?.());
46
+ } }), B = a(() => T.prop && E ? E.getFieldErrors(T.prop) : []), V = a(() => B.value.length > 0), H = a(() => V.value ? B.value[0] : T.help), U = a(() => T.showMessage && !!H.value), W = a(() => U.value ? `${D}-message` : void 0), G = W, K = a(() => V.value ? "error" : "default"), q = e(() => E?.size.value), J = a(() => E?.disabled.value ?? !1), fe = a(() => T.labelPosition ?? E?.labelPosition.value ?? "top"), pe = a(() => E?.labelWidth.value ?? "112px"), me = a(() => [
47
+ "bing-form-item",
48
+ `bing-form-item--${q.value}`,
49
+ `bing-form-item--label-${fe.value}`,
50
+ {
51
+ "is-required": T.required,
52
+ "is-invalid": V.value,
53
+ "is-disabled": J.value,
54
+ "has-label": !!T.label,
55
+ "has-message": U.value
56
+ }
57
+ ]), he = a(() => {
58
+ let e = ge(Y(T.span), E?.columns.value ?? Y(1));
59
+ return {
60
+ "--bing-form-item-span-base": String(e.base),
61
+ "--bing-form-item-span-sm": String(e.sm),
62
+ "--bing-form-item-span-md": String(e.md),
63
+ "--bing-form-item-span-lg": String(e.lg),
64
+ "--bing-form-item-span-xl": String(e.xl),
65
+ "--bing-form-item-label-width": pe.value
66
+ };
67
+ });
68
+ function Y(e) {
69
+ let t = [
70
+ "base",
71
+ "sm",
72
+ "md",
73
+ "lg",
74
+ "xl"
75
+ ], n = {
76
+ base: 1,
77
+ sm: 1,
78
+ md: 1,
79
+ lg: 1,
80
+ xl: 1
81
+ };
82
+ if (typeof e == "number") {
83
+ let r = Math.max(1, Math.floor(e));
84
+ return t.forEach((e) => {
85
+ n[e] = r;
86
+ }), n;
87
+ }
88
+ let r = 1;
89
+ return t.forEach((t) => {
90
+ let i = e[t];
91
+ typeof i == "number" && (r = Math.max(1, Math.floor(i))), n[t] = r;
92
+ }), n;
93
+ }
94
+ function ge(e, t) {
95
+ let n = [
96
+ "base",
97
+ "sm",
98
+ "md",
99
+ "lg",
100
+ "xl"
101
+ ], r = {};
102
+ return n.forEach((n) => {
103
+ r[n] = Math.min(e[n], Math.max(1, t[n]));
104
+ }), r;
105
+ }
106
+ async function X(e) {
107
+ if (!T.prop || !E) return;
108
+ let t = T.prop, n = ++M;
109
+ await f(), !(n !== M || T.prop !== t) && await E.validateField(t, e);
110
+ }
111
+ function _e() {
112
+ X("change");
113
+ }
114
+ function ve() {
115
+ X("blur");
116
+ }
117
+ function ye() {
118
+ O.value?.scrollIntoView({
119
+ block: "center",
120
+ behavior: w() ? "auto" : "smooth"
121
+ });
122
+ }
123
+ function Z() {
124
+ let e = O.value;
125
+ if (!e || J.value) return null;
126
+ for (let t of P) {
127
+ let n = e.ownerDocument.getElementById(t.id.value), r = n && e.contains(n) ? i(n) : null;
128
+ if (r) return r;
129
+ }
130
+ return P.size ? null : i(e.querySelector(".bing-form-item__control"));
131
+ }
132
+ function be(e) {
133
+ e.classList.contains("is-error") && !w() && b.set(e, { opacity: 0 });
134
+ }
135
+ function xe(e, t) {
136
+ if (!e.classList.contains("is-error") || w()) {
137
+ t();
138
+ return;
139
+ }
140
+ Q(e, 1, .16, t);
141
+ }
142
+ function Se(e, t) {
143
+ if ($(e), e.setAttribute("aria-hidden", "true"), !e.classList.contains("is-error") || w()) {
144
+ f(() => {
145
+ j || t();
146
+ });
147
+ return;
148
+ }
149
+ A.add(e), Q(e, 0, .1, t);
150
+ }
151
+ function Q(e, t, n, r) {
152
+ let i = b.to(e, {
153
+ opacity: t,
154
+ duration: n,
155
+ ease: "power1.out",
156
+ clearProps: "opacity",
157
+ overwrite: !0,
158
+ onComplete: () => {
159
+ k.delete(e), A.delete(e), r();
160
+ }
161
+ });
162
+ k.set(e, i);
163
+ }
164
+ function $(e) {
165
+ k.get(e)?.kill(), k.delete(e), A.delete(e);
166
+ }
167
+ return v(V, (e) => {
168
+ if (e) for (let e of A) k.get(e)?.progress(1);
169
+ }), v(() => T.showMessage, (e) => {
170
+ if (!e) for (let e of k.keys()) $(e);
171
+ }), v(() => T.prop, (e, t, n) => {
172
+ if (!E || !e) return;
173
+ let r = {
174
+ prop: e,
175
+ scrollToField: ye,
176
+ element: () => O.value,
177
+ target: Z
178
+ };
179
+ E.registerField(r), n(() => {
180
+ E.unregisterField(r);
181
+ });
182
+ }, { immediate: !0 }), re(() => {
183
+ j = !0, M += 1, I?.();
184
+ for (let e of k.keys()) $(e);
185
+ }), ie(r, {
186
+ controlId: N,
187
+ ariaDescribedby: G,
188
+ isInvalid: V,
189
+ status: K,
190
+ size: q,
191
+ disabled: J,
192
+ handleControlChange: _e,
193
+ handleControlBlur: ve,
194
+ labelId: L,
195
+ nextControlId: (e) => P.size === 0 ? N.value : e,
196
+ registerControl(e) {
197
+ return P.add(e), () => {
198
+ P.delete(e);
199
+ };
200
+ }
201
+ }), (e, t) => (h(), s("div", {
202
+ ref_key: "rootRef",
203
+ ref: O,
204
+ class: p(me.value),
205
+ style: m(he.value)
206
+ }, [
207
+ c("div", le, [oe(e.$slots, "default", {
208
+ id: N.value,
209
+ status: K.value,
210
+ ariaDescribedby: _(G),
211
+ invalid: V.value,
212
+ disabled: J.value,
213
+ size: _(q)
214
+ }, void 0, !0)]),
215
+ C.label ? (h(), te(_(z), {
216
+ key: 0,
217
+ class: "bing-form-item__label"
218
+ }, {
219
+ default: y(() => [
220
+ c("span", ue, g(C.label), 1),
221
+ C.required ? (h(), s("span", de, "*")) : o("", !0),
222
+ t[0] ||= c("span", {
223
+ class: "bing-form-item__colon",
224
+ "aria-hidden": "true"
225
+ }, ":", -1)
226
+ ]),
227
+ _: 1
228
+ })) : o("", !0),
229
+ C.showMessage ? (h(), s("div", x, [c("p", {
230
+ id: W.value,
231
+ class: p(["bing-form-item__message", { "is-error": V.value }]),
232
+ role: U.value ? V.value ? "alert" : "status" : void 0
233
+ }, [ne(ee, {
234
+ mode: "out-in",
235
+ css: !1,
236
+ onBeforeEnter: be,
237
+ onEnter: xe,
238
+ onLeave: Se,
239
+ onEnterCancelled: $,
240
+ onLeaveCancelled: $
241
+ }, {
242
+ default: y(() => [U.value ? (h(), s("span", {
243
+ key: V.value ? "error" : "help",
244
+ class: p(["bing-form-item__message-text", { "is-error": V.value }])
245
+ }, g(H.value), 3)) : o("", !0)]),
246
+ _: 1
247
+ })], 10, S)])) : o("", !0)
248
+ ], 6));
249
+ }
250
+ });
251
+ //#endregion
252
+ export { C as default };
@@ -0,0 +1,7 @@
1
+ import e from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./BingIcon.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/BingIcon/BingIcon.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-41faf91e"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,48 @@
1
+ import { computed as e, createBlock as t, defineComponent as n, normalizeClass as r, normalizeStyle as i, openBlock as a, resolveDynamicComponent as o } from "vue";
2
+ //#region src/components/BingIcon/BingIcon.vue?vue&type=script&setup=true&lang.ts
3
+ var s = /* @__PURE__ */ n({
4
+ __name: "BingIcon",
5
+ props: {
6
+ icon: {},
7
+ size: { default: "md" },
8
+ tone: { default: "inherit" },
9
+ strokeWidth: { default: 1.75 },
10
+ decorative: {
11
+ type: Boolean,
12
+ default: !0
13
+ },
14
+ label: { default: void 0 }
15
+ },
16
+ setup(n) {
17
+ let s = n, c = {
18
+ xs: "14px",
19
+ sm: "16px",
20
+ md: "20px",
21
+ lg: "24px",
22
+ xl: "32px"
23
+ };
24
+ function l(e) {
25
+ return typeof e == "string" && e in c;
26
+ }
27
+ let u = e(() => typeof s.size == "number" ? `${s.size}px` : l(s.size) ? c[s.size] : s.size), d = e(() => ["bing-icon", `bing-icon--${s.tone}`]), f = e(() => s.decorative || !s.label);
28
+ return (e, s) => (a(), t(o(n.icon), {
29
+ class: r(d.value),
30
+ style: i({
31
+ width: u.value,
32
+ height: u.value,
33
+ strokeWidth: n.strokeWidth
34
+ }),
35
+ "aria-hidden": f.value || void 0,
36
+ "aria-label": f.value ? void 0 : n.label,
37
+ role: f.value ? void 0 : "img"
38
+ }, null, 8, [
39
+ "class",
40
+ "style",
41
+ "aria-hidden",
42
+ "aria-label",
43
+ "role"
44
+ ]));
45
+ }
46
+ });
47
+ //#endregion
48
+ export { s as default };
@@ -0,0 +1,7 @@
1
+ import e from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./BingImage.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/BingImage/BingImage.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-de0bba92"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,244 @@
1
+ import { useClickFeedback as e } from "../../motion/useClickFeedback.js";
2
+ import t from "../BingImagePreview/BingImagePreview.js";
3
+ import { computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, defineComponent as s, nextTick as ee, normalizeClass as c, normalizeStyle as l, openBlock as u, ref as d, renderSlot as f, toDisplayString as te, watch as p } from "vue";
4
+ //#region src/components/BingImage/BingImage.vue?vue&type=script&setup=true&lang.ts
5
+ var ne = [
6
+ "aria-busy",
7
+ "role",
8
+ "tabindex",
9
+ "aria-label"
10
+ ], m = [
11
+ "src",
12
+ "alt",
13
+ "srcset",
14
+ "sizes",
15
+ "width",
16
+ "height",
17
+ "loading",
18
+ "decoding",
19
+ "fetchpriority",
20
+ "crossorigin",
21
+ "referrerpolicy"
22
+ ], h = {
23
+ key: 1,
24
+ class: "bing-image__placeholder",
25
+ "aria-hidden": "true"
26
+ }, g = ["src"], _ = {
27
+ key: 2,
28
+ class: "bing-image__loading",
29
+ "aria-hidden": "true"
30
+ }, v = ["aria-label"], y = { class: "bing-image__error-text" }, b = /* @__PURE__ */ s({
31
+ __name: "BingImage",
32
+ props: {
33
+ src: { default: void 0 },
34
+ alt: { default: "" },
35
+ srcset: { default: void 0 },
36
+ sizes: { default: void 0 },
37
+ width: { default: void 0 },
38
+ height: { default: void 0 },
39
+ aspectRatio: { default: void 0 },
40
+ fit: { default: "cover" },
41
+ position: { default: "center" },
42
+ radius: { default: "md" },
43
+ block: {
44
+ type: Boolean,
45
+ default: !1
46
+ },
47
+ loading: { default: "lazy" },
48
+ decoding: { default: "async" },
49
+ fetchPriority: { default: "auto" },
50
+ fallbackSrc: { default: void 0 },
51
+ placeholderSrc: { default: void 0 },
52
+ showLoading: {
53
+ type: Boolean,
54
+ default: !0
55
+ },
56
+ showError: {
57
+ type: Boolean,
58
+ default: !0
59
+ },
60
+ errorText: { default: "图片加载失败" },
61
+ crossorigin: { default: void 0 },
62
+ referrerPolicy: { default: void 0 },
63
+ preview: {
64
+ type: Boolean,
65
+ default: !1
66
+ },
67
+ previewSrc: { default: void 0 },
68
+ previewItems: { default: void 0 },
69
+ previewInitialIndex: { default: 0 },
70
+ previewDownloadable: {
71
+ type: Boolean,
72
+ default: !1
73
+ },
74
+ previewDownloadUrl: { default: void 0 },
75
+ previewDownloadName: { default: void 0 },
76
+ previewAriaLabel: { default: "预览图片" }
77
+ },
78
+ emits: [
79
+ "load",
80
+ "error",
81
+ "statusChange",
82
+ "previewOpen",
83
+ "previewClose"
84
+ ],
85
+ setup(s, { emit: b }) {
86
+ let { playClickFeedback: x } = e(), S = s, C = b, w = d(null), T = d("idle"), E = d(void 0), D = d(void 0), O = d(0), k = d(!1), A = d(!1), j = n(() => !!E.value), M = n(() => T.value === "loading"), N = n(() => T.value === "loaded"), P = n(() => T.value === "error"), F = n(() => M.value || !N.value && !!S.placeholderSrc), I = n(() => S.preview && N.value && j.value && !P.value), L = n(() => [
87
+ "bing-image",
88
+ `bing-image--rounded-${S.radius}`,
89
+ {
90
+ "is-block": S.block,
91
+ "is-loading": M.value,
92
+ "is-loaded": N.value,
93
+ "is-error": P.value,
94
+ "is-previewable": I.value,
95
+ "has-placeholder-image": S.placeholderSrc
96
+ }
97
+ ]), R = n(() => {
98
+ let e = {
99
+ "--bing-image-fit": S.fit,
100
+ "--bing-image-position": S.position
101
+ }, t = K(S.width), n = K(S.height), r = q(S.aspectRatio);
102
+ return t && (e.width = t), n && (e.height = n), r && (e.aspectRatio = r), e;
103
+ }), z = n(() => J(S.width)), B = n(() => J(S.height)), V = n(() => E.value === S.src ? S.srcset : void 0), H = n(() => E.value === S.src ? S.sizes : void 0), U = n(() => S.alt || S.errorText), W = n(() => S.previewAriaLabel || (S.alt ? `预览 ${S.alt}` : "预览图片")), G = n(() => {
104
+ if (S.previewItems?.length) return S.previewItems;
105
+ let e = E.value;
106
+ if (!e) return [];
107
+ let t = S.previewSrc || e;
108
+ return [{
109
+ src: e,
110
+ previewSrc: t,
111
+ alt: S.alt,
112
+ downloadUrl: S.previewDownloadUrl || t,
113
+ downloadName: S.previewDownloadName
114
+ }];
115
+ });
116
+ function K(e) {
117
+ if (!(e === void 0 || e === "")) return typeof e == "number" ? `${e}px` : e;
118
+ }
119
+ function q(e) {
120
+ if (!(e === void 0 || e === "")) return String(e);
121
+ }
122
+ function J(e) {
123
+ if (typeof e == "number" || typeof e == "string" && /^\d+$/.test(e)) return e;
124
+ }
125
+ function Y(e) {
126
+ T.value !== e && (T.value = e, C("statusChange", {
127
+ status: e,
128
+ src: E.value
129
+ }));
130
+ }
131
+ function X(e) {
132
+ E.value = e, O.value += 1, Y(e ? "loading" : "idle");
133
+ }
134
+ function Z() {
135
+ let e = w.value;
136
+ !e || !E.value || e.complete && e.naturalWidth > 0 && (D.value = void 0, Y("loaded"));
137
+ }
138
+ function Q(e) {
139
+ k.value = !1, D.value = void 0, X(e), ee(Z);
140
+ }
141
+ function re() {
142
+ Q(S.src);
143
+ }
144
+ function $() {
145
+ I.value && (A.value = !0, C("previewOpen", { src: S.previewSrc || E.value || "" }));
146
+ }
147
+ function ie(e) {
148
+ e.defaultPrevented || !I.value || (x(e), $());
149
+ }
150
+ function ae(e) {
151
+ I.value && (e.key !== "Enter" && e.key !== " " || (e.preventDefault(), x(e), $()));
152
+ }
153
+ function oe(e) {
154
+ C("previewClose", { reason: e });
155
+ }
156
+ function se(e) {
157
+ let t = e.currentTarget, n = E.value;
158
+ n && (D.value = void 0, Y("loaded"), C("load", {
159
+ event: e,
160
+ src: n,
161
+ naturalWidth: t.naturalWidth,
162
+ naturalHeight: t.naturalHeight
163
+ }));
164
+ }
165
+ function ce(e) {
166
+ let t = E.value || "", n = !!S.fallbackSrc && S.fallbackSrc !== t && !k.value;
167
+ if (C("error", {
168
+ event: e,
169
+ src: t,
170
+ isFallback: k.value
171
+ }), n) {
172
+ k.value = !0, X(S.fallbackSrc);
173
+ return;
174
+ }
175
+ D.value = t, Y("error");
176
+ }
177
+ return p(() => S.src, (e) => {
178
+ Q(e);
179
+ }, { immediate: !0 }), (e, n) => (u(), a("figure", {
180
+ class: c(L.value),
181
+ style: l(R.value),
182
+ "aria-busy": M.value || void 0,
183
+ role: I.value ? "button" : void 0,
184
+ tabindex: I.value ? 0 : void 0,
185
+ "aria-label": I.value ? W.value : void 0,
186
+ onClick: ie,
187
+ onKeydown: ae
188
+ }, [
189
+ j.value ? (u(), a("img", {
190
+ key: O.value,
191
+ ref_key: "imageRef",
192
+ ref: w,
193
+ class: "bing-image__img",
194
+ src: E.value,
195
+ alt: s.alt,
196
+ srcset: V.value,
197
+ sizes: H.value,
198
+ width: z.value,
199
+ height: B.value,
200
+ loading: s.loading,
201
+ decoding: s.decoding,
202
+ fetchpriority: s.fetchPriority,
203
+ crossorigin: s.crossorigin,
204
+ referrerpolicy: s.referrerPolicy,
205
+ onLoad: se,
206
+ onError: ce
207
+ }, null, 40, m)) : i("", !0),
208
+ F.value ? (u(), a("div", h, [f(e.$slots, "placeholder", {}, () => [s.placeholderSrc ? (u(), a("img", {
209
+ key: 0,
210
+ class: "bing-image__placeholder-img",
211
+ src: s.placeholderSrc,
212
+ alt: "",
213
+ loading: "eager",
214
+ decoding: "async"
215
+ }, null, 8, g)) : i("", !0), n[1] ||= o("span", { class: "bing-image__skeleton" }, null, -1)], !0)])) : i("", !0),
216
+ s.showLoading && M.value ? (u(), a("div", _, [f(e.$slots, "loading", {}, () => [n[2] ||= o("span", { class: "bing-image__spinner" }, null, -1)], !0)])) : i("", !0),
217
+ s.showError && P.value ? (u(), a("div", {
218
+ key: 3,
219
+ class: "bing-image__error",
220
+ role: "img",
221
+ "aria-label": U.value
222
+ }, [f(e.$slots, "error", {
223
+ src: D.value,
224
+ retry: re
225
+ }, () => [n[3] ||= o("span", { class: "bing-image__error-mark" }, "!", -1), o("span", y, te(s.errorText), 1)], !0)], 8, v)) : i("", !0),
226
+ s.preview ? (u(), r(t, {
227
+ key: 4,
228
+ modelValue: A.value,
229
+ "onUpdate:modelValue": n[0] ||= (e) => A.value = e,
230
+ items: G.value,
231
+ "initial-index": s.previewInitialIndex,
232
+ downloadable: s.previewDownloadable,
233
+ onClose: oe
234
+ }, null, 8, [
235
+ "modelValue",
236
+ "items",
237
+ "initial-index",
238
+ "downloadable"
239
+ ])) : i("", !0)
240
+ ], 46, ne));
241
+ }
242
+ });
243
+ //#endregion
244
+ export { b as default };
@@ -0,0 +1,7 @@
1
+ import e from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./BingImagePreview.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/BingImagePreview/BingImagePreview.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-aec073fa"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -1,18 +1,17 @@
1
1
  import { BingImagePreviewCloseReason, BingImagePreviewProps } from './BingImagePreview.types';
2
2
  declare const __VLS_export: import('vue').DefineComponent<BingImagePreviewProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
3
- change: (index: number, item: import('./BingImagePreview.types').BingImagePreviewItem) => any;
4
3
  close: (reason: BingImagePreviewCloseReason) => any;
4
+ change: (index: number, item: import('./BingImagePreview.types').BingImagePreviewItem) => any;
5
+ download: (payload: import('./BingImagePreview.types').BingImagePreviewDownloadPayload) => any;
5
6
  "update:modelValue": (value: boolean) => any;
6
7
  "update:currentIndex": (value: number) => any;
7
- download: (payload: import('./BingImagePreview.types').BingImagePreviewDownloadPayload) => any;
8
8
  }, string, import('vue').PublicProps, Readonly<BingImagePreviewProps> & Readonly<{
9
- onChange?: ((index: number, item: import('./BingImagePreview.types').BingImagePreviewItem) => any) | undefined;
10
9
  onClose?: ((reason: BingImagePreviewCloseReason) => any) | undefined;
10
+ onChange?: ((index: number, item: import('./BingImagePreview.types').BingImagePreviewItem) => any) | undefined;
11
+ onDownload?: ((payload: import('./BingImagePreview.types').BingImagePreviewDownloadPayload) => any) | undefined;
11
12
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
12
13
  "onUpdate:currentIndex"?: ((value: number) => any) | undefined;
13
- onDownload?: ((payload: import('./BingImagePreview.types').BingImagePreviewDownloadPayload) => any) | undefined;
14
14
  }>, {
15
- zIndex: number;
16
15
  items: import('./BingImagePreview.types').BingImagePreviewItem[];
17
16
  ariaLabel: string;
18
17
  modelValue: boolean;