@sentropic/design-system-vue 0.20.1 → 0.22.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.
@@ -1,8 +1,28 @@
1
1
  export type DatePickerSize = "sm" | "md" | "lg";
2
+ export type DatePickerRange = {
3
+ start: Date | null;
4
+ end: Date | null;
5
+ };
6
+ export type DatePickerValue = Date | DatePickerRange | null;
2
7
  export type DatePickerProps = {
3
8
  label?: unknown;
4
- value?: string;
9
+ helperText?: unknown;
10
+ errorText?: unknown;
11
+ invalid?: boolean;
12
+ disabled?: boolean;
13
+ mode?: "single" | "range";
14
+ /** `v-model` value (`Date | {start,end} | null`). */
15
+ modelValue?: DatePickerValue;
16
+ min?: Date;
17
+ max?: Date;
18
+ locale?: string;
19
+ placeholder?: string;
5
20
  size?: DatePickerSize;
21
+ id?: string;
22
+ openLabel?: string;
23
+ previousMonthLabel?: string;
24
+ nextMonthLabel?: string;
25
+ todayLabel?: string;
6
26
  class?: string;
7
27
  };
8
28
  export declare const DatePicker: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -10,7 +30,43 @@ export declare const DatePicker: import("vue").DefineComponent<import("vue").Ext
10
30
  type: () => unknown;
11
31
  default: undefined;
12
32
  };
13
- value: {
33
+ helperText: {
34
+ type: () => unknown;
35
+ default: undefined;
36
+ };
37
+ errorText: {
38
+ type: () => unknown;
39
+ default: undefined;
40
+ };
41
+ invalid: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
45
+ disabled: {
46
+ type: BooleanConstructor;
47
+ default: boolean;
48
+ };
49
+ mode: {
50
+ type: () => "single" | "range";
51
+ default: string;
52
+ };
53
+ modelValue: {
54
+ type: () => DatePickerValue;
55
+ default: undefined;
56
+ };
57
+ min: {
58
+ type: () => Date;
59
+ default: undefined;
60
+ };
61
+ max: {
62
+ type: () => Date;
63
+ default: undefined;
64
+ };
65
+ locale: {
66
+ type: StringConstructor;
67
+ default: string;
68
+ };
69
+ placeholder: {
14
70
  type: StringConstructor;
15
71
  default: undefined;
16
72
  };
@@ -18,6 +74,26 @@ export declare const DatePicker: import("vue").DefineComponent<import("vue").Ext
18
74
  type: () => DatePickerSize;
19
75
  default: string;
20
76
  };
77
+ id: {
78
+ type: StringConstructor;
79
+ default: undefined;
80
+ };
81
+ openLabel: {
82
+ type: StringConstructor;
83
+ default: undefined;
84
+ };
85
+ previousMonthLabel: {
86
+ type: StringConstructor;
87
+ default: undefined;
88
+ };
89
+ nextMonthLabel: {
90
+ type: StringConstructor;
91
+ default: undefined;
92
+ };
93
+ todayLabel: {
94
+ type: StringConstructor;
95
+ default: undefined;
96
+ };
21
97
  class: {
22
98
  type: StringConstructor;
23
99
  default: undefined;
@@ -29,7 +105,43 @@ export declare const DatePicker: import("vue").DefineComponent<import("vue").Ext
29
105
  type: () => unknown;
30
106
  default: undefined;
31
107
  };
