@oracle/oraclejet-preact 20.0.0 → 20.0.2
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-16fda4c3.js +2 -0
- package/amd/{BaseCardView-b8119561.js.map → BaseCardView-16fda4c3.js.map} +1 -1
- package/amd/BaseTabBarItem-d7c2922b.js +2 -0
- package/amd/BaseTabBarItem-d7c2922b.js.map +1 -0
- package/amd/CardFlexView-d3eb7373.js +2 -0
- package/amd/{CardFlexView-aa2f3de8.js.map → CardFlexView-d3eb7373.js.map} +1 -1
- package/amd/CardGridView-842f70cd.js +2 -0
- package/amd/{CardGridView-85f90c75.js.map → CardGridView-842f70cd.js.map} +1 -1
- package/amd/CheckboxSetContext-2e486ea8.js +2 -0
- package/{cjs/CheckboxSetContext-c62db26d.js.map → amd/CheckboxSetContext-2e486ea8.js.map} +1 -1
- package/amd/{CollapsibleNavigationList-f0072c90.js → CollapsibleNavigationList-fdeccbfb.js} +2 -2
- package/amd/{CollapsibleNavigationList-f0072c90.js.map → CollapsibleNavigationList-fdeccbfb.js.map} +1 -1
- package/amd/{DatePicker-88c5bbcd.js → DatePicker-bf521b1c.js} +2 -2
- package/amd/{DatePicker-88c5bbcd.js.map → DatePicker-bf521b1c.js.map} +1 -1
- package/amd/ExpandableList-a9a86ad8.js +2 -0
- package/amd/{ExpandableList-233c279e.js.map → ExpandableList-a9a86ad8.js.map} +1 -1
- package/amd/{FlatTreeView-9ecf2be6.js → FlatTreeView-15edd439.js} +2 -2
- package/amd/{FlatTreeView-9ecf2be6.js.map → FlatTreeView-15edd439.js.map} +1 -1
- package/amd/{InlineSelectSingle-f4438110.js → InlineSelectSingle-7c1cc5b5.js} +2 -2
- package/amd/{InlineSelectSingle-f4438110.js.map → InlineSelectSingle-7c1cc5b5.js.map} +1 -1
- package/amd/InputDatePicker-7227a858.js +2 -0
- package/amd/{InputDatePicker-48633486.js.map → InputDatePicker-7227a858.js.map} +1 -1
- package/amd/ListView-6d21e8f9.js +2 -0
- package/amd/{ListView-2678b2af.js.map → ListView-6d21e8f9.js.map} +1 -1
- package/amd/{MonthView-ea883c49.js → MonthView-96fafba4.js} +2 -2
- package/amd/{MonthView-ea883c49.js.map → MonthView-96fafba4.js.map} +1 -1
- package/amd/{OverflowTabBar-b142f8d4.js → OverflowTabBar-5ff68da7.js} +2 -2
- package/amd/{OverflowTabBar-b142f8d4.js.map → OverflowTabBar-5ff68da7.js.map} +1 -1
- package/amd/{OverflowTabBarItem-49a82149.js → OverflowTabBarItem-926b0c8a.js} +2 -2
- package/amd/{OverflowTabBarItem-49a82149.js.map → OverflowTabBarItem-926b0c8a.js.map} +1 -1
- package/amd/PRIVATE_BaseCardView.js +1 -1
- package/amd/PRIVATE_CollapsibleNavigationList.js +1 -1
- package/amd/PRIVATE_MonthView.js +1 -1
- package/amd/PRIVATE_MonthYearGridView.js +1 -1
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/PRIVATE_StyledDatePickerButton.js +1 -1
- package/amd/PRIVATE_TableList.js +1 -1
- package/amd/{RemovableTabBarItem-e1bee7fa.js → RemovableTabBarItem-9ae273fe.js} +2 -2
- package/amd/{RemovableTabBarItem-e1bee7fa.js.map → RemovableTabBarItem-9ae273fe.js.map} +1 -1
- package/amd/ReorderableTabBar-0c69bfd4.js +2 -0
- package/amd/{ReorderableTabBar-46683bcb.js.map → ReorderableTabBar-0c69bfd4.js.map} +1 -1
- package/amd/{SelectMobileFieldInput-83f56b22.js → SelectMobileFieldInput-d499ef86.js} +2 -2
- package/amd/{SelectMobileFieldInput-83f56b22.js.map → SelectMobileFieldInput-d499ef86.js.map} +1 -1
- package/amd/{SelectMultiple-cb5fdd20.js → SelectMultiple-cc9bffc6.js} +2 -2
- package/amd/{SelectMultiple-cb5fdd20.js.map → SelectMultiple-cc9bffc6.js.map} +1 -1
- package/amd/{SelectSingle-02e85b6e.js → SelectSingle-2bb35b67.js} +2 -2
- package/amd/{SelectSingle-02e85b6e.js.map → SelectSingle-2bb35b67.js.map} +1 -1
- package/amd/StyledDatePickerButton-bceb62e1.js +2 -0
- package/amd/StyledDatePickerButton-bceb62e1.js.map +1 -0
- package/amd/StyledDatePickerButtonStyles.styles.css +17 -0
- package/amd/TabBar-de723fbc.js +2 -0
- package/amd/{TabBar-fcebb560.js.map → TabBar-de723fbc.js.map} +1 -1
- package/amd/TabBarItem-a39c5de3.js +2 -0
- package/amd/{TabBarItem-224bc6b3.js.map → TabBarItem-a39c5de3.js.map} +1 -1
- package/amd/TabBarLinkItem-944b1e8d.js +2 -0
- package/amd/{TabBarLinkItem-57587dbd.js.map → TabBarLinkItem-944b1e8d.js.map} +1 -1
- package/amd/TabBarMixed-cfd346bf.js +2 -0
- package/amd/{TabBarMixed-8cc4b4ed.js.map → TabBarMixed-cfd346bf.js.map} +1 -1
- package/amd/Theme-redwood/theme.css +201 -201
- package/amd/Theme-stable/theme.css +218 -218
- 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_DatePicker.js +1 -1
- package/amd/UNSAFE_ExpandableList.js +1 -1
- package/amd/UNSAFE_FlatTreeView.js +1 -1
- package/amd/UNSAFE_InlineSelectSingle.js +1 -1
- package/amd/UNSAFE_InputDatePicker.js +1 -1
- package/amd/UNSAFE_ListView.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_VirtualizedListView.js +1 -1
- package/amd/VirtualizedListView-1ae7151d.js +2 -0
- package/amd/{VirtualizedListView-a0f338c2.js.map → VirtualizedListView-1ae7151d.js.map} +1 -1
- package/amd/{YearsGridView-4aa7bc66.js → YearsGridView-561c3074.js} +2 -2
- package/amd/{YearsGridView-4aa7bc66.js.map → YearsGridView-561c3074.js.map} +1 -1
- package/amd/{useDisplayValue-e70c76d8.js → useDisplayValue-0e90bf4c.js} +2 -2
- package/amd/{useDisplayValue-e70c76d8.js.map → useDisplayValue-0e90bf4c.js.map} +1 -1
- package/amd/useSelectCommon-a02ddf3c.js +2 -0
- package/amd/useSelectCommon-a02ddf3c.js.map +1 -0
- package/cjs/{Chart-13a198f3.js → Chart-966da017.js} +2 -2
- package/cjs/{Chart-13a198f3.js.map → Chart-966da017.js.map} +1 -1
- package/cjs/CheckboxSet-6865f4fd.js +55 -0
- package/{amd/CheckboxSet-f000e5c2.js.map → cjs/CheckboxSet-6865f4fd.js.map} +1 -1
- package/cjs/{ColorPalette-9f041744.js → ColorPalette-b14114d8.js} +2 -2
- package/cjs/{ColorPalette-9f041744.js.map → ColorPalette-b14114d8.js.map} +1 -1
- package/cjs/{ColorPicker-9af6707c.js → ColorPicker-8f0b6000.js} +2 -2
- package/cjs/{ColorPicker-9af6707c.js.map → ColorPicker-8f0b6000.js.map} +1 -1
- package/cjs/{DatePicker-48c602ff.js → DatePicker-b60f8a7e.js} +3 -3
- package/cjs/{DatePicker-48c602ff.js.map → DatePicker-b60f8a7e.js.map} +1 -1
- package/cjs/{MonthView-59452edc.js → MonthView-a2661a58.js} +2 -2
- package/cjs/{MonthView-59452edc.js.map → MonthView-a2661a58.js.map} +1 -1
- package/cjs/{OverflowTabBarItem-2c967a89.js → OverflowTabBarItem-abcd2327.js} +6 -3
- package/cjs/OverflowTabBarItem-abcd2327.js.map +1 -0
- package/cjs/PRIVATE_Chart.js +4 -4
- package/cjs/PRIVATE_MonthView.js +2 -3
- package/cjs/PRIVATE_MonthView.js.map +1 -1
- package/cjs/PRIVATE_MonthYearGridView.js +2 -3
- package/cjs/PRIVATE_MonthYearGridView.js.map +1 -1
- package/cjs/PRIVATE_SelectCommon.js +2 -2
- package/cjs/PRIVATE_StyledDatePickerButton.js +1 -2
- package/cjs/PRIVATE_StyledDatePickerButton.js.map +1 -1
- package/cjs/SegmentStyles.styles.css +12 -9
- package/cjs/SegmentStyles.styles2.css +9 -12
- package/cjs/{SelectMobileFieldInput-111a95a5.js → SelectMobileFieldInput-cbf57541.js} +2 -2
- package/cjs/{SelectMobileFieldInput-111a95a5.js.map → SelectMobileFieldInput-cbf57541.js.map} +1 -1
- package/cjs/{StyledDatePickerButton-cf4e4dc0.js → StyledDatePickerButton-becd2a7d.js} +2 -8
- package/cjs/StyledDatePickerButton-becd2a7d.js.map +1 -0
- package/cjs/StyledDatePickerButtonStyles.styles.css +17 -0
- package/cjs/{TabBarLinkItem-42785eb3.js → TabBarLinkItem-b0c4b100.js} +2 -2
- package/cjs/{TabBarLinkItem-42785eb3.js.map → TabBarLinkItem-b0c4b100.js.map} +1 -1
- package/cjs/Theme-redwood/theme.css +117 -117
- package/cjs/Theme-stable/theme.css +224 -224
- package/cjs/UNSAFE_BarChart.js +4 -4
- package/cjs/UNSAFE_CheckboxItem.js +117 -56
- package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
- package/cjs/UNSAFE_CheckboxSet.js +21 -50
- package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
- package/cjs/UNSAFE_ColorPalette.js +80 -80
- package/cjs/UNSAFE_ColorPicker.js +60 -60
- package/cjs/UNSAFE_ComboChart.js +4 -4
- package/cjs/UNSAFE_DatePicker.js +4 -4
- package/cjs/UNSAFE_InlineSelectSingle.js +2 -2
- package/cjs/UNSAFE_InputColor.js +11 -11
- package/cjs/UNSAFE_InputDatePicker.js +96 -96
- package/cjs/UNSAFE_LineAreaChart.js +4 -4
- package/cjs/UNSAFE_OverflowTabBar.js +2 -2
- package/cjs/UNSAFE_RichCheckboxSet.js +46 -42
- package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
- package/cjs/UNSAFE_RichSelectionItem.js +154 -91
- package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
- package/cjs/UNSAFE_ScatterChart.js +4 -4
- package/cjs/UNSAFE_SelectMultiple.js +2 -2
- package/cjs/UNSAFE_SelectSingle.js +3 -3
- package/cjs/UNSAFE_TabBar.js +2 -2
- package/cjs/UNSAFE_TabBarCommon.js +4 -4
- package/cjs/UNSAFE_TabBarMixed.js +3 -3
- package/cjs/{YearsGridView-b56f7f42.js → YearsGridView-d0d4e8e1.js} +2 -2
- package/cjs/{YearsGridView-b56f7f42.js.map → YearsGridView-d0d4e8e1.js.map} +1 -1
- package/cjs/{useDisplayValue-60dbe1c3.js → useDisplayValue-4ace417c.js} +2 -2
- package/cjs/{useDisplayValue-60dbe1c3.js.map → useDisplayValue-4ace417c.js.map} +1 -1
- package/cjs/{useSelectCommon-b0d7feb3.js → useSelectCommon-27afecfa.js} +8 -3
- package/cjs/useSelectCommon-27afecfa.js.map +1 -0
- package/es/{BaseCardView-85b9a71e.js → BaseCardView-b3d8bae0.js} +4 -1
- package/es/{BaseCardView-85b9a71e.js.map → BaseCardView-b3d8bae0.js.map} +1 -1
- package/es/{DatePicker-2ab05fbe.js → DatePicker-7287f0f9.js} +3 -3
- package/es/{DatePicker-2ab05fbe.js.map → DatePicker-7287f0f9.js.map} +1 -1
- package/es/{MonthView-097171eb.js → MonthView-4b2b483a.js} +2 -2
- package/es/{MonthView-097171eb.js.map → MonthView-4b2b483a.js.map} +1 -1
- package/es/{NavigationListItem-dbd29973.js → NavigationListItem-340ab770.js} +19 -1
- package/es/{NavigationListItem-dbd29973.js.map → NavigationListItem-340ab770.js.map} +1 -1
- package/es/{OverflowTabBarItem-6966fbc7.js → OverflowTabBarItem-aa0ce915.js} +7 -4
- package/es/OverflowTabBarItem-aa0ce915.js.map +1 -0
- package/es/PRIVATE_BaseCardView.js +1 -1
- package/es/PRIVATE_CollapsibleNavigationList.js +25 -25
- package/es/PRIVATE_MonthView.js +2 -3
- package/es/PRIVATE_MonthView.js.map +1 -1
- package/es/PRIVATE_MonthYearGridView.js +2 -3
- package/es/PRIVATE_MonthYearGridView.js.map +1 -1
- package/es/PRIVATE_SelectCommon.js +2 -2
- package/es/PRIVATE_StyledDatePickerButton.js +1 -2
- package/es/PRIVATE_StyledDatePickerButton.js.map +1 -1
- package/es/PRIVATE_TableList.js +4 -4
- package/es/RadioIconVariants.styles.css +3 -3
- package/es/RadioIconVariants.styles2.css +3 -3
- package/es/SegmentStyles.styles.css +9 -12
- package/es/SegmentStyles.styles2.css +12 -9
- package/es/{SelectMobileFieldInput-0a7c968c.js → SelectMobileFieldInput-345c4d45.js} +2 -2
- package/es/{SelectMobileFieldInput-0a7c968c.js.map → SelectMobileFieldInput-345c4d45.js.map} +1 -1
- package/es/{StyledDatePickerButton-f3971567.js → StyledDatePickerButton-78f2f6e8.js} +2 -8
- package/es/StyledDatePickerButton-78f2f6e8.js.map +1 -0
- package/es/StyledDatePickerButtonStyles.styles.css +17 -0
- package/es/{TabBar-10488830.js → TabBar-67ca442c.js} +3 -1
- package/es/{TabBar-10488830.js.map → TabBar-67ca442c.js.map} +1 -1
- package/es/{TabBarLinkItem-a9c1072b.js → TabBarLinkItem-e7be54fa.js} +2 -2
- package/es/{TabBarLinkItem-a9c1072b.js.map → TabBarLinkItem-e7be54fa.js.map} +1 -1
- package/es/Theme-redwood/theme.css +442 -442
- package/es/Theme-stable/theme.css +507 -507
- package/es/TrainVariants.styles.css +6 -6
- package/es/TrainVariants.styles2.css +6 -6
- package/es/UNSAFE_CardFlexView.js +1 -1
- package/es/UNSAFE_CardGridView.js +1 -1
- package/es/UNSAFE_DatePicker.js +4 -4
- package/es/UNSAFE_FlatTreeView.js +14 -14
- package/es/UNSAFE_InlineSelectSingle.js +2 -2
- package/es/UNSAFE_InputDateMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputDateMask.js +1 -1
- package/es/UNSAFE_InputDatePicker.js +5 -5
- package/es/UNSAFE_InputTimeMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputTimeMask.js +1 -1
- package/es/UNSAFE_ListView.js +53 -53
- package/es/UNSAFE_NavigationList.js +13 -13
- package/es/UNSAFE_OverflowTabBar.js +13 -13
- package/es/UNSAFE_RadioItem/themes/redwood/RadioIconTheme.js +1 -1
- package/es/UNSAFE_RadioItem/themes/redwood/RadioIconVariants.css.js +1 -1
- package/es/UNSAFE_RadioItem/themes/stable/RadioIconTheme.js +1 -1
- package/es/UNSAFE_RadioItem/themes/stable/RadioIconVariants.css.js +1 -1
- package/es/UNSAFE_RadioItem.js +1 -1
- package/es/UNSAFE_ReorderableTabBar.js +12 -12
- package/es/UNSAFE_RichSelectionItem.js +1 -1
- package/es/UNSAFE_SelectMultiple.js +2 -2
- package/es/UNSAFE_SelectSingle.js +3 -3
- package/es/UNSAFE_TabBar.js +13 -13
- package/es/UNSAFE_TabBarCommon.js +5 -5
- package/es/UNSAFE_TabBarMixed.js +12 -12
- package/es/UNSAFE_TextArea.js +226 -106
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +1 -1
- package/es/UNSAFE_Train/themes/redwood/TrainTheme.js +1 -1
- package/es/UNSAFE_Train/themes/redwood/TrainVariants.css.js +1 -1
- package/es/UNSAFE_Train/themes/stable/TrainTheme.js +1 -1
- package/es/UNSAFE_Train/themes/stable/TrainVariants.css.js +1 -1
- package/es/UNSAFE_Train.js +1 -1
- package/es/{YearsGridView-cac4710a.js → YearsGridView-6c18094a.js} +2 -2
- package/es/{YearsGridView-cac4710a.js.map → YearsGridView-6c18094a.js.map} +1 -1
- package/es/{useDisplayValue-5bbf2830.js → useDisplayValue-65bbc74e.js} +2 -2
- package/es/{useDisplayValue-5bbf2830.js.map → useDisplayValue-65bbc74e.js.map} +1 -1
- package/es/{useSelectCommon-309d0f07.js → useSelectCommon-a3c69d60.js} +8 -3
- package/es/useSelectCommon-a3c69d60.js.map +1 -0
- package/es/useTextAreaAltEnter-ac460f4c.js +61 -0
- package/es/useTextAreaAltEnter-ac460f4c.js.map +1 -0
- package/package.json +2 -2
- package/amd/BaseCardView-b8119561.js +0 -2
- package/amd/BaseTabBarItem-03c91d3f.js +0 -2
- package/amd/BaseTabBarItem-03c91d3f.js.map +0 -1
- package/amd/CardFlexView-aa2f3de8.js +0 -2
- package/amd/CardGridView-85f90c75.js +0 -2
- package/amd/CheckboxSet-f000e5c2.js +0 -2
- package/amd/ExpandableList-233c279e.js +0 -2
- package/amd/InputDatePicker-48633486.js +0 -2
- package/amd/ListView-2678b2af.js +0 -2
- package/amd/ReorderableTabBar-46683bcb.js +0 -2
- package/amd/StyledDatePickerButton-b664f4f0.js +0 -2
- package/amd/StyledDatePickerButton-b664f4f0.js.map +0 -1
- package/amd/TabBar-fcebb560.js +0 -2
- package/amd/TabBarItem-224bc6b3.js +0 -2
- package/amd/TabBarLinkItem-57587dbd.js +0 -2
- package/amd/TabBarMixed-8cc4b4ed.js +0 -2
- package/amd/VirtualizedListView-a0f338c2.js +0 -2
- package/amd/useSelectCommon-28307b63.js +0 -2
- package/amd/useSelectCommon-28307b63.js.map +0 -1
- package/cjs/CheckboxSetContext-c62db26d.js +0 -12
- package/cjs/OverflowTabBarItem-2c967a89.js.map +0 -1
- package/cjs/StyledDatePickerButton-cf4e4dc0.js.map +0 -1
- package/cjs/useSelectCommon-b0d7feb3.js.map +0 -1
- package/es/OverflowTabBarItem-6966fbc7.js.map +0 -1
- package/es/StyledDatePickerButton-f3971567.js.map +0 -1
- package/es/TextArea-93ce78a7.js +0 -225
- package/es/TextArea-93ce78a7.js.map +0 -1
- package/es/useSelectCommon-309d0f07.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationListItem-dbd29973.js","sources":["../../src/UNSAFE_NavigationList/useNavigationList.ts","../../src/UNSAFE_NavigationList/NavigationList.tsx","../../src/UNSAFE_NavigationList/NavigationListItem.tsx"],"sourcesContent":["import { ComponentChildren, ComponentProps } from 'preact';\nimport { useState, useCallback, MutableRef, useRef, useEffect, useId } from 'preact/hooks';\nimport {\n keyExtractor,\n getFirstVisibleKey,\n getKey,\n getPrevNextKeyUsingRef,\n findElementByKey\n} from '../utils/PRIVATE_collectionUtils';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { MenuProps } from '../hooks/PRIVATE_useVisContextMenu/util';\nimport { useContextMenuGesture } from '../hooks/UNSAFE_useContextMenuGesture';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../resources/nls/bundle';\nimport { Menu } from '../UNSAFE_Menu';\nimport { getDefaultContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport { TabBarContextMenuConfig, TabBarItemContextMenuContext } from '../UNSAFE_TabBarCommon';\nimport { NavigationListContextProps } from '../UNSAFE_NavigationListCommon';\n\nconst ITEM_SELECTOR = '[role=\"tab\"]';\nexport const REMOVE_ICON_SELECTOR = '[data-oj-navigationlist-item-remove-icon]';\nconst TOUCH_OFFSET_VALUE = 40;\nconst menuPropGestureStates: Record<\n 'mouse' | 'keyboard' | 'touch',\n Omit<Required<MenuProps>, 'anchorRef' | 'isOpen'>\n> = {\n mouse: {\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0\n },\n keyboard: {\n initialFocus: 'firstItem',\n placement: 'bottom-start',\n offsetValue: 0\n },\n touch: {\n initialFocus: 'menu',\n placement: 'end',\n offsetValue: TOUCH_OFFSET_VALUE\n }\n};\n\n/**\n * type for payload of current key change event handler\n */\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n/**\n * type for payload of selection change event handler\n */\ntype SelectionDetail<K> = {\n value: K;\n reason: 'pointer' | 'keyboard';\n};\n/**\n * type for payload of remove event handler\n */\ntype RemoveDetail<K> = {\n value: K;\n};\n\nconst initialMenuProps: MenuProps = {\n isOpen: false,\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0,\n anchorRef: { current: null }\n};\n\n/*TODO: JET-58534. Create a hook to share some logic between navlist and tabbar. Hook will be used inside this one. */\nexport function useNavigationList<K extends string | number>({\n containerRef,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig\n}: {\n containerRef: MutableRef<HTMLDivElement>;\n selection?: K;\n onRemove?: <K extends string | number>(detail: RemoveDetail<K>) => void;\n onSelectionChange?: <K extends string | number>(detail: SelectionDetail<K>) => void;\n children: ComponentChildren;\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n}) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const [currentKey, setCurrentKey] = useState<K | undefined>(selection);\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K | undefined>) => {\n setCurrentKey(detail.value);\n }, []) as NavigationListContextProps<K>['onCurrentKeyChange'];\n\n const { currentKeyProps } = useCurrentKey(\n (element) =>\n onRemove\n ? (extractOnlyItemKey(element, ITEM_SELECTOR, REMOVE_ICON_SELECTOR) as K)\n : keyExtractor(element, ITEM_SELECTOR),\n false,\n false,\n getPrevNextKeyUsingRef(containerRef, currentKey, true, ITEM_SELECTOR),\n getPrevNextKeyUsingRef(containerRef, currentKey, false, ITEM_SELECTOR),\n undefined,\n undefined,\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(containerRef, [\n 'Home',\n 'End',\n 'ArrowUp',\n 'ArrowDown'\n ]);\n\n const onFocus = useCallback(() => {\n if (containerRef.current && currentKey === undefined) {\n const key = getFirstVisibleKey(containerRef.current, ITEM_SELECTOR);\n if (key) {\n setCurrentKey(key as K);\n }\n }\n }, [currentKey, containerRef]);\n\n const onFocusProps = { onFocus };\n const prevNavItems = useRef<K[]>();\n\n useEffect(() => {\n if (containerRef.current) {\n const navListItemKeys = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n if (currentKey != null && navListItemKeys.indexOf(currentKey) !== -1) {\n const navListItem = findElementByKey(\n containerRef.current,\n currentKey,\n ITEM_SELECTOR\n ) as any;\n if (navListItem.scrollIntoViewIfNeeded) {\n // for some browsers, we'll need the non-standard scrollIntoViewIfNeeded\n navListItem.scrollIntoViewIfNeeded();\n } else {\n navListItem.scrollIntoView({ block: 'nearest' });\n }\n } else {\n if (currentKey && navListItemKeys.indexOf(currentKey) === -1) {\n prevNavItems.current\n ? setCurrentKey(findNextCurrentKey(currentKey, navListItemKeys, prevNavItems.current))\n : setCurrentKey(navListItemKeys[0] as K);\n }\n prevNavItems.current = navListItemKeys;\n }\n }\n }, [children, currentKey, containerRef]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'Home' || event.key === 'End') && containerRef.current && currentKey) {\n const navListItemKey = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n onCurrentKeyChange?.({\n value: navListItemKey[event.key === 'Home' ? 0 : navListItemKey.length - 1] as K\n });\n }\n if (currentKey && (event.key === 'Enter' || event.key === ' ')) {\n // Prevent default to avoid page scrolling on Space (and native actions on Enter)\n event.preventDefault();\n onSelectionChange?.({\n value: currentKey as K,\n reason: 'keyboard'\n });\n }\n if (currentKey && event.key === 'Delete') {\n onRemove?.({ value: currentKey as K });\n }\n },\n [currentKey, onSelectionChange, onRemove, onCurrentKeyChange, containerRef]\n );\n\n const [contextMenuContext, setContextMenuContext] = useState<TabBarItemContextMenuContext<K>>();\n\n const [menuProps, setMenuProps] = useState<MenuProps>(initialMenuProps);\n const [accStatusInfo, setAccStatusInfo] = useState<string>();\n\n const { triggerProps } = useContextMenuGesture(\n ({ gesture, anchor, target }) => {\n let anchorBasedOnGesture = anchor;\n let itemKey = currentKey as K;\n if (gesture === 'keyboard') {\n //We find the element where the position of the menu is going to be based of\n const elem = findElementByKey(\n containerRef.current as HTMLElement,\n currentKey as K,\n ITEM_SELECTOR\n );\n //We set the correct anchor\n anchorBasedOnGesture = elem ? elem : anchor;\n } else {\n //We search for the key using the target of the event\n const key = keyExtractor(target as HTMLElement, ITEM_SELECTOR);\n\n //On touch devices, the keyExtractor returns null because target of touch event is the entire tabbar. Hence we make use of currentkey since the context menu is always launched from selected item and its key is currentKey\n itemKey = key != null ? (key as K) : (currentKey as K);\n }\n let isRemovable = false;\n if (containerRef.current) {\n isRemovable = getItemAttribute(itemKey, containerRef.current, REMOVE_ICON_SELECTOR) != null;\n }\n const defaultContext = getDefaultContextMenu<K>({\n // For default menu items the existence of REMOVE_ICON_SELECTOR is the indicator that it is removable because we render the default menu in touch devices not the application.\n // Furthermore in corepack due to delegations onRemove is always defined as it is a even handler hence not a good check for isRemovable.\n isRemovable: isRemovable,\n handleRemove: onRemove,\n handleReorder: undefined,\n itemKey: itemKey,\n tabKeys: undefined,\n // As direction is only needed for reorder to switch the labels\n direction: undefined,\n itemLabels: {\n labelRemove: isRemovable ? translations.tabbar_labelRemove() : undefined\n },\n handleAccStatus: (detail) => {\n const removeItemLabel = getItemLabel(detail.removedKey!, containerRef.current!) as string;\n const removeStatus =\n isRemovable && detail.removedKey ? ` Removed ${removeItemLabel}` : '';\n\n setAccStatusInfo(removeStatus);\n }\n });\n setContextMenuContext(defaultContext);\n\n setMenuProps({\n ...menuPropGestureStates[gesture],\n anchorRef: { current: anchorBasedOnGesture },\n // This is set so that when no contextMenuConfig and when items is not removable we need not open it.\n isOpen: contextMenuConfig != null\n });\n },\n {\n isDisabled: !contextMenuConfig //If there is no a context menu renderer we disable the hook\n }\n );\n\n const handleCloseContextMenu = useCallback<Required<ComponentProps<typeof Menu>>['onClose']>(\n (detail) => {\n //Focus has to be set on the current target that was obtained\n //during context menu gesture when menu is dismissed or item is \"selected\"\n if (detail.reason === 'dismissed' || detail.reason === 'itemAction') {\n setCurrentKey(contextMenuContext?.itemKey);\n containerRef.current?.focus();\n }\n // We close the menu.The only prop that matters here is isOpen\n setMenuProps({ ...initialMenuProps });\n },\n [containerRef, contextMenuContext?.itemKey]\n );\n\n const contextMenuDescriptionId = 'contextMenu_' + useId();\n const contextMenuDescription = translations.tabbar_labelContextMenu();\n\n return {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n onKeyDown,\n menuProps: { ...menuProps, onClose: handleCloseContextMenu },\n contextMenuContext,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo,\n containerHandlers: mergeProps(focusRingProps, currentKeyProps, onFocusProps, triggerProps)\n };\n}\n// Utility that returns the value for a attribute related to the role=\"tab\" item.\nexport const getItemAttribute = <K extends string | number>(\n itemKey: K,\n root: HTMLElement,\n attribute: string\n) => {\n const navItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (navItem) {\n const tabBarItemAttribute = navItem.querySelector(attribute);\n return tabBarItemAttribute;\n }\n return;\n};\n\n// Utility that returns the visible inner text inside the role=\"tab\" item.\nconst getItemLabel = <K extends string | number>(itemKey: K, root: HTMLElement) => {\n const tabBarItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (tabBarItem) {\n return tabBarItem.innerText;\n }\n return;\n};\n\nconst extractOnlyItemKey = (element: HTMLElement, itemSelector: string, itemEliminator: string) => {\n const navigationListItem = element.closest(itemSelector);\n const removeButton = element.closest(itemEliminator);\n return navigationListItem?.contains(removeButton) ? null : keyExtractor(element, itemSelector);\n};\n\nconst findNextCurrentKey = <K>(currentKey: K, currNavs: K[], prevNavs: K[]) => {\n const index = prevNavs.indexOf(currentKey);\n if (index > 0) {\n const nextIndex = index === prevNavs.length - 1 ? index - 1 : index + 1;\n const nextKey = prevNavs[nextIndex];\n if (currNavs.indexOf(nextKey) !== -1) {\n return nextKey;\n }\n }\n // update current key to be the first one if we can't find a suitable next key\n return currNavs[0];\n};\n","import { Ref } from 'preact';\nimport { MutableRef, useMemo, useRef } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { isMobile } from '#utils/UNSAFE_clientUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { navigationListStyles } from './themes/NavigationListStyles.css';\nimport { getItemAttribute, REMOVE_ICON_SELECTOR, useNavigationList } from './useNavigationList';\nimport { forwardRef, useImperativeHandle } from 'preact/compat';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { NavigationListProps, NavigationListContext } from '../UNSAFE_NavigationListCommon';\nimport { TabBarContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport type { TabBarContextMenuConfig as NavigationListContextMenuConfig } from '../UNSAFE_TabBarCommon';\nexport {\n RemovableNavigationListItem,\n NavigationListLinkItem\n} from '../UNSAFE_NavigationListCommon';\n\nexport type FocusableHandle = {\n focus: () => void;\n blur: () => void;\n};\n\nexport const NavigationList = forwardRef(\n <K extends string | number>(\n {\n children,\n selection,\n edge = 'start',\n onSelectionChange,\n onRemove,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelLedBy,\n testId,\n display = 'standard'\n }: NavigationListProps<K> & TestIdProps,\n ref?: Ref<FocusableHandle>\n ) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const isMobileDevice = isMobile();\n const defaultContextMenuConfig = useMemo<\n NavigationListContextMenuConfig<string | number> | undefined\n >(() => {\n return isMobileDevice\n ? {\n itemsRenderer: (context) => {\n //Only if context is available, it is a mobile device and it is removable item, we will return remove context menu item\n if (context) {\n const isRemovableItem =\n getItemAttribute(context.itemKey, containerRef.current!, REMOVE_ICON_SELECTOR) !=\n null;\n if (isRemovableItem) {\n const defaultItems = context.defaultMenuItems;\n return <>{defaultItems}</>;\n }\n }\n return null;\n }\n }\n : undefined;\n }, [isMobileDevice]);\n\n const {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n containerHandlers,\n onKeyDown,\n contextMenuContext,\n menuProps,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo\n } = useNavigationList({\n containerRef: containerRef as MutableRef<HTMLDivElement>,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig: defaultContextMenuConfig\n });\n\n const eventProps = { onKeyDown };\n const navigationListClass = classNames([navigationListStyles.uListStyle]);\n const navigationListItemPrefix = useId() + '_';\n const testIdProps = useTestId(testId);\n\n //Allows to call focus on rootRef without having to expose it\n useImperativeHandle(ref!, () => ({\n focus: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n },\n blur: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n }\n }));\n\n return (\n <>\n <div\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelLedBy}\n role=\"tablist\"\n ref={containerRef}\n aria-orientation={'vertical'}\n tabIndex={0}\n aria-activedescendant={currentKey ? navigationListItemPrefix + currentKey : ''}\n {...mergeProps(eventProps, containerHandlers)}\n {...testIdProps}\n class={navigationListClass}>\n <NavigationListContext.Provider\n value={{\n selection,\n display,\n onSelectionChange,\n onCurrentKeyChange,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n onRemove,\n edge\n }}>\n {children}\n </NavigationListContext.Provider>\n </div>\n {defaultContextMenuConfig && contextMenuDescriptionId && contextMenuDescription && (\n <span id={contextMenuDescriptionId}>\n <HiddenAccessible>{contextMenuDescription}</HiddenAccessible>\n </span>\n )}\n {defaultContextMenuConfig && accStatusInfo && <LiveRegion>{accStatusInfo}</LiveRegion>}\n {defaultContextMenuConfig && (\n <TabBarContextMenu\n {...menuProps}\n contextMenuConfig={defaultContextMenuConfig}\n contextMenuContext={contextMenuContext!}\n />\n )}\n </>\n );\n }\n);\n","import {\n BaseNavigationListItem,\n BaseNavigationListItemProps\n} from '../UNSAFE_NavigationListCommon/BaseNavigationListItem';\n\nexport type NavigationListItemProps<K extends string | number> = Omit<\n BaseNavigationListItemProps<K>,\n 'removeIcon'\n>;\n\nexport function NavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity,\n icon\n}: NavigationListItemProps<K>) {\n return (\n <BaseNavigationListItem\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n icon={icon}\n />\n );\n}\n"],"names":["_jsx","_Fragment","useId","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,aAAa,GAAG,cAAc,CAAC;AAC9B,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAChF,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,qBAAqB,GAGvB;AACF,IAAA,KAAK,EAAE;AACL,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,CAAC;AACf,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,CAAC;AACf,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,WAAW,EAAE,kBAAkB;AAChC,KAAA;CACF,CAAC;AAsBF,MAAM,gBAAgB,GAAc;AAClC,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,SAAS,EAAE,cAAc;AACzB,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC7B,CAAC;AAEF;AACgB,SAAA,iBAAiB,CAA4B,EAC3D,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EAQlB,EAAA;AACC,IAAA,MAAM,YAAY,GAAG,oBAAoB,CAAa,0BAA0B,CAAC,CAAC;IAClF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,SAAS,CAAC,CAAC;AAEvE,IAAA,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,MAAuC,KAAI;AACjF,QAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC7B,EAAE,EAAE,CAAwD,CAAC;IAE9D,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CACvC,CAAC,OAAO,KACN,QAAQ;UACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,oBAAoB,CAAO;AACzE,UAAE,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,EAC1C,KAAK,EACL,KAAK,EACL,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,EACrE,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,EACtE,SAAS,EACT,SAAS,EACT,UAAU,EACV,kBAAkB,CACnB,CAAC;IAEF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,sBAAsB,CAAC,YAAY,EAAE;QAC3E,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;AACZ,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAK;QAC/B,IAAI,YAAY,CAAC,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;YACpD,MAAM,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACpE,IAAI,GAAG,EAAE;gBACP,aAAa,CAAC,GAAQ,CAAC,CAAC;aACzB;SACF;AACH,KAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AAE/B,IAAA,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,IAAA,MAAM,YAAY,GAAG,MAAM,EAAO,CAAC;IAEnC,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAChC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EACpD,CAAC,IAAI,KAAK,MAAM,CAAC,IAAmB,CAAM,CAC3C,CAAC;AACF,YAAA,IAAI,UAAU,IAAI,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AACpE,gBAAA,MAAM,WAAW,GAAG,gBAAgB,CAClC,YAAY,CAAC,OAAO,EACpB,UAAU,EACV,aAAa,CACP,CAAC;AACT,gBAAA,IAAI,WAAW,CAAC,sBAAsB,EAAE;;oBAEtC,WAAW,CAAC,sBAAsB,EAAE,CAAC;iBACtC;qBAAM;oBACL,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBAClD;aACF;iBAAM;AACL,gBAAA,IAAI,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5D,oBAAA,YAAY,CAAC,OAAO;AAClB,0BAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;0BACpF,aAAa,CAAC,eAAe,CAAC,CAAC,CAAM,CAAC,CAAC;iBAC5C;AACD,gBAAA,YAAY,CAAC,OAAO,GAAG,eAAe,CAAC;aACxC;SACF;KACF,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AAEzC,IAAA,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAAoB,KAAI;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,YAAY,CAAC,OAAO,IAAI,UAAU,EAAE;YACvF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EACpD,CAAC,IAAI,KAAK,MAAM,CAAC,IAAmB,CAAM,CAC3C,CAAC;AACF,YAAA,kBAAkB,GAAG;gBACnB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAM;AACjF,aAAA,CAAC,CAAC;SACJ;AACD,QAAA,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;;YAE9D,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,iBAAiB,GAAG;AAClB,gBAAA,KAAK,EAAE,UAAe;AACtB,gBAAA,MAAM,EAAE,UAAU;AACnB,aAAA,CAAC,CAAC;SACJ;QACD,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACxC,QAAQ,GAAG,EAAE,KAAK,EAAE,UAAe,EAAE,CAAC,CAAC;SACxC;AACH,KAAC,EACD,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAC5E,CAAC;IAEF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,EAAmC,CAAC;IAEhG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,gBAAgB,CAAC,CAAC;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAU,CAAC;AAE7D,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAC5C,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAI;QAC9B,IAAI,oBAAoB,GAAG,MAAM,CAAC;QAClC,IAAI,OAAO,GAAG,UAAe,CAAC;AAC9B,QAAA,IAAI,OAAO,KAAK,UAAU,EAAE;;AAE1B,YAAA,MAAM,IAAI,GAAG,gBAAgB,CAC3B,YAAY,CAAC,OAAsB,EACnC,UAAe,EACf,aAAa,CACd,CAAC;;YAEF,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;SAC7C;aAAM;;YAEL,MAAM,GAAG,GAAG,YAAY,CAAC,MAAqB,EAAE,aAAa,CAAC,CAAC;;AAG/D,YAAA,OAAO,GAAG,GAAG,IAAI,IAAI,GAAI,GAAS,GAAI,UAAgB,CAAC;SACxD;QACD,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,YAAA,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,IAAI,CAAC;SAC7F;QACD,MAAM,cAAc,GAAG,qBAAqB,CAAI;;;AAG9C,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,YAAY,EAAE,QAAQ;AACtB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,SAAS;;AAElB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,UAAU,EAAE;AACV,gBAAA,WAAW,EAAE,WAAW,GAAG,YAAY,CAAC,kBAAkB,EAAE,GAAG,SAAS;AACzE,aAAA;AACD,YAAA,eAAe,EAAE,CAAC,MAAM,KAAI;AAC1B,gBAAA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,UAAW,EAAE,YAAY,CAAC,OAAQ,CAAW,CAAC;AAC1F,gBAAA,MAAM,YAAY,GAChB,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,eAAe,CAAA,CAAE,GAAG,EAAE,CAAC;gBAExE,gBAAgB,CAAC,YAAY,CAAC,CAAC;aAChC;AACF,SAAA,CAAC,CAAC;QACH,qBAAqB,CAAC,cAAc,CAAC,CAAC;AAEtC,QAAA,YAAY,CAAC;YACX,GAAG,qBAAqB,CAAC,OAAO,CAAC;AACjC,YAAA,SAAS,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;;YAE5C,MAAM,EAAE,iBAAiB,IAAI,IAAI;AAClC,SAAA,CAAC,CAAC;AACL,KAAC,EACD;AACE,QAAA,UAAU,EAAE,CAAC,iBAAiB;AAC/B,KAAA,CACF,CAAC;AAEF,IAAA,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,MAAM,KAAI;;;AAGT,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE;AACnE,YAAA,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC3C,YAAA,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;SAC/B;;AAED,QAAA,YAAY,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;KACvC,EACD,CAAC,YAAY,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAC5C,CAAC;AAEF,IAAA,MAAM,wBAAwB,GAAG,cAAc,GAAG,KAAK,EAAE,CAAC;AAC1D,IAAA,MAAM,sBAAsB,GAAG,YAAY,CAAC,uBAAuB,EAAE,CAAC;IAEtE,OAAO;QACL,aAAa;QACb,UAAU;QACV,kBAAkB;QAClB,SAAS;QACT,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAC5D,kBAAkB;QAClB,sBAAsB;QACtB,wBAAwB;QACxB,aAAa;QACb,iBAAiB,EAAE,UAAU,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;KAC3F,CAAC;AACJ,CAAC;AACD;AACO,MAAM,gBAAgB,GAAG,CAC9B,OAAU,EACV,IAAiB,EACjB,SAAiB,KACf;IACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAY,EAAE,aAAa,CAAgB,CAAC;IACnF,IAAI,OAAO,EAAE;QACX,MAAM,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC7D,QAAA,OAAO,mBAAmB,CAAC;KAC5B;IACD,OAAO;AACT,CAAC,CAAC;AAEF;AACA,MAAM,YAAY,GAAG,CAA4B,OAAU,EAAE,IAAiB,KAAI;IAChF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAY,EAAE,aAAa,CAAgB,CAAC;IACtF,IAAI,UAAU,EAAE;QACd,OAAO,UAAU,CAAC,SAAS,CAAC;KAC7B;IACD,OAAO;AACT,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAoB,EAAE,YAAoB,EAAE,cAAsB,KAAI;IAChG,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACrD,IAAA,OAAO,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACjG,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAI,UAAa,EAAE,QAAa,EAAE,QAAa,KAAI;IAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAA,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxE,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AACpC,YAAA,OAAO,OAAO,CAAC;SAChB;KACF;;AAED,IAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;;ACtSY,MAAA,cAAc,GAAG,UAAU,CACtC,CACE,EACE,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,OAAO,EACd,iBAAiB,EACjB,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,MAAM,EACN,OAAO,GAAG,UAAU,EACiB,EACvC,GAA0B,KACxB;AACF,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAElD,IAAA,MAAM,cAAc,GAAG,QAAQ,EAAE,CAAC;AAClC,IAAA,MAAM,wBAAwB,GAAG,OAAO,CAEtC,MAAK;AACL,QAAA,OAAO,cAAc;AACnB,cAAE;AACE,gBAAA,aAAa,EAAE,CAAC,OAAO,KAAI;;oBAEzB,IAAI,OAAO,EAAE;AACX,wBAAA,MAAM,eAAe,GACnB,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,OAAQ,EAAE,oBAAoB,CAAC;AAC9E,4BAAA,IAAI,CAAC;wBACP,IAAI,eAAe,EAAE;AACnB,4BAAA,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAC9C,OAAOA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAG,YAAY,EAAA,CAAI,CAAC;yBAC5B;qBACF;AACD,oBAAA,OAAO,IAAI,CAAC;iBACb;AACF,aAAA;cACD,SAAS,CAAC;AAChB,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,EACJ,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACd,GAAG,iBAAiB,CAAC;AACpB,QAAA,YAAY,EAAE,YAA0C;QACxD,SAAS;QACT,QAAQ;QACR,iBAAiB;QACjB,QAAQ;AACR,QAAA,iBAAiB,EAAE,wBAAwB;AAC5C,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,CAAC;IACjC,MAAM,mBAAmB,GAAG,UAAU,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1E,IAAA,MAAM,wBAAwB,GAAGC,OAAK,EAAE,GAAG,GAAG,CAAC;AAC/C,IAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;;AAGtC,IAAA,mBAAmB,CAAC,GAAI,EAAE,OAAO;QAC/B,KAAK,EAAE,MAAK;AACV,YAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aAC9B;SACF;QACD,IAAI,EAAE,MAAK;AACT,YAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aAC9B;SACF;AACF,KAAA,CAAC,CAAC,CAAC;IAEJ,QACEC,IACE,CAAAF,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EACc,SAAS,EAAA,iBAAA,EACJ,cAAc,EAC/B,IAAI,EAAC,SAAS,EACd,GAAG,EAAE,YAAY,EAAA,kBAAA,EACC,UAAU,EAC5B,QAAQ,EAAE,CAAC,EACY,uBAAA,EAAA,UAAU,GAAG,wBAAwB,GAAG,UAAU,GAAG,EAAE,EAAA,GAC1E,UAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAA,GACzC,WAAW,EACf,KAAK,EAAE,mBAAmB,EAC1B,QAAA,EAAAA,GAAA,CAAC,qBAAqB,CAAC,QAAQ,EAC7B,EAAA,KAAK,EAAE;wBACL,SAAS;wBACT,OAAO;wBACP,iBAAiB;wBACjB,kBAAkB;wBAClB,UAAU;wBACV,aAAa;wBACb,wBAAwB;wBACxB,QAAQ;wBACR,IAAI;qBACL,EACA,QAAA,EAAA,QAAQ,EACsB,CAAA,EAAA,CAC7B,EACL,wBAAwB,IAAI,wBAAwB,IAAI,sBAAsB,KAC7EA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,wBAAwB,EAChC,QAAA,EAAAA,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EAAE,sBAAsB,EAAoB,CAAA,EAAA,CACxD,CACR,EACA,wBAAwB,IAAI,aAAa,IAAIA,GAAA,CAAC,UAAU,EAAA,EAAA,QAAA,EAAE,aAAa,EAAA,CAAc,EACrF,wBAAwB,KACvBA,GAAA,CAAC,iBAAiB,EAAA,EAAA,GACZ,SAAS,EACb,iBAAiB,EAAE,wBAAwB,EAC3C,kBAAkB,EAAE,kBAAmB,EACvC,CAAA,CACH,CACA,EAAA,CAAA,EACH;AACJ,CAAC;;ACzIa,SAAA,kBAAkB,CAA4B,EAC5D,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACuB,EAAA;AAC3B,IAAA,QACEA,GAAA,CAAC,sBAAsB,EAAA,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EAAA,CACV,EACF;AACJ;;;;"}
|
|
1
|
+
{"version":3,"file":"NavigationListItem-340ab770.js","sources":["../../src/UNSAFE_NavigationList/useNavigationList.ts","../../src/UNSAFE_NavigationList/NavigationList.tsx","../../src/UNSAFE_NavigationList/NavigationListItem.tsx"],"sourcesContent":["import { ComponentChildren, ComponentProps } from 'preact';\nimport { useState, useCallback, MutableRef, useRef, useEffect, useId } from 'preact/hooks';\nimport {\n keyExtractor,\n getFirstVisibleKey,\n getKey,\n getPrevNextKeyUsingRef,\n findElementByKey\n} from '../utils/PRIVATE_collectionUtils';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { MenuProps } from '../hooks/PRIVATE_useVisContextMenu/util';\nimport { useContextMenuGesture } from '../hooks/UNSAFE_useContextMenuGesture';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../resources/nls/bundle';\nimport { Menu } from '../UNSAFE_Menu';\nimport { getDefaultContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport { TabBarContextMenuConfig, TabBarItemContextMenuContext } from '../UNSAFE_TabBarCommon';\nimport { NavigationListContextProps } from '../UNSAFE_NavigationListCommon';\n\nconst ITEM_SELECTOR = '[role=\"tab\"]';\nexport const REMOVE_ICON_SELECTOR = '[data-oj-navigationlist-item-remove-icon]';\nconst TOUCH_OFFSET_VALUE = 40;\nconst menuPropGestureStates: Record<\n 'mouse' | 'keyboard' | 'touch',\n Omit<Required<MenuProps>, 'anchorRef' | 'isOpen'>\n> = {\n mouse: {\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0\n },\n keyboard: {\n initialFocus: 'firstItem',\n placement: 'bottom-start',\n offsetValue: 0\n },\n touch: {\n initialFocus: 'menu',\n placement: 'end',\n offsetValue: TOUCH_OFFSET_VALUE\n }\n};\n\n/**\n * type for payload of current key change event handler\n */\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n/**\n * type for payload of selection change event handler\n */\ntype SelectionDetail<K> = {\n value: K;\n reason: 'pointer' | 'keyboard';\n};\n/**\n * type for payload of remove event handler\n */\ntype RemoveDetail<K> = {\n value: K;\n};\n\nconst initialMenuProps: MenuProps = {\n isOpen: false,\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0,\n anchorRef: { current: null }\n};\n\n/*TODO: JET-58534. Create a hook to share some logic between navlist and tabbar. Hook will be used inside this one. */\nexport function useNavigationList<K extends string | number>({\n containerRef,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig\n}: {\n containerRef: MutableRef<HTMLDivElement>;\n selection?: K;\n onRemove?: <K extends string | number>(detail: RemoveDetail<K>) => void;\n onSelectionChange?: <K extends string | number>(detail: SelectionDetail<K>) => void;\n children: ComponentChildren;\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n}) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const [currentKey, setCurrentKey] = useState<K | undefined>(selection);\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K | undefined>) => {\n setCurrentKey(detail.value);\n }, []) as NavigationListContextProps<K>['onCurrentKeyChange'];\n\n const { currentKeyProps } = useCurrentKey(\n (element) =>\n onRemove\n ? (extractOnlyItemKey(element, ITEM_SELECTOR, REMOVE_ICON_SELECTOR) as K)\n : keyExtractor(element, ITEM_SELECTOR),\n false,\n false,\n getPrevNextKeyUsingRef(containerRef, currentKey, true, ITEM_SELECTOR),\n getPrevNextKeyUsingRef(containerRef, currentKey, false, ITEM_SELECTOR),\n undefined,\n undefined,\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(containerRef, [\n 'Home',\n 'End',\n 'ArrowUp',\n 'ArrowDown'\n ]);\n\n const onFocus = useCallback(() => {\n if (containerRef.current && currentKey === undefined) {\n const key = getFirstVisibleKey(containerRef.current, ITEM_SELECTOR);\n if (key) {\n setCurrentKey(key as K);\n }\n }\n }, [currentKey, containerRef]);\n\n const onFocusProps = { onFocus };\n const prevNavItems = useRef<K[]>();\n\n useEffect(() => {\n if (containerRef.current) {\n const navListItemKeys = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n if (currentKey != null && navListItemKeys.indexOf(currentKey) !== -1) {\n const navListItem = findElementByKey(\n containerRef.current,\n currentKey,\n ITEM_SELECTOR\n ) as any;\n if (navListItem.scrollIntoViewIfNeeded) {\n // for some browsers, we'll need the non-standard scrollIntoViewIfNeeded\n navListItem.scrollIntoViewIfNeeded();\n } else {\n navListItem.scrollIntoView({ block: 'nearest' });\n }\n } else {\n if (currentKey && navListItemKeys.indexOf(currentKey) === -1) {\n prevNavItems.current\n ? setCurrentKey(findNextCurrentKey(currentKey, navListItemKeys, prevNavItems.current))\n : setCurrentKey(navListItemKeys[0] as K);\n }\n prevNavItems.current = navListItemKeys;\n }\n }\n }, [children, currentKey, containerRef]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'Home' || event.key === 'End') && containerRef.current && currentKey) {\n const navListItemKey = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n onCurrentKeyChange?.({\n value: navListItemKey[event.key === 'Home' ? 0 : navListItemKey.length - 1] as K\n });\n }\n if (currentKey && (event.key === 'Enter' || event.key === ' ')) {\n // Prevent default to avoid page scrolling on Space (and native actions on Enter)\n event.preventDefault();\n onSelectionChange?.({\n value: currentKey as K,\n reason: 'keyboard'\n });\n }\n if (currentKey && event.key === 'Delete') {\n onRemove?.({ value: currentKey as K });\n }\n },\n [currentKey, onSelectionChange, onRemove, onCurrentKeyChange, containerRef]\n );\n\n const [contextMenuContext, setContextMenuContext] = useState<TabBarItemContextMenuContext<K>>();\n\n const [menuProps, setMenuProps] = useState<MenuProps>(initialMenuProps);\n const [accStatusInfo, setAccStatusInfo] = useState<string>();\n\n const { triggerProps } = useContextMenuGesture(\n ({ gesture, anchor, target }) => {\n let anchorBasedOnGesture = anchor;\n let itemKey = currentKey as K;\n if (gesture === 'keyboard') {\n //We find the element where the position of the menu is going to be based of\n const elem = findElementByKey(\n containerRef.current as HTMLElement,\n currentKey as K,\n ITEM_SELECTOR\n );\n //We set the correct anchor\n anchorBasedOnGesture = elem ? elem : anchor;\n } else {\n //We search for the key using the target of the event\n const key = keyExtractor(target as HTMLElement, ITEM_SELECTOR);\n\n //On touch devices, the keyExtractor returns null because target of touch event is the entire tabbar. Hence we make use of currentkey since the context menu is always launched from selected item and its key is currentKey\n itemKey = key != null ? (key as K) : (currentKey as K);\n }\n let isRemovable = false;\n if (containerRef.current) {\n isRemovable = getItemAttribute(itemKey, containerRef.current, REMOVE_ICON_SELECTOR) != null;\n }\n const defaultContext = getDefaultContextMenu<K>({\n // For default menu items the existence of REMOVE_ICON_SELECTOR is the indicator that it is removable because we render the default menu in touch devices not the application.\n // Furthermore in corepack due to delegations onRemove is always defined as it is a even handler hence not a good check for isRemovable.\n isRemovable: isRemovable,\n handleRemove: onRemove,\n handleReorder: undefined,\n itemKey: itemKey,\n tabKeys: undefined,\n // As direction is only needed for reorder to switch the labels\n direction: undefined,\n itemLabels: {\n labelRemove: isRemovable ? translations.tabbar_labelRemove() : undefined\n },\n handleAccStatus: (detail) => {\n const removeItemLabel = getItemLabel(detail.removedKey!, containerRef.current!) as string;\n const removeStatus =\n isRemovable && detail.removedKey ? ` Removed ${removeItemLabel}` : '';\n\n setAccStatusInfo(removeStatus);\n }\n });\n setContextMenuContext(defaultContext);\n\n setMenuProps({\n ...menuPropGestureStates[gesture],\n anchorRef: { current: anchorBasedOnGesture },\n // This is set so that when no contextMenuConfig and when items is not removable we need not open it.\n isOpen: contextMenuConfig != null\n });\n },\n {\n isDisabled: !contextMenuConfig //If there is no a context menu renderer we disable the hook\n }\n );\n\n const handleCloseContextMenu = useCallback<Required<ComponentProps<typeof Menu>>['onClose']>(\n (detail) => {\n //Focus has to be set on the current target that was obtained\n //during context menu gesture when menu is dismissed or item is \"selected\"\n if (detail.reason === 'dismissed' || detail.reason === 'itemAction') {\n setCurrentKey(contextMenuContext?.itemKey);\n containerRef.current?.focus();\n }\n // We close the menu.The only prop that matters here is isOpen\n setMenuProps({ ...initialMenuProps });\n },\n [containerRef, contextMenuContext?.itemKey]\n );\n\n const contextMenuDescriptionId = 'contextMenu_' + useId();\n const contextMenuDescription = translations.tabbar_labelContextMenu();\n\n return {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n onKeyDown,\n menuProps: { ...menuProps, onClose: handleCloseContextMenu },\n contextMenuContext,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo,\n containerHandlers: mergeProps(focusRingProps, currentKeyProps, onFocusProps, triggerProps)\n };\n}\n// Utility that returns the value for a attribute related to the role=\"tab\" item.\nexport const getItemAttribute = <K extends string | number>(\n itemKey: K,\n root: HTMLElement,\n attribute: string\n) => {\n const navItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (navItem) {\n const tabBarItemAttribute = navItem.querySelector(attribute);\n return tabBarItemAttribute;\n }\n return;\n};\n\n// Utility that returns the visible inner text inside the role=\"tab\" item.\nconst getItemLabel = <K extends string | number>(itemKey: K, root: HTMLElement) => {\n const tabBarItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (tabBarItem) {\n return tabBarItem.innerText;\n }\n return;\n};\n\nconst extractOnlyItemKey = (element: HTMLElement, itemSelector: string, itemEliminator: string) => {\n const navigationListItem = element.closest(itemSelector);\n const removeButton = element.closest(itemEliminator);\n return navigationListItem?.contains(removeButton) ? null : keyExtractor(element, itemSelector);\n};\n\nconst findNextCurrentKey = <K>(currentKey: K, currNavs: K[], prevNavs: K[]) => {\n const index = prevNavs.indexOf(currentKey);\n if (index > 0) {\n const nextIndex = index === prevNavs.length - 1 ? index - 1 : index + 1;\n const nextKey = prevNavs[nextIndex];\n if (currNavs.indexOf(nextKey) !== -1) {\n return nextKey;\n }\n }\n // update current key to be the first one if we can't find a suitable next key\n return currNavs[0];\n};\n","import { Ref } from 'preact';\nimport { MutableRef, useMemo, useRef } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { isMobile } from '#utils/UNSAFE_clientUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { navigationListStyles } from './themes/NavigationListStyles.css';\nimport { getItemAttribute, REMOVE_ICON_SELECTOR, useNavigationList } from './useNavigationList';\nimport { forwardRef, useImperativeHandle } from 'preact/compat';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { NavigationListProps, NavigationListContext } from '../UNSAFE_NavigationListCommon';\nimport { TabBarContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport type { TabBarContextMenuConfig as NavigationListContextMenuConfig } from '../UNSAFE_TabBarCommon';\nexport {\n RemovableNavigationListItem,\n NavigationListLinkItem\n} from '../UNSAFE_NavigationListCommon';\n\nexport type FocusableHandle = {\n focus: () => void;\n blur: () => void;\n};\n\nexport const NavigationList = forwardRef(\n <K extends string | number>(\n {\n children,\n selection,\n edge = 'start',\n onSelectionChange,\n onRemove,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelLedBy,\n testId,\n display = 'standard'\n }: NavigationListProps<K> & TestIdProps,\n ref?: Ref<FocusableHandle>\n ) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const isMobileDevice = isMobile();\n const defaultContextMenuConfig = useMemo<\n NavigationListContextMenuConfig<string | number> | undefined\n >(() => {\n return isMobileDevice\n ? {\n itemsRenderer: (context) => {\n //Only if context is available, it is a mobile device and it is removable item, we will return remove context menu item\n if (context) {\n const isRemovableItem =\n getItemAttribute(context.itemKey, containerRef.current!, REMOVE_ICON_SELECTOR) !=\n null;\n if (isRemovableItem) {\n const defaultItems = context.defaultMenuItems;\n return <>{defaultItems}</>;\n }\n }\n return null;\n }\n }\n : undefined;\n }, [isMobileDevice]);\n\n const {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n containerHandlers,\n onKeyDown,\n contextMenuContext,\n menuProps,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo\n } = useNavigationList({\n containerRef: containerRef as MutableRef<HTMLDivElement>,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig: defaultContextMenuConfig\n });\n\n const eventProps = { onKeyDown };\n const navigationListClass = classNames([navigationListStyles.uListStyle]);\n const navigationListItemPrefix = useId() + '_';\n const testIdProps = useTestId(testId);\n\n //Allows to call focus on rootRef without having to expose it\n useImperativeHandle(ref!, () => ({\n focus: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n },\n blur: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n }\n }));\n\n return (\n <>\n <div\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelLedBy}\n role=\"tablist\"\n ref={containerRef}\n aria-orientation={'vertical'}\n tabIndex={0}\n aria-activedescendant={currentKey ? navigationListItemPrefix + currentKey : ''}\n {...mergeProps(eventProps, containerHandlers)}\n {...testIdProps}\n class={navigationListClass}>\n <NavigationListContext.Provider\n value={{\n selection,\n display,\n onSelectionChange,\n onCurrentKeyChange,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n onRemove,\n edge\n }}>\n {children}\n </NavigationListContext.Provider>\n </div>\n {defaultContextMenuConfig && contextMenuDescriptionId && contextMenuDescription && (\n <span id={contextMenuDescriptionId}>\n <HiddenAccessible>{contextMenuDescription}</HiddenAccessible>\n </span>\n )}\n {defaultContextMenuConfig && accStatusInfo && <LiveRegion>{accStatusInfo}</LiveRegion>}\n {defaultContextMenuConfig && (\n <TabBarContextMenu\n {...menuProps}\n contextMenuConfig={defaultContextMenuConfig}\n contextMenuContext={contextMenuContext!}\n />\n )}\n </>\n );\n }\n);\n","import {\n BaseNavigationListItem,\n BaseNavigationListItemProps\n} from '../UNSAFE_NavigationListCommon/BaseNavigationListItem';\n\nexport type NavigationListItemProps<K extends string | number> = Omit<\n BaseNavigationListItemProps<K>,\n 'removeIcon'\n>;\n\nexport function NavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity,\n icon\n}: NavigationListItemProps<K>) {\n return (\n <BaseNavigationListItem\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n icon={icon}\n />\n );\n}\n"],"names":["_jsx","_Fragment","useId","_jsxs"],"mappings":"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"}
|
|
@@ -32,8 +32,9 @@ import { S as SvgSuccessS } from './SuccessS-b5192d40.js';
|
|
|
32
32
|
import { m as mergeProps } from './mergeProps-88ea8306.js';
|
|
33
33
|
import { u as useTabBarItemTooltip, N as NavigationListLinkItem, R as RemovableNavigationListItem } from './NavigationListLinkItem-e28fd846.js';
|
|
34
34
|
import { tabBarItemVars } from './UNSAFE_TabBarCommon/themes/TabBarItemContract.css.js';
|
|
35
|
+
import { H as HiddenAccessible } from './HiddenAccessible-61197e7c.js';
|
|
35
36
|
import { styles } from './UNSAFE_TabBarCommon/themes/OverflowTabBarItemStyles.css.js';
|
|
36
|
-
import { N as NavigationList, a as NavigationListItem } from './NavigationListItem-
|
|
37
|
+
import { N as NavigationList, a as NavigationListItem } from './NavigationListItem-340ab770.js';
|
|
37
38
|
|
|
38
39
|
const onClickLink = (event) => {
|
|
39
40
|
event.preventDefault();
|
|
@@ -138,10 +139,12 @@ function BaseTabBarItem({ itemKey, label, icon, badge, metadata, severity = 'non
|
|
|
138
139
|
return (jsxs(Fragment, { children: [jsxs(Flex, { align: "center", justify: "center", flex: "1 1 auto", gap: "2x", children: [!isIconOnly && !isStacked && icon && labelRequirement && (jsx("span", { class: tabBarItemIconClasses, "data-oj-tab-icon": "startIcon", children: icon })), !isIconOnly && labelRequirement && (jsx("span", { class: tabBarItemLabelClasses, style: maxWidthDimensions, ...detectTruncationProps, children: jsx(Text, { size: "md", weight: "semiBold", children: label }) }))] }), !isLinkItem && removeIcon && jsx("span", { class: removeClass, children: removeIcon })] }));
|
|
139
140
|
};
|
|
140
141
|
const complexItemRenderer = () => {
|
|
141
|
-
return (jsxs(Flex, { flex: "1 1 auto", children: [jsxs(Flex, { minWidth: "10.5x", minHeight: isTall ? tabBarItemVars.lgHeight : '100%', height: isStacked && labelRequirement ? tabBarItemVars.stackedHeight : tabBarItemVars.mdHeight, direction: isStacked && labelRequirement ? 'column' : 'row', gap: "2x", align: "center", justify: "center", alignSelf: "center", flex: "1 1 auto", children: [(isStacked || isIconOnly) && (jsxs("div", { class: tabBarItemIconClasses, children: [
|
|
142
|
+
return (jsxs(Flex, { flex: "1 1 auto", children: [jsxs(Flex, { minWidth: "10.5x", minHeight: isTall ? tabBarItemVars.lgHeight : '100%', height: isStacked && labelRequirement ? tabBarItemVars.stackedHeight : tabBarItemVars.mdHeight, direction: isStacked && labelRequirement ? 'column' : 'row', gap: "2x", align: "center", justify: "center", alignSelf: "center", flex: "1 1 auto", children: [(isStacked || isIconOnly) && (jsxs("div", { class: tabBarItemIconClasses, children: [
|
|
143
|
+
// JET-79198 - The label is made hidden so that in can be read out by screen readers and we will not need aria-label at role="tab" level to include all the content in it's children
|
|
144
|
+
isIconOnly && jsx(HiddenAccessible, { id: "hiddenLabel", children: label }), icon, jsx("span", { class: tabBarItemStackedBadgeClasses, children: badge ? (jsx(Badge, { size: "xs", variant: "neutral", children: badge })) : null })] })), !isIconOnly && !isStacked && icon && labelRequirement && (jsx("span", { class: tabBarItemIconClasses, "data-oj-tab-icon": "startIcon", children: icon })), !isIconOnly && labelRequirement && (jsx("span", { class: tabBarItemLabelClasses, style: maxWidthDimensions, ...detectTruncationProps, children: jsx(Text, { size: "md", weight: "semiBold", children: label }) })), !isStacked && !isIconOnly && badge && labelRequirement && (jsx("span", { "data-oj-tab-badge": badge, children: jsx(Badge, { size: "md", variant: "neutralSubtle", children: badge }) })), metadata && (jsx("span", { class: tabBarItemMetadataClasses, "data-oj-tab-metadata": metadata, children: jsx(Text, { size: "md", weight: "normal", children: '( ' + metadata + ' )' }) })), severityRequirement && (jsx("span", { class: tabBarItemIconClasses, "data-oj-tab-severity": severity, children: IconComponent(severity) }))] }), !isLinkItem && removeIcon && jsx("span", { class: removeClass, children: removeIcon })] }));
|
|
142
145
|
};
|
|
143
146
|
const tabBarItemRenderer = () => {
|
|
144
|
-
return (jsxs("div", { "data-oj-key": itemKey, "data-oj-removable": removeIcon ? 'true' : undefined, id: tabItemPrefix + itemKey, class: tabBarItem, role: "tab", "aria-
|
|
147
|
+
return (jsxs("div", { "data-oj-key": itemKey, "data-oj-removable": removeIcon ? 'true' : undefined, id: tabItemPrefix + itemKey, class: tabBarItem, role: "tab", "aria-controls": ariaControls, "aria-selected": isSelected, "aria-haspopup": ariaHasPopup, ...mergeProps(pressProps, tooltipEventHandlerProps, conveyorBeltProps), ref: ref, style: isComplexItem ? flexDimensions : tabDimensions, children: [isComplexItem ? complexItemRenderer() : labelIconRenderer(), tooltipContent] }));
|
|
145
148
|
};
|
|
146
149
|
const tabBarLinkItemRenderer = () => {
|
|
147
150
|
return (jsxs("span", { ref: ref, class: tabBarItem, ...mergeProps(pressProps, tooltipEventHandlerProps, conveyorBeltProps), style: isComplexItem ? flexDimensions : tabDimensions, children: [jsx("a", { onClick: onClickLink, class: tabBarItemLinkClasses, href: href, "data-oj-key": itemKey, "data-oj-removable": removeIcon ? 'true' : undefined, id: tabItemPrefix + itemKey, role: "tab", tabindex: -1, "aria-controls": ariaControls, "aria-selected": isSelected, "aria-haspopup": ariaHasPopup, children: isComplexItem ? complexItemRenderer() : labelIconRenderer() }), tooltipContent] }));
|
|
@@ -251,4 +254,4 @@ const getIsMobile = () => {
|
|
|
251
254
|
};
|
|
252
255
|
|
|
253
256
|
export { BaseTabBarItem as B, OverflowTabBarItem as O, RemovableTabBarItem as R, TabBarItem as T };
|
|
254
|
-
//# sourceMappingURL=OverflowTabBarItem-
|
|
257
|
+
//# sourceMappingURL=OverflowTabBarItem-aa0ce915.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverflowTabBarItem-aa0ce915.js","sources":["../../src/UNSAFE_TabBarCommon/BaseTabBarItem.tsx","../../src/UNSAFE_TabBarCommon/TabBarItem.tsx","../../src/UNSAFE_TabBarCommon/RemovableTabBarItem.tsx","../../src/UNSAFE_RedwoodIcons/OverflowH/OverflowH.tsx","../../src/UNSAFE_TabBarCommon/OverflowTabBarItem.tsx"],"sourcesContent":["import { ComponentChildren, ComponentChild } from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { Text } from '../UNSAFE_Text';\nimport { Flex } from '../UNSAFE_Flex';\nimport { useTabBarContext } from './useTabBarContext';\nimport { Size } from '../utils/UNSAFE_size';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport { dimensionInterpolations } from '../utils/UNSAFE_interpolations/dimensions';\nimport type { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport type { DimensionProps } from '../utils/UNSAFE_interpolations/dimensions';\nimport type { BoxAlignmentProps } from '../utils/UNSAFE_interpolations/boxalignment';\nimport { boxAlignmentInterpolations } from '../utils/UNSAFE_interpolations/boxalignment';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../resources/nls/bundle';\nimport { TabBarItemVariantOptions } from './themes/TabBarItemStyles.css';\nimport { TabBarItemRedwoodTheme } from './themes/redwood/TabBarItemTheme';\nimport { Badge } from '../UNSAFE_Badge';\nimport { useConveyorBeltItem } from '../UNSAFE_ConveyorBelt/useConveyorBeltItem';\nimport { useDetectTruncation } from '../hooks/PRIVATE_useDetectTruncation';\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 { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useTabBarItemTooltip } from './useTabBarItemTooltip';\nimport { tabBarItemVars } from './themes/TabBarItemContract.css';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\n\ntype Severity = 'warning' | 'info' | 'none' | 'error' | 'confirmation';\n\ntype AriaProps = {\n /**\n * Accepts the tabpanel element's ID associated with the tab item\n **/\n 'aria-controls'?: string;\n /**\n * Used by an item that renders an interactive popup\n */\n 'aria-haspopup'?: boolean;\n};\n\nexport type BaseTabBarItemProps<K extends string | number> = {\n /**\n * Key of the TabBarItem\n */\n itemKey: K;\n /**\n * Label of the TabBarItem. For icon only display this label is the content\n * for aria-label and tooltip text of the Tab.\n */\n label: string;\n /**\n * The icon before the label in non-stack case, icon above the label in\n * stacked case or the stand alone icon when no label is specified.\n */\n icon?: ComponentChild;\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 * that appears after the label in non stack case only.\n */\n metadata?: string;\n /**\n * The status icon to be rendered after the label in non stack case only.\n */\n severity?: Severity;\n /**\n * The content to be rendered for remove icon\n */\n removeIcon?: ComponentChildren;\n /**\n * The control for enabling and disabling focusRing\n */\n showFocusRingOverride?: boolean;\n /**\n * The control for enabling and disabling selection indicator\n */\n selectionOverride?: boolean;\n /**\n * The control for overriding display value.\n */\n displayOverride?: string;\n /**\n * Maximum width tabbar item label can have\n */\n labelMaxWidth?: Size;\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\nexport function BaseTabBarItem<K extends string | number>({\n itemKey,\n label,\n icon,\n badge,\n metadata,\n severity = 'none',\n removeIcon,\n showFocusRingOverride,\n selectionOverride,\n displayOverride,\n labelMaxWidth,\n href,\n 'aria-controls': ariaControls,\n 'aria-haspopup': ariaHasPopup\n}: BaseTabBarItemProps<K>) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const {\n onSelect,\n selection,\n currentKey,\n showFocusRing,\n hideTooltip,\n layout,\n display,\n size,\n isEdgeBottom,\n tabItemPrefix\n } = useTabBarContext();\n\n const isCurrent = currentKey === itemKey;\n\n const { ref, ...conveyorBeltProps } = useConveyorBeltItem({ isCurrent });\n\n //Selection\n //Dependency on currentKey because upon removal selectionChange does not change hence no re render\n //and it is still holding the deleted key as selection\n const handlePress = useCallback(() => {\n onSelect?.({ value: itemKey as K });\n }, [itemKey, onSelect]);\n\n const { pressProps } = usePress(handlePress);\n\n const isSelected = selection === itemKey;\n\n const isStacked = display === 'stacked' ? true : false;\n const isIconOnly =\n display === 'icons' || (displayOverride && displayOverride === 'icons') ? true : false;\n const isTall = size === 'lg' ? true : false;\n const labelRequirement = label && !(label === ' ' && label === undefined);\n const severityRequirement = !(severity === 'none' || severity === undefined);\n\n const IconComponent = (severityValue: Severity) => {\n switch (severityValue) {\n case 'error':\n // As per spec acc label is required only for error severity icon.\n return <ErrorS color=\"danger\" accessibleLabel={translations.tabBar_tabContainsErrors()} />;\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 { direction } = useUser();\n const makeFocusRingVisible =\n showFocusRingOverride !== undefined ? showFocusRingOverride : showFocusRing;\n const makeSelectionVisible = selectionOverride !== undefined ? selectionOverride : isSelected;\n const {\n classes,\n styles: {\n tabBarItemIcon,\n tabBarItemIconStacked,\n tabBarItemMetadata,\n tabBarItemStackedBadge,\n tabBarItemStackedBadgeRtl,\n tabBarItemRemoveIcon,\n tabBarItemLabel,\n tabBarItemLabelTruncated,\n tabBarItemLink\n }\n } = useComponentTheme<TabBarItemVariantOptions>(TabBarItemRedwoodTheme, {\n selection: makeSelectionVisible ? 'isSelected' : 'notSelected',\n current: isCurrent ? 'isCurrent' : 'notCurrent',\n focusRing: makeFocusRingVisible ? 'showFocusRing' : 'noFocusRing',\n edgeBottom: isEdgeBottom ? 'isBottom' : 'notBottom'\n });\n\n const tabBarItem = classNames([classes]);\n const tabBarItemLabelClasses = classNames([\n tabBarItemLabel,\n labelMaxWidth !== undefined && tabBarItemLabelTruncated\n ]);\n const tabBarItemIconClasses = classNames([\n tabBarItemIcon,\n (isStacked || isIconOnly || !labelRequirement) && tabBarItemIconStacked\n ]);\n const tabBarItemMetadataClasses = classNames([tabBarItemMetadata]);\n const tabBarItemStackedBadgeClasses = classNames([\n tabBarItemStackedBadge,\n direction === 'rtl' && tabBarItemStackedBadgeRtl\n ]);\n const removeClass = classNames([tabBarItemRemoveIcon]);\n const tabBarItemLinkClasses = classNames([tabBarItemLink]);\n\n const styleInterpolations = mergeInterpolations<\n FlexitemProps & DimensionProps & BoxAlignmentProps\n >([\n ...Object.values(flexitemInterpolations),\n ...Object.values(dimensionInterpolations),\n ...Object.values(boxAlignmentInterpolations)\n ]);\n\n //This is for simple item where height and width need to be specified on the main div.\n const tabDimensions = styleInterpolations({\n flex: layout === 'stretch' ? '1 0 auto' : '0 0 auto',\n minWidth: '10.5x',\n height: isTall ? tabBarItemVars.lgHeight : tabBarItemVars.mdHeight,\n //This is needed for gap between icon/ label and remove icon in labelIconRenderer\n gap: '2x'\n });\n\n //This is for complex item, where only flex dimensions needs to be applied as height and width comes from child Flex component.\n const flexDimensions = styleInterpolations({\n flex: layout === 'stretch' ? '1 0 auto' : '0 0 auto'\n });\n\n const maxWithInterpolation = mergeInterpolations<DimensionProps>([\n ...Object.values(dimensionInterpolations)\n ]);\n\n //The threshold for truncation is labelMinWidth: 96px as per spec.\n const labelMinWidth = '96px';\n const maxWidthDimensions = maxWithInterpolation({\n maxWidth: labelMaxWidth !== undefined ? `calc(max(${labelMinWidth},${labelMaxWidth}))` : '100%'\n });\n\n const { detectTruncationProps, isTextTruncated } = useDetectTruncation(\n labelMaxWidth === undefined\n );\n const showTooltip = isIconOnly || isTextTruncated;\n const { tooltipContent, tooltipEventHandlerProps, onLogicalFocus, onLogicalBlur } =\n useTabBarItemTooltip({ label, isDisabled: !showTooltip });\n if (showTooltip) {\n if (isCurrent && showFocusRing && !hideTooltip) {\n onLogicalFocus(ref.current as HTMLElement);\n } else if (!isCurrent || (isCurrent && !showFocusRing) || hideTooltip) {\n onLogicalBlur();\n }\n }\n\n const isComplexItem = badge || metadata || severity !== 'none' || isStacked || isIconOnly;\n const isLinkItem = href != null;\n\n const labelIconRenderer = () => {\n return (\n <>\n <Flex align=\"center\" justify=\"center\" flex=\"1 1 auto\" gap=\"2x\">\n {!isIconOnly && !isStacked && icon && labelRequirement && (\n <span class={tabBarItemIconClasses} data-oj-tab-icon=\"startIcon\">\n {icon}\n </span>\n )}\n {!isIconOnly && labelRequirement && (\n <span\n class={tabBarItemLabelClasses}\n style={maxWidthDimensions}\n {...detectTruncationProps}>\n {\n <Text size=\"md\" weight=\"semiBold\">\n {label}\n </Text>\n }\n </span>\n )}\n </Flex>\n {!isLinkItem && removeIcon && <span class={removeClass}>{removeIcon}</span>}\n </>\n );\n };\n\n const complexItemRenderer = () => {\n return (\n <Flex flex=\"1 1 auto\">\n <Flex\n minWidth=\"10.5x\"\n minHeight={isTall ? tabBarItemVars.lgHeight : '100%'}\n height={\n isStacked && labelRequirement ? tabBarItemVars.stackedHeight : tabBarItemVars.mdHeight\n }\n direction={isStacked && labelRequirement ? 'column' : 'row'}\n gap=\"2x\"\n align=\"center\"\n justify=\"center\"\n alignSelf=\"center\"\n flex=\"1 1 auto\">\n {(isStacked || isIconOnly) && (\n <div class={tabBarItemIconClasses}>\n {\n // JET-79198 - The label is made hidden so that in can be read out by screen readers and we will not need aria-label at role=\"tab\" level to include all the content in it's children\n isIconOnly && <HiddenAccessible id=\"hiddenLabel\">{label}</HiddenAccessible>\n }\n {icon}\n <span class={tabBarItemStackedBadgeClasses}>\n {badge ? (\n <Badge size=\"xs\" variant=\"neutral\">\n {badge}\n </Badge>\n ) : null}\n </span>\n </div>\n )}\n {!isIconOnly && !isStacked && icon && labelRequirement && (\n <span class={tabBarItemIconClasses} data-oj-tab-icon=\"startIcon\">\n {icon}\n </span>\n )}\n {!isIconOnly && labelRequirement && (\n <span\n class={tabBarItemLabelClasses}\n style={maxWidthDimensions}\n {...detectTruncationProps}>\n {\n <Text size=\"md\" weight=\"semiBold\">\n {label}\n </Text>\n }\n </span>\n )}\n {!isStacked && !isIconOnly && badge && labelRequirement && (\n <span data-oj-tab-badge={badge}>\n <Badge size=\"md\" variant=\"neutralSubtle\">\n {badge}\n </Badge>\n </span>\n )}\n {metadata && (\n <span class={tabBarItemMetadataClasses} data-oj-tab-metadata={metadata}>\n <Text size=\"md\" weight=\"normal\">\n {'( ' + metadata + ' )'}\n </Text>\n </span>\n )}\n {severityRequirement && (\n <span class={tabBarItemIconClasses} data-oj-tab-severity={severity}>\n {IconComponent(severity)}\n </span>\n )}\n </Flex>\n {!isLinkItem && removeIcon && <span class={removeClass}>{removeIcon}</span>}\n </Flex>\n );\n };\n\n const tabBarItemRenderer = () => {\n return (\n <div\n data-oj-key={itemKey}\n data-oj-removable={removeIcon ? 'true' : undefined}\n id={tabItemPrefix + itemKey}\n class={tabBarItem}\n role=\"tab\"\n aria-controls={ariaControls}\n aria-selected={isSelected}\n aria-haspopup={ariaHasPopup}\n {...mergeProps(pressProps, tooltipEventHandlerProps, conveyorBeltProps)}\n ref={ref}\n style={isComplexItem ? flexDimensions : tabDimensions}>\n {isComplexItem ? complexItemRenderer() : labelIconRenderer()}\n {tooltipContent}\n </div>\n );\n };\n\n const tabBarLinkItemRenderer = () => {\n return (\n <span\n ref={ref}\n class={tabBarItem}\n {...mergeProps(pressProps, tooltipEventHandlerProps, conveyorBeltProps)}\n style={isComplexItem ? flexDimensions : tabDimensions}>\n <a\n onClick={onClickLink}\n class={tabBarItemLinkClasses}\n href={href}\n data-oj-key={itemKey}\n data-oj-removable={removeIcon ? 'true' : undefined}\n id={tabItemPrefix + itemKey}\n role=\"tab\"\n tabindex={-1}\n aria-controls={ariaControls}\n aria-selected={isSelected}\n aria-haspopup={ariaHasPopup}>\n {isComplexItem ? complexItemRenderer() : labelIconRenderer()}\n </a>\n {tooltipContent}\n </span>\n );\n };\n return isLinkItem ? tabBarLinkItemRenderer() : tabBarItemRenderer();\n}\n","import { BaseTabBarItem, BaseTabBarItemProps } from './BaseTabBarItem';\n\nexport type TabBarItemProps<K extends string | number> = Pick<\n BaseTabBarItemProps<K>,\n | 'itemKey'\n | 'label'\n | 'icon'\n | 'badge'\n | 'metadata'\n | 'severity'\n | 'aria-controls'\n | 'labelMaxWidth'\n>;\n/**\n * TabBarItem content can be created by using labels or icons or both.\n */\nexport function TabBarItem<K extends string | number>({\n itemKey,\n label,\n icon,\n badge,\n metadata,\n severity,\n labelMaxWidth,\n 'aria-controls': ariaControls\n}: TabBarItemProps<K>) {\n return (\n <BaseTabBarItem\n aria-controls={ariaControls}\n itemKey={itemKey}\n label={label}\n icon={icon}\n badge={badge}\n metadata={metadata}\n severity={severity}\n labelMaxWidth={labelMaxWidth}\n />\n );\n}\n","import { useCallback } from 'preact/hooks';\nimport { useHover } from '../hooks/UNSAFE_useHover';\nimport { EmbeddedIconButton } from '../PRIVATE_EmbeddedIconButton';\nimport { Close } from '../UNSAFE_RedwoodIcons/Close';\nimport { Flex } from '../UNSAFE_Flex';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport type { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { useTabBarContext } from './useTabBarContext';\nimport { BaseTabBarItem, BaseTabBarItemProps } from './BaseTabBarItem';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\n\ntype RemovableTabBarItemProps<K extends string | number> = Pick<\n BaseTabBarItemProps<K>,\n | 'itemKey'\n | 'label'\n | 'icon'\n | 'badge'\n | 'metadata'\n | 'severity'\n | 'aria-controls'\n | 'labelMaxWidth'\n>;\n\nexport function RemovableTabBarItem<K extends string | number>({\n itemKey,\n label,\n icon,\n badge,\n metadata,\n severity,\n labelMaxWidth,\n 'aria-controls': ariaControls\n}: RemovableTabBarItemProps<K>) {\n const { selection, currentKey, layout, onRemove } = useTabBarContext();\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 //instead of specifying flex: '1 0 auto' in cssProps var\n const styleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n ]);\n const flexDimensions = styleInterpolations({\n flex: layout === 'stretch' ? '1 0 auto' : '0 0 auto'\n });\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n //TODO: In addition to aria-label a genric instruction is required for keyboard deletion\n //common to al tabs,after feedback from Curt's investigations.\n return (\n <div {...hoverProps} style={flexDimensions}>\n <Flex>\n <BaseTabBarItem\n aria-controls={ariaControls}\n itemKey={itemKey}\n label={label}\n icon={icon}\n badge={badge}\n metadata={metadata}\n severity={severity}\n labelMaxWidth={labelMaxWidth}\n removeIcon={\n <span data-oj-tabbar-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 </Flex>\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates. All rights reserved.\n * https://www.oracle.com/contracts/docs/cloud_csa_online_v062223_us_eng.pdf?download=false&er=221886\n * @ignore\n */\n// DO NOT MODIFY THIS FILE MANUALLY!\n// This file is automatically generated based on the corresponding SVG image in\n// the packages/oraclejet-preact/resources/icons folder.\nimport { ComponentProps } from 'preact';\nimport { Icon } from '../../UNSAFE_Icon';\ntype Props = Omit<ComponentProps<typeof Icon>, 'viewBox' | 'children'>;\nconst SvgOverflowH = (props: Props) => (\n <Icon viewBox=\"0 0 24 24\" {...props}>\n <g fill=\"none\">\n <path\n d=\"M6 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm8 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm8 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0z\"\n fill=\"currentcolor\"\n />\n </g>\n </Icon>\n);\nexport { SvgOverflowH as OverflowH };\n","import { ComponentChild, ComponentProps, createRef } from 'preact';\nimport { useCallback, useRef, useEffect } from 'preact/hooks';\nimport type { BundleType } from '../resources/nls/bundle';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport type { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport {\n NavigationListItem,\n NavigationList,\n RemovableNavigationListItem,\n FocusableHandle,\n NavigationListLinkItem\n} from '../UNSAFE_NavigationList';\nimport { OverflowH } from '../UNSAFE_RedwoodIcons/OverflowH';\nimport { useTabBarContext } from './useTabBarContext';\nimport { Dropdown } from '../UNSAFE_Dropdown';\nimport { Sheet } from '../UNSAFE_Sheet';\nimport { BaseTabBarItem } from './BaseTabBarItem';\nimport { styles } from './themes/OverflowTabBarItemStyles.css';\nimport { TabBarItem } from './TabBarItem';\n\nexport type OverflowSelectionDetail<K> = {\n value: K;\n};\n\nexport type CloseDetail = {\n /**\n * dismissed represents dismissing the DropDown\n */\n reason: 'dismissed' | 'itemAction' | 'outsideMousedown';\n};\n\nexport type Item<K extends string | number> = Omit<\n ComponentProps<typeof TabBarItem<K>>,\n 'testId' | 'aria-controls'\n> & {\n isRemovable?: boolean;\n /**\n * Accepts the tabpanel element's ID associated with the tab item\n **/\n tabPanelId?: string;\n /**\n * Sets the URL that the hyperlink points to.\n */\n href?: string;\n};\n\nexport type OverflowTabBarItemProps<K extends string | number> = {\n /**\n * Key of the TabBarItem\n */\n overflowItemKey: K;\n /**\n * Whether to open the popup\n */\n isOpen: boolean;\n /**\n * Property that triggers a callback when DropDown is supposed to be closed.\n */\n onClose?: (detail: CloseDetail) => void;\n /**\n * The icon of the OverflowTabBarItem\n */\n icon?: ComponentChild;\n /**\n * The content to be rendered inside the Badge component.\n */\n badge?: string;\n /**\n * An array of data used by NavigationList to render individual overflow items.\n */\n overflowItems?: Item<K>[];\n};\n\n/**\n * An OverflowTabBarItem renders TabBarItems in a device appropriate popup. OverflowTabBarItem is used internally in an OverflowTabBar.\n */\n\nexport function OverflowTabBarItem<K extends string | number>({\n overflowItemKey,\n icon,\n badge,\n overflowItems,\n isOpen,\n onClose\n}: OverflowTabBarItemProps<K>) {\n const { selection, showFocusRing, isEdgeBottom, onSelect, onRemove, layout } = useTabBarContext();\n\n const isPointerSelection = useRef<boolean>(false);\n\n // Reset pointer selection flag when the popup closes so keyboard navigation\n // restores focus-visible on the overflow trigger.\n useEffect(() => {\n if (!isOpen) {\n isPointerSelection.current = false;\n }\n }, [isOpen]);\n\n const overflowTabBarItemRef = useRef<HTMLDivElement>(null);\n const navigationListRef = createRef<FocusableHandle>();\n\n const handleSelectionChange = useCallback<\n Required<ComponentProps<typeof NavigationList>>['onSelectionChange']\n >(\n (detail: { value: string | number; reason?: 'pointer' | 'keyboard' }) => {\n if (detail.reason === 'pointer') {\n isPointerSelection.current = true;\n }\n onSelect?.({ value: detail.value });\n onClose?.({ reason: 'itemAction' });\n },\n [onSelect, onClose]\n );\n\n const handleDropdownClose = useCallback(\n (e: CloseDetail) => {\n onClose?.({ reason: e.reason });\n },\n [onClose]\n );\n\n const handleSheetClose = useCallback(() => {\n onClose?.({ reason: 'dismissed' });\n }, [onClose]);\n\n //When NavigationList steals focus the app resets it. Not always would it be reset to\n //parent of OverflowTabBarItem. Though currentKey would be correct, but focusRing would would not be visible\n //Hence we check for isPointerSelection.current\n\n const focusRingRequirement = showFocusRing && !isPointerSelection.current && !getIsMobile();\n\n const overflowContainsKey = (searchKey: K) => {\n return overflowItems?.find((item) => item.itemKey === searchKey) != null;\n };\n\n const currentPanelId = overflowItems?.find((item) => item.itemKey === selection)?.tabPanelId;\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const isSelected = selection !== undefined && overflowContainsKey(selection as K);\n\n //instead of specifying flex: '1 0 auto' in cssProps var\n const styleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n ]);\n const flexDimensions = styleInterpolations({\n flex: layout === 'stretch' ? '1 0 auto' : '0 0 auto'\n });\n\n const navContainerClasses = classNames([styles.navContainerBase]);\n\n const navContainerRef = useRef<HTMLDivElement>(null);\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n navigationListRef.current?.focus();\n }\n },\n [navigationListRef]\n );\n const getNavigationList = useCallback(() => {\n return (\n <div onKeyDown={handleKeyDown} tabIndex={0} ref={navContainerRef} class={navContainerClasses}>\n <NavigationList\n ref={navigationListRef}\n selection={selection}\n onSelectionChange={handleSelectionChange}\n onRemove={onRemove}>\n {overflowItems?.map((item) =>\n item.href != null ? (\n <NavigationListLinkItem\n href={item.href}\n itemKey={item.itemKey}\n label={item.label}\n badge={item.badge}\n metadata={item.metadata}\n severity={item.severity}\n />\n ) : item.isRemovable ? (\n <RemovableNavigationListItem\n itemKey={item.itemKey}\n label={item.label}\n badge={item.badge}\n metadata={item.metadata}\n severity={item.severity}\n />\n ) : (\n <NavigationListItem\n itemKey={item.itemKey}\n label={item.label}\n badge={item.badge}\n metadata={item.metadata}\n severity={item.severity}\n />\n )\n )}\n </NavigationList>\n </div>\n );\n }, [\n handleKeyDown,\n navContainerClasses,\n navigationListRef,\n selection,\n handleSelectionChange,\n onRemove,\n overflowItems\n ]);\n\n return (\n <>\n {overflowItems && overflowItems.length > 0 && (\n <div ref={overflowTabBarItemRef} style={flexDimensions}>\n <BaseTabBarItem\n aria-controls={currentPanelId}\n itemKey={overflowItemKey}\n label={translations.overflowItemLabel()}\n icon={icon ? icon : <OverflowH />}\n badge={badge}\n showFocusRingOverride={focusRingRequirement}\n selectionOverride={isSelected}\n displayOverride={'icons'}\n aria-haspopup={true}\n />\n </div>\n )}\n {getIsMobile() ? (\n <Sheet isOpen={isOpen} onClose={handleSheetClose} initialFocus=\"firstFocusable\">\n {getNavigationList()}\n </Sheet>\n ) : (\n <Dropdown\n initialFocus=\"firstFocusable\"\n isOpen={isOpen}\n onClose={handleDropdownClose}\n placement={isEdgeBottom ? 'top-end' : 'bottom-end'}\n anchorRef={overflowTabBarItemRef}>\n {getNavigationList()}\n </Dropdown>\n )}\n </>\n );\n}\n\nconst getIsMobile = () => {\n const { deviceRenderMode } = getClientHints();\n return deviceRenderMode === 'phone';\n};\n"],"names":["_jsx","ErrorS","WarningS","InformationS","SuccessS","_jsxs","_Fragment","Close","OverflowH"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
export { B as BaseCardView, a as getColCount, g as gutterSizeToPX } from './BaseCardView-
|
|
2
|
+
export { B as BaseCardView, a as getColCount, g as gutterSizeToPX } from './BaseCardView-b3d8bae0.js';
|
|
3
3
|
import 'preact/jsx-runtime';
|
|
4
4
|
import 'preact';
|
|
5
5
|
import 'preact/compat';
|
|
@@ -4,6 +4,7 @@ import { u as useCurrentKey } from './useCurrentKey-5f865bbd.js';
|
|
|
4
4
|
import { d as getPrevNextKeyUsingRef, k as keyExtractor, c as getItemKeysArray, b as getFirstVisibleKey } from './collectionUtils-5313629f.js';
|
|
5
5
|
import { useContext, useCallback, useMemo, useRef, useState, useId, useEffect } from 'preact/hooks';
|
|
6
6
|
import { createContext } from 'preact';
|
|
7
|
+
import { E as Expander } from './Expander-1347e769.js';
|
|
7
8
|
import { F as Flex } from './Flex-03129963.js';
|
|
8
9
|
import { m as mergeProps } from './mergeProps-88ea8306.js';
|
|
9
10
|
import { u as usePress } from './usePress-051f5adb.js';
|
|
@@ -21,7 +22,6 @@ import { u as useUser } from './useUser-06d34d19.js';
|
|
|
21
22
|
import { c as classNames } from './classNames-4e12b00d.js';
|
|
22
23
|
import { m as mergeInterpolations } from './mergeInterpolations-30cd9a69.js';
|
|
23
24
|
import { f as flexitemInterpolations } from './flexitem-7b7f7920.js';
|
|
24
|
-
import { E as Expander } from './Expander-1347e769.js';
|
|
25
25
|
import { u as useCollectionFocusRing } from './useCollectionFocusRing-23ac7f97.js';
|
|
26
26
|
import { navigationListStyles } from './PRIVATE_CollapsibleNavigationList/themes/CollapsibleNavigationListStyles.css.js';
|
|
27
27
|
import './keys-49c92dbb.js';
|
|
@@ -111,10 +111,33 @@ import './PRIVATE_BaseSelector/themes/SelectorStyles.css.js';
|
|
|
111
111
|
import './SelectorStyles.styles.css';
|
|
112
112
|
import './CollectionInteractionContext-7cf19abc.js';
|
|
113
113
|
import './useCollectionInteractionContext-3895c632.js';
|
|
114
|
+
import './EmbeddedIconButton-46434710.js';
|
|
115
|
+
import './BaseButton-41068c85.js';
|
|
116
|
+
import './dimensions-e4fbc23d.js';
|
|
117
|
+
import './UNSAFE_BaseButton/themes/redwood/BaseButtonTheme.js';
|
|
118
|
+
import './UNSAFE_BaseButton/themes/BaseButtonStyles.css.js';
|
|
119
|
+
import './BaseButtonStyles.styles.css';
|
|
120
|
+
import './UNSAFE_BaseButton/themes/redwood/BaseButtonVariants.css.js';
|
|
121
|
+
import './UNSAFE_BaseButton/themes/redwood/BaseButtonBaseTheme.styles.css';
|
|
122
|
+
import './BareButton-1e3df7cb.js';
|
|
123
|
+
import './useBareButton-ff4bd21e.js';
|
|
124
|
+
import './usePressClick-945cc43b.js';
|
|
125
|
+
import './buttonUtils-55fb1df7.js';
|
|
126
|
+
import './id-83adac50.js';
|
|
127
|
+
import './ButtonLabelLayout-1631c997.js';
|
|
128
|
+
import './useButtonLabelLayoutTheme-448e671d.js';
|
|
129
|
+
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme.js';
|
|
130
|
+
import './UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css.js';
|
|
131
|
+
import './ButtonLabelLayoutStyles.styles.css';
|
|
132
|
+
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutBaseTheme.css.js';
|
|
133
|
+
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutBaseTheme.styles.css';
|
|
134
|
+
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutVariants.css.js';
|
|
135
|
+
import './ButtonLabelLayoutVariants.styles.css';
|
|
136
|
+
import './ChevronDown-16a46328.js';
|
|
137
|
+
import './ChevronRight-f4ff20cb.js';
|
|
114
138
|
import './boxalignment-8980856d.js';
|
|
115
139
|
import './boxalignment.styles.css';
|
|
116
140
|
import './vanilla-extract-sprinkles-createRuntimeSprinkles.esm-2d655d37.js';
|
|
117
|
-
import './dimensions-e4fbc23d.js';
|
|
118
141
|
import './flexbox-529f25da.js';
|
|
119
142
|
import './flexbox.styles.css';
|
|
120
143
|
import './FlexStyles.styles.css';
|
|
@@ -138,29 +161,6 @@ import './_curry3-577eb45e.js';
|
|
|
138
161
|
import './_curry2-01c87f61.js';
|
|
139
162
|
import './_isObject-1fab0f5b.js';
|
|
140
163
|
import './flexitem.styles.css';
|
|
141
|
-
import './EmbeddedIconButton-46434710.js';
|
|
142
|
-
import './BaseButton-41068c85.js';
|
|
143
|
-
import './UNSAFE_BaseButton/themes/redwood/BaseButtonTheme.js';
|
|
144
|
-
import './UNSAFE_BaseButton/themes/BaseButtonStyles.css.js';
|
|
145
|
-
import './BaseButtonStyles.styles.css';
|
|
146
|
-
import './UNSAFE_BaseButton/themes/redwood/BaseButtonVariants.css.js';
|
|
147
|
-
import './UNSAFE_BaseButton/themes/redwood/BaseButtonBaseTheme.styles.css';
|
|
148
|
-
import './BareButton-1e3df7cb.js';
|
|
149
|
-
import './useBareButton-ff4bd21e.js';
|
|
150
|
-
import './usePressClick-945cc43b.js';
|
|
151
|
-
import './buttonUtils-55fb1df7.js';
|
|
152
|
-
import './id-83adac50.js';
|
|
153
|
-
import './ButtonLabelLayout-1631c997.js';
|
|
154
|
-
import './useButtonLabelLayoutTheme-448e671d.js';
|
|
155
|
-
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme.js';
|
|
156
|
-
import './UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css.js';
|
|
157
|
-
import './ButtonLabelLayoutStyles.styles.css';
|
|
158
|
-
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutBaseTheme.css.js';
|
|
159
|
-
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutBaseTheme.styles.css';
|
|
160
|
-
import './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutVariants.css.js';
|
|
161
|
-
import './ButtonLabelLayoutVariants.styles.css';
|
|
162
|
-
import './ChevronDown-16a46328.js';
|
|
163
|
-
import './ChevronRight-f4ff20cb.js';
|
|
164
164
|
import './CollapsibleNavigationListStyles.styles.css';
|
|
165
165
|
|
|
166
166
|
/**
|
package/es/PRIVATE_MonthView.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
export { M as MonthView } from './MonthView-
|
|
2
|
+
export { M as MonthView } from './MonthView-4b2b483a.js';
|
|
3
3
|
import 'preact/jsx-runtime';
|
|
4
4
|
import './dayUtils-cf5948ff.js';
|
|
5
5
|
import './getFormatParse-6d6fdd4d.js';
|
|
@@ -8,12 +8,11 @@ import './logger-c92f309c.js';
|
|
|
8
8
|
import './supplementalData-ed66ab4e.js';
|
|
9
9
|
import './calendarDateUtils-30611c35.js';
|
|
10
10
|
import 'preact/hooks';
|
|
11
|
-
import './StyledDatePickerButton-
|
|
11
|
+
import './StyledDatePickerButton-78f2f6e8.js';
|
|
12
12
|
import './PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js';
|
|
13
13
|
import './BaseButtonStyles.styles.css';
|
|
14
14
|
import './StyledDatePickerButtonStyles.styles.css';
|
|
15
15
|
import './vanilla-extract-recipes-createRuntimeFn.esm-2aaf8c98.js';
|
|
16
|
-
import './UNSAFE_BaseButton/themes/BaseButtonStyles.css.js';
|
|
17
16
|
import './classNames-4e12b00d.js';
|
|
18
17
|
import 'preact/compat';
|
|
19
18
|
import './useTranslationBundle-4822502f.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PRIVATE_MonthView.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PRIVATE_MonthView.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
export { M as MonthsGridView, Y as YearsGridView } from './YearsGridView-
|
|
2
|
+
export { M as MonthsGridView, Y as YearsGridView } from './YearsGridView-6c18094a.js';
|
|
3
3
|
import 'preact/jsx-runtime';
|
|
4
4
|
import './Grid-9e4b4f19.js';
|
|
5
5
|
import './grid-65aa641c.js';
|
|
@@ -27,12 +27,11 @@ import 'preact/compat';
|
|
|
27
27
|
import './UNSAFE_Layer/themes/LayerHostStyles.css.js';
|
|
28
28
|
import './LayerHostStyles.styles.css';
|
|
29
29
|
import 'preact/hooks';
|
|
30
|
-
import './StyledDatePickerButton-
|
|
30
|
+
import './StyledDatePickerButton-78f2f6e8.js';
|
|
31
31
|
import './PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js';
|
|
32
32
|
import './BaseButtonStyles.styles.css';
|
|
33
33
|
import './StyledDatePickerButtonStyles.styles.css';
|
|
34
34
|
import './vanilla-extract-recipes-createRuntimeFn.esm-2aaf8c98.js';
|
|
35
|
-
import './UNSAFE_BaseButton/themes/BaseButtonStyles.css.js';
|
|
36
35
|
import './useTranslationBundle-4822502f.js';
|
|
37
36
|
import './useUser-06d34d19.js';
|
|
38
37
|
import './getFormatParse-6d6fdd4d.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PRIVATE_MonthYearGridView.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PRIVATE_MonthYearGridView.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
export { D as DefaultList, a as DropdownArrow, b as DropdownList, E as EmptyResults, l as createKeysFromValueItems, h as isBeforeDataFetch, e as isMobile, f as isPhone, k as isSearchClearedFirstTime, j as isSearchTextEmptyOrUndefined, i as isSimpleClick, g as isTablet, p as preventDefault, c as preventDefaultForCurrentTarget, r as renderItemText, u as useCollectionRenderer, d as useSelectCommon } from './useSelectCommon-
|
|
3
|
-
export { D as Dropdown, a as DropdownUserAssistance, L as LinkItem, M as MobileDropdown, S as SelectMobileDropdown, b as SelectMobileFieldInput } from './SelectMobileFieldInput-
|
|
2
|
+
export { D as DefaultList, a as DropdownArrow, b as DropdownList, E as EmptyResults, l as createKeysFromValueItems, h as isBeforeDataFetch, e as isMobile, f as isPhone, k as isSearchClearedFirstTime, j as isSearchTextEmptyOrUndefined, i as isSimpleClick, g as isTablet, p as preventDefault, c as preventDefaultForCurrentTarget, r as renderItemText, u as useCollectionRenderer, d as useSelectCommon } from './useSelectCommon-a3c69d60.js';
|
|
3
|
+
export { D as Dropdown, a as DropdownUserAssistance, L as LinkItem, M as MobileDropdown, S as SelectMobileDropdown, b as SelectMobileFieldInput } from './SelectMobileFieldInput-345c4d45.js';
|
|
4
4
|
import 'preact/jsx-runtime';
|
|
5
5
|
import './Flex-03129963.js';
|
|
6
6
|
import './useTestId-f24ac480.js';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
|
-
export { S as StyledDatePickerButton } from './StyledDatePickerButton-
|
|
2
|
+
export { S as StyledDatePickerButton } from './StyledDatePickerButton-78f2f6e8.js';
|
|
3
3
|
import 'preact/jsx-runtime';
|
|
4
4
|
import './PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js';
|
|
5
5
|
import './BaseButtonStyles.styles.css';
|
|
6
6
|
import './StyledDatePickerButtonStyles.styles.css';
|
|
7
7
|
import './vanilla-extract-recipes-createRuntimeFn.esm-2aaf8c98.js';
|
|
8
|
-
import './UNSAFE_BaseButton/themes/BaseButtonStyles.css.js';
|
|
9
8
|
import './classNames-4e12b00d.js';
|
|
10
9
|
import 'preact/compat';
|
|
11
10
|
//# sourceMappingURL=PRIVATE_StyledDatePickerButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PRIVATE_StyledDatePickerButton.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PRIVATE_StyledDatePickerButton.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
package/es/PRIVATE_TableList.js
CHANGED
|
@@ -39,6 +39,8 @@ import { u as useInteractionStyle } from './useInteractionStyle-99e32c23.js';
|
|
|
39
39
|
import { S as Selector } from './Selector-23bccbe7.js';
|
|
40
40
|
import { textAlignStyles, verticalAlignStyles } from './PRIVATE_TableCommon/themes/Common.css.js';
|
|
41
41
|
import { listCellStylesHC, listCellStyles } from './PRIVATE_TableList/themes/ListCellStyles.css.js';
|
|
42
|
+
import './StyledCheckbox-d6c8f557.js';
|
|
43
|
+
import './SelectorStyles.styles.css';
|
|
42
44
|
import { listSkeletonStylesHC, listSkeletonStyles } from './PRIVATE_TableList/themes/ListSkeletonStyles.css.js';
|
|
43
45
|
import { d as dimensionInterpolations } from './dimensions-e4fbc23d.js';
|
|
44
46
|
import { m as mergeInterpolations } from './mergeInterpolations-30cd9a69.js';
|
|
@@ -91,7 +93,8 @@ import './useToggle-8b7fcefe.js';
|
|
|
91
93
|
import './useActive-fb6d4d52.js';
|
|
92
94
|
import './BaseSelector-7cbc48bc.js';
|
|
93
95
|
import './useFocus-38c95977.js';
|
|
94
|
-
import './
|
|
96
|
+
import './PRIVATE_BaseSelector/themes/SelectorStyles.css.js';
|
|
97
|
+
import './ListCellStyles.styles.css';
|
|
95
98
|
import './Check-ac39fe00.js';
|
|
96
99
|
import './Icon-4983d06e.js';
|
|
97
100
|
import './size-af1e638c.js';
|
|
@@ -126,9 +129,6 @@ import './UNSAFE_Checkbox/themes/redwood/CheckboxIconVariants.css.js';
|
|
|
126
129
|
import './CheckboxIconVariants.styles.css';
|
|
127
130
|
import './useTabbableMode-090ed4b5.js';
|
|
128
131
|
import './StyledCheckbox.styles.css';
|
|
129
|
-
import './PRIVATE_BaseSelector/themes/SelectorStyles.css.js';
|
|
130
|
-
import './SelectorStyles.styles.css';
|
|
131
|
-
import './ListCellStyles.styles.css';
|
|
132
132
|
import './ListSkeletonStyles.styles.css';
|
|
133
133
|
import './mergeDeepWithKey-33e3d1be.js';
|
|
134
134
|
import './_isObject-1fab0f5b.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
.
|
|
1
|
+
.RadioIconVariants_multiVariantStyles_iconSize_4xUnits__vfef778 {
|
|
2
2
|
--iconSize__bwcdcl0: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
3
3
|
}
|
|
4
|
-
.
|
|
4
|
+
.RadioIconVariants_multiVariantStyles_richSelection_isLayoutXL__vfef779 {
|
|
5
5
|
height: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
6
6
|
width: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
7
7
|
}
|
|
8
|
-
.
|
|
8
|
+
.RadioIconVariants_multiVariantStyles_richSelection_notLayoutXL__vfef77a {
|
|
9
9
|
height: calc(5 * var(--oj-c-size-units, 0.25rem));
|
|
10
10
|
width: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
11
11
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
.
|
|
1
|
+
.RadioIconVariants_multiVariantStyles_iconSize_4xUnits__ykyxsd8 {
|
|
2
2
|
--iconSize__bwcdcl0: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
3
3
|
}
|
|
4
|
-
.
|
|
4
|
+
.RadioIconVariants_multiVariantStyles_richSelection_isLayoutXL__ykyxsd9 {
|
|
5
5
|
height: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
6
6
|
width: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
7
7
|
}
|
|
8
|
-
.
|
|
8
|
+
.RadioIconVariants_multiVariantStyles_richSelection_notLayoutXL__ykyxsda {
|
|
9
9
|
height: calc(5 * var(--oj-c-size-units, 0.25rem));
|
|
10
10
|
width: calc(4 * var(--oj-c-size-units, 0.25rem));
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.SegmentStyles_base__kzheun0 {
|
|
2
2
|
caret-color: transparent;
|
|
3
3
|
text-align: end;
|
|
4
4
|
-webkit-tap-highlight-color: transparent;
|
|
@@ -6,35 +6,32 @@
|
|
|
6
6
|
user-select: none;
|
|
7
7
|
-webkit-user-select: none;
|
|
8
8
|
}
|
|
9
|
-
.
|
|
9
|
+
.SegmentStyles_base__kzheun0:focus-visible {
|
|
10
10
|
outline: none;
|
|
11
11
|
}
|
|
12
|
-
.
|
|
12
|
+
.SegmentStyles_literalBase__kzheun1 {
|
|
13
13
|
white-space: pre;
|
|
14
14
|
-webkit-user-select: none;
|
|
15
15
|
-moz-user-select: none;
|
|
16
16
|
user-select: none;
|
|
17
17
|
}
|
|
18
|
-
.
|
|
18
|
+
.SegmentStyles_placeholder__kzheun2 {
|
|
19
19
|
color: var(--oj-c-text-icon-secondary);
|
|
20
20
|
text-align: start;
|
|
21
21
|
}
|
|
22
|
-
.
|
|
23
|
-
width: 4px;
|
|
24
|
-
}
|
|
25
|
-
.SegmentStyles_selected__51w8ze4 {
|
|
22
|
+
.SegmentStyles_selected__kzheun3 {
|
|
26
23
|
background-color: var(--oj-c-surface-selected);
|
|
27
24
|
border-color: var(--oj-c-border-selected);
|
|
28
25
|
}
|
|
29
|
-
.
|
|
26
|
+
.SegmentStyles_highlighted__kzheun4 {
|
|
30
27
|
background-color: var(--oj-c-surface-selected);
|
|
31
28
|
}
|
|
32
|
-
.
|
|
29
|
+
.SegmentStyles_hidden__kzheun5 {
|
|
33
30
|
display: none;
|
|
34
31
|
}
|
|
35
|
-
.
|
|
32
|
+
.SegmentStyles_notHidden__kzheun6 {
|
|
36
33
|
display: block;
|
|
37
34
|
}
|
|
38
|
-
.
|
|
35
|
+
.SegmentStyles_accessibleTouchTarget__kzheun7 {
|
|
39
36
|
min-width: 24px;
|
|
40
37
|
}
|