@mekari/pixel3-slider 0.0.1-dev.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.
@@ -0,0 +1,76 @@
1
+ import {
2
+ useSlider
3
+ } from "./chunk-KTN7D244.mjs";
4
+ import {
5
+ sliderEmits,
6
+ sliderProps
7
+ } from "./chunk-SXAHQ4O2.mjs";
8
+
9
+ // src/slider.tsx
10
+ import { createVNode as _createVNode } from "vue";
11
+ import { defineComponent } from "vue";
12
+ import { MpText } from "@mekari/pixel3-text";
13
+ var MpSlider = defineComponent({
14
+ name: "MpSlider",
15
+ props: sliderProps,
16
+ emits: sliderEmits,
17
+ setup(props, {
18
+ slots,
19
+ emit
20
+ }) {
21
+ const {
22
+ rootAttrs,
23
+ labelWrapperAttrs,
24
+ sliderWrapperAttrs,
25
+ sliderAttrs,
26
+ progressAttrs,
27
+ inputWrapperAttrs,
28
+ inputMinAttrs,
29
+ inputMaxAttrs,
30
+ legendWrapperAttrs,
31
+ isRangeSlider,
32
+ currentValue,
33
+ minRangeValue,
34
+ maxRangeValue
35
+ } = useSlider(props, emit);
36
+ return () => {
37
+ const {
38
+ min,
39
+ max
40
+ } = props;
41
+ const label = slots.label && slots.label();
42
+ const value = slots.value && slots.value({
43
+ value: currentValue.value
44
+ });
45
+ const minSlots = slots.min && slots.min();
46
+ const maxSlots = slots.max && slots.max();
47
+ const valueText = isRangeSlider.value ? `${minRangeValue.value} - ${maxRangeValue.value}` : currentValue.value;
48
+ return _createVNode("div", rootAttrs.value, [_createVNode("div", labelWrapperAttrs.value, [_createVNode(MpText, {
49
+ "size": "label",
50
+ "color": "dark"
51
+ }, {
52
+ default: () => [label ? label : "Label"]
53
+ }), _createVNode(MpText, {
54
+ "size": "label",
55
+ "color": "dark",
56
+ "weight": "semiBold"
57
+ }, {
58
+ default: () => [value ? value : valueText]
59
+ })]), _createVNode("div", sliderWrapperAttrs.value, [_createVNode("div", progressAttrs.value, [_createVNode("div", sliderAttrs.value, null)]), _createVNode("div", inputWrapperAttrs.value, [_createVNode("input", inputMinAttrs.value, null), isRangeSlider.value && _createVNode("input", inputMaxAttrs.value, null)])]), _createVNode("div", legendWrapperAttrs.value, [_createVNode(MpText, {
60
+ "size": "label-small",
61
+ "color": "gray.600"
62
+ }, {
63
+ default: () => [minSlots ? minSlots : min]
64
+ }), _createVNode(MpText, {
65
+ "size": "label-small",
66
+ "color": "gray.600"
67
+ }, {
68
+ default: () => [maxSlots ? maxSlots : max]
69
+ })])]);
70
+ };
71
+ }
72
+ });
73
+
74
+ export {
75
+ MpSlider
76
+ };
@@ -0,0 +1,208 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-QZ7VFGWC.mjs";
4
+
5
+ // src/modules/slider.hooks.ts
6
+ import { computed, ref, toRefs } from "vue";
7
+ import { getUniqueId } from "@mekari/pixel3-utils";
8
+ import { css, cx } from "@mekari/pixel3-styled-system/css";
9
+ import { token } from "@mekari/pixel3-styled-system/tokens";
10
+ import { sliderSlotRecipe } from "@mekari/pixel3-styled-system/recipes";
11
+ function useSlider(props, emit) {
12
+ const {
13
+ id,
14
+ value,
15
+ min,
16
+ max,
17
+ step,
18
+ variant,
19
+ color,
20
+ gradientColor,
21
+ isGradient,
22
+ isDisabled
23
+ } = toRefs(props);
24
+ const currentValue = ref(value.value);
25
+ const isMinPressed = ref(false);
26
+ const isMaxPressed = ref(false);
27
+ const getId = id.value || getUniqueId("", "slider").value;
28
+ const rootAttrs = computed(() => {
29
+ return {
30
+ "data-pixel-component": "MpSlider",
31
+ id: getId,
32
+ class: sliderSlotRecipe().root
33
+ };
34
+ });
35
+ const labelWrapperAttrs = computed(() => {
36
+ return {
37
+ class: sliderSlotRecipe().labelWrapper
38
+ };
39
+ });
40
+ const sliderWrapperAttrs = computed(() => {
41
+ return {
42
+ class: sliderSlotRecipe().sliderWrapper
43
+ };
44
+ });
45
+ const progressAttrs = computed(() => {
46
+ const background = isGradient.value ? handleGradientColor(gradientColor.value) : token(`colors.${color.value}`) || color.value;
47
+ return {
48
+ class: sliderSlotRecipe().progress,
49
+ style: {
50
+ background
51
+ }
52
+ };
53
+ });
54
+ const sliderAttrs = computed(() => {
55
+ const leftValue = isRangeSlider.value ? 0 : (currentValue.value - min.value) / (max.value - min.value) * 100;
56
+ const rightValue = 0;
57
+ const background = isRangeSlider.value ? `linear-gradient(to right, #EDF0F2 ${minRangeValue.value}%, transparent ${minRangeValue.value}%, transparent ${maxRangeValue.value}%, #EDF0F2 ${maxRangeValue.value}%)` : token("colors.gray.50");
58
+ return {
59
+ class: sliderSlotRecipe().slider,
60
+ style: {
61
+ background,
62
+ left: `${leftValue}%`,
63
+ right: `${rightValue}%`
64
+ }
65
+ };
66
+ });
67
+ const inputWrapperAttrs = computed(() => {
68
+ return {
69
+ class: sliderSlotRecipe().inputWrapper
70
+ };
71
+ });
72
+ const inputMinAttrs = computed(() => {
73
+ return {
74
+ id: `input-min-${getId}`,
75
+ type: "range",
76
+ min: min.value,
77
+ max: max.value,
78
+ step: step.value,
79
+ value: isRangeSlider.value ? minRangeValue.value : currentValue.value,
80
+ disabled: isDisabled.value,
81
+ class: cx(sliderSlotRecipe().input, css({
82
+ pointerEvents: isRangeSlider.value ? "none" : "auto",
83
+ "&::-webkit-slider-thumb": {
84
+ background: isDisabled.value ? "radial-gradient(circle, #D0D6DD 40%, white 50%)" : "radial-gradient(circle, #4B61DD 40%, white 50%)",
85
+ borderWidth: isMinPressed.value ? "1.5px" : "1px",
86
+ cursor: isDisabled.value ? "not-allowed" : "pointer",
87
+ _hover: {
88
+ borderColor: isMinPressed.value ? "blue.400" : "gray.400"
89
+ }
90
+ }
91
+ })),
92
+ onInput: (e) => handleInput(e, "min"),
93
+ onChange: handleChange,
94
+ onMouseup: handleRelease,
95
+ onMousedown: () => handlePress("min")
96
+ };
97
+ });
98
+ const inputMaxAttrs = computed(() => {
99
+ return {
100
+ id: `input-max-${getId}`,
101
+ type: "range",
102
+ min: min.value,
103
+ max: max.value,
104
+ step: step.value,
105
+ value: maxRangeValue.value,
106
+ disabled: isDisabled.value,
107
+ class: cx(sliderSlotRecipe().input, css({
108
+ pointerEvents: "none",
109
+ "&::-webkit-slider-thumb": {
110
+ background: isDisabled.value ? "radial-gradient(circle, #D0D6DD 40%, white 50%)" : "radial-gradient(circle, #4B61DD 40%, white 50%)",
111
+ borderWidth: isMaxPressed.value ? "1.5px" : "1px",
112
+ cursor: isDisabled.value ? "not-allowed" : "pointer",
113
+ _hover: {
114
+ borderColor: isMaxPressed.value ? "blue.400" : "gray.400"
115
+ }
116
+ }
117
+ })),
118
+ onInput: (e) => handleInput(e, "max"),
119
+ onChange: handleChange,
120
+ onMouseup: handleRelease,
121
+ onMousedown: () => handlePress("max")
122
+ };
123
+ });
124
+ const legendWrapperAttrs = computed(() => {
125
+ return {
126
+ class: sliderSlotRecipe().labelWrapper
127
+ };
128
+ });
129
+ const isRangeSlider = computed(() => {
130
+ return variant.value === "range";
131
+ });
132
+ const minRangeValue = computed(() => {
133
+ return isRangeSlider.value && Array.isArray(currentValue.value) && currentValue.value[0];
134
+ });
135
+ const maxRangeValue = computed(() => {
136
+ return isRangeSlider.value && Array.isArray(currentValue.value) && currentValue.value[1];
137
+ });
138
+ function handleInput(e, type) {
139
+ const target = e.target;
140
+ emit("input", target.value);
141
+ if (type === "min") {
142
+ if (isRangeSlider.value && Array.isArray(currentValue.value)) {
143
+ currentValue.value[0] = Number(target.value);
144
+ if (typeof maxRangeValue.value === "number" && typeof minRangeValue.value === "number") {
145
+ if (minRangeValue.value > maxRangeValue.value) {
146
+ currentValue.value[0] = maxRangeValue.value;
147
+ }
148
+ }
149
+ } else {
150
+ currentValue.value = Number(target.value);
151
+ }
152
+ }
153
+ if (type === "max" && Array.isArray(currentValue.value)) {
154
+ currentValue.value[1] = Number(target.value);
155
+ if (typeof maxRangeValue.value === "number" && typeof minRangeValue.value === "number") {
156
+ if (minRangeValue.value > maxRangeValue.value) {
157
+ currentValue.value[1] = minRangeValue.value;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ __name(handleInput, "handleInput");
163
+ function handleChange() {
164
+ emit("change", currentValue.value);
165
+ }
166
+ __name(handleChange, "handleChange");
167
+ function handleRelease() {
168
+ isMinPressed.value = false;
169
+ isMaxPressed.value = false;
170
+ emit("drag-end");
171
+ }
172
+ __name(handleRelease, "handleRelease");
173
+ function handlePress(type) {
174
+ type === "min" ? isMinPressed.value = true : isMaxPressed.value = true;
175
+ emit("drag-start");
176
+ }
177
+ __name(handlePress, "handlePress");
178
+ function handleGradientColor(colors) {
179
+ const stepPercentage = 100 / (colors.length - 1);
180
+ const gradientParts = colors.map((color2, index) => {
181
+ const position = index * stepPercentage;
182
+ return `${token(`colors.${color2}`) || color2} ${position}%`;
183
+ });
184
+ const gradientStr = `linear-gradient(to right, ${gradientParts.join(", ")})`;
185
+ return gradientStr;
186
+ }
187
+ __name(handleGradientColor, "handleGradientColor");
188
+ return {
189
+ rootAttrs,
190
+ labelWrapperAttrs,
191
+ sliderWrapperAttrs,
192
+ sliderAttrs,
193
+ progressAttrs,
194
+ inputWrapperAttrs,
195
+ inputMinAttrs,
196
+ inputMaxAttrs,
197
+ legendWrapperAttrs,
198
+ isRangeSlider,
199
+ currentValue,
200
+ minRangeValue,
201
+ maxRangeValue
202
+ };
203
+ }
204
+ __name(useSlider, "useSlider");
205
+
206
+ export {
207
+ useSlider
208
+ };
@@ -0,0 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ export {
5
+ __name
6
+ };
@@ -0,0 +1,49 @@
1
+ // src/modules/slider.props.ts
2
+ var sliderProps = {
3
+ id: {
4
+ type: String,
5
+ default: ""
6
+ },
7
+ value: {
8
+ type: [Number, Array],
9
+ default: 0
10
+ },
11
+ min: {
12
+ type: Number,
13
+ default: 0
14
+ },
15
+ max: {
16
+ type: Number,
17
+ default: 100
18
+ },
19
+ step: {
20
+ type: Number,
21
+ default: 1
22
+ },
23
+ variant: {
24
+ type: String,
25
+ default: "single"
26
+ },
27
+ color: {
28
+ type: String,
29
+ default: "sky.100"
30
+ },
31
+ gradientColor: {
32
+ type: Array,
33
+ default: () => ["blue.50", "blue.100", "blue.400", "blue.700"]
34
+ },
35
+ isGradient: {
36
+ type: Boolean,
37
+ default: false
38
+ },
39
+ isDisabled: {
40
+ type: Boolean,
41
+ default: false
42
+ }
43
+ };
44
+ var sliderEmits = ["input", "change", "drag-end", "drag-start"];
45
+
46
+ export {
47
+ sliderProps,
48
+ sliderEmits
49
+ };
@@ -0,0 +1,5 @@
1
+ export { MpSlider } from './slider.mjs';
2
+ import 'vue/jsx-runtime';
3
+ import '@mekari/pixel3-styled-system/tokens';
4
+ import '@mekari/pixel3-utils';
5
+ import 'vue';
@@ -0,0 +1,5 @@
1
+ export { MpSlider } from './slider.js';
2
+ import 'vue/jsx-runtime';
3
+ import '@mekari/pixel3-styled-system/tokens';
4
+ import '@mekari/pixel3-utils';
5
+ import 'vue';
package/dist/index.js ADDED
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/index.ts
22
+ var src_exports = {};
23
+ __export(src_exports, {
24
+ MpSlider: () => MpSlider
25
+ });
26
+ module.exports = __toCommonJS(src_exports);
27
+
28
+ // src/slider.tsx
29
+ var import_vue2 = require("vue");
30
+ var import_vue3 = require("vue");
31
+ var import_pixel3_text = require("@mekari/pixel3-text");
32
+
33
+ // src/modules/slider.hooks.ts
34
+ var import_vue = require("vue");
35
+ var import_pixel3_utils = require("@mekari/pixel3-utils");
36
+ var import_css = require("@mekari/pixel3-styled-system/css");
37
+ var import_tokens = require("@mekari/pixel3-styled-system/tokens");
38
+ var import_recipes = require("@mekari/pixel3-styled-system/recipes");
39
+ function useSlider(props, emit) {
40
+ const {
41
+ id,
42
+ value,
43
+ min,
44
+ max,
45
+ step,
46
+ variant,
47
+ color,
48
+ gradientColor,
49
+ isGradient,
50
+ isDisabled
51
+ } = (0, import_vue.toRefs)(props);
52
+ const currentValue = (0, import_vue.ref)(value.value);
53
+ const isMinPressed = (0, import_vue.ref)(false);
54
+ const isMaxPressed = (0, import_vue.ref)(false);
55
+ const getId = id.value || (0, import_pixel3_utils.getUniqueId)("", "slider").value;
56
+ const rootAttrs = (0, import_vue.computed)(() => {
57
+ return {
58
+ "data-pixel-component": "MpSlider",
59
+ id: getId,
60
+ class: (0, import_recipes.sliderSlotRecipe)().root
61
+ };
62
+ });
63
+ const labelWrapperAttrs = (0, import_vue.computed)(() => {
64
+ return {
65
+ class: (0, import_recipes.sliderSlotRecipe)().labelWrapper
66
+ };
67
+ });
68
+ const sliderWrapperAttrs = (0, import_vue.computed)(() => {
69
+ return {
70
+ class: (0, import_recipes.sliderSlotRecipe)().sliderWrapper
71
+ };
72
+ });
73
+ const progressAttrs = (0, import_vue.computed)(() => {
74
+ const background = isGradient.value ? handleGradientColor(gradientColor.value) : (0, import_tokens.token)(`colors.${color.value}`) || color.value;
75
+ return {
76
+ class: (0, import_recipes.sliderSlotRecipe)().progress,
77
+ style: {
78
+ background
79
+ }
80
+ };
81
+ });
82
+ const sliderAttrs = (0, import_vue.computed)(() => {
83
+ const leftValue = isRangeSlider.value ? 0 : (currentValue.value - min.value) / (max.value - min.value) * 100;
84
+ const rightValue = 0;
85
+ const background = isRangeSlider.value ? `linear-gradient(to right, #EDF0F2 ${minRangeValue.value}%, transparent ${minRangeValue.value}%, transparent ${maxRangeValue.value}%, #EDF0F2 ${maxRangeValue.value}%)` : (0, import_tokens.token)("colors.gray.50");
86
+ return {
87
+ class: (0, import_recipes.sliderSlotRecipe)().slider,
88
+ style: {
89
+ background,
90
+ left: `${leftValue}%`,
91
+ right: `${rightValue}%`
92
+ }
93
+ };
94
+ });
95
+ const inputWrapperAttrs = (0, import_vue.computed)(() => {
96
+ return {
97
+ class: (0, import_recipes.sliderSlotRecipe)().inputWrapper
98
+ };
99
+ });
100
+ const inputMinAttrs = (0, import_vue.computed)(() => {
101
+ return {
102
+ id: `input-min-${getId}`,
103
+ type: "range",
104
+ min: min.value,
105
+ max: max.value,
106
+ step: step.value,
107
+ value: isRangeSlider.value ? minRangeValue.value : currentValue.value,
108
+ disabled: isDisabled.value,
109
+ class: (0, import_css.cx)((0, import_recipes.sliderSlotRecipe)().input, (0, import_css.css)({
110
+ pointerEvents: isRangeSlider.value ? "none" : "auto",
111
+ "&::-webkit-slider-thumb": {
112
+ background: isDisabled.value ? "radial-gradient(circle, #D0D6DD 40%, white 50%)" : "radial-gradient(circle, #4B61DD 40%, white 50%)",
113
+ borderWidth: isMinPressed.value ? "1.5px" : "1px",
114
+ cursor: isDisabled.value ? "not-allowed" : "pointer",
115
+ _hover: {
116
+ borderColor: isMinPressed.value ? "blue.400" : "gray.400"
117
+ }
118
+ }
119
+ })),
120
+ onInput: (e) => handleInput(e, "min"),
121
+ onChange: handleChange,
122
+ onMouseup: handleRelease,
123
+ onMousedown: () => handlePress("min")
124
+ };
125
+ });
126
+ const inputMaxAttrs = (0, import_vue.computed)(() => {
127
+ return {
128
+ id: `input-max-${getId}`,
129
+ type: "range",
130
+ min: min.value,
131
+ max: max.value,
132
+ step: step.value,
133
+ value: maxRangeValue.value,
134
+ disabled: isDisabled.value,
135
+ class: (0, import_css.cx)((0, import_recipes.sliderSlotRecipe)().input, (0, import_css.css)({
136
+ pointerEvents: "none",
137
+ "&::-webkit-slider-thumb": {
138
+ background: isDisabled.value ? "radial-gradient(circle, #D0D6DD 40%, white 50%)" : "radial-gradient(circle, #4B61DD 40%, white 50%)",
139
+ borderWidth: isMaxPressed.value ? "1.5px" : "1px",
140
+ cursor: isDisabled.value ? "not-allowed" : "pointer",
141
+ _hover: {
142
+ borderColor: isMaxPressed.value ? "blue.400" : "gray.400"
143
+ }
144
+ }
145
+ })),
146
+ onInput: (e) => handleInput(e, "max"),
147
+ onChange: handleChange,
148
+ onMouseup: handleRelease,
149
+ onMousedown: () => handlePress("max")
150
+ };
151
+ });
152
+ const legendWrapperAttrs = (0, import_vue.computed)(() => {
153
+ return {
154
+ class: (0, import_recipes.sliderSlotRecipe)().labelWrapper
155
+ };
156
+ });
157
+ const isRangeSlider = (0, import_vue.computed)(() => {
158
+ return variant.value === "range";
159
+ });
160
+ const minRangeValue = (0, import_vue.computed)(() => {
161
+ return isRangeSlider.value && Array.isArray(currentValue.value) && currentValue.value[0];
162
+ });
163
+ const maxRangeValue = (0, import_vue.computed)(() => {
164
+ return isRangeSlider.value && Array.isArray(currentValue.value) && currentValue.value[1];
165
+ });
166
+ function handleInput(e, type) {
167
+ const target = e.target;
168
+ emit("input", target.value);
169
+ if (type === "min") {
170
+ if (isRangeSlider.value && Array.isArray(currentValue.value)) {
171
+ currentValue.value[0] = Number(target.value);
172
+ if (typeof maxRangeValue.value === "number" && typeof minRangeValue.value === "number") {
173
+ if (minRangeValue.value > maxRangeValue.value) {
174
+ currentValue.value[0] = maxRangeValue.value;
175
+ }
176
+ }
177
+ } else {
178
+ currentValue.value = Number(target.value);
179
+ }
180
+ }
181
+ if (type === "max" && Array.isArray(currentValue.value)) {
182
+ currentValue.value[1] = Number(target.value);
183
+ if (typeof maxRangeValue.value === "number" && typeof minRangeValue.value === "number") {
184
+ if (minRangeValue.value > maxRangeValue.value) {
185
+ currentValue.value[1] = minRangeValue.value;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ __name(handleInput, "handleInput");
191
+ function handleChange() {
192
+ emit("change", currentValue.value);
193
+ }
194
+ __name(handleChange, "handleChange");
195
+ function handleRelease() {
196
+ isMinPressed.value = false;
197
+ isMaxPressed.value = false;
198
+ emit("drag-end");
199
+ }
200
+ __name(handleRelease, "handleRelease");
201
+ function handlePress(type) {
202
+ type === "min" ? isMinPressed.value = true : isMaxPressed.value = true;
203
+ emit("drag-start");
204
+ }
205
+ __name(handlePress, "handlePress");
206
+ function handleGradientColor(colors) {
207
+ const stepPercentage = 100 / (colors.length - 1);
208
+ const gradientParts = colors.map((color2, index) => {
209
+ const position = index * stepPercentage;
210
+ return `${(0, import_tokens.token)(`colors.${color2}`) || color2} ${position}%`;
211
+ });
212
+ const gradientStr = `linear-gradient(to right, ${gradientParts.join(", ")})`;
213
+ return gradientStr;
214
+ }
215
+ __name(handleGradientColor, "handleGradientColor");
216
+ return {
217
+ rootAttrs,
218
+ labelWrapperAttrs,
219
+ sliderWrapperAttrs,
220
+ sliderAttrs,
221
+ progressAttrs,
222
+ inputWrapperAttrs,
223
+ inputMinAttrs,
224
+ inputMaxAttrs,
225
+ legendWrapperAttrs,
226
+ isRangeSlider,
227
+ currentValue,
228
+ minRangeValue,
229
+ maxRangeValue
230
+ };
231
+ }
232
+ __name(useSlider, "useSlider");
233
+
234
+ // src/modules/slider.props.ts
235
+ var sliderProps = {
236
+ id: {
237
+ type: String,
238
+ default: ""
239
+ },
240
+ value: {
241
+ type: [Number, Array],
242
+ default: 0
243
+ },
244
+ min: {
245
+ type: Number,
246
+ default: 0
247
+ },
248
+ max: {
249
+ type: Number,
250
+ default: 100
251
+ },
252
+ step: {
253
+ type: Number,
254
+ default: 1
255
+ },
256
+ variant: {
257
+ type: String,
258
+ default: "single"
259
+ },
260
+ color: {
261
+ type: String,
262
+ default: "sky.100"
263
+ },
264
+ gradientColor: {
265
+ type: Array,
266
+ default: () => ["blue.50", "blue.100", "blue.400", "blue.700"]
267
+ },
268
+ isGradient: {
269
+ type: Boolean,
270
+ default: false
271
+ },
272
+ isDisabled: {
273
+ type: Boolean,
274
+ default: false
275
+ }
276
+ };
277
+ var sliderEmits = ["input", "change", "drag-end", "drag-start"];
278
+
279
+ // src/slider.tsx
280
+ var MpSlider = (0, import_vue3.defineComponent)({
281
+ name: "MpSlider",
282
+ props: sliderProps,
283
+ emits: sliderEmits,
284
+ setup(props, {
285
+ slots,
286
+ emit
287
+ }) {
288
+ const {
289
+ rootAttrs,
290
+ labelWrapperAttrs,
291
+ sliderWrapperAttrs,
292
+ sliderAttrs,
293
+ progressAttrs,
294
+ inputWrapperAttrs,
295
+ inputMinAttrs,
296
+ inputMaxAttrs,
297
+ legendWrapperAttrs,
298
+ isRangeSlider,
299
+ currentValue,
300
+ minRangeValue,
301
+ maxRangeValue
302
+ } = useSlider(props, emit);
303
+ return () => {
304
+ const {
305
+ min,
306
+ max
307
+ } = props;
308
+ const label = slots.label && slots.label();
309
+ const value = slots.value && slots.value({
310
+ value: currentValue.value
311
+ });
312
+ const minSlots = slots.min && slots.min();
313
+ const maxSlots = slots.max && slots.max();
314
+ const valueText = isRangeSlider.value ? `${minRangeValue.value} - ${maxRangeValue.value}` : currentValue.value;
315
+ return (0, import_vue2.createVNode)("div", rootAttrs.value, [(0, import_vue2.createVNode)("div", labelWrapperAttrs.value, [(0, import_vue2.createVNode)(import_pixel3_text.MpText, {
316
+ "size": "label",
317
+ "color": "dark"
318
+ }, {
319
+ default: () => [label ? label : "Label"]
320
+ }), (0, import_vue2.createVNode)(import_pixel3_text.MpText, {
321
+ "size": "label",
322
+ "color": "dark",
323
+ "weight": "semiBold"
324
+ }, {
325
+ default: () => [value ? value : valueText]
326
+ })]), (0, import_vue2.createVNode)("div", sliderWrapperAttrs.value, [(0, import_vue2.createVNode)("div", progressAttrs.value, [(0, import_vue2.createVNode)("div", sliderAttrs.value, null)]), (0, import_vue2.createVNode)("div", inputWrapperAttrs.value, [(0, import_vue2.createVNode)("input", inputMinAttrs.value, null), isRangeSlider.value && (0, import_vue2.createVNode)("input", inputMaxAttrs.value, null)])]), (0, import_vue2.createVNode)("div", legendWrapperAttrs.value, [(0, import_vue2.createVNode)(import_pixel3_text.MpText, {
327
+ "size": "label-small",
328
+ "color": "gray.600"
329
+ }, {
330
+ default: () => [minSlots ? minSlots : min]
331
+ }), (0, import_vue2.createVNode)(import_pixel3_text.MpText, {
332
+ "size": "label-small",
333
+ "color": "gray.600"
334
+ }, {
335
+ default: () => [maxSlots ? maxSlots : max]
336
+ })])]);
337
+ };
338
+ }
339
+ });
340
+ // Annotate the CommonJS export names for ESM import in node:
341
+ 0 && (module.exports = {
342
+ MpSlider
343
+ });