32
- value: {
108
+ helperText: {
109
+ type: () => unknown;
110
+ default: undefined;
111
+ };
112
+ errorText: {
113
+ type: () => unknown;
114
+ default: undefined;
115
+ };
116
+ invalid: {
117
+ type: BooleanConstructor;
118
+ default: boolean;
119
+ };
120
+ disabled: {
121
+ type: BooleanConstructor;
122
+ default: boolean;
123
+ };
124
+ mode: {
125
+ type: () => "single" | "range";
126
+ default: string;
127
+ };
128
+ modelValue: {
129
+ type: () => DatePickerValue;
130
+ default: undefined;
131
+ };
132
+ min: {
133
+ type: () => Date;
134
+ default: undefined;
135
+ };
136
+ max: {
137
+ type: () => Date;
138
+ default: undefined;
139
+ };
140
+ locale: {
141
+ type: StringConstructor;
142
+ default: string;
143
+ };
144
+ placeholder: {
33
145
  type: StringConstructor;
34
146
  default: undefined;
35
147
  };
@@ -37,6 +149,26 @@ export declare const DatePicker: import("vue").DefineComponent<import("vue").Ext
37
149
  type: () => DatePickerSize;
38
150
  default: string;
39
151
  };
152
+ id: {
153
+ type: StringConstructor;
154
+ default: undefined;
155
+ };
156
+ openLabel: {
157
+ type: StringConstructor;
158
+ default: undefined;
159
+ };
160
+ previousMonthLabel: {
161
+ type: StringConstructor;
162
+ default: undefined;
163
+ };
164
+ nextMonthLabel: {
165
+ type: StringConstructor;
166
+ default: undefined;
167
+ };
168
+ todayLabel: {
169
+ type: StringConstructor;
170
+ default: undefined;
171
+ };
40
172
  class: {
41
173
  type: StringConstructor;
42
174
  default: undefined;
@@ -46,8 +178,22 @@ export declare const DatePicker: import("vue").DefineComponent<import("vue").Ext
46
178
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
47
179
  }>, {
48
180
  class: string;
181
+ mode: "range" | "single";
49
182
  label: undefined;
183
+ invalid: boolean;
184
+ id: string;
185
+ disabled: boolean;
50
186
  size: DatePickerSize;
51
- value: string;
187
+ min: Date;
188
+ max: Date;
189
+ locale: string;
190
+ previousMonthLabel: string;
191
+ nextMonthLabel: string;
192
+ placeholder: string;
193
+ helperText: undefined;
194
+ modelValue: DatePickerValue;
195
+ errorText: undefined;
196
+ openLabel: string;
197
+ todayLabel: string;
52
198
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
53
199
  //# sourceMappingURL=DatePicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAOF,eAAO,MAAM,UAAU;;cAG2B,MAAM,OAAO;;;;;;;;cAEnC,MAAM,cAAc;;;;;;;;;;;cAFE,MAAM,OAAO;;;;;;;;cAEnC,MAAM,cAAc;;;;;;;;;;;;;;;4EA+C9C,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAIhD,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,qDAAqD;IACrD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAmCF,eAAO,MAAM,UAAU;;cAG2B,MAAM,OAAO;;;;cACR,MAAM,OAAO;;;;cACd,MAAM,OAAO;;;;;;;;;;;;cAGvC,MAAM,QAAQ,GAAG,OAAO;;;;cACC,MAAM,eAAe;;;;cACtC,MAAM,IAAI;;;;cACV,MAAM,IAAI;;;;;;;;;;;;cAGlB,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAXE,MAAM,OAAO;;;;cACR,MAAM,OAAO;;;;cACd,MAAM,OAAO;;;;;;;;;;;;cAGvC,MAAM,QAAQ,GAAG,OAAO;;;;cACC,MAAM,eAAe;;;;cACtC,MAAM,IAAI;;;;cACV,MAAM,IAAI;;;;;;;;;;;;cAGlB,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA4U9C,CAAC"}
@@ -1,44 +1,321 @@
1
- import { defineComponent, h, ref } from "vue";
1
+ import { defineComponent, h, ref, watch, onUnmounted } from "vue";
2
2
  import { classNames } from "./classNames.js";
3
3
  let _dpCounter = 0;
4
4
  function nextDpId() {
5
5
  return `st-datepicker-${++_dpCounter}`;
6
6
  }
7
+ function dpStartOfDay(date) {
8
+ const d = new Date(date);
9
+ d.setHours(0, 0, 0, 0);
10
+ return d;
11
+ }
12
+ function dpIsSameDay(a, b) {
13
+ if (!a || !b)
14
+ return false;
15
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
16
+ }
17
+ function dpIsRange(value) {
18
+ return value !== null && value !== undefined && typeof value === "object" && !(value instanceof Date) && "start" in value;
19
+ }
20
+ function dpFirstDayOfWeek(locale) {
21
+ try {
22
+ // @ts-expect-error: weekInfo is recent and not in all TS lib versions.
23
+ const info = new Intl.Locale(locale).weekInfo;
24
+ if (info && typeof info.firstDay === "number") {
25
+ return info.firstDay === 7 ? 0 : info.firstDay;
26
+ }
27
+ }
28
+ catch {
29
+ // Ignore — fall back below.
30
+ }
31
+ return locale.toLowerCase().startsWith("en-us") ? 0 : 1;
32
+ }
7
33
  export const DatePicker = defineComponent({
8
34
  name: "DatePicker",
9
35
  props: {
10
36
  label: { type: [String, Object], default: undefined },
11
- value: { type: String, default: undefined },
37
+ helperText: { type: [String, Object], default: undefined },
38
+ errorText: { type: [String, Object], default: undefined },
39
+ invalid: { type: Boolean, default: false },
40
+ disabled: { type: Boolean, default: false },
41
+ mode: { type: String, default: "single" },
42
+ modelValue: { type: [Object, Date], default: undefined },
43
+ min: { type: Date, default: undefined },
44
+ max: { type: Date, default: undefined },
45
+ locale: { type: String, default: "fr-FR" },
46
+ placeholder: { type: String, default: undefined },
12
47
  size: { type: String, default: "md" },
48
+ id: { type: String, default: undefined },
49
+ openLabel: { type: String, default: undefined },
50
+ previousMonthLabel: { type: String, default: undefined },
51
+ nextMonthLabel: { type: String, default: undefined },
52
+ todayLabel: { type: String, default: undefined },
13
53
  class: { type: String, default: undefined },
14
54
  },
15
55
  emits: ["update:modelValue", "change"],
16
56
  setup(props, { emit, attrs }) {
17
57
  const autoId = ref(nextDpId());
58
+ const hostRef = ref(null);
59
+ const open = ref(false);
60
+ // Uncontrolled fallback when `modelValue` is omitted (parity with the
61
+ // Svelte $bindable default normalisation by mode).
62
+ const emptyValue = () => (props.mode === "range" ? { start: null, end: null } : null);
63
+ const internal = ref(props.modelValue ?? emptyValue());
64
+ const activeValue = () => (props.modelValue !== undefined ? props.modelValue : internal.value);
65
+ const pickInitialMonth = () => {
66
+ const v = activeValue();
67
+ if (props.mode === "single" && v instanceof Date)
68
+ return dpStartOfDay(v);
69
+ if (dpIsRange(v) && v.start)
70
+ return dpStartOfDay(v.start);
71
+ return dpStartOfDay(new Date());
72
+ };
73
+ const initial = pickInitialMonth();
74
+ const viewYear = ref(initial.getFullYear());
75
+ const viewMonth = ref(initial.getMonth());
76
+ const setOpen = (val) => {
77
+ open.value = val;
78
+ };
79
+ const commit = (next) => {
80
+ if (props.modelValue === undefined)
81
+ internal.value = next;
82
+ emit("update:modelValue", next);
83
+ emit("change", next);
84
+ };
85
+ const onMouseDown = (event) => {
86
+ const target = event.target;
87
+ if (target && hostRef.value && !hostRef.value.contains(target))
88
+ setOpen(false);
89
+ };
90
+ watch(() => open.value, (isOpen) => {
91
+ if (isOpen) {
92
+ // Re-sync the visible month when the calendar reopens.
93
+ const m = pickInitialMonth();
94
+ viewYear.value = m.getFullYear();
95
+ viewMonth.value = m.getMonth();
96
+ document.addEventListener("mousedown", onMouseDown);
97
+ }
98
+ else {
99
+ document.removeEventListener("mousedown", onMouseDown);
100
+ }
101
+ });
102
+ onUnmounted(() => document.removeEventListener("mousedown", onMouseDown));
103
+ const isOutOfBounds = (date) => {
104
+ const d = dpStartOfDay(date).getTime();
105
+ if (props.min && d < dpStartOfDay(props.min).getTime())
106
+ return true;
107
+ if (props.max && d > dpStartOfDay(props.max).getTime())
108
+ return true;
109
+ return false;
110
+ };
111
+ const previousMonth = () => {
112
+ if (viewMonth.value === 0) {
113
+ viewMonth.value = 11;
114
+ viewYear.value -= 1;
115
+ }
116
+ else {
117
+ viewMonth.value -= 1;
118
+ }
119
+ };
120
+ const nextMonth = () => {
121
+ if (viewMonth.value === 11) {
122
+ viewMonth.value = 0;
123
+ viewYear.value += 1;
124
+ }
125
+ else {
126
+ viewMonth.value += 1;
127
+ }
128
+ };
129
+ const pickDate = (date) => {
130
+ if (isOutOfBounds(date))
131
+ return;
132
+ const picked = dpStartOfDay(date);
133
+ if (props.mode === "single") {
134
+ commit(picked);
135
+ setOpen(false);
136
+ return;
137
+ }
138
+ const v = activeValue();
139
+ const range = dpIsRange(v) ? v : { start: null, end: null };
140
+ if (!range.start || (range.start && range.end)) {
141
+ commit({ start: picked, end: null });
142
+ return;
143
+ }
144
+ if (picked.getTime() < dpStartOfDay(range.start).getTime()) {
145
+ commit({ start: picked, end: null });
146
+ return;
147
+ }
148
+ commit({ start: range.start, end: picked });
149
+ setOpen(false);
150
+ };
151
+ const toggleOpen = () => {
152
+ if (props.disabled)
153
+ return;
154
+ setOpen(!open.value);
155
+ };
156
+ const onPanelKeyDown = (event) => {
157
+ if (event.key === "Escape" && open.value) {
158
+ event.preventDefault();
159
+ setOpen(false);
160
+ }
161
+ };
18
162
  return () => {
19
- const inputId = autoId.value;
163
+ const inputId = props.id ?? autoId.value;
164
+ const locale = props.locale;
165
+ const isFr = (locale ?? "fr-FR").toLowerCase().startsWith("fr");
166
+ const v = activeValue();
167
+ const resolvedOpenLabel = props.openLabel ?? (isFr ? "Ouvrir le calendrier" : "Open calendar");
168
+ const resolvedPrevLabel = props.previousMonthLabel ?? (isFr ? "Mois précédent" : "Previous month");
169
+ const resolvedNextLabel = props.nextMonthLabel ?? (isFr ? "Mois suivant" : "Next month");
170
+ const resolvedTodayLabel = props.todayLabel ?? (isFr ? "Aujourd'hui" : "Today");
171
+ const resolvedPlaceholder = props.placeholder ??
172
+ (isFr
173
+ ? props.mode === "range"
174
+ ? "jj/mm/aaaa - jj/mm/aaaa"
175
+ : "jj/mm/aaaa"
176
+ : props.mode === "range"
177
+ ? "mm/dd/yyyy - mm/dd/yyyy"
178
+ : "mm/dd/yyyy");
179
+ const dateFormatter = new Intl.DateTimeFormat(locale, { day: "2-digit", month: "2-digit", year: "numeric" });
180
+ const monthFormatter = new Intl.DateTimeFormat(locale, { month: "long", year: "numeric" });
181
+ const weekdayFormatter = new Intl.DateTimeFormat(locale, { weekday: "short" });
182
+ const cellFormatter = new Intl.DateTimeFormat(locale, { day: "numeric", month: "long", year: "numeric" });
183
+ const weekStart = dpFirstDayOfWeek(locale);
184
+ const sample = new Date(Date.UTC(2024, 0, 7)); // a Sunday
185
+ const rawLabels = [];
186
+ for (let i = 0; i < 7; i++) {
187
+ const d = new Date(sample);
188
+ d.setUTCDate(sample.getUTCDate() + i);
189
+ rawLabels.push(weekdayFormatter.format(d));
190
+ }
191
+ const weekdayLabels = [...rawLabels.slice(weekStart), ...rawLabels.slice(0, weekStart)];
192
+ const first = new Date(viewYear.value, viewMonth.value, 1);
193
+ const offset = (first.getDay() - weekStart + 7) % 7;
194
+ const start = new Date(viewYear.value, viewMonth.value, 1 - offset);
195
+ const grid = [];
196
+ for (let i = 0; i < 42; i++) {
197
+ const d = new Date(start);
198
+ d.setDate(start.getDate() + i);
199
+ grid.push({ date: dpStartOfDay(d), inMonth: d.getMonth() === viewMonth.value });
200
+ }
201
+ const isSelected = (date) => {
202
+ if (props.mode === "single")
203
+ return v instanceof Date && dpIsSameDay(v, date);
204
+ if (dpIsRange(v))
205
+ return dpIsSameDay(v.start, date) || dpIsSameDay(v.end, date);
206
+ return false;
207
+ };
208
+ const isInRange = (date) => {
209
+ if (props.mode !== "range" || !dpIsRange(v))
210
+ return false;
211
+ const { start: rs, end: re } = v;
212
+ if (!rs || !re)
213
+ return false;
214
+ const d = dpStartOfDay(date).getTime();
215
+ return d > dpStartOfDay(rs).getTime() && d < dpStartOfDay(re).getTime();
216
+ };
217
+ const formattedValue = () => {
218
+ if (props.mode === "single")
219
+ return v instanceof Date ? dateFormatter.format(v) : "";
220
+ if (dpIsRange(v)) {
221
+ const s = v.start ? dateFormatter.format(v.start) : "";
222
+ const e = v.end ? dateFormatter.format(v.end) : "";
223
+ if (!s && !e)
224
+ return "";
225
+ return `${s} - ${e}`;
226
+ }
227
+ return "";
228
+ };
229
+ const isInvalid = props.invalid || Boolean(props.errorText);
230
+ const monthLabel = monthFormatter.format(new Date(viewYear.value, viewMonth.value, 1));
231
+ const panel = open.value
232
+ ? h("div", {
233
+ class: "st-datepicker__panel",
234
+ role: "dialog",
235
+ tabindex: -1,
236
+ "aria-label": props.label || resolvedOpenLabel,
237
+ onKeydown: onPanelKeyDown,
238
+ }, [
239
+ h("div", { class: "st-datepicker__nav" }, [
240
+ h("button", {
241
+ type: "button",
242
+ class: "st-datepicker__navBtn",
243
+ "aria-label": resolvedPrevLabel,
244
+ onClick: previousMonth,
245
+ }, [h("span", { "aria-hidden": "true" }, "‹")]),
246
+ h("span", { class: "st-datepicker__monthLabel", "aria-live": "polite" }, monthLabel),
247
+ h("button", {
248
+ type: "button",
249
+ class: "st-datepicker__navBtn",
250
+ "aria-label": resolvedNextLabel,
251
+ onClick: nextMonth,
252
+ }, [h("span", { "aria-hidden": "true" }, "›")]),
253
+ ]),
254
+ h("div", { class: "st-datepicker__grid", role: "grid" }, [
255
+ h("div", { class: "st-datepicker__weekdays", role: "row" }, weekdayLabels.map((wd, i) => h("span", { key: `${wd}-${i}`, class: "st-datepicker__weekday", role: "columnheader" }, wd))),
256
+ h("div", { class: "st-datepicker__days" }, grid.map((cell, i) => {
257
+ const oob = isOutOfBounds(cell.date);
258
+ const selected = isSelected(cell.date);
259
+ const inRange = isInRange(cell.date);
260
+ return h("button", {
261
+ key: i,
262
+ type: "button",
263
+ class: classNames("st-datepicker__day", !cell.inMonth && "st-datepicker__day--outside", selected && "st-datepicker__day--selected", inRange && "st-datepicker__day--inRange"),
264
+ "aria-label": cellFormatter.format(cell.date),
265
+ "aria-pressed": selected ? "true" : "false",
266
+ "aria-disabled": oob ? "true" : undefined,
267
+ disabled: oob,
268
+ onClick: () => pickDate(cell.date),
269
+ }, String(cell.date.getDate()));
270
+ })),
271
+ ]),
272
+ h("div", { class: "st-datepicker__footer" }, [
273
+ h("button", {
274
+ type: "button",
275
+ class: "st-datepicker__todayBtn",
276
+ disabled: isOutOfBounds(new Date()),
277
+ onClick: () => pickDate(new Date()),
278
+ }, resolvedTodayLabel),
279
+ ]),
280
+ ])
281
+ : null;
282
+ const trailing = props.errorText
283
+ ? h("span", { class: "st-field__error" }, props.errorText)
284
+ : props.helperText
285
+ ? h("span", { class: "st-field__help" }, props.helperText)
286
+ : null;
20
287
  return h("div", {
21
288
  ...attrs,
22
- class: classNames("st-datepicker", `st-datepicker--${props.size}`, props.class),
289
+ ref: hostRef,
290
+ class: classNames("st-field", props.class),
23
291
  }, [
24
- h("div", { class: "st-field" }, [
25
- h("label", { class: "st-field__control", for: inputId }, [
26
- props.label
27
- ? h("span", { class: "st-field__label" }, props.label)
28
- : null,
292
+ h("label", { class: "st-field__control", for: inputId }, [
293
+ props.label ? h("span", { class: "st-field__label" }, props.label) : null,
294
+ h("span", { class: classNames("st-datepicker", `st-datepicker--${props.size}`) }, [
29
295
  h("input", {
30
296
  id: inputId,
31
- class: "st-control st-datepicker__control",
32
- type: "date",
33
- value: props.value,
34
- onChange: (event) => {
35
- const val = event.target.value;
36
- emit("update:modelValue", val);
37
- emit("change", val);
38
- },
297
+ type: "text",
298
+ readonly: true,
299
+ class: "st-datepicker__control",
300
+ value: formattedValue(),
301
+ placeholder: resolvedPlaceholder,
302
+ disabled: props.disabled,
303
+ "aria-invalid": isInvalid ? "true" : undefined,
304
+ onClick: toggleOpen,
39
305
  }),
306
+ h("button", {
307
+ type: "button",
308
+ class: "st-datepicker__trigger",
309
+ "aria-label": resolvedOpenLabel,
310
+ "aria-haspopup": "dialog",
311
+ "aria-expanded": open.value ? "true" : "false",
312
+ disabled: props.disabled,
313
+ onClick: toggleOpen,
314
+ }, [h("span", { "aria-hidden": "true" }, "📅")]),
40
315
  ]),
41
316
  ]),
317
+ panel,
318
+ trailing,
42
319
  ]);
43
320
  };
44
321
  },
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,SAAS,QAAQ;IACf,OAAO,iBAAiB,EAAE,UAAU,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAA6B,EAAE,OAAO,EAAE,SAAS,EAAE;QACjF,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,MAA8B,EAAE,OAAO,EAAE,IAAI,EAAE;QAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5C;IACD,KAAK,EAAE,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IACtC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/B,OAAO,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;YAE7B,OAAO,CAAC,CACN,KAAK,EACL;gBACE,GAAG,KAAK;gBACR,KAAK,EAAE,UAAU,CAAC,eAAe,EAAE,kBAAkB,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC;aAChF,EACD;gBACE,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,UAAU,EAAE,EACrB;oBACE,CAAC,CACC,OAAO,EACP,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,EAC5C;wBACE,KAAK,CAAC,KAAK;4BACT,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAe,CAAC;4BAChE,CAAC,CAAC,IAAI;wBACR,CAAC,CAAC,OAAO,EAAE;4BACT,EAAE,EAAE,OAAO;4BACX,KAAK,EAAE,mCAAmC;4BAC1C,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,QAAQ,EAAE,CAAC,KAAY,EAAE,EAAE;gCACzB,MAAM,GAAG,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;gCACrD,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;gCAC/B,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;4BACtB,CAAC;yBACF,CAAC;qBACH,CACF;iBACF,CACF;aACF,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ export type DivergentBarChartTone = "positive" | "negative" | "neutral";
2
+ export type DivergentBarChartDatum = {
3
+ label: string;
4
+ value: number;
5
+ tone?: DivergentBarChartTone;
6
+ };
7
+ export type DivergentBarChartProps = {
8
+ data: DivergentBarChartDatum[];
9
+ width?: number;
10
+ height?: number;
11
+ domain?: [number, number];
12
+ format?: (value: number) => string;
13
+ showLegend?: boolean;
14
+ label: string;
15
+ class?: string;
16
+ };
17
+ export declare const DivergentBarChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
18
+ data: {
19
+ type: () => DivergentBarChartDatum[];
20
+ required: true;
21
+ };
22
+ width: {
23
+ type: NumberConstructor;
24
+ default: number;
25
+ };
26
+ height: {
27
+ type: NumberConstructor;
28
+ default: number;
29
+ };
30
+ domain: {
31
+ type: () => [number, number];
32
+ default: undefined;
33
+ };
34
+ format: {
35
+ type: () => (value: number) => string;
36
+ default: undefined;
37
+ };
38
+ showLegend: {
39
+ type: BooleanConstructor;
40
+ default: boolean;
41
+ };
42
+ label: {
43
+ type: StringConstructor;
44
+ required: true;
45
+ };
46
+ class: {
47
+ type: StringConstructor;
48
+ default: undefined;
49
+ };
50
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
51
+ [key: string]: any;
52
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
53
+ data: {
54
+ type: () => DivergentBarChartDatum[];
55
+ required: true;
56
+ };
57
+ width: {
58
+ type: NumberConstructor;
59
+ default: number;
60
+ };
61
+ height: {
62
+ type: NumberConstructor;
63
+ default: number;
64
+ };
65
+ domain: {
66
+ type: () => [number, number];
67
+ default: undefined;
68
+ };
69
+ format: {
70
+ type: () => (value: number) => string;
71
+ default: undefined;
72
+ };
73
+ showLegend: {
74
+ type: BooleanConstructor;
75
+ default: boolean;
76
+ };
77
+ label: {
78
+ type: StringConstructor;
79
+ required: true;
80
+ };
81
+ class: {
82
+ type: StringConstructor;
83
+ default: undefined;
84
+ };
85
+ }>> & Readonly<{}>, {
86
+ class: string;
87
+ width: number;
88
+ height: number;
89
+ domain: [number, number];
90
+ format: (value: number) => string;
91
+ showLegend: boolean;
92
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
93
+ //# sourceMappingURL=DivergentBarChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivergentBarChart.d.ts","sourceRoot":"","sources":["../src/DivergentBarChart.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,eAAO,MAAM,iBAAiB;;cAGH,MAAM,sBAAsB,EAAE;;;;;;;;;;;;cAGjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;cACnB,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;cAJ/C,MAAM,sBAAsB,EAAE;;;;;;;;;;;;cAGjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;cACnB,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;oBAAjB,MAAM,KAAK,MAAM;;4EA6IxE,CAAC"}