@salt-ds/lab 1.0.0-alpha.12 → 1.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/app-header/AppHeader.js +0 -1
- package/dist-cjs/app-header/AppHeader.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarNavigation.js +0 -1
- package/dist-cjs/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-cjs/calendar/useSelection.js +0 -1
- package/dist-cjs/calendar/useSelection.js.map +1 -1
- package/dist-cjs/carousel/Carousel.js +0 -1
- package/dist-cjs/carousel/Carousel.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenu.js +0 -1
- package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js +0 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuList.js +0 -1
- package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useClickAway.js +0 -1
- package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-cjs/combo-box/ComboBox.js +0 -1
- package/dist-cjs/combo-box/ComboBox.js.map +1 -1
- package/dist-cjs/combo-box/useCombobox.js +0 -1
- package/dist-cjs/combo-box/useCombobox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/filterHelpers.js +0 -1
- package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +0 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-cjs/common-hooks/useViewportTracking.js +0 -1
- package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-cjs/common-hooks/utils/filter-utils.js +0 -1
- package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-cjs/contact-details/MailLinkComponent.js +0 -1
- package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-cjs/content-status/internal/StatusIndicator.js +0 -1
- package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-cjs/deck-layout/DeckLayout.js +0 -1
- package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
- package/dist-cjs/drawer/Drawer.css.js +6 -0
- package/dist-cjs/drawer/Drawer.css.js.map +1 -0
- package/dist-cjs/drawer/Drawer.js +83 -0
- package/dist-cjs/drawer/Drawer.js.map +1 -0
- package/dist-cjs/dropdown/Dropdown.js +0 -1
- package/dist-cjs/dropdown/Dropdown.js.map +1 -1
- package/dist-cjs/dropdown/DropdownBase.js +0 -1
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/useDropdown.js +0 -1
- package/dist-cjs/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/dropdown/useDropdownBase.js +0 -1
- package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
- package/dist-cjs/index.js +13 -18
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/layer-layout/LayerLayout.js +0 -1
- package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
- package/dist-cjs/list/Highlighter.js +0 -1
- package/dist-cjs/list/Highlighter.js.map +1 -1
- package/dist-cjs/list/List.js +0 -1
- package/dist-cjs/list/List.js.map +1 -1
- package/dist-cjs/list/VirtualizedList.js +0 -1
- package/dist-cjs/list/VirtualizedList.js.map +1 -1
- package/dist-cjs/list/useList.js +0 -1
- package/dist-cjs/list/useList.js.map +1 -1
- package/dist-cjs/list/useListHeight.js +0 -1
- package/dist-cjs/list/useListHeight.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItemBase.js +0 -1
- package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/Highlighter.js +0 -1
- package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-cjs/list-deprecated/useTypeSelect.js +0 -1
- package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-cjs/list-next/ListItemNext.css.js +1 -1
- package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
- package/dist-cjs/multiline-input/MultilineInput.js +25 -13
- package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
- package/dist-cjs/parent-child-layout/ParentChildLayout.js +0 -1
- package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-cjs/pill-next/PillNext.css.js +6 -0
- package/dist-cjs/pill-next/PillNext.css.js.map +1 -0
- package/dist-cjs/pill-next/PillNext.js +58 -0
- package/dist-cjs/pill-next/PillNext.js.map +1 -0
- package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-cjs/progress/CircularProgress/CircularProgress.js +36 -75
- package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-cjs/progress/LinearProgress/LinearProgress.js +16 -24
- package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryList.js +0 -1
- package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryListItem.js +0 -1
- package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-cjs/query-input/internal/QueryInputBody.js +3 -7
- package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-cjs/query-input/internal/SearchList.js +0 -1
- package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueList.js +0 -1
- package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
- package/dist-cjs/query-input/useQueryInput.js +0 -1
- package/dist-cjs/query-input/useQueryInput.js.map +1 -1
- package/dist-cjs/responsive/useOverflow.js +0 -1
- package/dist-cjs/responsive/useOverflow.js.map +1 -1
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +6 -0
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +42 -0
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.css.js +6 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.js +64 -0
- package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -0
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +57 -0
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +6 -0
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +26 -0
- package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +6 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +111 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +21 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +1 -0
- package/dist-cjs/stepped-tracker/useDetectTruncatedText.js +71 -0
- package/dist-cjs/stepped-tracker/useDetectTruncatedText.js.map +1 -0
- package/dist-cjs/tabs/Tabstrip.js +0 -1
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/useActivationIndicator.js +0 -1
- package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
- package/dist-cjs/tabs/useKeyboardNavigation.js +0 -1
- package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/tabs-next/OverflowMenu.js +0 -1
- package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -1
- package/dist-cjs/tokenized-input/useTokenizedInput.js +0 -1
- package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-cjs/toolbar/Toolbar.js +0 -1
- package/dist-cjs/toolbar/Toolbar.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderToolbarItems.js +0 -1
- package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +0 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/tree/Tree.js +0 -1
- package/dist-cjs/tree/Tree.js.map +1 -1
- package/dist-cjs/tree/useTree.js +0 -1
- package/dist-cjs/tree/useTree.js.map +1 -1
- package/dist-es/app-header/AppHeader.js +0 -1
- package/dist-es/app-header/AppHeader.js.map +1 -1
- package/dist-es/calendar/internal/CalendarNavigation.js +0 -1
- package/dist-es/calendar/internal/CalendarNavigation.js.map +1 -1
- package/dist-es/calendar/useSelection.js +0 -1
- package/dist-es/calendar/useSelection.js.map +1 -1
- package/dist-es/carousel/Carousel.js +0 -1
- package/dist-es/carousel/Carousel.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenu.js +0 -1
- package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js +0 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuList.js +0 -1
- package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-es/cascading-menu/internal/useClickAway.js +0 -1
- package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
- package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-es/combo-box/ComboBox.js +0 -1
- package/dist-es/combo-box/ComboBox.js.map +1 -1
- package/dist-es/combo-box/useCombobox.js +0 -1
- package/dist-es/combo-box/useCombobox.js.map +1 -1
- package/dist-es/combo-box-deprecated/filterHelpers.js +0 -1
- package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
- package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
- package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useComboBox.js +0 -1
- package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
- package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-es/common-hooks/useViewportTracking.js +0 -1
- package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-es/common-hooks/utils/filter-utils.js +0 -1
- package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-es/contact-details/MailLinkComponent.js +0 -1
- package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-es/content-status/internal/StatusIndicator.js +0 -1
- package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-es/deck-layout/DeckLayout.js +0 -1
- package/dist-es/deck-layout/DeckLayout.js.map +1 -1
- package/dist-es/drawer/Drawer.css.js +4 -0
- package/dist-es/drawer/Drawer.css.js.map +1 -0
- package/dist-es/drawer/Drawer.js +78 -0
- package/dist-es/drawer/Drawer.js.map +1 -0
- package/dist-es/dropdown/Dropdown.js +0 -1
- package/dist-es/dropdown/Dropdown.js.map +1 -1
- package/dist-es/dropdown/DropdownBase.js +0 -1
- package/dist-es/dropdown/DropdownBase.js.map +1 -1
- package/dist-es/dropdown/useDropdown.js +0 -1
- package/dist-es/dropdown/useDropdown.js.map +1 -1
- package/dist-es/dropdown/useDropdownBase.js +0 -1
- package/dist-es/dropdown/useDropdownBase.js.map +1 -1
- package/dist-es/index.js +7 -9
- package/dist-es/index.js.map +1 -1
- package/dist-es/layer-layout/LayerLayout.js +0 -1
- package/dist-es/layer-layout/LayerLayout.js.map +1 -1
- package/dist-es/list/Highlighter.js +0 -1
- package/dist-es/list/Highlighter.js.map +1 -1
- package/dist-es/list/List.js +0 -1
- package/dist-es/list/List.js.map +1 -1
- package/dist-es/list/VirtualizedList.js +0 -1
- package/dist-es/list/VirtualizedList.js.map +1 -1
- package/dist-es/list/useList.js +0 -1
- package/dist-es/list/useList.js.map +1 -1
- package/dist-es/list/useListHeight.js +0 -1
- package/dist-es/list/useListHeight.js.map +1 -1
- package/dist-es/list-deprecated/ListItemBase.js +0 -1
- package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-es/list-deprecated/internal/Highlighter.js +0 -1
- package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-es/list-deprecated/useTypeSelect.js +0 -1
- package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-es/list-next/ListItemNext.css.js +1 -1
- package/dist-es/multiline-input/MultilineInput.css.js +1 -1
- package/dist-es/multiline-input/MultilineInput.js +25 -13
- package/dist-es/multiline-input/MultilineInput.js.map +1 -1
- package/dist-es/parent-child-layout/ParentChildLayout.js +0 -1
- package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
- package/dist-es/pill-next/PillNext.css.js +4 -0
- package/dist-es/pill-next/PillNext.css.js.map +1 -0
- package/dist-es/pill-next/PillNext.js +50 -0
- package/dist-es/pill-next/PillNext.js.map +1 -0
- package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-es/progress/CircularProgress/CircularProgress.js +37 -75
- package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-es/progress/LinearProgress/LinearProgress.js +16 -24
- package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-es/query-input/internal/CategoryList.js +0 -1
- package/dist-es/query-input/internal/CategoryList.js.map +1 -1
- package/dist-es/query-input/internal/CategoryListItem.js +0 -1
- package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-es/query-input/internal/QueryInputBody.js +1 -5
- package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-es/query-input/internal/SearchList.js +0 -1
- package/dist-es/query-input/internal/SearchList.js.map +1 -1
- package/dist-es/query-input/internal/ValueList.js +0 -1
- package/dist-es/query-input/internal/ValueList.js.map +1 -1
- package/dist-es/query-input/useQueryInput.js +0 -1
- package/dist-es/query-input/useQueryInput.js.map +1 -1
- package/dist-es/responsive/useOverflow.js +0 -1
- package/dist-es/responsive/useOverflow.js.map +1 -1
- package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +4 -0
- package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
- package/dist-es/stepped-tracker/StepLabel/StepLabel.js +38 -0
- package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
- package/dist-es/stepped-tracker/SteppedTracker.css.js +4 -0
- package/dist-es/stepped-tracker/SteppedTracker.css.js.map +1 -0
- package/dist-es/stepped-tracker/SteppedTracker.js +60 -0
- package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -0
- package/dist-es/stepped-tracker/SteppedTrackerContext.js +50 -0
- package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +4 -0
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +22 -0
- package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +4 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +107 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +16 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +1 -0
- package/dist-es/stepped-tracker/useDetectTruncatedText.js +69 -0
- package/dist-es/stepped-tracker/useDetectTruncatedText.js.map +1 -0
- package/dist-es/tabs/Tabstrip.js +0 -1
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/useActivationIndicator.js +0 -1
- package/dist-es/tabs/useActivationIndicator.js.map +1 -1
- package/dist-es/tabs/useKeyboardNavigation.js +0 -1
- package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/tabs-next/OverflowMenu.js +0 -1
- package/dist-es/tabs-next/OverflowMenu.js.map +1 -1
- package/dist-es/tokenized-input/useTokenizedInput.js +0 -1
- package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-es/toolbar/Toolbar.js +0 -1
- package/dist-es/toolbar/Toolbar.js.map +1 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js +0 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js +0 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/tree/Tree.js +0 -1
- package/dist-es/tree/Tree.js.map +1 -1
- package/dist-es/tree/useTree.js +0 -1
- package/dist-es/tree/useTree.js.map +1 -1
- package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +2 -2
- package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +7 -7
- package/dist-types/drawer/Drawer.d.ts +31 -0
- package/dist-types/drawer/index.d.ts +1 -0
- package/dist-types/index.d.ts +3 -3
- package/dist-types/multiline-input/MultilineInput.d.ts +14 -14
- package/dist-types/pill-next/PillNext.d.ts +7 -0
- package/dist-types/pill-next/index.d.ts +1 -0
- package/dist-types/progress/CircularProgress/CircularProgress.d.ts +7 -24
- package/dist-types/progress/LinearProgress/LinearProgress.d.ts +7 -11
- package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +5 -0
- package/dist-types/stepped-tracker/StepLabel/index.d.ts +1 -0
- package/dist-types/stepped-tracker/SteppedTracker.d.ts +12 -0
- package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +21 -0
- package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +10 -0
- package/dist-types/stepped-tracker/TrackerConnector/index.d.ts +1 -0
- package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +10 -0
- package/dist-types/stepped-tracker/TrackerStep/TrackerStepTooltipContext.d.ts +7 -0
- package/dist-types/stepped-tracker/TrackerStep/index.d.ts +3 -0
- package/dist-types/stepped-tracker/index.d.ts +3 -0
- package/dist-types/stepped-tracker/useDetectTruncatedText.d.ts +11 -0
- package/dist-types/stepper-input/useStepperInput.d.ts +2 -2
- package/dist-types/utils/index.d.ts +0 -1
- package/package.json +9 -9
- package/dist-cjs/accordion/Accordion.css.js +0 -6
- package/dist-cjs/accordion/Accordion.css.js.map +0 -1
- package/dist-cjs/accordion/Accordion.js +0 -62
- package/dist-cjs/accordion/Accordion.js.map +0 -1
- package/dist-cjs/accordion/AccordionContext.js +0 -25
- package/dist-cjs/accordion/AccordionContext.js.map +0 -1
- package/dist-cjs/accordion/AccordionGroup.js +0 -23
- package/dist-cjs/accordion/AccordionGroup.js.map +0 -1
- package/dist-cjs/accordion/AccordionHeader.css.js +0 -6
- package/dist-cjs/accordion/AccordionHeader.css.js.map +0 -1
- package/dist-cjs/accordion/AccordionHeader.js +0 -50
- package/dist-cjs/accordion/AccordionHeader.js.map +0 -1
- package/dist-cjs/accordion/AccordionPanel.css.js +0 -6
- package/dist-cjs/accordion/AccordionPanel.css.js.map +0 -1
- package/dist-cjs/accordion/AccordionPanel.js +0 -45
- package/dist-cjs/accordion/AccordionPanel.js.map +0 -1
- package/dist-cjs/progress/CircularProgress/CircularProgressParts.js +0 -72
- package/dist-cjs/progress/CircularProgress/CircularProgressParts.js.map +0 -1
- package/dist-cjs/toggle-button/ToggleButton.css.js +0 -6
- package/dist-cjs/toggle-button/ToggleButton.css.js.map +0 -1
- package/dist-cjs/toggle-button/ToggleButton.js +0 -75
- package/dist-cjs/toggle-button/ToggleButton.js.map +0 -1
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js +0 -6
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js.map +0 -1
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +0 -111
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +0 -1
- package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +0 -15
- package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +0 -1
- package/dist-cjs/utils/useFloatingUI.js +0 -38
- package/dist-cjs/utils/useFloatingUI.js.map +0 -1
- package/dist-es/accordion/Accordion.css.js +0 -4
- package/dist-es/accordion/Accordion.css.js.map +0 -1
- package/dist-es/accordion/Accordion.js +0 -58
- package/dist-es/accordion/Accordion.js.map +0 -1
- package/dist-es/accordion/AccordionContext.js +0 -20
- package/dist-es/accordion/AccordionContext.js.map +0 -1
- package/dist-es/accordion/AccordionGroup.js +0 -19
- package/dist-es/accordion/AccordionGroup.js.map +0 -1
- package/dist-es/accordion/AccordionHeader.css.js +0 -4
- package/dist-es/accordion/AccordionHeader.css.js.map +0 -1
- package/dist-es/accordion/AccordionHeader.js +0 -46
- package/dist-es/accordion/AccordionHeader.js.map +0 -1
- package/dist-es/accordion/AccordionPanel.css.js +0 -4
- package/dist-es/accordion/AccordionPanel.css.js.map +0 -1
- package/dist-es/accordion/AccordionPanel.js +0 -41
- package/dist-es/accordion/AccordionPanel.js.map +0 -1
- package/dist-es/progress/CircularProgress/CircularProgressParts.js +0 -64
- package/dist-es/progress/CircularProgress/CircularProgressParts.js.map +0 -1
- package/dist-es/toggle-button/ToggleButton.css.js +0 -4
- package/dist-es/toggle-button/ToggleButton.css.js.map +0 -1
- package/dist-es/toggle-button/ToggleButton.js +0 -71
- package/dist-es/toggle-button/ToggleButton.js.map +0 -1
- package/dist-es/toggle-button-group/ToggleButtonGroup.css.js +0 -4
- package/dist-es/toggle-button-group/ToggleButtonGroup.css.js.map +0 -1
- package/dist-es/toggle-button-group/ToggleButtonGroup.js +0 -107
- package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +0 -1
- package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +0 -10
- package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +0 -1
- package/dist-es/utils/useFloatingUI.js +0 -33
- package/dist-es/utils/useFloatingUI.js.map +0 -1
- package/dist-types/accordion/Accordion.d.ts +0 -25
- package/dist-types/accordion/AccordionContext.d.ts +0 -10
- package/dist-types/accordion/AccordionGroup.d.ts +0 -4
- package/dist-types/accordion/AccordionHeader.d.ts +0 -4
- package/dist-types/accordion/AccordionPanel.d.ts +0 -4
- package/dist-types/accordion/index.d.ts +0 -4
- package/dist-types/progress/CircularProgress/CircularProgressParts.d.ts +0 -13
- package/dist-types/toggle-button/ToggleButton.d.ts +0 -7
- package/dist-types/toggle-button/index.d.ts +0 -1
- package/dist-types/toggle-button-group/ToggleButtonGroup.d.ts +0 -25
- package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +0 -10
- package/dist-types/toggle-button-group/index.d.ts +0 -2
- package/dist-types/utils/useFloatingUI.d.ts +0 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemBase.js","sources":["../src/list-deprecated/ListItemBase.tsx"],"sourcesContent":["import { makePrefixer, Tooltip, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes, memo, useRef } from \"react\";\n\nimport { useOverflowDetection } from \"../utils\";\nimport { Highlighter } from \"./internal/Highlighter\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport listItemCss from \"./ListItem.css\";\n\n//TODO does this need to be generic <Item?\nexport interface ListItemBaseProps extends HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n deselectable?: boolean;\n focusVisible?: boolean;\n highlighted?: boolean;\n itemTextHighlightPattern?: RegExp | string;\n selected?: boolean;\n tooltipText?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltListItemDeprecated\");\n\n// just to keep line number parity\n//\nexport const ListItemBase = memo(\n forwardRef(function ListItemBase(\n props: ListItemBaseProps,\n ref: ForwardedRef<HTMLDivElement>\n ) {\n const {\n className,\n deselectable,\n selected,\n highlighted = false,\n focusVisible,\n tooltipText,\n disabled,\n children,\n itemTextHighlightPattern,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-list-item-deprecated\",\n css: listItemCss,\n window: targetWindow,\n });\n\n const { current: detectTruncation } = useRef(typeof children === \"string\");\n\n const [overflowRef, isOverflowed] = useOverflowDetection<HTMLDivElement>();\n const setItemRef = useForkRef(overflowRef, ref);\n\n return (\n <Tooltip disabled={!isOverflowed} content={tooltipText}>\n <div\n aria-label={typeof children === \"string\" ? children : undefined}\n ref={detectTruncation ? ref : setItemRef}\n {...restProps}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"deselectable\")]: deselectable,\n [withBaseName(\"highlighted\")]: highlighted,\n [withBaseName(\"selected\")]: selected,\n [withBaseName(\"focusVisible\")]: focusVisible,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n >\n {detectTruncation ? (\n <span className={withBaseName(\"textWrapper\")} ref={overflowRef}>\n {itemTextHighlightPattern == null ? (\n children\n ) : (\n <Highlighter\n matchPattern={itemTextHighlightPattern}\n text={children}\n />\n )}\n </span>\n ) : (\n children\n )}\n </div>\n </Tooltip>\n );\n })\n);\n"],"names":["ListItemBase","listItemCss"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListItemBase.js","sources":["../src/list-deprecated/ListItemBase.tsx"],"sourcesContent":["import { makePrefixer, Tooltip, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes, memo, useRef } from \"react\";\n\nimport { useOverflowDetection } from \"../utils\";\nimport { Highlighter } from \"./internal/Highlighter\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport listItemCss from \"./ListItem.css\";\n\n//TODO does this need to be generic <Item?\nexport interface ListItemBaseProps extends HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n deselectable?: boolean;\n focusVisible?: boolean;\n highlighted?: boolean;\n itemTextHighlightPattern?: RegExp | string;\n selected?: boolean;\n tooltipText?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltListItemDeprecated\");\n\n// just to keep line number parity\n//\nexport const ListItemBase = memo(\n forwardRef(function ListItemBase(\n props: ListItemBaseProps,\n ref: ForwardedRef<HTMLDivElement>\n ) {\n const {\n className,\n deselectable,\n selected,\n highlighted = false,\n focusVisible,\n tooltipText,\n disabled,\n children,\n itemTextHighlightPattern,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-list-item-deprecated\",\n css: listItemCss,\n window: targetWindow,\n });\n\n const { current: detectTruncation } = useRef(typeof children === \"string\");\n\n const [overflowRef, isOverflowed] = useOverflowDetection<HTMLDivElement>();\n const setItemRef = useForkRef(overflowRef, ref);\n\n return (\n <Tooltip disabled={!isOverflowed} content={tooltipText}>\n <div\n aria-label={typeof children === \"string\" ? children : undefined}\n ref={detectTruncation ? ref : setItemRef}\n {...restProps}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"deselectable\")]: deselectable,\n [withBaseName(\"highlighted\")]: highlighted,\n [withBaseName(\"selected\")]: selected,\n [withBaseName(\"focusVisible\")]: focusVisible,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n >\n {detectTruncation ? (\n <span className={withBaseName(\"textWrapper\")} ref={overflowRef}>\n {itemTextHighlightPattern == null ? (\n children\n ) : (\n <Highlighter\n matchPattern={itemTextHighlightPattern}\n text={children}\n />\n )}\n </span>\n ) : (\n children\n )}\n </div>\n </Tooltip>\n );\n })\n);\n"],"names":["ListItemBase","listItemCss"],"mappings":";;;;;;;;;;AAuBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA,CAAA;AAInD,MAAM,YAAe,GAAA,IAAA;AAAA,EAC1B,UAAW,CAAA,SAASA,aAClB,CAAA,KAAA,EACA,GACA,EAAA;AACA,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAc,GAAA,KAAA;AAAA,MACd,YAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA;AAAA,MACG,GAAA,SAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,2BAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,OAAS,EAAA,gBAAA,KAAqB,MAAO,CAAA,OAAO,aAAa,QAAQ,CAAA,CAAA;AAEzE,IAAA,MAAM,CAAC,WAAA,EAAa,YAAY,CAAA,GAAI,oBAAqC,EAAA,CAAA;AACzE,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,WAAA,EAAa,GAAG,CAAA,CAAA;AAE9C,IAAA,uBACG,GAAA,CAAA,OAAA,EAAA;AAAA,MAAQ,UAAU,CAAC,YAAA;AAAA,MAAc,OAAS,EAAA,WAAA;AAAA,MACzC,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,QACC,YAAY,EAAA,OAAO,QAAa,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;AAAA,QACtD,GAAA,EAAK,mBAAmB,GAAM,GAAA,UAAA;AAAA,QAC7B,GAAG,SAAA;AAAA,QACJ,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb;AAAA,YACE,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,YAChC,CAAC,YAAa,CAAA,aAAa,CAAI,GAAA,WAAA;AAAA,YAC/B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,YAC5B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,YAChC,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,WAC9B;AAAA,UACA,SAAA;AAAA,SACF;AAAA,QAEC,6CACE,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,UAAG,GAAK,EAAA,WAAA;AAAA,UAChD,QAAA,EAAA,wBAAA,IAA4B,IAC3B,GAAA,QAAA,mBAEC,GAAA,CAAA,WAAA,EAAA;AAAA,YACC,YAAc,EAAA,wBAAA;AAAA,YACd,IAAM,EAAA,QAAA;AAAA,WACR,CAAA;AAAA,SAEJ,CAEA,GAAA,QAAA;AAAA,OAEJ,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEH,CAAA;AACH;;;;"}
|
|
@@ -2,7 +2,6 @@ import { jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import 'react';
|
|
3
3
|
import { escapeRegExp } from '../../utils/escapeRegExp.js';
|
|
4
4
|
import '@salt-ds/core';
|
|
5
|
-
import '../../utils/useFloatingUI.js';
|
|
6
5
|
import css_248z from './Highlighter.css.js';
|
|
7
6
|
import { useWindow } from '@salt-ds/window';
|
|
8
7
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Highlighter.js","sources":["../src/list-deprecated/internal/Highlighter.jsx"],"sourcesContent":["import React from \"react\";\nimport { escapeRegExp } from \"../../utils\";\n\nimport highlighterCss from \"./Highlighter.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nconst baseName = \"saltHighlighter\";\n\nexport const Highlighter = (props) => {\n const { matchPattern, text = \"\" } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-highligher-deprecated\",\n css: highlighterCss,\n window: targetWindow,\n });\n const matchRegex =\n typeof matchPattern === \"string\"\n ? new RegExp(`(${escapeRegExp(matchPattern)})`, \"gi\")\n : matchPattern;\n return (\n <>\n {text.split(matchRegex).map((part, index) =>\n part.match(matchRegex) ? (\n <strong className={`${baseName}-highlight`} key={`${index}-${part}`}>\n {part}\n </strong>\n ) : (\n part\n )\n )}\n </>\n );\n};\n"],"names":["highlighterCss"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Highlighter.js","sources":["../src/list-deprecated/internal/Highlighter.jsx"],"sourcesContent":["import React from \"react\";\nimport { escapeRegExp } from \"../../utils\";\n\nimport highlighterCss from \"./Highlighter.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nconst baseName = \"saltHighlighter\";\n\nexport const Highlighter = (props) => {\n const { matchPattern, text = \"\" } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-highligher-deprecated\",\n css: highlighterCss,\n window: targetWindow,\n });\n const matchRegex =\n typeof matchPattern === \"string\"\n ? new RegExp(`(${escapeRegExp(matchPattern)})`, \"gi\")\n : matchPattern;\n return (\n <>\n {text.split(matchRegex).map((part, index) =>\n part.match(matchRegex) ? (\n <strong className={`${baseName}-highlight`} key={`${index}-${part}`}>\n {part}\n </strong>\n ) : (\n part\n )\n )}\n </>\n );\n};\n"],"names":["highlighterCss"],"mappings":";;;;;;;;AAOA,MAAM,QAAW,GAAA,iBAAA,CAAA;AAEJ,MAAA,WAAA,GAAc,CAAC,KAAU,KAAA;AACpC,EAAA,MAAM,EAAE,YAAA,EAAc,IAAO,GAAA,EAAA,EAAO,GAAA,KAAA,CAAA;AACpC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,4BAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AACD,EAAM,MAAA,UAAA,GACJ,OAAO,YAAA,KAAiB,QACpB,GAAA,IAAI,MAAO,CAAA,CAAA,CAAA,EAAI,YAAa,CAAA,YAAY,CAAM,CAAA,CAAA,CAAA,EAAA,IAAI,CAClD,GAAA,YAAA,CAAA;AACN,EACE,uBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,IACG,QAAA,EAAA,IAAA,CAAK,KAAM,CAAA,UAAU,CAAE,CAAA,GAAA;AAAA,MAAI,CAAC,IAAM,EAAA,KAAA,KACjC,KAAK,KAAM,CAAA,UAAU,oBAClB,GAAA,CAAA,QAAA,EAAA;AAAA,QAAO,WAAW,CAAG,EAAA,QAAA,CAAA,UAAA,CAAA;AAAA,QACnB,QAAA,EAAA,IAAA;AAAA,OAD8C,EAAA,CAAA,EAAG,KAAS,CAAA,CAAA,EAAA,IAAA,CAAA,CAE7D,CAEA,GAAA,IAAA;AAAA,KAEJ;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeSelect.js","sources":["../src/list-deprecated/useTypeSelect.js"],"sourcesContent":["import { useCallback, useRef } from \"react\";\nimport { escapeRegExp } from \"../utils\";\n\nimport { itemToString as defaultItemToString } from \"./itemToString\";\n\nconst TYPE_SELECT_TIMEOUT = 1500;\n\nexport function useTypeSelect(options) {\n const {\n getItemAtIndex,\n highlightedIndex,\n itemCount,\n itemToString = defaultItemToString,\n onTypeSelect,\n setFocusVisible,\n setHighlightedIndex,\n } = options;\n\n const getItemIndexForSearch = useCallback(\n (searchTerm, fromIndex) => {\n if (itemCount === 0) {\n return null;\n }\n\n let index = fromIndex || 0;\n while (index < itemCount) {\n const item = getItemAtIndex(index);\n const textValue = itemToString ? itemToString(item) : item;\n if (\n textValue &&\n textValue.match(new RegExp(`^${escapeRegExp(searchTerm)}`, \"i\"))\n ) {\n return index;\n }\n\n index = index + 1;\n }\n\n return null;\n },\n [itemCount, itemToString, getItemAtIndex]\n );\n\n const state = useRef({\n search: \"\",\n timeout: null,\n }).current;\n\n // eslint-disable-next-line complexity\n const onKeyDownCapture = (event) => {\n const character = getStringForKey(event.key);\n if (!character || event.ctrlKey || event.metaKey) {\n return;\n }\n\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character !== \" \" || state.search.trim().length > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // When typing same character sebsequently and *quickly*, we treat it as cyling through items\n // starting with that char instead of seaching for double character, because in most cases\n // there won't be any option having same characters at the beginning. This should be only\n // impacting beginning of the words because length of `character` would be 1.\n if (character !== state.search) {\n state.search += character;\n }\n\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n // We want to cycle through choices when keep typing the same first character, hence the +1\n // condition. All subsequent characters should stay at the current item otherwise it will\n // always jumping around.\n let index = getItemIndexForSearch(\n state.search,\n state.search.length > 1 ? highlightedIndex : highlightedIndex + 1\n );\n\n // If no key found, search from the top.\n if (index == null) {\n index = getItemIndexForSearch(state.search);\n }\n\n if (index != null) {\n setFocusVisible(true);\n // TODO: Maybe we can repurpose this setHighlightedIndex so that the user controls it's meant to set\n // hightlighted index when expanded v.s. selected item when collapsed\n setHighlightedIndex(index);\n if (onTypeSelect) {\n onTypeSelect(index);\n }\n }\n\n clearTimeout(state.timeout);\n state.timeout = setTimeout(() => {\n state.search = \"\";\n }, TYPE_SELECT_TIMEOUT);\n };\n\n return {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture,\n };\n}\n\nfunction getStringForKey(key) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n\n return \"\";\n}\n"],"names":["itemToString","defaultItemToString"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTypeSelect.js","sources":["../src/list-deprecated/useTypeSelect.js"],"sourcesContent":["import { useCallback, useRef } from \"react\";\nimport { escapeRegExp } from \"../utils\";\n\nimport { itemToString as defaultItemToString } from \"./itemToString\";\n\nconst TYPE_SELECT_TIMEOUT = 1500;\n\nexport function useTypeSelect(options) {\n const {\n getItemAtIndex,\n highlightedIndex,\n itemCount,\n itemToString = defaultItemToString,\n onTypeSelect,\n setFocusVisible,\n setHighlightedIndex,\n } = options;\n\n const getItemIndexForSearch = useCallback(\n (searchTerm, fromIndex) => {\n if (itemCount === 0) {\n return null;\n }\n\n let index = fromIndex || 0;\n while (index < itemCount) {\n const item = getItemAtIndex(index);\n const textValue = itemToString ? itemToString(item) : item;\n if (\n textValue &&\n textValue.match(new RegExp(`^${escapeRegExp(searchTerm)}`, \"i\"))\n ) {\n return index;\n }\n\n index = index + 1;\n }\n\n return null;\n },\n [itemCount, itemToString, getItemAtIndex]\n );\n\n const state = useRef({\n search: \"\",\n timeout: null,\n }).current;\n\n // eslint-disable-next-line complexity\n const onKeyDownCapture = (event) => {\n const character = getStringForKey(event.key);\n if (!character || event.ctrlKey || event.metaKey) {\n return;\n }\n\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character !== \" \" || state.search.trim().length > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // When typing same character sebsequently and *quickly*, we treat it as cyling through items\n // starting with that char instead of seaching for double character, because in most cases\n // there won't be any option having same characters at the beginning. This should be only\n // impacting beginning of the words because length of `character` would be 1.\n if (character !== state.search) {\n state.search += character;\n }\n\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n // We want to cycle through choices when keep typing the same first character, hence the +1\n // condition. All subsequent characters should stay at the current item otherwise it will\n // always jumping around.\n let index = getItemIndexForSearch(\n state.search,\n state.search.length > 1 ? highlightedIndex : highlightedIndex + 1\n );\n\n // If no key found, search from the top.\n if (index == null) {\n index = getItemIndexForSearch(state.search);\n }\n\n if (index != null) {\n setFocusVisible(true);\n // TODO: Maybe we can repurpose this setHighlightedIndex so that the user controls it's meant to set\n // hightlighted index when expanded v.s. selected item when collapsed\n setHighlightedIndex(index);\n if (onTypeSelect) {\n onTypeSelect(index);\n }\n }\n\n clearTimeout(state.timeout);\n state.timeout = setTimeout(() => {\n state.search = \"\";\n }, TYPE_SELECT_TIMEOUT);\n };\n\n return {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture,\n };\n}\n\nfunction getStringForKey(key) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n\n return \"\";\n}\n"],"names":["itemToString","defaultItemToString"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = "/* Default variables applied to the root element */\n.saltListItemNext {\n --listNext-item-text-color: var(--salt-text-primary-foreground);\n --listNext-item-background: none;\n}\n\n.saltListItemNext {\n color: var(--listNext-item-text-color);\n background: var(--listNext-item-background);\n height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding-inline: var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-size-unit);\n position: relative;\n align-items: center;\n white-space: nowrap;\n}\n\n/* Class applied to list item on focus using keyboard navigation only */\n.saltListItemNext-focused {\n
|
|
1
|
+
var css_248z = "/* Default variables applied to the root element */\n.saltListItemNext {\n --listNext-item-text-color: var(--salt-text-primary-foreground);\n --listNext-item-background: none;\n}\n\n.saltListItemNext {\n color: var(--listNext-item-text-color);\n background: var(--listNext-item-background);\n height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding-inline: var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-size-unit);\n position: relative;\n align-items: center;\n white-space: nowrap;\n margin-block: var(--salt-size-border);\n border: var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) transparent;\n}\n\n/* Class applied to list item on focus using keyboard navigation only */\n.saltListItemNext-focused {\n border: var(--salt-focused-outline);\n}\n\n/* Active list item on hover using mouse */\n.saltListItemNext:hover:not([aria-disabled=\"true\"]),\n/* Active list item on focus using keyboard navigation */\n.saltListItemNext-focused {\n --listNext-item-background: var(--salt-selectable-background-hover);\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltListItemNext[aria-selected=\"true\"] {\n outline: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-selectable-borderColor-selected);\n --listNext-item-background: var(--salt-selectable-background-selected);\n --saltIcon-color: var(--salt-selectable-foreground-selected);\n}\n\n/* Style applied to disabled items */\n.saltListItemNext[aria-disabled=\"true\"] {\n --listNext-item-text-color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n.saltListItemNext[aria-disabled=\"true\"] .saltText {\n color: var(--listNext-item-text-color);\n}\n\n/* disabled list item when selected */\n.saltListItemNext[aria-disabled=\"true\"][aria-selected=\"true\"] {\n outline: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-selectable-borderColor-selectedDisabled);\n --listNext-item-background: var(--salt-selectable-background-selectedDisabled);\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=ListItemNext.css.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = "/* Style applied to the root element */\n.saltMultilineInput {\n --multilineInput-borderColor: var(--salt-editable-borderColor);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle);\n --multilineInput-outlineColor: var(--salt-focused-outlineColor);\n --multilineInput-
|
|
1
|
+
var css_248z = "/* Style applied to the root element */\n.saltMultilineInput {\n --multilineInput-borderColor: var(--salt-editable-borderColor);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle);\n --multilineInput-outlineColor: var(--salt-focused-outlineColor);\n --multilineInput-paddingInline: var(--salt-spacing-100);\n --multilineInput-border: none;\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n\n align-items: center;\n background: var(--multilineInput-background);\n border: var(--multilineInput-border);\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n height: auto;\n line-height: var(--salt-text-lineHeight);\n min-height: var(--salt-size-base);\n min-width: 4em;\n padding-inline: var(--multilineInput-paddingInline);\n position: relative;\n width: 100%;\n}\n\n/* Style applied on hover */\n.saltMultilineInput:hover {\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-hover);\n --multilineInput-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--multilineInput-background-hover);\n cursor: var(--salt-editable-cursor-hover);\n}\n\n/* Style applied when active */\n.saltMultilineInput:active {\n --multilineInput-borderColor: var(--salt-editable-borderColor-active);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-active);\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--multilineInput-background-active);\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltMultilineInput-primary {\n --multilineInput-background: var(--salt-editable-primary-background);\n --multilineInput-background-active: var(--salt-editable-primary-background-active);\n --multilineInput-background-hover: var(--salt-editable-primary-background-hover);\n --multilineInput-background-disabled: var(--salt-editable-primary-background-disabled);\n --multilineInput-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltMultilineInput-secondary {\n --multilineInput-background: var(--salt-editable-secondary-background);\n --multilineInput-background-active: var(--salt-editable-secondary-background-active);\n --multilineInput-background-hover: var(--salt-editable-secondary-background-active);\n --multilineInput-background-disabled: var(--salt-editable-secondary-background-disabled);\n --multilineInput-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltMultilineInput-error,\n.saltMultilineInput-error:hover {\n --multilineInput-background: var(--salt-status-error-background);\n --multilineInput-background-active: var(--salt-status-error-background);\n --multilineInput-background-hover: var(--salt-status-error-background);\n --multilineInput-borderColor: var(--salt-status-error-borderColor);\n --multilineInput-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltMultilineInput-warning,\n.saltMultilineInput-warning:hover {\n --multilineInput-background: var(--salt-status-warning-background);\n --multilineInput-background-active: var(--salt-status-warning-background);\n --multilineInput-background-hover: var(--salt-status-warning-background);\n --multilineInput-borderColor: var(--salt-status-warning-borderColor);\n --multilineInput-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltMultilineInput-success,\n.saltMultilineInput-success:hover {\n --multilineInput-background: var(--salt-status-success-background);\n --multilineInput-background-active: var(--salt-status-success-background);\n --multilineInput-background-hover: var(--salt-status-success-background);\n --multilineInput-borderColor: var(--salt-status-success-borderColor);\n --multilineInput-outlineColor: var(--salt-status-success-borderColor);\n}\n\n.saltMultilineInput.saltMultilineInput-withAdornmentRow {\n display: flex;\n flex-wrap: wrap;\n}\n\n/* Style applied to inner textarea element */\n.saltMultilineInput-textarea {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: inline-flex;\n height: calc(var(--saltMultilineInput-rows, 3) * var(--salt-text-lineHeight));\n flex-grow: 1;\n font: inherit;\n letter-spacing: 0;\n margin: var(--salt-spacing-75) 0;\n min-width: 0;\n overflow: hidden;\n resize: none;\n padding: 0;\n}\n\n/* Style applied to placeholder */\n.saltMultilineInput-textarea::placeholder {\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Reset in the class */\n.saltMultilineInput-textarea:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltMultilineInput-textarea::selection {\n background: var(--salt-text-background-selected);\n}\n\n/* Styling when focused */\n.saltMultilineInput-focused {\n --multilineInput-borderColor: var(--multilineInput-outlineColor);\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--multilineInput-outlineColor);\n}\n\n/* Style applied if `readOnly={true}` */\n.saltMultilineInput-readOnly,\n.saltMultilineInput-readOnly:active,\n.saltMultilineInput-readOnly:hover {\n --multilineInput-borderColor: var(--salt-editable-borderColor-readonly);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-readonly);\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n --multilineInput-paddingInline: 0;\n\n background: var(--multilineInput-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Style applied to selected text if `disabled={true}` */\n.saltMultilineInput-disabled .saltMultilineInput-textarea::selection {\n background: none;\n}\n\n/* Style applied when `disabled={true}` */\n.saltMultilineInput-disabled,\n.saltMultilineInput-disabled:hover,\n.saltMultilineInput-disabled:active {\n --multilineInput-borderColor: var(--salt-editable-borderColor-disabled);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-disabled);\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n\n background: var(--multilineInput-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--salt-text-primary-foreground-disabled);\n}\n\n/* Style for activation indicator */\n.saltMultilineInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--multilineInput-activationIndicator-borderWidth) var(--multilineInput-borderStyle) var(--multilineInput-borderColor);\n}\n\n/* Style applied if `bordered={true}` */\n.saltMultilineInput.saltMultilineInput-bordered {\n --multilineInput-border: var(--salt-size-border) var(--salt-container-borderStyle) var(--multilineInput-borderColor);\n --multilineInput-paddingInline: var(--salt-spacing-100);\n --multilineInput-activationIndicator-borderWidth: 0;\n}\n\n/* Style applied if active or focused when `bordered={true}` */\n.saltMultilineInput-bordered:active,\n.saltMultilineInput-bordered.saltMultilineInput-focused {\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` when `bordered={true}` */\n.saltMultilineInput-bordered.saltMultilineInput-readOnly:hover,\n.saltMultilineInput-bordered.saltMultilineInput-disabled:hover {\n --multilineInput-activationIndicator-borderWidth: 0;\n}\n\n/* Style applied to adornment containers */\n.saltMultilineInput-endAdornmentContainer,\n.saltMultilineInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n min-height: var(--salt-size-base);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to start adornment container */\n.saltMultilineInput-startAdornmentContainer {\n align-self: self-start;\n padding-right: var(--salt-spacing-100);\n}\n\n/* Style applied to suffix adornment container */\n.saltMultilineInput-suffixAdornments {\n align-self: self-end;\n}\n\n/* Style applied to suffix adornment container when end adornments are provided */\n.saltMultilineInput-withAdornmentRow .saltMultilineInput-suffixAdornments {\n display: inline-flex;\n flex-basis: 100%;\n justify-content: flex-end;\n}\n\n/* Style applied to end adornment container */\n.saltMultilineInput-endAdornmentContainer {\n padding-left: var(--multilineInput-paddingInline);\n}\n\n/* Style applied to status adornment container */\n.saltMultilineInput-statusAdornmentContainer {\n align-self: self-end;\n display: inline-flex;\n min-height: var(--salt-size-base);\n}\n\n/* Style applied to button start adornment if first child */\n.saltMultilineInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n\n/* Style applied to button end adornment if last child */\n.saltMultilineInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n/* Style applied to button end adornment if last child */\n.saltMultilineInput-readOnly .saltMultilineInput-endAdornmentContainer .saltButton:last-child {\n margin-right: 0;\n}\n\n/* Styles for button adornment */\n.saltMultilineInput .saltButton {\n --saltButton-padding: 0;\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-50));\n --saltButton-width: calc(var(--salt-size-base) - var(--salt-spacing-50));\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=MultilineInput.css.js.map
|
|
@@ -12,18 +12,19 @@ const MultilineInput = forwardRef(
|
|
|
12
12
|
"aria-activedescendant": ariaActiveDescendant,
|
|
13
13
|
"aria-expanded": ariaExpanded,
|
|
14
14
|
"aria-owns": ariaOwns,
|
|
15
|
+
bordered = false,
|
|
15
16
|
className: classNameProp,
|
|
16
17
|
disabled,
|
|
17
18
|
endAdornment,
|
|
18
|
-
fullBorder = false,
|
|
19
19
|
id,
|
|
20
|
-
textAreaProps = {},
|
|
21
|
-
textAreaRef,
|
|
22
20
|
placeholder,
|
|
23
21
|
readOnly,
|
|
24
22
|
role,
|
|
25
23
|
rows = 3,
|
|
26
24
|
startAdornment,
|
|
25
|
+
style,
|
|
26
|
+
textAreaProps = {},
|
|
27
|
+
textAreaRef,
|
|
27
28
|
value: valueProp,
|
|
28
29
|
defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
|
|
29
30
|
validationStatus: validationStatusProp,
|
|
@@ -84,12 +85,17 @@ const MultilineInput = forwardRef(
|
|
|
84
85
|
onFocus == null ? void 0 : onFocus(event);
|
|
85
86
|
setFocused(true);
|
|
86
87
|
};
|
|
88
|
+
const multilineInputStyles = {
|
|
89
|
+
"--saltMultilineInput-rows": rows,
|
|
90
|
+
...style
|
|
91
|
+
};
|
|
87
92
|
return /* @__PURE__ */ jsxs("div", {
|
|
88
93
|
className: clsx(
|
|
89
94
|
withBaseName(),
|
|
90
95
|
withBaseName(variant),
|
|
91
96
|
{
|
|
92
|
-
[withBaseName("
|
|
97
|
+
[withBaseName("withAdornmentRow")]: endAdornment,
|
|
98
|
+
[withBaseName("bordered")]: bordered,
|
|
93
99
|
[withBaseName("focused")]: !isDisabled && !isReadOnly && focused,
|
|
94
100
|
[withBaseName("disabled")]: isDisabled,
|
|
95
101
|
[withBaseName("readOnly")]: isReadOnly,
|
|
@@ -98,6 +104,7 @@ const MultilineInput = forwardRef(
|
|
|
98
104
|
classNameProp
|
|
99
105
|
),
|
|
100
106
|
ref,
|
|
107
|
+
style: multilineInputStyles,
|
|
101
108
|
...other,
|
|
102
109
|
children: [
|
|
103
110
|
startAdornment && /* @__PURE__ */ jsx("div", {
|
|
@@ -124,15 +131,20 @@ const MultilineInput = forwardRef(
|
|
|
124
131
|
...restA11yProps,
|
|
125
132
|
...restTextAreaProps
|
|
126
133
|
}),
|
|
127
|
-
|
|
128
|
-
className: withBaseName("
|
|
129
|
-
children:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
/* @__PURE__ */ jsxs("div", {
|
|
135
|
+
className: withBaseName("suffixAdornments"),
|
|
136
|
+
children: [
|
|
137
|
+
!isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsx("div", {
|
|
138
|
+
className: withBaseName("statusAdornmentContainer"),
|
|
139
|
+
children: /* @__PURE__ */ jsx(StatusAdornment, {
|
|
140
|
+
status: validationStatus
|
|
141
|
+
})
|
|
142
|
+
}),
|
|
143
|
+
endAdornment && /* @__PURE__ */ jsx("div", {
|
|
144
|
+
className: withBaseName("endAdornmentContainer"),
|
|
145
|
+
children: endAdornment
|
|
146
|
+
})
|
|
147
|
+
]
|
|
136
148
|
}),
|
|
137
149
|
/* @__PURE__ */ jsx("div", {
|
|
138
150
|
className: withBaseName("activationIndicator")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultilineInput.js","sources":["../src/multiline-input/MultilineInput.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n FocusEvent,\n forwardRef,\n ReactNode,\n Ref,\n TextareaHTMLAttributes,\n useState,\n} from \"react\";\nimport {\n makePrefixer,\n StatusAdornment,\n useControlled,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport multilineInputCss from \"./MultilineInput.css\";\n\nconst withBaseName = makePrefixer(\"saltMultilineInput\");\n\nexport interface MultilineInputProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\">,\n Pick<\n ComponentPropsWithoutRef<\"input\">,\n \"disabled\" | \"value\" | \"defaultValue\" | \"placeholder\"\n > {\n /**\n * End adornment component\n */\n endAdornment?: ReactNode;\n /**\n * Styling variant with full border. Defaults to false\n */\n fullBorder?: boolean;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes) applied to the `textarea` element.\n */\n textAreaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;\n /**\n * Optional ref for the textarea component\n */\n textAreaRef?: Ref<HTMLTextAreaElement>;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Start adornment component\n */\n startAdornment?: ReactNode;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n /**\n * Number of rows. Defaults to 3\n */\n rows?: number;\n}\n\nexport const MultilineInput = forwardRef<HTMLDivElement, MultilineInputProps>(\n function MultilineInput(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n className: classNameProp,\n disabled,\n endAdornment,\n fullBorder = false,\n id,\n textAreaProps = {},\n textAreaRef,\n placeholder,\n readOnly,\n role,\n rows = 3,\n startAdornment,\n value: valueProp,\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n validationStatus: validationStatusProp,\n variant = \"primary\",\n ...other\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-multiline-input\",\n css: multilineInputCss,\n window: targetWindow,\n });\n\n const restA11yProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n };\n\n const [focused, setFocused] = useState(false);\n\n const {\n \"aria-describedby\": textAreaDescribedBy,\n \"aria-labelledby\": textAreaLabelledBy,\n onBlur,\n onChange,\n onFocus,\n required: textAreaRequired,\n ...restTextAreaProps\n } = textAreaProps;\n\n const {\n a11yProps: {\n \"aria-describedby\": formFieldDescribedBy,\n \"aria-labelledby\": formFieldLabelledBy,\n } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n necessity: formFieldRequired,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const isDisabled = disabled || formFieldDisabled;\n const isReadOnly = readOnly || formFieldReadOnly;\n const validationStatus = formFieldValidationStatus ?? validationStatusProp;\n const isRequired = formFieldRequired\n ? [\"required\", \"asterisk\"].includes(formFieldRequired)\n : undefined ?? textAreaRequired;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: \"MultilineInput\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n onBlur?.(event);\n setFocused(false);\n };\n\n const handleFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"fullBorder\")]: fullBorder,\n [withBaseName(\"focused\")]: !isDisabled && !isReadOnly && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n classNameProp\n )}\n ref={ref}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"startAdornmentContainer\")}>\n {startAdornment}\n </div>\n )}\n <textarea\n aria-describedby={clsx(formFieldDescribedBy, textAreaDescribedBy)}\n aria-labelledby={clsx(formFieldLabelledBy, textAreaLabelledBy)}\n className={clsx(withBaseName(\"textarea\"), textAreaProps?.className)}\n disabled={isDisabled}\n id={id}\n readOnly={isReadOnly}\n ref={textAreaRef}\n required={isRequired}\n role={role}\n rows={rows}\n tabIndex={isReadOnly || isDisabled ? -1 : 0}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={!isDisabled && !isReadOnly ? handleFocus : undefined}\n placeholder={placeholder}\n value={value}\n {...restA11yProps}\n {...restTextAreaProps}\n />\n {!isDisabled && !isReadOnly && validationStatus && (\n <div className={withBaseName(\"statusAdornmentContainer\")}>\n <StatusAdornment status={validationStatus} />\n </div>\n )}\n {endAdornment && (\n <div className={withBaseName(\"endAdornmentContainer\")}>\n {endAdornment}\n </div>\n )}\n <div className={withBaseName(\"activationIndicator\")} />\n </div>\n );\n }\n);\n"],"names":["MultilineInput","multilineInputCss","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultilineInput.js","sources":["../src/multiline-input/MultilineInput.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n FocusEvent,\n forwardRef,\n ReactNode,\n Ref,\n TextareaHTMLAttributes,\n useState,\n} from \"react\";\nimport {\n makePrefixer,\n StatusAdornment,\n useControlled,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport multilineInputCss from \"./MultilineInput.css\";\n\nconst withBaseName = makePrefixer(\"saltMultilineInput\");\n\nexport interface MultilineInputProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\">,\n Pick<\n ComponentPropsWithoutRef<\"input\">,\n \"disabled\" | \"value\" | \"defaultValue\" | \"placeholder\"\n > {\n /**\n * Styling variant with full border. Defaults to false\n */\n bordered?: boolean;\n /**\n * End adornment component\n */\n endAdornment?: ReactNode;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Number of rows. Defaults to 3\n */\n rows?: number;\n /**\n * Start adornment component\n */\n startAdornment?: ReactNode;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes) applied to the `textarea` element.\n */\n textAreaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;\n /**\n * Optional ref for the textarea component\n */\n textAreaRef?: Ref<HTMLTextAreaElement>;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nexport const MultilineInput = forwardRef<HTMLDivElement, MultilineInputProps>(\n function MultilineInput(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n bordered = false,\n className: classNameProp,\n disabled,\n endAdornment,\n id,\n placeholder,\n readOnly,\n role,\n rows = 3,\n startAdornment,\n style,\n textAreaProps = {},\n textAreaRef,\n value: valueProp,\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n validationStatus: validationStatusProp,\n variant = \"primary\",\n ...other\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-multiline-input\",\n css: multilineInputCss,\n window: targetWindow,\n });\n\n const restA11yProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n };\n\n const [focused, setFocused] = useState(false);\n\n const {\n \"aria-describedby\": textAreaDescribedBy,\n \"aria-labelledby\": textAreaLabelledBy,\n onBlur,\n onChange,\n onFocus,\n required: textAreaRequired,\n ...restTextAreaProps\n } = textAreaProps;\n\n const {\n a11yProps: {\n \"aria-describedby\": formFieldDescribedBy,\n \"aria-labelledby\": formFieldLabelledBy,\n } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n necessity: formFieldRequired,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const isDisabled = disabled || formFieldDisabled;\n const isReadOnly = readOnly || formFieldReadOnly;\n const validationStatus = formFieldValidationStatus ?? validationStatusProp;\n const isRequired = formFieldRequired\n ? [\"required\", \"asterisk\"].includes(formFieldRequired)\n : undefined ?? textAreaRequired;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: \"MultilineInput\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n onBlur?.(event);\n setFocused(false);\n };\n\n const handleFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n\n const multilineInputStyles = {\n \"--saltMultilineInput-rows\": rows,\n ...style,\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"withAdornmentRow\")]: endAdornment,\n [withBaseName(\"bordered\")]: bordered,\n [withBaseName(\"focused\")]: !isDisabled && !isReadOnly && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n classNameProp\n )}\n ref={ref}\n style={multilineInputStyles}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"startAdornmentContainer\")}>\n {startAdornment}\n </div>\n )}\n <textarea\n aria-describedby={clsx(formFieldDescribedBy, textAreaDescribedBy)}\n aria-labelledby={clsx(formFieldLabelledBy, textAreaLabelledBy)}\n className={clsx(withBaseName(\"textarea\"), textAreaProps?.className)}\n disabled={isDisabled}\n id={id}\n readOnly={isReadOnly}\n ref={textAreaRef}\n required={isRequired}\n role={role}\n rows={rows}\n tabIndex={isReadOnly || isDisabled ? -1 : 0}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={!isDisabled && !isReadOnly ? handleFocus : undefined}\n placeholder={placeholder}\n value={value}\n {...restA11yProps}\n {...restTextAreaProps}\n />\n <div className={withBaseName(\"suffixAdornments\")}>\n {!isDisabled && !isReadOnly && validationStatus && (\n <div className={withBaseName(\"statusAdornmentContainer\")}>\n <StatusAdornment status={validationStatus} />\n </div>\n )}\n {endAdornment && (\n <div className={withBaseName(\"endAdornmentContainer\")}>\n {endAdornment}\n </div>\n )}\n </div>\n <div className={withBaseName(\"activationIndicator\")} />\n </div>\n );\n }\n);\n"],"names":["MultilineInput","multilineInputCss","value"],"mappings":";;;;;;;;AAsBA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AA8C/C,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eACP,CAAA;AAAA,IACE,uBAAyB,EAAA,oBAAA;AAAA,IACzB,eAAiB,EAAA,YAAA;AAAA,IACjB,WAAa,EAAA,QAAA;AAAA,IACb,QAAW,GAAA,KAAA;AAAA,IACX,SAAW,EAAA,aAAA;AAAA,IACX,QAAA;AAAA,IACA,YAAA;AAAA,IACA,EAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAO,GAAA,CAAA;AAAA,IACP,cAAA;AAAA,IACA,KAAA;AAAA,IACA,gBAAgB,EAAC;AAAA,IACjB,WAAA;AAAA,IACA,KAAO,EAAA,SAAA;AAAA,IACP,YAAc,EAAA,gBAAA,GAAmB,SAAc,KAAA,KAAA,CAAA,GAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAChE,gBAAkB,EAAA,oBAAA;AAAA,IAClB,OAAU,GAAA,SAAA;AAAA,IACP,GAAA,KAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,sBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,aAAgB,GAAA;AAAA,MACpB,uBAAyB,EAAA,oBAAA;AAAA,MACzB,eAAiB,EAAA,YAAA;AAAA,MACjB,WAAa,EAAA,QAAA;AAAA,KACf,CAAA;AAEA,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,IAAM,MAAA;AAAA,MACJ,kBAAoB,EAAA,mBAAA;AAAA,MACpB,iBAAmB,EAAA,kBAAA;AAAA,MACnB,MAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAU,EAAA,gBAAA;AAAA,MACP,GAAA,iBAAA;AAAA,KACD,GAAA,aAAA,CAAA;AAEJ,IAAM,MAAA;AAAA,MACJ,SAAW,EAAA;AAAA,QACT,kBAAoB,EAAA,oBAAA;AAAA,QACpB,iBAAmB,EAAA,mBAAA;AAAA,UACjB,EAAC;AAAA,MACL,QAAU,EAAA,iBAAA;AAAA,MACV,QAAU,EAAA,iBAAA;AAAA,MACV,SAAW,EAAA,iBAAA;AAAA,MACX,gBAAkB,EAAA,yBAAA;AAAA,QAChB,iBAAkB,EAAA,CAAA;AAEtB,IAAA,MAAM,aAAa,QAAY,IAAA,iBAAA,CAAA;AAC/B,IAAA,MAAM,aAAa,QAAY,IAAA,iBAAA,CAAA;AAC/B,IAAA,MAAM,mBAAmB,yBAA6B,IAAA,IAAA,GAAA,yBAAA,GAAA,oBAAA,CAAA;AACtD,IAAM,MAAA,UAAA,GAAa,oBACf,CAAC,UAAA,EAAY,UAAU,CAAE,CAAA,QAAA,CAAS,iBAAiB,CACtC,GAAA,gBAAA,CAAA;AAEjB,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,aAAc,CAAA;AAAA,MACtC,UAAY,EAAA,SAAA;AAAA,MACZ,OAAS,EAAA,gBAAA;AAAA,MACT,IAAM,EAAA,gBAAA;AAAA,MACN,KAAO,EAAA,OAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,CAAC,KAA4C,KAAA;AAChE,MAAMC,MAAAA,MAAAA,GAAQ,MAAM,MAAO,CAAA,KAAA,CAAA;AAC3B,MAAA,QAAA,CAASA,MAAK,CAAA,CAAA;AACd,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KACb,CAAA;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,KAA2C,KAAA;AAC7D,MAAS,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AACT,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,KAA2C,KAAA;AAC9D,MAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AACV,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,KACjB,CAAA;AAEA,IAAA,MAAM,oBAAuB,GAAA;AAAA,MAC3B,2BAA6B,EAAA,IAAA;AAAA,MAC7B,GAAG,KAAA;AAAA,KACL,CAAA;AAEA,IAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,OAAO,CAAA;AAAA,QACpB;AAAA,UACE,CAAC,YAAa,CAAA,kBAAkB,CAAI,GAAA,YAAA;AAAA,UACpC,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,SAAS,IAAI,CAAC,UAAA,IAAc,CAAC,UAAc,IAAA,OAAA;AAAA,UACzD,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,gBAAoB,IAAA,EAAE,CAAI,GAAA,gBAAA;AAAA,SAC1C;AAAA,QACA,aAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,KAAO,EAAA,oBAAA;AAAA,MACN,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,cAAA,oBACE,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,yBAAyB,CAAA;AAAA,UACnD,QAAA,EAAA,cAAA;AAAA,SACH,CAAA;AAAA,wBAED,GAAA,CAAA,UAAA,EAAA;AAAA,UACC,kBAAA,EAAkB,IAAK,CAAA,oBAAA,EAAsB,mBAAmB,CAAA;AAAA,UAChE,iBAAA,EAAiB,IAAK,CAAA,mBAAA,EAAqB,kBAAkB,CAAA;AAAA,UAC7D,WAAW,IAAK,CAAA,YAAA,CAAa,UAAU,CAAA,EAAG,+CAAe,SAAS,CAAA;AAAA,UAClE,QAAU,EAAA,UAAA;AAAA,UACV,EAAA;AAAA,UACA,QAAU,EAAA,UAAA;AAAA,UACV,GAAK,EAAA,WAAA;AAAA,UACL,QAAU,EAAA,UAAA;AAAA,UACV,IAAA;AAAA,UACA,IAAA;AAAA,UACA,QAAA,EAAU,UAAc,IAAA,UAAA,GAAa,CAAK,CAAA,GAAA,CAAA;AAAA,UAC1C,MAAQ,EAAA,UAAA;AAAA,UACR,QAAU,EAAA,YAAA;AAAA,UACV,OAAS,EAAA,CAAC,UAAc,IAAA,CAAC,aAAa,WAAc,GAAA,KAAA,CAAA;AAAA,UACpD,WAAA;AAAA,UACA,KAAA;AAAA,UACC,GAAG,aAAA;AAAA,UACH,GAAG,iBAAA;AAAA,SACN,CAAA;AAAA,wBACC,IAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,kBAAkB,CAAA;AAAA,UAC5C,QAAA,EAAA;AAAA,YAAA,CAAC,UAAc,IAAA,CAAC,UAAc,IAAA,gBAAA,oBAC5B,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,0BAA0B,CAAA;AAAA,cACrD,QAAC,kBAAA,GAAA,CAAA,eAAA,EAAA;AAAA,gBAAgB,MAAQ,EAAA,gBAAA;AAAA,eAAkB,CAAA;AAAA,aAC7C,CAAA;AAAA,YAED,gCACE,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,uBAAuB,CAAA;AAAA,cACjD,QAAA,EAAA,YAAA;AAAA,aACH,CAAA;AAAA,WAAA;AAAA,SAEJ,CAAA;AAAA,wBACC,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,qBAAqB,CAAA;AAAA,SAAG,CAAA;AAAA,OAAA;AAAA,KACvD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -3,7 +3,6 @@ import { makePrefixer, FlexLayout } from '@salt-ds/core';
|
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ParentChildItem } from '../parent-child-item/ParentChildItem.js';
|
|
6
|
-
import '../utils/useFloatingUI.js';
|
|
7
6
|
import { useIsViewportLargerThanBreakpoint } from '../utils/useIsViewportLargerThanBreakpoint.js';
|
|
8
7
|
import { useWindow } from '@salt-ds/window';
|
|
9
8
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["ParentChildLayout","parentChildLayoutCss"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["ParentChildLayout","parentChildLayoutCss"],"mappings":";;;;;;;;;;AAoDA,MAAM,YAAA,GAAe,aAAa,uBAAuB,CAAA,CAAA;AAEzD,MAAM,YAAA,GAAe,CACnB,WAAA,EACA,kBACG,KAAA;AACH,EAAA,IAAI,SAA4B,GAAA,OAAA,CAAA;AAEhC,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoB,UAG/B,CAAA,SAASA,kBACT,CAAA;AAAA,EACE,mBAAsB,GAAA,IAAA;AAAA,EACtB,kBAAqB,GAAA,QAAA;AAAA,EACrB,iBAAoB,GAAA,KAAA;AAAA,EACpB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,kCAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACG,GAAA,CAAA,eAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACG,GAAA,CAAA,eAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IAAW,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,eAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACC,GAAA,CAAA,eAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,KAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var css_248z = "/* Styles applied to the root element */\n.saltPillNext {\n --pillNext-background: var(--salt-actionable-primary-background);\n --pillNext-background-active: var(--salt-actionable-primary-background-active);\n --pillNext-background-disabled: var(--salt-actionable-primary-background-disabled);\n --pillNext-background-hover: var(--salt-actionable-primary-background-hover);\n --pillNext-text-color: var(--salt-actionable-primary-foreground);\n --pillNext-text-color-active: var(--salt-actionable-primary-foreground-active);\n --pillNext-text-color-hover: var(--salt-actionable-primary-foreground-hover);\n --pillNext-text-color-disabled: var(--salt-actionable-primary-foreground-disabled);\n}\n\n.saltPillNext {\n appearance: none;\n display: inline-flex;\n align-items: center;\n background: var(--pillNext-background);\n border-radius: 0;\n border: 0;\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n min-width: 4em;\n min-height: var(--salt-text-minHeight);\n outline: 0;\n position: relative;\n gap: var(--salt-spacing-50);\n padding-inline: var(--salt-spacing-50);\n color: var(--pillNext-text-color);\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-label-lineHeight);\n}\n\n.saltPillNext-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.saltPillNext .saltIcon {\n --saltIcon-color: currentColor;\n}\n\n/* Style applied to Pill if `onClick` prop is provided */\n.saltPillNext-clickable {\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltPillNext-clickable:hover {\n color: var(--pillNext-text-color-hover);\n background: var(--pillNext-background-hover);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled:hover {\n color: var(--pillNext-text-color);\n background: var(--pillNext-background);\n}\n\n.saltPillNext-clickable.saltPillNext-active,\n.saltPillNext-clickable:active {\n background: var(--pillNext-background-active);\n color: var(--pillNext-text-color-active);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled.saltPillNext-active,\n.saltPillNext-clickable.saltPillNext-disabled:active {\n background: var(--pillNext-background);\n color: var(--pillNext-text-color);\n}\n\n/* Style applied to Pill on focus */\n.saltPillNext:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Style applied to Pill when disabled */\n.saltPillNext.saltPillNext-disabled,\n.saltPillNext.saltPillNext-disabled:hover,\n.saltPillNext.saltPillNext-disabled:active {\n color: var(--pillNext-text-color-disabled);\n background: var(--pillNext-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n";
|
|
2
|
+
|
|
3
|
+
export { css_248z as default };
|
|
4
|
+
//# sourceMappingURL=PillNext.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PillNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useWindow } from '@salt-ds/window';
|
|
5
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
6
|
+
import { makePrefixer, useButton } from '@salt-ds/core';
|
|
7
|
+
import css_248z from './PillNext.css.js';
|
|
8
|
+
|
|
9
|
+
const withBaseName = makePrefixer("saltPillNext");
|
|
10
|
+
const PillNext = forwardRef(
|
|
11
|
+
function PillNext2({ children, className, icon, disabled, ...restProps }, ref) {
|
|
12
|
+
const targetWindow = useWindow();
|
|
13
|
+
useComponentCssInjection({
|
|
14
|
+
testId: "salt-pill-next",
|
|
15
|
+
css: css_248z,
|
|
16
|
+
window: targetWindow
|
|
17
|
+
});
|
|
18
|
+
const { buttonProps, active } = useButton({
|
|
19
|
+
disabled,
|
|
20
|
+
...restProps
|
|
21
|
+
});
|
|
22
|
+
const { tabIndex, ...restButtonProps } = buttonProps;
|
|
23
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
24
|
+
"data-testid": "pill",
|
|
25
|
+
ref,
|
|
26
|
+
type: "button",
|
|
27
|
+
className: clsx(
|
|
28
|
+
withBaseName(),
|
|
29
|
+
withBaseName("clickable"),
|
|
30
|
+
{
|
|
31
|
+
[withBaseName("active")]: active,
|
|
32
|
+
[withBaseName("disabled")]: disabled
|
|
33
|
+
},
|
|
34
|
+
className
|
|
35
|
+
),
|
|
36
|
+
...restButtonProps,
|
|
37
|
+
...restProps,
|
|
38
|
+
children: [
|
|
39
|
+
icon,
|
|
40
|
+
/* @__PURE__ */ jsx("span", {
|
|
41
|
+
className: withBaseName("label"),
|
|
42
|
+
children
|
|
43
|
+
})
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
export { PillNext };
|
|
50
|
+
//# sourceMappingURL=PillNext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PillNext.js","sources":["../src/pill-next/PillNext.tsx"],"sourcesContent":["import {\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n ComponentPropsWithoutRef,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { makePrefixer, useButton } from \"@salt-ds/core\";\nimport pillCss from \"./PillNext.css\";\n\nexport type PillClickEvent =\n | MouseEvent<Element, globalThis.MouseEvent>\n | KeyboardEvent<HTMLDivElement>;\n\nexport interface PillNextProps extends ComponentPropsWithoutRef<\"button\"> {\n /* If true the pill will be disabled */\n disabled?: boolean;\n /* Pass an element to render an icon descriptor on the left of the label */\n icon?: React.ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltPillNext\");\n\nexport const PillNext = forwardRef<HTMLButtonElement, PillNextProps>(\n function PillNext(\n { children, className, icon, disabled, ...restProps },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-next\",\n css: pillCss,\n window: targetWindow,\n });\n const { buttonProps, active } = useButton<HTMLButtonElement>({\n disabled,\n ...restProps,\n });\n // we do not want to spread tab index in this case because the button element\n // does not require tabindex=\"0\" attribute\n const { tabIndex, ...restButtonProps } = buttonProps;\n\n return (\n <button\n data-testid=\"pill\"\n ref={ref}\n type=\"button\"\n className={clsx(\n withBaseName(),\n withBaseName(\"clickable\"),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n {...restButtonProps}\n {...restProps}\n >\n {icon}\n <span className={withBaseName(\"label\")}>{children}</span>\n </button>\n );\n }\n);\n"],"names":["PillNext","pillCss"],"mappings":";;;;;;;;AAuBA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,SAASA,UACP,EAAE,QAAA,EAAU,WAAW,IAAM,EAAA,QAAA,EAAA,GAAa,SAAU,EAAA,EACpD,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AACD,IAAA,MAAM,EAAE,WAAA,EAAa,MAAO,EAAA,GAAI,SAA6B,CAAA;AAAA,MAC3D,QAAA;AAAA,MACA,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;AAGD,IAAM,MAAA,EAAE,QAAa,EAAA,GAAA,eAAA,EAAoB,GAAA,WAAA,CAAA;AAEzC,IAAA,uBACG,IAAA,CAAA,QAAA,EAAA;AAAA,MACC,aAAY,EAAA,MAAA;AAAA,MACZ,GAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,WAAW,CAAA;AAAA,QACxB;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,SAC9B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,eAAA;AAAA,MACH,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,wBACA,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,OAAA;AAAA,KACpD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = ".saltCircularProgress {\n --circularProgress-
|
|
1
|
+
var css_248z = ".saltCircularProgress {\n --circularProgress-progressCircle-radius: calc(var(--salt-size-base) - (var(--salt-size-adornment) * 0.25));\n --circularProgress-progressCircle-circumference: calc(var(--circularProgress-progressCircle-radius) * 2 * PI);\n --circularProgress-railCircle-radius: calc(var(--salt-size-base) - (var(--salt-track-borderWidth) * 0.5));\n --circularProgress-railCircle-circumference: calc(var(--circularProgress-railCircle-radius) * 2 * PI);\n\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-progressValue,\n.saltCircularProgress-disabled circle {\n color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltCircularProgress-progressValue {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-label-fontSize);\n font-weight: var(--salt-text-label-fontWeight-strong);\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-circle {\n stroke: var(--salt-accent-background-disabled);\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor-disabled);\n}\n\n.saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor);\n stroke-width: var(--salt-track-borderWidth);\n r: var(--circularProgress-railCircle-radius);\n}\n\n.saltCircularProgress-svg {\n height: calc(var(--salt-size-base) * 2);\n width: calc(var(--salt-size-base) * 2);\n fill: var(--salt-accent-background);\n transform: rotate(-90deg);\n display: block;\n}\n\n.saltCircularProgress-circle {\n r: var(--circularProgress-progressCircle-radius);\n stroke-width: calc(var(--salt-size-adornment) * 0.5);\n stroke: var(--salt-accent-background);\n transition: stroke-dashoffset 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=CircularProgress.css.js.map
|
|
@@ -3,46 +3,20 @@ import { forwardRef, useEffect } from 'react';
|
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { makePrefixer } from '@salt-ds/core';
|
|
5
5
|
import { Info } from '../Info.js';
|
|
6
|
-
import { ViewBox, LinearGradient, Circle, SIZE } from './CircularProgressParts.js';
|
|
7
6
|
import { useWindow } from '@salt-ds/window';
|
|
8
7
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
9
8
|
import css_248z from './CircularProgress.css.js';
|
|
10
9
|
|
|
11
|
-
const MAX = 100;
|
|
12
|
-
const MIN = 0;
|
|
13
10
|
const withBaseName = makePrefixer("saltCircularProgress");
|
|
14
|
-
const SIZE_OPTIONS = {
|
|
15
|
-
small: {
|
|
16
|
-
container: 36
|
|
17
|
-
},
|
|
18
|
-
medium: {
|
|
19
|
-
container: 48
|
|
20
|
-
},
|
|
21
|
-
large: {
|
|
22
|
-
container: 60
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
function getRelativeValue(value, min, max) {
|
|
26
|
-
return (Math.min(Math.max(min, value), max) - min) / (max - min);
|
|
27
|
-
}
|
|
28
|
-
function easeOut(t) {
|
|
29
|
-
t = getRelativeValue(t, 0, 1);
|
|
30
|
-
t = (t -= 1) * t * t + 1;
|
|
31
|
-
return t;
|
|
32
|
-
}
|
|
33
|
-
function easeIn(t) {
|
|
34
|
-
return t * t;
|
|
35
|
-
}
|
|
36
11
|
const CircularProgress = forwardRef(function CircularProgress2({
|
|
37
12
|
"aria-label": ariaLabel,
|
|
38
13
|
className,
|
|
39
14
|
disabled,
|
|
15
|
+
max = 100,
|
|
40
16
|
showInfo = true,
|
|
41
|
-
size = "small",
|
|
42
17
|
renderInfo,
|
|
43
18
|
value = 0,
|
|
44
19
|
unit = "%",
|
|
45
|
-
variant = "static",
|
|
46
20
|
...rest
|
|
47
21
|
}, ref) {
|
|
48
22
|
const targetWindow = useWindow();
|
|
@@ -52,20 +26,15 @@ const CircularProgress = forwardRef(function CircularProgress2({
|
|
|
52
26
|
window: targetWindow
|
|
53
27
|
});
|
|
54
28
|
const circleStyle = {};
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
rootStyle.transform = `rotate(${(easeOut(value / 70) * 270).toFixed(
|
|
65
|
-
3
|
|
66
|
-
)}deg)`;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
29
|
+
const railCircleStyle = {};
|
|
30
|
+
const progress = value / max * 100;
|
|
31
|
+
const progressStrokeLength = `calc(${progress} * var(--circularProgress-progressCircle-circumference) / 100)`;
|
|
32
|
+
const progressGapLength = `calc((100 - ${progress}) * var(--circularProgress-progressCircle-circumference) / 100)`;
|
|
33
|
+
const railStrokeLength = `calc((100 - ${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;
|
|
34
|
+
const railGapLength = `calc((${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;
|
|
35
|
+
circleStyle.strokeDasharray = `${progressStrokeLength} ${progressGapLength}`;
|
|
36
|
+
railCircleStyle.strokeDashoffset = `${railStrokeLength}`;
|
|
37
|
+
railCircleStyle.strokeDasharray = `${railStrokeLength} ${railGapLength}`;
|
|
69
38
|
useEffect(() => {
|
|
70
39
|
if (process.env.NODE_ENV !== "production" && !ariaLabel) {
|
|
71
40
|
console.error(
|
|
@@ -73,7 +42,6 @@ const CircularProgress = forwardRef(function CircularProgress2({
|
|
|
73
42
|
);
|
|
74
43
|
}
|
|
75
44
|
}, [ariaLabel]);
|
|
76
|
-
const containerSize = SIZE_OPTIONS[size].container;
|
|
77
45
|
const getValueProps = () => ({
|
|
78
46
|
unit,
|
|
79
47
|
value,
|
|
@@ -87,54 +55,48 @@ const CircularProgress = forwardRef(function CircularProgress2({
|
|
|
87
55
|
progressInfo = renderInfo ? renderInfo(getValueProps()) : /* @__PURE__ */ jsx(Info, {
|
|
88
56
|
className: withBaseName("progressValue"),
|
|
89
57
|
unit,
|
|
90
|
-
value,
|
|
58
|
+
value: Math.round(progress),
|
|
91
59
|
...rest
|
|
92
60
|
});
|
|
93
61
|
}
|
|
94
62
|
return /* @__PURE__ */ jsxs("div", {
|
|
95
|
-
className: clsx(
|
|
96
|
-
|
|
97
|
-
[withBaseName("
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}),
|
|
63
|
+
className: clsx(
|
|
64
|
+
withBaseName(),
|
|
65
|
+
{ [withBaseName("disabled")]: disabled },
|
|
66
|
+
className
|
|
67
|
+
),
|
|
101
68
|
"data-testid": "circular-progress",
|
|
102
69
|
ref,
|
|
103
70
|
role: "progressbar",
|
|
104
71
|
"aria-label": ariaLabel,
|
|
105
|
-
"aria-valuemax":
|
|
106
|
-
"aria-valuemin":
|
|
72
|
+
"aria-valuemax": max,
|
|
73
|
+
"aria-valuemin": 0,
|
|
107
74
|
"aria-valuenow": value,
|
|
108
75
|
...rest,
|
|
109
76
|
children: [
|
|
110
|
-
/* @__PURE__ */
|
|
111
|
-
className:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
[withBaseName("circleStatic")]: variant === "static"
|
|
129
|
-
})
|
|
130
|
-
})
|
|
131
|
-
]
|
|
132
|
-
})
|
|
77
|
+
/* @__PURE__ */ jsxs("svg", {
|
|
78
|
+
className: withBaseName("svg"),
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ jsx("circle", {
|
|
81
|
+
cx: "50%",
|
|
82
|
+
cy: "50%",
|
|
83
|
+
fill: "none",
|
|
84
|
+
style: railCircleStyle,
|
|
85
|
+
className: withBaseName("railCircle")
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsx("circle", {
|
|
88
|
+
cx: "50%",
|
|
89
|
+
cy: "50%",
|
|
90
|
+
fill: "none",
|
|
91
|
+
style: circleStyle,
|
|
92
|
+
className: withBaseName("circle")
|
|
93
|
+
})
|
|
94
|
+
]
|
|
133
95
|
}),
|
|
134
96
|
progressInfo
|
|
135
97
|
]
|
|
136
98
|
});
|
|
137
99
|
});
|
|
138
100
|
|
|
139
|
-
export { CircularProgress
|
|
101
|
+
export { CircularProgress };
|
|
140
102
|
//# sourceMappingURL=CircularProgress.js.map
|