@foxford/ui 2.76.1-beta-3d975b5-20250715 → 2.77.0-beta-90a741d-20250807
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/LICENSE +27 -0
- package/components/Accordion/Accordion.js +1 -1
- package/components/Accordion/Accordion.js.map +1 -1
- package/components/Accordion/Accordion.mjs +1 -1
- package/components/Accordion/Accordion.mjs.map +1 -1
- package/components/Accordion/hooks.js +1 -1
- package/components/Accordion/hooks.js.map +1 -1
- package/components/Accordion/hooks.mjs +1 -1
- package/components/Accordion/hooks.mjs.map +1 -1
- package/components/AccordionItem/AccordionItem.js +1 -1
- package/components/AccordionItem/AccordionItem.js.map +1 -1
- package/components/AccordionItem/AccordionItem.mjs +1 -1
- package/components/AccordionItem/AccordionItem.mjs.map +1 -1
- package/components/ActionBtn/ActionBtn.js +1 -1
- package/components/ActionBtn/ActionBtn.js.map +1 -1
- package/components/ActionBtn/ActionBtn.mjs +1 -1
- package/components/ActionBtn/ActionBtn.mjs.map +1 -1
- package/components/ActionBtn/style.js.map +1 -1
- package/components/ActionBtn/style.mjs.map +1 -1
- package/components/Alert/Alert.js +1 -1
- package/components/Alert/Alert.js.map +1 -1
- package/components/Alert/Alert.mjs +1 -1
- package/components/Alert/Alert.mjs.map +1 -1
- package/components/Amount/Amount.js +1 -1
- package/components/Amount/Amount.js.map +1 -1
- package/components/Amount/Amount.mjs +1 -1
- package/components/Amount/Amount.mjs.map +1 -1
- package/components/Amount/data/index.js.map +1 -1
- package/components/Amount/data/index.mjs.map +1 -1
- package/components/Amount/style.js.map +1 -1
- package/components/Amount/style.mjs.map +1 -1
- package/components/Anchor/Anchor.js +1 -1
- package/components/Anchor/Anchor.js.map +1 -1
- package/components/Anchor/Anchor.mjs +1 -1
- package/components/Anchor/Anchor.mjs.map +1 -1
- package/components/Arrow/Arrow.js.map +1 -1
- package/components/Arrow/Arrow.mjs.map +1 -1
- package/components/ArrowBadge/ArrowBadge.js.map +1 -1
- package/components/ArrowBadge/ArrowBadge.mjs.map +1 -1
- package/components/AspectRatio/style.js.map +1 -1
- package/components/AspectRatio/style.mjs.map +1 -1
- package/components/Avatar/Avatar.js +1 -1
- package/components/Avatar/Avatar.js.map +1 -1
- package/components/Avatar/Avatar.mjs +1 -1
- package/components/Avatar/Avatar.mjs.map +1 -1
- package/components/Avatar/utils.js.map +1 -1
- package/components/Avatar/utils.mjs.map +1 -1
- package/components/Badge/Badge.js +1 -1
- package/components/Badge/Badge.js.map +1 -1
- package/components/Badge/Badge.mjs +1 -1
- package/components/Badge/Badge.mjs.map +1 -1
- package/components/Button/Button.js +1 -1
- package/components/Button/Button.js.map +1 -1
- package/components/Button/Button.mjs +1 -1
- package/components/Button/Button.mjs.map +1 -1
- package/components/Button/hooks.js.map +1 -1
- package/components/Button/hooks.mjs.map +1 -1
- package/components/Button/style.js.map +1 -1
- package/components/Button/style.mjs.map +1 -1
- package/components/Checkbox/Checkbox.js +1 -1
- package/components/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.mjs +1 -1
- package/components/Checkbox/Checkbox.mjs.map +1 -1
- package/components/Chip/Chip.js +1 -1
- package/components/Chip/Chip.js.map +1 -1
- package/components/Chip/Chip.mjs +1 -1
- package/components/Chip/Chip.mjs.map +1 -1
- package/components/Container/Container.js.map +1 -1
- package/components/Container/Container.mjs.map +1 -1
- package/components/Container/style.js.map +1 -1
- package/components/Container/style.mjs.map +1 -1
- package/components/ContextMenu/ContextMenu.js +1 -1
- package/components/ContextMenu/ContextMenu.js.map +1 -1
- package/components/ContextMenu/ContextMenu.mjs +1 -1
- package/components/ContextMenu/ContextMenu.mjs.map +1 -1
- package/components/ContextMenu/Item.js.map +1 -1
- package/components/ContextMenu/Item.mjs.map +1 -1
- package/components/ContextMenu/style.js.map +1 -1
- package/components/ContextMenu/style.mjs.map +1 -1
- package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.js +1 -1
- package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.js.map +1 -1
- package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.mjs +1 -1
- package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.mjs.map +1 -1
- package/components/ContextMenu.Multilevel/Controls.js.map +1 -1
- package/components/ContextMenu.Multilevel/Controls.mjs.map +1 -1
- package/components/Dialog/Dialog.js.map +1 -1
- package/components/Dialog/Dialog.mjs.map +1 -1
- package/components/DialogComponent/DialogComponent.js +1 -1
- package/components/DialogComponent/DialogComponent.js.map +1 -1
- package/components/DialogComponent/DialogComponent.mjs +1 -1
- package/components/DialogComponent/DialogComponent.mjs.map +1 -1
- package/components/DialogComponent/style.js.map +1 -1
- package/components/DialogComponent/style.mjs.map +1 -1
- package/components/Divider/style.js.map +1 -1
- package/components/Divider/style.mjs.map +1 -1
- package/components/Dropdown/Dropdown.js +1 -1
- package/components/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.mjs +1 -1
- package/components/Dropdown/Dropdown.mjs.map +1 -1
- package/components/Dropdown/DropdownMenuNoOptions.js +1 -1
- package/components/Dropdown/DropdownMenuNoOptions.js.map +1 -1
- package/components/Dropdown/DropdownMenuNoOptions.mjs +1 -1
- package/components/Dropdown/DropdownMenuNoOptions.mjs.map +1 -1
- package/components/Dropdown/hooks.js.map +1 -1
- package/components/Dropdown/hooks.mjs.map +1 -1
- package/components/FormInput/FormInput.js.map +1 -1
- package/components/FormInput/FormInput.mjs.map +1 -1
- package/components/FormInputLabel/FormInputLabel.js +1 -1
- package/components/FormInputLabel/FormInputLabel.js.map +1 -1
- package/components/FormInputLabel/FormInputLabel.mjs +1 -1
- package/components/FormInputLabel/FormInputLabel.mjs.map +1 -1
- package/components/FormLabel/FormLabel.js +1 -1
- package/components/FormLabel/FormLabel.js.map +1 -1
- package/components/FormLabel/FormLabel.mjs +1 -1
- package/components/FormLabel/FormLabel.mjs.map +1 -1
- package/components/Icon/Icon.js +1 -1
- package/components/Icon/Icon.js.map +1 -1
- package/components/Icon/Icon.mjs +1 -1
- package/components/Icon/Icon.mjs.map +1 -1
- package/components/Icon/bg-worker.js.map +1 -1
- package/components/Icon/bg-worker.mjs.map +1 -1
- package/components/Icon/list/default.js.map +1 -1
- package/components/Icon/list/default.mjs.map +1 -1
- package/components/Icon/list/icon-pack.js.map +1 -1
- package/components/Icon/list/icon-pack.mjs.map +1 -1
- package/components/IconButton/IconButton.js.map +1 -1
- package/components/IconButton/IconButton.mjs.map +1 -1
- package/components/Indicator/Indicator.js +1 -1
- package/components/Indicator/Indicator.js.map +1 -1
- package/components/Indicator/Indicator.mjs +1 -1
- package/components/Indicator/Indicator.mjs.map +1 -1
- package/components/Input/Input.js.map +1 -1
- package/components/Input/Input.mjs.map +1 -1
- package/components/Input/helpers.js.map +1 -1
- package/components/Input/helpers.mjs.map +1 -1
- package/components/Input.Phone/Input.Phone.js.map +1 -1
- package/components/Input.Phone/Input.Phone.mjs.map +1 -1
- package/components/InputCheckbox/InputCheckbox.js.map +1 -1
- package/components/InputCheckbox/InputCheckbox.mjs.map +1 -1
- package/components/InputRadio/InputRadio.js.map +1 -1
- package/components/InputRadio/InputRadio.mjs.map +1 -1
- package/components/ListItem/ListItem.js +1 -1
- package/components/ListItem/ListItem.js.map +1 -1
- package/components/ListItem/ListItem.mjs +1 -1
- package/components/ListItem/ListItem.mjs.map +1 -1
- package/components/Menu/Menu.js.map +1 -1
- package/components/Menu/Menu.mjs.map +1 -1
- package/components/MenuComponent/MenuComponent.js.map +1 -1
- package/components/MenuComponent/MenuComponent.mjs.map +1 -1
- package/components/MenuComponent/style.js +1 -1
- package/components/MenuComponent/style.js.map +1 -1
- package/components/MenuComponent/style.mjs +1 -1
- package/components/MenuComponent/style.mjs.map +1 -1
- package/components/MenuContainer/MenuContainer.js +1 -1
- package/components/MenuContainer/MenuContainer.js.map +1 -1
- package/components/MenuContainer/MenuContainer.mjs +1 -1
- package/components/MenuContainer/MenuContainer.mjs.map +1 -1
- package/components/MenuDivider/MenuDivider.js +1 -1
- package/components/MenuDivider/MenuDivider.js.map +1 -1
- package/components/MenuDivider/MenuDivider.mjs +1 -1
- package/components/MenuDivider/MenuDivider.mjs.map +1 -1
- package/components/MenuList/MenuList.js.map +1 -1
- package/components/MenuList/MenuList.mjs.map +1 -1
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.mjs.map +1 -1
- package/components/Modal/adapter.js.map +1 -1
- package/components/Modal/adapter.mjs.map +1 -1
- package/components/Modal/style.js +1 -1
- package/components/Modal/style.js.map +1 -1
- package/components/Modal/style.mjs +1 -1
- package/components/Modal/style.mjs.map +1 -1
- package/components/Notification/Notification.js +1 -1
- package/components/Notification/Notification.js.map +1 -1
- package/components/Notification/Notification.mjs +1 -1
- package/components/Notification/Notification.mjs.map +1 -1
- package/components/Paper/Paper.js.map +1 -1
- package/components/Paper/Paper.mjs.map +1 -1
- package/components/Paper/style.js.map +1 -1
- package/components/Paper/style.mjs.map +1 -1
- package/components/Popover/Popover.js.map +1 -1
- package/components/Popover/Popover.mjs.map +1 -1
- package/components/PopoverComponent/PopoverComponent.js +1 -1
- package/components/PopoverComponent/PopoverComponent.js.map +1 -1
- package/components/PopoverComponent/PopoverComponent.mjs +1 -1
- package/components/PopoverComponent/PopoverComponent.mjs.map +1 -1
- package/components/Progress/Progress.js.map +1 -1
- package/components/Progress/Progress.mjs.map +1 -1
- package/components/Progress/style.js +1 -1
- package/components/Progress/style.js.map +1 -1
- package/components/Progress/style.mjs +1 -1
- package/components/Progress/style.mjs.map +1 -1
- package/components/Progress.Circle/Progress.Circle.js +1 -1
- package/components/Progress.Circle/Progress.Circle.js.map +1 -1
- package/components/Progress.Circle/Progress.Circle.mjs +1 -1
- package/components/Progress.Circle/Progress.Circle.mjs.map +1 -1
- package/components/Progress.Circle/style.js +1 -1
- package/components/Progress.Circle/style.js.map +1 -1
- package/components/Progress.Circle/style.mjs +1 -1
- package/components/Progress.Circle/style.mjs.map +1 -1
- package/components/Progress.Segmented/Progress.Segmented.js.map +1 -1
- package/components/Progress.Segmented/Progress.Segmented.mjs.map +1 -1
- package/components/Progress.Segmented/style.js.map +1 -1
- package/components/Progress.Segmented/style.mjs.map +1 -1
- package/components/ProgressCircle/ProgressCircle.js +1 -1
- package/components/ProgressCircle/ProgressCircle.js.map +1 -1
- package/components/ProgressCircle/ProgressCircle.mjs +1 -1
- package/components/ProgressCircle/ProgressCircle.mjs.map +1 -1
- package/components/ProgressCircle/style.js +1 -1
- package/components/ProgressCircle/style.js.map +1 -1
- package/components/ProgressCircle/style.mjs +1 -1
- package/components/ProgressCircle/style.mjs.map +1 -1
- package/components/ProgressLine/ProgressLine.js +1 -1
- package/components/ProgressLine/ProgressLine.js.map +1 -1
- package/components/ProgressLine/ProgressLine.mjs +1 -1
- package/components/ProgressLine/ProgressLine.mjs.map +1 -1
- package/components/Radio/Group.js.map +1 -1
- package/components/Radio/Group.mjs.map +1 -1
- package/components/Radio/Radio.js +1 -1
- package/components/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.mjs +1 -1
- package/components/Radio/Radio.mjs.map +1 -1
- package/components/Radio/style.js.map +1 -1
- package/components/Radio/style.mjs.map +1 -1
- package/components/Scrollable/Scrollable.js +1 -1
- package/components/Scrollable/Scrollable.js.map +1 -1
- package/components/Scrollable/Scrollable.mjs +1 -1
- package/components/Scrollable/Scrollable.mjs.map +1 -1
- package/components/Section/Section.js.map +1 -1
- package/components/Section/Section.mjs.map +1 -1
- package/components/Section/style.js +1 -1
- package/components/Section/style.js.map +1 -1
- package/components/Section/style.mjs +1 -1
- package/components/Section/style.mjs.map +1 -1
- package/components/Select/Select.js.map +1 -1
- package/components/Select/Select.mjs.map +1 -1
- package/components/Select/style.js +1 -1
- package/components/Select/style.js.map +1 -1
- package/components/Select/style.mjs +1 -1
- package/components/Select/style.mjs.map +1 -1
- package/components/Separator/Separator.js.map +1 -1
- package/components/Separator/Separator.mjs.map +1 -1
- package/components/Separator/SeparatorText.js.map +1 -1
- package/components/Separator/SeparatorText.mjs.map +1 -1
- package/components/Separator/style.js +1 -1
- package/components/Separator/style.js.map +1 -1
- package/components/Separator/style.mjs +1 -1
- package/components/Separator/style.mjs.map +1 -1
- package/components/Spacer/Spacer.js.map +1 -1
- package/components/Spacer/Spacer.mjs.map +1 -1
- package/components/Spacer/style.js.map +1 -1
- package/components/Spacer/style.mjs.map +1 -1
- package/components/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.mjs.map +1 -1
- package/components/Spinner/style.js +1 -1
- package/components/Spinner/style.js.map +1 -1
- package/components/Spinner/style.mjs +1 -1
- package/components/Spinner/style.mjs.map +1 -1
- package/components/Switch/Switch.js.map +1 -1
- package/components/Switch/Switch.mjs.map +1 -1
- package/components/Switcher/style.js.map +1 -1
- package/components/Switcher/style.mjs.map +1 -1
- package/components/Tab/Tab.js +1 -1
- package/components/Tab/Tab.js.map +1 -1
- package/components/Tab/Tab.mjs +1 -1
- package/components/Tab/Tab.mjs.map +1 -1
- package/components/TabList/TabList.js +1 -1
- package/components/TabList/TabList.js.map +1 -1
- package/components/TabList/TabList.mjs +1 -1
- package/components/TabList/TabList.mjs.map +1 -1
- package/components/TabList/TabListMenuTab.js +1 -1
- package/components/TabList/TabListMenuTab.js.map +1 -1
- package/components/TabList/TabListMenuTab.mjs +1 -1
- package/components/TabList/TabListMenuTab.mjs.map +1 -1
- package/components/TabList/TabListPanel.js.map +1 -1
- package/components/TabList/TabListPanel.mjs.map +1 -1
- package/components/TabList/hooks.js +1 -1
- package/components/TabList/hooks.js.map +1 -1
- package/components/TabList/hooks.mjs +1 -1
- package/components/TabList/hooks.mjs.map +1 -1
- package/components/TabList/style.js +1 -1
- package/components/TabList/style.js.map +1 -1
- package/components/TabList/style.mjs +1 -1
- package/components/TabList/style.mjs.map +1 -1
- package/components/TabListTab/TabListTab.js.map +1 -1
- package/components/TabListTab/TabListTab.mjs.map +1 -1
- package/components/TabListTab/style.js +1 -1
- package/components/TabListTab/style.js.map +1 -1
- package/components/TabListTab/style.mjs +1 -1
- package/components/TabListTab/style.mjs.map +1 -1
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.mjs.map +1 -1
- package/components/Tabs/style.js +1 -1
- package/components/Tabs/style.js.map +1 -1
- package/components/Tabs/style.mjs +1 -1
- package/components/Tabs/style.mjs.map +1 -1
- package/components/Tag/Tag.js +1 -1
- package/components/Tag/Tag.js.map +1 -1
- package/components/Tag/Tag.mjs +1 -1
- package/components/Tag/Tag.mjs.map +1 -1
- package/components/Tag/style.js +1 -1
- package/components/Tag/style.js.map +1 -1
- package/components/Tag/style.mjs +1 -1
- package/components/Tag/style.mjs.map +1 -1
- package/components/Text/Ellipsis.js +1 -1
- package/components/Text/Ellipsis.js.map +1 -1
- package/components/Text/Ellipsis.mjs +1 -1
- package/components/Text/Ellipsis.mjs.map +1 -1
- package/components/Text/Text.js.map +1 -1
- package/components/Text/Text.mjs.map +1 -1
- package/components/Text/style.js.map +1 -1
- package/components/Text/style.mjs.map +1 -1
- package/components/Text.Ellipse/Text.Ellipse.js +1 -1
- package/components/Text.Ellipse/Text.Ellipse.js.map +1 -1
- package/components/Text.Ellipse/Text.Ellipse.mjs +1 -1
- package/components/Text.Ellipse/Text.Ellipse.mjs.map +1 -1
- package/components/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.mjs +1 -1
- package/components/Textarea/Textarea.mjs.map +1 -1
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.mjs.map +1 -1
- package/components/Tooltip/TooltipWrapper.js.map +1 -1
- package/components/Tooltip/TooltipWrapper.mjs.map +1 -1
- package/components/TooltipComponent/TooltipComponent.js +1 -1
- package/components/TooltipComponent/TooltipComponent.js.map +1 -1
- package/components/TooltipComponent/TooltipComponent.mjs +1 -1
- package/components/TooltipComponent/TooltipComponent.mjs.map +1 -1
- package/dts/index.d.ts +2630 -2557
- package/hocs/withMergedProps.js.map +1 -1
- package/hocs/withMergedProps.mjs.map +1 -1
- package/hocs/withTranslation.js +1 -1
- package/hocs/withTranslation.js.map +1 -1
- package/hocs/withTranslation.mjs +1 -1
- package/hocs/withTranslation.mjs.map +1 -1
- package/hooks/use-config-priority.js.map +1 -1
- package/hooks/use-config-priority.mjs +1 -1
- package/hooks/use-config-priority.mjs.map +1 -1
- package/hooks/useClickOutside.js.map +1 -1
- package/hooks/useClickOutside.mjs.map +1 -1
- package/hooks/useMergedPalette.js +1 -1
- package/hooks/useMergedPalette.js.map +1 -1
- package/hooks/useMergedPalette.mjs +1 -1
- package/hooks/useMergedPalette.mjs.map +1 -1
- package/hooks/useMergedProps.js.map +1 -1
- package/hooks/useMergedProps.mjs.map +1 -1
- package/hooks/useMergedSizes.js.map +1 -1
- package/hooks/useMergedSizes.mjs.map +1 -1
- package/hooks/useResizeObserver.js.map +1 -1
- package/hooks/useResizeObserver.mjs.map +1 -1
- package/hooks/useScrollMonitor.js +1 -1
- package/hooks/useScrollMonitor.js.map +1 -1
- package/hooks/useScrollMonitor.mjs +1 -1
- package/hooks/useScrollMonitor.mjs.map +1 -1
- package/hooks/useScrollThresholds.js.map +1 -1
- package/hooks/useScrollThresholds.mjs.map +1 -1
- package/mixins/color.js.map +1 -1
- package/mixins/color.mjs.map +1 -1
- package/mixins/create-responsive-props.js.map +1 -1
- package/mixins/create-responsive-props.mjs.map +1 -1
- package/mixins/display.js.map +1 -1
- package/mixins/display.mjs.map +1 -1
- package/mixins/responsive-margin.js.map +1 -1
- package/mixins/responsive-margin.mjs.map +1 -1
- package/mixins/responsive-property.js +1 -1
- package/mixins/responsive-property.js.map +1 -1
- package/mixins/responsive-property.mjs +1 -1
- package/mixins/responsive-property.mjs.map +1 -1
- package/mixins/screen.js +1 -1
- package/mixins/screen.js.map +1 -1
- package/mixins/screen.mjs +1 -1
- package/mixins/screen.mjs.map +1 -1
- package/mixins/shared.js +4 -4
- package/mixins/shared.js.map +1 -1
- package/mixins/shared.mjs +4 -4
- package/mixins/shared.mjs.map +1 -1
- package/mixins/vAlign.js.map +1 -1
- package/mixins/vAlign.mjs.map +1 -1
- package/package.json +7 -7
- package/shared/enums/sizeInput.js.map +1 -1
- package/shared/enums/sizeInput.mjs.map +1 -1
- package/shared/resize-observer.js.map +1 -1
- package/shared/resize-observer.mjs.map +1 -1
- package/shared/utils/colors.js.map +1 -1
- package/shared/utils/colors.mjs.map +1 -1
- package/shared/utils/dom.js.map +1 -1
- package/shared/utils/dom.mjs.map +1 -1
- package/shared/utils/react.js.map +1 -1
- package/shared/utils/react.mjs.map +1 -1
- package/shared/utils/rel-builder.js +1 -1
- package/shared/utils/rel-builder.js.map +1 -1
- package/shared/utils/rel-builder.mjs +1 -1
- package/shared/utils/rel-builder.mjs.map +1 -1
- package/theme/colors-dark.js.map +1 -1
- package/theme/colors-dark.mjs.map +1 -1
- package/theme/colors-light.js.map +1 -1
- package/theme/colors-light.mjs.map +1 -1
- package/theme/colors.js.map +1 -1
- package/theme/colors.mjs.map +1 -1
- package/theme/global-styled.js.map +1 -1
- package/theme/global-styled.mjs.map +1 -1
- package/theme/theme-provider.js.map +1 -1
- package/theme/theme-provider.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenuNoOptions.js","sources":["../../../../src/components/Dropdown/DropdownMenuNoOptions.tsx"],"sourcesContent":["import { MenuContainer } from 'components/MenuContainer'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nimport type { DropdownMenuNoOptionsProps } from './types'\n\nconst DropdownMenuNoOptions = (props: DropdownMenuNoOptionsProps) => {\n const {\n loadingIcon = <Styled.LoadingIconAnimated />,\n emptyIcon = 'redo',\n loadingIconProps = {},\n emptyIconProps = {},\n loading,\n loadingMessage,\n emptyMessage,\n } = props\n\n return (\n <MenuContainer>\n <Styled.IconContainer>\n {loading ? (\n <Icon\n preset='brand'\n name={typeof loadingIcon === 'string' ? loadingIcon : undefined}\n icon={typeof loadingIcon !== 'string' ? loadingIcon : undefined}\n {...loadingIconProps}\n />\n ) : (\n <Icon\n preset='brand'\n name={typeof emptyIcon === 'string' ? emptyIcon : undefined}\n icon={typeof emptyIcon !== 'string' ? emptyIcon : undefined}\n {...emptyIconProps}\n />\n )}\n </Styled.IconContainer>\n {loading && loadingMessage
|
|
1
|
+
{"version":3,"file":"DropdownMenuNoOptions.js","sources":["../../../../src/components/Dropdown/DropdownMenuNoOptions.tsx"],"sourcesContent":["import { MenuContainer } from 'components/MenuContainer'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nimport type { DropdownMenuNoOptionsProps } from './types'\n\nconst DropdownMenuNoOptions = (props: DropdownMenuNoOptionsProps) => {\n const {\n loadingIcon = <Styled.LoadingIconAnimated />,\n emptyIcon = 'redo',\n loadingIconProps = {},\n emptyIconProps = {},\n loading,\n loadingMessage,\n emptyMessage,\n } = props\n\n return (\n <MenuContainer>\n <Styled.IconContainer>\n {loading ? (\n <Icon\n preset='brand'\n name={typeof loadingIcon === 'string' ? loadingIcon : undefined}\n icon={typeof loadingIcon !== 'string' ? loadingIcon : undefined}\n {...loadingIconProps}\n />\n ) : (\n <Icon\n preset='brand'\n name={typeof emptyIcon === 'string' ? emptyIcon : undefined}\n icon={typeof emptyIcon !== 'string' ? emptyIcon : undefined}\n {...emptyIconProps}\n />\n )}\n </Styled.IconContainer>\n {loading && loadingMessage ? (\n <Text\n as='p'\n appearance='body'\n size='inherit'\n color='inherit'\n textAlign='center'\n wordBreak='break-word'\n marginRight={12}\n marginBottom={12}\n marginLeft={12}\n >\n {loadingMessage}\n </Text>\n ) : null}\n {!loading && emptyMessage ? (\n <Text\n as='p'\n appearance='body'\n size='inherit'\n color='inherit'\n textAlign='center'\n wordBreak='break-word'\n marginRight={12}\n marginBottom={12}\n marginLeft={12}\n >\n {emptyMessage}\n </Text>\n ) : null}\n </MenuContainer>\n )\n}\n\nexport { DropdownMenuNoOptions }\n"],"names":["props","loadingIcon","_jsx","Styled","LoadingIconAnimated","emptyIcon","loadingIconProps","emptyIconProps","loading","loadingMessage","emptyMessage","_jsxs","MenuContainer","children","jsx","Icon","preset","name","undefined","icon","Text","as","appearance","size","color","textAlign","wordBreak","marginRight","marginBottom","marginLeft"],"mappings":"8PAO+BA,IAC7B,MAAMC,YACJA,EAAcC,WAAAA,IAACC,MAA0BC,wBAAGC,UAC5CA,EAAY,OAAMC,iBAClBA,EAAmB,CAAE,EAAAC,eACrBA,EAAiB,CAAE,EAAAC,QACnBA,EAAOC,eACPA,EAAcC,aACdA,GACEV,EAEJ,OACEW,WAAAA,KAACC,cAAAA,cAAa,CAAAC,SACZX,CAAAA,WAAAY,IAACX,oBAAoB,CAAAU,SAEjBX,WAAAY,IAACC,UADFP,EACM,CACHQ,OAAO,QACPC,YAAahB,GAAgB,SAAWA,OAAciB,EACtDC,YAAalB,GAAgB,SAAWA,OAAciB,KAClDZ,GAGD,CACHU,OAAO,QACPC,YAAaZ,GAAc,SAAWA,OAAYa,EAClDC,YAAad,GAAc,SAAWA,OAAYa,KAC9CX,MAITC,GAAWC,EACVP,WAAAA,IAACkB,KAAAA,KAAI,CACHC,GAAG,IACHC,WAAW,OACXC,KAAK,UACLC,MAAM,UACNC,UAAU,SACVC,UAAU,aACVC,YAAa,GACbC,aAAc,GACdC,WAAY,GAAGhB,SAEdJ,IAED,MACFD,GAAWE,EACXR,WAAAA,IAACkB,KAAAA,KAAI,CACHC,GAAG,IACHC,WAAW,OACXC,KAAK,UACLC,MAAM,UACNC,UAAU,SACVC,UAAU,aACVC,YAAa,GACbC,aAAc,GACdC,WAAY,GAAGhB,SAEdH,IAED,OACU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{IconContainer,LoadingIconAnimated}from'./style.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{MenuContainer}from'../MenuContainer/MenuContainer.mjs';import{Icon}from'../Icon/Icon.mjs';import{Text}from'../Text/Text.mjs';const DropdownMenuNoOptions=n=>{const{loadingIcon:o=jsx(LoadingIconAnimated,{}),emptyIcon:e="redo",loadingIconProps:r={},emptyIconProps:t={},loading:i,loadingMessage:a,emptyMessage:s}=n;return jsxs(MenuContainer,{children:[jsx(IconContainer,{children:jsx(Icon,i?{preset:"brand",name:typeof o=='string'?o:void 0,icon:typeof o!='string'?o:void 0,...r}:{preset:"brand",name:typeof e=='string'?e:void 0,icon:typeof e!='string'?e:void 0,...t})}),i&&a
|
|
1
|
+
import{IconContainer,LoadingIconAnimated}from'./style.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{MenuContainer}from'../MenuContainer/MenuContainer.mjs';import{Icon}from'../Icon/Icon.mjs';import{Text}from'../Text/Text.mjs';const DropdownMenuNoOptions=n=>{const{loadingIcon:o=jsx(LoadingIconAnimated,{}),emptyIcon:e="redo",loadingIconProps:r={},emptyIconProps:t={},loading:i,loadingMessage:a,emptyMessage:s}=n;return jsxs(MenuContainer,{children:[jsx(IconContainer,{children:jsx(Icon,i?{preset:"brand",name:typeof o=='string'?o:void 0,icon:typeof o!='string'?o:void 0,...r}:{preset:"brand",name:typeof e=='string'?e:void 0,icon:typeof e!='string'?e:void 0,...t})}),i&&a?jsx(Text,{as:"p",appearance:"body",size:"inherit",color:"inherit",textAlign:"center",wordBreak:"break-word",marginRight:12,marginBottom:12,marginLeft:12,children:a}):null,!i&&s?jsx(Text,{as:"p",appearance:"body",size:"inherit",color:"inherit",textAlign:"center",wordBreak:"break-word",marginRight:12,marginBottom:12,marginLeft:12,children:s}):null]})};export{DropdownMenuNoOptions};
|
|
2
2
|
//# sourceMappingURL=DropdownMenuNoOptions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenuNoOptions.mjs","sources":["../../../../src/components/Dropdown/DropdownMenuNoOptions.tsx"],"sourcesContent":["import { MenuContainer } from 'components/MenuContainer'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nimport type { DropdownMenuNoOptionsProps } from './types'\n\nconst DropdownMenuNoOptions = (props: DropdownMenuNoOptionsProps) => {\n const {\n loadingIcon = <Styled.LoadingIconAnimated />,\n emptyIcon = 'redo',\n loadingIconProps = {},\n emptyIconProps = {},\n loading,\n loadingMessage,\n emptyMessage,\n } = props\n\n return (\n <MenuContainer>\n <Styled.IconContainer>\n {loading ? (\n <Icon\n preset='brand'\n name={typeof loadingIcon === 'string' ? loadingIcon : undefined}\n icon={typeof loadingIcon !== 'string' ? loadingIcon : undefined}\n {...loadingIconProps}\n />\n ) : (\n <Icon\n preset='brand'\n name={typeof emptyIcon === 'string' ? emptyIcon : undefined}\n icon={typeof emptyIcon !== 'string' ? emptyIcon : undefined}\n {...emptyIconProps}\n />\n )}\n </Styled.IconContainer>\n {loading && loadingMessage
|
|
1
|
+
{"version":3,"file":"DropdownMenuNoOptions.mjs","sources":["../../../../src/components/Dropdown/DropdownMenuNoOptions.tsx"],"sourcesContent":["import { MenuContainer } from 'components/MenuContainer'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nimport type { DropdownMenuNoOptionsProps } from './types'\n\nconst DropdownMenuNoOptions = (props: DropdownMenuNoOptionsProps) => {\n const {\n loadingIcon = <Styled.LoadingIconAnimated />,\n emptyIcon = 'redo',\n loadingIconProps = {},\n emptyIconProps = {},\n loading,\n loadingMessage,\n emptyMessage,\n } = props\n\n return (\n <MenuContainer>\n <Styled.IconContainer>\n {loading ? (\n <Icon\n preset='brand'\n name={typeof loadingIcon === 'string' ? loadingIcon : undefined}\n icon={typeof loadingIcon !== 'string' ? loadingIcon : undefined}\n {...loadingIconProps}\n />\n ) : (\n <Icon\n preset='brand'\n name={typeof emptyIcon === 'string' ? emptyIcon : undefined}\n icon={typeof emptyIcon !== 'string' ? emptyIcon : undefined}\n {...emptyIconProps}\n />\n )}\n </Styled.IconContainer>\n {loading && loadingMessage ? (\n <Text\n as='p'\n appearance='body'\n size='inherit'\n color='inherit'\n textAlign='center'\n wordBreak='break-word'\n marginRight={12}\n marginBottom={12}\n marginLeft={12}\n >\n {loadingMessage}\n </Text>\n ) : null}\n {!loading && emptyMessage ? (\n <Text\n as='p'\n appearance='body'\n size='inherit'\n color='inherit'\n textAlign='center'\n wordBreak='break-word'\n marginRight={12}\n marginBottom={12}\n marginLeft={12}\n >\n {emptyMessage}\n </Text>\n ) : null}\n </MenuContainer>\n )\n}\n\nexport { DropdownMenuNoOptions }\n"],"names":["DropdownMenuNoOptions","props","loadingIcon","_jsx","Styled","emptyIcon","loadingIconProps","emptyIconProps","loading","loadingMessage","emptyMessage","_jsxs","MenuContainer","children","Icon","preset","name","undefined","icon","Text","as","appearance","size","color","textAlign","wordBreak","marginRight","marginBottom","marginLeft"],"mappings":"uOAOMA,MAAAA,sBAAyBC,IAC7B,MAAMC,YACJA,EAAcC,IAACC,wBAA6BC,UAC5CA,EAAY,OAAMC,iBAClBA,EAAmB,CAAE,EAAAC,eACrBA,EAAiB,CAAE,EAAAC,QACnBA,EAAOC,eACPA,EAAcC,aACdA,GACET,EAEJ,OACEU,KAACC,cAAa,CAAAC,SACZV,CAAAA,IAACC,cAAoB,CAAAS,SAEjBV,IAACW,KADFN,EACM,CACHO,OAAO,QACPC,YAAad,GAAgB,SAAWA,OAAce,EACtDC,YAAahB,GAAgB,SAAWA,OAAce,KAClDX,GAGD,CACHS,OAAO,QACPC,YAAaX,GAAc,SAAWA,OAAYY,EAClDC,YAAab,GAAc,SAAWA,OAAYY,KAC9CV,MAITC,GAAWC,EACVN,IAACgB,KAAI,CACHC,GAAG,IACHC,WAAW,OACXC,KAAK,UACLC,MAAM,UACNC,UAAU,SACVC,UAAU,aACVC,YAAa,GACbC,aAAc,GACdC,WAAY,GAAGf,SAEdJ,IAED,MACFD,GAAWE,EACXP,IAACgB,KAAI,CACHC,GAAG,IACHC,WAAW,OACXC,KAAK,UACLC,MAAM,UACNC,UAAU,SACVC,UAAU,aACVC,YAAa,GACbC,aAAc,GACdC,WAAY,GAAGf,SAEdH,IAED,OACU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../../src/components/Dropdown/hooks.ts"],"sourcesContent":["import { useState, useRef, useCallback, useMemo, useEffect } from 'react'\nimport Fuse from 'fuse.js'\nimport { useMountedStatus } from 'hooks/useMountedStatus'\nimport { FuseSearchKeys } from './constants'\nimport type { DropdownOption } from './types'\n\nexport const useFilteredOptions = ({\n options,\n}: {\n options?: DropdownOption[]\n}): [DropdownOption[], (pattern: string) => void] => {\n const [filteredOptions, setFilteredOptions] = useState<DropdownOption[]>(() =>\n Array.isArray(options) ? options : []\n )\n\n const search = useRef<string>('')\n\n const getFilteredOptions = useMemo(() => {\n const fuse = new Fuse<DropdownOption>(options ?? [], {\n threshold: 0.4,\n ignoreLocation: true,\n keys: [FuseSearchKeys.text, FuseSearchKeys.label, FuseSearchKeys.tags],\n })\n\n return (pattern: string) => {\n search.current = pattern\n setFilteredOptions(pattern.length > 0 ? fuse.search(pattern).map((result) => result.item) : options ?? [])\n }\n }, [options])\n\n useEffect(() => {\n getFilteredOptions(search.current)\n }, [getFilteredOptions])\n\n return [filteredOptions, getFilteredOptions]\n}\n\nexport const useLoadedOptions = ({\n loadOptions,\n options,\n}: {\n loadOptions?: (pattern: string) => Promise<DropdownOption[]>\n options?: DropdownOption[]\n}): [DropdownOption[], boolean, (pattern: string) => void] => {\n const getMountedStatus = useMountedStatus()\n\n const [loadedOptions, setLoadedOptions] = useState<DropdownOption[]>(() => (Array.isArray(options) ? options : []))\n const [optionsLoading, setOptionsLoading] = useState<boolean>(false)\n\n const optionsLoader = useRef<Promise<DropdownOption[]> | null>(null)\n\n const getLoadedOptions = useCallback(\n (pattern: string) => {\n if (!loadOptions) return\n\n if (pattern.length === 0 && Array.isArray(options)) {\n optionsLoader.current = null\n setLoadedOptions(options)\n setOptionsLoading(false)\n } else {\n const loader: Promise<DropdownOption[]> = (optionsLoader.current = loadOptions(pattern))\n\n setOptionsLoading(true)\n loader\n .then((payload) => {\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions(payload)\n setOptionsLoading(false)\n }\n })\n .catch((err) => {\n
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../../src/components/Dropdown/hooks.ts"],"sourcesContent":["import { useState, useRef, useCallback, useMemo, useEffect } from 'react'\nimport Fuse from 'fuse.js'\nimport { useMountedStatus } from 'hooks/useMountedStatus'\nimport { FuseSearchKeys } from './constants'\nimport type { DropdownOption } from './types'\n\nexport const useFilteredOptions = ({\n options,\n}: {\n options?: DropdownOption[]\n}): [DropdownOption[], (pattern: string) => void] => {\n const [filteredOptions, setFilteredOptions] = useState<DropdownOption[]>(() =>\n Array.isArray(options) ? options : []\n )\n\n const search = useRef<string>('')\n\n const getFilteredOptions = useMemo(() => {\n const fuse = new Fuse<DropdownOption>(options ?? [], {\n threshold: 0.4,\n ignoreLocation: true,\n keys: [FuseSearchKeys.text, FuseSearchKeys.label, FuseSearchKeys.tags],\n })\n\n return (pattern: string) => {\n search.current = pattern\n setFilteredOptions(pattern.length > 0 ? fuse.search(pattern).map((result) => result.item) : (options ?? []))\n }\n }, [options])\n\n useEffect(() => {\n getFilteredOptions(search.current)\n }, [getFilteredOptions])\n\n return [filteredOptions, getFilteredOptions]\n}\n\nexport const useLoadedOptions = ({\n loadOptions,\n options,\n}: {\n loadOptions?: (pattern: string) => Promise<DropdownOption[]>\n options?: DropdownOption[]\n}): [DropdownOption[], boolean, (pattern: string) => void] => {\n const getMountedStatus = useMountedStatus()\n\n const [loadedOptions, setLoadedOptions] = useState<DropdownOption[]>(() => (Array.isArray(options) ? options : []))\n const [optionsLoading, setOptionsLoading] = useState<boolean>(false)\n\n const optionsLoader = useRef<Promise<DropdownOption[]> | null>(null)\n\n const getLoadedOptions = useCallback(\n (pattern: string) => {\n if (!loadOptions) return\n\n if (pattern.length === 0 && Array.isArray(options)) {\n optionsLoader.current = null\n setLoadedOptions(options)\n setOptionsLoading(false)\n } else {\n // eslint-disable-next-line no-multi-assign\n const loader: Promise<DropdownOption[]> = (optionsLoader.current = loadOptions(pattern))\n\n setOptionsLoading(true)\n loader\n .then((payload) => {\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions(payload)\n setOptionsLoading(false)\n }\n })\n .catch((err) => {\n console.error(err)\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions([])\n setOptionsLoading(false)\n }\n })\n }\n },\n [loadOptions, options, getMountedStatus]\n )\n\n return [loadedOptions, optionsLoading, getLoadedOptions]\n}\n"],"names":["useFilteredOptions","options","filteredOptions","setFilteredOptions","useState","Array","isArray","search","useRef","getFilteredOptions","useMemo","fuse","Fuse","threshold","ignoreLocation","keys","FuseSearchKeys","text","label","tags","pattern","current","length","map","result","item","useEffect","useLoadedOptions","loadOptions","getMountedStatus","useMountedStatus","loadedOptions","setLoadedOptions","optionsLoading","setOptionsLoading","optionsLoader","useCallback","loader","then","payload","catch","err","console","error"],"mappings":"gTAMkCA,EAChCC,cAIA,MAAOC,EAAiBC,GAAsBC,gBAA2B,IACvEC,MAAMC,QAAQL,GAAWA,EAAU,KAGrC,MAAMM,EAASC,aAAe,IAE9B,MAAMC,EAAqBC,MAAAA,SAAQ,KACjC,MAAMC,EAAO,IAAIC,sBAAqBX,GAAW,GAAI,CACnDY,UAAW,GACXC,gBAAgB,EAChBC,KAAM,CAACC,UAAAA,eAAeC,KAAMD,UAAcA,eAACE,MAAOF,UAAcA,eAACG,QAGnE,OAAQC,IACNb,EAAOc,QAAUD,EACjBjB,EAAmBiB,EAAQE,OAAS,EAAIX,EAAKJ,OAAOa,GAASG,KAAKC,GAAWA,EAAOC,OAASxB,GAAW,GAAI,CAC7G,GACA,CAACA,IAMJ,OAJAyB,MAAAA,WAAU,KACRjB,EAAmBF,EAAOc,QAAQ,GACjC,CAACZ,IAEG,CAACP,EAAiBO,EAAmB,2BAGdkB,EAC9BC,cACA3B,cAKA,MAAM4B,EAAmBC,iBAAAA,mBAEzB,MAAOC,EAAeC,GAAoB5B,gBAA2B,IAAOC,MAAMC,QAAQL,GAAWA,EAAU,KAC/G,MAAOgC,EAAgBC,GAAqB9B,MAAQA,UAAU,GAE9D,MAAM+B,EAAgB3B,aAAyC,MAoC/D,MAAO,CAACuB,EAAeE,EAlCEG,MAAWA,aACjChB,IACC,GAAKQ,EAEL,GAAIR,EAAQE,SAAW,GAAKjB,MAAMC,QAAQL,GACxCkC,EAAcd,QAAU,KACxBW,EAAiB/B,GACjBiC,GAAkB,OACb,CAEL,MAAMG,EAAqCF,EAAcd,QAAUO,EAAYR,GAE/Ec,GAAkB,GAClBG,EACGC,MAAMC,IACDV,KAAsBM,EAAcd,UAAYgB,IAClDF,EAAcd,QAAU,KACxBW,EAAiBO,GACjBL,GAAkB,GACpB,IAEDM,OAAOC,IACNC,QAAQC,MAAMF,GACVZ,KAAsBM,EAAcd,UAAYgB,IAClDF,EAAcd,QAAU,KACxBW,EAAiB,IACjBE,GAAkB,GACpB,GAEN,IAEF,CAACN,EAAa3B,EAAS4B,IAG+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.mjs","sources":["../../../../src/components/Dropdown/hooks.ts"],"sourcesContent":["import { useState, useRef, useCallback, useMemo, useEffect } from 'react'\nimport Fuse from 'fuse.js'\nimport { useMountedStatus } from 'hooks/useMountedStatus'\nimport { FuseSearchKeys } from './constants'\nimport type { DropdownOption } from './types'\n\nexport const useFilteredOptions = ({\n options,\n}: {\n options?: DropdownOption[]\n}): [DropdownOption[], (pattern: string) => void] => {\n const [filteredOptions, setFilteredOptions] = useState<DropdownOption[]>(() =>\n Array.isArray(options) ? options : []\n )\n\n const search = useRef<string>('')\n\n const getFilteredOptions = useMemo(() => {\n const fuse = new Fuse<DropdownOption>(options ?? [], {\n threshold: 0.4,\n ignoreLocation: true,\n keys: [FuseSearchKeys.text, FuseSearchKeys.label, FuseSearchKeys.tags],\n })\n\n return (pattern: string) => {\n search.current = pattern\n setFilteredOptions(pattern.length > 0 ? fuse.search(pattern).map((result) => result.item) : options ?? [])\n }\n }, [options])\n\n useEffect(() => {\n getFilteredOptions(search.current)\n }, [getFilteredOptions])\n\n return [filteredOptions, getFilteredOptions]\n}\n\nexport const useLoadedOptions = ({\n loadOptions,\n options,\n}: {\n loadOptions?: (pattern: string) => Promise<DropdownOption[]>\n options?: DropdownOption[]\n}): [DropdownOption[], boolean, (pattern: string) => void] => {\n const getMountedStatus = useMountedStatus()\n\n const [loadedOptions, setLoadedOptions] = useState<DropdownOption[]>(() => (Array.isArray(options) ? options : []))\n const [optionsLoading, setOptionsLoading] = useState<boolean>(false)\n\n const optionsLoader = useRef<Promise<DropdownOption[]> | null>(null)\n\n const getLoadedOptions = useCallback(\n (pattern: string) => {\n if (!loadOptions) return\n\n if (pattern.length === 0 && Array.isArray(options)) {\n optionsLoader.current = null\n setLoadedOptions(options)\n setOptionsLoading(false)\n } else {\n const loader: Promise<DropdownOption[]> = (optionsLoader.current = loadOptions(pattern))\n\n setOptionsLoading(true)\n loader\n .then((payload) => {\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions(payload)\n setOptionsLoading(false)\n }\n })\n .catch((err) => {\n
|
|
1
|
+
{"version":3,"file":"hooks.mjs","sources":["../../../../src/components/Dropdown/hooks.ts"],"sourcesContent":["import { useState, useRef, useCallback, useMemo, useEffect } from 'react'\nimport Fuse from 'fuse.js'\nimport { useMountedStatus } from 'hooks/useMountedStatus'\nimport { FuseSearchKeys } from './constants'\nimport type { DropdownOption } from './types'\n\nexport const useFilteredOptions = ({\n options,\n}: {\n options?: DropdownOption[]\n}): [DropdownOption[], (pattern: string) => void] => {\n const [filteredOptions, setFilteredOptions] = useState<DropdownOption[]>(() =>\n Array.isArray(options) ? options : []\n )\n\n const search = useRef<string>('')\n\n const getFilteredOptions = useMemo(() => {\n const fuse = new Fuse<DropdownOption>(options ?? [], {\n threshold: 0.4,\n ignoreLocation: true,\n keys: [FuseSearchKeys.text, FuseSearchKeys.label, FuseSearchKeys.tags],\n })\n\n return (pattern: string) => {\n search.current = pattern\n setFilteredOptions(pattern.length > 0 ? fuse.search(pattern).map((result) => result.item) : (options ?? []))\n }\n }, [options])\n\n useEffect(() => {\n getFilteredOptions(search.current)\n }, [getFilteredOptions])\n\n return [filteredOptions, getFilteredOptions]\n}\n\nexport const useLoadedOptions = ({\n loadOptions,\n options,\n}: {\n loadOptions?: (pattern: string) => Promise<DropdownOption[]>\n options?: DropdownOption[]\n}): [DropdownOption[], boolean, (pattern: string) => void] => {\n const getMountedStatus = useMountedStatus()\n\n const [loadedOptions, setLoadedOptions] = useState<DropdownOption[]>(() => (Array.isArray(options) ? options : []))\n const [optionsLoading, setOptionsLoading] = useState<boolean>(false)\n\n const optionsLoader = useRef<Promise<DropdownOption[]> | null>(null)\n\n const getLoadedOptions = useCallback(\n (pattern: string) => {\n if (!loadOptions) return\n\n if (pattern.length === 0 && Array.isArray(options)) {\n optionsLoader.current = null\n setLoadedOptions(options)\n setOptionsLoading(false)\n } else {\n // eslint-disable-next-line no-multi-assign\n const loader: Promise<DropdownOption[]> = (optionsLoader.current = loadOptions(pattern))\n\n setOptionsLoading(true)\n loader\n .then((payload) => {\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions(payload)\n setOptionsLoading(false)\n }\n })\n .catch((err) => {\n console.error(err)\n if (getMountedStatus() && optionsLoader.current === loader) {\n optionsLoader.current = null\n setLoadedOptions([])\n setOptionsLoading(false)\n }\n })\n }\n },\n [loadOptions, options, getMountedStatus]\n )\n\n return [loadedOptions, optionsLoading, getLoadedOptions]\n}\n"],"names":["useFilteredOptions","options","filteredOptions","setFilteredOptions","useState","Array","isArray","search","useRef","getFilteredOptions","useMemo","fuse","Fuse","threshold","ignoreLocation","keys","FuseSearchKeys","text","label","tags","pattern","current","length","map","result","item","useEffect","useLoadedOptions","loadOptions","getMountedStatus","useMountedStatus","loadedOptions","setLoadedOptions","optionsLoading","setOptionsLoading","optionsLoader","useCallback","loader","then","payload","catch","err","console","error"],"mappings":"sMAMO,MAAMA,mBAAqBA,EAChCC,cAIA,MAAOC,EAAiBC,GAAsBC,UAA2B,IACvEC,MAAMC,QAAQL,GAAWA,EAAU,KAGrC,MAAMM,EAASC,OAAe,IAE9B,MAAMC,EAAqBC,SAAQ,KACjC,MAAMC,EAAO,IAAIC,KAAqBX,GAAW,GAAI,CACnDY,UAAW,GACXC,gBAAgB,EAChBC,KAAM,CAACC,eAAeC,KAAMD,eAAeE,MAAOF,eAAeG,QAGnE,OAAQC,IACNb,EAAOc,QAAUD,EACjBjB,EAAmBiB,EAAQE,OAAS,EAAIX,EAAKJ,OAAOa,GAASG,KAAKC,GAAWA,EAAOC,OAASxB,GAAW,GAAI,CAC7G,GACA,CAACA,IAMJ,OAJAyB,WAAU,KACRjB,EAAmBF,EAAOc,QAAQ,GACjC,CAACZ,IAEG,CAACP,EAAiBO,EAAmB,EAGvC,MAAMkB,iBAAmBA,EAC9BC,cACA3B,cAKA,MAAM4B,EAAmBC,mBAEzB,MAAOC,EAAeC,GAAoB5B,UAA2B,IAAOC,MAAMC,QAAQL,GAAWA,EAAU,KAC/G,MAAOgC,EAAgBC,GAAqB9B,UAAkB,GAE9D,MAAM+B,EAAgB3B,OAAyC,MAoC/D,MAAO,CAACuB,EAAeE,EAlCEG,aACtBhB,IACC,GAAKQ,EAEL,GAAIR,EAAQE,SAAW,GAAKjB,MAAMC,QAAQL,GACxCkC,EAAcd,QAAU,KACxBW,EAAiB/B,GACjBiC,GAAkB,OACb,CAEL,MAAMG,EAAqCF,EAAcd,QAAUO,EAAYR,GAE/Ec,GAAkB,GAClBG,EACGC,MAAMC,IACDV,KAAsBM,EAAcd,UAAYgB,IAClDF,EAAcd,QAAU,KACxBW,EAAiBO,GACjBL,GAAkB,GACpB,IAEDM,OAAOC,IACNC,QAAQC,MAAMF,GACVZ,KAAsBM,EAAcd,UAAYgB,IAClDF,EAAcd,QAAU,KACxBW,EAAiB,IACjBE,GAAkB,GACpB,GAEN,IAEF,CAACN,EAAa3B,EAAS4B,IAG+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInput.js","sources":["../../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport * as Styled from './style'\nimport type { FormInputProps } from './types'\n\nconst FormInput: React.ForwardRefExoticComponent<FormInputProps> = forwardRef((props,
|
|
1
|
+
{"version":3,"file":"FormInput.js","sources":["../../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport * as Styled from './style'\nimport type { FormInputProps } from './types'\n\nconst FormInput: React.ForwardRefExoticComponent<FormInputProps> = forwardRef<HTMLInputElement, FormInputProps>(\n (props, forwardedRef) => {\n const { mask = '', ...inputProps } = props\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => inputRef.current, [])\n\n const palette = useMergedPalette(inputProps)\n\n const [overflow, setOverflow] = useState<boolean>(false)\n\n const handleDetectOverflow = useCallback((e: HTMLInputElement) => {\n setOverflow(e.scrollWidth > e.clientWidth)\n }, [])\n\n useResizeObserver({\n target: inputRef,\n onResize: handleDetectOverflow,\n })\n\n return (\n <Styled.Root data-input-control fading={overflow}>\n <Styled.Input\n {...inputProps}\n mask={mask}\n palette={palette}\n onBlur={(evt) => {\n if (inputProps.onBlur) inputProps.onBlur(evt)\n\n handleDetectOverflow(evt.currentTarget)\n }}\n inputRef={(input) => {\n inputRef.current = input\n }}\n />\n </Styled.Root>\n )\n }\n)\n\nexport { FormInput }\n"],"names":["forwardRef","props","forwardedRef","mask","inputProps","inputRef","useRef","useImperativeHandle","current","palette","useMergedPalette","overflow","setOverflow","useState","handleDetectOverflow","useCallback","e","scrollWidth","clientWidth","useResizeObserver","target","onResize","_jsx","Styled","fading","children","jsx","onBlur","evt","currentTarget","input"],"mappings":"wQAMmEA,MAAUA,YAC3E,CAACC,EAAOC,KACN,MAAMC,KAAEA,EAAO,MAAOC,GAAeH,EAErC,MAAMI,EAAWC,aAAgC,MACjDC,MAAAA,oBAAsEL,GAAc,IAAMG,EAASG,SAAS,IAE5G,MAAMC,EAAUC,kCAAiBN,GAEjC,MAAOO,EAAUC,GAAeC,MAAQA,UAAU,GAElD,MAAMC,EAAuBC,MAAWA,aAAEC,IACxCJ,EAAYI,EAAEC,YAAcD,EAAEE,YAAY,GACzC,IAOH,OALAC,oCAAkB,CAChBC,OAAQf,EACRgB,SAAUP,IAIVQ,WAAAA,IAACC,MAAAA,KAAW,CAAC,sBAAkB,EAACC,OAAQb,EAASc,SAC/CH,WAAAI,IAACH,YAAY,IACPnB,EACJD,KAAMA,EACNM,QAASA,EACTkB,OAASC,IACHxB,EAAWuB,QAAQvB,EAAWuB,OAAOC,GAEzCd,EAAqBc,EAAIC,cAAc,EAEzCxB,SAAWyB,IACTzB,EAASG,QAAUsB,CAAK,KAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInput.mjs","sources":["../../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport * as Styled from './style'\nimport type { FormInputProps } from './types'\n\nconst FormInput: React.ForwardRefExoticComponent<FormInputProps> = forwardRef((props,
|
|
1
|
+
{"version":3,"file":"FormInput.mjs","sources":["../../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport { useResizeObserver } from 'hooks/useResizeObserver'\nimport * as Styled from './style'\nimport type { FormInputProps } from './types'\n\nconst FormInput: React.ForwardRefExoticComponent<FormInputProps> = forwardRef<HTMLInputElement, FormInputProps>(\n (props, forwardedRef) => {\n const { mask = '', ...inputProps } = props\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => inputRef.current, [])\n\n const palette = useMergedPalette(inputProps)\n\n const [overflow, setOverflow] = useState<boolean>(false)\n\n const handleDetectOverflow = useCallback((e: HTMLInputElement) => {\n setOverflow(e.scrollWidth > e.clientWidth)\n }, [])\n\n useResizeObserver({\n target: inputRef,\n onResize: handleDetectOverflow,\n })\n\n return (\n <Styled.Root data-input-control fading={overflow}>\n <Styled.Input\n {...inputProps}\n mask={mask}\n palette={palette}\n onBlur={(evt) => {\n if (inputProps.onBlur) inputProps.onBlur(evt)\n\n handleDetectOverflow(evt.currentTarget)\n }}\n inputRef={(input) => {\n inputRef.current = input\n }}\n />\n </Styled.Root>\n )\n }\n)\n\nexport { FormInput }\n"],"names":["FormInput","forwardRef","props","forwardedRef","mask","inputProps","inputRef","useRef","useImperativeHandle","current","palette","useMergedPalette","overflow","setOverflow","useState","handleDetectOverflow","useCallback","e","scrollWidth","clientWidth","useResizeObserver","target","onResize","_jsx","Styled","fading","children","onBlur","evt","currentTarget","input"],"mappings":"qRAMMA,MAAAA,UAA6DC,YACjE,CAACC,EAAOC,KACN,MAAMC,KAAEA,EAAO,MAAOC,GAAeH,EAErC,MAAMI,EAAWC,OAAgC,MACjDC,oBAAsEL,GAAc,IAAMG,EAASG,SAAS,IAE5G,MAAMC,EAAUC,iBAAiBN,GAEjC,MAAOO,EAAUC,GAAeC,UAAkB,GAElD,MAAMC,EAAuBC,aAAaC,IACxCJ,EAAYI,EAAEC,YAAcD,EAAEE,YAAY,GACzC,IAOH,OALAC,kBAAkB,CAChBC,OAAQf,EACRgB,SAAUP,IAIVQ,IAACC,KAAW,CAAC,sBAAkB,EAACC,OAAQb,EAASc,SAC/CH,IAACC,MAAY,IACPnB,EACJD,KAAMA,EACNM,QAASA,EACTiB,OAASC,IACHvB,EAAWsB,QAAQtB,EAAWsB,OAAOC,GAEzCb,EAAqBa,EAAIC,cAAc,EAEzCvB,SAAWwB,IACTxB,EAASG,QAAUqB,CAAK,KAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var constants=require('./constants.js');var style=require('./style.js');var jsxRuntime=require('react/jsx-runtime');var Icon=require('../Icon/Icon.js');var Text=require('../Text/Text.js');const FormInputLabel=withMergedProps.withMergedProps(React.forwardRef(((e,t)=>{const{size:r="m",labelPosition:
|
|
1
|
+
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var constants=require('./constants.js');var style=require('./style.js');var jsxRuntime=require('react/jsx-runtime');var Icon=require('../Icon/Icon.js');var Text=require('../Text/Text.js');const FormInputLabel=withMergedProps.withMergedProps(React.forwardRef(((e,t)=>{const{size:r="m",labelPosition:n="dynamic",inputPosition:i="center",iconProps:s={},icon:o,input:a,label:l,labelId:c,text:u,controls:d,addon:p,dropdown:m,active:x,...j}=e;const[g,h]=Array.isArray(o)?o:[o];return jsxRuntime.jsxs(style.Root,{...j,size:r,ref:t,children:[g?jsxRuntime.jsx(Icon.Icon,{preset:"brand",name:typeof g=='string'?g:void 0,icon:typeof g!='string'?g:void 0,marginRight:12,...s}):null,jsxRuntime.jsxs(style.InputContainer,{position:i,labelPosition:l?n:void 0,labelActive:x,children:[a,l?jsxRuntime.jsx(style.Label,{id:c,children:l}):null]}),u?jsxRuntime.jsx(Text.Text,{size:"inherit",color:"inherit",whiteSpace:"nowrap",marginLeft:12,marginRight:p||h||d?void 0:8,children:u}):null,p,h?jsxRuntime.jsx(Icon.Icon,{preset:"brand",name:typeof h=='string'?h:void 0,icon:typeof h!='string'?h:void 0,marginLeft:12,marginRight:d?void 0:4,...s}):null,d,m?jsxRuntime.jsx(style.Dropdown,{children:m}):null]})})),{sizes:constants.SIZES,displayName:"FormInputLabel"});exports.COMPONENT_NAME="FormInputLabel",exports.FormInputLabel=FormInputLabel;
|
|
2
2
|
//# sourceMappingURL=FormInputLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInputLabel.js","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n inputPosition = 'center',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before
|
|
1
|
+
{"version":3,"file":"FormInputLabel.js","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef<HTMLDivElement, MergedProps<FormInputLabelProps>>((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n inputPosition = 'center',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before ? (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n marginRight={12}\n {...iconProps}\n />\n ) : null}\n <Styled.InputContainer\n position={inputPosition}\n labelPosition={label ? labelPosition : undefined}\n labelActive={active}\n >\n {input}\n {label ? <Styled.Label id={labelId}>{label}</Styled.Label> : null}\n </Styled.InputContainer>\n {text ? (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n {text}\n </Text>\n ) : null}\n {addon}\n {after ? (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n marginLeft={12}\n marginRight={!controls ? 4 : undefined}\n {...iconProps}\n />\n ) : null}\n {controls}\n {dropdown ? <Styled.Dropdown>{dropdown}</Styled.Dropdown> : null}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n"],"names":["FormInputLabel","withMergedProps","forwardRef","props","ref","size","labelPosition","inputPosition","iconProps","icon","input","label","labelId","text","controls","addon","dropdown","active","restProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","jsx","Icon","preset","name","undefined","marginRight","jsxs","position","labelActive","id","Text","color","whiteSpace","marginLeft","sizes","SIZES","displayName"],"mappings":"iSAWMA,MAAAA,eAAuEC,gBAAAA,gBAI3EC,MAAAA,YAA6D,CAACC,EAAOC,KACnE,MAAMC,KACJA,EAAO,IAAGC,cACVA,EAAgB,UAASC,cACzBA,EAAgB,SAAQC,UACxBA,EAAY,CAAE,EAAAC,KACdA,EAAIC,MACJA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,KACPA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,EAAQC,OACRA,KACGC,GACDf,EAEJ,MAAOgB,EAAQC,GAASC,MAAMC,QAAQb,GAAQA,EAAO,CAACA,GAEtD,OACEc,WAAAA,KAACC,MAAAA,KAAW,IAAKN,EAAWb,KAAMA,EAAMD,IAAKA,EAAIqB,SAC9CN,CAAAA,EACCO,WAAAC,IAACC,UAAI,CACHC,OAAO,QACPC,YAAaX,GAAW,SAAWA,OAASY,EAC5CtB,YAAaU,GAAW,SAAWA,OAASY,EAC5CC,YAAa,MACTxB,IAEJ,KACJe,WAAAU,KAACT,qBAAqB,CACpBU,SAAU3B,EACVD,cAAeK,EAAQL,OAAgByB,EACvCI,YAAalB,EAAOQ,SAAA,CAEnBf,EACAC,EAAQe,WAAAA,IAACF,MAAAA,MAAY,CAACY,GAAIxB,EAAQa,SAAEd,IAAwB,QAE9DE,EACCa,WAAAC,IAACU,UAAI,CACHhC,KAAK,UACLiC,MAAM,UACNC,WAAW,SACXC,WAAY,GACZR,YAAcjB,GAAUK,GAAUN,OAAeiB,EAAJ,EAAcN,SAE1DZ,IAED,KACHE,EACAK,EACCM,WAAAA,IAACE,KAAAA,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAU,SAAWA,OAAQW,EAC1CtB,YAAaW,GAAU,SAAWA,OAAQW,EAC1CS,WAAY,GACZR,YAAclB,OAAeiB,EAAJ,KACrBvB,IAEJ,KACHM,EACAE,EAAWU,WAAAA,IAACF,MAAAA,SAAe,CAAAC,SAAET,IAA8B,OAChD,IAGlB,CACEyB,MAAOC,UAAKA,MACZC,YA1EmB,0CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES}from'./constants.mjs';import{Root,InputContainer,Label,Dropdown}from'./style.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{Icon}from'../Icon/Icon.mjs';import{Text}from'../Text/Text.mjs';const COMPONENT_NAME='FormInputLabel';const FormInputLabel=withMergedProps(forwardRef(((o,r)=>{const{size:i="m",labelPosition:
|
|
1
|
+
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES}from'./constants.mjs';import{Root,InputContainer,Label,Dropdown}from'./style.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{Icon}from'../Icon/Icon.mjs';import{Text}from'../Text/Text.mjs';const COMPONENT_NAME='FormInputLabel';const FormInputLabel=withMergedProps(forwardRef(((o,r)=>{const{size:i="m",labelPosition:n="dynamic",inputPosition:t="center",iconProps:e={},icon:s,input:a,label:l,labelId:m,text:p,controls:c,addon:d,dropdown:f,active:x,...g}=o;const[h,j]=Array.isArray(s)?s:[s];return jsxs(Root,{...g,size:i,ref:r,children:[h?jsx(Icon,{preset:"brand",name:typeof h=='string'?h:void 0,icon:typeof h!='string'?h:void 0,marginRight:12,...e}):null,jsxs(InputContainer,{position:t,labelPosition:l?n:void 0,labelActive:x,children:[a,l?jsx(Label,{id:m,children:l}):null]}),p?jsx(Text,{size:"inherit",color:"inherit",whiteSpace:"nowrap",marginLeft:12,marginRight:d||j||c?void 0:8,children:p}):null,d,j?jsx(Icon,{preset:"brand",name:typeof j=='string'?j:void 0,icon:typeof j!='string'?j:void 0,marginLeft:12,marginRight:c?void 0:4,...e}):null,c,f?jsx(Dropdown,{children:f}):null]})})),{sizes:SIZES,displayName:"FormInputLabel"});export{COMPONENT_NAME,FormInputLabel};
|
|
2
2
|
//# sourceMappingURL=FormInputLabel.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInputLabel.mjs","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n inputPosition = 'center',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before
|
|
1
|
+
{"version":3,"file":"FormInputLabel.mjs","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef<HTMLDivElement, MergedProps<FormInputLabelProps>>((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n inputPosition = 'center',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before ? (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n marginRight={12}\n {...iconProps}\n />\n ) : null}\n <Styled.InputContainer\n position={inputPosition}\n labelPosition={label ? labelPosition : undefined}\n labelActive={active}\n >\n {input}\n {label ? <Styled.Label id={labelId}>{label}</Styled.Label> : null}\n </Styled.InputContainer>\n {text ? (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n {text}\n </Text>\n ) : null}\n {addon}\n {after ? (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n marginLeft={12}\n marginRight={!controls ? 4 : undefined}\n {...iconProps}\n />\n ) : null}\n {controls}\n {dropdown ? <Styled.Dropdown>{dropdown}</Styled.Dropdown> : null}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n"],"names":["COMPONENT_NAME","FormInputLabel","withMergedProps","forwardRef","props","ref","size","labelPosition","inputPosition","iconProps","icon","input","label","labelId","text","controls","addon","dropdown","active","restProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","Icon","preset","name","undefined","marginRight","position","labelActive","id","Text","color","whiteSpace","marginLeft","sizes","SIZES","displayName"],"mappings":"uSASMA,MAAAA,eAAiB,iBAEjBC,MAAAA,eAAuEC,gBAI3EC,YAA6D,CAACC,EAAOC,KACnE,MAAMC,KACJA,EAAO,IAAGC,cACVA,EAAgB,UAASC,cACzBA,EAAgB,SAAQC,UACxBA,EAAY,CAAE,EAAAC,KACdA,EAAIC,MACJA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,KACPA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,EAAQC,OACRA,KACGC,GACDf,EAEJ,MAAOgB,EAAQC,GAASC,MAAMC,QAAQb,GAAQA,EAAO,CAACA,GAEtD,OACEc,KAACC,KAAW,IAAKN,EAAWb,KAAMA,EAAMD,IAAKA,EAAIqB,SAC9CN,CAAAA,EACCO,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAW,SAAWA,OAASW,EAC5CrB,YAAaU,GAAW,SAAWA,OAASW,EAC5CC,YAAa,MACTvB,IAEJ,KACJe,KAACC,eAAqB,CACpBQ,SAAUzB,EACVD,cAAeK,EAAQL,OAAgBwB,EACvCG,YAAahB,EAAOQ,SAAA,CAEnBf,EACAC,EAAQe,IAACF,MAAY,CAACU,GAAItB,EAAQa,SAAEd,IAAwB,QAE9DE,EACCa,IAACS,KAAI,CACH9B,KAAK,UACL+B,MAAM,UACNC,WAAW,SACXC,WAAY,GACZP,YAAchB,GAAUK,GAAUN,OAAegB,EAAJ,EAAcL,SAE1DZ,IAED,KACHE,EACAK,EACCM,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaT,GAAU,SAAWA,OAAQU,EAC1CrB,YAAaW,GAAU,SAAWA,OAAQU,EAC1CQ,WAAY,GACZP,YAAcjB,OAAegB,EAAJ,KACrBtB,IAEJ,KACHM,EACAE,EAAWU,IAACF,SAAe,CAAAC,SAAET,IAA8B,OAChD,IAGlB,CACEuB,MAAOC,MACPC,YA1EmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var style=require('./style.js');var constants=require('./constants.js');var jsxRuntime=require('react/jsx-runtime');var Text=require('../Text/Text.js');var IconButton=require('../IconButton/IconButton.js');var Tooltip=require('../Tooltip/Tooltip.js');var Badge=require('../Badge/Badge.js');const FormLabel=withMergedProps.withMergedProps(React.forwardRef((({size:e="m",textProps:t={},hint:s={},badgeProps:r={},sizeXXS:o,sizeXS:i,sizeS:n,sizeM:a,sizeL:c,sizeXL:l,disabled:d,error:p,success:u,checked:x,children:m,control:j,label:b,...h},z)=>{const B={size:e,sizeXXS:o,sizeXS:i,sizeS:n,sizeM:a,sizeL:c,sizeXL:l};const g={disabled:d,error:p,success:u,checked:x};const L=typeof j=='object'&&typeof j.props=='object'&&j.props!==null?j.props:{};const{text:R,textProps:T={},buttonProps:S={},tooltipProps:f={}}=s;return jsxRuntime.jsxs(style.Root,{...h,...B,...g,ref:z,children:[typeof j=='function'?j({...B,...g}):React.cloneElement(j,{...B,...g,...L}),jsxRuntime.jsxs(style.Content,{children:[jsxRuntime.jsx(Text.Text,{as:"span",appearance:"body",color:"inherit",wordBreak:"break-word",marginBottom:R?'0.2em':void 0,sizes:constants.SIZES_LABEL,...B,...t,children:b??m}),R
|
|
1
|
+
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var style=require('./style.js');var constants=require('./constants.js');var jsxRuntime=require('react/jsx-runtime');var Text=require('../Text/Text.js');var IconButton=require('../IconButton/IconButton.js');var Tooltip=require('../Tooltip/Tooltip.js');var Badge=require('../Badge/Badge.js');const FormLabel=withMergedProps.withMergedProps(React.forwardRef((({size:e="m",textProps:t={},hint:s={},badgeProps:r={},sizeXXS:o,sizeXS:i,sizeS:n,sizeM:a,sizeL:c,sizeXL:l,disabled:d,error:p,success:u,checked:x,children:m,control:j,label:b,...h},z)=>{const B={size:e,sizeXXS:o,sizeXS:i,sizeS:n,sizeM:a,sizeL:c,sizeXL:l};const g={disabled:d,error:p,success:u,checked:x};const L=typeof j=='object'&&typeof j.props=='object'&&j.props!==null?j.props:{};const{text:R,textProps:T={},buttonProps:S={},tooltipProps:f={}}=s;return jsxRuntime.jsxs(style.Root,{...h,...B,...g,ref:z,children:[typeof j=='function'?j({...B,...g}):React.cloneElement(j,{...B,...g,...L}),jsxRuntime.jsxs(style.Content,{children:[jsxRuntime.jsx(Text.Text,{as:"span",appearance:"body",color:"inherit",wordBreak:"break-word",marginBottom:R?'0.2em':void 0,sizes:constants.SIZES_LABEL,...B,...t,children:b??m}),R?jsxRuntime.jsx(Text.Text,{as:"span",appearance:"caption",color:g.disabled?'content-disabled':'content-onmain-secondary',wordBreak:"break-word",sizes:constants.SIZES_HINT,...B,...T,children:R}):null]}),!S.onClick||f.title||f.content?null:jsxRuntime.jsx(IconButton.IconButton,{size:"m",icon:"helpCircle",marginLeft:6,...S,disabled:g.disabled||S.disabled}),f.title||f.content?jsxRuntime.jsx(Tooltip.Tooltip,{preset:"brand",placement:"top",styles:{wrapper:{cursor:'inherit'}},...f,children:jsxRuntime.jsx(IconButton.IconButton,{size:"m",icon:"helpCircle",marginLeft:6,...S,disabled:g.disabled||S.disabled})}):null,r.children?jsxRuntime.jsx(Badge.Badge,{size:"s",cursor:"inherit",marginLeft:6,resetDefaultMargin:!0,...r}):null]})})),{displayName:"FormLabel",sizes:constants.SIZES});exports.COMPONENT_NAME="FormLabel",exports.FormLabel=FormLabel;
|
|
2
2
|
//# sourceMappingURL=FormLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLabel.js","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { IconButton } from 'components/IconButton'\nimport { Badge } from 'components/Badge'\nimport { Tooltip } from 'components/Tooltip'\nimport * as Styled from './style'\nimport { SIZES, SIZES_LABEL, SIZES_HINT } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Компонент поддерживает все атрибуты \\<label\\> элемента.\n *\n * Можно передать \"ref\", который будет ассоциирован с рутовым элементом.\n *\n * Поддерживаются пропсы определения размеров и внешних отступов в зависимости от ширины вьюпорта.\n *\n * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts).\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n badgeProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n children,\n control,\n label,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const {\n text: hintText,\n textProps: hintTextProps = {},\n buttonProps: hintButtonProps = {},\n tooltipProps: hintTooltipProps = {},\n } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text\n as='span'\n appearance='body'\n color='inherit'\n wordBreak='break-word'\n marginBottom={hintText ? '0.2em' : undefined}\n sizes={SIZES_LABEL}\n {...sizeProps}\n {...textProps}\n >\n {label ?? children}\n </Text>\n {hintText
|
|
1
|
+
{"version":3,"file":"FormLabel.js","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { IconButton } from 'components/IconButton'\nimport { Badge } from 'components/Badge'\nimport { Tooltip } from 'components/Tooltip'\nimport * as Styled from './style'\nimport { SIZES, SIZES_LABEL, SIZES_HINT } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Компонент поддерживает все атрибуты \\<label\\> элемента.\n *\n * Можно передать \"ref\", который будет ассоциирован с рутовым элементом.\n *\n * Поддерживаются пропсы определения размеров и внешних отступов в зависимости от ширины вьюпорта.\n *\n * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts).\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef<HTMLLabelElement, MergedProps<FormLabelProps>>(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n badgeProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n children,\n control,\n label,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const {\n text: hintText,\n textProps: hintTextProps = {},\n buttonProps: hintButtonProps = {},\n tooltipProps: hintTooltipProps = {},\n } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text\n as='span'\n appearance='body'\n color='inherit'\n wordBreak='break-word'\n marginBottom={hintText ? '0.2em' : undefined}\n sizes={SIZES_LABEL}\n {...sizeProps}\n {...textProps}\n >\n {label ?? children}\n </Text>\n {hintText ? (\n <Text\n as='span'\n appearance='caption'\n color={stateProps.disabled ? 'content-disabled' : 'content-onmain-secondary'}\n wordBreak='break-word'\n sizes={SIZES_HINT}\n {...sizeProps}\n {...hintTextProps}\n >\n {hintText}\n </Text>\n ) : null}\n </Styled.Content>\n {hintButtonProps.onClick && !hintTooltipProps.title && !hintTooltipProps.content ? (\n <IconButton\n size='m'\n icon='helpCircle'\n marginLeft={6}\n {...hintButtonProps}\n disabled={stateProps.disabled || hintButtonProps.disabled}\n />\n ) : null}\n {hintTooltipProps.title || hintTooltipProps.content ? (\n <Tooltip\n preset='brand'\n placement='top'\n styles={{\n wrapper: { cursor: 'inherit' },\n }}\n {...hintTooltipProps}\n >\n <IconButton\n size='m'\n icon='helpCircle'\n marginLeft={6}\n {...hintButtonProps}\n disabled={stateProps.disabled || hintButtonProps.disabled}\n />\n </Tooltip>\n ) : null}\n {badgeProps.children ? (\n <Badge size='s' cursor='inherit' marginLeft={6} resetDefaultMargin {...badgeProps} />\n ) : null}\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { FormLabel, COMPONENT_NAME }\n"],"names":["FormLabel","withMergedProps","forwardRef","size","textProps","hint","badgeProps","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","disabled","error","success","checked","children","control","label","props","ref","sizeProps","stateProps","elementProps","text","hintText","hintTextProps","buttonProps","hintButtonProps","tooltipProps","hintTooltipProps","_jsxs","Styled","cloneElement","jsxs","_jsx","jsx","Text","as","appearance","color","wordBreak","marginBottom","undefined","sizes","SIZES_LABEL","SIZES_HINT","onClick","title","content","IconButton","icon","marginLeft","Tooltip","preset","placement","styles","wrapper","cursor","Badge","resetDefaultMargin","displayName","SIZES"],"mappings":"uYAuBA,MAAMA,UAA6DC,gBAAAA,gBACjEC,MAAAA,YACE,EAEIC,OAAO,IACPC,YAAY,CAAE,EACdC,OAAO,CAAE,EACTC,aAAa,CAAE,EACfC,UACAC,SACAC,QACAC,QACAC,QACAC,SACAC,WACAC,QACAC,UACAC,UACAC,WACAC,UACAC,WACGC,GAELC,KAEA,MAAMC,EAAY,CAChBnB,OACAI,UACAC,SACAC,QACAC,QACAC,QACAC,UAGF,MAAMW,EAAa,CACjBV,WACAC,QACAC,UACAC,WAGF,MAAMQ,SACGN,GAAY,iBAAmBA,EAAQE,OAAU,UAAYF,EAAQE,QAAU,KAAOF,EAAQE,MAAQ,CAAA,EAE/G,MACEK,KAAMC,EACNtB,UAAWuB,EAAgB,CAAE,EAC7BC,YAAaC,EAAkB,CAAE,EACjCC,aAAcC,EAAmB,CAAC,GAChC1B,EAEJ,OACE2B,WAAAA,KAACC,MAAAA,KAAW,IAAKb,KAAWE,KAAeC,EAAYF,IAAKA,EAAIJ,iBACtDC,GAAY,WAChBA,EAAQ,IACHI,KACAC,IAELW,MAAYA,aAAChB,EAAS,IACjBI,KACAC,KACAC,IAETQ,WAAAG,KAACF,cAAc,CAAAhB,SAAA,CACbmB,WAAAC,IAACC,UAAI,CACHC,GAAG,OACHC,WAAW,OACXC,MAAM,UACNC,UAAU,aACVC,aAAcjB,EAAW,aAAUkB,EACnCC,MAAOC,UAAYA,eACfxB,KACAlB,EAASa,SAEZE,GAASF,IAEXS,EACCU,WAAAC,IAACC,UAAI,CACHC,GAAG,OACHC,WAAW,UACXC,MAAOlB,EAAWV,SAAW,mBAAqB,2BAClD6B,UAAU,aACVG,MAAOE,UAAWA,cACdzB,KACAK,EAAaV,SAEhBS,IAED,SAELG,EAAgBmB,SAAYjB,EAAiBkB,OAAUlB,EAAiBmB,QAQrE,KAPFd,WAAAC,IAACc,sBAAU,CACThD,KAAK,IACLiD,KAAK,aACLC,WAAY,KACRxB,EACJhB,SAAUU,EAAWV,UAAYgB,EAAgBhB,WAGpDkB,EAAiBkB,OAASlB,EAAiBmB,QAC1Cd,WAAAC,IAACiB,gBAAO,CACNC,OAAO,QACPC,UAAU,MACVC,OAAQ,CACNC,QAAS,CAAEC,OAAQ,eAEjB5B,EAAgBd,SAEpBmB,WAAAC,IAACc,sBAAU,CACThD,KAAK,IACLiD,KAAK,aACLC,WAAY,KACRxB,EACJhB,SAAUU,EAAWV,UAAYgB,EAAgBhB,aAGnD,KACHP,EAAWW,SACVmB,WAAAA,IAACwB,MAAAA,MAAK,CAACzD,KAAK,IAAIwD,OAAO,UAAUN,WAAY,EAAGQ,oBAAkB,KAAKvD,IACrE,OACQ,IAIpB,CACEwD,YA1ImB,YA2InBjB,MAAOkB,UAAAA,+BA3IY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef,cloneElement}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{Root,Content}from'./style.mjs';import{SIZES,SIZES_LABEL,SIZES_HINT}from'./constants.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{Text}from'../Text/Text.mjs';import{IconButton}from'../IconButton/IconButton.mjs';import{Tooltip}from'../Tooltip/Tooltip.mjs';import{Badge}from'../Badge/Badge.mjs';const COMPONENT_NAME='FormLabel';const FormLabel=withMergedProps(forwardRef((({size:e="m",textProps:o={},hint:t={},badgeProps:s={},sizeXXS:r,sizeXS:i,sizeS:n,sizeM:
|
|
1
|
+
import{forwardRef,cloneElement}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{Root,Content}from'./style.mjs';import{SIZES,SIZES_LABEL,SIZES_HINT}from'./constants.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{Text}from'../Text/Text.mjs';import{IconButton}from'../IconButton/IconButton.mjs';import{Tooltip}from'../Tooltip/Tooltip.mjs';import{Badge}from'../Badge/Badge.mjs';const COMPONENT_NAME='FormLabel';const FormLabel=withMergedProps(forwardRef((({size:e="m",textProps:o={},hint:t={},badgeProps:s={},sizeXXS:r,sizeXS:i,sizeS:n,sizeM:l,sizeL:c,sizeXL:a,disabled:d,error:p,success:m,checked:b,children:f,control:j,label:x,...z},h)=>{const u={size:e,sizeXXS:r,sizeXS:i,sizeS:n,sizeM:l,sizeL:c,sizeXL:a};const S={disabled:d,error:p,success:m,checked:b};const L=typeof j=='object'&&typeof j.props=='object'&&j.props!==null?j.props:{};const{text:B,textProps:E={},buttonProps:g={},tooltipProps:I={}}=t;return jsxs(Root,{...z,...u,...S,ref:h,children:[typeof j=='function'?j({...u,...S}):cloneElement(j,{...u,...S,...L}),jsxs(Content,{children:[jsx(Text,{as:"span",appearance:"body",color:"inherit",wordBreak:"break-word",marginBottom:B?'0.2em':void 0,sizes:SIZES_LABEL,...u,...o,children:x??f}),B?jsx(Text,{as:"span",appearance:"caption",color:S.disabled?'content-disabled':'content-onmain-secondary',wordBreak:"break-word",sizes:SIZES_HINT,...u,...E,children:B}):null]}),!g.onClick||I.title||I.content?null:jsx(IconButton,{size:"m",icon:"helpCircle",marginLeft:6,...g,disabled:S.disabled||g.disabled}),I.title||I.content?jsx(Tooltip,{preset:"brand",placement:"top",styles:{wrapper:{cursor:'inherit'}},...I,children:jsx(IconButton,{size:"m",icon:"helpCircle",marginLeft:6,...g,disabled:S.disabled||g.disabled})}):null,s.children?jsx(Badge,{size:"s",cursor:"inherit",marginLeft:6,resetDefaultMargin:!0,...s}):null]})})),{displayName:"FormLabel",sizes:SIZES});export{COMPONENT_NAME,FormLabel};
|
|
2
2
|
//# sourceMappingURL=FormLabel.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLabel.mjs","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { IconButton } from 'components/IconButton'\nimport { Badge } from 'components/Badge'\nimport { Tooltip } from 'components/Tooltip'\nimport * as Styled from './style'\nimport { SIZES, SIZES_LABEL, SIZES_HINT } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Компонент поддерживает все атрибуты \\<label\\> элемента.\n *\n * Можно передать \"ref\", который будет ассоциирован с рутовым элементом.\n *\n * Поддерживаются пропсы определения размеров и внешних отступов в зависимости от ширины вьюпорта.\n *\n * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts).\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n badgeProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n children,\n control,\n label,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const {\n text: hintText,\n textProps: hintTextProps = {},\n buttonProps: hintButtonProps = {},\n tooltipProps: hintTooltipProps = {},\n } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text\n as='span'\n appearance='body'\n color='inherit'\n wordBreak='break-word'\n marginBottom={hintText ? '0.2em' : undefined}\n sizes={SIZES_LABEL}\n {...sizeProps}\n {...textProps}\n >\n {label ?? children}\n </Text>\n {hintText
|
|
1
|
+
{"version":3,"file":"FormLabel.mjs","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { IconButton } from 'components/IconButton'\nimport { Badge } from 'components/Badge'\nimport { Tooltip } from 'components/Tooltip'\nimport * as Styled from './style'\nimport { SIZES, SIZES_LABEL, SIZES_HINT } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Компонент поддерживает все атрибуты \\<label\\> элемента.\n *\n * Можно передать \"ref\", который будет ассоциирован с рутовым элементом.\n *\n * Поддерживаются пропсы определения размеров и внешних отступов в зависимости от ширины вьюпорта.\n *\n * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts).\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef<HTMLLabelElement, MergedProps<FormLabelProps>>(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n badgeProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n children,\n control,\n label,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const {\n text: hintText,\n textProps: hintTextProps = {},\n buttonProps: hintButtonProps = {},\n tooltipProps: hintTooltipProps = {},\n } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text\n as='span'\n appearance='body'\n color='inherit'\n wordBreak='break-word'\n marginBottom={hintText ? '0.2em' : undefined}\n sizes={SIZES_LABEL}\n {...sizeProps}\n {...textProps}\n >\n {label ?? children}\n </Text>\n {hintText ? (\n <Text\n as='span'\n appearance='caption'\n color={stateProps.disabled ? 'content-disabled' : 'content-onmain-secondary'}\n wordBreak='break-word'\n sizes={SIZES_HINT}\n {...sizeProps}\n {...hintTextProps}\n >\n {hintText}\n </Text>\n ) : null}\n </Styled.Content>\n {hintButtonProps.onClick && !hintTooltipProps.title && !hintTooltipProps.content ? (\n <IconButton\n size='m'\n icon='helpCircle'\n marginLeft={6}\n {...hintButtonProps}\n disabled={stateProps.disabled || hintButtonProps.disabled}\n />\n ) : null}\n {hintTooltipProps.title || hintTooltipProps.content ? (\n <Tooltip\n preset='brand'\n placement='top'\n styles={{\n wrapper: { cursor: 'inherit' },\n }}\n {...hintTooltipProps}\n >\n <IconButton\n size='m'\n icon='helpCircle'\n marginLeft={6}\n {...hintButtonProps}\n disabled={stateProps.disabled || hintButtonProps.disabled}\n />\n </Tooltip>\n ) : null}\n {badgeProps.children ? (\n <Badge size='s' cursor='inherit' marginLeft={6} resetDefaultMargin {...badgeProps} />\n ) : null}\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { FormLabel, COMPONENT_NAME }\n"],"names":["COMPONENT_NAME","FormLabel","withMergedProps","forwardRef","size","textProps","hint","badgeProps","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","disabled","error","success","checked","children","control","label","props","ref","sizeProps","stateProps","elementProps","text","hintText","hintTextProps","buttonProps","hintButtonProps","tooltipProps","hintTooltipProps","_jsxs","Styled","cloneElement","_jsx","Text","as","appearance","color","wordBreak","marginBottom","undefined","sizes","SIZES_LABEL","SIZES_HINT","onClick","title","content","IconButton","icon","marginLeft","Tooltip","preset","placement","styles","wrapper","cursor","Badge","resetDefaultMargin","displayName","SIZES"],"mappings":"yZAWMA,MAAAA,eAAiB,YAYvB,MAAMC,UAA6DC,gBACjEC,YACE,EAEIC,OAAO,IACPC,YAAY,CAAE,EACdC,OAAO,CAAE,EACTC,aAAa,CAAE,EACfC,UACAC,SACAC,QACAC,QACAC,QACAC,SACAC,WACAC,QACAC,UACAC,UACAC,WACAC,UACAC,WACGC,GAELC,KAEA,MAAMC,EAAY,CAChBnB,OACAI,UACAC,SACAC,QACAC,QACAC,QACAC,UAGF,MAAMW,EAAa,CACjBV,WACAC,QACAC,UACAC,WAGF,MAAMQ,SACGN,GAAY,iBAAmBA,EAAQE,OAAU,UAAYF,EAAQE,QAAU,KAAOF,EAAQE,MAAQ,CAAA,EAE/G,MACEK,KAAMC,EACNtB,UAAWuB,EAAgB,CAAE,EAC7BC,YAAaC,EAAkB,CAAE,EACjCC,aAAcC,EAAmB,CAAC,GAChC1B,EAEJ,OACE2B,KAACC,KAAW,IAAKb,KAAWE,KAAeC,EAAYF,IAAKA,EAAIJ,iBACtDC,GAAY,WAChBA,EAAQ,IACHI,KACAC,IAELW,aAAahB,EAAS,IACjBI,KACAC,KACAC,IAETQ,KAACC,QAAc,CAAAhB,SAAA,CACbkB,IAACC,KAAI,CACHC,GAAG,OACHC,WAAW,OACXC,MAAM,UACNC,UAAU,aACVC,aAAcf,EAAW,aAAUgB,EACnCC,MAAOC,eACHtB,KACAlB,EAASa,SAEZE,GAASF,IAEXS,EACCS,IAACC,KAAI,CACHC,GAAG,OACHC,WAAW,UACXC,MAAOhB,EAAWV,SAAW,mBAAqB,2BAClD2B,UAAU,aACVG,MAAOE,cACHvB,KACAK,EAAaV,SAEhBS,IAED,SAELG,EAAgBiB,SAAYf,EAAiBgB,OAAUhB,EAAiBiB,QAQrE,KAPFb,IAACc,WAAU,CACT9C,KAAK,IACL+C,KAAK,aACLC,WAAY,KACRtB,EACJhB,SAAUU,EAAWV,UAAYgB,EAAgBhB,WAGpDkB,EAAiBgB,OAAShB,EAAiBiB,QAC1Cb,IAACiB,QAAO,CACNC,OAAO,QACPC,UAAU,MACVC,OAAQ,CACNC,QAAS,CAAEC,OAAQ,eAEjB1B,EAAgBd,SAEpBkB,IAACc,WAAU,CACT9C,KAAK,IACL+C,KAAK,aACLC,WAAY,KACRtB,EACJhB,SAAUU,EAAWV,UAAYgB,EAAgBhB,aAGnD,KACHP,EAAWW,SACVkB,IAACuB,MAAK,CAACvD,KAAK,IAAIsD,OAAO,UAAUN,WAAY,EAAGQ,oBAAkB,KAAKrD,IACrE,OACQ,IAIpB,CACEsD,YA1ImB,YA2InBjB,MAAOkB"}
|
package/components/Icon/Icon.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var React=require('react');var styled=require('styled-components');var DOMPurify=require('dompurify');var withMergedProps=require('../../hocs/withMergedProps.js');var useClassname=require('../../hooks/useClassname.js');var constants=require('./constants.js');var index=require('./list/index.js');var style=require('./style.js');var bgWorker=require('./bg-worker.js');var jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var DOMPurify__default=_interopDefault(DOMPurify);const cache={};const worker=new bgWorker.BackgroundWorker;worker.run((({xhr:e,url:r})=>{e.open('GET',r),e.send()}));const Icon=withMergedProps.withMergedProps(React.forwardRef(((e,r)=>{const t=styled.useTheme();const{assetHost:n}=t;const{size:s="inherit",name:o="unknown",icon:a,preset:c,...u}=e;const i=`${c}_${o}`;const[l,d]=React.useState(cache[i]??null);const m=useClassname.useClassname("Icon",u.className);const f=o==='unknown'?null:(c==='brand'?index.ICONS:index.ICONS_DEFAULT)[o];React.useEffect((()=>{f&&(cache[i]&&cache[i]!==null?d(cache[i]):cache[i]!==null?(async()=>{cache[i]=null;const e=await f();const r=e?.default;if(!r)return;let t
|
|
1
|
+
'use strict';var React=require('react');var styled=require('styled-components');var DOMPurify=require('dompurify');var withMergedProps=require('../../hocs/withMergedProps.js');var useClassname=require('../../hooks/useClassname.js');var constants=require('./constants.js');var index=require('./list/index.js');var style=require('./style.js');var bgWorker=require('./bg-worker.js');var jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var DOMPurify__default=_interopDefault(DOMPurify);const cache={};const worker=new bgWorker.BackgroundWorker;worker.run((({xhr:e,url:r})=>{e.open('GET',r),e.send()}));const Icon=withMergedProps.withMergedProps(React.forwardRef(((e,r)=>{const t=styled.useTheme();const{assetHost:n}=t;const{size:s="inherit",name:o="unknown",icon:a,preset:c,...u}=e;const i=`${c}_${o}`;const[l,d]=React.useState(cache[i]??null);const m=useClassname.useClassname("Icon",u.className);const f=o==='unknown'?null:(c==='brand'?index.ICONS:index.ICONS_DEFAULT)[o];React.useEffect((()=>{f&&(cache[i]&&cache[i]!==null?d(cache[i]):cache[i]!==null?(async()=>{cache[i]=null;const e=await f();const r=e?.default;if(!r)return;let t;try{t=await(async e=>{let r=0;return new Promise(((t,n)=>{const s=new XMLHttpRequest;s.responseType='text',s.open('GET',e),s.send(),s.onload=()=>{if(s.status>=200&&s.status<400){const e=DOMPurify__default.default.sanitize(s.response);t(e)}else n(new Error(`Failed to load icon from "${e}".`))},s.onerror=()=>{r++,r<3&&worker.add({url:e,xhr:s}),r>=3&&n(new Error(`Failed to load icon from "${e}" after 3 attempts.`))}}))})(`${n??''}${r}`),cache[i]=t,d(t),document.dispatchEvent(new CustomEvent(`IconLoaded_${i}`,{detail:{name:o,content:t}}))}catch(e){console.error(e)}})():document.addEventListener(`IconLoaded_${i}`,(e=>{const r=e.detail;r&&r.name===o&&r.content&&d(r.content)}),{once:!0}))}),[f,o,i,n]);const h=a?{children:a}:{dangerouslySetInnerHTML:{__html:l}};return jsxRuntime.jsx(style.Root,{...u,size:s,className:m,ref:r,...h})})),{displayName:"Icon",sizes:constants.SIZES});exports.Icon=Icon;
|
|
2
2
|
//# sourceMappingURL=Icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let
|
|
1
|
+
{"version":3,"file":"Icon.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef<HTMLSpanElement, MergedProps<IconProps>>((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let imgContent: string\n\n try {\n imgContent = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = imgContent\n setContent(imgContent)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content: imgContent } }))\n } catch (error) {\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","imgContent","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"2hBAcA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,SAAAA,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBAAAA,gBACvDC,MAAAA,YAAoD,CAACC,EAAOC,KAC1D,MAAMC,EAAQC,OAAAA,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,MAAAA,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aAAYA,aA1DX,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAKA,MAAGC,qBAAeZ,GAE3Ea,MAAAA,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAI4B,EAEJ,IACEA,OApFSC,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMlC,EAAM,IAAImC,eAChBnC,EAAIoC,aAAe,OACnBpC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIqC,OAAS,KACX,GAAIrC,EAAIsC,QAAU,KAAOtC,EAAIsC,OAAS,IAAK,CACzC,MAAMpB,EAAUqB,mBAASX,QAACY,SAASxC,EAAIyC,UACvCR,EAAQf,EACV,MACEgB,EAAO,IAAIQ,MAAM,6BAA6BzC,SAIlDD,EAAI2C,QAAU,KACZZ,IACIA,EA1BY,GA2BdlC,OAAO+C,IAAI,CAAE3C,MAAKD,QAGhB+B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BzC,yBAEjD,GACD,EA0DyB4C,CAAW,GAAGlC,GAAa,KAAKV,KACnDL,MAAMqB,GAAaY,EACnBV,EAAWU,GACXiB,SAASC,cAAc,IAAIC,YAAY,cAAc/B,IAAa,CAAEgC,OAAQ,CAAEpC,OAAMK,QAASW,KAC9F,CAAC,MAAOqB,GACPC,QAAQD,MAAMA,EAChB,CACD,EAlBA,GAbCJ,SAASM,iBACP,cAAcnC,KACboC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOpC,OAASA,GAAQoC,EAAO/B,SAC3CC,EAAW8B,EAAO/B,QACpB,GAEF,CAAEoC,MAAM,IAuBR,GACH,CAAC/B,EAASV,EAAMI,EAAWN,IAE9B,MAAM4C,EAAezC,EAAO,CAAE0C,SAAU1C,GAAS,CAAE2C,wBAAyB,CAAEC,OAAQxC,IAEtF,OAAOyC,WAAAA,IAACC,MAAAA,KAAW,IAAK5C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS+C,GAAgB,IAErG,CACEM,YA9GmB,OA+GnBC,MAAOC,UAAAA"}
|
package/components/Icon/Icon.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef,useState,useEffect}from'react';import{useTheme}from'styled-components';import DOMPurify from'dompurify';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{useClassname}from'../../hooks/useClassname.mjs';import{SIZES}from'./constants.mjs';import{ICONS,ICONS_DEFAULT}from'./list/index.mjs';import{Root}from'./style.mjs';import{BackgroundWorker}from'./bg-worker.mjs';import{jsx}from'react/jsx-runtime';const cache={};const worker=new BackgroundWorker;worker.run((({xhr:e,url:o})=>{e.open('GET',o),e.send()}));const Icon=withMergedProps(forwardRef(((e,o)=>{const t=useTheme();const{assetHost:n}=t;const{size:r="inherit",name:s="unknown",icon:c,preset:a,...m}=e;const i=`${a}_${s}`;const[l,u]=useState(cache[i]??null);const d=useClassname("Icon",m.className);const f=s==='unknown'?null:(a==='brand'?ICONS:ICONS_DEFAULT)[s];useEffect((()=>{f&&(cache[i]&&cache[i]!==null?u(cache[i]):cache[i]!==null?(async()=>{cache[i]=null;const e=await f();const o=e?.default;if(!o)return;let t
|
|
1
|
+
import{forwardRef,useState,useEffect}from'react';import{useTheme}from'styled-components';import DOMPurify from'dompurify';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{useClassname}from'../../hooks/useClassname.mjs';import{SIZES}from'./constants.mjs';import{ICONS,ICONS_DEFAULT}from'./list/index.mjs';import{Root}from'./style.mjs';import{BackgroundWorker}from'./bg-worker.mjs';import{jsx}from'react/jsx-runtime';const cache={};const worker=new BackgroundWorker;worker.run((({xhr:e,url:o})=>{e.open('GET',o),e.send()}));const Icon=withMergedProps(forwardRef(((e,o)=>{const t=useTheme();const{assetHost:n}=t;const{size:r="inherit",name:s="unknown",icon:c,preset:a,...m}=e;const i=`${a}_${s}`;const[l,u]=useState(cache[i]??null);const d=useClassname("Icon",m.className);const f=s==='unknown'?null:(a==='brand'?ICONS:ICONS_DEFAULT)[s];useEffect((()=>{f&&(cache[i]&&cache[i]!==null?u(cache[i]):cache[i]!==null?(async()=>{cache[i]=null;const e=await f();const o=e?.default;if(!o)return;let t;try{t=await(async e=>{let o=0;return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.responseType='text',r.open('GET',e),r.send(),r.onload=()=>{if(r.status>=200&&r.status<400){const e=DOMPurify.sanitize(r.response);t(e)}else n(new Error(`Failed to load icon from "${e}".`))},r.onerror=()=>{o++,o<3&&worker.add({url:e,xhr:r}),o>=3&&n(new Error(`Failed to load icon from "${e}" after 3 attempts.`))}}))})(`${n??''}${o}`),cache[i]=t,u(t),document.dispatchEvent(new CustomEvent(`IconLoaded_${i}`,{detail:{name:s,content:t}}))}catch(e){console.error(e)}})():document.addEventListener(`IconLoaded_${i}`,(e=>{const o=e.detail;o&&o.name===s&&o.content&&u(o.content)}),{once:!0}))}),[f,s,i,n]);const p=c?{children:c}:{dangerouslySetInnerHTML:{__html:l}};return jsx(Root,{...m,size:r,className:d,ref:o,...p})})),{displayName:"Icon",sizes:SIZES});export{Icon};
|
|
2
2
|
//# sourceMappingURL=Icon.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.mjs","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let
|
|
1
|
+
{"version":3,"file":"Icon.mjs","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef<HTMLSpanElement, MergedProps<IconProps>>((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let imgContent: string\n\n try {\n imgContent = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = imgContent\n setContent(imgContent)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content: imgContent } }))\n } catch (error) {\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","imgContent","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"ibAcA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBACvDC,YAAoD,CAACC,EAAOC,KAC1D,MAAMC,EAAQC,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aA1DC,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAQC,eAAeZ,GAE3Ea,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAI4B,EAEJ,IACEA,OApFSC,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMlC,EAAM,IAAImC,eAChBnC,EAAIoC,aAAe,OACnBpC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIqC,OAAS,KACX,GAAIrC,EAAIsC,QAAU,KAAOtC,EAAIsC,OAAS,IAAK,CACzC,MAAMpB,EAAUqB,UAAUC,SAASxC,EAAIyC,UACvCR,EAAQf,EACV,MACEgB,EAAO,IAAIQ,MAAM,6BAA6BzC,SAIlDD,EAAI2C,QAAU,KACZZ,IACIA,EA1BY,GA2BdlC,OAAO+C,IAAI,CAAE3C,MAAKD,QAGhB+B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BzC,yBAEjD,GACD,EA0DyB4C,CAAW,GAAGlC,GAAa,KAAKV,KACnDL,MAAMqB,GAAaY,EACnBV,EAAWU,GACXiB,SAASC,cAAc,IAAIC,YAAY,cAAc/B,IAAa,CAAEgC,OAAQ,CAAEpC,OAAMK,QAASW,KAC9F,CAAC,MAAOqB,GACPC,QAAQD,MAAMA,EAChB,CACD,EAlBA,GAbCJ,SAASM,iBACP,cAAcnC,KACboC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOpC,OAASA,GAAQoC,EAAO/B,SAC3CC,EAAW8B,EAAO/B,QACpB,GAEF,CAAEoC,MAAM,IAuBR,GACH,CAAC/B,EAASV,EAAMI,EAAWN,IAE9B,MAAM4C,EAAezC,EAAO,CAAE0C,SAAU1C,GAAS,CAAE2C,wBAAyB,CAAEC,OAAQxC,IAEtF,OAAOyC,IAACC,KAAW,IAAK5C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS+C,GAAgB,IAErG,CACEM,YA9GmB,OA+GnBC,MAAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bg-worker.js","sources":["../../../../src/components/Icon/bg-worker.ts"],"sourcesContent":["export class BackgroundWorker<T> {\n _stack:
|
|
1
|
+
{"version":3,"file":"bg-worker.js","sources":["../../../../src/components/Icon/bg-worker.ts"],"sourcesContent":["export class BackgroundWorker<T> {\n _stack: T[] = []\n\n _handler: (arg: T) => void | Promise<void> = () => undefined\n\n add(item: T) {\n this._stack.push(item)\n }\n\n run(handler: (arg: T) => void | Promise<void>) {\n this._handler = handler\n this._process()\n }\n\n _process = async () => {\n const item = this._stack.pop()\n\n if (item === undefined || item === null) {\n setTimeout(this._process, 500)\n\n return\n }\n\n await this._handler(item)\n setTimeout(this._process, 100)\n }\n}\n"],"names":["BackgroundWorker","_stack","_handler","add","item","this","push","run","handler","_process","async","pop","undefined","setTimeout"],"mappings":"sCAAO,MAAMA,iBACXC,OAAc,GAEdC,SAA6CA,KAAe,EAE5DC,GAAAA,CAAIC,GACFC,KAAKJ,OAAOK,KAAKF,EACnB,CAEAG,GAAAA,CAAIC,GACFH,KAAKH,SAAWM,EAChBH,KAAKI,UACP,CAEAA,SAAWC,UACT,MAAMN,EAAOC,KAAKJ,OAAOU,MAErBP,SAASQ,GAAaR,IAAS,YAM7BC,KAAKH,SAASE,GACpBS,WAAWR,KAAKI,SAAU,MANxBI,WAAWR,KAAKI,SAAU,IAME"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bg-worker.mjs","sources":["../../../../src/components/Icon/bg-worker.ts"],"sourcesContent":["export class BackgroundWorker<T> {\n _stack:
|
|
1
|
+
{"version":3,"file":"bg-worker.mjs","sources":["../../../../src/components/Icon/bg-worker.ts"],"sourcesContent":["export class BackgroundWorker<T> {\n _stack: T[] = []\n\n _handler: (arg: T) => void | Promise<void> = () => undefined\n\n add(item: T) {\n this._stack.push(item)\n }\n\n run(handler: (arg: T) => void | Promise<void>) {\n this._handler = handler\n this._process()\n }\n\n _process = async () => {\n const item = this._stack.pop()\n\n if (item === undefined || item === null) {\n setTimeout(this._process, 500)\n\n return\n }\n\n await this._handler(item)\n setTimeout(this._process, 100)\n }\n}\n"],"names":["BackgroundWorker","_stack","_handler","add","item","this","push","run","handler","_process","async","pop","undefined","setTimeout"],"mappings":"AAAO,MAAMA,iBACXC,OAAc,GAEdC,SAA6CA,KAAe,EAE5DC,GAAAA,CAAIC,GACFC,KAAKJ,OAAOK,KAAKF,EACnB,CAEAG,GAAAA,CAAIC,GACFH,KAAKH,SAAWM,EAChBH,KAAKI,UACP,CAEAA,SAAWC,UACT,MAAMN,EAAOC,KAAKJ,OAAOU,MAErBP,SAASQ,GAAaR,IAAS,YAM7BC,KAAKH,SAASE,GACpBS,WAAWR,KAAKI,SAAU,MANxBI,WAAWR,KAAKI,SAAU,IAME"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sources":["../../../../../src/components/Icon/list/default.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport type { IconName, IconNameDefault, SvgDynamicModule } from '../types'\n\nconst defaultIconsNames: IconNameDefault[] = [\n 'book',\n 'blackBoard',\n 'burger',\n 'eye',\n 'email',\n 'sort',\n 'unsort',\n 'person',\n 'diamond',\n 'diamondFilled',\n 'infoInverse',\n 'list',\n 'login',\n 'logout',\n 'fire',\n 'camps',\n 'cart',\n 'clock',\n 'clockFilled',\n 'courses',\n 'discount',\n 'externat',\n 'headphones',\n 'page',\n 'priceTag',\n 'phone',\n 'prof',\n 'star',\n 'settings',\n 'student',\n 'target',\n 'textbook',\n 'trophy',\n 'message',\n 'wallet',\n 'edit',\n 'copy',\n 'print',\n 'objective',\n 'present',\n 'coins',\n 'calendar',\n 'calendar_simple',\n 'chevronDown',\n 'chevronUp',\n 'chevronRight',\n 'chevronLeft',\n 'cross',\n 'dialog',\n 'dropDownArrow',\n 'externalLink',\n 'file',\n 'fileBordered',\n 'lessons',\n 'pencil',\n 'phoneNoFill',\n 'radioChecked',\n 'radioNotChecked',\n 'search',\n 'tasks',\n 'tinyCross',\n 'sharpCross',\n 'plus',\n 'plusThin',\n 'play',\n 'reload',\n 'checkCircle',\n 'info',\n 'check',\n 'home',\n 'questionFilled',\n 'document',\n 'cancel',\n 'playPause',\n 'video',\n]\n\nexport const defaultIcons: Partial<Record<IconName, SvgDynamicModule>> = defaultIconsNames.reduce<\n Record<IconName, SvgDynamicModule>\n>((acc, icon: IconName) => {\n
|
|
1
|
+
{"version":3,"file":"default.js","sources":["../../../../../src/components/Icon/list/default.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport type { IconName, IconNameDefault, SvgDynamicModule } from '../types'\n\nconst defaultIconsNames: IconNameDefault[] = [\n 'book',\n 'blackBoard',\n 'burger',\n 'eye',\n 'email',\n 'sort',\n 'unsort',\n 'person',\n 'diamond',\n 'diamondFilled',\n 'infoInverse',\n 'list',\n 'login',\n 'logout',\n 'fire',\n 'camps',\n 'cart',\n 'clock',\n 'clockFilled',\n 'courses',\n 'discount',\n 'externat',\n 'headphones',\n 'page',\n 'priceTag',\n 'phone',\n 'prof',\n 'star',\n 'settings',\n 'student',\n 'target',\n 'textbook',\n 'trophy',\n 'message',\n 'wallet',\n 'edit',\n 'copy',\n 'print',\n 'objective',\n 'present',\n 'coins',\n 'calendar',\n 'calendar_simple',\n 'chevronDown',\n 'chevronUp',\n 'chevronRight',\n 'chevronLeft',\n 'cross',\n 'dialog',\n 'dropDownArrow',\n 'externalLink',\n 'file',\n 'fileBordered',\n 'lessons',\n 'pencil',\n 'phoneNoFill',\n 'radioChecked',\n 'radioNotChecked',\n 'search',\n 'tasks',\n 'tinyCross',\n 'sharpCross',\n 'plus',\n 'plusThin',\n 'play',\n 'reload',\n 'checkCircle',\n 'info',\n 'check',\n 'home',\n 'questionFilled',\n 'document',\n 'cancel',\n 'playPause',\n 'video',\n]\n\nexport const defaultIcons: Partial<Record<IconName, SvgDynamicModule>> = defaultIconsNames.reduce<\n Record<IconName, SvgDynamicModule>\n>(\n (acc, icon: IconName) => {\n // Должен быть ОТНОСИТЕЛЬНЫЙ ПУТЬ\n // данный подход позволяет работать в экосистеме webpack|rollap|vite одинаково, миную дефолтный механизмы резолвов\n acc[icon] = () => import(/* webpackMode: \"eager\" */ `../images/${icon}_default.svg`)\n return acc\n },\n {} as Record<IconName, SvgDynamicModule>\n)\n"],"names":["defaultIcons","reduce","acc","icon"],"mappings":"qSAqFO,MAAMA,aA9EgC,CAC3C,OACA,aACA,SACA,MACA,QACA,OACA,SACA,SACA,UACA,gBACA,cACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,cACA,UACA,WACA,WACA,aACA,OACA,WACA,QACA,OACA,OACA,WACA,UACA,SACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,YACA,UACA,QACA,WACA,kBACA,cACA,YACA,eACA,cACA,QACA,SACA,gBACA,eACA,OACA,eACA,UACA,SACA,cACA,eACA,kBACA,SACA,QACA,YACA,aACA,OACA,WACA,OACA,SACA,cACA,OACA,QACA,OACA,iBACA,WACA,SACA,YACA,SAGyFC,QAGzF,CAACC,EAAKC,KAGJD,EAAIC,GAAQ,KAAM,2IAAA,KAAkE,EAC7ED,IAET,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.mjs","sources":["../../../../../src/components/Icon/list/default.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport type { IconName, IconNameDefault, SvgDynamicModule } from '../types'\n\nconst defaultIconsNames: IconNameDefault[] = [\n 'book',\n 'blackBoard',\n 'burger',\n 'eye',\n 'email',\n 'sort',\n 'unsort',\n 'person',\n 'diamond',\n 'diamondFilled',\n 'infoInverse',\n 'list',\n 'login',\n 'logout',\n 'fire',\n 'camps',\n 'cart',\n 'clock',\n 'clockFilled',\n 'courses',\n 'discount',\n 'externat',\n 'headphones',\n 'page',\n 'priceTag',\n 'phone',\n 'prof',\n 'star',\n 'settings',\n 'student',\n 'target',\n 'textbook',\n 'trophy',\n 'message',\n 'wallet',\n 'edit',\n 'copy',\n 'print',\n 'objective',\n 'present',\n 'coins',\n 'calendar',\n 'calendar_simple',\n 'chevronDown',\n 'chevronUp',\n 'chevronRight',\n 'chevronLeft',\n 'cross',\n 'dialog',\n 'dropDownArrow',\n 'externalLink',\n 'file',\n 'fileBordered',\n 'lessons',\n 'pencil',\n 'phoneNoFill',\n 'radioChecked',\n 'radioNotChecked',\n 'search',\n 'tasks',\n 'tinyCross',\n 'sharpCross',\n 'plus',\n 'plusThin',\n 'play',\n 'reload',\n 'checkCircle',\n 'info',\n 'check',\n 'home',\n 'questionFilled',\n 'document',\n 'cancel',\n 'playPause',\n 'video',\n]\n\nexport const defaultIcons: Partial<Record<IconName, SvgDynamicModule>> = defaultIconsNames.reduce<\n Record<IconName, SvgDynamicModule>\n>((acc, icon: IconName) => {\n
|
|
1
|
+
{"version":3,"file":"default.mjs","sources":["../../../../../src/components/Icon/list/default.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport type { IconName, IconNameDefault, SvgDynamicModule } from '../types'\n\nconst defaultIconsNames: IconNameDefault[] = [\n 'book',\n 'blackBoard',\n 'burger',\n 'eye',\n 'email',\n 'sort',\n 'unsort',\n 'person',\n 'diamond',\n 'diamondFilled',\n 'infoInverse',\n 'list',\n 'login',\n 'logout',\n 'fire',\n 'camps',\n 'cart',\n 'clock',\n 'clockFilled',\n 'courses',\n 'discount',\n 'externat',\n 'headphones',\n 'page',\n 'priceTag',\n 'phone',\n 'prof',\n 'star',\n 'settings',\n 'student',\n 'target',\n 'textbook',\n 'trophy',\n 'message',\n 'wallet',\n 'edit',\n 'copy',\n 'print',\n 'objective',\n 'present',\n 'coins',\n 'calendar',\n 'calendar_simple',\n 'chevronDown',\n 'chevronUp',\n 'chevronRight',\n 'chevronLeft',\n 'cross',\n 'dialog',\n 'dropDownArrow',\n 'externalLink',\n 'file',\n 'fileBordered',\n 'lessons',\n 'pencil',\n 'phoneNoFill',\n 'radioChecked',\n 'radioNotChecked',\n 'search',\n 'tasks',\n 'tinyCross',\n 'sharpCross',\n 'plus',\n 'plusThin',\n 'play',\n 'reload',\n 'checkCircle',\n 'info',\n 'check',\n 'home',\n 'questionFilled',\n 'document',\n 'cancel',\n 'playPause',\n 'video',\n]\n\nexport const defaultIcons: Partial<Record<IconName, SvgDynamicModule>> = defaultIconsNames.reduce<\n Record<IconName, SvgDynamicModule>\n>(\n (acc, icon: IconName) => {\n // Должен быть ОТНОСИТЕЛЬНЫЙ ПУТЬ\n // данный подход позволяет работать в экосистеме webpack|rollap|vite одинаково, миную дефолтный механизмы резолвов\n acc[icon] = () => import(/* webpackMode: \"eager\" */ `../images/${icon}_default.svg`)\n return acc\n },\n {} as Record<IconName, SvgDynamicModule>\n)\n"],"names":["defaultIcons","reduce","acc","icon","import"],"mappings":"AAqFO,MAAMA,aA9EgC,CAC3C,OACA,aACA,SACA,MACA,QACA,OACA,SACA,SACA,UACA,gBACA,cACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,cACA,UACA,WACA,WACA,aACA,OACA,WACA,QACA,OACA,OACA,WACA,UACA,SACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,YACA,UACA,QACA,WACA,kBACA,cACA,YACA,eACA,cACA,QACA,SACA,gBACA,eACA,OACA,eACA,UACA,SACA,cACA,eACA,kBACA,SACA,QACA,YACA,aACA,OACA,WACA,OACA,SACA,cACA,OACA,QACA,OACA,iBACA,WACA,SACA,YACA,SAGyFC,QAGzF,CAACC,EAAKC,KAGJD,EAAIC,GAAQ,IAAMC,8EACXF,IAET,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-pack.js","sources":["../../../../../src/components/Icon/list/icon-pack.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport IconPackIcons from '@foxford/icon-pack/components.json'\nimport type { IconName, SvgDynamicModule } from '../types'\n\nexport const iconPackIcons: Partial<Record<IconName, SvgDynamicModule>> = IconPackIcons.reduce<\n Record<IconName, SvgDynamicModule>\n>((acc, icon) => {\n
|
|
1
|
+
{"version":3,"file":"icon-pack.js","sources":["../../../../../src/components/Icon/list/icon-pack.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport IconPackIcons from '@foxford/icon-pack/components.json'\nimport type { IconName, SvgDynamicModule } from '../types'\n\nexport const iconPackIcons: Partial<Record<IconName, SvgDynamicModule>> = IconPackIcons.reduce<\n Record<IconName, SvgDynamicModule>\n>(\n (acc, icon) => {\n const name = (icon.componentName.charAt(0).toLowerCase() + icon.componentName.slice(1)) as IconName\n // Должен быть ОТНОСИТЕЛЬНЫЙ ПУТЬ\n // данный подход позволяет работать в экосистеме webpack|rollap|vite одинаково, миную дефолтный механизмы резолвов\n acc[name] = () =>\n import(\n /* webpackMode: \"eager\" */ `../../../../node_modules/@foxford/icon-pack/icons/${icon.componentName}/${icon.fileName}.svg`\n )\n return acc\n },\n {} as Record<IconName, SvgDynamicModule>\n)\n"],"names":["iconPackIcons","IconPackIcons","reduce","acc","icon","componentName","charAt","toLowerCase","slice"],"mappings":"sWAQO,MAAMA,6EAA6DC,QAAcC,QAGtF,CAACC,EAAKC,KAIJD,EAHcC,EAAKC,cAAcC,OAAO,GAAGC,cAAgBH,EAAKC,cAAcG,MAAM,IAGxE,KACV,4IAAA,KAEC,EACIL,IAET,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-pack.mjs","sources":["../../../../../src/components/Icon/list/icon-pack.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport IconPackIcons from '@foxford/icon-pack/components.json'\nimport type { IconName, SvgDynamicModule } from '../types'\n\nexport const iconPackIcons: Partial<Record<IconName, SvgDynamicModule>> = IconPackIcons.reduce<\n Record<IconName, SvgDynamicModule>\n>((acc, icon) => {\n
|
|
1
|
+
{"version":3,"file":"icon-pack.mjs","sources":["../../../../../src/components/Icon/list/icon-pack.ts"],"sourcesContent":["/**\n * ALERT: Трогать этот код только вдумчиво\n * Используется плагин для ребэйза иконок из икон-пака, плагин работает с AST.\n * На конечный результат может влиять нейминг переменных.\n */\nimport IconPackIcons from '@foxford/icon-pack/components.json'\nimport type { IconName, SvgDynamicModule } from '../types'\n\nexport const iconPackIcons: Partial<Record<IconName, SvgDynamicModule>> = IconPackIcons.reduce<\n Record<IconName, SvgDynamicModule>\n>(\n (acc, icon) => {\n const name = (icon.componentName.charAt(0).toLowerCase() + icon.componentName.slice(1)) as IconName\n // Должен быть ОТНОСИТЕЛЬНЫЙ ПУТЬ\n // данный подход позволяет работать в экосистеме webpack|rollap|vite одинаково, миную дефолтный механизмы резолвов\n acc[name] = () =>\n import(\n /* webpackMode: \"eager\" */ `../../../../node_modules/@foxford/icon-pack/icons/${icon.componentName}/${icon.fileName}.svg`\n )\n return acc\n },\n {} as Record<IconName, SvgDynamicModule>\n)\n"],"names":["iconPackIcons","IconPackIcons","reduce","acc","icon","componentName","charAt","toLowerCase","slice","import"],"mappings":"8DAQO,MAAMA,cAA6DC,cAAcC,QAGtF,CAACC,EAAKC,KAIJD,EAHcC,EAAKC,cAAcC,OAAO,GAAGC,cAAgBH,EAAKC,cAAcG,MAAM,IAGxE,IACVC,+EAGKN,IAET,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.js","sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { SIZES, SIZES_SQUARE } from './constants'\nimport * as Styled from './style'\nimport type { IconButtonProps } from './types'\n\nconst COMPONENT_NAME = 'IconButton'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconButtonProps](https://github.com/foxford/ui/blob/master/src/components/IconButton/types.ts)\n */\nconst IconButton: React.ForwardRefExoticComponent<IconButtonProps> = withMergedProps<\n IconButtonProps,\n HTMLButtonElement\n>(\n forwardRef((props, ref) => {\n const { size = 'm', type = 'button', iconProps = {}, icon, ...restProps } = props\n\n return (\n <Styled.Root {...restProps} size={size} type={type} ref={ref}>\n <Icon\n preset='brand'\n name={typeof icon === 'string' ? icon : undefined}\n icon={typeof icon !== 'string' ? icon : undefined}\n {...iconProps}\n />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.square ? SIZES_SQUARE : SIZES),\n }\n)\n\nexport { IconButton }\n"],"names":["IconButton","withMergedProps","forwardRef","props","ref","size","type","iconProps","icon","restProps","_jsx","Styled","children","jsx","Icon","preset","name","undefined","displayName","sizes","square","SIZES_SQUARE","SIZES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconButton.js","sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { SIZES, SIZES_SQUARE } from './constants'\nimport * as Styled from './style'\nimport type { IconButtonProps } from './types'\n\nconst COMPONENT_NAME = 'IconButton'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconButtonProps](https://github.com/foxford/ui/blob/master/src/components/IconButton/types.ts)\n */\nconst IconButton: React.ForwardRefExoticComponent<IconButtonProps> = withMergedProps<\n IconButtonProps,\n HTMLButtonElement\n>(\n forwardRef<HTMLButtonElement, MergedProps<IconButtonProps>>((props, ref) => {\n const { size = 'm', type = 'button', iconProps = {}, icon, ...restProps } = props\n\n return (\n <Styled.Root {...restProps} size={size} type={type} ref={ref}>\n <Icon\n preset='brand'\n name={typeof icon === 'string' ? icon : undefined}\n icon={typeof icon !== 'string' ? icon : undefined}\n {...iconProps}\n />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.square ? SIZES_SQUARE : SIZES),\n }\n)\n\nexport { IconButton }\n"],"names":["IconButton","withMergedProps","forwardRef","props","ref","size","type","iconProps","icon","restProps","_jsx","Styled","children","jsx","Icon","preset","name","undefined","displayName","sizes","square","SIZES_SQUARE","SIZES"],"mappings":"6PAoBMA,MAAAA,WAA+DC,gBAAAA,gBAInEC,MAAAA,YAA4D,CAACC,EAAOC,KAClE,MAAMC,KAAEA,EAAO,IAAGC,KAAEA,EAAO,SAAQC,UAAEA,EAAY,CAAE,EAAAC,KAAEA,KAASC,GAAcN,EAE5E,OACEO,WAAAA,IAACC,MAAAA,KAAW,IAAKF,EAAWJ,KAAMA,EAAMC,KAAMA,EAAMF,IAAKA,EAAIQ,SAC3DF,WAAAG,IAACC,UAAI,CACHC,OAAO,QACPC,YAAaR,GAAS,SAAWA,OAAOS,EACxCT,YAAaA,GAAS,SAAWA,OAAOS,KACpCV,KAEM,IAGlB,CACEW,YA/BmB,aAgCnBC,MAAQhB,GAAWA,EAAMiB,OAASC,UAAYA,aAAGC,UAAAA"}
|