@servicetitan/anvil2 1.27.0 → 1.27.1

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 (76) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{Combobox-kxTlPBj5.js → Combobox-BRZIYucw.js} +3 -3
  3. package/dist/{Combobox-kxTlPBj5.js.map → Combobox-BRZIYucw.js.map} +1 -1
  4. package/dist/Combobox.js +1 -1
  5. package/dist/DateField-DHIXyi2_.js +565 -0
  6. package/dist/DateField-DHIXyi2_.js.map +1 -0
  7. package/dist/DateField.js +1 -1
  8. package/dist/{Dialog-6g0s0fvb-DdwUwOVg.js → Dialog-DDsVwnZZ-s9GGnSax.js} +51 -50
  9. package/dist/Dialog-DDsVwnZZ-s9GGnSax.js.map +1 -0
  10. package/dist/{Dialog-BVG0m6dn.js → Dialog-wuBdQ785.js} +2 -2
  11. package/dist/{Dialog-BVG0m6dn.js.map → Dialog-wuBdQ785.js.map} +1 -1
  12. package/dist/Dialog.js +1 -1
  13. package/dist/{Drawer-DQSLhTtO.js → Drawer-BX7LCwCa.js} +58 -54
  14. package/dist/Drawer-BX7LCwCa.js.map +1 -0
  15. package/dist/Drawer.css +25 -26
  16. package/dist/Drawer.js +1 -1
  17. package/dist/InputMask-CiAjFhsc-Bnbf_ZQq.js +195 -0
  18. package/dist/InputMask-CiAjFhsc-Bnbf_ZQq.js.map +1 -0
  19. package/dist/{InputMask-DgkoDKtz.js → InputMask-Cifzg7Ee.js} +2 -2
  20. package/dist/{InputMask-DgkoDKtz.js.map → InputMask-Cifzg7Ee.js.map} +1 -1
  21. package/dist/InputMask.js +1 -1
  22. package/dist/{Label-Cmah7p_s-DYYyQxMK.js → Label-Do6kKzVr-BvIRT-vF.js} +3 -3
  23. package/dist/{Label-Cmah7p_s-DYYyQxMK.js.map → Label-Do6kKzVr-BvIRT-vF.js.map} +1 -1
  24. package/dist/{Menu-1N6kdaVX.js → Menu-COlGXBmd.js} +2 -2
  25. package/dist/{Menu-1N6kdaVX.js.map → Menu-COlGXBmd.js.map} +1 -1
  26. package/dist/Menu.js +1 -1
  27. package/dist/{Page-DUA2NqcR.js → Page-C5GjTBZh.js} +5 -5
  28. package/dist/{Page-DUA2NqcR.js.map → Page-C5GjTBZh.js.map} +1 -1
  29. package/dist/Page.js +1 -1
  30. package/dist/{Popover-Cbmy9jrU.js → Popover-DAxtbeRA.js} +2 -2
  31. package/dist/{Popover-Cbmy9jrU.js.map → Popover-DAxtbeRA.js.map} +1 -1
  32. package/dist/{Popover-Bv4sIKvC-CCbvaK8b.js → Popover-tcXHJePS-CMjz_uId.js} +27 -87
  33. package/dist/Popover-tcXHJePS-CMjz_uId.js.map +1 -0
  34. package/dist/Popover.js +1 -1
  35. package/dist/{ProgressBar-chBw0MyR-cnNzXxPv.js → ProgressBar-BrXijLda-BDwH4WrE.js} +3 -3
  36. package/dist/{ProgressBar-chBw0MyR-cnNzXxPv.js.map → ProgressBar-BrXijLda-BDwH4WrE.js.map} +1 -1
  37. package/dist/{ProgressBar-Cbt2k-7d.js → ProgressBar-aP7gOxee.js} +2 -2
  38. package/dist/{ProgressBar-Cbt2k-7d.js.map → ProgressBar-aP7gOxee.js.map} +1 -1
  39. package/dist/ProgressBar.js +1 -1
  40. package/dist/{TextField-A_NHddzb.js → TextField-BWHsVZiC.js} +2 -2
  41. package/dist/{TextField-A_NHddzb.js.map → TextField-BWHsVZiC.js.map} +1 -1
  42. package/dist/{TextField-CODjlcrt-CsYFQwcu.js → TextField-C614D1ZV-DeVOfPoS.js} +2 -2
  43. package/dist/{TextField-CODjlcrt-CsYFQwcu.js.map → TextField-C614D1ZV-DeVOfPoS.js.map} +1 -1
  44. package/dist/TextField.js +1 -1
  45. package/dist/{Textarea-BtVSVQSa.js → Textarea-Dj47MRiF.js} +2 -2
  46. package/dist/{Textarea-BtVSVQSa.js.map → Textarea-Dj47MRiF.js.map} +1 -1
  47. package/dist/Textarea.js +1 -1
  48. package/dist/Toast.js +1 -1
  49. package/dist/{Toolbar-ULYSDfhw.js → Toolbar-BAvsl6fK.js} +2 -2
  50. package/dist/{Toolbar-ULYSDfhw.js.map → Toolbar-BAvsl6fK.js.map} +1 -1
  51. package/dist/Toolbar.js +1 -1
  52. package/dist/{Tooltip-DeaFnid1.js → Tooltip-D38gdiV_.js} +2 -2
  53. package/dist/{Tooltip-DeaFnid1.js.map → Tooltip-D38gdiV_.js.map} +1 -1
  54. package/dist/{Tooltip-gkNXkPsE-CnvZcZY3.js → Tooltip-DVBEjajY-DN86i_oi.js} +3 -3
  55. package/dist/{Tooltip-gkNXkPsE-CnvZcZY3.js.map → Tooltip-DVBEjajY-DN86i_oi.js.map} +1 -1
  56. package/dist/Tooltip.js +1 -1
  57. package/dist/components/Dialog/Dialog.d.ts +0 -1
  58. package/dist/components/Drawer/Drawer.d.ts +0 -1
  59. package/dist/index.js +14 -14
  60. package/dist/{toast-C-xc_Azo.js → toast-DMKrL2Ew.js} +2 -2
  61. package/dist/{toast-C-xc_Azo.js.map → toast-DMKrL2Ew.js.map} +1 -1
  62. package/dist/{useKeyboardFocusables-BYoElaOi-T7ncq79D.js → useKeyboardFocusables-C3hMtJK_-Cz39LRmZ.js} +12 -165
  63. package/dist/{useKeyboardFocusables-BYoElaOi-T7ncq79D.js.map → useKeyboardFocusables-C3hMtJK_-Cz39LRmZ.js.map} +1 -1
  64. package/package.json +3 -3
  65. package/dist/DateField-CaDuuTnX.js +0 -579
  66. package/dist/DateField-CaDuuTnX.js.map +0 -1
  67. package/dist/Dialog-6g0s0fvb-DdwUwOVg.js.map +0 -1
  68. package/dist/Drawer-DQSLhTtO.js.map +0 -1
  69. package/dist/InputMask-mcs9lD4F-BuCF93Le.js +0 -320
  70. package/dist/InputMask-mcs9lD4F-BuCF93Le.js.map +0 -1
  71. package/dist/Popover-Bv4sIKvC-CCbvaK8b.js.map +0 -1
  72. /package/dist/{Dialog-6g0s0fvb.css → Dialog-DDsVwnZZ.css} +0 -0
  73. /package/dist/{Label-Cmah7p_s.css → Label-Do6kKzVr.css} +0 -0
  74. /package/dist/{Popover-Bv4sIKvC.css → Popover-tcXHJePS.css} +0 -0
  75. /package/dist/{ProgressBar-chBw0MyR.css → ProgressBar-BrXijLda.css} +0 -0
  76. /package/dist/{Tooltip-gkNXkPsE.css → Tooltip-DVBEjajY.css} +0 -0
