@pixelium/web-vue 0.0.2 → 0.0.3-alpha

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 (284) hide show
  1. package/README.md +42 -0
  2. package/README.zh.md +6 -3
  3. package/dist/font.css +1 -1
  4. package/dist/index.d.ts +1602 -248
  5. package/dist/normalize.css +2 -0
  6. package/dist/pixelium-vue-icon-hn.cjs +1 -1
  7. package/dist/pixelium-vue-icon-hn.css +2 -1
  8. package/dist/pixelium-vue-icon-hn.js +8533 -8154
  9. package/dist/pixelium-vue-icon-hn.umd.cjs +1 -1
  10. package/dist/pixelium-vue-icon-pa.cjs +1 -1
  11. package/dist/pixelium-vue-icon-pa.css +2 -1
  12. package/dist/pixelium-vue-icon-pa.js +10625 -10143
  13. package/dist/pixelium-vue-icon-pa.umd.cjs +1 -1
  14. package/dist/pixelium-vue.cjs +2 -2
  15. package/dist/pixelium-vue.css +2 -1
  16. package/dist/pixelium-vue.js +7407 -5852
  17. package/dist/pixelium-vue.umd.cjs +2 -2
  18. package/es/aside/index.css +1 -0
  19. package/es/aside/index.js +46 -151
  20. package/es/auto-complete/draw.d.ts +1 -1
  21. package/es/auto-complete/draw.js +26 -51
  22. package/es/auto-complete/index.css +92 -32
  23. package/es/auto-complete/index.d.ts +12 -15
  24. package/es/auto-complete/index.js +338 -400
  25. package/es/auto-complete/type.d.ts +25 -13
  26. package/es/avatar/css.js +2 -0
  27. package/es/avatar/draw.d.ts +2 -0
  28. package/es/avatar/draw.js +11 -0
  29. package/es/avatar/index.css +49 -0
  30. package/es/avatar/index.d.ts +15 -0
  31. package/es/avatar/index.js +110 -0
  32. package/es/avatar/type.d.ts +34 -0
  33. package/es/button/draw.d.ts +4 -4
  34. package/es/button/draw.js +213 -297
  35. package/es/button/index.css +40 -30
  36. package/es/button/index.d.ts +0 -4
  37. package/es/button/index.js +230 -256
  38. package/es/button/type.d.ts +3 -3
  39. package/es/button-group/index.css +0 -3
  40. package/es/button-group/index.d.ts +1 -2
  41. package/es/button-group/index.js +59 -31
  42. package/es/button-group/type.d.ts +21 -4
  43. package/es/checkbox/css.js +2 -0
  44. package/es/checkbox/draw.d.ts +4 -0
  45. package/es/checkbox/draw.js +46 -0
  46. package/es/checkbox/index.css +85 -0
  47. package/es/checkbox/index.d.ts +31 -0
  48. package/es/checkbox/index.js +206 -0
  49. package/es/checkbox/type.d.ts +88 -0
  50. package/es/checkbox-group/css.js +2 -0
  51. package/es/checkbox-group/index.css +20 -0
  52. package/es/checkbox-group/index.d.ts +23 -0
  53. package/es/checkbox-group/index.js +84 -0
  54. package/es/checkbox-group/type.d.ts +78 -0
  55. package/es/col/index.d.ts +2 -2
  56. package/es/col/index.js +43 -58
  57. package/es/container/index.css +1 -0
  58. package/es/container/index.js +18 -31
  59. package/es/divider/index.js +39 -53
  60. package/es/empty/index.css +4 -4
  61. package/es/empty/index.js +16 -71
  62. package/es/entry.js +102 -0
  63. package/es/footer/index.css +1 -0
  64. package/es/footer/index.js +31 -40
  65. package/es/form/css.js +1 -0
  66. package/es/form/index.d.ts +27 -0
  67. package/es/form/index.js +125 -0
  68. package/es/form/type.d.ts +238 -0
  69. package/es/form/use-form.d.ts +4 -0
  70. package/es/form/use-form.js +48 -0
  71. package/es/form-item/css.js +2 -0
  72. package/es/form-item/index.css +77 -0
  73. package/es/form-item/index.d.ts +37 -0
  74. package/es/form-item/index.js +318 -0
  75. package/es/form-item/type.d.ts +96 -0
  76. package/es/grid/index.js +56 -75
  77. package/es/grid-item/css.js +0 -1
  78. package/es/grid-item/index.d.ts +1 -1
  79. package/es/grid-item/index.js +85 -121
  80. package/es/header/index.css +1 -0
  81. package/es/header/index.js +31 -40
  82. package/es/icon/index.js +44 -55
  83. package/es/icons/css-hn.js +0 -1
  84. package/es/icons/css-pa.js +0 -1
  85. package/es/icons/icon-hn.js +10337 -15986
  86. package/es/icons/icon-pa.js +12573 -17447
  87. package/es/image/css.js +2 -0
  88. package/es/image/index.css +69 -0
  89. package/es/image/index.d.ts +35 -0
  90. package/es/image/index.js +199 -0
  91. package/es/image/type.d.ts +126 -0
  92. package/es/index.css +1 -515
  93. package/es/index.d.ts +22 -2
  94. package/es/index.js +144 -123
  95. package/es/input/draw.d.ts +1 -1
  96. package/es/input/draw.js +26 -51
  97. package/es/input/index.css +85 -33
  98. package/es/input/index.d.ts +9 -16
  99. package/es/input/index.js +319 -423
  100. package/es/input/type.d.ts +3 -3
  101. package/es/input-group/index.css +0 -1
  102. package/es/input-group/index.d.ts +2 -2
  103. package/es/input-group/index.js +66 -37
  104. package/es/input-group/type.d.ts +16 -4
  105. package/es/input-group-label/draw.d.ts +1 -1
  106. package/es/input-group-label/draw.js +26 -51
  107. package/es/input-group-label/index.css +33 -22
  108. package/es/input-group-label/index.d.ts +1 -4
  109. package/es/input-group-label/index.js +104 -127
  110. package/es/input-group-label/type.d.ts +3 -3
  111. package/es/input-number/draw.d.ts +1 -1
  112. package/es/input-number/draw.js +26 -51
  113. package/es/input-number/index.css +90 -35
  114. package/es/input-number/index.d.ts +9 -16
  115. package/es/input-number/index.js +428 -536
  116. package/es/input-number/type.d.ts +3 -3
  117. package/es/input-tag/draw.d.ts +1 -1
  118. package/es/input-tag/draw.js +26 -48
  119. package/es/input-tag/index.css +100 -33
  120. package/es/input-tag/index.d.ts +7 -13
  121. package/es/input-tag/index.js +442 -467
  122. package/es/input-tag/type.d.ts +24 -13
  123. package/es/link/index.js +75 -106
  124. package/es/main/index.css +4 -0
  125. package/es/main/index.d.ts +4 -1
  126. package/es/main/index.js +15 -15
  127. package/es/main/type.d.ts +7 -0
  128. package/es/mask/index.js +94 -115
  129. package/es/message/index.css +1 -1
  130. package/es/message/index.js +168 -346
  131. package/es/message-box/css.js +1 -1
  132. package/es/message-box/index.js +98 -114
  133. package/es/message-box/message-box-wrapped.js +33 -46
  134. package/es/message-box/message-box.js +79 -111
  135. package/es/option-list/index.css +13 -13
  136. package/es/option-list/index.d.ts +4 -31
  137. package/es/option-list/index.js +99 -167
  138. package/es/option-list/type.d.ts +5 -1
  139. package/es/pixelate/pixel.d.ts +5 -0
  140. package/es/pixelate/pixel.js +70 -0
  141. package/es/pixelate/pixelate.worker.d.ts +1 -0
  142. package/es/popover/index.d.ts +13 -99
  143. package/es/popover/index.js +75 -238
  144. package/es/popover/type.d.ts +7 -2
  145. package/es/popup/css.js +1 -0
  146. package/es/popup/index.d.ts +210 -0
  147. package/es/popup/index.js +203 -0
  148. package/es/popup/type.d.ts +105 -0
  149. package/es/popup-content/draw.d.ts +2 -2
  150. package/es/popup-content/draw.js +98 -143
  151. package/es/popup-content/index.css +11 -11
  152. package/es/popup-content/index.d.ts +1 -0
  153. package/es/popup-content/index.js +253 -1576
  154. package/es/popup-content/type.d.ts +1 -0
  155. package/es/popup-trigger/index.d.ts +8 -2
  156. package/es/popup-trigger/index.js +122 -95
  157. package/es/popup-trigger/type.d.ts +4 -1
  158. package/es/popup-wrapper/css.js +2 -0
  159. package/es/popup-wrapper/index.css +14 -0
  160. package/es/popup-wrapper/index.d.ts +18 -0
  161. package/es/popup-wrapper/index.js +67 -0
  162. package/es/popup-wrapper/type.d.ts +9 -0
  163. package/es/radio/css.js +1 -0
  164. package/es/radio/draw.d.ts +4 -0
  165. package/es/radio/draw.js +47 -0
  166. package/es/radio/index.d.ts +30 -0
  167. package/es/radio/index.js +190 -0
  168. package/es/radio/style.css +73 -0
  169. package/es/radio/type.d.ts +76 -0
  170. package/es/radio-group/css.js +2 -0
  171. package/es/radio-group/index.css +20 -0
  172. package/es/radio-group/index.d.ts +23 -0
  173. package/es/radio-group/index.js +77 -0
  174. package/es/radio-group/type.d.ts +77 -0
  175. package/es/row/index.js +56 -70
  176. package/es/select/draw.d.ts +1 -1
  177. package/es/select/draw.js +26 -51
  178. package/es/select/index.css +118 -36
  179. package/es/select/index.d.ts +14 -16
  180. package/es/select/index.js +625 -672
  181. package/es/select/type.d.ts +60 -25
  182. package/es/share/const/event-bus-key.js +1 -6
  183. package/es/share/const/index.d.ts +4 -0
  184. package/es/share/const/index.js +22 -24
  185. package/es/share/const/provide-key.d.ts +5 -0
  186. package/es/share/const/provide-key.js +6 -5
  187. package/es/share/const/style.d.ts +6 -0
  188. package/es/share/const/style.js +7 -0
  189. package/es/share/hook/use-cancelable-delay.d.ts +1 -0
  190. package/es/share/hook/use-cancelable-delay.js +42 -0
  191. package/es/share/hook/use-click-outside-listener.d.ts +1 -1
  192. package/es/share/hook/use-click-outside-listener.js +28 -41
  193. package/es/share/hook/use-composition.js +17 -15
  194. package/es/share/hook/use-controlled-mode.d.ts +3 -3
  195. package/es/share/hook/use-controlled-mode.js +20 -23
  196. package/es/share/hook/use-dark-mode.js +51 -65
  197. package/es/share/hook/use-index-of-children.d.ts +2 -1
  198. package/es/share/hook/use-index-of-children.js +47 -45
  199. package/es/share/hook/use-lazy-load.d.ts +10 -0
  200. package/es/share/hook/use-lazy-load.js +133 -0
  201. package/es/share/hook/use-props-detect.d.ts +2 -0
  202. package/es/share/hook/use-resize-observer.d.ts +1 -2
  203. package/es/share/hook/use-resize-observer.js +28 -20
  204. package/es/share/hook/use-screen-width.js +27 -36
  205. package/es/share/hook/use-smooth-transition.d.ts +2 -0
  206. package/es/share/hook/use-smooth-transition.js +65 -0
  207. package/es/share/hook/use-textarea-height.js +86 -92
  208. package/es/share/hook/use-theme-mode.js +41 -42
  209. package/es/share/hook/use-transition-end.d.ts +2 -0
  210. package/es/share/hook/use-transition-end.js +12 -0
  211. package/es/share/hook/use-watch-global-css-var.js +12 -16
  212. package/es/share/hook/use-window-resize-listener.d.ts +1 -0
  213. package/es/share/hook/use-window-resize-listener.js +15 -0
  214. package/es/share/hook/use-z-index.js +30 -27
  215. package/es/share/style/index.css +5 -0
  216. package/es/share/type/index.d.ts +18 -3
  217. package/es/share/util/color.d.ts +5 -3
  218. package/es/share/util/color.js +156 -149
  219. package/es/share/util/common.d.ts +7 -2
  220. package/es/share/util/common.js +127 -65
  221. package/es/share/util/console.d.ts +3 -3
  222. package/es/share/util/console.js +10 -7
  223. package/es/share/util/dom.d.ts +19 -0
  224. package/es/share/util/dom.js +88 -0
  225. package/es/share/util/env.d.ts +1 -0
  226. package/es/share/util/env.js +5 -4
  227. package/es/share/util/event-bus.js +3 -20
  228. package/es/share/util/lru-cache.js +29 -33
  229. package/es/share/util/pixel.d.ts +4 -0
  230. package/es/share/util/plot.d.ts +8 -3
  231. package/es/share/util/plot.js +457 -229
  232. package/es/share/util/reactivity.d.ts +8 -0
  233. package/es/share/util/reactivity.js +23 -0
  234. package/es/share/util/render.js +31 -41
  235. package/es/share/util/theme.d.ts +3 -0
  236. package/es/share/util/theme.js +77 -57
  237. package/es/slider/css.js +2 -0
  238. package/es/slider/draw.d.ts +25 -0
  239. package/es/slider/draw.js +113 -0
  240. package/es/slider/index.css +119 -0
  241. package/es/slider/index.d.ts +66 -0
  242. package/es/slider/index.js +503 -0
  243. package/es/slider/type.d.ts +162 -0
  244. package/es/slider/util.d.ts +37 -0
  245. package/es/slider/util.js +130 -0
  246. package/es/space/index.css +24 -29
  247. package/es/space/index.js +73 -97
  248. package/es/spin/index.css +18 -17
  249. package/es/spin/index.js +72 -102
  250. package/es/spin/type.d.ts +11 -5
  251. package/es/switch/css.js +2 -0
  252. package/es/switch/draw.d.ts +2 -0
  253. package/es/switch/draw.js +18 -0
  254. package/es/switch/index.css +121 -0
  255. package/es/switch/index.d.ts +42 -0
  256. package/es/switch/index.js +259 -0
  257. package/es/switch/type.d.ts +133 -0
  258. package/es/tag/draw.d.ts +2 -2
  259. package/es/tag/draw.js +80 -127
  260. package/es/tag/index.css +38 -22
  261. package/es/tag/index.d.ts +2 -2
  262. package/es/tag/index.js +121 -190
  263. package/es/tag/type.d.ts +3 -3
  264. package/es/text-outline/css.js +2 -0
  265. package/es/text-outline/index.css +4 -0
  266. package/es/text-outline/index.d.ts +17 -0
  267. package/es/text-outline/index.js +33 -0
  268. package/es/text-outline/type.d.ts +23 -0
  269. package/es/textarea/draw.js +9 -11
  270. package/es/textarea/index.css +37 -23
  271. package/es/textarea/index.d.ts +8 -14
  272. package/es/textarea/index.js +274 -262
  273. package/es/tooltip/index.d.ts +100 -4
  274. package/es/tooltip/index.js +70 -226
  275. package/es/tooltip/type.d.ts +7 -2
  276. package/es/vendor.js +504 -0
  277. package/es/virtual-list/css.js +2 -0
  278. package/es/virtual-list/index.css +25 -0
  279. package/es/virtual-list/index.d.ts +11 -0
  280. package/es/virtual-list/index.js +313 -0
  281. package/es/virtual-list/type.d.ts +26 -0
  282. package/package.json +10 -16
  283. package/es/grid-item/index.css +0 -0
  284. /package/es/message-box/{message-box.css → index.css} +0 -0
