@patternfly/patternfly-doc-core 1.13.1 → 1.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.astro/content-modules.mjs +25 -25
- package/.astro/content.d.ts +43 -0
- package/dist/docs/_astro/ClientRouter.astro_astro_type_script_index_0_lang.DZnDNxNb.js +1 -0
- package/dist/docs/_worker.js/_@astrojs-ssr-adapter.mjs +1 -1
- package/dist/docs/_worker.js/_astro-internal_middleware.mjs +3 -3
- package/dist/docs/_worker.js/chunks/{_@astro-renderers_D4IG6Oyo.mjs → _@astro-renderers_B-gIj2th.mjs} +1 -1
- package/dist/docs/_worker.js/chunks/{_@astrojs-ssr-adapter_B_x81DBq.mjs → _@astrojs-ssr-adapter_u4VQ4c24.mjs} +23 -15
- package/dist/docs/_worker.js/chunks/astro/{server_CVEnF9i1.mjs → server_DXtGNXGl.mjs} +126 -72
- package/dist/docs/_worker.js/chunks/{astro-designed-error-pages_CXRddWNa.mjs → astro-designed-error-pages_Cre3i65F.mjs} +2 -2
- package/dist/docs/_worker.js/chunks/{index_CYXMeXT4.mjs → index_DkNBuRXQ.mjs} +193 -150
- package/dist/docs/_worker.js/chunks/{noop-middleware_DIXVCvyq.mjs → noop-middleware_D7Bh5dKA.mjs} +1 -1
- package/dist/docs/_worker.js/chunks/{path_C-ZOwaTP.mjs → path_u5O9njcM.mjs} +8 -2
- package/dist/docs/_worker.js/index.js +4 -4
- package/dist/docs/_worker.js/manifest_CR827M2P.mjs +100 -0
- package/dist/docs/_worker.js/pages/_image.astro.mjs +1 -1
- package/dist/docs/_worker.js/pages/props.astro.mjs +1 -1
- package/dist/docs/_worker.js/renderers.mjs +1 -1
- package/dist/docs/components/about-modal/index.html +1 -1
- package/dist/docs/components/about-modal/react/index.html +1 -1
- package/dist/docs/components/accordion/index.html +11 -11
- package/dist/docs/components/accordion/react/index.html +11 -11
- package/dist/docs/components/action-list/index.html +10 -10
- package/dist/docs/components/action-list/react/index.html +10 -10
- package/dist/docs/components/alert/index.html +1 -1
- package/dist/docs/components/alert/react/index.html +1 -1
- package/dist/docs/components/avatar/index.html +9 -9
- package/dist/docs/components/avatar/react/index.html +9 -9
- package/dist/docs/components/back-to-top/index.html +9 -9
- package/dist/docs/components/back-to-top/react/index.html +9 -9
- package/dist/docs/components/backdrop/index.html +1 -1
- package/dist/docs/components/backdrop/react/index.html +1 -1
- package/dist/docs/components/background-image/index.html +1 -1
- package/dist/docs/components/background-image/react/index.html +1 -1
- package/dist/docs/components/badge/index.html +1 -1
- package/dist/docs/components/badge/react/index.html +1 -1
- package/dist/docs/components/banner/index.html +1 -1
- package/dist/docs/components/banner/react/index.html +1 -1
- package/dist/docs/components/brand/index.html +1 -1
- package/dist/docs/components/brand/react/index.html +1 -1
- package/dist/docs/components/breadcrumb/index.html +7 -7
- package/dist/docs/components/breadcrumb/react/index.html +7 -7
- package/dist/docs/components/button/index.html +38 -38
- package/dist/docs/components/button/react/index.html +38 -38
- package/dist/docs/components/calendar-month/index.html +10 -10
- package/dist/docs/components/calendar-month/react/index.html +10 -10
- package/dist/docs/components/card/index.html +56 -56
- package/dist/docs/components/card/react/index.html +56 -56
- package/dist/docs/components/checkbox/index.html +17 -17
- package/dist/docs/components/checkbox/react/index.html +17 -17
- package/dist/docs/components/chip/index.html +1 -1
- package/dist/docs/components/chip/react-deprecated/index.html +1 -1
- package/dist/docs/components/clipboard-copy/index.html +1 -1
- package/dist/docs/components/clipboard-copy/react/index.html +1 -1
- package/dist/docs/components/code-block/index.html +10 -10
- package/dist/docs/components/code-block/react/index.html +10 -10
- package/dist/docs/components/content/index.html +20 -20
- package/dist/docs/components/content/react/index.html +20 -20
- package/dist/docs/components/data-list/index.html +25 -25
- package/dist/docs/components/data-list/react/index.html +25 -25
- package/dist/docs/components/date-picker/index.html +1 -1
- package/dist/docs/components/date-picker/react/index.html +1 -1
- package/dist/docs/components/description-list/index.html +40 -40
- package/dist/docs/components/description-list/react/index.html +40 -40
- package/dist/docs/components/divider/index.html +15 -15
- package/dist/docs/components/divider/react/index.html +15 -15
- package/dist/docs/components/drag-and-drop/index.html +1 -1
- package/dist/docs/components/drag-and-drop/react-deprecated/index.html +1 -1
- package/dist/docs/components/drawer/index.html +29 -29
- package/dist/docs/components/drawer/react/index.html +29 -29
- package/dist/docs/components/dropdown/index.html +21 -21
- package/dist/docs/components/dropdown/react/index.html +21 -21
- package/dist/docs/components/dual-list-selector/index.html +21 -21
- package/dist/docs/components/dual-list-selector/react/index.html +18 -18
- package/dist/docs/components/dual-list-selector/react-deprecated/index.html +29 -29
- package/dist/docs/components/empty-state/index.html +11 -11
- package/dist/docs/components/empty-state/react/index.html +11 -11
- package/dist/docs/components/expandable-section/index.html +19 -19
- package/dist/docs/components/expandable-section/react/index.html +19 -19
- package/dist/docs/components/form/index.html +20 -20
- package/dist/docs/components/form/react/index.html +20 -20
- package/dist/docs/components/form-select/index.html +10 -10
- package/dist/docs/components/form-select/react/index.html +10 -10
- package/dist/docs/components/helper-text/index.html +10 -10
- package/dist/docs/components/helper-text/react/index.html +10 -10
- package/dist/docs/components/hint/index.html +12 -12
- package/dist/docs/components/hint/react/index.html +12 -12
- package/dist/docs/components/icon/index.html +21 -21
- package/dist/docs/components/icon/react/index.html +21 -21
- package/dist/docs/components/input-group/index.html +10 -10
- package/dist/docs/components/input-group/react/index.html +10 -10
- package/dist/docs/components/jump-links/index.html +10 -10
- package/dist/docs/components/jump-links/react/index.html +10 -10
- package/dist/docs/components/label/index.html +29 -29
- package/dist/docs/components/label/react/index.html +29 -29
- package/dist/docs/components/list/index.html +13 -13
- package/dist/docs/components/list/react/index.html +13 -13
- package/dist/docs/components/login-page/index.html +11 -11
- package/dist/docs/components/login-page/react/index.html +11 -11
- package/dist/docs/components/masthead/index.html +16 -16
- package/dist/docs/components/masthead/react/index.html +16 -16
- package/dist/docs/components/menu/index.html +66 -66
- package/dist/docs/components/menu/react/index.html +66 -66
- package/dist/docs/components/menu-toggle/index.html +64 -64
- package/dist/docs/components/menu-toggle/react/index.html +64 -64
- package/dist/docs/components/modal/index.html +42 -42
- package/dist/docs/components/modal/react/index.html +42 -42
- package/dist/docs/components/modal/react-deprecated/index.html +42 -42
- package/dist/docs/components/multiple-file-upload/index.html +30 -30
- package/dist/docs/components/multiple-file-upload/react/index.html +30 -30
- package/dist/docs/components/navigation/index.html +19 -19
- package/dist/docs/components/navigation/react/index.html +19 -19
- package/dist/docs/components/notification-badge/index.html +14 -14
- package/dist/docs/components/notification-badge/react/index.html +14 -14
- package/dist/docs/components/notification-drawer/index.html +6 -6
- package/dist/docs/components/notification-drawer/react/index.html +6 -6
- package/dist/docs/components/number-input/index.html +15 -15
- package/dist/docs/components/number-input/react/index.html +15 -15
- package/dist/docs/components/overflow-menu/index.html +10 -10
- package/dist/docs/components/overflow-menu/react/index.html +10 -10
- package/dist/docs/components/page/index.html +48 -48
- package/dist/docs/components/page/react/index.html +48 -48
- package/dist/docs/components/pagination/index.html +15 -15
- package/dist/docs/components/pagination/react/index.html +15 -15
- package/dist/docs/components/panel/index.html +26 -26
- package/dist/docs/components/panel/react/index.html +26 -26
- package/dist/docs/components/popover/index.html +21 -21
- package/dist/docs/components/popover/react/index.html +21 -21
- package/dist/docs/components/progress/index.html +21 -21
- package/dist/docs/components/progress/react/index.html +21 -21
- package/dist/docs/components/progress-stepper/index.html +14 -14
- package/dist/docs/components/progress-stepper/react/index.html +14 -14
- package/dist/docs/components/radio/index.html +13 -13
- package/dist/docs/components/radio/react/index.html +13 -13
- package/dist/docs/components/search-input/index.html +12 -12
- package/dist/docs/components/search-input/react/index.html +12 -12
- package/dist/docs/components/select/index.html +60 -60
- package/dist/docs/components/select/react/index.html +60 -60
- package/dist/docs/components/sidebar/index.html +18 -18
- package/dist/docs/components/sidebar/react/index.html +18 -18
- package/dist/docs/components/simple-file-upload/index.html +33 -33
- package/dist/docs/components/simple-file-upload/react/index.html +33 -33
- package/dist/docs/components/simple-list/index.html +10 -10
- package/dist/docs/components/simple-list/react/index.html +10 -10
- package/dist/docs/components/skeleton/index.html +8 -8
- package/dist/docs/components/skeleton/react/index.html +8 -8
- package/dist/docs/components/skip-to-content/index.html +7 -7
- package/dist/docs/components/skip-to-content/react/index.html +7 -7
- package/dist/docs/components/slider/index.html +23 -23
- package/dist/docs/components/slider/react/index.html +23 -23
- package/dist/docs/components/spinner/index.html +7 -7
- package/dist/docs/components/spinner/react/index.html +7 -7
- package/dist/docs/components/switch/index.html +10 -10
- package/dist/docs/components/switch/react/index.html +10 -10
- package/dist/docs/components/tabs/index.html +78 -78
- package/dist/docs/components/tabs/react/index.html +78 -78
- package/dist/docs/components/text-area/index.html +16 -16
- package/dist/docs/components/text-area/react/index.html +16 -16
- package/dist/docs/components/text-input/index.html +11 -11
- package/dist/docs/components/text-input/react/index.html +11 -11
- package/dist/docs/components/text-input-group/index.html +17 -17
- package/dist/docs/components/text-input-group/react/index.html +17 -17
- package/dist/docs/components/tile/index.html +27 -27
- package/dist/docs/components/tile/react-deprecated/index.html +27 -27
- package/dist/docs/components/time-picker/index.html +14 -14
- package/dist/docs/components/time-picker/react/index.html +14 -14
- package/dist/docs/components/timestamp/index.html +19 -19
- package/dist/docs/components/timestamp/react/index.html +19 -19
- package/dist/docs/components/title/index.html +8 -8
- package/dist/docs/components/title/react/index.html +8 -8
- package/dist/docs/components/toggle-group/index.html +22 -22
- package/dist/docs/components/toggle-group/react/index.html +22 -22
- package/dist/docs/components/toolbar/index.html +40 -40
- package/dist/docs/components/toolbar/react/index.html +40 -40
- package/dist/docs/components/tooltip/index.html +10 -10
- package/dist/docs/components/tooltip/react/index.html +10 -10
- package/dist/docs/components/tree-view/index.html +21 -21
- package/dist/docs/components/tree-view/react/index.html +21 -21
- package/dist/docs/components/truncate/index.html +11 -11
- package/dist/docs/components/truncate/react/index.html +11 -11
- package/dist/docs/components/wizard/index.html +33 -33
- package/dist/docs/components/wizard/react/index.html +30 -30
- package/dist/docs/components/wizard/react-deprecated/index.html +23 -23
- package/dist/docs/index.html +2 -2
- package/package.json +6 -6
- package/dist/docs/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CtSceO8m.js +0 -1
- package/dist/docs/_worker.js/manifest_CJjpUQ_9.mjs +0 -100
- /package/dist/docs/_worker.js/chunks/{AboutModal_CrdYiVZ2.mjs → AboutModal_BItn3kin.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{AboutModal_D3R-r6ju.mjs → AboutModal_CZjdACeW.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Accordion_Dbx8tdfD.mjs → Accordion_CYmF0KwJ.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Accordion_sjy0EnPK.mjs → Accordion_dgrn0E_o.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ActionList_Bx7eAKgV.mjs → ActionList_b3_CLZ14.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ActionList_CuygbYGp.mjs → ActionList_hxinmMC0.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Alert_Cgh0pfMA.mjs → Alert_CPMXr4GU.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Alert_CplJ22O9.mjs → Alert_CjLz1avf.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Avatar_BszzDSZB.mjs → Avatar_BpvZS7Vn.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Avatar_DuNXB-Tl.mjs → Avatar_CJxK-3JY.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{BackToTop_B_0NN1kJ.mjs → BackToTop_C4eW2L0y.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{BackToTop_DKY1zHBL.mjs → BackToTop_DcZBtTyL.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Backdrop_ByJvccKQ.mjs → Backdrop_10J0WLph.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Backdrop_D12wBLrB.mjs → Backdrop_D8sST9JX.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{BackgroundImage_7zaRIuh-.mjs → BackgroundImage_BKA-ulgj.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{BackgroundImage_BFUrU51J.mjs → BackgroundImage_Cz6hAv0v.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Badge_DloPmeMn.mjs → Badge_Cg9zVGV6.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Badge_DxGDbEGv.mjs → Badge_CmcfMGLy.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Banner_4Te4yy7I.mjs → Banner_B-0nD2-g.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Banner_FbFCGml0.mjs → Banner_D1S93kG4.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Brand_Cjeb58fX.mjs → Brand_BbimpMS3.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Brand_DZEvbkMH.mjs → Brand_BpKIcHo4.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Breadcrumb_DkNDUMw0.mjs → Breadcrumb_Ck-Lj1T3.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Breadcrumb_bVSwIfTk.mjs → Breadcrumb_D9KV7rzl.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Button_BqggYTWh.mjs → Button_CIRvQZry.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Button_DbZb-z5h.mjs → Button_V8lUSO6X.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{CalendarMonth_BdoIQD1o.mjs → CalendarMonth_BFffUIcM.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{CalendarMonth_BqZc2rYW.mjs → CalendarMonth_BQ28v_pg.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Card_BW6WmwTW.mjs → Card_C8qkLKEf.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Card_CEDol7Xx.mjs → Card_DUK4FmPS.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Checkbox_BqVpiIvF.mjs → Checkbox_Bn--Z5lv.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Checkbox_DSYhfv7p.mjs → Checkbox_qYxKZZGQ.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Chip_BciXepRF.mjs → Chip_0R4AtDfc.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Chip_C23BxFTk.mjs → Chip_COOLhRtH.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ClipboardCopy_BjySfoK1.mjs → ClipboardCopy_CCw7mUNs.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ClipboardCopy_CvrD2b3T.mjs → ClipboardCopy_E2VziZOh.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{CodeBlock_CuH1PrfL.mjs → CodeBlock_B6MAjfQG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{CodeBlock_DK5AauFn.mjs → CodeBlock_E5IUdMeV.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Content_BfZIFUr8.mjs → Content_BTsW49BT.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Content_lBUC3eEp.mjs → Content_DAKpmQcD.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DataList_CSJAkMMZ.mjs → DataList_BUnDIzjX.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DataList_CaFvg0uz.mjs → DataList_DAx1YA9q.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DatePicker_Cw2abdEU.mjs → DatePicker_B7e4HDrD.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DatePicker_bYwsFHXL.mjs → DatePicker_BvR2KULb.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DescriptionList_BTTyevMb.mjs → DescriptionList_BN8g0mN-.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DescriptionList_Dr51d-67.mjs → DescriptionList_Ci0wXiOc.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Divider_BgOt1--F.mjs → Divider_01665LVV.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Divider_Bh7n4QTo.mjs → Divider_58GLcmuG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DragDrop_BF-aF6Z8.mjs → DragDrop_D0BsENaH.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DragDrop_DId590rN.mjs → DragDrop_R1Bxn5bG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Drawer_BVywTMVo.mjs → Drawer_CqiPp4tH.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Drawer_RrCnySEa.mjs → Drawer_ar8SYBBZ.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Dropdown_BjtqviYW.mjs → Dropdown_BxRoNhEO.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Dropdown_GiUvjFPw.mjs → Dropdown_CGqAffXy.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DualListSelector_8uLukfP0.mjs → DualListSelector_BY0jUhu5.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DualListSelector_Bgj1IWqe.mjs → DualListSelector_BtS4RhPL.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DualListSelector_C5QjTplp.mjs → DualListSelector_DS3XuAyO.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{DualListSelector_DLgspM0s.mjs → DualListSelector_DpkuRNqO.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{EmptyState_Ct_PJba3.mjs → EmptyState_D8pG8NNs.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{EmptyState_Dk3hKJlg.mjs → EmptyState_DKnL5Sxb.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ExpandableSection_DSw76PjZ.mjs → ExpandableSection_BxeRuhxW.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ExpandableSection_vUQO3FgG.mjs → ExpandableSection_C-rR4lpq.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{FileUpload_CEvZ0G-d.mjs → FileUpload_BS2e2_2a.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{FileUpload_Ci_s8Ghd.mjs → FileUpload_Mp8yctad.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{FormSelect_C2YPRAlw.mjs → FormSelect_Dh4wqtK-.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{FormSelect_DWShl8Fb.mjs → FormSelect_Dj_assyG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Form_Dyb98Nez.mjs → Form_C6rxCWwv.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Form_olaoRN4o.mjs → Form_LFZpV55d.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{HelperText_2CcHVaih.mjs → HelperText_Cdoh4Xq5.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{HelperText_DthGttZo.mjs → HelperText_PKuHc_Y7.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Hint_BXDZKYhJ.mjs → Hint_BdmmUbjS.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Hint_DHoiYdn6.mjs → Hint_DYFKftOG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Icon_C4IPnIAg.mjs → Icon_B8kEVedr.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Icon_C_Dqbg9w.mjs → Icon_BMlPtDQq.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{InputGroup_CDKP-uXZ.mjs → InputGroup_CvQnB4Xi.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{InputGroup_CmZgaEyr.mjs → InputGroup_DuMIDv_M.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{JumpLinks_DvM3PVg0.mjs → JumpLinks_0RwPXv3d.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{JumpLinks_Dvdlxdps.mjs → JumpLinks_C5MZGLAO.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Label_C7fP9Jp9.mjs → Label_CNsHUBdN.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Label_Cxir7_Q4.mjs → Label_THkE-AFA.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{List_CUgwFnXa.mjs → List_BXjcB6TX.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{List_CWAsiYnN.mjs → List_CoXnRuT-.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{LoginPage_BDfliKtU.mjs → LoginPage_Cd_Vx4TL.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{LoginPage_BjIl_nF9.mjs → LoginPage_Dy-dda7r.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Masthead_BWjm5CFj.mjs → Masthead_0dZpDAir.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Masthead_BZnYzDu_.mjs → Masthead_L5uTIDIo.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{MenuToggle_DeKwv469.mjs → MenuToggle_Bb2rO_CM.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{MenuToggle_DmJISlPR.mjs → MenuToggle_D3uQPRxu.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Menu_DRRoq5PM.mjs → Menu_CU4-bIwV.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Menu_Sl-QVQ_w.mjs → Menu_Drl71efm.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Modal_6WZzoDHU.mjs → Modal_B35nIeQ6.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Modal_BI2dVPRJ.mjs → Modal_D-zL8r6s.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Modal_CdokBUDP.mjs → Modal_DDfqMCzs.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Modal_DJRobnfc.mjs → Modal_DKK66Rag.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{MultipleFileUpload_BaHVtkF_.mjs → MultipleFileUpload_B_T35Ur4.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{MultipleFileUpload_BznvLbsj.mjs → MultipleFileUpload_SF3pfPOs.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Nav_DwqATcJ4.mjs → Nav_DWhCiasr.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Nav_GZ0nRYXE.mjs → Nav_OmbKpzoZ.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NotificationBadge_DO4OLgvO.mjs → NotificationBadge_CCC3w-0n.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NotificationBadge_DjINhOQ5.mjs → NotificationBadge_Du1zJprr.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NotificationDrawer_BtpQ4pmZ.mjs → NotificationDrawer_DAuLxL7w.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NotificationDrawer_D1lmMCgd.mjs → NotificationDrawer_GsX4wbyf.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NumberInput_CggpJ5ge.mjs → NumberInput_BTUsP2Dy.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{NumberInput_zMcSUUwH.mjs → NumberInput_CEdn1SLL.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{OverflowMenu_BX4nwFvK.mjs → OverflowMenu_Bz0pUIse.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{OverflowMenu_DnQ7wMy-.mjs → OverflowMenu_eowJo-oA.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Page_Cw_XTB6Y.mjs → Page_D8wqD5dY.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Page_UhywZXdY.mjs → Page_D96Z1le0.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Pagination_7rr0n7-V.mjs → Pagination_-jq13UTb.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Pagination_Dc5L6yaI.mjs → Pagination_CQXZNog1.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Panel_Bl_LqCWS.mjs → Panel_83a69pjh.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Panel_s8-TwBlS.mjs → Panel_Cwf130Yb.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Popover_CjipqBWs.mjs → Popover_DVQ8u4Fp.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Popover_DvQgGJTf.mjs → Popover_DtFhoH3l.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ProgressStepper_DXBI4K2w.mjs → ProgressStepper_CMwF8CiX.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ProgressStepper_lBd5mTHE.mjs → ProgressStepper_Yvcq3pmc.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Progress_BZA5taDC.mjs → Progress_DsBSXTmv.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Progress_CIgybc-D.mjs → Progress_M0fLgfjf.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Radio_3tPx1coq.mjs → Radio_BmbmoopI.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Radio_BG7VZAk6.mjs → Radio_CjW5TY2C.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SearchInput_BZ43-Elo.mjs → SearchInput_BiyBA_eF.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SearchInput_aCFv-N1U.mjs → SearchInput_Bv6KJYSn.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Select_B4cumL7U.mjs → Select_B957i7MN.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Select_CJ78kBVM.mjs → Select_BBTTR43m.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Sidebar_Bto2_gKJ.mjs → Sidebar_C3c-bPso.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Sidebar_DOfifBRA.mjs → Sidebar_CHEf7dr0.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SimpleList_CVkO5Odp.mjs → SimpleList_BqpkJemM.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SimpleList_oJajk3_z.mjs → SimpleList_DDfBcEWe.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Skeleton_CCJNka-d.mjs → Skeleton_B4QE65Ar.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Skeleton_N02yA_k6.mjs → Skeleton_D5WnGxh0.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SkipToContent_DvOYRCWm.mjs → SkipToContent_BBwU-ZdY.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{SkipToContent_o7vh-U_u.mjs → SkipToContent_DFYTlqla.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Slider_C0bH-JMY.mjs → Slider_BX6wz0hN.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Slider_CWRDqhx4.mjs → Slider_BlpXbwhH.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Spinner_B-x8bJt0.mjs → Spinner_C5qilvZp.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Spinner_hzAAbZdS.mjs → Spinner_CuLTR583.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Switch_Cpr1OETy.mjs → Switch_BnA8s7Wn.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Switch_Du7AKJ4O.mjs → Switch_CvUw0Z4X.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tabs_CzDrfKA-.mjs → Tabs_CyeQBOGa.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tabs_KXDkISY4.mjs → Tabs_xDQjU8nW.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextArea_C1dmG8mr.mjs → TextArea_7cFF77CV.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextArea_Dtm0m8LO.mjs → TextArea_D7NOOvRK.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextInputGroup_D0NXU95v.mjs → TextInputGroup_DiXNtIIB.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextInputGroup_mJpBrogC.mjs → TextInputGroup_ZNRIWQeP.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextInput_B0XLYaVA.mjs → TextInput_3Gggoxng.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TextInput_CmLcsUiv.mjs → TextInput_Dg_3P9RM.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tile_CF_12LPU.mjs → Tile_CAcRzWZ9.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tile_DJ0LawLW.mjs → Tile_RHzJKWiw.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TimePicker_CijfSKJQ.mjs → TimePicker_DtrDRcMy.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TimePicker_VX9VE-Uy.mjs → TimePicker_qxUpEV9n.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Timestamp_D7uyrIK7.mjs → Timestamp_2Z94f_Eh.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Timestamp_c2Mozpr4.mjs → Timestamp_rMinDYzW.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Title_DbrwFEEy.mjs → Title_CdyPwQ2b.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Title_DlFn7G9R.mjs → Title_Csq8EY4-.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ToggleGroup_DpLWzfAW.mjs → ToggleGroup_B1Xtdxuy.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{ToggleGroup_j1ooRpX3.mjs → ToggleGroup_GBAc787N.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Toolbar_BEIh7r7J.mjs → Toolbar_BfRvo9qx.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Toolbar_mjrD3_l-.mjs → Toolbar_CmeIzev4.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tooltip_Bp5XOVoV.mjs → Tooltip_CPduniOG.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Tooltip_BrFKk02i.mjs → Tooltip_Cdt0oB9I.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TreeView_BImfKPD_.mjs → TreeView_B1tisZRW.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{TreeView_CgO4iC1E.mjs → TreeView_CwOQvnLr.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Truncate_Bn55QoeZ.mjs → Truncate_C6bX3QmA.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Truncate_S939OotH.mjs → Truncate_DGi514H0.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Wizard_B28f3non.mjs → Wizard_BOkVt8H-.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Wizard_B4Dw5Yc8.mjs → Wizard_CEoZM0Yt.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Wizard_BOCBVIjJ.mjs → Wizard_CLZDzozE.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{Wizard_C2sit354.mjs → Wizard_OGE-NwoN.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{_astro_assets_gAZzkAab.mjs → _astro_assets_RFx5l3a7.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{_astro_data-layer-content_Dvh2cBdG.mjs → _astro_data-layer-content_BpG5DifN.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{content-modules_PMz0mfKv.mjs → content-modules_CYtYtJTg.mjs} +0 -0
- /package/dist/docs/_worker.js/chunks/{sharp_CXlY1snz.mjs → sharp_DVa0kR-8.mjs} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" data-astro-transition-scope="astro-iidcp2e2-1"> <head><script type="module">const n=e=>{requestAnimationFrame(()=>{document.documentElement.classList.toggle("pf-v6-theme-dark",e==="dark")})};document.addEventListener("astro:before-swap",()=>{const e=localStorage.getItem("theme-preference");n(e||"light")});const o=e=>{const t=document.querySelector(e);t&&t.scrollIntoView({behavior:"smooth"})};document.addEventListener("DOMContentLoaded",()=>{if(window.location.hash){const e=window.location.hash;history.replaceState(null,""," "),setTimeout(()=>{o(e),history.replaceState(null,"",e)},500)}});window.addEventListener("hashchange",()=>{window.location.hash&&o(window.location.hash)});</script><meta charset="utf-8"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.
|
|
1
|
+
<!DOCTYPE html><html lang="en" data-astro-transition-scope="astro-iidcp2e2-1"> <head><script type="module">const n=e=>{requestAnimationFrame(()=>{document.documentElement.classList.toggle("pf-v6-theme-dark",e==="dark")})};document.addEventListener("astro:before-swap",()=>{const e=localStorage.getItem("theme-preference");n(e||"light")});const o=e=>{const t=document.querySelector(e);t&&t.scrollIntoView({behavior:"smooth"})};document.addEventListener("DOMContentLoaded",()=>{if(window.location.hash){const e=window.location.hash;history.replaceState(null,""," "),setTimeout(()=>{o(e),history.replaceState(null,"",e)},500)}});window.addEventListener("hashchange",()=>{window.location.hash&&o(window.location.hash)});</script><meta charset="utf-8"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.13.3"><title>Astro</title><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.DZnDNxNb.js"></script><link rel="stylesheet" href="/_astro/_page_.BG_fQ4i5.css">
|
|
2
2
|
<link rel="stylesheet" href="/_astro/_page_.DxJDkZPc.css">
|
|
3
3
|
<link rel="stylesheet" href="/_astro/LiveExample.CxJsMvEq.css">
|
|
4
4
|
<link rel="stylesheet" href="/_astro/PropsTables.D6ZI3FGj.css">
|
|
@@ -42,119 +42,119 @@
|
|
|
42
42
|
animation-fill-mode: both;
|
|
43
43
|
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-2e6ke2uy-4"] { view-transition-name: astro-2e6ke2uy-4; }@layer astro { ::view-transition-old(astro-2e6ke2uy-4) { animation: none; opacity: 0; mix-blend-mode: normal; }::view-transition-new(astro-2e6ke2uy-4) { animation: none; mix-blend-mode: normal; }::view-transition-group(astro-2e6ke2uy-4) { animation: none } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-2e6ke2uy-4"],
|
|
44
44
|
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-2e6ke2uy-4"] { animation: none; mix-blend-mode: normal; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-2e6ke2uy-4"],
|
|
45
|
-
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-2e6ke2uy-4"] { animation: none; mix-blend-mode: normal; }</style></head> <body> <div class="pf-v6-c-page"> <script>(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value=="object"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};"requestIdleCallback"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event("astro:idle"));})();</script><header class="pf-v6-c-masthead pf-m-display-inline-on-md"> <div class="pf-v6-c-masthead__main"> <span class="pf-v6-c-masthead__toggle"> <astro-island uid="ZsaGwN" prefix="r5" component-url="/_astro/PageToggle.DBsLIFpI.js" component-export="PageToggle" renderer-url="/_astro/client.DN8ES6L5.js" props="{"data-astro-transition-persist":[0,"astro-u5p5alki-2"]}" ssr client="idle" opts="{"name":"PageToggle","value":true}" data-astro-transition-persist="astro-u5p5alki-2" await-children><button id="nav-toggle" aria-expanded="true" aria-label="Global navigation" class="pf-v6-c-button pf-m-plain" type="button" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-121"><span class="pf-v6-c-button__text"><svg class="pf-v6-svg" viewBox="0 0 448 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path></svg></span></button><!--astro:end--></astro-island> </span> <div class="pf-v6-c-masthead__brand"> <a class="pf-v6-c-masthead__logo" tabindex="0" href="/"> <img class="pf-v6-c-brand" style="--pf-v6-c-brand--Height:36px" src="/PF-HorizontalLogo-Color.svg" alt="PatternFly"/> </a> </div> </div> <div class="pf-v6-c-masthead__content"> <astro-island uid="89JAl" prefix="r7" component-url="/_astro/Toolbar.BNjGRsAQ.js" component-export="Toolbar" renderer-url="/_astro/client.DN8ES6L5.js" props="{}" ssr client="idle" opts="{"name":"ReactToolbar","value":true}" await-children><div class="pf-v6-c-toolbar pf-m-static" id="toolbar" data-ouia-component-type="PF6/Toolbar" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Toolbar-41"><div class="pf-v6-c-toolbar__content"><div class="pf-v6-c-toolbar__content-section"><div class="pf-v6-c-toolbar__group pf-m-action-group-plain pf-m-align-end pf-m-gap-none pf-m-gap-md-on-md"><div class="pf-v6-c-toolbar__item"></div><div class="pf-v6-c-toolbar__item"><div class="pf-v6-c-input-group ws-global-search"><div class="pf-v6-c-input-group__item"><button aria-expanded="false" aria-label="Expandable search input toggle" class="pf-v6-c-button pf-m-plain" type="button" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-122"><span class="pf-v6-c-button__icon"><svg class="pf-v6-svg" viewBox="0 0 512 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg></span></button></div></div></div><div class="pf-v6-c-toolbar__item"><a href="//github.com/patternfly" target="top" aria-label="PatternFly GitHub page" class="pf-v6-c-button pf-m-plain" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-123"><span class="pf-v6-c-button__text"><svg class="pf-v6-svg" viewBox="0 0 496 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></span></a></div><div class="pf-v6-c-toolbar__item"><button class="pf-v6-c-menu-toggle" type="button" aria-expanded="false" data-ouia-component-type="PF6/MenuToggle" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-MenuToggle-41"><span class="pf-v6-c-menu-toggle__text">Release 6.1.0</span><span class="pf-v6-c-menu-toggle__controls"><span class="pf-v6-c-menu-toggle__toggle-icon"><svg class="pf-v6-svg" viewBox="0 0 320 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></span></button></div></div></div></div><div class="pf-v6-c-toolbar__content pf-m-hidden" hidden=""><div class="pf-v6-c-toolbar__group"></div></div></div><!--astro:end--></astro-island> </div> </header> <astro-island uid="193Wv7" component-url="/_astro/Navigation.B2RHZcqO.js" component-export="Navigation" renderer-url="/_astro/client.DN8ES6L5.js" props="{"navData":[1,[[1,[[0,{"id":[0,"src/components/aboutmodal/examples/aboutmodal"],"data":[0,{"id":[0,"About modal"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/accordion/examples/accordion"],"data":[0,{"id":[0,"Accordion"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/actionlist/examples/actionlist"],"data":[0,{"id":[0,"Action list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/alert/examples/alert"],"data":[0,{"id":[0,"Alert"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/avatar/examples/avatar"],"data":[0,{"id":[0,"Avatar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backtotop/examples/backtotop"],"data":[0,{"id":[0,"Back to top"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backdrop/examples/backdrop"],"data":[0,{"id":[0,"Backdrop"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backgroundimage/examples/backgroundimage"],"data":[0,{"id":[0,"Background image"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/badge/examples/badge"],"data":[0,{"id":[0,"Badge"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/banner/examples/banner"],"data":[0,{"id":[0,"Banner"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/brand/examples/brand"],"data":[0,{"id":[0,"Brand"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/breadcrumb/examples/breadcrumb"],"data":[0,{"id":[0,"Breadcrumb"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/button/examples/button"],"data":[0,{"id":[0,"Button"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/calendarmonth/examples/calendarmonth"],"data":[0,{"id":[0,"Calendar month"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/card/examples/card"],"data":[0,{"id":[0,"Card"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/checkbox/examples/checkbox"],"data":[0,{"id":[0,"Checkbox"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/chip/examples/chip"],"data":[0,{"id":[0,"Chip"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/clipboardcopy/examples/clipboardcopy"],"data":[0,{"id":[0,"Clipboard copy"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/codeblock/examples/codeblock"],"data":[0,{"id":[0,"Code block"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/content/examples/content"],"data":[0,{"id":[0,"Content"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/datalist/examples/datalist"],"data":[0,{"id":[0,"Data list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/datepicker/examples/datepicker"],"data":[0,{"id":[0,"Date picker"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/descriptionlist/examples/descriptionlist"],"data":[0,{"id":[0,"Description list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/divider/examples/divider"],"data":[0,{"id":[0,"Divider"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/dragdrop/examples/dragdrop"],"data":[0,{"id":[0,"Drag and drop"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/drawer/examples/drawer"],"data":[0,{"id":[0,"Drawer"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/dropdown/examples/dropdown"],"data":[0,{"id":[0,"Dropdown"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/duallistselector/examples/duallistselector"],"data":[0,{"id":[0,"Dual list selector"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/emptystate/examples/emptystate"],"data":[0,{"id":[0,"Empty state"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/expandablesection/examples/expandablesection"],"data":[0,{"id":[0,"Expandable section"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/form/examples/form"],"data":[0,{"id":[0,"Form"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/formselect/examples/formselect"],"data":[0,{"id":[0,"Form select"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/helpertext/examples/helpertext"],"data":[0,{"id":[0,"Helper text"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/hint/examples/hint"],"data":[0,{"id":[0,"Hint"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/icon/examples/icon"],"data":[0,{"id":[0,"Icon"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/inputgroup/examples/inputgroup"],"data":[0,{"id":[0,"Input group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/jumplinks/examples/jumplinks"],"data":[0,{"id":[0,"Jump links"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/label/examples/label"],"data":[0,{"id":[0,"Label"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/list/examples/list"],"data":[0,{"id":[0,"List"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/loginpage/examples/loginpage"],"data":[0,{"id":[0,"Login page"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/masthead/examples/masthead"],"data":[0,{"id":[0,"Masthead"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/menu/examples/menu"],"data":[0,{"id":[0,"Menu"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/menutoggle/examples/menutoggle"],"data":[0,{"id":[0,"Menu toggle"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/modal/examples/modal"],"data":[0,{"id":[0,"Modal"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/multiplefileupload/examples/multiplefileupload"],"data":[0,{"id":[0,"Multiple file upload"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/nav/examples/nav"],"data":[0,{"id":[0,"Navigation"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/notificationbadge/examples/notificationbadge"],"data":[0,{"id":[0,"Notification badge"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/notificationdrawer/examples/notificationdrawer"],"data":[0,{"id":[0,"Notification drawer"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/numberinput/examples/numberinput"],"data":[0,{"id":[0,"Number input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/overflowmenu/examples/overflowmenu"],"data":[0,{"id":[0,"Overflow menu"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/page/examples/page"],"data":[0,{"id":[0,"Page"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/pagination/examples/pagination"],"data":[0,{"id":[0,"Pagination"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/panel/examples/panel"],"data":[0,{"id":[0,"Panel"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/popover/examples/popover"],"data":[0,{"id":[0,"Popover"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/progress/examples/progress"],"data":[0,{"id":[0,"Progress"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/progressstepper/examples/progressstepper"],"data":[0,{"id":[0,"Progress stepper"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/radio/examples/radio"],"data":[0,{"id":[0,"Radio"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/searchinput/examples/searchinput"],"data":[0,{"id":[0,"Search input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/select/examples/select"],"data":[0,{"id":[0,"Select"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/sidebar/examples/sidebar"],"data":[0,{"id":[0,"Sidebar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/fileupload/examples/fileupload"],"data":[0,{"id":[0,"Simple file upload"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/simplelist/examples/simplelist"],"data":[0,{"id":[0,"Simple list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/skeleton/examples/skeleton"],"data":[0,{"id":[0,"Skeleton"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/skiptocontent/examples/skiptocontent"],"data":[0,{"id":[0,"Skip to content"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/slider/examples/slider"],"data":[0,{"id":[0,"Slider"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/spinner/examples/spinner"],"data":[0,{"id":[0,"Spinner"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/switch/examples/switch"],"data":[0,{"id":[0,"Switch"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/tabs/examples/tabs"],"data":[0,{"id":[0,"Tabs"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textarea/examples/textarea"],"data":[0,{"id":[0,"Text area"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textinput/examples/textinput"],"data":[0,{"id":[0,"Text input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textinputgroup/examples/textinputgroup"],"data":[0,{"id":[0,"Text input group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/tile/examples/tile"],"data":[0,{"id":[0,"Tile"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/timepicker/examples/timepicker"],"data":[0,{"id":[0,"Time picker"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/timestamp/examples/timestamp"],"data":[0,{"id":[0,"Timestamp"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/title/examples/title"],"data":[0,{"id":[0,"Title"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/togglegroup/examples/togglegroup"],"data":[0,{"id":[0,"Toggle group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/toolbar/examples/toolbar"],"data":[0,{"id":[0,"Toolbar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/tooltip/examples/tooltip"],"data":[0,{"id":[0,"Tooltip"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/treeview/examples/treeview"],"data":[0,{"id":[0,"Tree view"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/truncate/examples/truncate"],"data":[0,{"id":[0,"Truncate"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/wizard/examples/wizard"],"data":[0,{"id":[0,"Wizard"],"section":[0,"components"],"sortValue":[0]}]}]]]]],"data-astro-transition-scope":[0,"astro-xikxfxwm-3"]}" ssr client="only" opts="{"name":"ReactNav","value":"react"}" data-astro-transition-scope="astro-xikxfxwm-3"></astro-island> <div class="pf-v6-c-page__main-container"> <main class="pf-v6-c-page__main"> <section class="pf-v6-c-page__main-section"><div class="pf-v6-c-page__main-body"> <section id="ws-sticky-nav-tabs" class="pf-v6-c-page__main-tabs pf-m-sticky-top"><div class="pf-v6-c-page__main-body"> <div class="pf-v6-c-tabs pf-m-page-insets pf-m-no-border-bottom"> <ul class="pf-v6-c-tabs__list"> <li class="pf-v6-c-tabs__item"> <a class="pf-v6-c-tabs__link" href="/components/menu/react"> React </a> </li> </ul> </div> </div></section><section id="main-content" class="pf-v6-c-page__main-section pf-m-fill"><div class="pf-v6-c-page__main-body"> <h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-687" data-pf-content="true" class="pf-v6-c-content--h2">Examples</h2>
|
|
46
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
47
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
48
|
-
<ul data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
49
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
50
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
51
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
52
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
45
|
+
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-2e6ke2uy-4"] { animation: none; mix-blend-mode: normal; }</style></head> <body> <div class="pf-v6-c-page"> <script>(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value=="object"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};"requestIdleCallback"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event("astro:idle"));})();</script><header class="pf-v6-c-masthead pf-m-display-inline-on-md"> <div class="pf-v6-c-masthead__main"> <span class="pf-v6-c-masthead__toggle"> <astro-island uid="ZsaGwN" prefix="r5" component-url="/_astro/PageToggle.DBsLIFpI.js" component-export="PageToggle" renderer-url="/_astro/client.DN8ES6L5.js" props="{"data-astro-transition-persist":[0,"astro-u5p5alki-2"]}" ssr client="idle" opts="{"name":"PageToggle","value":true}" data-astro-transition-persist="astro-u5p5alki-2" await-children><button id="nav-toggle" aria-expanded="true" aria-label="Global navigation" class="pf-v6-c-button pf-m-plain" type="button" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-121"><span class="pf-v6-c-button__text"><svg class="pf-v6-svg" viewBox="0 0 448 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path></svg></span></button><!--astro:end--></astro-island> </span> <div class="pf-v6-c-masthead__brand"> <a class="pf-v6-c-masthead__logo" tabindex="0" href="/"> <img class="pf-v6-c-brand" style="--pf-v6-c-brand--Height:36px" src="/PF-HorizontalLogo-Color.svg" alt="PatternFly"/> </a> </div> </div> <div class="pf-v6-c-masthead__content"> <astro-island uid="89JAl" prefix="r7" component-url="/_astro/Toolbar.BNjGRsAQ.js" component-export="Toolbar" renderer-url="/_astro/client.DN8ES6L5.js" props="{}" ssr client="idle" opts="{"name":"ReactToolbar","value":true}" await-children><div class="pf-v6-c-toolbar pf-m-static" id="toolbar" data-ouia-component-type="PF6/Toolbar" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Toolbar-41"><div class="pf-v6-c-toolbar__content"><div class="pf-v6-c-toolbar__content-section"><div class="pf-v6-c-toolbar__group pf-m-action-group-plain pf-m-align-end pf-m-gap-none pf-m-gap-md-on-md"><div class="pf-v6-c-toolbar__item"></div><div class="pf-v6-c-toolbar__item"><div class="pf-v6-c-input-group ws-global-search"><div class="pf-v6-c-input-group__item"><button aria-expanded="false" aria-label="Expandable search input toggle" class="pf-v6-c-button pf-m-plain" type="button" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-122"><span class="pf-v6-c-button__icon"><svg class="pf-v6-svg" viewBox="0 0 512 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg></span></button></div></div></div><div class="pf-v6-c-toolbar__item"><a href="//github.com/patternfly" target="top" aria-label="PatternFly GitHub page" class="pf-v6-c-button pf-m-plain" data-ouia-component-type="PF6/Button" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Button-plain-123"><span class="pf-v6-c-button__text"><svg class="pf-v6-svg" viewBox="0 0 496 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></span></a></div><div class="pf-v6-c-toolbar__item"><button class="pf-v6-c-menu-toggle" type="button" aria-expanded="false" data-ouia-component-type="PF6/MenuToggle" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-MenuToggle-41"><span class="pf-v6-c-menu-toggle__text">Release 6.1.0</span><span class="pf-v6-c-menu-toggle__controls"><span class="pf-v6-c-menu-toggle__toggle-icon"><svg class="pf-v6-svg" viewBox="0 0 320 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path></svg></span></span></button></div></div></div></div><div class="pf-v6-c-toolbar__content pf-m-hidden" hidden=""><div class="pf-v6-c-toolbar__group"></div></div></div><!--astro:end--></astro-island> </div> </header> <astro-island uid="193Wv7" component-url="/_astro/Navigation.B2RHZcqO.js" component-export="Navigation" renderer-url="/_astro/client.DN8ES6L5.js" props="{"navData":[1,[[1,[[0,{"id":[0,"src/components/aboutmodal/examples/aboutmodal"],"data":[0,{"id":[0,"About modal"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/accordion/examples/accordion"],"data":[0,{"id":[0,"Accordion"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/actionlist/examples/actionlist"],"data":[0,{"id":[0,"Action list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/alert/examples/alert"],"data":[0,{"id":[0,"Alert"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/avatar/examples/avatar"],"data":[0,{"id":[0,"Avatar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backtotop/examples/backtotop"],"data":[0,{"id":[0,"Back to top"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backdrop/examples/backdrop"],"data":[0,{"id":[0,"Backdrop"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/backgroundimage/examples/backgroundimage"],"data":[0,{"id":[0,"Background image"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/badge/examples/badge"],"data":[0,{"id":[0,"Badge"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/banner/examples/banner"],"data":[0,{"id":[0,"Banner"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/brand/examples/brand"],"data":[0,{"id":[0,"Brand"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/breadcrumb/examples/breadcrumb"],"data":[0,{"id":[0,"Breadcrumb"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/button/examples/button"],"data":[0,{"id":[0,"Button"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/calendarmonth/examples/calendarmonth"],"data":[0,{"id":[0,"Calendar month"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/card/examples/card"],"data":[0,{"id":[0,"Card"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/checkbox/examples/checkbox"],"data":[0,{"id":[0,"Checkbox"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/chip/examples/chip"],"data":[0,{"id":[0,"Chip"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/clipboardcopy/examples/clipboardcopy"],"data":[0,{"id":[0,"Clipboard copy"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/codeblock/examples/codeblock"],"data":[0,{"id":[0,"Code block"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/content/examples/content"],"data":[0,{"id":[0,"Content"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/datalist/examples/datalist"],"data":[0,{"id":[0,"Data list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/datepicker/examples/datepicker"],"data":[0,{"id":[0,"Date picker"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/descriptionlist/examples/descriptionlist"],"data":[0,{"id":[0,"Description list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/divider/examples/divider"],"data":[0,{"id":[0,"Divider"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/dragdrop/examples/dragdrop"],"data":[0,{"id":[0,"Drag and drop"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/drawer/examples/drawer"],"data":[0,{"id":[0,"Drawer"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/dropdown/examples/dropdown"],"data":[0,{"id":[0,"Dropdown"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/duallistselector/examples/duallistselector"],"data":[0,{"id":[0,"Dual list selector"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/emptystate/examples/emptystate"],"data":[0,{"id":[0,"Empty state"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/expandablesection/examples/expandablesection"],"data":[0,{"id":[0,"Expandable section"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/form/examples/form"],"data":[0,{"id":[0,"Form"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/formselect/examples/formselect"],"data":[0,{"id":[0,"Form select"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/helpertext/examples/helpertext"],"data":[0,{"id":[0,"Helper text"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/hint/examples/hint"],"data":[0,{"id":[0,"Hint"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/icon/examples/icon"],"data":[0,{"id":[0,"Icon"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/inputgroup/examples/inputgroup"],"data":[0,{"id":[0,"Input group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/jumplinks/examples/jumplinks"],"data":[0,{"id":[0,"Jump links"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/label/examples/label"],"data":[0,{"id":[0,"Label"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/list/examples/list"],"data":[0,{"id":[0,"List"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/loginpage/examples/loginpage"],"data":[0,{"id":[0,"Login page"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/masthead/examples/masthead"],"data":[0,{"id":[0,"Masthead"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/menu/examples/menu"],"data":[0,{"id":[0,"Menu"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/menutoggle/examples/menutoggle"],"data":[0,{"id":[0,"Menu toggle"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/modal/examples/modal"],"data":[0,{"id":[0,"Modal"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/multiplefileupload/examples/multiplefileupload"],"data":[0,{"id":[0,"Multiple file upload"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/nav/examples/nav"],"data":[0,{"id":[0,"Navigation"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/notificationbadge/examples/notificationbadge"],"data":[0,{"id":[0,"Notification badge"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/notificationdrawer/examples/notificationdrawer"],"data":[0,{"id":[0,"Notification drawer"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/numberinput/examples/numberinput"],"data":[0,{"id":[0,"Number input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/overflowmenu/examples/overflowmenu"],"data":[0,{"id":[0,"Overflow menu"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/page/examples/page"],"data":[0,{"id":[0,"Page"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/pagination/examples/pagination"],"data":[0,{"id":[0,"Pagination"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/panel/examples/panel"],"data":[0,{"id":[0,"Panel"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/popover/examples/popover"],"data":[0,{"id":[0,"Popover"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/progress/examples/progress"],"data":[0,{"id":[0,"Progress"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/progressstepper/examples/progressstepper"],"data":[0,{"id":[0,"Progress stepper"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/radio/examples/radio"],"data":[0,{"id":[0,"Radio"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/searchinput/examples/searchinput"],"data":[0,{"id":[0,"Search input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/select/examples/select"],"data":[0,{"id":[0,"Select"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/sidebar/examples/sidebar"],"data":[0,{"id":[0,"Sidebar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/fileupload/examples/fileupload"],"data":[0,{"id":[0,"Simple file upload"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/simplelist/examples/simplelist"],"data":[0,{"id":[0,"Simple list"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/skeleton/examples/skeleton"],"data":[0,{"id":[0,"Skeleton"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/skiptocontent/examples/skiptocontent"],"data":[0,{"id":[0,"Skip to content"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/slider/examples/slider"],"data":[0,{"id":[0,"Slider"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/spinner/examples/spinner"],"data":[0,{"id":[0,"Spinner"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/switch/examples/switch"],"data":[0,{"id":[0,"Switch"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/tabs/examples/tabs"],"data":[0,{"id":[0,"Tabs"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textarea/examples/textarea"],"data":[0,{"id":[0,"Text area"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textinput/examples/textinput"],"data":[0,{"id":[0,"Text input"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/textinputgroup/examples/textinputgroup"],"data":[0,{"id":[0,"Text input group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/deprecated/components/tile/examples/tile"],"data":[0,{"id":[0,"Tile"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/timepicker/examples/timepicker"],"data":[0,{"id":[0,"Time picker"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/timestamp/examples/timestamp"],"data":[0,{"id":[0,"Timestamp"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/title/examples/title"],"data":[0,{"id":[0,"Title"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/togglegroup/examples/togglegroup"],"data":[0,{"id":[0,"Toggle group"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/toolbar/examples/toolbar"],"data":[0,{"id":[0,"Toolbar"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/tooltip/examples/tooltip"],"data":[0,{"id":[0,"Tooltip"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/treeview/examples/treeview"],"data":[0,{"id":[0,"Tree view"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/truncate/examples/truncate"],"data":[0,{"id":[0,"Truncate"],"section":[0,"components"],"sortValue":[0]}]}],[0,{"id":[0,"src/components/wizard/examples/wizard"],"data":[0,{"id":[0,"Wizard"],"section":[0,"components"],"sortValue":[0]}]}]]]]],"data-astro-transition-scope":[0,"astro-xikxfxwm-3"]}" ssr client="only" opts="{"name":"ReactNav","value":"react"}" data-astro-transition-scope="astro-xikxfxwm-3"></astro-island> <div class="pf-v6-c-page__main-container"> <main class="pf-v6-c-page__main"> <section class="pf-v6-c-page__main-section"><div class="pf-v6-c-page__main-body"> <section id="ws-sticky-nav-tabs" class="pf-v6-c-page__main-tabs pf-m-sticky-top"><div class="pf-v6-c-page__main-body"> <div class="pf-v6-c-tabs pf-m-page-insets pf-m-no-border-bottom"> <ul class="pf-v6-c-tabs__list"> <li class="pf-v6-c-tabs__item"> <a class="pf-v6-c-tabs__link" href="/components/menu/react"> React </a> </li> </ul> </div> </div></section><section id="main-content" class="pf-v6-c-page__main-section pf-m-fill"><div class="pf-v6-c-page__main-body"> <h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-644" data-pf-content="true" class="pf-v6-c-content--h2">Examples</h2>
|
|
46
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-645" data-pf-content="true" class="pf-v6-c-content--h3">Basic menus</h3>
|
|
47
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-673" data-pf-content="true" class="pf-v6-c-content--p">A menu may contain multiple variations of <code><MenuItem></code> components. The following example shows a few different states of menu items, where they may:</p>
|
|
48
|
+
<ul data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-709" data-pf-content="true" class="pf-v6-c-content--ul">
|
|
49
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-674" data-pf-content="true" class="pf-v6-c-content--li">Use the <code>itemId</code> property to link to callbacks. In this example, the <code>onSelect</code> property logs information to the console when a menu item is selected. In practice, specific actions can be linked to <code>onSelect</code> callbacks.</li>
|
|
50
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-675" data-pf-content="true" class="pf-v6-c-content--li">Use the <code>to</code> property to direct users to other resources or webpages after selecting a menu item, and the <code>onClick</code> property to pass in a callback for specific menu items.</li>
|
|
51
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-676" data-pf-content="true" class="pf-v6-c-content--li">Use the <code>isDisabled</code> property to disable a menu item.</li>
|
|
52
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-677" data-pf-content="true" class="pf-v6-c-content--li">Use the <code>isPlain</code> property to remove the outer box shadow and style the menu plainly instead.</li>
|
|
53
53
|
</ul>
|
|
54
54
|
|
|
55
55
|
<style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="Z2uy94S" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { Fragment, useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem, Checkbox } from '@patternfly/react-core';\n\nexport const MenuBasic: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n const [isPlain, setIsPlain] = useState(false);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(item);\n };\n\n const togglePlain = (checked: boolean) => {\n setIsPlain(checked);\n };\n\n return (\n <Fragment>\n <Menu activeItemId={activeItem} onSelect={onSelect} isPlain={isPlain}>\n <MenuContent>\n <MenuList>\n <MenuItem itemId={0}>Action</MenuItem>\n <MenuItem\n itemId={1}\n to=\"#default-link2\"\n // just for demo so that navigation is not triggered\n onClick={(event) => event.preventDefault()}\n >\n Link\n </MenuItem>\n <MenuItem isDisabled>Disabled action</MenuItem>\n <MenuItem isDisabled to=\"#default-link4\">\n Disabled link\n </MenuItem>\n <MenuItem isAriaDisabled tooltipProps={{ content: 'aria-disabled action', position: 'top' }}>\n Aria-disabled action\n </MenuItem>\n <MenuItem\n isAriaDisabled\n to=\"#default-link5\"\n tooltipProps={{ content: 'aria-disabled link', position: 'top' }}\n >\n Aria-disabled link\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n <div style={{ marginTop: 20 }}>\n <Checkbox\n label=\"Plain menu\"\n isChecked={isPlain}\n onChange={(_event, checked) => togglePlain(checked)}\n aria-label=\"plain menu checkbox\"\n id=\"toggle-plain\"\n name=\"toggle-plain\"\n />\n </div>\n </Fragment>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
56
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
57
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
56
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-646" data-pf-content="true" class="pf-v6-c-content--h3">Danger menu item</h3>
|
|
57
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-678" data-pf-content="true" class="pf-v6-c-content--p">To indicate that a <code><MenuItem></code> is connected to a potentially destructive action, use the <code>isDanger</code> property. The “Delete” item in the following example demonstrates how danger items look.</p>
|
|
58
58
|
|
|
59
59
|
<astro-island uid="mrg9" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Divider, Menu, MenuContent, MenuItem, MenuList } from '@patternfly/react-core';\n\nexport const MenuDangerMenuItem: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(item);\n };\n\n return (\n <Menu activeItemId={activeItem} onSelect={onSelect}>\n <MenuContent>\n <MenuList>\n <MenuItem itemId={0}>Action 1</MenuItem>\n <MenuItem itemId={1}>Action 2</MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId={2} isDanger>\n Delete\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
60
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
61
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
60
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-647" data-pf-content="true" class="pf-v6-c-content--h3">With icons</h3>
|
|
61
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-679" data-pf-content="true" class="pf-v6-c-content--p">Use the <code>icon</code> property to add a familiar icon before a <code><MenuItem></code> to accelerate text label recognition.</p>
|
|
62
62
|
|
|
63
63
|
<astro-island uid="ZqqWEx" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport LayerGroupIcon from '@patternfly/react-icons/dist/esm/icons/layer-group-icon';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\n\nexport const MenuWithIcons: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuContent>\n <MenuList>\n <MenuItem icon={<CodeBranchIcon />} itemId={0}>\n From git\n </MenuItem>\n <MenuItem icon={<LayerGroupIcon />} itemId={1}>\n Container image\n </MenuItem>\n <MenuItem icon={<CubeIcon />} itemId={2}>\n Docker file\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
64
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
65
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
66
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
67
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
64
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-648" data-pf-content="true" class="pf-v6-c-content--h3">With actions</h3>
|
|
65
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-680" data-pf-content="true" class="pf-v6-c-content--p">To connect a menu item to an action icon, add a <code><MenuItemAction></code> to a <code><MenuItem></code>, and use the <code>icon</code> property to load an easily recognizable icon.</p>
|
|
66
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-681" data-pf-content="true" class="pf-v6-c-content--p">To trigger an action when any menu action icon is selected, pass a callback to the <code>onActionClick</code> property of the <code><Menu></code>. The following example logs to the console any time any action icon is selected.</p>
|
|
67
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-682" data-pf-content="true" class="pf-v6-c-content--p">To trigger an action when a specific item’s action icon is selected, pass in the <code>onClick</code> property to that <code><MenuItemAction></code>. The following example logs “clicked on code icon” to the console when the “code” icon is selected.</p>
|
|
68
68
|
|
|
69
69
|
<astro-island uid="2eyYWr" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuGroup, MenuList, MenuItem, MenuItemAction } from '@patternfly/react-core';\nimport BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';\nimport ClipboardIcon from '@patternfly/react-icons/dist/esm/icons/clipboard-icon';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';\n\nexport const MenuWithActions: React.FunctionComponent = () => {\n const [selectedItems, setSelectedItems] = useState<number[]>([0, 2, 3]);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n if (selectedItems.indexOf(item) !== -1) {\n setSelectedItems(selectedItems.filter((id) => id !== item));\n } else {\n setSelectedItems([...selectedItems, item]);\n }\n };\n\n return (\n <Menu\n onSelect={onSelect}\n // eslint-disable-next-line no-console\n onActionClick={(_event, itemId, actionId) => console.log(`clicked on ${itemId} - ${actionId}`)}\n activeItemId={0}\n >\n <MenuContent>\n <MenuGroup label=\"Actions\" labelHeadingLevel=\"h3\">\n <MenuList>\n <MenuItem\n isSelected={selectedItems.indexOf(0) !== -1}\n actions={\n <MenuItemAction\n icon={<CodeBranchIcon />}\n actionId=\"code\"\n // eslint-disable-next-line no-console\n onClick={() => console.log('clicked on code icon')}\n aria-label=\"Code\"\n />\n }\n description=\"This is a description\"\n itemId={0}\n >\n Item 1\n </MenuItem>\n <MenuItem\n isDisabled\n isSelected={selectedItems.indexOf(1) !== -1}\n actions={<MenuItemAction icon={<BellIcon />} actionId=\"alert\" aria-label=\"Alert\" />}\n description=\"This is a description\"\n itemId={1}\n >\n Item 2\n </MenuItem>\n <MenuItem\n isSelected={selectedItems.indexOf(2) !== -1}\n actions={<MenuItemAction icon={<ClipboardIcon />} actionId=\"copy\" aria-label=\"Copy\" />}\n itemId={2}\n >\n Item 3\n </MenuItem>\n <MenuItem\n isSelected={selectedItems.indexOf(3) !== -1}\n actions={<MenuItemAction icon={<BarsIcon />} actionId=\"expand\" aria-label=\"Expand\" />}\n description=\"This is a description\"\n itemId={3}\n >\n Item 4\n </MenuItem>\n </MenuList>\n </MenuGroup>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
70
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
71
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
70
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-649" data-pf-content="true" class="pf-v6-c-content--h3">With links</h3>
|
|
71
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-683" data-pf-content="true" class="pf-v6-c-content--p">Use the <code>to</code> property to add a link to a <code><MenuItem></code> that directs users to a new page when the item is selected. Use the <code>isExternalLink</code> property when linking to external resources. This will annotate a menu item link with an external link icon when they navigate to the link or hover over it, as well as add <code>target="_blank"</code> so that the link opens in a new tab or window.</p>
|
|
72
72
|
|
|
73
73
|
<astro-island uid="1GDyfU" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const MenuWithLinks: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuContent>\n <MenuList>\n <MenuItem isExternalLink to=\"#default-link1\" itemId={0}>\n Link 1\n </MenuItem>\n <MenuItem isExternalLink to=\"#default-link2\" itemId={1}>\n Link 2\n </MenuItem>\n <MenuItem to=\"#default-link3\" itemId={2}>\n Link 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
74
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
75
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
74
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-650" data-pf-content="true" class="pf-v6-c-content--h3">With descriptions</h3>
|
|
75
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-684" data-pf-content="true" class="pf-v6-c-content--p">Use the <code>description</code> property to add short descriptive text below any menu item that needs additional context.</p>
|
|
76
76
|
|
|
77
77
|
<astro-island uid="Z1tqwuR" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\n\nexport const MenuWithDescription: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuContent>\n <MenuList>\n <MenuItem icon={<CodeBranchIcon />} description=\"Description\" itemId={0}>\n Action 1\n </MenuItem>\n <MenuItem isDisabled icon={<CodeBranchIcon />} description=\"Description\" itemId={1}>\n Action 2 disabled\n </MenuItem>\n <MenuItem\n icon={<CodeBranchIcon />}\n description=\"Nunc non ornare ex, et pretium dui. Duis nec augue at urna elementum blandit tincidunt eget metus. Aenean sed metus id urna dignissim interdum. Aenean vel nisl vitae arcu vehicula pulvinar eget nec turpis. Cras sit amet est est.\"\n itemId={2}\n >\n Action 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
78
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
79
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
78
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-651" data-pf-content="true" class="pf-v6-c-content--h3">Item checkbox</h3>
|
|
79
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-685" data-pf-content="true" class="pf-v6-c-content--p">Use the <code>hasCheck</code> property to add a checkbox to a <code><MenuItem></code>. Use the <code>isSelected</code> property to indicate when a <code><MenuItem></code> is selected.</p>
|
|
80
80
|
|
|
81
81
|
<astro-island uid="gyBQx" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const MenuWithCheckbox: React.FunctionComponent = () => {\n const [selectedItems, setSelectedItems] = useState<number[]>([]);\n\n /* eslint no-unused-vars: [\"error\", {\"args\": \"after-used\"}] */\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n if (selectedItems.includes(item)) {\n setSelectedItems(selectedItems.filter((id) => id !== item));\n } else {\n setSelectedItems([...selectedItems, item]);\n }\n };\n\n return (\n <Menu onSelect={onSelect} selected={selectedItems}>\n <MenuContent>\n <MenuList>\n <MenuItem hasCheckbox itemId={0} isSelected={selectedItems.includes(0)}>\n Checkbox 1\n </MenuItem>\n <MenuItem hasCheckbox itemId={1} isSelected={selectedItems.includes(1)}>\n Checkbox 2\n </MenuItem>\n <MenuItem hasCheckbox itemId={2} isDisabled>\n Checkbox 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
82
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
83
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
82
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-652" data-pf-content="true" class="pf-v6-c-content--h3">Menu footer</h3>
|
|
83
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-686" data-pf-content="true" class="pf-v6-c-content--p">Add a <code><MenuFooter></code> that contains separate, but related actions at the bottom of a menu.</p>
|
|
84
84
|
|
|
85
85
|
<astro-island uid="Z8sJ2L" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuList, MenuItem, MenuContent, MenuFooter, Button } from '@patternfly/react-core';\n\nexport const MenuWithFooter: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu activeItemId={activeItem} onSelect={onSelect}>\n <MenuContent>\n <MenuList>\n <MenuItem itemId={0}>Action</MenuItem>\n <MenuItem\n itemId={1}\n to=\"#default-link2\"\n // just for demo so that navigation is not triggered\n onClick={(event) => event.preventDefault()}\n >\n Link\n </MenuItem>\n <MenuItem isDisabled>Disabled action</MenuItem>\n <MenuItem isDisabled to=\"#default-link4\">\n Disabled link\n </MenuItem>\n </MenuList>\n </MenuContent>\n <MenuFooter>\n <Button variant=\"link\" isInline>\n Action\n </Button>\n </MenuFooter>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
86
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
87
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
86
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-653" data-pf-content="true" class="pf-v6-c-content--h3">Separated items</h3>
|
|
87
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-706" data-pf-content="true" class="pf-v6-c-content--p">Use a <a data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-654" data-pf-content="true" class="pf-v6-c-content--a">divider</a> to visually separate <code><MenuContent></code>. Use the <code>component</code> property to specify the type of divider component to use.</p>
|
|
88
88
|
|
|
89
89
|
<astro-island uid="25V6q1" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Divider, Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const MenuWithSeparators: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuContent>\n <MenuList>\n <MenuItem itemId={0}>Action 1</MenuItem>\n <MenuItem itemId={1}>Action 2</MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId={2}>Action 3</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
90
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
91
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
90
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-655" data-pf-content="true" class="pf-v6-c-content--h3">Titled groups of items</h3>
|
|
91
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-687" data-pf-content="true" class="pf-v6-c-content--p">Add a <code><MenuGroup></code> to organize <code><MenuContent></code> and use the <code>label</code> property to title a group of menu items. Use the <code>labelHeadingLevel</code> property to assign a heading level to the menu group label.</p>
|
|
92
92
|
|
|
93
93
|
<astro-island uid="Z1D7e6h" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuGroup, MenuList, MenuItem, Divider } from '@patternfly/react-core';\n\nexport const MenuWithTitledGroups: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuContent>\n <MenuGroup>\n <MenuList>\n <MenuItem to=\"#\" itemId={0}>\n Link not in group\n </MenuItem>\n </MenuList>\n </MenuGroup>\n <Divider />\n <MenuGroup label=\"Group 1\" labelHeadingLevel=\"h3\">\n <MenuList>\n <MenuItem to=\"#\" itemId={1}>\n Link 1\n </MenuItem>\n <MenuItem itemId={2}>Link 2</MenuItem>\n </MenuList>\n </MenuGroup>\n <Divider />\n <MenuGroup label=\"Group 2\" labelHeadingLevel=\"h3\">\n <MenuList>\n <MenuItem to=\"#\" itemId={3}>\n Link 1\n </MenuItem>\n <MenuItem to=\"#\" itemId={4}>\n Link 2\n </MenuItem>\n </MenuList>\n </MenuGroup>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
94
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
95
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
94
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-656" data-pf-content="true" class="pf-v6-c-content--h3">With favorites</h3>
|
|
95
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-688" data-pf-content="true" class="pf-v6-c-content--p">The following menu example allows users to favorite menu items, an action that duplicates a menu item and places it in a separate group at the top of the menu. The <code>isFavorited</code> property identifies items that a user has favorited.</p>
|
|
96
96
|
|
|
97
97
|
<astro-island uid="1U1P3c" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { Fragment, useState } from 'react';\nimport { Menu, MenuContent, MenuItem, MenuItemAction, MenuGroup, MenuList, Divider } from '@patternfly/react-core';\nimport BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';\nimport ClipboardIcon from '@patternfly/react-icons/dist/esm/icons/clipboard-icon';\nimport BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';\n\nexport const MenuWithFavorites: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n const [favorites, setFavorites] = useState<string[]>([]);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${item}`);\n setActiveItem(item);\n };\n\n const onFavorite = (event, itemId: string, actionId: string) => {\n // eslint-disable-next-line no-console\n console.log(`clicked ${itemId} - ${actionId}`);\n if (actionId === 'fav') {\n const isFavorite = favorites.includes(itemId);\n if (isFavorite) {\n setFavorites(favorites.filter((fav) => fav !== itemId));\n } else {\n setFavorites([...favorites, itemId]);\n }\n }\n };\n\n const items = [\n {\n text: 'Item 1',\n description: 'Description 1',\n itemId: 'item-1',\n action: <BarsIcon />,\n actionId: 'bars'\n },\n {\n text: 'Item 2',\n description: 'Description 2',\n itemId: 'item-2',\n action: <ClipboardIcon />,\n actionId: 'clipboard'\n },\n {\n text: 'Item 3',\n description: 'Description 3',\n itemId: 'item-3',\n action: <BellIcon />,\n actionId: 'bell'\n }\n ];\n\n return (\n <Menu onSelect={onSelect} onActionClick={onFavorite} activeItemId={activeItem}>\n <MenuContent>\n {favorites.length > 0 && (\n <Fragment>\n <MenuGroup label=\"Favorites\" labelHeadingLevel=\"h3\">\n <MenuList>\n {items\n .filter((item) => favorites.includes(item.itemId))\n .map((item) => {\n const { text, description, itemId, action, actionId } = item;\n return (\n <MenuItem\n key={`fav-${itemId}`}\n isFavorited\n description={description}\n itemId={itemId}\n actions={<MenuItemAction actionId={actionId} icon={action} aria-label={actionId} />}\n >\n {text}\n </MenuItem>\n );\n })}\n </MenuList>\n </MenuGroup>\n <Divider />\n </Fragment>\n )}\n <MenuGroup label=\"All actions\" labelHeadingLevel=\"h3\">\n <MenuList>\n {items.map((item) => {\n const { text, description, itemId, action, actionId } = item;\n const isFavorited = favorites.includes(item.itemId);\n return (\n <MenuItem\n key={itemId}\n isFavorited={isFavorited}\n description={description}\n itemId={itemId}\n actions={<MenuItemAction actionId={actionId} icon={action} aria-label={actionId} />}\n >\n {text}\n </MenuItem>\n );\n })}\n </MenuList>\n </MenuGroup>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
98
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
99
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
98
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-657" data-pf-content="true" class="pf-v6-c-content--h3">Filtering with search input</h3>
|
|
99
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-707" data-pf-content="true" class="pf-v6-c-content--p">A <a data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-658" data-pf-content="true" class="pf-v6-c-content--a">search input</a> component can be placed within <code><MenuSearch></code> and <code><MenuSearchInput></code> to render a search input at the top of the menu. In the following example, the <code>onChange</code> property of the text input is passed a callback that filters menu items as a user types.</p>
|
|
100
100
|
|
|
101
101
|
<astro-island uid="70bsz" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport {\n Menu,\n MenuList,\n MenuItem,\n MenuContent,\n MenuSearch,\n MenuSearchInput,\n Divider,\n SearchInput\n} from '@patternfly/react-core';\n\nexport const MenuFilteringWithSearchInput: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n const [input, setInput] = useState('');\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number; // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(item);\n };\n\n const handleTextInputChange = (value: string) => {\n setInput(value);\n };\n\n const menuListItemsText = ['Action 1', 'Action 2', 'Action 3'];\n\n const menuListItems = menuListItemsText\n .filter((item) => !input || item.toLowerCase().includes(input.toString().toLowerCase()))\n .map((currentValue, index) => (\n <MenuItem key={currentValue} itemId={index}>\n {currentValue}\n </MenuItem>\n ));\n if (input && menuListItems.length === 0) {\n menuListItems.push(\n <MenuItem isDisabled key=\"no result\">\n No results found\n </MenuItem>\n );\n }\n\n return (\n <Menu onSelect={onSelect} activeItemId={activeItem}>\n <MenuSearch>\n <MenuSearchInput>\n <SearchInput\n value={input}\n aria-label=\"Filter menu items\"\n onChange={(_event, value) => handleTextInputChange(value)}\n />\n </MenuSearchInput>\n </MenuSearch>\n <Divider />\n <MenuContent>\n <MenuList>{menuListItems}</MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
102
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
103
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
104
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
102
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-659" data-pf-content="true" class="pf-v6-c-content--h3">Option single select menu</h3>
|
|
103
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-689" data-pf-content="true" class="pf-v6-c-content--p">The following example demonstrates a single option select menu that persists a selected menu item. Use the <code>selected</code> property on the <code><Menu></code> to label a selected item with a checkmark. You can also use the <code>isSelected</code> property on a <code><MenuItem></code> to indicate that it is selected.</p>
|
|
104
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-690" data-pf-content="true" class="pf-v6-c-content--p">You must also use the <code>role</code> property on the <code><Menu></code> with a value of <code>"listbox"</code> when using a non-checkbox select menu.</p>
|
|
105
105
|
|
|
106
106
|
<astro-island uid="Z9TgdQ" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\nimport TableIcon from '@patternfly/react-icons/dist/esm/icons/table-icon';\n\nexport const MenuOptionSingleSelect: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n const [selectedItem, setSelectedItem] = useState(0);\n\n const onSelect = (_event, itemId) => {\n setActiveItem(itemId);\n setSelectedItem(itemId);\n };\n\n return (\n <Menu role=\"listbox\" onSelect={onSelect} activeItemId={activeItem} selected={selectedItem}>\n <MenuContent>\n <MenuList aria-label=\"Menu single select example\">\n <MenuItem itemId={0}>Option 1</MenuItem>\n <MenuItem itemId={1}>Option 2</MenuItem>\n <MenuItem icon={<TableIcon />} itemId={2}>\n Option 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
107
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
108
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
109
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
107
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-660" data-pf-content="true" class="pf-v6-c-content--h3">Option multi select menu</h3>
|
|
108
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-691" data-pf-content="true" class="pf-v6-c-content--p">To persist multiple selections that a user makes, use a multiple option select menu. To enable multi select, pass an array containing each selected <code>itemId</code> to the <code>selected</code> property on the <code><Menu></code>, and pass the <code>isAriaMultiselectable</code> property on the <code><MenuList></code>.</p>
|
|
109
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-692" data-pf-content="true" class="pf-v6-c-content--p">Similar to a single select menu, you must also pass <code>role="listbox"</code> to the <code><Menu></code>.</p>
|
|
110
110
|
|
|
111
111
|
<astro-island uid="14zeJC" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\nimport TableIcon from '@patternfly/react-icons/dist/esm/icons/table-icon';\n\nexport const MenuOptionMultiSelect: React.FunctionComponent = () => {\n const [selectedItems, setSelectedItems] = useState<number[]>([]);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n const item = itemId as number;\n if (selectedItems.indexOf(item) !== -1) {\n setSelectedItems(selectedItems.filter((id) => id !== item));\n } else {\n setSelectedItems([...selectedItems, item]);\n }\n };\n\n return (\n <Menu role=\"listbox\" onSelect={onSelect} activeItemId={0} selected={selectedItems}>\n <MenuContent>\n <MenuList isAriaMultiselectable aria-label=\"Menu multi select example\">\n <MenuItem itemId={0}>Option 1</MenuItem>\n <MenuItem itemId={1}>Option 2</MenuItem>\n <MenuItem icon={<TableIcon />} itemId={2}>\n Option 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
112
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
113
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
112
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-661" data-pf-content="true" class="pf-v6-c-content--h3">Scrollable menus</h3>
|
|
113
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-693" data-pf-content="true" class="pf-v6-c-content--p">Use the <code>isScrollable</code> property to make a long <code><Menu></code> scrollable and visually condensed.</p>
|
|
114
114
|
|
|
115
115
|
<astro-island uid="Z1IH7BT" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const MenuScrollable: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event, itemId) => {\n // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(itemId);\n };\n\n return (\n <Menu activeItemId={activeItem} onSelect={onSelect} isScrollable>\n <MenuContent>\n <MenuList>\n <MenuItem itemId={0}>Action 1</MenuItem>\n <MenuItem itemId={1}>Action 2</MenuItem>\n <MenuItem itemId={2}>Action 3</MenuItem>\n <MenuItem itemId={3}>Action 4</MenuItem>\n <MenuItem itemId={4}>Action 5</MenuItem>\n <MenuItem itemId={5}>Action 6</MenuItem>\n <MenuItem itemId={6}>Action 7</MenuItem>\n <MenuItem itemId={7}>Action 8</MenuItem>\n <MenuItem itemId={8}>Action 9</MenuItem>\n <MenuItem itemId={9}>Action 10</MenuItem>\n <MenuItem itemId={10}>Action 11</MenuItem>\n <MenuItem itemId={11}>Action 12</MenuItem>\n <MenuItem itemId={12}>Action 13</MenuItem>\n <MenuItem itemId={13}>Action 14</MenuItem>\n <MenuItem itemId={14}>Action 15</MenuItem>\n <MenuItem\n itemId={15}\n to=\"#default-link2\"\n // just for demo so that navigation is not triggered\n onClick={(event) => event.preventDefault()}\n >\n Link\n </MenuItem>\n <MenuItem isDisabled>Disabled action</MenuItem>\n <MenuItem isDisabled to=\"#default-link4\">\n Disabled link\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
116
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
117
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
116
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-662" data-pf-content="true" class="pf-v6-c-content--h3">Scrollable menu with custom height</h3>
|
|
117
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-694" data-pf-content="true" class="pf-v6-c-content--p">Adjust the visual size of a scrollable menu by using the <code>menuHeight</code> property within <code><MenuContent></code>. This example adjusts the height to 200px.</p>
|
|
118
118
|
|
|
119
119
|
<astro-island uid="Z3m2U0" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const MenuScrollableCustomMenuHeight: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event, itemId) => {\n // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(itemId);\n };\n\n return (\n <Menu activeItemId={activeItem} onSelect={onSelect} isScrollable>\n <MenuContent menuHeight=\"200px\">\n <MenuList>\n <MenuItem itemId={0}>Action 1</MenuItem>\n <MenuItem itemId={1}>Action 2</MenuItem>\n <MenuItem itemId={2}>Action 3</MenuItem>\n <MenuItem itemId={3}>Action 4</MenuItem>\n <MenuItem itemId={4}>Action 5</MenuItem>\n <MenuItem itemId={5}>Action 6</MenuItem>\n <MenuItem itemId={6}>Action 7</MenuItem>\n <MenuItem itemId={7}>Action 8</MenuItem>\n <MenuItem itemId={8}>Action 9</MenuItem>\n <MenuItem itemId={9}>Action 10</MenuItem>\n <MenuItem itemId={10}>Action 11</MenuItem>\n <MenuItem itemId={11}>Action 12</MenuItem>\n <MenuItem itemId={12}>Action 13</MenuItem>\n <MenuItem itemId={13}>Action 14</MenuItem>\n <MenuItem itemId={14}>Action 15</MenuItem>\n <MenuItem\n itemId={15}\n to=\"#default-link2\"\n // just for demo so that navigation is not triggered\n onClick={(event) => event.preventDefault()}\n >\n Link\n </MenuItem>\n <MenuItem isDisabled>Disabled action</MenuItem>\n <MenuItem isDisabled to=\"#default-link4\">\n Disabled link\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
120
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
121
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
122
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
120
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-663" data-pf-content="true" class="pf-v6-c-content--h3">With view more</h3>
|
|
121
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-695" data-pf-content="true" class="pf-v6-c-content--p">If you want to initially render only a certain number of menu items within a large menu, you can add a “view more” menu item with a callback passed into its <code>onClick</code> property that will render additional menu items.</p>
|
|
122
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-664" data-pf-content="true" class="pf-v6-c-content--p">In this example, 3 additional menu items are revealed each time the “view more” option is selected, with a loading icon simulating a network call to fetch more items. After all items are visible, the “view more” link disappears.</p>
|
|
123
123
|
|
|
124
124
|
<astro-island uid="1nKCfC" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useEffect, useRef, useState } from 'react';\nimport { Menu, MenuList, MenuItem, MenuContent, Spinner } from '@patternfly/react-core';\n\nexport const MenuWithViewMore: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState<number | string>(0);\n const [isLoading, setIsLoading] = useState(false);\n const [numOptions, setNumOptions] = useState(3);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [menuOptions, setMenuOptions] = useState([\n <MenuItem key={0} itemId={'view-more-0'}>\n Action\n </MenuItem>,\n <MenuItem\n key={1}\n itemId={'view-more-1'}\n to=\"#default-link2\"\n // just for demo so that navigation is not triggered\n onClick={(event) => event.preventDefault()}\n >\n Link\n </MenuItem>,\n <MenuItem key={2} itemId=\"view-more-2\" isDisabled>\n Disabled action\n </MenuItem>,\n <MenuItem key={3} itemId=\"view-more-3\" isDisabled to=\"#default-link4\">\n Disabled link\n </MenuItem>,\n <MenuItem key={4} itemId=\"view-more-4\">\n Action 2\n </MenuItem>,\n <MenuItem key={5} itemId=\"view-more-5\">\n Action 3\n </MenuItem>,\n <MenuItem key={6} itemId=\"view-more-6\">\n Action 4\n </MenuItem>,\n <MenuItem key={7} itemId=\"view-more-7\">\n Action 5\n </MenuItem>,\n <MenuItem key={8} itemId=\"view-more-8\">\n Final option\n </MenuItem>\n ]);\n const [visibleOptions, setVisibleOptions] = useState(menuOptions.slice(0, numOptions));\n\n const activeItemRef = useRef<HTMLElement>(null);\n const viewMoreRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n activeItemRef.current?.focus();\n }, [visibleOptions]);\n\n const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: number | string | undefined) => {\n // eslint-disable-next-line no-console\n console.log(`clicked ${itemId}`);\n setActiveItem(itemId as string);\n };\n\n const simulateNetworkCall = (networkCallback: () => void) => {\n setTimeout(networkCallback, 2000);\n };\n\n const getNextValidItem = (startingIndex: number, maxLength: number) => {\n let validItem;\n for (let i = startingIndex; i < maxLength; i++) {\n if (menuOptions[i].props.isDisabled) {\n continue;\n } else {\n validItem = menuOptions[i];\n break;\n }\n }\n return validItem;\n };\n\n const loadMoreOptions = () => {\n const newLength = numOptions + 3 <= menuOptions.length ? numOptions + 3 : menuOptions.length;\n const prevPosition = numOptions;\n const nextValidItem = getNextValidItem(prevPosition, newLength);\n\n setNumOptions(newLength);\n setIsLoading(false);\n setActiveItem(nextValidItem.props.itemId);\n setVisibleOptions(menuOptions.slice(0, newLength));\n };\n\n const onViewMoreClick = () => {\n setIsLoading(true);\n simulateNetworkCall(() => {\n loadMoreOptions();\n });\n };\n\n return (\n <Menu activeItemId={activeItem} onSelect={onSelect}>\n <MenuContent>\n <MenuList>\n {visibleOptions.map((option) => {\n const props = option.props;\n\n return <MenuItem key={option.key} ref={props.itemId === activeItem ? activeItemRef : null} {...props} />;\n })}\n {numOptions !== menuOptions.length && (\n <MenuItem\n {...(!isLoading && { isLoadButton: true })}\n {...(isLoading && { isLoading: true })}\n onClick={onViewMoreClick}\n itemId=\"loader\"\n ref={viewMoreRef}\n >\n {isLoading ? <Spinner size=\"lg\" /> : 'View more'}\n </MenuItem>\n )}\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
125
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
126
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
127
|
-
<ul data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
128
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
129
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
130
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
131
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
132
|
-
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
125
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-665" data-pf-content="true" class="pf-v6-c-content--h3">With drilldown</h3>
|
|
126
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-666" data-pf-content="true" class="pf-v6-c-content--p">Use a drilldown menu to contain different levels of menu items. When a parent menu item (an item that has a submenu of children) is selected, the menu is replaced with the children items.</p>
|
|
127
|
+
<ul data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-710" data-pf-content="true" class="pf-v6-c-content--ul">
|
|
128
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-696" data-pf-content="true" class="pf-v6-c-content--li">To indicate that a menu contains a drilldown, use the <code>containsDrilldown</code> property.</li>
|
|
129
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-697" data-pf-content="true" class="pf-v6-c-content--li">To indicate the path of drilled-in menu item ids, use the <code>drilldownItemPath</code> property.</li>
|
|
130
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-698" data-pf-content="true" class="pf-v6-c-content--li">Pass in an array of drilled-in menus with the <code>drilledInMenus</code> property.</li>
|
|
131
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-699" data-pf-content="true" class="pf-v6-c-content--li">Use the <code>onDrillIn</code> and <code>onDrillOut</code> properties to contain callbacks for drilling into and drilling out of a submenu, respectively.</li>
|
|
132
|
+
<li data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-700" data-pf-content="true" class="pf-v6-c-content--li">To account for updated heights as menus drill in and out of use, use the <code>onGetMenuHeight</code> property. When starting from a drilled-in state, the <code>onGetMenuHeight</code> property must define the height of the root menu.</li>
|
|
133
133
|
</ul>
|
|
134
134
|
|
|
135
135
|
<astro-island uid="1dbgWF" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem, Divider, DrilldownMenu } from '@patternfly/react-core';\nimport StorageDomainIcon from '@patternfly/react-icons/dist/esm/icons/storage-domain-icon';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport LayerGroupIcon from '@patternfly/react-icons/dist/esm/icons/layer-group-icon';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\n\nexport const MenuWithDrilldown: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>([]);\n const [menuHeights, setMenuHeights] = useState<any>({});\n const [activeMenu, setActiveMenu] = useState<string>('drilldown-rootMenu');\n\n const drillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromMenuId: string,\n toMenuId: string,\n pathId: string\n ) => {\n setMenuDrilledIn([...menuDrilledIn, fromMenuId]);\n setDrilldownPath([...drilldownPath, pathId]);\n setActiveMenu(toMenuId);\n };\n\n const drillOut = (_event: React.KeyboardEvent | React.MouseEvent, toMenuId: string) => {\n const menuDrilledInSansLast = menuDrilledIn.slice(0, menuDrilledIn.length - 1);\n const pathSansLast = drilldownPath.slice(0, drilldownPath.length - 1);\n setMenuDrilledIn(menuDrilledInSansLast);\n setDrilldownPath(pathSansLast);\n setActiveMenu(toMenuId);\n };\n\n const setHeight = (menuId: string, height: number) => {\n if (menuHeights[menuId] === undefined || (menuId !== 'drilldown-rootMenu' && menuHeights[menuId] !== height)) {\n setMenuHeights({ ...menuHeights, [menuId]: height });\n }\n };\n\n return (\n <Menu\n id=\"drilldown-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={drillIn}\n onDrillOut={drillOut}\n onGetMenuHeight={setHeight}\n >\n <MenuContent menuHeight={`${menuHeights[activeMenu]}px`}>\n <MenuList>\n <MenuItem\n itemId=\"group:start_rollout\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuStart\">\n <MenuItem itemId=\"group:start_rollout_breadcrumb\" direction=\"up\">\n Start rollout\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuStartGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuStartLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n }\n >\n Start rollout\n </MenuItem>\n <MenuItem\n itemId=\"group:pause_rollout\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuPause\">\n <MenuItem itemId=\"group:pause_rollout_breadcrumb\" direction=\"up\">\n Pause rollouts\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n }\n >\n Pause rollouts\n </MenuItem>\n <MenuItem\n itemId=\"group:storage\"\n icon={<StorageDomainIcon />}\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"drilldown-drilldownMenuStorage\">\n <MenuItem itemId=\"group:storage_breadcrumb\" icon={<StorageDomainIcon />} direction=\"up\">\n Add storage\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem icon={<CodeBranchIcon />} itemId=\"git\">\n From git\n </MenuItem>\n <MenuItem icon={<LayerGroupIcon />} itemId=\"container\">\n Container image\n </MenuItem>\n <MenuItem icon={<CubeIcon />} itemId=\"docker\">\n Docker file\n </MenuItem>\n </DrilldownMenu>\n }\n >\n Add storage\n </MenuItem>\n <MenuItem itemId=\"edit\">Edit</MenuItem>\n <MenuItem itemId=\"delete_deployment\">Delete deployment config</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
136
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
137
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
136
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-667" data-pf-content="true" class="pf-v6-c-content--h3">Initially drilled-in menu</h3>
|
|
137
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-701" data-pf-content="true" class="pf-v6-c-content--p">To render an initially drilled-in menu, the <code>drilldownItemPath</code>, <code>drilledInMenus</code>, and <code>activeMenu</code> properties must be set to default values.</p>
|
|
138
138
|
|
|
139
139
|
<astro-island uid="aap59" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem, Divider, DrilldownMenu } from '@patternfly/react-core';\nimport StorageDomainIcon from '@patternfly/react-icons/dist/esm/icons/storage-domain-icon';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport LayerGroupIcon from '@patternfly/react-icons/dist/esm/icons/layer-group-icon';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\n\nexport const MenuDrilldownInitialState: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([\n 'initial-state-rootMenu',\n 'initial-state-drilldownMenuStart'\n ]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>(['group:start_rollout', 'group:app_grouping']);\n const [menuHeights, setMenuHeights] = useState<any>({ 'initial-state-rootMenu': 216 }); // The root menu height must be defined when starting from a drilled in state\n const [activeMenu, setActiveMenu] = useState<string>('initial-state-drilldownMenuStartGrouping');\n\n const drillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromMenuId: string,\n toMenuId: string,\n pathId: string\n ) => {\n setMenuDrilledIn([...menuDrilledIn, fromMenuId]);\n setDrilldownPath([...drilldownPath, pathId]);\n setActiveMenu(toMenuId);\n };\n\n const drillOut = (_event: React.KeyboardEvent | React.MouseEvent, toMenuId: string) => {\n const menuDrilledInSansLast = menuDrilledIn.slice(0, menuDrilledIn.length - 1);\n const pathSansLast = drilldownPath.slice(0, drilldownPath.length - 1);\n setMenuDrilledIn(menuDrilledInSansLast);\n setDrilldownPath(pathSansLast);\n setActiveMenu(toMenuId);\n };\n\n const setHeight = (menuId: string, height: number) => {\n if (menuHeights[menuId] === undefined || (menuId !== 'initial-state-rootMenu' && menuHeights[menuId] !== height)) {\n setMenuHeights({ ...menuHeights, [menuId]: height });\n }\n };\n\n return (\n <Menu\n id=\"initial-state-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={drillIn}\n onDrillOut={drillOut}\n onGetMenuHeight={setHeight}\n >\n <MenuContent menuHeight={`${menuHeights[activeMenu]}px`}>\n <MenuList>\n <MenuItem\n itemId=\"group:start_rollout\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuStart\">\n <MenuItem itemId=\"group:start_rollout_breadcrumb\" direction=\"up\">\n Start rollout\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuStartGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuStartLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n }\n >\n Start rollout\n </MenuItem>\n <MenuItem\n itemId=\"group:pause_rollout\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuPause\">\n <MenuItem itemId=\"group:pause_rollout_breadcrumb\" direction=\"up\">\n Pause rollouts\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n }\n >\n Pause rollouts\n </MenuItem>\n <MenuItem\n itemId=\"group:storage\"\n icon={<StorageDomainIcon />}\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"initial-state-drilldownMenuStorage\">\n <MenuItem itemId=\"group:storage_breadcrumb\" icon={<StorageDomainIcon />} direction=\"up\">\n Add storage\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem icon={<CodeBranchIcon />} itemId=\"git\">\n From git\n </MenuItem>\n <MenuItem icon={<LayerGroupIcon />} itemId=\"container\">\n Container image\n </MenuItem>\n <MenuItem icon={<CubeIcon />} itemId=\"docker\">\n Docker file\n </MenuItem>\n </DrilldownMenu>\n }\n >\n Add storage\n </MenuItem>\n <MenuItem itemId=\"edit\">Edit</MenuItem>\n <MenuItem itemId=\"delete_deployment\">Delete deployment config</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
140
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
141
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
140
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-668" data-pf-content="true" class="pf-v6-c-content--h3">With drilldown - submenu functions</h3>
|
|
141
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-702" data-pf-content="true" class="pf-v6-c-content--p">For added flexibility with large menus, you may create a menu by passing a function to <code>drilldownMenu</code>. This approach allows you to create menu items dynamically, rather than creating everything up front.</p>
|
|
142
142
|
|
|
143
143
|
<astro-island uid="ZksIVU" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport { Menu, MenuContent, MenuList, MenuItem, Divider, DrilldownMenu } from '@patternfly/react-core';\nimport StorageDomainIcon from '@patternfly/react-icons/dist/esm/icons/storage-domain-icon';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport LayerGroupIcon from '@patternfly/react-icons/dist/esm/icons/layer-group-icon';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\n\nexport const MenuWithDrilldownSubmenuFunctions: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>([]);\n const [menuHeights, setMenuHeights] = useState<any>({});\n const [activeMenu, setActiveMenu] = useState<string>('functions-rootMenu');\n\n const drillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromMenuId: string,\n toMenuId: string,\n pathId: string\n ) => {\n setMenuDrilledIn([...menuDrilledIn, fromMenuId]);\n setDrilldownPath([...drilldownPath, pathId]);\n setActiveMenu(toMenuId);\n };\n\n const drillOut = (_event: React.KeyboardEvent | React.MouseEvent, toMenuId: string) => {\n const menuDrilledInSansLast = menuDrilledIn.slice(0, menuDrilledIn.length - 1);\n const pathSansLast = drilldownPath.slice(0, drilldownPath.length - 1);\n setMenuDrilledIn(menuDrilledInSansLast);\n setDrilldownPath(pathSansLast);\n setActiveMenu(toMenuId);\n };\n\n const setHeight = (menuId: string, height: number) => {\n if (menuHeights[menuId] === undefined || (menuId !== 'functions-rootMenu' && menuHeights[menuId] !== height)) {\n setMenuHeights({ ...menuHeights, [menuId]: height });\n }\n };\n\n return (\n <Menu\n id=\"functions-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={drillIn}\n onDrillOut={drillOut}\n onGetMenuHeight={setHeight}\n >\n <MenuContent menuHeight={`${menuHeights[activeMenu]}px`}>\n <MenuList>\n <MenuItem\n itemId=\"group:start_rollout\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuStart\">\n <MenuItem itemId=\"group:start_rollout_breadcrumb\" direction=\"up\">\n Start rollout\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuStartGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n )}\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuStartLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n )}\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n )}\n >\n Start rollout\n </MenuItem>\n <MenuItem\n itemId=\"group:pause_rollout\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuPause\">\n <MenuItem itemId=\"group:pause_rollout_breadcrumb\" direction=\"up\">\n Pause rollouts\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuGrouping\">\n <MenuItem itemId=\"group:app_grouping_breadcrumb\" direction=\"up\">\n Application grouping\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"group_a\">Group A</MenuItem>\n <MenuItem itemId=\"group_b\">Group B</MenuItem>\n <MenuItem itemId=\"group_c\">Group C</MenuItem>\n </DrilldownMenu>\n )}\n >\n Application grouping\n </MenuItem>\n <MenuItem itemId=\"count\">Count</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuLabels\">\n <MenuItem itemId=\"group:labels_breadcrumb\" direction=\"up\">\n Labels\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem itemId=\"label_1\">Label 1</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3</MenuItem>\n </DrilldownMenu>\n )}\n >\n Labels\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations</MenuItem>\n </DrilldownMenu>\n )}\n >\n Pause rollouts\n </MenuItem>\n <MenuItem\n itemId=\"group:storage\"\n icon={<StorageDomainIcon />}\n direction=\"down\"\n drilldownMenu={() => (\n <DrilldownMenu id=\"functions-drilldownMenuStorage\">\n <MenuItem itemId=\"group:storage_breadcrumb\" icon={<StorageDomainIcon />} direction=\"up\">\n Add storage\n </MenuItem>\n <Divider component=\"li\" />\n <MenuItem icon={<CodeBranchIcon />} itemId=\"git\">\n From git\n </MenuItem>\n <MenuItem icon={<LayerGroupIcon />} itemId=\"container\">\n Container image\n </MenuItem>\n <MenuItem icon={<CubeIcon />} itemId=\"docker\">\n Docker file\n </MenuItem>\n </DrilldownMenu>\n )}\n >\n Add storage\n </MenuItem>\n <MenuItem itemId=\"edit\">Edit</MenuItem>\n <MenuItem itemId=\"delete_deployment\">Delete deployment config</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
144
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
145
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
146
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
144
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-669" data-pf-content="true" class="pf-v6-c-content--h3">With drilldown breadcrumbs</h3>
|
|
145
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-708" data-pf-content="true" class="pf-v6-c-content--p">Use <a data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-670" data-pf-content="true" class="pf-v6-c-content--a">breadcrumbs</a> when a drilldown menu has more than 2 levels to offer users better navigation.</p>
|
|
146
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-703" data-pf-content="true" class="pf-v6-c-content--p">To control the height of a menu, use the <code>maxMenuHeight</code> property. Selecting the “Set max menu height” checkbox in the following example sets the menu height to “100px” and makes the menu scrollable.</p>
|
|
147
147
|
|
|
148
148
|
<astro-island uid="dtpEY" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { useState } from 'react';\nimport {\n Badge,\n Breadcrumb,\n BreadcrumbHeading,\n BreadcrumbItem,\n Checkbox,\n Divider,\n DrilldownMenu,\n Dropdown,\n DropdownItem,\n DropdownList,\n Icon,\n Menu,\n MenuBreadcrumb,\n MenuContent,\n MenuItem,\n MenuList,\n MenuToggle,\n MenuToggleElement\n} from '@patternfly/react-core';\nimport StorageDomainIcon from '@patternfly/react-icons/dist/esm/icons/storage-domain-icon';\nimport CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon';\nimport LayerGroupIcon from '@patternfly/react-icons/dist/esm/icons/layer-group-icon';\nimport AngleLeftIcon from '@patternfly/react-icons/dist/esm/icons/angle-left-icon';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\n\nexport const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>([]);\n const [menuHeights, setMenuHeights] = useState<any>({});\n const [activeMenu, setActiveMenu] = useState<string>('breadcrumbs-rootMenu');\n const [breadcrumb, setBreadcrumb] = useState<React.JSX.Element | null>();\n const [withMaxMenuHeight, setWithMaxMenuHeight] = useState(false);\n\n const onToggle = (isOpen: boolean, key: string) => {\n switch (key) {\n case 'app':\n setBreadcrumb(appGroupingBreadcrumb(isOpen));\n break;\n case 'label':\n setBreadcrumb(labelsBreadcrumb(isOpen));\n break;\n case 'pause-app':\n setBreadcrumb(pauseRolloutsAppGrpBreadcrumb(isOpen));\n break;\n case 'pause-label':\n setBreadcrumb(pauseRolloutsLabelsBreadcrumb(isOpen));\n break;\n default:\n break;\n }\n };\n\n const onToggleMaxMenuHeight = (checked: boolean) => {\n setWithMaxMenuHeight(checked);\n };\n\n const drillOut = (\n _event: React.KeyboardEvent<Element> | MouseEvent | React.MouseEvent<any, MouseEvent>,\n toMenuId: string,\n fromPathId: string,\n breadcrumb: React.JSX.Element | null\n ) => {\n setMenuDrilledIn((prevMenuDrilledIn) => {\n const indexOfMenuId = prevMenuDrilledIn.indexOf(toMenuId);\n return prevMenuDrilledIn.slice(0, indexOfMenuId);\n });\n setDrilldownPath((prevDrilldownPath) => {\n const indexOfMenuIdPath = prevDrilldownPath.indexOf(fromPathId);\n return prevDrilldownPath.slice(0, indexOfMenuIdPath);\n });\n setActiveMenu(toMenuId);\n setBreadcrumb(breadcrumb);\n };\n\n const setHeight = (menuId: string, height: number) => {\n if (menuHeights[menuId] === undefined || (menuId !== 'breadcrumbs-rootMenu' && menuHeights[menuId] !== height)) {\n setMenuHeights({ ...menuHeights, [menuId]: height });\n }\n };\n\n const drillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromMenuId: string,\n toMenuId: string,\n pathId: string\n ) => {\n setMenuDrilledIn([...menuDrilledIn, fromMenuId]);\n setDrilldownPath([...drilldownPath, pathId]);\n setActiveMenu(toMenuId);\n };\n\n const startRolloutBreadcrumb = (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:start_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Start rollout</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const appGroupingBreadcrumb = (isOpen: boolean) => (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:start_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbItem isDropdown>\n <Dropdown\n isOpen={isOpen}\n onOpenChange={(isOpen: boolean) => onToggle(isOpen, 'app')}\n toggle={(toggleRef: React.Ref<MenuToggleElement>) => (\n <MenuToggle\n badge={\n <Badge isRead screenReaderText=\"additional item\">\n 1\n </Badge>\n }\n ref={toggleRef}\n onClick={() => onToggle(true, 'app')}\n isExpanded={isOpen}\n variant=\"plainText\"\n />\n )}\n >\n <DropdownList>\n <DropdownItem\n key=\"dropdown-start\"\n icon={\n <Icon shouldMirrorRTL>\n <AngleLeftIcon />\n </Icon>\n }\n onClick={(event: any) =>\n drillOut(event, 'breadcrumbs-drilldownMenuStart', 'group:app_grouping_start', startRolloutBreadcrumb)\n }\n >\n Start rollout\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Application Grouping</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const labelsBreadcrumb = (isOpen: boolean) => (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:start_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbItem isDropdown>\n <Dropdown\n isOpen={isOpen}\n onOpenChange={(isOpen: boolean) => onToggle(isOpen, 'label')}\n toggle={(toggleRef: React.Ref<MenuToggleElement>) => (\n <MenuToggle\n badge={\n <Badge isRead screenReaderText=\"additional item\">\n 1\n </Badge>\n }\n ref={toggleRef}\n onClick={() => onToggle(true, 'label')}\n isExpanded={isOpen}\n variant=\"plainText\"\n />\n )}\n >\n <DropdownList>\n <DropdownItem\n key=\"dropdown-start\"\n icon={\n <Icon shouldMirrorRTL>\n <AngleLeftIcon />\n </Icon>\n }\n onClick={(event: any) =>\n drillOut(event, 'breadcrumbs-drilldownMenuStart', 'group:labels_start', startRolloutBreadcrumb)\n }\n >\n Start rollout\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Labels</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const pauseRolloutsBreadcrumb = (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:pause_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Pause rollouts</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const pauseRolloutsAppGrpBreadcrumb = (isOpen: boolean) => (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:pause_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbItem isDropdown>\n <Dropdown\n isOpen={isOpen}\n onOpenChange={(isOpen: boolean) => onToggle(isOpen, 'pause-app')}\n toggle={(toggleRef: React.Ref<MenuToggleElement>) => (\n <MenuToggle\n badge={\n <Badge isRead screenReaderText=\"additional item\">\n 1\n </Badge>\n }\n ref={toggleRef}\n onClick={() => onToggle(true, 'pause-app')}\n isExpanded={isOpen}\n variant=\"plainText\"\n />\n )}\n >\n <DropdownList>\n <DropdownItem\n key=\"dropdown-pause\"\n icon={\n <Icon shouldMirrorRTL>\n <AngleLeftIcon />\n </Icon>\n }\n onClick={(event: any) =>\n drillOut(event, 'breadcrumbs-drilldownMenuPause', 'group:app_grouping', pauseRolloutsBreadcrumb)\n }\n >\n Pause rollouts\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Application Grouping</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const pauseRolloutsLabelsBreadcrumb = (isOpen: boolean) => (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:pause_rollout', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbItem isDropdown>\n <Dropdown\n isOpen={isOpen}\n onOpenChange={(isOpen: boolean) => onToggle(isOpen, 'pause-label')}\n toggle={(toggleRef: React.Ref<MenuToggleElement>) => (\n <MenuToggle\n badge={\n <Badge isRead screenReaderText=\"additional item\">\n 1\n </Badge>\n }\n ref={toggleRef}\n onClick={() => onToggle(true, 'pause-label')}\n isExpanded={isOpen}\n variant=\"plainText\"\n />\n )}\n >\n <DropdownList>\n <DropdownItem\n key=\"dropdown-pause\"\n icon={\n <Icon shouldMirrorRTL>\n <AngleLeftIcon />\n </Icon>\n }\n onClick={(event: any) =>\n drillOut(event, 'breadcrumbs-drilldownMenuPause', 'group:labels', pauseRolloutsBreadcrumb)\n }\n >\n Pause rollouts\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Labels</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n const addStorageBreadcrumb = (\n <Breadcrumb>\n <BreadcrumbItem\n component=\"button\"\n onClick={(event: any) => drillOut(event, 'breadcrumbs-rootMenu', 'group:storage', null)}\n >\n Root\n </BreadcrumbItem>\n <BreadcrumbHeading component=\"button\">Add storage</BreadcrumbHeading>\n </Breadcrumb>\n );\n\n return (\n <>\n <Checkbox\n label=\"Set max menu height\"\n isChecked={withMaxMenuHeight}\n onChange={(_event, checked) => onToggleMaxMenuHeight(checked)}\n aria-label=\"Set max menu height checkbox\"\n id=\"toggle-max-menu-height\"\n name=\"toggle-max-menu-height\"\n />\n <br />\n <Menu\n id=\"breadcrumbs-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={drillIn}\n onDrillOut={() => drillOut}\n onGetMenuHeight={setHeight}\n isScrollable={withMaxMenuHeight}\n >\n {breadcrumb && (\n <>\n <MenuBreadcrumb>{breadcrumb}</MenuBreadcrumb>\n <Divider />\n </>\n )}\n <MenuContent menuHeight={`${menuHeights[activeMenu]}px`} maxMenuHeight={withMaxMenuHeight ? '100px' : 'auto'}>\n <MenuList>\n <MenuItem\n itemId=\"group:start_rollout\"\n direction=\"down\"\n onClick={() => setBreadcrumb(startRolloutBreadcrumb)}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuStart\">\n <MenuItem\n itemId=\"group:app_grouping_start\"\n description=\"Groups A-G\"\n direction=\"down\"\n onClick={() => setBreadcrumb(appGroupingBreadcrumb(false))}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuStartGrouping\">\n <MenuItem itemId=\"group_a\">Group A (start rollout)</MenuItem>\n <MenuItem itemId=\"group_b\">Group B (start rollout)</MenuItem>\n <MenuItem itemId=\"group_c\">Group C (start rollout)</MenuItem>\n <MenuItem itemId=\"group_d\">Group D (start rollout)</MenuItem>\n <MenuItem itemId=\"group_e\">Group E (start rollout)</MenuItem>\n <MenuItem itemId=\"group_f\">Group F (start rollout)</MenuItem>\n <MenuItem itemId=\"group_g\">Group G (start rollout)</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping (start rollout)\n </MenuItem>\n <MenuItem itemId=\"count\">Count (start rollout)</MenuItem>\n <MenuItem\n itemId=\"group:labels_start\"\n direction=\"down\"\n onClick={() => setBreadcrumb(labelsBreadcrumb(false))}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuStartLabels\">\n <MenuItem itemId=\"label_1\">Label 1 (start rollout)</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2 (start rollout)</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3 (start rollout)</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels (start rollout)\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations (start rollout)</MenuItem>\n </DrilldownMenu>\n }\n >\n Start rollout\n </MenuItem>\n <MenuItem\n itemId=\"group:pause_rollout\"\n direction=\"down\"\n onClick={() => setBreadcrumb(pauseRolloutsBreadcrumb)}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuPause\">\n <MenuItem\n itemId=\"group:app_grouping\"\n description=\"Groups A-C\"\n direction=\"down\"\n onClick={() => setBreadcrumb(pauseRolloutsAppGrpBreadcrumb(false))}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuGrouping\">\n <MenuItem itemId=\"group_a\">Group A (pause rollouts)</MenuItem>\n <MenuItem itemId=\"group_b\">Group B (pause rollouts)</MenuItem>\n <MenuItem itemId=\"group_c\">Group C (pause rollouts)</MenuItem>\n </DrilldownMenu>\n }\n >\n Application grouping (pause rollouts)\n </MenuItem>\n <MenuItem itemId=\"count\">Count (pause rollouts)</MenuItem>\n <MenuItem\n itemId=\"group:labels\"\n direction=\"down\"\n onClick={() => setBreadcrumb(pauseRolloutsLabelsBreadcrumb(false))}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuLabels\">\n <MenuItem itemId=\"label_1\">Label 1 (pause rollouts)</MenuItem>\n <MenuItem itemId=\"label_2\">Label 2 (pause rollouts)</MenuItem>\n <MenuItem itemId=\"label_3\">Label 3 (pause rollouts)</MenuItem>\n </DrilldownMenu>\n }\n >\n Labels (pause rollouts)\n </MenuItem>\n <MenuItem itemId=\"annotations\">Annotations (pause rollouts)</MenuItem>\n </DrilldownMenu>\n }\n >\n Pause rollouts\n </MenuItem>\n <MenuItem\n itemId=\"group:storage\"\n icon={<StorageDomainIcon />}\n direction=\"down\"\n onClick={() => setBreadcrumb(addStorageBreadcrumb)}\n drilldownMenu={\n <DrilldownMenu id=\"breadcrumbs-drilldownMenuStorage\">\n <MenuItem icon={<CodeBranchIcon />} itemId=\"git\">\n From git\n </MenuItem>\n <MenuItem icon={<LayerGroupIcon />} itemId=\"container\">\n Container image\n </MenuItem>\n <MenuItem icon={<CubeIcon />} itemId=\"docker\">\n Docker file\n </MenuItem>\n </DrilldownMenu>\n }\n >\n Add storage\n </MenuItem>\n <MenuItem itemId=\"edit\">Edit</MenuItem>\n <MenuItem itemId=\"delete_deployment\">Delete deployment config</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n </>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
149
|
-
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
149
|
+
<h3 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-671" data-pf-content="true" class="pf-v6-c-content--h3">With drilldown and inline filter</h3>
|
|
150
150
|
|
|
151
151
|
<astro-island uid="Z2hgeTM" component-url="/_astro/LiveExample.B5R4Dzng.js" component-export="LiveExample" renderer-url="/_astro/client.DN8ES6L5.js" props="{"src":[0,"import { createRef, useState } from 'react';\nimport {\n Menu,\n MenuContent,\n MenuList,\n MenuItem,\n Divider,\n DrilldownMenu,\n MenuSearch,\n MenuSearchInput,\n SearchInput\n} from '@patternfly/react-core';\n\nexport const MenuWithDrilldown: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>([]);\n const [menuHeights, setMenuHeights] = useState<any>({});\n const [activeMenu, setActiveMenu] = useState<string>('filter_drilldown-rootMenu');\n\n const drillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromMenuId: string,\n toMenuId: string,\n pathId: string\n ) => {\n setMenuDrilledIn([...menuDrilledIn, fromMenuId]);\n setDrilldownPath([...drilldownPath, pathId]);\n setActiveMenu(toMenuId);\n };\n\n const drillOut = (_event: React.KeyboardEvent | React.MouseEvent, toMenuId: string) => {\n const menuDrilledInSansLast = menuDrilledIn.slice(0, menuDrilledIn.length - 1);\n const pathSansLast = drilldownPath.slice(0, drilldownPath.length - 1);\n setMenuDrilledIn(menuDrilledInSansLast);\n setDrilldownPath(pathSansLast);\n setActiveMenu(toMenuId);\n };\n\n const setHeight = (menuId: string, height: number) => {\n if (\n menuHeights[menuId] === undefined ||\n (menuId !== 'filter_drilldown-rootMenu' && menuHeights[menuId] !== height)\n ) {\n setMenuHeights({ ...menuHeights, [menuId]: height });\n }\n };\n\n const searchRef = createRef<HTMLInputElement>();\n const [startInput, setStartInput] = useState('');\n\n const handleStartTextInputChange = (value: string) => {\n setStartInput(value);\n searchRef?.current?.focus();\n };\n\n const startDrillItems = [\n {\n item: 'Application grouping',\n rest: { description: 'Description text' }\n },\n { item: 'Labels' },\n { item: 'Annotations' },\n { item: 'Count' },\n { item: 'Count 2' },\n { item: 'Count 3' },\n { item: 'Other' }\n ];\n\n const mapped = startDrillItems\n .filter((opt) => !startInput || opt.item.toLowerCase().includes(startInput.toString().toLowerCase()))\n .map((opt, index) => (\n <MenuItem key={opt.item} itemId={index} {...opt.rest}>\n {opt.item}\n </MenuItem>\n ));\n if (startInput && mapped.length === 0) {\n mapped.push(\n <MenuItem isDisabled key=\"no result\">\n No results found\n </MenuItem>\n );\n }\n\n return (\n <Menu\n id=\"filter_drilldown-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={drillIn}\n onDrillOut={drillOut}\n onGetMenuHeight={setHeight}\n >\n <MenuContent menuHeight={`${menuHeights[activeMenu]}px`}>\n <MenuList>\n <MenuItem\n itemId=\"filter_group:start_rollout\"\n direction=\"down\"\n drilldownMenu={\n <DrilldownMenu id=\"filter_drilldown-drilldownMenuStart\">\n <MenuItem itemId=\"filter_group:start_rollout_breadcrumb\" direction=\"up\">\n Start rollout\n </MenuItem>\n <Divider component=\"li\" />\n <MenuSearch>\n <MenuSearchInput>\n <SearchInput\n ref={searchRef}\n value={startInput}\n aria-label=\"Filter menu items\"\n onChange={(_event, value) => handleStartTextInputChange(value)}\n />\n </MenuSearchInput>\n </MenuSearch>\n <Divider component=\"li\" />\n {mapped}\n </DrilldownMenu>\n }\n >\n Start rollout\n </MenuItem>\n <MenuItem itemId=\"item-a\">Item B</MenuItem>\n <MenuItem itemId=\"item-b\">Item C</MenuItem>\n <MenuItem itemId=\"item-c\">Item D</MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n};\n"],"html":[0]}" ssr client="only" opts="{"name":"LiveExampleBase","value":"react"}"></astro-island>
|
|
152
|
-
<h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
153
|
-
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
154
|
-
<pre data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
152
|
+
<h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-672" data-pf-content="true" class="pf-v6-c-content--h2">Using router links</h2>
|
|
153
|
+
<p data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-704" data-pf-content="true" class="pf-v6-c-content--p">Router links can be used for in-app linking in React environments to prevent page reloading. To use a <code>Link</code> component from a router package, you can pass a callback to the <code>component</code> property of the <code>MenuItem</code>:</p>
|
|
154
|
+
<pre data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-705" data-pf-content="true" class="pf-v6-c-content--pre"><code><span class="line"><span><MenuItem</span></span>
|
|
155
155
|
<span class="line"><span> component={(props) => <Link {...props} to="#" />}</span></span>
|
|
156
156
|
<span class="line"><span>></span></span>
|
|
157
157
|
<span class="line"><span> {...Link Content}</span></span>
|
|
158
|
-
<span class="line"><span></MenuItem></span></span></code></pre> <div class="pf-v6-l-stack pf-m-gutter"><div class="pf-v6-l-stack__item pf-v6-u-mt-md"><astro-island uid="Z1jwtvC" component-url="/_astro/PropsTables.YkW1puJk.js" component-export="PropsTables" renderer-url="/_astro/client.DN8ES6L5.js" props="{"propComponents":[1,[[0,"Menu"],[0,"MenuList"],[0,"MenuItem"],[0,"MenuItemAction"],[0,"MenuContent"],[0,"MenuSearch"],[0,"MenuSearchInput"],[0,"MenuGroup"],[0,"MenuContainer"],[0,"MenuPopperProps"],[0,"TooltipProps"]]],"url":[7,"http://localhost:4321/components/menu/react/"]}" ssr client="only" opts="{"name":"PropsTables","value":"react"}"></astro-island></div><div class="pf-v6-l-stack__item"><div class="pf-v6-l-stack pf-m-gutter"><div class="pf-v6-l-stack__item"><div class="pf-v6-l-flex pf-m-space-items-sm pf-m-align-items-center"><div class=""><h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-
|
|
158
|
+
<span class="line"><span></MenuItem></span></span></code></pre> <div class="pf-v6-l-stack pf-m-gutter"><div class="pf-v6-l-stack__item pf-v6-u-mt-md"><astro-island uid="Z1jwtvC" component-url="/_astro/PropsTables.YkW1puJk.js" component-export="PropsTables" renderer-url="/_astro/client.DN8ES6L5.js" props="{"propComponents":[1,[[0,"Menu"],[0,"MenuList"],[0,"MenuItem"],[0,"MenuItemAction"],[0,"MenuContent"],[0,"MenuSearch"],[0,"MenuSearchInput"],[0,"MenuGroup"],[0,"MenuContainer"],[0,"MenuPopperProps"],[0,"TooltipProps"]]],"url":[7,"http://localhost:4321/components/menu/react/"]}" ssr client="only" opts="{"name":"PropsTables","value":"react"}"></astro-island></div><div class="pf-v6-l-stack__item"><div class="pf-v6-l-stack pf-m-gutter"><div class="pf-v6-l-stack__item"><div class="pf-v6-l-flex pf-m-space-items-sm pf-m-align-items-center"><div class=""><h2 data-ouia-component-type="PF6/Content" data-ouia-safe="true" data-ouia-component-id="OUIA-Generated-Content-643" id="css-variables" tabindex="-1" data-pf-content="true" class="pf-v6-c-content--h2 pf-m-editorial ws-heading pf-v6-c-content--h2"><a href="#css-variables" class="ws-heading-anchor" tabindex="-1"><svg class="pf-v6-svg ws-heading-anchor-icon" viewBox="0 0 512 512" fill="currentColor" aria-hidden="true" role="img" width="1em" height="1em" style="vertical-align:middle"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg></a>
|
|
159
159
|
CSS variables
|
|
160
160
|
</h2></div></div></div><div class="pf-v6-l-stack__item"><astro-island uid="10lBQB" component-url="/_astro/CSSTable.-Emc9iTg.js" component-export="CSSTable" renderer-url="/_astro/client.DN8ES6L5.js" props="{"autoLinkHeader":[0,false],"cssPrefix":[0,"pf-v6-c-menu"]}" ssr client="only" opts="{"name":"CSSTableComponent","value":"react"}"></astro-island></div></div></div></div> </div></section> </div></section> </main> </div> </div> <script type="module">try{localStorage.getItem("theme-preference")==="dark"&&document.documentElement.classList.add("pf-v6-theme-dark")}catch(e){console.error("Failed to set initial theme:",e)}</script></body></html>
|