@@ -1,579 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { forwardRef, useState, useRef, useMemo, useEffect } from 'react';
4
- import { useTrackingId } from './useTrackingId.js';
5
- import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
6
- import { I as InputMask } from './InputMask-mcs9lD4F-BuCF93Le.js';
7
- import { d as Popover } from './Popover-Bv4sIKvC-CCbvaK8b.js';
8
- import { D as DateTime, t as toDateString, i as isValidDate, C as Calendar } from './Calendar-Z_nAtpoV-B0uWpOrw.js';
9
- import { I as Icon } from './Icon-DbHA5GV1-DwO2aGkj.js';
10
- import { u as useKeyboardFocusables } from './useKeyboardFocusables-BYoElaOi-T7ncq79D.js';
11
- import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
12
-
13
- const SvgEvent = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M16 13h-3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-10v1H8V3c0-.55-.45-1-1-1s-1 .45-1 1v1H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-1V3c0-.55-.45-1-1-1s-1 .45-1 1zm2 17H6c-.55 0-1-.45-1-1V9h14v10c0 .55-.45 1-1 1z" }));
14
-
15
- const RANGE_DIVIDER = " – ";
16
- const DateField$1 = forwardRef(
17
- ({
18
- // DateField
19
- openCalendar,
20
- onFocus,
21
- onBlur,
22
- onChange,
23
- onClick,
24
- format = "MM/dd/yyyy",
25
- disableHint,
26
- // Calendar
27
- minDate,
28
- maxDate,
29
- unavailableDates,
30
- unavailable,
31
- startDay,
32
- defaultValue,
33
- value: inputValue,
34
- // Shared
35
- locale = Intl.DateTimeFormat().resolvedOptions().locale,
36
- defaultTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone,
37
- range,
38
- // Input
39
- required,
40
- ...inputProps
41
- }, ref) => {
42
- const [open, _setOpen] = useState(openCalendar || false);
43
- const setOpen = (val) => {
44
- if (open && !val) {
45
- inputRef.current?.focus();
46
- }
47
- _setOpen(val);
48
- };
49
- const [internalValue, setInternalValue] = useState();
50
- const inputRef = useRef(null);
51
- const popperRef = useRef(null);
52
- const hint = useMemo(
53
- () => disableHint ? undefined : `format: ${format.replace(/M/g, "m")}`,
54
- [format, disableHint]
55
- );
56
- const { focusables } = useKeyboardFocusables(document.body, {
57
- observeChange: true
58
- });
59
- const { focusables: popoverFocusables } = useKeyboardFocusables(
60
- popperRef.current,
61
- {
62
- observeChange: true
63
- }
64
- );
65
- const pageFocusables = focusables?.filter(
66
- (item) => !popoverFocusables?.includes(item)
67
- );
68
- const [popoverRef, setPopoverRef] = useState();
69
- const combinedRef = useMergeRefs([popoverRef, inputRef]);
70
- useEffect(() => {
71
- if (!defaultValue) return;
72
- if (range) {
73
- const startDate = DateTime.fromFormat(
74
- defaultValue.start ?? "",
75
- format,
76
- {
77
- zone: defaultTimeZone
78
- }
79
- ).startOf("day");
80
- const endDate = DateTime.fromFormat(defaultValue.end ?? "", format, {
81
- zone: defaultTimeZone
82
- }).startOf("day");
83
- const newValue2 = {
84
- start: {
85
- value: defaultValue.start ?? "",
86
- date: toDateString(startDate),
87
- isValid: startDate.isValid && isValidDate(
88
- startDate,
89
- minDate,
90
- maxDate,
91
- new Set(unavailableDates || unavailable?.dates),
92
- {
93
- dates: new Set(unavailable?.dates),
94
- daysOfWeek: new Set(unavailable?.daysOfWeek)
95
- },
96
- defaultTimeZone
97
- )
98
- },
99
- end: {
100
- value: defaultValue.end ?? "",
101
- date: toDateString(endDate),
102
- isValid: startDate.isValid && isValidDate(
103
- endDate,
104
- minDate,
105
- maxDate,
106
- new Set(unavailableDates || unavailable?.dates),
107
- {
108
- dates: new Set(unavailable?.dates),
109
- daysOfWeek: new Set(unavailable?.daysOfWeek)
110
- },
111
- defaultTimeZone
112
- )
113
- },
114
- value: defaultValue.start + RANGE_DIVIDER + defaultValue.end
115
- };
116
- setInternalValue(newValue2);
117
- return;
118
- }
119
- const date = DateTime.fromFormat(defaultValue, format, {
120
- zone: defaultTimeZone
121
- }).startOf("day");
122
- const newValue = {
123
- value: defaultValue,
124
- date: toDateString(date),
125
- isValid: date.isValid && isValidDate(
126
- date,
127
- minDate,
128
- maxDate,
129
- new Set(unavailableDates || unavailable?.dates),
130
- {
131
- dates: new Set(unavailable?.dates),
132
- daysOfWeek: new Set(unavailable?.daysOfWeek)
133
- },
134
- defaultTimeZone
135
- )
136
- };
137
- setInternalValue(newValue);
138
- }, []);
139
- const getCurrentValue = () => {
140
- if (inputValue !== undefined) {
141
- if (range) {
142
- const startDate = DateTime.fromFormat(
143
- inputValue.start ?? "",
144
- format,
145
- {
146
- zone: defaultTimeZone
147
- }
148
- ).startOf("day");
149
- const endDate = DateTime.fromFormat(inputValue.end ?? "", format, {
150
- zone: defaultTimeZone
151
- }).startOf("day");
152
- const returnValue = {
153
- start: {
154
- value: inputValue.start ?? "",
155
- date: toDateString(startDate),
156
- isValid: startDate.isValid && isValidDate(
157
- startDate,
158
- minDate,
159
- maxDate,
160
- new Set(unavailableDates || unavailable?.dates),
161
- {
162
- dates: new Set(unavailable?.dates),
163
- daysOfWeek: new Set(unavailable?.daysOfWeek)
164
- },
165
- defaultTimeZone
166
- )
167
- },
168
- end: {
169
- value: inputValue.end ?? "",
170
- date: toDateString(endDate),
171
- isValid: startDate.isValid && isValidDate(
172
- endDate,
173
- minDate,
174
- maxDate,
175
- new Set(unavailableDates || unavailable?.dates),
176
- {
177
- dates: new Set(unavailable?.dates),
178
- daysOfWeek: new Set(unavailable?.daysOfWeek)
179
- },
180
- defaultTimeZone
181
- )
182
- },
183
- value: inputValue.start + RANGE_DIVIDER + inputValue.end
184
- };
185
- return returnValue;
186
- }
187
- const date = DateTime.fromFormat(inputValue, format, {
188
- zone: defaultTimeZone
189
- }).startOf("day");
190
- return {
191
- value: inputValue,
192
- date: toDateString(date),
193
- isValid: date.isValid && isValidDate(
194
- date,
195
- minDate,
196
- maxDate,
197
- new Set(unavailableDates || unavailable?.dates),
198
- {
199
- dates: new Set(unavailable?.dates),
200
- daysOfWeek: new Set(unavailable?.daysOfWeek)
201
- },
202
- defaultTimeZone
203
- )
204
- };
205
- }
206
- return internalValue;
207
- };
208
- const handleInputFocus = (ev) => {
209
- onFocus?.(ev);
210
- };
211
- const handleInputBlur = (ev) => {
212
- if (!popperRef.current?.contains(ev.relatedTarget)) {
213
- setOpen(false);
214
- onBlur?.(ev);
215
- }
216
- };
217
- const handleInputKeyDown = (ev) => {
218
- let currentFocusIndex = 0;
219
- switch (ev.key) {
220
- case "Escape":
221
- setOpen(false);
222
- break;
223
- case "Tab":
224
- if (!open || !pageFocusables?.length) {
225
- break;
226
- }
227
- ev.preventDefault();
228
- currentFocusIndex = pageFocusables.indexOf(inputRef.current) || 0;
229
- setOpen(false);
230
- if (ev.shiftKey) {
231
- if (currentFocusIndex === 0) {
232
- requestAnimationFrame(
233
- () => pageFocusables[pageFocusables.length - 1].focus()
234
- );
235
- } else {
236
- requestAnimationFrame(
237
- () => pageFocusables[currentFocusIndex - 1].focus()
238
- );
239
- }
240
- break;
241
- }
242
- if (pageFocusables.length > currentFocusIndex + 1) {
243
- requestAnimationFrame(
244
- () => pageFocusables[currentFocusIndex + 1].focus()
245
- );
246
- } else {
247
- requestAnimationFrame(() => pageFocusables[0].focus());
248
- }
249
- break;
250
- case "ArrowDown":
251
- if (!open) {
252
- setOpen(true);
253
- setTimeout(focusToCalendar, 200);
254
- } else {
255
- focusToCalendar();
256
- }
257
- }
258
- };
259
- const handleCalendarKeyDown = (ev) => {
260
- switch (ev.key) {
261
- case "Escape":
262
- setOpen(false);
263
- inputRef.current?.focus();
264
- }
265
- };
266
- const handleInputClick = (ev) => {
267
- setOpen(true);
268
- onClick?.(ev);
269
- };
270
- const handleInputChange = (ev) => {
271
- if (range) {
272
- const parts = ev.target.value.split(RANGE_DIVIDER);
273
- if (parts.length !== 2) return;
274
- const startDate = DateTime.fromFormat(parts[0], format, {
275
- zone: defaultTimeZone
276
- }).startOf("day");
277
- const endDate = DateTime.fromFormat(parts[1], format, {
278
- zone: defaultTimeZone
279
- }).startOf("day");
280
- const returnValue = {
281
- start: {
282
- value: parts[0],
283
- date: toDateString(startDate),
284
- isValid: startDate.isValid && isValidDate(
285
- startDate,
286
- minDate,
287
- maxDate,
288
- new Set(unavailableDates || unavailable?.dates),
289
- {
290
- dates: new Set(unavailable?.dates),
291
- daysOfWeek: new Set(unavailable?.daysOfWeek)
292
- },
293
- defaultTimeZone
294
- )
295
- },
296
- end: {
297
- value: parts[1],
298
- date: toDateString(endDate),
299
- isValid: startDate.isValid && isValidDate(
300
- endDate,
301
- minDate,
302
- maxDate,
303
- new Set(unavailableDates || unavailable?.dates),
304
- {
305
- dates: new Set(unavailable?.dates),
306
- daysOfWeek: new Set(unavailable?.daysOfWeek)
307
- },
308
- defaultTimeZone
309
- )
310
- },
311
- value: ev.target.value
312
- };
313
- setInternalValue(returnValue);
314
- onChange?.(ev, returnValue);
315
- return;
316
- }
317
- const date = DateTime.fromFormat(ev.target.value, format, {
318
- zone: defaultTimeZone
319
- }).startOf("day");
320
- const newDate = {
321
- value: ev.target.value,
322
- date: toDateString(date),
323
- isValid: date.isValid && isValidDate(
324
- date,
325
- minDate,
326
- maxDate,
327
- new Set(unavailableDates || unavailable?.dates),
328
- {
329
- dates: new Set(unavailable?.dates),
330
- daysOfWeek: new Set(unavailable?.daysOfWeek)
331
- },
332
- defaultTimeZone
333
- )
334
- };
335
- setInternalValue(newDate);
336
- onChange?.(ev, newDate);
337
- };
338
- const handleCalendarSelection = (data) => {
339
- if (range) {
340
- const startDate = data.value?.start ?? "";
341
- const endDate = data.value?.end ?? "";
342
- const startVal = DateTime.fromISO(startDate, {
343
- zone: defaultTimeZone
344
- });
345
- const startValue = startVal.toFormat(format);
346
- const endVal = DateTime.fromISO(endDate, {
347
- zone: defaultTimeZone
348
- });
349
- const endValue = endVal.toFormat(format);
350
- const newDateRange = {
351
- start: {
352
- value: startValue,
353
- date: startDate,
354
- isValid: true
355
- },
356
- end: {
357
- value: endValue,
358
- date: endDate,
359
- isValid: true
360
- },
361
- value: startValue + RANGE_DIVIDER + endValue
362
- };
363
- setInternalValue(newDateRange);
364
- const event2 = {
365
- target: {
366
- value: startValue + RANGE_DIVIDER + endValue
367
- }
368
- };
369
- handleInputChange(event2);
370
- return;
371
- }
372
- const date = data.value;
373
- const val = DateTime.fromISO(date || "", {
374
- zone: defaultTimeZone
375
- });
376
- const value = val.toFormat(format);
377
- const newDate = {
378
- value,
379
- date,
380
- isValid: true
381
- };
382
- setInternalValue(newDate);
383
- const event = {
384
- target: {
385
- value
386
- }
387
- };
388
- handleInputChange(event);
389
- };
390
- const focusToCalendar = () => {
391
- if (popperRef.current) {
392
- const currentFocusable = popperRef.current.querySelectorAll('[tabindex = "0"]')[0];
393
- if (currentFocusable) {
394
- currentFocusable.focus();
395
- }
396
- }
397
- };
398
- const handleClickOutside = () => {
399
- setOpen(false);
400
- };
401
- const currentValue = getCurrentValue();
402
- return /* @__PURE__ */ jsxs(
403
- Popover,
404
- {
405
- open: openCalendar ?? open,
406
- modal: true,
407
- placement: "bottom-start",
408
- disableTriggerFocus: true,
409
- onOutsidePress: handleClickOutside,
410
- children: [
411
- /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef, ...props }) => {
412
- setPopoverRef(iRef);
413
- return range ? /* @__PURE__ */ jsx(
414
- InputMask,
415
- {
416
- mask: "99/99/9999" + RANGE_DIVIDER + "99/99/9999",
417
- ref: combinedRef,
418
- onChange: handleInputChange,
419
- value: currentValue?.value,
420
- inputProps: {
421
- onFocus: handleInputFocus,
422
- prefix: /* @__PURE__ */ jsx(Icon, { svg: SvgEvent }),
423
- onBlur: handleInputBlur,
424
- onKeyDown: handleInputKeyDown,
425
- onClick: handleInputClick,
426
- hint,
427
- ...inputProps
428
- },
429
- customMaskHandler: [
430
- {
431
- match: {
432
- matchPattern: new RegExp(/^(\d)\//),
433
- startPosition: 0,
434
- endPosition: 2
435
- },
436
- apply: {
437
- applyPattern: "0$1",
438
- caretOffset: 2
439
- }
440
- },
441
- {
442
- match: {
443
- matchPattern: new RegExp(/^(\d)\//),
444
- startPosition: 3,
445
- endPosition: 5
446
- },
447
- apply: {
448
- applyPattern: "0$1",
449
- caretOffset: 2
450
- }
451
- },
452
- {
453
- match: {
454
- matchPattern: new RegExp(/^(\d)\//),
455
- startPosition: 13,
456
- endPosition: 15
457
- },
458
- apply: {
459
- applyPattern: "0$1",
460
- caretOffset: 2
461
- }
462
- },
463
- {
464
- match: {
465
- matchPattern: new RegExp(/^(\d)\//),
466
- startPosition: 16,
467
- endPosition: 18
468
- },
469
- apply: {
470
- applyPattern: "0$1",
471
- caretOffset: 2
472
- }
473
- }
474
- ]
475
- }
476
- ) : /* @__PURE__ */ jsx(
477
- InputMask,
478
- {
479
- mask: "99/99/9999",
480
- ref: combinedRef,
481
- onChange: handleInputChange,
482
- value: currentValue?.value,
483
- inputProps: {
484
- onFocus: handleInputFocus,
485
- prefix: /* @__PURE__ */ jsx(Icon, { svg: SvgEvent }),
486
- onBlur: handleInputBlur,
487
- onKeyDown: handleInputKeyDown,
488
- onClick: handleInputClick,
489
- hint,
490
- autoComplete: "off",
491
- ...inputProps
492
- },
493
- customMaskHandler: [
494
- {
495
- match: {
496
- matchPattern: new RegExp(/^(\d)\//),
497
- startPosition: 0,
498
- endPosition: 2
499
- },
500
- apply: {
501
- applyPattern: "0$1",
502
- caretOffset: 2
503
- }
504
- },
505
- {
506
- match: {
507
- matchPattern: new RegExp(/^(\d)\//),
508
- startPosition: 3,
509
- endPosition: 5
510
- },
511
- apply: {
512
- applyPattern: "0$1",
513
- caretOffset: 2
514
- }
515
- }
516
- ]
517
- }
518
- );
519
- } }),
520
- /* @__PURE__ */ jsx(Popover.Content, { ref: popperRef, "data-calendar-popover": true, children: range ? /* @__PURE__ */ jsx(
521
- Calendar,
522
- {
523
- range: true,
524
- onKeyDown: handleCalendarKeyDown,
525
- defaultFocusedDate: internalValue?.start?.date,
526
- value: {
527
- start: currentValue?.start?.date || undefined,
528
- end: currentValue?.end?.date || undefined
529
- },
530
- onSelection: handleCalendarSelection,
531
- minDate,
532
- maxDate,
533
- unavailableDates,
534
- unavailable,
535
- defaultTimeZone,
536
- startDay
537
- }
538
- ) : /* @__PURE__ */ jsx(
539
- Calendar,
540
- {
541
- onKeyDown: handleCalendarKeyDown,
542
- defaultFocusedDate: internalValue?.date,
543
- value: currentValue?.date || undefined,
544
- onSelection: handleCalendarSelection,
545
- minDate,
546
- maxDate,
547
- unavailableDates,
548
- unavailable,
549
- defaultTimeZone,
550
- startDay
551
- }
552
- ) })
553
- ]
554
- }
555
- );
556
- }
557
- );
558
- DateField$1.displayName = "DateField";
559
-
560
- const DateField = forwardRef(
561
- (props, ref) => {
562
- const data = {
563
- label: childrenToString(props.label),
564
- labelProps: props.labelProps,
565
- description: childrenToString(props.description),
566
- size: props.size,
567
- type: props.type
568
- };
569
- const trackingId = useTrackingId({
570
- name: "DateField",
571
- data,
572
- hasOverride: !!props["data-tracking-id"]
573
- });
574
- return /* @__PURE__ */ jsx(DateField$1, { ref, "data-tracking-id": trackingId, ...props });
575
- }
576
- );
577
-
578
- export { DateField as D };
579
- //# sourceMappingURL=DateField-CaDuuTnX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateField-CaDuuTnX.js","sources":["../../hammer-icon/mdi/round/event.svg","../../hammer-react/dist/DateField-366mrGDN.js","../src/components/DateField/DateField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgEvent = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16 13h-3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-10v1H8V3c0-.55-.45-1-1-1s-1 .45-1 1v1H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-1V3c0-.55-.45-1-1-1s-1 .45-1 1zm2 17H6c-.55 0-1-.45-1-1V9h14v10c0 .55-.45 1-1 1z\" }));\nexport default SvgEvent;\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useState, useRef, useMemo, useEffect } from 'react';\nimport { I as InputMask } from './InputMask-mcs9lD4F.js';\nimport { P as Popover } from './Popover-Bv4sIKvC.js';\nimport { t as toDateString, i as isValidDate, C as Calendar } from './Calendar-Z_nAtpoV.js';\nimport { I as Icon } from './Icon-DbHA5GV1.js';\nimport Event from '@servicetitan/hammer-icon/mdi/round/event.svg';\nimport { DateTime } from 'luxon';\nimport { u as useKeyboardFocusables } from './useKeyboardFocusables-BYoElaOi.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\n\nconst RANGE_DIVIDER = \" – \";\nconst DateField = forwardRef(\n ({\n // DateField\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n onClick,\n format = \"MM/dd/yyyy\",\n disableHint,\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n // Shared\n locale = Intl.DateTimeFormat().resolvedOptions().locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone,\n range,\n // Input\n required,\n ...inputProps\n }, ref) => {\n const [open, _setOpen] = useState(openCalendar || false);\n const setOpen = (val) => {\n if (open && !val) {\n inputRef.current?.focus();\n }\n _setOpen(val);\n };\n const [internalValue, setInternalValue] = useState();\n const inputRef = useRef(null);\n const popperRef = useRef(null);\n const hint = useMemo(\n () => disableHint ? undefined : `format: ${format.replace(/M/g, \"m\")}`,\n [format, disableHint]\n );\n const { focusables } = useKeyboardFocusables(document.body, {\n observeChange: true\n });\n const { focusables: popoverFocusables } = useKeyboardFocusables(\n popperRef.current,\n {\n observeChange: true\n }\n );\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item)\n );\n const [popoverRef, setPopoverRef] = useState();\n const combinedRef = useMergeRefs([popoverRef, inputRef]);\n useEffect(() => {\n if (!defaultValue) return;\n if (range) {\n const startDate = DateTime.fromFormat(\n defaultValue.start ?? \"\",\n format,\n {\n zone: defaultTimeZone\n }\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(defaultValue.end ?? \"\", format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const newValue2 = {\n start: {\n value: defaultValue.start ?? \"\",\n date: toDateString(startDate),\n isValid: startDate.isValid && isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n end: {\n value: defaultValue.end ?? \"\",\n date: toDateString(endDate),\n isValid: startDate.isValid && isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n value: defaultValue.start + RANGE_DIVIDER + defaultValue.end\n };\n setInternalValue(newValue2);\n return;\n }\n const date = DateTime.fromFormat(defaultValue, format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const newValue = {\n value: defaultValue,\n date: toDateString(date),\n isValid: date.isValid && isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n };\n setInternalValue(newValue);\n }, []);\n const getCurrentValue = () => {\n if (inputValue !== undefined) {\n if (range) {\n const startDate = DateTime.fromFormat(\n inputValue.start ?? \"\",\n format,\n {\n zone: defaultTimeZone\n }\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(inputValue.end ?? \"\", format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const returnValue = {\n start: {\n value: inputValue.start ?? \"\",\n date: toDateString(startDate),\n isValid: startDate.isValid && isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n end: {\n value: inputValue.end ?? \"\",\n date: toDateString(endDate),\n isValid: startDate.isValid && isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n value: inputValue.start + RANGE_DIVIDER + inputValue.end\n };\n return returnValue;\n }\n const date = DateTime.fromFormat(inputValue, format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n return {\n value: inputValue,\n date: toDateString(date),\n isValid: date.isValid && isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n };\n }\n return internalValue;\n };\n const handleInputFocus = (ev) => {\n onFocus?.(ev);\n };\n const handleInputBlur = (ev) => {\n if (!popperRef.current?.contains(ev.relatedTarget)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n const handleInputKeyDown = (ev) => {\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n break;\n case \"Tab\":\n if (!open || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current) || 0;\n setOpen(false);\n if (ev.shiftKey) {\n if (currentFocusIndex === 0) {\n requestAnimationFrame(\n () => pageFocusables[pageFocusables.length - 1].focus()\n );\n } else {\n requestAnimationFrame(\n () => pageFocusables[currentFocusIndex - 1].focus()\n );\n }\n break;\n }\n if (pageFocusables.length > currentFocusIndex + 1) {\n requestAnimationFrame(\n () => pageFocusables[currentFocusIndex + 1].focus()\n );\n } else {\n requestAnimationFrame(() => pageFocusables[0].focus());\n }\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n const handleCalendarKeyDown = (ev) => {\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n inputRef.current?.focus();\n }\n };\n const handleInputClick = (ev) => {\n setOpen(true);\n onClick?.(ev);\n };\n const handleInputChange = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const returnValue = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid: startDate.isValid && isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid: startDate.isValid && isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n },\n value: ev.target.value\n };\n setInternalValue(returnValue);\n onChange?.(ev, returnValue);\n return;\n }\n const date = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone\n }).startOf(\"day\");\n const newDate = {\n value: ev.target.value,\n date: toDateString(date),\n isValid: date.isValid && isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek)\n },\n defaultTimeZone\n )\n };\n setInternalValue(newDate);\n onChange?.(ev, newDate);\n };\n const handleCalendarSelection = (data) => {\n if (range) {\n const startDate = data.value?.start ?? \"\";\n const endDate = data.value?.end ?? \"\";\n const startVal = DateTime.fromISO(startDate, {\n zone: defaultTimeZone\n });\n const startValue = startVal.toFormat(format);\n const endVal = DateTime.fromISO(endDate, {\n zone: defaultTimeZone\n });\n const endValue = endVal.toFormat(format);\n const newDateRange = {\n start: {\n value: startValue,\n date: startDate,\n isValid: true\n },\n end: {\n value: endValue,\n date: endDate,\n isValid: true\n },\n value: startValue + RANGE_DIVIDER + endValue\n };\n setInternalValue(newDateRange);\n const event2 = {\n target: {\n value: startValue + RANGE_DIVIDER + endValue\n }\n };\n handleInputChange(event2);\n return;\n }\n const date = data.value;\n const val = DateTime.fromISO(date || \"\", {\n zone: defaultTimeZone\n });\n const value = val.toFormat(format);\n const newDate = {\n value,\n date,\n isValid: true\n };\n setInternalValue(newDate);\n const event = {\n target: {\n value\n }\n };\n handleInputChange(event);\n };\n const focusToCalendar = () => {\n if (popperRef.current) {\n const currentFocusable = popperRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n currentFocusable.focus();\n }\n }\n };\n const handleClickOutside = () => {\n setOpen(false);\n };\n const currentValue = getCurrentValue();\n return /* @__PURE__ */ jsxs(\n Popover,\n {\n open: openCalendar ?? open,\n modal: true,\n placement: \"bottom-start\",\n disableTriggerFocus: true,\n onOutsidePress: handleClickOutside,\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef, ...props }) => {\n setPopoverRef(iRef);\n return range ? /* @__PURE__ */ jsx(\n InputMask,\n {\n mask: \"99/99/9999\" + RANGE_DIVIDER + \"99/99/9999\",\n ref: combinedRef,\n onChange: handleInputChange,\n value: currentValue?.value,\n inputProps: {\n onFocus: handleInputFocus,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n ...inputProps\n },\n customMaskHandler: [\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 13,\n endPosition: 15\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 16,\n endPosition: 18\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n }\n ]\n }\n ) : /* @__PURE__ */ jsx(\n InputMask,\n {\n mask: \"99/99/9999\",\n ref: combinedRef,\n onChange: handleInputChange,\n value: currentValue?.value,\n inputProps: {\n onFocus: handleInputFocus,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n autoComplete: \"off\",\n ...inputProps\n },\n customMaskHandler: [\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2\n }\n }\n ]\n }\n );\n } }),\n /* @__PURE__ */ jsx(Popover.Content, { ref: popperRef, \"data-calendar-popover\": true, children: range ? /* @__PURE__ */ jsx(\n Calendar,\n {\n range: true,\n onKeyDown: handleCalendarKeyDown,\n defaultFocusedDate: internalValue?.start?.date,\n value: {\n start: currentValue?.start?.date || undefined,\n end: currentValue?.end?.date || undefined\n },\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n defaultTimeZone,\n startDay\n }\n ) : /* @__PURE__ */ jsx(\n Calendar,\n {\n onKeyDown: handleCalendarKeyDown,\n defaultFocusedDate: internalValue?.date,\n value: currentValue?.date || undefined,\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n defaultTimeZone,\n startDay\n }\n ) })\n ]\n }\n );\n }\n);\nDateField.displayName = \"DateField\";\n\nexport { DateField as D };\n//# sourceMappingURL=DateField-366mrGDN.js.map\n","import {\n DateFieldProps as CoreDateFieldProps,\n DateField as CoreDateField,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\n\nexport type DateFieldProps = CoreDateFieldProps & {\n [\"data-tracking-id\"]?: string;\n};\n\nexport const DateField = forwardRef(\n (props: DateFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DateField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreDateField ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\n"],"names":["DateField","Event","CoreDateField"],"mappings":"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"}