@@ -0,0 +1,37 @@
1
+ import { type Nullish } from 'parsnip-kit';
2
+ import type { LooseRequired, RemoveUndefinedFromFields } from '../share/type';
3
+ import type { SliderProps } from './type';
4
+ import { type ShallowRef } from 'vue';
5
+ export declare function clampValue(value: number, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, 'min' | 'max'>): number;
6
+ export declare const transformModelValue: (value: number | [number, number] | Nullish, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, "min" | "max">, emits: (evt: "update:modelValue", value: number | [number, number]) => void) => number | [number, number];
7
+ export declare const getTargetThumbEl: (e: MouseEvent | TouchEvent, direction: SliderProps["direction"], thumbStartRef: ShallowRef<HTMLDivElement | null>, thumbEndRef: ShallowRef<HTMLDivElement | null>) => {
8
+ thumbEl: HTMLDivElement | null;
9
+ targetType: "start";
10
+ } | {
11
+ thumbEl: HTMLDivElement | null;
12
+ targetType: "end";
13
+ };
14
+ export declare const calcValueFromEvent: (e: MouseEvent | TouchEvent, sliderEl: HTMLDivElement, thumbEl: HTMLDivElement, valueRange: number, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, "min" | "max">) => number;
15
+ export declare const calcThumbLeft: (value: number, sliderRect: {
16
+ width: number;
17
+ height: number;
18
+ }, thumbRect: {
19
+ width: number;
20
+ height: number;
21
+ }, valueRange: number, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, "min" | "max">) => number;
22
+ export declare const updateMarkPoints: (rect: {
23
+ width: number;
24
+ height: number;
25
+ }, valueRange: number, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, "min" | "max">) => ({
26
+ value: number;
27
+ left: number;
28
+ markLeft: number;
29
+ label?: undefined;
30
+ } | {
31
+ value: number;
32
+ label: string | undefined;
33
+ left: number;
34
+ markLeft: number;
35
+ })[];
36
+ export declare const getRangeValue: (modelValue: SliderProps["modelValue"], index: 0 | 1, props: RemoveUndefinedFromFields<LooseRequired<SliderProps>, "min" | "max">) => number | null | undefined;
37
+ export declare const getSingleValue: (modelValue: SliderProps["modelValue"]) => number | null | undefined;
@@ -0,0 +1,130 @@
1
+ import { D as S, P as ke, T as R, _ as E, g as A, j as en } from "../vendor.js";
2
+ import { i as fixedNumber } from "../share/util/common.js";
3
+ import { n as calcPixelSize } from "../share/util/plot.js";
4
+ import "vue";
5
+ function clampValue(value, props) {
6
+ const step = props.step;
7
+ if (!step || R(step)) return ke(A(props.precision) ? fixedNumber(value, props.precision) : value, props.min, props.max);
8
+ const marks = props.marks;
9
+ if (!(marks === null || marks === void 0 ? void 0 : marks.length)) if (!A(step)) return ke(A(props.precision) ? fixedNumber(value, props.precision) : value, props.min, props.max);
10
+ else {
11
+ let valueWithStep = Math.round((value - props.min) / step) * step + props.min;
12
+ if (valueWithStep < props.min) valueWithStep = Math.ceil((value - props.min) / step) * step + props.min;
13
+ if (valueWithStep > props.max) valueWithStep = Math.floor((value - props.min) / step) * step + props.min;
14
+ return A(props.precision) ? fixedNumber(valueWithStep, props.precision) : valueWithStep;
15
+ }
16
+ const markValues = marks.map((mark) => A(mark) ? mark : mark.value).filter((e) => e >= props.min && e <= props.max);
17
+ let closestStepPoint;
18
+ if (A(step)) if (value <= props.min) closestStepPoint = props.min;
19
+ else if (value >= props.max) closestStepPoint = props.max;
20
+ else {
21
+ const offset = value - props.min;
22
+ const factor = Math.floor(offset / step);
23
+ const candidate1 = props.min + factor * step;
24
+ const candidate2 = candidate1 + step;
25
+ const validCandidates = [candidate1];
26
+ if (candidate2 <= props.max) validCandidates.push(candidate2);
27
+ closestStepPoint = validCandidates.reduce((prev, curr) => {
28
+ const d1 = Math.abs(prev - value);
29
+ const d2 = Math.abs(curr - value);
30
+ return d2 < d1 || d2 === d1 && curr < prev ? curr : prev;
31
+ });
32
+ }
33
+ const candidates = markValues;
34
+ if (!en(closestStepPoint)) candidates.push(A(props.precision) ? fixedNumber(closestStepPoint, props.precision) : closestStepPoint);
35
+ return candidates.reduce((closest, curr) => {
36
+ const d1 = Math.abs(closest - value);
37
+ const d2 = Math.abs(curr - value);
38
+ return d2 < d1 || d2 === d1 && curr < closest ? curr : closest;
39
+ });
40
+ }
41
+ const transformModelValue = (value, props, emits) => {
42
+ if (E(value)) return props.range ? [clampValue(props.min, props), clampValue(props.min, props)] : clampValue(props.min, props);
43
+ if (props.range) if (A(value)) {
44
+ const nextValue = [clampValue(props.min, props), clampValue(value, props)];
45
+ if (nextValue[1] !== value) emits("update:modelValue", nextValue);
46
+ return nextValue;
47
+ } else {
48
+ const nextValue = value.map((e) => clampValue(e, props));
49
+ if (nextValue[0] !== value[0] || nextValue[1] !== value[1]) emits("update:modelValue", nextValue);
50
+ return nextValue;
51
+ }
52
+ else if (A(value)) {
53
+ const nextValue = clampValue(value, props);
54
+ if (nextValue !== value) emits("update:modelValue", nextValue);
55
+ return nextValue;
56
+ } else {
57
+ const nextValue = clampValue(value[1], props);
58
+ if (nextValue !== value[1]) emits("update:modelValue", nextValue);
59
+ return nextValue;
60
+ }
61
+ };
62
+ const getTargetThumbEl = (e, direction, thumbStartRef, thumbEndRef) => {
63
+ const clientX = e.clientX;
64
+ const clientY = e.clientY;
65
+ if ((thumbStartRef.value ? direction === "horizontal" ? Math.abs(clientX - thumbStartRef.value.getBoundingClientRect().left) : Math.abs(clientY - thumbStartRef.value.getBoundingClientRect().top) : Infinity) <= (thumbEndRef.value ? direction === "horizontal" ? Math.abs(clientX - thumbEndRef.value.getBoundingClientRect().left) : Math.abs(clientY - thumbEndRef.value.getBoundingClientRect().top) : Infinity)) return {
66
+ thumbEl: thumbStartRef.value,
67
+ targetType: "start"
68
+ };
69
+ else return {
70
+ thumbEl: thumbEndRef.value,
71
+ targetType: "end"
72
+ };
73
+ };
74
+ const calcValueFromEvent = (e, sliderEl, thumbEl, valueRange, props) => {
75
+ const sliderRect = sliderEl.getBoundingClientRect();
76
+ const thumbRect = thumbEl.getBoundingClientRect();
77
+ let clientOffset;
78
+ if (e instanceof MouseEvent) clientOffset = props.direction === "horizontal" ? e.clientX : e.clientY;
79
+ else clientOffset = props.direction === "horizontal" ? e.touches[0].clientX : e.touches[0].clientY;
80
+ const padding = props.direction === "horizontal" ? Math.round(thumbRect.width / 2) : Math.round(thumbRect.height / 2);
81
+ const startBorder = props.direction === "horizontal" ? sliderRect.left + padding : sliderRect.top + padding;
82
+ const endBorder = props.direction === "horizontal" ? sliderRect.right - padding : sliderRect.bottom - padding;
83
+ const areaWidth = props.direction === "horizontal" ? sliderRect.width - thumbRect.width : sliderRect.height - thumbRect.height;
84
+ let percentage = (ke(clientOffset, startBorder, endBorder) - startBorder) / areaWidth;
85
+ if (props.direction === "vertical") percentage = 1 - percentage;
86
+ if (props.reverse) percentage = 1 - percentage;
87
+ return clampValue(props.min + percentage * valueRange, props);
88
+ };
89
+ const calcThumbLeft = (value, sliderRect, thumbRect, valueRange, props) => {
90
+ const areaWidth = props.direction === "horizontal" ? sliderRect.width - thumbRect.width : sliderRect.height - thumbRect.height;
91
+ let left = valueRange > 0 ? ke((value - props.min) / valueRange * areaWidth, 0, areaWidth) : 0;
92
+ if (props.reverse) left = areaWidth - left;
93
+ const pixelSize = calcPixelSize();
94
+ return left - pixelSize;
95
+ };
96
+ const updateMarkPoints = (rect, valueRange, props) => {
97
+ var _props$marks;
98
+ if (!((_props$marks = props.marks) === null || _props$marks === void 0 ? void 0 : _props$marks.length)) return [];
99
+ const pixelSize = calcPixelSize();
100
+ const dotSize = props.direction === "horizontal" ? rect.height : rect.width;
101
+ const width = props.direction === "horizontal" ? rect.width - dotSize - pixelSize * 2 : rect.height - dotSize - pixelSize * 2;
102
+ return props.marks.filter((mark) => {
103
+ if (A(mark)) return mark >= props.min && mark <= props.max;
104
+ else return mark.value >= props.min && mark.value <= props.max;
105
+ }).map((mark) => {
106
+ if (A(mark)) {
107
+ const left = valueRange > 0 ? width * (mark - props.min) / valueRange : 0;
108
+ return {
109
+ value: mark,
110
+ left: Math.round(left),
111
+ markLeft: Math.round(left + Math.round(dotSize / 2))
112
+ };
113
+ } else {
114
+ const left = valueRange > 0 ? width * (mark.value - props.min) / valueRange : 0;
115
+ return {
116
+ value: mark.value,
117
+ label: mark.label,
118
+ left: Math.round(left),
119
+ markLeft: Math.round(left + Math.round(dotSize / 2))
120
+ };
121
+ }
122
+ });
123
+ };
124
+ const getRangeValue = (modelValue, index, props) => {
125
+ return !S(modelValue) ? index === 0 ? clampValue(props.min, props) : modelValue : modelValue[index];
126
+ };
127
+ const getSingleValue = (modelValue) => {
128
+ return !S(modelValue) ? modelValue : modelValue[1];
129
+ };
130
+ export { getSingleValue as a, updateMarkPoints as c, getRangeValue as i, calcValueFromEvent as n, getTargetThumbEl as o, clampValue as r, transformModelValue as s, calcThumbLeft as t };
@@ -1,8 +1,3 @@
1
- .px-space {
2
- --px-medium-interval: var(--px-interval-2);
3
- --px-large-interval: var(--px-interval-3);
4
- --px-small-interval: var(--px-interval-1);
5
- }
6
1
  .px-space__inline {
7
2
  display: inline-block;
8
3
  }
