@servicetitan/anvil2 1.43.3 → 1.44.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.
- package/CHANGELOG.md +8 -5
- package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js → Breadcrumbs-BMbkH9hL-BUjQksuj.js} +3 -3
- package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js.map → Breadcrumbs-BMbkH9hL-BUjQksuj.js.map} +1 -1
- package/dist/{Breadcrumbs-De8uoLi8.js → Breadcrumbs-fthw3qaL.js} +2 -2
- package/dist/{Breadcrumbs-De8uoLi8.js.map → Breadcrumbs-fthw3qaL.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-DD5kmVd3-CBGTR11R.js → Calendar-BvftKznl-D4_xp9Rv.js} +3 -3
- package/dist/{Calendar-DD5kmVd3-CBGTR11R.js.map → Calendar-BvftKznl-D4_xp9Rv.js.map} +1 -1
- package/dist/{Calendar-Bgpz99F2.js → Calendar-DdOR9T_K.js} +2 -2
- package/dist/{Calendar-Bgpz99F2.js.map → Calendar-DdOR9T_K.js.map} +1 -1
- package/dist/Calendar.js +1 -1
- package/dist/{DateField-_TqCdcYv.js → DateField-Bqsnpt8S.js} +4 -4
- package/dist/{DateField-_TqCdcYv.js.map → DateField-Bqsnpt8S.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-Dk8WA52F.js → DateFieldRange-Cax7Kl9A.js} +2 -2
- package/dist/{DateFieldRange-Dk8WA52F.js.map → DateFieldRange-Cax7Kl9A.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-D3xD8YZk.js → DateFieldSingle-bMX770gU.js} +2 -2
- package/dist/{DateFieldSingle-D3xD8YZk.js.map → DateFieldSingle-bMX770gU.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BxkCSNk5.js → DateFieldYearless-ClNYTBK_.js} +2 -2
- package/dist/{DateFieldYearless-BxkCSNk5.js.map → DateFieldYearless-ClNYTBK_.js.map} +1 -1
- package/dist/{DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js → DateFieldYearless-pejtv7-x-DBHpW83U.js} +7 -65
- package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{InputMask-wUro4G2j.js → InputMask-BOUlnmiF.js} +2 -2
- package/dist/{InputMask-wUro4G2j.js.map → InputMask-BOUlnmiF.js.map} +1 -1
- package/dist/{InputMask-CE3pdXwL-B8XVrj36.js → InputMask-BuO8lNAB-DdxdO5Jw.js} +3 -3
- package/dist/{InputMask-CE3pdXwL-B8XVrj36.js.map → InputMask-BuO8lNAB-DdxdO5Jw.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Link-DZa0wmkA.js → Link-C4N_cV3i.js} +2 -2
- package/dist/{Link-DZa0wmkA.js.map → Link-C4N_cV3i.js.map} +1 -1
- package/dist/{Link-Dqp_XXl_-Bv20l_tY.js → Link-MiffPrW9-Cx1zYWSF.js} +3 -3
- package/dist/{Link-Dqp_XXl_-Bv20l_tY.js.map → Link-MiffPrW9-Cx1zYWSF.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/LinkButton.css +5 -0
- package/dist/LinkButton.d.ts +6 -0
- package/dist/LinkButton.js +76 -0
- package/dist/LinkButton.js.map +1 -0
- package/dist/{ListView-DdHpJHTc.js → ListView-DVPhWDCM.js} +24 -5
- package/dist/ListView-DVPhWDCM.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/NumberField-C9lMsPMD.js +1582 -0
- package/dist/NumberField-C9lMsPMD.js.map +1 -0
- package/dist/NumberField.css +49 -0
- package/dist/NumberField.d.ts +6 -0
- package/dist/NumberField.js +2 -0
- package/dist/NumberField.js.map +1 -0
- package/dist/{Page-CxB5N9dR.js → Page-CGAylFKz.js} +2 -2
- package/dist/{Page-CxB5N9dR.js.map → Page-CGAylFKz.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{SegmentedControl-DKMQuf7s.js → SegmentedControl-DY1PSYmd.js} +2 -2
- package/dist/{SegmentedControl-DKMQuf7s.js.map → SegmentedControl-DY1PSYmd.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js → SelectCard-LSAl_7Lh-BYtfe9PC.js} +3 -3
- package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js.map → SelectCard-LSAl_7Lh-BYtfe9PC.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectCardGroup-YGYiBv5M.js → SelectCardGroup-u_QKdeRZ.js} +2 -2
- package/dist/{SelectCardGroup-YGYiBv5M.js.map → SelectCardGroup-u_QKdeRZ.js.map} +1 -1
- package/dist/{TextField-gYAqTpcX.js → TextField-B364hxo8.js} +2 -2
- package/dist/{TextField-gYAqTpcX.js.map → TextField-B364hxo8.js.map} +1 -1
- package/dist/{TextField-CRTh0gL_-D2CjcYXX.js → TextField-DoPP1CQ--UWAOTYiv.js} +2 -2
- package/dist/{TextField-CRTh0gL_-D2CjcYXX.js.map → TextField-DoPP1CQ--UWAOTYiv.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DohNOiIp.js → Textarea-D2AAZ1L3.js} +2 -2
- package/dist/{Textarea-DohNOiIp.js.map → Textarea-D2AAZ1L3.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-DRHLRqN3.js → TimeField-tA9uo4lK.js} +5 -4
- package/dist/{TimeField-DRHLRqN3.js.map → TimeField-tA9uo4lK.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/assets/icons/st/gnav_home_outline.svg +1 -1
- package/dist/assets/icons/st.ts +0 -2
- package/dist/components/LinkButton/LinkButton.d.ts +57 -0
- package/dist/components/LinkButton/index.d.ts +2 -0
- package/dist/components/NumberField/NumberField.d.ts +11 -0
- package/dist/components/NumberField/index.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/{usePopoverSupport-B9Lsqryr-DhZHMoNb.js → index.esm-dyoPQhi6.js} +735 -13
- package/dist/index.esm-dyoPQhi6.js.map +1 -0
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js +64 -0
- package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js.map +1 -0
- package/dist/useLinkStyles.js +1 -1
- package/dist/{useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js → useOptionallyControlledState-DbDuos5L-DbDuos5L.js} +9 -3
- package/dist/useOptionallyControlledState-DbDuos5L-DbDuos5L.js.map +1 -0
- package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js +15 -0
- package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js.map +1 -0
- package/package.json +2 -2
- package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js.map +0 -1
- package/dist/ListView-DdHpJHTc.js.map +0 -1
- package/dist/assets/icons/st/ai_mark.svg +0 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +0 -1
- package/dist/useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js.map +0 -1
- package/dist/usePopoverSupport-B9Lsqryr-DhZHMoNb.js.map +0 -1
- /package/dist/{Breadcrumbs-B5bqrZ5D.css → Breadcrumbs-BMbkH9hL.css} +0 -0
- /package/dist/{Calendar-DD5kmVd3.css → Calendar-BvftKznl.css} +0 -0
- /package/dist/{Link-Dqp_XXl_.css → Link-MiffPrW9.css} +0 -0
- /package/dist/{SelectCard-DUNwYa5y.css → SelectCard-LSAl_7Lh.css} +0 -0
package/dist/{DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js → DateFieldYearless-pejtv7-x-DBHpW83U.js}
RENAMED
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { u as
|
|
3
|
-
import { T as TextField } from './TextField-
|
|
2
|
+
import { u as useMaskito, m as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, b as maskitoParseDate, c as maskitoDateOptionsGenerator } from './index.esm-dyoPQhi6.js';
|
|
3
|
+
import { T as TextField } from './TextField-DoPP1CQ--UWAOTYiv.js';
|
|
4
4
|
import { useRef, useState, useMemo, forwardRef, useCallback, useEffect, useImperativeHandle } from 'react';
|
|
5
5
|
import { u as useMergeRefs$1 } from './floating-ui.react-BFNinq1w.js';
|
|
6
|
-
import { D as DateTime, f as Calendar } from './Calendar-
|
|
6
|
+
import { D as DateTime, f as Calendar } from './Calendar-BvftKznl-D4_xp9Rv.js';
|
|
7
7
|
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
8
8
|
import { S as SvgEvent } from './event-BEJFimi3.js';
|
|
9
|
+
import { u as useFocusWithin, a as usePrevious } from './useFocusWithin-Cxz14Zyz-DEudRcSI.js';
|
|
9
10
|
import { P as Popover } from './Popover-CU2cGVD8-Casl3vM1.js';
|
|
10
|
-
import { u as
|
|
11
|
+
import { u as usePopoverSupport } from './usePopoverSupport-B9Lsqryr-CYJxXiun.js';
|
|
12
|
+
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L-DbDuos5L.js';
|
|
11
13
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
12
14
|
import { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js';
|
|
13
15
|
import { u as useKeyboardFocusables } from './ProgressBar-BRvB-bD4-DppwBrFg.js';
|
|
14
16
|
|
|
15
|
-
function usePrevious(value) {
|
|
16
|
-
const ref = useRef();
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
ref.current = value;
|
|
19
|
-
}, [value]);
|
|
20
|
-
return ref.current;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
17
|
const makeZeroShortcutPreprocessor = (templateString, separator) => {
|
|
24
18
|
const zeroShortcutPreprocessor = ({ elementState, data }, actionType) => {
|
|
25
19
|
if (actionType === "insert" && // the user is inserting a character
|
|
@@ -225,58 +219,6 @@ function orderSegmentsByMode(day, month, year, mode) {
|
|
|
225
219
|
}
|
|
226
220
|
}
|
|
227
221
|
|
|
228
|
-
function containsRelatedTarget(event) {
|
|
229
|
-
if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {
|
|
230
|
-
return event.currentTarget.contains(event.relatedTarget);
|
|
231
|
-
}
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
function useFocusWithin({
|
|
235
|
-
onBlur,
|
|
236
|
-
onFocus
|
|
237
|
-
} = {}) {
|
|
238
|
-
const [focused, setFocused] = useState(false);
|
|
239
|
-
const focusedRef = useRef(false);
|
|
240
|
-
const elementRef = useRef(null);
|
|
241
|
-
const _setFocused = useCallback((value) => {
|
|
242
|
-
setFocused(value);
|
|
243
|
-
focusedRef.current = value;
|
|
244
|
-
}, []);
|
|
245
|
-
const handleFocusIn = useCallback(
|
|
246
|
-
(event) => {
|
|
247
|
-
if (!focusedRef.current) {
|
|
248
|
-
_setFocused(true);
|
|
249
|
-
onFocus?.(event);
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
253
|
-
[onFocus]
|
|
254
|
-
);
|
|
255
|
-
const handleFocusOut = useCallback(
|
|
256
|
-
(event) => {
|
|
257
|
-
if (focusedRef.current && !containsRelatedTarget(event)) {
|
|
258
|
-
_setFocused(false);
|
|
259
|
-
onBlur?.(event);
|
|
260
|
-
}
|
|
261
|
-
},
|
|
262
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
263
|
-
[onBlur]
|
|
264
|
-
);
|
|
265
|
-
useEffect(() => {
|
|
266
|
-
const element = elementRef.current;
|
|
267
|
-
if (!element) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
element.addEventListener("focusin", handleFocusIn);
|
|
271
|
-
element.addEventListener("focusout", handleFocusOut);
|
|
272
|
-
return () => {
|
|
273
|
-
element.removeEventListener("focusin", handleFocusIn);
|
|
274
|
-
element.removeEventListener("focusout", handleFocusOut);
|
|
275
|
-
};
|
|
276
|
-
}, [handleFocusIn, handleFocusOut]);
|
|
277
|
-
return { ref: elementRef, focused };
|
|
278
|
-
}
|
|
279
|
-
|
|
280
222
|
function convertStringToDate(v) {
|
|
281
223
|
if (v === void 0 || v === null) {
|
|
282
224
|
return v;
|
|
@@ -1428,4 +1370,4 @@ const DateFieldYearless = ({
|
|
|
1428
1370
|
DateFieldYearless.displayName = "DateFieldYearless";
|
|
1429
1371
|
|
|
1430
1372
|
export { DateFieldRange as D, DateFieldSingle as a, DateFieldYearless as b };
|
|
1431
|
-
//# sourceMappingURL=DateFieldYearless-
|
|
1373
|
+
//# sourceMappingURL=DateFieldYearless-pejtv7-x-DBHpW83U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateFieldYearless-pejtv7-x-DBHpW83U.js","sources":["../../hammer-react/dist/DateFieldYearless-pejtv7-x.js"],"sourcesContent":["import { jsx, jsxs } from 'react/jsx-runtime';\nimport { maskitoDateOptionsGenerator, maskitoWithPlaceholder, maskitoParseDate, maskitoDateRangeOptionsGenerator } from '@maskito/kit';\nimport { useMaskito } from '@maskito/react';\nimport { T as TextField } from './TextField-DoPP1CQ-.js';\nimport { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { DateTime } from 'luxon';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport Event from '@servicetitan/hammer-icon/mdi/round/event.svg';\nimport { u as usePrevious, a as useFocusWithin } from './useFocusWithin-Cxz14Zyz.js';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { C as Calendar } from './Calendar-BvftKznl.js';\nimport { u as usePopoverSupport } from './usePopoverSupport-B9Lsqryr.js';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';\nimport { u as useMergeRefs$1 } from './useMergeRefs-Bde85AWI.js';\nimport { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';\nimport { u as useKeyboardFocusables } from './useKeyboardFocusables-CwVMAe5C.js';\n\nconst makeZeroShortcutPreprocessor = (templateString, separator) => {\n const zeroShortcutPreprocessor = ({ elementState, data }, actionType) => {\n if (actionType === \"insert\" && // the user is inserting a character\n data === separator && // the user typed the separator character\n elementState.selection[0] === elementState.selection[1]) {\n const selectionIndex = elementState.selection[0];\n const separatorPositions = templateString.split(\"\").map((char, index) => char === separator ? index : null).filter((position) => position !== null).filter((position) => position > selectionIndex);\n const noRemainingSegments = !separatorPositions.length;\n const nothingEnteredYet = !elementState.value.length;\n const previousCharacterIsNotADigit = !/^\\d$/.test(\n elementState.value.slice(-1)\n );\n const currentCharacterIsSeparator = templateString[selectionIndex] === separator;\n if (noRemainingSegments || nothingEnteredYet || previousCharacterIsNotADigit || currentCharacterIsSeparator) {\n return { elementState, data };\n }\n const firstIndexOfSegment = Math.max(\n elementState.value.lastIndexOf(separator) + 1,\n elementState.value.lastIndexOf(\" \") + 1,\n 0\n );\n const lastIndexOfSegment = separatorPositions[0];\n const digitsCurrentlyInSegment = elementState.value.slice(firstIndexOfSegment);\n const targetNumberOfDigitsInSegment = templateString.slice(\n firstIndexOfSegment,\n lastIndexOfSegment\n ).length;\n const newSegment = digitsCurrentlyInSegment.padStart(\n targetNumberOfDigitsInSegment,\n \"0\"\n );\n const newValue = `${elementState.value.slice(0, firstIndexOfSegment)}${newSegment}`;\n return {\n elementState: {\n value: newValue + data,\n selection: [newValue.length, newValue.length]\n },\n data\n };\n }\n return { elementState, data };\n };\n return zeroShortcutPreprocessor;\n};\n\nconst datePlaceholderMask$1 = ({\n mode,\n separator = \"/\",\n placeholder\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask2 = {\n ...dateOptions,\n plugins: plugins.concat(dateOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator)\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask2, removePlaceholder };\n};\n\nconst DateModeToFormatMap = {\n \"mm/dd/yyyy\": \"MM/dd/yyyy\",\n \"dd/mm/yyyy\": \"dd/MM/yyyy\",\n \"yyyy/mm/dd\": \"yyyy/MM/dd\"\n};\nconst DateModeToPlaceholderMap = {\n \"dd/mm/yyyy\": \"__/__/____\",\n \"mm/dd/yyyy\": \"__/__/____\",\n \"yyyy/mm/dd\": \"____/__/__\"\n};\n\nconst MaskedDateInput = forwardRef(\n ({\n onChange,\n mode = \"mm/dd/yyyy\",\n lastValidDate,\n disableHint = false,\n ...props\n }, ref) => {\n const placeholder = DateModeToPlaceholderMap[mode];\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = datePlaceholderMask$1({\n mode,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousDateRef = useRef(null);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (oldInputValue) => swapMode$2(oldInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, previousMode]);\n useEffect(() => {\n if (lastValidDate === void 0) return;\n if (lastValidDate === previousDateRef.current) return;\n if (!lastValidDate?.equals(previousDateRef.current ?? DateTime.now())) {\n setInputValue(\n lastValidDate?.toFormat(DateModeToFormatMap[mode]) ?? placeholder\n );\n previousDateRef.current = lastValidDate;\n }\n }, [lastValidDate, mode, placeholder]);\n const currentParsedData = useMemo(() => {\n return parseInputValue$1(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const { date, isInputValid, isInputEmpty } = parseInputValue$1(\n event.target.value,\n mode,\n removePlaceholder\n );\n const isValueDifferent = isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n date === null !== (lastValidDate === null) || // The input has changed from empty to non-empty or vice versa\n date !== null && lastValidDate !== null && !date.equals(lastValidDate);\n if (!isValueDifferent) return;\n onChange?.({\n date: date ?? lastValidDate ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setDate: (date) => {\n setInputValue(\n date?.toFormat(DateModeToFormatMap[mode]) ?? placeholder\n );\n }\n });\n }, [mode, placeholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-date\": lastValidDate?.toISODate() ?? \"\",\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n }\n);\nMaskedDateInput.displayName = \"MaskedDateInput\";\nfunction parseInputValue$1(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const jsDate = maskitoParseDate(valueMinusPlaceholder, { mode });\n const luxonDate = jsDate ? DateTime.fromJSDate(jsDate, { zone: \"utc\" }) : null;\n return {\n date: luxonDate,\n isInputValid: !!luxonDate,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n}\nfunction swapMode$2(inputString, previousMode, mode) {\n const { day, month, year } = divideSegments$1(inputString, previousMode);\n return orderSegmentsByMode(day, month, year, mode);\n}\nfunction divideSegments$1(value, mode) {\n const [segment1, segment2, segment3] = value.split(\"/\");\n if (mode === \"dd/mm/yyyy\") {\n return { day: segment1, month: segment2, year: segment3 };\n } else if (mode === \"mm/dd/yyyy\") {\n return { day: segment2, month: segment1, year: segment3 };\n } else if (mode === \"yyyy/mm/dd\") {\n return { day: segment3, month: segment2, year: segment1 };\n }\n return { day: \"__\", month: \"__\", year: \"____\" };\n}\nfunction orderSegmentsByMode(day, month, year, mode) {\n if (mode === \"dd/mm/yyyy\") {\n return `${day}/${month}/${year}`;\n } else if (mode === \"mm/dd/yyyy\") {\n return `${month}/${day}/${year}`;\n } else if (mode === \"yyyy/mm/dd\") {\n return `${year}/${month}/${day}`;\n } else {\n return \"\";\n }\n}\n\nfunction convertStringToDate(v) {\n if (v === void 0 || v === null) {\n return v;\n }\n const date = DateTime.fromISO(v, { setZone: true, zone: \"utc\" }).startOf(\n \"day\"\n );\n if (date.isValid) {\n return date;\n }\n return null;\n}\nfunction validateDate({\n date,\n constraints\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!date) {\n return required ? false : true;\n }\n if (unavailable?.dates?.some((d) => d.equals(date))) {\n return false;\n }\n if (unavailable?.daysOfWeek?.includes(date.weekday)) {\n return false;\n }\n if (minDate && date < minDate) {\n return false;\n }\n if (maxDate && date > maxDate) {\n return false;\n }\n return true;\n}\nfunction validateYearlessDate({\n value,\n constraints\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!value || !value?.day && !value?.month) {\n return required ? false : true;\n }\n if (value.day === null || value.month === null) {\n return false;\n }\n if (unavailable?.dates?.some(\n (d) => d.day === value.day && d.month === value.month\n )) {\n return false;\n }\n const minDateMonth = minDate?.month ?? 1;\n const minDateDay = minDate?.day ?? 1;\n const maxDateMonth = maxDate?.month ?? 12;\n const maxDateDay = maxDate?.day ?? 31;\n if (value.month < minDateMonth || // Earlier month\n value.month === minDateMonth && value.day < minDateDay) {\n return false;\n }\n if (value.month > maxDateMonth || // Later month\n value.month === maxDateMonth && value.day > maxDateDay) {\n return false;\n }\n return true;\n}\n\nfunction useDateFieldSingleConversion({\n value,\n defaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange\n}) {\n const normalizedValue = useMemo(() => convertStringToDate(value), [value]);\n const normalizedDefaultValue = useMemo(\n () => convertStringToDate(defaultValue),\n [defaultValue]\n );\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate]\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate]\n );\n const normalizedUnavailableDates = useMemo(\n () => unavailable?.dates?.map((d) => convertStringToDate(d)).filter((d) => d !== null && d !== void 0),\n [unavailable?.dates]\n );\n const handleChange = useCallback(\n (change) => {\n onChange?.({\n ...change,\n date: change.date?.toISODate() ?? null\n });\n },\n [onChange]\n );\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek\n },\n onChange: handleChange\n };\n}\n\nfunction DateFieldSingleCalendar({\n onKeyDown,\n value,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n ...rest\n}) {\n const handleCalendarSelection = (data) => {\n if (data.value) {\n const date = DateTime.fromISO(data.value, { zone: \"utc\" });\n onSelection(date);\n }\n };\n return /* @__PURE__ */ jsx(\n Calendar,\n {\n ...rest,\n range: false,\n onKeyDown,\n defaultFocusedDate: value?.toISODate() || DateTime.now().toISODate(),\n value: value?.toISODate() || void 0,\n onSelection: handleCalendarSelection,\n defaultTimeZone: \"UTC\",\n minDate: minDate?.toISODate() ?? void 0,\n maxDate: maxDate?.toISODate() ?? void 0,\n unavailable: unavailable ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek\n } : void 0,\n _disableAutofocus: true\n }\n );\n}\n\nconst useDateFieldOrchestration = ({\n inputRef,\n calendarDefaultOpen,\n popoverContentRef,\n disableCalendar = false\n}) => {\n const documentRef = useRef(document.body);\n const [calendarOpen, setCalendarOpen] = useState(calendarDefaultOpen);\n const { focusables } = useKeyboardFocusables(documentRef, {\n observeChange: true\n });\n const { focusables: popoverFocusables } = useKeyboardFocusables(\n popoverContentRef,\n {\n observeChange: true\n }\n );\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item)\n );\n const handleCalendarKeyDown = (event) => {\n if (event.key === \"Escape\") {\n inputRef.current?.focus();\n }\n };\n const focusToCalendar = () => {\n if (popoverContentRef.current) {\n const currentFocusable = popoverContentRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n currentFocusable.focus();\n }\n }\n };\n const handleInputKeyDown = (ev) => {\n if (disableCalendar) {\n return;\n }\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setCalendarOpen(false);\n break;\n case \"Tab\":\n if (!calendarOpen || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current) || 0;\n setCalendarOpen(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 (!calendarOpen) {\n setCalendarOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n return {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n };\n};\n\nfunction useDateFieldSingleState({\n valueProp,\n defaultValueProp,\n inputRef,\n onChange\n}) {\n const [value, setValue] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValueProp\n });\n const setSharedValue = (date) => {\n inputRef.current?.setDate(date);\n setValue(date);\n };\n const handleInputChange = (change) => {\n const date = change.isInputEmpty ? null : change.date?.startOf(\"day\") ?? null;\n onChange?.({\n date,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n if (change.isInputValid) {\n setSharedValue(change.isInputEmpty ? null : change.date);\n }\n if (change.isInputEmpty) {\n setSharedValue(null);\n return;\n }\n if (change.date) {\n setSharedValue(change.date);\n }\n };\n const handleCalendarSelection = (date) => {\n setSharedValue(date);\n onChange?.({\n date,\n isInputValid: true,\n isInputEmpty: false\n });\n };\n return {\n value,\n setValue: setSharedValue,\n handleInputChange,\n handleCalendarSelection\n };\n}\n\nconst DateFieldSingle = ({\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n ...rest\n}) => {\n const inputRef = useRef(null);\n const {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange\n } = useDateFieldSingleConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp\n });\n const handleChange = (change) => {\n onChange?.({\n ...change,\n isDateValid: validateDate({\n date: change.date,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n })\n });\n };\n const { value, handleInputChange, handleCalendarSelection } = useDateFieldSingleState({\n valueProp: normalizedValue,\n defaultValueProp: normalizedDefaultValue,\n inputRef,\n onChange: handleChange\n });\n const { ref: wrapperRef } = useFocusWithin({\n onBlur,\n onFocus\n });\n const [popoverTriggerRef, setPopoverTriggerRef] = useState();\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs$1([popoverTriggerRef, inputRef]);\n const {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n } = useDateFieldOrchestration({\n inputRef,\n calendarDefaultOpen: false,\n popoverContentRef,\n disableCalendar\n });\n const popoverSupported = usePopoverSupport();\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(calendarOpen);\n const currentValidity = useMemo(\n () => validateDate({\n date: value,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n }),\n [value, required, unavailable, minDate, maxDate]\n );\n const justTheField = /* @__PURE__ */ jsx(\n MaskedDateInput,\n {\n ...rest,\n mode,\n ref: combinedRef,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n onClick: () => setCalendarOpen(true),\n lastValidDate: value,\n required,\n autoComplete: \"off\",\n \"data-date-valid\": currentValidity\n }\n );\n if (disableCalendar) {\n return justTheField;\n }\n if (!popoverSupported) {\n return justTheField;\n }\n return /* @__PURE__ */ jsx(\"div\", { ref: wrapperRef, children: /* @__PURE__ */ jsxs(\n Popover,\n {\n open: calendarOpen,\n modal: true,\n placement: \"bottom-start\",\n disableFlipFallback: true,\n disableTriggerFocus: true,\n onClose: () => setCalendarOpen(false),\n disableAutoUpdate: true,\n onClickOutside: () => setCalendarOpen(false),\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {\n setPopoverTriggerRef(iRef);\n return justTheField;\n } }),\n /* @__PURE__ */ jsx(Popover.Content, { ref: popoverContentRef, \"data-testid\": \"calendar-popover\", children: shouldShowCalendar && /* @__PURE__ */ jsx(\n DateFieldSingleCalendar,\n {\n onKeyDown: handleCalendarKeyDown,\n value,\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailable\n }\n ) })\n ]\n }\n ) });\n};\nDateFieldSingle.displayName = \"DateFieldSingle\";\n\nconst datePlaceholderMask = ({\n mode,\n dateSeparator = \"/\",\n rangeSeparator = \" - \",\n placeholder\n}) => {\n const dateRangeOptions = maskitoDateRangeOptionsGenerator({\n mode,\n dateSeparator,\n rangeSeparator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask2 = {\n ...dateRangeOptions,\n plugins: plugins.concat(dateRangeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateRangeOptions.preprocessors,\n makeZeroShortcutPreprocessor(placeholder, dateSeparator)\n ],\n postprocessors: [\n // NOTE this is super fragile. If Maskito maintainers change the order of the post-processors, this will break.\n // The last postprocessor is the date swap postprocessor, which we don't want to run.\n // A unit test is added to ensure this doesn't break on a dependency update.\n ...dateRangeOptions.postprocessors.slice(0, -1),\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask2, removePlaceholder };\n};\n\nconst RANGE_SEPARATOR = \" - \";\nconst MaskedDateRangeInput = forwardRef(\n ({\n onChange,\n mode = \"mm/dd/yyyy\",\n startDate,\n endDate,\n disableHint = false,\n ...props\n }, ref) => {\n const halfPlaceholder = DateModeToPlaceholderMap[mode];\n const fullPlaceholder = `${halfPlaceholder}${RANGE_SEPARATOR}${halfPlaceholder}`;\n const [inputValue, setInputValue] = useState(fullPlaceholder);\n const { options, removePlaceholder } = datePlaceholderMask({\n mode,\n placeholder: fullPlaceholder,\n dateSeparator: \"/\",\n rangeSeparator: RANGE_SEPARATOR\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (previousInputValue) => swapMode$1(previousInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, fullPlaceholder, previousMode]);\n useEffect(() => {\n if (startDate === void 0 || endDate === void 0) return;\n if (startDate === previousStartDate && endDate === previousEndDate)\n return;\n if (\n // plus one just represents a date that is guaranteed to be different.\n startDate?.equals(previousStartDate ?? startDate?.plus({ days: 1 })) && (endDate?.equals(previousEndDate ?? endDate?.plus({ days: 1 })) || endDate === previousEndDate)\n )\n return;\n const startDateString = startDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const endDateString = endDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const newInputValue = `${startDateString}${RANGE_SEPARATOR}${endDateString}`;\n setInputValue(newInputValue);\n }, [\n startDate,\n endDate,\n mode,\n halfPlaceholder,\n previousStartDate,\n previousEndDate\n ]);\n const currentParsedData = useMemo(() => {\n return parseRangeInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const {\n startDate: parsedStartDate,\n endDate: parsedEndDate,\n isInputValid,\n isInputEmpty,\n isHalfEmpty\n } = parseRangeInputValue(event.target.value, mode, removePlaceholder);\n const isValueDifferent = isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n parsedStartDate === null !== (startDate === null) || // The start date has changed from empty to non-empty or vice versa\n parsedEndDate === null !== (endDate === null) || // The end date has changed from empty to non-empty or vice versa\n parsedStartDate !== null && startDate !== null && !parsedStartDate.equals(startDate) || // The start date has changed\n parsedEndDate !== null && endDate !== null && !parsedEndDate.equals(endDate);\n if (!isValueDifferent) return;\n onChange?.({\n startDate: isInputEmpty ? null : parsedStartDate ?? startDate ?? null,\n endDate: isInputEmpty || isHalfEmpty ? null : parsedEndDate ?? endDate ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setDateRange: (startDate2, endDate2) => {\n const startDateString = startDate2?.toFormat(\n DateModeToFormatMap[mode]\n );\n const endDateString = endDate2?.toFormat(DateModeToFormatMap[mode]);\n const newInputValue = `${startDateString ?? halfPlaceholder}${RANGE_SEPARATOR}${endDateString ?? halfPlaceholder}`;\n setInputValue(newInputValue);\n }\n });\n }, [mode, halfPlaceholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-start-date\": startDate?.toISODate() ?? \"\",\n \"data-end-date\": endDate?.toISODate() ?? \"\",\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n }\n);\nMaskedDateRangeInput.displayName = \"MaskedDateRangeInput\";\nfunction parseRangeInputValue(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [startDate, endDate] = valueMinusPlaceholder.split(RANGE_SEPARATOR);\n const startJsDate = maskitoParseDate(startDate, { mode });\n const endJsDate = endDate ? maskitoParseDate(endDate, { mode }) : null;\n const startLuxonDate = startJsDate ? DateTime.fromJSDate(startJsDate, { zone: \"utc\" }) : null;\n const endLuxonDate = endJsDate ? DateTime.fromJSDate(endJsDate, { zone: \"utc\" }) : null;\n return {\n startDate: startLuxonDate,\n endDate: endLuxonDate,\n isInputValid: !!(startLuxonDate && endLuxonDate),\n // input valid if both dates are filled\n isInputEmpty: valueMinusPlaceholder === \"\",\n // input empty if nothing is typed\n isHalfEmpty: endDate === void 0\n };\n}\nfunction swapMode$1(inputString, previousMode, mode) {\n const halves = inputString.split(RANGE_SEPARATOR);\n const segments = halves.map((half) => half.split(\"/\"));\n let startDay, startMonth, startYear, endDay, endMonth, endYear;\n if (previousMode === \"mm/dd/yyyy\") {\n startDay = segments[0][1];\n startMonth = segments[0][0];\n startYear = segments[0][2];\n endDay = segments[1][1];\n endMonth = segments[1][0];\n endYear = segments[1][2];\n }\n if (previousMode === \"dd/mm/yyyy\") {\n startDay = segments[0][0];\n startMonth = segments[0][1];\n startYear = segments[0][2];\n endDay = segments[1][0];\n endMonth = segments[1][1];\n endYear = segments[1][2];\n }\n if (previousMode === \"yyyy/mm/dd\") {\n startDay = segments[0][2];\n startMonth = segments[0][1];\n startYear = segments[0][0];\n endDay = segments[1][2];\n endMonth = segments[1][1];\n endYear = segments[1][0];\n }\n if (mode === \"mm/dd/yyyy\") {\n return `${startMonth}/${startDay}/${startYear}${RANGE_SEPARATOR}${endMonth}/${endDay}/${endYear}`;\n }\n if (mode === \"dd/mm/yyyy\") {\n return `${startDay}/${startMonth}/${startYear}${RANGE_SEPARATOR}${endDay}/${endMonth}/${endYear}`;\n }\n if (mode === \"yyyy/mm/dd\") {\n return `${startYear}/${startMonth}/${startDay}${RANGE_SEPARATOR}${endYear}/${endMonth}/${endDay}`;\n }\n return inputString;\n}\n\nconst useDateFieldRangeConversion = (props) => {\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } = props;\n const normalizedValue = useMemo(() => {\n if (value === null || value === void 0) return value;\n return {\n startDate: convertStringToDate(value.startDate) ?? null,\n endDate: convertStringToDate(value.endDate) ?? null\n };\n }, [value]);\n const normalizedDefaultValue = useMemo(() => {\n if (defaultValue === null || defaultValue === void 0)\n return defaultValue;\n return {\n startDate: convertStringToDate(defaultValue.startDate) ?? null,\n endDate: convertStringToDate(defaultValue.endDate) ?? null\n };\n }, [defaultValue]);\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate]\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate]\n );\n const normalizedUnavailableDates = useMemo(() => {\n return unavailable?.dates?.map((date) => convertStringToDate(date)).filter((date) => date !== null && date !== void 0);\n }, [unavailable?.dates]);\n const handleChange = useCallback(\n (change) => {\n onChange?.({\n ...change,\n startDate: change.startDate?.toISODate() ?? null,\n endDate: change.endDate?.toISODate() ?? null\n });\n },\n [onChange]\n );\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek\n },\n onChange: handleChange\n };\n};\n\nfunction useDateFieldRangeState({\n valueProp,\n defaultValueProp,\n inputRef,\n onChange\n}) {\n const [startDate, setStartDate] = useOptionallyControlledState({\n controlledValue: valueProp !== void 0 ? valueProp?.startDate : void 0,\n defaultValue: defaultValueProp !== void 0 ? defaultValueProp?.startDate : void 0\n });\n const [endDate, setEndDate] = useOptionallyControlledState({\n controlledValue: valueProp !== void 0 ? valueProp?.endDate : void 0,\n defaultValue: defaultValueProp !== void 0 ? defaultValueProp?.endDate : void 0\n });\n const setSharedValue = (value) => {\n inputRef.current?.setDateRange(value.startDate, value.endDate);\n setStartDate(value.startDate);\n setEndDate(value.endDate);\n };\n const handleInputChange = (change) => {\n const range = change.isInputEmpty ? null : {\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null\n };\n setStartDate(range?.startDate ?? null);\n setEndDate(range?.endDate ?? null);\n onChange?.({\n startDate: range?.startDate ?? null,\n endDate: range?.endDate ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n };\n const handleCalendarSelection = ({\n startDate: startDate2,\n endDate: endDate2\n }) => {\n setSharedValue({ startDate: startDate2, endDate: endDate2 });\n onChange?.({\n startDate: startDate2,\n endDate: endDate2,\n isInputValid: true,\n isInputEmpty: false\n });\n };\n return {\n startDate,\n endDate,\n setStartDate,\n setEndDate,\n handleInputChange,\n handleCalendarSelection\n };\n}\n\nconst DateFieldRangeCalendar = ({\n startDate,\n endDate,\n onKeyDown,\n onSelection,\n minDate,\n maxDate,\n unavailable\n}) => {\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const handleCalendarSelection = (data) => {\n if (!data.value) return;\n const calStartDate = data.value.start ? DateTime.fromISO(data.value.start, { zone: \"utc\" }) : null;\n const calEndDate = data.value.end ? DateTime.fromISO(data.value.end, { zone: \"utc\" }) : null;\n onSelection({\n startDate: calStartDate,\n endDate: calEndDate\n });\n };\n const defaultFocusedDate = useMemo(() => {\n if (!startDate && !endDate) return DateTime.now().toISODate();\n if (!startDate) return endDate?.toISODate();\n if (!endDate) return startDate?.toISODate();\n if (endDate && !previousEndDate?.equals(endDate)) {\n return endDate.toISODate();\n } else if (startDate && !previousStartDate?.equals(startDate)) {\n return startDate.toISODate();\n }\n if (endDate) return endDate.toISODate();\n if (startDate) return startDate.toISODate();\n return DateTime.now().toISODate();\n }, [previousStartDate, previousEndDate, startDate, endDate]);\n return /* @__PURE__ */ jsx(\n Calendar,\n {\n range: true,\n onKeyDown,\n defaultFocusedDate,\n value: {\n start: startDate?.toISODate() || void 0,\n end: endDate?.toISODate() || void 0\n },\n onSelection: handleCalendarSelection,\n defaultTimeZone: \"UTC\",\n minDate: minDate?.toISODate() ?? void 0,\n maxDate: maxDate?.toISODate() ?? void 0,\n unavailable: unavailable ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek\n } : void 0,\n _disableAutofocus: true\n },\n `${startDate?.toISODate()}-${endDate?.toISODate()}`\n );\n};\n\nconst DateFieldRange = ({\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n ...rest\n}) => {\n const { ref: wrapperRef } = useFocusWithin({\n onBlur,\n onFocus\n });\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } = useDateFieldRangeConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp\n });\n const inputRef = useRef(null);\n const [popoverTriggerRef, setPopoverTriggerRef] = useState();\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs$1([popoverTriggerRef, inputRef]);\n const popoverSupported = usePopoverSupport();\n const handleChange = (change) => {\n const sharedConstraints = {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n };\n onChange?.({\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n isDateRangeValid: validateDateRange({\n required,\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n startDateConstraints: sharedConstraints,\n endDateConstraints: sharedConstraints\n })\n });\n };\n const { startDate, endDate, handleInputChange, handleCalendarSelection } = useDateFieldRangeState({\n valueProp: value,\n defaultValueProp: defaultValue,\n inputRef,\n onChange: handleChange\n });\n const {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n } = useDateFieldOrchestration({\n inputRef,\n calendarDefaultOpen: false,\n popoverContentRef,\n disableCalendar\n });\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(calendarOpen);\n const currentValidity = useMemo(() => {\n return validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints: {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n },\n endDateConstraints: {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n });\n }, [required, startDate, endDate, minDate, maxDate, unavailable]);\n const justTheField = /* @__PURE__ */ jsx(\n MaskedDateRangeInput,\n {\n ...rest,\n mode,\n ref: combinedRef,\n startDate: startDate ?? null,\n endDate: endDate ?? null,\n onChange: handleInputChange,\n disableHint: rest.disableHint,\n onKeyDown: handleInputKeyDown,\n onClick: () => setCalendarOpen(true),\n required,\n autoComplete: \"off\",\n \"data-date-range-valid\": currentValidity\n }\n );\n if (disableCalendar) {\n return justTheField;\n }\n if (!popoverSupported) {\n return justTheField;\n }\n return /* @__PURE__ */ jsx(\"div\", { ref: wrapperRef, children: /* @__PURE__ */ jsxs(\n Popover,\n {\n open: calendarOpen,\n modal: true,\n placement: \"bottom-start\",\n disableFlipFallback: true,\n disableTriggerFocus: true,\n onClose: () => setCalendarOpen(false),\n disableAutoUpdate: true,\n onOutsidePress: () => setCalendarOpen(false),\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {\n setPopoverTriggerRef(iRef);\n return justTheField;\n } }),\n /* @__PURE__ */ jsx(Popover.Content, { ref: popoverContentRef, \"data-testid\": \"calendar-popover\", children: shouldShowCalendar && /* @__PURE__ */ jsx(\n DateFieldRangeCalendar,\n {\n startDate,\n endDate,\n onKeyDown: handleCalendarKeyDown,\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailable\n }\n ) })\n ]\n }\n ) });\n};\nDateFieldRange.displayName = \"DateFieldRange\";\nfunction validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints,\n endDateConstraints\n}) {\n if (!required && !startDate && !endDate) return true;\n return validateDate({\n date: startDate,\n constraints: { ...startDateConstraints, required: true }\n }) && validateDate({\n date: endDate,\n constraints: { ...endDateConstraints, required: true }\n }) && (!startDate || !endDate || startDate <= endDate);\n}\n\nconst yearlessDatePlaceholderMask = ({\n mode,\n separator = \"/\",\n placeholder\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask = {\n ...dateOptions,\n plugins: plugins.concat(dateOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator)\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nconst MaskedYearlessDateInput = forwardRef(({ onChange, mode = \"mm/dd\", value, disableHint = false, ...props }, ref) => {\n const placeholder = \"__/__\";\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = yearlessDatePlaceholderMask({\n mode,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousValue = usePrevious(value);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (oldInputValue) => swapMode(oldInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, previousMode]);\n useEffect(() => {\n if (previousValue?.day !== value?.day || previousValue?.month !== value?.month) {\n if (value?.day && value?.month) {\n setInputValue(stringifyYearlessDate(value.day, value.month, mode));\n } else if (previousValue !== null && previousValue !== void 0 && (value === null || value?.day === null && value?.month === null)) {\n setInputValue(placeholder);\n } else {\n return;\n }\n }\n }, [value, mode, previousValue]);\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const {\n value: v,\n isInputValid,\n isInputEmpty\n } = parseInputValue(event.target.value, mode, removePlaceholder);\n const isDateDifferent = v === null !== (currentParsedData.value === null) || v?.day !== currentParsedData.value?.day || v?.month !== currentParsedData.value?.month;\n if (!isDateDifferent) {\n return;\n }\n onChange?.({\n event,\n value: v ?? currentParsedData.value ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setValue: (value2) => {\n if (!value2) {\n setInputValue(placeholder);\n return;\n }\n setInputValue(\n stringifyYearlessDate(value2.day ?? 1, value2.month ?? 1, mode)\n );\n }\n });\n }, [mode, placeholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-month-value\": value?.month,\n \"data-day-value\": value?.day,\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n});\nMaskedYearlessDateInput.displayName = \"MaskedYearlessDateInput\";\nfunction parseInputValue(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [segment1, segment2] = valueMinusPlaceholder.split(\"/\");\n const incompleteFirstSegment = segment1?.length !== 2;\n const incompleteSecondSegment = segment2?.length !== 2;\n if (mode === \"dd/mm\") {\n return {\n value: {\n day: incompleteFirstSegment ? null : parseInt(segment1),\n month: incompleteSecondSegment ? null : parseInt(segment2)\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n }\n return {\n value: {\n day: incompleteSecondSegment ? null : parseInt(segment2),\n month: incompleteFirstSegment ? null : parseInt(segment1)\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n}\nfunction swapMode(inputString, previousMode, mode) {\n const { day, month } = divideSegments(inputString, previousMode);\n return stringifyYearlessDate(day, month, mode);\n}\nfunction divideSegments(value, mode) {\n const [segment1, segment2] = value.split(\"/\");\n if (mode === \"dd/mm\") {\n return { day: segment1, month: segment2 };\n }\n return { day: segment2, month: segment1 };\n}\nfunction stringifyYearlessDate(day, month, mode) {\n const dd = day.toString().padStart(2, \"0\");\n const mm = month.toString().padStart(2, \"0\");\n if (mode === \"dd/mm\") {\n return `${dd}/${mm}`;\n }\n return `${mm}/${dd}`;\n}\n\nconst DateFieldYearless = ({\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange,\n minDate,\n maxDate,\n unavailable,\n required,\n ...restProps\n}) => {\n const [value, setValue] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValueProp\n });\n const currentValidity = useMemo(\n () => validateYearlessDate({\n value: value ?? null,\n constraints: {\n required,\n unavailable,\n minDate,\n maxDate\n }\n }),\n [value, required, unavailable, minDate, maxDate]\n );\n const handleInputChange = (change) => {\n const { event, value: value2, ...restChange } = change;\n setValue(value2);\n return onChange?.({\n ...restChange,\n value: value2,\n isValid: validateYearlessDate({\n value: value2,\n constraints: {\n required,\n unavailable,\n minDate,\n maxDate\n }\n })\n });\n };\n return /* @__PURE__ */ jsx(\n MaskedYearlessDateInput,\n {\n required,\n ...restProps,\n autoComplete: \"off\",\n onChange: handleInputChange,\n value,\n \"data-valid\": currentValidity\n }\n );\n};\nDateFieldYearless.displayName = \"DateFieldYearless\";\n\nexport { DateFieldSingle as D, MaskedDateInput as M, useDateFieldSingleConversion as a, DateFieldSingleCalendar as b, DateFieldRange as c, MaskedDateRangeInput as d, useDateFieldRangeState as e, useDateFieldRangeConversion as f, DateFieldRangeCalendar as g, DateFieldYearless as h, useDateFieldSingleState as u };\n//# sourceMappingURL=DateFieldYearless-pejtv7-x.js.map\n"],"names":["useMergeRefs","Event","useMergeRefs$1"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateFieldYearless } from './DateFieldYearless-
|
|
1
|
+
export { D as DateFieldYearless } from './DateFieldYearless-ClNYTBK_.js';
|
|
2
2
|
//# sourceMappingURL=DateFieldYearless.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { useTrackingId } from './useTrackingId.js';
|
|
4
4
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
5
|
-
import { I as InputMask$1 } from './InputMask-
|
|
5
|
+
import { I as InputMask$1 } from './InputMask-BuO8lNAB-DdxdO5Jw.js';
|
|
6
6
|
|
|
7
7
|
const InputMask = forwardRef(
|
|
8
8
|
(props, ref) => {
|
|
@@ -27,4 +27,4 @@ const InputMask = forwardRef(
|
|
|
27
27
|
InputMask.displayName = InputMask$1.displayName;
|
|
28
28
|
|
|
29
29
|
export { InputMask as I };
|
|
30
|
-
//# sourceMappingURL=InputMask-
|
|
30
|
+
//# sourceMappingURL=InputMask-BOUlnmiF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMask-
|
|
1
|
+
{"version":3,"file":"InputMask-BOUlnmiF.js","sources":["../src/components/InputMask/InputMask.tsx"],"sourcesContent":["import {\n InputMaskProps as CoreInputMaskProps,\n InputMask as CoreInputMask,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\n\n/**\n * Props for the InputMask component\n * @property {string} mask - The mask pattern to apply to the input (9 for digits, a for letters, * for alphanumeric)\n * @property {string} [defaultMaskCharacter] - Character to display for unfilled mask positions\n * @property {array} [customMaskHandler] - Array of custom mask handlers for advanced transformations\n * @property {object} [inputProps] - Props to pass to the input component\n * @property {ReactElement} [children] - Custom input element to be wrapped with mask functionality\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n */\nexport type InputMaskProps = CoreInputMaskProps & {\n [\"data-tracking-id\"]?: string;\n};\n\n/**\n * InputMask component for applying input masks and formatting to text inputs.\n *\n * Features:\n * - Input masking with configurable patterns (9, a, *, fixed characters)\n * - Support for both controlled and uncontrolled inputs\n * - Custom input elements or default TextField integration\n * - Advanced cursor positioning and selection management\n * - Custom mask handlers for complex transformations\n * - Paste and keyboard event handling\n * - Automatic mask character replacement\n * - Focus and blur event management\n * - Accessible with proper ARIA attributes\n * - Support for all standard input element props\n * - Flexible mask pattern configuration\n * - Real-time input validation and formatting\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * inputProps={{ label: \"Date\", hint: \"mm/dd/yyyy\" }}\n * />\n *\n * @example\n * <InputMask mask=\"(999) 999-9999\">\n * <TextField label=\"Phone Number\" hint=\"(555) 123-4567\" />\n * </InputMask>\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * customMaskHandler={[\n * {\n * match: {\n * matchPattern: /^(\\d)\\//,\n * startPosition: 0,\n * endPosition: 2,\n * },\n * apply: {\n * applyPattern: \"0$1\",\n * caretOffset: 2,\n * },\n * },\n * ]}\n * inputProps={{ label: \"Date with custom handler\" }}\n * />\n */\nexport const InputMask = forwardRef(\n (props: InputMaskProps, ref: Ref<HTMLInputElement>) => {\n const inputProps = props.inputProps ?? {};\n\n const data = {\n label: \"label\" in inputProps ? childrenToString(inputProps.label) : null,\n labelProps: \"labelProps\" in inputProps ? inputProps.labelProps : null,\n prefix: childrenToString(inputProps.prefix),\n hint: \"hint\" in inputProps ? childrenToString(inputProps.hint) : null,\n description:\n \"description\" in inputProps\n ? childrenToString(inputProps.description)\n : null,\n size: inputProps.size,\n type: inputProps.type,\n };\n\n const trackingId = useTrackingId({\n name: \"InputMask\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreInputMask ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\nInputMask.displayName = CoreInputMask.displayName;\n"],"names":["CoreInputMask"],"mappings":";;;;;;AAqEO,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CAAC,OAAuB,GAA+B,KAAA;AACrD,IAAM,MAAA,UAAA,GAAa,KAAM,CAAA,UAAA,IAAc,EAAC;AAExC,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,OAAW,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA;AAAA,MACpE,UAAY,EAAA,YAAA,IAAgB,UAAa,GAAA,UAAA,CAAW,UAAa,GAAA,IAAA;AAAA,MACjE,MAAA,EAAQ,gBAAiB,CAAA,UAAA,CAAW,MAAM,CAAA;AAAA,MAC1C,MAAM,MAAU,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,IAAI,CAAI,GAAA,IAAA;AAAA,MACjE,aACE,aAAiB,IAAA,UAAA,GACb,gBAAiB,CAAA,UAAA,CAAW,WAAW,CACvC,GAAA,IAAA;AAAA,MACN,MAAM,UAAW,CAAA,IAAA;AAAA,MACjB,MAAM,UAAW,CAAA;AAAA,KACnB;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,WAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,2BAAQA,WAAc,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAE7E;AACA,SAAA,CAAU,cAAcA,WAAc,CAAA,WAAA;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';
|
|
3
|
-
import { T as TextField } from './TextField-
|
|
3
|
+
import { T as TextField } from './TextField-DoPP1CQ--UWAOTYiv.js';
|
|
4
4
|
import { u as useMergeRefs } from './floating-ui.react-BFNinq1w.js';
|
|
5
|
-
import { u as useOptionallyControlledState } from './useOptionallyControlledState-
|
|
5
|
+
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L-DbDuos5L.js';
|
|
6
6
|
|
|
7
7
|
const MASK_CHARS = ["a", "9", "*"];
|
|
8
8
|
const InputMask = forwardRef(
|
|
@@ -240,4 +240,4 @@ function getFirstFilledCharacterIndex(value, mask) {
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
export { InputMask as I };
|
|
243
|
-
//# sourceMappingURL=InputMask-
|
|
243
|
+
//# sourceMappingURL=InputMask-BuO8lNAB-DdxdO5Jw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMask-CE3pdXwL-B8XVrj36.js","sources":["../../hammer-react/dist/InputMask-CE3pdXwL.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-CRTh0gL_.js';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\n\nconst MASK_CHARS = [\"a\", \"9\", \"*\"];\nconst InputMask = forwardRef(\n ({\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps\n }, ref) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue: value !== void 0 ? applyMask(value, mask, defaultMaskCharacter) : void 0,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter)\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef(null);\n const inputRef = useRef(null);\n const passInRef = useMergeRefs([inputRef, ref]);\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n const moveCursorTo = (start, end = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n const handleChange = (e) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (specialChange.current?.reason === \"Edit\" && specialChange.current.start === specialChange.current.end) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter\n );\n moveCursorTo(newIndex, newIndex);\n }\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n const handleFocus = (e) => {\n requestAnimationFrame(() => {\n if (e.target.selectionStart === null || e.target.selectionStart === void 0 || e.target.selectionStart >= v.length) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n const handleKeyDown = (e) => {\n const target = e.target;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n const handleClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n const handleBlur = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n const mergedInputProps = {\n ...inputProps,\n ...children && isValidElement(children) ? children.props : {},\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef\n };\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(\n TextField,\n {\n \"data-input-empty\": isInputEmpty,\n ...mergedInputProps\n }\n );\n }\n);\nInputMask.displayName = \"InputMask\";\nfunction applyMask(value, mask, defaultMaskCharacter) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n while (valueIndex < value.length && !isAcceptableChar(value[valueIndex], maskChar)) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\nfunction isAcceptableChar(char, maskChar) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\nfunction getNextOpenCharacterIndex(value, defaultMaskCharacter) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\nfunction getFirstNonFixedCharacterIndex(startingIndex, fixedCharacterIndices) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\nfunction getLastFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\nfunction getFirstFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n\nexport { InputMask as I };\n//# sourceMappingURL=InputMask-CE3pdXwL.js.map\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputMask-BuO8lNAB-DdxdO5Jw.js","sources":["../../hammer-react/dist/InputMask-BuO8lNAB.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-DoPP1CQ-.js';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';\n\nconst MASK_CHARS = [\"a\", \"9\", \"*\"];\nconst InputMask = forwardRef(\n ({\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps\n }, ref) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue: value !== void 0 ? applyMask(value, mask, defaultMaskCharacter) : void 0,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter)\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef(null);\n const inputRef = useRef(null);\n const passInRef = useMergeRefs([inputRef, ref]);\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n const moveCursorTo = (start, end = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n const handleChange = (e) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (specialChange.current?.reason === \"Edit\" && specialChange.current.start === specialChange.current.end) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter\n );\n moveCursorTo(newIndex, newIndex);\n }\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n const handleFocus = (e) => {\n requestAnimationFrame(() => {\n if (e.target.selectionStart === null || e.target.selectionStart === void 0 || e.target.selectionStart >= v.length) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n const handleKeyDown = (e) => {\n const target = e.target;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n const handleClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n const handleBlur = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n const mergedInputProps = {\n ...inputProps,\n ...children && isValidElement(children) ? children.props : {},\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef\n };\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(\n TextField,\n {\n \"data-input-empty\": isInputEmpty,\n ...mergedInputProps\n }\n );\n }\n);\nInputMask.displayName = \"InputMask\";\nfunction applyMask(value, mask, defaultMaskCharacter) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n while (valueIndex < value.length && !isAcceptableChar(value[valueIndex], maskChar)) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\nfunction isAcceptableChar(char, maskChar) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\nfunction getNextOpenCharacterIndex(value, defaultMaskCharacter) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\nfunction getFirstNonFixedCharacterIndex(startingIndex, fixedCharacterIndices) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\nfunction getLastFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\nfunction getFirstFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n\nexport { InputMask as I };\n//# sourceMappingURL=InputMask-BuO8lNAB.js.map\n"],"names":[],"mappings":"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"}
|
package/dist/InputMask.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { I as InputMask, I as default } from './InputMask-
|
|
1
|
+
export { I as InputMask, I as default } from './InputMask-BOUlnmiF.js';
|
|
2
2
|
//# sourceMappingURL=InputMask.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { useTrackingId } from './useTrackingId.js';
|
|
4
4
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
5
|
-
import { L as Link$1 } from './Link-
|
|
5
|
+
import { L as Link$1 } from './Link-MiffPrW9-Cx1zYWSF.js';
|
|
6
6
|
|
|
7
7
|
const Link = forwardRef(
|
|
8
8
|
(props, ref) => {
|
|
@@ -42,4 +42,4 @@ const Link = forwardRef(
|
|
|
42
42
|
Link.displayName = Link$1.displayName;
|
|
43
43
|
|
|
44
44
|
export { Link as L };
|
|
45
|
-
//# sourceMappingURL=Link-
|
|
45
|
+
//# sourceMappingURL=Link-C4N_cV3i.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link-
|
|
1
|
+
{"version":3,"file":"Link-C4N_cV3i.js","sources":["../src/components/Link/Link.tsx"],"sourcesContent":["import {\n LinkProps as CoreLinkProps,\n Link as CoreLink,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Link component.\n * @extends Omit<CoreLinkProps, \"href\">\n * @extends DataTrackingId\n */\nexport type LinkProps = Omit<CoreLinkProps, \"href\"> &\n DataTrackingId &\n (\n | {\n pathname?: never;\n search?: never;\n href?: CoreLinkProps[\"href\"];\n }\n | {\n pathname: string;\n search?: string;\n href?: never;\n }\n | {\n pathname?: never;\n search?: never;\n href?: never;\n }\n ) &\n (\n | {\n /**\n * The visual appearance of the link.\n * @default \"primary\"\n */\n appearance?: \"primary\";\n /** Whether the link should have a quieter, less prominent appearance */\n quiet?: boolean;\n }\n | {\n /** The visual appearance of the link. Secondary appearance cannot be quiet. */\n appearance: \"secondary\";\n quiet?: false;\n }\n );\n\n/**\n * Link component for creating accessible, styled hyperlinks with tracking support.\n *\n * Features:\n * - Two visual appearances: primary (default) and secondary\n * - Quiet mode for less prominent styling\n * - Automatic external link icon for target=\"_blank\" links\n * - Security attributes (rel=\"noopener noreferrer\") for external links\n * - Full accessibility support with proper focus management\n * - Supports layout utilities for positioning and spacing\n * - Flexible content support for text and other elements\n * - Responsive design with consistent typography\n * - Hover and focus states with proper visual feedback\n * - Screen reader support for external link announcements\n * - Automatic tracking ID generation for analytics\n * - Client-side navigation support with pathname and search params\n * - History API integration for single-page application navigation\n *\n * @example\n * <Link href=\"/dashboard\" appearance=\"primary\">\n * Go to Dashboard\n * </Link>\n *\n * @example\n * <Link pathname=\"/settings\" search=\"?tab=profile\">\n * Profile Settings\n * </Link>\n *\n * @example\n * <Link href=\"https://example.com\" target=\"_blank\" quiet>\n * External Documentation\n * </Link>\n *\n * @example\n * <Link href=\"/profile\" gap=\"2\" alignItems=\"center\">\n * <Avatar name=\"John Doe\" size=\"small\" />\n * View Profile\n * </Link>\n */\nexport const Link = forwardRef(\n (props: LinkProps, ref: Ref<HTMLAnchorElement>) => {\n const { onClick, pathname, children, search, ...rest } = props;\n const data = {\n appearance: props.appearance,\n quiet: props.quiet,\n children: childrenToString(children),\n };\n\n const handleClick = (\n ...args: Parameters<NonNullable<LinkProps[\"onClick\"]>>\n ) => {\n if (pathname) {\n const to = pathname + (search ?? \"\");\n args[0].preventDefault();\n history.pushState(null, \"\", to); // eslint-disable-line no-restricted-globals\n onClick?.(...args);\n } else {\n onClick?.(...args);\n }\n };\n\n const trackingId = useTrackingId({\n name: \"Link\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n return (\n <CoreLink\n onClick={handleClick}\n ref={ref}\n data-tracking-id={trackingId}\n {...rest}\n >\n {children}\n </CoreLink>\n );\n },\n);\n\nLink.displayName = CoreLink.displayName;\n"],"names":["CoreLink"],"mappings":";;;;;;AAyFO,MAAM,IAAO,GAAA,UAAA;AAAA,EAClB,CAAC,OAAkB,GAAgC,KAAA;AACjD,IAAA,MAAM,EAAE,OAAS,EAAA,QAAA,EAAU,UAAU,MAAQ,EAAA,GAAG,MAAS,GAAA,KAAA;AACzD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,YAAY,KAAM,CAAA,UAAA;AAAA,MAClB,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,QAAA,EAAU,iBAAiB,QAAQ;AAAA,KACrC;AAEA,IAAM,MAAA,WAAA,GAAc,IACf,IACA,KAAA;AACH,MAAA,IAAI,QAAU,EAAA;AACZ,QAAM,MAAA,EAAA,GAAK,YAAY,MAAU,IAAA,EAAA,CAAA;AACjC,QAAK,IAAA,CAAA,CAAC,EAAE,cAAe,EAAA;AACvB,QAAQ,OAAA,CAAA,SAAA,CAAU,IAAM,EAAA,EAAA,EAAI,EAAE,CAAA;AAC9B,QAAA,OAAA,GAAU,GAAG,IAAI,CAAA;AAAA,OACZ,MAAA;AACL,QAAA,OAAA,GAAU,GAAG,IAAI,CAAA;AAAA;AACnB,KACF;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,MAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,IAAA,CAAK,kBAAkB;AAAA,KACvC,CAAA;AACD,IACE,uBAAA,GAAA;AAAA,MAACA,MAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,WAAA;AAAA,QACT,GAAA;AAAA,QACA,kBAAkB,EAAA,UAAA;AAAA,QACjB,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA;AAGN;AAEA,IAAA,CAAK,cAAcA,MAAS,CAAA,WAAA;;;;"}
|
|
@@ -5,7 +5,7 @@ import { c as cx } from './index-tZvMCc77.js';
|
|
|
5
5
|
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
6
6
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
7
7
|
|
|
8
|
-
import './Link-
|
|
8
|
+
import './Link-MiffPrW9.css';const SvgOpenInNew = (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: "M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13a.996.996 0 1 0 1.41 1.41L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z" }));
|
|
9
9
|
|
|
10
10
|
const link = "_link_4o01j_2";
|
|
11
11
|
const secondary = "_secondary_4o01j_43";
|
|
@@ -63,5 +63,5 @@ const useLinkStyles = (props) => {
|
|
|
63
63
|
return { linkClassNames, styleCombined };
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
export { Link as L, useLinkStyles as u };
|
|
67
|
-
//# sourceMappingURL=Link-
|
|
66
|
+
export { Link as L, styles as s, useLinkStyles as u };
|
|
67
|
+
//# sourceMappingURL=Link-MiffPrW9-Cx1zYWSF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link-
|
|
1
|
+
{"version":3,"file":"Link-MiffPrW9-Cx1zYWSF.js","sources":["../../hammer-icon/mdi/round/open_in_new.svg","../../hammer-react/dist/Link-MiffPrW9.js"],"sourcesContent":["import * as React from \"react\";\nconst SvgOpenInNew = (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: \"M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13a.996.996 0 1 0 1.41 1.41L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z\" }));\nexport default SvgOpenInNew;\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef } from 'react';\nimport cx from 'classnames';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport OpenInNew from '@servicetitan/hammer-icon/mdi/round/open_in_new.svg';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nimport './Link.css';const link = \"_link_4o01j_2\";\nconst secondary = \"_secondary_4o01j_43\";\nconst quiet = \"_quiet_4o01j_52\";\nconst styles = {\n\tlink: link,\n\t\"open-in-new\": \"_open-in-new_4o01j_27\",\n\tsecondary: secondary,\n\tquiet: quiet\n};\n\nconst Link = forwardRef((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n appearance = \"primary\",\n quiet,\n style,\n ...rest\n } = componentProps;\n const linkClassNames = cx([styles[\"link\"]], className, {\n [styles[\"quiet\"]]: quiet,\n [styles[\"secondary\"]]: appearance === \"secondary\"\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n return /* @__PURE__ */ jsxs(\n \"a\",\n {\n className: linkClassNames,\n rel: \"noopener noreferrer\",\n \"data-anv\": \"link\",\n ref,\n style: styleCombined,\n ...rest,\n children: [\n children,\n rest.target === \"_blank\" && /* @__PURE__ */ jsx(Icon, { className: styles[\"open-in-new\"], inherit: true, svg: OpenInNew })\n ]\n }\n );\n});\nLink.displayName = \"Link\";\nconst useLinkStyles = (props) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { className, appearance = \"primary\", quiet, style } = componentProps;\n const linkClassNames = cx([styles[\"link\"]], className, {\n [styles[\"quiet\"]]: quiet,\n [styles[\"secondary\"]]: appearance === \"secondary\"\n });\n const styleCombined = Object.assign({}, style, layoutStyles);\n return { linkClassNames, styleCombined };\n};\n\nexport { Link as L, styles as s, useLinkStyles as u };\n//# sourceMappingURL=Link-MiffPrW9.js.map\n"],"names":["OpenInNew"],"mappings":";;;;;;;AACA,MAAM,YAAY,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,oTAAoT,EAAE,CAAC,CAAC;;ACMtgB,MAAM,IAAI,GAAG,eAAe;AAChD,MAAM,SAAS,GAAG,qBAAqB;AACvC,MAAM,KAAK,GAAG,iBAAiB;AAC1B,MAAC,MAAM,GAAG;AACf,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,aAAa,EAAE,uBAAuB;AACvC,CAAC,SAAS,EAAE,SAAS;AACrB,CAAC,KAAK,EAAE;AACR;;AAEK,MAAC,IAAI,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACxC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM;AACR,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,UAAU,GAAG,SAAS;AAC1B,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,GAAG,GAAG,cAAc;AACpB,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE;AACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK;AAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,KAAK;AAC1C,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG;AACxB,IAAI,GAAG,KAAK;AACZ,IAAI,GAAG;AACP,GAAG;AACH,EAAE,uBAAuB,IAAI;AAC7B,IAAI,GAAG;AACP,IAAI;AACJ,MAAM,SAAS,EAAE,cAAc;AAC/B,MAAM,GAAG,EAAE,qBAAqB;AAChC,MAAM,UAAU,EAAE,MAAM;AACxB,MAAM,GAAG;AACT,MAAM,KAAK,EAAE,aAAa;AAC1B,MAAM,GAAG,IAAI;AACb,MAAM,QAAQ,EAAE;AAChB,QAAQ,QAAQ;AAChB,QAAQ,IAAI,CAAC,MAAM,KAAK,QAAQ,oBAAoB,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAEA,YAAS,EAAE;AACjI;AACA;AACA,GAAG;AACH,CAAC;AACD,IAAI,CAAC,WAAW,GAAG,MAAM;AACpB,MAAC,aAAa,GAAG,CAAC,KAAK,KAAK;AACjC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,cAAc;AAC5E,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE;AACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK;AAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,KAAK;AAC1C,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC;AAC9D,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE;AAC1C;;;;"}
|
package/dist/Link.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as Link, L as default } from './Link-
|
|
1
|
+
export { L as Link, L as default } from './Link-C4N_cV3i.js';
|
|
2
2
|
//# sourceMappingURL=Link.js.map
|