@salt-ds/lab 1.0.0-alpha.76 → 1.0.0-alpha.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/css/salt-lab.css +274 -79
- package/dist-cjs/app-header/AppHeader.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
- package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
- package/dist-cjs/button-bar/OrderedButton.js.map +1 -1
- package/dist-cjs/button-bar/internal/ButtonBarContext.js.map +1 -1
- package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
- package/dist-cjs/button-bar/internal/useDescendant.js.map +1 -1
- package/dist-cjs/button-bar/internal/useDescendants.js.map +1 -1
- package/dist-cjs/calendar/Calendar.css.js +1 -1
- package/dist-cjs/calendar/Calendar.js +11 -2
- package/dist-cjs/calendar/Calendar.js.map +1 -1
- package/dist-cjs/calendar/CalendarGrid.js +38 -36
- package/dist-cjs/calendar/CalendarGrid.js.map +1 -1
- package/dist-cjs/calendar/CalendarMonthHeader.js +1 -1
- package/dist-cjs/calendar/CalendarMonthHeader.js.map +1 -1
- package/dist-cjs/calendar/CalendarNavigation.css.js +1 -1
- package/dist-cjs/calendar/CalendarNavigation.js +20 -13
- package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.css.js +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.js +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarContext.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.js +26 -36
- package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarMonth.css.js +1 -1
- package/dist-cjs/calendar/internal/CalendarMonth.js +30 -9
- package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-cjs/calendar/internal/utils.js.map +1 -1
- package/dist-cjs/calendar/useCalendar.js +7 -9
- package/dist-cjs/calendar/useCalendar.js.map +1 -1
- package/dist-cjs/calendar/useCalendarDay.js +7 -11
- package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
- package/dist-cjs/calendar/useCalendarSelection.js +144 -76
- package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/keydownHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/menuPositioning.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/stateUtils.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMountedRef.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useStateReducer.js.map +1 -1
- package/dist-cjs/cascading-menu/stateChangeTypes.js.map +1 -1
- package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Color.js.map +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
- package/dist-cjs/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
- package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
- package/dist-cjs/color-chooser/GetColorPalettes.js.map +1 -1
- package/dist-cjs/color-chooser/HexInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Swatch.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/color-chooser/color-utils.js.map +1 -1
- package/dist-cjs/color-chooser/colorMap.js.map +1 -1
- package/dist-cjs/color-chooser/createTabsMapping.js.map +1 -1
- package/dist-cjs/combo-box/ComboBox.js.map +1 -1
- package/dist-cjs/combo-box/useCombobox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
- package/dist-cjs/common-hooks/calcPreferredHeight.js.map +1 -1
- package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
- package/dist-cjs/common-hooks/itemToString.js.map +1 -1
- package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
- package/dist-cjs/common-hooks/list-dom-utils.js.map +1 -1
- package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
- package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
- package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
- package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
- package/dist-cjs/common-hooks/useSelection.js.map +1 -1
- package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
- package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
- package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-cjs/common-hooks/utils/isSelected.js.map +1 -1
- package/dist-cjs/contact-details/ContactAction.js.map +1 -1
- package/dist-cjs/contact-details/ContactActions.js.map +1 -1
- package/dist-cjs/contact-details/ContactAvatar.js.map +1 -1
- package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
- package/dist-cjs/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
- package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
- package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-cjs/contact-details/internal/StarIcon.js.map +1 -1
- package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-cjs/contact-details/internal/useComponentSize.js.map +1 -1
- package/dist-cjs/content-status/ContentStatus.js.map +1 -1
- package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-cjs/date-input/DateInputRange.js +3 -2
- package/dist-cjs/date-input/DateInputRange.js.map +1 -1
- package/dist-cjs/date-input/DateInputSingle.js +5 -2
- package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
- package/dist-cjs/date-picker/DatePicker.js +0 -2
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerActions.js +1 -1
- package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerHelperText.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +2 -3
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +22 -8
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangePanel.js +2 -4
- package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +2 -4
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleInput.js +12 -7
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerTrigger.js.map +1 -1
- package/dist-cjs/date-picker/useDatePicker.js +0 -17
- package/dist-cjs/date-picker/useDatePicker.js.map +1 -1
- package/dist-cjs/date-picker/useFocusOut.js.map +1 -1
- package/dist-cjs/date-picker/useKeyboard.js.map +1 -1
- package/dist-cjs/deck-item/DeckItem.js.map +1 -1
- package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
- package/dist-cjs/dropdown/Dropdown.js.map +1 -1
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
- package/dist-cjs/dropdown/useClickAway.js.map +1 -1
- package/dist-cjs/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
- package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
- package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
- package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-cjs/form-field-legacy/NecessityIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/constant.js.map +1 -1
- package/dist-cjs/form-group/FormGroup.js.map +1 -1
- package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
- package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
- package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
- package/dist-cjs/input-legacy/useCursorOnFocus.js.map +1 -1
- package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
- package/dist-cjs/list/Highlighter.js.map +1 -1
- package/dist-cjs/list/List.js.map +1 -1
- package/dist-cjs/list/ListItem.js.map +1 -1
- package/dist-cjs/list/ListItemGroup.js.map +1 -1
- package/dist-cjs/list/ListItemHeader.js.map +1 -1
- package/dist-cjs/list/VirtualizedList.js.map +1 -1
- package/dist-cjs/list/keyset.js.map +1 -1
- package/dist-cjs/list/useList.js.map +1 -1
- package/dist-cjs/list/useListHeight.js.map +1 -1
- package/dist-cjs/list/useVirtualization.js.map +1 -1
- package/dist-cjs/list-deprecated/List.js.map +1 -1
- package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItemContext.js.map +1 -1
- package/dist-cjs/list-deprecated/ListStateContext.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/useWidth.js.map +1 -1
- package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
- package/dist-cjs/list-deprecated/useList.js.map +1 -1
- package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
- package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-cjs/list-next/ListItemNext.js.map +1 -1
- package/dist-cjs/list-next/ListNext.js.map +1 -1
- package/dist-cjs/list-next/ListNextContext.js.map +1 -1
- package/dist-cjs/list-next/useList.js.map +1 -1
- package/dist-cjs/localization-provider/LocalizationProvider.js.map +1 -1
- package/dist-cjs/logo/Logo.js.map +1 -1
- package/dist-cjs/logo/LogoImage.js.map +1 -1
- package/dist-cjs/logo/LogoSeparator.js.map +1 -1
- package/dist-cjs/menu-button/MenuButton.js.map +1 -1
- package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-cjs/metric/Metric.js.map +1 -1
- package/dist-cjs/metric/MetricContent.js.map +1 -1
- package/dist-cjs/metric/MetricHeader.js.map +1 -1
- package/dist-cjs/metric/internal/MetricContext.js.map +1 -1
- package/dist-cjs/number-input/NumberInput.js.map +1 -1
- package/dist-cjs/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
- package/dist-cjs/number-input/internal/useCaret.js.map +1 -1
- package/dist-cjs/number-input/internal/useInterval.js.map +1 -1
- package/dist-cjs/number-input/internal/utils.js.map +1 -1
- package/dist-cjs/number-input/useNumberInput.js.map +1 -1
- package/dist-cjs/portal/Portal.js.map +1 -1
- package/dist-cjs/query-input/QueryInput.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryListContext.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
- package/dist-cjs/query-input/useQueryInput.js.map +1 -1
- package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
- package/dist-cjs/responsive/overflowUtils.js.map +1 -1
- package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
- package/dist-cjs/responsive/useInstantCollapse.js.map +1 -1
- package/dist-cjs/responsive/useOverflow.js.map +1 -1
- package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
- package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
- package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
- package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
- package/dist-cjs/responsive/useWidth.js.map +1 -1
- package/dist-cjs/responsive/utils.js.map +1 -1
- package/dist-cjs/search-input/SearchInput.js.map +1 -1
- package/dist-cjs/static-list/StaticList.js.map +1 -1
- package/dist-cjs/static-list/StaticListItem.js.map +1 -1
- package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
- package/dist-cjs/system-status/SystemStatus.js.map +1 -1
- package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
- package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
- package/dist-cjs/table/TBody.js.map +1 -1
- package/dist-cjs/table/TD.js +6 -2
- package/dist-cjs/table/TD.js.map +1 -1
- package/dist-cjs/table/TFoot.js.map +1 -1
- package/dist-cjs/table/TH.js +6 -2
- package/dist-cjs/table/TH.js.map +1 -1
- package/dist-cjs/table/THead.js.map +1 -1
- package/dist-cjs/table/TR.js.map +1 -1
- package/dist-cjs/table/Table.css.js +1 -1
- package/dist-cjs/table/Table.js +2 -2
- package/dist-cjs/table/Table.js.map +1 -1
- package/dist-cjs/tabs/Tab.js.map +1 -1
- package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
- package/dist-cjs/tabs/TabPanel.js.map +1 -1
- package/dist-cjs/tabs/Tabs.js.map +1 -1
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/drag-utils.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/dragDropTypes.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragDrop.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
- package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
- package/dist-cjs/tabs/useEditableItem.js.map +1 -1
- package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
- package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/tabs/useSelection.js.map +1 -1
- package/dist-cjs/tabs/useTabs.js.map +1 -1
- package/dist-cjs/tabs/useTabstrip.js.map +1 -1
- package/dist-cjs/tabs-next/TabBar.js.map +1 -1
- package/dist-cjs/tabs-next/TabListNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextAction.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextPanel.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextTrigger.css.js +1 -1
- package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -1
- package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useFocusOutside.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
- package/dist-cjs/toast-group/ToastGroup.js.map +1 -1
- package/dist-cjs/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/getCursorPosition.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/isPlainObject.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/useResizeObserver.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/useWidth.js.map +1 -1
- package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/useWidth.js.map +1 -1
- package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
- package/dist-cjs/toolbar/Toolbar.js.map +1 -1
- package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
- package/dist-cjs/toolbar/Tooltray.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-cjs/tree/Tree.js.map +1 -1
- package/dist-cjs/tree/TreeNode.js.map +1 -1
- package/dist-cjs/tree/use-tree-keyboard-navigation.js.map +1 -1
- package/dist-cjs/tree/useTree.js.map +1 -1
- package/dist-cjs/utils/escapeRegExp.js.map +1 -1
- package/dist-cjs/utils/forwardCallbackProps.js.map +1 -1
- package/dist-cjs/utils/isEmail.js.map +1 -1
- package/dist-cjs/utils/isPlainObject.js.map +1 -1
- package/dist-cjs/utils/partition.js.map +1 -1
- package/dist-cjs/utils/useClickOutside.js.map +1 -1
- package/dist-cjs/utils/useEventCallback.js.map +1 -1
- package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-cjs/utils/useLayoutEffectOnce.js.map +1 -1
- package/dist-cjs/utils/useLayoutEffectSkipFirst.js.map +1 -1
- package/dist-cjs/utils/useOverflowDetection.js.map +1 -1
- package/dist-cjs/utils/useSlideSelection.js.map +1 -1
- package/dist-cjs/window/ElectronWindow.js.map +1 -1
- package/dist-cjs/window/WindowContext.js.map +1 -1
- package/dist-cjs/window/desktop-utils.js.map +1 -1
- package/dist-es/app-header/AppHeader.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
- package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
- package/dist-es/button-bar/ButtonBar.js.map +1 -1
- package/dist-es/button-bar/OrderedButton.js.map +1 -1
- package/dist-es/button-bar/internal/ButtonBarContext.js.map +1 -1
- package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
- package/dist-es/button-bar/internal/useDescendant.js.map +1 -1
- package/dist-es/button-bar/internal/useDescendants.js.map +1 -1
- package/dist-es/calendar/Calendar.css.js +1 -1
- package/dist-es/calendar/Calendar.js +12 -3
- package/dist-es/calendar/Calendar.js.map +1 -1
- package/dist-es/calendar/CalendarGrid.js +39 -37
- package/dist-es/calendar/CalendarGrid.js.map +1 -1
- package/dist-es/calendar/CalendarMonthHeader.js +1 -1
- package/dist-es/calendar/CalendarMonthHeader.js.map +1 -1
- package/dist-es/calendar/CalendarNavigation.css.js +1 -1
- package/dist-es/calendar/CalendarNavigation.js +21 -14
- package/dist-es/calendar/CalendarNavigation.js.map +1 -1
- package/dist-es/calendar/CalendarWeekHeader.css.js +1 -1
- package/dist-es/calendar/CalendarWeekHeader.js +2 -2
- package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
- package/dist-es/calendar/internal/CalendarContext.js.map +1 -1
- package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-es/calendar/internal/CalendarDay.js +27 -37
- package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-es/calendar/internal/CalendarMonth.css.js +1 -1
- package/dist-es/calendar/internal/CalendarMonth.js +31 -10
- package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-es/calendar/internal/utils.js.map +1 -1
- package/dist-es/calendar/useCalendar.js +7 -9
- package/dist-es/calendar/useCalendar.js.map +1 -1
- package/dist-es/calendar/useCalendarDay.js +7 -11
- package/dist-es/calendar/useCalendarDay.js.map +1 -1
- package/dist-es/calendar/useCalendarSelection.js +144 -76
- package/dist-es/calendar/useCalendarSelection.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-es/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
- package/dist-es/cascading-menu/internal/keydownHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/menuPositioning.js.map +1 -1
- package/dist-es/cascading-menu/internal/stateUtils.js.map +1 -1
- package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMountedRef.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
- package/dist-es/cascading-menu/internal/useStateReducer.js.map +1 -1
- package/dist-es/cascading-menu/stateChangeTypes.js.map +1 -1
- package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-es/color-chooser/Color.js.map +1 -1
- package/dist-es/color-chooser/ColorChooser.js.map +1 -1
- package/dist-es/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-es/color-chooser/ColorPicker.js.map +1 -1
- package/dist-es/color-chooser/DictTabs.js.map +1 -1
- package/dist-es/color-chooser/GetColorPalettes.js.map +1 -1
- package/dist-es/color-chooser/HexInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-es/color-chooser/Swatch.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/color-chooser/color-utils.js.map +1 -1
- package/dist-es/color-chooser/colorMap.js.map +1 -1
- package/dist-es/color-chooser/createTabsMapping.js.map +1 -1
- package/dist-es/combo-box/ComboBox.js.map +1 -1
- package/dist-es/combo-box/useCombobox.js.map +1 -1
- package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
- package/dist-es/common-hooks/calcPreferredHeight.js.map +1 -1
- package/dist-es/common-hooks/collectionProvider.js.map +1 -1
- package/dist-es/common-hooks/itemToString.js.map +1 -1
- package/dist-es/common-hooks/keyUtils.js.map +1 -1
- package/dist-es/common-hooks/list-dom-utils.js.map +1 -1
- package/dist-es/common-hooks/selectionTypes.js.map +1 -1
- package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
- package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
- package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
- package/dist-es/common-hooks/useSelection.js.map +1 -1
- package/dist-es/common-hooks/useTypeahead.js.map +1 -1
- package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
- package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-es/common-hooks/utils/isSelected.js.map +1 -1
- package/dist-es/contact-details/ContactAction.js.map +1 -1
- package/dist-es/contact-details/ContactActions.js.map +1 -1
- package/dist-es/contact-details/ContactAvatar.js.map +1 -1
- package/dist-es/contact-details/ContactDetails.js.map +1 -1
- package/dist-es/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-es/contact-details/ContactMetadata.js.map +1 -1
- package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
- package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-es/contact-details/internal/StarIcon.js.map +1 -1
- package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-es/contact-details/internal/useComponentSize.js.map +1 -1
- package/dist-es/content-status/ContentStatus.js.map +1 -1
- package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-es/date-input/DateInputRange.js +3 -2
- package/dist-es/date-input/DateInputRange.js.map +1 -1
- package/dist-es/date-input/DateInputSingle.js +5 -2
- package/dist-es/date-input/DateInputSingle.js.map +1 -1
- package/dist-es/date-picker/DatePicker.js +0 -2
- package/dist-es/date-picker/DatePicker.js.map +1 -1
- package/dist-es/date-picker/DatePickerActions.js +1 -1
- package/dist-es/date-picker/DatePickerActions.js.map +1 -1
- package/dist-es/date-picker/DatePickerContext.js.map +1 -1
- package/dist-es/date-picker/DatePickerHelperText.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangeGridPanel.js +2 -3
- package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangeInput.js +22 -8
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangePanel.js +2 -4
- package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleGridPanel.js +2 -4
- package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleInput.js +12 -7
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerTrigger.js.map +1 -1
- package/dist-es/date-picker/useDatePicker.js +0 -17
- package/dist-es/date-picker/useDatePicker.js.map +1 -1
- package/dist-es/date-picker/useFocusOut.js.map +1 -1
- package/dist-es/date-picker/useKeyboard.js.map +1 -1
- package/dist-es/deck-item/DeckItem.js.map +1 -1
- package/dist-es/deck-layout/DeckLayout.js.map +1 -1
- package/dist-es/dropdown/Dropdown.js.map +1 -1
- package/dist-es/dropdown/DropdownBase.js.map +1 -1
- package/dist-es/dropdown/DropdownButton.js.map +1 -1
- package/dist-es/dropdown/useClickAway.js.map +1 -1
- package/dist-es/dropdown/useDropdown.js.map +1 -1
- package/dist-es/dropdown/useDropdownBase.js.map +1 -1
- package/dist-es/editable-label/EditableLabel.js.map +1 -1
- package/dist-es/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
- package/dist-es/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
- package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
- package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-es/form-field-legacy/NecessityIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/constant.js.map +1 -1
- package/dist-es/form-group/FormGroup.js.map +1 -1
- package/dist-es/formatted-input/FormattedInput.js.map +1 -1
- package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-es/input-legacy/InputLegacy.js.map +1 -1
- package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
- package/dist-es/input-legacy/useCursorOnFocus.js.map +1 -1
- package/dist-es/layer-layout/LayerLayout.js.map +1 -1
- package/dist-es/list/Highlighter.js.map +1 -1
- package/dist-es/list/List.js.map +1 -1
- package/dist-es/list/ListItem.js.map +1 -1
- package/dist-es/list/ListItemGroup.js.map +1 -1
- package/dist-es/list/ListItemHeader.js.map +1 -1
- package/dist-es/list/VirtualizedList.js.map +1 -1
- package/dist-es/list/keyset.js.map +1 -1
- package/dist-es/list/useList.js.map +1 -1
- package/dist-es/list/useListHeight.js.map +1 -1
- package/dist-es/list/useVirtualization.js.map +1 -1
- package/dist-es/list-deprecated/List.js.map +1 -1
- package/dist-es/list-deprecated/ListBase.js.map +1 -1
- package/dist-es/list-deprecated/ListItem.js.map +1 -1
- package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-es/list-deprecated/ListItemContext.js.map +1 -1
- package/dist-es/list-deprecated/ListStateContext.js.map +1 -1
- package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
- package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-es/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
- package/dist-es/list-deprecated/internal/helpers.js.map +1 -1
- package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
- package/dist-es/list-deprecated/internal/useWidth.js.map +1 -1
- package/dist-es/list-deprecated/itemToString.js.map +1 -1
- package/dist-es/list-deprecated/useList.js.map +1 -1
- package/dist-es/list-deprecated/useListItem.js.map +1 -1
- package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-es/list-next/ListItemNext.js.map +1 -1
- package/dist-es/list-next/ListNext.js.map +1 -1
- package/dist-es/list-next/ListNextContext.js.map +1 -1
- package/dist-es/list-next/useList.js.map +1 -1
- package/dist-es/localization-provider/LocalizationProvider.js.map +1 -1
- package/dist-es/logo/Logo.js.map +1 -1
- package/dist-es/logo/LogoImage.js.map +1 -1
- package/dist-es/logo/LogoSeparator.js.map +1 -1
- package/dist-es/menu-button/MenuButton.js.map +1 -1
- package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-es/metric/Metric.js.map +1 -1
- package/dist-es/metric/MetricContent.js.map +1 -1
- package/dist-es/metric/MetricHeader.js.map +1 -1
- package/dist-es/metric/internal/MetricContext.js.map +1 -1
- package/dist-es/number-input/NumberInput.js.map +1 -1
- package/dist-es/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
- package/dist-es/number-input/internal/useCaret.js.map +1 -1
- package/dist-es/number-input/internal/useInterval.js.map +1 -1
- package/dist-es/number-input/internal/utils.js.map +1 -1
- package/dist-es/number-input/useNumberInput.js.map +1 -1
- package/dist-es/portal/Portal.js.map +1 -1
- package/dist-es/query-input/QueryInput.js.map +1 -1
- package/dist-es/query-input/internal/CategoryList.js.map +1 -1
- package/dist-es/query-input/internal/CategoryListContext.js.map +1 -1
- package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-es/query-input/internal/SearchList.js.map +1 -1
- package/dist-es/query-input/internal/ValueList.js.map +1 -1
- package/dist-es/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
- package/dist-es/query-input/useQueryInput.js.map +1 -1
- package/dist-es/responsive/OverflowReducer.js.map +1 -1
- package/dist-es/responsive/overflowUtils.js.map +1 -1
- package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
- package/dist-es/responsive/useInstantCollapse.js.map +1 -1
- package/dist-es/responsive/useOverflow.js.map +1 -1
- package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
- package/dist-es/responsive/useOverflowLayout.js.map +1 -1
- package/dist-es/responsive/useReclaimSpace.js.map +1 -1
- package/dist-es/responsive/useResizeObserver.js.map +1 -1
- package/dist-es/responsive/useWidth.js.map +1 -1
- package/dist-es/responsive/utils.js.map +1 -1
- package/dist-es/search-input/SearchInput.js.map +1 -1
- package/dist-es/static-list/StaticList.js.map +1 -1
- package/dist-es/static-list/StaticListItem.js.map +1 -1
- package/dist-es/static-list/StaticListItemContent.js.map +1 -1
- package/dist-es/system-status/SystemStatus.js.map +1 -1
- package/dist-es/system-status/SystemStatusActions.js.map +1 -1
- package/dist-es/system-status/SystemStatusContent.js.map +1 -1
- package/dist-es/table/TBody.js.map +1 -1
- package/dist-es/table/TD.js +6 -2
- package/dist-es/table/TD.js.map +1 -1
- package/dist-es/table/TFoot.js.map +1 -1
- package/dist-es/table/TH.js +6 -2
- package/dist-es/table/TH.js.map +1 -1
- package/dist-es/table/THead.js.map +1 -1
- package/dist-es/table/TR.js.map +1 -1
- package/dist-es/table/Table.css.js +1 -1
- package/dist-es/table/Table.js +2 -2
- package/dist-es/table/Table.js.map +1 -1
- package/dist-es/tabs/Tab.js.map +1 -1
- package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
- package/dist-es/tabs/TabPanel.js.map +1 -1
- package/dist-es/tabs/Tabs.js.map +1 -1
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-es/tabs/drag-drop/drag-utils.js.map +1 -1
- package/dist-es/tabs/drag-drop/dragDropTypes.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragDrop.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
- package/dist-es/tabs/useActivationIndicator.js.map +1 -1
- package/dist-es/tabs/useEditableItem.js.map +1 -1
- package/dist-es/tabs/useItemsWithIds.js.map +1 -1
- package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/tabs/useSelection.js.map +1 -1
- package/dist-es/tabs/useTabs.js.map +1 -1
- package/dist-es/tabs/useTabstrip.js.map +1 -1
- package/dist-es/tabs-next/TabBar.js.map +1 -1
- package/dist-es/tabs-next/TabListNext.js.map +1 -1
- package/dist-es/tabs-next/TabNext.js.map +1 -1
- package/dist-es/tabs-next/TabNextAction.js.map +1 -1
- package/dist-es/tabs-next/TabNextContext.js.map +1 -1
- package/dist-es/tabs-next/TabNextPanel.js.map +1 -1
- package/dist-es/tabs-next/TabNextTrigger.css.js +1 -1
- package/dist-es/tabs-next/TabNextTrigger.js.map +1 -1
- package/dist-es/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-es/tabs-next/TabsNext.js.map +1 -1
- package/dist-es/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-es/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-es/tabs-next/hooks/useFocusOutside.js.map +1 -1
- package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-es/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
- package/dist-es/toast-group/ToastGroup.js.map +1 -1
- package/dist-es/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
- package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
- package/dist-es/tokenized-input/internal/getCursorPosition.js.map +1 -1
- package/dist-es/tokenized-input/internal/isPlainObject.js.map +1 -1
- package/dist-es/tokenized-input/internal/useResizeObserver.js.map +1 -1
- package/dist-es/tokenized-input/internal/useWidth.js.map +1 -1
- package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/useWidth.js.map +1 -1
- package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
- package/dist-es/toolbar/Toolbar.js.map +1 -1
- package/dist-es/toolbar/ToolbarButton.js.map +1 -1
- package/dist-es/toolbar/Tooltray.js.map +1 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
- package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-es/tree/Tree.js.map +1 -1
- package/dist-es/tree/TreeNode.js.map +1 -1
- package/dist-es/tree/use-tree-keyboard-navigation.js.map +1 -1
- package/dist-es/tree/useTree.js.map +1 -1
- package/dist-es/utils/escapeRegExp.js.map +1 -1
- package/dist-es/utils/forwardCallbackProps.js.map +1 -1
- package/dist-es/utils/isEmail.js.map +1 -1
- package/dist-es/utils/isPlainObject.js.map +1 -1
- package/dist-es/utils/partition.js.map +1 -1
- package/dist-es/utils/useClickOutside.js.map +1 -1
- package/dist-es/utils/useEventCallback.js.map +1 -1
- package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-es/utils/useLayoutEffectOnce.js.map +1 -1
- package/dist-es/utils/useLayoutEffectSkipFirst.js.map +1 -1
- package/dist-es/utils/useOverflowDetection.js.map +1 -1
- package/dist-es/utils/useSlideSelection.js.map +1 -1
- package/dist-es/window/ElectronWindow.js.map +1 -1
- package/dist-es/window/WindowContext.js.map +1 -1
- package/dist-es/window/desktop-utils.js.map +1 -1
- package/dist-types/calendar/useCalendar.d.ts +26 -25
- package/dist-types/calendar/useCalendarDay.d.ts +1 -5
- package/dist-types/calendar/useCalendarSelection.d.ts +14 -11
- package/dist-types/date-picker/DatePickerContext.d.ts +0 -6
- package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +2 -2
- package/dist-types/date-picker/DatePickerRangePanel.d.ts +4 -4
- package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +2 -2
- package/dist-types/date-picker/useDatePicker.d.ts +0 -6
- package/dist-types/table/TD.d.ts +6 -0
- package/dist-types/table/TH.d.ts +6 -0
- package/dist-types/table/Table.d.ts +3 -3
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateUtils.js","sources":["../src/cascading-menu/internal/stateUtils.ts"],"sourcesContent":["import type { MenuDescriptor } from \"../CascadingMenuProps\";\n\nconst ID_SEPARATOR = \"-\";\n\nexport type menuState = {\n id: string;\n flipped?: boolean;\n highlightedItemIndex?: number;\n level: number;\n parentId: string | null;\n childMenus: {\n [key: number]: string;\n };\n menuItems: MenuDescriptor[];\n};\n\nexport type flattenedMenuState = {\n [key: string]: menuState;\n};\n\nexport function deriveFlatStateFromTree(\n tree: MenuDescriptor,\n parentId: string | null = null,\n level = 0,\n generatedId = \"salt-cascading-menu\",\n): flattenedMenuState {\n const { id = generatedId, menuItems = [] } = tree;\n return menuItems.reduce(\n (menuStructure, menuItem, index) => {\n if (hasSubMenu(menuItem)) {\n const generatedChildId = [generatedId, index].join(ID_SEPARATOR);\n menuStructure[id].childMenus[index] = menuItem.id || generatedChildId;\n\n const innerState = deriveFlatStateFromTree(\n menuItem,\n id,\n level + 1,\n generatedChildId,\n );\n // biome-ignore lint/performance/noAccumulatingSpread: reduce on object\n return { ...menuStructure, ...innerState };\n }\n return menuStructure;\n },\n // Initialize the structure with the root menu\n {\n [id]: {\n id,\n parentId,\n childMenus: {},\n menuItems: tree.menuItems,\n level,\n },\n } as flattenedMenuState,\n );\n}\n\nexport function hasSubMenu(item: MenuDescriptor) {\n return item != null && !!item.menuItems && item.menuItems.length > 0;\n}\n\nexport function isMenuItem(item: MenuDescriptor) {\n return item != null && !item.menuItems;\n}\n\nexport function hasIcon(item: MenuDescriptor) {\n return item != null && !!item.icon;\n}\n"],"names":[],"mappings":";;AAEA,MAAM,
|
|
1
|
+
{"version":3,"file":"stateUtils.js","sources":["../src/cascading-menu/internal/stateUtils.ts"],"sourcesContent":["import type { MenuDescriptor } from \"../CascadingMenuProps\";\n\nconst ID_SEPARATOR = \"-\";\n\nexport type menuState = {\n id: string;\n flipped?: boolean;\n highlightedItemIndex?: number;\n level: number;\n parentId: string | null;\n childMenus: {\n [key: number]: string;\n };\n menuItems: MenuDescriptor[];\n};\n\nexport type flattenedMenuState = {\n [key: string]: menuState;\n};\n\nexport function deriveFlatStateFromTree(\n tree: MenuDescriptor,\n parentId: string | null = null,\n level = 0,\n generatedId = \"salt-cascading-menu\",\n): flattenedMenuState {\n const { id = generatedId, menuItems = [] } = tree;\n return menuItems.reduce(\n (menuStructure, menuItem, index) => {\n if (hasSubMenu(menuItem)) {\n const generatedChildId = [generatedId, index].join(ID_SEPARATOR);\n menuStructure[id].childMenus[index] = menuItem.id || generatedChildId;\n\n const innerState = deriveFlatStateFromTree(\n menuItem,\n id,\n level + 1,\n generatedChildId,\n );\n // biome-ignore lint/performance/noAccumulatingSpread: reduce on object\n return { ...menuStructure, ...innerState };\n }\n return menuStructure;\n },\n // Initialize the structure with the root menu\n {\n [id]: {\n id,\n parentId,\n childMenus: {},\n menuItems: tree.menuItems,\n level,\n },\n } as flattenedMenuState,\n );\n}\n\nexport function hasSubMenu(item: MenuDescriptor) {\n return item != null && !!item.menuItems && item.menuItems.length > 0;\n}\n\nexport function isMenuItem(item: MenuDescriptor) {\n return item != null && !item.menuItems;\n}\n\nexport function hasIcon(item: MenuDescriptor) {\n return item != null && !!item.icon;\n}\n"],"names":[],"mappings":";;AAEA,MAAM,YAAA,GAAe,GAAA;AAkBd,SAAS,wBACd,IAAA,EACA,QAAA,GAA0B,MAC1B,KAAA,GAAQ,CAAA,EACR,cAAc,qBAAA,EACM;AACpB,EAAA,MAAM,EAAE,EAAA,GAAK,WAAA,EAAa,SAAA,GAAY,IAAG,GAAI,IAAA;AAC7C,EAAA,OAAO,SAAA,CAAU,MAAA;AAAA,IACf,CAAC,aAAA,EAAe,QAAA,EAAU,KAAA,KAAU;AAClC,MAAA,IAAI,UAAA,CAAW,QAAQ,CAAA,EAAG;AACxB,QAAA,MAAM,mBAAmB,CAAC,WAAA,EAAa,KAAK,CAAA,CAAE,KAAK,YAAY,CAAA;AAC/D,QAAA,aAAA,CAAc,EAAE,CAAA,CAAE,UAAA,CAAW,KAAK,CAAA,GAAI,SAAS,EAAA,IAAM,gBAAA;AAErD,QAAA,MAAM,UAAA,GAAa,uBAAA;AAAA,UACjB,QAAA;AAAA,UACA,EAAA;AAAA,UACA,KAAA,GAAQ,CAAA;AAAA,UACR;AAAA,SACF;AAEA,QAAA,OAAO,EAAE,GAAG,aAAA,EAAe,GAAG,UAAA,EAAW;AAAA,MAC3C;AACA,MAAA,OAAO,aAAA;AAAA,IACT,CAAA;AAAA;AAAA,IAEA;AAAA,MACE,CAAC,EAAE,GAAG;AAAA,QACJ,EAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,EAAC;AAAA,QACb,WAAW,IAAA,CAAK,SAAA;AAAA,QAChB;AAAA;AACF;AACF,GACF;AACF;AAEO,SAAS,WAAW,IAAA,EAAsB;AAC/C,EAAA,OAAO,IAAA,IAAQ,QAAQ,CAAC,CAAC,KAAK,SAAA,IAAa,IAAA,CAAK,UAAU,MAAA,GAAS,CAAA;AACrE;AAEO,SAAS,WAAW,IAAA,EAAsB;AAC/C,EAAA,OAAO,IAAA,IAAQ,IAAA,IAAQ,CAAC,IAAA,CAAK,SAAA;AAC/B;AAEO,SAAS,QAAQ,IAAA,EAAsB;AAC5C,EAAA,OAAO,IAAA,IAAQ,IAAA,IAAQ,CAAC,CAAC,IAAA,CAAK,IAAA;AAChC;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useClickAway.js","sources":["../src/cascading-menu/internal/useClickAway.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useEventCallback } from \"../../utils\";\n\nimport { useMountedRef } from \"./useMountedRef\";\n\nfunction eventComingFromNodes(nodes: HTMLElement[], event: MouseEvent) {\n return nodes.some(\n (node) =>\n node != null &&\n (node === event.target || node.contains(event.target as HTMLElement)),\n );\n}\n\ntype clickAwayHook = (\n nodes: HTMLElement[] | (() => HTMLElement[]) | null,\n containingDocument: Document,\n onClickAway: (event: FocusEvent) => void,\n onClick: (event: MouseEvent) => void,\n mouseEvent?: keyof DocumentEventMap,\n) => void;\n\nexport const useClickAway: clickAwayHook = (\n nodes,\n containingDocument,\n onClickAway,\n onClick = () => undefined,\n mouseEvent = \"mouseup\",\n) => {\n //TODO can we get rid of this if it's just for IE11 ?\n const mountedRef = useMountedRef();\n\n const handleClickAway = useEventCallback((event: MouseEvent) => {\n // Ignore events that have been `event.preventDefault()` marked.\n if (event.defaultPrevented) {\n return;\n }\n\n // IE 11 support, which trigger the handleClickAway even after the unbind\n if (!mountedRef.current) {\n return;\n }\n\n onClick(event);\n\n if (!nodes) {\n return;\n }\n\n const resolvedNodes = typeof nodes === \"function\" ? nodes() : nodes;\n const isEventComingFromNodes = eventComingFromNodes(resolvedNodes, event);\n\n const ownerDocumentNode = resolvedNodes.find((node) =>\n // node could be null, e.g. left click on surrounding area of context menu examples\n node ? node.ownerDocument : false,\n );\n const doc = containingDocument || ownerDocumentNode?.ownerDocument;\n\n if (\n doc.documentElement?.contains(event.target as HTMLElement) &&\n !isEventComingFromNodes\n ) {\n onClickAway(event);\n }\n });\n\n useEffect(() => {\n if (containingDocument) {\n containingDocument.addEventListener(\n mouseEvent,\n handleClickAway as EventListener,\n );\n containingDocument.defaultView?.addEventListener(\"blur\", onClickAway);\n }\n return () => {\n if (containingDocument) {\n containingDocument.removeEventListener(\n mouseEvent,\n handleClickAway as EventListener,\n );\n containingDocument.defaultView?.removeEventListener(\n \"blur\",\n onClickAway,\n );\n }\n };\n }, [handleClickAway, mouseEvent, containingDocument, onClickAway]);\n};\n"],"names":["useMountedRef","useEventCallback","useEffect","_a"],"mappings":";;;;;;;AAKA,SAAS,oBAAA,CAAqB,OAAsB,
|
|
1
|
+
{"version":3,"file":"useClickAway.js","sources":["../src/cascading-menu/internal/useClickAway.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useEventCallback } from \"../../utils\";\n\nimport { useMountedRef } from \"./useMountedRef\";\n\nfunction eventComingFromNodes(nodes: HTMLElement[], event: MouseEvent) {\n return nodes.some(\n (node) =>\n node != null &&\n (node === event.target || node.contains(event.target as HTMLElement)),\n );\n}\n\ntype clickAwayHook = (\n nodes: HTMLElement[] | (() => HTMLElement[]) | null,\n containingDocument: Document,\n onClickAway: (event: FocusEvent) => void,\n onClick: (event: MouseEvent) => void,\n mouseEvent?: keyof DocumentEventMap,\n) => void;\n\nexport const useClickAway: clickAwayHook = (\n nodes,\n containingDocument,\n onClickAway,\n onClick = () => undefined,\n mouseEvent = \"mouseup\",\n) => {\n //TODO can we get rid of this if it's just for IE11 ?\n const mountedRef = useMountedRef();\n\n const handleClickAway = useEventCallback((event: MouseEvent) => {\n // Ignore events that have been `event.preventDefault()` marked.\n if (event.defaultPrevented) {\n return;\n }\n\n // IE 11 support, which trigger the handleClickAway even after the unbind\n if (!mountedRef.current) {\n return;\n }\n\n onClick(event);\n\n if (!nodes) {\n return;\n }\n\n const resolvedNodes = typeof nodes === \"function\" ? nodes() : nodes;\n const isEventComingFromNodes = eventComingFromNodes(resolvedNodes, event);\n\n const ownerDocumentNode = resolvedNodes.find((node) =>\n // node could be null, e.g. left click on surrounding area of context menu examples\n node ? node.ownerDocument : false,\n );\n const doc = containingDocument || ownerDocumentNode?.ownerDocument;\n\n if (\n doc.documentElement?.contains(event.target as HTMLElement) &&\n !isEventComingFromNodes\n ) {\n onClickAway(event);\n }\n });\n\n useEffect(() => {\n if (containingDocument) {\n containingDocument.addEventListener(\n mouseEvent,\n handleClickAway as EventListener,\n );\n containingDocument.defaultView?.addEventListener(\"blur\", onClickAway);\n }\n return () => {\n if (containingDocument) {\n containingDocument.removeEventListener(\n mouseEvent,\n handleClickAway as EventListener,\n );\n containingDocument.defaultView?.removeEventListener(\n \"blur\",\n onClickAway,\n );\n }\n };\n }, [handleClickAway, mouseEvent, containingDocument, onClickAway]);\n};\n"],"names":["useMountedRef","useEventCallback","useEffect","_a"],"mappings":";;;;;;;AAKA,SAAS,oBAAA,CAAqB,OAAsB,KAAA,EAAmB;AACrE,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACX,CAAC,IAAA,KACC,IAAA,IAAQ,IAAA,KACP,IAAA,KAAS,MAAM,MAAA,IAAU,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,MAAqB,CAAA;AAAA,GACvE;AACF;AAUO,MAAM,YAAA,GAA8B,CACzC,KAAA,EACA,kBAAA,EACA,aACA,OAAA,GAAU,MAAM,MAAA,EAChB,UAAA,GAAa,SAAA,KACV;AAEH,EAAA,MAAM,aAAaA,2BAAA,EAAc;AAEjC,EAAA,MAAM,eAAA,GAAkBC,iCAAA,CAAiB,CAAC,KAAA,KAAsB;AA/BlE,IAAA,IAAA,EAAA;AAiCI,IAAA,IAAI,MAAM,gBAAA,EAAkB;AAC1B,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACvB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,KAAK,CAAA;AAEb,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,aAAA,GAAgB,OAAO,KAAA,KAAU,UAAA,GAAa,OAAM,GAAI,KAAA;AAC9D,IAAA,MAAM,sBAAA,GAAyB,oBAAA,CAAqB,aAAA,EAAe,KAAK,CAAA;AAExE,IAAA,MAAM,oBAAoB,aAAA,CAAc,IAAA;AAAA,MAAK,CAAC,IAAA;AAAA;AAAA,QAE5C,IAAA,GAAO,KAAK,aAAA,GAAgB;AAAA;AAAA,KAC9B;AACA,IAAA,MAAM,GAAA,GAAM,uBAAsB,iBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,iBAAA,CAAmB,aAAA,CAAA;AAErD,IAAA,IAAA,CAAA,CACE,SAAI,eAAA,KAAJ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,SAAS,KAAA,CAAM,MAAA,CAAA,KACpC,CAAC,sBAAA,EACD;AACA,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAED,EAAAC,eAAA,CAAU,MAAM;AAjElB,IAAA,IAAA,EAAA;AAkEI,IAAA,IAAI,kBAAA,EAAoB;AACtB,MAAA,kBAAA,CAAmB,gBAAA;AAAA,QACjB,UAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,CAAA,EAAA,GAAA,kBAAA,CAAmB,WAAA,KAAnB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgC,gBAAA,CAAiB,MAAA,EAAQ,WAAA,CAAA;AAAA,IAC3D;AACA,IAAA,OAAO,MAAM;AAzEjB,MAAA,IAAAC,GAAAA;AA0EM,MAAA,IAAI,kBAAA,EAAoB;AACtB,QAAA,kBAAA,CAAmB,mBAAA;AAAA,UACjB,UAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,CAAAA,GAAAA,GAAA,kBAAA,CAAmB,WAAA,KAAnB,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAgC,mBAAA;AAAA,UAC9B,MAAA;AAAA,UACA;AAAA,SAAA;AAAA,MAEJ;AAAA,IACF,CAAA;AAAA,EACF,GAAG,CAAC,eAAA,EAAiB,UAAA,EAAY,kBAAA,EAAoB,WAAW,CAAC,CAAA;AACnE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuTriggerHandlers.js","sources":["../src/cascading-menu/internal/useMenuTriggerHandlers.ts"],"sourcesContent":["import {\n type Dispatch,\n type HTMLAttributes,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n} from \"react\";\nimport { useEventCallback } from \"../../utils\";\nimport type { CascadingMenuProps } from \"../CascadingMenuProps\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction, type menuAction } from \"./CascadingMenuAction\";\nimport type { menuState } from \"./stateUtils\";\nimport type { stateItem } from \"./useStateReducer\";\n\ninterface useMenuTriggerHandlersProps {\n dispatch: Dispatch<menuAction>;\n children: CascadingMenuProps[\"children\"];\n setIsNavigatingWithKeyboard: (value: boolean) => void;\n openCloseMenu: (open: boolean) => void;\n rootMenuState: stateItem;\n rootMenuId: string | undefined;\n menusDataById: Record<string, menuState>;\n}\n\nexport function useMenuTriggerHandlers({\n dispatch,\n children,\n setIsNavigatingWithKeyboard,\n openCloseMenu,\n rootMenuState,\n rootMenuId,\n menusDataById = {},\n}: useMenuTriggerHandlersProps) {\n const handleOnClick = useEventCallback((event: MouseEvent<HTMLElement>) => {\n const { type } = event;\n\n setIsNavigatingWithKeyboard(false);\n if (type === \"click\") {\n if (isValidElement(children)) {\n const childrenProps = children.props as HTMLAttributes<HTMLElement>;\n childrenProps.onClick?.(event);\n }\n openCloseMenu(!rootMenuState);\n }\n });\n\n const handleOnKeydown = useEventCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const { key } = event;\n\n switch (key) {\n case \"Spacebar\":\n case \" \":\n case \"Enter\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (!rootMenuId) {\n break;\n }\n dispatch({\n type: rootMenuState\n ? CascadingMenuAction.CLOSE_MENU\n : CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n break;\n case \"ArrowDown\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (rootMenuState || !rootMenuId) {\n break;\n }\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n break;\n case \"ArrowUp\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (rootMenuState || !rootMenuId) {\n break;\n }\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_UP,\n targetId: rootMenuId,\n highlightedItemIndex:\n menusDataById[rootMenuId].menuItems.length - 1,\n });\n break;\n default:\n break;\n }\n\n if (isValidElement(children)) {\n const childrenProps = children.props as HTMLAttributes<HTMLElement>;\n childrenProps.onKeyDown?.(event);\n }\n },\n );\n\n return [handleOnClick, handleOnKeydown] as const;\n}\n"],"names":["useEventCallback","isValidElement","CascadingMenuAction","stateChangeTypes"],"mappings":";;;;;;;;AAwBO,SAAS,
|
|
1
|
+
{"version":3,"file":"useMenuTriggerHandlers.js","sources":["../src/cascading-menu/internal/useMenuTriggerHandlers.ts"],"sourcesContent":["import {\n type Dispatch,\n type HTMLAttributes,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n} from \"react\";\nimport { useEventCallback } from \"../../utils\";\nimport type { CascadingMenuProps } from \"../CascadingMenuProps\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction, type menuAction } from \"./CascadingMenuAction\";\nimport type { menuState } from \"./stateUtils\";\nimport type { stateItem } from \"./useStateReducer\";\n\ninterface useMenuTriggerHandlersProps {\n dispatch: Dispatch<menuAction>;\n children: CascadingMenuProps[\"children\"];\n setIsNavigatingWithKeyboard: (value: boolean) => void;\n openCloseMenu: (open: boolean) => void;\n rootMenuState: stateItem;\n rootMenuId: string | undefined;\n menusDataById: Record<string, menuState>;\n}\n\nexport function useMenuTriggerHandlers({\n dispatch,\n children,\n setIsNavigatingWithKeyboard,\n openCloseMenu,\n rootMenuState,\n rootMenuId,\n menusDataById = {},\n}: useMenuTriggerHandlersProps) {\n const handleOnClick = useEventCallback((event: MouseEvent<HTMLElement>) => {\n const { type } = event;\n\n setIsNavigatingWithKeyboard(false);\n if (type === \"click\") {\n if (isValidElement(children)) {\n const childrenProps = children.props as HTMLAttributes<HTMLElement>;\n childrenProps.onClick?.(event);\n }\n openCloseMenu(!rootMenuState);\n }\n });\n\n const handleOnKeydown = useEventCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const { key } = event;\n\n switch (key) {\n case \"Spacebar\":\n case \" \":\n case \"Enter\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (!rootMenuId) {\n break;\n }\n dispatch({\n type: rootMenuState\n ? CascadingMenuAction.CLOSE_MENU\n : CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n break;\n case \"ArrowDown\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (rootMenuState || !rootMenuId) {\n break;\n }\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n break;\n case \"ArrowUp\":\n event.stopPropagation();\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (rootMenuState || !rootMenuId) {\n break;\n }\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.KEYBOARD_TOGGLE,\n targetId: rootMenuId,\n });\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_UP,\n targetId: rootMenuId,\n highlightedItemIndex:\n menusDataById[rootMenuId].menuItems.length - 1,\n });\n break;\n default:\n break;\n }\n\n if (isValidElement(children)) {\n const childrenProps = children.props as HTMLAttributes<HTMLElement>;\n childrenProps.onKeyDown?.(event);\n }\n },\n );\n\n return [handleOnClick, handleOnKeydown] as const;\n}\n"],"names":["useEventCallback","isValidElement","CascadingMenuAction","stateChangeTypes"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMountedRef.js","sources":["../src/cascading-menu/internal/useMountedRef.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n/**\n * Used to know if the component is mounted or not\n */\nexport function useMountedRef() {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n return mountedRef;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAIO,SAAS,
|
|
1
|
+
{"version":3,"file":"useMountedRef.js","sources":["../src/cascading-menu/internal/useMountedRef.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n/**\n * Used to know if the component is mounted or not\n */\nexport function useMountedRef() {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n return mountedRef;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAIO,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,UAAA,GAAaA,aAAO,KAAK,CAAA;AAC/B,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,IAAA,OAAO,MAAM;AACX,MAAA,UAAA,CAAW,OAAA,GAAU,KAAA;AAAA,IACvB,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,UAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMouseHandlers.js","sources":["../src/cascading-menu/internal/useMouseHandlers.ts"],"sourcesContent":["import {\n type Dispatch,\n type MouseEvent,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\n\nimport type { CascadingMenuListProps } from \"../CascadingMenuList\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction } from \"./CascadingMenuAction\";\n\nfunction isOrContainsNode(parent: HTMLElement | null, child: HTMLElement) {\n return parent === child || !!parent?.contains?.(child);\n}\n\nexport function useMouseHandlers(\n props: CascadingMenuListProps,\n isMenuActiveState: [boolean, Dispatch<SetStateAction<boolean>>],\n menuRef: HTMLElement | null,\n) {\n const [isMenuActive, setIsMenuActive] = isMenuActiveState;\n const {\n delay,\n refsManager,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n data,\n highlightedItemIndex,\n menuId,\n parentElement,\n } = props;\n const scheduledHighlightedIndexChange = useRef<number | null>(null);\n const mouseEnterTimer = useRef<number>();\n const mouseOutTimer = useRef<number>();\n\n useEffect(\n () =>\n function cleanUpTimeouts() {\n clearTimeout(mouseEnterTimer.current);\n clearTimeout(mouseOutTimer.current);\n },\n [],\n );\n\n const handleMouseMove = useCallback(\n (highlightedIndex: number) => {\n if (isNavigatingWithKeyboard) {\n setIsNavigatingWithKeyboard(false);\n }\n\n if (!isMenuActive) {\n setIsMenuActive(true);\n }\n if (scheduledHighlightedIndexChange.current !== highlightedIndex) {\n scheduledHighlightedIndexChange.current = highlightedIndex;\n clearTimeout(mouseEnterTimer.current);\n clearTimeout(mouseOutTimer.current);\n mouseEnterTimer.current = window.setTimeout(() => {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_MOUSE_ENTER,\n targetId: menuId,\n highlightedItemIndex: highlightedIndex,\n });\n }, delay);\n }\n },\n [\n isNavigatingWithKeyboard,\n isMenuActive,\n setIsNavigatingWithKeyboard,\n setIsMenuActive,\n delay,\n dispatch,\n menuId,\n ],\n );\n const handleMouseOut = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (isNavigatingWithKeyboard) {\n setIsNavigatingWithKeyboard(false);\n }\n clearTimeout(mouseOutTimer.current);\n // If mouse leaves from parent menu into other element other than submenu -> close submenu\n const { relatedTarget } = event;\n const subMenuElement =\n typeof highlightedItemIndex === \"number\"\n ? (refsManager.get(data.childMenus[highlightedItemIndex]) ?? null)\n : null;\n\n const mouseMovedToSameMenu = isOrContainsNode(\n menuRef,\n relatedTarget as HTMLElement,\n );\n const mouseMovedToParentMenu = isOrContainsNode(\n parentElement ?? null,\n relatedTarget as HTMLElement,\n );\n\n if (mouseMovedToParentMenu) {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_MOUSE_MOVE_TO_PARENT,\n targetId: menuId,\n highlightedItemIndex: -1,\n });\n }\n const didMouseMoveOutOfMenu = !(\n mouseMovedToParentMenu ||\n mouseMovedToSameMenu ||\n isOrContainsNode(subMenuElement, relatedTarget as HTMLElement)\n );\n\n if (didMouseMoveOutOfMenu) {\n scheduledHighlightedIndexChange.current = null;\n if (!isMenuActive) {\n setIsMenuActive(true);\n clearInterval(mouseEnterTimer.current);\n mouseOutTimer.current = window.setTimeout(() => {\n dispatch({\n type: CascadingMenuAction.RESET_MENU,\n cause: stateChangeTypes.MOUSE_OUT_OF_MENUS,\n targetId: menuId,\n });\n }, delay);\n }\n } else if (!mouseMovedToSameMenu) {\n setIsMenuActive(false);\n }\n },\n [\n isNavigatingWithKeyboard,\n refsManager,\n data.childMenus,\n highlightedItemIndex,\n menuRef,\n parentElement,\n setIsNavigatingWithKeyboard,\n dispatch,\n menuId,\n isMenuActive,\n delay,\n setIsMenuActive,\n ],\n );\n return [handleMouseMove, handleMouseOut] as const;\n}\n"],"names":["useRef","useEffect","useCallback","CascadingMenuAction","stateChangeTypes"],"mappings":";;;;;;AAaA,SAAS,gBAAA,CAAiB,QAA4B,
|
|
1
|
+
{"version":3,"file":"useMouseHandlers.js","sources":["../src/cascading-menu/internal/useMouseHandlers.ts"],"sourcesContent":["import {\n type Dispatch,\n type MouseEvent,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\n\nimport type { CascadingMenuListProps } from \"../CascadingMenuList\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction } from \"./CascadingMenuAction\";\n\nfunction isOrContainsNode(parent: HTMLElement | null, child: HTMLElement) {\n return parent === child || !!parent?.contains?.(child);\n}\n\nexport function useMouseHandlers(\n props: CascadingMenuListProps,\n isMenuActiveState: [boolean, Dispatch<SetStateAction<boolean>>],\n menuRef: HTMLElement | null,\n) {\n const [isMenuActive, setIsMenuActive] = isMenuActiveState;\n const {\n delay,\n refsManager,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n data,\n highlightedItemIndex,\n menuId,\n parentElement,\n } = props;\n const scheduledHighlightedIndexChange = useRef<number | null>(null);\n const mouseEnterTimer = useRef<number>();\n const mouseOutTimer = useRef<number>();\n\n useEffect(\n () =>\n function cleanUpTimeouts() {\n clearTimeout(mouseEnterTimer.current);\n clearTimeout(mouseOutTimer.current);\n },\n [],\n );\n\n const handleMouseMove = useCallback(\n (highlightedIndex: number) => {\n if (isNavigatingWithKeyboard) {\n setIsNavigatingWithKeyboard(false);\n }\n\n if (!isMenuActive) {\n setIsMenuActive(true);\n }\n if (scheduledHighlightedIndexChange.current !== highlightedIndex) {\n scheduledHighlightedIndexChange.current = highlightedIndex;\n clearTimeout(mouseEnterTimer.current);\n clearTimeout(mouseOutTimer.current);\n mouseEnterTimer.current = window.setTimeout(() => {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_MOUSE_ENTER,\n targetId: menuId,\n highlightedItemIndex: highlightedIndex,\n });\n }, delay);\n }\n },\n [\n isNavigatingWithKeyboard,\n isMenuActive,\n setIsNavigatingWithKeyboard,\n setIsMenuActive,\n delay,\n dispatch,\n menuId,\n ],\n );\n const handleMouseOut = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (isNavigatingWithKeyboard) {\n setIsNavigatingWithKeyboard(false);\n }\n clearTimeout(mouseOutTimer.current);\n // If mouse leaves from parent menu into other element other than submenu -> close submenu\n const { relatedTarget } = event;\n const subMenuElement =\n typeof highlightedItemIndex === \"number\"\n ? (refsManager.get(data.childMenus[highlightedItemIndex]) ?? null)\n : null;\n\n const mouseMovedToSameMenu = isOrContainsNode(\n menuRef,\n relatedTarget as HTMLElement,\n );\n const mouseMovedToParentMenu = isOrContainsNode(\n parentElement ?? null,\n relatedTarget as HTMLElement,\n );\n\n if (mouseMovedToParentMenu) {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_MOUSE_MOVE_TO_PARENT,\n targetId: menuId,\n highlightedItemIndex: -1,\n });\n }\n const didMouseMoveOutOfMenu = !(\n mouseMovedToParentMenu ||\n mouseMovedToSameMenu ||\n isOrContainsNode(subMenuElement, relatedTarget as HTMLElement)\n );\n\n if (didMouseMoveOutOfMenu) {\n scheduledHighlightedIndexChange.current = null;\n if (!isMenuActive) {\n setIsMenuActive(true);\n clearInterval(mouseEnterTimer.current);\n mouseOutTimer.current = window.setTimeout(() => {\n dispatch({\n type: CascadingMenuAction.RESET_MENU,\n cause: stateChangeTypes.MOUSE_OUT_OF_MENUS,\n targetId: menuId,\n });\n }, delay);\n }\n } else if (!mouseMovedToSameMenu) {\n setIsMenuActive(false);\n }\n },\n [\n isNavigatingWithKeyboard,\n refsManager,\n data.childMenus,\n highlightedItemIndex,\n menuRef,\n parentElement,\n setIsNavigatingWithKeyboard,\n dispatch,\n menuId,\n isMenuActive,\n delay,\n setIsMenuActive,\n ],\n );\n return [handleMouseMove, handleMouseOut] as const;\n}\n"],"names":["useRef","useEffect","useCallback","CascadingMenuAction","stateChangeTypes"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRefsManager.js","sources":["../src/cascading-menu/internal/useRefsManager.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer, useRef } from \"react\";\n\nexport type refsManager = {\n get: (key: string) => HTMLElement | undefined;\n set: (key: string, ref: HTMLElement) => void;\n values: () => HTMLElement[];\n};\n\nexport function useRefsManager(): refsManager {\n const refs = useRef(new Map<string, HTMLElement>());\n const [, forceUpdate] = useReducer((x) => !x, false);\n\n const get = useCallback((key: string) => refs.current.get(key), []);\n\n const set = useCallback((key: string, value: HTMLElement) => {\n refs.current.set(key, value);\n forceUpdate();\n }, []);\n\n const values = useCallback(() => {\n const vals: HTMLElement[] = [];\n for (const value of refs.current.values()) {\n vals.push(value);\n }\n return vals;\n }, []);\n\n return useMemo(() => ({ get, set, values }), [get, set, values]);\n}\n"],"names":["useRef","useReducer","useCallback","useMemo"],"mappings":";;;;AAQO,SAAS,
|
|
1
|
+
{"version":3,"file":"useRefsManager.js","sources":["../src/cascading-menu/internal/useRefsManager.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer, useRef } from \"react\";\n\nexport type refsManager = {\n get: (key: string) => HTMLElement | undefined;\n set: (key: string, ref: HTMLElement) => void;\n values: () => HTMLElement[];\n};\n\nexport function useRefsManager(): refsManager {\n const refs = useRef(new Map<string, HTMLElement>());\n const [, forceUpdate] = useReducer((x) => !x, false);\n\n const get = useCallback((key: string) => refs.current.get(key), []);\n\n const set = useCallback((key: string, value: HTMLElement) => {\n refs.current.set(key, value);\n forceUpdate();\n }, []);\n\n const values = useCallback(() => {\n const vals: HTMLElement[] = [];\n for (const value of refs.current.values()) {\n vals.push(value);\n }\n return vals;\n }, []);\n\n return useMemo(() => ({ get, set, values }), [get, set, values]);\n}\n"],"names":["useRef","useReducer","useCallback","useMemo"],"mappings":";;;;AAQO,SAAS,cAAA,GAA8B;AAC5C,EAAA,MAAM,IAAA,GAAOA,YAAA,iBAAO,IAAI,GAAA,EAA0B,CAAA;AAClD,EAAA,MAAM,GAAG,WAAW,CAAA,GAAIC,iBAAW,CAAC,CAAA,KAAM,CAAC,CAAA,EAAG,KAAK,CAAA;AAEnD,EAAA,MAAM,GAAA,GAAMC,iBAAA,CAAY,CAAC,GAAA,KAAgB,IAAA,CAAK,QAAQ,GAAA,CAAI,GAAG,CAAA,EAAG,EAAE,CAAA;AAElE,EAAA,MAAM,GAAA,GAAMA,iBAAA,CAAY,CAAC,GAAA,EAAa,KAAA,KAAuB;AAC3D,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAC3B,IAAA,WAAA,EAAY;AAAA,EACd,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,MAAA,GAASA,kBAAY,MAAM;AAC/B,IAAA,MAAM,OAAsB,EAAC;AAC7B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAO,EAAG;AACzC,MAAA,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,IACjB;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAOC,aAAA,CAAQ,OAAO,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAO,CAAA,EAAI,CAAC,GAAA,EAAK,GAAA,EAAK,MAAM,CAAC,CAAA;AACjE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStateReducer.js","sources":["../src/cascading-menu/internal/useStateReducer.ts"],"sourcesContent":["import { useCallback } from \"react\";\n\nimport { CascadingMenuAction, type menuAction } from \"./CascadingMenuAction\";\nimport type { flattenedMenuState, menuState } from \"./stateUtils\";\n\nexport type stateItem = {\n id: string;\n highlightedItemIndex: number | null;\n};\n\ntype state = stateItem[];\n\nfunction getDefaultMenuState(id: string): stateItem {\n return {\n id,\n highlightedItemIndex: null,\n };\n}\n\nfunction deleteAllMenusStartingFromLevel(level: number, menus: stateItem[]) {\n const newState = [...menus];\n newState.splice(level);\n return newState;\n}\n\nfunction menuPositionReducer(state: state, action: menuAction, level: number) {\n const { type } = action;\n switch (type) {\n case CascadingMenuAction.SET_FLIPPED:\n state[level] = {\n ...state[level],\n };\n return state;\n default:\n return state;\n }\n}\n\nexport function useStateReducer(\n menusDataById: flattenedMenuState,\n isNavigatingWithKeyboard: boolean,\n) {\n return useCallback(\n (state: state, action: menuAction): state => {\n let newState = [...state];\n const { type, targetId, highlightedItemIndex = null } = action;\n const { level, childMenus = [] } = Object(\n menusDataById[targetId],\n ) as menuState;\n const childId =\n typeof highlightedItemIndex === \"number\"\n ? childMenus[highlightedItemIndex]\n : null;\n const childMenuData = childId ? menusDataById[childId] : undefined;\n\n newState = menuPositionReducer(newState, action, level);\n switch (type) {\n case CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM:\n newState[level] = {\n ...newState[level],\n highlightedItemIndex,\n };\n newState = deleteAllMenusStartingFromLevel(level + 1, newState);\n if (childId && childMenuData && !isNavigatingWithKeyboard) {\n newState[childMenuData.level] = getDefaultMenuState(childId);\n }\n break;\n case CascadingMenuAction.RESET_MENU:\n newState[level] = {\n ...newState[level],\n highlightedItemIndex: null,\n };\n newState = deleteAllMenusStartingFromLevel(level + 1, newState);\n break;\n case CascadingMenuAction.OPEN_MENU:\n newState[level] = getDefaultMenuState(targetId);\n break;\n case CascadingMenuAction.CLOSE_MENU:\n newState = deleteAllMenusStartingFromLevel(level, newState);\n break;\n case CascadingMenuAction.CLOSE_CASCADING_MENU:\n newState = [];\n break;\n default:\n break;\n }\n return newState;\n },\n [isNavigatingWithKeyboard, menusDataById],\n );\n}\n"],"names":["CascadingMenuAction","useCallback"],"mappings":";;;;;AAYA,SAAS,oBAAoB,EAAuB
|
|
1
|
+
{"version":3,"file":"useStateReducer.js","sources":["../src/cascading-menu/internal/useStateReducer.ts"],"sourcesContent":["import { useCallback } from \"react\";\n\nimport { CascadingMenuAction, type menuAction } from \"./CascadingMenuAction\";\nimport type { flattenedMenuState, menuState } from \"./stateUtils\";\n\nexport type stateItem = {\n id: string;\n highlightedItemIndex: number | null;\n};\n\ntype state = stateItem[];\n\nfunction getDefaultMenuState(id: string): stateItem {\n return {\n id,\n highlightedItemIndex: null,\n };\n}\n\nfunction deleteAllMenusStartingFromLevel(level: number, menus: stateItem[]) {\n const newState = [...menus];\n newState.splice(level);\n return newState;\n}\n\nfunction menuPositionReducer(state: state, action: menuAction, level: number) {\n const { type } = action;\n switch (type) {\n case CascadingMenuAction.SET_FLIPPED:\n state[level] = {\n ...state[level],\n };\n return state;\n default:\n return state;\n }\n}\n\nexport function useStateReducer(\n menusDataById: flattenedMenuState,\n isNavigatingWithKeyboard: boolean,\n) {\n return useCallback(\n (state: state, action: menuAction): state => {\n let newState = [...state];\n const { type, targetId, highlightedItemIndex = null } = action;\n const { level, childMenus = [] } = Object(\n menusDataById[targetId],\n ) as menuState;\n const childId =\n typeof highlightedItemIndex === \"number\"\n ? childMenus[highlightedItemIndex]\n : null;\n const childMenuData = childId ? menusDataById[childId] : undefined;\n\n newState = menuPositionReducer(newState, action, level);\n switch (type) {\n case CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM:\n newState[level] = {\n ...newState[level],\n highlightedItemIndex,\n };\n newState = deleteAllMenusStartingFromLevel(level + 1, newState);\n if (childId && childMenuData && !isNavigatingWithKeyboard) {\n newState[childMenuData.level] = getDefaultMenuState(childId);\n }\n break;\n case CascadingMenuAction.RESET_MENU:\n newState[level] = {\n ...newState[level],\n highlightedItemIndex: null,\n };\n newState = deleteAllMenusStartingFromLevel(level + 1, newState);\n break;\n case CascadingMenuAction.OPEN_MENU:\n newState[level] = getDefaultMenuState(targetId);\n break;\n case CascadingMenuAction.CLOSE_MENU:\n newState = deleteAllMenusStartingFromLevel(level, newState);\n break;\n case CascadingMenuAction.CLOSE_CASCADING_MENU:\n newState = [];\n break;\n default:\n break;\n }\n return newState;\n },\n [isNavigatingWithKeyboard, menusDataById],\n );\n}\n"],"names":["CascadingMenuAction","useCallback"],"mappings":";;;;;AAYA,SAAS,oBAAoB,EAAA,EAAuB;AAClD,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,oBAAA,EAAsB;AAAA,GACxB;AACF;AAEA,SAAS,+BAAA,CAAgC,OAAe,KAAA,EAAoB;AAC1E,EAAA,MAAM,QAAA,GAAW,CAAC,GAAG,KAAK,CAAA;AAC1B,EAAA,QAAA,CAAS,OAAO,KAAK,CAAA;AACrB,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,mBAAA,CAAoB,KAAA,EAAc,MAAA,EAAoB,KAAA,EAAe;AAC5E,EAAA,MAAM,EAAE,MAAK,GAAI,MAAA;AACjB,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAKA,uCAAA,CAAoB,WAAA;AACvB,MAAA,KAAA,CAAM,KAAK,CAAA,GAAI;AAAA,QACb,GAAG,MAAM,KAAK;AAAA,OAChB;AACA,MAAA,OAAO,KAAA;AAAA,IACT;AACE,MAAA,OAAO,KAAA;AAAA;AAEb;AAEO,SAAS,eAAA,CACd,eACA,wBAAA,EACA;AACA,EAAA,OAAOC,iBAAA;AAAA,IACL,CAAC,OAAc,MAAA,KAA8B;AAC3C,MAAA,IAAI,QAAA,GAAW,CAAC,GAAG,KAAK,CAAA;AACxB,MAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,oBAAA,GAAuB,MAAK,GAAI,MAAA;AACxD,MAAA,MAAM,EAAE,KAAA,EAAO,UAAA,GAAa,IAAG,GAAI,MAAA;AAAA,QACjC,cAAc,QAAQ;AAAA,OACxB;AACA,MAAA,MAAM,UACJ,OAAO,oBAAA,KAAyB,QAAA,GAC5B,UAAA,CAAW,oBAAoB,CAAA,GAC/B,IAAA;AACN,MAAA,MAAM,aAAA,GAAgB,OAAA,GAAU,aAAA,CAAc,OAAO,CAAA,GAAI,MAAA;AAEzD,MAAA,QAAA,GAAW,mBAAA,CAAoB,QAAA,EAAU,MAAA,EAAQ,KAAK,CAAA;AACtD,MAAA,QAAQ,IAAA;AAAM,QACZ,KAAKD,uCAAA,CAAoB,2BAAA;AACvB,UAAA,QAAA,CAAS,KAAK,CAAA,GAAI;AAAA,YAChB,GAAG,SAAS,KAAK,CAAA;AAAA,YACjB;AAAA,WACF;AACA,UAAA,QAAA,GAAW,+BAAA,CAAgC,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAA;AAC9D,UAAA,IAAI,OAAA,IAAW,aAAA,IAAiB,CAAC,wBAAA,EAA0B;AACzD,YAAA,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,GAAI,mBAAA,CAAoB,OAAO,CAAA;AAAA,UAC7D;AACA,UAAA;AAAA,QACF,KAAKA,uCAAA,CAAoB,UAAA;AACvB,UAAA,QAAA,CAAS,KAAK,CAAA,GAAI;AAAA,YAChB,GAAG,SAAS,KAAK,CAAA;AAAA,YACjB,oBAAA,EAAsB;AAAA,WACxB;AACA,UAAA,QAAA,GAAW,+BAAA,CAAgC,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAA;AAC9D,UAAA;AAAA,QACF,KAAKA,uCAAA,CAAoB,SAAA;AACvB,UAAA,QAAA,CAAS,KAAK,CAAA,GAAI,mBAAA,CAAoB,QAAQ,CAAA;AAC9C,UAAA;AAAA,QACF,KAAKA,uCAAA,CAAoB,UAAA;AACvB,UAAA,QAAA,GAAW,+BAAA,CAAgC,OAAO,QAAQ,CAAA;AAC1D,UAAA;AAAA,QACF,KAAKA,uCAAA,CAAoB,oBAAA;AACvB,UAAA,QAAA,GAAW,EAAC;AACZ,UAAA;AAEA;AAEJ,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,0BAA0B,aAAa;AAAA,GAC1C;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateChangeTypes.js","sources":["../src/cascading-menu/stateChangeTypes.ts"],"sourcesContent":["export type stateChangeCause =\n | \"keyboardToggle\"\n | \"mouseToggle\"\n | \"clickedAway\"\n | \"onResize\"\n | \"itemClicked\"\n | \"itemKeydownEnter\"\n | \"itemKeydownArrowRight\"\n | \"itemKeydownArrowLeft\"\n | \"itemKeydownArrowDown\"\n | \"itemKeydownArrowUp\"\n | \"itemKeydownSpacebar\"\n | \"itemKeydownTab\"\n | \"itemKeydownEscape\"\n | \"itemKeydownHome\"\n | \"itemKeydownEnd\"\n | \"itemMouseEnter\"\n | \"itemMouseMoveToParent\"\n | \"mouseOutOfMenus\"\n | \"keyboardNavAutoFocus\";\n\nexport const stateChangeTypes: { [key: string]: stateChangeCause } = {\n KEYBOARD_TOGGLE: \"keyboardToggle\",\n MOUSE_TOGGLE: \"mouseToggle\",\n CLICKED_AWAY: \"clickedAway\",\n ON_RESIZE: \"onResize\",\n ITEM_CLICKED: \"itemClicked\",\n ITEM_KEYDOWN_ENTER: \"itemKeydownEnter\",\n ITEM_KEYDOWN_ARROW_RIGHT: \"itemKeydownArrowRight\",\n ITEM_KEYDOWN_ARROW_LEFT: \"itemKeydownArrowLeft\",\n ITEM_KEYDOWN_ARROW_DOWN: \"itemKeydownArrowDown\",\n ITEM_KEYDOWN_ARROW_UP: \"itemKeydownArrowUp\",\n ITEM_KEYDOWN_SPACEBAR: \"itemKeydownSpacebar\",\n ITEM_KEYDOWN_TAB: \"itemKeydownTab\",\n ITEM_KEYDOWN_ESCAPE: \"itemKeydownEscape\",\n ITEM_KEYDOWN_HOME: \"itemKeydownHome\",\n ITEM_KEYDOWN_END: \"itemKeydownEnd\",\n ITEM_MOUSE_ENTER: \"itemMouseEnter\",\n ITEM_MOUSE_MOVE_TO_PARENT: \"itemMouseMoveToParent\",\n MOUSE_OUT_OF_MENUS: \"mouseOutOfMenus\",\n KEYBOARD_NAV_AUTO_FOCUS: \"keyboardNavAutoFocus\",\n};\n"],"names":[],"mappings":";;AAqBO,MAAM,
|
|
1
|
+
{"version":3,"file":"stateChangeTypes.js","sources":["../src/cascading-menu/stateChangeTypes.ts"],"sourcesContent":["export type stateChangeCause =\n | \"keyboardToggle\"\n | \"mouseToggle\"\n | \"clickedAway\"\n | \"onResize\"\n | \"itemClicked\"\n | \"itemKeydownEnter\"\n | \"itemKeydownArrowRight\"\n | \"itemKeydownArrowLeft\"\n | \"itemKeydownArrowDown\"\n | \"itemKeydownArrowUp\"\n | \"itemKeydownSpacebar\"\n | \"itemKeydownTab\"\n | \"itemKeydownEscape\"\n | \"itemKeydownHome\"\n | \"itemKeydownEnd\"\n | \"itemMouseEnter\"\n | \"itemMouseMoveToParent\"\n | \"mouseOutOfMenus\"\n | \"keyboardNavAutoFocus\";\n\nexport const stateChangeTypes: { [key: string]: stateChangeCause } = {\n KEYBOARD_TOGGLE: \"keyboardToggle\",\n MOUSE_TOGGLE: \"mouseToggle\",\n CLICKED_AWAY: \"clickedAway\",\n ON_RESIZE: \"onResize\",\n ITEM_CLICKED: \"itemClicked\",\n ITEM_KEYDOWN_ENTER: \"itemKeydownEnter\",\n ITEM_KEYDOWN_ARROW_RIGHT: \"itemKeydownArrowRight\",\n ITEM_KEYDOWN_ARROW_LEFT: \"itemKeydownArrowLeft\",\n ITEM_KEYDOWN_ARROW_DOWN: \"itemKeydownArrowDown\",\n ITEM_KEYDOWN_ARROW_UP: \"itemKeydownArrowUp\",\n ITEM_KEYDOWN_SPACEBAR: \"itemKeydownSpacebar\",\n ITEM_KEYDOWN_TAB: \"itemKeydownTab\",\n ITEM_KEYDOWN_ESCAPE: \"itemKeydownEscape\",\n ITEM_KEYDOWN_HOME: \"itemKeydownHome\",\n ITEM_KEYDOWN_END: \"itemKeydownEnd\",\n ITEM_MOUSE_ENTER: \"itemMouseEnter\",\n ITEM_MOUSE_MOVE_TO_PARENT: \"itemMouseMoveToParent\",\n MOUSE_OUT_OF_MENUS: \"mouseOutOfMenus\",\n KEYBOARD_NAV_AUTO_FOCUS: \"keyboardNavAutoFocus\",\n};\n"],"names":[],"mappings":";;AAqBO,MAAM,gBAAA,GAAwD;AAAA,EACnE,eAAA,EAAiB,gBAAA;AAAA,EACjB,YAAA,EAAc,aAAA;AAAA,EACd,YAAA,EAAc,aAAA;AAAA,EACd,SAAA,EAAW,UAAA;AAAA,EACX,YAAA,EAAc,aAAA;AAAA,EACd,kBAAA,EAAoB,kBAAA;AAAA,EACpB,wBAAA,EAA0B,uBAAA;AAAA,EAC1B,uBAAA,EAAyB,sBAAA;AAAA,EACzB,uBAAA,EAAyB,sBAAA;AAAA,EACzB,qBAAA,EAAuB,oBAAA;AAAA,EACvB,qBAAA,EAAuB,qBAAA;AAAA,EACvB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,mBAAA,EAAqB,mBAAA;AAAA,EACrB,iBAAA,EAAmB,iBAAA;AAAA,EAEnB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,yBAAA,EAA2B,uBAAA;AAAA,EAC3B,kBAAA,EAAoB,iBAAA;AAAA,EACpB,uBAAA,EAAyB;AAC3B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlphaInputField.js","sources":["../src/color-chooser/AlphaInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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 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-expect-error\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":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","useState","useEffect","jsx","Input","clsx"],"mappings":";;;;;;;;;;;;AAeA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAQ7C,MAAM,aAAa,CAAC;AAAA,EACzB,UAAA;AAAA,EACA,QAAA;AAAA,EACA,
|
|
1
|
+
{"version":3,"file":"AlphaInputField.js","sources":["../src/color-chooser/AlphaInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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 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-expect-error\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":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","useState","useEffect","jsx","Input","clsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Color.js","sources":["../src/color-chooser/Color.ts"],"sourcesContent":["import tinycolor from \"tinycolor2\";\nimport { getColorNameByHexValue } from \"./ColorHelpers\";\n\nexport type RGBAValue = {\n r: number;\n b: number;\n g: number;\n a: number;\n};\n\nexport class Color {\n private color: tinycolor.Instance = tinycolor();\n\n public get hex(): string {\n return this.color.getAlpha() === 1\n ? this.color.toHexString()\n : this.color.toHex8String();\n }\n\n public get rgba(): RGBAValue {\n return {\n r: this.color.toRgb().r,\n g: this.color.toRgb().g,\n b: this.color.toRgb().b,\n a: this.color.toRgb().a,\n };\n }\n\n /** E.g. Orange800 */\n public get colorName(): string | undefined {\n return getColorNameByHexValue(\n this.color.toHex8String(),\n false,\n undefined,\n true,\n );\n }\n\n static makeColorFromHex(hexValue: string | undefined): Color | undefined {\n const colorObj = new Color();\n colorObj.color = tinycolor(hexValue);\n\n if (colorObj.color.isValid()) {\n return colorObj;\n }\n return undefined;\n }\n\n static makeColorFromRGB(r: number, g: number, b: number, a?: number): Color {\n const colorObj = new Color();\n colorObj.color = tinycolor({ r: r, g: g, b: b, a: a });\n return colorObj;\n }\n\n setAlpha(alpha: number): Color {\n const colorObj = new Color();\n colorObj.color = this.color.setAlpha(alpha);\n return colorObj;\n }\n}\n"],"names":["getColorNameByHexValue"],"mappings":";;;;;AAUO,MAAM,
|
|
1
|
+
{"version":3,"file":"Color.js","sources":["../src/color-chooser/Color.ts"],"sourcesContent":["import tinycolor from \"tinycolor2\";\nimport { getColorNameByHexValue } from \"./ColorHelpers\";\n\nexport type RGBAValue = {\n r: number;\n b: number;\n g: number;\n a: number;\n};\n\nexport class Color {\n private color: tinycolor.Instance = tinycolor();\n\n public get hex(): string {\n return this.color.getAlpha() === 1\n ? this.color.toHexString()\n : this.color.toHex8String();\n }\n\n public get rgba(): RGBAValue {\n return {\n r: this.color.toRgb().r,\n g: this.color.toRgb().g,\n b: this.color.toRgb().b,\n a: this.color.toRgb().a,\n };\n }\n\n /** E.g. Orange800 */\n public get colorName(): string | undefined {\n return getColorNameByHexValue(\n this.color.toHex8String(),\n false,\n undefined,\n true,\n );\n }\n\n static makeColorFromHex(hexValue: string | undefined): Color | undefined {\n const colorObj = new Color();\n colorObj.color = tinycolor(hexValue);\n\n if (colorObj.color.isValid()) {\n return colorObj;\n }\n return undefined;\n }\n\n static makeColorFromRGB(r: number, g: number, b: number, a?: number): Color {\n const colorObj = new Color();\n colorObj.color = tinycolor({ r: r, g: g, b: b, a: a });\n return colorObj;\n }\n\n setAlpha(alpha: number): Color {\n const colorObj = new Color();\n colorObj.color = this.color.setAlpha(alpha);\n return colorObj;\n }\n}\n"],"names":["getColorNameByHexValue"],"mappings":";;;;;AAUO,MAAM,KAAA,CAAM;AAAA,EAAZ,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,QAA4B,SAAA,EAAU;AAAA,EAAA;AAAA,EAE9C,IAAW,GAAA,GAAc;AACvB,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,QAAA,EAAS,KAAM,CAAA,GAC7B,IAAA,CAAK,KAAA,CAAM,WAAA,EAAY,GACvB,IAAA,CAAK,KAAA,CAAM,YAAA,EAAa;AAAA,EAC9B;AAAA,EAEA,IAAW,IAAA,GAAkB;AAC3B,IAAA,OAAO;AAAA,MACL,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAA,EAAM,CAAE,CAAA;AAAA,MACtB,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAA,EAAM,CAAE,CAAA;AAAA,MACtB,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAA,EAAM,CAAE,CAAA;AAAA,MACtB,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAA,EAAM,CAAE;AAAA,KACxB;AAAA,EACF;AAAA;AAAA,EAGA,IAAW,SAAA,GAAgC;AACzC,IAAA,OAAOA,mCAAA;AAAA,MACL,IAAA,CAAK,MAAM,YAAA,EAAa;AAAA,MACxB,KAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,OAAO,iBAAiB,QAAA,EAAiD;AACvE,IAAA,MAAM,QAAA,GAAW,IAAI,KAAA,EAAM;AAC3B,IAAA,QAAA,CAAS,KAAA,GAAQ,UAAU,QAAQ,CAAA;AAEnC,IAAA,IAAI,QAAA,CAAS,KAAA,CAAM,OAAA,EAAQ,EAAG;AAC5B,MAAA,OAAO,QAAA;AAAA,IACT;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,OAAO,gBAAA,CAAiB,CAAA,EAAW,CAAA,EAAW,GAAW,CAAA,EAAmB;AAC1E,IAAA,MAAM,QAAA,GAAW,IAAI,KAAA,EAAM;AAC3B,IAAA,QAAA,CAAS,QAAQ,SAAA,CAAU,EAAE,GAAM,CAAA,EAAM,CAAA,EAAM,GAAM,CAAA;AACrD,IAAA,OAAO,QAAA;AAAA,EACT;AAAA,EAEA,SAAS,KAAA,EAAsB;AAC7B,IAAA,MAAM,QAAA,GAAW,IAAI,KAAA,EAAM;AAC3B,IAAA,QAAA,CAAS,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,KAAK,CAAA;AAC1C,IAAA,OAAO,QAAA;AAAA,EACT;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorChooser.js","sources":["../src/color-chooser/ColorChooser.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n makePrefixer,\n Overlay,\n OverlayPanel,\n OverlayPanelCloseButton,\n OverlayPanelContent,\n OverlayTrigger,\n} from \"@salt-ds/core\";\nimport { RefreshIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ChangeEvent, useState } from \"react\";\nimport type { Color } from \"./Color\";\nimport colorChooserCss from \"./ColorChooser.css\";\nimport {\n convertColorMapValueToHex,\n getColorNameByHexValue,\n getHexValue,\n hexValueWithoutAlpha,\n} from \"./ColorHelpers\";\nimport { isTransparent } from \"./color-utils\";\nimport { saltColorMap } from \"./colorMap\";\nimport { createTabsMapping } from \"./createTabsMapping\";\nimport { type ColorChooserTabs, DictTabs } from \"./DictTabs\";\nimport { getColorPalettes } from \"./GetColorPalettes\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\nfunction getActiveTab(\n hexValue: string | undefined,\n tabs: ColorChooserTabs,\n saltColorOverrides: Record<string, string> | undefined,\n): number {\n if (tabs.Swatches && tabs[\"Color Picker\"]) {\n const hexNoAlpha: string | undefined = hexValueWithoutAlpha(hexValue);\n const colors = saltColorOverrides ?? saltColorMap;\n // if hexNoAlpha is a Salt color or null/undefined then set the active tab as Swatches\n if (\n hexNoAlpha &&\n !Object.keys(colors).find(\n (key: string) =>\n convertColorMapValueToHex(colors[key])?.toLowerCase() ===\n hexNoAlpha?.toLowerCase(),\n )\n ) {\n return 1;\n }\n }\n return 0;\n}\n\nexport interface ColorChooserProps {\n color: Color | undefined;\n defaultAlpha?: number;\n disableAlphaChooser?: boolean;\n displayHexOnly?: boolean;\n hideLabel?: boolean;\n onClear: () => void; // called when user clicks \"default\" button\n onSelect: (\n color: Color | undefined,\n finalSelection: boolean,\n event?: ChangeEvent,\n ) => void;\n placeholder?: string;\n buttonProps?: Partial<ButtonProps>;\n saltColorOverrides?: Record<string, string>;\n showSwatches?: boolean;\n showColorPicker?: boolean;\n readOnly?: boolean;\n}\n\nexport const ColorChooser = ({\n onClear,\n onSelect,\n color,\n showSwatches = true,\n showColorPicker = true,\n defaultAlpha = 1,\n disableAlphaChooser = false,\n hideLabel = false,\n placeholder,\n buttonProps,\n saltColorOverrides,\n readOnly = false,\n displayHexOnly = false,\n}: ColorChooserProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-chooser\",\n css: colorChooserCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n\n const allColors: string[][] = saltColorOverrides\n ? getColorPalettes(saltColorOverrides)\n : getColorPalettes();\n const displayColorName = displayHexOnly\n ? getHexValue(color?.hex, disableAlphaChooser)\n : getColorNameByHexValue(\n color?.hex,\n disableAlphaChooser,\n saltColorOverrides,\n );\n\n const handleOpenChange = (open: boolean) => setOpen(open);\n\n const alphaForTabs = isTransparent(color?.hex)\n ? defaultAlpha\n : (color?.rgba?.a ?? defaultAlpha);\n\n const tabsMapping = createTabsMapping({\n swatches: showSwatches,\n colorPicker: showColorPicker,\n disableAlphaChooser,\n allColors,\n color,\n alpha: alphaForTabs,\n handleColorChange: onSelect,\n displayColorName,\n placeholder,\n onDialogClosed: () => {\n setOpen(false);\n },\n });\n\n const [activeTab, setActiveTab] = useState<number>(\n getActiveTab(color?.hex, tabsMapping, saltColorOverrides),\n );\n const onDefaultSelected = (): void => {\n if (activeTab === 0 && showSwatches) {\n onClear();\n handleOpenChange(false);\n } else {\n onClear();\n }\n };\n\n const onTabClick = (index: number): void => {\n setActiveTab(index);\n };\n\n const overlayContent = (\n <div\n className={clsx(withBaseName(\"overlayContent\"))}\n data-testid=\"overlay-content\"\n >\n <Button\n data-testid=\"default-button\"\n variant=\"secondary\"\n className={clsx(withBaseName(\"defaultButton\"))}\n onClick={onDefaultSelected}\n >\n <RefreshIcon className={clsx(withBaseName(\"refreshIcon\"))} />\n Default\n </Button>\n <DictTabs\n tabs={tabsMapping}\n hexValue={color?.hex}\n onTabClick={onTabClick}\n activeTab={activeTab}\n />\n </div>\n );\n\n return (\n <Overlay placement=\"bottom\" data-testid=\"color-chooser-overlay\">\n <OverlayTrigger>\n <Button\n className={clsx(withBaseName(\"overlayButton\"), {\n [withBaseName(\"overlayButtonHiddenLabel\")]: hideLabel,\n })}\n data-testid=\"color-chooser-overlay-button\"\n disabled={readOnly}\n {...buttonProps}\n >\n {color && (\n <div\n className={clsx(withBaseName(\"overlayButtonSwatch\"), {\n [withBaseName(\"overlayButtonSwatchWithBorder\")]:\n color?.hex.startsWith(\"#ffffff\"),\n [withBaseName(\"overlayButtonSwatchTransparent\")]: isTransparent(\n color?.hex,\n ),\n })}\n style={{\n backgroundColor: color?.hex,\n }}\n />\n )}\n {!hideLabel && (\n <div className={withBaseName(\"overlayButtonText\")}>\n {displayColorName ?? placeholder ?? \"No color selected\"}\n </div>\n )}\n </Button>\n </OverlayTrigger>\n <OverlayPanel>\n <OverlayPanelCloseButton />\n <OverlayPanelContent>{overlayContent}</OverlayPanelContent>\n </OverlayPanel>\n </Overlay>\n );\n};\n"],"names":["makePrefixer","hexValueWithoutAlpha","saltColorMap","convertColorMapValueToHex","useWindow","useComponentCssInjection","colorChooserCss","useState","getColorPalettes","getHexValue","getColorNameByHexValue","open","isTransparent","createTabsMapping","jsxs","clsx","Button","jsx","RefreshIcon","DictTabs","Overlay","OverlayTrigger","OverlayPanel","OverlayPanelCloseButton","OverlayPanelContent"],"mappings":";;;;;;;;;;;;;;;;;AA6BA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAEpD,SAAS,YAAA,CACP,QACA,EAAA,IAAA,EACA,kBACQ,EAAA;AACR,EAAA,IAAI,IAAK,CAAA,QAAA,IAAY,IAAK,CAAA,cAAc,CAAG,EAAA;AACzC,IAAM,MAAA,UAAA,GAAiCC,kCAAqB,QAAQ,CAAA;AACpE,IAAA,MAAM,SAAS,kBAAsB,IAAAC,qBAAA;AAErC,IAAA,IACE,UACA,IAAA,CAAC,MAAO,CAAA,IAAA,CAAK,MAAM,CAAE,CAAA,IAAA;AAAA,MACnB,CAAC,GAAa,KAAA;AA3CtB,QAAA,IAAA,EAAA;AA4CU,QAAA,OAAA,CAAA,CAAA,EAAA,GAAAC,sCAAA,CAA0B,OAAO,GAAG,CAAC,CAArC,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwC,oBACxC,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,WAAA,EAAA,CAAA;AAAA;AAAA,KAEhB,EAAA;AACA,MAAO,OAAA,CAAA;AAAA;AACT;AAEF,EAAO,OAAA,CAAA;AACT;AAsBO,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAe,GAAA,IAAA;AAAA,EACf,eAAkB,GAAA,IAAA;AAAA,EAClB,YAAe,GAAA,CAAA;AAAA,EACf,mBAAsB,GAAA,KAAA;AAAA,EACtB,SAAY,GAAA,KAAA;AAAA,EACZ,WAAA;AAAA,EACA,WAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,cAAiB,GAAA;AACnB,CAAsC,KAAA;AAxFtC,EAAA,IAAA,EAAA;AAyFE,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAC,cAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAAS,KAAK,CAAA;AAEtC,EAAA,MAAM,SAAwB,GAAA,kBAAA,GAC1BC,iCAAiB,CAAA,kBAAkB,IACnCA,iCAAiB,EAAA;AACrB,EAAA,MAAM,mBAAmB,cACrB,GAAAC,wBAAA,CAAY,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,GAAA,EAAK,mBAAmB,CAC3C,GAAAC,mCAAA;AAAA,IACE,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,GAAA;AAAA,IACP,mBAAA;AAAA,IACA;AAAA,GACF;AAEJ,EAAA,MAAM,gBAAmB,GAAA,CAACC,KAAkB,KAAA,OAAA,CAAQA,KAAI,CAAA;AAExD,EAAM,MAAA,YAAA,GAAeC,yBAAc,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,GAAG,IACzC,YACC,GAAA,CAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,IAAP,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,CAAK,KAAA,YAAA;AAEvB,EAAA,MAAM,cAAcC,mCAAkB,CAAA;AAAA,IACpC,QAAU,EAAA,YAAA;AAAA,IACV,WAAa,EAAA,eAAA;AAAA,IACb,mBAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAO,EAAA,YAAA;AAAA,IACP,iBAAmB,EAAA,QAAA;AAAA,IACnB,gBAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAgB,MAAM;AACpB,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACf,GACD,CAAA;AAED,EAAM,MAAA,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAN,cAAA;AAAA,IAChC,YAAa,CAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,GAAK,EAAA,WAAA,EAAa,kBAAkB;AAAA,GAC1D;AACA,EAAA,MAAM,oBAAoB,MAAY;AACpC,IAAI,IAAA,SAAA,KAAc,KAAK,YAAc,EAAA;AACnC,MAAQ,OAAA,EAAA;AACR,MAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,KACjB,MAAA;AACL,MAAQ,OAAA,EAAA;AAAA;AACV,GACF;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,KAAwB,KAAA;AAC1C,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,GACpB;AAEA,EAAA,MAAM,cACJ,mBAAAO,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,SAAA,CAAK,YAAa,CAAA,gBAAgB,CAAC,CAAA;AAAA,MAC9C,aAAY,EAAA,iBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAD,eAAA;AAAA,UAACE,WAAA;AAAA,UAAA;AAAA,YACC,aAAY,EAAA,gBAAA;AAAA,YACZ,OAAQ,EAAA,WAAA;AAAA,YACR,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,eAAe,CAAC,CAAA;AAAA,YAC7C,OAAS,EAAA,iBAAA;AAAA,YAET,QAAA,EAAA;AAAA,8BAAAE,cAAA,CAACC,qBAAY,SAAW,EAAAH,SAAA,CAAK,YAAa,CAAA,aAAa,CAAC,CAAG,EAAA,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SAE/D;AAAA,wBACAE,cAAA;AAAA,UAACE,iBAAA;AAAA,UAAA;AAAA,YACC,IAAM,EAAA,WAAA;AAAA,YACN,UAAU,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,GAAA;AAAA,YACjB,UAAA;AAAA,YACA;AAAA;AAAA;AACF;AAAA;AAAA,GACF;AAGF,EAAA,uBACGL,eAAA,CAAAM,YAAA,EAAA,EAAQ,SAAU,EAAA,QAAA,EAAS,eAAY,uBACtC,EAAA,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAACI,mBACC,EAAA,EAAA,QAAA,kBAAAP,eAAA;AAAA,MAACE,WAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,eAAe,CAAG,EAAA;AAAA,UAC7C,CAAC,YAAA,CAAa,0BAA0B,CAAC,GAAG;AAAA,SAC7C,CAAA;AAAA,QACD,aAAY,EAAA,8BAAA;AAAA,QACZ,QAAU,EAAA,QAAA;AAAA,QACT,GAAG,WAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UACC,KAAA,oBAAAE,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAW,EAAAF,SAAA,CAAK,YAAa,CAAA,qBAAqB,CAAG,EAAA;AAAA,gBACnD,CAAC,YAAa,CAAA,+BAA+B,CAAC,GAC5C,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,IAAI,UAAW,CAAA,SAAA,CAAA;AAAA,gBACxB,CAAC,YAAA,CAAa,gCAAgC,CAAC,GAAGH,wBAAA;AAAA,kBAChD,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA;AAAA;AACT,eACD,CAAA;AAAA,cACD,KAAO,EAAA;AAAA,gBACL,iBAAiB,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA;AAAA;AAC1B;AAAA,WACF;AAAA,UAED,CAAC,SACA,oBAAAK,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,aAAa,mBAAmB,CAAA,EAC7C,QAAoB,EAAA,gBAAA,IAAA,WAAA,IAAe,mBACtC,EAAA;AAAA;AAAA;AAAA,KAGN,EAAA,CAAA;AAAA,oCACCK,iBACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAACM,4BAAwB,EAAA,EAAA,CAAA;AAAA,sBACzBN,cAAA,CAACO,4BAAqB,QAAe,EAAA,cAAA,EAAA;AAAA,KACvC,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"ColorChooser.js","sources":["../src/color-chooser/ColorChooser.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n makePrefixer,\n Overlay,\n OverlayPanel,\n OverlayPanelCloseButton,\n OverlayPanelContent,\n OverlayTrigger,\n} from \"@salt-ds/core\";\nimport { RefreshIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ChangeEvent, useState } from \"react\";\nimport type { Color } from \"./Color\";\nimport colorChooserCss from \"./ColorChooser.css\";\nimport {\n convertColorMapValueToHex,\n getColorNameByHexValue,\n getHexValue,\n hexValueWithoutAlpha,\n} from \"./ColorHelpers\";\nimport { isTransparent } from \"./color-utils\";\nimport { saltColorMap } from \"./colorMap\";\nimport { createTabsMapping } from \"./createTabsMapping\";\nimport { type ColorChooserTabs, DictTabs } from \"./DictTabs\";\nimport { getColorPalettes } from \"./GetColorPalettes\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\nfunction getActiveTab(\n hexValue: string | undefined,\n tabs: ColorChooserTabs,\n saltColorOverrides: Record<string, string> | undefined,\n): number {\n if (tabs.Swatches && tabs[\"Color Picker\"]) {\n const hexNoAlpha: string | undefined = hexValueWithoutAlpha(hexValue);\n const colors = saltColorOverrides ?? saltColorMap;\n // if hexNoAlpha is a Salt color or null/undefined then set the active tab as Swatches\n if (\n hexNoAlpha &&\n !Object.keys(colors).find(\n (key: string) =>\n convertColorMapValueToHex(colors[key])?.toLowerCase() ===\n hexNoAlpha?.toLowerCase(),\n )\n ) {\n return 1;\n }\n }\n return 0;\n}\n\nexport interface ColorChooserProps {\n color: Color | undefined;\n defaultAlpha?: number;\n disableAlphaChooser?: boolean;\n displayHexOnly?: boolean;\n hideLabel?: boolean;\n onClear: () => void; // called when user clicks \"default\" button\n onSelect: (\n color: Color | undefined,\n finalSelection: boolean,\n event?: ChangeEvent,\n ) => void;\n placeholder?: string;\n buttonProps?: Partial<ButtonProps>;\n saltColorOverrides?: Record<string, string>;\n showSwatches?: boolean;\n showColorPicker?: boolean;\n readOnly?: boolean;\n}\n\nexport const ColorChooser = ({\n onClear,\n onSelect,\n color,\n showSwatches = true,\n showColorPicker = true,\n defaultAlpha = 1,\n disableAlphaChooser = false,\n hideLabel = false,\n placeholder,\n buttonProps,\n saltColorOverrides,\n readOnly = false,\n displayHexOnly = false,\n}: ColorChooserProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-chooser\",\n css: colorChooserCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n\n const allColors: string[][] = saltColorOverrides\n ? getColorPalettes(saltColorOverrides)\n : getColorPalettes();\n const displayColorName = displayHexOnly\n ? getHexValue(color?.hex, disableAlphaChooser)\n : getColorNameByHexValue(\n color?.hex,\n disableAlphaChooser,\n saltColorOverrides,\n );\n\n const handleOpenChange = (open: boolean) => setOpen(open);\n\n const alphaForTabs = isTransparent(color?.hex)\n ? defaultAlpha\n : (color?.rgba?.a ?? defaultAlpha);\n\n const tabsMapping = createTabsMapping({\n swatches: showSwatches,\n colorPicker: showColorPicker,\n disableAlphaChooser,\n allColors,\n color,\n alpha: alphaForTabs,\n handleColorChange: onSelect,\n displayColorName,\n placeholder,\n onDialogClosed: () => {\n setOpen(false);\n },\n });\n\n const [activeTab, setActiveTab] = useState<number>(\n getActiveTab(color?.hex, tabsMapping, saltColorOverrides),\n );\n const onDefaultSelected = (): void => {\n if (activeTab === 0 && showSwatches) {\n onClear();\n handleOpenChange(false);\n } else {\n onClear();\n }\n };\n\n const onTabClick = (index: number): void => {\n setActiveTab(index);\n };\n\n const overlayContent = (\n <div\n className={clsx(withBaseName(\"overlayContent\"))}\n data-testid=\"overlay-content\"\n >\n <Button\n data-testid=\"default-button\"\n variant=\"secondary\"\n className={clsx(withBaseName(\"defaultButton\"))}\n onClick={onDefaultSelected}\n >\n <RefreshIcon className={clsx(withBaseName(\"refreshIcon\"))} />\n Default\n </Button>\n <DictTabs\n tabs={tabsMapping}\n hexValue={color?.hex}\n onTabClick={onTabClick}\n activeTab={activeTab}\n />\n </div>\n );\n\n return (\n <Overlay placement=\"bottom\" data-testid=\"color-chooser-overlay\">\n <OverlayTrigger>\n <Button\n className={clsx(withBaseName(\"overlayButton\"), {\n [withBaseName(\"overlayButtonHiddenLabel\")]: hideLabel,\n })}\n data-testid=\"color-chooser-overlay-button\"\n disabled={readOnly}\n {...buttonProps}\n >\n {color && (\n <div\n className={clsx(withBaseName(\"overlayButtonSwatch\"), {\n [withBaseName(\"overlayButtonSwatchWithBorder\")]:\n color?.hex.startsWith(\"#ffffff\"),\n [withBaseName(\"overlayButtonSwatchTransparent\")]: isTransparent(\n color?.hex,\n ),\n })}\n style={{\n backgroundColor: color?.hex,\n }}\n />\n )}\n {!hideLabel && (\n <div className={withBaseName(\"overlayButtonText\")}>\n {displayColorName ?? placeholder ?? \"No color selected\"}\n </div>\n )}\n </Button>\n </OverlayTrigger>\n <OverlayPanel>\n <OverlayPanelCloseButton />\n <OverlayPanelContent>{overlayContent}</OverlayPanelContent>\n </OverlayPanel>\n </Overlay>\n );\n};\n"],"names":["makePrefixer","hexValueWithoutAlpha","saltColorMap","convertColorMapValueToHex","useWindow","useComponentCssInjection","colorChooserCss","useState","getColorPalettes","getHexValue","getColorNameByHexValue","open","isTransparent","createTabsMapping","jsxs","clsx","Button","jsx","RefreshIcon","DictTabs","Overlay","OverlayTrigger","OverlayPanel","OverlayPanelCloseButton","OverlayPanelContent"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorHelpers.js","sources":["../src/color-chooser/ColorHelpers.ts"],"sourcesContent":["import { Color } from \"./Color\";\nimport { isTransparent } from \"./color-utils\";\nimport { saltColorMap } from \"./colorMap\";\n\nexport function getColorNameByHexValue(\n hexValue: string | undefined,\n disableAlpha = false,\n saltColorOverrides?: Record<string, string>,\n /** When disabled, color names not recognized will be undefined instead of hex values */\n disableFallBackToHex = false,\n): string | undefined {\n const hexNoAlpha = hexValueWithoutAlpha(hexValue);\n const saltColors = saltColorOverrides ?? saltColorMap;\n\n // Special case\n if (isTransparent(hexValue)) return \"Transparent\";\n\n let colorName = Object.keys(saltColors).find((key: string) => {\n if (saltColors[key]) {\n const rgbVals = saltColors[key].startsWith(\"rgba\")\n ? saltColors[key].substring(5, saltColors[key].length - 1)\n : saltColors[key].substring(4, saltColors[key].length - 1);\n const [r, g, b] = [...rgbVals.replace(\" \", \"\").split(\",\")];\n return (\n Color.makeColorFromRGB(Number(r), Number(g), Number(b)).hex ===\n hexNoAlpha?.toLowerCase()\n );\n }\n return 0;\n });\n\n if (colorName) {\n colorName = colorName.slice(4);\n return colorName.charAt(0).toUpperCase() + colorName.slice(1).toLowerCase();\n }\n\n if (hexValue === \"WHITE\" || hexValue === \"BLACK\") {\n return hexValue.charAt(0) + hexValue.slice(1).toLowerCase();\n }\n\n return disableFallBackToHex ? undefined : getHexValue(hexValue, disableAlpha);\n}\n\nexport function hexValueWithoutAlpha(\n hexValue: string | undefined,\n): string | undefined {\n if (hexValue === undefined) return undefined;\n return isValidHex(hexValue)\n ? hexValue.substring(0, 7).toUpperCase()\n : undefined;\n}\n\nexport function getHexValue(\n hexValue: string | undefined,\n disableAlpha: boolean,\n): string | undefined {\n if (hexValue === undefined) return undefined;\n return disableAlpha ? hexValueWithoutAlpha(hexValue) : hexValue;\n}\n\nexport const isValidHex = (hex: string | undefined): boolean => {\n return hex\n ? /^#[0-9a-fA-F]{8}$/.test(hex) || /#[0-9a-fA-F]{6}$/.test(hex)\n : false;\n};\n\nexport const convertColorMapValueToHex = (color: string): string => {\n if (!color.startsWith(\"rgb\")) return color;\n const rgbVals = color.startsWith(\"rgba\")\n ? color.substring(5, color.length - 1)\n : color.substring(4, color.length - 1);\n const [r, g, b, a] = [...rgbVals.replace(\" \", \"\").split(\",\")];\n return Color.makeColorFromRGB(\n Number(r),\n Number(g),\n Number(b),\n a ? Number(a) : 1,\n ).hex;\n};\n"],"names":["saltColorMap","isTransparent","Color"],"mappings":";;;;;;AAIO,SAAS,uBACd,
|
|
1
|
+
{"version":3,"file":"ColorHelpers.js","sources":["../src/color-chooser/ColorHelpers.ts"],"sourcesContent":["import { Color } from \"./Color\";\nimport { isTransparent } from \"./color-utils\";\nimport { saltColorMap } from \"./colorMap\";\n\nexport function getColorNameByHexValue(\n hexValue: string | undefined,\n disableAlpha = false,\n saltColorOverrides?: Record<string, string>,\n /** When disabled, color names not recognized will be undefined instead of hex values */\n disableFallBackToHex = false,\n): string | undefined {\n const hexNoAlpha = hexValueWithoutAlpha(hexValue);\n const saltColors = saltColorOverrides ?? saltColorMap;\n\n // Special case\n if (isTransparent(hexValue)) return \"Transparent\";\n\n let colorName = Object.keys(saltColors).find((key: string) => {\n if (saltColors[key]) {\n const rgbVals = saltColors[key].startsWith(\"rgba\")\n ? saltColors[key].substring(5, saltColors[key].length - 1)\n : saltColors[key].substring(4, saltColors[key].length - 1);\n const [r, g, b] = [...rgbVals.replace(\" \", \"\").split(\",\")];\n return (\n Color.makeColorFromRGB(Number(r), Number(g), Number(b)).hex ===\n hexNoAlpha?.toLowerCase()\n );\n }\n return 0;\n });\n\n if (colorName) {\n colorName = colorName.slice(4);\n return colorName.charAt(0).toUpperCase() + colorName.slice(1).toLowerCase();\n }\n\n if (hexValue === \"WHITE\" || hexValue === \"BLACK\") {\n return hexValue.charAt(0) + hexValue.slice(1).toLowerCase();\n }\n\n return disableFallBackToHex ? undefined : getHexValue(hexValue, disableAlpha);\n}\n\nexport function hexValueWithoutAlpha(\n hexValue: string | undefined,\n): string | undefined {\n if (hexValue === undefined) return undefined;\n return isValidHex(hexValue)\n ? hexValue.substring(0, 7).toUpperCase()\n : undefined;\n}\n\nexport function getHexValue(\n hexValue: string | undefined,\n disableAlpha: boolean,\n): string | undefined {\n if (hexValue === undefined) return undefined;\n return disableAlpha ? hexValueWithoutAlpha(hexValue) : hexValue;\n}\n\nexport const isValidHex = (hex: string | undefined): boolean => {\n return hex\n ? /^#[0-9a-fA-F]{8}$/.test(hex) || /#[0-9a-fA-F]{6}$/.test(hex)\n : false;\n};\n\nexport const convertColorMapValueToHex = (color: string): string => {\n if (!color.startsWith(\"rgb\")) return color;\n const rgbVals = color.startsWith(\"rgba\")\n ? color.substring(5, color.length - 1)\n : color.substring(4, color.length - 1);\n const [r, g, b, a] = [...rgbVals.replace(\" \", \"\").split(\",\")];\n return Color.makeColorFromRGB(\n Number(r),\n Number(g),\n Number(b),\n a ? Number(a) : 1,\n ).hex;\n};\n"],"names":["saltColorMap","isTransparent","Color"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker.js","sources":["../src/color-chooser/ColorPicker.tsx"],"sourcesContent":["import { Button, makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent } from \"react\";\nimport { type ColorResult, SketchPicker } from \"react-color\";\nimport { Color, type RGBAValue } from \"./Color\";\nimport { hexValueWithoutAlpha } from \"./ColorHelpers\";\nimport colorPickerCss from \"./ColorPicker.css\";\nimport { HexInput } from \"./HexInput\";\nimport { RGBAInput } from \"./RGBAInput\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserPicker\");\n\nexport interface ColorPickerProps {\n disableAlphaChooser: boolean;\n color?: Color;\n alpha?: number;\n onChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?: ChangeEvent,\n ) => void;\n onDialogClosed: () => void;\n}\n\nexport const ColorPicker = ({\n alpha = 1,\n disableAlphaChooser,\n color,\n onChange,\n onDialogClosed,\n}: ColorPickerProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-picker\",\n css: colorPickerCss,\n window: targetWindow,\n });\n\n const rgbaValue: RGBAValue =\n color?.rgba ?? Color.makeColorFromRGB(0, 0, 0, alpha).rgba;\n const rgbaText = disableAlphaChooser ? \"RGB\" : \"RGBA\";\n\n const onSubmitHex = (hexValue?: string, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromHex(hexValue);\n onChange(newColor, false, e);\n };\n\n const onSubmitRgb = (rgba: RGBAValue, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromRGB(rgba.r, rgba.g, rgba.b, rgba.a);\n onChange(newColor, false, e);\n };\n\n const onSubmitAlpha = (alpha: number, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromRGB(\n rgbaValue.r,\n rgbaValue.g,\n rgbaValue.b,\n Math.max(0, Math.min(alpha, 1)),\n );\n onChange(newColor, false, e);\n };\n\n const onSketchPickerChange = (\n colorResult: ColorResult,\n e: ChangeEvent,\n ): void => {\n const newColor = Color.makeColorFromRGB(\n colorResult.rgb.r,\n colorResult.rgb.g,\n colorResult.rgb.b,\n colorResult.rgb.a ?? alpha,\n );\n onChange(newColor, false, e);\n };\n\n const onApply = (): void => {\n onChange(color, true);\n onDialogClosed();\n };\n\n return (\n <div data-testid=\"color-picker\" className={clsx(withBaseName())}>\n {/** @ts-ignore react-color has incorrect types **/}\n <SketchPicker\n className={clsx(withBaseName(\"swatchPickerStyles\"), {\n [withBaseName(\"rootDisabledAlpha\")]: disableAlphaChooser,\n [withBaseName(\"root\")]: !disableAlphaChooser,\n })}\n color={rgbaValue}\n onChange={onSketchPickerChange}\n presetColors={[]}\n disableAlpha={disableAlphaChooser}\n />\n <div className={clsx(withBaseName(\"inputContainer\"))}>\n <div className={clsx(withBaseName(\"inputDivs\"))}>\n <span className={clsx(withBaseName(\"textDivOverrides\"))}>HEX</span>\n <HexInput\n hexValue={\n disableAlphaChooser\n ? hexValueWithoutAlpha(color?.hex)\n : color?.hex\n }\n disableAlphaChooser={disableAlphaChooser}\n onSubmit={onSubmitHex}\n />\n <RGBAInput\n disableAlphaChooser={disableAlphaChooser}\n rgbaText={rgbaText}\n rgbaValue={rgbaValue}\n onSubmitAlpha={onSubmitAlpha}\n onSubmitRgb={onSubmitRgb}\n />\n </div>\n <div className={clsx(withBaseName(\"applyButtonDiv\"))}>\n <Button data-testid=\"apply-button\" variant=\"cta\" onClick={onApply}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","colorPickerCss","Color","alpha","jsxs","clsx","jsx","SketchPicker","HexInput","hexValueWithoutAlpha","RGBAInput","Button"],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAeA,kBAAa,wBAAwB,CAAA;AAcnD,MAAM,cAAc,CAAC;AAAA,EAC1B,
|
|
1
|
+
{"version":3,"file":"ColorPicker.js","sources":["../src/color-chooser/ColorPicker.tsx"],"sourcesContent":["import { Button, makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent } from \"react\";\nimport { type ColorResult, SketchPicker } from \"react-color\";\nimport { Color, type RGBAValue } from \"./Color\";\nimport { hexValueWithoutAlpha } from \"./ColorHelpers\";\nimport colorPickerCss from \"./ColorPicker.css\";\nimport { HexInput } from \"./HexInput\";\nimport { RGBAInput } from \"./RGBAInput\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserPicker\");\n\nexport interface ColorPickerProps {\n disableAlphaChooser: boolean;\n color?: Color;\n alpha?: number;\n onChange: (\n color: Color | undefined,\n finalSelection: boolean,\n e?: ChangeEvent,\n ) => void;\n onDialogClosed: () => void;\n}\n\nexport const ColorPicker = ({\n alpha = 1,\n disableAlphaChooser,\n color,\n onChange,\n onDialogClosed,\n}: ColorPickerProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-picker\",\n css: colorPickerCss,\n window: targetWindow,\n });\n\n const rgbaValue: RGBAValue =\n color?.rgba ?? Color.makeColorFromRGB(0, 0, 0, alpha).rgba;\n const rgbaText = disableAlphaChooser ? \"RGB\" : \"RGBA\";\n\n const onSubmitHex = (hexValue?: string, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromHex(hexValue);\n onChange(newColor, false, e);\n };\n\n const onSubmitRgb = (rgba: RGBAValue, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromRGB(rgba.r, rgba.g, rgba.b, rgba.a);\n onChange(newColor, false, e);\n };\n\n const onSubmitAlpha = (alpha: number, e?: ChangeEvent): void => {\n const newColor = Color.makeColorFromRGB(\n rgbaValue.r,\n rgbaValue.g,\n rgbaValue.b,\n Math.max(0, Math.min(alpha, 1)),\n );\n onChange(newColor, false, e);\n };\n\n const onSketchPickerChange = (\n colorResult: ColorResult,\n e: ChangeEvent,\n ): void => {\n const newColor = Color.makeColorFromRGB(\n colorResult.rgb.r,\n colorResult.rgb.g,\n colorResult.rgb.b,\n colorResult.rgb.a ?? alpha,\n );\n onChange(newColor, false, e);\n };\n\n const onApply = (): void => {\n onChange(color, true);\n onDialogClosed();\n };\n\n return (\n <div data-testid=\"color-picker\" className={clsx(withBaseName())}>\n {/** @ts-ignore react-color has incorrect types **/}\n <SketchPicker\n className={clsx(withBaseName(\"swatchPickerStyles\"), {\n [withBaseName(\"rootDisabledAlpha\")]: disableAlphaChooser,\n [withBaseName(\"root\")]: !disableAlphaChooser,\n })}\n color={rgbaValue}\n onChange={onSketchPickerChange}\n presetColors={[]}\n disableAlpha={disableAlphaChooser}\n />\n <div className={clsx(withBaseName(\"inputContainer\"))}>\n <div className={clsx(withBaseName(\"inputDivs\"))}>\n <span className={clsx(withBaseName(\"textDivOverrides\"))}>HEX</span>\n <HexInput\n hexValue={\n disableAlphaChooser\n ? hexValueWithoutAlpha(color?.hex)\n : color?.hex\n }\n disableAlphaChooser={disableAlphaChooser}\n onSubmit={onSubmitHex}\n />\n <RGBAInput\n disableAlphaChooser={disableAlphaChooser}\n rgbaText={rgbaText}\n rgbaValue={rgbaValue}\n onSubmitAlpha={onSubmitAlpha}\n onSubmitRgb={onSubmitRgb}\n />\n </div>\n <div className={clsx(withBaseName(\"applyButtonDiv\"))}>\n <Button data-testid=\"apply-button\" variant=\"cta\" onClick={onApply}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","colorPickerCss","Color","alpha","jsxs","clsx","jsx","SketchPicker","HexInput","hexValueWithoutAlpha","RGBAInput","Button"],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAeA,kBAAa,wBAAwB,CAAA;AAcnD,MAAM,cAAc,CAAC;AAAA,EAC1B,KAAA,GAAQ,CAAA;AAAA,EACR,mBAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAAqC;AACnC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,mBAAA;AAAA,IACR,GAAA,EAAKC,aAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,SAAA,GAAA,CACJ,+BAAO,IAAA,KAAQC,WAAA,CAAM,iBAAiB,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,KAAK,CAAA,CAAE,IAAA;AACxD,EAAA,MAAM,QAAA,GAAW,sBAAsB,KAAA,GAAQ,MAAA;AAE/C,EAAA,MAAM,WAAA,GAAc,CAAC,QAAA,EAAmB,CAAA,KAA0B;AAChE,IAAA,MAAM,QAAA,GAAWA,WAAA,CAAM,gBAAA,CAAiB,QAAQ,CAAA;AAChD,IAAA,QAAA,CAAS,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,IAAA,EAAiB,CAAA,KAA0B;AAC9D,IAAA,MAAM,QAAA,GAAWA,WAAA,CAAM,gBAAA,CAAiB,IAAA,CAAK,CAAA,EAAG,KAAK,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,CAAC,CAAA;AACtE,IAAA,QAAA,CAAS,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAACC,MAAAA,EAAe,CAAA,KAA0B;AAC9D,IAAA,MAAM,WAAWD,WAAA,CAAM,gBAAA;AAAA,MACrB,SAAA,CAAU,CAAA;AAAA,MACV,SAAA,CAAU,CAAA;AAAA,MACV,SAAA,CAAU,CAAA;AAAA,MACV,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAIC,MAAAA,EAAO,CAAC,CAAC;AAAA,KAChC;AACA,IAAA,QAAA,CAAS,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,oBAAA,GAAuB,CAC3B,WAAA,EACA,CAAA,KACS;AACT,IAAA,MAAM,WAAWD,WAAA,CAAM,gBAAA;AAAA,MACrB,YAAY,GAAA,CAAI,CAAA;AAAA,MAChB,YAAY,GAAA,CAAI,CAAA;AAAA,MAChB,YAAY,GAAA,CAAI,CAAA;AAAA,MAChB,WAAA,CAAY,IAAI,CAAA,IAAK;AAAA,KACvB;AACA,IAAA,QAAA,CAAS,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,UAAU,MAAY;AAC1B,IAAA,QAAA,CAAS,OAAO,IAAI,CAAA;AACpB,IAAA,cAAA,EAAe;AAAA,EACjB,CAAA;AAEA,EAAA,uBACEE,eAAA,CAAC,SAAI,aAAA,EAAY,cAAA,EAAe,WAAWC,SAAA,CAAK,YAAA,EAAc,CAAA,EAE5D,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,uBAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWF,SAAA,CAAK,YAAA,CAAa,oBAAoB,CAAA,EAAG;AAAA,UAClD,CAAC,YAAA,CAAa,mBAAmB,CAAC,GAAG,mBAAA;AAAA,UACrC,CAAC,YAAA,CAAa,MAAM,CAAC,GAAG,CAAC;AAAA,SAC1B,CAAA;AAAA,QACD,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,oBAAA;AAAA,QACV,cAAc,EAAC;AAAA,QACf,YAAA,EAAc;AAAA;AAAA,KAChB;AAAA,oCACC,KAAA,EAAA,EAAI,SAAA,EAAWA,UAAK,YAAA,CAAa,gBAAgB,CAAC,CAAA,EACjD,QAAA,EAAA;AAAA,sBAAAD,eAAA,CAAC,SAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,CAAa,WAAW,CAAC,CAAA,EAC5C,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,UAAK,SAAA,EAAWD,SAAA,CAAK,aAAa,kBAAkB,CAAC,GAAG,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,wBAC5DC,cAAA;AAAA,UAACE,iBAAA;AAAA,UAAA;AAAA,YACC,UACE,mBAAA,GACIC,iCAAA,CAAqB,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,GAAG,IAC/B,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,GAAA;AAAA,YAEb,mBAAA;AAAA,YACA,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAH,cAAA;AAAA,UAACI,mBAAA;AAAA,UAAA;AAAA,YACC,mBAAA;AAAA,YACA,QAAA;AAAA,YACA,SAAA;AAAA,YACA,aAAA;AAAA,YACA;AAAA;AAAA;AACF,OAAA,EACF,CAAA;AAAA,qCACC,KAAA,EAAA,EAAI,SAAA,EAAWL,SAAA,CAAK,YAAA,CAAa,gBAAgB,CAAC,CAAA,EACjD,QAAA,kBAAAC,cAAA,CAACK,WAAA,EAAA,EAAO,eAAY,cAAA,EAAe,OAAA,EAAQ,OAAM,OAAA,EAAS,OAAA,EAAS,mBAEnE,CAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictTabs.js","sources":["../src/color-chooser/DictTabs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { Tab, Tabstrip, type TabstripProps } from \"../tabs\";\nimport type { ColorPicker, ColorPickerProps } from \"./ColorPicker\";\nimport type { Swatches, SwatchesTabProps } from \"./Swatches\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserDictTabs\");\n\nexport type ColorChooserTabs = {\n Swatches?: {\n Component: typeof Swatches;\n props: SwatchesTabProps;\n };\n \"Color Picker\"?: {\n Component: typeof ColorPicker;\n props: ColorPickerProps;\n };\n};\n\nexport interface DictTabsProps\n extends Omit<TabstripProps, \"tabs\" | \"renderContent\" | \"classes\"> {\n hexValue: string | undefined;\n tabs: ColorChooserTabs;\n onTabClick: (index: number) => void;\n activeTab: number;\n}\n\nexport const DictTabs = ({\n tabs,\n hexValue,\n onTabClick,\n activeTab,\n ...props\n}: DictTabsProps): JSX.Element => {\n return (\n <div>\n <Tabstrip\n {...props}\n data-testid=\"color-chooser-tabstrip\"\n className={clsx(withBaseName(\"wrapper\"))}\n activeTabIndex={activeTab}\n onActiveChange={(tabIndex: number) => onTabClick(tabIndex)}\n >\n {[...Object.keys(tabs)].map((label, i) => (\n <Tab className={clsx(withBaseName(\"text\"))} label={label} key={i} />\n ))}\n </Tabstrip>\n {[...Object.values(tabs)].map((tab, idx) => {\n if (!tab) {\n return null;\n }\n const TabComponent: typeof Swatches | typeof ColorPicker =\n tab?.Component;\n\n return (\n <div\n aria-hidden={activeTab !== idx}\n hidden={activeTab !== idx}\n key={idx}\n >\n {tab?.props ? (\n // @ts-expect-error\n <TabComponent {...tab?.props} />\n ) : null}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["makePrefixer","jsx","Tabstrip","clsx","Tab"],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAeA,kBAAa,0BAA0B,CAAA;AAqBrD,MAAM,WAAW,CAAC;AAAA,EACvB,IAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,
|
|
1
|
+
{"version":3,"file":"DictTabs.js","sources":["../src/color-chooser/DictTabs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { Tab, Tabstrip, type TabstripProps } from \"../tabs\";\nimport type { ColorPicker, ColorPickerProps } from \"./ColorPicker\";\nimport type { Swatches, SwatchesTabProps } from \"./Swatches\";\n\nconst withBaseName = makePrefixer(\"saltColorChooserDictTabs\");\n\nexport type ColorChooserTabs = {\n Swatches?: {\n Component: typeof Swatches;\n props: SwatchesTabProps;\n };\n \"Color Picker\"?: {\n Component: typeof ColorPicker;\n props: ColorPickerProps;\n };\n};\n\nexport interface DictTabsProps\n extends Omit<TabstripProps, \"tabs\" | \"renderContent\" | \"classes\"> {\n hexValue: string | undefined;\n tabs: ColorChooserTabs;\n onTabClick: (index: number) => void;\n activeTab: number;\n}\n\nexport const DictTabs = ({\n tabs,\n hexValue,\n onTabClick,\n activeTab,\n ...props\n}: DictTabsProps): JSX.Element => {\n return (\n <div>\n <Tabstrip\n {...props}\n data-testid=\"color-chooser-tabstrip\"\n className={clsx(withBaseName(\"wrapper\"))}\n activeTabIndex={activeTab}\n onActiveChange={(tabIndex: number) => onTabClick(tabIndex)}\n >\n {[...Object.keys(tabs)].map((label, i) => (\n <Tab className={clsx(withBaseName(\"text\"))} label={label} key={i} />\n ))}\n </Tabstrip>\n {[...Object.values(tabs)].map((tab, idx) => {\n if (!tab) {\n return null;\n }\n const TabComponent: typeof Swatches | typeof ColorPicker =\n tab?.Component;\n\n return (\n <div\n aria-hidden={activeTab !== idx}\n hidden={activeTab !== idx}\n key={idx}\n >\n {tab?.props ? (\n // @ts-expect-error\n <TabComponent {...tab?.props} />\n ) : null}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["makePrefixer","jsx","Tabstrip","clsx","Tab"],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAeA,kBAAa,0BAA0B,CAAA;AAqBrD,MAAM,WAAW,CAAC;AAAA,EACvB,IAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAkC;AAChC,EAAA,uCACG,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,aAAA,EAAY,wBAAA;AAAA,QACZ,SAAA,EAAWC,SAAA,CAAK,YAAA,CAAa,SAAS,CAAC,CAAA;AAAA,QACvC,cAAA,EAAgB,SAAA;AAAA,QAChB,cAAA,EAAgB,CAAC,QAAA,KAAqB,UAAA,CAAW,QAAQ,CAAA;AAAA,QAExD,QAAA,EAAA,CAAC,GAAG,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,IAAI,CAAC,KAAA,EAAO,sBAClCF,cAAA,CAACG,OAAA,EAAA,EAAI,WAAWD,SAAA,CAAK,YAAA,CAAa,MAAM,CAAC,CAAA,EAAG,KAAA,EAAA,EAAmB,CAAG,CACnE;AAAA;AAAA,KACH;AAAA,IACC,CAAC,GAAG,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAK,GAAA,KAAQ;AAC1C,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,OAAO,IAAA;AAAA,MACT;AACA,MAAA,MAAM,eACJ,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,SAAA;AAEP,MAAA,uBACEF,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,eAAa,SAAA,KAAc,GAAA;AAAA,UAC3B,QAAQ,SAAA,KAAc,GAAA;AAAA,UAGrB,QAAA,EAAA,CAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,KAAA;AAAA;AAAA,4BAEJA,cAAA,CAAC,YAAA,EAAA,EAAc,GAAG,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,KAAA,EAAO;AAAA,cAC5B;AAAA,SAAA;AAAA,QALC;AAAA,OAMP;AAAA,IAEJ,CAAC;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetColorPalettes.js","sources":["../src/color-chooser/GetColorPalettes.ts"],"sourcesContent":["import { saltColorMap } from \"./colorMap\";\n\nexport function makePalette(\n colorScheme: string,\n saltColorOverrides?: Record<string, string>,\n): string[] {\n //Doesn't matter which theme you use here as the color names are the same\n const colorNames = Array.from(\n Object.keys(saltColorOverrides ?? saltColorMap),\n );\n\n const colorArray: string[] = [];\n for (const colorName of colorNames) {\n if (colorName.includes(colorScheme) && !(colorName === colorScheme)) {\n colorArray.push(\n saltColorOverrides\n ? saltColorOverrides[colorName]\n : saltColorMap[colorName],\n );\n }\n }\n return colorArray;\n}\n\nconst bluePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"blue\", saltColorOverrides);\nconst greenPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"green\", saltColorOverrides);\nconst redPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"red\", saltColorOverrides);\nconst orangePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"orange\", saltColorOverrides);\nconst tealPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"teal\", saltColorOverrides);\nconst purplePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"purple\", saltColorOverrides);\nconst grayPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"gray\", saltColorOverrides);\n\nexport function getColorPalettes(\n saltColorOverrides?: Record<string, string>,\n): string[][] {\n return [\n bluePalette(saltColorOverrides).slice(0, 7),\n bluePalette(saltColorOverrides).slice(7, 14),\n greenPalette(saltColorOverrides).slice(0, 7),\n greenPalette(saltColorOverrides).slice(7, 14),\n tealPalette(saltColorOverrides).slice(0, 7),\n tealPalette(saltColorOverrides).slice(7, 14),\n orangePalette(saltColorOverrides).slice(0, 7),\n orangePalette(saltColorOverrides).slice(7, 14),\n redPalette(saltColorOverrides).slice(0, 7),\n redPalette(saltColorOverrides).slice(7, 14),\n purplePalette(saltColorOverrides).slice(0, 7),\n purplePalette(saltColorOverrides).slice(7, 14),\n grayPalette(saltColorOverrides).slice(0, 7),\n grayPalette(saltColorOverrides).slice(7, 14),\n [\n saltColorOverrides\n ? saltColorOverrides.saltwhite\n ? saltColorOverrides.saltwhite\n : \"rgb(255, 255, 255)\"\n : saltColorMap.saltwhite,\n ...grayPalette(saltColorOverrides).slice(14, 18),\n saltColorOverrides\n ? saltColorOverrides.saltblack\n ? saltColorOverrides.saltblack\n : \"rgb(0, 0, 0)\"\n : saltColorMap.saltblack,\n \"rgba(0, 0, 0, 0)\",\n ],\n ];\n}\n"],"names":["saltColorMap"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"GetColorPalettes.js","sources":["../src/color-chooser/GetColorPalettes.ts"],"sourcesContent":["import { saltColorMap } from \"./colorMap\";\n\nexport function makePalette(\n colorScheme: string,\n saltColorOverrides?: Record<string, string>,\n): string[] {\n //Doesn't matter which theme you use here as the color names are the same\n const colorNames = Array.from(\n Object.keys(saltColorOverrides ?? saltColorMap),\n );\n\n const colorArray: string[] = [];\n for (const colorName of colorNames) {\n if (colorName.includes(colorScheme) && !(colorName === colorScheme)) {\n colorArray.push(\n saltColorOverrides\n ? saltColorOverrides[colorName]\n : saltColorMap[colorName],\n );\n }\n }\n return colorArray;\n}\n\nconst bluePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"blue\", saltColorOverrides);\nconst greenPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"green\", saltColorOverrides);\nconst redPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"red\", saltColorOverrides);\nconst orangePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"orange\", saltColorOverrides);\nconst tealPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"teal\", saltColorOverrides);\nconst purplePalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"purple\", saltColorOverrides);\nconst grayPalette = (saltColorOverrides?: Record<string, string>) =>\n makePalette(\"gray\", saltColorOverrides);\n\nexport function getColorPalettes(\n saltColorOverrides?: Record<string, string>,\n): string[][] {\n return [\n bluePalette(saltColorOverrides).slice(0, 7),\n bluePalette(saltColorOverrides).slice(7, 14),\n greenPalette(saltColorOverrides).slice(0, 7),\n greenPalette(saltColorOverrides).slice(7, 14),\n tealPalette(saltColorOverrides).slice(0, 7),\n tealPalette(saltColorOverrides).slice(7, 14),\n orangePalette(saltColorOverrides).slice(0, 7),\n orangePalette(saltColorOverrides).slice(7, 14),\n redPalette(saltColorOverrides).slice(0, 7),\n redPalette(saltColorOverrides).slice(7, 14),\n purplePalette(saltColorOverrides).slice(0, 7),\n purplePalette(saltColorOverrides).slice(7, 14),\n grayPalette(saltColorOverrides).slice(0, 7),\n grayPalette(saltColorOverrides).slice(7, 14),\n [\n saltColorOverrides\n ? saltColorOverrides.saltwhite\n ? saltColorOverrides.saltwhite\n : \"rgb(255, 255, 255)\"\n : saltColorMap.saltwhite,\n ...grayPalette(saltColorOverrides).slice(14, 18),\n saltColorOverrides\n ? saltColorOverrides.saltblack\n ? saltColorOverrides.saltblack\n : \"rgb(0, 0, 0)\"\n : saltColorMap.saltblack,\n \"rgba(0, 0, 0, 0)\",\n ],\n ];\n}\n"],"names":["saltColorMap"],"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 { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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 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":["makePrefixer","useWindow","useComponentCssInjection","hexInputCss","useState","useEffect","isValidHex","clsx","jsx","Input"],"mappings":";;;;;;;;;;;;;AAWA,MAAM,YAAA,GAAeA,kBAAa,0BAA0B,CAAA;AAQrD,MAAM,WAAW,CAAC;AAAA,EACvB,QAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,
|
|
1
|
+
{"version":3,"file":"HexInput.js","sources":["../src/color-chooser/HexInput.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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 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":["makePrefixer","useWindow","useComponentCssInjection","hexInputCss","useState","useEffect","isValidHex","clsx","jsx","Input"],"mappings":";;;;;;;;;;;;;AAWA,MAAM,YAAA,GAAeA,kBAAa,0BAA0B,CAAA;AAQrD,MAAM,WAAW,CAAC;AAAA,EACvB,QAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA,KAAkC;AAChC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,gBAAA;AAAA,IACR,GAAA,EAAKC,UAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA;AAAA,IACxC;AAAA,GACF;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,oBAAA,GAAuB,CAC3B,KAAA,EACA,KAAA,KACS;AACT,IAAA,IAAI,mBAAA,IAAuB,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC3C,MAAA,gBAAA,CAAiB,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,IAC9B;AACA,IAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,MAAA,gBAAA,CAAiB,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAA6C;AACrE,IAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,MAAAC,uBAAA,CAAW,aAAa,CAAA,IAAK,QAAA,CAAS,aAAa,CAAA;AAAA,IACrD;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAA0C;AACjE,IAAAA,uBAAA,CAAW,aAAa,CAAA,IAAK,QAAA,CAAS,aAAA,EAAe,CAAC,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAc,CAAA,EACjC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,UAAK,SAAA,EAAWD,SAAA,CAAK,aAAa,UAAU,CAAC,GAAG,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,oBAClDC,cAAA;AAAA,MAACC,uBAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,WAAA;AAAA,QACZ,SAAA,EAAWF,SAAA,CAAK,YAAA,CAAa,OAAO,CAAC,CAAA;AAAA,QACrC,QAAO,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,QAAA,EAAA,CAAW,OAAA,CAAQ,GAAA,EAAK,IAAI,WAAA,EAAA,KAAiB,EAAA;AAAA,QACnE,QAAA,EAAU,oBAAA;AAAA,QACV,SAAA,EAAW,gBAAA;AAAA,QACX,MAAA,EAAQ;AAAA;AAAA;AACV,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RGBAInput.js","sources":["../src/color-chooser/RGBAInput.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent } from \"react\";\nimport { AlphaInput } from \"./AlphaInputField\";\nimport type { RGBAValue } from \"./Color\";\nimport rgbaInputCss from \"./RGBAInput.css\";\nimport { RGBInput } from \"./RGBAInputField\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\ninterface RGBAInputProps {\n disableAlphaChooser: boolean;\n rgbaText: string;\n rgbaValue: RGBAValue;\n onSubmitRgb: (\n rgbaValue: RGBAValue,\n e?: ChangeEvent<Element> | undefined,\n ) => void;\n onSubmitAlpha: (alpha: number, e?: ChangeEvent<Element> | undefined) => void;\n}\n\nexport const RGBAInput = ({\n disableAlphaChooser,\n rgbaText,\n rgbaValue,\n onSubmitAlpha,\n onSubmitRgb,\n}: RGBAInputProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-rgba-input\",\n css: rgbaInputCss,\n window: targetWindow,\n });\n\n return (\n <>\n <span className={clsx(withBaseName(\"textDivOverrides\"))}>{rgbaText}</span>\n {[\"r\", \"g\", \"b\"].map((value) => (\n <div className={withBaseName(\"rgbaInputDiv\")} key={value}>\n <span className={withBaseName(\"rgbaText\")}>\n {value.toUpperCase()}\n </span>\n <RGBInput\n rgbaValue={rgbaValue}\n value={value as \"r\" | \"g\" | \"b\"}\n onSubmit={onSubmitRgb}\n />\n </div>\n ))}\n {!disableAlphaChooser ? (\n <div className={clsx(withBaseName(\"rgbaInputDiv\"))}>\n <span className={clsx(withBaseName(\"rgbaText\"))}>A</span>\n <AlphaInput\n alphaValue={Number.parseFloat(rgbaValue.a.toFixed(2))}\n onSubmit={onSubmitAlpha}\n />\n </div>\n ) : (\n <div className={clsx(withBaseName(\"alphaSpacerDiv\"))} />\n )}\n </>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","jsxs","Fragment","jsx","clsx","RGBInput","AlphaInput"],"mappings":";;;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAa7C,MAAM,YAAY,CAAC;AAAA,EACxB,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,
|
|
1
|
+
{"version":3,"file":"RGBAInput.js","sources":["../src/color-chooser/RGBAInput.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { ChangeEvent } from \"react\";\nimport { AlphaInput } from \"./AlphaInputField\";\nimport type { RGBAValue } from \"./Color\";\nimport rgbaInputCss from \"./RGBAInput.css\";\nimport { RGBInput } from \"./RGBAInputField\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\ninterface RGBAInputProps {\n disableAlphaChooser: boolean;\n rgbaText: string;\n rgbaValue: RGBAValue;\n onSubmitRgb: (\n rgbaValue: RGBAValue,\n e?: ChangeEvent<Element> | undefined,\n ) => void;\n onSubmitAlpha: (alpha: number, e?: ChangeEvent<Element> | undefined) => void;\n}\n\nexport const RGBAInput = ({\n disableAlphaChooser,\n rgbaText,\n rgbaValue,\n onSubmitAlpha,\n onSubmitRgb,\n}: RGBAInputProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-rgba-input\",\n css: rgbaInputCss,\n window: targetWindow,\n });\n\n return (\n <>\n <span className={clsx(withBaseName(\"textDivOverrides\"))}>{rgbaText}</span>\n {[\"r\", \"g\", \"b\"].map((value) => (\n <div className={withBaseName(\"rgbaInputDiv\")} key={value}>\n <span className={withBaseName(\"rgbaText\")}>\n {value.toUpperCase()}\n </span>\n <RGBInput\n rgbaValue={rgbaValue}\n value={value as \"r\" | \"g\" | \"b\"}\n onSubmit={onSubmitRgb}\n />\n </div>\n ))}\n {!disableAlphaChooser ? (\n <div className={clsx(withBaseName(\"rgbaInputDiv\"))}>\n <span className={clsx(withBaseName(\"rgbaText\"))}>A</span>\n <AlphaInput\n alphaValue={Number.parseFloat(rgbaValue.a.toFixed(2))}\n onSubmit={onSubmitAlpha}\n />\n </div>\n ) : (\n <div className={clsx(withBaseName(\"alphaSpacerDiv\"))} />\n )}\n </>\n );\n};\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","jsxs","Fragment","jsx","clsx","RGBInput","AlphaInput"],"mappings":";;;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAa7C,MAAM,YAAY,CAAC;AAAA,EACxB,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAmC;AACjC,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,iBAAA;AAAA,IACR,GAAA,EAAKC,WAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,UAAK,SAAA,EAAWC,SAAA,CAAK,aAAa,kBAAkB,CAAC,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,IAClE,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA,CAAE,GAAA,CAAI,CAAC,KAAA,qBACpBH,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,cAAc,CAAA,EACzC,QAAA,EAAA;AAAA,sBAAAE,cAAA,CAAC,UAAK,SAAA,EAAW,YAAA,CAAa,UAAU,CAAA,EACrC,QAAA,EAAA,KAAA,CAAM,aAAY,EACrB,CAAA;AAAA,sBACAA,cAAA;AAAA,QAACE,uBAAA;AAAA,QAAA;AAAA,UACC,SAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA,EAAU;AAAA;AAAA;AACZ,KAAA,EAAA,EARiD,KASnD,CACD,CAAA;AAAA,IACA,CAAC,sCACAJ,eAAA,CAAC,KAAA,EAAA,EAAI,WAAWG,SAAA,CAAK,YAAA,CAAa,cAAc,CAAC,CAAA,EAC/C,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAAC,UAAK,SAAA,EAAWC,SAAA,CAAK,aAAa,UAAU,CAAC,GAAG,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,sBAClDD,cAAA;AAAA,QAACG,0BAAA;AAAA,QAAA;AAAA,UACC,YAAY,MAAA,CAAO,UAAA,CAAW,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,UACpD,QAAA,EAAU;AAAA;AAAA;AACZ,KAAA,EACF,CAAA,kCAEC,KAAA,EAAA,EAAI,SAAA,EAAWF,UAAK,YAAA,CAAa,gBAAgB,CAAC,CAAA,EAAG;AAAA,GAAA,EAE1D,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RGBAInputField.js","sources":["../src/color-chooser/RGBAInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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\";\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, 10);\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-expect-error\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":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","useState","useEffect","value","jsx","Input"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAO7C,MAAM,WAAW,CAAC;AAAA,EACvB,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,
|
|
1
|
+
{"version":3,"file":"RGBAInputField.js","sources":["../src/color-chooser/RGBAInputField.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\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\";\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, 10);\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-expect-error\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":["makePrefixer","useWindow","useComponentCssInjection","rgbaInputCss","useState","useEffect","value","jsx","Input"],"mappings":"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"}
|