@@ -41,40 +36,40 @@
41
36
  }
42
37
  .px-space-inner {
43
38
  display: flex;
44
- margin-top: calc(-1 * var(--px-medium-interval) / 2);
45
- margin-bottom: calc(-1 * var(--px-medium-interval) / 2);
46
- margin-left: calc(-1 * var(--px-medium-interval) / 2);
47
- margin-right: calc(-1 * var(--px-medium-interval) / 2);
39
+ margin-top: -4px;
40
+ margin-bottom: -4px;
41
+ margin-left: -4px;
42
+ margin-right: -4px;
48
43
  }
49
44
  .px-space-inner .px-space-item {
50
- margin-top: calc(var(--px-medium-interval) / 2);
51
- margin-bottom: calc(var(--px-medium-interval) / 2);
52
- margin-left: calc(var(--px-medium-interval) / 2);
53
- margin-right: calc(var(--px-medium-interval) / 2);
45
+ margin-top: 4px;
46
+ margin-bottom: 4px;
47
+ margin-left: 4px;
48
+ margin-right: 4px;
54
49
  }
55
50
  .px-space-inner.px-space__small {
56
- margin-top: calc(-1 * var(--px-small-interval) / 2);
57
- margin-bottom: calc(-1 * var(--px-small-interval) / 2);
58
- margin-left: calc(-1 * var(--px-small-interval) / 2);
59
- margin-right: calc(-1 * var(--px-small-interval) / 2);
51
+ margin-top: -2px;
52
+ margin-bottom: -2px;
53
+ margin-left: -2px;
54
+ margin-right: -2px;
60
55
  }
