@cratis/scene.primereact 1.1.0 → 3.0.0
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/.storybook/preview.tsx +44 -0
- package/MenuItem.ts +57 -0
- package/PrimeSeverity.ts +17 -0
- package/README.md +79 -92
- package/TreeNode.ts +68 -0
- package/button/ButtonGallery.stories.tsx +1 -1
- package/button/PrimeButton.tsx +26 -8
- package/button/PrimeButtonGroup.tsx +4 -1
- package/button/PrimeSpeedDial.tsx +23 -5
- package/button/PrimeSplitButton.tsx +11 -5
- package/button/SplitButton.tsx +135 -0
- package/button/index.ts +1 -0
- package/data/Column.tsx +62 -0
- package/data/ColumnDefinition.ts +10 -1
- package/data/DataGallery.stories.tsx +0 -5
- package/data/Pagination.tsx +82 -0
- package/data/PrimeColumn.tsx +17 -7
- package/data/PrimeDataTable.tsx +111 -16
- package/data/PrimeDataView.tsx +30 -15
- package/data/PrimeOrderList.tsx +54 -13
- package/data/PrimeOrganizationChart.tsx +28 -8
- package/data/PrimePaginator.tsx +16 -14
- package/data/PrimePickList.tsx +56 -19
- package/data/PrimeTimeline.tsx +49 -14
- package/data/PrimeTree.tsx +29 -6
- package/data/columnDefinitions.ts +5 -3
- package/data/index.ts +1 -2
- package/data/primeTreeNodes.ts +68 -0
- package/data/selectOptions.ts +29 -0
- package/dist/cjs/button/PrimeButton.js +33 -9
- package/dist/cjs/button/PrimeButton.js.map +1 -1
- package/dist/cjs/button/PrimeButtonGroup.js +4 -1
- package/dist/cjs/button/PrimeButtonGroup.js.map +1 -1
- package/dist/cjs/button/PrimeSpeedDial.js +33 -4
- package/dist/cjs/button/PrimeSpeedDial.js.map +1 -1
- package/dist/cjs/button/PrimeSplitButton.js +14 -6
- package/dist/cjs/button/PrimeSplitButton.js.map +1 -1
- package/dist/cjs/button/SplitButton.js +126 -0
- package/dist/cjs/button/SplitButton.js.map +1 -0
- package/dist/cjs/data/Column.js +21 -0
- package/dist/cjs/data/Column.js.map +1 -0
- package/dist/cjs/data/Pagination.js +55 -0
- package/dist/cjs/data/Pagination.js.map +1 -0
- package/dist/cjs/data/PrimeColumn.js +14 -8
- package/dist/cjs/data/PrimeColumn.js.map +1 -1
- package/dist/cjs/data/PrimeDataTable.js +121 -16
- package/dist/cjs/data/PrimeDataTable.js.map +1 -1
- package/dist/cjs/data/PrimeDataView.js +42 -20
- package/dist/cjs/data/PrimeDataView.js.map +1 -1
- package/dist/cjs/data/PrimeOrderList.js +75 -12
- package/dist/cjs/data/PrimeOrderList.js.map +1 -1
- package/dist/cjs/data/PrimeOrganizationChart.js +34 -10
- package/dist/cjs/data/PrimeOrganizationChart.js.map +1 -1
- package/dist/cjs/data/PrimePaginator.js +16 -18
- package/dist/cjs/data/PrimePaginator.js.map +1 -1
- package/dist/cjs/data/PrimePickList.js +79 -19
- package/dist/cjs/data/PrimePickList.js.map +1 -1
- package/dist/cjs/data/PrimeTimeline.js +55 -19
- package/dist/cjs/data/PrimeTimeline.js.map +1 -1
- package/dist/cjs/data/PrimeTree.js +43 -4
- package/dist/cjs/data/PrimeTree.js.map +1 -1
- package/dist/cjs/data/columnDefinitions.js +5 -3
- package/dist/cjs/data/columnDefinitions.js.map +1 -1
- package/dist/cjs/data/primeTreeNodes.js +33 -0
- package/dist/cjs/data/primeTreeNodes.js.map +1 -0
- package/dist/cjs/data/selectOptions.js +22 -0
- package/dist/cjs/data/selectOptions.js.map +1 -0
- package/dist/cjs/form/PrimeAutoComplete.js +36 -15
- package/dist/cjs/form/PrimeAutoComplete.js.map +1 -1
- package/dist/cjs/form/PrimeCalendar.js +80 -10
- package/dist/cjs/form/PrimeCalendar.js.map +1 -1
- package/dist/cjs/form/PrimeCheckbox.js +11 -3
- package/dist/cjs/form/PrimeCheckbox.js.map +1 -1
- package/dist/cjs/form/PrimeChips.js +41 -7
- package/dist/cjs/form/PrimeChips.js.map +1 -1
- package/dist/cjs/form/PrimeColorPicker.js +57 -10
- package/dist/cjs/form/PrimeColorPicker.js.map +1 -1
- package/dist/cjs/form/PrimeDropdown.js +37 -9
- package/dist/cjs/form/PrimeDropdown.js.map +1 -1
- package/dist/cjs/form/PrimeIconField.js +15 -9
- package/dist/cjs/form/PrimeIconField.js.map +1 -1
- package/dist/cjs/form/PrimeInputNumber.js +26 -4
- package/dist/cjs/form/PrimeInputNumber.js.map +1 -1
- package/dist/cjs/form/PrimeInputTextarea.js +6 -4
- package/dist/cjs/form/PrimeInputTextarea.js.map +1 -1
- package/dist/cjs/form/PrimeKnob.js +13 -3
- package/dist/cjs/form/PrimeKnob.js.map +1 -1
- package/dist/cjs/form/PrimeListBox.js +11 -5
- package/dist/cjs/form/PrimeListBox.js.map +1 -1
- package/dist/cjs/form/PrimeMultiSelect.js +43 -8
- package/dist/cjs/form/PrimeMultiSelect.js.map +1 -1
- package/dist/cjs/form/PrimePassword.js +12 -6
- package/dist/cjs/form/PrimePassword.js.map +1 -1
- package/dist/cjs/form/PrimeRadioButton.js +13 -3
- package/dist/cjs/form/PrimeRadioButton.js.map +1 -1
- package/dist/cjs/form/PrimeRating.js +30 -5
- package/dist/cjs/form/PrimeRating.js.map +1 -1
- package/dist/cjs/form/PrimeSelectButton.js +15 -8
- package/dist/cjs/form/PrimeSelectButton.js.map +1 -1
- package/dist/cjs/form/PrimeSlider.js +14 -3
- package/dist/cjs/form/PrimeSlider.js.map +1 -1
- package/dist/cjs/form/PrimeToggleSwitch.js +15 -8
- package/dist/cjs/form/PrimeToggleSwitch.js.map +1 -1
- package/dist/cjs/form/PrimeTreeSelect.js +17 -8
- package/dist/cjs/form/PrimeTreeSelect.js.map +1 -1
- package/dist/cjs/form/TreeSelect.js +132 -0
- package/dist/cjs/form/TreeSelect.js.map +1 -0
- package/dist/cjs/index.js +41 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/media/Image.js +99 -0
- package/dist/cjs/media/Image.js.map +1 -0
- package/dist/cjs/media/PrimeCarousel.js +50 -16
- package/dist/cjs/media/PrimeCarousel.js.map +1 -1
- package/dist/cjs/media/PrimeGalleria.js +58 -18
- package/dist/cjs/media/PrimeGalleria.js.map +1 -1
- package/dist/cjs/media/PrimeImage.js +9 -3
- package/dist/cjs/media/PrimeImage.js.map +1 -1
- package/dist/cjs/menu/Dock.js +111 -0
- package/dist/cjs/menu/Dock.js.map +1 -0
- package/dist/cjs/menu/DockPosition.js +29 -0
- package/dist/cjs/menu/DockPosition.js.map +1 -0
- package/dist/cjs/menu/MegaMenu.js +138 -0
- package/dist/cjs/menu/MegaMenu.js.map +1 -0
- package/dist/cjs/menu/MenuItemAction.js +54 -0
- package/dist/cjs/menu/MenuItemAction.js.map +1 -0
- package/dist/cjs/menu/MenuItemContent.js +34 -0
- package/dist/cjs/menu/MenuItemContent.js.map +1 -0
- package/dist/cjs/menu/Menubar.js +139 -0
- package/dist/cjs/menu/Menubar.js.map +1 -0
- package/dist/cjs/menu/PanelMenu.js +112 -0
- package/dist/cjs/menu/PanelMenu.js.map +1 -0
- package/dist/cjs/menu/PrimeBreadcrumb.js +69 -7
- package/dist/cjs/menu/PrimeBreadcrumb.js.map +1 -1
- package/dist/cjs/menu/PrimeContextMenu.js +36 -12
- package/dist/cjs/menu/PrimeContextMenu.js.map +1 -1
- package/dist/cjs/menu/PrimeDock.js +35 -8
- package/dist/cjs/menu/PrimeDock.js.map +1 -1
- package/dist/cjs/menu/PrimeMegaMenu.js +12 -8
- package/dist/cjs/menu/PrimeMegaMenu.js.map +1 -1
- package/dist/cjs/menu/PrimeMenu.js +58 -2
- package/dist/cjs/menu/PrimeMenu.js.map +1 -1
- package/dist/cjs/menu/PrimeMenubar.js +10 -3
- package/dist/cjs/menu/PrimeMenubar.js.map +1 -1
- package/dist/cjs/menu/PrimePanelMenu.js +9 -4
- package/dist/cjs/menu/PrimePanelMenu.js.map +1 -1
- package/dist/cjs/menu/PrimeSteps.js +16 -10
- package/dist/cjs/menu/PrimeSteps.js.map +1 -1
- package/dist/cjs/menu/PrimeTabMenu.js +12 -9
- package/dist/cjs/menu/PrimeTabMenu.js.map +1 -1
- package/dist/cjs/menu/PrimeTieredMenu.js +9 -3
- package/dist/cjs/menu/PrimeTieredMenu.js.map +1 -1
- package/dist/cjs/menu/Steps.js +74 -0
- package/dist/cjs/menu/Steps.js.map +1 -0
- package/dist/cjs/menu/TabMenu.js +59 -0
- package/dist/cjs/menu/TabMenu.js.map +1 -0
- package/dist/cjs/menu/TieredMenu.js +131 -0
- package/dist/cjs/menu/TieredMenu.js.map +1 -0
- package/dist/cjs/menuItems.js.map +1 -1
- package/dist/cjs/messages/PrimeInlineMessage.js +40 -4
- package/dist/cjs/messages/PrimeInlineMessage.js.map +1 -1
- package/dist/cjs/messages/PrimeMessage.js +39 -4
- package/dist/cjs/messages/PrimeMessage.js.map +1 -1
- package/dist/cjs/messages/PrimeToast.js +96 -12
- package/dist/cjs/messages/PrimeToast.js.map +1 -1
- package/dist/cjs/misc/BlockUI.js +47 -0
- package/dist/cjs/misc/BlockUI.js.map +1 -0
- package/dist/cjs/misc/PrimeAvatar.js +26 -5
- package/dist/cjs/misc/PrimeAvatar.js.map +1 -1
- package/dist/cjs/misc/PrimeBadge.js +15 -3
- package/dist/cjs/misc/PrimeBadge.js.map +1 -1
- package/dist/cjs/misc/PrimeBlockUI.js +13 -3
- package/dist/cjs/misc/PrimeBlockUI.js.map +1 -1
- package/dist/cjs/misc/PrimeChip.js +41 -5
- package/dist/cjs/misc/PrimeChip.js.map +1 -1
- package/dist/cjs/misc/PrimeInplace.js +18 -5
- package/dist/cjs/misc/PrimeInplace.js.map +1 -1
- package/dist/cjs/misc/PrimeProgressBar.js +16 -6
- package/dist/cjs/misc/PrimeProgressBar.js.map +1 -1
- package/dist/cjs/misc/PrimeProgressSpinner.js +14 -3
- package/dist/cjs/misc/PrimeProgressSpinner.js.map +1 -1
- package/dist/cjs/misc/PrimeScrollTop.js +22 -12
- package/dist/cjs/misc/PrimeScrollTop.js.map +1 -1
- package/dist/cjs/misc/PrimeSkeleton.js +4 -0
- package/dist/cjs/misc/PrimeSkeleton.js.map +1 -1
- package/dist/cjs/misc/PrimeTag.js +21 -5
- package/dist/cjs/misc/PrimeTag.js.map +1 -1
- package/dist/cjs/misc/PrimeTerminal.js +22 -7
- package/dist/cjs/misc/PrimeTerminal.js.map +1 -1
- package/dist/cjs/misc/ScrollTop.js +70 -0
- package/dist/cjs/misc/ScrollTop.js.map +1 -0
- package/dist/cjs/overlay/ConfirmDialog.js +107 -0
- package/dist/cjs/overlay/ConfirmDialog.js.map +1 -0
- package/dist/cjs/overlay/PrimeConfirmDialog.js +15 -8
- package/dist/cjs/overlay/PrimeConfirmDialog.js.map +1 -1
- package/dist/cjs/overlay/PrimeDialog.js +50 -9
- package/dist/cjs/overlay/PrimeDialog.js.map +1 -1
- package/dist/cjs/overlay/PrimeOverlayPanel.js +29 -17
- package/dist/cjs/overlay/PrimeOverlayPanel.js.map +1 -1
- package/dist/cjs/overlay/PrimeSidebar.js +51 -12
- package/dist/cjs/overlay/PrimeSidebar.js.map +1 -1
- package/dist/cjs/overlay/PrimeTooltip.js +26 -13
- package/dist/cjs/overlay/PrimeTooltip.js.map +1 -1
- package/dist/cjs/panel/PrimeAccordion.js +39 -9
- package/dist/cjs/panel/PrimeAccordion.js.map +1 -1
- package/dist/cjs/panel/PrimeCard.js +25 -4
- package/dist/cjs/panel/PrimeCard.js.map +1 -1
- package/dist/cjs/panel/PrimeDivider.js +6 -1
- package/dist/cjs/panel/PrimeDivider.js.map +1 -1
- package/dist/cjs/panel/PrimeFieldset.js +37 -4
- package/dist/cjs/panel/PrimeFieldset.js.map +1 -1
- package/dist/cjs/panel/PrimePanel.js +41 -5
- package/dist/cjs/panel/PrimePanel.js.map +1 -1
- package/dist/cjs/panel/PrimeScrollPanel.js +20 -5
- package/dist/cjs/panel/PrimeScrollPanel.js.map +1 -1
- package/dist/cjs/panel/PrimeSplitter.js +26 -6
- package/dist/cjs/panel/PrimeSplitter.js.map +1 -1
- package/dist/cjs/panel/PrimeStepper.js +71 -29
- package/dist/cjs/panel/PrimeStepper.js.map +1 -1
- package/dist/cjs/panel/PrimeTabView.js +35 -10
- package/dist/cjs/panel/PrimeTabView.js.map +1 -1
- package/dist/cjs/panel/PrimeToolbar.js +18 -4
- package/dist/cjs/panel/PrimeToolbar.js.map +1 -1
- package/dist/cjs/primeReactComponents.js +12 -8
- package/dist/cjs/primeReactComponents.js.map +1 -1
- package/dist/cjs/primeReactPackage.js +7 -8
- package/dist/cjs/primeReactPackage.js.map +1 -1
- package/dist/cjs/properties.js +15 -0
- package/dist/cjs/properties.js.map +1 -1
- package/dist/cjs/screen/PrimeAction.js +24 -6
- package/dist/cjs/screen/PrimeAction.js.map +1 -1
- package/dist/cjs/screen/PrimeSummary.js +50 -26
- package/dist/cjs/screen/PrimeSummary.js.map +1 -1
- package/dist/cjs/theme/PrimeReactThemeFamily.js +34 -0
- package/dist/cjs/theme/PrimeReactThemeFamily.js.map +1 -0
- package/dist/cjs/theme/primeReactThemePreset.js +73 -0
- package/dist/cjs/theme/primeReactThemePreset.js.map +1 -0
- package/dist/cjs/theme/primeReactThemes.js +36 -18
- package/dist/cjs/theme/primeReactThemes.js.map +1 -1
- package/dist/cjs/theme/themePresets.js +364 -331
- package/dist/cjs/theme/themePresets.js.map +1 -1
- package/dist/cjs/theme/usePrimeReactTheme.js +46 -25
- package/dist/cjs/theme/usePrimeReactTheme.js.map +1 -1
- package/dist/cjs/treeNodes.js.map +1 -1
- package/dist/esm/MenuItem.d.ts +10 -0
- package/dist/esm/MenuItem.d.ts.map +1 -0
- package/dist/esm/MenuItem.js +2 -0
- package/dist/esm/MenuItem.js.map +1 -0
- package/dist/esm/PrimeSeverity.d.ts +2 -0
- package/dist/esm/PrimeSeverity.d.ts.map +1 -0
- package/dist/esm/PrimeSeverity.js +2 -0
- package/dist/esm/PrimeSeverity.js.map +1 -0
- package/dist/esm/TreeNode.d.ts +12 -0
- package/dist/esm/TreeNode.d.ts.map +1 -0
- package/dist/esm/TreeNode.js +2 -0
- package/dist/esm/TreeNode.js.map +1 -0
- package/dist/esm/button/ButtonGallery.stories.js +1 -1
- package/dist/esm/button/ButtonGallery.stories.js.map +1 -1
- package/dist/esm/button/PrimeButton.d.ts.map +1 -1
- package/dist/esm/button/PrimeButton.js +35 -11
- package/dist/esm/button/PrimeButton.js.map +1 -1
- package/dist/esm/button/PrimeButtonGroup.d.ts.map +1 -1
- package/dist/esm/button/PrimeButtonGroup.js +4 -1
- package/dist/esm/button/PrimeButtonGroup.js.map +1 -1
- package/dist/esm/button/PrimeSpeedDial.d.ts.map +1 -1
- package/dist/esm/button/PrimeSpeedDial.js +34 -5
- package/dist/esm/button/PrimeSpeedDial.js.map +1 -1
- package/dist/esm/button/PrimeSplitButton.d.ts.map +1 -1
- package/dist/esm/button/PrimeSplitButton.js +13 -5
- package/dist/esm/button/PrimeSplitButton.js.map +1 -1
- package/dist/esm/button/SplitButton.d.ts +12 -0
- package/dist/esm/button/SplitButton.d.ts.map +1 -0
- package/dist/esm/button/SplitButton.js +124 -0
- package/dist/esm/button/SplitButton.js.map +1 -0
- package/dist/esm/button/index.d.ts +1 -0
- package/dist/esm/button/index.d.ts.map +1 -1
- package/dist/esm/button/index.js +1 -0
- package/dist/esm/button/index.js.map +1 -1
- package/dist/esm/data/Column.d.ts +10 -0
- package/dist/esm/data/Column.d.ts.map +1 -0
- package/dist/esm/data/Column.js +19 -0
- package/dist/esm/data/Column.js.map +1 -0
- package/dist/esm/data/ColumnDefinition.d.ts.map +1 -1
- package/dist/esm/data/DataGallery.stories.d.ts.map +1 -1
- package/dist/esm/data/DataGallery.stories.js +0 -5
- package/dist/esm/data/DataGallery.stories.js.map +1 -1
- package/dist/esm/data/Pagination.d.ts +9 -0
- package/dist/esm/data/Pagination.d.ts.map +1 -0
- package/dist/esm/data/Pagination.js +53 -0
- package/dist/esm/data/Pagination.js.map +1 -0
- package/dist/esm/data/PrimeColumn.d.ts.map +1 -1
- package/dist/esm/data/PrimeColumn.js +13 -7
- package/dist/esm/data/PrimeColumn.js.map +1 -1
- package/dist/esm/data/PrimeDataTable.d.ts +1 -1
- package/dist/esm/data/PrimeDataTable.d.ts.map +1 -1
- package/dist/esm/data/PrimeDataTable.js +122 -17
- package/dist/esm/data/PrimeDataTable.js.map +1 -1
- package/dist/esm/data/PrimeDataView.d.ts.map +1 -1
- package/dist/esm/data/PrimeDataView.js +44 -22
- package/dist/esm/data/PrimeDataView.js.map +1 -1
- package/dist/esm/data/PrimeOrderList.d.ts.map +1 -1
- package/dist/esm/data/PrimeOrderList.js +76 -13
- package/dist/esm/data/PrimeOrderList.js.map +1 -1
- package/dist/esm/data/PrimeOrganizationChart.d.ts.map +1 -1
- package/dist/esm/data/PrimeOrganizationChart.js +35 -11
- package/dist/esm/data/PrimeOrganizationChart.js.map +1 -1
- package/dist/esm/data/PrimePaginator.d.ts.map +1 -1
- package/dist/esm/data/PrimePaginator.js +16 -18
- package/dist/esm/data/PrimePaginator.js.map +1 -1
- package/dist/esm/data/PrimePickList.d.ts.map +1 -1
- package/dist/esm/data/PrimePickList.js +80 -20
- package/dist/esm/data/PrimePickList.js.map +1 -1
- package/dist/esm/data/PrimeTimeline.d.ts.map +1 -1
- package/dist/esm/data/PrimeTimeline.js +55 -19
- package/dist/esm/data/PrimeTimeline.js.map +1 -1
- package/dist/esm/data/PrimeTree.d.ts.map +1 -1
- package/dist/esm/data/PrimeTree.js +44 -5
- package/dist/esm/data/PrimeTree.js.map +1 -1
- package/dist/esm/data/columnDefinitions.d.ts.map +1 -1
- package/dist/esm/data/columnDefinitions.js +5 -3
- package/dist/esm/data/columnDefinitions.js.map +1 -1
- package/dist/esm/data/index.d.ts +1 -2
- package/dist/esm/data/index.d.ts.map +1 -1
- package/dist/esm/data/index.js +1 -2
- package/dist/esm/data/index.js.map +1 -1
- package/dist/esm/data/primeTreeNodes.d.ts +10 -0
- package/dist/esm/data/primeTreeNodes.d.ts.map +1 -0
- package/dist/esm/data/primeTreeNodes.js +31 -0
- package/dist/esm/data/primeTreeNodes.js.map +1 -0
- package/dist/esm/data/selectOptions.d.ts +3 -0
- package/dist/esm/data/selectOptions.d.ts.map +1 -0
- package/dist/esm/data/selectOptions.js +20 -0
- package/dist/esm/data/selectOptions.js.map +1 -0
- package/dist/esm/for_primeReactPackage/when_rendering_every_declared_component.js +21 -1
- package/dist/esm/for_primeReactPackage/when_rendering_every_declared_component.js.map +1 -1
- package/dist/esm/for_primeReactThemePreset/when_resolving_a_preset.d.ts +2 -0
- package/dist/esm/for_primeReactThemePreset/when_resolving_a_preset.d.ts.map +1 -0
- package/dist/esm/for_primeReactThemePreset/when_resolving_a_preset.js +30 -0
- package/dist/esm/for_primeReactThemePreset/when_resolving_a_preset.js.map +1 -0
- package/dist/esm/for_primeReactThemes/when_checking_attribution.js +3 -3
- package/dist/esm/for_primeReactThemes/when_checking_attribution.js.map +1 -1
- package/dist/esm/for_primeReactThemes/when_checking_the_token_vocabulary.js +9 -3
- package/dist/esm/for_primeReactThemes/when_checking_the_token_vocabulary.js.map +1 -1
- package/dist/esm/form/FormGallery.stories.d.ts.map +1 -1
- package/dist/esm/form/FormGallery.stories.js +1 -5
- package/dist/esm/form/FormGallery.stories.js.map +1 -1
- package/dist/esm/form/PrimeAutoComplete.d.ts.map +1 -1
- package/dist/esm/form/PrimeAutoComplete.js +37 -16
- package/dist/esm/form/PrimeAutoComplete.js.map +1 -1
- package/dist/esm/form/PrimeCalendar.d.ts.map +1 -1
- package/dist/esm/form/PrimeCalendar.js +81 -11
- package/dist/esm/form/PrimeCalendar.js.map +1 -1
- package/dist/esm/form/PrimeCheckbox.d.ts.map +1 -1
- package/dist/esm/form/PrimeCheckbox.js +11 -3
- package/dist/esm/form/PrimeCheckbox.js.map +1 -1
- package/dist/esm/form/PrimeChips.d.ts.map +1 -1
- package/dist/esm/form/PrimeChips.js +44 -10
- package/dist/esm/form/PrimeChips.js.map +1 -1
- package/dist/esm/form/PrimeColorPicker.d.ts.map +1 -1
- package/dist/esm/form/PrimeColorPicker.js +58 -11
- package/dist/esm/form/PrimeColorPicker.js.map +1 -1
- package/dist/esm/form/PrimeDropdown.d.ts.map +1 -1
- package/dist/esm/form/PrimeDropdown.js +38 -10
- package/dist/esm/form/PrimeDropdown.js.map +1 -1
- package/dist/esm/form/PrimeIconField.d.ts.map +1 -1
- package/dist/esm/form/PrimeIconField.js +16 -10
- package/dist/esm/form/PrimeIconField.js.map +1 -1
- package/dist/esm/form/PrimeInputNumber.d.ts.map +1 -1
- package/dist/esm/form/PrimeInputNumber.js +27 -5
- package/dist/esm/form/PrimeInputNumber.js.map +1 -1
- package/dist/esm/form/PrimeInputTextarea.d.ts.map +1 -1
- package/dist/esm/form/PrimeInputTextarea.js +6 -4
- package/dist/esm/form/PrimeInputTextarea.js.map +1 -1
- package/dist/esm/form/PrimeKnob.d.ts.map +1 -1
- package/dist/esm/form/PrimeKnob.js +14 -4
- package/dist/esm/form/PrimeKnob.js.map +1 -1
- package/dist/esm/form/PrimeListBox.d.ts.map +1 -1
- package/dist/esm/form/PrimeListBox.js +12 -6
- package/dist/esm/form/PrimeListBox.js.map +1 -1
- package/dist/esm/form/PrimeMultiSelect.d.ts.map +1 -1
- package/dist/esm/form/PrimeMultiSelect.js +45 -10
- package/dist/esm/form/PrimeMultiSelect.js.map +1 -1
- package/dist/esm/form/PrimePassword.d.ts.map +1 -1
- package/dist/esm/form/PrimePassword.js +12 -6
- package/dist/esm/form/PrimePassword.js.map +1 -1
- package/dist/esm/form/PrimeRadioButton.d.ts.map +1 -1
- package/dist/esm/form/PrimeRadioButton.js +13 -3
- package/dist/esm/form/PrimeRadioButton.js.map +1 -1
- package/dist/esm/form/PrimeRating.d.ts.map +1 -1
- package/dist/esm/form/PrimeRating.js +31 -6
- package/dist/esm/form/PrimeRating.js.map +1 -1
- package/dist/esm/form/PrimeSelectButton.d.ts.map +1 -1
- package/dist/esm/form/PrimeSelectButton.js +16 -9
- package/dist/esm/form/PrimeSelectButton.js.map +1 -1
- package/dist/esm/form/PrimeSlider.d.ts.map +1 -1
- package/dist/esm/form/PrimeSlider.js +15 -4
- package/dist/esm/form/PrimeSlider.js.map +1 -1
- package/dist/esm/form/PrimeToggleSwitch.d.ts.map +1 -1
- package/dist/esm/form/PrimeToggleSwitch.js +15 -8
- package/dist/esm/form/PrimeToggleSwitch.js.map +1 -1
- package/dist/esm/form/PrimeTreeSelect.d.ts.map +1 -1
- package/dist/esm/form/PrimeTreeSelect.js +17 -8
- package/dist/esm/form/PrimeTreeSelect.js.map +1 -1
- package/dist/esm/form/TreeSelect.d.ts +10 -0
- package/dist/esm/form/TreeSelect.d.ts.map +1 -0
- package/dist/esm/form/TreeSelect.js +130 -0
- package/dist/esm/form/TreeSelect.js.map +1 -0
- package/dist/esm/form/index.d.ts +1 -2
- package/dist/esm/form/index.d.ts.map +1 -1
- package/dist/esm/form/index.js +1 -2
- package/dist/esm/form/index.js.map +1 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +22 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/media/Image.d.ts +10 -0
- package/dist/esm/media/Image.d.ts.map +1 -0
- package/dist/esm/media/Image.js +97 -0
- package/dist/esm/media/Image.js.map +1 -0
- package/dist/esm/media/MediaGallery.stories.js +1 -1
- package/dist/esm/media/MediaGallery.stories.js.map +1 -1
- package/dist/esm/media/PrimeCarousel.d.ts.map +1 -1
- package/dist/esm/media/PrimeCarousel.js +52 -18
- package/dist/esm/media/PrimeCarousel.js.map +1 -1
- package/dist/esm/media/PrimeGalleria.d.ts.map +1 -1
- package/dist/esm/media/PrimeGalleria.js +60 -20
- package/dist/esm/media/PrimeGalleria.js.map +1 -1
- package/dist/esm/media/PrimeImage.d.ts.map +1 -1
- package/dist/esm/media/PrimeImage.js +8 -2
- package/dist/esm/media/PrimeImage.js.map +1 -1
- package/dist/esm/media/index.d.ts +1 -0
- package/dist/esm/media/index.d.ts.map +1 -1
- package/dist/esm/media/index.js +1 -0
- package/dist/esm/media/index.js.map +1 -1
- package/dist/esm/menu/Dock.d.ts +9 -0
- package/dist/esm/menu/Dock.d.ts.map +1 -0
- package/dist/esm/menu/Dock.js +109 -0
- package/dist/esm/menu/Dock.js.map +1 -0
- package/dist/esm/menu/DockPosition.d.ts +7 -0
- package/dist/esm/menu/DockPosition.d.ts.map +1 -0
- package/dist/esm/menu/DockPosition.js +27 -0
- package/dist/esm/menu/DockPosition.js.map +1 -0
- package/dist/esm/menu/MegaMenu.d.ts +7 -0
- package/dist/esm/menu/MegaMenu.d.ts.map +1 -0
- package/dist/esm/menu/MegaMenu.js +136 -0
- package/dist/esm/menu/MegaMenu.js.map +1 -0
- package/dist/esm/menu/MenuGallery.stories.d.ts +1 -0
- package/dist/esm/menu/MenuGallery.stories.d.ts.map +1 -1
- package/dist/esm/menu/MenuGallery.stories.js +25 -3
- package/dist/esm/menu/MenuGallery.stories.js.map +1 -1
- package/dist/esm/menu/MenuItemAction.d.ts +12 -0
- package/dist/esm/menu/MenuItemAction.d.ts.map +1 -0
- package/dist/esm/menu/MenuItemAction.js +52 -0
- package/dist/esm/menu/MenuItemAction.js.map +1 -0
- package/dist/esm/menu/MenuItemContent.d.ts +6 -0
- package/dist/esm/menu/MenuItemContent.d.ts.map +1 -0
- package/dist/esm/menu/MenuItemContent.js +32 -0
- package/dist/esm/menu/MenuItemContent.js.map +1 -0
- package/dist/esm/menu/Menubar.d.ts +9 -0
- package/dist/esm/menu/Menubar.d.ts.map +1 -0
- package/dist/esm/menu/Menubar.js +137 -0
- package/dist/esm/menu/Menubar.js.map +1 -0
- package/dist/esm/menu/PanelMenu.d.ts +8 -0
- package/dist/esm/menu/PanelMenu.d.ts.map +1 -0
- package/dist/esm/menu/PanelMenu.js +110 -0
- package/dist/esm/menu/PanelMenu.js.map +1 -0
- package/dist/esm/menu/PrimeBreadcrumb.d.ts.map +1 -1
- package/dist/esm/menu/PrimeBreadcrumb.js +71 -9
- package/dist/esm/menu/PrimeBreadcrumb.js.map +1 -1
- package/dist/esm/menu/PrimeContextMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimeContextMenu.js +36 -12
- package/dist/esm/menu/PrimeContextMenu.js.map +1 -1
- package/dist/esm/menu/PrimeDock.d.ts.map +1 -1
- package/dist/esm/menu/PrimeDock.js +34 -7
- package/dist/esm/menu/PrimeDock.js.map +1 -1
- package/dist/esm/menu/PrimeMegaMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimeMegaMenu.js +11 -7
- package/dist/esm/menu/PrimeMegaMenu.js.map +1 -1
- package/dist/esm/menu/PrimeMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimeMenu.js +59 -3
- package/dist/esm/menu/PrimeMenu.js.map +1 -1
- package/dist/esm/menu/PrimeMenubar.d.ts.map +1 -1
- package/dist/esm/menu/PrimeMenubar.js +9 -2
- package/dist/esm/menu/PrimeMenubar.js.map +1 -1
- package/dist/esm/menu/PrimePanelMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimePanelMenu.js +8 -3
- package/dist/esm/menu/PrimePanelMenu.js.map +1 -1
- package/dist/esm/menu/PrimeSteps.d.ts.map +1 -1
- package/dist/esm/menu/PrimeSteps.js +16 -10
- package/dist/esm/menu/PrimeSteps.js.map +1 -1
- package/dist/esm/menu/PrimeTabMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimeTabMenu.js +11 -8
- package/dist/esm/menu/PrimeTabMenu.js.map +1 -1
- package/dist/esm/menu/PrimeTieredMenu.d.ts.map +1 -1
- package/dist/esm/menu/PrimeTieredMenu.js +8 -2
- package/dist/esm/menu/PrimeTieredMenu.js.map +1 -1
- package/dist/esm/menu/Steps.d.ts +8 -0
- package/dist/esm/menu/Steps.d.ts.map +1 -0
- package/dist/esm/menu/Steps.js +72 -0
- package/dist/esm/menu/Steps.js.map +1 -0
- package/dist/esm/menu/TabMenu.d.ts +8 -0
- package/dist/esm/menu/TabMenu.d.ts.map +1 -0
- package/dist/esm/menu/TabMenu.js +57 -0
- package/dist/esm/menu/TabMenu.js.map +1 -0
- package/dist/esm/menu/TieredMenu.d.ts +7 -0
- package/dist/esm/menu/TieredMenu.d.ts.map +1 -0
- package/dist/esm/menu/TieredMenu.js +129 -0
- package/dist/esm/menu/TieredMenu.js.map +1 -0
- package/dist/esm/menu/index.d.ts +10 -0
- package/dist/esm/menu/index.d.ts.map +1 -1
- package/dist/esm/menu/index.js +10 -0
- package/dist/esm/menu/index.js.map +1 -1
- package/dist/esm/menuItems.d.ts +1 -1
- package/dist/esm/menuItems.d.ts.map +1 -1
- package/dist/esm/menuItems.js.map +1 -1
- package/dist/esm/messages/MessageGallery.stories.js +1 -1
- package/dist/esm/messages/MessageGallery.stories.js.map +1 -1
- package/dist/esm/messages/PrimeInlineMessage.d.ts.map +1 -1
- package/dist/esm/messages/PrimeInlineMessage.js +42 -6
- package/dist/esm/messages/PrimeInlineMessage.js.map +1 -1
- package/dist/esm/messages/PrimeMessage.d.ts.map +1 -1
- package/dist/esm/messages/PrimeMessage.js +41 -6
- package/dist/esm/messages/PrimeMessage.js.map +1 -1
- package/dist/esm/messages/PrimeToast.d.ts.map +1 -1
- package/dist/esm/messages/PrimeToast.js +99 -15
- package/dist/esm/messages/PrimeToast.js.map +1 -1
- package/dist/esm/misc/BlockUI.d.ts +7 -0
- package/dist/esm/misc/BlockUI.d.ts.map +1 -0
- package/dist/esm/misc/BlockUI.js +45 -0
- package/dist/esm/misc/BlockUI.js.map +1 -0
- package/dist/esm/misc/MiscGallery.stories.js +1 -1
- package/dist/esm/misc/MiscGallery.stories.js.map +1 -1
- package/dist/esm/misc/PrimeAvatar.d.ts.map +1 -1
- package/dist/esm/misc/PrimeAvatar.js +27 -6
- package/dist/esm/misc/PrimeAvatar.js.map +1 -1
- package/dist/esm/misc/PrimeBadge.d.ts.map +1 -1
- package/dist/esm/misc/PrimeBadge.js +16 -4
- package/dist/esm/misc/PrimeBadge.js.map +1 -1
- package/dist/esm/misc/PrimeBlockUI.d.ts.map +1 -1
- package/dist/esm/misc/PrimeBlockUI.js +12 -2
- package/dist/esm/misc/PrimeBlockUI.js.map +1 -1
- package/dist/esm/misc/PrimeChip.d.ts.map +1 -1
- package/dist/esm/misc/PrimeChip.js +43 -7
- package/dist/esm/misc/PrimeChip.js.map +1 -1
- package/dist/esm/misc/PrimeInplace.d.ts.map +1 -1
- package/dist/esm/misc/PrimeInplace.js +19 -6
- package/dist/esm/misc/PrimeInplace.js.map +1 -1
- package/dist/esm/misc/PrimeProgressBar.d.ts.map +1 -1
- package/dist/esm/misc/PrimeProgressBar.js +16 -6
- package/dist/esm/misc/PrimeProgressBar.js.map +1 -1
- package/dist/esm/misc/PrimeProgressSpinner.d.ts.map +1 -1
- package/dist/esm/misc/PrimeProgressSpinner.js +15 -4
- package/dist/esm/misc/PrimeProgressSpinner.js.map +1 -1
- package/dist/esm/misc/PrimeScrollTop.d.ts.map +1 -1
- package/dist/esm/misc/PrimeScrollTop.js +21 -11
- package/dist/esm/misc/PrimeScrollTop.js.map +1 -1
- package/dist/esm/misc/PrimeSkeleton.d.ts.map +1 -1
- package/dist/esm/misc/PrimeSkeleton.js +4 -0
- package/dist/esm/misc/PrimeSkeleton.js.map +1 -1
- package/dist/esm/misc/PrimeTag.d.ts.map +1 -1
- package/dist/esm/misc/PrimeTag.js +23 -7
- package/dist/esm/misc/PrimeTag.js.map +1 -1
- package/dist/esm/misc/PrimeTerminal.d.ts.map +1 -1
- package/dist/esm/misc/PrimeTerminal.js +23 -8
- package/dist/esm/misc/PrimeTerminal.js.map +1 -1
- package/dist/esm/misc/ScrollTop.d.ts +8 -0
- package/dist/esm/misc/ScrollTop.d.ts.map +1 -0
- package/dist/esm/misc/ScrollTop.js +68 -0
- package/dist/esm/misc/ScrollTop.js.map +1 -0
- package/dist/esm/misc/index.d.ts +2 -0
- package/dist/esm/misc/index.d.ts.map +1 -1
- package/dist/esm/misc/index.js +2 -0
- package/dist/esm/misc/index.js.map +1 -1
- package/dist/esm/overlay/ConfirmDialog.d.ts +14 -0
- package/dist/esm/overlay/ConfirmDialog.d.ts.map +1 -0
- package/dist/esm/overlay/ConfirmDialog.js +105 -0
- package/dist/esm/overlay/ConfirmDialog.js.map +1 -0
- package/dist/esm/overlay/OverlayGallery.stories.js +1 -1
- package/dist/esm/overlay/OverlayGallery.stories.js.map +1 -1
- package/dist/esm/overlay/PrimeConfirmDialog.d.ts.map +1 -1
- package/dist/esm/overlay/PrimeConfirmDialog.js +14 -7
- package/dist/esm/overlay/PrimeConfirmDialog.js.map +1 -1
- package/dist/esm/overlay/PrimeDialog.d.ts.map +1 -1
- package/dist/esm/overlay/PrimeDialog.js +50 -9
- package/dist/esm/overlay/PrimeDialog.js.map +1 -1
- package/dist/esm/overlay/PrimeOverlayPanel.d.ts.map +1 -1
- package/dist/esm/overlay/PrimeOverlayPanel.js +30 -18
- package/dist/esm/overlay/PrimeOverlayPanel.js.map +1 -1
- package/dist/esm/overlay/PrimeSidebar.d.ts.map +1 -1
- package/dist/esm/overlay/PrimeSidebar.js +51 -12
- package/dist/esm/overlay/PrimeSidebar.js.map +1 -1
- package/dist/esm/overlay/PrimeTooltip.d.ts.map +1 -1
- package/dist/esm/overlay/PrimeTooltip.js +27 -14
- package/dist/esm/overlay/PrimeTooltip.js.map +1 -1
- package/dist/esm/overlay/index.d.ts +1 -0
- package/dist/esm/overlay/index.d.ts.map +1 -1
- package/dist/esm/overlay/index.js +1 -0
- package/dist/esm/overlay/index.js.map +1 -1
- package/dist/esm/panel/PanelGallery.stories.js +1 -1
- package/dist/esm/panel/PanelGallery.stories.js.map +1 -1
- package/dist/esm/panel/PrimeAccordion.d.ts.map +1 -1
- package/dist/esm/panel/PrimeAccordion.js +41 -11
- package/dist/esm/panel/PrimeAccordion.js.map +1 -1
- package/dist/esm/panel/PrimeCard.d.ts.map +1 -1
- package/dist/esm/panel/PrimeCard.js +26 -5
- package/dist/esm/panel/PrimeCard.js.map +1 -1
- package/dist/esm/panel/PrimeDivider.d.ts.map +1 -1
- package/dist/esm/panel/PrimeDivider.js +6 -1
- package/dist/esm/panel/PrimeDivider.js.map +1 -1
- package/dist/esm/panel/PrimeFieldset.d.ts.map +1 -1
- package/dist/esm/panel/PrimeFieldset.js +39 -6
- package/dist/esm/panel/PrimeFieldset.js.map +1 -1
- package/dist/esm/panel/PrimePanel.d.ts.map +1 -1
- package/dist/esm/panel/PrimePanel.js +42 -6
- package/dist/esm/panel/PrimePanel.js.map +1 -1
- package/dist/esm/panel/PrimeScrollPanel.d.ts.map +1 -1
- package/dist/esm/panel/PrimeScrollPanel.js +21 -6
- package/dist/esm/panel/PrimeScrollPanel.js.map +1 -1
- package/dist/esm/panel/PrimeSplitter.d.ts.map +1 -1
- package/dist/esm/panel/PrimeSplitter.js +28 -8
- package/dist/esm/panel/PrimeSplitter.js.map +1 -1
- package/dist/esm/panel/PrimeStepper.d.ts.map +1 -1
- package/dist/esm/panel/PrimeStepper.js +74 -32
- package/dist/esm/panel/PrimeStepper.js.map +1 -1
- package/dist/esm/panel/PrimeTabView.d.ts.map +1 -1
- package/dist/esm/panel/PrimeTabView.js +36 -11
- package/dist/esm/panel/PrimeTabView.js.map +1 -1
- package/dist/esm/panel/PrimeToolbar.d.ts.map +1 -1
- package/dist/esm/panel/PrimeToolbar.js +19 -5
- package/dist/esm/panel/PrimeToolbar.js.map +1 -1
- package/dist/esm/primeReactComponents.d.ts.map +1 -1
- package/dist/esm/primeReactComponents.js +12 -8
- package/dist/esm/primeReactComponents.js.map +1 -1
- package/dist/esm/primeReactPackage.d.ts.map +1 -1
- package/dist/esm/primeReactPackage.js +7 -8
- package/dist/esm/primeReactPackage.js.map +1 -1
- package/dist/esm/properties.d.ts +3 -0
- package/dist/esm/properties.d.ts.map +1 -1
- package/dist/esm/properties.js +15 -1
- package/dist/esm/properties.js.map +1 -1
- package/dist/esm/screen/PrimeAction.d.ts.map +1 -1
- package/dist/esm/screen/PrimeAction.js +25 -7
- package/dist/esm/screen/PrimeAction.js.map +1 -1
- package/dist/esm/screen/PrimeSummary.d.ts.map +1 -1
- package/dist/esm/screen/PrimeSummary.js +51 -27
- package/dist/esm/screen/PrimeSummary.js.map +1 -1
- package/dist/esm/theme/PrimeReactThemeFamily.d.ts +7 -0
- package/dist/esm/theme/PrimeReactThemeFamily.d.ts.map +1 -0
- package/dist/esm/theme/PrimeReactThemeFamily.js +32 -0
- package/dist/esm/theme/PrimeReactThemeFamily.js.map +1 -0
- package/dist/esm/theme/index.d.ts +2 -2
- package/dist/esm/theme/index.d.ts.map +1 -1
- package/dist/esm/theme/index.js +2 -2
- package/dist/esm/theme/index.js.map +1 -1
- package/dist/esm/theme/primeReactThemePreset.d.ts +7 -0
- package/dist/esm/theme/primeReactThemePreset.d.ts.map +1 -0
- package/dist/esm/theme/primeReactThemePreset.js +71 -0
- package/dist/esm/theme/primeReactThemePreset.js.map +1 -0
- package/dist/esm/theme/primeReactThemes.d.ts +1 -0
- package/dist/esm/theme/primeReactThemes.d.ts.map +1 -1
- package/dist/esm/theme/primeReactThemes.js +36 -19
- package/dist/esm/theme/primeReactThemes.js.map +1 -1
- package/dist/esm/theme/themePresets.d.ts +5 -1
- package/dist/esm/theme/themePresets.d.ts.map +1 -1
- package/dist/esm/theme/themePresets.js +364 -331
- package/dist/esm/theme/themePresets.js.map +1 -1
- package/dist/esm/theme/usePrimeReactTheme.d.ts +11 -1
- package/dist/esm/theme/usePrimeReactTheme.d.ts.map +1 -1
- package/dist/esm/theme/usePrimeReactTheme.js +47 -27
- package/dist/esm/theme/usePrimeReactTheme.js.map +1 -1
- package/dist/esm/treeNodes.d.ts +1 -1
- package/dist/esm/treeNodes.d.ts.map +1 -1
- package/dist/esm/treeNodes.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/for_menuItems/when_converting_entries.ts +1 -1
- package/for_primeReactPackage/when_rendering_every_declared_component.tsx +43 -1
- package/for_primeReactThemePreset/when_resolving_a_preset.ts +49 -0
- package/for_primeReactThemes/when_checking_attribution.ts +9 -3
- package/for_primeReactThemes/when_checking_the_token_vocabulary.ts +22 -3
- package/form/FormGallery.stories.tsx +1 -5
- package/form/PrimeAutoComplete.tsx +34 -18
- package/form/PrimeCalendar.tsx +60 -11
- package/form/PrimeCheckbox.tsx +12 -4
- package/form/PrimeChips.tsx +29 -9
- package/form/PrimeColorPicker.tsx +56 -12
- package/form/PrimeDropdown.tsx +29 -11
- package/form/PrimeIconField.tsx +12 -5
- package/form/PrimeInputNumber.tsx +19 -5
- package/form/PrimeInputTextarea.tsx +8 -6
- package/form/PrimeKnob.tsx +12 -4
- package/form/PrimeListBox.tsx +13 -7
- package/form/PrimeMultiSelect.tsx +35 -10
- package/form/PrimePassword.tsx +12 -6
- package/form/PrimeRadioButton.tsx +14 -4
- package/form/PrimeRating.tsx +23 -6
- package/form/PrimeSelectButton.tsx +17 -9
- package/form/PrimeSlider.tsx +13 -4
- package/form/PrimeToggleSwitch.tsx +16 -9
- package/form/PrimeTreeSelect.tsx +18 -10
- package/form/TreeSelect.tsx +158 -0
- package/form/index.ts +1 -2
- package/index.ts +3 -0
- package/media/Image.tsx +104 -0
- package/media/MediaGallery.stories.tsx +1 -1
- package/media/PrimeCarousel.tsx +35 -14
- package/media/PrimeGalleria.tsx +43 -18
- package/media/PrimeImage.tsx +6 -2
- package/media/index.ts +1 -0
- package/menu/Dock.tsx +109 -0
- package/menu/DockPosition.ts +32 -0
- package/menu/MegaMenu.tsx +138 -0
- package/menu/MenuGallery.stories.tsx +31 -3
- package/menu/MenuItemAction.tsx +92 -0
- package/menu/MenuItemContent.tsx +36 -0
- package/menu/Menubar.tsx +149 -0
- package/menu/PanelMenu.tsx +107 -0
- package/menu/PrimeBreadcrumb.tsx +62 -7
- package/menu/PrimeContextMenu.tsx +43 -9
- package/menu/PrimeDock.tsx +33 -6
- package/menu/PrimeMegaMenu.tsx +9 -12
- package/menu/PrimeMenu.tsx +64 -1
- package/menu/PrimeMenubar.tsx +7 -2
- package/menu/PrimePanelMenu.tsx +6 -5
- package/menu/PrimeSteps.tsx +13 -15
- package/menu/PrimeTabMenu.tsx +8 -13
- package/menu/PrimeTieredMenu.tsx +6 -2
- package/menu/Steps.tsx +79 -0
- package/menu/TabMenu.tsx +72 -0
- package/menu/TieredMenu.tsx +136 -0
- package/menu/index.ts +10 -0
- package/menuItems.ts +1 -1
- package/messages/MessageGallery.stories.tsx +1 -1
- package/messages/PrimeInlineMessage.tsx +37 -6
- package/messages/PrimeMessage.tsx +35 -8
- package/messages/PrimeToast.tsx +84 -9
- package/misc/BlockUI.tsx +51 -0
- package/misc/MiscGallery.stories.tsx +1 -1
- package/misc/PrimeAvatar.tsx +17 -6
- package/misc/PrimeBadge.tsx +17 -5
- package/misc/PrimeBlockUI.tsx +13 -3
- package/misc/PrimeChip.tsx +27 -7
- package/misc/PrimeInplace.tsx +17 -5
- package/misc/PrimeProgressBar.tsx +11 -7
- package/misc/PrimeProgressSpinner.tsx +14 -1
- package/misc/PrimeScrollTop.tsx +16 -8
- package/misc/PrimeSkeleton.tsx +4 -0
- package/misc/PrimeTag.tsx +17 -6
- package/misc/PrimeTerminal.tsx +18 -9
- package/misc/ScrollTop.tsx +81 -0
- package/misc/index.ts +2 -0
- package/overlay/ConfirmDialog.tsx +135 -0
- package/overlay/OverlayGallery.stories.tsx +1 -1
- package/overlay/PrimeConfirmDialog.tsx +15 -10
- package/overlay/PrimeDialog.tsx +35 -8
- package/overlay/PrimeOverlayPanel.tsx +20 -8
- package/overlay/PrimeSidebar.tsx +38 -12
- package/overlay/PrimeTooltip.tsx +24 -10
- package/overlay/index.ts +1 -0
- package/package.json +29 -13
- package/panel/PanelGallery.stories.tsx +1 -1
- package/panel/PrimeAccordion.tsx +28 -10
- package/panel/PrimeCard.tsx +18 -3
- package/panel/PrimeDivider.tsx +6 -1
- package/panel/PrimeFieldset.tsx +25 -3
- package/panel/PrimePanel.tsx +26 -7
- package/panel/PrimeScrollPanel.tsx +16 -8
- package/panel/PrimeSplitter.tsx +24 -7
- package/panel/PrimeStepper.tsx +57 -20
- package/panel/PrimeTabView.tsx +29 -9
- package/panel/PrimeToolbar.tsx +13 -1
- package/primeReactComponents.ts +0 -8
- package/primeReactPackage.ts +8 -7
- package/primeReactTheme.css +56 -33
- package/properties.ts +30 -0
- package/screen/PrimeAction.tsx +20 -6
- package/screen/PrimeSummary.tsx +36 -13
- package/theme/PrimeReactThemeFamily.ts +37 -0
- package/theme/index.ts +2 -2
- package/theme/primeReactThemePreset.ts +83 -0
- package/theme/primeReactThemes.ts +37 -18
- package/theme/themePresets.ts +381 -336
- package/theme/usePrimeReactTheme.ts +73 -25
- package/treeNodes.ts +1 -1
- package/.storybook/preview.ts +0 -22
- package/data/PrimeTreeTable.tsx +0 -32
- package/data/PrimeVirtualScroller.tsx +0 -31
- package/dist/cjs/data/PrimeTreeTable.js +0 -40
- package/dist/cjs/data/PrimeTreeTable.js.map +0 -1
- package/dist/cjs/data/PrimeVirtualScroller.js +0 -34
- package/dist/cjs/data/PrimeVirtualScroller.js.map +0 -1
- package/dist/cjs/form/PrimeCascadeSelect.js +0 -32
- package/dist/cjs/form/PrimeCascadeSelect.js.map +0 -1
- package/dist/cjs/form/PrimeInputMask.js +0 -26
- package/dist/cjs/form/PrimeInputMask.js.map +0 -1
- package/dist/cjs/theme/applyPrimeReactTheme.js +0 -51
- package/dist/cjs/theme/applyPrimeReactTheme.js.map +0 -1
- package/dist/cjs/theme/primeReactThemeStylesheet.js +0 -34
- package/dist/cjs/theme/primeReactThemeStylesheet.js.map +0 -1
- package/dist/esm/data/PrimeTreeTable.d.ts +0 -3
- package/dist/esm/data/PrimeTreeTable.d.ts.map +0 -1
- package/dist/esm/data/PrimeTreeTable.js +0 -38
- package/dist/esm/data/PrimeTreeTable.js.map +0 -1
- package/dist/esm/data/PrimeVirtualScroller.d.ts +0 -3
- package/dist/esm/data/PrimeVirtualScroller.d.ts.map +0 -1
- package/dist/esm/data/PrimeVirtualScroller.js +0 -32
- package/dist/esm/data/PrimeVirtualScroller.js.map +0 -1
- package/dist/esm/for_applyPrimeReactTheme/when_swapping_the_theme_stylesheet.d.ts +0 -2
- package/dist/esm/for_applyPrimeReactTheme/when_swapping_the_theme_stylesheet.d.ts.map +0 -1
- package/dist/esm/for_applyPrimeReactTheme/when_swapping_the_theme_stylesheet.js +0 -63
- package/dist/esm/for_applyPrimeReactTheme/when_swapping_the_theme_stylesheet.js.map +0 -1
- package/dist/esm/for_primeReactThemes/when_resolving_a_theme_stylesheet.d.ts +0 -2
- package/dist/esm/for_primeReactThemes/when_resolving_a_theme_stylesheet.d.ts.map +0 -1
- package/dist/esm/for_primeReactThemes/when_resolving_a_theme_stylesheet.js +0 -17
- package/dist/esm/for_primeReactThemes/when_resolving_a_theme_stylesheet.js.map +0 -1
- package/dist/esm/form/PrimeCascadeSelect.d.ts +0 -3
- package/dist/esm/form/PrimeCascadeSelect.d.ts.map +0 -1
- package/dist/esm/form/PrimeCascadeSelect.js +0 -30
- package/dist/esm/form/PrimeCascadeSelect.js.map +0 -1
- package/dist/esm/form/PrimeInputMask.d.ts +0 -3
- package/dist/esm/form/PrimeInputMask.d.ts.map +0 -1
- package/dist/esm/form/PrimeInputMask.js +0 -24
- package/dist/esm/form/PrimeInputMask.js.map +0 -1
- package/dist/esm/theme/applyPrimeReactTheme.d.ts +0 -2
- package/dist/esm/theme/applyPrimeReactTheme.d.ts.map +0 -1
- package/dist/esm/theme/applyPrimeReactTheme.js +0 -49
- package/dist/esm/theme/applyPrimeReactTheme.js.map +0 -1
- package/dist/esm/theme/primeReactThemeStylesheet.d.ts +0 -3
- package/dist/esm/theme/primeReactThemeStylesheet.d.ts.map +0 -1
- package/dist/esm/theme/primeReactThemeStylesheet.js +0 -31
- package/dist/esm/theme/primeReactThemeStylesheet.js.map +0 -1
- package/for_applyPrimeReactTheme/when_swapping_the_theme_stylesheet.ts +0 -81
- package/for_primeReactThemes/when_resolving_a_theme_stylesheet.ts +0 -22
- package/form/PrimeCascadeSelect.tsx +0 -31
- package/form/PrimeInputMask.tsx +0 -27
- package/theme/applyPrimeReactTheme.ts +0 -52
- package/theme/primeReactThemeStylesheet.ts +0 -32
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { CSSProperties, HTMLAttributes, useEffect, useState } from 'react';
|
|
5
|
+
import { MenuItem } from '../MenuItem';
|
|
6
|
+
import { MenuItemAction } from './MenuItemAction';
|
|
7
|
+
import { MenuItemContent } from './MenuItemContent';
|
|
8
|
+
|
|
9
|
+
const barStyle: CSSProperties = {
|
|
10
|
+
background: 'var(--scene-surface-card)',
|
|
11
|
+
border: '1px solid var(--scene-surface-border)',
|
|
12
|
+
borderRadius: 'var(--scene-content-border-radius)',
|
|
13
|
+
color: 'var(--scene-text-color)',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const triggerStyle: CSSProperties = {
|
|
17
|
+
background: 'transparent',
|
|
18
|
+
border: 'none',
|
|
19
|
+
color: 'inherit',
|
|
20
|
+
cursor: 'pointer',
|
|
21
|
+
font: 'inherit',
|
|
22
|
+
textDecoration: 'none',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const panelStyle: CSSProperties = {
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
top: '100%',
|
|
28
|
+
left: 0,
|
|
29
|
+
zIndex: 1,
|
|
30
|
+
background: 'var(--scene-surface-overlay)',
|
|
31
|
+
border: '1px solid var(--scene-surface-border)',
|
|
32
|
+
borderRadius: 'var(--scene-content-border-radius)',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const columnHeadingStyle: CSSProperties = { color: 'var(--scene-text-muted-color)' };
|
|
36
|
+
|
|
37
|
+
const columnItemStyle: CSSProperties = { ...triggerStyle, width: '100%', textAlign: 'left' };
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The configuration {@link MegaMenu} takes.
|
|
41
|
+
*/
|
|
42
|
+
export interface MegaMenuProps extends HTMLAttributes<HTMLDivElement> {
|
|
43
|
+
/**
|
|
44
|
+
* The commands to show. Each top-level entry's children are the columns of its panel, and each
|
|
45
|
+
* column's own children are the commands in that column.
|
|
46
|
+
*/
|
|
47
|
+
items?: MenuItem[];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A horizontal bar whose panels lay their commands out in labeled columns. Cratis-owned.
|
|
52
|
+
*
|
|
53
|
+
* This exists because PrimeReact 11 removed `primereact/megamenu` outright, with no successor and no
|
|
54
|
+
* headless hook, so a screen that authored a mega menu had nothing left to render. It is a separate
|
|
55
|
+
* component from {@link Menubar} rather than a flag on it because the two read genuinely different item
|
|
56
|
+
* models - a menubar's children are commands, a mega menu's children are columns - and collapsing that
|
|
57
|
+
* into a boolean would make both harder to read than keeping them apart.
|
|
58
|
+
*
|
|
59
|
+
* The column model is where this deliberately departs from v10. PrimeReact 10 spelled columns as an array
|
|
60
|
+
* of arrays, so an entry's `items` held column groups rather than menu entries. Scene's item reader
|
|
61
|
+
* follows nested *objects* and drops nested arrays, which means that shape never reached the component
|
|
62
|
+
* intact anyway. Columns are therefore one ordinary level of nesting here: an entry's children are
|
|
63
|
+
* columns, and a column's children are its commands. The same authored model now survives the reader.
|
|
64
|
+
*
|
|
65
|
+
* What it otherwise does not carry over from v10: there is no vertical orientation, so the `orientation`
|
|
66
|
+
* property a v10 screen may have set is ignored rather than half-honored; panels open on click only,
|
|
67
|
+
* never on hover; and item templates are not supported.
|
|
68
|
+
*/
|
|
69
|
+
export function MegaMenu({ items = [], ...rest }: MegaMenuProps) {
|
|
70
|
+
const [openIndex, setOpenIndex] = useState<number | undefined>(undefined);
|
|
71
|
+
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
const close = () => setOpenIndex(undefined);
|
|
74
|
+
document.addEventListener('click', close);
|
|
75
|
+
return () => document.removeEventListener('click', close);
|
|
76
|
+
}, []);
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<div
|
|
80
|
+
{...rest}
|
|
81
|
+
role='menubar'
|
|
82
|
+
className='relative flex items-center gap-2 p-3'
|
|
83
|
+
style={barStyle}
|
|
84
|
+
onKeyDown={(event) => {
|
|
85
|
+
if (event.key === 'Escape') setOpenIndex(undefined);
|
|
86
|
+
}}>
|
|
87
|
+
{items.map((item, index) => {
|
|
88
|
+
const columns = item.items ?? [];
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<div key={index} role='none' className='relative'>
|
|
92
|
+
{columns.length > 0 ? (
|
|
93
|
+
<>
|
|
94
|
+
<button
|
|
95
|
+
type='button'
|
|
96
|
+
role='menuitem'
|
|
97
|
+
className='inline-flex items-center gap-2'
|
|
98
|
+
style={triggerStyle}
|
|
99
|
+
disabled={item.disabled}
|
|
100
|
+
aria-haspopup='true'
|
|
101
|
+
aria-expanded={openIndex === index}
|
|
102
|
+
onClick={(event) => {
|
|
103
|
+
event.stopPropagation();
|
|
104
|
+
setOpenIndex(openIndex === index ? undefined : index);
|
|
105
|
+
}}>
|
|
106
|
+
<MenuItemContent item={item} />
|
|
107
|
+
<i className='pi pi-angle-down' aria-hidden='true' />
|
|
108
|
+
</button>
|
|
109
|
+
{openIndex === index && (
|
|
110
|
+
<div role='menu' aria-label={item.label} className='flex gap-4 p-3' style={panelStyle}>
|
|
111
|
+
{columns.map((column, columnIndex) => (
|
|
112
|
+
<div key={columnIndex} role='group' aria-label={column.label} className='flex flex-col gap-1'>
|
|
113
|
+
<span className='text-sm font-semibold' style={columnHeadingStyle}>
|
|
114
|
+
{column.label}
|
|
115
|
+
</span>
|
|
116
|
+
{(column.items ?? []).map((child, childIndex) => (
|
|
117
|
+
<MenuItemAction
|
|
118
|
+
key={childIndex}
|
|
119
|
+
item={child}
|
|
120
|
+
role='menuitem'
|
|
121
|
+
className='flex items-center gap-2'
|
|
122
|
+
style={columnItemStyle}
|
|
123
|
+
/>
|
|
124
|
+
))}
|
|
125
|
+
</div>
|
|
126
|
+
))}
|
|
127
|
+
</div>
|
|
128
|
+
)}
|
|
129
|
+
</>
|
|
130
|
+
) : (
|
|
131
|
+
<MenuItemAction item={item} role='menuitem' className='inline-flex items-center gap-2' style={triggerStyle} />
|
|
132
|
+
)}
|
|
133
|
+
</div>
|
|
134
|
+
);
|
|
135
|
+
})}
|
|
136
|
+
</div>
|
|
137
|
+
);
|
|
138
|
+
}
|
|
@@ -12,7 +12,12 @@ const meta = {
|
|
|
12
12
|
tags: ['autodocs'],
|
|
13
13
|
parameters: {
|
|
14
14
|
layout: 'padded',
|
|
15
|
-
docs: {
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component:
|
|
18
|
+
'The menu family. All ten read the same nested item model, so one authored menu can be shown as a menubar, a tiered menu or a dock without being restructured. Only `menu`, `breadcrumb` and `contextMenu` are still PrimeReact underneath - PrimeReact 11 removed the other seven, and this gallery is where the Cratis-owned replacements are checked to still look and behave like the family they belong to.',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
16
21
|
},
|
|
17
22
|
} satisfies Meta<typeof SceneElementView>;
|
|
18
23
|
|
|
@@ -28,12 +33,12 @@ export const Gallery: Story = {
|
|
|
28
33
|
sceneComponent('menubar', 'menubar', { items: [{ label: 'File', items: ['New', 'Open'] }, { label: 'Edit', items: ['Undo'] }] }),
|
|
29
34
|
sceneComponent('breadcrumb', 'breadcrumb', { items: ['Projects', 'Acme', 'Settings'] }),
|
|
30
35
|
sceneComponent('tabMenu', 'tabMenu', { items: [{ label: 'Overview', icon: 'pi pi-home' }, { label: 'Activity', icon: 'pi pi-list' }] }),
|
|
31
|
-
sceneComponent('steps', 'steps', { items: ['Account', 'Payment', 'Confirm'] }),
|
|
36
|
+
sceneComponent('steps', 'steps', { items: ['Account', 'Payment', 'Confirm'], activeIndex: 1 }),
|
|
32
37
|
sceneComponent('tieredMenu', 'tieredMenu', { items: [{ label: 'File', items: [{ label: 'Export', items: ['PDF', 'CSV'] }] }] }),
|
|
33
38
|
sceneComponent('panelMenu', 'panelMenu', { items: [{ label: 'Reports', items: ['Monthly', 'Annual'] }] }),
|
|
34
39
|
sceneComponent('contextMenu', 'contextMenu', { label: 'Right-click this text', items: ['Copy', 'Paste'] }),
|
|
35
40
|
sceneComponent('megaMenu', 'megaMenu', {
|
|
36
|
-
items: [{ label: 'Catalog', items: [
|
|
41
|
+
items: [{ label: 'Catalog', items: [{ label: 'Hardware', items: ['Laptops', 'Phones'] }, { label: 'Software', items: ['Licenses'] }] }],
|
|
37
42
|
}),
|
|
38
43
|
sceneComponent('dock', 'dock', { items: [{ label: 'Home', icon: 'pi pi-home' }, { label: 'Search', icon: 'pi pi-search' }] }),
|
|
39
44
|
]),
|
|
@@ -41,3 +46,26 @@ export const Gallery: Story = {
|
|
|
41
46
|
resolveBinding: () => undefined,
|
|
42
47
|
},
|
|
43
48
|
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Every component in this family with nothing authored, which is what a screen under construction looks
|
|
52
|
+
* like. Each one has to come out as an empty container rather than take the gallery down with it.
|
|
53
|
+
*/
|
|
54
|
+
export const Unconfigured: Story = {
|
|
55
|
+
args: {
|
|
56
|
+
element: sceneGallery('unconfigured', [
|
|
57
|
+
sceneComponent('menu', 'menu'),
|
|
58
|
+
sceneComponent('menubar', 'menubar'),
|
|
59
|
+
sceneComponent('breadcrumb', 'breadcrumb'),
|
|
60
|
+
sceneComponent('tabMenu', 'tabMenu'),
|
|
61
|
+
sceneComponent('steps', 'steps'),
|
|
62
|
+
sceneComponent('tieredMenu', 'tieredMenu'),
|
|
63
|
+
sceneComponent('panelMenu', 'panelMenu'),
|
|
64
|
+
sceneComponent('contextMenu', 'contextMenu'),
|
|
65
|
+
sceneComponent('megaMenu', 'megaMenu'),
|
|
66
|
+
sceneComponent('dock', 'dock'),
|
|
67
|
+
]),
|
|
68
|
+
registry: primeReactComponents,
|
|
69
|
+
resolveBinding: () => undefined,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { AriaRole, CSSProperties } from 'react';
|
|
5
|
+
import { MenuItem } from '../MenuItem';
|
|
6
|
+
import { MenuItemContent } from './MenuItemContent';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The configuration {@link MenuItemAction} takes.
|
|
10
|
+
*/
|
|
11
|
+
export interface MenuItemActionProps {
|
|
12
|
+
/**
|
|
13
|
+
* The entry to make selectable.
|
|
14
|
+
*/
|
|
15
|
+
item: MenuItem;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The ARIA role the entry plays inside its container - `menuitem` inside a menu, left unset inside a
|
|
19
|
+
* plain navigation bar where the surrounding markup already says what the entry is.
|
|
20
|
+
*/
|
|
21
|
+
role?: AriaRole;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Whether this entry is the one the user is currently on, which is announced as `aria-current`.
|
|
25
|
+
*/
|
|
26
|
+
current?: boolean;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Classes for the entry, so each menu can keep its own layout while sharing this behavior.
|
|
30
|
+
*/
|
|
31
|
+
className?: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Inline styling for the entry. This package ships no component stylesheets - a `.css` import would
|
|
35
|
+
* not survive the `tsc` build - so chrome that cannot be expressed with the shared utility classes is
|
|
36
|
+
* written here.
|
|
37
|
+
*/
|
|
38
|
+
style?: CSSProperties;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Invoked after the entry's own `command`, so a menu can close itself or record a selection.
|
|
42
|
+
*/
|
|
43
|
+
onActivate?: () => void;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* One selectable menu entry, rendered as a link when it navigates and as a button when it commands.
|
|
48
|
+
*
|
|
49
|
+
* The distinction is not cosmetic and it is the reason this is shared rather than repeated. An entry
|
|
50
|
+
* carrying a `url` is navigation: it belongs in an anchor so it can be opened in a new tab, copied,
|
|
51
|
+
* followed by a screen reader's link list and reached the way every other link on the page is. An entry
|
|
52
|
+
* carrying a `command` changes something on the current screen, which is what a button is for. Getting
|
|
53
|
+
* that wrong is invisible to a sighted mouse user and immediately wrong for everyone else, so the five
|
|
54
|
+
* Cratis-owned menus that need a selectable entry all defer the choice to here.
|
|
55
|
+
*
|
|
56
|
+
* A disabled entry is always a button, even when it has a `url`, because there is no way to disable an
|
|
57
|
+
* anchor - `aria-disabled` still leaves it clickable and focusable. Rendering the button lets the
|
|
58
|
+
* platform's own disabled semantics do the work.
|
|
59
|
+
*/
|
|
60
|
+
export function MenuItemAction({ item, role, current, className, style, onActivate }: MenuItemActionProps) {
|
|
61
|
+
const activate = () => {
|
|
62
|
+
item.command?.();
|
|
63
|
+
onActivate?.();
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
if (item.url !== undefined && item.disabled !== true) {
|
|
67
|
+
return (
|
|
68
|
+
<a
|
|
69
|
+
href={item.url}
|
|
70
|
+
role={role}
|
|
71
|
+
className={className}
|
|
72
|
+
style={style}
|
|
73
|
+
aria-current={current === true ? 'page' : undefined}
|
|
74
|
+
onClick={activate}>
|
|
75
|
+
<MenuItemContent item={item} />
|
|
76
|
+
</a>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<button
|
|
82
|
+
type='button'
|
|
83
|
+
role={role}
|
|
84
|
+
className={className}
|
|
85
|
+
style={style}
|
|
86
|
+
disabled={item.disabled}
|
|
87
|
+
aria-current={current === true ? 'page' : undefined}
|
|
88
|
+
onClick={activate}>
|
|
89
|
+
<MenuItemContent item={item} />
|
|
90
|
+
</button>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { MenuItem } from '../MenuItem';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The configuration {@link MenuItemContent} takes.
|
|
8
|
+
*/
|
|
9
|
+
export interface MenuItemContentProps {
|
|
10
|
+
/**
|
|
11
|
+
* The entry whose icon and label to show.
|
|
12
|
+
*/
|
|
13
|
+
item: MenuItem;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The inside of one menu entry - its icon and its label - without the element that makes it selectable.
|
|
18
|
+
*
|
|
19
|
+
* Seven of the components in this folder are Cratis-owned replacements for menus PrimeReact 11 removed,
|
|
20
|
+
* and each of them wraps an entry in a different element: a menubar puts it in a button, a tiered menu in
|
|
21
|
+
* a list row, a dock in an icon-only control. What never differs is the inside, so it is written once
|
|
22
|
+
* here instead of seven times, where six copies would eventually drift apart.
|
|
23
|
+
*
|
|
24
|
+
* Sharing it also settles one accessibility decision in a single place rather than repeatedly: the label
|
|
25
|
+
* already carries the meaning, so the icon beside it is decoration and is hidden from assistive
|
|
26
|
+
* technology. Left to each component, that is exactly the kind of detail one of them would quietly get
|
|
27
|
+
* wrong.
|
|
28
|
+
*/
|
|
29
|
+
export function MenuItemContent({ item }: MenuItemContentProps) {
|
|
30
|
+
return (
|
|
31
|
+
<>
|
|
32
|
+
{item.icon !== undefined && <i className={item.icon} aria-hidden='true' />}
|
|
33
|
+
{item.label !== undefined && <span>{item.label}</span>}
|
|
34
|
+
</>
|
|
35
|
+
);
|
|
36
|
+
}
|
package/menu/Menubar.tsx
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { CSSProperties, HTMLAttributes, ReactNode, useEffect, useState } from 'react';
|
|
5
|
+
import { MenuItem } from '../MenuItem';
|
|
6
|
+
import { MenuItemAction } from './MenuItemAction';
|
|
7
|
+
import { MenuItemContent } from './MenuItemContent';
|
|
8
|
+
|
|
9
|
+
const barStyle: CSSProperties = {
|
|
10
|
+
background: 'var(--scene-surface-card)',
|
|
11
|
+
border: '1px solid var(--scene-surface-border)',
|
|
12
|
+
borderRadius: 'var(--scene-content-border-radius)',
|
|
13
|
+
color: 'var(--scene-text-color)',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const triggerStyle: CSSProperties = {
|
|
17
|
+
background: 'transparent',
|
|
18
|
+
border: 'none',
|
|
19
|
+
color: 'inherit',
|
|
20
|
+
cursor: 'pointer',
|
|
21
|
+
font: 'inherit',
|
|
22
|
+
textDecoration: 'none',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const panelStyle: CSSProperties = {
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
top: '100%',
|
|
28
|
+
left: 0,
|
|
29
|
+
zIndex: 1,
|
|
30
|
+
minWidth: '12rem',
|
|
31
|
+
background: 'var(--scene-surface-overlay)',
|
|
32
|
+
border: '1px solid var(--scene-surface-border)',
|
|
33
|
+
borderRadius: 'var(--scene-content-border-radius)',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const panelItemStyle: CSSProperties = { ...triggerStyle, width: '100%', textAlign: 'left' };
|
|
37
|
+
|
|
38
|
+
const separatorStyle: CSSProperties = { border: 'none', borderTop: '1px solid var(--scene-surface-border)', margin: 0 };
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The configuration {@link Menubar} takes.
|
|
42
|
+
*/
|
|
43
|
+
export interface MenubarProps extends HTMLAttributes<HTMLDivElement> {
|
|
44
|
+
/**
|
|
45
|
+
* The commands to show, top level across the bar and one level of children in a dropdown.
|
|
46
|
+
*/
|
|
47
|
+
items?: MenuItem[];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Content pinned before the commands - branding, in a real application.
|
|
51
|
+
*/
|
|
52
|
+
start?: ReactNode;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Content pinned after the commands - account and status controls, in a real application.
|
|
56
|
+
*/
|
|
57
|
+
end?: ReactNode;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* A horizontal bar of commands, each of which may drop down a panel of its children. Cratis-owned.
|
|
62
|
+
*
|
|
63
|
+
* This exists because PrimeReact 11 removed `primereact/menubar` outright, with no successor component
|
|
64
|
+
* and no headless hook to rebuild it from - unlike `menu`, `breadcrumb` and `contextmenu`, which survived
|
|
65
|
+
* as compositional part namespaces. Scene still has to render an element authored as a menubar, so the
|
|
66
|
+
* component is Scene's now. It follows `ActionMenubar` in `@cratis/components`, which is the same answer
|
|
67
|
+
* Cratis already reached for its own bar of actions after the v11 removal.
|
|
68
|
+
*
|
|
69
|
+
* What it deliberately does not carry over from the v10 `Menubar`: submenus nest exactly one level rather
|
|
70
|
+
* than arbitrarily deep (author a `tieredMenu` when a third level is genuinely needed); panels open on
|
|
71
|
+
* click only, never on hover; there is no responsive collapse to a hamburger at narrow widths; there is
|
|
72
|
+
* no roving-focus keyboard model across the bar, only the tab order and Escape the browser and this
|
|
73
|
+
* component give for free; and item templates are not supported, since a Scene item model has no place to
|
|
74
|
+
* put a React node.
|
|
75
|
+
*
|
|
76
|
+
* A panel does close when the pointer goes elsewhere on the page. That is not a feature carried over so
|
|
77
|
+
* much as the absence of a defect - a dropdown that survives a click on the rest of the screen is broken,
|
|
78
|
+
* not minimal.
|
|
79
|
+
*/
|
|
80
|
+
export function Menubar({ items = [], start, end, ...rest }: MenubarProps) {
|
|
81
|
+
const [openIndex, setOpenIndex] = useState<number | undefined>(undefined);
|
|
82
|
+
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
const close = () => setOpenIndex(undefined);
|
|
85
|
+
document.addEventListener('click', close);
|
|
86
|
+
return () => document.removeEventListener('click', close);
|
|
87
|
+
}, []);
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<div
|
|
91
|
+
{...rest}
|
|
92
|
+
className='relative flex items-center gap-2 p-3'
|
|
93
|
+
style={barStyle}
|
|
94
|
+
onKeyDown={(event) => {
|
|
95
|
+
if (event.key === 'Escape') setOpenIndex(undefined);
|
|
96
|
+
}}>
|
|
97
|
+
{start}
|
|
98
|
+
<div role='menubar' className='flex items-center gap-2'>
|
|
99
|
+
{items.map((item, index) => {
|
|
100
|
+
const children = item.items ?? [];
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div key={index} role='none' className='relative'>
|
|
104
|
+
{children.length > 0 ? (
|
|
105
|
+
<>
|
|
106
|
+
<button
|
|
107
|
+
type='button'
|
|
108
|
+
role='menuitem'
|
|
109
|
+
className='inline-flex items-center gap-2'
|
|
110
|
+
style={triggerStyle}
|
|
111
|
+
disabled={item.disabled}
|
|
112
|
+
aria-haspopup='true'
|
|
113
|
+
aria-expanded={openIndex === index}
|
|
114
|
+
onClick={(event) => {
|
|
115
|
+
event.stopPropagation();
|
|
116
|
+
setOpenIndex(openIndex === index ? undefined : index);
|
|
117
|
+
}}>
|
|
118
|
+
<MenuItemContent item={item} />
|
|
119
|
+
<i className='pi pi-angle-down' aria-hidden='true' />
|
|
120
|
+
</button>
|
|
121
|
+
{openIndex === index && (
|
|
122
|
+
<div role='menu' aria-label={item.label} className='flex flex-col' style={panelStyle}>
|
|
123
|
+
{children.map((child, childIndex) =>
|
|
124
|
+
child.separator === true ? (
|
|
125
|
+
<hr key={childIndex} style={separatorStyle} />
|
|
126
|
+
) : (
|
|
127
|
+
<MenuItemAction
|
|
128
|
+
key={childIndex}
|
|
129
|
+
item={child}
|
|
130
|
+
role='menuitem'
|
|
131
|
+
className='flex items-center gap-2 p-3'
|
|
132
|
+
style={panelItemStyle}
|
|
133
|
+
/>
|
|
134
|
+
)
|
|
135
|
+
)}
|
|
136
|
+
</div>
|
|
137
|
+
)}
|
|
138
|
+
</>
|
|
139
|
+
) : (
|
|
140
|
+
<MenuItemAction item={item} role='menuitem' className='inline-flex items-center gap-2' style={triggerStyle} />
|
|
141
|
+
)}
|
|
142
|
+
</div>
|
|
143
|
+
);
|
|
144
|
+
})}
|
|
145
|
+
</div>
|
|
146
|
+
{end}
|
|
147
|
+
</div>
|
|
148
|
+
);
|
|
149
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { CSSProperties, HTMLAttributes } from 'react';
|
|
5
|
+
import { Accordion } from 'primereact/accordion';
|
|
6
|
+
import { MenuItem } from '../MenuItem';
|
|
7
|
+
import { MenuItemAction } from './MenuItemAction';
|
|
8
|
+
import { MenuItemContent } from './MenuItemContent';
|
|
9
|
+
|
|
10
|
+
const rootStyle: CSSProperties = { color: 'var(--scene-text-color)', width: '16rem' };
|
|
11
|
+
|
|
12
|
+
const headerStyle: CSSProperties = {
|
|
13
|
+
background: 'var(--scene-surface-card)',
|
|
14
|
+
border: '1px solid var(--scene-surface-border)',
|
|
15
|
+
borderRadius: 'var(--scene-content-border-radius)',
|
|
16
|
+
color: 'inherit',
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
font: 'inherit',
|
|
19
|
+
justifyContent: 'space-between',
|
|
20
|
+
textAlign: 'left',
|
|
21
|
+
textDecoration: 'none',
|
|
22
|
+
width: '100%',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const listStyle: CSSProperties = { listStyle: 'none', margin: 0, padding: 0 };
|
|
26
|
+
|
|
27
|
+
const childStyle: CSSProperties = {
|
|
28
|
+
background: 'transparent',
|
|
29
|
+
border: 'none',
|
|
30
|
+
color: 'inherit',
|
|
31
|
+
cursor: 'pointer',
|
|
32
|
+
font: 'inherit',
|
|
33
|
+
textAlign: 'left',
|
|
34
|
+
textDecoration: 'none',
|
|
35
|
+
width: '100%',
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The configuration {@link PanelMenu} takes.
|
|
40
|
+
*
|
|
41
|
+
* `defaultValue` is omitted from the inherited attributes because the props are spread onto
|
|
42
|
+
* `Accordion.Root`, which has a `defaultValue` of its own meaning "the panels open to begin with".
|
|
43
|
+
* `HTMLAttributes` declares the form-control `defaultValue` (which includes `readonly string[]`), and the
|
|
44
|
+
* two are not assignable. Dropping it is the honest resolution: a `<div>` has no default value, so nothing
|
|
45
|
+
* is lost, and leaving both in scope would let a caller set one and silently get the other.
|
|
46
|
+
*/
|
|
47
|
+
export interface PanelMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue'> {
|
|
48
|
+
/**
|
|
49
|
+
* The commands to show. A top-level entry with children becomes an expandable panel; one without
|
|
50
|
+
* stays a plain row.
|
|
51
|
+
*/
|
|
52
|
+
items?: MenuItem[];
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Whether more than one panel may be open at once.
|
|
56
|
+
*/
|
|
57
|
+
multiple?: boolean;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* A vertical menu whose sections expand in place, accordion style. Cratis-owned.
|
|
62
|
+
*
|
|
63
|
+
* This exists because PrimeReact 11 removed `primereact/panelmenu` outright. Unlike the other removals in
|
|
64
|
+
* this folder, though, the mechanism it needed did survive: `primereact/accordion` is exactly the
|
|
65
|
+
* expand-collapse behavior a panel menu is, so this composes the v11 `Accordion` parts rather than
|
|
66
|
+
* hand-rolling open state. That is worth doing rather than clever - the accordion already brings the
|
|
67
|
+
* `aria-expanded` and `aria-controls` wiring between a trigger and its content, the disabled handling, and
|
|
68
|
+
* the single-versus-multiple open policy, and every one of those is a thing a hand-rolled version would
|
|
69
|
+
* get subtly wrong. What is Cratis's here is only the mapping from a Scene item model onto those parts.
|
|
70
|
+
*
|
|
71
|
+
* What it deliberately does not carry over from the v10 `PanelMenu`: sections expand exactly one level
|
|
72
|
+
* deep rather than nesting arbitrarily, because an accordion panel holds content and not another
|
|
73
|
+
* accordion; there is no keyboard model beyond the accordion's own; and item templates are not supported.
|
|
74
|
+
*/
|
|
75
|
+
export function PanelMenu({ items = [], multiple = false, ...rest }: PanelMenuProps) {
|
|
76
|
+
return (
|
|
77
|
+
<Accordion.Root {...rest} multiple={multiple} className='flex flex-col gap-1' style={rootStyle}>
|
|
78
|
+
{items.map((item, index) => {
|
|
79
|
+
const children = item.items ?? [];
|
|
80
|
+
|
|
81
|
+
if (children.length === 0) return <MenuItemAction key={index} item={item} className='flex items-center gap-2 p-3' style={headerStyle} />;
|
|
82
|
+
|
|
83
|
+
return (
|
|
84
|
+
<Accordion.Panel key={index} value={String(index)} disabled={item.disabled}>
|
|
85
|
+
<Accordion.Header>
|
|
86
|
+
<Accordion.Trigger className='flex items-center gap-2 p-3' style={headerStyle}>
|
|
87
|
+
<MenuItemContent item={item} />
|
|
88
|
+
<Accordion.Indicator>
|
|
89
|
+
<i className='pi pi-chevron-down' aria-hidden='true' />
|
|
90
|
+
</Accordion.Indicator>
|
|
91
|
+
</Accordion.Trigger>
|
|
92
|
+
</Accordion.Header>
|
|
93
|
+
<Accordion.Content>
|
|
94
|
+
<ul role='menu' aria-label={item.label} style={listStyle}>
|
|
95
|
+
{children.map((child, childIndex) => (
|
|
96
|
+
<li key={childIndex} role='none'>
|
|
97
|
+
<MenuItemAction item={child} role='menuitem' className='flex items-center gap-2 p-3' style={childStyle} />
|
|
98
|
+
</li>
|
|
99
|
+
))}
|
|
100
|
+
</ul>
|
|
101
|
+
</Accordion.Content>
|
|
102
|
+
</Accordion.Panel>
|
|
103
|
+
);
|
|
104
|
+
})}
|
|
105
|
+
</Accordion.Root>
|
|
106
|
+
);
|
|
107
|
+
}
|
package/menu/PrimeBreadcrumb.tsx
CHANGED
|
@@ -1,23 +1,78 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { Fragment, ReactNode } from 'react';
|
|
5
|
+
import { Breadcrumb } from 'primereact/breadcrumb';
|
|
5
6
|
import { RegisteredComponentProps } from '@cratis/scene.react';
|
|
7
|
+
import { MenuItem } from '../MenuItem';
|
|
6
8
|
import { menuItemsProperty } from '../menuItems';
|
|
7
9
|
import { stringProperty } from '../properties';
|
|
10
|
+
import { MenuItemContent } from './MenuItemContent';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* One entry in the trail, as the strongest thing the authored data supports.
|
|
14
|
+
*
|
|
15
|
+
* The three cases are genuinely different to assistive technology and only one of them is a link. Where
|
|
16
|
+
* the user already is gets `Breadcrumb.Current`, which carries `aria-current="page"` and is what tells a
|
|
17
|
+
* screen reader the trail has ended - a trailing link says the opposite. An earlier entry that names a
|
|
18
|
+
* target is a link. An earlier entry that names none is plain text, because an anchor with no `href` is
|
|
19
|
+
* not focusable and only looks like a link.
|
|
20
|
+
*
|
|
21
|
+
* @param item The entry to render.
|
|
22
|
+
* @param current Whether this is the last entry, and so where the user is now.
|
|
23
|
+
* @returns The rendered entry.
|
|
24
|
+
*/
|
|
25
|
+
function breadcrumbEntry(item: MenuItem, current: boolean): ReactNode {
|
|
26
|
+
if (current) {
|
|
27
|
+
return (
|
|
28
|
+
<Breadcrumb.Current>
|
|
29
|
+
<MenuItemContent item={item} />
|
|
30
|
+
</Breadcrumb.Current>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (item.url === undefined) return <MenuItemContent item={item} />;
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<Breadcrumb.Link href={item.url}>
|
|
38
|
+
<MenuItemContent item={item} />
|
|
39
|
+
</Breadcrumb.Link>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
8
42
|
|
|
9
43
|
/**
|
|
10
44
|
* The `PrimeReact:breadcrumb` component - the path to where the user currently is.
|
|
11
45
|
*
|
|
12
|
-
* The home entry is separate from the trail in
|
|
46
|
+
* The home entry is separate from the trail in the authored model, so it is read from its own `homeUrl`
|
|
13
47
|
* property and always rendered as an icon.
|
|
48
|
+
*
|
|
49
|
+
* PrimeReact 11 replaced the single `BreadCrumb` component and its `model`/`home` props with a namespace
|
|
50
|
+
* of parts, so the trail is assembled here. The parts are worth assembling rather than working around:
|
|
51
|
+
* the root is a `nav` carrying an accessible name, the list is an ordered list, and every separator is
|
|
52
|
+
* marked presentational so it is never read out as part of the path. The old `model` prop produced all of
|
|
53
|
+
* that too, but only because the component decided it - none of it is something a hand-rolled trail would
|
|
54
|
+
* reliably reproduce.
|
|
14
55
|
*/
|
|
15
56
|
export function PrimeBreadcrumb({ element }: RegisteredComponentProps) {
|
|
57
|
+
const items = menuItemsProperty(element, 'items');
|
|
58
|
+
|
|
16
59
|
return (
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
60
|
+
<Breadcrumb.Root data-scene-id={element.id}>
|
|
61
|
+
<Breadcrumb.List>
|
|
62
|
+
<Breadcrumb.Item>
|
|
63
|
+
<Breadcrumb.Link href={stringProperty(element, 'homeUrl', '/')} aria-label='Home'>
|
|
64
|
+
<i className='pi pi-home' aria-hidden='true' />
|
|
65
|
+
</Breadcrumb.Link>
|
|
66
|
+
</Breadcrumb.Item>
|
|
67
|
+
{items.map((item, index) => (
|
|
68
|
+
<Fragment key={index}>
|
|
69
|
+
<Breadcrumb.Separator>
|
|
70
|
+
<i className='pi pi-angle-right' aria-hidden='true' />
|
|
71
|
+
</Breadcrumb.Separator>
|
|
72
|
+
<Breadcrumb.Item>{breadcrumbEntry(item, index === items.length - 1)}</Breadcrumb.Item>
|
|
73
|
+
</Fragment>
|
|
74
|
+
))}
|
|
75
|
+
</Breadcrumb.List>
|
|
76
|
+
</Breadcrumb.Root>
|
|
22
77
|
);
|
|
23
78
|
}
|