@salt-ds/lab 1.0.0-alpha.44 → 1.0.0-alpha.45
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/css/salt-lab.css +32 -84
- package/dist-cjs/calendar/internal/CalendarDay.js +5 -1
- package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarNavigation.js +2 -6
- package/dist-cjs/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-cjs/calendar/useCalendar.js +4 -4
- package/dist-cjs/calendar/useCalendar.js.map +1 -1
- package/dist-cjs/calendar/useSelection.js +4 -0
- package/dist-cjs/calendar/useSelection.js.map +1 -1
- package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-cjs/date-input/DateInput.css.js +1 -1
- package/dist-cjs/date-input/DateInput.js +196 -49
- package/dist-cjs/date-input/DateInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePicker.js +164 -0
- package/dist-cjs/date-picker/DatePicker.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerContext.js +36 -0
- package/dist-cjs/date-picker/DatePickerContext.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerPanel.css.js +6 -0
- package/dist-cjs/date-picker/DatePickerPanel.css.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerPanel.js +139 -0
- package/dist-cjs/date-picker/DatePickerPanel.js.map +1 -0
- package/dist-cjs/index.js +3 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
- package/dist-cjs/stepper-input/StepperInput.css.js +1 -1
- package/dist-cjs/stepper-input/StepperInput.js +25 -74
- package/dist-cjs/stepper-input/StepperInput.js.map +1 -1
- package/dist-cjs/stepper-input/useStepperInput.js +19 -63
- package/dist-cjs/stepper-input/useStepperInput.js.map +1 -1
- package/dist-es/calendar/internal/CalendarDay.js +5 -1
- package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-es/calendar/internal/CalendarNavigation.js +3 -7
- package/dist-es/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-es/calendar/useCalendar.js +5 -5
- package/dist-es/calendar/useCalendar.js.map +1 -1
- package/dist-es/calendar/useSelection.js +4 -1
- package/dist-es/calendar/useSelection.js.map +1 -1
- package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-es/date-input/DateInput.css.js +1 -1
- package/dist-es/date-input/DateInput.js +200 -53
- package/dist-es/date-input/DateInput.js.map +1 -1
- package/dist-es/date-picker/DatePicker.js +160 -0
- package/dist-es/date-picker/DatePicker.js.map +1 -0
- package/dist-es/date-picker/DatePickerContext.js +31 -0
- package/dist-es/date-picker/DatePickerContext.js.map +1 -0
- package/dist-es/date-picker/DatePickerPanel.css.js +4 -0
- package/dist-es/date-picker/DatePickerPanel.css.js.map +1 -0
- package/dist-es/date-picker/DatePickerPanel.js +135 -0
- package/dist-es/date-picker/DatePickerPanel.js.map +1 -0
- package/dist-es/index.js +2 -1
- package/dist-es/index.js.map +1 -1
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
- package/dist-es/stepper-input/StepperInput.css.js +1 -1
- package/dist-es/stepper-input/StepperInput.js +27 -76
- package/dist-es/stepper-input/StepperInput.js.map +1 -1
- package/dist-es/stepper-input/useStepperInput.js +19 -63
- package/dist-es/stepper-input/useStepperInput.js.map +1 -1
- package/dist-types/breadcrumbs/internal/BreadcrumbsCollapsed.d.ts +1 -1
- package/dist-types/breadcrumbs/internal/BreadcrumbsSeparator.d.ts +1 -1
- package/dist-types/button-bar/internal/DescendantContext.d.ts +1 -1
- package/dist-types/calendar/useSelection.d.ts +1 -0
- package/dist-types/combo-box-deprecated/internal/MultiSelectComboBox.d.ts +1 -1
- package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +54 -60
- package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +165 -182
- package/dist-types/common-hooks/collectionProvider.d.ts +1 -1
- package/dist-types/contact-details/MailLinkComponent.d.ts +1 -1
- package/dist-types/date-input/DateInput.d.ts +21 -7
- package/dist-types/date-picker/DatePicker.d.ts +55 -0
- package/dist-types/date-picker/DatePickerContext.d.ts +23 -0
- package/dist-types/date-picker/DatePickerPanel.d.ts +8 -0
- package/dist-types/date-picker/index.d.ts +1 -0
- package/dist-types/form-field-legacy/FormActivationIndicator.d.ts +1 -1
- package/dist-types/form-field-legacy/FormHelperText.d.ts +1 -1
- package/dist-types/form-field-legacy/FormLabel.d.ts +1 -1
- package/dist-types/form-field-legacy/NecessityIndicator.d.ts +1 -1
- package/dist-types/form-field-legacy/StatusIndicator.d.ts +1 -1
- package/dist-types/index.d.ts +1 -0
- package/dist-types/list-deprecated/internal/DescendantContext.d.ts +1 -1
- package/dist-types/list-deprecated/internal/Highlighter.d.ts +1 -1
- package/dist-types/query-input/internal/CategoryList.d.ts +1 -1
- package/dist-types/query-input/internal/SearchList.d.ts +1 -1
- package/dist-types/query-input/internal/ValueList.d.ts +1 -1
- package/dist-types/query-input/internal/ValueSelector.d.ts +1 -1
- package/dist-types/responsive/overflowUtils.d.ts +1 -1
- package/dist-types/slider/internal/SliderMarkLabels.d.ts +1 -1
- package/dist-types/slider/internal/SliderRail.d.ts +1 -1
- package/dist-types/slider/internal/SliderRailMarks.d.ts +1 -1
- package/dist-types/slider/internal/SliderSelection.d.ts +1 -1
- package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +2 -2
- package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +1 -1
- package/dist-types/stepper-input/StepperInput.d.ts +43 -12
- package/dist-types/stepper-input/useStepperInput.d.ts +7 -293
- package/dist-types/tabs/TabActivationIndicator.d.ts +1 -1
- package/dist-types/toolbar/Tooltray.d.ts +1 -1
- package/dist-types/tree/TreeNode.d.ts +1 -1
- package/package.json +2 -2
- package/dist-cjs/stepper-input/internal/useActivationIndicatorPosition.js +0 -38
- package/dist-cjs/stepper-input/internal/useActivationIndicatorPosition.js.map +0 -1
- package/dist-cjs/stepper-input/internal/useDynamicAriaLabel.js +0 -76
- package/dist-cjs/stepper-input/internal/useDynamicAriaLabel.js.map +0 -1
- package/dist-es/stepper-input/internal/useActivationIndicatorPosition.js +0 -34
- package/dist-es/stepper-input/internal/useActivationIndicatorPosition.js.map +0 -1
- package/dist-es/stepper-input/internal/useDynamicAriaLabel.js +0 -72
- package/dist-es/stepper-input/internal/useDynamicAriaLabel.js.map +0 -1
- package/dist-types/stepper-input/internal/useActivationIndicatorPosition.d.ts +0 -2
- package/dist-types/stepper-input/internal/useDynamicAriaLabel.d.ts +0 -3
|
@@ -4,5 +4,5 @@ interface TabActivationIndicatorProps {
|
|
|
4
4
|
disableAnimation?: boolean;
|
|
5
5
|
tabId?: string | null;
|
|
6
6
|
}
|
|
7
|
-
export declare const TabActivationIndicator: ({ hideThumb, orientation, tabId, }: TabActivationIndicatorProps) =>
|
|
7
|
+
export declare const TabActivationIndicator: ({ hideThumb, orientation, tabId, }: TabActivationIndicatorProps) => JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TooltrayProps } from "./TooltrayProps";
|
|
2
|
-
export declare const Tooltray: (props: TooltrayProps) =>
|
|
2
|
+
export declare const Tooltray: (props: TooltrayProps) => JSX.Element;
|
|
@@ -9,4 +9,4 @@ export interface TreeNodeProps extends Omit<HTMLAttributes<HTMLLIElement>, "onMo
|
|
|
9
9
|
onMouseEnter?: MouseEventHandler;
|
|
10
10
|
selected?: boolean;
|
|
11
11
|
}
|
|
12
|
-
export declare const TreeNode: ({ "aria-level": ariaLevel, children, className: classNameProp, description, highlighted, idx, isLeaf, label, onMouseEnter, selected, ...props }: TreeNodeProps) =>
|
|
12
|
+
export declare const TreeNode: ({ "aria-level": ariaLevel, children, className: classNameProp, description, highlighted, idx, isLeaf, label, onMouseEnter, selected, ...props }: TreeNodeProps) => JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salt-ds/lab",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.45",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"react-window": "^1.8.6",
|
|
27
27
|
"rifm": "^0.12.0",
|
|
28
28
|
"tinycolor2": "^1.4.2",
|
|
29
|
-
"@salt-ds/core": "^1.
|
|
29
|
+
"@salt-ds/core": "^1.28.0",
|
|
30
30
|
"@salt-ds/window": "^0.1.1",
|
|
31
31
|
"@salt-ds/styles": "^0.2.1",
|
|
32
32
|
"@salt-ds/icons": "^1.11.2"
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var core = require('@salt-ds/core');
|
|
6
|
-
require('../../form-field-context-legacy/FormFieldLegacyContext.js');
|
|
7
|
-
var useFormFieldLegacyProps = require('../../form-field-context-legacy/useFormFieldLegacyProps.js');
|
|
8
|
-
|
|
9
|
-
const refreshButtonWidth = {
|
|
10
|
-
touch: 36,
|
|
11
|
-
low: 28,
|
|
12
|
-
medium: 24,
|
|
13
|
-
high: 12
|
|
14
|
-
};
|
|
15
|
-
function useActivationIndicatorPosition(adornmentRef, refreshButtonVisible) {
|
|
16
|
-
const formFieldProps = useFormFieldLegacyProps.useFormFieldLegacyProps();
|
|
17
|
-
const { ref: formFieldRef } = formFieldProps;
|
|
18
|
-
const density = core.useDensity();
|
|
19
|
-
core.useIsomorphicLayoutEffect(() => {
|
|
20
|
-
let offset;
|
|
21
|
-
if (adornmentRef && adornmentRef.current !== null) {
|
|
22
|
-
const marginAdjustment = density === "high" || density === "medium" ? 2 : 4;
|
|
23
|
-
const secondaryButtonAdjustment = refreshButtonVisible ? 0 : refreshButtonWidth[density];
|
|
24
|
-
offset = adornmentRef.current.getBoundingClientRect().width - marginAdjustment - secondaryButtonAdjustment;
|
|
25
|
-
}
|
|
26
|
-
if (formFieldRef && formFieldRef.current && offset) {
|
|
27
|
-
const activationIndicator = formFieldRef.current.getElementsByClassName(
|
|
28
|
-
"saltFormActivationIndicator-icon"
|
|
29
|
-
);
|
|
30
|
-
if (activationIndicator.length > 0) {
|
|
31
|
-
activationIndicator[0].style.transform = `translateX(-${offset}px)`;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
exports.useActivationIndicatorPosition = useActivationIndicatorPosition;
|
|
38
|
-
//# sourceMappingURL=useActivationIndicatorPosition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActivationIndicatorPosition.js","sources":["../src/stepper-input/internal/useActivationIndicatorPosition.ts"],"sourcesContent":["import { useDensity, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { useFormFieldLegacyProps } from \"../../form-field-context-legacy\";\nimport { MutableRefObject } from \"react\";\n\nconst refreshButtonWidth = {\n touch: 36,\n low: 28,\n medium: 24,\n high: 12,\n};\n\n// The activation indicator icon is absolutely positioned by FormField,\n// and must be offset to accommodate the end adornment added by Stepper Input.\n// Ideally, we should be able to provide an 'activationIndicator' class to FormField to\n// override its default positioning instead of directly repositioning it via its ref.\nexport function useActivationIndicatorPosition(\n adornmentRef: MutableRefObject<HTMLDivElement | null>,\n refreshButtonVisible: boolean\n) {\n const formFieldProps = useFormFieldLegacyProps();\n const { ref: formFieldRef } = formFieldProps;\n const density = useDensity();\n\n useIsomorphicLayoutEffect(() => {\n let offset;\n if (adornmentRef && adornmentRef.current !== null) {\n const marginAdjustment =\n density === \"high\" || density === \"medium\" ? 2 : 4;\n\n const secondaryButtonAdjustment = refreshButtonVisible\n ? 0\n : refreshButtonWidth[density];\n\n offset =\n adornmentRef.current.getBoundingClientRect().width -\n marginAdjustment -\n secondaryButtonAdjustment;\n }\n if (formFieldRef && formFieldRef.current && offset) {\n const activationIndicator = formFieldRef.current.getElementsByClassName(\n \"saltFormActivationIndicator-icon\"\n ) as HTMLCollectionOf<HTMLElement>;\n if (activationIndicator.length > 0) {\n activationIndicator[0].style.transform = `translateX(-${offset}px)`;\n }\n }\n });\n}\n"],"names":["useFormFieldLegacyProps","useDensity","useIsomorphicLayoutEffect"],"mappings":";;;;;;;;AAIA,MAAM,kBAAqB,GAAA;AAAA,EACzB,KAAO,EAAA,EAAA;AAAA,EACP,GAAK,EAAA,EAAA;AAAA,EACL,MAAQ,EAAA,EAAA;AAAA,EACR,IAAM,EAAA,EAAA;AACR,CAAA,CAAA;AAMgB,SAAA,8BAAA,CACd,cACA,oBACA,EAAA;AACA,EAAA,MAAM,iBAAiBA,+CAAwB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,GAAK,EAAA,YAAA,EAAiB,GAAA,cAAA,CAAA;AAC9B,EAAA,MAAM,UAAUC,eAAW,EAAA,CAAA;AAE3B,EAAAC,8BAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,KAAY,IAAM,EAAA;AACjD,MAAA,MAAM,gBACJ,GAAA,OAAA,KAAY,MAAU,IAAA,OAAA,KAAY,WAAW,CAAI,GAAA,CAAA,CAAA;AAEnD,MAAM,MAAA,yBAAA,GAA4B,oBAC9B,GAAA,CAAA,GACA,kBAAmB,CAAA,OAAA,CAAA,CAAA;AAEvB,MAAA,MAAA,GACE,YAAa,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAE,QAC7C,gBACA,GAAA,yBAAA,CAAA;AAAA,KACJ;AACA,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,IAAW,MAAQ,EAAA;AAClD,MAAM,MAAA,mBAAA,GAAsB,aAAa,OAAQ,CAAA,sBAAA;AAAA,QAC/C,kCAAA;AAAA,OACF,CAAA;AACA,MAAI,IAAA,mBAAA,CAAoB,SAAS,CAAG,EAAA;AAClC,QAAoB,mBAAA,CAAA,CAAA,CAAA,CAAG,KAAM,CAAA,SAAA,GAAY,CAAe,YAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAC1D;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
6
|
-
var core = require('@salt-ds/core');
|
|
7
|
-
|
|
8
|
-
const useDynamicAriaLabel = (appendLabel, hasLiveValue, inputRef, value, valuesHaveDiverged) => {
|
|
9
|
-
const [hasAnnounced, setHasAnnounced] = React.useState(false);
|
|
10
|
-
const { announce } = core.useAriaAnnouncer();
|
|
11
|
-
React.useEffect(() => {
|
|
12
|
-
var _a;
|
|
13
|
-
function applyAriaMessage(ariaLabel) {
|
|
14
|
-
var _a2, _b, _c, _d;
|
|
15
|
-
if (!ariaLabel.includes(appendLabel)) {
|
|
16
|
-
(_a2 = inputRef.current) == null ? void 0 : _a2.setAttribute(
|
|
17
|
-
"aria-label",
|
|
18
|
-
`${ariaLabel}${appendLabel}`
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
const currentId = ((_b = inputRef.current) == null ? void 0 : _b.getAttribute("id")) || "";
|
|
22
|
-
const labelledBy = ((_c = inputRef.current) == null ? void 0 : _c.getAttribute("aria-labelledby")) || "";
|
|
23
|
-
if (!labelledBy.includes(currentId)) {
|
|
24
|
-
(_d = inputRef.current) == null ? void 0 : _d.setAttribute(
|
|
25
|
-
"aria-labelledby",
|
|
26
|
-
`${labelledBy} ${currentId}`
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function removeAriaMessage(ariaLabel) {
|
|
31
|
-
var _a2, _b, _c, _d, _e;
|
|
32
|
-
const replacementAria = ariaLabel == null ? void 0 : ariaLabel.replace(appendLabel, "");
|
|
33
|
-
if (replacementAria !== void 0) {
|
|
34
|
-
(_a2 = inputRef.current) == null ? void 0 : _a2.setAttribute("aria-label", replacementAria);
|
|
35
|
-
}
|
|
36
|
-
const replacementLabelledBy = (_d = (_b = inputRef.current) == null ? void 0 : _b.getAttribute("aria-labelledby")) == null ? void 0 : _d.replace(` ${(_c = inputRef.current) == null ? void 0 : _c.getAttribute("id")}`, "");
|
|
37
|
-
if (replacementLabelledBy !== void 0) {
|
|
38
|
-
(_e = inputRef.current) == null ? void 0 : _e.setAttribute(
|
|
39
|
-
"aria-labelledby",
|
|
40
|
-
replacementLabelledBy
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (hasLiveValue) {
|
|
45
|
-
const ariaLabel = ((_a = inputRef.current) == null ? void 0 : _a.getAttribute("aria-label")) || "";
|
|
46
|
-
if (valuesHaveDiverged()) {
|
|
47
|
-
applyAriaMessage(ariaLabel);
|
|
48
|
-
} else {
|
|
49
|
-
removeAriaMessage(ariaLabel);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}, [appendLabel, inputRef, hasLiveValue, valuesHaveDiverged, value]);
|
|
53
|
-
React.useEffect(() => {
|
|
54
|
-
var _a;
|
|
55
|
-
if (hasLiveValue && valuesHaveDiverged()) {
|
|
56
|
-
if (inputRef.current !== document.activeElement && !hasAnnounced) {
|
|
57
|
-
announce("");
|
|
58
|
-
announce(`${(_a = inputRef.current) == null ? void 0 : _a.getAttribute("aria-label")}`);
|
|
59
|
-
setHasAnnounced(true);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}, [
|
|
63
|
-
announce,
|
|
64
|
-
appendLabel,
|
|
65
|
-
hasAnnounced,
|
|
66
|
-
inputRef,
|
|
67
|
-
hasLiveValue,
|
|
68
|
-
setHasAnnounced,
|
|
69
|
-
valuesHaveDiverged,
|
|
70
|
-
value
|
|
71
|
-
]);
|
|
72
|
-
return { setHasAnnounced };
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
exports.useDynamicAriaLabel = useDynamicAriaLabel;
|
|
76
|
-
//# sourceMappingURL=useDynamicAriaLabel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDynamicAriaLabel.js","sources":["../src/stepper-input/internal/useDynamicAriaLabel.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useAriaAnnouncer } from \"@salt-ds/core\";\n\n// Dynamically append a string to aria-label if the component\n// is controlled and the display value can be refreshed\nexport const useDynamicAriaLabel = (\n appendLabel: string,\n hasLiveValue: boolean,\n inputRef: React.MutableRefObject<HTMLInputElement | null>,\n value: number | string | undefined,\n valuesHaveDiverged: () => boolean\n) => {\n const [hasAnnounced, setHasAnnounced] = useState(false);\n const { announce } = useAriaAnnouncer();\n\n useEffect(() => {\n function applyAriaMessage(ariaLabel: string) {\n // Don't append the message again if it's already part of the string\n if (!ariaLabel.includes(appendLabel)) {\n inputRef.current?.setAttribute(\n \"aria-label\",\n `${ariaLabel}${appendLabel}`\n );\n }\n\n const currentId = inputRef.current?.getAttribute(\"id\") || \"\";\n const labelledBy =\n inputRef.current?.getAttribute(\"aria-labelledby\") || \"\";\n\n if (!labelledBy.includes(currentId)) {\n inputRef.current?.setAttribute(\n \"aria-labelledby\",\n `${labelledBy} ${currentId}`\n );\n }\n }\n\n function removeAriaMessage(ariaLabel: string) {\n const replacementAria = ariaLabel?.replace(appendLabel, \"\");\n if (replacementAria !== undefined) {\n inputRef.current?.setAttribute(\"aria-label\", replacementAria);\n }\n\n const replacementLabelledBy = inputRef.current\n ?.getAttribute(\"aria-labelledby\")\n ?.replace(` ${inputRef.current?.getAttribute(\"id\")}`, \"\");\n\n if (replacementLabelledBy !== undefined) {\n inputRef.current?.setAttribute(\n \"aria-labelledby\",\n replacementLabelledBy\n );\n }\n }\n\n if (hasLiveValue) {\n const ariaLabel = inputRef.current?.getAttribute(\"aria-label\") || \"\";\n if (valuesHaveDiverged()) {\n applyAriaMessage(ariaLabel);\n } else {\n removeAriaMessage(ariaLabel);\n }\n }\n }, [appendLabel, inputRef, hasLiveValue, valuesHaveDiverged, value]);\n\n useEffect(() => {\n if (hasLiveValue && valuesHaveDiverged()) {\n // Screen readers will automatically announce updates when the dynamic `aria-label`\n // changes and the component has focus. When the component *does not* have\n // focus we should announce only once for the first value update\n if (inputRef.current !== document.activeElement && !hasAnnounced) {\n // Empty announcement required until a fix is in place for announcer\n announce(\"\");\n announce(`${inputRef.current?.getAttribute(\"aria-label\")}`);\n\n // We only want to announce on the first value change, but this flag\n // is reset when the input receives focus\n setHasAnnounced(true);\n }\n }\n }, [\n announce,\n appendLabel,\n hasAnnounced,\n inputRef,\n hasLiveValue,\n setHasAnnounced,\n valuesHaveDiverged,\n value,\n ]);\n\n return { setHasAnnounced };\n};\n"],"names":["useState","useAriaAnnouncer","useEffect","_a"],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { useDensity, useIsomorphicLayoutEffect } from '@salt-ds/core';
|
|
2
|
-
import '../../form-field-context-legacy/FormFieldLegacyContext.js';
|
|
3
|
-
import { useFormFieldLegacyProps } from '../../form-field-context-legacy/useFormFieldLegacyProps.js';
|
|
4
|
-
|
|
5
|
-
const refreshButtonWidth = {
|
|
6
|
-
touch: 36,
|
|
7
|
-
low: 28,
|
|
8
|
-
medium: 24,
|
|
9
|
-
high: 12
|
|
10
|
-
};
|
|
11
|
-
function useActivationIndicatorPosition(adornmentRef, refreshButtonVisible) {
|
|
12
|
-
const formFieldProps = useFormFieldLegacyProps();
|
|
13
|
-
const { ref: formFieldRef } = formFieldProps;
|
|
14
|
-
const density = useDensity();
|
|
15
|
-
useIsomorphicLayoutEffect(() => {
|
|
16
|
-
let offset;
|
|
17
|
-
if (adornmentRef && adornmentRef.current !== null) {
|
|
18
|
-
const marginAdjustment = density === "high" || density === "medium" ? 2 : 4;
|
|
19
|
-
const secondaryButtonAdjustment = refreshButtonVisible ? 0 : refreshButtonWidth[density];
|
|
20
|
-
offset = adornmentRef.current.getBoundingClientRect().width - marginAdjustment - secondaryButtonAdjustment;
|
|
21
|
-
}
|
|
22
|
-
if (formFieldRef && formFieldRef.current && offset) {
|
|
23
|
-
const activationIndicator = formFieldRef.current.getElementsByClassName(
|
|
24
|
-
"saltFormActivationIndicator-icon"
|
|
25
|
-
);
|
|
26
|
-
if (activationIndicator.length > 0) {
|
|
27
|
-
activationIndicator[0].style.transform = `translateX(-${offset}px)`;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export { useActivationIndicatorPosition };
|
|
34
|
-
//# sourceMappingURL=useActivationIndicatorPosition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActivationIndicatorPosition.js","sources":["../src/stepper-input/internal/useActivationIndicatorPosition.ts"],"sourcesContent":["import { useDensity, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { useFormFieldLegacyProps } from \"../../form-field-context-legacy\";\nimport { MutableRefObject } from \"react\";\n\nconst refreshButtonWidth = {\n touch: 36,\n low: 28,\n medium: 24,\n high: 12,\n};\n\n// The activation indicator icon is absolutely positioned by FormField,\n// and must be offset to accommodate the end adornment added by Stepper Input.\n// Ideally, we should be able to provide an 'activationIndicator' class to FormField to\n// override its default positioning instead of directly repositioning it via its ref.\nexport function useActivationIndicatorPosition(\n adornmentRef: MutableRefObject<HTMLDivElement | null>,\n refreshButtonVisible: boolean\n) {\n const formFieldProps = useFormFieldLegacyProps();\n const { ref: formFieldRef } = formFieldProps;\n const density = useDensity();\n\n useIsomorphicLayoutEffect(() => {\n let offset;\n if (adornmentRef && adornmentRef.current !== null) {\n const marginAdjustment =\n density === \"high\" || density === \"medium\" ? 2 : 4;\n\n const secondaryButtonAdjustment = refreshButtonVisible\n ? 0\n : refreshButtonWidth[density];\n\n offset =\n adornmentRef.current.getBoundingClientRect().width -\n marginAdjustment -\n secondaryButtonAdjustment;\n }\n if (formFieldRef && formFieldRef.current && offset) {\n const activationIndicator = formFieldRef.current.getElementsByClassName(\n \"saltFormActivationIndicator-icon\"\n ) as HTMLCollectionOf<HTMLElement>;\n if (activationIndicator.length > 0) {\n activationIndicator[0].style.transform = `translateX(-${offset}px)`;\n }\n }\n });\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,kBAAqB,GAAA;AAAA,EACzB,KAAO,EAAA,EAAA;AAAA,EACP,GAAK,EAAA,EAAA;AAAA,EACL,MAAQ,EAAA,EAAA;AAAA,EACR,IAAM,EAAA,EAAA;AACR,CAAA,CAAA;AAMgB,SAAA,8BAAA,CACd,cACA,oBACA,EAAA;AACA,EAAA,MAAM,iBAAiB,uBAAwB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,GAAK,EAAA,YAAA,EAAiB,GAAA,cAAA,CAAA;AAC9B,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAE3B,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,KAAY,IAAM,EAAA;AACjD,MAAA,MAAM,gBACJ,GAAA,OAAA,KAAY,MAAU,IAAA,OAAA,KAAY,WAAW,CAAI,GAAA,CAAA,CAAA;AAEnD,MAAM,MAAA,yBAAA,GAA4B,oBAC9B,GAAA,CAAA,GACA,kBAAmB,CAAA,OAAA,CAAA,CAAA;AAEvB,MAAA,MAAA,GACE,YAAa,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAE,QAC7C,gBACA,GAAA,yBAAA,CAAA;AAAA,KACJ;AACA,IAAI,IAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,IAAW,MAAQ,EAAA;AAClD,MAAM,MAAA,mBAAA,GAAsB,aAAa,OAAQ,CAAA,sBAAA;AAAA,QAC/C,kCAAA;AAAA,OACF,CAAA;AACA,MAAI,IAAA,mBAAA,CAAoB,SAAS,CAAG,EAAA;AAClC,QAAoB,mBAAA,CAAA,CAAA,CAAA,CAAG,KAAM,CAAA,SAAA,GAAY,CAAe,YAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAC1D;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
import { useAriaAnnouncer } from '@salt-ds/core';
|
|
3
|
-
|
|
4
|
-
const useDynamicAriaLabel = (appendLabel, hasLiveValue, inputRef, value, valuesHaveDiverged) => {
|
|
5
|
-
const [hasAnnounced, setHasAnnounced] = useState(false);
|
|
6
|
-
const { announce } = useAriaAnnouncer();
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
var _a;
|
|
9
|
-
function applyAriaMessage(ariaLabel) {
|
|
10
|
-
var _a2, _b, _c, _d;
|
|
11
|
-
if (!ariaLabel.includes(appendLabel)) {
|
|
12
|
-
(_a2 = inputRef.current) == null ? void 0 : _a2.setAttribute(
|
|
13
|
-
"aria-label",
|
|
14
|
-
`${ariaLabel}${appendLabel}`
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
const currentId = ((_b = inputRef.current) == null ? void 0 : _b.getAttribute("id")) || "";
|
|
18
|
-
const labelledBy = ((_c = inputRef.current) == null ? void 0 : _c.getAttribute("aria-labelledby")) || "";
|
|
19
|
-
if (!labelledBy.includes(currentId)) {
|
|
20
|
-
(_d = inputRef.current) == null ? void 0 : _d.setAttribute(
|
|
21
|
-
"aria-labelledby",
|
|
22
|
-
`${labelledBy} ${currentId}`
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function removeAriaMessage(ariaLabel) {
|
|
27
|
-
var _a2, _b, _c, _d, _e;
|
|
28
|
-
const replacementAria = ariaLabel == null ? void 0 : ariaLabel.replace(appendLabel, "");
|
|
29
|
-
if (replacementAria !== void 0) {
|
|
30
|
-
(_a2 = inputRef.current) == null ? void 0 : _a2.setAttribute("aria-label", replacementAria);
|
|
31
|
-
}
|
|
32
|
-
const replacementLabelledBy = (_d = (_b = inputRef.current) == null ? void 0 : _b.getAttribute("aria-labelledby")) == null ? void 0 : _d.replace(` ${(_c = inputRef.current) == null ? void 0 : _c.getAttribute("id")}`, "");
|
|
33
|
-
if (replacementLabelledBy !== void 0) {
|
|
34
|
-
(_e = inputRef.current) == null ? void 0 : _e.setAttribute(
|
|
35
|
-
"aria-labelledby",
|
|
36
|
-
replacementLabelledBy
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (hasLiveValue) {
|
|
41
|
-
const ariaLabel = ((_a = inputRef.current) == null ? void 0 : _a.getAttribute("aria-label")) || "";
|
|
42
|
-
if (valuesHaveDiverged()) {
|
|
43
|
-
applyAriaMessage(ariaLabel);
|
|
44
|
-
} else {
|
|
45
|
-
removeAriaMessage(ariaLabel);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}, [appendLabel, inputRef, hasLiveValue, valuesHaveDiverged, value]);
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
var _a;
|
|
51
|
-
if (hasLiveValue && valuesHaveDiverged()) {
|
|
52
|
-
if (inputRef.current !== document.activeElement && !hasAnnounced) {
|
|
53
|
-
announce("");
|
|
54
|
-
announce(`${(_a = inputRef.current) == null ? void 0 : _a.getAttribute("aria-label")}`);
|
|
55
|
-
setHasAnnounced(true);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}, [
|
|
59
|
-
announce,
|
|
60
|
-
appendLabel,
|
|
61
|
-
hasAnnounced,
|
|
62
|
-
inputRef,
|
|
63
|
-
hasLiveValue,
|
|
64
|
-
setHasAnnounced,
|
|
65
|
-
valuesHaveDiverged,
|
|
66
|
-
value
|
|
67
|
-
]);
|
|
68
|
-
return { setHasAnnounced };
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export { useDynamicAriaLabel };
|
|
72
|
-
//# sourceMappingURL=useDynamicAriaLabel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDynamicAriaLabel.js","sources":["../src/stepper-input/internal/useDynamicAriaLabel.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useAriaAnnouncer } from \"@salt-ds/core\";\n\n// Dynamically append a string to aria-label if the component\n// is controlled and the display value can be refreshed\nexport const useDynamicAriaLabel = (\n appendLabel: string,\n hasLiveValue: boolean,\n inputRef: React.MutableRefObject<HTMLInputElement | null>,\n value: number | string | undefined,\n valuesHaveDiverged: () => boolean\n) => {\n const [hasAnnounced, setHasAnnounced] = useState(false);\n const { announce } = useAriaAnnouncer();\n\n useEffect(() => {\n function applyAriaMessage(ariaLabel: string) {\n // Don't append the message again if it's already part of the string\n if (!ariaLabel.includes(appendLabel)) {\n inputRef.current?.setAttribute(\n \"aria-label\",\n `${ariaLabel}${appendLabel}`\n );\n }\n\n const currentId = inputRef.current?.getAttribute(\"id\") || \"\";\n const labelledBy =\n inputRef.current?.getAttribute(\"aria-labelledby\") || \"\";\n\n if (!labelledBy.includes(currentId)) {\n inputRef.current?.setAttribute(\n \"aria-labelledby\",\n `${labelledBy} ${currentId}`\n );\n }\n }\n\n function removeAriaMessage(ariaLabel: string) {\n const replacementAria = ariaLabel?.replace(appendLabel, \"\");\n if (replacementAria !== undefined) {\n inputRef.current?.setAttribute(\"aria-label\", replacementAria);\n }\n\n const replacementLabelledBy = inputRef.current\n ?.getAttribute(\"aria-labelledby\")\n ?.replace(` ${inputRef.current?.getAttribute(\"id\")}`, \"\");\n\n if (replacementLabelledBy !== undefined) {\n inputRef.current?.setAttribute(\n \"aria-labelledby\",\n replacementLabelledBy\n );\n }\n }\n\n if (hasLiveValue) {\n const ariaLabel = inputRef.current?.getAttribute(\"aria-label\") || \"\";\n if (valuesHaveDiverged()) {\n applyAriaMessage(ariaLabel);\n } else {\n removeAriaMessage(ariaLabel);\n }\n }\n }, [appendLabel, inputRef, hasLiveValue, valuesHaveDiverged, value]);\n\n useEffect(() => {\n if (hasLiveValue && valuesHaveDiverged()) {\n // Screen readers will automatically announce updates when the dynamic `aria-label`\n // changes and the component has focus. When the component *does not* have\n // focus we should announce only once for the first value update\n if (inputRef.current !== document.activeElement && !hasAnnounced) {\n // Empty announcement required until a fix is in place for announcer\n announce(\"\");\n announce(`${inputRef.current?.getAttribute(\"aria-label\")}`);\n\n // We only want to announce on the first value change, but this flag\n // is reset when the input receives focus\n setHasAnnounced(true);\n }\n }\n }, [\n announce,\n appendLabel,\n hasAnnounced,\n inputRef,\n hasLiveValue,\n setHasAnnounced,\n valuesHaveDiverged,\n value,\n ]);\n\n return { setHasAnnounced };\n};\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const useDynamicAriaLabel: (appendLabel: string, hasLiveValue: boolean, inputRef: React.MutableRefObject<HTMLInputElement | null>, value: number | string | undefined, valuesHaveDiverged: () => boolean) => {
|
|
2
|
-
setHasAnnounced: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
3
|
-
};
|