61
56
  .px-space-inner.px-space__small .px-space-item {
62
- margin-top: calc(var(--px-small-interval) / 2);
63
- margin-bottom: calc(var(--px-small-interval) / 2);
64
- margin-left: calc(var(--px-small-interval) / 2);
65
- margin-right: calc(var(--px-small-interval) / 2);
57
+ margin-top: 2px;
58
+ margin-bottom: 2px;
59
+ margin-left: 2px;
60
+ margin-right: 2px;
66
61
  }
67
62
  .px-space-inner.px-space__large {
68
- margin-top: calc(-1 * var(--px-large-interval) / 2);
69
- margin-bottom: calc(-1 * var(--px-large-interval) / 2);
70
- margin-left: calc(-1 * var(--px-large-interval) / 2);
71
- margin-right: calc(-1 * var(--px-large-interval) / 2);
63
+ margin-top: -6px;
64
+ margin-bottom: -6px;
65
+ margin-left: -6px;
66
+ margin-right: -6px;
72
67
  }
73
68
  .px-space-inner.px-space__large .px-space-item {
74
- margin-top: calc(var(--px-large-interval) / 2);
75
- margin-bottom: calc(var(--px-large-interval) / 2);
76
- margin-left: calc(var(--px-large-interval) / 2);
77
- margin-right: calc(var(--px-large-interval) / 2);
69
+ margin-top: 6px;
70
+ margin-bottom: 6px;
71
+ margin-left: 6px;
72
+ margin-right: 6px;
78
73
  }
