@proyecto-viviana/solidaria 0.2.2 → 0.2.3
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/dist/autocomplete/createAutocomplete.d.ts +2 -2
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/index.js +233 -234
- package/dist/index.js.map +2 -2
- package/dist/index.ssr.js +233 -234
- package/dist/index.ssr.js.map +2 -2
- package/dist/interactions/PressEvent.d.ts +13 -10
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +1 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/package.json +9 -7
- package/src/autocomplete/createAutocomplete.ts +341 -0
- package/src/autocomplete/index.ts +9 -0
- package/src/breadcrumbs/createBreadcrumbs.ts +196 -0
- package/src/breadcrumbs/index.ts +8 -0
- package/src/button/createButton.ts +142 -0
- package/src/button/createToggleButton.ts +101 -0
- package/src/button/index.ts +4 -0
- package/src/button/types.ts +78 -0
- package/src/calendar/createCalendar.ts +138 -0
- package/src/calendar/createCalendarCell.ts +187 -0
- package/src/calendar/createCalendarGrid.ts +140 -0
- package/src/calendar/createRangeCalendar.ts +136 -0
- package/src/calendar/createRangeCalendarCell.ts +186 -0
- package/src/calendar/index.ts +34 -0
- package/src/checkbox/createCheckbox.ts +135 -0
- package/src/checkbox/createCheckboxGroup.ts +137 -0
- package/src/checkbox/createCheckboxGroupItem.ts +117 -0
- package/src/checkbox/createCheckboxGroupState.ts +193 -0
- package/src/checkbox/index.ts +13 -0
- package/src/color/createColorArea.ts +314 -0
- package/src/color/createColorField.ts +137 -0
- package/src/color/createColorSlider.ts +197 -0
- package/src/color/createColorSwatch.ts +40 -0
- package/src/color/createColorWheel.ts +208 -0
- package/src/color/index.ts +24 -0
- package/src/color/types.ts +116 -0
- package/src/combobox/createComboBox.ts +647 -0
- package/src/combobox/index.ts +6 -0
- package/src/combobox/intl/en-US.json +7 -0
- package/src/combobox/intl/es-ES.json +7 -0
- package/src/combobox/intl/index.ts +23 -0
- package/src/datepicker/createDateField.ts +154 -0
- package/src/datepicker/createDatePicker.ts +206 -0
- package/src/datepicker/createDateSegment.ts +229 -0
- package/src/datepicker/createTimeField.ts +154 -0
- package/src/datepicker/index.ts +28 -0
- package/src/dialog/createDialog.ts +120 -0
- package/src/dialog/index.ts +2 -0
- package/src/dialog/types.ts +19 -0
- package/src/disclosure/createDisclosure.ts +131 -0
- package/src/disclosure/createDisclosureGroup.ts +62 -0
- package/src/disclosure/index.ts +11 -0
- package/src/dnd/createDrag.ts +209 -0
- package/src/dnd/createDraggableCollection.ts +63 -0
- package/src/dnd/createDraggableItem.ts +243 -0
- package/src/dnd/createDrop.ts +321 -0
- package/src/dnd/createDroppableCollection.ts +293 -0
- package/src/dnd/createDroppableItem.ts +213 -0
- package/src/dnd/index.ts +47 -0
- package/src/dnd/types.ts +89 -0
- package/src/dnd/utils.ts +294 -0
- package/src/focus/FocusScope.tsx +408 -0
- package/src/focus/createAutoFocus.ts +321 -0
- package/src/focus/createFocusRestore.ts +313 -0
- package/src/focus/createVirtualFocus.ts +396 -0
- package/src/focus/index.ts +35 -0
- package/src/form/createFormReset.ts +51 -0
- package/src/form/createFormValidation.ts +224 -0
- package/src/form/index.ts +11 -0
- package/src/grid/GridKeyboardDelegate.ts +429 -0
- package/src/grid/createGrid.ts +261 -0
- package/src/grid/createGridCell.ts +182 -0
- package/src/grid/createGridRow.ts +153 -0
- package/src/grid/index.ts +18 -0
- package/src/grid/types.ts +133 -0
- package/src/gridlist/createGridList.ts +185 -0
- package/src/gridlist/createGridListItem.ts +180 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +59 -0
- package/src/gridlist/index.ts +16 -0
- package/src/gridlist/types.ts +81 -0
- package/src/i18n/NumberFormatter.ts +266 -0
- package/src/i18n/createCollator.ts +79 -0
- package/src/i18n/createDateFormatter.ts +83 -0
- package/src/i18n/createFilter.ts +131 -0
- package/src/i18n/createNumberFormatter.ts +52 -0
- package/src/i18n/createStringFormatter.ts +87 -0
- package/src/i18n/index.ts +40 -0
- package/src/i18n/locale.tsx +188 -0
- package/src/i18n/utils.ts +99 -0
- package/src/index.ts +670 -0
- package/src/interactions/FocusableProvider.tsx +44 -0
- package/src/interactions/PressEvent.ts +126 -0
- package/src/interactions/createFocus.ts +163 -0
- package/src/interactions/createFocusRing.ts +89 -0
- package/src/interactions/createFocusWithin.ts +206 -0
- package/src/interactions/createFocusable.ts +168 -0
- package/src/interactions/createHover.ts +254 -0
- package/src/interactions/createInteractionModality.ts +424 -0
- package/src/interactions/createKeyboard.ts +82 -0
- package/src/interactions/createLongPress.ts +174 -0
- package/src/interactions/createMove.ts +289 -0
- package/src/interactions/createPress.ts +834 -0
- package/src/interactions/index.ts +78 -0
- package/src/label/createField.ts +145 -0
- package/src/label/createLabel.ts +117 -0
- package/src/label/createLabels.ts +50 -0
- package/src/label/index.ts +19 -0
- package/src/landmark/createLandmark.ts +377 -0
- package/src/landmark/index.ts +8 -0
- package/src/link/createLink.ts +182 -0
- package/src/link/index.ts +1 -0
- package/src/listbox/createListBox.ts +269 -0
- package/src/listbox/createOption.ts +151 -0
- package/src/listbox/index.ts +12 -0
- package/src/live-announcer/announce.ts +322 -0
- package/src/live-announcer/index.ts +9 -0
- package/src/menu/createMenu.ts +396 -0
- package/src/menu/createMenuItem.ts +149 -0
- package/src/menu/createMenuTrigger.ts +88 -0
- package/src/menu/index.ts +18 -0
- package/src/meter/createMeter.ts +75 -0
- package/src/meter/index.ts +1 -0
- package/src/numberfield/createNumberField.ts +268 -0
- package/src/numberfield/index.ts +5 -0
- package/src/overlays/ariaHideOutside.ts +219 -0
- package/src/overlays/createInteractOutside.ts +149 -0
- package/src/overlays/createModal.tsx +202 -0
- package/src/overlays/createOverlay.ts +155 -0
- package/src/overlays/createOverlayTrigger.ts +85 -0
- package/src/overlays/createPreventScroll.ts +266 -0
- package/src/overlays/index.ts +44 -0
- package/src/popover/calculatePosition.ts +766 -0
- package/src/popover/createOverlayPosition.ts +356 -0
- package/src/popover/createPopover.ts +170 -0
- package/src/popover/index.ts +24 -0
- package/src/progress/createProgressBar.ts +128 -0
- package/src/progress/index.ts +5 -0
- package/src/radio/createRadio.ts +287 -0
- package/src/radio/createRadioGroup.ts +189 -0
- package/src/radio/createRadioGroupState.ts +201 -0
- package/src/radio/index.ts +23 -0
- package/src/searchfield/createSearchField.ts +186 -0
- package/src/searchfield/index.ts +2 -0
- package/src/select/createHiddenSelect.tsx +236 -0
- package/src/select/createSelect.ts +395 -0
- package/src/select/index.ts +14 -0
- package/src/selection/createTypeSelect.ts +201 -0
- package/src/selection/index.ts +6 -0
- package/src/separator/createSeparator.ts +82 -0
- package/src/separator/index.ts +6 -0
- package/src/slider/createSlider.ts +349 -0
- package/src/slider/index.ts +2 -0
- package/src/ssr/index.tsx +370 -0
- package/src/switch/createSwitch.ts +70 -0
- package/src/switch/index.ts +1 -0
- package/src/table/createTable.ts +526 -0
- package/src/table/createTableCell.ts +147 -0
- package/src/table/createTableColumnHeader.ts +115 -0
- package/src/table/createTableHeaderRow.ts +40 -0
- package/src/table/createTableRow.ts +155 -0
- package/src/table/createTableRowGroup.ts +32 -0
- package/src/table/createTableSelectAllCheckbox.ts +73 -0
- package/src/table/createTableSelectionCheckbox.ts +59 -0
- package/src/table/index.ts +30 -0
- package/src/table/types.ts +165 -0
- package/src/tabs/createTabs.ts +472 -0
- package/src/tabs/index.ts +14 -0
- package/src/tag/createTag.ts +194 -0
- package/src/tag/createTagGroup.ts +154 -0
- package/src/tag/index.ts +12 -0
- package/src/textfield/createTextField.ts +198 -0
- package/src/textfield/index.ts +5 -0
- package/src/toast/createToast.ts +118 -0
- package/src/toast/createToastRegion.ts +100 -0
- package/src/toast/index.ts +11 -0
- package/src/toggle/createToggle.ts +223 -0
- package/src/toggle/createToggleState.ts +94 -0
- package/src/toggle/index.ts +7 -0
- package/src/toolbar/createToolbar.ts +369 -0
- package/src/toolbar/index.ts +6 -0
- package/src/tooltip/createTooltip.ts +79 -0
- package/src/tooltip/createTooltipTrigger.ts +222 -0
- package/src/tooltip/index.ts +6 -0
- package/src/tree/createTree.ts +246 -0
- package/src/tree/createTreeItem.ts +233 -0
- package/src/tree/createTreeSelectionCheckbox.ts +68 -0
- package/src/tree/index.ts +16 -0
- package/src/tree/types.ts +87 -0
- package/src/utils/createDescription.ts +137 -0
- package/src/utils/dom.ts +327 -0
- package/src/utils/env.ts +54 -0
- package/src/utils/events.ts +106 -0
- package/src/utils/filterDOMProps.ts +116 -0
- package/src/utils/focus.ts +151 -0
- package/src/utils/geometry.ts +115 -0
- package/src/utils/globalListeners.ts +142 -0
- package/src/utils/index.ts +80 -0
- package/src/utils/mergeProps.ts +52 -0
- package/src/utils/platform.ts +52 -0
- package/src/utils/reactivity.ts +36 -0
- package/src/utils/textSelection.ts +114 -0
- package/src/visually-hidden/createVisuallyHidden.ts +124 -0
- package/src/visually-hidden/index.ts +6 -0
- package/dist/index.jsx +0 -15845
- package/dist/index.jsx.map +0 -7
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactivity utilities for Solidaria
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe utilities for working with SolidJS reactivity patterns.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Accessor } from 'solid-js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A value that may be either a raw value or an accessor function.
|
|
11
|
+
* This is a common pattern in SolidJS for props that may be reactive.
|
|
12
|
+
*/
|
|
13
|
+
export type MaybeAccessor<T> = T | Accessor<T>;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Unwraps a MaybeAccessor to get the underlying value.
|
|
17
|
+
* If the input is a function, it calls it to get the value.
|
|
18
|
+
* Otherwise, it returns the value directly.
|
|
19
|
+
*
|
|
20
|
+
* @param value - The value or accessor to unwrap.
|
|
21
|
+
*/
|
|
22
|
+
export function access<T>(value: MaybeAccessor<T>): T {
|
|
23
|
+
return typeof value === 'function' ? (value as Accessor<T>)() : value;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A value that may be undefined or an accessor that returns the value or undefined.
|
|
28
|
+
*/
|
|
29
|
+
export type MaybeAccessorValue<T> = T | undefined | Accessor<T | undefined>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Checks if a value is an accessor function.
|
|
33
|
+
*/
|
|
34
|
+
export function isAccessor<T>(value: MaybeAccessor<T>): value is Accessor<T> {
|
|
35
|
+
return typeof value === 'function';
|
|
36
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text selection management utilities.
|
|
3
|
+
* Based on @react-aria/interactions textSelection utilities.
|
|
4
|
+
*
|
|
5
|
+
* On iOS, long press triggers text selection. The only way to prevent this
|
|
6
|
+
* is to set user-select: none on the entire page. On other platforms,
|
|
7
|
+
* we can just set it on the target element.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { isIOS } from './platform';
|
|
11
|
+
import { getOwnerDocument } from './dom';
|
|
12
|
+
|
|
13
|
+
type State = 'default' | 'disabled' | 'restoring';
|
|
14
|
+
|
|
15
|
+
// Global state to manage text selection across multiple press interactions
|
|
16
|
+
let state: State = 'default';
|
|
17
|
+
let savedUserSelect = '';
|
|
18
|
+
let modifiedElementMap = new WeakMap<HTMLElement, string>();
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Disables text selection on the page or element during press.
|
|
22
|
+
* On iOS, applies to the entire document. On other platforms, just the target.
|
|
23
|
+
*/
|
|
24
|
+
export function disableTextSelection(target?: HTMLElement): void {
|
|
25
|
+
if (isIOS()) {
|
|
26
|
+
// iOS requires disabling selection on the entire page
|
|
27
|
+
if (state === 'default') {
|
|
28
|
+
const documentElement = getOwnerDocument(target).documentElement;
|
|
29
|
+
savedUserSelect = documentElement.style.webkitUserSelect;
|
|
30
|
+
documentElement.style.webkitUserSelect = 'none';
|
|
31
|
+
}
|
|
32
|
+
state = 'disabled';
|
|
33
|
+
} else if (target) {
|
|
34
|
+
// On other platforms, just disable on the target
|
|
35
|
+
const element = target as HTMLElement;
|
|
36
|
+
if (!modifiedElementMap.has(element)) {
|
|
37
|
+
modifiedElementMap.set(element, element.style.userSelect);
|
|
38
|
+
element.style.userSelect = 'none';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Restores text selection after press ends.
|
|
45
|
+
* On iOS, waits 300ms to avoid selection appearing during tap.
|
|
46
|
+
*/
|
|
47
|
+
export function restoreTextSelection(target?: HTMLElement): void {
|
|
48
|
+
if (isIOS()) {
|
|
49
|
+
// Don't restore if another press is active
|
|
50
|
+
if (state !== 'disabled') {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
state = 'restoring';
|
|
55
|
+
|
|
56
|
+
// Wait for iOS to finish any pending selection actions
|
|
57
|
+
// 300ms is the iOS long-press delay
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
// Use runAfterTransition to avoid CSS recomputation during animation
|
|
60
|
+
runAfterTransition(() => {
|
|
61
|
+
// Only restore if still in 'restoring' state (no new press started)
|
|
62
|
+
if (state === 'restoring') {
|
|
63
|
+
const documentElement = getOwnerDocument(target).documentElement;
|
|
64
|
+
if (savedUserSelect) {
|
|
65
|
+
documentElement.style.webkitUserSelect = savedUserSelect;
|
|
66
|
+
} else {
|
|
67
|
+
documentElement.style.removeProperty('-webkit-user-select');
|
|
68
|
+
}
|
|
69
|
+
savedUserSelect = '';
|
|
70
|
+
state = 'default';
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}, 300);
|
|
74
|
+
} else if (target) {
|
|
75
|
+
// On other platforms, restore immediately
|
|
76
|
+
const element = target as HTMLElement;
|
|
77
|
+
const savedValue = modifiedElementMap.get(element);
|
|
78
|
+
if (savedValue !== undefined) {
|
|
79
|
+
if (savedValue) {
|
|
80
|
+
element.style.userSelect = savedValue;
|
|
81
|
+
} else {
|
|
82
|
+
element.style.removeProperty('user-select');
|
|
83
|
+
}
|
|
84
|
+
modifiedElementMap.delete(element);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Tracks pending transitions for runAfterTransition
|
|
90
|
+
const pendingTransitions = new Set<() => void>();
|
|
91
|
+
let transitionTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Runs a callback after CSS transitions complete.
|
|
95
|
+
* Batches multiple callbacks to avoid unnecessary layout thrashing.
|
|
96
|
+
*/
|
|
97
|
+
function runAfterTransition(callback: () => void): void {
|
|
98
|
+
// If we haven't started tracking transitions, run immediately
|
|
99
|
+
pendingTransitions.add(callback);
|
|
100
|
+
|
|
101
|
+
// Debounce - wait for any transitions to settle
|
|
102
|
+
if (transitionTimeout != null) {
|
|
103
|
+
clearTimeout(transitionTimeout);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
transitionTimeout = setTimeout(() => {
|
|
107
|
+
// Run all pending callbacks
|
|
108
|
+
for (const cb of pendingTransitions) {
|
|
109
|
+
cb();
|
|
110
|
+
}
|
|
111
|
+
pendingTransitions.clear();
|
|
112
|
+
transitionTimeout = null;
|
|
113
|
+
}, 0);
|
|
114
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createVisuallyHidden hook for solidaria
|
|
3
|
+
*
|
|
4
|
+
* Provides styles and props to visually hide content while keeping it
|
|
5
|
+
* accessible to screen readers.
|
|
6
|
+
*
|
|
7
|
+
* Port of react-aria's useVisuallyHidden.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { type Accessor, type JSX, createMemo, createSignal } from 'solid-js';
|
|
11
|
+
import { createFocusWithin } from '../interactions/createFocusWithin';
|
|
12
|
+
import { access, type MaybeAccessor } from '../utils';
|
|
13
|
+
|
|
14
|
+
// ============================================
|
|
15
|
+
// TYPES
|
|
16
|
+
// ============================================
|
|
17
|
+
|
|
18
|
+
export interface AriaVisuallyHiddenProps {
|
|
19
|
+
/** Inline styles to merge with the visually hidden styles. */
|
|
20
|
+
style?: JSX.CSSProperties;
|
|
21
|
+
/** Whether the element should become visible when focused (e.g., skip links). */
|
|
22
|
+
isFocusable?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface VisuallyHiddenAria {
|
|
26
|
+
/** Props to spread on the visually hidden element. */
|
|
27
|
+
visuallyHiddenProps: Accessor<JSX.HTMLAttributes<HTMLElement>>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// ============================================
|
|
31
|
+
// STYLES
|
|
32
|
+
// ============================================
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* CSS styles that visually hide an element while keeping it accessible.
|
|
36
|
+
* These styles ensure the element is read by screen readers but not visible on screen.
|
|
37
|
+
*/
|
|
38
|
+
export const visuallyHiddenStyles: JSX.CSSProperties = {
|
|
39
|
+
border: '0',
|
|
40
|
+
clip: 'rect(0 0 0 0)',
|
|
41
|
+
'clip-path': 'inset(50%)',
|
|
42
|
+
height: '1px',
|
|
43
|
+
margin: '-1px',
|
|
44
|
+
overflow: 'hidden',
|
|
45
|
+
padding: '0',
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
width: '1px',
|
|
48
|
+
'white-space': 'nowrap',
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// ============================================
|
|
52
|
+
// HOOK
|
|
53
|
+
// ============================================
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Provides props for an element that hides its children visually
|
|
57
|
+
* but keeps content visible to assistive technology.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* function SkipLink() {
|
|
62
|
+
* let ref: HTMLAnchorElement | undefined;
|
|
63
|
+
* const { visuallyHiddenProps } = createVisuallyHidden({ isFocusable: true });
|
|
64
|
+
*
|
|
65
|
+
* return (
|
|
66
|
+
* <a
|
|
67
|
+
* ref={ref}
|
|
68
|
+
* href="#main-content"
|
|
69
|
+
* {...visuallyHiddenProps()}
|
|
70
|
+
* >
|
|
71
|
+
* Skip to main content
|
|
72
|
+
* </a>
|
|
73
|
+
* );
|
|
74
|
+
* }
|
|
75
|
+
*
|
|
76
|
+
* // For content that should always be hidden
|
|
77
|
+
* function ScreenReaderOnly(props: ParentProps) {
|
|
78
|
+
* const { visuallyHiddenProps } = createVisuallyHidden();
|
|
79
|
+
*
|
|
80
|
+
* return (
|
|
81
|
+
* <span {...visuallyHiddenProps()}>
|
|
82
|
+
* {props.children}
|
|
83
|
+
* </span>
|
|
84
|
+
* );
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export function createVisuallyHidden(
|
|
89
|
+
props: MaybeAccessor<AriaVisuallyHiddenProps> = {}
|
|
90
|
+
): VisuallyHiddenAria {
|
|
91
|
+
const [isFocused, setIsFocused] = createSignal(false);
|
|
92
|
+
|
|
93
|
+
const isFocusable = () => access(props).isFocusable ?? false;
|
|
94
|
+
const style = () => access(props).style;
|
|
95
|
+
|
|
96
|
+
// Track focus within for focusable visually hidden elements
|
|
97
|
+
const { focusWithinProps } = createFocusWithin({
|
|
98
|
+
get isDisabled() {
|
|
99
|
+
return !isFocusable();
|
|
100
|
+
},
|
|
101
|
+
onFocusWithinChange: (val: boolean) => setIsFocused(val),
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// Compute combined styles
|
|
105
|
+
const combinedStyles = createMemo<JSX.CSSProperties>(() => {
|
|
106
|
+
if (isFocused()) {
|
|
107
|
+
// If focused, show the element (for skip links, etc.)
|
|
108
|
+
return style() ?? {};
|
|
109
|
+
} else if (style()) {
|
|
110
|
+
return { ...visuallyHiddenStyles, ...style() };
|
|
111
|
+
} else {
|
|
112
|
+
return visuallyHiddenStyles;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
const visuallyHiddenProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
|
|
117
|
+
...focusWithinProps,
|
|
118
|
+
style: combinedStyles(),
|
|
119
|
+
}));
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
visuallyHiddenProps,
|
|
123
|
+
};
|
|
124
|
+
}
|