superdesk-ui-framework 3.0.0-beta.0 → 3.0.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +5 -0
- package/app/fonts/sd_big-icons.eot +0 -0
- package/app/fonts/sd_big-icons.svg +55 -53
- package/app/fonts/sd_big-icons.ttf +0 -0
- package/app/fonts/sd_big-icons.woff +0 -0
- package/app/fonts/sd_icons.eot +0 -0
- package/app/fonts/sd_icons.svg +1 -0
- package/app/fonts/sd_icons.ttf +0 -0
- package/app/fonts/sd_icons.woff +0 -0
- package/app/img/SD-logo.svg +52 -0
- package/app/img/dots.svg +3 -0
- package/app/img/spinner.svg +3 -0
- package/app/img/themes/theme-base.svg +1 -0
- package/app/img/themes/theme-contrast.svg +45 -0
- package/app/img/themes/theme-dark.svg +1 -0
- package/app/img/themes/theme-light.svg +1 -0
- package/app/index.js +1 -1
- package/app/scripts/modals.js +22 -9
- package/app/styles/_accessibility.scss +312 -4
- package/app/styles/_alerts.scss +57 -19
- package/app/styles/_avatar.scss +25 -1
- package/app/styles/_badge.scss +2 -2
- package/app/styles/_big-icon-font.scss +64 -24
- package/app/styles/_boxed-list.scss +67 -21
- package/app/styles/_buttons.scss +435 -332
- package/app/styles/_carousel.scss +17 -11
- package/app/styles/_design-tokens.scss +2 -0
- package/app/styles/_hamburger.scss +160 -0
- package/app/styles/_helpers.scss +198 -34
- package/app/styles/_icon-font.scss +344 -307
- package/app/styles/_icon-labels.scss +66 -10
- package/app/styles/_labels.scss +12 -6
- package/app/styles/_loaders.scss +13 -0
- package/app/styles/_master-desk.scss +5 -5
- package/app/styles/_mixins.scss +13 -3
- package/app/styles/_modals.scss +4 -28
- package/app/styles/_normalize.scss +1 -0
- package/app/styles/_panel-info.scss +19 -14
- package/app/styles/_sd-tag-input.scss +104 -3
- package/app/styles/_simple-list.scss +39 -17
- package/app/styles/_spinner.scss +46 -0
- package/app/styles/_table-list.scss +244 -0
- package/app/styles/_tabs.scss +6 -8
- package/app/styles/_tag-labels.scss +11 -2
- package/app/styles/_thumb-carousel.scss +11 -10
- package/app/styles/_toggle-box.scss +46 -12
- package/app/styles/_toggle-button.scss +42 -0
- package/app/styles/_tooltips.scss +3 -3
- package/app/styles/_variables.scss +0 -1
- package/app/styles/app.scss +13 -2
- package/app/styles/components/_card-item.scss +33 -21
- package/app/styles/components/_list-item.scss +32 -23
- package/app/styles/components/_sd-dropzone.scss +114 -0
- package/app/styles/components/_sd-grid-item.scss +2 -2
- package/app/styles/components/_sd-notification-panel.scss +48 -0
- package/app/styles/components/_sd-searchbar.scss +5 -98
- package/app/styles/components/_subnav.scss +149 -120
- package/app/styles/components/_theme-selector.scss +189 -0
- package/app/styles/design-tokens/_design-tokens-general.scss +81 -0
- package/app/styles/{variables → design-tokens}/_new-colors.scss +41 -20
- package/app/styles/dropdowns/_basic-dropdown.scss +30 -3
- package/app/styles/editor/_editor-buttons.scss +54 -0
- package/app/styles/{_editor-themes.scss → editor/_editor-themes.scss} +0 -0
- package/app/styles/form-elements/_checkbox.scss +85 -58
- package/app/styles/form-elements/_forms-general.scss +90 -14
- package/app/styles/form-elements/_inputs.scss +305 -65
- package/app/styles/form-elements/_select-grid.scss +79 -0
- package/app/styles/grids/_basic-grid.scss +52 -26
- package/app/styles/grids/_grid-layout.scss +174 -66
- package/app/styles/grids/_layout-grid.scss +4 -4
- package/app/styles/grids/_sd-kanban-list.scss +2 -2
- package/app/styles/interface-elements/_side-panel.scss +87 -58
- package/app/styles/layout/_basic-layout.scss +1 -4
- package/app/styles/layout/_container.scss +35 -0
- package/app/styles/layout/_editor.scss +398 -0
- package/app/styles/menus/_sd-bottom-tabs.scss +70 -0
- package/app/styles/menus/_sd-left-navigation.scss +38 -3
- package/app/styles/menus/_sd-sidebar-menu.scss +109 -14
- package/app/styles/menus/_sd-top-menu.scss +19 -5
- package/app/styles/pr-superdesk-theme.scss +3 -0
- package/app/styles/primereact/_pr-datepicker.scss +58 -7
- package/app/styles/primereact/_pr-dialog.scss +39 -7
- package/app/styles/primereact/_pr-dropdown.scss +155 -8
- package/app/styles/primereact/_pr-general.scss +4 -0
- package/app/styles/primereact/_pr-skeleton.scss +35 -0
- package/app/styles/variables/_colors.scss +2 -452
- package/app/styles/variables/_dimensions.scss +85 -1
- package/app/styles/variables/_form-elements.scss +0 -2
- package/app-typescript/components/Alert.tsx +16 -1
- package/app-typescript/components/Avatar.tsx +21 -0
- package/app-typescript/components/Button.tsx +7 -1
- package/app-typescript/components/ButtonGroup.tsx +5 -4
- package/app-typescript/components/Carousel.tsx +1 -1
- package/app-typescript/components/CheckButtonGroup.tsx +19 -5
- package/app-typescript/components/CheckGroup.tsx +2 -1
- package/app-typescript/components/Checkbox.tsx +7 -3
- package/app-typescript/components/CheckboxButton.tsx +9 -2
- package/app-typescript/components/CreateButton.tsx +38 -0
- package/app-typescript/components/DatePicker.tsx +73 -22
- package/app-typescript/components/DonutChart.tsx +1 -1
- package/app-typescript/components/DropZone.tsx +89 -0
- package/app-typescript/components/Dropdown.tsx +9 -1
- package/app-typescript/components/Editor/EditorButton.tsx +34 -0
- package/app-typescript/components/Form/FormGroup.tsx +33 -0
- package/app-typescript/components/Form/FormItem.tsx +20 -0
- package/app-typescript/components/Form/FormLabel.tsx +22 -0
- package/app-typescript/components/Form/FormRow.tsx +40 -0
- package/app-typescript/components/Form/FormText.tsx +15 -0
- package/app-typescript/components/Form/index.tsx +5 -0
- package/app-typescript/components/Icon.tsx +4 -2
- package/app-typescript/components/IconButton.tsx +30 -12
- package/app-typescript/components/IconLabel.tsx +8 -1
- package/app-typescript/components/IconPicker.tsx +277 -0
- package/app-typescript/components/Input.tsx +58 -9
- package/app-typescript/components/Layouts/AuthorinInnerSideBar.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringContainer.tsx +27 -0
- package/app-typescript/components/Layouts/AuthoringFrame.tsx +72 -0
- package/app-typescript/components/Layouts/AuthoringFrameContainer.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameLeftBar.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameMain.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameNavBar.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameOverlay.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringFrameSidePanel.tsx +22 -0
- package/app-typescript/components/Layouts/AuthoringFrameSidePanelOverlay.tsx +22 -0
- package/app-typescript/components/Layouts/AuthoringInnerBody.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +40 -0
- package/app-typescript/components/Layouts/AuthoringMain.tsx +50 -0
- package/app-typescript/components/Layouts/AuthoringMainContainer.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringMainContent.tsx +15 -0
- package/app-typescript/components/Layouts/AuthoringMainToolBar.tsx +21 -0
- package/app-typescript/components/Layouts/BottomBarAction.tsx +35 -0
- package/app-typescript/components/Layouts/Container.tsx +30 -0
- package/app-typescript/components/Layouts/ContentSplitter.tsx +23 -0
- package/app-typescript/components/Layouts/CoreLayout.tsx +62 -0
- package/app-typescript/components/Layouts/CoreLayoutContainer.tsx +16 -0
- package/app-typescript/components/Layouts/CoreLayoutFooter.tsx +15 -0
- package/app-typescript/components/Layouts/CoreLayoutMain.tsx +16 -0
- package/app-typescript/components/Layouts/CoreLayoutOverlay.tsx +15 -0
- package/app-typescript/components/Layouts/CoreLayoutSlideInMenu.tsx +24 -0
- package/app-typescript/components/Layouts/CoreLayoutTopMenu.tsx +35 -0
- package/app-typescript/components/Layouts/HamburgerButton.tsx +41 -0
- package/app-typescript/components/Layouts/HeaderPanel.tsx +15 -0
- package/app-typescript/components/Layouts/Layout.tsx +33 -0
- package/app-typescript/components/Layouts/LayoutContainer.tsx +15 -0
- package/app-typescript/components/Layouts/LeftPanel.tsx +24 -0
- package/app-typescript/components/Layouts/MainMenu.tsx +101 -0
- package/app-typescript/components/Layouts/MainPanel.tsx +27 -0
- package/app-typescript/components/Layouts/NotificationPanel.tsx +109 -0
- package/app-typescript/components/Layouts/OverlayPanel.tsx +19 -0
- package/app-typescript/components/Layouts/PageLayout.tsx +51 -0
- package/app-typescript/components/Layouts/Panel.tsx +208 -0
- package/app-typescript/components/Layouts/RightPanel.tsx +16 -0
- package/app-typescript/components/Layouts/index.tsx +43 -0
- package/app-typescript/components/LeftMenu.tsx +129 -49
- package/app-typescript/components/ListItemLoader.tsx +30 -0
- package/app-typescript/components/Lists/BoxedList.tsx +169 -0
- package/app-typescript/components/Lists/ContentList.tsx +100 -0
- package/app-typescript/components/Lists/SimpleList.tsx +54 -0
- package/app-typescript/components/Lists/TableList.tsx +208 -0
- package/app-typescript/components/Lists/index.tsx +2 -0
- package/app-typescript/components/Menu.tsx +31 -7
- package/app-typescript/components/Modal.tsx +31 -18
- package/app-typescript/components/MultiSelect.tsx +112 -0
- package/app-typescript/components/NavButton.tsx +4 -0
- package/app-typescript/components/Navigation/BottomNav.tsx +82 -0
- package/app-typescript/components/Navigation/QuickNavBar.tsx +114 -0
- package/app-typescript/components/Navigation/SideBarMenu.tsx +68 -0
- package/app-typescript/components/Navigation/SideBarTabs.tsx +87 -0
- package/app-typescript/components/Navigation/index.tsx +3 -0
- package/app-typescript/components/RadioButtonGroup.tsx +113 -0
- package/app-typescript/components/RadioGroup.tsx +69 -0
- package/app-typescript/components/SearchBar.tsx +79 -0
- package/app-typescript/components/Select.tsx +22 -4
- package/app-typescript/components/SelectGrid.tsx +233 -0
- package/app-typescript/components/SidebarMenu.tsx +68 -0
- package/app-typescript/components/Skeleton.tsx +48 -0
- package/app-typescript/components/SlidingToolbar.tsx +8 -2
- package/app-typescript/components/Spinner.tsx +32 -0
- package/app-typescript/components/SubNav.tsx +25 -4
- package/app-typescript/components/Switch.tsx +34 -12
- package/app-typescript/components/SwitchGroup.tsx +2 -1
- package/app-typescript/components/Tag.tsx +31 -7
- package/app-typescript/components/Text/Heading.tsx +67 -0
- package/app-typescript/components/Text/Text.tsx +36 -0
- package/app-typescript/components/Text/Time.tsx +34 -0
- package/app-typescript/components/ThemeSelector.tsx +113 -0
- package/app-typescript/components/Togglebox.tsx +9 -7
- package/app-typescript/components/Tooltip.tsx +7 -5
- package/app-typescript/components/TreeSelect.tsx +330 -0
- package/app-typescript/components/WithSizeObserver.tsx +88 -0
- package/app-typescript/dist/components/Alert.d.ts +16 -0
- package/app-typescript/dist/components/Autocomplete.d.ts +48 -0
- package/app-typescript/dist/components/Avatar.d.ts +33 -0
- package/app-typescript/dist/components/Badge.d.ts +13 -0
- package/app-typescript/dist/components/Button.d.ts +23 -0
- package/app-typescript/dist/components/ButtonGroup.d.ts +12 -0
- package/app-typescript/dist/components/CheckButtonGroup.d.ts +11 -0
- package/app-typescript/dist/components/CheckGroup.d.ts +9 -0
- package/app-typescript/dist/components/Checkbox.d.ts +19 -0
- package/app-typescript/dist/components/CheckboxButton.d.ts +19 -0
- package/app-typescript/dist/components/DatePicker.d.ts +37 -0
- package/app-typescript/dist/components/Divider.d.ts +9 -0
- package/app-typescript/dist/components/DonutChart.d.ts +12 -0
- package/app-typescript/dist/components/Dropdown.d.ts +28 -0
- package/app-typescript/dist/components/DropdownFirst.d.ts +42 -0
- package/app-typescript/dist/components/EmptyState.d.ts +11 -0
- package/app-typescript/dist/components/FormLabel.d.ts +9 -0
- package/app-typescript/dist/components/Genie.d.ts +13 -0
- package/app-typescript/dist/components/GridItem.d.ts +69 -0
- package/app-typescript/dist/components/GridList.d.ts +14 -0
- package/app-typescript/dist/components/HeadingText.d.ts +10 -0
- package/app-typescript/dist/components/HelloWorld.d.ts +8 -0
- package/app-typescript/dist/components/Icon.d.ts +12 -0
- package/app-typescript/dist/components/IconButton.d.ts +12 -0
- package/app-typescript/dist/components/IconLabel.d.ts +11 -0
- package/app-typescript/dist/components/Input.d.ts +24 -0
- package/app-typescript/dist/components/Label.d.ts +15 -0
- package/app-typescript/dist/components/LeftMenu.d.ts +26 -0
- package/app-typescript/dist/components/Loader.d.ts +8 -0
- package/app-typescript/dist/components/NavButton.d.ts +15 -0
- package/app-typescript/dist/components/Popover.d.ts +13 -0
- package/app-typescript/dist/components/PropsList.d.ts +15 -0
- package/{react → app-typescript/dist}/components/Radio.d.ts +7 -8
- package/{react → app-typescript/dist}/components/RadioButton.d.ts +0 -0
- package/app-typescript/dist/components/Select.d.ts +29 -0
- package/app-typescript/dist/components/SelectWithTemplate.d.ts +32 -0
- package/app-typescript/dist/components/SlidingToolbar.d.ts +8 -0
- package/app-typescript/dist/components/StrechBar.d.ts +4 -0
- package/app-typescript/dist/components/SubNav.d.ts +10 -0
- package/app-typescript/dist/components/Switch.d.ts +12 -0
- package/app-typescript/dist/components/TabCustom.d.ts +25 -0
- package/app-typescript/dist/components/TabList.d.ts +22 -0
- package/app-typescript/dist/components/Tag.d.ts +9 -0
- package/app-typescript/dist/components/TagInput.d.ts +7 -0
- package/app-typescript/dist/components/TagInputTest.d.ts +18 -0
- package/app-typescript/dist/components/TimePicker.d.ts +11 -0
- package/app-typescript/dist/components/Tooltip.d.ts +11 -0
- package/app-typescript/dist/components/_Positioner.d.ts +27 -0
- package/app-typescript/dist/index.d.ts +56 -0
- package/app-typescript/helpers.tsx +3 -0
- package/app-typescript/index.ts +25 -3
- package/dist/SD-logo.svg +52 -0
- package/dist/avatar-2.jpg +0 -0
- package/dist/avatar-3.jpg +0 -0
- package/dist/avatar-4.jpg +0 -0
- package/dist/avatar-5.jpg +0 -0
- package/dist/avatar-6.jpg +0 -0
- package/dist/components/basic-grid.html +1 -1
- package/dist/components/checkbox.html +1 -1
- package/dist/components/modals.html +1 -0
- package/dist/dots.svg +3 -0
- package/dist/examples.bundle.css +8628 -1602
- package/dist/examples.bundle.js +73031 -48307
- package/dist/playgrounds/accessible-theme-test.html +1 -1
- package/dist/playgrounds/boxed-list.html +1 -1
- package/dist/playgrounds/cards.html +9 -4
- package/dist/playgrounds/editor-3-test.html +15 -0
- package/dist/playgrounds/form-layout.html +9 -7
- package/dist/playgrounds/layout-test-2.html +1 -1
- package/dist/playgrounds/list-item-test.html +1 -1
- package/dist/playgrounds/master-desk.html +2 -4
- package/dist/playgrounds/media-carousel.html +1 -1
- package/dist/playgrounds/photo-desk.html +1 -1
- package/dist/playgrounds/planning.html +1 -1
- package/dist/playgrounds/publish.html +1 -1
- package/dist/playgrounds/publisher-content-analytics.html +1 -1
- package/dist/playgrounds/publisher-content-list-automatic.html +1 -1
- package/dist/playgrounds/publisher-content-list-manual.html +1 -1
- package/dist/playgrounds/publisher-content-lists.html +1 -1
- package/dist/playgrounds/publisher-dashboard.html +1 -1
- package/dist/playgrounds/publisher-output-control.html +1 -1
- package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +145 -0
- package/dist/playgrounds/react-playgrounds/EditorTest.tsx +459 -0
- package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +4 -4
- package/dist/playgrounds/react-playgrounds/Index.tsx +7 -1
- package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +161 -0
- package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +635 -0
- package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
- package/dist/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
- package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +10 -10
- package/dist/playgrounds/react-playgrounds/TestGround.tsx +276 -23
- package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +12 -79
- package/dist/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
- package/dist/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
- package/dist/playgrounds/react-playgrounds/components/Index.tsx +6 -1
- package/dist/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
- package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
- package/dist/playgrounds/swimlane-view.html +1 -1
- package/dist/playgrounds/toasts.html +1 -1
- package/dist/playgrounds/video-editor.html +1 -1
- package/dist/react/Alerts.tsx +91 -18
- package/dist/react/Avatar.tsx +314 -127
- package/dist/react/BoxedList.tsx +362 -0
- package/dist/react/ButtonGroups.tsx +66 -65
- package/dist/react/Buttons.tsx +65 -113
- package/dist/react/Carousel.tsx +2 -3
- package/dist/react/Checkboxs.tsx +66 -25
- package/dist/react/Container.tsx +143 -0
- package/dist/react/ContentList.tsx +280 -0
- package/dist/react/CreateButton.tsx +71 -0
- package/dist/react/DatePicker.tsx +10 -5
- package/dist/react/DropZone.tsx +111 -0
- package/dist/react/Heading.tsx +106 -0
- package/dist/react/IconButtons.tsx +51 -21
- package/dist/react/IconFont.tsx +7 -6
- package/dist/react/IconLabels.tsx +24 -2
- package/dist/react/IconPicker.tsx +65 -0
- package/dist/react/Index.tsx +120 -19
- package/dist/react/Inputs.tsx +142 -4
- package/dist/react/LeftNavigations.tsx +161 -9
- package/dist/react/ListItems.tsx +34 -0
- package/dist/react/Modal.tsx +8 -7
- package/dist/react/MultiSelect.tsx +198 -0
- package/dist/react/NavButtons.tsx +4 -4
- package/dist/react/Panel.tsx +366 -0
- package/dist/react/QuickNavigationBar.tsx +142 -0
- package/dist/react/RadioGroup.tsx +351 -0
- package/dist/react/SelectGrid.tsx +121 -0
- package/dist/react/Selects.tsx +57 -0
- package/dist/react/SimpleList.tsx +148 -0
- package/dist/react/SubNav.tsx +65 -18
- package/dist/react/TableList.tsx +268 -0
- package/dist/react/Tags.tsx +57 -5
- package/dist/react/Text.tsx +134 -0
- package/dist/react/TreeSelect.tsx +178 -0
- package/dist/react/WithSizeObserver.tsx +44 -0
- package/dist/react.html +4 -0
- package/dist/sd_big-icons.eot +0 -0
- package/dist/sd_big-icons.svg +55 -53
- package/dist/sd_big-icons.ttf +0 -0
- package/dist/sd_big-icons.woff +0 -0
- package/dist/sd_icons.eot +0 -0
- package/dist/sd_icons.svg +1 -0
- package/dist/sd_icons.ttf +0 -0
- package/dist/sd_icons.woff +0 -0
- package/dist/superdesk-ui.bundle.css +54140 -25145
- package/dist/superdesk-ui.bundle.js +58228 -51200
- package/dist/vendor.bundle.js +25688 -25666
- package/examples/css/docs-page.css +99 -29
- package/examples/img/avatar-2.jpg +0 -0
- package/examples/img/avatar-3.jpg +0 -0
- package/examples/img/avatar-4.jpg +0 -0
- package/examples/img/avatar-5.jpg +0 -0
- package/examples/img/avatar-6.jpg +0 -0
- package/examples/index.js +28 -0
- package/examples/pages/components/basic-grid.html +1 -1
- package/examples/pages/components/checkbox.html +1 -1
- package/examples/pages/components/modals.html +1 -0
- package/examples/pages/playgrounds/accessible-theme-test.html +1 -1
- package/examples/pages/playgrounds/boxed-list.html +1 -1
- package/examples/pages/playgrounds/cards.html +9 -4
- package/examples/pages/playgrounds/editor-3-test.html +15 -0
- package/examples/pages/playgrounds/form-layout.html +9 -7
- package/examples/pages/playgrounds/layout-test-2.html +1 -1
- package/examples/pages/playgrounds/list-item-test.html +1 -1
- package/examples/pages/playgrounds/master-desk.html +2 -4
- package/examples/pages/playgrounds/media-carousel.html +1 -1
- package/examples/pages/playgrounds/photo-desk.html +1 -1
- package/examples/pages/playgrounds/planning.html +1 -1
- package/examples/pages/playgrounds/publish.html +1 -1
- package/examples/pages/playgrounds/publisher-content-analytics.html +1 -1
- package/examples/pages/playgrounds/publisher-content-list-automatic.html +1 -1
- package/examples/pages/playgrounds/publisher-content-list-manual.html +1 -1
- package/examples/pages/playgrounds/publisher-content-lists.html +1 -1
- package/examples/pages/playgrounds/publisher-dashboard.html +1 -1
- package/examples/pages/playgrounds/publisher-output-control.html +1 -1
- package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +145 -0
- package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +459 -0
- package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +4 -4
- package/examples/pages/playgrounds/react-playgrounds/Index.tsx +7 -1
- package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +161 -0
- package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +635 -0
- package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
- package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
- package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +10 -10
- package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +276 -23
- package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +12 -79
- package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
- package/examples/pages/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
- package/examples/pages/playgrounds/react-playgrounds/components/Index.tsx +6 -1
- package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
- package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
- package/examples/pages/playgrounds/swimlane-view.html +1 -1
- package/examples/pages/playgrounds/toasts.html +1 -1
- package/examples/pages/playgrounds/video-editor.html +1 -1
- package/examples/pages/react/Alerts.tsx +91 -18
- package/examples/pages/react/Avatar.tsx +314 -127
- package/examples/pages/react/BoxedList.tsx +362 -0
- package/examples/pages/react/ButtonGroups.tsx +66 -65
- package/examples/pages/react/Buttons.tsx +65 -113
- package/examples/pages/react/Carousel.tsx +2 -3
- package/examples/pages/react/Checkboxs.tsx +66 -25
- package/examples/pages/react/Container.tsx +143 -0
- package/examples/pages/react/ContentList.tsx +280 -0
- package/examples/pages/react/CreateButton.tsx +71 -0
- package/examples/pages/react/DatePicker.tsx +10 -5
- package/examples/pages/react/DropZone.tsx +111 -0
- package/examples/pages/react/Heading.tsx +106 -0
- package/examples/pages/react/IconButtons.tsx +51 -21
- package/examples/pages/react/IconFont.tsx +7 -6
- package/examples/pages/react/IconLabels.tsx +24 -2
- package/examples/pages/react/IconPicker.tsx +65 -0
- package/examples/pages/react/Index.tsx +120 -19
- package/examples/pages/react/Inputs.tsx +142 -4
- package/examples/pages/react/LeftNavigations.tsx +161 -9
- package/examples/pages/react/ListItems.tsx +34 -0
- package/examples/pages/react/Modal.tsx +8 -7
- package/examples/pages/react/MultiSelect.tsx +198 -0
- package/examples/pages/react/NavButtons.tsx +4 -4
- package/examples/pages/react/Panel.tsx +366 -0
- package/examples/pages/react/QuickNavigationBar.tsx +142 -0
- package/examples/pages/react/RadioGroup.tsx +351 -0
- package/examples/pages/react/SelectGrid.tsx +121 -0
- package/examples/pages/react/Selects.tsx +57 -0
- package/examples/pages/react/SimpleList.tsx +148 -0
- package/examples/pages/react/SubNav.tsx +65 -18
- package/examples/pages/react/TableList.tsx +268 -0
- package/examples/pages/react/Tags.tsx +57 -5
- package/examples/pages/react/Text.tsx +134 -0
- package/examples/pages/react/TreeSelect.tsx +178 -0
- package/examples/pages/react/WithSizeObserver.tsx +44 -0
- package/examples/pages/react.html +4 -0
- package/package.json +12 -7
- package/patches/@superdesk+primereact+5.0.2-4.patch +44 -0
- package/react/components/Alert.d.ts +3 -0
- package/react/components/Alert.js +17 -7
- package/react/components/Autocomplete.js +16 -12
- package/react/components/Avatar.d.ts +9 -0
- package/react/components/Avatar.js +24 -4
- package/react/components/Badge.js +7 -5
- package/react/components/Button.d.ts +2 -0
- package/react/components/Button.js +12 -8
- package/react/components/ButtonGroup.d.ts +3 -2
- package/react/components/ButtonGroup.js +9 -7
- package/react/components/Carousel.js +5 -3
- package/react/components/CheckButtonGroup.d.ts +3 -1
- package/react/components/CheckButtonGroup.js +14 -6
- package/react/components/CheckGroup.d.ts +1 -0
- package/react/components/CheckGroup.js +6 -4
- package/react/components/Checkbox.d.ts +2 -1
- package/react/components/Checkbox.js +7 -5
- package/react/components/CheckboxButton.d.ts +1 -0
- package/react/components/CheckboxButton.js +8 -6
- package/react/components/ContentDivider.js +8 -6
- package/react/components/CreateButton.d.ts +17 -0
- package/react/components/CreateButton.js +68 -0
- package/react/components/DatePicker.d.ts +10 -0
- package/react/components/DatePicker.js +61 -31
- package/react/components/Divider.js +6 -4
- package/react/components/DonutChart.d.ts +1 -1
- package/react/components/DonutChart.js +24 -6
- package/react/components/DropZone.d.ts +25 -0
- package/react/components/DropZone.js +95 -0
- package/react/components/Dropdown.d.ts +1 -0
- package/react/components/Dropdown.js +10 -9
- package/react/components/DropdownFirst.js +18 -11
- package/react/components/EmptyState.js +7 -5
- package/react/components/Form/FormGroup.d.ts +13 -0
- package/react/components/Form/FormGroup.js +63 -0
- package/react/components/Form/FormItem.d.ts +9 -0
- package/react/components/Form/FormItem.js +56 -0
- package/react/components/Form/FormLabel.d.ts +10 -0
- package/react/components/Form/FormLabel.js +56 -0
- package/react/components/Form/FormRow.d.ts +17 -0
- package/react/components/Form/FormRow.js +64 -0
- package/react/components/Form/FormText.d.ts +8 -0
- package/react/components/Form/FormText.js +49 -0
- package/react/components/Form/index.d.ts +5 -0
- package/react/components/Form/index.js +13 -0
- package/react/components/FormLabel.js +5 -3
- package/react/components/GridItem.js +9 -7
- package/react/components/GridList.js +8 -6
- package/react/components/HeadingText.js +4 -2
- package/react/components/HelloWorld.js +4 -2
- package/react/components/Icon.d.ts +2 -1
- package/react/components/Icon.js +9 -6
- package/react/components/IconButton.d.ts +9 -2
- package/react/components/IconButton.js +17 -7
- package/react/components/IconLabel.d.ts +2 -0
- package/react/components/IconLabel.js +12 -7
- package/react/components/IconPicker.d.ts +24 -0
- package/react/components/IconPicker.js +287 -0
- package/react/components/Input.d.ts +25 -3
- package/react/components/Input.js +36 -12
- package/react/components/Label.js +10 -8
- package/react/components/Layouts/AuthorinInnerSideBar.d.ts +8 -0
- package/react/components/Layouts/AuthorinInnerSideBar.js +49 -0
- package/react/components/Layouts/AuthoringContainer.d.ts +11 -0
- package/react/components/Layouts/AuthoringContainer.js +60 -0
- package/react/components/Layouts/AuthoringFrame.d.ts +18 -0
- package/react/components/Layouts/AuthoringFrame.js +58 -0
- package/react/components/Layouts/AuthoringFrameContainer.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameContainer.js +49 -0
- package/react/components/Layouts/AuthoringFrameLeftBar.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameLeftBar.js +49 -0
- package/react/components/Layouts/AuthoringFrameMain.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameMain.js +49 -0
- package/react/components/Layouts/AuthoringFrameNavBar.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameNavBar.js +49 -0
- package/react/components/Layouts/AuthoringFrameOverlay.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameOverlay.js +49 -0
- package/react/components/Layouts/AuthoringFrameRightBar.d.ts +8 -0
- package/react/components/Layouts/AuthoringFrameRightBar.js +49 -0
- package/react/components/Layouts/AuthoringFrameSidePanel.d.ts +10 -0
- package/react/components/Layouts/AuthoringFrameSidePanel.js +58 -0
- package/react/components/Layouts/AuthoringFrameSidePanelOverlay.d.ts +9 -0
- package/react/components/Layouts/AuthoringFrameSidePanelOverlay.js +58 -0
- package/react/components/Layouts/AuthoringInnerBody.d.ts +8 -0
- package/react/components/Layouts/AuthoringInnerBody.js +49 -0
- package/react/components/Layouts/AuthoringInnerHeader.d.ts +14 -0
- package/react/components/Layouts/AuthoringInnerHeader.js +68 -0
- package/react/components/Layouts/AuthoringMain.d.ts +14 -0
- package/react/components/Layouts/AuthoringMain.js +55 -0
- package/react/components/Layouts/AuthoringMainContainer.d.ts +8 -0
- package/react/components/Layouts/AuthoringMainContainer.js +49 -0
- package/react/components/Layouts/AuthoringMainContent.d.ts +8 -0
- package/react/components/Layouts/AuthoringMainContent.js +49 -0
- package/react/components/Layouts/AuthoringMainToolBar.d.ts +9 -0
- package/react/components/Layouts/AuthoringMainToolBar.js +56 -0
- package/react/components/Layouts/BottomBarAction.d.ts +12 -0
- package/react/components/Layouts/BottomBarAction.js +59 -0
- package/react/components/Layouts/Container.d.ts +14 -0
- package/react/components/Layouts/Container.js +62 -0
- package/react/components/Layouts/ContentSplitter.d.ts +10 -0
- package/react/components/Layouts/ContentSplitter.js +58 -0
- package/react/components/Layouts/CoreLayout.d.ts +19 -0
- package/react/components/Layouts/CoreLayout.js +55 -0
- package/react/components/Layouts/CoreLayoutContainer.d.ts +9 -0
- package/react/components/Layouts/CoreLayoutContainer.js +49 -0
- package/react/components/Layouts/CoreLayoutFooter.d.ts +8 -0
- package/react/components/Layouts/CoreLayoutFooter.js +49 -0
- package/react/components/Layouts/CoreLayoutMain.d.ts +9 -0
- package/react/components/Layouts/CoreLayoutMain.js +49 -0
- package/react/components/Layouts/CoreLayoutOverlay.d.ts +8 -0
- package/react/components/Layouts/CoreLayoutOverlay.js +49 -0
- package/react/components/Layouts/CoreLayoutSlideInMenu.d.ts +11 -0
- package/react/components/Layouts/CoreLayoutSlideInMenu.js +58 -0
- package/react/components/Layouts/CoreLayoutTopMenu.d.ts +14 -0
- package/react/components/Layouts/CoreLayoutTopMenu.js +54 -0
- package/react/components/Layouts/HamburgerButton.d.ts +14 -0
- package/react/components/Layouts/HamburgerButton.js +63 -0
- package/react/components/Layouts/HeaderPanel.d.ts +8 -0
- package/react/components/Layouts/HeaderPanel.js +49 -0
- package/react/components/Layouts/Layout.d.ts +8 -0
- package/react/components/Layouts/Layout.js +36 -0
- package/react/components/Layouts/LayoutContainer.d.ts +8 -0
- package/react/components/Layouts/LayoutContainer.js +49 -0
- package/react/components/Layouts/LeftPanel.d.ts +9 -0
- package/react/components/Layouts/LeftPanel.js +56 -0
- package/react/components/Layouts/MainMenu.d.ts +41 -0
- package/react/components/Layouts/MainMenu.js +103 -0
- package/react/components/Layouts/MainPanel.d.ts +11 -0
- package/react/components/Layouts/MainPanel.js +59 -0
- package/react/components/Layouts/NotificationPanel.d.ts +45 -0
- package/react/components/Layouts/NotificationPanel.js +110 -0
- package/react/components/Layouts/OverlayPanel.d.ts +8 -0
- package/react/components/Layouts/OverlayPanel.js +51 -0
- package/react/components/Layouts/PageLayout.d.ts +16 -0
- package/react/components/Layouts/PageLayout.js +66 -0
- package/react/components/Layouts/Panel.d.ts +66 -0
- package/react/components/Layouts/Panel.js +168 -0
- package/react/components/Layouts/RightPanel.d.ts +9 -0
- package/react/components/Layouts/RightPanel.js +49 -0
- package/react/components/Layouts/index.d.ts +39 -0
- package/react/components/Layouts/index.js +86 -0
- package/react/components/LeftMenu.d.ts +10 -3
- package/react/components/LeftMenu.js +64 -18
- package/react/components/ListItemLoader.d.ts +4 -0
- package/react/components/ListItemLoader.js +64 -0
- package/react/components/Lists/BoxedList.d.ts +44 -0
- package/react/components/Lists/BoxedList.js +160 -0
- package/react/components/Lists/SimpleList.d.ts +21 -0
- package/react/components/Lists/SimpleList.js +80 -0
- package/react/components/Lists/index.d.ts +2 -0
- package/react/components/Lists/index.js +10 -0
- package/react/components/Loader.js +4 -2
- package/react/components/Menu.d.ts +2 -1
- package/react/components/Menu.js +48 -12
- package/react/components/Modal.d.ts +4 -1
- package/react/components/Modal.js +35 -6
- package/react/components/NavButton.d.ts +1 -0
- package/react/components/NavButton.js +9 -4
- package/react/components/Navigation/BottomNav.d.ts +23 -0
- package/react/components/Navigation/BottomNav.js +88 -0
- package/react/components/Navigation/QuickNavBar.d.ts +24 -0
- package/react/components/Navigation/QuickNavBar.js +117 -0
- package/react/components/Navigation/SideBarMenu.d.ts +21 -0
- package/react/components/Navigation/SideBarMenu.js +79 -0
- package/react/components/Navigation/SideBarTabs.d.ts +23 -0
- package/react/components/Navigation/SideBarTabs.js +88 -0
- package/react/components/Navigation/index.d.ts +3 -0
- package/react/components/Navigation/index.js +9 -0
- package/react/components/Popover.js +4 -2
- package/react/components/PropsList.js +4 -2
- package/react/components/RadioButtonGroup.d.ts +29 -0
- package/react/components/RadioButtonGroup.js +91 -0
- package/react/components/RadioGroup.d.ts +24 -0
- package/react/components/{Radio.js → RadioGroup.js} +20 -14
- package/react/components/SearchBar.d.ts +23 -0
- package/react/components/SearchBar.js +89 -0
- package/react/components/Select.d.ts +8 -1
- package/react/components/Select.js +22 -11
- package/react/components/SelectGrid.d.ts +45 -0
- package/react/components/SelectGrid.js +200 -0
- package/react/components/SelectWithTemplate.js +4 -2
- package/react/components/Skeleton.d.ts +30 -0
- package/react/components/Skeleton.js +76 -0
- package/react/components/SlidingToolbar.d.ts +1 -1
- package/react/components/SlidingToolbar.js +15 -3
- package/react/components/Spinner.d.ts +11 -0
- package/react/components/Spinner.js +71 -0
- package/react/components/StrechBar.js +4 -2
- package/react/components/SubNav.d.ts +8 -1
- package/react/components/SubNav.js +28 -8
- package/react/components/Switch.d.ts +4 -1
- package/react/components/Switch.js +25 -11
- package/react/components/SwitchGroup.d.ts +1 -0
- package/react/components/SwitchGroup.js +6 -4
- package/react/components/TabCustom.d.ts +0 -1
- package/react/components/TabCustom.js +11 -7
- package/react/components/TabList.js +6 -4
- package/react/components/Tag.d.ts +3 -2
- package/react/components/Tag.js +21 -9
- package/react/components/TagInput.d.ts +0 -1
- package/react/components/TagInput.js +7 -6
- package/react/components/TagInputTest.js +13 -9
- package/react/components/Text/Heading.d.ts +15 -0
- package/react/components/Text/Heading.js +79 -0
- package/react/components/Text/Text.d.ts +15 -0
- package/react/components/Text/Text.js +67 -0
- package/react/components/Text/Time.d.ts +15 -0
- package/react/components/Text/Time.js +65 -0
- package/react/components/ThemeSelector.d.ts +21 -0
- package/react/components/ThemeSelector.js +114 -0
- package/react/components/TimePicker.js +4 -2
- package/react/components/Toast.js +1 -1
- package/react/components/ToastMessage.js +6 -5
- package/react/components/ToastText.js +1 -1
- package/react/components/ToastWrapper.d.ts +2 -2
- package/react/components/ToastWrapper.js +14 -10
- package/react/components/Togglebox.d.ts +2 -1
- package/react/components/Togglebox.js +42 -14
- package/react/components/Tooltip.d.ts +1 -0
- package/react/components/Tooltip.js +14 -10
- package/react/components/WithSizeObserver.d.ts +25 -0
- package/react/components/WithSizeObserver.js +95 -0
- package/react/components/_Positioner.js +4 -2
- package/react/helpers.d.ts +1 -0
- package/react/helpers.js +7 -0
- package/react/index.d.ts +22 -3
- package/react/index.js +53 -4
- package/yarn-error.log +111 -0
- package/app/styles/variables/_design-tokens-general.scss +0 -136
- package/app-typescript/components/Radio.tsx +0 -57
- package/app-typescript/components/RadioButton.tsx +0 -57
- package/dist/react/Radios.tsx +0 -391
- package/examples/pages/react/Radios.tsx +0 -391
- package/react/components/RadioButton.js +0 -65
@@ -0,0 +1,142 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import * as Markup from '../../js/react';
|
3
|
+
import { Button, ButtonGroup, Container, Heading, LeftMenu, Prop, PropsList, QuickNavBar, SimpleList, SimpleListItem } from '../../../app-typescript';
|
4
|
+
|
5
|
+
export default class QuickNavBarDoc extends React.Component<{}> {
|
6
|
+
render() {
|
7
|
+
|
8
|
+
return (
|
9
|
+
<section className="docs-page__container">
|
10
|
+
<h2 className="docs-page__h2">Quick navigation bar</h2>
|
11
|
+
|
12
|
+
<Markup.ReactMarkupCodePreview>{`
|
13
|
+
<QuickNavBar
|
14
|
+
items={[
|
15
|
+
{ icon: 'heading-1', onClick:()=> false, id: 'section1' },
|
16
|
+
{ icon: 'align-left', onClick:()=> false, id: 'section2' },
|
17
|
+
{ icon: 'picture', onClick:()=> false, id: 'section3' },
|
18
|
+
{ icon: 'attachment-large', onClick:()=> false, id: 'section4' }]} />
|
19
|
+
`}
|
20
|
+
</Markup.ReactMarkupCodePreview>
|
21
|
+
<p className="docs-page__paragraph">If you want the default variant, follow the instructions in the description above.</p>
|
22
|
+
<p className="docs-page__paragraph">The component also supports the scrollspy variant. It is necessary to add ID value to items and add the ID value of the scrollable container in the <code>scrollSpy</code> attribute.</p>
|
23
|
+
<Markup.ReactMarkup>
|
24
|
+
<Markup.ReactMarkupPreview>
|
25
|
+
<div className='docs-page__content-row'>
|
26
|
+
<div className='docs-page__grid-page-example'>
|
27
|
+
<div className='docs-page__grid-page-example__top'>
|
28
|
+
<div className="sd-top-menu">
|
29
|
+
<a className="sd-top-menu__collapse-nav"><i className="icon-collapse icon--white"></i></a>
|
30
|
+
<p className="sd-top-menu__header">Top menu</p>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<QuickNavBar
|
34
|
+
scrollSpy='#scrollContainer'
|
35
|
+
offset={-300}
|
36
|
+
items={[
|
37
|
+
{ icon: 'heading-1', tooltip: 'Headline', onClick:()=> false, id: 'section1' },
|
38
|
+
{ icon: 'align-left', tooltip: 'Body', onClick:()=> false, id: 'section2' },
|
39
|
+
{ icon: 'picture', tooltip: 'Media', onClick:()=> false, id: 'section3' },
|
40
|
+
{ icon: 'attachment-large', tooltip: 'Attachments', onClick:()=> false, id: 'section4' }]} />
|
41
|
+
<div className='docs-page__grid-page-example__main sd-padding--4' id='scrollContainer' style={{height:600}}>
|
42
|
+
<SimpleList density='comfortable'>
|
43
|
+
<SimpleListItem stacked={true} id='section1' >
|
44
|
+
<Heading type='h2' className='sd-padding--2'>Section 1</Heading>
|
45
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
46
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
47
|
+
</Container>
|
48
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
49
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
50
|
+
</Container>
|
51
|
+
<Container gap="large" display='flex'>
|
52
|
+
<ButtonGroup align='end'>
|
53
|
+
<Button text="button" type="primary" onClick={()=> false} />
|
54
|
+
<Button text="button" type="highlight" onClick={()=> false} />
|
55
|
+
</ButtonGroup>
|
56
|
+
</Container>
|
57
|
+
</SimpleListItem >
|
58
|
+
<SimpleListItem stacked={true} id='section2' >
|
59
|
+
<Heading type='h2' className='sd-padding--2'>Section 2</Heading>
|
60
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
61
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
62
|
+
</Container>
|
63
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
64
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
65
|
+
</Container>
|
66
|
+
<Container gap="large" display='flex'>
|
67
|
+
<ButtonGroup align='end'>
|
68
|
+
<Button text="button" type="primary" onClick={()=> false} />
|
69
|
+
<Button text="button" type="highlight" onClick={()=> false} />
|
70
|
+
</ButtonGroup>
|
71
|
+
</Container>
|
72
|
+
</SimpleListItem>
|
73
|
+
<SimpleListItem stacked={true} id='section3' >
|
74
|
+
<Heading type='h2' className='sd-padding--2'>Section 3</Heading>
|
75
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
76
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
77
|
+
</Container>
|
78
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
79
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
80
|
+
</Container>
|
81
|
+
<Container gap="large" display='flex'>
|
82
|
+
<ButtonGroup align='end'>
|
83
|
+
<Button text="button" type="primary" onClick={()=> false} />
|
84
|
+
<Button text="button" type="highlight" onClick={()=> false} />
|
85
|
+
</ButtonGroup>
|
86
|
+
</Container>
|
87
|
+
</SimpleListItem>
|
88
|
+
<SimpleListItem stacked={true} id='section4' >
|
89
|
+
<Heading type='h2' className='sd-padding--2'>Section 4</Heading>
|
90
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
91
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
92
|
+
</Container>
|
93
|
+
<Container direction='column' className='sd-radius--medium sd-panel-bg--000 sd-shadow--z2 sd-padding--2 sd-margin-b--3'>
|
94
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus ab porro nihil facilis beatae amet labore laudantium repellat enim non sunt aspernatur magni consequuntur tempore, aperiam qui doloremque perspiciatis tenetur.</p>
|
95
|
+
</Container>
|
96
|
+
</SimpleListItem>
|
97
|
+
<Container gap="large" display='flex'>
|
98
|
+
<ButtonGroup align='end'>
|
99
|
+
<Button text="button" type="primary" onClick={()=> false} />
|
100
|
+
<Button text="button" type="highlight" onClick={()=> false} />
|
101
|
+
</ButtonGroup>
|
102
|
+
</Container>
|
103
|
+
</SimpleList>
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
</Markup.ReactMarkupPreview>
|
108
|
+
<Markup.ReactMarkupCode>
|
109
|
+
{`
|
110
|
+
<QuickNavBar
|
111
|
+
scrollSpy='#scrollContainer'
|
112
|
+
offset={-300}
|
113
|
+
items={[
|
114
|
+
{ icon: 'heading-1', tooltip: 'Headline', onClick:()=> false, id: 'section1' },
|
115
|
+
{ icon: 'align-left', tooltip: 'Body', onClick:()=> false, id: 'section2' },
|
116
|
+
{ icon: 'picture', tooltip: 'Media', onClick:()=> false, id: 'section3' },
|
117
|
+
{ icon: 'attachment-large', tooltip: 'Attachments', onClick:()=> false, id: 'section4' }]}
|
118
|
+
/>
|
119
|
+
|
120
|
+
<div id='#scrollContainer'>...</div>
|
121
|
+
`}
|
122
|
+
</Markup.ReactMarkupCode>
|
123
|
+
</Markup.ReactMarkup>
|
124
|
+
|
125
|
+
<h3 className="docs-page__h3">Props</h3>
|
126
|
+
<PropsList>
|
127
|
+
<Prop name='items' isRequired={true} type='Array<Items>' default='/' description='Array of items'/>
|
128
|
+
<Prop name='scrollSpy' isRequired={false} type='string' default='/' description='Name of the element of scrollable container.'/>
|
129
|
+
<Prop name='offset' isRequired={false} type='Array<menuitem>' default='/' description='Offset value that adjusts to determine the elements are in the viewport.'/>
|
130
|
+
</PropsList>
|
131
|
+
<p className='docs-page__paragraph'>Items:</p>
|
132
|
+
<PropsList>
|
133
|
+
<Prop name='icon' isRequired={true} type='string' default='/' description='Icon class name without the icon- part.'/>
|
134
|
+
<Prop name='tooltip' isRequired={false} type='string' default='/' description='Defines the possition of the ToolTip.'/>
|
135
|
+
<Prop name='id' isRequired={false} type='string' default='/' description='Item id value. It is necessary for scrollspy.'/>
|
136
|
+
<Prop name='onClick' isRequired={false} type='function' default='/' description='Callback fired when a button is pressed.'/>
|
137
|
+
</PropsList>
|
138
|
+
|
139
|
+
</section>
|
140
|
+
)
|
141
|
+
}
|
142
|
+
}
|
@@ -0,0 +1,351 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import * as Markup from '../../js/react';
|
3
|
+
import * as Components from '../playgrounds/react-playgrounds/components/Index';
|
4
|
+
|
5
|
+
import { RadioGroup, RadioButtonGroup, CheckGroup, CheckButtonGroup, Alert, Prop, PropsList } from '../../../app-typescript';
|
6
|
+
|
7
|
+
interface IState {
|
8
|
+
value1?: string;
|
9
|
+
value2?: string;
|
10
|
+
value3?: string;
|
11
|
+
value4?: string;
|
12
|
+
value5?: string;
|
13
|
+
value6?: string;
|
14
|
+
value7?: string;
|
15
|
+
value8?: string;
|
16
|
+
}
|
17
|
+
|
18
|
+
export default class RadioGroupDoc extends React.Component<{}, IState> {
|
19
|
+
constructor(props) {
|
20
|
+
super(props);
|
21
|
+
|
22
|
+
this.state = {
|
23
|
+
value1: undefined,
|
24
|
+
value2: undefined,
|
25
|
+
value3: undefined,
|
26
|
+
value4: undefined,
|
27
|
+
value5: undefined,
|
28
|
+
value6: undefined,
|
29
|
+
value7: undefined,
|
30
|
+
value8: undefined,
|
31
|
+
};
|
32
|
+
}
|
33
|
+
render() {
|
34
|
+
return (
|
35
|
+
<section className="docs-page__container">
|
36
|
+
<h2 className="docs-page__h2">RadioGroup</h2>
|
37
|
+
<p className="docs-page__paragraph"></p>
|
38
|
+
<Markup.ReactMarkupCodePreview>{`
|
39
|
+
<RadioGroup options={[
|
40
|
+
{value:'test1', label:'Default label'},
|
41
|
+
{value:'test2', label:'Default label'},
|
42
|
+
]} value={value1} />
|
43
|
+
`}
|
44
|
+
</Markup.ReactMarkupCodePreview>
|
45
|
+
<h3 className="docs-page__h3">Basic RadioGroup</h3>
|
46
|
+
<p className="docs-page__paragraph">The label of the RadioGroup is by default always on the right. Although it's not in line with Superdesk design standards the label can also be placed to the left, by addind the prop <code>labelSide='start'</code>.</p>
|
47
|
+
<Markup.ReactMarkup>
|
48
|
+
<Markup.ReactMarkupPreview>
|
49
|
+
<p className="docs-page__paragraph">// Horizontal - labels on the end/right (default)</p>
|
50
|
+
<div className='form__group'>
|
51
|
+
<RadioGroup options={[
|
52
|
+
{value:'test1', label:'Default label'},
|
53
|
+
{value:'test2', label:'Default label'},
|
54
|
+
{value:'test3', label:'Default label'},
|
55
|
+
{value:'test4', label:'Disabled state', disabled: true}
|
56
|
+
]}
|
57
|
+
value={this.state.value1}
|
58
|
+
onChange={(value) => this.setState(() => ({ value1: value }))} />
|
59
|
+
</div>
|
60
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Horizontal - labels on the start/left</p>
|
61
|
+
<p className="docs-page__paragraph--small">This option should be avoided in general use.</p>
|
62
|
+
<div className='form__group'>
|
63
|
+
<RadioGroup options={[
|
64
|
+
{value:'test5', label:'Label on the left'},
|
65
|
+
{value:'test6', label:'Label on the left'},
|
66
|
+
{value:'test7', label:'Label on the left'},
|
67
|
+
]}
|
68
|
+
value={this.state.value2}
|
69
|
+
labelSide='start'
|
70
|
+
onChange={(value) => this.setState(() => ({ value2: value }))} />
|
71
|
+
</div>
|
72
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Vertical RadioGroup</p>
|
73
|
+
<div className='form__group'>
|
74
|
+
<RadioGroup options={[
|
75
|
+
{value:'test105', label:'Radio vertical one'},
|
76
|
+
{value:'test106', label:'Radio vertical two'},
|
77
|
+
{value:'test107', label:'Radio vertical three'},
|
78
|
+
]}
|
79
|
+
value={this.state.value2}
|
80
|
+
orientation='vertical'
|
81
|
+
onChange={(value) => this.setState(() => ({ value2: value }))} />
|
82
|
+
</div>
|
83
|
+
</Markup.ReactMarkupPreview>
|
84
|
+
<Markup.ReactMarkupCode>{`
|
85
|
+
// Label on the right (default)
|
86
|
+
<RadioGroup options={[
|
87
|
+
{value:'test1', label:'Default label'},
|
88
|
+
{value:'test2', label:'Default label'},
|
89
|
+
{value:'test3', label:'Default label'},
|
90
|
+
{value:'test4', label:'Disabled state', disabled: true}
|
91
|
+
]}
|
92
|
+
value={this.state.value1}
|
93
|
+
onChange={(value) => this.setState(() => ({ value1: value }))} />
|
94
|
+
|
95
|
+
// Labels on the left
|
96
|
+
<RadioGroup options={[
|
97
|
+
{value:'test5', label:'Label on the left'},
|
98
|
+
{value:'test6', label:'Label on the left'},
|
99
|
+
{value:'test7', label:'Label on the left'},
|
100
|
+
]}
|
101
|
+
value={this.state.value2}
|
102
|
+
labelSide='start' onChange={(value) => this.setState(() => ({ value2: value }))} />
|
103
|
+
|
104
|
+
// Vertical RadioGroup
|
105
|
+
<RadioGroup options={[
|
106
|
+
{value:'test105', label:'Radio vertical one'},
|
107
|
+
{value:'test106', label:'Radio vertical two'},
|
108
|
+
{value:'test107', label:'Radio vertical three'},
|
109
|
+
]}
|
110
|
+
value={this.state.value2}
|
111
|
+
orientation='vertical'
|
112
|
+
onChange={(value) => this.setState(() => ({ value2: value }))} />
|
113
|
+
|
114
|
+
`}
|
115
|
+
</Markup.ReactMarkupCode>
|
116
|
+
</Markup.ReactMarkup>
|
117
|
+
|
118
|
+
<Components.GraphicButtonsGroup>
|
119
|
+
<Components.GraphicButton graphic='design' text='Radio usage guidelines' smallText='Design guidelines' link='#/design/checkbox-and-radio' />
|
120
|
+
</Components.GraphicButtonsGroup>
|
121
|
+
|
122
|
+
<h3 className="docs-page__h3">RadioButtonGroup</h3>
|
123
|
+
<Markup.ReactMarkupCodePreview>{`
|
124
|
+
<RadioButtonGroup options={[
|
125
|
+
{value:'test1', label:'Button style radio one'},
|
126
|
+
{value:'test2', label:'Button style radio two'},
|
127
|
+
]} value={value1} />
|
128
|
+
`}
|
129
|
+
</Markup.ReactMarkupCodePreview>
|
130
|
+
<p className="docs-page__paragraph">The <code>RadioButtonGroup</code> component shares the same functionality as the RadioGroup component but with a different visual appearance and some additional layout options. Any icon from the <a className='link' href='#/components/icons' target='blank'>icon font</a> can be added to the component by specifying a value (icon name without the <code>icon-</code> prefix) inside an options value e.g. <code>{'{value:"somevalue", label:"I have an icon", icon:"grid-view"}'}</code>.</p>
|
131
|
+
|
132
|
+
<Markup.ReactMarkup>
|
133
|
+
<Markup.ReactMarkupPreview>
|
134
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Basic</p>
|
135
|
+
<div className='form__group'>
|
136
|
+
<RadioButtonGroup options={[
|
137
|
+
{value:'test6', label:'Button style radio'},
|
138
|
+
{value:'test7', label:'Button style'},
|
139
|
+
{value:'test8', label:'Button style'},
|
140
|
+
{value:'test9', label:'Button style disabled', disabled:true},
|
141
|
+
]} value={this.state.value3} onChange={(value) => this.setState(() => ({ value3: value }))} />
|
142
|
+
</div>
|
143
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// With label</p>
|
144
|
+
<div className='form__group'>
|
145
|
+
<RadioButtonGroup group={{groupLabel: 'My group label'}}
|
146
|
+
options={[
|
147
|
+
{value:'test6', label:'Button style radio'},
|
148
|
+
{value:'test7', label:'Button style'},
|
149
|
+
{value:'test8', label:'Button style'},
|
150
|
+
{value:'test9', label:'Button style disabled', disabled:true},
|
151
|
+
]} value={this.state.value3} onChange={(value) => this.setState(() => ({ value3: value }))} />
|
152
|
+
</div>
|
153
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// With icon</p>
|
154
|
+
<div className='form__group'>
|
155
|
+
<RadioButtonGroup options={[
|
156
|
+
{value:'test10', label:'Radio button with icon', icon:'list-view'},
|
157
|
+
{value:'test11', label:'I have an icon!', icon:'grid-view'},
|
158
|
+
{value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
|
159
|
+
]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
|
160
|
+
</div>
|
161
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// With icon only (text label is hidden but still accessible to screenreaders)</p>
|
162
|
+
<div className='form__group'>
|
163
|
+
<RadioButtonGroup options={[
|
164
|
+
{value:'test10', label:'Radio button with icon', icon:'list-view', labelHidden: true},
|
165
|
+
{value:'test11', label:'I have an icon!', icon:'grid-view', labelHidden: true},
|
166
|
+
{value:'test12', label:'Yeah, me too!', icon:'kanban-view', labelHidden: true},
|
167
|
+
]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
|
168
|
+
</div>
|
169
|
+
</Markup.ReactMarkupPreview>
|
170
|
+
<Markup.ReactMarkupCode>{`
|
171
|
+
// Button styled radio buttons
|
172
|
+
<RadioButtonGroup options={[
|
173
|
+
{value:'test6', label:'Button style radio'},
|
174
|
+
{value:'test7', label:'Button style'},
|
175
|
+
{value:'test8', label:'Button style'},
|
176
|
+
{value:'test9', label:'Button style disabled', disabled:true},
|
177
|
+
]} value={this.state.value3} onChange={(value) => this.setState(() => ({ value3: value }))} />
|
178
|
+
|
179
|
+
// With label
|
180
|
+
<RadioButtonGroup group={{groupLabel: 'My group label'}}
|
181
|
+
options={[
|
182
|
+
{value:'test6', label:'Button style radio'},
|
183
|
+
{value:'test7', label:'Button style'},
|
184
|
+
{value:'test8', label:'Button style'},
|
185
|
+
{value:'test9', label:'Button style disabled', disabled:true},
|
186
|
+
]} value={this.state.value3} onChange={(value) => this.setState(() => ({ value3: value }))} />
|
187
|
+
|
188
|
+
// Button styled radio with icon
|
189
|
+
<RadioButtonGroup options={[
|
190
|
+
{value:'test10', label:'Radio button with icon', icon:'list-view'},
|
191
|
+
{value:'test11', label:'I have an icon!', icon:'grid-view'},
|
192
|
+
{value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
|
193
|
+
]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
|
194
|
+
|
195
|
+
// Button style radio with icon only (text label is hidden)
|
196
|
+
<RadioButtonGroup options={[
|
197
|
+
{value:'test10', label:'Radio button with icon', icon:'list-view', labelHidden: true},
|
198
|
+
{value:'test11', label:'I have an icon!', icon:'grid-view', labelHidden: true},
|
199
|
+
{value:'test12', label:'Yeah, me too!', icon:'kanban-view', labelHidden: true},
|
200
|
+
]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
|
201
|
+
|
202
|
+
`}
|
203
|
+
</Markup.ReactMarkupCode>
|
204
|
+
</Markup.ReactMarkup>
|
205
|
+
|
206
|
+
<h3 className="docs-page__h3">Layout and alignment options</h3>
|
207
|
+
<p className="docs-page__paragraph">By default the child elements are grouped horizontaly. A few more options are available – alignment (start, end and center) and grid layout. </p>
|
208
|
+
<Alert style='hollow' size='small' type='primary'>
|
209
|
+
NOTE: Alignment will work only in parent elements with display: flex;
|
210
|
+
</Alert>
|
211
|
+
<Markup.ReactMarkup>
|
212
|
+
<Markup.ReactMarkupPreview>
|
213
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Left (default)</p>
|
214
|
+
<div className='form__row form__row--flex docs-page__test-helper-2'>
|
215
|
+
<RadioButtonGroup value={this.state.value3} options={[
|
216
|
+
{value:'test301', label:'Option one'},
|
217
|
+
{value:'test302', label:'Option two'},
|
218
|
+
{value:'test303', label:'Option three'},
|
219
|
+
]} onChange={(value) => this.setState(() => ({ value3: value }))} />
|
220
|
+
</div>
|
221
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Right</p>
|
222
|
+
<div className='form__row form__row--flex docs-page__test-helper-2'>
|
223
|
+
<RadioButtonGroup group={{align:'end', groupLabel:'My group label'}} value={this.state.value4} options={[
|
224
|
+
{value:'test304', label:'Option one'},
|
225
|
+
{value:'test305', label:'Option two'},
|
226
|
+
{value:'test306', label:'Option three'},
|
227
|
+
]} onChange={(value) => this.setState(() => ({ value4: value }))} />
|
228
|
+
</div>
|
229
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Center</p>
|
230
|
+
<div className='form__row form__row--flex docs-page__test-helper-2'>
|
231
|
+
<RadioButtonGroup group={{align:'center', groupLabelledBy:'someID'}} value={this.state.value5} options={[
|
232
|
+
{value:'test307', label:'Option one'},
|
233
|
+
{value:'test308', label:'Option two'},
|
234
|
+
{value:'test309', label:'Option three'},
|
235
|
+
]} onChange={(value) => this.setState(() => ({ value5: value }))} />
|
236
|
+
</div>
|
237
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Left + Center + Right</p>
|
238
|
+
<div className='form__row form__row--flex docs-page__test-helper-2'>
|
239
|
+
<RadioButtonGroup value={this.state.value6} options={[
|
240
|
+
{value:'test310', label:'One'},
|
241
|
+
{value:'test311', label:'Two'},
|
242
|
+
]} onChange={(value) => this.setState(() => ({ value6: value }))} />
|
243
|
+
|
244
|
+
<RadioButtonGroup group={{align:'center'}} value={this.state.value6} options={[
|
245
|
+
{value:'test312', label:'Three'},
|
246
|
+
{value:'test313', label:'Four'},
|
247
|
+
]} onChange={(value) => this.setState(() => ({ value6: value }))} />
|
248
|
+
|
249
|
+
<RadioButtonGroup group={{align:'end'}} value={this.state.value6} options={[
|
250
|
+
{value:'test314', label:'Five'},
|
251
|
+
{value:'test315', label:'Six'},
|
252
|
+
]} onChange={(value) => this.setState(() => ({ value6: value }))} />
|
253
|
+
</div>
|
254
|
+
<p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Grid</p>
|
255
|
+
<div className='form__row form__row--flex docs-page__test-helper-2' style={{width:500}}>
|
256
|
+
<RadioButtonGroup group={{grid:true}} value={this.state.value7} options={[
|
257
|
+
{value:'test316', label:'One'},
|
258
|
+
{value:'test317', label:'Two'},
|
259
|
+
{value:'test318', label:'Three'},
|
260
|
+
{value:'test319', label:'Four'},
|
261
|
+
{value:'test320', label:'Five'},
|
262
|
+
{value:'test321', label:'Six'},
|
263
|
+
]} onChange={(value) => this.setState(() => ({ value7: value }))} />
|
264
|
+
</div>
|
265
|
+
</Markup.ReactMarkupPreview>
|
266
|
+
<Markup.ReactMarkupCode>{`
|
267
|
+
// Left (default)
|
268
|
+
<RadioButtonGroup value={value3} options={[
|
269
|
+
{value:'test301', label:'Option one'},
|
270
|
+
{value:'test302', label:'Option two'},
|
271
|
+
{value:'test303', label:'Option three'},
|
272
|
+
]} />
|
273
|
+
|
274
|
+
// Right
|
275
|
+
<RadioButtonGroup group={{align:'end'}} value={value4} options={[
|
276
|
+
{value:'test304', label:'Option one'},
|
277
|
+
{value:'test305', label:'Option two'},
|
278
|
+
{value:'test306', label:'Option three'},
|
279
|
+
]} />
|
280
|
+
|
281
|
+
// Center
|
282
|
+
<RadioButtonGroup group={{align:'center'}} value={value5} options={[
|
283
|
+
{value:'test307', label:'Option one'},
|
284
|
+
{value:'test308', label:'Option two'},
|
285
|
+
{value:'test309', label:'Option three'},
|
286
|
+
]} />
|
287
|
+
|
288
|
+
// Left + Center + Right
|
289
|
+
<div className='form__row form__row--flex'>
|
290
|
+
<RadioButtonGroup value={value6} options={[
|
291
|
+
{value:'test310', label:'One'},
|
292
|
+
{value:'test311', label:'Two'},
|
293
|
+
]} />
|
294
|
+
|
295
|
+
<RadioButtonGroup group={{align:'center'}} value={value6} options={[
|
296
|
+
{value:'test312', label:'Three'},
|
297
|
+
{value:'test313', label:'Four'},
|
298
|
+
]} />
|
299
|
+
|
300
|
+
<RadioButtonGroup group={{align:'end'}} value={value6} options={[
|
301
|
+
{value:'test314', label:'Five'},
|
302
|
+
{value:'test315', label:'Six'},
|
303
|
+
]} />
|
304
|
+
</div>
|
305
|
+
|
306
|
+
// Grid
|
307
|
+
<RadioButtonGroup group={{grid:true}} value={value7} options={[
|
308
|
+
{value:'test316', label:'One'},
|
309
|
+
{value:'test317', label:'Two'},
|
310
|
+
{value:'test318', label:'Three'},
|
311
|
+
{value:'test319', label:'Four'},
|
312
|
+
{value:'test320', label:'Five'},
|
313
|
+
{value:'test321', label:'Six'},
|
314
|
+
]} />
|
315
|
+
`}
|
316
|
+
</Markup.ReactMarkupCode>
|
317
|
+
</Markup.ReactMarkup>
|
318
|
+
|
319
|
+
<h3 className="docs-page__h3">Props</h3>
|
320
|
+
<p className="docs-page__paragraph">RadioGroup</p>
|
321
|
+
<PropsList>
|
322
|
+
<Prop name='value' isRequired={true} type='T' default='/' description='The value of the checked button.'/>
|
323
|
+
<Prop name='options' isRequired={true} type='Array' default='/' description='Array of Radio options.'/>
|
324
|
+
<Prop name='options label' isRequired={true} type='string' default='/' description='Label text value for Radio.'/>
|
325
|
+
<Prop name='options value' isRequired={true} type='T' default='/' description='Value of the Radio.'/>
|
326
|
+
<Prop name='options disabled' isRequired={false} type='boolean' default='false' description='Disables the Radio, preventing mouse events.'/>
|
327
|
+
<Prop name='labelSide' isRequired={false} type='start | end' default='end' description='Position of label relative to the button.'/>
|
328
|
+
<Prop name='tabindex' isRequired={false} type='number' default='/' description='Indicates an element can be focused on, and determines how that focus is handled.' />
|
329
|
+
<Prop name='groupLabelledBy' isRequired={false} type='string' default='/' description='Aria-labelledby for screen-reader support.'/>
|
330
|
+
</PropsList>
|
331
|
+
<p className="docs-page__paragraph">RadioButtonGroup</p>
|
332
|
+
<PropsList>
|
333
|
+
<Prop name='value' isRequired={true} type='any' default='/' description='The value of the checked button.'/>
|
334
|
+
<Prop name='options' isRequired={true} type='Array<option>' default='/' description='Array of RadioButton options.'/>
|
335
|
+
<Prop name='tabindex' isRequired={false} type='number' default='/' description='Indicates an element can be focused on, and determines how that focus is handled.' />
|
336
|
+
<Prop name='option label' isRequired={true} type='string' default='/' description='Label text value for RadioButton.'/>
|
337
|
+
<Prop name='option value' isRequired={true} type='any' default='/' description='Value of the Radio.'/>
|
338
|
+
<Prop name='option disabled' isRequired={false} type='boolean' default='false' description='Disables the Radio, preventing mouse events.'/>
|
339
|
+
<Prop name='option labelHidden' isRequired={false} type='boolean' default='false' description='Hides visually the label and adds an aria-label for screen-reader support.'/>
|
340
|
+
<Prop name='option icon' isRequired={false} type='string' default='/' description='Icon class name without the icon- part.'/>
|
341
|
+
<Prop name='group orientation' isRequired={false} type='horizontal | vertical' default='horizontal' description='Orientation of the child elements.'/>
|
342
|
+
<Prop name='group align' isRequired={false} type='start | end | center | inline' default='start' description='Alignemnt of the whole group relative to the parent container. Container must be flex for this to work.'/>
|
343
|
+
<Prop name='group grid' isRequired={false} type='bolean' default='false' description='Lays out child elements in an uniform grid list.'/>
|
344
|
+
<Prop name='group padded' isRequired={false} type='bolean' default='false' description='Adds padding on the start and end (left and right) of the group.'/>
|
345
|
+
<Prop name='group groupLabel' isRequired={false} type='string' default='/' description='Label text value.'/>
|
346
|
+
<Prop name='group groupLabelledBy' isRequired={false} type='string' default='/' description='Aria-labelledby for screen-reader support.'/>
|
347
|
+
</PropsList>
|
348
|
+
</section>
|
349
|
+
)
|
350
|
+
}
|
351
|
+
}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Markup from "../../js/react";
|
3
|
+
import { SelectGrid, Alert, PropsList, Prop } from "../../../app-typescript";
|
4
|
+
|
5
|
+
const SelectGridDocs = () => {
|
6
|
+
const letters = [
|
7
|
+
{ value: 'A', label: 'A' },
|
8
|
+
{ value: 'B', label: 'B' },
|
9
|
+
{ value: 'C', label: 'C' },
|
10
|
+
{ value: 'D', label: 'D' },
|
11
|
+
{ value: 'E', label: 'E' },
|
12
|
+
{ value: 'F', label: 'F' },
|
13
|
+
{ value: 'G', label: 'G' },
|
14
|
+
{ value: 'H', label: 'H' },
|
15
|
+
{ value: 'K', label: 'K' },
|
16
|
+
{ value: 'L', label: 'L' },
|
17
|
+
{ value: 'M', label: 'M' },
|
18
|
+
{ value: 'N', label: 'N' },
|
19
|
+
{ value: 'O', label: 'O' },
|
20
|
+
{ value: 'P', label: 'P' },
|
21
|
+
{ value: 'R', label: 'R' },
|
22
|
+
{ value: 'S', label: 'S' },
|
23
|
+
{ value: 'T', label: 'T' },
|
24
|
+
{ value: 'U', label: 'U' }
|
25
|
+
];
|
26
|
+
|
27
|
+
const [selectedItem, setSelectedItem] = React.useState(letters[0]);
|
28
|
+
|
29
|
+
return (
|
30
|
+
<section className="docs-page__container">
|
31
|
+
<h2 className="docs-page__h2">Select Grid</h2>
|
32
|
+
<p className="docs-page__paragraph">Universal select component with grid display of items. You can define your own trigger and item template.</p>
|
33
|
+
<p className="docs-page__paragraph">IconPicker is built on top of it.</p>
|
34
|
+
<Markup.ReactMarkupCodePreview>{`
|
35
|
+
<SelectGrid
|
36
|
+
label="Label"
|
37
|
+
filterPlaceholder="Search..."
|
38
|
+
getItems={(searchString) => {
|
39
|
+
return new Promise((resolve) => {
|
40
|
+
resolve([{ value: 'value', label: 'Label' }]);
|
41
|
+
});
|
42
|
+
}}
|
43
|
+
onChange={(value) => { }}
|
44
|
+
itemTemplate={({ item }) => <div />}
|
45
|
+
triggerTemplate={() => <button />}
|
46
|
+
/>
|
47
|
+
`}
|
48
|
+
</Markup.ReactMarkupCodePreview>
|
49
|
+
<Markup.ReactMarkup>
|
50
|
+
<Markup.ReactMarkupPreview>
|
51
|
+
<SelectGrid
|
52
|
+
label="Letter"
|
53
|
+
filterPlaceholder="Search..."
|
54
|
+
getItems={(searchString) => {
|
55
|
+
return new Promise((resolve) => {
|
56
|
+
if (searchString == null) {
|
57
|
+
resolve(letters);
|
58
|
+
} else {
|
59
|
+
resolve(letters.filter(({ label }) => label.toLocaleLowerCase().includes(searchString.toLocaleLowerCase())));
|
60
|
+
}
|
61
|
+
});
|
62
|
+
}}
|
63
|
+
onChange={(value) => {
|
64
|
+
setSelectedItem(value);
|
65
|
+
}}
|
66
|
+
itemTemplate={({ item }) => <div style={{ fontSize: '20px' }}>{item.label}</div>}
|
67
|
+
triggerTemplate={({ onClick }) => <button className="btn" onClick={onClick}>{selectedItem.label}</button>}
|
68
|
+
|
69
|
+
/>
|
70
|
+
</Markup.ReactMarkupPreview>
|
71
|
+
<Markup.ReactMarkupCode>{`
|
72
|
+
const letters = [
|
73
|
+
{ value: 'A', label: 'A' },
|
74
|
+
{ value: 'B', label: 'B' },
|
75
|
+
{ value: 'C', label: 'C' },
|
76
|
+
...
|
77
|
+
];
|
78
|
+
|
79
|
+
const [selectedItem, setSelectedItem] = React.useState(letters[0]);
|
80
|
+
...
|
81
|
+
<SelectGrid
|
82
|
+
label="Letter"
|
83
|
+
filterPlaceholder="Search..."
|
84
|
+
getItems={(searchString) => {
|
85
|
+
return new Promise((resolve) => {
|
86
|
+
if (searchString == null) {
|
87
|
+
resolve(letters);
|
88
|
+
} else {
|
89
|
+
resolve(letters.filter(({ label }) => label.toLocaleLowerCase().includes(searchString.toLocaleLowerCase())));
|
90
|
+
}
|
91
|
+
});
|
92
|
+
}}
|
93
|
+
onChange={(value) => {
|
94
|
+
setSelectedItem(value);
|
95
|
+
}}
|
96
|
+
itemTemplate={({ item }) => <div style={{ fontSize: '20px' }}>{item.label}</div>}
|
97
|
+
triggerTemplate={({ onClick }) => <button className="btn" onClick={onClick}>{selectedItem.label}</button>}
|
98
|
+
|
99
|
+
/>
|
100
|
+
`}</Markup.ReactMarkupCode>
|
101
|
+
</Markup.ReactMarkup>
|
102
|
+
|
103
|
+
<h3 className="docs-page__h3">Props</h3>
|
104
|
+
<PropsList>
|
105
|
+
<Prop name='label' isRequired={true} type='string' default='null' description='Select label' />
|
106
|
+
<Prop name='filterPlaceholder' isRequired={false} type='string' default='Search...' description='Filter placeholder' />
|
107
|
+
<Prop name='getItems' isRequired={true} type='function' default='false' description='Callback function that should return promise which resolves with array of items' />
|
108
|
+
<Prop name='onChange' isRequired={true} type='function' default='false' description='Callback on change event' />
|
109
|
+
<Prop name='itemTemplate' isRequired={true} type='Component' default='null' description='item renderer' />
|
110
|
+
<Prop name='triggerTemplate' isRequired={true} type='Component' default='null' description='trigger button renderer' />
|
111
|
+
</PropsList>
|
112
|
+
<Alert style='hollow' size='normal' type='alert' restoreIcon='info'>
|
113
|
+
1. triggerTemplate should include <button /> with onClick event. Otherwise keyboard controls won't work. <br />
|
114
|
+
2. Item should be an object with at least label and value.
|
115
|
+
</Alert>
|
116
|
+
</section>
|
117
|
+
)
|
118
|
+
}
|
119
|
+
|
120
|
+
|
121
|
+
export default SelectGridDocs;
|