79
74
  .px-space__wrap {
80
75
  flex-wrap: wrap;
package/es/space/index.js CHANGED
@@ -1,99 +1,75 @@
1
1
  import './css.js'
2
- import { defineComponent, computed, useSlots, createVNode, Fragment } from "vue";
3
- import { f as flattenVNodes } from "../share/util/render.js";
4
- import { k } from "../aside/index.js";
5
- const _sfc_main = /* @__PURE__ */ defineComponent({
6
- ...{
7
- name: "Space"
8
- },
9
- __name: "index",
10
- props: {
11
- margin: {
12
- default: "medium"
13
- },
14
- direction: {
15
- default: "horizontal"
16
- },
17
- justify: {
18
- default: "start"
19
- },
20
- align: null,
21
- wrap: {
22
- type: Boolean,
23
- default: true
24
- },
25
- inline: {
26
- type: Boolean,
27
- default: false
28
- }
29
- },
30
- setup(__props) {
31
- const props = __props;
32
- const alignComputed = computed(() => {
33
- if (props.align) {
34
- return props.align;
35
- }
36
- return props.direction === "horizontal" ? "center" : "stretch";
37
- });
38
- const slots = useSlots();
39
- const marginComputed = computed(() => {
40
- if (!props.margin || props.margin === "small" || props.margin === "medium" || props.margin === "large") {
41
- return;
42
- }
43
- if (k(props.margin)) {
44
- return {
45
- x: props.margin,
46
- y: props.margin
47
- };
48
- }
49
- if ("x" in props.margin || "y" in props.margin) {
50
- const x = k(props.margin.x) ? props.margin.x : 0;
51
- const y = k(props.margin.y) ? props.margin.y : 0;
52
- return {
53
- x,
54
- y
55
- };
56
- }
57
- });
58
- return () => {
59
- var _a;
60
- const children = flattenVNodes(((_a = slots.default) == null ? void 0 : _a.call(slots)) || []);
61
- return createVNode("div", {
62
- "class": {
63
- pixelium: true,
64
- "px-space": true,
65
- [`px-space__inline`]: !!props.inline
66
- }
67
- }, [createVNode("div", {
68
- "class": {
69
- "px-space-inner": true,
70
- [`px-space__small`]: props.margin === "small",
71
- [`px-space__large`]: props.margin === "large",
72
- [`px-space__justify-${props.justify}`]: true,
73
- [`px-space__align-${alignComputed.value}`]: true,
74
- [`px-space__${props.direction}`]: true,
75
- [`px-space__wrap`]: !!props.wrap
76
- },
77
- "style": {
78
- marginTop: marginComputed.value ? -marginComputed.value.y / 2 + "px" : void 0,
79
- marginBottom: marginComputed.value ? -marginComputed.value.y / 2 + "px" : void 0,
80
- marginLeft: marginComputed.value ? -marginComputed.value.x / 2 + "px" : void 0,
81
- marginRight: marginComputed.value ? -marginComputed.value.x / 2 + "px" : void 0
82
- }
83
- }, [children.map((child, index) => createVNode(Fragment, {
84
- "key": child.key || `px-space-item-${index}`
85
- }, [createVNode("div", {
86
- "class": "px-space-item",
87
- "style": {
88
- marginTop: marginComputed.value ? marginComputed.value.y / 2 + "px" : void 0,
89
- marginBottom: marginComputed.value ? marginComputed.value.y / 2 + "px" : void 0,
90
- marginLeft: marginComputed.value ? marginComputed.value.x / 2 + "px" : void 0,
91
- marginRight: marginComputed.value ? marginComputed.value.x / 2 + "px" : void 0
92
- }
93
- }, [child])]))])]);
94
- };
95
- }
2
+ import { g as A } from "../vendor.js";
3
+ import { t as flattenVNodes } from "../share/util/render.js";
4
+ import { Fragment, computed, createVNode, defineComponent, useSlots } from "vue";
5
+ var space_default = /* @__PURE__ */ defineComponent({
6
+ name: "Space",
7
+ __name: "index",
8
+ props: {
9
+ margin: { default: "medium" },
10
+ direction: { default: "horizontal" },
11
+ justify: { default: "start" },
12
+ align: null,
13
+ wrap: {
14
+ type: Boolean,
15
+ default: true
16
+ },
17
+ inline: {
18
+ type: Boolean,
19
+ default: false
20
+ }
21
+ },
22
+ setup(__props) {
23
+ const props = __props;
24
+ const alignComputed = computed(() => {
25
+ if (props.align) return props.align;
26
+ return props.direction === "horizontal" ? "center" : "stretch";
27
+ });
28
+ const slots = useSlots();
29
+ const marginComputed = computed(() => {
30
+ if (!props.margin || props.margin === "small" || props.margin === "medium" || props.margin === "large") return;
31
+ if (A(props.margin)) return {
32
+ x: props.margin,
33
+ y: props.margin
34
+ };
35
+ if ("x" in props.margin || "y" in props.margin) return {
36
+ x: A(props.margin.x) ? props.margin.x : 0,
37
+ y: A(props.margin.y) ? props.margin.y : 0
38
+ };
39
+ });
40
+ return () => {
41
+ var _slots$default;
42
+ const children = flattenVNodes(((_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)) || []);
43
+ return createVNode("div", { "class": {
44
+ pixelium: true,
45
+ "px-space": true,
46
+ [`px-space__inline`]: !!props.inline
47
+ } }, [createVNode("div", {
48
+ "class": {
49
+ "px-space-inner": true,
50
+ [`px-space__small`]: props.margin === "small",
51
+ [`px-space__large`]: props.margin === "large",
52
+ [`px-space__justify-${props.justify}`]: true,
53
+ [`px-space__align-${alignComputed.value}`]: true,
54
+ [`px-space__${props.direction}`]: true,
55
+ [`px-space__wrap`]: !!props.wrap
56
+ },
57
+ "style": {
58
+ marginTop: marginComputed.value ? -marginComputed.value.y / 2 + "px" : void 0,
59
+ marginBottom: marginComputed.value ? -marginComputed.value.y / 2 + "px" : void 0,
60
+ marginLeft: marginComputed.value ? -marginComputed.value.x / 2 + "px" : void 0,
61
+ marginRight: marginComputed.value ? -marginComputed.value.x / 2 + "px" : void 0
62
+ }
63
+ }, [children.map((child, index) => createVNode(Fragment, { "key": child.key || `px-space-item-${index}` }, [createVNode("div", {
64
+ "class": "px-space-item",
65
+ "style": {
66
+ marginTop: marginComputed.value ? marginComputed.value.y / 2 + "px" : void 0,
67
+ marginBottom: marginComputed.value ? marginComputed.value.y / 2 + "px" : void 0,
68
+ marginLeft: marginComputed.value ? marginComputed.value.x / 2 + "px" : void 0,
69
+ marginRight: marginComputed.value ? marginComputed.value.x / 2 + "px" : void 0
70
+ }
71
+ }, [child])]))])]);
72
+ };
73
+ }
96
74
  });
97
- export {
98
- _sfc_main as _
99
- };
75
+ export { space_default as t };
package/es/spin/index.css CHANGED
@@ -1,16 +1,17 @@
1
1
  .px-spin {
2
2
  position: relative;
3
3
  display: inline-block;
4
- min-height: var(--px-medium-base-size);
5
- min-width: var(--px-medium-base-size);
4
+ min-height: 28px;
5
+ min-width: 28px;
6
+ transition: 0.25s;
6
7
  }
7
8
  .px-spin__small {
8
- min-height: var(--px-small-base-size);
9
- min-width: var(--px-small-base-size);
9
+ min-height: 20px;
10
+ min-width: 20px;
10
11
  }
11
12
  .px-spin__large {
12
- min-height: var(--px-large-base-size);
13
- min-width: var(--px-large-base-size);
13
+ min-height: 36px;
14
+ min-width: 36px;
14
15
  }
15
16
  .px-spin-cover {
16
17
  position: absolute;
@@ -33,34 +34,34 @@
33
34
  justify-content: center;
34
35
  align-items: center;
35
36
  color: var(--px-primary-6);
36
- font-size: var(--px-large-font-size);
37
+ font-size: 15px;
37
38
  }
38
39
  .px-spin-icon-wrapper {
39
40
  display: flex;
40
41
  justify-content: center;
41
42
  align-items: center;
42
- margin-bottom: var(--px-interval-2);
43
- font-size: var(--px-medium-base-size);
43
+ margin-bottom: 8px;
44
+ font-size: 28px;
44
45
  }
45
46
  .px-spin-icon-wrapper__last {
46
47
  margin-bottom: 0;
47
48
  }
48
49
  .px-spin-icon-wrapper .px-spin-icon {
49
- height: var(--px-medium-base-size);
50
- width: var(--px-medium-base-size);
50
+ height: 28px;
51
+ width: 28px;
51
52
  fill: var(--px-primary-6);
52
53
  }
53
54
  .px-spin-icon-wrapper__small {
54
- font-size: var(--px-small-base-size);
55
+ font-size: 20px;
55
56
  }
56
57
  .px-spin-icon-wrapper__small .px-spin-icon {
57
- height: var(--px-small-base-size);
58
- width: var(--px-small-base-size);
58
+ height: 20px;
59
+ width: 20px;
59
60
  }
60
61
  .px-spin-icon-wrapper__large {
61
- font-size: var(--px-large-base-size);
62
+ font-size: 36px;
62
63
  }
63
64
  .px-spin-icon-wrapper__large .px-spin-icon {
64
- height: var(--px-large-base-size);
65
- width: var(--px-large-base-size);
65
+ height: 36px;
66
+ width: 36px;
66
67
  }