@oracle/oraclejet-preact 20.0.2 → 20.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/amd/BaseCardView-b8119561.js +2 -0
- package/amd/{BaseCardView-16fda4c3.js.map → BaseCardView-b8119561.js.map} +1 -1
- package/amd/CardFlexView-aa2f3de8.js +2 -0
- package/amd/{CardFlexView-d3eb7373.js.map → CardFlexView-aa2f3de8.js.map} +1 -1
- package/amd/CardGridView-85f90c75.js +2 -0
- package/amd/{CardGridView-842f70cd.js.map → CardGridView-85f90c75.js.map} +1 -1
- package/amd/CheckboxSet-f000e5c2.js +2 -0
- package/amd/CheckboxSet-f000e5c2.js.map +1 -0
- package/amd/ExpandableList-233c279e.js +2 -0
- package/amd/{ExpandableList-a9a86ad8.js.map → ExpandableList-233c279e.js.map} +1 -1
- package/amd/{InlineSelectSingle-7c1cc5b5.js → InlineSelectSingle-87bc8a45.js} +2 -2
- package/amd/{InlineSelectSingle-7c1cc5b5.js.map → InlineSelectSingle-87bc8a45.js.map} +1 -1
- package/amd/ListView-2678b2af.js +2 -0
- package/amd/{ListView-6d21e8f9.js.map → ListView-2678b2af.js.map} +1 -1
- package/amd/NavigationList-a6bb123d.js +2 -0
- package/amd/NavigationList-a6bb123d.js.map +1 -0
- package/amd/NavigationListItem-10bf6656.js +2 -0
- package/amd/NavigationListItem-10bf6656.js.map +1 -0
- package/amd/NavigationListLinkItem-df1826e6.js +2 -0
- package/amd/NavigationListLinkItem-df1826e6.js.map +1 -0
- package/amd/{OverflowTabBar-5ff68da7.js → OverflowTabBar-f8bf9356.js} +2 -2
- package/amd/{OverflowTabBar-5ff68da7.js.map → OverflowTabBar-f8bf9356.js.map} +1 -1
- package/amd/OverflowTabBarItem-0aa39512.js +2 -0
- package/amd/{OverflowTabBarItem-926b0c8a.js.map → OverflowTabBarItem-0aa39512.js.map} +1 -1
- package/amd/PRIVATE_BaseCardView.js +1 -1
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/PRIVATE_TableList.js +1 -1
- package/amd/RemovableNavigationListItem-60593d4c.js +2 -0
- package/amd/{RemovableNavigationListItem-e298c5de.js.map → RemovableNavigationListItem-60593d4c.js.map} +1 -1
- package/amd/ReorderableTabBar-19a503c7.js +2 -0
- package/amd/{ReorderableTabBar-0c69bfd4.js.map → ReorderableTabBar-19a503c7.js.map} +1 -1
- package/amd/{SelectMobileFieldInput-d499ef86.js → SelectMobileFieldInput-4795a794.js} +2 -2
- package/amd/{SelectMobileFieldInput-d499ef86.js.map → SelectMobileFieldInput-4795a794.js.map} +1 -1
- package/amd/{SelectMultiple-cc9bffc6.js → SelectMultiple-e216b16c.js} +2 -2
- package/amd/{SelectMultiple-cc9bffc6.js.map → SelectMultiple-e216b16c.js.map} +1 -1
- package/amd/{SelectSingle-2bb35b67.js → SelectSingle-d53cf202.js} +2 -2
- package/amd/{SelectSingle-2bb35b67.js.map → SelectSingle-d53cf202.js.map} +1 -1
- package/amd/TabBar-92bac52f.js +2 -0
- package/amd/{TabBar-de723fbc.js.map → TabBar-92bac52f.js.map} +1 -1
- package/amd/TabBarMixed-5b5a5047.js +2 -0
- package/amd/{TabBarMixed-cfd346bf.js.map → TabBarMixed-5b5a5047.js.map} +1 -1
- package/amd/TextArea-345f89d4.js +2 -0
- package/amd/TextArea-345f89d4.js.map +1 -0
- package/amd/TextAreaAutosize-01dfd98e.js +2 -0
- package/amd/{TextAreaAutosize-3a13ebb2.js.map → TextAreaAutosize-01dfd98e.js.map} +1 -1
- package/amd/Theme-redwood/theme.css +122 -122
- package/amd/Theme-stable/theme.css +174 -174
- package/amd/UNSAFE_CardFlexView.js +1 -1
- package/amd/UNSAFE_CardGridView.js +1 -1
- package/amd/UNSAFE_CheckboxItem.js +1 -1
- package/amd/UNSAFE_CheckboxItem.js.map +1 -1
- package/amd/UNSAFE_CheckboxSet.js +1 -1
- package/amd/UNSAFE_CheckboxSet.js.map +1 -1
- package/amd/UNSAFE_ExpandableList.js +1 -1
- package/amd/UNSAFE_InlineSelectSingle.js +1 -1
- package/amd/UNSAFE_ListView.js +1 -1
- package/amd/UNSAFE_NavigationList.js +1 -1
- package/amd/UNSAFE_NavigationListCommon.js +1 -1
- package/amd/UNSAFE_OverflowTabBar.js +1 -1
- package/amd/UNSAFE_ReorderableTabBar.js +1 -1
- package/amd/UNSAFE_RichCheckboxSet.js +1 -1
- package/amd/UNSAFE_RichCheckboxSet.js.map +1 -1
- package/amd/UNSAFE_RichSelectionItem.js +1 -1
- package/amd/UNSAFE_RichSelectionItem.js.map +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_TabBar.js +1 -1
- package/amd/UNSAFE_TabBarCommon.js +1 -1
- package/amd/UNSAFE_TabBarMixed.js +1 -1
- package/amd/UNSAFE_TextArea.js +1 -1
- package/amd/UNSAFE_TextAreaAutosize.js +1 -1
- package/amd/UNSAFE_VirtualizedListView.js +1 -1
- package/amd/VirtualizedListView-a0f338c2.js +2 -0
- package/amd/{VirtualizedListView-1ae7151d.js.map → VirtualizedListView-a0f338c2.js.map} +1 -1
- package/amd/{useDisplayValue-0e90bf4c.js → useDisplayValue-9b671893.js} +2 -2
- package/amd/{useDisplayValue-0e90bf4c.js.map → useDisplayValue-9b671893.js.map} +1 -1
- package/amd/useNavigationListItem-582f5564.js +2 -0
- package/amd/useNavigationListItem-582f5564.js.map +1 -0
- package/amd/useSelectCommon-f33709d2.js +2 -0
- package/amd/{useSelectCommon-a02ddf3c.js.map → useSelectCommon-f33709d2.js.map} +1 -1
- package/cjs/{BaseCardView-c0909427.js → BaseCardView-ba63723a.js} +4 -1
- package/cjs/{BaseCardView-c0909427.js.map → BaseCardView-ba63723a.js.map} +1 -1
- package/cjs/{NavigationListItem-3b9eb0fb.js → NavigationList-d0d74565.js} +21 -8
- package/cjs/NavigationList-d0d74565.js.map +1 -0
- package/cjs/NavigationListItem-b0b03089.js +12 -0
- package/cjs/NavigationListItem-b0b03089.js.map +1 -0
- package/cjs/{NavigationListLinkItem-62c3912e.js → NavigationListLinkItem-317a5200.js} +8 -99
- package/cjs/NavigationListLinkItem-317a5200.js.map +1 -0
- package/cjs/{OverflowTabBarItem-abcd2327.js → OverflowTabBarItem-19ad4971.js} +6 -4
- package/cjs/{OverflowTabBarItem-abcd2327.js.map → OverflowTabBarItem-19ad4971.js.map} +1 -1
- package/cjs/PRIVATE_BaseCardView.js +1 -1
- package/cjs/PRIVATE_TableList.js +4 -4
- package/cjs/SegmentStyles.styles.css +9 -12
- package/cjs/SegmentStyles.styles2.css +12 -9
- package/cjs/{TabBar-27ae2c21.js → TabBar-d84e222e.js} +9 -1
- package/cjs/{TabBar-27ae2c21.js.map → TabBar-d84e222e.js.map} +1 -1
- package/cjs/{TabBarLinkItem-b0c4b100.js → TabBarLinkItem-e924f83b.js} +2 -2
- package/cjs/{TabBarLinkItem-b0c4b100.js.map → TabBarLinkItem-e924f83b.js.map} +1 -1
- package/cjs/Theme-redwood/theme.css +131 -131
- package/cjs/Theme-stable/theme.css +233 -233
- package/cjs/UNSAFE_CardFlexView.js +1 -1
- package/cjs/UNSAFE_CardGridView.js +1 -1
- package/cjs/UNSAFE_ListView.js +53 -53
- package/cjs/UNSAFE_NavigationList.js +17 -15
- package/cjs/UNSAFE_NavigationList.js.map +1 -1
- package/cjs/UNSAFE_NavigationListCommon.js +14 -13
- package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
- package/cjs/UNSAFE_OverflowTabBar.js +56 -53
- package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
- package/cjs/UNSAFE_ReorderableTabBar.js +43 -30
- package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
- package/cjs/UNSAFE_TabBar.js +57 -54
- package/cjs/UNSAFE_TabBar.js.map +1 -1
- package/cjs/UNSAFE_TabBarCommon.js +78 -75
- package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
- package/cjs/UNSAFE_TabBarMixed.js +38 -35
- package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
- package/cjs/useNavigationListItem-b97e76d5.js +104 -0
- package/cjs/useNavigationListItem-b97e76d5.js.map +1 -0
- package/es/{Chart-b866a74c.js → Chart-8c63da28.js} +2 -2
- package/es/{Chart-b866a74c.js.map → Chart-8c63da28.js.map} +1 -1
- package/es/PRIVATE_Chart.js +4 -4
- package/es/TextArea-93ce78a7.js +225 -0
- package/es/TextArea-93ce78a7.js.map +1 -0
- package/es/Theme-redwood/theme.css +427 -427
- package/es/Theme-stable/theme.css +583 -583
- package/es/UNSAFE_BarChart.js +4 -4
- package/es/UNSAFE_ComboChart.js +4 -4
- package/es/UNSAFE_LineAreaChart.js +4 -4
- package/es/UNSAFE_ScatterChart.js +4 -4
- package/es/UNSAFE_TextArea.js +106 -226
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +1 -1
- package/package.json +2 -2
- package/amd/BaseCardView-16fda4c3.js +0 -2
- package/amd/CardFlexView-d3eb7373.js +0 -2
- package/amd/CardGridView-842f70cd.js +0 -2
- package/amd/CheckboxSetContext-2e486ea8.js +0 -2
- package/amd/CheckboxSetContext-2e486ea8.js.map +0 -1
- package/amd/ExpandableList-a9a86ad8.js +0 -2
- package/amd/ListView-6d21e8f9.js +0 -2
- package/amd/NavigationListItem-9df5446c.js +0 -2
- package/amd/NavigationListItem-9df5446c.js.map +0 -1
- package/amd/NavigationListLinkItem-161049bb.js +0 -2
- package/amd/NavigationListLinkItem-161049bb.js.map +0 -1
- package/amd/OverflowTabBarItem-926b0c8a.js +0 -2
- package/amd/RemovableNavigationListItem-e298c5de.js +0 -2
- package/amd/ReorderableTabBar-0c69bfd4.js +0 -2
- package/amd/TabBar-de723fbc.js +0 -2
- package/amd/TabBarMixed-cfd346bf.js +0 -2
- package/amd/TextArea-4a3b8b56.js +0 -2
- package/amd/TextArea-4a3b8b56.js.map +0 -1
- package/amd/TextAreaAutosize-3a13ebb2.js +0 -2
- package/amd/VirtualizedListView-1ae7151d.js +0 -2
- package/amd/useSelectCommon-a02ddf3c.js +0 -2
- package/amd/useTextAreaAltEnter-32272da6.js +0 -2
- package/amd/useTextAreaAltEnter-32272da6.js.map +0 -1
- package/cjs/NavigationListItem-3b9eb0fb.js.map +0 -1
- package/cjs/NavigationListLinkItem-62c3912e.js.map +0 -1
- package/es/useTextAreaAltEnter-ac460f4c.js +0 -61
- package/es/useTextAreaAltEnter-ac460f4c.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationListLinkItem-62c3912e.js","sources":["../../src/UNSAFE_NavigationListCommon/NavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListItem.ts","../../src/UNSAFE_TabBarCommon/useTabBarItemTooltip.ts","../../src/UNSAFE_NavigationListCommon/BaseNavigationListItem.tsx","../../src/UNSAFE_NavigationListCommon/RemovableNavigationListItem.tsx","../../src/UNSAFE_NavigationListCommon/NavigationListLinkItem.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext } from 'preact';\nimport { NavigationListProps } from './NavigationListProps';\n\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n\nexport type NavigationListContextProps<K extends string | number> = Pick<\n NavigationListProps<K>,\n 'selection' | 'onSelectionChange' | 'onRemove' | 'edge' | 'display'\n> & {\n currentKey?: K;\n showFocusRing: boolean;\n onCurrentKeyChange:\n | (<K extends string | number>(detail: CurrentKeyDetail<K>) => void)\n | undefined;\n navigationListItemPrefix: string;\n};\n\n/**\n * Context used to pass navlist information without having to pass it to navlist children props.\n * We want to communicate information down to any interested navlist item children.\n */\n\nconst NavigationListContext = createContext<NavigationListContextProps<string | number>>(null!);\n\nexport { NavigationListContext };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useContext } from 'preact/hooks';\nimport { NavigationListContext } from './NavigationListContext';\n\n/**\n * Utility hook for consuming the NavigationListContext\n *\n * @returns The value of NavigationListContext provider\n */\nfunction useNavigationListContext() {\n return useContext(NavigationListContext);\n}\n\nexport { useNavigationListContext };\n","import { useCallback } from 'preact/hooks';\n\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useNavigationListContext } from './useNavigationListContext';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport {\n NavigationListItemStyles,\n NavigationListItemVariantOptions\n} from '../UNSAFE_NavigationList/themes/NavigationListItemStyles.css';\nimport { NavigationListItemRedwoodTheme } from './themes/redwood/NavigationListItemTheme';\nimport { useUser } from '../hooks/UNSAFE_useUser';\n\nconst flexItemStyleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n]);\nconst { class: labelContainerFlexItemClasses, ...labelContainerFlexItemStyle } =\n flexItemStyleInterpolations({\n alignSelf: 'center'\n });\n\nexport function useNavigationListItem<K extends string | number>({ itemKey }: { itemKey: K }) {\n const {\n onSelectionChange,\n selection,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n edge,\n display\n } = useNavigationListContext();\n\n //Selection and focus state\n const isCurrent = currentKey === itemKey;\n\n const isSelected = selection === itemKey;\n\n const isIconOnly = display === 'icons' ? true : false;\n const isEdgeEnd = edge === 'end' ? true : false;\n\n //Styling\n const { interactionProps, applyPseudoHoverStyle, applyHoverStyle, applyActiveStyle } =\n useInteractionStyle();\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const {\n classes: listItemClasses,\n styles: {\n labelContainerClasses,\n navigationItemStackedBadge,\n navigationItemStackedBadgeRtl,\n startIconStacked\n }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme,\n {\n focusRing: showFocusRing ? 'isFocusRing' : 'notFocusRing',\n current: isCurrent ? 'isCurrent' : 'notCurrtent',\n selected: isSelected ? 'isSelected' : 'notSelected',\n direction: isRtl ? 'isRtl' : 'notRtl',\n hybridHover: applyHoverStyle ? 'isHybridHover' : 'notHybridHover',\n pseudoHover: applyPseudoHoverStyle ? 'isPseudoHover' : 'notPseudoHover',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n edgeEnd: edge === 'end' ? 'isEnd' : 'notEnd',\n iconOnly: isIconOnly ? 'isIconOnly' : 'notIconOnly'\n }\n );\n\n const navigationItemIconOnlyClasses = classNames([startIconStacked]);\n\n const navigationItemStackedBadgeClasses = classNames([\n navigationItemStackedBadge,\n direction === 'rtl' && navigationItemStackedBadgeRtl\n ]);\n\n //Item handlers\n const handlePress = useCallback(() => {\n onSelectionChange?.({ value: itemKey as K, reason: 'pointer' });\n }, [itemKey, onSelectionChange]);\n\n //Legacy navlist makes selection on keyDown, but since preact tabbar made selection after keyUp, will do the same\n //for preact navlist\n const { pressProps } = usePress(handlePress);\n\n return {\n itemId: navigationListItemPrefix + itemKey,\n itemHandlers: mergeProps(interactionProps, pressProps /*,onFocusProps*/),\n itemClasses: classNames([listItemClasses]),\n isSelected,\n labelContainerClasses: classNames([labelContainerClasses, labelContainerFlexItemClasses]),\n labelContainerStyle: labelContainerFlexItemStyle,\n isIconOnly,\n isEdgeEnd,\n stackedBadgeClasses: classNames([navigationItemStackedBadgeClasses]),\n iconOnlyClasses: classNames([navigationItemIconOnlyClasses]),\n isCurrent,\n showFocusRing\n };\n}\n","import { ComponentChild } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { useTooltipControlled } from '../hooks/UNSAFE_useTooltip';\nimport { Placement } from '#UNSAFE_Floating';\n\ntype Props = {\n label: string;\n isDisabled: boolean;\n position?: Position;\n};\n\ntype Position = Omit<Placement, 'center'>;\n\nexport const useTabBarItemTooltip = ({\n label,\n isDisabled,\n position\n}: Props): {\n tooltipContent: ComponentChild;\n tooltipEventHandlerProps: Record<string, any>;\n onLogicalFocus: (elem: HTMLElement) => void;\n onLogicalBlur: () => void;\n} => {\n const [isOpen, setOpen] = useState<boolean>(false);\n const { tooltipProps, tooltipContent } = useTooltipControlled({\n isOpen: isOpen,\n isDisabled,\n position: position,\n focusStrategy: 'logical',\n text: label,\n onToggle: ({ value }) => {\n setOpen(value);\n }\n });\n const { onLogicalFocus, onLogicalBlur, ...tooltipEventHandlerProps } = tooltipProps;\n\n return { tooltipContent, tooltipEventHandlerProps, onLogicalFocus, onLogicalBlur };\n};\n","import { useRef } from 'preact/hooks';\n\nimport { Text } from '../UNSAFE_Text';\n\nimport { useNavigationListItem } from './useNavigationListItem';\nimport { Flex } from '../UNSAFE_Flex';\nimport { Badge } from '../UNSAFE_Badge';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { WarningS } from '../UNSAFE_RedwoodIcons/WarningS';\nimport { ErrorS } from '../UNSAFE_RedwoodIcons/ErrorS';\nimport { InformationS } from '../UNSAFE_RedwoodIcons/InformationS';\nimport { SuccessS } from '../UNSAFE_RedwoodIcons/SuccessS';\nimport {\n NavigationListItemStyles,\n NavigationListItemVariantOptions\n} from '../UNSAFE_NavigationList/themes/NavigationListItemStyles.css';\nimport { NavigationListItemRedwoodTheme } from './themes/redwood/NavigationListItemTheme';\nimport { ComponentChild, ComponentChildren } from 'preact';\nimport { useTabBarItemTooltip } from '#UNSAFE_TabBarCommon/useTabBarItemTooltip';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\n\ntype Severity = 'warning' | 'info' | 'none' | 'error' | 'confirmation';\ntype AriaProps = {\n /**\n * Accepts the panel element's ID associated with the item\n **/\n 'aria-controls'?: string;\n};\n\nexport type BaseNavigationListItemProps<K extends string | number> = {\n /**\n * Key of the NavigationListItem.\n */\n itemKey: K;\n /**\n * Label of the NavigationListItem.\n */\n label: string;\n /**\n * The content to be rendered inside the Badge component.\n */\n badge?: string;\n /**\n * The content to be rendered inside the Text component as a metadata.\n */\n metadata?: string;\n /**\n * The status icon to be rendered after the label.\n */\n severity?: Severity;\n /**\n * The content to be rendered for remove icon\n */\n removeIcon?: ComponentChildren;\n /**\n * The icon before the label or the stand alone icon\n */\n icon?: ComponentChild;\n /**\n * Sets the URL that the hyperlink points to. If there is no valid URL use \"#\" for href value to navigate to the top of the page.\n */\n href?: string;\n} & AriaProps;\n\nconst onClickLink = (event: MouseEvent) => {\n event.preventDefault();\n};\n/*TODO: JET-58535. Add ripple effect when touching navigationListItem. */\nexport function BaseNavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity = 'none',\n removeIcon,\n icon,\n href,\n 'aria-controls': ariaControls\n}: BaseNavigationListItemProps<K>) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n\n //Logic of the component handled here\n const {\n itemId,\n itemHandlers,\n itemClasses,\n isSelected,\n labelContainerClasses,\n labelContainerStyle,\n isIconOnly,\n isEdgeEnd,\n stackedBadgeClasses,\n iconOnlyClasses,\n isCurrent,\n showFocusRing\n } = useNavigationListItem({\n itemKey\n });\n\n const severityRequirement = !(severity === 'none' || severity === undefined);\n\n const IconComponent = (severityValue: Severity) => {\n switch (severityValue) {\n case 'error':\n return <ErrorS color=\"danger\" />;\n case 'warning':\n return <WarningS color=\"warning\" />;\n case 'info':\n return <InformationS color=\"info\" />;\n case 'confirmation':\n return <SuccessS color=\"success\" />;\n default:\n return null;\n }\n };\n\n const {\n styles: {\n iconLabelContainer,\n iconContainer,\n startIconPadding,\n endContentPadding,\n removeIconPaddingWithEndContent,\n navigationItemMetadata,\n navigationListItemLink\n }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme\n );\n\n const navigationItemMatadata = classNames([navigationItemMetadata, endContentPadding]);\n const navigationItemLinkClass = classNames([navigationListItemLink]);\n\n const endIconContainerClasses = classNames([\n iconLabelContainer,\n iconContainer,\n endContentPadding\n ]);\n const startIconContainerClasses = classNames([\n !isIconOnly && iconLabelContainer,\n iconContainer,\n //For icon only icon to label padding is not required.\n !isIconOnly && startIconPadding,\n isIconOnly && iconOnlyClasses\n ]);\n const {\n styles: { navigationlistRemoveIcon }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme\n );\n\n const isComplexItem = metadata || severityRequirement || badge;\n const removeClass = classNames([\n navigationlistRemoveIcon,\n isComplexItem && removeIconPaddingWithEndContent,\n !isComplexItem && endContentPadding\n ]);\n\n const isLinkItem = href != null;\n const labelRequirement = label && !(label === ' ' && label === undefined);\n const iconOnlyRequirement = icon && icon != null && isIconOnly;\n const showTooltip = iconOnlyRequirement;\n\n const { tooltipContent, tooltipEventHandlerProps, onLogicalFocus, onLogicalBlur } =\n useTabBarItemTooltip({\n label,\n isDisabled: !showTooltip,\n // For edge end the tooltip will appear after icon in the order tooltip, icon, selection when navlist is placed at end of page.\n position: !isEdgeEnd ? 'end' : 'start'\n });\n if (showTooltip) {\n if ((isCurrent && showFocusRing) || isSelected) {\n onLogicalFocus(itemRef.current as HTMLElement);\n } else if (!isCurrent || !showFocusRing) {\n onLogicalBlur();\n }\n }\n\n const labelRenderer = () => {\n return (\n <>\n {icon && (\n <Flex justify=\"start\">\n <span class={startIconContainerClasses}>{icon}</span>\n </Flex>\n )}\n {!isIconOnly && labelRequirement && (\n <Flex align=\"center\" justify=\"start\" flex=\"1 1 auto\">\n <span class={labelContainerClasses} style={labelContainerStyle}>\n <Text size=\"inherit\" weight=\"inherit\" variant=\"inherit\">\n {label}\n </Text>\n </span>\n </Flex>\n )}\n {removeIcon && !isLinkItem && <span class={removeClass}>{removeIcon}</span>}\n </>\n );\n };\n\n const complexItemRenderer = () => {\n return (\n <>\n {iconOnlyRequirement && (\n <div class={startIconContainerClasses}>\n {icon}\n <span class={stackedBadgeClasses}>\n {badge ? (\n <Badge size=\"xs\" variant=\"neutral\">\n {badge}\n </Badge>\n ) : null}\n </span>\n </div>\n )}\n {!isIconOnly && icon && (\n <Flex justify=\"start\">\n <span class={startIconContainerClasses}>{icon}</span>\n </Flex>\n )}\n {(!isIconOnly || /* This covers invalid cases*/ (isIconOnly && !iconOnlyRequirement)) &&\n labelRequirement && (\n <Flex align=\"center\" justify=\"start\" flex=\"1 1 auto\">\n <span class={labelContainerClasses} style={labelContainerStyle}>\n <Text size=\"inherit\" weight=\"inherit\" variant=\"inherit\">\n {label}\n </Text>\n </span>\n </Flex>\n )}\n {(metadata || severityRequirement || badge || removeIcon) && (\n <Flex align=\"center\" justify=\"end\">\n {' '}\n {(!isIconOnly || /* This covers invalid cases*/ (isIconOnly && !iconOnlyRequirement)) &&\n badge && (\n <span class={endIconContainerClasses}>\n <Badge size=\"md\" variant=\"neutralSubtle\">\n {badge}\n </Badge>\n </span>\n )}\n {metadata && (\n <span class={navigationItemMatadata}>\n <Text>{'( ' + metadata + ' )'}</Text>\n </span>\n )}\n {severityRequirement && (\n <span class={endIconContainerClasses}>{IconComponent(severity)}</span>\n )}\n {removeIcon && !isLinkItem && <span class={removeClass}>{removeIcon}</span>}\n </Flex>\n )}\n </>\n );\n };\n const navlistItemRenderer = () => {\n return (\n <div\n role=\"tab\"\n {...mergeProps(tooltipEventHandlerProps, itemHandlers)}\n data-oj-key={itemKey}\n id={itemId}\n class={itemClasses}\n aria-selected={isSelected}\n ref={itemRef}\n aria-controls={ariaControls}>\n {isComplexItem ? complexItemRenderer() : labelRenderer()}\n {isIconOnly && tooltipContent}\n </div>\n );\n };\n const navlistLinkItemRenderer = () => {\n return (\n <div {...itemHandlers} class={itemClasses}>\n <a\n tabindex={-1}\n role=\"tab\"\n data-oj-key={itemKey}\n id={itemId}\n class={navigationItemLinkClass}\n aria-selected={isSelected}\n aria-controls={ariaControls}\n href={href}\n onClick={onClickLink}>\n {isComplexItem ? complexItemRenderer() : labelRenderer()}\n </a>\n </div>\n );\n };\n return isLinkItem ? navlistLinkItemRenderer() : navlistItemRenderer();\n}\n","import { BaseNavigationListItem, BaseNavigationListItemProps } from './BaseNavigationListItem';\nimport { useNavigationListContext } from './useNavigationListContext';\nimport { Close } from '../UNSAFE_RedwoodIcons/Close';\nimport { EmbeddedIconButton } from '../PRIVATE_EmbeddedIconButton';\nimport { useCallback } from 'preact/hooks';\nimport { useHover } from '#hooks/UNSAFE_useHover';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\n\ntype RemovableNavigationListItemProps<K extends string | number> = Omit<\n BaseNavigationListItemProps<K>,\n 'removeIcon'\n>;\n\nexport function RemovableNavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity\n}: RemovableNavigationListItemProps<K>) {\n const { selection, currentKey, onRemove } = useNavigationListContext();\n const isSelected = selection === itemKey;\n const isCurrent = currentKey === itemKey;\n\n const handleRemove = useCallback(() => {\n onRemove?.({ value: itemKey as K });\n }, [onRemove, itemKey]);\n\n const { hoverProps, isHover } = useHover({});\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n //instead of specifying flex: '1 0 auto' in cssProps var\n return (\n <div {...hoverProps}>\n <BaseNavigationListItem\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n removeIcon={\n <span data-oj-navigationlist-item-remove-icon={true}>\n <EmbeddedIconButton\n aria-label={translations.tabBarNavigationList_removeCueText()}\n size=\"xs\"\n onAction={handleRemove}>\n {(isHover || isSelected || isCurrent) && <Close />}\n </EmbeddedIconButton>\n </span>\n }\n />\n </div>\n );\n}\n","import { BaseNavigationListItem, BaseNavigationListItemProps } from './BaseNavigationListItem';\n\ntype Link = {\n /**\n * Sets the URL that the hyperlink points to. If there is no valid URL do not use NavigationListLinkItem, use other types of NavigationListItem instead.\n */\n href: string;\n};\nexport type NavigationListLinkItemProps<K extends string | number> = Link &\n Pick<\n BaseNavigationListItemProps<K>,\n 'label' | 'itemKey' | 'badge' | 'metadata' | 'severity' | 'aria-controls'\n >;\n/**\n * NavigationListLinkItem is used to render links in a NavigationList. It allows to view the browser's built in link context menu to open the link in new browser tab.\n */\nexport function NavigationListLinkItem<K extends string | number>({\n itemKey,\n badge,\n metadata,\n severity,\n href,\n label,\n 'aria-controls': ariaControls\n}: NavigationListLinkItemProps<K>) {\n return (\n <BaseNavigationListItem\n aria-controls={ariaControls}\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n href={href}></BaseNavigationListItem>\n );\n}\n"],"names":["createContext","useContext","mergeInterpolations","flexitemInterpolations","useInteractionStyle","useUser","useComponentTheme","NavigationListItemRedwoodTheme","classNames","useCallback","usePress","mergeProps","useState","useTooltipControlled","useRef","_jsx","ErrorS","WarningS","InformationS","SuccessS","_jsxs","_Fragment","Flex","Text","Badge","useHover","useTranslationBundle","EmbeddedIconButton","Close"],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
import { jsx, jsxs } from 'preact/jsx-runtime';
|
|
3
|
-
import { useCallback, useState, useLayoutEffect } from 'preact/hooks';
|
|
4
|
-
import { c as classNames } from './classNames-4e12b00d.js';
|
|
5
|
-
import { u as usePress } from './usePress-051f5adb.js';
|
|
6
|
-
import './FormFieldContext-47ca0c20.js';
|
|
7
|
-
import { u as useFormFieldContext } from './useFormFieldContext-daf7a676.js';
|
|
8
|
-
import './MaxLengthCounterStyles.styles.css';
|
|
9
|
-
|
|
10
|
-
var hide = 'MaxLengthCounterStyles_hide__7dy9j71';
|
|
11
|
-
var maxLengthCounterBase = 'MaxLengthCounterStyles_maxLengthCounterBase__7dy9j70';
|
|
12
|
-
var spanStyles = 'MaxLengthCounterStyles_spanStyles__7dy9j72';
|
|
13
|
-
|
|
14
|
-
const noop = () => { };
|
|
15
|
-
function MaxLengthCounter({ maxLength, valueLength = 0, onClick }) {
|
|
16
|
-
const { isFocused } = useFormFieldContext();
|
|
17
|
-
// We don't want mousedown on this component to do anything, so prevent the default behavior.
|
|
18
|
-
const killEvent = useCallback((event) => event.preventDefault(), []);
|
|
19
|
-
const textClasses = classNames([!isFocused && hide]);
|
|
20
|
-
const { pressProps } = usePress(onClick ?? noop);
|
|
21
|
-
return (jsx("div", { class: maxLengthCounterBase, onMouseDown: killEvent, ...pressProps, children: jsxs("span", { class: textClasses, children: [jsx("span", { class: spanStyles, children: valueLength }), jsx("span", { class: spanStyles, children: "/" }), jsx("span", { class: spanStyles, children: maxLength })] }) }));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* A custom hook to enable an alternate way for entering a new line in the TextArea components using
|
|
26
|
-
* Alt + Enter (or option + return in MacOS). This is particularly useful in scenarios where pressing Enter
|
|
27
|
-
* could mean a different action, like exiting from edit mode in a Table/DataGrid containing a TextArea.
|
|
28
|
-
*/
|
|
29
|
-
const useTextAreaAltEnter = ({ onInput, textAreaRef }) => {
|
|
30
|
-
// We want to have alt/option+Enter to insert a newline like Enter does.
|
|
31
|
-
const [selectionStart, setSelectionStart] = useState();
|
|
32
|
-
const handleKeyDown = useCallback((event) => {
|
|
33
|
-
// If we see an alt+enter (or option+return on a Mac), we insert a newline and call onInputAndDispatch
|
|
34
|
-
// since that is what is called any time the input value changes.
|
|
35
|
-
if (event.altKey && event.key === 'Enter') {
|
|
36
|
-
event.preventDefault(); // Prevent default Enter behavior
|
|
37
|
-
const textarea = event.target;
|
|
38
|
-
const { selectionStart: start, selectionEnd: end, value: previousValue } = textarea;
|
|
39
|
-
const newValue = previousValue.substring(0, start) + '\n' + previousValue.substring(end);
|
|
40
|
-
const valueUpdateDetail = {
|
|
41
|
-
previousValue: previousValue,
|
|
42
|
-
value: newValue
|
|
43
|
-
};
|
|
44
|
-
setSelectionStart(start + 1);
|
|
45
|
-
onInput(valueUpdateDetail);
|
|
46
|
-
}
|
|
47
|
-
}, [onInput]);
|
|
48
|
-
useLayoutEffect(() => {
|
|
49
|
-
if (selectionStart) {
|
|
50
|
-
textAreaRef.current?.setSelectionRange(selectionStart, selectionStart);
|
|
51
|
-
// reset to undefined, so the next selectionStart will trigger the useLayoutEffect
|
|
52
|
-
// even if it is the same as the previous selectionStart that was set. This is
|
|
53
|
-
// because we are only setting selectionStart for alt+enter.
|
|
54
|
-
setSelectionStart(undefined);
|
|
55
|
-
}
|
|
56
|
-
}, [selectionStart, textAreaRef]);
|
|
57
|
-
return { handleKeyDown };
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export { MaxLengthCounter as M, useTextAreaAltEnter as u };
|
|
61
|
-
//# sourceMappingURL=useTextAreaAltEnter-ac460f4c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTextAreaAltEnter-ac460f4c.js","sources":["../../src/UNSAFE_TextArea/MaxLengthCounter.tsx","../../src/UNSAFE_TextArea/useTextAreaAltEnter.ts"],"sourcesContent":["import { useCallback } from 'preact/hooks';\n\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { useFormFieldContext } from '../hooks/UNSAFE_useFormFieldContext';\nimport { hide, maxLengthCounterBase, spanStyles } from './MaxLengthCounterStyles.css';\n\ntype Props = {\n maxLength: number;\n valueLength?: number;\n onClick?: () => void; // the calling component should focus on the appropriate element when clicked.\n};\n\nconst noop = () => {};\n\nexport function MaxLengthCounter({ maxLength, valueLength = 0, onClick }: Props) {\n const { isFocused } = useFormFieldContext();\n // We don't want mousedown on this component to do anything, so prevent the default behavior.\n const killEvent = useCallback((event: Event) => event.preventDefault(), []);\n const textClasses = classNames([!isFocused && hide]);\n const { pressProps } = usePress(onClick ?? noop);\n return (\n <div class={maxLengthCounterBase} onMouseDown={killEvent} {...pressProps}>\n <span class={textClasses}>\n <span class={spanStyles}>{valueLength}</span>\n <span class={spanStyles}>/</span>\n <span class={spanStyles}>{maxLength}</span>\n </span>\n </div>\n );\n}\n","import { ComponentProps, RefObject } from 'preact';\nimport { useCallback, useLayoutEffect, useState } from 'preact/hooks';\n\nimport { TextFieldInput } from '#UNSAFE_TextField';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\n\ntype UseTextAreaAltEnterOptions = {\n /**\n * The onInput of the TextFieldInput\n */\n onInput: NonNullable<ComponentProps<typeof TextFieldInput>['onInput']>;\n /**\n * The ref to the textarea element\n */\n textAreaRef: RefObject<HTMLTextAreaElement>;\n};\n\n/**\n * A custom hook to enable an alternate way for entering a new line in the TextArea components using\n * Alt + Enter (or option + return in MacOS). This is particularly useful in scenarios where pressing Enter\n * could mean a different action, like exiting from edit mode in a Table/DataGrid containing a TextArea.\n */\nexport const useTextAreaAltEnter = ({ onInput, textAreaRef }: UseTextAreaAltEnterOptions) => {\n // We want to have alt/option+Enter to insert a newline like Enter does.\n const [selectionStart, setSelectionStart] = useState<number>();\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // If we see an alt+enter (or option+return on a Mac), we insert a newline and call onInputAndDispatch\n // since that is what is called any time the input value changes.\n if (event.altKey && event.key === 'Enter') {\n event.preventDefault(); // Prevent default Enter behavior\n const textarea = event.target as HTMLTextAreaElement;\n const { selectionStart: start, selectionEnd: end, value: previousValue } = textarea;\n const newValue = previousValue.substring(0, start) + '\\n' + previousValue.substring(end);\n\n const valueUpdateDetail: ValueUpdateDetail<string> = {\n previousValue: previousValue,\n value: newValue\n };\n setSelectionStart(start + 1);\n onInput(valueUpdateDetail);\n }\n },\n [onInput]\n );\n\n useLayoutEffect(() => {\n if (selectionStart) {\n textAreaRef.current?.setSelectionRange(selectionStart, selectionStart);\n // reset to undefined, so the next selectionStart will trigger the useLayoutEffect\n // even if it is the same as the previous selectionStart that was set. This is\n // because we are only setting selectionStart for alt+enter.\n setSelectionStart(undefined);\n }\n }, [selectionStart, textAreaRef]);\n\n return { handleKeyDown };\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,IAAI,GAAG,MAAK,GAAG,CAAC;AAEhB,SAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,OAAO,EAAS,EAAA;AAC7E,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,CAAC;;AAE5C,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;AACjD,IAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAM,GAAA,UAAU,YACtEC,IAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,WAAW,EAAA,QAAA,EAAA,CACtBD,cAAM,KAAK,EAAE,UAAU,EAAA,QAAA,EAAG,WAAW,EAAQ,CAAA,EAC7CA,cAAM,KAAK,EAAE,UAAU,EAAU,QAAA,EAAA,GAAA,EAAA,CAAA,EACjCA,cAAM,KAAK,EAAE,UAAU,EAAG,QAAA,EAAA,SAAS,GAAQ,CACtC,EAAA,CAAA,EAAA,CACH,EACN;AACJ;;ACbA;;;;AAIG;AACU,MAAA,mBAAmB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAA8B,KAAI;;IAE1F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,EAAU,CAAC;AAC/D,IAAA,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAoB,KAAI;;;QAGvB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzC,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA6B,CAAC;AACrD,YAAA,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;AACpF,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAEzF,YAAA,MAAM,iBAAiB,GAA8B;AACnD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,KAAK,EAAE,QAAQ;aAChB,CAAC;AACF,YAAA,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC5B;AACH,KAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,eAAe,CAAC,MAAK;QACnB,IAAI,cAAc,EAAE;YAClB,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;;;;YAIvE,iBAAiB,CAAC,SAAS,CAAC,CAAC;SAC9B;AACH,KAAC,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAElC,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B;;;;"}
|