@oracle/oraclejet-preact 14.0.15 → 14.0.16
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/Badge-98a677f3.js +2 -0
- package/amd/{Badge-9175fbab.js.map → Badge-98a677f3.js.map} +1 -1
- package/amd/BaseButton-174b82cf.js +2 -0
- package/amd/{BaseButton-ebed03fc.js.map → BaseButton-174b82cf.js.map} +1 -1
- package/amd/Button-90c6e9f9.js +2 -0
- package/amd/{Button-68100aa2.js.map → Button-90c6e9f9.js.map} +1 -1
- package/amd/Chip-fc2e4a70.js +2 -0
- package/amd/{Chip-27950497.js.map → Chip-fc2e4a70.js.map} +1 -1
- package/amd/ClearIcon-235a74a8.js +2 -0
- package/amd/{ClearIcon-fbfb919b.js.map → ClearIcon-235a74a8.js.map} +1 -1
- package/amd/{Collection-7f6d38b2.js → Collection-9df1abea.js} +1 -1
- package/amd/{Collection-7f6d38b2.js.map → Collection-9df1abea.js.map} +1 -1
- package/amd/ComponentMessage-3afec011.js +2 -0
- package/amd/{ComponentMessage-d6eabb8b.js.map → ComponentMessage-3afec011.js.map} +1 -1
- package/amd/ComponentMessageContainer-bc250349.js +2 -0
- package/amd/{ComponentMessageContainer-9d207766.js.map → ComponentMessageContainer-bc250349.js.map} +1 -1
- package/amd/{Divider-ccff52b0.js → Divider-3fd74acf.js} +2 -2
- package/amd/{Divider-ccff52b0.js.map → Divider-3fd74acf.js.map} +1 -1
- package/amd/{FilePicker-cb61ddca.js → FilePicker-12577518.js} +2 -2
- package/amd/{FilePicker-cb61ddca.js.map → FilePicker-12577518.js.map} +1 -1
- package/amd/Flex-09e74761.js +2 -0
- package/amd/{Flex-feea6d33.js.map → Flex-09e74761.js.map} +1 -1
- package/amd/{Floating-cde13417.js → Floating-0746d380.js} +2 -2
- package/amd/{Floating-cde13417.js.map → Floating-0746d380.js.map} +1 -1
- package/amd/FocusTrap-d3e74e81.js +2 -0
- package/amd/{FocusTrap-c829bbb6.js.map → FocusTrap-d3e74e81.js.map} +1 -1
- package/amd/FormControlUtils-dae9e648.js +2 -0
- package/amd/{FormControlUtils-05d612b2.js.map → FormControlUtils-dae9e648.js.map} +1 -1
- package/amd/Heading-10fc3dc7.js +2 -0
- package/amd/{Heading-b6851001.js.map → Heading-10fc3dc7.js.map} +1 -1
- package/amd/HiddenAccessible-14957c32.js +2 -0
- package/amd/{HiddenAccessible-7a830f5b.js.map → HiddenAccessible-14957c32.js.map} +1 -1
- package/amd/HighlightText-444c1227.js +2 -0
- package/amd/{HighlightText-0dcc56c8.js.map → HighlightText-444c1227.js.map} +1 -1
- package/amd/Icon-0f001e22.js +2 -0
- package/amd/{Icon-734f5882.js.map → Icon-0f001e22.js.map} +1 -1
- package/amd/Indexer-bbc07fbd.js +2 -0
- package/amd/{Indexer-db8fef02.js.map → Indexer-bbc07fbd.js.map} +1 -1
- package/amd/InlineHelpSource-c2887059.js +2 -0
- package/amd/{InlineHelpSource-b84f4d4c.js.map → InlineHelpSource-c2887059.js.map} +1 -1
- package/amd/Link-b7446b22.js +2 -0
- package/amd/{Link-342b0888.js.map → Link-b7446b22.js.map} +1 -1
- package/amd/List-e404fd42.js +2 -0
- package/amd/{List-70e50ac0.js.map → List-e404fd42.js.map} +1 -1
- package/amd/ListItemTextLayout-881bef6d.js +2 -0
- package/amd/{ListItemTextLayout-0fcd3aa2.js.map → ListItemTextLayout-881bef6d.js.map} +1 -1
- package/amd/{ListView-87f52739.js → ListView-860d3563.js} +2 -2
- package/amd/{ListView-87f52739.js.map → ListView-860d3563.js.map} +1 -1
- package/amd/{LoadMoreCollection-d975953c.js → LoadMoreCollection-298a8d03.js} +2 -2
- package/amd/{LoadMoreCollection-d975953c.js.map → LoadMoreCollection-298a8d03.js.map} +1 -1
- package/amd/Menu-0359c231.js +2 -0
- package/amd/{Menu-216ca145.js.map → Menu-0359c231.js.map} +1 -1
- package/amd/MenuDivider-c66ecaf2.js +2 -0
- package/amd/{MenuDivider-4f0b0980.js.map → MenuDivider-c66ecaf2.js.map} +1 -1
- package/amd/MenuItem-126abb70.js +2 -0
- package/amd/{MenuItem-61f30a1b.js.map → MenuItem-126abb70.js.map} +1 -1
- package/amd/{Message.types-aa2b436b.js → Message.types-07e4afec.js} +1 -1
- package/amd/{Message.types-aa2b436b.js.map → Message.types-07e4afec.js.map} +1 -1
- package/amd/MessageCloseButton-15992223.js +2 -0
- package/amd/{MessageCloseButton-e3eff42e.js.map → MessageCloseButton-15992223.js.map} +1 -1
- package/amd/MessageDetail-e60f3a62.js +2 -0
- package/amd/{MessageDetail-1be1c95e.js.map → MessageDetail-e60f3a62.js.map} +1 -1
- package/amd/{MessageFormattingUtils-1513fdd8.js → MessageFormattingUtils-3182a53c.js} +2 -2
- package/amd/{MessageFormattingUtils-1513fdd8.js.map → MessageFormattingUtils-3182a53c.js.map} +1 -1
- package/amd/MessageLayer-431527dc.js +2 -0
- package/amd/{MessageLayer-4a956c0e.js.map → MessageLayer-431527dc.js.map} +1 -1
- package/amd/MessageStartIcon-2b34bbc2.js +2 -0
- package/amd/{MessageStartIcon-eb47a169.js.map → MessageStartIcon-2b34bbc2.js.map} +1 -1
- package/amd/MessageSummary-4be22c0e.js +2 -0
- package/amd/{MessageSummary-89b4de95.js.map → MessageSummary-4be22c0e.js.map} +1 -1
- package/amd/MessageTimestamp-f06381d6.js +2 -0
- package/amd/{MessageTimestamp-05386412.js.map → MessageTimestamp-f06381d6.js.map} +1 -1
- package/amd/MessageToast-6300e7d8.js +2 -0
- package/amd/{MessageToast-ddea810f.js.map → MessageToast-6300e7d8.js.map} +1 -1
- package/amd/{MessageUtils-d672d8cf.js → MessageUtils-8f1f842d.js} +2 -2
- package/amd/{MessageUtils-d672d8cf.js.map → MessageUtils-8f1f842d.js.map} +1 -1
- package/amd/{MessagesManager-e153ba77.js → MessagesManager-f08bf90d.js} +2 -2
- package/amd/{MessagesManager-e153ba77.js.map → MessagesManager-f08bf90d.js.map} +1 -1
- package/amd/MeterCircle-f6b0caa9.js +2 -0
- package/amd/{MeterCircle-896974e4.js.map → MeterCircle-f6b0caa9.js.map} +1 -1
- package/amd/Modal-6ffcb075.js +2 -0
- package/amd/{Modal-da798ad9.js.map → Modal-6ffcb075.js.map} +1 -1
- package/amd/{NumberInputText-ea4da437.js → NumberInputText-f18531b0.js} +2 -2
- package/amd/{NumberInputText-ea4da437.js.map → NumberInputText-f18531b0.js.map} +1 -1
- package/amd/PRIVATE_Collection.js +1 -1
- package/amd/PRIVATE_List.css +15 -15
- package/amd/PRIVATE_List.js +1 -1
- package/amd/PRIVATE_Message.css +27 -27
- package/amd/PRIVATE_Message.js +1 -1
- package/amd/PRIVATE_Message.js.map +1 -1
- package/amd/PRIVATE_MessageLayer.css +7 -7
- package/amd/PRIVATE_MessageLayer.js +1 -1
- package/amd/PRIVATE_Meter.js +1 -1
- package/amd/PRIVATE_SelectCommon.css +13 -13
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/PRIVATE_SelectCommon.js.map +1 -1
- package/amd/PRIVATE_VirtualizedCollection.js +1 -1
- package/amd/ReadonlyTextFieldInput-56711dee.js +2 -0
- package/amd/{ReadonlyTextFieldInput-1da0c096.js.map → ReadonlyTextFieldInput-56711dee.js.map} +1 -1
- package/amd/{SelectMenuItem-2bd31ad4.js → SelectMenuItem-d0495c89.js} +2 -2
- package/amd/{SelectMenuItem-2bd31ad4.js.map → SelectMenuItem-d0495c89.js.map} +1 -1
- package/amd/SelectMultiple-1f77445b.js +2 -0
- package/amd/{SelectMultiple-dfb5b765.js.map → SelectMultiple-1f77445b.js.map} +1 -1
- package/amd/{SelectSingle-46465b7e.js → SelectSingle-d6e91617.js} +2 -2
- package/amd/{SelectSingle-46465b7e.js.map → SelectSingle-d6e91617.js.map} +1 -1
- package/amd/Skeleton-26929f8e.js +2 -0
- package/amd/{Skeleton-fc198bf2.js.map → Skeleton-26929f8e.js.map} +1 -1
- package/amd/{Spacer-9c7c8b39.js → Spacer-c770cd2b.js} +2 -2
- package/amd/{Spacer-9c7c8b39.js.map → Spacer-c770cd2b.js.map} +1 -1
- package/amd/SplitMenuButton-f8968c97.js +2 -0
- package/amd/{SplitMenuButton-1a916527.js.map → SplitMenuButton-f8968c97.js.map} +1 -1
- package/amd/Text-5980e33c.js +2 -0
- package/amd/{Text-9d65ad6d.js.map → Text-5980e33c.js.map} +1 -1
- package/amd/TextArea-7342f2f7.js +2 -0
- package/amd/{TextArea-6b0f7f8a.js.map → TextArea-7342f2f7.js.map} +1 -1
- package/amd/{TextAreaAutosize-44fe5eb7.js → TextAreaAutosize-701e6196.js} +2 -2
- package/amd/{TextAreaAutosize-44fe5eb7.js.map → TextAreaAutosize-701e6196.js.map} +1 -1
- package/amd/TextFieldInput-d18240f2.js +2 -0
- package/amd/{TextFieldInput-3c4b3298.js.map → TextFieldInput-d18240f2.js.map} +1 -1
- package/amd/UNSAFE_AspectRatio.css +1 -1
- package/amd/UNSAFE_AspectRatio.js +1 -1
- package/amd/UNSAFE_Avatar.css +8 -8
- package/amd/UNSAFE_Avatar.js +1 -1
- package/amd/UNSAFE_Avatar.js.map +1 -1
- package/amd/UNSAFE_Badge.css +13 -13
- package/amd/UNSAFE_Badge.js +1 -1
- package/amd/UNSAFE_BaseButton.css +15 -15
- package/amd/UNSAFE_BaseButton.js +1 -1
- package/amd/UNSAFE_Button.css +8 -8
- package/amd/UNSAFE_Button.js +1 -1
- package/amd/UNSAFE_Center.js +1 -1
- package/amd/UNSAFE_Chip.css +7 -7
- package/amd/UNSAFE_Chip.js +1 -1
- package/amd/UNSAFE_Collapsible.css +8 -8
- package/amd/UNSAFE_Collapsible.js +1 -1
- package/amd/UNSAFE_Collapsible.js.map +1 -1
- package/amd/UNSAFE_ComponentMessage.css +2 -2
- package/amd/UNSAFE_ComponentMessage.js +1 -1
- package/amd/UNSAFE_Divider.css +1 -1
- package/amd/UNSAFE_Divider.js +1 -1
- package/amd/UNSAFE_FilePicker.css +6 -6
- package/amd/UNSAFE_FilePicker.js +1 -1
- package/amd/UNSAFE_Flex.css +2 -2
- package/amd/UNSAFE_Flex.js +1 -1
- package/amd/UNSAFE_Floating.js +1 -1
- package/amd/UNSAFE_FocusTrap.css +2 -2
- package/amd/UNSAFE_FocusTrap.js +1 -1
- package/amd/UNSAFE_Grid.css +1 -1
- package/amd/UNSAFE_Grid.js +1 -1
- package/amd/UNSAFE_Heading.css +9 -9
- package/amd/UNSAFE_Heading.js +1 -1
- package/amd/UNSAFE_HiddenAccessible.css +1 -1
- package/amd/UNSAFE_HiddenAccessible.js +1 -1
- package/amd/UNSAFE_HighlightText.css +1 -1
- package/amd/UNSAFE_HighlightText.js +1 -1
- package/amd/UNSAFE_Icon.css +21 -21
- package/amd/UNSAFE_Icon.js +1 -1
- package/amd/UNSAFE_Icons.js +1 -1
- package/amd/UNSAFE_Indexer.css +7 -7
- package/amd/UNSAFE_Indexer.js +1 -1
- package/amd/UNSAFE_InputPassword.css +1 -1
- package/amd/UNSAFE_InputPassword.js +1 -1
- package/amd/UNSAFE_InputPassword.js.map +1 -1
- package/amd/UNSAFE_InputText.css +1 -1
- package/amd/UNSAFE_InputText.js +1 -1
- package/amd/UNSAFE_Label.css +13 -13
- package/amd/UNSAFE_Label.js +1 -1
- package/amd/UNSAFE_Label.js.map +1 -1
- package/amd/UNSAFE_LabelValueLayout.css +9 -9
- package/amd/UNSAFE_LabelValueLayout.js +1 -1
- package/amd/UNSAFE_LabelValueLayout.js.map +1 -1
- package/amd/UNSAFE_Link.css +5 -5
- package/amd/UNSAFE_Link.js +1 -1
- package/amd/UNSAFE_ListItemLayout.css +9 -9
- package/amd/UNSAFE_ListItemLayout.js +1 -1
- package/amd/UNSAFE_ListView.js +1 -1
- package/amd/UNSAFE_LiveRegion.css +1 -1
- package/amd/UNSAFE_LiveRegion.js +1 -1
- package/amd/UNSAFE_LiveRegion.js.map +1 -1
- package/amd/UNSAFE_LoadMoreCollection.js +1 -1
- package/amd/UNSAFE_Menu.css +17 -17
- package/amd/UNSAFE_Menu.js +1 -1
- package/amd/UNSAFE_MessageBanner.js +1 -1
- package/amd/UNSAFE_MessageToast.css +1 -1
- package/amd/UNSAFE_MessageToast.js +1 -1
- package/amd/UNSAFE_MeterBar.css +43 -43
- package/amd/UNSAFE_MeterBar.js +1 -1
- package/amd/UNSAFE_MeterBar.js.map +1 -1
- package/amd/UNSAFE_MeterCircle.css +46 -46
- package/amd/UNSAFE_MeterCircle.js +1 -1
- package/amd/UNSAFE_Modal.css +3 -3
- package/amd/UNSAFE_Modal.js +1 -1
- package/amd/UNSAFE_NumberInputText.js +1 -1
- package/amd/UNSAFE_PrefixSuffix.css +8 -8
- package/amd/UNSAFE_PrefixSuffix.js +1 -1
- package/amd/UNSAFE_PrefixSuffix.js.map +1 -1
- package/amd/UNSAFE_ProgressBar.css +6 -6
- package/amd/UNSAFE_ProgressBar.js +1 -1
- package/amd/UNSAFE_ProgressBar.js.map +1 -1
- package/amd/UNSAFE_ProgressCircle.css +6 -6
- package/amd/UNSAFE_ProgressCircle.js +1 -1
- package/amd/UNSAFE_ProgressCircle.js.map +1 -1
- package/amd/UNSAFE_RatingGauge.css +20 -20
- package/amd/UNSAFE_RatingGauge.js +1 -1
- package/amd/UNSAFE_RatingGauge.js.map +1 -1
- package/amd/UNSAFE_SelectMultiple.css +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_Selector.css +5 -5
- package/amd/UNSAFE_Selector.js +1 -1
- package/amd/UNSAFE_Selector.js.map +1 -1
- package/amd/UNSAFE_Skeleton.css +1 -1
- package/amd/UNSAFE_Skeleton.js +1 -1
- package/amd/UNSAFE_Spacer.js +1 -1
- package/amd/UNSAFE_SplitMenuButton.css +5 -5
- package/amd/UNSAFE_SplitMenuButton.js +1 -1
- package/amd/UNSAFE_Text.css +25 -25
- package/amd/UNSAFE_Text.js +1 -1
- package/amd/UNSAFE_TextArea.css +3 -3
- package/amd/UNSAFE_TextArea.js +1 -1
- package/amd/UNSAFE_TextAreaAutosize.js +1 -1
- package/amd/UNSAFE_TextField.css +58 -58
- package/amd/UNSAFE_TextField.js +1 -1
- package/amd/UNSAFE_TextField.js.map +1 -1
- package/amd/UNSAFE_ThemedIcons.js +1 -1
- package/amd/UNSAFE_UserAssistance.css +8 -8
- package/amd/UNSAFE_UserAssistance.js +1 -1
- package/amd/UNSAFE_UserAssistance.js.map +1 -1
- package/amd/UNSAFE_View.js +1 -1
- package/amd/UNSAFE_VirtualizedListView.js +1 -1
- package/amd/{VirtualizedCollection-297a10c2.js → VirtualizedCollection-e1dc1d4d.js} +2 -2
- package/amd/{VirtualizedCollection-297a10c2.js.map → VirtualizedCollection-e1dc1d4d.js.map} +1 -1
- package/amd/{VirtualizedListView-359acba3.js → VirtualizedListView-8807f476.js} +2 -2
- package/amd/{VirtualizedListView-359acba3.js.map → VirtualizedListView-8807f476.js.map} +1 -1
- package/amd/{_curry1-b8c79089.js → _curry1-e0cd66f4.js} +1 -1
- package/amd/{_curry1-b8c79089.js.map → _curry1-e0cd66f4.js.map} +1 -1
- package/amd/_curry2-1b99ddfe.js +2 -0
- package/amd/{_curry2-52e3b69d.js.map → _curry2-1b99ddfe.js.map} +1 -1
- package/amd/_curry3-9b2d7c26.js +2 -0
- package/amd/{_curry3-9b155fdc.js.map → _curry3-9b2d7c26.js.map} +1 -1
- package/amd/_has-710e4a41.js +2 -0
- package/amd/{_has-f7daf036.js.map → _has-710e4a41.js.map} +1 -1
- package/amd/{classNames-4fa03ef2.js → classNames-ee48f57b.js} +1 -1
- package/amd/{classNames-4fa03ef2.js.map → classNames-ee48f57b.js.map} +1 -1
- package/amd/{clientHints-bf4c3a51.js → clientHints-8af07605.js} +1 -1
- package/amd/{clientHints-bf4c3a51.js.map → clientHints-8af07605.js.map} +1 -1
- package/amd/flexbox-b1f9a1f0.js +2 -0
- package/amd/{flexbox-08558092.js.map → flexbox-b1f9a1f0.js.map} +1 -1
- package/amd/flexitem-da0f34e5.js +2 -0
- package/amd/{flexitem-ed3f79c3.js.map → flexitem-da0f34e5.js.map} +1 -1
- package/amd/hooks/PRIVATE_useDvtMeterEvents.js +1 -1
- package/amd/hooks/PRIVATE_useSingleSelection.js +1 -1
- package/amd/hooks/UNSAFE_useAnimation.js +1 -1
- package/amd/hooks/UNSAFE_useFloating.js +1 -1
- package/amd/hooks/UNSAFE_useFocusWithin.js +1 -1
- package/amd/hooks/UNSAFE_useFocusableTextField.js +1 -1
- package/amd/hooks/UNSAFE_usePrefixSuffix.js +1 -1
- package/amd/hooks/UNSAFE_useTextFieldInputHandlers.js +1 -1
- package/amd/hooks/UNSAFE_useTooltip.css +4 -4
- package/amd/hooks/UNSAFE_useTooltip.js +1 -1
- package/amd/hooks/UNSAFE_useTooltip.js.map +1 -1
- package/amd/{index-d0610934.js → index-140c213a.js} +2 -2
- package/amd/{index-d0610934.js.map → index-140c213a.js.map} +1 -1
- package/amd/{index-00100f49.js → index-35690f89.js} +2 -2
- package/amd/{index-00100f49.js.map → index-35690f89.js.map} +1 -1
- package/amd/{index-c3b7e6c4.js → index-c24bc5fd.js} +1 -1
- package/amd/{index-c3b7e6c4.js.map → index-c24bc5fd.js.map} +1 -1
- package/amd/{keys-e733f329.js → keys-9f636d55.js} +2 -2
- package/amd/{keys-e733f329.js.map → keys-9f636d55.js.map} +1 -1
- package/amd/{listViewSelectionTests-9583764a.js → listViewSelectionTests-66deee7b.js} +2 -2
- package/amd/{listViewSelectionTests-9583764a.js.map → listViewSelectionTests-66deee7b.js.map} +1 -1
- package/amd/{listViewTabbableModeTests-b44d2433.js → listViewTabbableModeTests-acb40d01.js} +2 -2
- package/amd/{listViewTabbableModeTests-b44d2433.js.map → listViewTabbableModeTests-acb40d01.js.map} +1 -1
- package/amd/{listViewTestFixtures-e0342520.js → listViewTestFixtures-4a27b46e.js} +1 -1
- package/amd/{listViewTestFixtures-e0342520.js.map → listViewTestFixtures-4a27b46e.js.map} +1 -1
- package/amd/{menuTestsUtils-772f8ee2.js → menuTestsUtils-c0b774d1.js} +1 -1
- package/amd/{menuTestsUtils-772f8ee2.js.map → menuTestsUtils-c0b774d1.js.map} +1 -1
- package/amd/{stringUtils-d751fc14.js → stringUtils-064b3cbb.js} +1 -1
- package/amd/{stringUtils-d751fc14.js.map → stringUtils-064b3cbb.js.map} +1 -1
- package/amd/{testHelpers-c1012ffe.js → testHelpers-e44a79b0.js} +1 -1
- package/amd/{testHelpers-c1012ffe.js.map → testHelpers-e44a79b0.js.map} +1 -1
- package/amd/{tslib.es6-baf3cb2c.js → tslib.es6-925f910c.js} +1 -1
- package/amd/{tslib.es6-baf3cb2c.js.map → tslib.es6-925f910c.js.map} +1 -1
- package/amd/{useAnimation-b2ac75fe.js → useAnimation-002088aa.js} +2 -2
- package/amd/{useAnimation-b2ac75fe.js.map → useAnimation-002088aa.js.map} +1 -1
- package/amd/{useFocusWithin-8709d986.js → useFocusWithin-ca350665.js} +1 -1
- package/amd/{useFocusWithin-8709d986.js.map → useFocusWithin-ca350665.js.map} +1 -1
- package/amd/{useSingleSelection-eec91cf6.js → useSingleSelection-853b0de4.js} +1 -1
- package/amd/{useSingleSelection-eec91cf6.js.map → useSingleSelection-853b0de4.js.map} +1 -1
- package/amd/utils/PRIVATE_clientHints.js +1 -1
- package/amd/utils/PRIVATE_tabbableUtils.js +1 -1
- package/amd/utils/UNSAFE_classNames.js +1 -1
- package/amd/utils/UNSAFE_interpolations/boxalignment.css +15 -15
- package/amd/utils/UNSAFE_interpolations/boxalignment.js +1 -1
- package/amd/utils/UNSAFE_interpolations/boxalignment.js.map +1 -1
- package/amd/utils/UNSAFE_interpolations/dimensions.js +1 -1
- package/amd/utils/UNSAFE_interpolations/flexbox.css +7 -7
- package/amd/utils/UNSAFE_interpolations/flexbox.js +1 -1
- package/amd/utils/UNSAFE_interpolations/flexitem.css +7 -7
- package/amd/utils/UNSAFE_interpolations/flexitem.js +1 -1
- package/amd/utils/UNSAFE_interpolations/text.css +3 -3
- package/amd/utils/UNSAFE_interpolations/text.js +1 -1
- package/amd/utils/UNSAFE_interpolations/text.js.map +1 -1
- package/amd/utils/UNSAFE_logger.js +1 -1
- package/amd/utils/UNSAFE_mergeInterpolations.js +1 -1
- package/amd/utils/UNSAFE_stringUtils.js +1 -1
- package/amd/utils/UNSAFE_units.js +1 -1
- package/cjs/{Badge-8821cfa6.js → Badge-77533dbe.js} +16 -16
- package/cjs/{Badge-8821cfa6.js.map → Badge-77533dbe.js.map} +1 -1
- package/cjs/{BaseButton-2736c4df.js → BaseButton-f5073e18.js} +20 -20
- package/cjs/{BaseButton-2736c4df.js.map → BaseButton-f5073e18.js.map} +1 -1
- package/cjs/{Button-e7bafcd0.js → Button-feff77e2.js} +13 -13
- package/cjs/{Button-e7bafcd0.js.map → Button-feff77e2.js.map} +1 -1
- package/cjs/{Chip-8b7088b0.js → Chip-fc282bb0.js} +10 -10
- package/cjs/{Chip-8b7088b0.js.map → Chip-fc282bb0.js.map} +1 -1
- package/cjs/{ClearIcon-86013340.js → ClearIcon-9e1b1dce.js} +3 -3
- package/cjs/{ClearIcon-86013340.js.map → ClearIcon-9e1b1dce.js.map} +1 -1
- package/cjs/{Collection-e5992bee.js → Collection-7201124c.js} +2 -2
- package/cjs/{Collection-e5992bee.js.map → Collection-7201124c.js.map} +1 -1
- package/cjs/{ComponentMessage-226b21a3.js → ComponentMessage-96a1b221.js} +8 -8
- package/cjs/{ComponentMessage-226b21a3.js.map → ComponentMessage-96a1b221.js.map} +1 -1
- package/cjs/{ComponentMessageContainer-9e34c167.js → ComponentMessageContainer-7958fa7b.js} +5 -5
- package/cjs/{ComponentMessageContainer-9e34c167.js.map → ComponentMessageContainer-7958fa7b.js.map} +1 -1
- package/cjs/{Divider-8afef5eb.js → Divider-22deb8f8.js} +3 -3
- package/cjs/{Divider-8afef5eb.js.map → Divider-22deb8f8.js.map} +1 -1
- package/cjs/{FilePicker-fe616469.js → FilePicker-1169d0f3.js} +14 -14
- package/cjs/{FilePicker-fe616469.js.map → FilePicker-1169d0f3.js.map} +1 -1
- package/cjs/{Flex-f91ad535.js → Flex-3afbbffa.js} +8 -8
- package/cjs/{Flex-f91ad535.js.map → Flex-3afbbffa.js.map} +1 -1
- package/cjs/{Floating-39284df3.js → Floating-afc50077.js} +3 -3
- package/cjs/{Floating-39284df3.js.map → Floating-afc50077.js.map} +1 -1
- package/cjs/{FocusTrap-7ff20a61.js → FocusTrap-b921a38b.js} +5 -5
- package/cjs/{FocusTrap-7ff20a61.js.map → FocusTrap-b921a38b.js.map} +1 -1
- package/cjs/{FormControlUtils-072a60c6.js → FormControlUtils-f100aee2.js} +5 -5
- package/cjs/{FormControlUtils-072a60c6.js.map → FormControlUtils-f100aee2.js.map} +1 -1
- package/cjs/{Heading-58abd8bf.js → Heading-59094467.js} +13 -13
- package/cjs/{Heading-58abd8bf.js.map → Heading-59094467.js.map} +1 -1
- package/cjs/{HiddenAccessible-fc21982e.js → HiddenAccessible-4fa29af3.js} +3 -3
- package/cjs/{HiddenAccessible-fc21982e.js.map → HiddenAccessible-4fa29af3.js.map} +1 -1
- package/cjs/{HighlightText-29e3d224.js → HighlightText-e7ccf04d.js} +3 -3
- package/cjs/{HighlightText-29e3d224.js.map → HighlightText-e7ccf04d.js.map} +1 -1
- package/cjs/{Icon-bd1b5f72.js → Icon-a49ebedd.js} +25 -25
- package/cjs/{Icon-bd1b5f72.js.map → Icon-a49ebedd.js.map} +1 -1
- package/cjs/{Indexer-1c19ce40.js → Indexer-6f294388.js} +16 -16
- package/cjs/{Indexer-1c19ce40.js.map → Indexer-6f294388.js.map} +1 -1
- package/cjs/{InlineHelpSource-6fba4339.js → InlineHelpSource-10515ec0.js} +3 -3
- package/cjs/{InlineHelpSource-6fba4339.js.map → InlineHelpSource-10515ec0.js.map} +1 -1
- package/cjs/{Link-80c85e82.js → Link-9d6e338c.js} +8 -8
- package/cjs/{Link-80c85e82.js.map → Link-9d6e338c.js.map} +1 -1
- package/cjs/{List-bb058c64.js → List-4cbe8669.js} +23 -23
- package/cjs/{List-bb058c64.js.map → List-4cbe8669.js.map} +1 -1
- package/cjs/{ListItemTextLayout-d091de9f.js → ListItemTextLayout-d11b0d7d.js} +13 -13
- package/cjs/{ListItemTextLayout-d091de9f.js.map → ListItemTextLayout-d11b0d7d.js.map} +1 -1
- package/cjs/{ListView-e80a12bf.js → ListView-ebd0c084.js} +3 -3
- package/cjs/{ListView-e80a12bf.js.map → ListView-ebd0c084.js.map} +1 -1
- package/cjs/{LoadMoreCollection-a54586f6.js → LoadMoreCollection-800c5624.js} +3 -3
- package/cjs/{LoadMoreCollection-a54586f6.js.map → LoadMoreCollection-800c5624.js.map} +1 -1
- package/cjs/{Menu-f6e33a4e.js → Menu-69f53409.js} +6 -6
- package/cjs/{Menu-f6e33a4e.js.map → Menu-69f53409.js.map} +1 -1
- package/cjs/{MenuDivider-6f3835a8.js → MenuDivider-dcf4a12b.js} +4 -4
- package/cjs/{MenuDivider-6f3835a8.js.map → MenuDivider-dcf4a12b.js.map} +1 -1
- package/cjs/{MenuItem-a652ccf5.js → MenuItem-c5a66d75.js} +19 -19
- package/cjs/{MenuItem-a652ccf5.js.map → MenuItem-c5a66d75.js.map} +1 -1
- package/cjs/{Message.types-41952b48.js → Message.types-e76db407.js} +2 -2
- package/cjs/{Message.types-41952b48.js.map → Message.types-e76db407.js.map} +1 -1
- package/cjs/{MessageCloseButton-6c1b1792.js → MessageCloseButton-9801c85a.js} +9 -9
- package/cjs/{MessageCloseButton-6c1b1792.js.map → MessageCloseButton-9801c85a.js.map} +1 -1
- package/cjs/{MessageDetail-dea248df.js → MessageDetail-37c54079.js} +7 -7
- package/cjs/{MessageDetail-dea248df.js.map → MessageDetail-37c54079.js.map} +1 -1
- package/cjs/{MessageFormattingUtils-9134f618.js → MessageFormattingUtils-61ee2965.js} +4 -4
- package/cjs/{MessageFormattingUtils-9134f618.js.map → MessageFormattingUtils-61ee2965.js.map} +1 -1
- package/cjs/{MessageLayer-875e5e34.js → MessageLayer-216dac9e.js} +11 -11
- package/cjs/{MessageLayer-875e5e34.js.map → MessageLayer-216dac9e.js.map} +1 -1
- package/cjs/{MessageStartIcon-cb2f0a1f.js → MessageStartIcon-1ab3d2a7.js} +11 -11
- package/cjs/{MessageStartIcon-cb2f0a1f.js.map → MessageStartIcon-1ab3d2a7.js.map} +1 -1
- package/cjs/{MessageSummary-ce1d2935.js → MessageSummary-cb1056b6.js} +7 -7
- package/cjs/{MessageSummary-ce1d2935.js.map → MessageSummary-cb1056b6.js.map} +1 -1
- package/cjs/{MessageTimestamp-476fdfa5.js → MessageTimestamp-6c78b977.js} +5 -5
- package/cjs/{MessageTimestamp-476fdfa5.js.map → MessageTimestamp-6c78b977.js.map} +1 -1
- package/cjs/{MessageToast-2192efb3.js → MessageToast-e70cfeb3.js} +9 -9
- package/cjs/{MessageToast-2192efb3.js.map → MessageToast-e70cfeb3.js.map} +1 -1
- package/cjs/{MessageUtils-f86209a4.js → MessageUtils-329ed0ad.js} +3 -3
- package/cjs/{MessageUtils-f86209a4.js.map → MessageUtils-329ed0ad.js.map} +1 -1
- package/cjs/{MessagesManager-f9f769c5.js → MessagesManager-4a1d6a6e.js} +4 -4
- package/cjs/{MessagesManager-f9f769c5.js.map → MessagesManager-4a1d6a6e.js.map} +1 -1
- package/cjs/{MeterCircle-7986c449.js → MeterCircle-2b4e0b82.js} +50 -50
- package/cjs/{MeterCircle-7986c449.js.map → MeterCircle-2b4e0b82.js.map} +1 -1
- package/cjs/{Modal-e31e0296.js → Modal-5fe3d69e.js} +6 -6
- package/cjs/{Modal-e31e0296.js.map → Modal-5fe3d69e.js.map} +1 -1
- package/cjs/{NumberInputText-b155623d.js → NumberInputText-e15fe165.js} +7 -7
- package/cjs/{NumberInputText-b155623d.js.map → NumberInputText-e15fe165.js.map} +1 -1
- package/cjs/PRIVATE_Collection.js +2 -2
- package/cjs/PRIVATE_List.js +23 -23
- package/cjs/PRIVATE_Message.js +41 -41
- package/cjs/PRIVATE_Message.js.map +1 -1
- package/cjs/PRIVATE_MessageLayer.js +12 -12
- package/cjs/PRIVATE_Meter.js +2 -2
- package/cjs/PRIVATE_SelectCommon.js +54 -54
- package/cjs/PRIVATE_SelectCommon.js.map +1 -1
- package/cjs/PRIVATE_TransitionGroup.js +1 -1
- package/cjs/PRIVATE_VirtualizedCollection.js +3 -3
- package/cjs/{ReadonlyTextFieldInput-17cb23bf.js → ReadonlyTextFieldInput-c328835f.js} +13 -13
- package/cjs/{ReadonlyTextFieldInput-17cb23bf.js.map → ReadonlyTextFieldInput-c328835f.js.map} +1 -1
- package/cjs/{SelectMenuItem-b172d5f5.js → SelectMenuItem-ebd8765f.js} +5 -5
- package/cjs/{SelectMenuItem-b172d5f5.js.map → SelectMenuItem-ebd8765f.js.map} +1 -1
- package/cjs/{SelectMultiple-1d616730.js → SelectMultiple-8556e2fe.js} +8 -8
- package/cjs/{SelectMultiple-1d616730.js.map → SelectMultiple-8556e2fe.js.map} +1 -1
- package/cjs/{SelectSingle-07ad08e3.js → SelectSingle-e3256ab0.js} +4 -4
- package/cjs/{SelectSingle-07ad08e3.js.map → SelectSingle-e3256ab0.js.map} +1 -1
- package/cjs/{Skeleton-2bbb2c68.js → Skeleton-a3da3a6e.js} +5 -5
- package/cjs/{Skeleton-2bbb2c68.js.map → Skeleton-a3da3a6e.js.map} +1 -1
- package/cjs/{Spacer-5905a53f.js → Spacer-09202fe8.js} +4 -4
- package/cjs/{Spacer-5905a53f.js.map → Spacer-09202fe8.js.map} +1 -1
- package/cjs/{SplitMenuButton-3916f47b.js → SplitMenuButton-d4d6c908.js} +14 -14
- package/cjs/{SplitMenuButton-3916f47b.js.map → SplitMenuButton-d4d6c908.js.map} +1 -1
- package/cjs/{Text-6ac09c82.js → Text-17f30573.js} +28 -28
- package/cjs/{Text-6ac09c82.js.map → Text-17f30573.js.map} +1 -1
- package/cjs/{TextArea-34f96284.js → TextArea-d66ca95c.js} +8 -8
- package/cjs/{TextArea-34f96284.js.map → TextArea-d66ca95c.js.map} +1 -1
- package/cjs/{TextAreaAutosize-ee3fd9dd.js → TextAreaAutosize-bcc62f1e.js} +5 -5
- package/cjs/{TextAreaAutosize-ee3fd9dd.js.map → TextAreaAutosize-bcc62f1e.js.map} +1 -1
- package/cjs/{TextFieldInput-b42499a5.js → TextFieldInput-b7429629.js} +33 -33
- package/cjs/{TextFieldInput-b42499a5.js.map → TextFieldInput-b7429629.js.map} +1 -1
- package/cjs/UNSAFE_AspectRatio.js +8 -8
- package/cjs/UNSAFE_AspectRatio.js.map +1 -1
- package/cjs/UNSAFE_Avatar.js +11 -11
- package/cjs/UNSAFE_Avatar.js.map +1 -1
- package/cjs/UNSAFE_Badge.js +3 -3
- package/cjs/UNSAFE_BaseButton.js +9 -9
- package/cjs/UNSAFE_Button.js +10 -10
- package/cjs/UNSAFE_Center.js +11 -11
- package/cjs/UNSAFE_Chip.js +3 -3
- package/cjs/UNSAFE_Collapsible.js +26 -26
- package/cjs/UNSAFE_Collapsible.js.map +1 -1
- package/cjs/UNSAFE_Collection.js +1 -1
- package/cjs/UNSAFE_ComponentMessage.js +33 -33
- package/cjs/UNSAFE_Divider.js +7 -7
- package/cjs/UNSAFE_EmptyList.js +1 -1
- package/cjs/UNSAFE_Environment.js +1 -1
- package/cjs/UNSAFE_FilePicker.js +14 -14
- package/cjs/UNSAFE_Flex.js +11 -11
- package/cjs/UNSAFE_Floating.js +3 -3
- package/cjs/UNSAFE_FocusTrap.js +6 -6
- package/cjs/UNSAFE_Grid.js +9 -9
- package/cjs/UNSAFE_Heading.js +9 -9
- package/cjs/UNSAFE_HiddenAccessible.js +2 -2
- package/cjs/UNSAFE_HighlightText.js +2 -2
- package/cjs/UNSAFE_Icon.js +7 -7
- package/cjs/UNSAFE_Icons.js +8 -8
- package/cjs/UNSAFE_Indexer.js +16 -16
- package/cjs/UNSAFE_InputPassword.js +40 -40
- package/cjs/UNSAFE_InputText.js +39 -39
- package/cjs/UNSAFE_Label.js +16 -16
- package/cjs/UNSAFE_Label.js.map +1 -1
- package/cjs/UNSAFE_LabelValueLayout.js +20 -20
- package/cjs/UNSAFE_LabelValueLayout.js.map +1 -1
- package/cjs/UNSAFE_Layer.js +1 -1
- package/cjs/UNSAFE_Link.js +3 -3
- package/cjs/UNSAFE_ListItemLayout.js +10 -10
- package/cjs/UNSAFE_ListView.js +24 -24
- package/cjs/UNSAFE_LiveRegion.js +2 -2
- package/cjs/UNSAFE_LiveRegion.js.map +1 -1
- package/cjs/UNSAFE_LoadMoreCollection.js +3 -3
- package/cjs/UNSAFE_Menu.js +15 -15
- package/cjs/UNSAFE_MessageBanner.js +30 -30
- package/cjs/UNSAFE_MessageToast.js +33 -33
- package/cjs/UNSAFE_MeterBar.js +49 -49
- package/cjs/UNSAFE_MeterBar.js.map +1 -1
- package/cjs/UNSAFE_MeterCircle.js +7 -7
- package/cjs/UNSAFE_Modal.js +7 -7
- package/cjs/UNSAFE_NumberInputText.js +39 -39
- package/cjs/UNSAFE_PrefixSuffix.js +10 -10
- package/cjs/UNSAFE_PrefixSuffix.js.map +1 -1
- package/cjs/UNSAFE_ProgressBar.js +9 -9
- package/cjs/UNSAFE_ProgressBar.js.map +1 -1
- package/cjs/UNSAFE_ProgressCircle.js +9 -9
- package/cjs/UNSAFE_ProgressCircle.js.map +1 -1
- package/cjs/UNSAFE_RatingGauge.js +26 -26
- package/cjs/UNSAFE_RatingGauge.js.map +1 -1
- package/cjs/UNSAFE_SelectMultiple.js +47 -47
- package/cjs/UNSAFE_SelectSingle.js +46 -46
- package/cjs/UNSAFE_Selector.js +22 -22
- package/cjs/UNSAFE_Selector.js.map +1 -1
- package/cjs/UNSAFE_Skeleton.js +8 -8
- package/cjs/UNSAFE_Spacer.js +10 -10
- package/cjs/UNSAFE_SplitMenuButton.js +22 -22
- package/cjs/UNSAFE_Text.js +8 -8
- package/cjs/UNSAFE_TextArea.js +39 -39
- package/cjs/UNSAFE_TextAreaAutosize.js +40 -40
- package/cjs/UNSAFE_TextField.js +35 -35
- package/cjs/UNSAFE_TextField.js.map +1 -1
- package/cjs/UNSAFE_ThemedIcons.js +9 -9
- package/cjs/UNSAFE_UserAssistance.js +41 -41
- package/cjs/UNSAFE_UserAssistance.js.map +1 -1
- package/cjs/UNSAFE_View.js +9 -9
- package/cjs/UNSAFE_VirtualizedListView.js +24 -24
- package/cjs/UNSAFE_WindowOverlay.js +1 -1
- package/cjs/{VirtualizedCollection-75ef82e2.js → VirtualizedCollection-5364d049.js} +3 -3
- package/cjs/{VirtualizedCollection-75ef82e2.js.map → VirtualizedCollection-5364d049.js.map} +1 -1
- package/cjs/{VirtualizedListView-ebdb8a85.js → VirtualizedListView-8b4a189a.js} +3 -3
- package/cjs/{VirtualizedListView-ebdb8a85.js.map → VirtualizedListView-8b4a189a.js.map} +1 -1
- package/cjs/{_curry1-d7c967d7.js → _curry1-929fa479.js} +2 -2
- package/cjs/{_curry1-d7c967d7.js.map → _curry1-929fa479.js.map} +1 -1
- package/cjs/{_curry2-b842c9f6.js → _curry2-ad418b8f.js} +3 -3
- package/cjs/{_curry2-b842c9f6.js.map → _curry2-ad418b8f.js.map} +1 -1
- package/cjs/{_curry3-ae657000.js → _curry3-de547f40.js} +4 -4
- package/cjs/{_curry3-ae657000.js.map → _curry3-de547f40.js.map} +1 -1
- package/cjs/{_has-e1033a99.js → _has-bd83a5af.js} +3 -3
- package/cjs/{_has-e1033a99.js.map → _has-bd83a5af.js.map} +1 -1
- package/cjs/{classNames-0b5e7ec9.js → classNames-74b1faa1.js} +2 -2
- package/cjs/{classNames-0b5e7ec9.js.map → classNames-74b1faa1.js.map} +1 -1
- package/cjs/{clientHints-e1bf0c4c.js → clientHints-f08e6824.js} +2 -2
- package/cjs/{clientHints-e1bf0c4c.js.map → clientHints-f08e6824.js.map} +1 -1
- package/cjs/{flexbox-6ad70ff1.js → flexbox-1749f9a9.js} +10 -10
- package/cjs/{flexbox-6ad70ff1.js.map → flexbox-1749f9a9.js.map} +1 -1
- package/cjs/{flexitem-521487bd.js → flexitem-f0be1fa1.js} +10 -10
- package/cjs/{flexitem-521487bd.js.map → flexitem-f0be1fa1.js.map} +1 -1
- package/cjs/hooks/PRIVATE_useCollectionFocusRing.js +1 -1
- package/cjs/hooks/PRIVATE_useCurrentKey.js +1 -1
- package/cjs/hooks/PRIVATE_useDvtMeterEvents.js +6 -6
- package/cjs/hooks/PRIVATE_useItemAction.js +1 -1
- package/cjs/hooks/PRIVATE_useMessagesFocusManager.js +1 -1
- package/cjs/hooks/PRIVATE_useSelection.js +1 -1
- package/cjs/hooks/PRIVATE_useSingleSelection.js +2 -2
- package/cjs/hooks/PRIVATE_useTabbableModeSet.js +1 -1
- package/cjs/hooks/UNSAFE_useActionable.js +1 -1
- package/cjs/hooks/UNSAFE_useActive.js +1 -1
- package/cjs/hooks/UNSAFE_useAnimation.js +3 -3
- package/cjs/hooks/UNSAFE_useBreakpointValues.js +1 -1
- package/cjs/hooks/UNSAFE_useBreakpoints.js +1 -1
- package/cjs/hooks/UNSAFE_useClearIcon.js +1 -1
- package/cjs/hooks/UNSAFE_useColorScheme.js +1 -1
- package/cjs/hooks/UNSAFE_useContainerBreakpointValues.js +1 -1
- package/cjs/hooks/UNSAFE_useContainerBreakpoints.js +1 -1
- package/cjs/hooks/UNSAFE_useCurrentValueReducer.js +1 -1
- package/cjs/hooks/UNSAFE_useDebounce.js +1 -1
- package/cjs/hooks/UNSAFE_useFloating.js +2 -2
- package/cjs/hooks/UNSAFE_useFocus.js +1 -1
- package/cjs/hooks/UNSAFE_useFocusWithin.js +2 -2
- package/cjs/hooks/UNSAFE_useFocusableTextField.js +3 -3
- package/cjs/hooks/UNSAFE_useFormContext.js +1 -1
- package/cjs/hooks/UNSAFE_useFormFieldContext.js +1 -1
- package/cjs/hooks/UNSAFE_useFormVariantContext.js +1 -1
- package/cjs/hooks/UNSAFE_useHover.js +1 -1
- package/cjs/hooks/UNSAFE_useId.js +1 -1
- package/cjs/hooks/UNSAFE_useLengthFilter.js +1 -1
- package/cjs/hooks/UNSAFE_useLoadingIndicatorTimer.js +1 -1
- package/cjs/hooks/UNSAFE_useLongPress.js +1 -1
- package/cjs/hooks/UNSAFE_useMessagesContext.js +1 -1
- package/cjs/hooks/UNSAFE_useOutsideClick.js +1 -1
- package/cjs/hooks/UNSAFE_usePan.js +1 -1
- package/cjs/hooks/UNSAFE_usePrefixSuffix.js +2 -2
- package/cjs/hooks/UNSAFE_usePress.js +1 -1
- package/cjs/hooks/UNSAFE_useScale.js +1 -1
- package/cjs/hooks/UNSAFE_useSwipe.js +1 -1
- package/cjs/hooks/UNSAFE_useTabbableMode.js +1 -1
- package/cjs/hooks/UNSAFE_useTap.js +1 -1
- package/cjs/hooks/UNSAFE_useTextField.js +1 -1
- package/cjs/hooks/UNSAFE_useTextFieldInputHandlers.js +2 -2
- package/cjs/hooks/UNSAFE_useTheme.js +1 -1
- package/cjs/hooks/UNSAFE_useTimer.js +1 -1
- package/cjs/hooks/UNSAFE_useToggle.js +1 -1
- package/cjs/hooks/UNSAFE_useTooltip.js +10 -10
- package/cjs/hooks/UNSAFE_useTooltip.js.map +1 -1
- package/cjs/hooks/UNSAFE_useTouch.js +1 -1
- package/cjs/hooks/UNSAFE_useTranslationBundle.js +1 -1
- package/cjs/hooks/UNSAFE_useUncontrolledState.js +1 -1
- package/cjs/hooks/UNSAFE_useUser.js +1 -1
- package/cjs/hooks/UNSAFE_useViewportIntersect.js +1 -1
- package/cjs/{index-153973bc.js → index-3d1af0d6.js} +3 -3
- package/cjs/{index-153973bc.js.map → index-3d1af0d6.js.map} +1 -1
- package/cjs/{index-c5842a02.js → index-61432a7c.js} +2 -2
- package/cjs/{index-c5842a02.js.map → index-61432a7c.js.map} +1 -1
- package/cjs/{index-78030966.js → index-83e44763.js} +3 -3
- package/cjs/{index-78030966.js.map → index-83e44763.js.map} +1 -1
- package/cjs/{keys-f70c2efe.js → keys-aa6a47f6.js} +4 -4
- package/cjs/{keys-f70c2efe.js.map → keys-aa6a47f6.js.map} +1 -1
- package/cjs/{listViewSelectionTests-7726fc3a.js → listViewSelectionTests-99bed972.js} +4 -4
- package/cjs/{listViewSelectionTests-7726fc3a.js.map → listViewSelectionTests-99bed972.js.map} +1 -1
- package/cjs/{listViewTabbableModeTests-d5cf3561.js → listViewTabbableModeTests-721aa316.js} +4 -4
- package/cjs/{listViewTabbableModeTests-d5cf3561.js.map → listViewTabbableModeTests-721aa316.js.map} +1 -1
- package/cjs/{listViewTestFixtures-1cb937c9.js → listViewTestFixtures-37a6f8c3.js} +2 -2
- package/cjs/{listViewTestFixtures-1cb937c9.js.map → listViewTestFixtures-37a6f8c3.js.map} +1 -1
- package/cjs/{menuTestsUtils-2180af82.js → menuTestsUtils-f80984f6.js} +2 -2
- package/cjs/{menuTestsUtils-2180af82.js.map → menuTestsUtils-f80984f6.js.map} +1 -1
- package/cjs/resources/nls/ar/bundle.js +1 -1
- package/cjs/resources/nls/ar-XB/bundle.js +1 -1
- package/cjs/resources/nls/bg/bundle.js +1 -1
- package/cjs/resources/nls/bs/bundle.js +1 -1
- package/cjs/resources/nls/bs-Cyrl/bundle.js +1 -1
- package/cjs/resources/nls/bundle.js +1 -1
- package/cjs/resources/nls/cs/bundle.js +1 -1
- package/cjs/resources/nls/da/bundle.js +1 -1
- package/cjs/resources/nls/de/bundle.js +1 -1
- package/cjs/resources/nls/el/bundle.js +1 -1
- package/cjs/resources/nls/en/bundle.js +1 -1
- package/cjs/resources/nls/en-XA/bundle.js +1 -1
- package/cjs/resources/nls/en-XC/bundle.js +1 -1
- package/cjs/resources/nls/es/bundle.js +1 -1
- package/cjs/resources/nls/et/bundle.js +1 -1
- package/cjs/resources/nls/fi/bundle.js +1 -1
- package/cjs/resources/nls/fr/bundle.js +1 -1
- package/cjs/resources/nls/fr-CA/bundle.js +1 -1
- package/cjs/resources/nls/he/bundle.js +1 -1
- package/cjs/resources/nls/hr/bundle.js +1 -1
- package/cjs/resources/nls/hu/bundle.js +1 -1
- package/cjs/resources/nls/is/bundle.js +1 -1
- package/cjs/resources/nls/it/bundle.js +1 -1
- package/cjs/resources/nls/ja/bundle.js +1 -1
- package/cjs/resources/nls/ko/bundle.js +1 -1
- package/cjs/resources/nls/lt/bundle.js +1 -1
- package/cjs/resources/nls/lv/bundle.js +1 -1
- package/cjs/resources/nls/ms/bundle.js +1 -1
- package/cjs/resources/nls/nl/bundle.js +1 -1
- package/cjs/resources/nls/no/bundle.js +1 -1
- package/cjs/resources/nls/pl/bundle.js +1 -1
- package/cjs/resources/nls/pt/bundle.js +1 -1
- package/cjs/resources/nls/pt-PT/bundle.js +1 -1
- package/cjs/resources/nls/ro/bundle.js +1 -1
- package/cjs/resources/nls/ru/bundle.js +1 -1
- package/cjs/resources/nls/sk/bundle.js +1 -1
- package/cjs/resources/nls/sl/bundle.js +1 -1
- package/cjs/resources/nls/sr/bundle.js +1 -1
- package/cjs/resources/nls/sr-Latn/bundle.js +1 -1
- package/cjs/resources/nls/supportedLocales.js +1 -1
- package/cjs/resources/nls/sv/bundle.js +1 -1
- package/cjs/resources/nls/th/bundle.js +1 -1
- package/cjs/resources/nls/tr/bundle.js +1 -1
- package/cjs/resources/nls/uk/bundle.js +1 -1
- package/cjs/resources/nls/vi/bundle.js +1 -1
- package/cjs/resources/nls/zh-Hans/bundle.js +1 -1
- package/cjs/resources/nls/zh-Hant/bundle.js +1 -1
- package/cjs/{stringUtils-f557225b.js → stringUtils-f58c4e50.js} +2 -2
- package/cjs/{stringUtils-f557225b.js.map → stringUtils-f58c4e50.js.map} +1 -1
- package/cjs/{testHelpers-4eae5f18.js → testHelpers-eb0845df.js} +2 -2
- package/cjs/{testHelpers-4eae5f18.js.map → testHelpers-eb0845df.js.map} +1 -1
- package/cjs/translationBundle.js +1 -1
- package/cjs/{tslib.es6-af5a0e61.js → tslib.es6-f2a4e02f.js} +2 -2
- package/cjs/{tslib.es6-af5a0e61.js.map → tslib.es6-f2a4e02f.js.map} +1 -1
- package/cjs/{useAnimation-de52a08d.js → useAnimation-49f08a98.js} +3 -3
- package/cjs/{useAnimation-de52a08d.js.map → useAnimation-49f08a98.js.map} +1 -1
- package/cjs/{useFocusWithin-44b2f28d.js → useFocusWithin-05b47c24.js} +2 -2
- package/cjs/{useFocusWithin-44b2f28d.js.map → useFocusWithin-05b47c24.js.map} +1 -1
- package/cjs/{useSingleSelection-88ff60ce.js → useSingleSelection-7d25635d.js} +2 -2
- package/cjs/{useSingleSelection-88ff60ce.js.map → useSingleSelection-7d25635d.js.map} +1 -1
- package/cjs/utils/PRIVATE_clientHints.js +2 -2
- package/cjs/utils/PRIVATE_collectionUtils.js +1 -1
- package/cjs/utils/PRIVATE_dvtTestUtils.js +1 -1
- package/cjs/utils/PRIVATE_floatingUtils.js +1 -1
- package/cjs/utils/PRIVATE_meterUtils.js +1 -1
- package/cjs/utils/PRIVATE_refUtils.js +1 -1
- package/cjs/utils/PRIVATE_tabbableUtils.js +4 -4
- package/cjs/utils/PRIVATE_timer.js +1 -1
- package/cjs/utils/UNSAFE_arrayUtils.js +1 -1
- package/cjs/utils/UNSAFE_attributeUtils.js +1 -1
- package/cjs/utils/UNSAFE_classNames.js +2 -2
- package/cjs/utils/UNSAFE_componentUtils.js +1 -1
- package/cjs/utils/UNSAFE_dataProvider.js +1 -1
- package/cjs/utils/UNSAFE_filePickerUtils.js +1 -1
- package/cjs/utils/UNSAFE_getLocale.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/aria.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/borders.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/boxalignment.js +19 -19
- package/cjs/utils/UNSAFE_interpolations/boxalignment.js.map +1 -1
- package/cjs/utils/UNSAFE_interpolations/colors.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/dimensions.js +2 -2
- package/cjs/utils/UNSAFE_interpolations/flexbox.js +5 -5
- package/cjs/utils/UNSAFE_interpolations/flexitem.js +5 -5
- package/cjs/utils/UNSAFE_interpolations/grid.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/griditem.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/padding.js +1 -1
- package/cjs/utils/UNSAFE_interpolations/text.js +7 -7
- package/cjs/utils/UNSAFE_interpolations/text.js.map +1 -1
- package/cjs/utils/UNSAFE_keys.js +1 -1
- package/cjs/utils/UNSAFE_lengthFilter.js +1 -1
- package/cjs/utils/UNSAFE_logger.js +3 -3
- package/cjs/utils/UNSAFE_matchTranslationBundle.js +1 -1
- package/cjs/utils/UNSAFE_mergeInterpolations.js +6 -6
- package/cjs/utils/UNSAFE_mergeProps.js +1 -1
- package/cjs/utils/UNSAFE_meterTypes.js +1 -1
- package/cjs/utils/UNSAFE_roles.js +1 -1
- package/cjs/utils/UNSAFE_selectUtils.js +1 -1
- package/cjs/utils/UNSAFE_size.js +1 -1
- package/cjs/utils/UNSAFE_soundUtils.js +1 -1
- package/cjs/utils/UNSAFE_stringUtils.js +2 -2
- package/cjs/utils/UNSAFE_typeUtils.js +1 -1
- package/cjs/utils/UNSAFE_units.js +2 -2
- package/cjs/utils/UNSAFE_valueUpdateDetail.js +1 -1
- package/es/{ClearIcon-fbc63558.js → ClearIcon-ed6494d1.js} +3 -3
- package/es/{ClearIcon-fbc63558.js.map → ClearIcon-ed6494d1.js.map} +1 -1
- package/es/{LoadMoreCollection-ec6aa3f6.js → LoadMoreCollection-cf7aad2c.js} +2 -2
- package/es/{LoadMoreCollection-ec6aa3f6.js.map → LoadMoreCollection-cf7aad2c.js.map} +1 -1
- package/es/PRIVATE_Collection.js +1 -1
- package/es/PRIVATE_List.css +15 -15
- package/es/PRIVATE_List.js +24 -24
- package/es/PRIVATE_List.js.map +1 -1
- package/es/PRIVATE_Message.css +27 -27
- package/es/PRIVATE_Message.js +35 -35
- package/es/PRIVATE_Message.js.map +1 -1
- package/es/PRIVATE_MessageLayer.css +7 -7
- package/es/PRIVATE_MessageLayer.js +14 -14
- package/es/PRIVATE_MessageLayer.js.map +1 -1
- package/es/PRIVATE_Meter.js +2 -2
- package/es/PRIVATE_SelectCommon.css +13 -13
- package/es/PRIVATE_SelectCommon.js +22 -22
- package/es/PRIVATE_SelectCommon.js.map +1 -1
- package/es/PRIVATE_TransitionGroup.js +1 -1
- package/es/PRIVATE_VirtualizedCollection.js +1 -1
- package/es/UNSAFE_AspectRatio.css +1 -1
- package/es/UNSAFE_AspectRatio.js +7 -7
- package/es/UNSAFE_AspectRatio.js.map +1 -1
- package/es/UNSAFE_Avatar.css +8 -8
- package/es/UNSAFE_Avatar.js +10 -10
- package/es/UNSAFE_Avatar.js.map +1 -1
- package/es/UNSAFE_Badge.css +13 -13
- package/es/UNSAFE_Badge.js +14 -14
- package/es/UNSAFE_Badge.js.map +1 -1
- package/es/UNSAFE_BaseButton.css +15 -15
- package/es/UNSAFE_BaseButton.js +21 -21
- package/es/UNSAFE_BaseButton.js.map +1 -1
- package/es/UNSAFE_Button.css +8 -8
- package/es/UNSAFE_Button.js +14 -14
- package/es/UNSAFE_Button.js.map +1 -1
- package/es/UNSAFE_Center.js +7 -7
- package/es/UNSAFE_Chip.css +7 -7
- package/es/UNSAFE_Chip.js +8 -8
- package/es/UNSAFE_Chip.js.map +1 -1
- package/es/UNSAFE_Collapsible.css +8 -8
- package/es/UNSAFE_Collapsible.js +16 -16
- package/es/UNSAFE_Collapsible.js.map +1 -1
- package/es/UNSAFE_Collection.js +1 -1
- package/es/UNSAFE_ComponentMessage.css +2 -2
- package/es/UNSAFE_ComponentMessage.js +10 -10
- package/es/UNSAFE_ComponentMessage.js.map +1 -1
- package/es/UNSAFE_Divider.css +1 -1
- package/es/UNSAFE_Divider.js +6 -6
- package/es/UNSAFE_EmptyList.js +1 -1
- package/es/UNSAFE_Environment.js +1 -1
- package/es/UNSAFE_FilePicker.css +6 -6
- package/es/UNSAFE_FilePicker.js +13 -13
- package/es/UNSAFE_FilePicker.js.map +1 -1
- package/es/UNSAFE_Flex.css +2 -2
- package/es/UNSAFE_Flex.js +9 -9
- package/es/UNSAFE_Flex.js.map +1 -1
- package/es/UNSAFE_Floating.js +2 -2
- package/es/UNSAFE_FocusTrap.css +2 -2
- package/es/UNSAFE_FocusTrap.js +6 -6
- package/es/UNSAFE_FocusTrap.js.map +1 -1
- package/es/UNSAFE_Grid.css +1 -1
- package/es/UNSAFE_Grid.js +8 -8
- package/es/UNSAFE_Heading.css +9 -9
- package/es/UNSAFE_Heading.js +16 -16
- package/es/UNSAFE_Heading.js.map +1 -1
- package/es/UNSAFE_HiddenAccessible.css +1 -1
- package/es/UNSAFE_HiddenAccessible.js +2 -2
- package/es/UNSAFE_HighlightText.css +1 -1
- package/es/UNSAFE_HighlightText.js +2 -2
- package/es/UNSAFE_HighlightText.js.map +1 -1
- package/es/UNSAFE_Icon.css +21 -21
- package/es/UNSAFE_Icon.js +24 -24
- package/es/UNSAFE_Icon.js.map +1 -1
- package/es/UNSAFE_Icons.js +3 -3
- package/es/UNSAFE_Indexer.css +7 -7
- package/es/UNSAFE_Indexer.js +15 -15
- package/es/UNSAFE_Indexer.js.map +1 -1
- package/es/UNSAFE_InputPassword.css +1 -1
- package/es/UNSAFE_InputPassword.js +10 -10
- package/es/UNSAFE_InputText.css +1 -1
- package/es/UNSAFE_InputText.js +9 -9
- package/es/UNSAFE_Label.css +13 -13
- package/es/UNSAFE_Label.js +15 -15
- package/es/UNSAFE_Label.js.map +1 -1
- package/es/UNSAFE_LabelValueLayout.css +9 -9
- package/es/UNSAFE_LabelValueLayout.js +16 -16
- package/es/UNSAFE_LabelValueLayout.js.map +1 -1
- package/es/UNSAFE_Layer.js +1 -1
- package/es/UNSAFE_Link.css +5 -5
- package/es/UNSAFE_Link.js +6 -6
- package/es/UNSAFE_Link.js.map +1 -1
- package/es/UNSAFE_ListItemLayout.css +9 -9
- package/es/UNSAFE_ListItemLayout.js +16 -16
- package/es/UNSAFE_ListItemLayout.js.map +1 -1
- package/es/UNSAFE_ListView.js +9 -9
- package/es/UNSAFE_LiveRegion.css +1 -1
- package/es/UNSAFE_LiveRegion.js +2 -2
- package/es/UNSAFE_LiveRegion.js.map +1 -1
- package/es/UNSAFE_LoadMoreCollection.js +2 -2
- package/es/UNSAFE_Menu.css +17 -17
- package/es/UNSAFE_Menu.js +24 -24
- package/es/UNSAFE_Menu.js.map +1 -1
- package/es/UNSAFE_MessageBanner.js +8 -8
- package/es/UNSAFE_MessageToast.css +1 -1
- package/es/UNSAFE_MessageToast.js +9 -9
- package/es/UNSAFE_MeterBar.css +43 -43
- package/es/UNSAFE_MeterBar.js +46 -46
- package/es/UNSAFE_MeterBar.js.map +1 -1
- package/es/UNSAFE_MeterCircle.css +46 -46
- package/es/UNSAFE_MeterCircle.js +49 -49
- package/es/UNSAFE_MeterCircle.js.map +1 -1
- package/es/UNSAFE_Modal.css +3 -3
- package/es/UNSAFE_Modal.js +7 -7
- package/es/UNSAFE_NumberInputText.js +8 -8
- package/es/UNSAFE_PrefixSuffix.css +8 -8
- package/es/UNSAFE_PrefixSuffix.js +9 -9
- package/es/UNSAFE_PrefixSuffix.js.map +1 -1
- package/es/UNSAFE_ProgressBar.css +6 -6
- package/es/UNSAFE_ProgressBar.js +8 -8
- package/es/UNSAFE_ProgressBar.js.map +1 -1
- package/es/UNSAFE_ProgressCircle.css +6 -6
- package/es/UNSAFE_ProgressCircle.js +8 -8
- package/es/UNSAFE_ProgressCircle.js.map +1 -1
- package/es/UNSAFE_RatingGauge.css +20 -20
- package/es/UNSAFE_RatingGauge.js +23 -23
- package/es/UNSAFE_RatingGauge.js.map +1 -1
- package/es/UNSAFE_SelectMultiple.css +1 -1
- package/es/UNSAFE_SelectMultiple.js +10 -10
- package/es/UNSAFE_SelectMultiple.js.map +1 -1
- package/es/UNSAFE_SelectSingle.js +9 -9
- package/es/UNSAFE_Selector.css +5 -5
- package/es/UNSAFE_Selector.js +13 -13
- package/es/UNSAFE_Selector.js.map +1 -1
- package/es/UNSAFE_Skeleton.css +1 -1
- package/es/UNSAFE_Skeleton.js +7 -7
- package/es/UNSAFE_Spacer.js +7 -7
- package/es/UNSAFE_SplitMenuButton.css +5 -5
- package/es/UNSAFE_SplitMenuButton.js +12 -12
- package/es/UNSAFE_SplitMenuButton.js.map +1 -1
- package/es/UNSAFE_Text.css +25 -25
- package/es/UNSAFE_Text.js +31 -31
- package/es/UNSAFE_Text.js.map +1 -1
- package/es/UNSAFE_TextArea.css +3 -3
- package/es/UNSAFE_TextArea.js +11 -11
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +8 -8
- package/es/UNSAFE_TextField.css +58 -58
- package/es/UNSAFE_TextField.js +65 -65
- package/es/UNSAFE_TextField.js.map +1 -1
- package/es/UNSAFE_ThemedIcons.js +3 -3
- package/es/UNSAFE_UserAssistance.css +8 -8
- package/es/UNSAFE_UserAssistance.js +16 -16
- package/es/UNSAFE_UserAssistance.js.map +1 -1
- package/es/UNSAFE_View.js +7 -7
- package/es/UNSAFE_VirtualizedListView.js +9 -9
- package/es/UNSAFE_WindowOverlay.js +1 -1
- package/es/{_curry1-657e284f.js → _curry1-5d38e450.js} +2 -2
- package/es/{_curry1-657e284f.js.map → _curry1-5d38e450.js.map} +1 -1
- package/es/{_curry2-51415181.js → _curry2-a1037f65.js} +3 -3
- package/es/{_curry2-51415181.js.map → _curry2-a1037f65.js.map} +1 -1
- package/es/{_curry3-1f707fb6.js → _curry3-ef528106.js} +4 -4
- package/es/{_curry3-1f707fb6.js.map → _curry3-ef528106.js.map} +1 -1
- package/es/{_has-9ead1356.js → _has-37d50195.js} +3 -3
- package/es/{_has-9ead1356.js.map → _has-37d50195.js.map} +1 -1
- package/es/hooks/PRIVATE_useCollectionFocusRing.js +1 -1
- package/es/hooks/PRIVATE_useCurrentKey.js +1 -1
- package/es/hooks/PRIVATE_useDvtMeterEvents.js +3 -3
- package/es/hooks/PRIVATE_useItemAction.js +1 -1
- package/es/hooks/PRIVATE_useMessagesFocusManager.js +1 -1
- package/es/hooks/PRIVATE_useSelection.js +1 -1
- package/es/hooks/PRIVATE_useSingleSelection.js +2 -2
- package/es/hooks/PRIVATE_useTabbableModeSet.js +1 -1
- package/es/hooks/UNSAFE_useActionable.js +1 -1
- package/es/hooks/UNSAFE_useActive.js +1 -1
- package/es/hooks/UNSAFE_useAnimation.js +2 -2
- package/es/hooks/UNSAFE_useBreakpointValues.js +1 -1
- package/es/hooks/UNSAFE_useBreakpoints.js +1 -1
- package/es/hooks/UNSAFE_useClearIcon.js +1 -1
- package/es/hooks/UNSAFE_useColorScheme.js +1 -1
- package/es/hooks/UNSAFE_useContainerBreakpointValues.js +1 -1
- package/es/hooks/UNSAFE_useContainerBreakpoints.js +1 -1
- package/es/hooks/UNSAFE_useCurrentValueReducer.js +1 -1
- package/es/hooks/UNSAFE_useDebounce.js +1 -1
- package/es/hooks/UNSAFE_useFloating.js +2 -2
- package/es/hooks/UNSAFE_useFocus.js +1 -1
- package/es/hooks/UNSAFE_useFocusWithin.js +1 -1
- package/es/hooks/UNSAFE_useFocusableTextField.js +2 -2
- package/es/hooks/UNSAFE_useFormContext.js +1 -1
- package/es/hooks/UNSAFE_useFormFieldContext.js +1 -1
- package/es/hooks/UNSAFE_useFormVariantContext.js +1 -1
- package/es/hooks/UNSAFE_useHover.js +1 -1
- package/es/hooks/UNSAFE_useId.js +1 -1
- package/es/hooks/UNSAFE_useLengthFilter.js +1 -1
- package/es/hooks/UNSAFE_useLoadingIndicatorTimer.js +1 -1
- package/es/hooks/UNSAFE_useLongPress.js +1 -1
- package/es/hooks/UNSAFE_useMessagesContext.js +1 -1
- package/es/hooks/UNSAFE_useOutsideClick.js +1 -1
- package/es/hooks/UNSAFE_usePan.js +1 -1
- package/es/hooks/UNSAFE_usePrefixSuffix.js +1 -1
- package/es/hooks/UNSAFE_usePress.js +1 -1
- package/es/hooks/UNSAFE_useScale.js +1 -1
- package/es/hooks/UNSAFE_useSwipe.js +1 -1
- package/es/hooks/UNSAFE_useTabbableMode.js +1 -1
- package/es/hooks/UNSAFE_useTap.js +1 -1
- package/es/hooks/UNSAFE_useTextField.js +1 -1
- package/es/hooks/UNSAFE_useTextFieldInputHandlers.js +1 -1
- package/es/hooks/UNSAFE_useTheme.js +1 -1
- package/es/hooks/UNSAFE_useTimer.js +1 -1
- package/es/hooks/UNSAFE_useToggle.js +1 -1
- package/es/hooks/UNSAFE_useTooltip.css +4 -4
- package/es/hooks/UNSAFE_useTooltip.js +7 -7
- package/es/hooks/UNSAFE_useTooltip.js.map +1 -1
- package/es/hooks/UNSAFE_useTouch.js +1 -1
- package/es/hooks/UNSAFE_useTranslationBundle.js +1 -1
- package/es/hooks/UNSAFE_useUncontrolledState.js +1 -1
- package/es/hooks/UNSAFE_useUser.js +1 -1
- package/es/hooks/UNSAFE_useViewportIntersect.js +1 -1
- package/es/{index-cd6b346a.js → index-9b59ad75.js} +2 -2
- package/es/{index-cd6b346a.js.map → index-9b59ad75.js.map} +1 -1
- package/es/{keys-338589a1.js → keys-99dfc798.js} +4 -4
- package/es/{keys-338589a1.js.map → keys-99dfc798.js.map} +1 -1
- package/es/resources/nls/ar/bundle.js +1 -1
- package/es/resources/nls/ar-XB/bundle.js +1 -1
- package/es/resources/nls/bg/bundle.js +1 -1
- package/es/resources/nls/bs/bundle.js +1 -1
- package/es/resources/nls/bs-Cyrl/bundle.js +1 -1
- package/es/resources/nls/bundle.js +1 -1
- package/es/resources/nls/cs/bundle.js +1 -1
- package/es/resources/nls/da/bundle.js +1 -1
- package/es/resources/nls/de/bundle.js +1 -1
- package/es/resources/nls/el/bundle.js +1 -1
- package/es/resources/nls/en/bundle.js +1 -1
- package/es/resources/nls/en-XA/bundle.js +1 -1
- package/es/resources/nls/en-XC/bundle.js +1 -1
- package/es/resources/nls/es/bundle.js +1 -1
- package/es/resources/nls/et/bundle.js +1 -1
- package/es/resources/nls/fi/bundle.js +1 -1
- package/es/resources/nls/fr/bundle.js +1 -1
- package/es/resources/nls/fr-CA/bundle.js +1 -1
- package/es/resources/nls/he/bundle.js +1 -1
- package/es/resources/nls/hr/bundle.js +1 -1
- package/es/resources/nls/hu/bundle.js +1 -1
- package/es/resources/nls/is/bundle.js +1 -1
- package/es/resources/nls/it/bundle.js +1 -1
- package/es/resources/nls/ja/bundle.js +1 -1
- package/es/resources/nls/ko/bundle.js +1 -1
- package/es/resources/nls/lt/bundle.js +1 -1
- package/es/resources/nls/lv/bundle.js +1 -1
- package/es/resources/nls/ms/bundle.js +1 -1
- package/es/resources/nls/nl/bundle.js +1 -1
- package/es/resources/nls/no/bundle.js +1 -1
- package/es/resources/nls/pl/bundle.js +1 -1
- package/es/resources/nls/pt/bundle.js +1 -1
- package/es/resources/nls/pt-PT/bundle.js +1 -1
- package/es/resources/nls/ro/bundle.js +1 -1
- package/es/resources/nls/ru/bundle.js +1 -1
- package/es/resources/nls/sk/bundle.js +1 -1
- package/es/resources/nls/sl/bundle.js +1 -1
- package/es/resources/nls/sr/bundle.js +1 -1
- package/es/resources/nls/sr-Latn/bundle.js +1 -1
- package/es/resources/nls/supportedLocales.js +1 -1
- package/es/resources/nls/sv/bundle.js +1 -1
- package/es/resources/nls/th/bundle.js +1 -1
- package/es/resources/nls/tr/bundle.js +1 -1
- package/es/resources/nls/uk/bundle.js +1 -1
- package/es/resources/nls/vi/bundle.js +1 -1
- package/es/resources/nls/zh-Hans/bundle.js +1 -1
- package/es/resources/nls/zh-Hant/bundle.js +1 -1
- package/es/translationBundle.js +1 -1
- package/es/{tslib.es6-2f74e2cc.js → tslib.es6-64463826.js} +2 -2
- package/es/{tslib.es6-2f74e2cc.js.map → tslib.es6-64463826.js.map} +1 -1
- package/es/{useSingleSelection-3a565428.js → useSingleSelection-eec0e9e9.js} +2 -2
- package/es/{useSingleSelection-3a565428.js.map → useSingleSelection-eec0e9e9.js.map} +1 -1
- package/es/utils/PRIVATE_clientHints.js +1 -1
- package/es/utils/PRIVATE_collectionUtils.js +1 -1
- package/es/utils/PRIVATE_dvtTestUtils.js +1 -1
- package/es/utils/PRIVATE_floatingUtils.js +1 -1
- package/es/utils/PRIVATE_meterUtils.js +1 -1
- package/es/utils/PRIVATE_refUtils.js +1 -1
- package/es/utils/PRIVATE_tabbableUtils.js +4 -4
- package/es/utils/PRIVATE_timer.js +1 -1
- package/es/utils/UNSAFE_arrayUtils.js +1 -1
- package/es/utils/UNSAFE_attributeUtils.js +1 -1
- package/es/utils/UNSAFE_classNames.js +1 -1
- package/es/utils/UNSAFE_componentUtils.js +1 -1
- package/es/utils/UNSAFE_dataProvider.js +1 -1
- package/es/utils/UNSAFE_filePickerUtils.js +1 -1
- package/es/utils/UNSAFE_getLocale.js +1 -1
- package/es/utils/UNSAFE_interpolations/aria.js +1 -1
- package/es/utils/UNSAFE_interpolations/borders.js +1 -1
- package/es/utils/UNSAFE_interpolations/boxalignment.css +15 -15
- package/es/utils/UNSAFE_interpolations/boxalignment.js +19 -19
- package/es/utils/UNSAFE_interpolations/boxalignment.js.map +1 -1
- package/es/utils/UNSAFE_interpolations/colors.js +1 -1
- package/es/utils/UNSAFE_interpolations/dimensions.js +2 -2
- package/es/utils/UNSAFE_interpolations/flexbox.css +7 -7
- package/es/utils/UNSAFE_interpolations/flexbox.js +11 -11
- package/es/utils/UNSAFE_interpolations/flexbox.js.map +1 -1
- package/es/utils/UNSAFE_interpolations/flexitem.css +7 -7
- package/es/utils/UNSAFE_interpolations/flexitem.js +11 -11
- package/es/utils/UNSAFE_interpolations/flexitem.js.map +1 -1
- package/es/utils/UNSAFE_interpolations/grid.js +1 -1
- package/es/utils/UNSAFE_interpolations/griditem.js +1 -1
- package/es/utils/UNSAFE_interpolations/padding.js +1 -1
- package/es/utils/UNSAFE_interpolations/text.css +3 -3
- package/es/utils/UNSAFE_interpolations/text.js +7 -7
- package/es/utils/UNSAFE_interpolations/text.js.map +1 -1
- package/es/utils/UNSAFE_keys.js +1 -1
- package/es/utils/UNSAFE_lengthFilter.js +1 -1
- package/es/utils/UNSAFE_logger.js +3 -3
- package/es/utils/UNSAFE_matchTranslationBundle.js +1 -1
- package/es/utils/UNSAFE_mergeInterpolations.js +5 -5
- package/es/utils/UNSAFE_mergeProps.js +1 -1
- package/es/utils/UNSAFE_meterTypes.js +1 -1
- package/es/utils/UNSAFE_roles.js +1 -1
- package/es/utils/UNSAFE_selectUtils.js +1 -1
- package/es/utils/UNSAFE_size.js +1 -1
- package/es/utils/UNSAFE_soundUtils.js +1 -1
- package/es/utils/UNSAFE_stringUtils.js +1 -1
- package/es/utils/UNSAFE_typeUtils.js +1 -1
- package/es/utils/UNSAFE_units.js +1 -1
- package/es/utils/UNSAFE_valueUpdateDetail.js +1 -1
- package/package.json +1 -1
- package/amd/Badge-9175fbab.js +0 -2
- package/amd/BaseButton-ebed03fc.js +0 -2
- package/amd/Button-68100aa2.js +0 -2
- package/amd/Chip-27950497.js +0 -2
- package/amd/ClearIcon-fbfb919b.js +0 -2
- package/amd/ComponentMessage-d6eabb8b.js +0 -2
- package/amd/ComponentMessageContainer-9d207766.js +0 -2
- package/amd/Flex-feea6d33.js +0 -2
- package/amd/FocusTrap-c829bbb6.js +0 -2
- package/amd/FormControlUtils-05d612b2.js +0 -2
- package/amd/Heading-b6851001.js +0 -2
- package/amd/HiddenAccessible-7a830f5b.js +0 -2
- package/amd/HighlightText-0dcc56c8.js +0 -2
- package/amd/Icon-734f5882.js +0 -2
- package/amd/Indexer-db8fef02.js +0 -2
- package/amd/InlineHelpSource-b84f4d4c.js +0 -2
- package/amd/Link-342b0888.js +0 -2
- package/amd/List-70e50ac0.js +0 -2
- package/amd/ListItemTextLayout-0fcd3aa2.js +0 -2
- package/amd/Menu-216ca145.js +0 -2
- package/amd/MenuDivider-4f0b0980.js +0 -2
- package/amd/MenuItem-61f30a1b.js +0 -2
- package/amd/MessageCloseButton-e3eff42e.js +0 -2
- package/amd/MessageDetail-1be1c95e.js +0 -2
- package/amd/MessageLayer-4a956c0e.js +0 -2
- package/amd/MessageStartIcon-eb47a169.js +0 -2
- package/amd/MessageSummary-89b4de95.js +0 -2
- package/amd/MessageTimestamp-05386412.js +0 -2
- package/amd/MessageToast-ddea810f.js +0 -2
- package/amd/MeterCircle-896974e4.js +0 -2
- package/amd/Modal-da798ad9.js +0 -2
- package/amd/ReadonlyTextFieldInput-1da0c096.js +0 -2
- package/amd/SelectMultiple-dfb5b765.js +0 -2
- package/amd/Skeleton-fc198bf2.js +0 -2
- package/amd/SplitMenuButton-1a916527.js +0 -2
- package/amd/Text-9d65ad6d.js +0 -2
- package/amd/TextArea-6b0f7f8a.js +0 -2
- package/amd/TextFieldInput-3c4b3298.js +0 -2
- package/amd/_curry2-52e3b69d.js +0 -2
- package/amd/_curry3-9b155fdc.js +0 -2
- package/amd/_has-f7daf036.js +0 -2
- package/amd/flexbox-08558092.js +0 -2
- package/amd/flexitem-ed3f79c3.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu-216ca145.js","sources":["../../src/UNSAFE_Menu/menuUtils.ts","../../src/UNSAFE_Menu/Menu.tsx","../../src/UNSAFE_Menu/useMenuCurrentKey.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComponentProps } from 'preact';\n\nimport { Menu } from './Menu';\n\n/**\n * Returns the key from the item element\n */\nconst getKey = (item: HTMLElement) => {\n // Key is set on data-oj-menu-item-key on each menuItem. To get this key from the\n // the actual menuItem we need to do a kebab to camel-case conversion.\n return item.dataset['ojMenuItemKey'];\n};\n\n/**\n * A helper function that return the key of the first available item.\n */\nexport const getFirstVisibleKey = (root: HTMLElement | null) => {\n if (root) {\n const firstItem = root.querySelector('[data-oj-menu-item-key]');\n if (firstItem) {\n const key = getKey(firstItem as HTMLElement);\n if (key) {\n return key;\n }\n }\n }\n return null;\n};\n\n/**\n * A helper function that return the key of the last available item.\n */\nexport const getLastVisibleKey = (root: HTMLElement | null) => {\n if (root) {\n const items = root.querySelectorAll('[data-oj-menu-item-key]');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const key = getKey(lastItem as HTMLElement);\n if (key) {\n return key;\n }\n }\n }\n return null;\n};\n\n/**\n * A helper function that returns the key of the previous or the next item\n * given the specified current key\n */\nexport const getPrevNextKey = (root: HTMLElement | null, isPrev: boolean, currentKey?: string) => {\n return (): string | null => {\n if (root) {\n const items = Array.from(root.querySelectorAll('[data-oj-menu-item-key]')) as HTMLElement[];\n const currentKeyIndex = items.findIndex((item) => getKey(item) === currentKey);\n let nextIndex = currentKeyIndex + (isPrev ? -1 : 1);\n const itemsLastIndex = items.length - 1;\n if (nextIndex < 0) {\n nextIndex = itemsLastIndex;\n }\n if (nextIndex > itemsLastIndex) {\n nextIndex = 0;\n }\n return getKey(items[nextIndex]) || null;\n }\n return null;\n };\n};\n\n/**\n * A helper function to get the key from an element\n */\nexport const keyExtractor = (element: HTMLElement): string | null => {\n const item = element.closest('[data-oj-menu-item-key]');\n if (item) {\n const key = getKey(item as HTMLElement);\n return key === undefined ? null : key;\n }\n return null;\n};\n\n/**\n * Function to get the corresponding keyboard behavior to close the menu.\n */\nexport const getKeyboardCloseProps = (onClose: ComponentProps<typeof Menu>['onClose']) => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n onClose?.({ reason: 'tabbing' });\n event.preventDefault(); //TODO: Revisit this since we should let focus be at its natural flow, quick solution for now to focus correct item in main use case\n } else if (event.key === 'Escape') {\n onClose?.({ reason: 'cancel' });\n }\n };\n return { onKeyDown };\n};\n\n/**\n * Function to get the corresponding specific behavior for clicking/touching down menuContainer\n */\nexport const getMenuPointerDown = () => {\n const onPointerDown = (event: PointerEvent) => {\n //We just want to prevent default when element that was\n //pressed down was not a menu item. Using this flag removes issues\n //related to focus visibilty on \"long press\"\n const nextKey = keyExtractor(event.target as HTMLElement);\n if (!nextKey) {\n event.preventDefault();\n }\n };\n return { onPointerDown };\n};\n\nexport type MenuValueUpdateDetail<T> = {\n previousValue?: T;\n value: T;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { RefObject, ComponentChildren } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\nimport { Floating } from '../UNSAFE_Floating';\nimport { Layer } from '../UNSAFE_Layer';\nimport { useOutsideClick } from '../hooks/UNSAFE_useOutsideClick';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { cssProps } from '@oracle/oraclejet-cssprops';\n\nimport { MenuContext } from './MenuContext';\nimport { useMenuCurrentKey } from './useMenuCurrentKey';\nimport {\n getPrevNextKey,\n getFirstVisibleKey,\n keyExtractor,\n getLastVisibleKey,\n getKeyboardCloseProps,\n getMenuPointerDown\n} from './menuUtils';\n\ntype MenuProps = {\n /**\n * Trigger element reference\n */\n anchorRef: RefObject<HTMLElement>;\n /**\n * Set of menu groups or menu items that menu will hold.Even though you could pass other type of children,\n * is strongly recommended to use MenuItem, menu groups or components that return this type of components\n * since passing other type of components children produces not desirable behaviors.\n */\n children: ComponentChildren;\n /**\n * Specifies if menu is opened.\n */\n isOpen?: boolean;\n /**\n * Property that triggers a callback when menu is supposed to be closed.\n */\n onClose?: (detail: CloseDetail) => void;\n /**\n * Specifies some screen reader text. Set it to create an accesible menu.\n */\n accessibleLabel?: string;\n /**\n * Determines focus behavior when the menu is opened.\n */\n initialFocus?: 'menu' | 'firstItem';\n};\n\ntype CloseDetail =\n | {\n reason: 'cancel' | 'tabbing' | 'itemAction';\n }\n | {\n reason: 'outsideClick';\n target: Element;\n };\n\nconst styles = {\n // TODO: Handle vertical and horizontal overflow. Get rid of maxWidth on a next drop so horizontal and also vertical flow is handled correctly.\n // It's hard to relay just in css, we might need to relay on some kind of observer. Maybe should be handled on Floating/Dropdown component.\n floatingContainer: cssProps`${{\n maxWidth: '90vw',\n width: 'max-content',\n borderRadius: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-border-radius-lg)',\n boxShadow: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-dropdown-box-shadow)',\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-content)'\n }}`,\n menuContainer: cssProps`${{\n outlineStyle: 'none',\n // paddingTop and Bottom here so menuConatiner have same size as floatingContainer so click event has\n // same clickable area and we can handle focus behavior\n paddingTop: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x)',\n paddingBottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x)'\n }}`\n};\n\nexport const Menu = ({\n children,\n isOpen = false,\n anchorRef,\n onClose,\n accessibleLabel,\n initialFocus = 'menu'\n}: MenuProps) => {\n const floatingRef = useRef<HTMLElement | null>(null);\n const menuContainerRef = useRef<HTMLDivElement | null>(null);\n const isOpenPrevValue = useRef<boolean>();\n\n const [currentKey, setCurrentKey] = useState<string | undefined>();\n\n const [possibleFocus, setPossibleFocus] = useState<'pending' | 'menu' | 'firstItem'>('pending');\n\n const changeKey = useCallback((detail: CurrentKeyDetail<string>) => {\n setCurrentKey(detail.value);\n setPossibleFocus('firstItem');\n }, []);\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(\n (elem: Element | null) => {\n return !!menuContainerRef.current?.contains(elem);\n },\n ['ArrowUp', 'ArrowDown'],\n (elem: Element) => {\n const nextKey = keyExtractor(elem as HTMLElement);\n return !!nextKey;\n }\n );\n\n const { currentKeyProps } = useMenuCurrentKey(\n (element) => keyExtractor(element),\n getPrevNextKey(menuContainerRef.current, true, currentKey),\n getPrevNextKey(menuContainerRef.current, false, currentKey),\n () => getFirstVisibleKey(menuContainerRef.current),\n () => getLastVisibleKey(menuContainerRef.current),\n currentKey,\n changeKey\n );\n\n const useOutsideClickHandler = useCallback(\n (e: MouseEvent) => {\n onClose?.({ reason: 'outsideClick', target: e.target as Element });\n },\n [onClose]\n );\n\n useOutsideClick({\n isDisabled: !isOpen,\n ref: [floatingRef],\n handler: useOutsideClickHandler\n });\n\n useEffect(() => {\n if (isOpen === isOpenPrevValue.current) return;\n\n if (isOpen) {\n const menuContainer = menuContainerRef.current;\n if (menuContainer) {\n if (initialFocus === 'menu') {\n // At this point floating has visibility set as hidden, so also menuContainer. Settimeout added so menuContainer\n // is visible at that point and can be focused\n setTimeout(() => {\n menuContainer.focus();\n }, 0);\n setPossibleFocus('menu');\n } else {\n const firstItemKey = getFirstVisibleKey(menuContainerRef.current);\n if (firstItemKey) {\n changeKey({ value: firstItemKey });\n } else {\n setPossibleFocus('menu');\n }\n }\n }\n } else {\n setPossibleFocus('pending');\n setCurrentKey(undefined);\n }\n\n isOpenPrevValue.current = isOpen;\n }, [isOpen, initialFocus, changeKey]);\n\n // TODO - Reuse a dropdown component instead of creating floating by ourselves.\n return !isOpen ? null : (\n <Layer logicalParentRef={anchorRef}>\n <Floating\n class={styles.floatingContainer}\n ref={floatingRef}\n anchorRef={anchorRef}\n placement=\"bottom-start\"\n offsetValue={{\n mainAxis: 4, //TODO: stable does not have a 4px gap, so we'll need to figure out how to make this themable.\n crossAxis: 0\n }}>\n <MenuContext.Provider\n value={{\n onClose,\n currentKey,\n showFocusRing\n }}>\n <div\n style={{\n minWidth: `${\n anchorRef.current && anchorRef.current.offsetWidth > MENU_MIN_WIDTH\n ? anchorRef.current.offsetWidth\n : MENU_MIN_WIDTH\n }px`\n }}\n ref={menuContainerRef}\n tabIndex={possibleFocus === 'firstItem' ? -1 : 0}\n role=\"menu\"\n aria-label={accessibleLabel}\n class={styles.menuContainer}\n {...mergeProps(\n focusRingProps,\n currentKeyProps,\n getMenuPointerDown(),\n getKeyboardCloseProps(onClose)\n )}>\n {children}\n </div>\n </MenuContext.Provider>\n </Floating>\n </Layer>\n );\n};\n\nconst MENU_MIN_WIDTH = 200;\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback } from 'preact/hooks';\n\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\n\n/**\n * Hook for handling current key update due to user interaction including keyboard navigation.\n *\n * @param keyExtractor function to extract the key based on the provided element\n * @param getPrevKey function to get the previous key based on the current key\n * @param getNextKey function to get the next key based on the current key\n * @param getFirstVisibleKey function to get the key of the first available item\n * @param getLastVisibleKey function to get the key of the last available item\n * @param currentKey the current key\n * @param onChange function to invoke if the current key has changed\n * @returns\n */\nexport function useMenuCurrentKey(\n keyExtractor: (element: HTMLElement) => string | null,\n getPrevKey: () => string | null,\n getNextKey: () => string | null,\n getFirstVisibleKey: () => string | null,\n getLastVisibleKey: () => string | null,\n currentKey?: string,\n onChange?: (detail: CurrentKeyDetail<string>) => void\n) {\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (onChange) {\n // TODO: support horizontal layout on icon menu (left/right arrow key)\n if (event.key === 'ArrowDown' && !event.shiftKey) {\n const nextKey = getNextKey();\n if (nextKey && currentKey != nextKey) {\n onChange({ value: nextKey });\n }\n event.preventDefault();\n } else if (event.key === 'ArrowUp' && !event.shiftKey) {\n const prevKey = getPrevKey();\n if (prevKey && currentKey != prevKey) {\n onChange({ value: prevKey });\n }\n event.preventDefault();\n } else if (event.key === 'Home') {\n const firstKey = getFirstVisibleKey();\n if (firstKey && currentKey != firstKey) {\n onChange({ value: firstKey });\n }\n event.preventDefault();\n } else if (event.key === 'End') {\n const lastKey = getLastVisibleKey();\n if (lastKey && currentKey != lastKey) {\n onChange({ value: lastKey });\n }\n event.preventDefault();\n }\n }\n },\n [currentKey, getNextKey, getPrevKey, onChange, getFirstVisibleKey, getLastVisibleKey]\n );\n //Capture needed since usePress stop propagation, what produces not triggering this event.\n //We can't stop propagation here, because if we do that, usePress onClick will not be triggered.\n const onClickCapture = useCallback(\n (event: MouseEvent) => {\n if (onChange && !event.shiftKey) {\n const nextKey = keyExtractor(event.target as HTMLElement);\n if (nextKey && currentKey != nextKey) {\n onChange({ value: nextKey });\n }\n }\n },\n [currentKey, keyExtractor, onChange]\n );\n\n const currentKeyProps = onChange == null ? {} : { onClickCapture, onKeyDown };\n return { currentKeyProps };\n}\n"],"names":["getKey","item","dataset","getFirstVisibleKey","root","firstItem","querySelector","key","getPrevNextKey","isPrev","currentKey","items","Array","from","querySelectorAll","nextIndex","findIndex","itemsLastIndex","length","keyExtractor","element","closest","undefined","getKeyboardCloseProps","onClose","onKeyDown","event","reason","preventDefault","styles","MENU_MIN_WIDTH","children","isOpen","anchorRef","accessibleLabel","initialFocus","floatingRef","useRef","menuContainerRef","isOpenPrevValue","changeKey","useCallback","detail","setCurrentKey","value","_a","current","contains","elem","currentKeyProps","getPrevKey","getNextKey","getLastVisibleKey","onChange","shiftKey","firstKey","lastKey","prevKey","nextKey","onClickCapture","target","useMenuCurrentKey","lastItem","useOutsideClickHandler","e","useOutsideClick","handler","menuContainer","firstItemKey","_jsx","jsx","Layer","Object","assign","logicalParentRef","Floating","class","ref","placement","offsetValue","mainAxis","crossAxis","MenuContext","Provider","minWidth","offsetWidth","onPointerDown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu-0359c231.js","sources":["../../src/UNSAFE_Menu/menuUtils.ts","../../src/UNSAFE_Menu/Menu.tsx","../../src/UNSAFE_Menu/useMenuCurrentKey.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComponentProps } from 'preact';\n\nimport { Menu } from './Menu';\n\n/**\n * Returns the key from the item element\n */\nconst getKey = (item: HTMLElement) => {\n // Key is set on data-oj-menu-item-key on each menuItem. To get this key from the\n // the actual menuItem we need to do a kebab to camel-case conversion.\n return item.dataset['ojMenuItemKey'];\n};\n\n/**\n * A helper function that return the key of the first available item.\n */\nexport const getFirstVisibleKey = (root: HTMLElement | null) => {\n if (root) {\n const firstItem = root.querySelector('[data-oj-menu-item-key]');\n if (firstItem) {\n const key = getKey(firstItem as HTMLElement);\n if (key) {\n return key;\n }\n }\n }\n return null;\n};\n\n/**\n * A helper function that return the key of the last available item.\n */\nexport const getLastVisibleKey = (root: HTMLElement | null) => {\n if (root) {\n const items = root.querySelectorAll('[data-oj-menu-item-key]');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const key = getKey(lastItem as HTMLElement);\n if (key) {\n return key;\n }\n }\n }\n return null;\n};\n\n/**\n * A helper function that returns the key of the previous or the next item\n * given the specified current key\n */\nexport const getPrevNextKey = (root: HTMLElement | null, isPrev: boolean, currentKey?: string) => {\n return (): string | null => {\n if (root) {\n const items = Array.from(root.querySelectorAll('[data-oj-menu-item-key]')) as HTMLElement[];\n const currentKeyIndex = items.findIndex((item) => getKey(item) === currentKey);\n let nextIndex = currentKeyIndex + (isPrev ? -1 : 1);\n const itemsLastIndex = items.length - 1;\n if (nextIndex < 0) {\n nextIndex = itemsLastIndex;\n }\n if (nextIndex > itemsLastIndex) {\n nextIndex = 0;\n }\n return getKey(items[nextIndex]) || null;\n }\n return null;\n };\n};\n\n/**\n * A helper function to get the key from an element\n */\nexport const keyExtractor = (element: HTMLElement): string | null => {\n const item = element.closest('[data-oj-menu-item-key]');\n if (item) {\n const key = getKey(item as HTMLElement);\n return key === undefined ? null : key;\n }\n return null;\n};\n\n/**\n * Function to get the corresponding keyboard behavior to close the menu.\n */\nexport const getKeyboardCloseProps = (onClose: ComponentProps<typeof Menu>['onClose']) => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n onClose?.({ reason: 'tabbing' });\n event.preventDefault(); //TODO: Revisit this since we should let focus be at its natural flow, quick solution for now to focus correct item in main use case\n } else if (event.key === 'Escape') {\n onClose?.({ reason: 'cancel' });\n }\n };\n return { onKeyDown };\n};\n\n/**\n * Function to get the corresponding specific behavior for clicking/touching down menuContainer\n */\nexport const getMenuPointerDown = () => {\n const onPointerDown = (event: PointerEvent) => {\n //We just want to prevent default when element that was\n //pressed down was not a menu item. Using this flag removes issues\n //related to focus visibilty on \"long press\"\n const nextKey = keyExtractor(event.target as HTMLElement);\n if (!nextKey) {\n event.preventDefault();\n }\n };\n return { onPointerDown };\n};\n\nexport type MenuValueUpdateDetail<T> = {\n previousValue?: T;\n value: T;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { RefObject, ComponentChildren } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\nimport { Floating } from '../UNSAFE_Floating';\nimport { Layer } from '../UNSAFE_Layer';\nimport { useOutsideClick } from '../hooks/UNSAFE_useOutsideClick';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { cssProps } from '@oracle/oraclejet-cssprops';\n\nimport { MenuContext } from './MenuContext';\nimport { useMenuCurrentKey } from './useMenuCurrentKey';\nimport {\n getPrevNextKey,\n getFirstVisibleKey,\n keyExtractor,\n getLastVisibleKey,\n getKeyboardCloseProps,\n getMenuPointerDown\n} from './menuUtils';\n\ntype MenuProps = {\n /**\n * Trigger element reference\n */\n anchorRef: RefObject<HTMLElement>;\n /**\n * Set of menu groups or menu items that menu will hold.Even though you could pass other type of children,\n * is strongly recommended to use MenuItem, menu groups or components that return this type of components\n * since passing other type of components children produces not desirable behaviors.\n */\n children: ComponentChildren;\n /**\n * Specifies if menu is opened.\n */\n isOpen?: boolean;\n /**\n * Property that triggers a callback when menu is supposed to be closed.\n */\n onClose?: (detail: CloseDetail) => void;\n /**\n * Specifies some screen reader text. Set it to create an accesible menu.\n */\n accessibleLabel?: string;\n /**\n * Determines focus behavior when the menu is opened.\n */\n initialFocus?: 'menu' | 'firstItem';\n};\n\ntype CloseDetail =\n | {\n reason: 'cancel' | 'tabbing' | 'itemAction';\n }\n | {\n reason: 'outsideClick';\n target: Element;\n };\n\nconst styles = {\n // TODO: Handle vertical and horizontal overflow. Get rid of maxWidth on a next drop so horizontal and also vertical flow is handled correctly.\n // It's hard to relay just in css, we might need to relay on some kind of observer. Maybe should be handled on Floating/Dropdown component.\n floatingContainer: cssProps`${{\n maxWidth: '90vw',\n width: 'max-content',\n borderRadius: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-border-radius-lg)',\n boxShadow: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-dropdown-box-shadow)',\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-content)'\n }}`,\n menuContainer: cssProps`${{\n outlineStyle: 'none',\n // paddingTop and Bottom here so menuConatiner have same size as floatingContainer so click event has\n // same clickable area and we can handle focus behavior\n paddingTop: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x)',\n paddingBottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x)'\n }}`\n};\n\nexport const Menu = ({\n children,\n isOpen = false,\n anchorRef,\n onClose,\n accessibleLabel,\n initialFocus = 'menu'\n}: MenuProps) => {\n const floatingRef = useRef<HTMLElement | null>(null);\n const menuContainerRef = useRef<HTMLDivElement | null>(null);\n const isOpenPrevValue = useRef<boolean>();\n\n const [currentKey, setCurrentKey] = useState<string | undefined>();\n\n const [possibleFocus, setPossibleFocus] = useState<'pending' | 'menu' | 'firstItem'>('pending');\n\n const changeKey = useCallback((detail: CurrentKeyDetail<string>) => {\n setCurrentKey(detail.value);\n setPossibleFocus('firstItem');\n }, []);\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(\n (elem: Element | null) => {\n return !!menuContainerRef.current?.contains(elem);\n },\n ['ArrowUp', 'ArrowDown'],\n (elem: Element) => {\n const nextKey = keyExtractor(elem as HTMLElement);\n return !!nextKey;\n }\n );\n\n const { currentKeyProps } = useMenuCurrentKey(\n (element) => keyExtractor(element),\n getPrevNextKey(menuContainerRef.current, true, currentKey),\n getPrevNextKey(menuContainerRef.current, false, currentKey),\n () => getFirstVisibleKey(menuContainerRef.current),\n () => getLastVisibleKey(menuContainerRef.current),\n currentKey,\n changeKey\n );\n\n const useOutsideClickHandler = useCallback(\n (e: MouseEvent) => {\n onClose?.({ reason: 'outsideClick', target: e.target as Element });\n },\n [onClose]\n );\n\n useOutsideClick({\n isDisabled: !isOpen,\n ref: [floatingRef],\n handler: useOutsideClickHandler\n });\n\n useEffect(() => {\n if (isOpen === isOpenPrevValue.current) return;\n\n if (isOpen) {\n const menuContainer = menuContainerRef.current;\n if (menuContainer) {\n if (initialFocus === 'menu') {\n // At this point floating has visibility set as hidden, so also menuContainer. Settimeout added so menuContainer\n // is visible at that point and can be focused\n setTimeout(() => {\n menuContainer.focus();\n }, 0);\n setPossibleFocus('menu');\n } else {\n const firstItemKey = getFirstVisibleKey(menuContainerRef.current);\n if (firstItemKey) {\n changeKey({ value: firstItemKey });\n } else {\n setPossibleFocus('menu');\n }\n }\n }\n } else {\n setPossibleFocus('pending');\n setCurrentKey(undefined);\n }\n\n isOpenPrevValue.current = isOpen;\n }, [isOpen, initialFocus, changeKey]);\n\n // TODO - Reuse a dropdown component instead of creating floating by ourselves.\n return !isOpen ? null : (\n <Layer logicalParentRef={anchorRef}>\n <Floating\n class={styles.floatingContainer}\n ref={floatingRef}\n anchorRef={anchorRef}\n placement=\"bottom-start\"\n offsetValue={{\n mainAxis: 4, //TODO: stable does not have a 4px gap, so we'll need to figure out how to make this themable.\n crossAxis: 0\n }}>\n <MenuContext.Provider\n value={{\n onClose,\n currentKey,\n showFocusRing\n }}>\n <div\n style={{\n minWidth: `${\n anchorRef.current && anchorRef.current.offsetWidth > MENU_MIN_WIDTH\n ? anchorRef.current.offsetWidth\n : MENU_MIN_WIDTH\n }px`\n }}\n ref={menuContainerRef}\n tabIndex={possibleFocus === 'firstItem' ? -1 : 0}\n role=\"menu\"\n aria-label={accessibleLabel}\n class={styles.menuContainer}\n {...mergeProps(\n focusRingProps,\n currentKeyProps,\n getMenuPointerDown(),\n getKeyboardCloseProps(onClose)\n )}>\n {children}\n </div>\n </MenuContext.Provider>\n </Floating>\n </Layer>\n );\n};\n\nconst MENU_MIN_WIDTH = 200;\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback } from 'preact/hooks';\n\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\n\n/**\n * Hook for handling current key update due to user interaction including keyboard navigation.\n *\n * @param keyExtractor function to extract the key based on the provided element\n * @param getPrevKey function to get the previous key based on the current key\n * @param getNextKey function to get the next key based on the current key\n * @param getFirstVisibleKey function to get the key of the first available item\n * @param getLastVisibleKey function to get the key of the last available item\n * @param currentKey the current key\n * @param onChange function to invoke if the current key has changed\n * @returns\n */\nexport function useMenuCurrentKey(\n keyExtractor: (element: HTMLElement) => string | null,\n getPrevKey: () => string | null,\n getNextKey: () => string | null,\n getFirstVisibleKey: () => string | null,\n getLastVisibleKey: () => string | null,\n currentKey?: string,\n onChange?: (detail: CurrentKeyDetail<string>) => void\n) {\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (onChange) {\n // TODO: support horizontal layout on icon menu (left/right arrow key)\n if (event.key === 'ArrowDown' && !event.shiftKey) {\n const nextKey = getNextKey();\n if (nextKey && currentKey != nextKey) {\n onChange({ value: nextKey });\n }\n event.preventDefault();\n } else if (event.key === 'ArrowUp' && !event.shiftKey) {\n const prevKey = getPrevKey();\n if (prevKey && currentKey != prevKey) {\n onChange({ value: prevKey });\n }\n event.preventDefault();\n } else if (event.key === 'Home') {\n const firstKey = getFirstVisibleKey();\n if (firstKey && currentKey != firstKey) {\n onChange({ value: firstKey });\n }\n event.preventDefault();\n } else if (event.key === 'End') {\n const lastKey = getLastVisibleKey();\n if (lastKey && currentKey != lastKey) {\n onChange({ value: lastKey });\n }\n event.preventDefault();\n }\n }\n },\n [currentKey, getNextKey, getPrevKey, onChange, getFirstVisibleKey, getLastVisibleKey]\n );\n //Capture needed since usePress stop propagation, what produces not triggering this event.\n //We can't stop propagation here, because if we do that, usePress onClick will not be triggered.\n const onClickCapture = useCallback(\n (event: MouseEvent) => {\n if (onChange && !event.shiftKey) {\n const nextKey = keyExtractor(event.target as HTMLElement);\n if (nextKey && currentKey != nextKey) {\n onChange({ value: nextKey });\n }\n }\n },\n [currentKey, keyExtractor, onChange]\n );\n\n const currentKeyProps = onChange == null ? {} : { onClickCapture, onKeyDown };\n return { currentKeyProps };\n}\n"],"names":["getKey","item","dataset","getFirstVisibleKey","root","firstItem","querySelector","key","getPrevNextKey","isPrev","currentKey","items","Array","from","querySelectorAll","nextIndex","findIndex","itemsLastIndex","length","keyExtractor","element","closest","undefined","getKeyboardCloseProps","onClose","onKeyDown","event","reason","preventDefault","styles","MENU_MIN_WIDTH","children","isOpen","anchorRef","accessibleLabel","initialFocus","floatingRef","useRef","menuContainerRef","isOpenPrevValue","changeKey","useCallback","detail","setCurrentKey","value","_a","current","contains","elem","currentKeyProps","getPrevKey","getNextKey","getLastVisibleKey","onChange","shiftKey","firstKey","lastKey","prevKey","nextKey","onClickCapture","target","useMenuCurrentKey","lastItem","useOutsideClickHandler","e","useOutsideClick","handler","menuContainer","firstItemKey","_jsx","jsx","Layer","Object","assign","logicalParentRef","Floating","class","ref","placement","offsetValue","mainAxis","crossAxis","MenuContext","Provider","minWidth","offsetWidth","onPointerDown"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./UNSAFE_Divider","./Divider-3fd74acf"],function(i,e,n,r,s){"use strict";const t="_1yq2i58";i.MenuDivider=function(){return e.jsx("div",Object.assign({class:t},{children:e.jsx(s.Divider,{})}))}});
|
|
2
|
+
//# sourceMappingURL=MenuDivider-c66ecaf2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuDivider-
|
|
1
|
+
{"version":3,"file":"MenuDivider-c66ecaf2.js","sources":["../../src/UNSAFE_Menu/MenuDivider.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\n\nimport { Divider } from '../UNSAFE_Divider';\n\nconst styles = {\n menuDividerContainer: cssProps`${{\n paddingTop: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-divider-vertical-padding)',\n paddingBottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-divider-vertical-padding)'\n }}`\n};\n\nexport function MenuDivider() {\n return (\n <div class={styles.menuDividerContainer}>\n <Divider />\n </div>\n );\n}\n"],"names":["styles","_jsx","Object","assign","class","children","Divider"],"mappings":"2HAYA,MAAAA,2BAOA,WACE,OAAAC,MAAA,MAAAC,OAAAC,OAAA,CAAAC,MAAAJ,GAAA,CAAAK,SAAAJ,EAAAA,IAAAK,EAAAA,QAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime","preact/hooks","./UNSAFE_Text",'module',"./hooks/UNSAFE_useHover","./utils/UNSAFE_classNames","./hooks/UNSAFE_useId","./utils/UNSAFE_mergeProps","./hooks/UNSAFE_usePress","./utils/PRIVATE_clientHints","preact","./clientHints-8af07605","./classNames-ee48f57b","./Text-5980e33c"],function(e,n,s,t,a,o,i,r,c,l,u,d,m,C,b){"use strict";const h=d.createContext({onClose:()=>null,currentKey:void 0,showFocusRing:!1});const v={menuItemContainer:"yp1bl2",focused:"_1axr73i",variant:{default:{menuItemContainer:"_11xnv62",hover:"_1rj01ev",pseudohover:"ql6iyo"},destructive:{menuItemContainer:"_1n7t06k",hover:"zdlnjc",pseudohover:"_18th893"}},iconLabelContainer:"_1uzs393",labelContainer:"s11xo9",iconContainer:"z06dkr",startIconContainer:"t6h2ic",endIconContainer:"_1wmag9s",disabledContainer:"mk0ats"};const x=m.getClientHints().isHybrid;function j({label:e,onAction:t,startIcon:a,endIcon:i,role:u,isChecked:d,isDisabled:m=!1,variant:j="default"}){const{onClose:I,currentKey:p,showFocusRing:f}=s.useContext(h),_=r.useId(),g=s.useMemo(()=>`oj-menu-item-${_}`,[_]),N=p===g,k=s.useRef(null),{hoverProps:A,isHover:E}=o.useHover({isDisabled:!x}),{pressProps:F}=l.usePress(()=>{null==I||I({reason:"itemAction"}),null==t||t()},{isDisabled:m});s.useLayoutEffect(()=>{var e;N&&(null===(e=k.current)||void 0===e||e.focus())},[N]);const y=C.classNames([v.menuItemContainer,!m&&v.variant[j].menuItemContainer,m&&v.disabledContainer,!x&&!m&&v.variant[j].pseudohover,x&&E&&!m&&v.variant[j].hover,N&&!!f&&v.focused]),H=C.classNames([v.iconLabelContainer,v.iconContainer,v.startIconContainer]),P=C.classNames([v.iconLabelContainer,v.labelContainer]),O=C.classNames([v.iconLabelContainer,v.iconContainer,v.endIconContainer]);return n.jsxs("a",Object.assign({ref:k,class:y},c.mergeProps(A,F),{role:u,"data-oj-menu-item-key":g},m&&{"aria-disabled":!0},"menuitem"!==u&&{"aria-checked":d},{tabIndex:N?0:-1},{children:[a&&n.jsx("span",Object.assign({class:H},{children:a})),n.jsx("span",Object.assign({class:P},{children:n.jsx(b.Text,Object.assign({variant:"inherit",size:"md"},{children:e}))})),i&&n.jsx("span",Object.assign({class:O},{children:i}))]}))}e.BaseMenuItem=j,e.MenuContext=h,e.MenuItem=function(e){return n.jsx(j,Object.assign({},e,{role:"menuitem"}))}});
|
|
2
|
+
//# sourceMappingURL=MenuItem-126abb70.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem-61f30a1b.js","sources":["../../src/UNSAFE_Menu/MenuContext.ts","../../src/UNSAFE_Menu/MenuItem.tsx","../../src/UNSAFE_Menu/useMenuContext.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext, ComponentProps } from 'preact';\n\nimport { Menu } from './Menu';\n\ntype Props = {\n onClose: ComponentProps<typeof Menu>['onClose'];\n currentKey?: string;\n showFocusRing: boolean;\n};\n\n/**\n * Context used to pass menu information without having to pass it to menu children props.\n * We want to communicate information down to any interested menu item children.\n */\nconst MenuContext = createContext<Props>({\n onClose: () => null,\n currentKey: undefined,\n showFocusRing: false\n});\n\nexport { MenuContext };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useLayoutEffect, useRef, useMemo } from 'preact/hooks';\nimport { ComponentChildren } from 'preact';\n\nimport { Text } from '../UNSAFE_Text';\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { useHover } from '../hooks/UNSAFE_useHover';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\n\nimport { useMenuContext } from './useMenuContext';\n\nconst styles = {\n menuItemContainer: cssProps`${{\n cursor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-cursor-clickable) !important',\n width: '100%',\n paddingTop: 'var(--oj-PRIVATE-DO-NOT-USE-collection-list-cell-padding-vertical)',\n paddingBottom: 'var(--oj-PRIVATE-DO-NOT-USE-collection-list-cell-padding-vertical)',\n paddingInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-start-edge-to-start-icon-padding)',\n paddingInlineEnd: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-end-icon-to-end-edge-padding)',\n boxSizing: 'border-box',\n minHeight: 'var( --oj-c-PRIVATE-NOT-USE-collection-list-row-height)',\n display: 'flex',\n textAlign: 'start',\n alignItems: 'center',\n textDecorationLine: 'none !important',\n outlineStyle: 'none'\n }}`,\n focused: cssProps`${{\n outlineStyle: 'dotted',\n outlineOffset: '1px',\n outlineWidth: '1px',\n outlineColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-focus-border-color)'\n }}`,\n variant: {\n default: {\n menuItemContainer: cssProps`${{\n '&:active': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-active)'\n },\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-text-color)'\n }}`,\n hover: cssProps`${{\n // @ts-ignore\n '&:not(:active)': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-hover)'\n }\n }}`,\n pseudohover: cssProps`${{\n // @ts-ignore\n '@media(hover: hover)': {\n '&:hover:not(:active)': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-hover)'\n }\n }\n }}`\n },\n destructive: {\n menuItemContainer: cssProps`${{\n //Not needed since hover and active share same style but active state style could change at some point\n '&:active': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n },\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger-low)'\n }}`,\n hover: cssProps`${{\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n }}`,\n pseudohover: cssProps`${{\n // @ts-ignore\n '@media(hover: hover)': {\n '&:hover': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n }\n }\n }}`\n }\n },\n iconLabelContainer: cssProps`${{\n display: 'flex',\n alignItems: 'center',\n overflowX: 'hidden',\n overflowY: 'hidden'\n }}`,\n labelContainer: cssProps`${{\n flexGrow: 1,\n minHeight: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)'\n }}`,\n iconContainer: cssProps`${{\n flexShrink: 0,\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)',\n height: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)',\n width: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)'\n }}`,\n startIconContainer: cssProps`${{\n marginInlineEnd: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-start-icon-to-label-padding)'\n }}`,\n endIconContainer: cssProps`${{\n marginInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-label-to-end-icon-padding)'\n }}`,\n disabledContainer: cssProps`${{\n cursor: 'default !important',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-disabled)'\n }}`\n};\n\ntype BaseMenuItemProps = (SimpleMenuItemProps | SelectMenuItemProps) & BaseBaseMenuItemProps;\n\ntype BaseBaseMenuItemProps = {\n label: string;\n onAction?: () => void;\n startIcon?: ComponentChildren;\n endIcon?: ComponentChildren;\n isDisabled?: boolean;\n};\n\ntype SimpleMenuItemProps = {\n role: 'menuitem';\n variant?: 'default' | 'destructive';\n isChecked?: never;\n};\n\ntype SelectMenuItemProps = {\n role: 'menuitemcheckbox' | 'menuitemradio';\n variant?: never;\n isChecked?: boolean;\n};\n\ntype MenuItemProps = BaseBaseMenuItemProps & {\n variant?: 'default' | 'destructive';\n};\n\nexport function MenuItem(props: MenuItemProps) {\n return <BaseMenuItem {...props} role=\"menuitem\"></BaseMenuItem>;\n}\n\nconst isHybrid = getClientHints().isHybrid;\n\nexport function BaseMenuItem({\n label,\n onAction,\n startIcon,\n endIcon,\n role,\n isChecked,\n isDisabled = false,\n variant = 'default'\n}: BaseMenuItemProps) {\n const { onClose, currentKey, showFocusRing } = useMenuContext();\n\n const uniqueID = useId();\n const id = useMemo(() => `oj-menu-item-${uniqueID}`, [uniqueID]);\n const isCurrent = currentKey === id;\n\n const menuItemRef = useRef<HTMLAnchorElement | null>(null);\n\n const { hoverProps, isHover } = useHover({ isDisabled: !isHybrid });\n\n const handleItemSelection = () => {\n onClose?.({ reason: 'itemAction' });\n onAction?.();\n };\n\n const { pressProps } = usePress(handleItemSelection, { isDisabled });\n\n useLayoutEffect(() => {\n if (isCurrent) {\n menuItemRef.current?.focus();\n }\n }, [isCurrent]);\n\n const menuItemContainerClasses = classNames([\n styles.menuItemContainer,\n !isDisabled && styles.variant[variant].menuItemContainer,\n isDisabled && styles.disabledContainer,\n !isHybrid && !isDisabled && styles.variant[variant].pseudohover,\n isHybrid && isHover && !isDisabled && styles.variant[variant].hover,\n isCurrent && !!showFocusRing && styles.focused\n ]);\n\n const startIconContainerClasses = classNames([\n styles.iconLabelContainer,\n styles.iconContainer,\n styles.startIconContainer\n ]);\n\n const labelContainerClasses = classNames([styles.iconLabelContainer, styles.labelContainer]);\n\n const endIconContainerClasses = classNames([\n styles.iconLabelContainer,\n styles.iconContainer,\n styles.endIconContainer\n ]);\n\n return (\n <a\n ref={menuItemRef}\n class={menuItemContainerClasses}\n {...mergeProps(hoverProps, pressProps)}\n role={role}\n data-oj-menu-item-key={id}\n {...(isDisabled && { 'aria-disabled': true })}\n {...(role !== 'menuitem' && { 'aria-checked': isChecked })}\n tabIndex={isCurrent ? 0 : -1}>\n {startIcon && <span class={startIconContainerClasses}>{startIcon}</span>}\n <span class={labelContainerClasses}>\n <Text variant=\"inherit\" size=\"md\">\n {label}\n </Text>\n </span>\n {endIcon && <span class={endIconContainerClasses}>{endIcon}</span>}\n </a>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useContext } from 'preact/hooks';\n\nimport { MenuContext } from './MenuContext';\n\n/**\n * Utility hook for consuming the MenuContext\n *\n * @returns The value of MenuContext provider\n */\nfunction useMenuContext() {\n return useContext(MenuContext);\n}\n\nexport { useMenuContext };\n"],"names":["MenuContext","createContext","onClose","currentKey","undefined","showFocusRing","styles","variant","default","destructive","isHybrid","getClientHints","BaseMenuItem","label","onAction","startIcon","endIcon","role","isChecked","isDisabled","useContext","uniqueID","useId","id","useMemo","isCurrent","menuItemRef","useRef","hoverProps","isHover","useHover","pressProps","usePress","_a","current","focus","menuItemContainer","pseudohover","hover","focused","iconLabelContainer","iconContainer","startIconContainer","labelContainerClasses","classNames","labelContainer","endIconContainer","props"],"mappings":"mXAsBM,MAAAA,EAAcC,EAAAA,cAAqB,CACvCC,QAAS,IAAM,KACfC,gBAAYC,EACZC,eAAe,ICJjB,MAAAC,EAAA,mBAAA,mBAAA,SAsBEC,QAAA,CACEC,QAAA,mBAAA,iBAAA,mCAsBAC,YAAA,mBAAA,iBAAA,qDA7CJ,wBAAA,yBAAA,6BAAA,0BAAA,wCA+HA,MAAAC,EAAAC,EAAAA,iBAAAD,SAEA,SAAAE,GAAAC,MAAAA,EAAAC,SAAAA,EAAAC,UAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAC,UAAAA,EAAAC,WAAAA,GAAA,EAAAZ,QAAAA,EAAA,0DCpISa,EAAAA,WAAWpB,GDgJlBqB,EAAAC,EAAAA,QACAC,EAAAC,EAAAA,QAAA,IAAA,gBAAAH,IAAA,CAAAA,IACAI,EAAAtB,IAAAoB,EAEAG,EAAAC,SAAA,OAEAC,WAAAA,EAAAC,QAAAA,GAAAC,WAAA,CAAAX,YAAAT,KAOAqB,WAAAA,GAAAC,EAAAA,gDAHElB,MAAAA,GAAAA,KAGF,CAAAK,WAAAA,iCAGEM,IACE,QAAAQ,EAAAP,EAAAQ,eAAA,IAAAD,GAAAA,EAAAE,UAEJ,CAAAV,0BAGEnB,EAAA8B,6EAGA1B,IAAAS,GAAAb,EAAAC,QAAAA,GAAA8B,YACA3B,GAAAmB,IAAAV,GAAAb,EAAAC,QAAAA,GAAA+B,MACAb,KAAApB,GAAAC,EAAAiC,0BAIAjC,EAAAkC,mBACAlC,EAAAmC,cACAnC,EAAAoC,qBAGFC,EAAAC,EAAAA,WAAA,CAAAtC,EAAAkC,mBAAAlC,EAAAuC,iCAGEvC,EAAAkC,mBACAlC,EAAAmC,cACAnC,EAAAwC,weA3DJ,SAAAC"}
|
|
1
|
+
{"version":3,"file":"MenuItem-126abb70.js","sources":["../../src/UNSAFE_Menu/MenuContext.ts","../../src/UNSAFE_Menu/MenuItem.tsx","../../src/UNSAFE_Menu/useMenuContext.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext, ComponentProps } from 'preact';\n\nimport { Menu } from './Menu';\n\ntype Props = {\n onClose: ComponentProps<typeof Menu>['onClose'];\n currentKey?: string;\n showFocusRing: boolean;\n};\n\n/**\n * Context used to pass menu information without having to pass it to menu children props.\n * We want to communicate information down to any interested menu item children.\n */\nconst MenuContext = createContext<Props>({\n onClose: () => null,\n currentKey: undefined,\n showFocusRing: false\n});\n\nexport { MenuContext };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useLayoutEffect, useRef, useMemo } from 'preact/hooks';\nimport { ComponentChildren } from 'preact';\n\nimport { Text } from '../UNSAFE_Text';\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { useHover } from '../hooks/UNSAFE_useHover';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\n\nimport { useMenuContext } from './useMenuContext';\n\nconst styles = {\n menuItemContainer: cssProps`${{\n cursor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-cursor-clickable) !important',\n width: '100%',\n paddingTop: 'var(--oj-PRIVATE-DO-NOT-USE-collection-list-cell-padding-vertical)',\n paddingBottom: 'var(--oj-PRIVATE-DO-NOT-USE-collection-list-cell-padding-vertical)',\n paddingInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-start-edge-to-start-icon-padding)',\n paddingInlineEnd: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-end-icon-to-end-edge-padding)',\n boxSizing: 'border-box',\n minHeight: 'var( --oj-c-PRIVATE-NOT-USE-collection-list-row-height)',\n display: 'flex',\n textAlign: 'start',\n alignItems: 'center',\n textDecorationLine: 'none !important',\n outlineStyle: 'none'\n }}`,\n focused: cssProps`${{\n outlineStyle: 'dotted',\n outlineOffset: '1px',\n outlineWidth: '1px',\n outlineColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-focus-border-color)'\n }}`,\n variant: {\n default: {\n menuItemContainer: cssProps`${{\n '&:active': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-active)'\n },\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-text-color)'\n }}`,\n hover: cssProps`${{\n // @ts-ignore\n '&:not(:active)': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-hover)'\n }\n }}`,\n pseudohover: cssProps`${{\n // @ts-ignore\n '@media(hover: hover)': {\n '&:hover:not(:active)': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-hover)'\n }\n }\n }}`\n },\n destructive: {\n menuItemContainer: cssProps`${{\n //Not needed since hover and active share same style but active state style could change at some point\n '&:active': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n },\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger-low)'\n }}`,\n hover: cssProps`${{\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n }}`,\n pseudohover: cssProps`${{\n // @ts-ignore\n '@media(hover: hover)': {\n '&:hover': {\n backgroundColor: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-bg-color-danger-hover)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-danger)'\n }\n }\n }}`\n }\n },\n iconLabelContainer: cssProps`${{\n display: 'flex',\n alignItems: 'center',\n overflowX: 'hidden',\n overflowY: 'hidden'\n }}`,\n labelContainer: cssProps`${{\n flexGrow: 1,\n minHeight: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)'\n }}`,\n iconContainer: cssProps`${{\n flexShrink: 0,\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)',\n height: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)',\n width: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-icon-size)'\n }}`,\n startIconContainer: cssProps`${{\n marginInlineEnd: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-start-icon-to-label-padding)'\n }}`,\n endIconContainer: cssProps`${{\n marginInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-menu-label-to-end-icon-padding)'\n }}`,\n disabledContainer: cssProps`${{\n cursor: 'default !important',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-disabled)'\n }}`\n};\n\ntype BaseMenuItemProps = (SimpleMenuItemProps | SelectMenuItemProps) & BaseBaseMenuItemProps;\n\ntype BaseBaseMenuItemProps = {\n label: string;\n onAction?: () => void;\n startIcon?: ComponentChildren;\n endIcon?: ComponentChildren;\n isDisabled?: boolean;\n};\n\ntype SimpleMenuItemProps = {\n role: 'menuitem';\n variant?: 'default' | 'destructive';\n isChecked?: never;\n};\n\ntype SelectMenuItemProps = {\n role: 'menuitemcheckbox' | 'menuitemradio';\n variant?: never;\n isChecked?: boolean;\n};\n\ntype MenuItemProps = BaseBaseMenuItemProps & {\n variant?: 'default' | 'destructive';\n};\n\nexport function MenuItem(props: MenuItemProps) {\n return <BaseMenuItem {...props} role=\"menuitem\"></BaseMenuItem>;\n}\n\nconst isHybrid = getClientHints().isHybrid;\n\nexport function BaseMenuItem({\n label,\n onAction,\n startIcon,\n endIcon,\n role,\n isChecked,\n isDisabled = false,\n variant = 'default'\n}: BaseMenuItemProps) {\n const { onClose, currentKey, showFocusRing } = useMenuContext();\n\n const uniqueID = useId();\n const id = useMemo(() => `oj-menu-item-${uniqueID}`, [uniqueID]);\n const isCurrent = currentKey === id;\n\n const menuItemRef = useRef<HTMLAnchorElement | null>(null);\n\n const { hoverProps, isHover } = useHover({ isDisabled: !isHybrid });\n\n const handleItemSelection = () => {\n onClose?.({ reason: 'itemAction' });\n onAction?.();\n };\n\n const { pressProps } = usePress(handleItemSelection, { isDisabled });\n\n useLayoutEffect(() => {\n if (isCurrent) {\n menuItemRef.current?.focus();\n }\n }, [isCurrent]);\n\n const menuItemContainerClasses = classNames([\n styles.menuItemContainer,\n !isDisabled && styles.variant[variant].menuItemContainer,\n isDisabled && styles.disabledContainer,\n !isHybrid && !isDisabled && styles.variant[variant].pseudohover,\n isHybrid && isHover && !isDisabled && styles.variant[variant].hover,\n isCurrent && !!showFocusRing && styles.focused\n ]);\n\n const startIconContainerClasses = classNames([\n styles.iconLabelContainer,\n styles.iconContainer,\n styles.startIconContainer\n ]);\n\n const labelContainerClasses = classNames([styles.iconLabelContainer, styles.labelContainer]);\n\n const endIconContainerClasses = classNames([\n styles.iconLabelContainer,\n styles.iconContainer,\n styles.endIconContainer\n ]);\n\n return (\n <a\n ref={menuItemRef}\n class={menuItemContainerClasses}\n {...mergeProps(hoverProps, pressProps)}\n role={role}\n data-oj-menu-item-key={id}\n {...(isDisabled && { 'aria-disabled': true })}\n {...(role !== 'menuitem' && { 'aria-checked': isChecked })}\n tabIndex={isCurrent ? 0 : -1}>\n {startIcon && <span class={startIconContainerClasses}>{startIcon}</span>}\n <span class={labelContainerClasses}>\n <Text variant=\"inherit\" size=\"md\">\n {label}\n </Text>\n </span>\n {endIcon && <span class={endIconContainerClasses}>{endIcon}</span>}\n </a>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useContext } from 'preact/hooks';\n\nimport { MenuContext } from './MenuContext';\n\n/**\n * Utility hook for consuming the MenuContext\n *\n * @returns The value of MenuContext provider\n */\nfunction useMenuContext() {\n return useContext(MenuContext);\n}\n\nexport { useMenuContext };\n"],"names":["MenuContext","createContext","onClose","currentKey","undefined","showFocusRing","styles","variant","default","destructive","isHybrid","getClientHints","BaseMenuItem","label","onAction","startIcon","endIcon","role","isChecked","isDisabled","useContext","uniqueID","useId","id","useMemo","isCurrent","menuItemRef","useRef","hoverProps","isHover","useHover","pressProps","usePress","_a","current","focus","menuItemContainer","pseudohover","hover","focused","iconLabelContainer","iconContainer","startIconContainer","labelContainerClasses","classNames","labelContainer","endIconContainer","props"],"mappings":"mXAsBM,MAAAA,EAAcC,EAAAA,cAAqB,CACvCC,QAAS,IAAM,KACfC,gBAAYC,EACZC,eAAe,ICJjB,MAAAC,EAAA,mBAAA,iBAAA,WAsBEC,QAAA,CACEC,QAAA,mBAAA,iBAAA,iCAsBAC,YAAA,mBAAA,iBAAA,qDA7CJ,0BAAA,uBAAA,4BAAA,0BAAA,uCA+HA,MAAAC,EAAAC,EAAAA,iBAAAD,SAEA,SAAAE,GAAAC,MAAAA,EAAAC,SAAAA,EAAAC,UAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAC,UAAAA,EAAAC,WAAAA,GAAA,EAAAZ,QAAAA,EAAA,0DCpISa,EAAAA,WAAWpB,GDgJlBqB,EAAAC,EAAAA,QACAC,EAAAC,EAAAA,QAAA,IAAA,gBAAAH,IAAA,CAAAA,IACAI,EAAAtB,IAAAoB,EAEAG,EAAAC,SAAA,OAEAC,WAAAA,EAAAC,QAAAA,GAAAC,WAAA,CAAAX,YAAAT,KAOAqB,WAAAA,GAAAC,EAAAA,gDAHElB,MAAAA,GAAAA,KAGF,CAAAK,WAAAA,iCAGEM,IACE,QAAAQ,EAAAP,EAAAQ,eAAA,IAAAD,GAAAA,EAAAE,UAEJ,CAAAV,0BAGEnB,EAAA8B,6EAGA1B,IAAAS,GAAAb,EAAAC,QAAAA,GAAA8B,YACA3B,GAAAmB,IAAAV,GAAAb,EAAAC,QAAAA,GAAA+B,MACAb,KAAApB,GAAAC,EAAAiC,0BAIAjC,EAAAkC,mBACAlC,EAAAmC,cACAnC,EAAAoC,qBAGFC,EAAAC,EAAAA,WAAA,CAAAtC,EAAAkC,mBAAAlC,EAAAuC,iCAGEvC,EAAAkC,mBACAlC,EAAAmC,cACAnC,EAAAwC,weA3DJ,SAAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
define(["exports","./utils/UNSAFE_arrayUtils"],function(r,i){"use strict";i.stringLiteralArray(["banner","inline","toast"]);const n=i.stringLiteralArray(["error","warning","confirmation","info","none"]);r.severities=n});
|
|
2
|
-
//# sourceMappingURL=Message.types-
|
|
2
|
+
//# sourceMappingURL=Message.types-07e4afec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.types-
|
|
1
|
+
{"version":3,"file":"Message.types-07e4afec.js","sources":["../../src/PRIVATE_Message/Message.types.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ItemMetadata } from '../utils/UNSAFE_dataProvider';\nimport { stringLiteralArray } from '../utils/UNSAFE_arrayUtils';\n\nexport const variants = stringLiteralArray(['banner', 'inline', 'toast']);\nexport type MessageVariant = typeof variants[number];\n\nexport const severities = stringLiteralArray(['error', 'warning', 'confirmation', 'info', 'none']);\nexport type MessageSeverity = typeof severities[number];\n\n/**\n * Structure of data item passed to the renderer functions\n */\nexport type MessageRendererDataItem<K, D> = {\n /**\n * The data for the current message\n */\n data: D;\n\n /**\n * The zero-based index of the current message\n */\n index: number;\n\n /**\n * The key for the current message\n */\n key: K;\n\n /**\n * The metadata for the current message\n */\n metadata?: ItemMetadata<K>;\n};\n"],"names":["stringLiteralArray","severities"],"mappings":"0EAUwBA,EAAkBA,mBAAC,CAAC,SAAU,SAAU,UAAzD,MAGMC,EAAaD,EAAkBA,mBAAC,CAAC,QAAS,UAAW,eAAgB,OAAQ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./UNSAFE_Button","./index-35690f89","./utils/UNSAFE_classNames","./Button-90c6e9f9","./index-140c213a","./classNames-ee48f57b"],function(e,s,n,t,a,i,o,c,r){"use strict";const l={base:"_3vkai6",banner:"_1t4ffcx",inline:void 0,toast:"_14eglam"};e.MessageCloseButton=function({onAction:e,buttonRenderer:n,title:t="Close",variant:a="banner"}){const i=n?n(t,e,a):s.jsx(o.Button,{startIcon:s.jsx(c.SvgIcoClose,{}),size:"sm",title:t,variant:"borderless",onAction:e}),u=r.classNames(["banner"===a&&"oj-c-messagebanner-close-icon",l.base,l[a]]);return s.jsx("div",Object.assign({class:u},{children:i}))}});
|
|
2
|
+
//# sourceMappingURL=MessageCloseButton-15992223.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageCloseButton-
|
|
1
|
+
{"version":3,"file":"MessageCloseButton-15992223.js","sources":["../../src/PRIVATE_Message/MessageCloseButton.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { VNode } from 'preact';\nimport { Button } from '../UNSAFE_Button';\nimport { CloseIcon } from '../UNSAFE_ThemedIcons';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { MessageVariant } from './Message.types';\n\n// TODO: remove usages of margin here\nconst messageCloseButtonStyles = {\n base: cssProps`${{\n alignSelf: 'flex-start',\n display: 'flex'\n }}`,\n banner: cssProps`${{\n marginInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-1x)',\n marginInlineEnd: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x))',\n marginTop: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x))',\n marginBottom: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x))'\n }}`,\n inline: undefined,\n toast: cssProps`${{\n marginInlineStart: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-4x)',\n marginInlineEnd: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-3x) / 2)',\n marginTop: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-3x) / 2)',\n marginBottom: 'calc(-1 * var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-3x) / 2)'\n }}`\n};\n\n/**\n * Props for the MessageCloseButton component\n */\ntype Props = {\n /**\n * The callback function to be called when the close icon is clicked\n */\n onAction: (event?: Event) => void;\n\n /**\n * Button renderer\n */\n buttonRenderer?: (\n title: string,\n onAction: (event?: Event) => void,\n variant?: MessageVariant\n ) => VNode;\n\n /**\n * Style variant\n */\n variant?: MessageVariant;\n\n /**\n * Close button title\n */\n title?: string;\n};\n\n/**\n * A Component for rendering the message close button\n */\nfunction MessageCloseButton({\n onAction,\n buttonRenderer,\n title = 'Close',\n variant = 'banner'\n}: Props) {\n const renderedButton = buttonRenderer ? (\n buttonRenderer(title, onAction, variant)\n ) : (\n <Button\n startIcon={<CloseIcon />}\n size=\"sm\"\n title={title}\n variant=\"borderless\"\n onAction={onAction}\n />\n );\n // TODO: JET-48715 - remove marker classes\n // Right now, oj-message-banner component uses this for unit tests and has no alternate way for\n // testing. This will need to be removed as we work on oj-c-message-banner.\n const markerClassForTests = 'oj-c-messagebanner-close-icon';\n const classes = classNames([\n variant === 'banner' && markerClassForTests,\n messageCloseButtonStyles.base,\n messageCloseButtonStyles[variant]\n ]);\n\n // Otherwise, render the close icon\n return <div class={classes}>{renderedButton}</div>;\n}\n\nexport { MessageCloseButton };\n"],"names":["messageCloseButtonStyles","inline","undefined","onAction","buttonRenderer","title","variant","base","_jsx","Object","assign","class","classes","children","renderedButton"],"mappings":"2NAgBA,MAAAA,EAAA,MAAA,iBAAA,WAWEC,YAAAC,yCAyCF,UAAAC,SAAAA,EAAAC,eAAAA,EAAAC,MAAAA,EAAA,QAAAC,QAAAA,EAAA,kMAuBIN,EAAAO,YAKF,OAAAC,MAAA,MAAAC,OAAAC,OAAA,CAAAC,MAAAC,GAAA,CAAAC,SAAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"preact","./utils/UNSAFE_classNames","./MessageFormattingUtils-3182a53c","./classNames-ee48f57b"],function(e,n,s,a,t,i,r){"use strict";const l={base:"_7vdw9s",banner:"_1fo1ih8",inline:void 0,toast:"_1hngwuj"};function c(e){const{detail:s}=e.data;return i.isValidValueForProp(s)?n.jsx(a.Fragment,{children:s}):null}e.MessageDetail=function({item:e,renderer:s=c,variant:a="banner"}){const t=s(e);if(null==t)return null;const i=r.classNames(["banner"===a&&"oj-c-messagebanner-detail",l.base,l[a]]);return n.jsx("div",Object.assign({class:i},{children:t}))}});
|
|
2
|
+
//# sourceMappingURL=MessageDetail-e60f3a62.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageDetail-
|
|
1
|
+
{"version":3,"file":"MessageDetail-e60f3a62.js","sources":["../../src/PRIVATE_Message/MessageDetail.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { ComponentChildren, Fragment } from 'preact';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { MessageRendererDataItem, MessageVariant } from './Message.types';\nimport { isValidValueForProp } from './MessageFormattingUtils';\n\nconst messageDetailStyles = {\n // TODO: Reevaluate once the TEXT component is available (JET-46891)\n base: cssProps`${{\n overflowWrap: 'anywhere'\n }}`,\n\n banner: cssProps`${{\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-typography-body-sm-font-size)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-primary)'\n }}`,\n\n inline: undefined,\n\n toast: cssProps`${{\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-typography-body-sm-font-size)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-detail-text-color)'\n }}`\n};\n\ntype MessageWithDetailText = {\n /**\n * The detail text for the message\n */\n detail?: string;\n};\n\n/**\n * Props for the Detail component\n */\ntype Props<K, D> = {\n /**\n * The data item for rendering the detail content\n */\n item: MessageRendererDataItem<K, D>;\n\n /**\n * A custom renderer for rendering the detail content\n */\n renderer?: (item: MessageRendererDataItem<K, D>) => ComponentChildren;\n\n /**\n * Style variant\n */\n variant?: MessageVariant;\n};\n\n/**\n * Default renderer for rendering the detail content.\n *\n * @param item The data item object\n * @returns Rendered detail content\n */\nfunction defaultDetailRenderer<D extends MessageWithDetailText>(\n item: MessageRendererDataItem<unknown, D>\n): ComponentChildren {\n const { detail } = item.data;\n // If the detail is null or an empty string, do not render the\n // content row\n if (!isValidValueForProp(detail)) {\n return null;\n }\n return <Fragment>{detail}</Fragment>;\n}\n\n/**\n * Detail Component for rendering the detail content of the Message\n */\nfunction MessageDetail<K, D extends MessageWithDetailText>({\n item,\n renderer = defaultDetailRenderer,\n variant = 'banner'\n}: Props<K, D>) {\n const renderedContent = renderer(item);\n\n if (renderedContent == null) return null;\n\n // If detail content is rendered, then wrap it in a div with specified style classes\n // TODO: JET-48715 - remove marker classes\n // Right now, oj-message-banner component uses this for unit tests and has no alternate way for\n // testing. This will need to be removed as we work on oj-c-message-banner.\n const markerClassForTests = 'oj-c-messagebanner-detail';\n const classes = classNames([\n variant === 'banner' && markerClassForTests,\n messageDetailStyles.base,\n messageDetailStyles[variant]\n ]);\n return <div class={classes}>{renderedContent}</div>;\n}\n\nexport { MessageDetail };\n"],"names":["messageDetailStyles","inline","undefined","defaultDetailRenderer","item","detail","data","isValidValueForProp","_jsx","Fragment","children","renderer","variant","renderedContent","base","Object","assign","class","classes"],"mappings":"wLAcA,MAAAA,EAAA,MAAA,iBAAA,WAWEC,YAAAC,oBAyCF,SAAAC,EAAAC,GAGE,MAAAC,OAAAA,GAAAD,EAAAE,KAGA,OAAAC,EAAAA,oBAAAF,GAGAG,EAAAA,IAAAC,EAAAA,SAAA,CAAAC,SAAAL,IAFE,qBAQJ,UAAAD,KAAAA,EAAAO,SAAAA,EAAAR,EAAAS,QAAAA,EAAA,WAKE,MAAAC,EAAAF,EAAAP,cAE6B,OAAA,qEAS3BJ,EAAAc,YAGF,OAAAN,MAAA,MAAAO,OAAAC,OAAA,CAAAC,MAAAC,GAAA,CAAAR,SAAAG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["exports","./utils/UNSAFE_getLocale","./utils/UNSAFE_stringUtils","./Message.types-
|
|
2
|
-
//# sourceMappingURL=MessageFormattingUtils-
|
|
1
|
+
define(["exports","./utils/UNSAFE_getLocale","./utils/UNSAFE_stringUtils","./Message.types-07e4afec","./stringUtils-064b3cbb"],function(t,e,i,n,r){"use strict";const s=Object.freeze({TODAY:{hour:"2-digit",minute:"2-digit",hour12:!0},DEFAULT:{day:"2-digit",month:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0}}),o=/^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$/;t.formatTimestamp=function(t){const i=function(t){const i=e.getLocale(),{DateTimeFormat:n}=Intl;return new n(i,t?s.TODAY:s.DEFAULT)}(function(t){const e=new Date,i=new Date(t);return e.getUTCFullYear()===i.getUTCFullYear()&&e.getUTCMonth()===i.getUTCMonth()&&e.getUTCDate()===i.getUTCDate()}(t));return i.format(new Date(t))},t.isValidValueForProp=function(t,e="string"){switch(e){case"severity":return"string"==typeof t&&n.severities.includes(t);case"timestamp":return"string"==typeof t&&o.test(t);default:return"string"==typeof t&&!r.isEmptyOrUndefined(t)}}});
|
|
2
|
+
//# sourceMappingURL=MessageFormattingUtils-3182a53c.js.map
|
package/amd/{MessageFormattingUtils-1513fdd8.js.map → MessageFormattingUtils-3182a53c.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageFormattingUtils-
|
|
1
|
+
{"version":3,"file":"MessageFormattingUtils-3182a53c.js","sources":["../../src/PRIVATE_Message/MessageFormattingUtils.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { getLocale } from '../utils/UNSAFE_getLocale';\nimport { isEmptyOrUndefined } from '../utils/UNSAFE_stringUtils';\nimport { severities } from './Message.types';\n\n// Types of properties that can be formatted\ntype PropFormat = 'severity' | 'string' | 'timestamp';\n\n/**\n * Options for creating an Intl.DateTimeFormat instance.\n */\nconst DATE_FORMAT_OPTIONS = Object.freeze({\n TODAY: {\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n },\n DEFAULT: {\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n }\n});\n\n/**\n * Regex for validating ISO timestamp\n */\nconst ISO_DATE_REGEX =\n /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$/;\n\n/**\n * Checks if the provided date is today\n *\n * @param isoDate Date to be tested for today\n *\n * @returns boolean indicating if the provided date is today\n */\nfunction isDateToday(isoDate: string) {\n const today = new Date();\n const provided = new Date(isoDate);\n\n return (\n today.getUTCFullYear() === provided.getUTCFullYear() &&\n today.getUTCMonth() === provided.getUTCMonth() &&\n today.getUTCDate() === provided.getUTCDate()\n );\n}\n\n/**\n * Creates an instance of Intl.DateTimeFormat\n *\n * @param isToday A boolean to indicate whether a formatter is needed for the date\n * that is the current day.\n *\n * @returns the formatter instance\n */\nfunction getDateTimeFormatter(isToday: boolean) {\n const locale = getLocale();\n const { DateTimeFormat } = Intl;\n if (isToday) {\n return new DateTimeFormat(locale, DATE_FORMAT_OPTIONS.TODAY as Intl.DateTimeFormatOptions);\n }\n\n return new DateTimeFormat(locale, DATE_FORMAT_OPTIONS.DEFAULT as Intl.DateTimeFormatOptions);\n}\n\n/**\n * Checks if the provided value is valid for the prop specified.\n * By default, this method just checks for the value to be a valid string.\n *\n * @param value The value to be checked\n * @param prop The property for which the value needs to be evaluated\n *\n * @returns the result of the validation\n */\nfunction isValidValueForProp<T>(\n value: T | null | undefined,\n prop: PropFormat = 'string'\n): value is T {\n switch (prop) {\n case 'severity':\n // Should be one of the allowed severity\n return typeof value === 'string' && severities.includes(value as any);\n\n case 'timestamp':\n // Should be a valid ISO Datetime string\n return typeof value === 'string' && ISO_DATE_REGEX.test(value);\n\n case 'string':\n default:\n // anything other than null, undefined and '' is a valid string\n return typeof value === 'string' && !isEmptyOrUndefined(value);\n }\n}\n\n/**\n * Formats the timestamp in the required format based on the current\n * locale.\n *\n * @param isoTime Timestamp in ISO format\n */\nfunction formatTimestamp(isoTime: string) {\n const isToday = isDateToday(isoTime);\n const formatter = getDateTimeFormatter(isToday);\n\n return formatter.format(new Date(isoTime));\n}\n\nexport { formatTimestamp, isValidValueForProp };\n"],"names":["DATE_FORMAT_OPTIONS","Object","freeze","TODAY","hour","minute","hour12","DEFAULT","day","month","year","ISO_DATE_REGEX","isoTime","formatter","isToday","locale","getLocale","DateTimeFormat","Intl","getDateTimeFormatter","isoDate","today","Date","provided","getUTCFullYear","getUTCMonth","getUTCDate","isDateToday","format","value","prop","severities","includes","test","isEmptyOrUndefined"],"mappings":"gKAiBA,MAAMA,EAAsBC,OAAOC,OAAO,CACxCC,MAAO,CACLC,KAAM,UACNC,OAAQ,UACRC,QAAQ,GAEVC,QAAS,CACPC,IAAK,UACLC,MAAO,UACPC,KAAM,UACNN,KAAM,UACNC,OAAQ,UACRC,QAAQ,KAONK,EACJ,uJAyEF,SAAyBC,GACvB,MACMC,EA/CR,SAA8BC,GAC5B,MAAMC,EAASC,EAAAA,aACTC,eAAEA,GAAmBC,KAC3B,OACS,IAAID,EAAeF,EADxBD,EACgCd,EAAoBG,MAGtBH,EAAoBO,SAwCpCY,CAlEpB,SAAqBC,GACnB,MAAMC,EAAQ,IAAIC,KACZC,EAAW,IAAID,KAAKF,GAE1B,OACEC,EAAMG,mBAAqBD,EAASC,kBACpCH,EAAMI,gBAAkBF,EAASE,eACjCJ,EAAMK,eAAiBH,EAASG,aA0DlBC,CAAYf,IAG5B,OAAOC,EAAUe,OAAO,IAAIN,KAAKV,2BA9BnC,SACEiB,EACAC,EAAmB,UAEnB,OAAQA,GACN,IAAK,WAEH,MAAwB,iBAAVD,GAAsBE,EAAUA,WAACC,SAASH,GAE1D,IAAK,YAEH,MAAwB,iBAAVA,GAAsBlB,EAAesB,KAAKJ,GAG1D,QAEE,MAAwB,iBAAVA,IAAuBK,EAAkBA,mBAACL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./hooks/UNSAFE_useUser","./utils/UNSAFE_arrayUtils","./utils/UNSAFE_classNames","./UNSAFE_Flex","./UNSAFE_WindowOverlay","./classNames-ee48f57b","./Flex-09e74761"],function(t,o,i,e,s,n,a,r,l,c){"use strict";const f=s.stringLiteralArray(["top","top-left","top-right","top-start","top-end","bottom","bottom-left","bottom-right","bottom-start","bottom-end"]),d={notificationPosition:"_108xyhh","top-left":"_7d1vnu",top:"_15ini3t","top-right":"_1k6jclu","bottom-left":"ts9wb3",bottom:"tuqs9c","bottom-right":"_13oh39l"};t.MessageLayer=({children:t,offset:i,testId:s,position:n="bottom"})=>{var a,f;const{direction:b}=e.useUser(),p="ltr"===b;let m;switch(n){case"top-start":m=p?d["top-left"]:d["top-right"];break;case"top-end":m=p?d["top-right"]:d["top-left"];break;case"bottom-start":m=p?d["bottom-left"]:d["bottom-right"];break;case"bottom-end":m=p?d["bottom-right"]:d["bottom-left"];break;default:m=d[n]}const h=l.classNames([d.notificationPosition,m]),u="number"==typeof i?{"--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset":`${i}px`,"--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset":`${i}px`}:{"--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset":`${null!==(a=null==i?void 0:i.vertical)&&void 0!==a?a:0}px`,"--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset":`${null!==(f=null==i?void 0:i.horizontal)&&void 0!==f?f:0}px`};return o.jsx(r.WindowOverlay,{children:o.jsx("div",Object.assign({class:h,"data-testid":s,style:void 0!==i?u:void 0},{children:o.jsx(c.Flex,Object.assign({direction:"column",gap:"2x"},{children:t}))}))})},t.positions=f});
|
|
2
|
+
//# sourceMappingURL=MessageLayer-431527dc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageLayer-
|
|
1
|
+
{"version":3,"file":"MessageLayer-431527dc.js","sources":["../../src/PRIVATE_MessageLayer/MessageLayer.tsx"],"sourcesContent":["import { ComponentChildren } from 'preact';\nimport { cssProps } from '@oracle/oraclejet-cssprops';\n\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { stringLiteralArray } from '../utils/UNSAFE_arrayUtils';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Flex } from '../UNSAFE_Flex';\nimport { WindowOverlay } from '../UNSAFE_WindowOverlay';\n\nconst positions = stringLiteralArray([\n 'top',\n 'top-left',\n 'top-right',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-left',\n 'bottom-right',\n 'bottom-start',\n 'bottom-end'\n]);\n\ntype Position = typeof positions[number];\n\ntype Offset =\n | number\n | {\n horizontal?: number;\n vertical?: number;\n };\n\ntype Props = {\n children: ComponentChildren;\n\n /**\n * Defines the fixed position where the notifications will to be placed on the screen.\n * - top-start resolves to top-left in LTR (top-right in RTL)\n * - top-end resolves to top-right in LTR (top-left in RTL)\n * - bottom-start resolves to bottom-left in LTR (bottom-right in RTL)\n * - bottom-end resolves to bottom-right in LTR (bottom-left in RTL)\n *\n * default bottom\n */\n position?: Position;\n\n /**\n * Defines an offset (in pixels) in the placement. Value can be supplied as a number or\n * an object with horizontal and vertical values.\n *\n * default 0\n */\n offset?: Offset;\n\n /**\n * The test id which is assigned to the \"data-testid\" for the component's element.\n * Used for test automation, it is assigned to the wrapper element rendered by the component.\n */\n testId?: string;\n};\n\nconst styles = {\n notificationPosition: cssProps`${{\n position: 'absolute',\n pointerEvents: 'initial',\n width: 'max-content'\n }}`,\n ['top-left']: cssProps`${{\n left: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset)',\n top: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)'\n }}`,\n top: cssProps`${{\n left: 'calc(50% + var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset))',\n top: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)',\n transform: 'translateX(-50%)'\n }}`,\n ['top-right']: cssProps`${{\n right: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset)',\n top: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)'\n }}`,\n ['bottom-left']: cssProps`${{\n left: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset)',\n bottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)'\n }}`,\n bottom: cssProps`${{\n left: 'calc(50% + var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset))',\n bottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)',\n transform: 'translateX(-50%)'\n }}`,\n ['bottom-right']: cssProps`${{\n right: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset)',\n bottom: 'var(--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset)'\n }}`\n} as const;\n\nconst MessageLayer = ({ children, offset, testId, position = 'bottom' }: Props) => {\n const { direction } = useUser();\n const isLtr = direction === 'ltr';\n\n let logicalPosition;\n switch (position) {\n case 'top-start':\n logicalPosition = isLtr ? styles['top-left'] : styles['top-right'];\n break;\n case 'top-end':\n logicalPosition = isLtr ? styles['top-right'] : styles['top-left'];\n break;\n case 'bottom-start':\n logicalPosition = isLtr ? styles['bottom-left'] : styles['bottom-right'];\n break;\n case 'bottom-end':\n logicalPosition = isLtr ? styles['bottom-right'] : styles['bottom-left'];\n break;\n default:\n logicalPosition = styles[position];\n break;\n }\n\n const positionClasses = classNames([styles.notificationPosition, logicalPosition]);\n\n const offsetStyle =\n typeof offset === 'number'\n ? {\n '--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset': `${offset}px`,\n '--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset': `${offset}px`\n }\n : {\n '--oj-c-PRIVATE-DO-NOT-USE-notification-vertical-offset': `${offset?.vertical ?? 0}px`,\n '--oj-c-PRIVATE-DO-NOT-USE-notification-horizontal-offset': `${offset?.horizontal ?? 0}px`\n };\n\n return (\n <WindowOverlay>\n <div\n class={positionClasses}\n data-testid={testId}\n style={offset !== undefined ? offsetStyle : undefined}>\n <Flex direction=\"column\" gap=\"2x\">\n {children}\n </Flex>\n </div>\n </WindowOverlay>\n );\n};\n\nexport type { Position, Offset };\nexport { MessageLayer, positions };\n"],"names":["positions","stringLiteralArray","styles","children","offset","testId","position","direction","useUser","isLtr","logicalPosition","positionClasses","classNames","notificationPosition","offsetStyle","_a","vertical","_b","horizontal","_jsx","WindowOverlay","jsx","Object","assign","class","style","undefined","Flex","gap"],"mappings":"iQASAA,MAAAA,EAAAC,EAAAA,mBAAA,wHAmDAC,EAAA,sBAAA,WAME,WANF,cAAA,WAeE,YAfF,WAmBE,cAnBF,gBAAA,SA4BE,eAAA,2BAMF,EAAAC,SAAAA,EAAAC,OAAAA,EAAAC,OAAAA,EAAAC,SAAAA,EAAA,qBACE,MAAAC,UAAAA,GAAAC,EAAAA,UACAC,EAAA,QAAAF,EAEA,IAAAG,EACA,OAAAJ,GACE,IAAA,YACEI,EAAAD,EAAAP,EAAA,YAAAA,EAAA,mBAEF,IAAA,UACEQ,EAAAD,EAAAP,EAAA,aAAAA,EAAA,kBAEF,IAAA,eACEQ,EAAAD,EAAAP,EAAA,eAAAA,EAAA,sBAEF,IAAA,aACEQ,EAAAD,EAAAP,EAAA,gBAAAA,EAAA,qBAEF,QACEQ,EAAAR,EAAAI,GAIJ,MAAAK,EAAAC,EAAAA,WAAA,CAAAV,EAAAW,qBAAAH,IAEAI,EAAA,iBAAAV,EAEI,wIAIA,CACI,yDAAA,GAAA,QAAAW,EAAAX,MAAAA,OAAA,EAAAA,EAAAY,gBAAA,IAAAD,EAAAA,EAAA,MACA,2DAAA,GAAA,QAAAE,EAAAb,MAAAA,OAAA,EAAAA,EAAAc,kBAAA,IAAAD,EAAAA,EAAA,OAGR,OAAAE,EAAAA,IAAAC,EAAAA,cAAA,CAAAjB,SAAAgB,EAAAE,IAAA,MAAAC,OAAAC,OAAA,CAAAC,MAAAb,EAAA,cAAAN,EAAAoB,WAAAC,IAAAtB,EAAAU,OAAAY,GAAA,CAAAvB,SAAAgB,EAAAE,IAAAM,OAAAL,OAAAC,OAAA,CAAAhB,UAAA,SAAAqB,IAAA,MAAA,CAAAzB,SAAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./utils/UNSAFE_classNames","./index-35690f89","./UNSAFE_Flex","./index-140c213a","./Flex-09e74761","./classNames-ee48f57b"],function(n,s,e,i,a,t,r,c,l){"use strict";const o={banner:"hnmko5",inline:"_101z0t5",toast:"_7n01s8"},g={confirmation:r.SvgIcoSuccessS,error:r.SvgIcoErrorS,info:r.SvgIcoInformationS,warning:r.SvgIcoWarningS},x="_62ly19";n.MessageStartIcon=function({severity:n,variant:e="banner",translations:i}){const a=g[n],t="inline"!==e?s.jsx(c.Flex,Object.assign({align:"center",height:"100%"},{children:s.jsx("span",Object.assign({class:x,role:"img",title:null==i?void 0:i[n]},{children:s.jsx(a,{})}))})):s.jsx("span",Object.assign({class:x,role:"img",title:null==i?void 0:i[n]},{children:s.jsx(a,{})}));return s.jsx("div",Object.assign({class:l.classNames(["banner"===e&&"oj-c-messagebanner-start-icon","_3s7sp3",o[e]]),role:"presentation"},{children:t}))}});
|
|
2
|
+
//# sourceMappingURL=MessageStartIcon-2b34bbc2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageStartIcon-
|
|
1
|
+
{"version":3,"file":"MessageStartIcon-2b34bbc2.js","sources":["../../src/PRIVATE_Message/MessageStartIcon.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { MessageSeverity, MessageVariant } from './Message.types';\nimport {\n MessageConfirmationIcon,\n MessageErrorIcon,\n MessageInfoIcon,\n MessageWarningIcon\n} from '../UNSAFE_ThemedIcons';\nimport { Flex } from '../UNSAFE_Flex';\n\nconst messageStartIconStyles = cssProps`${{\n marginInlineEnd: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-spacing-2x)',\n display: 'flex',\n alignSelf: 'flex-start'\n}}`;\n\nconst severityIconStyles = {\n banner: cssProps`${{\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-start-icon-color)',\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-start-icon-size)',\n height: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-summary-line-height)'\n }}`,\n inline: cssProps`${{\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-inline-start-icon-color)',\n fontSize: '1rem'\n }}`,\n toast: cssProps`${{\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-start-icon-color)',\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-start-icon-size)',\n height: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-start-icon-size)',\n width: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-start-icon-size)'\n }}`\n};\n\nconst severityIcons = {\n confirmation: MessageConfirmationIcon,\n error: MessageErrorIcon,\n info: MessageInfoIcon,\n warning: MessageWarningIcon\n};\n\nconst containerStyles = cssProps`${{\n height: '100%'\n}}`;\n\n/**\n * Props for the StartIcon component\n */\ntype Props = {\n /**\n * The icon severity\n */\n severity: Exclude<MessageSeverity, 'none'>;\n\n /**\n * Style variant\n */\n variant?: MessageVariant;\n\n /**\n * Translations resources\n * TODO: Replace with preact translations when it is available\n */\n translations?: {\n /**\n * Text for 'error' severity level\n */\n error?: string;\n\n /**\n * Text for 'warning' severity level\n */\n warning?: string;\n\n /**\n * Text for 'info' severity level\n */\n info?: string;\n\n /**\n * Text for 'confirmation' severity level\n */\n confirmation?: string;\n };\n};\n\n/**\n * StartIcon Component for rendering the severity based icon in Message\n */\nfunction MessageStartIcon({ severity, variant = 'banner', translations }: Props) {\n const IconComponent = severityIcons[severity];\n // TODO: JET-50793\n const iconContent =\n variant !== 'inline' ? (\n <Flex align=\"center\" height=\"100%\">\n <span class={containerStyles} role=\"img\" title={translations?.[severity]}>\n <IconComponent />\n </span>\n </Flex>\n ) : (\n <span class={containerStyles} role=\"img\" title={translations?.[severity]}>\n <IconComponent />\n </span>\n );\n // If detail content is rendered, then wrap it in a div with specified style classes\n // TODO: JET-48715 - remove marker classes\n // Right now, oj-message-banner component uses this for unit tests and has no alternate way for\n // testing. This will need to be removed as we work on oj-c-message-banner.\n const markerClassForTests = 'oj-c-messagebanner-start-icon';\n return (\n <div\n class={classNames([\n variant === 'banner' && markerClassForTests,\n messageStartIconStyles,\n severityIconStyles[variant]\n ])}\n role=\"presentation\">\n {iconContent}\n </div>\n );\n}\n\nexport { MessageStartIcon };\n"],"names":["severityIconStyles","severityIcons","confirmation","MessageConfirmationIcon","SvgIcoSuccessS","error","MessageErrorIcon","SvgIcoErrorS","info","MessageInfoIcon","SvgIcoInformationS","warning","MessageWarningIcon","containerStyles","severity","variant","translations","IconComponent","iconContent","_jsx","jsx","Flex","Object","assign","align","height","children","class","role","title","classNames"],"mappings":"uNAmBA,MAMAA,EAAA,QAAA,gBAAA,4BAkBAC,EAAA,CACEC,aAAAC,EADFC,eAEEC,MAAAC,EAFFC,aAGEC,KAAAC,EAHFC,mBAIEC,QAAAC,EAAAA,gBAGFC,EAAA,6BAgDA,UAAAC,SAAAA,EAAAC,QAAAA,EAAA,SAAAC,aAAAA,IACE,MAAAC,EAAAhB,EAAAa,GAEAI,EAAA,WAAAH,EAAAI,EAAAC,IAAAC,EAAAA,KAAAC,OAAAC,OAAA,CAAAC,MAAA,SAAAC,OAAA,QAAA,CAAAC,SAAAP,EAAAC,IAAA,OAAAE,OAAAC,OAAA,CAAAI,MAAAd,EAAAe,KAAA,MAAAC,MAAAb,MAAAA,OAAA,EAAAA,EAAAF,IAAA,CAAAY,SAAAP,EAAAA,IAAAF,EAAA,UAAAE,EAAAC,IAAA,OAAAE,OAAAC,OAAA,CAAAI,MAAAd,EAAAe,KAAA,MAAAC,MAAAb,MAAAA,OAAA,EAAAA,EAAAF,IAAA,CAAAY,SAAAP,EAAAA,IAAAF,EAAA,OAiBA,OAAAE,MAAA,MAAAG,OAAAC,OAAA,CAAAI,MAAAG,EAAAA,WAAA,+CAnGF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./utils/UNSAFE_classNames","./classNames-ee48f57b"],function(e,s,a,n,t){"use strict";const i={base:"_1dkercd",banner:"_15uhhih",inline:"_1kwtkhb",toast:"eiccmh"};e.MessageSummary=function({text:e,variant:a="banner"}){const n=t.classNames(["banner"===a&&"oj-c-messagebanner-summary",i.base,i[a]]);return s.jsx("div",Object.assign({role:"heading",class:n},{children:e}))}});
|
|
2
|
+
//# sourceMappingURL=MessageSummary-4be22c0e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSummary-
|
|
1
|
+
{"version":3,"file":"MessageSummary-4be22c0e.js","sources":["../../src/PRIVATE_Message/MessageSummary.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { MessageVariant } from './Message.types';\n\nconst messageSummaryStyles = {\n // TODO: Reevaluate once the TEXT component is available (JET-46891)\n base: cssProps`${{\n flex: '1',\n overflowWrap: 'anywhere'\n }}`,\n\n banner: cssProps`${{\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-summary-text-size)',\n fontWeight: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-summary-text-weight)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-banner-summary-text-color)'\n }}`,\n\n inline: cssProps`${{\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-user-assistance-inline-font-size)',\n fontWeight: '400',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-user-assistance-inline-text-color)',\n lineHeight: 1.333\n }}`,\n\n toast: cssProps`${{\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-summary-text-size)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-message-toast-summary-text-color)'\n }}`\n};\n\n/**\n * Props for the Summary component\n */\ntype Props = {\n /**\n * The summary text\n */\n text?: string;\n\n /**\n * Style variant\n */\n variant?: MessageVariant;\n};\n\n/**\n * Summary Component for rendering the summary text of the Message\n */\nfunction MessageSummary({ text, variant = 'banner' }: Props) {\n // If detail content is rendered, then wrap it in a div with specified style classes\n // TODO: JET-48715 - remove marker classes\n // Right now, oj-message-banner component uses this for unit tests and has no alternate way for\n // testing. This will need to be removed as we work on oj-c-message-banner.\n const markerClassForTests = 'oj-c-messagebanner-summary';\n const classes = classNames([\n variant === 'banner' && markerClassForTests,\n messageSummaryStyles.base,\n messageSummaryStyles[variant]\n ]);\n return (\n <div role=\"heading\" class={classes}>\n {text}\n </div>\n );\n}\n\nexport { MessageSummary };\n"],"names":["messageSummaryStyles","text","variant","base","_jsx","Object","assign","role","class","classes","children"],"mappings":"uIAWA,MAAAA,EAAA,MAAA,kBAAA,kBAAA,4CA4CA,UAAAC,KAAAA,EAAAC,QAAAA,EAAA,4EAQIF,EAAAG,YAGF,OAAAC,MAAA,MAAAC,OAAAC,OAAA,CAAAC,KAAA,UAAAC,MAAAC,GAAA,CAAAC,SAAAT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"./utils/UNSAFE_classNames","./MessageFormattingUtils-3182a53c","./classNames-ee48f57b"],function(s,e,a,n,t,i){"use strict";const r={banner:"_1pwbqzl",inline:void 0,toast:void 0};s.MessageTimestamp=function({value:s,variant:a="banner"}){const n=i.classNames(["banner"===a&&"oj-c-messagebanner-timestamp",r[a]]),c=t.formatTimestamp(s);return e.jsx("div",Object.assign({class:n},{children:c}))}});
|
|
2
|
+
//# sourceMappingURL=MessageTimestamp-f06381d6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageTimestamp-
|
|
1
|
+
{"version":3,"file":"MessageTimestamp-f06381d6.js","sources":["../../src/PRIVATE_Message/MessageTimestamp.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { MessageVariant } from './Message.types';\nimport { formatTimestamp } from './MessageFormattingUtils';\n\nconst messageTimestampStyles = {\n banner: cssProps`${{\n flexShrink: 0,\n fontSize: 'var(--oj-c-PRIVATE-DO-NOT-USE-typography-body-xs-font-size)',\n color: 'var(--oj-c-PRIVATE-DO-NOT-USE-core-text-color-secondary)'\n }}`,\n inline: undefined,\n toast: undefined\n};\n\n/**\n * Props for the Timestamp component\n */\ntype Props = {\n /**\n * The timestamp to show in ISO format\n */\n value: string;\n\n /**\n * Style variant\n */\n variant?: MessageVariant;\n};\n\n/**\n * Timestamp Component for rendering timestamp in Message\n */\nfunction MessageTimestamp({ value, variant = 'banner' }: Props) {\n // If detail content is rendered, then wrap it in a div with specified style classes\n // TODO: JET-48715 - remove marker classes\n // Right now, oj-message-banner component uses this for unit tests and has no alternate way for\n // testing. This will need to be removed as we work on oj-c-message-banner.\n const markerClassForTests = 'oj-c-messagebanner-timestamp';\n const classes = classNames([\n variant === 'banner' && markerClassForTests,\n messageTimestampStyles[variant]\n ]);\n\n // Otherwise, render the timestamp\n const formattedTimestamp = formatTimestamp(value as string);\n return <div class={classes}>{formattedTimestamp}</div>;\n}\n\nexport { MessageTimestamp };\n"],"names":["messageTimestampStyles","inline","undefined","toast","value","variant","formattedTimestamp","formatTimestamp","_jsx","Object","assign","class","classes","children"],"mappings":"6KAaA,MAAAA,EAAA,QAAA,WAMEC,YAAAC,EACAC,WAAAD,sBAqBF,UAAAE,MAAAA,EAAAC,QAAAA,EAAA,qFAYEC,EAAAC,kBAAAH,GACA,OAAAI,MAAA,MAAAC,OAAAC,OAAA,CAAAC,MAAAC,GAAA,CAAAC,SAAAP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["exports","preact/jsx-runtime",'module',"preact/hooks","./UNSAFE_Environment","./hooks/PRIVATE_useMessagesFocusManager","./hooks/UNSAFE_useBreakpointValues","./hooks/UNSAFE_useTranslationBundle","./PRIVATE_Message","./PRIVATE_MessageLayer","./UNSAFE_Flex","./UNSAFE_FocusTrap","./UNSAFE_LiveRegion","./utils/UNSAFE_arrayUtils","./utils/UNSAFE_classNames","./classNames-ee48f57b","./MessageLayer-431527dc","./FocusTrap-d3e74e81","./Flex-09e74761","./MessagesManager-f08bf90d","./MessageUtils-8f1f842d"],function(e,t,s,n,o,a,r,i,l,c,u,d,g,m,f,h,v,p,x,R,y){"use strict";m.stringLiteralArray(["top","top-left","top-right","top-start","top-end","bottom","bottom-left","bottom-right","bottom-start","bottom-end"]);const b="_1dehc8v",j={entering:e=>({from:{transform:`translate(0, ${e.offsetHeight}px)`,opacity:1},to:{transform:"translate(0, 0)",opacity:1},end:{transform:"unset",opacity:1},options:{duration:250}}),exiting:{from:{opacity:1},to:{opacity:0},end:{opacity:0},options:{duration:250}}},E={opacity:0};e.MessageToast=function({data:e,detailRendererKey:s,iconRendererKey:c,renderers:u,onClose:d,offset:m,position:f}){var F,M,k,S;const T=n.useRef(new Map),A=n.useRef(null),_=n.useRef(null),N=n.useRef(null),[U,O]=n.useState(),[I,V]=n.useState(e.length>0),[L,P]=n.useState(!1),z=i.useTranslationBundle("@oracle/oraclejet-preact"),C=n.useRef(e.length),w=n.useRef(0);C.current=e.length,n.useImperativeHandle(N,()=>({focus:()=>{var t;return!!e.length&&(A.current=null!==(t=T.current.get(e[0].key))&&void 0!==t?t:null,P(!0),!0)},contains:t=>{var s,n;return!(!e.length||!t)&&(null!==(n=null===(s=_.current)||void 0===s?void 0:s.contains(t))&&void 0!==n&&n)}}),[e]);const{controller:B,handlers:D}=a.useMessageFocusManager(N,{onFocus:n.useCallback(()=>{O(z.message_navigationFromMessagesRegion())},[z]),onFocusLeave:n.useCallback(()=>{P(!1)},[])},{handleEscapeKey:!1}),W=n.useCallback((t,s,n)=>{var o;const a=null==n?void 0:n.contains(document.activeElement);if(0===C.current)return V(!1),P(!1),void(a&&setImmediate(()=>B.restorePriorFocus()));const r=s+1<e.length?s+1:s-1;if(r>-1&&a){const t=e[r].key;null===(o=T.current.get(t))||void 0===o||o.focus()}},[B,e]),K=n.useCallback(e=>t=>T.current.set(e,t),[]);n.useEffect(()=>{const t=w.current;if(w.current=e.length,e.length)return V(!0),e.length>t&&O(z.message_navigationToMessagesRegion()),void B.prioritize();O(t?z.messageToast_allMessagesClosed():"")},[B,e.length,z]);const H=r.useBreakpointValues({sm:"--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-sm",md:"--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-md",lg:"--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-lg"}),$=r.useBreakpointValues({sm:{horizontal:"number"==typeof m?m:null!==(F=null==m?void 0:m.horizontal)&&void 0!==F?F:0,vertical:16+("number"==typeof m?m:null!==(M=null==m?void 0:m.horizontal)&&void 0!==M?M:0)},lg:{horizontal:"number"==typeof m?m:null!==(k=null==m?void 0:m.horizontal)&&void 0!==k?k:0,vertical:24+("number"==typeof m?m:null!==(S=null==m?void 0:m.horizontal)&&void 0!==S?S:0)}}),q=n.useMemo(()=>({close:z.close(),confirmation:z.confirmation(),error:z.error(),info:z.info(),warning:z.warn()}),[z]),G=h.classNames([b,"oj-c-colorscheme-dark","oj-color-invert"]);return I||0!==e.length?t.jsxs(o.EnvironmentProvider,Object.assign({environment:{colorScheme:"dark"}},{children:[t.jsx(v.MessageLayer,Object.assign({offset:$,position:f},{children:t.jsx("div",Object.assign({class:G,ref:_,tabIndex:-1},D,{children:t.jsx(p.FocusTrap,Object.assign({autoFocusRef:A,isDisabled:!L},{children:t.jsx(x.Flex,Object.assign({direction:"column",gap:"1x",align:"center",maxWidth:H},{children:t.jsx(R.MessagesManager,Object.assign({animationStates:j,initialAnimationStyles:E,data:e,onMessageWillRemove:W},{children:({index:e,item:n})=>t.jsx(l.Message,{messageRef:K(n.key),item:n,detailRenderer:y.getRendererWithoutIndex(n,s,u),iconRenderer:y.getRendererWithoutIndex(n,c,u),index:e,onClose:d,translations:q,variant:"toast"},n.key)}))}))}))}))})),t.jsx(g.LiveRegion,{children:U})]})):t.jsx(g.LiveRegion,{children:U})}});
|
|
2
|
+
//# sourceMappingURL=MessageToast-6300e7d8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageToast-ddea810f.js","sources":["../../src/UNSAFE_MessageToast/MessageToast.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { ComponentChildren, ComponentProps, RefObject } from 'preact';\nimport {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { EnvironmentProvider } from '../UNSAFE_Environment';\nimport {\n FocusableComponentHandle,\n useMessageFocusManager\n} from '../hooks/PRIVATE_useMessagesFocusManager';\nimport { useBreakpointValues } from '../hooks/UNSAFE_useBreakpointValues';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { getRendererWithoutIndex, Message, MessagesManager } from '../PRIVATE_Message';\nimport { MessageLayer } from '../PRIVATE_MessageLayer';\nimport { BundleType } from '../resources/nls/bundle';\nimport { Flex } from '../UNSAFE_Flex';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { stringLiteralArray } from '../utils/UNSAFE_arrayUtils';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Item, ItemMetadata } from '../utils/UNSAFE_dataProvider';\nimport { Size } from '../utils/UNSAFE_size';\n\n// TODO: refactor types so we don't repeat them here and MessageLayer\n// https://jira.oraclecorp.com/jira/browse/JET-54212\nconst positions = stringLiteralArray([\n 'top',\n 'top-left',\n 'top-right',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-left',\n 'bottom-right',\n 'bottom-start',\n 'bottom-end'\n]);\n\ntype Position = typeof positions[number];\n\ntype Offset =\n | number\n | {\n horizontal?: number;\n vertical?: number;\n };\n\n// TODO: Refactor Message Item types\n// https://jira.oraclecorp.com/jira/browse/JET-54215\n\n/**\n * An object representing a single message in MessageToast component.\n */\nexport type MessageToastItem = {\n /**\n * Defines whether or not to include the close icon for the message\n *\n * @default 'on'\n */\n closeAffordance?: 'on' | 'off';\n\n /**\n * Defines the detail text of the message\n */\n detail?: string;\n\n /**\n * Defines the severity of the message\n *\n * @default 'error'\n */\n severity?: 'none' | 'error' | 'warning' | 'confirmation' | 'info';\n\n /**\n * Defines the sound to be played when opening the message\n *\n * @default 'none'\n */\n sound?: 'default' | 'none' | string;\n\n /**\n * Defines the primary text of the message\n */\n summary?: string;\n\n /**\n * Defines the time after which the message is to be closed automatically\n *\n * on - default of 5s\n * off - no auto timeout, manually dismissed\n * number - seconds in milliseconds format\n *\n * @default 'off'\n */\n autoTimeout?: 'on' | 'off' | number;\n};\n\n/**\n * Structure of data item passed to the renderers\n */\nexport type MessageToastRendererDataItem<K, D> = {\n /**\n * The data for the current message\n */\n data: D;\n\n /**\n * The key for the current message\n */\n key: K;\n\n /**\n * The metadata for the current message\n */\n metadata?: ItemMetadata<K>;\n};\n\ntype Props<Key, Data> = {\n /**\n * Defines the fixed position where the notifications will to be placed on the screen.\n * - top-start resolves to top-left in LTR (top-right in RTL)\n * - top-end resolves to top-right in LTR (top-left in RTL)\n * - bottom-start resolves to bottom-left in LTR (bottom-right in RTL)\n * - bottom-end resolves to bottom-right in LTR (bottom-left in RTL)\n *\n * default bottom\n */\n position?: Position;\n\n /**\n * Defines an offset (in pixels) in the placement. Value can be supplied as a number or\n * an object with horizontal and vertical values.\n *\n * default 0\n */\n offset?: Offset;\n\n /**\n * Data for the MessageToast component. This data is used for rendering each toast message.\n * The key for each message will be configured using the key of the corresponding item. This way,\n * the component will know whether a new message is being added or an existing message is being updated/removed\n * when the new data comes in.\n */\n data: Item<Key, Data>[];\n\n /**\n * Triggered when a user tries to close a message through UI interaction. The application\n * should listen to this event and remove the corresponding message item from the data\n * which would then result in the message closed. If the application\n * fails to remove the message item from the data, then no change will be done in the\n * UI by the component and the message will stay in the UI opened.\n */\n onClose?: (item: Item<Key, Data>) => void;\n\n /**\n * Applications can use this property to provide the key of a renderer or a function that\n * returns the key of a renderer to use for rendering the detail content.\n *\n * When a renderer key is provided as a value for this property, the corresponding renderer\n * will be used for rendering the detail content for all the messages. If applications want\n * to use a different renderer for different messages, they can provide a function that\n * returns a renderer key instead.\n *\n * The provided function should accept an Item and return a key to a renderer for\n * rendering the corresponding message's detail content. The value returned from this function\n * should be a key to one of the renderers provided. If the returned value is not\n * one of the keys of the provided renderers, the component will throw an Error.\n *\n * If the function returns undefined, the component then will perform default rendering\n * of the detail content using the detail property of the corresponding message.\n *\n * If an application specifies both detail and a valid detailRendererKey, the detailRendererKey will\n * take precedence and the corresponding renderer will be used for rendering the detail content.\n */\n detailRendererKey?: string | ((item: Item<Key, Data>) => string | undefined);\n\n /**\n * Applications can use this property to provide the key of a renderer or a function that\n * returns the key of the renderer to use for rendering the start icon.\n *\n * When a renderer key is provided as a value for this property, the corresponding renderer\n * will be used for rendering the start icon for all the messages. If applications want\n * to use a different renderer for different messages, they can provide a function that\n * returns a renderer key instead.\n *\n * The provided function should accept an Item and return a key to a renderer for\n * rendering the corresponding message's start icon. The value returned from this function\n * should be a key to one of the renderers provided. If the returned value is not\n * one of the keys of the provided renderers, the component will throw an Error.\n *\n * If the function returns undefined, the component then will perform default rendering\n * of the start icon using the severity property of the corresponding message.\n *\n * If an application specifies both severity and a valid iconRendererKey, the iconRendererKey will\n * take precedence and the corresponding renderer will be used for rendering the start icon.\n */\n iconRendererKey?: string | ((item: Item<Key, Data>) => string | undefined);\n\n /**\n * A set of available renderers for rendering the message content. Which renderer is used\n * for rendering which content will be decided by specific properties in the row data.\n */\n renderers?: Record<string, (data: MessageToastRendererDataItem<Key, Data>) => ComponentChildren>;\n};\n\nconst messageToastStyles = {\n base: cssProps`${{\n height: 'fit-content',\n width: 'fit-content'\n }}`\n} as const;\n\n/**\n * Animation states for toast messages\n * TODO: Get this from theme context provider\n */\nconst animationStates: ComponentProps<typeof MessagesManager>['animationStates'] = {\n entering: (node) => ({\n from: {\n transform: `translate(0, ${node.offsetHeight}px)`,\n opacity: 1\n },\n to: {\n transform: 'translate(0, 0)',\n opacity: 1\n },\n end: {\n transform: 'unset',\n opacity: 1\n },\n options: {\n duration: 250\n }\n }),\n exiting: {\n from: {\n opacity: 1\n },\n to: {\n opacity: 0\n },\n end: {\n opacity: 0\n },\n options: {\n duration: 250\n }\n }\n};\nconst initialAnimationStyles = {\n opacity: 0\n} as const;\n\nexport function MessageToast<K extends string | number, D extends MessageToastItem>({\n data,\n detailRendererKey,\n iconRendererKey,\n renderers,\n onClose,\n offset,\n position\n}: Props<K, D>) {\n const messagesRef = useRef(new Map<K, HTMLDivElement | null>());\n const autoFocusRef = useRef<HTMLDivElement>(null) as RefObject<HTMLDivElement | null>;\n const containerDivRef = useRef<HTMLDivElement>(null);\n const focusHandleRef = useRef<FocusableComponentHandle>(null);\n const [liveRegionText, setLiveRegionText] = useState<string>();\n const [shouldRender, setShouldRender] = useState(data.length > 0);\n const [shouldTrapFocus, setShouldTrapFocus] = useState(false);\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // We need a ref that holds the current & previous data length, as the exiting\n // node will always call handleNextFocus with previous data.\n // As in TransitionGroup, when an item is removed from the data, a new vnode\n // will not be created instead previous vnode will be used. So, the new handleNextFocus\n // will not be called when the old vnode exits. Thus, we will be using a ref\n // to always get the correct current data length.\n const dataLengthRef = useRef(data.length);\n const prevDataLengthRef = useRef(0);\n // Update the data length ref\n dataLengthRef.current = data.length;\n\n // Update the focusHandleRef\n useImperativeHandle(\n focusHandleRef,\n () => ({\n focus: () => {\n // Only trigger focus if the component is rendering messages\n if (data.length) {\n // set the autoFocus ref to the first message and enable the focus trap\n // this will automatically focus the first message\n autoFocusRef.current = messagesRef.current.get(data[0].key) ?? null;\n setShouldTrapFocus(true);\n return true;\n }\n return false;\n },\n contains: (element: Element) => {\n // Only invoke method if the component is rendering messages\n if (data.length && element) {\n return containerDivRef.current?.contains(element) ?? false;\n }\n return false;\n }\n }),\n [data]\n );\n\n // Register handlers for focus management\n const { controller, handlers } = useMessageFocusManager(\n focusHandleRef,\n {\n onFocus: useCallback(() => {\n setLiveRegionText(translations.message_navigationFromMessagesRegion());\n }, [translations]),\n onFocusLeave: useCallback(() => {\n // disable trap which should revert the focus back to the last focused item\n setShouldTrapFocus(false);\n }, [])\n },\n {\n // we do not want the focus manager to handle Esc key as we handle it using the\n // FocusTrap here\n handleEscapeKey: false\n }\n );\n\n /**\n * Handles focus when a message is closed and animated away from the DOM\n * @param key The key of the message\n * @param index The index of the message\n */\n const handleNextFocus = useCallback(\n (_key: K, index: number, closedMessageNode?: Element) => {\n const isClosedMessageFocused = closedMessageNode?.contains(document.activeElement);\n\n // If there are no messages, do not render anything. As the old messages\n // are still in the DOM, use the data count to determine what to do next as it\n // represents the next state.\n if (dataLengthRef.current === 0) {\n setShouldRender(false);\n setShouldTrapFocus(false);\n // If the current message holds focus, then restore previous focus\n if (isClosedMessageFocused) {\n // As we have FocusTrap, trying to restore focus now will simply result in focus being pulled\n // back again. So, we restore the focus in the next tick so that the rendering will have been\n // done in the microtask.\n setImmediate(() => controller.restorePriorFocus());\n }\n return;\n }\n\n // In TransitionGroup, when an item is removed from the data, a new vnode\n // will not be created instead previous vnode will be used. So, the new handleNextFocus\n // will not be called when the old vnode exits. Thus, all the deps will not be pointing to\n // the current references, rather they will be pointing to the ones where this vnode\n // last existed in the data.\n // This means, the data will contain the closing message as well. But, all the ref objects\n // still point to the most up-to-date values. With that in mind, we will be evaluating the\n // following values.\n const renderedMessagesCount = data.length;\n\n // Now that this message is closed, focus the next message that will take this index. If no\n // message will take this message's index, then it means that this is the last message. If\n // that is the case, focus the message at the previous index.\n // Use the count of the messages that are currently shown in the UI (current state including\n // the message that will be removed). This way we can get the correct item from the data\n // as it will contain the closing message as well.\n const nextMessageIndexToFocus = index + 1 < renderedMessagesCount ? index + 1 : index - 1;\n\n // if next message is available then transfer the focus to the next element\n if (nextMessageIndexToFocus > -1 && isClosedMessageFocused) {\n const nextMessageKey = data[nextMessageIndexToFocus].key;\n messagesRef.current.get(nextMessageKey)?.focus();\n }\n },\n [controller, data]\n );\n\n // We will be using a function based ref to store the refs in the Map\n const setHTMLDivElement = useCallback(\n // TODO: use ramda.curry here (currently it is throwing ts error when used with generics)\n (key: K) => {\n return (ref: HTMLDivElement | null) => messagesRef.current.set(key, ref);\n },\n []\n );\n // Prioritize this component whenever the data changes and\n // the new data has at least one message\n useEffect(() => {\n const previousDataLength = prevDataLengthRef.current;\n prevDataLengthRef.current = data.length;\n\n // if there are messages that need to be rendered now, then do the following deeds:\n // 1. set the shouldRender flag\n // 2. set the live region\n // 3. prioritize this message component to be the latest\n if (data.length) {\n // set state to render content whenever the data is not empty\n setShouldRender(true);\n if (data.length > previousDataLength) {\n // Only when having a new message, update the aria-live area with the\n // text to indicate how to get the focus to the new message.\n setLiveRegionText(translations.message_navigationToMessagesRegion());\n }\n controller.prioritize();\n return;\n }\n\n // if there were messages and now removed, then set the live region to\n // announce this information\n if (previousDataLength) {\n setLiveRegionText(translations.messageToast_allMessagesClosed());\n return;\n }\n\n // When there are no messages, clear the live region so that\n // the navigation text will be read when a new message appear\n setLiveRegionText('');\n }, [controller, data.length, translations]);\n\n // determine responsive max-width\n const maxWidth = useBreakpointValues<Size>({\n sm: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-sm',\n md: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-md',\n lg: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-lg'\n });\n // without offset, the messages will be hugging the vertical edges of the screen\n // so we will set a default offset.vertical value (any offset from the props will be\n // added to this).\n const paddedOffset = useBreakpointValues<Offset>({\n sm: {\n horizontal: typeof offset === 'number' ? offset : offset?.horizontal ?? 0,\n vertical: 16 + (typeof offset === 'number' ? offset : offset?.horizontal ?? 0)\n },\n lg: {\n horizontal: typeof offset === 'number' ? offset : offset?.horizontal ?? 0,\n vertical: 24 + (typeof offset === 'number' ? offset : offset?.horizontal ?? 0)\n }\n });\n\n // TODO: move this to the individual components.\n // Cannot do this as of now, as doing do results in oj-message-banner not working.\n const messageTranslations = useMemo(\n () => ({\n close: translations.close(),\n confirmation: translations.confirmation(),\n error: translations.error(),\n info: translations.info(),\n warning: translations.warn()\n }),\n [translations]\n );\n const rootClasses = classNames([\n messageToastStyles.base,\n // by default the toast messages are dark, so add the required classes\n 'oj-c-colorscheme-dark',\n 'oj-color-invert'\n ]);\n\n // When both shouldRender flag is false and no data to render, do not render\n // anything except the live region\n if (!shouldRender && data.length === 0) {\n return <LiveRegion>{liveRegionText}</LiveRegion>;\n }\n\n return (\n <EnvironmentProvider environment={{ colorScheme: 'dark' }}>\n <MessageLayer offset={paddedOffset} position={position}>\n <div\n class={rootClasses}\n ref={containerDivRef}\n tabIndex={-1} // Need to add tabindex to make the container receive the focus events\n {...handlers}>\n <FocusTrap autoFocusRef={autoFocusRef} isDisabled={!shouldTrapFocus}>\n <Flex direction=\"column\" gap=\"1x\" align=\"center\" maxWidth={maxWidth}>\n <MessagesManager\n animationStates={animationStates}\n initialAnimationStyles={initialAnimationStyles}\n data={data}\n onMessageWillRemove={handleNextFocus}>\n {({ index, item }) => (\n <Message\n messageRef={setHTMLDivElement(item.key)}\n item={item}\n detailRenderer={getRendererWithoutIndex(item, detailRendererKey, renderers)}\n iconRenderer={getRendererWithoutIndex(item, iconRendererKey, renderers)}\n index={index}\n key={item.key}\n onClose={onClose}\n translations={messageTranslations}\n variant=\"toast\"\n />\n )}\n </MessagesManager>\n </Flex>\n </FocusTrap>\n </div>\n </MessageLayer>\n <LiveRegion>{liveRegionText}</LiveRegion>\n </EnvironmentProvider>\n );\n}\n"],"names":["stringLiteralArray","messageToastStyles","animationStates","entering","node","from","transform","offsetHeight","opacity","to","end","options","duration","exiting","initialAnimationStyles","data","detailRendererKey","iconRendererKey","renderers","onClose","offset","position","autoFocusRef","useRef","containerDivRef","focusHandleRef","shouldRender","setShouldRender","useState","length","translations","useTranslationBundle","prevDataLengthRef","dataLengthRef","current","useImperativeHandle","_a","messagesRef","get","key","contains","element","_b","onFocus","useCallback","setLiveRegionText","message_navigationFromMessagesRegion","onFocusLeave","handleEscapeKey","isClosedMessageFocused","closedMessageNode","document","activeElement","nextMessageIndexToFocus","index","controller","ref","set","previousDataLength","message_navigationToMessagesRegion","messageToast_allMessagesClosed","sm","md","lg","messageTranslations","useMemo","close","confirmation","error","info","warning","warn","_jsxs","EnvironmentProvider","Object","assign","environment","colorScheme","children","_jsx","jsx","MessageLayer","paddedOffset","class","rootClasses","tabIndex","handlers","FocusTrap","isDisabled","shouldTrapFocus","Flex","direction","gap","align","maxWidth","MessagesManager","onMessageWillRemove","handleNextFocus","item","Message","messageRef","setHTMLDivElement","detailRenderer","getRendererWithoutIndex","iconRenderer","variant","LiveRegion","liveRegionText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageToast-6300e7d8.js","sources":["../../src/UNSAFE_MessageToast/MessageToast.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { cssProps } from '@oracle/oraclejet-cssprops';\nimport { ComponentChildren, ComponentProps, RefObject } from 'preact';\nimport {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'preact/hooks';\n\nimport { EnvironmentProvider } from '../UNSAFE_Environment';\nimport {\n FocusableComponentHandle,\n useMessageFocusManager\n} from '../hooks/PRIVATE_useMessagesFocusManager';\nimport { useBreakpointValues } from '../hooks/UNSAFE_useBreakpointValues';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { getRendererWithoutIndex, Message, MessagesManager } from '../PRIVATE_Message';\nimport { MessageLayer } from '../PRIVATE_MessageLayer';\nimport { BundleType } from '../resources/nls/bundle';\nimport { Flex } from '../UNSAFE_Flex';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { stringLiteralArray } from '../utils/UNSAFE_arrayUtils';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Item, ItemMetadata } from '../utils/UNSAFE_dataProvider';\nimport { Size } from '../utils/UNSAFE_size';\n\n// TODO: refactor types so we don't repeat them here and MessageLayer\n// https://jira.oraclecorp.com/jira/browse/JET-54212\nconst positions = stringLiteralArray([\n 'top',\n 'top-left',\n 'top-right',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-left',\n 'bottom-right',\n 'bottom-start',\n 'bottom-end'\n]);\n\ntype Position = typeof positions[number];\n\ntype Offset =\n | number\n | {\n horizontal?: number;\n vertical?: number;\n };\n\n// TODO: Refactor Message Item types\n// https://jira.oraclecorp.com/jira/browse/JET-54215\n\n/**\n * An object representing a single message in MessageToast component.\n */\nexport type MessageToastItem = {\n /**\n * Defines whether or not to include the close icon for the message\n *\n * @default 'on'\n */\n closeAffordance?: 'on' | 'off';\n\n /**\n * Defines the detail text of the message\n */\n detail?: string;\n\n /**\n * Defines the severity of the message\n *\n * @default 'error'\n */\n severity?: 'none' | 'error' | 'warning' | 'confirmation' | 'info';\n\n /**\n * Defines the sound to be played when opening the message\n *\n * @default 'none'\n */\n sound?: 'default' | 'none' | string;\n\n /**\n * Defines the primary text of the message\n */\n summary?: string;\n\n /**\n * Defines the time after which the message is to be closed automatically\n *\n * on - default of 5s\n * off - no auto timeout, manually dismissed\n * number - seconds in milliseconds format\n *\n * @default 'off'\n */\n autoTimeout?: 'on' | 'off' | number;\n};\n\n/**\n * Structure of data item passed to the renderers\n */\nexport type MessageToastRendererDataItem<K, D> = {\n /**\n * The data for the current message\n */\n data: D;\n\n /**\n * The key for the current message\n */\n key: K;\n\n /**\n * The metadata for the current message\n */\n metadata?: ItemMetadata<K>;\n};\n\ntype Props<Key, Data> = {\n /**\n * Defines the fixed position where the notifications will to be placed on the screen.\n * - top-start resolves to top-left in LTR (top-right in RTL)\n * - top-end resolves to top-right in LTR (top-left in RTL)\n * - bottom-start resolves to bottom-left in LTR (bottom-right in RTL)\n * - bottom-end resolves to bottom-right in LTR (bottom-left in RTL)\n *\n * default bottom\n */\n position?: Position;\n\n /**\n * Defines an offset (in pixels) in the placement. Value can be supplied as a number or\n * an object with horizontal and vertical values.\n *\n * default 0\n */\n offset?: Offset;\n\n /**\n * Data for the MessageToast component. This data is used for rendering each toast message.\n * The key for each message will be configured using the key of the corresponding item. This way,\n * the component will know whether a new message is being added or an existing message is being updated/removed\n * when the new data comes in.\n */\n data: Item<Key, Data>[];\n\n /**\n * Triggered when a user tries to close a message through UI interaction. The application\n * should listen to this event and remove the corresponding message item from the data\n * which would then result in the message closed. If the application\n * fails to remove the message item from the data, then no change will be done in the\n * UI by the component and the message will stay in the UI opened.\n */\n onClose?: (item: Item<Key, Data>) => void;\n\n /**\n * Applications can use this property to provide the key of a renderer or a function that\n * returns the key of a renderer to use for rendering the detail content.\n *\n * When a renderer key is provided as a value for this property, the corresponding renderer\n * will be used for rendering the detail content for all the messages. If applications want\n * to use a different renderer for different messages, they can provide a function that\n * returns a renderer key instead.\n *\n * The provided function should accept an Item and return a key to a renderer for\n * rendering the corresponding message's detail content. The value returned from this function\n * should be a key to one of the renderers provided. If the returned value is not\n * one of the keys of the provided renderers, the component will throw an Error.\n *\n * If the function returns undefined, the component then will perform default rendering\n * of the detail content using the detail property of the corresponding message.\n *\n * If an application specifies both detail and a valid detailRendererKey, the detailRendererKey will\n * take precedence and the corresponding renderer will be used for rendering the detail content.\n */\n detailRendererKey?: string | ((item: Item<Key, Data>) => string | undefined);\n\n /**\n * Applications can use this property to provide the key of a renderer or a function that\n * returns the key of the renderer to use for rendering the start icon.\n *\n * When a renderer key is provided as a value for this property, the corresponding renderer\n * will be used for rendering the start icon for all the messages. If applications want\n * to use a different renderer for different messages, they can provide a function that\n * returns a renderer key instead.\n *\n * The provided function should accept an Item and return a key to a renderer for\n * rendering the corresponding message's start icon. The value returned from this function\n * should be a key to one of the renderers provided. If the returned value is not\n * one of the keys of the provided renderers, the component will throw an Error.\n *\n * If the function returns undefined, the component then will perform default rendering\n * of the start icon using the severity property of the corresponding message.\n *\n * If an application specifies both severity and a valid iconRendererKey, the iconRendererKey will\n * take precedence and the corresponding renderer will be used for rendering the start icon.\n */\n iconRendererKey?: string | ((item: Item<Key, Data>) => string | undefined);\n\n /**\n * A set of available renderers for rendering the message content. Which renderer is used\n * for rendering which content will be decided by specific properties in the row data.\n */\n renderers?: Record<string, (data: MessageToastRendererDataItem<Key, Data>) => ComponentChildren>;\n};\n\nconst messageToastStyles = {\n base: cssProps`${{\n height: 'fit-content',\n width: 'fit-content'\n }}`\n} as const;\n\n/**\n * Animation states for toast messages\n * TODO: Get this from theme context provider\n */\nconst animationStates: ComponentProps<typeof MessagesManager>['animationStates'] = {\n entering: (node) => ({\n from: {\n transform: `translate(0, ${node.offsetHeight}px)`,\n opacity: 1\n },\n to: {\n transform: 'translate(0, 0)',\n opacity: 1\n },\n end: {\n transform: 'unset',\n opacity: 1\n },\n options: {\n duration: 250\n }\n }),\n exiting: {\n from: {\n opacity: 1\n },\n to: {\n opacity: 0\n },\n end: {\n opacity: 0\n },\n options: {\n duration: 250\n }\n }\n};\nconst initialAnimationStyles = {\n opacity: 0\n} as const;\n\nexport function MessageToast<K extends string | number, D extends MessageToastItem>({\n data,\n detailRendererKey,\n iconRendererKey,\n renderers,\n onClose,\n offset,\n position\n}: Props<K, D>) {\n const messagesRef = useRef(new Map<K, HTMLDivElement | null>());\n const autoFocusRef = useRef<HTMLDivElement>(null) as RefObject<HTMLDivElement | null>;\n const containerDivRef = useRef<HTMLDivElement>(null);\n const focusHandleRef = useRef<FocusableComponentHandle>(null);\n const [liveRegionText, setLiveRegionText] = useState<string>();\n const [shouldRender, setShouldRender] = useState(data.length > 0);\n const [shouldTrapFocus, setShouldTrapFocus] = useState(false);\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // We need a ref that holds the current & previous data length, as the exiting\n // node will always call handleNextFocus with previous data.\n // As in TransitionGroup, when an item is removed from the data, a new vnode\n // will not be created instead previous vnode will be used. So, the new handleNextFocus\n // will not be called when the old vnode exits. Thus, we will be using a ref\n // to always get the correct current data length.\n const dataLengthRef = useRef(data.length);\n const prevDataLengthRef = useRef(0);\n // Update the data length ref\n dataLengthRef.current = data.length;\n\n // Update the focusHandleRef\n useImperativeHandle(\n focusHandleRef,\n () => ({\n focus: () => {\n // Only trigger focus if the component is rendering messages\n if (data.length) {\n // set the autoFocus ref to the first message and enable the focus trap\n // this will automatically focus the first message\n autoFocusRef.current = messagesRef.current.get(data[0].key) ?? null;\n setShouldTrapFocus(true);\n return true;\n }\n return false;\n },\n contains: (element: Element) => {\n // Only invoke method if the component is rendering messages\n if (data.length && element) {\n return containerDivRef.current?.contains(element) ?? false;\n }\n return false;\n }\n }),\n [data]\n );\n\n // Register handlers for focus management\n const { controller, handlers } = useMessageFocusManager(\n focusHandleRef,\n {\n onFocus: useCallback(() => {\n setLiveRegionText(translations.message_navigationFromMessagesRegion());\n }, [translations]),\n onFocusLeave: useCallback(() => {\n // disable trap which should revert the focus back to the last focused item\n setShouldTrapFocus(false);\n }, [])\n },\n {\n // we do not want the focus manager to handle Esc key as we handle it using the\n // FocusTrap here\n handleEscapeKey: false\n }\n );\n\n /**\n * Handles focus when a message is closed and animated away from the DOM\n * @param key The key of the message\n * @param index The index of the message\n */\n const handleNextFocus = useCallback(\n (_key: K, index: number, closedMessageNode?: Element) => {\n const isClosedMessageFocused = closedMessageNode?.contains(document.activeElement);\n\n // If there are no messages, do not render anything. As the old messages\n // are still in the DOM, use the data count to determine what to do next as it\n // represents the next state.\n if (dataLengthRef.current === 0) {\n setShouldRender(false);\n setShouldTrapFocus(false);\n // If the current message holds focus, then restore previous focus\n if (isClosedMessageFocused) {\n // As we have FocusTrap, trying to restore focus now will simply result in focus being pulled\n // back again. So, we restore the focus in the next tick so that the rendering will have been\n // done in the microtask.\n setImmediate(() => controller.restorePriorFocus());\n }\n return;\n }\n\n // In TransitionGroup, when an item is removed from the data, a new vnode\n // will not be created instead previous vnode will be used. So, the new handleNextFocus\n // will not be called when the old vnode exits. Thus, all the deps will not be pointing to\n // the current references, rather they will be pointing to the ones where this vnode\n // last existed in the data.\n // This means, the data will contain the closing message as well. But, all the ref objects\n // still point to the most up-to-date values. With that in mind, we will be evaluating the\n // following values.\n const renderedMessagesCount = data.length;\n\n // Now that this message is closed, focus the next message that will take this index. If no\n // message will take this message's index, then it means that this is the last message. If\n // that is the case, focus the message at the previous index.\n // Use the count of the messages that are currently shown in the UI (current state including\n // the message that will be removed). This way we can get the correct item from the data\n // as it will contain the closing message as well.\n const nextMessageIndexToFocus = index + 1 < renderedMessagesCount ? index + 1 : index - 1;\n\n // if next message is available then transfer the focus to the next element\n if (nextMessageIndexToFocus > -1 && isClosedMessageFocused) {\n const nextMessageKey = data[nextMessageIndexToFocus].key;\n messagesRef.current.get(nextMessageKey)?.focus();\n }\n },\n [controller, data]\n );\n\n // We will be using a function based ref to store the refs in the Map\n const setHTMLDivElement = useCallback(\n // TODO: use ramda.curry here (currently it is throwing ts error when used with generics)\n (key: K) => {\n return (ref: HTMLDivElement | null) => messagesRef.current.set(key, ref);\n },\n []\n );\n // Prioritize this component whenever the data changes and\n // the new data has at least one message\n useEffect(() => {\n const previousDataLength = prevDataLengthRef.current;\n prevDataLengthRef.current = data.length;\n\n // if there are messages that need to be rendered now, then do the following deeds:\n // 1. set the shouldRender flag\n // 2. set the live region\n // 3. prioritize this message component to be the latest\n if (data.length) {\n // set state to render content whenever the data is not empty\n setShouldRender(true);\n if (data.length > previousDataLength) {\n // Only when having a new message, update the aria-live area with the\n // text to indicate how to get the focus to the new message.\n setLiveRegionText(translations.message_navigationToMessagesRegion());\n }\n controller.prioritize();\n return;\n }\n\n // if there were messages and now removed, then set the live region to\n // announce this information\n if (previousDataLength) {\n setLiveRegionText(translations.messageToast_allMessagesClosed());\n return;\n }\n\n // When there are no messages, clear the live region so that\n // the navigation text will be read when a new message appear\n setLiveRegionText('');\n }, [controller, data.length, translations]);\n\n // determine responsive max-width\n const maxWidth = useBreakpointValues<Size>({\n sm: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-sm',\n md: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-md',\n lg: '--oj-c-PRIVATE-DO-NOT-USE-message-toast-max-width-lg'\n });\n // without offset, the messages will be hugging the vertical edges of the screen\n // so we will set a default offset.vertical value (any offset from the props will be\n // added to this).\n const paddedOffset = useBreakpointValues<Offset>({\n sm: {\n horizontal: typeof offset === 'number' ? offset : offset?.horizontal ?? 0,\n vertical: 16 + (typeof offset === 'number' ? offset : offset?.horizontal ?? 0)\n },\n lg: {\n horizontal: typeof offset === 'number' ? offset : offset?.horizontal ?? 0,\n vertical: 24 + (typeof offset === 'number' ? offset : offset?.horizontal ?? 0)\n }\n });\n\n // TODO: move this to the individual components.\n // Cannot do this as of now, as doing do results in oj-message-banner not working.\n const messageTranslations = useMemo(\n () => ({\n close: translations.close(),\n confirmation: translations.confirmation(),\n error: translations.error(),\n info: translations.info(),\n warning: translations.warn()\n }),\n [translations]\n );\n const rootClasses = classNames([\n messageToastStyles.base,\n // by default the toast messages are dark, so add the required classes\n 'oj-c-colorscheme-dark',\n 'oj-color-invert'\n ]);\n\n // When both shouldRender flag is false and no data to render, do not render\n // anything except the live region\n if (!shouldRender && data.length === 0) {\n return <LiveRegion>{liveRegionText}</LiveRegion>;\n }\n\n return (\n <EnvironmentProvider environment={{ colorScheme: 'dark' }}>\n <MessageLayer offset={paddedOffset} position={position}>\n <div\n class={rootClasses}\n ref={containerDivRef}\n tabIndex={-1} // Need to add tabindex to make the container receive the focus events\n {...handlers}>\n <FocusTrap autoFocusRef={autoFocusRef} isDisabled={!shouldTrapFocus}>\n <Flex direction=\"column\" gap=\"1x\" align=\"center\" maxWidth={maxWidth}>\n <MessagesManager\n animationStates={animationStates}\n initialAnimationStyles={initialAnimationStyles}\n data={data}\n onMessageWillRemove={handleNextFocus}>\n {({ index, item }) => (\n <Message\n messageRef={setHTMLDivElement(item.key)}\n item={item}\n detailRenderer={getRendererWithoutIndex(item, detailRendererKey, renderers)}\n iconRenderer={getRendererWithoutIndex(item, iconRendererKey, renderers)}\n index={index}\n key={item.key}\n onClose={onClose}\n translations={messageTranslations}\n variant=\"toast\"\n />\n )}\n </MessagesManager>\n </Flex>\n </FocusTrap>\n </div>\n </MessageLayer>\n <LiveRegion>{liveRegionText}</LiveRegion>\n </EnvironmentProvider>\n );\n}\n"],"names":["stringLiteralArray","messageToastStyles","animationStates","entering","node","from","transform","offsetHeight","opacity","to","end","options","duration","exiting","initialAnimationStyles","data","detailRendererKey","iconRendererKey","renderers","onClose","offset","position","autoFocusRef","useRef","containerDivRef","focusHandleRef","shouldRender","setShouldRender","useState","length","translations","useTranslationBundle","prevDataLengthRef","dataLengthRef","current","useImperativeHandle","_a","messagesRef","get","key","contains","element","_b","onFocus","useCallback","setLiveRegionText","message_navigationFromMessagesRegion","onFocusLeave","handleEscapeKey","isClosedMessageFocused","closedMessageNode","document","activeElement","nextMessageIndexToFocus","index","controller","ref","set","previousDataLength","message_navigationToMessagesRegion","messageToast_allMessagesClosed","sm","md","lg","messageTranslations","useMemo","close","confirmation","error","info","warning","warn","_jsxs","EnvironmentProvider","Object","assign","environment","colorScheme","children","_jsx","jsx","MessageLayer","paddedOffset","class","rootClasses","tabIndex","handlers","FocusTrap","isDisabled","shouldTrapFocus","Flex","direction","gap","align","maxWidth","MessagesManager","onMessageWillRemove","handleNextFocus","item","Message","messageRef","setHTMLDivElement","detailRenderer","getRendererWithoutIndex","iconRenderer","variant","LiveRegion","liveRegionText"],"mappings":"gkBAuCAA,EAAAA,mBAAA,wHAAA,MAoLAC,aAWAC,EAAA,CACEC,SAAAC,IAAA,CACEC,KAAA,CACEC,UAAA,gBAAAF,EAAAG,kBACAC,QAAA,GAEFC,GAAA,CACEH,UAAA,kBACAE,QAAA,GAEFE,IAAA,CACEJ,UAAA,QACAE,QAAA,GAEFG,QAAA,CACEC,SAAA,OAGJC,QAAA,CACER,KAAA,CACEG,QAAA,GAEFC,GAAA,CACED,QAAA,GAEFE,IAAA,CACEF,QAAA,GAEFG,QAAA,CACEC,SAAA,OAINE,EAAA,CACEN,QAAA,kBAGF,UAAAO,KAAAA,EAAAC,kBAAAA,EAAAC,gBAAAA,EAAAC,UAAAA,EAAAC,QAAAA,EAAAC,OAAAA,EAAAC,SAAAA,0CAUEC,EAAAC,SAAA,MACAC,EAAAD,SAAA,MACAE,EAAAF,SAAA,0BAEAG,EAAAC,GAAAC,EAAAA,SAAAb,EAAAc,OAAA,wBAEAC,EAAAC,uBAAA,iDASAC,EAAAT,SAAA,GAEAU,EAAAC,QAAAnB,EAAAc,OAGAM,EAAAA,oBAAAV,EAAA,KAAA,qCAQQH,EAAAY,QAAA,QAAAE,EAAAC,EAAAH,QAAAI,IAAAvB,EAAA,GAAAwB,YAAA,IAAAH,EAAAA,EAAA,YAEA,IAIJI,SAAAC,YAEE,SAAA1B,EAAAc,SAAAY,KACE,QAAAC,EAAA,QAAAN,EAAAZ,EAAAU,eAAA,IAAAE,OAAA,EAAAA,EAAAI,SAAAC,UAAA,IAAAC,GAAAA,MAIL,CAAA3B,+DAQC4B,QAAAC,EAAAA,YAAA,KACEC,EAAAf,EAAAgB,yCACF,CAAAhB,IACAiB,aAAAH,EAAAA,YAAA,kBAQAI,iBAAA,oCAWA,MAAAC,EAAAC,MAAAA,OAAA,EAAAA,EAAAV,SAAAW,SAAAC,eAKA,GAAA,IAAAnB,EAAAC,gCAIEe,4CAiBF,MAQAI,EAAAC,EAAA,EARAvC,EAAAc,OAQAyB,EAAA,EAAAA,EAAA,EAGA,GAAAD,GAAA,GAAAJ,EAAA,uEAIF,CAAAM,EAAAxC,uBAQEyC,GAAAnB,EAAAH,QAAAuB,IAAAlB,EAAAiB,wBAOF,MAAAE,EAAA1B,EAAAE,WACAF,EAAAE,QAAAnB,EAAAc,6BASEd,EAAAc,OAAA6B,GAGEb,EAAAf,EAAA6B,0DASFd,EADFa,EACE5B,EAAA8B,qFAWFC,GAAA,uDACAC,GAAA,uDACAC,GAAA,kFAMAF,GAAA,mLAIAE,GAAA,qLAQFC,EAAAC,EAAAA,QAAA,KAAA,CAEIC,MAAApC,EAAAoC,QACAC,aAAArC,EAAAqC,eACAC,MAAAtC,EAAAsC,QACAC,KAAAvC,EAAAuC,OACAC,QAAAxC,EAAAyC,SACD,CAAAzC,oBAID7B,qEAYFuE,OAAAC,EAAAA,oBAAAC,OAAAC,OAAA,CAAAC,YAAA,CAAAC,YAAA,SAAA,CAAAC,SAAA,CAAAC,EAAAC,IAAAC,eAAAP,OAAAC,OAAA,CAAAvD,OAAA8D,EAAA7D,SAAAA,GAAA,CAAAyD,SAAAC,EAAAC,IAAA,MAAAN,OAAAC,OAAA,CAAAQ,MAAAC,EAAA5B,IAAAhC,EAAA6D,UAAA,GAAAC,EAAA,CAAAR,SAAAC,EAAAC,IAAAO,YAAAb,OAAAC,OAAA,CAAArD,aAAAA,EAAAkE,YAAAC,GAAA,CAAAX,SAAAC,EAAAC,IAAAU,OAAAhB,OAAAC,OAAA,CAAAgB,UAAA,SAAAC,IAAA,KAAAC,MAAA,SAAAC,SAAAA,GAAA,CAAAhB,SAAAC,EAAAC,IAAAe,kBAAArB,OAAAC,OAAA,CAAAzE,gBAAAA,EAAAY,uBAAAA,EAAAC,KAAAA,EAAAiF,oBAAAC,GAAA,CAAAnB,SAAA,EAAAxB,MAAAA,EAAA4C,KAAAA,KAAAnB,EAAAA,IAAAoB,EAAAA,QAAA,CAAAC,WAAAC,EAAAH,EAAA3D,KAAA2D,KAAAA,EAAAI,eAAAC,EAAAA,wBAAAL,EAAAlF,EAAAE,GAAAsF,aAAAD,EAAAA,wBAAAL,EAAAjF,EAAAC,GAAAoC,MAAAA,EAAAnC,QAAAA,EAAAW,aAAAkC,EAAAyC,QAAA,SAAAP,EAAA3D,oBAAAwC,EAAAC,IAAA0B,aAAA,CAAA5B,SAAA6B,QAHE5B,EAAAA,IAAA2B,EAAAA,WAAA,CAAA5B,SAAA6B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["exports","./utils/UNSAFE_logger","./utils/UNSAFE_soundUtils","./MessageFormattingUtils-
|
|
2
|
-
//# sourceMappingURL=MessageUtils-
|
|
1
|
+
define(["exports","./utils/UNSAFE_logger","./utils/UNSAFE_soundUtils","./MessageFormattingUtils-3182a53c"],function(e,t,n,o){"use strict";const i=(e,n="common")=>t.Logger.warn(`JET Message(${n}): ${e}`);function r(e,t="common"){throw new Error(`JET Message(${t}) - ${e}`)}function a(e,t,n,o){if(!t||!n)return;const i="function"==typeof t?t(e):t;return null!=i?(i in n||r(`${i} is not a valid template name for the message with key=${e.key}`,o),n[i]):void 0}e.getRenderer=a,e.getRendererWithoutIndex=function(e,t,n,o){const i=a(e,t,n,o);return"function"==typeof i?e=>{const t=Object.assign({},e);return"index"in t&&delete t.index,i.call(null,t)}:i},e.isSeverityIconNeeded=function(e){return o.isValidValueForProp(e,"severity")&&"none"!==e},e.playSound=async function(e){if("none"!==e)if("default"!==e)try{await n.playAudioFromURL(e)}catch(t){i(`Failed to play the audio from the url ${e}. ${t}.`)}else try{n.playDefaultNotificationSound()}catch(e){i(`Failed to play the default sound. ${e}.`)}},e.severityBasedStyleClass=function(e,t){return o.isValidValueForProp(e,"severity")&&"none"!==e?`oj-c-message${t}-${e}`:""},e.throwError=r});
|
|
2
|
+
//# sourceMappingURL=MessageUtils-8f1f842d.js.map
|