@salt-ds/lab 1.0.0-alpha.49 → 1.0.0-alpha.50
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 +53 -1
- package/dist-cjs/app-header/AppHeader.js +2 -2
- package/dist-cjs/breadcrumbs/Breadcrumb.js +3 -3
- package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumbs.js +6 -10
- package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +7 -7
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js +3 -3
- package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js +4 -4
- package/dist-cjs/button-bar/ButtonBar.js +4 -4
- package/dist-cjs/button-bar/OrderedButton.js +3 -3
- package/dist-cjs/button-bar/internal/DescendantContext.js +4 -4
- package/dist-cjs/button-bar/internal/useDescendant.js +3 -3
- package/dist-cjs/button-bar/internal/useDescendants.js +2 -2
- package/dist-cjs/calendar/Calendar.js +4 -4
- package/dist-cjs/calendar/internal/CalendarCarousel.js +6 -6
- package/dist-cjs/calendar/internal/CalendarContext.js +3 -3
- package/dist-cjs/calendar/internal/CalendarDay.js +3 -3
- package/dist-cjs/calendar/internal/CalendarMonth.js +2 -2
- package/dist-cjs/calendar/internal/CalendarNavigation.js +2 -2
- package/dist-cjs/calendar/internal/CalendarWeekHeader.js +2 -2
- package/dist-cjs/calendar/useCalendar.js +9 -9
- package/dist-cjs/calendar/useCalendarDay.js +2 -2
- package/dist-cjs/carousel/Carousel.js +5 -5
- package/dist-cjs/carousel/CarouselSlide.js +3 -3
- package/dist-cjs/cascading-menu/CascadingMenu.js +18 -18
- package/dist-cjs/cascading-menu/CascadingMenuItem.js +5 -5
- package/dist-cjs/cascading-menu/CascadingMenuList.js +9 -9
- package/dist-cjs/cascading-menu/internal/useClickAway.js +2 -2
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +3 -3
- package/dist-cjs/cascading-menu/internal/useMountedRef.js +3 -3
- package/dist-cjs/cascading-menu/internal/useMouseHandlers.js +7 -7
- package/dist-cjs/cascading-menu/internal/useRefsManager.js +7 -7
- package/dist-cjs/cascading-menu/internal/useStateReducer.js +2 -2
- package/dist-cjs/color-chooser/AlphaInputField.js +3 -3
- package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js +3 -3
- package/dist-cjs/color-chooser/HexInput.js +3 -3
- package/dist-cjs/color-chooser/HexInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInputField.js +3 -3
- package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Swatches.js.map +1 -1
- package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-cjs/combo-box/ComboBox.js +3 -3
- package/dist-cjs/combo-box/useCombobox.js +25 -25
- package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +11 -11
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js +2 -2
- package/dist-cjs/common-hooks/collectionProvider.js +4 -4
- package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
- package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
- package/dist-cjs/common-hooks/useAutoSizer.js +3 -3
- package/dist-cjs/common-hooks/useCollapsibleGroups.js +3 -3
- package/dist-cjs/common-hooks/useCollectionItems.js +24 -24
- package/dist-cjs/common-hooks/useImperativeScrollingAPI.js +3 -3
- package/dist-cjs/common-hooks/useKeyboardNavigation.js +13 -13
- package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js +10 -10
- package/dist-cjs/common-hooks/useSelection.js +13 -13
- package/dist-cjs/common-hooks/useTypeahead.js +6 -6
- package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
- package/dist-cjs/common-hooks/useViewportTracking.js +9 -9
- package/dist-cjs/common-hooks/utils/collection-item-utils.js +5 -5
- package/dist-cjs/contact-details/ContactAction.js +2 -2
- package/dist-cjs/contact-details/ContactActions.js +2 -2
- package/dist-cjs/contact-details/ContactAvatar.js +3 -3
- package/dist-cjs/contact-details/ContactDetails.js +9 -9
- package/dist-cjs/contact-details/ContactFavoriteToggle.js +2 -2
- package/dist-cjs/contact-details/ContactMetadata.js +3 -3
- package/dist-cjs/contact-details/ContactMetadataItem.js +2 -2
- package/dist-cjs/contact-details/ContactPrimaryInfo.js +3 -3
- package/dist-cjs/contact-details/ContactSecondaryInfo.js +3 -3
- package/dist-cjs/contact-details/ContactTertiaryInfo.js +3 -3
- package/dist-cjs/contact-details/internal/ContactDetailsContext.js +3 -3
- package/dist-cjs/contact-details/internal/FavoriteToggle.js +5 -5
- package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js +2 -2
- package/dist-cjs/contact-details/internal/StarIcon.js +2 -2
- package/dist-cjs/contact-details/internal/StarIconContainer.js +2 -2
- package/dist-cjs/contact-details/internal/useComponentSize.js +4 -4
- package/dist-cjs/content-status/ContentStatus.js +3 -3
- package/dist-cjs/date-input/DateInput.js +7 -7
- package/dist-cjs/date-picker/DatePicker.js +11 -11
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerContext.js +2 -2
- package/dist-cjs/date-picker/DatePickerPanel.js +4 -4
- package/dist-cjs/deck-item/DeckItem.js +4 -4
- package/dist-cjs/deck-layout/DeckLayout.js +5 -5
- package/dist-cjs/dropdown/Dropdown.js +5 -5
- package/dist-cjs/dropdown/DropdownBase.js +11 -11
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/DropdownButton.js +2 -2
- package/dist-cjs/dropdown/useClickAway.js +2 -2
- package/dist-cjs/dropdown/useDropdown.js +5 -5
- package/dist-cjs/dropdown/useDropdownBase.js +11 -11
- package/dist-cjs/editable-label/EditableLabel.js +5 -5
- package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js +2 -2
- package/dist-cjs/form-field-legacy/FormFieldLegacy.js +5 -5
- package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-cjs/form-group/FormGroup.js +2 -2
- package/dist-cjs/formatted-input/FormattedInput.js +2 -2
- package/dist-cjs/formatted-input/internal/InputWithMask.js +2 -2
- package/dist-cjs/index.js +6 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/input-legacy/InputLegacy.js +4 -4
- package/dist-cjs/input-legacy/StaticInputAdornment.js +2 -2
- package/dist-cjs/input-legacy/useCursorOnFocus.js +9 -9
- package/dist-cjs/layer-layout/LayerLayout.js +5 -5
- package/dist-cjs/list/List.js +8 -8
- package/dist-cjs/list/ListItem.js +3 -3
- package/dist-cjs/list/VirtualizedList.js +4 -4
- package/dist-cjs/list/useList.js +9 -9
- package/dist-cjs/list/useListHeight.js +4 -4
- package/dist-cjs/list/useVirtualization.js +6 -6
- package/dist-cjs/list-deprecated/List.js +5 -5
- package/dist-cjs/list-deprecated/ListBase.js +13 -13
- package/dist-cjs/list-deprecated/ListItem.js +2 -2
- package/dist-cjs/list-deprecated/ListItemBase.js +4 -4
- package/dist-cjs/list-deprecated/ListItemContext.js +3 -3
- package/dist-cjs/list-deprecated/ListStateContext.js +3 -3
- package/dist-cjs/list-deprecated/internal/DescendantContext.js +6 -6
- package/dist-cjs/list-deprecated/internal/useListAutoSizer.js +4 -4
- package/dist-cjs/list-deprecated/internal/useWidth.js +4 -4
- package/dist-cjs/list-deprecated/useList.js +17 -17
- package/dist-cjs/list-deprecated/useListItem.js +5 -5
- package/dist-cjs/list-deprecated/useTypeSelect.js +3 -3
- package/dist-cjs/list-next/ListItemNext.js +2 -2
- package/dist-cjs/list-next/ListNext.js +3 -3
- package/dist-cjs/list-next/ListNextContext.js +2 -2
- package/dist-cjs/list-next/useList.js +14 -14
- package/dist-cjs/logo/Logo.js +2 -2
- package/dist-cjs/logo/LogoImage.js +2 -2
- package/dist-cjs/logo/LogoSeparator.js +2 -2
- package/dist-cjs/menu-button/MenuButton.js +5 -5
- package/dist-cjs/menu-button/MenuButtonTrigger.js +2 -2
- package/dist-cjs/metric/Metric.js +3 -3
- package/dist-cjs/metric/MetricContent.js +2 -2
- package/dist-cjs/metric/MetricHeader.js +3 -3
- package/dist-cjs/metric/internal/MetricContext.js +3 -3
- package/dist-cjs/portal/Portal.js +6 -6
- package/dist-cjs/query-input/QueryInput.js +2 -2
- package/dist-cjs/query-input/internal/CategoryList.js +5 -5
- package/dist-cjs/query-input/internal/CategoryListContext.js +3 -3
- package/dist-cjs/query-input/internal/CategoryListItem.js +3 -3
- package/dist-cjs/query-input/internal/QueryInputBody.js +3 -3
- package/dist-cjs/query-input/internal/SearchList.js +2 -2
- package/dist-cjs/query-input/internal/ValueSelector.js +2 -2
- package/dist-cjs/query-input/internal/usePopperStatus.js +2 -2
- package/dist-cjs/query-input/useQueryInput.js +13 -13
- package/dist-cjs/responsive/OverflowReducer.js +3 -7
- package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
- package/dist-cjs/responsive/useDynamicCollapse.js +7 -7
- package/dist-cjs/responsive/useInstantCollapse.js +7 -7
- package/dist-cjs/responsive/useOverflow.js +11 -11
- package/dist-cjs/responsive/useOverflowCollectionItems.js +12 -12
- package/dist-cjs/responsive/useOverflowLayout.js +8 -8
- package/dist-cjs/responsive/useReclaimSpace.js +3 -3
- package/dist-cjs/responsive/useResizeObserver.js +3 -3
- package/dist-cjs/responsive/useWidth.js +4 -4
- package/dist-cjs/search-input/SearchInput.js +3 -3
- package/dist-cjs/skip-link/SkipLink.js +2 -2
- package/dist-cjs/skip-link/SkipLinks.js +2 -2
- package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +6 -6
- package/dist-cjs/slider/Slider.js +5 -5
- package/dist-cjs/slider/internal/SliderMarkLabels.js +3 -3
- package/dist-cjs/slider/internal/SliderRailMarks.js +3 -3
- package/dist-cjs/slider/internal/useSliderKeyDown.js.map +1 -1
- package/dist-cjs/slider/internal/useSliderMouseDown.js +6 -6
- package/dist-cjs/slider/internal/utils.js +2 -2
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +2 -2
- package/dist-cjs/stepped-tracker/SteppedTracker.js +7 -7
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +6 -6
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +3 -3
- package/dist-cjs/stepper-input/StepperInput.js +3 -3
- package/dist-cjs/stepper-input/internal/useInterval.js +4 -4
- package/dist-cjs/stepper-input/internal/useSpinner.js +4 -4
- package/dist-cjs/system-status/SystemStatus.css.js +6 -0
- package/dist-cjs/system-status/SystemStatus.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatus.js +39 -0
- package/dist-cjs/system-status/SystemStatus.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusActions.css.js +6 -0
- package/dist-cjs/system-status/SystemStatusActions.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusActions.js +30 -0
- package/dist-cjs/system-status/SystemStatusActions.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusContent.css.js +6 -0
- package/dist-cjs/system-status/SystemStatusContent.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusContent.js +30 -0
- package/dist-cjs/system-status/SystemStatusContent.js.map +1 -0
- package/dist-cjs/tabs/Tab.js +6 -6
- package/dist-cjs/tabs/TabActivationIndicator.js +2 -2
- package/dist-cjs/tabs/TabPanel.js +2 -2
- package/dist-cjs/tabs/Tabs.js +5 -5
- package/dist-cjs/tabs/Tabstrip.js +26 -30
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/Draggable.js +3 -3
- package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js +20 -20
- package/dist-cjs/tabs/drag-drop/useDragSpacers.js +9 -9
- package/dist-cjs/tabs/useActivationIndicator.js +7 -7
- package/dist-cjs/tabs/useEditableItem.js +3 -3
- package/dist-cjs/tabs/useItemsWithIds.js +6 -6
- package/dist-cjs/tabs/useKeyboardNavigation.js +12 -12
- package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/tabs/useSelection.js +5 -5
- package/dist-cjs/tabs/useTabs.js +2 -2
- package/dist-cjs/tabs/useTabstrip.js +12 -12
- package/dist-cjs/tabs-next/OverflowMenu.js +2 -2
- package/dist-cjs/tabs-next/TabNext.js +3 -3
- package/dist-cjs/tabs-next/TabNextContext.js +2 -2
- package/dist-cjs/tabs-next/TabstripNext.js +13 -13
- package/dist-cjs/toast-group/ToastGroup.js +2 -2
- package/dist-cjs/tokenized-input/TokenizedInput.js +2 -2
- package/dist-cjs/tokenized-input/TokenizedInputBase.js +9 -9
- package/dist-cjs/tokenized-input/internal/InputPill.js +3 -3
- package/dist-cjs/tokenized-input/internal/InputRuler.js +2 -2
- package/dist-cjs/tokenized-input/internal/useResizeObserver.js +3 -3
- package/dist-cjs/tokenized-input/internal/useWidth.js +3 -3
- package/dist-cjs/tokenized-input/useTokenizedInput.js +16 -16
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +3 -3
- package/dist-cjs/tokenized-input-next/internal/InputPill.js +4 -4
- package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js +3 -3
- package/dist-cjs/tokenized-input-next/internal/useWidth.js +3 -3
- package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js +15 -15
- package/dist-cjs/toolbar/Toolbar.js +6 -6
- package/dist-cjs/toolbar/ToolbarButton.js +2 -2
- package/dist-cjs/toolbar/Tooltray.js +2 -2
- package/dist-cjs/toolbar/internal/renderToolbarItems.js +5 -9
- package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderTrayTools.js +6 -10
- package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +7 -14
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/ToolbarField.js +2 -2
- package/dist-cjs/toolbar/toolbar-field/useToolbarField.js +5 -5
- package/dist-cjs/tree/Tree.js +8 -8
- package/dist-cjs/tree/use-tree-keyboard-navigation.js +2 -2
- package/dist-cjs/tree/useTree.js +5 -5
- package/dist-cjs/utils/useClickOutside.js +3 -3
- package/dist-cjs/utils/useEventCallback.js +3 -3
- package/dist-cjs/utils/useLayoutEffectOnce.js +2 -2
- package/dist-cjs/utils/useLayoutEffectSkipFirst.js +2 -2
- package/dist-cjs/utils/useOverflowDetection.js +4 -4
- package/dist-cjs/utils/useSlideSelection.js +3 -3
- package/dist-cjs/window/ElectronWindow.js +7 -7
- package/dist-cjs/window/WindowContext.js +4 -4
- package/dist-cjs/window/desktop-utils.js +3 -3
- package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumbs.js +4 -4
- package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-es/color-chooser/HexInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-es/color-chooser/Swatches.js.map +1 -1
- package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-es/common-hooks/keyUtils.js.map +1 -1
- package/dist-es/common-hooks/selectionTypes.js.map +1 -1
- package/dist-es/common-hooks/useTypeahead.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-es/index.js +3 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/responsive/OverflowReducer.js +2 -2
- package/dist-es/responsive/OverflowReducer.js.map +1 -1
- package/dist-es/slider/internal/useSliderKeyDown.js.map +1 -1
- package/dist-es/system-status/SystemStatus.css.js +4 -0
- package/dist-es/system-status/SystemStatus.css.js.map +1 -0
- package/dist-es/system-status/SystemStatus.js +35 -0
- package/dist-es/system-status/SystemStatus.js.map +1 -0
- package/dist-es/system-status/SystemStatusActions.css.js +4 -0
- package/dist-es/system-status/SystemStatusActions.css.js.map +1 -0
- package/dist-es/system-status/SystemStatusActions.js +26 -0
- package/dist-es/system-status/SystemStatusActions.js.map +1 -0
- package/dist-es/system-status/SystemStatusContent.css.js +4 -0
- package/dist-es/system-status/SystemStatusContent.css.js.map +1 -0
- package/dist-es/system-status/SystemStatusContent.js +26 -0
- package/dist-es/system-status/SystemStatusContent.js.map +1 -0
- package/dist-es/tabs/Tabstrip.js +10 -10
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js +5 -5
- package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/toolbar/internal/renderTrayTools.js +4 -4
- package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js +2 -5
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-types/breadcrumbs/Breadcrumb.d.ts +2 -2
- package/dist-types/breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist-types/color-chooser/HexInput.d.ts +2 -1
- package/dist-types/color-chooser/HexInputField.d.ts +2 -1
- package/dist-types/color-chooser/RGBAInputField.d.ts +2 -1
- package/dist-types/color-chooser/Swatches.d.ts +2 -1
- package/dist-types/color-chooser/SwatchesPicker.d.ts +2 -1
- package/dist-types/common-hooks/keyUtils.d.ts +3 -3
- package/dist-types/common-hooks/selectionTypes.d.ts +5 -5
- package/dist-types/common-hooks/useTypeahead.d.ts +2 -1
- package/dist-types/contact-details/internal/FavoriteToggle.d.ts +3 -4
- package/dist-types/form-field-legacy/FormHelperText.d.ts +3 -3
- package/dist-types/index.d.ts +1 -0
- package/dist-types/list/listTypes.d.ts +3 -4
- package/dist-types/slider/internal/useSliderKeyDown.d.ts +2 -1
- package/dist-types/system-status/SystemStatus.d.ts +9 -0
- package/dist-types/system-status/SystemStatusActions.d.ts +9 -0
- package/dist-types/system-status/SystemStatusContent.d.ts +9 -0
- package/dist-types/system-status/index.d.ts +3 -0
- package/dist-types/tabs/Tabstrip.d.ts +1 -2
- package/dist-types/toolbar/overflow-panel/OverflowPanel.d.ts +1 -2
- package/package.json +2 -2
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
|
|
8
8
|
const useLayoutEffectOnce = (condition, callback, dependencies) => {
|
|
9
|
-
const hasRun =
|
|
9
|
+
const hasRun = react.useRef(false);
|
|
10
10
|
core.useIsomorphicLayoutEffect(() => {
|
|
11
11
|
if (condition && !hasRun.current) {
|
|
12
12
|
hasRun.current = true;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
|
|
8
8
|
const useLayoutEffectSkipFirst = (callback, dependencies) => {
|
|
9
|
-
const goodToGo =
|
|
9
|
+
const goodToGo = react.useRef(false);
|
|
10
10
|
core.useIsomorphicLayoutEffect(() => {
|
|
11
11
|
if (goodToGo.current) {
|
|
12
12
|
callback();
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
|
|
8
8
|
function useOverflowDetection(dependencies = []) {
|
|
9
|
-
const targetRef =
|
|
10
|
-
const [isOverflowed, setOverflowed] =
|
|
11
|
-
const handleResize =
|
|
9
|
+
const targetRef = react.useRef(null);
|
|
10
|
+
const [isOverflowed, setOverflowed] = react.useState(false);
|
|
11
|
+
const handleResize = react.useCallback(
|
|
12
12
|
core.debounce(() => {
|
|
13
13
|
const { current } = targetRef;
|
|
14
14
|
if (!current) {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
7
|
const useSlideSelection = (initialValue) => {
|
|
8
|
-
const [selectedSlide, setSelectedSlide] =
|
|
9
|
-
const [selectedTransition, setSelectedTransition] =
|
|
8
|
+
const [selectedSlide, setSelectedSlide] = react.useState(initialValue || 0);
|
|
9
|
+
const [selectedTransition, setSelectedTransition] = react.useState(void 0);
|
|
10
10
|
const handleSlideSelection = (sliderIndex, transition) => {
|
|
11
11
|
const newTransition = transition ? transition : selectedSlide < sliderIndex ? "increase" : "decrease";
|
|
12
12
|
setSelectedSlide(sliderIndex);
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
|
-
var
|
|
7
|
+
var react = require('react');
|
|
8
8
|
var ReactDOM = require('react-dom');
|
|
9
9
|
var WindowContext = require('./WindowContext.js');
|
|
10
10
|
var styles = require('@salt-ds/styles');
|
|
@@ -16,7 +16,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
16
|
|
|
17
17
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
18
18
|
|
|
19
|
-
const Window =
|
|
19
|
+
const Window = react.forwardRef(function ElectronWindow2({ className, children, id = "dialog", open = true, style = {}, ...rest }, forwardedRef) {
|
|
20
20
|
const { top, left, position, ...styleRest } = style;
|
|
21
21
|
const targetWindow = window$1.useWindow();
|
|
22
22
|
styles.useComponentCssInjection({
|
|
@@ -24,8 +24,8 @@ const Window = React.forwardRef(function ElectronWindow2({ className, children,
|
|
|
24
24
|
css: ElectronWindow$1,
|
|
25
25
|
window: targetWindow
|
|
26
26
|
});
|
|
27
|
-
const [mountNode, setMountNode] =
|
|
28
|
-
const windowRoot =
|
|
27
|
+
const [mountNode, setMountNode] = react.useState(null);
|
|
28
|
+
const windowRoot = react.useRef(null);
|
|
29
29
|
const forkedRef = core.useForkRef(forwardedRef, windowRoot);
|
|
30
30
|
if (!mountNode) {
|
|
31
31
|
const win = window.open("", id);
|
|
@@ -39,13 +39,13 @@ const Window = React.forwardRef(function ElectronWindow2({ className, children,
|
|
|
39
39
|
setMountNode(bodyElement);
|
|
40
40
|
}
|
|
41
41
|
const parentWindow = desktopUtils.useWindowParentContext();
|
|
42
|
-
const closeWindow =
|
|
42
|
+
const closeWindow = react.useCallback(() => {
|
|
43
43
|
const { ipcRenderer } = global;
|
|
44
44
|
if (ipcRenderer) {
|
|
45
45
|
ipcRenderer.send("window-close", { id });
|
|
46
46
|
}
|
|
47
47
|
}, [id]);
|
|
48
|
-
|
|
48
|
+
react.useEffect(() => {
|
|
49
49
|
setTimeout(() => {
|
|
50
50
|
if (windowRoot.current) {
|
|
51
51
|
const { scrollHeight: height, scrollWidth: width } = windowRoot.current;
|
|
@@ -60,7 +60,7 @@ const Window = React.forwardRef(function ElectronWindow2({ className, children,
|
|
|
60
60
|
}
|
|
61
61
|
}, 80);
|
|
62
62
|
});
|
|
63
|
-
|
|
63
|
+
react.useEffect(() => {
|
|
64
64
|
const { ipcRenderer } = global;
|
|
65
65
|
if (ipcRenderer) {
|
|
66
66
|
setTimeout(() => {
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
|
|
8
|
-
const Window =
|
|
8
|
+
const Window = react.forwardRef(function Window2({ children, open, ...props }, ref) {
|
|
9
9
|
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
10
10
|
...props,
|
|
11
11
|
ref,
|
|
12
12
|
children
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
|
-
const WindowContext =
|
|
16
|
-
const useWindow = () =>
|
|
15
|
+
const WindowContext = react.createContext(Window);
|
|
16
|
+
const useWindow = () => react.useContext(WindowContext);
|
|
17
17
|
const globalObject = typeof global === "undefined" ? window : global;
|
|
18
18
|
const isDesktop = globalObject.isDesktop;
|
|
19
19
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
|
-
const WindowParentContext =
|
|
8
|
-
const useWindowParentContext = () =>
|
|
7
|
+
const WindowParentContext = react.createContext({ top: 0, left: 0, id: "" });
|
|
8
|
+
const useWindowParentContext = () => react.useContext(WindowParentContext);
|
|
9
9
|
|
|
10
10
|
exports.WindowParentContext = WindowParentContext;
|
|
11
11
|
exports.useWindowParentContext = useWindowParentContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, Text, type TooltipProps, makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type HTMLAttributes,\n type ReactNode,\n forwardRef,\n} from \"react\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport breadcrumbCss from \"./Breadcrumb.css\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n onItemClick?: (item: any, event: any) => void; // TODO\n overflowLabel?: string;\n Icon?:
|
|
1
|
+
{"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, Text, type TooltipProps, makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n type HTMLAttributes,\n type ReactNode,\n forwardRef,\n} from \"react\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport breadcrumbCss from \"./Breadcrumb.css\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n onItemClick?: (item: any, event: any) => void; // TODO\n overflowLabel?: string;\n Icon?: ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb\",\n css: breadcrumbCss,\n window: targetWindow,\n });\n\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\"),\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\"),\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n },\n);\n"],"names":["Breadcrumb","breadcrumbCss"],"mappings":";;;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,gBAAgB,CAAA,CAAA;AAiB3C,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,SAASA,WACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACG,GAAA,KAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,aAAA,EAAe,aAAe,EAAA,OAAA,KAAY,qBAAsB,EAAA,CAAA;AAExE,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,CAAM,KAAA,CAAA,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,QAAQ,CAAC,WAAA,CAAA;AAE7B,IAAM,MAAA,oBAAA,GAAuB,MAC3B,cAAA,mBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MACC,OAAS,EAAA,CAAA;AAAA,MACT,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA,aAAa,cAAc,CAAA;AAAA,OAC7B;AAAA,MACA,OAAQ,EAAA,OAAA;AAAA,MAEP,QAAA;AAAA,KACH,oBAEC,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA;AAAA,UACE,CAAC,YAAa,CAAA,sBAAsB,CAAI,GAAA,WAAA;AAAA,SAC1C;AAAA,QACA,aAAa,SAAS,CAAA;AAAA,OACxB;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,oBAAS,GAAA,CAAA,IAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,SAAG,CAAA;AAAA,QAC/C,+BACE,GAAA,CAAA,IAAA,EAAA;AAAA,UAAK,OAAS,EAAA,CAAA;AAAA,UAAG,OAAQ,EAAA,OAAA;AAAA,UAAS,GAAG,KAAA;AAAA,UACnC,QAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAGJ,IAAA,MAAM,UAAU,oBAAqB,EAAA,CAAA;AAErC,IAAM,MAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,SAAW,EAAA,kBAAA;AAAA,MACR,GAAA,kBAAA;AAAA,KACD,GAAA,cAAA,CAAA;AAEJ,IAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,GAAG,cAAA;AAAA,QACH,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,QACtB,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,OACxB;AAAA,MACA,SAAA,EAAW,IAAK,CAAA,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC1C,GAAG,kBAAA;AAAA,MAEH,QAAA,EAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { makePrefixer } from '@salt-ds/core';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
|
-
import
|
|
4
|
+
import { forwardRef, useMemo, Children, isValidElement, cloneElement } from 'react';
|
|
5
5
|
import { BreadcrumbsCollapsed } from './internal/BreadcrumbsCollapsed.js';
|
|
6
6
|
import { BreadcrumbsContext } from './internal/BreadcrumbsContext.js';
|
|
7
7
|
import { BreadcrumbsSeparator } from './internal/BreadcrumbsSeparator.js';
|
|
@@ -27,7 +27,7 @@ function insertSeparators(items, className, separator, hideCurrentLevel, shouldR
|
|
|
27
27
|
return skipLastElement ? acc : acc.concat(current);
|
|
28
28
|
}, []);
|
|
29
29
|
}
|
|
30
|
-
const Breadcrumbs =
|
|
30
|
+
const Breadcrumbs = forwardRef(
|
|
31
31
|
function Breadcrumbs2(props, ref) {
|
|
32
32
|
const {
|
|
33
33
|
children,
|
|
@@ -63,11 +63,11 @@ const Breadcrumbs = React.forwardRef(
|
|
|
63
63
|
const separator = separatorProp || /* @__PURE__ */ jsx(BreadcrumbsSeparator, {
|
|
64
64
|
...SeparatorProps
|
|
65
65
|
});
|
|
66
|
-
const childrenArray =
|
|
66
|
+
const childrenArray = Children.toArray(children);
|
|
67
67
|
const shouldRenderAllItems = wrap || maxItems == null || childrenArray.length <= maxItems;
|
|
68
68
|
const allItems = childrenArray.filter(isValidElement).map((child, index) => {
|
|
69
69
|
const isLastChild = index === childrenArray.length - 1;
|
|
70
|
-
return
|
|
70
|
+
return cloneElement(child, {
|
|
71
71
|
isCurrentLevel: isLastChild
|
|
72
72
|
});
|
|
73
73
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","sources":["../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","sources":["../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type HTMLAttributes,\n type ReactNode,\n cloneElement,\n forwardRef,\n isValidElement,\n useMemo,\n} from \"react\";\nimport type { BreadcrumbProps } from \"./Breadcrumb\";\nimport { BreadcrumbsCollapsed } from \"./internal/BreadcrumbsCollapsed\";\nimport { BreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\nimport { BreadcrumbsSeparator } from \"./internal/BreadcrumbsSeparator\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport breadcrumbsCss from \"./Breadcrumbs.css\";\n\nconst iconWidth = 12;\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbs\");\n\nfunction insertSeparators(\n items: ReactNode[],\n className?: string,\n separator?: ReactNode,\n hideCurrentLevel?: boolean,\n shouldRenderAllItems?: boolean,\n itemsAfterCollapse?: number,\n) {\n return items.reduce((acc: ReactNode[], current: ReactNode, index: number) => {\n if (index < items.length - 1) {\n return acc.concat(\n current,\n <li aria-hidden className={className} key={`separator-${index}`}>\n {separator}\n </li>,\n );\n }\n const skipLastElement =\n (hideCurrentLevel && shouldRenderAllItems) ||\n (hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0);\n return skipLastElement ? acc : acc.concat(current);\n }, []);\n}\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n Menu?: any;\n SeparatorProps?: IconProps;\n hideCurrentLevel?: boolean;\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n itemsMaxWidth?: number | string;\n itemsMinWidth?: number | string;\n maxItems?: number;\n separator?: ReactNode;\n wrap?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n function Breadcrumbs(props, ref) {\n const {\n children,\n className,\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 3,\n separator: separatorProp,\n hideCurrentLevel,\n itemsMinWidth: itemsMinWidthProp,\n itemsMaxWidth,\n wrap,\n Menu,\n SeparatorProps = {},\n ...other\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumbs\",\n css: breadcrumbsCss,\n window: targetWindow,\n });\n\n const itemsMinWidth =\n itemsMinWidthProp != null ? itemsMinWidthProp : iconWidth;\n\n const breadcrumbsContext = useMemo(\n () => ({\n wrap,\n itemsMinWidth,\n itemsMaxWidth,\n liClass: withBaseName(\"li\"),\n }),\n [wrap, itemsMaxWidth, itemsMinWidth],\n );\n\n const separator = separatorProp || (\n <BreadcrumbsSeparator {...SeparatorProps} />\n );\n\n const childrenArray = Children.toArray(children);\n const shouldRenderAllItems =\n wrap || maxItems == null || childrenArray.length <= maxItems;\n\n const allItems = childrenArray\n .filter(isValidElement)\n .map((child, index) => {\n const isLastChild = index === childrenArray.length - 1;\n\n return cloneElement(child, {\n isCurrentLevel: isLastChild,\n } as BreadcrumbProps);\n });\n\n const renderItemsBeforeAndAfter = () => {\n // This defends against someone passing weird input, to ensure that if all\n // items would be shown anyway, we just show all items without the EllipsisItem\n if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n console.warn(\n [\n \"You have provided an invalid combination of properties to the Breadcrumbs.\",\n `itemsAfterCollapse={${itemsAfterCollapse}} +itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`,\n ].join(\"\\n\"),\n );\n return allItems;\n }\n\n const hiddenItems = allItems.slice(\n itemsBeforeCollapse,\n allItems.length - itemsAfterCollapse,\n );\n return [\n ...allItems.slice(0, itemsBeforeCollapse),\n <li className={withBaseName(\"li\")} key=\"breadcrumbs-collapsed\">\n <BreadcrumbsCollapsed\n accessibleText={`Breadcrumb levels ${itemsBeforeCollapse + 1} to ${\n allItems.length - itemsAfterCollapse\n }`}\n className={withBaseName(\"overflowButton\")}\n >\n {hiddenItems}\n </BreadcrumbsCollapsed>\n </li>,\n ...allItems.slice(\n allItems.length - itemsAfterCollapse,\n allItems.length,\n ),\n ];\n };\n\n const itemsToRender = shouldRenderAllItems\n ? allItems\n : renderItemsBeforeAndAfter();\n return (\n <BreadcrumbsContext.Provider value={breadcrumbsContext}>\n <nav\n aria-label=\"Breadcrumb\"\n className={clsx(withBaseName(), className)}\n data-testid=\"breadcrumbs\"\n ref={ref}\n {...other}\n >\n <ol\n className={clsx(withBaseName(\"ol\"), {\n [withBaseName(\"ol-wrap\")]: wrap,\n })}\n >\n {insertSeparators(\n itemsToRender,\n withBaseName(\"separator\"),\n separator,\n hideCurrentLevel,\n shouldRenderAllItems,\n itemsAfterCollapse,\n )}\n </ol>\n </nav>\n </BreadcrumbsContext.Provider>\n );\n },\n);\n"],"names":["Breadcrumbs","breadcrumbsCss"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlphaInputField.js","sources":["../src/color-chooser/AlphaInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {
|
|
1
|
+
{"version":3,"file":"AlphaInputField.js","sources":["../src/color-chooser/AlphaInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { InputLegacy as Input } from \"../input-legacy\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport rgbaInputCss from \"./RGBAInput.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\ninterface AlphaInputProps {\n alphaValue: number;\n showAsOpacity?: boolean;\n onSubmit: (alpha: number, e?: ChangeEvent) => void;\n}\n\nexport const AlphaInput = ({\n alphaValue,\n onSubmit,\n showAsOpacity = false,\n}: AlphaInputProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-rgba-input\",\n css: rgbaInputCss,\n window: targetWindow,\n });\n\n const [alphaInputValue, setAlphaInputValue] = useState<string>(\n !Number.isNaN(alphaValue) ? alphaValue.toString() : \"\",\n );\n\n useEffect(() => {\n setAlphaInputValue(!Number.isNaN(alphaValue) ? alphaValue.toString() : \"\");\n }, [alphaValue]);\n\n const handleAlphaInputChange = (\n event: ChangeEvent<HTMLInputElement>,\n newValue: string,\n ): void => {\n const value = newValue.replace(\"%\", \"\");\n let alpha: string = value;\n\n if (value.trim() === \"\" || Number.isNaN(value)) {\n alpha = \"\";\n }\n\n if (showAsOpacity && Number.parseFloat(value)) {\n alpha = (Number.parseFloat(value) / 100).toString();\n }\n\n if (value.charAt(1) === \".\" || value.charAt(0) === \".\") {\n alpha = value;\n }\n\n setAlphaInputValue(alpha);\n };\n\n const handleKeyDownAlpha = (e: KeyboardEvent<HTMLInputElement>): void => {\n if (e.key === \"Enter\") {\n const alpha =\n alphaInputValue.trim().replace(\"%\", \"\") !== \"\"\n ? Number.parseFloat(alphaInputValue)\n : 0;\n const validatedAlpha = Math.max(0, Math.min(alpha, 1));\n setAlphaInputValue(validatedAlpha.toString());\n onSubmit(validatedAlpha);\n }\n };\n\n const handleOnBlurAlpha = (e: FocusEvent<HTMLInputElement>): void => {\n // Guard against parseFloat('') becoming NaN\n const alpha =\n alphaInputValue.trim() !== \"\" ? Number.parseFloat(alphaInputValue) : 0;\n\n const validatedAlpha = Math.max(0, Math.min(alpha, 1));\n setAlphaInputValue(validatedAlpha.toString());\n onSubmit(validatedAlpha, e);\n };\n\n return (\n <Input\n inputProps={{\n // @ts-ignore\n \"data-testid\": \"a-input\",\n }}\n className={clsx({\n [withBaseName(\"rgbaInput\")]: !showAsOpacity,\n [withBaseName(\"opacityInput\")]: showAsOpacity,\n })}\n value={\n showAsOpacity\n ? alphaInputValue\n ? `${(Number.parseFloat(alphaInputValue) * 100).toString()}%`\n : \"%\"\n : alphaInputValue\n }\n onChange={handleAlphaInputChange}\n onBlur={handleOnBlurAlpha}\n onKeyDown={handleKeyDownAlpha}\n />\n );\n};\n"],"names":["rgbaInputCss","Input"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HexInput.js","sources":["../src/color-chooser/HexInput.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { useEffect, useState } from \"react\";\nimport { InputLegacy as Input } from \"../input-legacy\";\nimport { isValidHex } from \"./ColorHelpers\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport hexInputCss from \"./HexInput.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserHexInput\");\n\ninterface HexInputProps {\n hexValue: string | undefined;\n disableAlphaChooser: boolean;\n onSubmit: (hex: string | undefined, e?:
|
|
1
|
+
{"version":3,"file":"HexInput.js","sources":["../src/color-chooser/HexInput.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent, FocusEvent, KeyboardEvent } from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { InputLegacy as Input } from \"../input-legacy\";\nimport { isValidHex } from \"./ColorHelpers\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport hexInputCss from \"./HexInput.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserHexInput\");\n\ninterface HexInputProps {\n hexValue: string | undefined;\n disableAlphaChooser: boolean;\n onSubmit: (hex: string | undefined, e?: ChangeEvent) => void;\n}\n\nexport const HexInput = ({\n hexValue,\n disableAlphaChooser,\n onSubmit,\n}: HexInputProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-hex-input\",\n css: hexInputCss,\n window: targetWindow,\n });\n\n const [hexInputValue, setHexInputValue] = useState<string | undefined>(\n hexValue,\n );\n\n useEffect(() => {\n setHexInputValue(hexValue);\n }, [hexValue]);\n\n const handleHexInputChange = (\n event: ChangeEvent<HTMLInputElement>,\n value: string,\n ): void => {\n if (disableAlphaChooser && value.length < 7) {\n setHexInputValue(`#${value}`);\n }\n if (!disableAlphaChooser) {\n setHexInputValue(`#${value}`);\n }\n };\n\n const handleKeyDownHex = (e: KeyboardEvent<HTMLInputElement>): void => {\n if (e.key === \"Enter\") {\n isValidHex(hexInputValue) && onSubmit(hexInputValue);\n }\n };\n\n const handleOnBlurHex = (e: FocusEvent<HTMLInputElement>): void => {\n isValidHex(hexInputValue) && onSubmit(hexInputValue, e);\n };\n\n return (\n <div className={clsx(withBaseName())}>\n <span className={clsx(withBaseName(\"hashSign\"))}>#</span>\n <Input\n data-testid=\"hex-input\"\n className={clsx(withBaseName(\"input\"))}\n value={hexInputValue?.toString().replace(\"#\", \"\").toUpperCase() ?? \"\"}\n onChange={handleHexInputChange}\n onKeyDown={handleKeyDownHex}\n onBlur={handleOnBlurHex}\n />\n </div>\n );\n};\n"],"names":["hexInputCss","Input"],"mappings":";;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA,CAAA;AAQrD,MAAM,WAAW,CAAC;AAAA,EACvB,QAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AACF,CAAkC,KAAA;AAxBlC,EAAA,IAAA,EAAA,CAAA;AAyBE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAA,QAAA;AAAA,IACxC,QAAA;AAAA,GACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,gBAAA,CAAiB,QAAQ,CAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAM,MAAA,oBAAA,GAAuB,CAC3B,KAAA,EACA,KACS,KAAA;AACT,IAAI,IAAA,mBAAA,IAAuB,KAAM,CAAA,MAAA,GAAS,CAAG,EAAA;AAC3C,MAAA,gBAAA,CAAiB,IAAI,KAAO,CAAA,CAAA,CAAA,CAAA;AAAA,KAC9B;AACA,IAAA,IAAI,CAAC,mBAAqB,EAAA;AACxB,MAAA,gBAAA,CAAiB,IAAI,KAAO,CAAA,CAAA,CAAA,CAAA;AAAA,KAC9B;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,CAAC,CAA6C,KAAA;AACrE,IAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,MAAW,UAAA,CAAA,aAAa,CAAK,IAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,KACrD;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,CAA0C,KAAA;AACjE,IAAA,UAAA,CAAW,aAAa,CAAA,IAAK,QAAS,CAAA,aAAA,EAAe,CAAC,CAAA,CAAA;AAAA,GACxD,CAAA;AAEA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAA,EAAW,IAAK,CAAA,YAAA,EAAc,CAAA;AAAA,IACjC,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,UAAU,CAAC,CAAA;AAAA,QAAG,QAAA,EAAA,GAAA;AAAA,OAAC,CAAA;AAAA,sBACjD,GAAA,CAAAC,WAAA,EAAA;AAAA,QACC,aAAY,EAAA,WAAA;AAAA,QACZ,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,OAAO,CAAC,CAAA;AAAA,QACrC,QAAO,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,QAAA,EAAA,CAAW,QAAQ,GAAK,EAAA,EAAA,CAAA,CAAI,kBAA3C,IAA4D,GAAA,EAAA,GAAA,EAAA;AAAA,QACnE,QAAU,EAAA,oBAAA;AAAA,QACV,SAAW,EAAA,gBAAA;AAAA,QACX,MAAQ,EAAA,eAAA;AAAA,OACV,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RGBAInputField.js","sources":["../src/color-chooser/RGBAInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useEffect
|
|
1
|
+
{"version":3,"file":"RGBAInputField.js","sources":["../src/color-chooser/RGBAInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport {\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { InputLegacy as Input } from \"../input-legacy\";\nimport type { RGBAValue } from \"./Color\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport rgbaInputCss from \"./RGBAInput.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\ninterface RGBInputProps {\n rgbaValue: RGBAValue;\n value: \"r\" | \"g\" | \"b\";\n onSubmit: (rgb: RGBAValue, e?: ChangeEvent) => void;\n}\n\nexport const RGBInput = ({\n rgbaValue,\n value,\n onSubmit,\n}: RGBInputProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-rgba-input\",\n css: rgbaInputCss,\n window: targetWindow,\n });\n\n const [rgbaInputValue, setRgbaInputValue] = useState<number | string>(\n rgbaValue ? rgbaValue[value] : \"\",\n );\n\n useEffect(() => {\n setRgbaInputValue(rgbaValue ? rgbaValue[value] : \"\");\n }, [rgbaValue, value]);\n\n const handleRGBInputChange = (\n e: ChangeEvent<HTMLInputElement>,\n value: string,\n ): void => {\n let rgb: string | number;\n\n rgb = Number.parseInt(value);\n\n if (value.trim() === \"\" || Number.isNaN(rgb)) {\n rgb = \"\";\n }\n\n setRgbaInputValue(rgb);\n };\n\n const handleKeyDownRGB = (e: KeyboardEvent<HTMLInputElement>): void => {\n if (e.key === \"Enter\") {\n const newRgb = { ...rgbaValue, [value]: e.currentTarget.value };\n const validatedRgb = {\n r: Math.max(0, Math.min(newRgb.r, 255)),\n g: Math.max(0, Math.min(newRgb.g, 255)),\n b: Math.max(0, Math.min(newRgb.b, 255)),\n a: newRgb.a,\n };\n\n onSubmit(validatedRgb);\n }\n };\n\n const handleOnBlurRGB = (e: FocusEvent<HTMLInputElement>): void => {\n const newRgb = { ...rgbaValue, [value]: e.target.value };\n const validatedRgb = {\n r: Math.max(0, Math.min(newRgb.r, 255)),\n g: Math.max(0, Math.min(newRgb.g, 255)),\n b: Math.max(0, Math.min(newRgb.b, 255)),\n a: newRgb.a,\n };\n\n onSubmit(validatedRgb, e);\n };\n\n return (\n <Input\n inputProps={{\n // @ts-ignore\n \"data-testid\": `${value}-input`,\n }}\n className={withBaseName(\"rgbaInput\")}\n value={rgbaInputValue.toString()}\n onChange={handleRGBInputChange}\n onBlur={handleOnBlurRGB}\n onKeyDown={handleKeyDownRGB}\n />\n );\n};\n"],"names":["rgbaInputCss","value","Input"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Swatches.js","sources":["../src/color-chooser/Swatches.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { AlphaInput } from \"./AlphaInputField\";\nimport type { Color } from \"./Color\";\nimport { SwatchesPicker } from \"./SwatchesPicker\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport swatchesCss from \"./Swatches.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserSwatches\");\n\nexport interface SwatchesTabProps {\n allColors: string[][];\n color: Color | undefined;\n alpha: number;\n handleColorChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?:
|
|
1
|
+
{"version":3,"file":"Swatches.js","sources":["../src/color-chooser/Swatches.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent } from \"react\";\nimport { AlphaInput } from \"./AlphaInputField\";\nimport type { Color } from \"./Color\";\nimport { SwatchesPicker } from \"./SwatchesPicker\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport swatchesCss from \"./Swatches.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserSwatches\");\n\nexport interface SwatchesTabProps {\n allColors: string[][];\n color: Color | undefined;\n alpha: number;\n handleColorChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?: ChangeEvent,\n ) => void;\n displayColorName: string | undefined;\n placeholder: string | undefined;\n onDialogClosed: () => void;\n}\n\nexport const Swatches = ({\n allColors,\n color,\n alpha,\n handleColorChange,\n displayColorName,\n placeholder,\n onDialogClosed,\n}: SwatchesTabProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-swatches\",\n css: swatchesCss,\n window: targetWindow,\n });\n return (\n <div data-testid=\"swatches\" className={clsx(withBaseName(\"pickerDiv\"))}>\n <SwatchesPicker\n allColors={allColors}\n color={color}\n onChange={handleColorChange}\n alpha={alpha}\n onDialogClosed={onDialogClosed}\n />\n <div className={clsx(withBaseName(\"textDiv\"))}>\n <div>\n <span className={clsx(withBaseName(\"colorTextDiv\"))}>Color:</span>\n <span className={clsx(withBaseName(\"colorNameTextDiv\"))}>\n {displayColorName ?? placeholder}\n </span>\n </div>\n <div>\n <span className={clsx(withBaseName(\"alphaTextDiv\"))}>Opacity:</span>\n <AlphaInput\n alphaValue={color?.rgba.a === 0 ? 0 : alpha}\n showAsOpacity={true}\n onSubmit={(alpha: number, e?: ChangeEvent): void => {\n const newColor = color?.setAlpha(alpha);\n handleColorChange(newColor, false, e);\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n"],"names":["swatchesCss","alpha"],"mappings":";;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA,CAAA;AAgBrD,MAAM,WAAW,CAAC;AAAA,EACvB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AACF,CAAqC,KAAA;AACnC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AACD,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IAAI,aAAY,EAAA,UAAA;AAAA,IAAW,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,WAAW,CAAC,CAAA;AAAA,IACnE,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,cAAA,EAAA;AAAA,QACC,SAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAU,EAAA,iBAAA;AAAA,QACV,KAAA;AAAA,QACA,cAAA;AAAA,OACF,CAAA;AAAA,sBACC,IAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,SAAS,CAAC,CAAA;AAAA,QAC1C,QAAA,EAAA;AAAA,0BAAC,IAAA,CAAA,KAAA,EAAA;AAAA,YACC,QAAA,EAAA;AAAA,8BAAC,GAAA,CAAA,MAAA,EAAA;AAAA,gBAAK,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,cAAc,CAAC,CAAA;AAAA,gBAAG,QAAA,EAAA,QAAA;AAAA,eAAM,CAAA;AAAA,8BAC1D,GAAA,CAAA,MAAA,EAAA;AAAA,gBAAK,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,kBAAkB,CAAC,CAAA;AAAA,gBACnD,QAAoB,EAAA,gBAAA,IAAA,IAAA,GAAA,gBAAA,GAAA,WAAA;AAAA,eACvB,CAAA;AAAA,aAAA;AAAA,WACF,CAAA;AAAA,0BACC,IAAA,CAAA,KAAA,EAAA;AAAA,YACC,QAAA,EAAA;AAAA,8BAAC,GAAA,CAAA,MAAA,EAAA;AAAA,gBAAK,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,cAAc,CAAC,CAAA;AAAA,gBAAG,QAAA,EAAA,UAAA;AAAA,eAAQ,CAAA;AAAA,8BAC5D,GAAA,CAAA,UAAA,EAAA;AAAA,gBACC,UAAY,EAAA,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,IAAK,CAAA,CAAA,MAAM,IAAI,CAAI,GAAA,KAAA;AAAA,gBACtC,aAAe,EAAA,IAAA;AAAA,gBACf,QAAA,EAAU,CAACC,MAAAA,EAAe,CAA0B,KAAA;AAClD,kBAAM,MAAA,QAAA,GAAW,+BAAO,QAASA,CAAAA,MAAAA,CAAAA,CAAAA;AACjC,kBAAkB,iBAAA,CAAA,QAAA,EAAU,OAAO,CAAC,CAAA,CAAA;AAAA,iBACtC;AAAA,eACF,CAAA;AAAA,aAAA;AAAA,WACF,CAAA;AAAA,SAAA;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwatchesPicker.js","sources":["../src/color-chooser/SwatchesPicker.tsx"],"sourcesContent":["import type { Color } from \"./Color\";\nimport { convertColorMapValueToHex } from \"./ColorHelpers\";\nimport { Swatch } from \"./Swatch\";\nimport { isTransparent } from \"./color-utils\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport swatchCSS from \"./Swatch.css\";\n\ninterface SwatchesPickerProps {\n allColors: string[][];\n color: Color | undefined;\n alpha?: number;\n onChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?:
|
|
1
|
+
{"version":3,"file":"SwatchesPicker.js","sources":["../src/color-chooser/SwatchesPicker.tsx"],"sourcesContent":["import type { ChangeEvent } from \"react\";\nimport type { Color } from \"./Color\";\nimport { convertColorMapValueToHex } from \"./ColorHelpers\";\nimport { Swatch } from \"./Swatch\";\nimport { isTransparent } from \"./color-utils\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport swatchCSS from \"./Swatch.css\";\n\ninterface SwatchesPickerProps {\n allColors: string[][];\n color: Color | undefined;\n alpha?: number;\n onChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?: ChangeEvent,\n ) => void;\n onDialogClosed: () => void;\n}\n\ninterface SwatchesGroupProps {\n swatchGroup: string[];\n selectedColor: string | undefined;\n alpha: number;\n onClick: (\n color: Color | undefined,\n finalSelection: boolean,\n e?: ChangeEvent,\n ) => void;\n onDialogClosed: () => void;\n}\n\nconst SwatchesGroup = ({\n swatchGroup,\n onClick,\n onDialogClosed,\n selectedColor,\n alpha,\n}: SwatchesGroupProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-swatches\",\n css: swatchCSS,\n window: targetWindow,\n });\n\n const isBlackOrWhite = (color: string): boolean => {\n return (\n ((selectedColor ? selectedColor.startsWith(\"#000000\") : false) &&\n color.toLowerCase() === \"black\") ||\n ((selectedColor\n ? selectedColor.toLowerCase().startsWith(\"#ffffff\")\n : false) &&\n color.toLowerCase() === \"white\")\n );\n };\n const isActive = (color: string): boolean => {\n return (\n color.toLowerCase() ===\n selectedColor?.substring(0, 7).toString().toLowerCase() ||\n isBlackOrWhite(color)\n );\n };\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {swatchGroup\n ?.map((color) => {\n return convertColorMapValueToHex(color);\n })\n ?.map((color) => (\n <Swatch\n key={color.toString()}\n active={isActive(color)}\n color={color}\n onClick={onClick}\n onDialogClosed={onDialogClosed}\n alpha={alpha}\n transparent={isTransparent(color)}\n />\n ))}\n </div>\n );\n};\n\nexport const SwatchesPicker = ({\n allColors,\n color,\n alpha = 1,\n onChange,\n onDialogClosed,\n}: SwatchesPickerProps): JSX.Element => {\n return (\n <div\n data-testid=\"swatches-picker\"\n style={{ display: \"flex\", flexDirection: \"row\" }}\n >\n {allColors?.map((swatchGroup: string[]) => (\n <SwatchesGroup\n swatchGroup={swatchGroup}\n key={swatchGroup.toString()}\n selectedColor={color?.hex}\n onClick={onChange}\n onDialogClosed={onDialogClosed}\n alpha={alpha}\n />\n ))}\n </div>\n );\n};\n"],"names":["swatchCSS"],"mappings":";;;;;;;;AAmCA,MAAM,gBAAgB,CAAC;AAAA,EACrB,WAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AACF,CAAuC,KAAA;AAzCvC,EAAA,IAAA,EAAA,CAAA;AA0CE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,cAAA,GAAiB,CAAC,KAA2B,KAAA;AACjD,IACI,OAAA,CAAA,aAAA,GAAgB,cAAc,UAAW,CAAA,SAAS,IAAI,KACtD,KAAA,KAAA,CAAM,aAAkB,KAAA,OAAA,IAAA,CACxB,gBACE,aAAc,CAAA,WAAA,GAAc,UAAW,CAAA,SAAS,IAChD,KACF,KAAA,KAAA,CAAM,aAAkB,KAAA,OAAA,CAAA;AAAA,GAE9B,CAAA;AACA,EAAM,MAAA,QAAA,GAAW,CAAC,KAA2B,KAAA;AAC3C,IACE,OAAA,KAAA,CAAM,WAAY,EAAA,MAChB,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,SAAA,CAAU,GAAG,CAAG,CAAA,CAAA,QAAA,EAAA,CAAW,WAC5C,EAAA,CAAA,IAAA,cAAA,CAAe,KAAK,CAAA,CAAA;AAAA,GAExB,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,eAAe,QAAS,EAAA;AAAA,IACpD,QAAA,EAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CACG,GAAI,CAAA,CAAC,KAAU,KAAA;AACf,MAAA,OAAO,0BAA0B,KAAK,CAAA,CAAA;AAAA,KAFzC,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAIG,GAAI,CAAA,CAAC,0BACJ,GAAA,CAAA,MAAA,EAAA;AAAA,MAEC,MAAA,EAAQ,SAAS,KAAK,CAAA;AAAA,MACtB,KAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA,EAAa,cAAc,KAAK,CAAA;AAAA,KAN3B,EAAA,KAAA,CAAM,UAOb,CAAA,CAAA;AAAA,GAEN,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAQ,GAAA,CAAA;AAAA,EACR,QAAA;AAAA,EACA,cAAA;AACF,CAAwC,KAAA;AACtC,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,iBAAA;AAAA,IACZ,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,eAAe,KAAM,EAAA;AAAA,IAE9C,QAAW,EAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAI,CAAC,WAAA,qBACd,GAAA,CAAA,aAAA,EAAA;AAAA,MACC,WAAA;AAAA,MAEA,eAAe,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA;AAAA,MACtB,OAAS,EAAA,QAAA;AAAA,MACT,cAAA;AAAA,MACA,KAAA;AAAA,KAJK,EAAA,WAAA,CAAY,UAKnB,CAAA,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyUtils.js","sources":["../src/common-hooks/keyUtils.ts"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"keyUtils.js","sources":["../src/common-hooks/keyUtils.ts"],"sourcesContent":["import type { KeyboardEvent } from \"react\";\n\nfunction union<T>(set1: Set<T>, ...sets: Set<T>[]) {\n const result = new Set(set1);\n for (const set of sets) {\n for (const element of set) {\n result.add(element);\n }\n }\n return result;\n}\n\nexport const ArrowUp = \"ArrowUp\";\nexport const ArrowDown = \"ArrowDown\";\nexport const ArrowLeft = \"ArrowLeft\";\nexport const ArrowRight = \"ArrowRight\";\nexport const Enter = \"Enter\";\nexport const Escape = \"Escape\";\nexport const Home = \"Home\";\nexport const End = \"End\";\nexport const PageUp = \"PageUp\";\nexport const PageDown = \"PageDown\";\nexport const Space = \" \";\nexport const Tab = \"Tab\";\n\nconst actionKeys = new Set([\"Enter\", \"Delete\", \" \"]);\nconst focusKeys = new Set([\"Tab\"]);\nconst arrowLeftRightKeys = new Set([\"ArrowRight\", \"ArrowLeft\"]);\nconst navigationKeys = new Set([\n Home,\n End,\n PageUp,\n PageDown,\n ArrowDown,\n ArrowUp,\n]);\nconst functionKeys = new Set([\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n]);\nconst specialKeys = union(\n actionKeys,\n navigationKeys,\n arrowLeftRightKeys,\n functionKeys,\n focusKeys,\n);\nexport const isCharacterKey = (evt: KeyboardEvent): boolean => {\n if (specialKeys.has(evt.key)) {\n return false;\n }\n return evt.key.length === 1 && !evt.ctrlKey && !evt.metaKey && !evt.altKey;\n};\n\nexport const isNavigationKey = ({ key }: KeyboardEvent): boolean => {\n return navigationKeys.has(key);\n};\n"],"names":[],"mappings":"AAEA,SAAS,KAAA,CAAS,SAAiB,IAAgB,EAAA;AACjD,EAAM,MAAA,MAAA,GAAS,IAAI,GAAA,CAAI,IAAI,CAAA,CAAA;AAC3B,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,KAAA,MAAW,WAAW,GAAK,EAAA;AACzB,MAAA,MAAA,CAAO,IAAI,OAAO,CAAA,CAAA;AAAA,KACpB;AAAA,GACF;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEO,MAAM,OAAU,GAAA,UAAA;AAChB,MAAM,SAAY,GAAA,YAAA;AAClB,MAAM,SAAY,GAAA,YAAA;AAClB,MAAM,UAAa,GAAA,aAAA;AACnB,MAAM,KAAQ,GAAA,QAAA;AAEd,MAAM,IAAO,GAAA,OAAA;AACb,MAAM,GAAM,GAAA,MAAA;AACZ,MAAM,MAAS,GAAA,SAAA;AACf,MAAM,QAAW,GAAA,WAAA;AACjB,MAAM,KAAQ,GAAA,IAAA;AAGrB,MAAM,6BAAiB,IAAA,GAAA,CAAI,CAAC,OAAS,EAAA,QAAA,EAAU,GAAG,CAAC,CAAA,CAAA;AACnD,MAAM,SAAY,mBAAA,IAAI,GAAI,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA;AACjC,MAAM,qCAAyB,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,WAAW,CAAC,CAAA,CAAA;AAC9D,MAAM,cAAA,uBAAqB,GAAI,CAAA;AAAA,EAC7B,IAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AACF,CAAC,CAAA,CAAA;AACD,MAAM,YAAA,uBAAmB,GAAI,CAAA;AAAA,EAC3B,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AACF,CAAC,CAAA,CAAA;AACD,MAAM,WAAc,GAAA,KAAA;AAAA,EAClB,UAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AACF,CAAA,CAAA;AACa,MAAA,cAAA,GAAiB,CAAC,GAAgC,KAAA;AAC7D,EAAA,IAAI,WAAY,CAAA,GAAA,CAAI,GAAI,CAAA,GAAG,CAAG,EAAA;AAC5B,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,GAAA,CAAI,GAAI,CAAA,MAAA,KAAW,CAAK,IAAA,CAAC,GAAI,CAAA,OAAA,IAAW,CAAC,GAAA,CAAI,OAAW,IAAA,CAAC,GAAI,CAAA,MAAA,CAAA;AACtE,EAAA;AAEO,MAAM,eAAkB,GAAA,CAAC,EAAE,GAAA,EAAkC,KAAA;AAClE,EAAO,OAAA,cAAA,CAAe,IAAI,GAAG,CAAA,CAAA;AAC/B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectionTypes.js","sources":["../src/common-hooks/selectionTypes.ts"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport type { CollectionItem } from \"./collectionTypes\";\n\nexport const SINGLE = \"default\";\nexport const MULTIPLE = \"multiple\";\nexport const EXTENDED = \"extended\";\nexport const DESELECTABLE = \"deselectable\";\n\n// export type SelectionDisallowed = \"none\";\nexport type SingleSelectionStrategy = \"default\" | \"deselectable\";\nexport type MultiSelectionStrategy =\n | \"multiple\"\n | \"extended\"\n | \"extended-multi-range\";\nexport type SelectionStrategy =\n // | SelectionDisallowed\n SingleSelectionStrategy | MultiSelectionStrategy;\n\nexport type selectedType<\n Item,\n Selection extends SelectionStrategy,\n> = Selection extends MultiSelectionStrategy ? Item[] : Item | null;\n\nexport type SelectHandler<Item = string> = (\n event: SyntheticEvent,\n selectedItem: Item,\n) => void;\n\nexport type SelectionChangeHandler<\n Item = string,\n Selection extends SelectionStrategy = \"default\",\n> = (\n event: SyntheticEvent,\n selected: Selection extends SingleSelectionStrategy ? Item | null : Item[],\n) => void;\n\nexport const hasSelection = <Item = unknown>(\n selected: Item | Item[] | null,\n): boolean => {\n return Array.isArray(selected)\n ? selected.length > 0\n : selected !== null && selected !== undefined;\n};\n\nexport const getFirstSelectedItem = <Item = unknown>(\n selected: Item | Item[] | null,\n): Item | null => {\n return Array.isArray(selected) ? selected[0] : selected;\n};\n\nexport interface SelectionProps<\n Item,\n Selection extends SelectionStrategy = \"default\",\n> {\n defaultSelected?: Selection extends SingleSelectionStrategy\n ? Item | null\n : Item[];\n onSelect?: SelectHandler<Item>;\n onSelectionChange?: SelectionChangeHandler<Item, Selection>;\n selected?: Selection extends SingleSelectionStrategy ? Item | null : Item[];\n selectionStrategy?: Selection;\n}\n\nexport interface ListHandlers {\n onClick?: (event:
|
|
1
|
+
{"version":3,"file":"selectionTypes.js","sources":["../src/common-hooks/selectionTypes.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent, SyntheticEvent } from \"react\";\nimport type { CollectionItem } from \"./collectionTypes\";\n\nexport const SINGLE = \"default\";\nexport const MULTIPLE = \"multiple\";\nexport const EXTENDED = \"extended\";\nexport const DESELECTABLE = \"deselectable\";\n\n// export type SelectionDisallowed = \"none\";\nexport type SingleSelectionStrategy = \"default\" | \"deselectable\";\nexport type MultiSelectionStrategy =\n | \"multiple\"\n | \"extended\"\n | \"extended-multi-range\";\nexport type SelectionStrategy =\n // | SelectionDisallowed\n SingleSelectionStrategy | MultiSelectionStrategy;\n\nexport type selectedType<\n Item,\n Selection extends SelectionStrategy,\n> = Selection extends MultiSelectionStrategy ? Item[] : Item | null;\n\nexport type SelectHandler<Item = string> = (\n event: SyntheticEvent,\n selectedItem: Item,\n) => void;\n\nexport type SelectionChangeHandler<\n Item = string,\n Selection extends SelectionStrategy = \"default\",\n> = (\n event: SyntheticEvent,\n selected: Selection extends SingleSelectionStrategy ? Item | null : Item[],\n) => void;\n\nexport const hasSelection = <Item = unknown>(\n selected: Item | Item[] | null,\n): boolean => {\n return Array.isArray(selected)\n ? selected.length > 0\n : selected !== null && selected !== undefined;\n};\n\nexport const getFirstSelectedItem = <Item = unknown>(\n selected: Item | Item[] | null,\n): Item | null => {\n return Array.isArray(selected) ? selected[0] : selected;\n};\n\nexport interface SelectionProps<\n Item,\n Selection extends SelectionStrategy = \"default\",\n> {\n defaultSelected?: Selection extends SingleSelectionStrategy\n ? Item | null\n : Item[];\n onSelect?: SelectHandler<Item>;\n onSelectionChange?: SelectionChangeHandler<Item, Selection>;\n selected?: Selection extends SingleSelectionStrategy ? Item | null : Item[];\n selectionStrategy?: Selection;\n}\n\nexport interface ListHandlers {\n onClick?: (event: MouseEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyboardNavigation?: (event: KeyboardEvent, currentIndex: number) => void;\n onMouseMove?: (event: MouseEvent) => void;\n}\nexport interface SelectionHookProps<\n Item,\n Selection extends SelectionStrategy = \"default\",\n> extends SelectionProps<CollectionItem<Item>, Selection> {\n disableSelection?: boolean;\n highlightedIdx: number;\n indexPositions: CollectionItem<Item>[];\n label?: string;\n selectionKeys?: string[];\n tabToSelect?: boolean;\n}\n\nexport interface SelectionHookResult<\n Item,\n Selection extends SelectionStrategy = \"default\",\n> {\n listHandlers: ListHandlers;\n selected: Selection extends SingleSelectionStrategy\n ? CollectionItem<Item> | null\n : CollectionItem<Item>[];\n setSelected: (\n selected: Selection extends SingleSelectionStrategy\n ? CollectionItem<Item> | null\n : CollectionItem<Item>[],\n ) => void;\n}\n"],"names":[],"mappings":"AAoCa,MAAA,YAAA,GAAe,CAC1B,QACY,KAAA;AACZ,EAAO,OAAA,KAAA,CAAM,QAAQ,QAAQ,CAAA,GACzB,SAAS,MAAS,GAAA,CAAA,GAClB,QAAa,KAAA,IAAA,IAAQ,QAAa,KAAA,KAAA,CAAA,CAAA;AACxC,EAAA;AAEa,MAAA,oBAAA,GAAuB,CAClC,QACgB,KAAA;AAChB,EAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,QAAQ,CAAA,GAAI,SAAS,CAAK,CAAA,GAAA,QAAA,CAAA;AACjD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeahead.js","sources":["../src/common-hooks/useTypeahead.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\nimport type { CollectionItem } from \"./collectionTypes\";\nimport { Space, isCharacterKey } from \"./keyUtils\";\n\ninterface TypeaheadHookProps<Item> {\n disableTypeToSelect?: boolean;\n highlightedIdx: number;\n highlightItemAtIndex: (idx: number) => void;\n applyIncrementalSearch?: boolean;\n typeToNavigate: boolean;\n items: CollectionItem<Item>[];\n}\n\ninterface TypeaheadHookResult {\n onKeyDown?: (e:
|
|
1
|
+
{"version":3,"file":"useTypeahead.js","sources":["../src/common-hooks/useTypeahead.ts"],"sourcesContent":["import { type KeyboardEvent, useCallback, useRef } from \"react\";\nimport type { CollectionItem } from \"./collectionTypes\";\nimport { Space, isCharacterKey } from \"./keyUtils\";\n\ninterface TypeaheadHookProps<Item> {\n disableTypeToSelect?: boolean;\n highlightedIdx: number;\n highlightItemAtIndex: (idx: number) => void;\n applyIncrementalSearch?: boolean;\n typeToNavigate: boolean;\n items: CollectionItem<Item>[];\n}\n\ninterface TypeaheadHookResult {\n onKeyDown?: (e: KeyboardEvent) => void;\n}\n\nexport const useTypeahead = <Item>({\n disableTypeToSelect,\n highlightedIdx,\n highlightItemAtIndex,\n typeToNavigate,\n items,\n applyIncrementalSearch = true,\n}: TypeaheadHookProps<Item>): TypeaheadHookResult => {\n const keyDownTimer = useRef<number | null>(null);\n const searchChars = useRef(\"\");\n const startIdx = useRef(-1);\n\n const applySearch = useCallback(\n (intermediateSearch?: true | undefined) => {\n if (intermediateSearch || !applyIncrementalSearch) {\n const regex = new RegExp(`^${searchChars.current}`, \"i\");\n let idx = items.findIndex(\n ({ label }, i) => i > startIdx.current && regex.test(label!),\n );\n if (idx === -1) {\n idx = items.findIndex(\n ({ label }, i) => i <= startIdx.current && regex.test(label!),\n );\n }\n if (idx !== -1) {\n highlightItemAtIndex(idx);\n }\n } else {\n searchChars.current = \"\";\n keyDownTimer.current = null;\n startIdx.current = -1;\n }\n },\n [applyIncrementalSearch, highlightItemAtIndex, items],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const searchInProgress = startIdx.current !== -1;\n if (isCharacterKey(e) || (searchInProgress && e.key === Space)) {\n if (typeToNavigate) {\n e.preventDefault();\n e.stopPropagation();\n // If we type the same key repeatedly, we cycle through the matches\n if (startIdx.current === -1 || e.key === searchChars.current) {\n startIdx.current = highlightedIdx;\n }\n if (keyDownTimer.current !== null) {\n clearTimeout(keyDownTimer.current);\n keyDownTimer.current = null;\n }\n if (e.key !== searchChars.current) {\n searchChars.current += e.key;\n }\n if (applyIncrementalSearch) {\n applySearch(true);\n }\n // keyDownTimer.current = window.setTimeout(applySearch, 100);\n keyDownTimer.current = window.setTimeout(() => {\n applySearch();\n }, 100);\n }\n }\n },\n [typeToNavigate, applyIncrementalSearch, highlightedIdx, applySearch],\n );\n\n return {\n onKeyDown: disableTypeToSelect ? undefined : handleKeyDown,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FavoriteToggle.js","sources":["../src/contact-details/internal/FavoriteToggle.tsx"],"sourcesContent":["import { useControlled, useForkRef, useIsFocusVisible } from \"@salt-ds/core\";\nimport
|
|
1
|
+
{"version":3,"file":"FavoriteToggle.js","sources":["../src/contact-details/internal/FavoriteToggle.tsx"],"sourcesContent":["import { useControlled, useForkRef, useIsFocusVisible } from \"@salt-ds/core\";\nimport {\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n forwardRef,\n useState,\n} from \"react\";\nimport {\n StarIconContainer,\n type StarIconContainerProps,\n} from \"./StarIconContainer\";\n\nexport interface FavoriteToggleProps\n extends Omit<StarIconContainerProps, \"onChange\"> {\n onBlur?: FocusEventHandler;\n onChange?: (isSelected: boolean) => void;\n onClick?: (event: MouseEvent<HTMLSpanElement>) => void;\n onFocus?: FocusEventHandler;\n onKeyDown?: KeyboardEventHandler<HTMLSpanElement>;\n onMouseEnter?: MouseEventHandler<HTMLSpanElement>;\n onMouseLeave?: MouseEventHandler<HTMLSpanElement>;\n}\n\nexport const FavoriteToggle = forwardRef<HTMLSpanElement, FavoriteToggleProps>(\n function FavoriteToggle(props, ref) {\n const {\n isSelected: isSelectedProp,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick: onClickProp,\n onChange: onChangeProp,\n onMouseEnter: onMouseEnterProp,\n onMouseLeave: onMouseLeaveProp,\n onKeyDown: onKeyDownProp,\n ...restProps\n } = props;\n\n const {\n isFocusVisibleRef,\n ref: focusVisibleRef,\n onFocus,\n onBlur,\n } = useIsFocusVisible<HTMLSpanElement>();\n\n const [isFocused, setIsFocused] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [isFocusVisible, setIsFocusVisible] = useState(false);\n\n const [isSelected, setIsSelected] = useControlled({\n controlled: isSelectedProp,\n default: false,\n name: \"FavoriteToggle\",\n state: \"isSelected\",\n });\n\n const toggleSelected = () => {\n setIsSelected((s) => !s);\n if (onChangeProp) {\n onChangeProp(!isSelected);\n }\n };\n\n const handleFocus: FocusEventHandler<HTMLSpanElement> = (event) => {\n if (onFocusProp) {\n onFocusProp(event);\n }\n onFocus(event);\n setIsFocused(true);\n setIsFocusVisible(isFocusVisibleRef.current);\n };\n\n const handleBlur: FocusEventHandler<HTMLSpanElement> = (event) => {\n if (onBlurProp) {\n onBlurProp(event);\n }\n onBlur();\n setIsFocused(false);\n setIsFocusVisible(false);\n };\n\n const handleClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n if (onClickProp) {\n onClickProp(event);\n }\n setIsFocusVisible(isFocusVisibleRef.current);\n toggleSelected();\n };\n\n const handleMouseEnter: MouseEventHandler<HTMLSpanElement> = (event) => {\n if (onMouseEnterProp) {\n onMouseEnterProp(event);\n }\n setIsHighlighted(true);\n };\n\n const handleMouseLeave: MouseEventHandler<HTMLSpanElement> = (event) => {\n if (onMouseLeaveProp) {\n onMouseLeaveProp(event);\n }\n setIsHighlighted(false);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLSpanElement> = (event) => {\n if (onKeyDownProp) {\n onKeyDownProp(event);\n }\n setIsFocusVisible(isFocusVisibleRef.current);\n\n if ([\"Enter\", \" \"].includes(event.key)) {\n toggleSelected();\n }\n };\n\n return (\n <StarIconContainer\n isFocusVisible={isFocusVisible}\n isFocused={isFocused}\n isHighlighted={isHighlighted}\n isSelected={isSelected}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={useForkRef(focusVisibleRef, ref)}\n tabIndex={0}\n {...restProps}\n />\n );\n },\n);\n"],"names":["FavoriteToggle"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormHelperText.js","sources":["../src/form-field-legacy/FormHelperText.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from \"react\";\nimport type { FormFieldLegacyProps as FormFieldProps } from \"./FormFieldLegacy\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport formHelperTextCss from \"./FormHelperText.css\";\n\nexport
|
|
1
|
+
{"version":3,"file":"FormHelperText.js","sources":["../src/form-field-legacy/FormHelperText.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from \"react\";\nimport type { FormFieldLegacyProps as FormFieldProps } from \"./FormFieldLegacy\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport formHelperTextCss from \"./FormHelperText.css\";\n\nexport interface FormHelperTextProps extends ComponentPropsWithoutRef<\"p\"> {\n helperText: FormFieldProps[\"helperText\"];\n helperTextPlacement: FormFieldProps[\"helperTextPlacement\"];\n}\n\nexport const FormHelperText = ({\n helperText,\n helperTextPlacement,\n ...restProps\n}: FormHelperTextProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-form-helper-text\",\n css: formHelperTextCss,\n window: targetWindow,\n });\n\n if (helperText) {\n if (helperTextPlacement === \"bottom\") {\n return (\n <p className=\"saltFormHelperText\" {...restProps}>\n {helperText}\n </p>\n );\n }\n if (helperTextPlacement === \"tooltip\") {\n console.warn(\"helperTextPlacement tooltip has not yet implemented\");\n return null;\n }\n return null;\n }\n return null;\n};\n"],"names":["formHelperTextCss"],"mappings":";;;;;AAaO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,UAAA;AAAA,EACA,mBAAA;AAAA,EACG,GAAA,SAAA;AACL,CAA2B,KAAA;AACzB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,IAAI,wBAAwB,QAAU,EAAA;AACpC,MAAA,uBACG,GAAA,CAAA,GAAA,EAAA;AAAA,QAAE,SAAU,EAAA,oBAAA;AAAA,QAAsB,GAAG,SAAA;AAAA,QACnC,QAAA,EAAA,UAAA;AAAA,OACH,CAAA,CAAA;AAAA,KAEJ;AACA,IAAA,IAAI,wBAAwB,SAAW,EAAA;AACrC,MAAA,OAAA,CAAQ,KAAK,qDAAqD,CAAA,CAAA;AAClE,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
|
package/dist-es/index.js
CHANGED
|
@@ -110,6 +110,9 @@ export { TrackerStep } from './stepped-tracker/TrackerStep/TrackerStep.js';
|
|
|
110
110
|
export { StepLabel } from './stepped-tracker/StepLabel/StepLabel.js';
|
|
111
111
|
export { useStepperInput } from './stepper-input/useStepperInput.js';
|
|
112
112
|
export { StepperInput } from './stepper-input/StepperInput.js';
|
|
113
|
+
export { SystemStatus } from './system-status/SystemStatus.js';
|
|
114
|
+
export { SystemStatusContent } from './system-status/SystemStatusContent.js';
|
|
115
|
+
export { SystemStatusActions } from './system-status/SystemStatusActions.js';
|
|
113
116
|
export { TabActivationIndicator } from './tabs/TabActivationIndicator.js';
|
|
114
117
|
export { Tabstrip } from './tabs/Tabstrip.js';
|
|
115
118
|
export { Tab } from './tabs/Tab.js';
|
package/dist-es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Children, isValidElement } from 'react';
|
|
2
2
|
|
|
3
3
|
const DEFAULT_PRIORITY = 3;
|
|
4
4
|
const mapReactElementChildren = (children, fn) => {
|
|
5
5
|
const childElements = [];
|
|
6
|
-
|
|
6
|
+
Children.forEach(children, (child, i) => {
|
|
7
7
|
if (isValidElement(child)) {
|
|
8
8
|
childElements.push(fn(child, i));
|
|
9
9
|
}
|