@storybook/components 6.4.0-beta.24 → 6.4.0-beta.28
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/dist/cjs/ActionBar/ActionBar.js +104 -0
- package/dist/cjs/ActionBar/ActionBar.stories.js +66 -0
- package/dist/cjs/Badge/Badge.js +97 -0
- package/dist/cjs/Badge/Badge.stories.js +19 -0
- package/dist/cjs/Button/Button.js +279 -0
- package/dist/cjs/Button/Button.stories.js +74 -0
- package/dist/cjs/Colors/SideBySide.js +25 -0
- package/dist/cjs/Colors/colorpalette.stories.mdx +125 -0
- package/dist/cjs/Loader/Loader.js +274 -0
- package/dist/cjs/Loader/Loader.stories.js +86 -0
- package/dist/cjs/ScrollArea/GlobalScrollAreaStyles.js +477 -0
- package/dist/cjs/ScrollArea/OverlayScrollbars.js +131 -0
- package/dist/cjs/ScrollArea/ScrollArea.js +98 -0
- package/dist/cjs/ScrollArea/ScrollArea.stories.js +136 -0
- package/dist/cjs/Zoom/Zoom.js +31 -0
- package/dist/cjs/Zoom/Zoom.stories.js +185 -0
- package/dist/cjs/Zoom/ZoomElement.js +96 -0
- package/dist/cjs/Zoom/ZoomIFrame.js +142 -0
- package/dist/cjs/Zoom/browserSupportsCssZoom.js +20 -0
- package/dist/cjs/addon-panel/addon-panel.js +65 -0
- package/dist/cjs/bar/bar.js +150 -0
- package/dist/cjs/bar/button.js +128 -0
- package/dist/cjs/bar/button.stories.js +61 -0
- package/dist/cjs/bar/separator.js +68 -0
- package/dist/cjs/blocks/ArgsTable/ArgControl.js +138 -0
- package/dist/cjs/blocks/ArgsTable/ArgJsDoc.js +100 -0
- package/dist/cjs/blocks/ArgsTable/ArgRow.js +139 -0
- package/dist/cjs/blocks/ArgsTable/ArgRow.stories.js +399 -0
- package/dist/cjs/blocks/ArgsTable/ArgValue.js +298 -0
- package/dist/cjs/blocks/ArgsTable/ArgsTable.js +454 -0
- package/dist/cjs/blocks/ArgsTable/ArgsTable.stories.js +212 -0
- package/dist/cjs/blocks/ArgsTable/NoControlsWarning.js +37 -0
- package/dist/cjs/blocks/ArgsTable/SectionRow.js +195 -0
- package/dist/cjs/blocks/ArgsTable/SectionRow.stories.js +59 -0
- package/dist/cjs/blocks/ArgsTable/TabbedArgsTable.js +92 -0
- package/dist/cjs/blocks/ArgsTable/TabbedArgsTable.stories.js +50 -0
- package/dist/cjs/blocks/ArgsTable/index.js +61 -0
- package/dist/cjs/blocks/ArgsTable/types.js +1 -0
- package/dist/cjs/blocks/BlockBackgroundStyles.js +17 -0
- package/dist/cjs/blocks/ColorPalette.js +234 -0
- package/dist/cjs/blocks/ColorPalette.stories.js +87 -0
- package/dist/cjs/blocks/Description.js +33 -0
- package/dist/cjs/blocks/Description.stories.js +48 -0
- package/dist/cjs/blocks/DocsPage.js +85 -0
- package/dist/cjs/blocks/DocsPage.stories.js +113 -0
- package/dist/cjs/blocks/DocsPageExampleCaption.md +92 -0
- package/dist/cjs/blocks/DocsPageExampleCaption.mdx +92 -0
- package/dist/cjs/blocks/EmptyBlock.js +45 -0
- package/dist/cjs/blocks/EmptyBlock.stories.js +25 -0
- package/dist/cjs/blocks/IFrame.js +148 -0
- package/dist/cjs/blocks/IconGallery.js +99 -0
- package/dist/cjs/blocks/IconGallery.stories.js +53 -0
- package/dist/cjs/blocks/Preview.js +416 -0
- package/dist/cjs/blocks/Preview.stories.js +338 -0
- package/dist/cjs/blocks/Source.js +94 -0
- package/dist/cjs/blocks/Source.stories.js +66 -0
- package/dist/cjs/blocks/Story.js +129 -0
- package/dist/cjs/blocks/Story.stories.js +115 -0
- package/dist/cjs/blocks/Toolbar.js +126 -0
- package/dist/cjs/blocks/Typeset.js +94 -0
- package/dist/cjs/blocks/Typeset.stories.js +61 -0
- package/dist/cjs/blocks/ZoomContext.js +13 -0
- package/dist/cjs/blocks/index.js +139 -0
- package/dist/cjs/brand/StorybookIcon.js +44 -0
- package/dist/cjs/brand/StorybookIcon.stories.js +13 -0
- package/dist/cjs/brand/StorybookLogo.js +61 -0
- package/dist/cjs/brand/StorybookLogo.stories.js +27 -0
- package/dist/cjs/controls/Boolean.js +154 -0
- package/dist/cjs/controls/Boolean.stories.js +91 -0
- package/dist/cjs/controls/Color.js +508 -0
- package/dist/cjs/controls/Color.stories.js +146 -0
- package/dist/cjs/controls/Date.js +193 -0
- package/dist/cjs/controls/Date.stories.js +85 -0
- package/dist/cjs/controls/Files.js +81 -0
- package/dist/cjs/controls/Number.js +152 -0
- package/dist/cjs/controls/Number.stories.js +91 -0
- package/dist/cjs/controls/Object.js +416 -0
- package/dist/cjs/controls/Object.stories.js +124 -0
- package/dist/cjs/controls/Range.js +224 -0
- package/dist/cjs/controls/Range.stories.js +126 -0
- package/dist/cjs/controls/Text.js +106 -0
- package/dist/cjs/controls/Text.stories.js +91 -0
- package/dist/cjs/controls/helpers.js +35 -0
- package/dist/cjs/controls/index.js +182 -0
- package/dist/cjs/controls/options/Checkbox.js +167 -0
- package/dist/cjs/controls/options/Options.js +92 -0
- package/dist/cjs/controls/options/Options.stories.js +214 -0
- package/dist/cjs/controls/options/Radio.js +102 -0
- package/dist/cjs/controls/options/Select.js +173 -0
- package/dist/cjs/controls/options/helpers.js +81 -0
- package/dist/cjs/controls/options/index.js +22 -0
- package/dist/cjs/controls/react-editable-json-tree/LICENSE.md +14 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonAddValue.js +228 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonArray.js +507 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonFunctionValue.js +321 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonNode.js +422 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonObject.js +509 -0
- package/dist/cjs/controls/react-editable-json-tree/components/JsonValue.js +312 -0
- package/dist/cjs/controls/react-editable-json-tree/index.js +331 -0
- package/dist/cjs/controls/react-editable-json-tree/types/dataTypes.js +31 -0
- package/dist/cjs/controls/react-editable-json-tree/types/deltaTypes.js +12 -0
- package/dist/cjs/controls/react-editable-json-tree/types/inputUsageTypes.js +13 -0
- package/dist/cjs/controls/react-editable-json-tree/utils/objectTypes.js +51 -0
- package/dist/cjs/controls/react-editable-json-tree/utils/parse.js +29 -0
- package/dist/cjs/controls/react-editable-json-tree/utils/styles.js +68 -0
- package/dist/cjs/controls/types.js +1 -0
- package/dist/cjs/form/field/field.js +62 -0
- package/dist/cjs/form/form.stories.js +223 -0
- package/dist/cjs/form/index.js +27 -0
- package/dist/cjs/form/input/input.js +267 -0
- package/dist/cjs/html.js +58 -0
- package/dist/cjs/icon/icon.js +74 -0
- package/dist/cjs/icon/icon.stories.js +76 -0
- package/dist/cjs/icon/icons.js +182 -0
- package/dist/cjs/icon/svg.js +24 -0
- package/dist/cjs/index.js +355 -0
- package/dist/cjs/placeholder/placeholder.js +94 -0
- package/dist/cjs/placeholder/placeholder.stories.js +64 -0
- package/dist/cjs/shared/animation.js +19 -0
- package/dist/cjs/spaced/Spaced.js +101 -0
- package/dist/cjs/spaced/Spaced.stories.js +73 -0
- package/dist/cjs/syntaxhighlighter/formatter.js +17 -0
- package/dist/cjs/syntaxhighlighter/lazy-syntaxhighlighter.js +49 -0
- package/dist/cjs/syntaxhighlighter/syntaxhighlighter-types.js +1 -0
- package/dist/cjs/syntaxhighlighter/syntaxhighlighter.js +315 -0
- package/dist/cjs/syntaxhighlighter/syntaxhighlighter.stories.js +112 -0
- package/dist/cjs/tabs/tabs.js +315 -0
- package/dist/cjs/tabs/tabs.stories.js +308 -0
- package/dist/cjs/tooltip/ListItem.js +224 -0
- package/dist/cjs/tooltip/ListItem.stories.js +95 -0
- package/dist/cjs/tooltip/Tooltip.js +143 -0
- package/dist/cjs/tooltip/Tooltip.stories.js +52 -0
- package/dist/cjs/tooltip/TooltipLinkList.js +107 -0
- package/dist/cjs/tooltip/TooltipLinkList.stories.js +100 -0
- package/dist/cjs/tooltip/TooltipMessage.js +85 -0
- package/dist/cjs/tooltip/TooltipMessage.stories.js +54 -0
- package/dist/cjs/tooltip/TooltipNote.js +50 -0
- package/dist/cjs/tooltip/TooltipNote.stories.js +29 -0
- package/dist/cjs/tooltip/WithTooltip.js +229 -0
- package/dist/cjs/tooltip/WithTooltip.stories.js +95 -0
- package/dist/cjs/tooltip/lazy-WithTooltip.js +72 -0
- package/dist/cjs/typings.d.js +1 -0
- package/dist/cjs/typography/DocumentFormatting.js +577 -0
- package/dist/cjs/typography/DocumentFormattingSample.md +141 -0
- package/dist/cjs/typography/DocumentWrapper.js +298 -0
- package/dist/cjs/typography/DocumentWrapper.stories.js +89 -0
- package/dist/cjs/typography/link/link.js +207 -0
- package/dist/cjs/typography/link/link.stories.js +71 -0
- package/dist/cjs/typography/shared.js +67 -0
- package/dist/cjs/typography/typography.stories.mdx +75 -0
- package/dist/esm/ActionBar/ActionBar.js +83 -0
- package/dist/esm/ActionBar/ActionBar.stories.js +47 -0
- package/dist/esm/Badge/Badge.js +81 -0
- package/dist/esm/Badge/Badge.stories.js +12 -0
- package/dist/esm/Button/Button.js +239 -0
- package/dist/esm/Button/Button.stories.js +65 -0
- package/dist/esm/Colors/SideBySide.js +15 -0
- package/dist/esm/Colors/colorpalette.stories.mdx +125 -0
- package/dist/esm/Loader/Loader.js +223 -0
- package/dist/esm/Loader/Loader.stories.js +63 -0
- package/dist/esm/ScrollArea/GlobalScrollAreaStyles.js +461 -0
- package/dist/esm/ScrollArea/OverlayScrollbars.js +102 -0
- package/dist/esm/ScrollArea/ScrollArea.js +58 -0
- package/dist/esm/ScrollArea/ScrollArea.stories.js +88 -0
- package/dist/esm/Zoom/Zoom.js +15 -0
- package/dist/esm/Zoom/Zoom.stories.js +149 -0
- package/dist/esm/Zoom/ZoomElement.js +64 -0
- package/dist/esm/Zoom/ZoomIFrame.js +121 -0
- package/dist/esm/Zoom/browserSupportsCssZoom.js +9 -0
- package/dist/esm/addon-panel/addon-panel.js +32 -0
- package/dist/esm/bar/bar.js +114 -0
- package/dist/esm/bar/button.js +112 -0
- package/dist/esm/bar/button.stories.js +36 -0
- package/dist/esm/bar/separator.js +30 -0
- package/dist/esm/blocks/ArgsTable/ArgControl.js +107 -0
- package/dist/esm/blocks/ArgsTable/ArgJsDoc.js +78 -0
- package/dist/esm/blocks/ArgsTable/ArgRow.js +110 -0
- package/dist/esm/blocks/ArgsTable/ArgRow.stories.js +358 -0
- package/dist/esm/blocks/ArgsTable/ArgValue.js +246 -0
- package/dist/esm/blocks/ArgsTable/ArgsTable.js +410 -0
- package/dist/esm/blocks/ArgsTable/ArgsTable.stories.js +155 -0
- package/dist/esm/blocks/ArgsTable/NoControlsWarning.js +22 -0
- package/dist/esm/blocks/ArgsTable/SectionRow.js +153 -0
- package/dist/esm/blocks/ArgsTable/SectionRow.stories.js +38 -0
- package/dist/esm/blocks/ArgsTable/TabbedArgsTable.js +65 -0
- package/dist/esm/blocks/ArgsTable/TabbedArgsTable.stories.js +34 -0
- package/dist/esm/blocks/ArgsTable/index.js +4 -0
- package/dist/esm/blocks/ArgsTable/types.js +0 -0
- package/dist/esm/blocks/BlockBackgroundStyles.js +8 -0
- package/dist/esm/blocks/ColorPalette.js +196 -0
- package/dist/esm/blocks/ColorPalette.stories.js +69 -0
- package/dist/esm/blocks/Description.js +19 -0
- package/dist/esm/blocks/Description.stories.js +32 -0
- package/dist/esm/blocks/DocsPage.js +57 -0
- package/dist/esm/blocks/DocsPage.stories.js +56 -0
- package/dist/esm/blocks/DocsPageExampleCaption.md +92 -0
- package/dist/esm/blocks/DocsPageExampleCaption.mdx +92 -0
- package/dist/esm/blocks/EmptyBlock.js +29 -0
- package/dist/esm/blocks/EmptyBlock.stories.js +10 -0
- package/dist/esm/blocks/IFrame.js +115 -0
- package/dist/esm/blocks/IconGallery.js +75 -0
- package/dist/esm/blocks/IconGallery.stories.js +37 -0
- package/dist/esm/blocks/Preview.js +365 -0
- package/dist/esm/blocks/Preview.stories.js +251 -0
- package/dist/esm/blocks/Source.js +77 -0
- package/dist/esm/blocks/Source.stories.js +42 -0
- package/dist/esm/blocks/Story.js +91 -0
- package/dist/esm/blocks/Story.stories.js +76 -0
- package/dist/esm/blocks/Toolbar.js +87 -0
- package/dist/esm/blocks/Typeset.js +71 -0
- package/dist/esm/blocks/Typeset.stories.js +37 -0
- package/dist/esm/blocks/ZoomContext.js +4 -0
- package/dist/esm/blocks/index.js +10 -0
- package/dist/esm/brand/StorybookIcon.js +31 -0
- package/dist/esm/brand/StorybookIcon.stories.js +6 -0
- package/dist/esm/brand/StorybookLogo.js +47 -0
- package/dist/esm/brand/StorybookLogo.stories.js +12 -0
- package/dist/esm/controls/Boolean.js +114 -0
- package/dist/esm/controls/Boolean.stories.js +54 -0
- package/dist/esm/controls/Color.js +446 -0
- package/dist/esm/controls/Color.stories.js +109 -0
- package/dist/esm/controls/Date.js +158 -0
- package/dist/esm/controls/Date.stories.js +51 -0
- package/dist/esm/controls/Files.js +56 -0
- package/dist/esm/controls/Number.js +110 -0
- package/dist/esm/controls/Number.stories.js +54 -0
- package/dist/esm/controls/Object.js +370 -0
- package/dist/esm/controls/Object.stories.js +81 -0
- package/dist/esm/controls/Range.js +179 -0
- package/dist/esm/controls/Range.stories.js +83 -0
- package/dist/esm/controls/Text.js +72 -0
- package/dist/esm/controls/Text.stories.js +54 -0
- package/dist/esm/controls/helpers.js +22 -0
- package/dist/esm/controls/index.js +21 -0
- package/dist/esm/controls/options/Checkbox.js +123 -0
- package/dist/esm/controls/options/Options.js +70 -0
- package/dist/esm/controls/options/Options.stories.js +126 -0
- package/dist/esm/controls/options/Radio.js +77 -0
- package/dist/esm/controls/options/Select.js +143 -0
- package/dist/esm/controls/options/helpers.js +50 -0
- package/dist/esm/controls/options/index.js +1 -0
- package/dist/esm/controls/react-editable-json-tree/LICENSE.md +14 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonAddValue.js +194 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonArray.js +465 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonFunctionValue.js +282 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonNode.js +387 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonObject.js +467 -0
- package/dist/esm/controls/react-editable-json-tree/components/JsonValue.js +272 -0
- package/dist/esm/controls/react-editable-json-tree/index.js +267 -0
- package/dist/esm/controls/react-editable-json-tree/types/dataTypes.js +24 -0
- package/dist/esm/controls/react-editable-json-tree/types/deltaTypes.js +6 -0
- package/dist/esm/controls/react-editable-json-tree/types/inputUsageTypes.js +6 -0
- package/dist/esm/controls/react-editable-json-tree/utils/objectTypes.js +39 -0
- package/dist/esm/controls/react-editable-json-tree/utils/parse.js +21 -0
- package/dist/esm/controls/react-editable-json-tree/utils/styles.js +62 -0
- package/dist/esm/controls/types.js +0 -0
- package/dist/esm/form/field/field.js +44 -0
- package/dist/esm/form/form.stories.js +198 -0
- package/dist/esm/form/index.js +15 -0
- package/dist/esm/form/input/input.js +225 -0
- package/dist/esm/html.js +13 -0
- package/dist/esm/icon/icon.js +52 -0
- package/dist/esm/icon/icon.stories.js +62 -0
- package/dist/esm/icon/icons.js +174 -0
- package/dist/esm/icon/svg.js +15 -0
- package/dist/esm/index.js +50 -0
- package/dist/esm/placeholder/placeholder.js +58 -0
- package/dist/esm/placeholder/placeholder.stories.js +23 -0
- package/dist/esm/shared/animation.js +9 -0
- package/dist/esm/spaced/Spaced.js +84 -0
- package/dist/esm/spaced/Spaced.stories.js +63 -0
- package/dist/esm/syntaxhighlighter/formatter.js +5 -0
- package/dist/esm/syntaxhighlighter/lazy-syntaxhighlighter.js +12 -0
- package/dist/esm/syntaxhighlighter/syntaxhighlighter-types.js +0 -0
- package/dist/esm/syntaxhighlighter/syntaxhighlighter.js +250 -0
- package/dist/esm/syntaxhighlighter/syntaxhighlighter.stories.js +82 -0
- package/dist/esm/tabs/tabs.js +269 -0
- package/dist/esm/tabs/tabs.stories.js +277 -0
- package/dist/esm/tooltip/ListItem.js +201 -0
- package/dist/esm/tooltip/ListItem.stories.js +87 -0
- package/dist/esm/tooltip/Tooltip.js +119 -0
- package/dist/esm/tooltip/Tooltip.stories.js +42 -0
- package/dist/esm/tooltip/TooltipLinkList.js +67 -0
- package/dist/esm/tooltip/TooltipLinkList.stories.js +60 -0
- package/dist/esm/tooltip/TooltipMessage.js +62 -0
- package/dist/esm/tooltip/TooltipMessage.stories.js +46 -0
- package/dist/esm/tooltip/TooltipNote.js +33 -0
- package/dist/esm/tooltip/TooltipNote.stories.js +21 -0
- package/dist/esm/tooltip/WithTooltip.js +191 -0
- package/dist/esm/tooltip/WithTooltip.stories.js +83 -0
- package/dist/esm/tooltip/lazy-WithTooltip.js +29 -0
- package/dist/esm/typings.d.js +0 -0
- package/dist/esm/typography/DocumentFormatting.js +490 -0
- package/dist/esm/typography/DocumentFormattingSample.md +141 -0
- package/dist/esm/typography/DocumentWrapper.js +288 -0
- package/dist/esm/typography/DocumentWrapper.stories.js +70 -0
- package/dist/esm/typography/link/link.js +188 -0
- package/dist/esm/typography/link/link.stories.js +62 -0
- package/dist/esm/typography/shared.js +50 -0
- package/dist/esm/typography/typography.stories.mdx +75 -0
- package/dist/modern/ActionBar/ActionBar.js +74 -0
- package/dist/modern/ActionBar/ActionBar.stories.js +41 -0
- package/dist/modern/Badge/Badge.js +78 -0
- package/dist/modern/Badge/Badge.stories.js +10 -0
- package/dist/modern/Button/Button.js +231 -0
- package/dist/modern/Button/Button.stories.js +65 -0
- package/dist/modern/Colors/SideBySide.js +15 -0
- package/dist/modern/Colors/colorpalette.stories.mdx +125 -0
- package/dist/modern/Loader/Loader.js +185 -0
- package/dist/modern/Loader/Loader.stories.js +53 -0
- package/dist/modern/ScrollArea/GlobalScrollAreaStyles.js +450 -0
- package/dist/modern/ScrollArea/OverlayScrollbars.js +86 -0
- package/dist/modern/ScrollArea/ScrollArea.js +43 -0
- package/dist/modern/ScrollArea/ScrollArea.stories.js +70 -0
- package/dist/modern/Zoom/Zoom.js +17 -0
- package/dist/modern/Zoom/Zoom.stories.js +113 -0
- package/dist/modern/Zoom/ZoomElement.js +35 -0
- package/dist/modern/Zoom/ZoomIFrame.js +71 -0
- package/dist/modern/Zoom/browserSupportsCssZoom.js +11 -0
- package/dist/modern/addon-panel/addon-panel.js +33 -0
- package/dist/modern/bar/bar.js +80 -0
- package/dist/modern/bar/button.js +104 -0
- package/dist/modern/bar/button.stories.js +28 -0
- package/dist/modern/bar/separator.js +25 -0
- package/dist/modern/blocks/ArgsTable/ArgControl.js +71 -0
- package/dist/modern/blocks/ArgsTable/ArgJsDoc.js +71 -0
- package/dist/modern/blocks/ArgsTable/ArgRow.js +105 -0
- package/dist/modern/blocks/ArgsTable/ArgRow.stories.js +361 -0
- package/dist/modern/blocks/ArgsTable/ArgValue.js +191 -0
- package/dist/modern/blocks/ArgsTable/ArgsTable.js +356 -0
- package/dist/modern/blocks/ArgsTable/ArgsTable.stories.js +147 -0
- package/dist/modern/blocks/ArgsTable/NoControlsWarning.js +19 -0
- package/dist/modern/blocks/ArgsTable/SectionRow.js +110 -0
- package/dist/modern/blocks/ArgsTable/SectionRow.stories.js +31 -0
- package/dist/modern/blocks/ArgsTable/TabbedArgsTable.js +34 -0
- package/dist/modern/blocks/ArgsTable/TabbedArgsTable.stories.js +32 -0
- package/dist/modern/blocks/ArgsTable/index.js +4 -0
- package/dist/modern/blocks/ArgsTable/types.js +0 -0
- package/dist/modern/blocks/BlockBackgroundStyles.js +6 -0
- package/dist/modern/blocks/ColorPalette.js +175 -0
- package/dist/modern/blocks/ColorPalette.stories.js +65 -0
- package/dist/modern/blocks/Description.js +18 -0
- package/dist/modern/blocks/Description.stories.js +65 -0
- package/dist/modern/blocks/DocsPage.js +53 -0
- package/dist/modern/blocks/DocsPage.stories.js +44 -0
- package/dist/modern/blocks/DocsPageExampleCaption.md +92 -0
- package/dist/modern/blocks/DocsPageExampleCaption.mdx +92 -0
- package/dist/modern/blocks/EmptyBlock.js +24 -0
- package/dist/modern/blocks/EmptyBlock.stories.js +8 -0
- package/dist/modern/blocks/IFrame.js +65 -0
- package/dist/modern/blocks/IconGallery.js +68 -0
- package/dist/modern/blocks/IconGallery.stories.js +35 -0
- package/dist/modern/blocks/Preview.js +262 -0
- package/dist/modern/blocks/Preview.stories.js +217 -0
- package/dist/modern/blocks/Source.js +73 -0
- package/dist/modern/blocks/Source.stories.js +50 -0
- package/dist/modern/blocks/Story.js +85 -0
- package/dist/modern/blocks/Story.stories.js +39 -0
- package/dist/modern/blocks/Toolbar.js +82 -0
- package/dist/modern/blocks/Typeset.js +63 -0
- package/dist/modern/blocks/Typeset.stories.js +29 -0
- package/dist/modern/blocks/ZoomContext.js +4 -0
- package/dist/modern/blocks/index.js +10 -0
- package/dist/modern/brand/StorybookIcon.js +30 -0
- package/dist/modern/brand/StorybookIcon.stories.js +4 -0
- package/dist/modern/brand/StorybookLogo.js +43 -0
- package/dist/modern/brand/StorybookLogo.stories.js +10 -0
- package/dist/modern/controls/Boolean.js +104 -0
- package/dist/modern/controls/Boolean.stories.js +19 -0
- package/dist/modern/controls/Color.js +343 -0
- package/dist/modern/controls/Color.stories.js +74 -0
- package/dist/modern/controls/Date.js +118 -0
- package/dist/modern/controls/Date.stories.js +18 -0
- package/dist/modern/controls/Files.js +43 -0
- package/dist/modern/controls/Number.js +72 -0
- package/dist/modern/controls/Number.stories.js +19 -0
- package/dist/modern/controls/Object.js +316 -0
- package/dist/modern/controls/Object.stories.js +38 -0
- package/dist/modern/controls/Range.js +184 -0
- package/dist/modern/controls/Range.stories.js +44 -0
- package/dist/modern/controls/Text.js +46 -0
- package/dist/modern/controls/Text.stories.js +19 -0
- package/dist/modern/controls/helpers.js +15 -0
- package/dist/modern/controls/index.js +15 -0
- package/dist/modern/controls/options/Checkbox.js +81 -0
- package/dist/modern/controls/options/Options.js +67 -0
- package/dist/modern/controls/options/Options.stories.js +55 -0
- package/dist/modern/controls/options/Radio.js +70 -0
- package/dist/modern/controls/options/Select.js +143 -0
- package/dist/modern/controls/options/helpers.js +6 -0
- package/dist/modern/controls/options/index.js +1 -0
- package/dist/modern/controls/react-editable-json-tree/LICENSE.md +14 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonAddValue.js +148 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonArray.js +392 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonFunctionValue.js +215 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonNode.js +339 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonObject.js +394 -0
- package/dist/modern/controls/react-editable-json-tree/components/JsonValue.js +202 -0
- package/dist/modern/controls/react-editable-json-tree/index.js +192 -0
- package/dist/modern/controls/react-editable-json-tree/types/dataTypes.js +24 -0
- package/dist/modern/controls/react-editable-json-tree/types/deltaTypes.js +6 -0
- package/dist/modern/controls/react-editable-json-tree/types/inputUsageTypes.js +6 -0
- package/dist/modern/controls/react-editable-json-tree/utils/objectTypes.js +28 -0
- package/dist/modern/controls/react-editable-json-tree/utils/parse.js +21 -0
- package/dist/modern/controls/react-editable-json-tree/utils/styles.js +62 -0
- package/dist/modern/controls/types.js +0 -0
- package/dist/modern/form/field/field.js +39 -0
- package/dist/modern/form/form.stories.js +126 -0
- package/dist/modern/form/index.js +14 -0
- package/dist/modern/form/input/input.js +203 -0
- package/dist/modern/html.js +10 -0
- package/dist/modern/icon/icon.js +43 -0
- package/dist/modern/icon/icon.stories.js +51 -0
- package/dist/modern/icon/icons.js +174 -0
- package/dist/modern/icon/svg.js +14 -0
- package/dist/modern/index.js +45 -0
- package/dist/modern/placeholder/placeholder.js +28 -0
- package/dist/modern/placeholder/placeholder.stories.js +19 -0
- package/dist/modern/shared/animation.js +9 -0
- package/dist/modern/spaced/Spaced.js +76 -0
- package/dist/modern/spaced/Spaced.stories.js +51 -0
- package/dist/modern/syntaxhighlighter/formatter.js +3 -0
- package/dist/modern/syntaxhighlighter/lazy-syntaxhighlighter.js +6 -0
- package/dist/modern/syntaxhighlighter/syntaxhighlighter-types.js +0 -0
- package/dist/modern/syntaxhighlighter/syntaxhighlighter.js +172 -0
- package/dist/modern/syntaxhighlighter/syntaxhighlighter.stories.js +187 -0
- package/dist/modern/tabs/tabs.js +214 -0
- package/dist/modern/tabs/tabs.stories.js +196 -0
- package/dist/modern/tooltip/ListItem.js +183 -0
- package/dist/modern/tooltip/ListItem.stories.js +71 -0
- package/dist/modern/tooltip/Tooltip.js +110 -0
- package/dist/modern/tooltip/Tooltip.stories.js +30 -0
- package/dist/modern/tooltip/TooltipLinkList.js +64 -0
- package/dist/modern/tooltip/TooltipLinkList.stories.js +54 -0
- package/dist/modern/tooltip/TooltipMessage.js +56 -0
- package/dist/modern/tooltip/TooltipMessage.stories.js +36 -0
- package/dist/modern/tooltip/TooltipNote.js +29 -0
- package/dist/modern/tooltip/TooltipNote.stories.js +17 -0
- package/dist/modern/tooltip/WithTooltip.js +152 -0
- package/dist/modern/tooltip/WithTooltip.stories.js +68 -0
- package/dist/modern/tooltip/lazy-WithTooltip.js +15 -0
- package/dist/modern/typings.d.js +0 -0
- package/dist/modern/typography/DocumentFormatting.js +420 -0
- package/dist/modern/typography/DocumentFormattingSample.md +141 -0
- package/dist/modern/typography/DocumentWrapper.js +287 -0
- package/dist/modern/typography/DocumentWrapper.stories.js +64 -0
- package/dist/modern/typography/link/link.js +175 -0
- package/dist/modern/typography/link/link.stories.js +52 -0
- package/dist/modern/typography/shared.js +47 -0
- package/dist/modern/typography/typography.stories.mdx +75 -0
- package/dist/ts3.4/ActionBar/ActionBar.d.ts +14 -0
- package/dist/ts3.4/Badge/Badge.d.ts +5 -0
- package/dist/ts3.4/Button/Button.d.ts +18 -0
- package/dist/ts3.4/Colors/SideBySide.d.ts +2 -0
- package/dist/ts3.4/Loader/Loader.d.ts +18 -0
- package/dist/ts3.4/ScrollArea/GlobalScrollAreaStyles.d.ts +5 -0
- package/dist/ts3.4/ScrollArea/OverlayScrollbars.d.ts +15 -0
- package/dist/ts3.4/ScrollArea/ScrollArea.d.ts +7 -0
- package/dist/ts3.4/Zoom/Zoom.d.ts +7 -0
- package/dist/ts3.4/Zoom/ZoomElement.d.ts +7 -0
- package/dist/ts3.4/Zoom/ZoomIFrame.d.ts +15 -0
- package/dist/ts3.4/Zoom/browserSupportsCssZoom.d.ts +1 -0
- package/dist/ts3.4/addon-panel/addon-panel.d.ts +6 -0
- package/dist/ts3.4/bar/bar.d.ts +12 -0
- package/dist/ts3.4/bar/button.d.ts +25 -0
- package/dist/ts3.4/bar/separator.d.ts +6 -0
- package/dist/ts3.4/blocks/ArgsTable/ArgControl.d.ts +8 -0
- package/dist/ts3.4/blocks/ArgsTable/ArgJsDoc.d.ts +8 -0
- package/dist/ts3.4/blocks/ArgsTable/ArgRow.d.ts +11 -0
- package/dist/ts3.4/blocks/ArgsTable/ArgValue.d.ts +8 -0
- package/dist/ts3.4/blocks/ArgsTable/ArgsTable.d.ts +30 -0
- package/dist/ts3.4/blocks/ArgsTable/NoControlsWarning.d.ts +2 -0
- package/dist/ts3.4/blocks/ArgsTable/SectionRow.d.ts +10 -0
- package/dist/ts3.4/blocks/ArgsTable/TabbedArgsTable.d.ts +7 -0
- package/dist/ts3.4/blocks/ArgsTable/index.d.ts +4 -0
- package/dist/ts3.4/blocks/ArgsTable/types.d.ts +36 -0
- package/dist/ts3.4/blocks/BlockBackgroundStyles.d.ts +2 -0
- package/dist/ts3.4/blocks/ColorPalette.d.ts +20 -0
- package/dist/ts3.4/blocks/Description.d.ts +9 -0
- package/dist/ts3.4/blocks/DocsPage.d.ts +11 -0
- package/dist/ts3.4/blocks/EmptyBlock.d.ts +2 -0
- package/dist/ts3.4/blocks/IFrame.d.ts +24 -0
- package/dist/ts3.4/blocks/IconGallery.d.ts +13 -0
- package/dist/ts3.4/blocks/Preview.d.ts +19 -0
- package/dist/ts3.4/blocks/Source.d.ts +21 -0
- package/dist/ts3.4/blocks/Story.d.ts +25 -0
- package/dist/ts3.4/blocks/Toolbar.d.ts +15 -0
- package/dist/ts3.4/blocks/Typeset.d.ts +12 -0
- package/dist/ts3.4/blocks/ZoomContext.d.ts +4 -0
- package/dist/ts3.4/blocks/index.d.ts +10 -0
- package/dist/ts3.4/brand/StorybookIcon.d.ts +2 -0
- package/dist/ts3.4/brand/StorybookLogo.d.ts +5 -0
- package/dist/ts3.4/controls/Boolean.d.ts +4 -0
- package/dist/ts3.4/controls/Color.d.ts +5 -0
- package/dist/ts3.4/controls/Date.d.ts +4 -0
- package/dist/ts3.4/controls/Files.d.ts +6 -0
- package/dist/ts3.4/controls/Number.d.ts +7 -0
- package/dist/ts3.4/controls/Object.d.ts +6 -0
- package/dist/ts3.4/controls/Range.d.ts +5 -0
- package/dist/ts3.4/controls/Text.d.ts +4 -0
- package/dist/ts3.4/controls/helpers.d.ts +14 -0
- package/dist/ts3.4/controls/index.d.ts +13 -0
- package/dist/ts3.4/controls/options/Checkbox.d.ts +8 -0
- package/dist/ts3.4/controls/options/Options.d.ts +4 -0
- package/dist/ts3.4/controls/options/Radio.d.ts +8 -0
- package/dist/ts3.4/controls/options/Select.d.ts +8 -0
- package/dist/ts3.4/controls/options/helpers.d.ts +4 -0
- package/dist/ts3.4/controls/options/index.d.ts +1 -0
- package/dist/ts3.4/controls/types.d.ts +56 -0
- package/dist/ts3.4/form/field/field.d.ts +5 -0
- package/dist/ts3.4/form/index.d.ts +15 -0
- package/dist/ts3.4/form/input/input.d.ts +26 -0
- package/dist/ts3.4/html.d.ts +2 -0
- package/dist/ts3.4/icon/icon.d.ts +12 -0
- package/dist/ts3.4/icon/icons.d.ts +174 -0
- package/dist/ts3.4/icon/svg.d.ts +6 -0
- package/dist/ts3.4/index.d.ts +34 -0
- package/dist/ts3.4/placeholder/placeholder.d.ts +2 -0
- package/dist/ts3.4/shared/animation.d.ts +1 -0
- package/dist/ts3.4/spaced/Spaced.d.ts +12 -0
- package/dist/ts3.4/syntaxhighlighter/formatter.d.ts +1 -0
- package/dist/ts3.4/syntaxhighlighter/lazy-syntaxhighlighter.d.ts +4 -0
- package/dist/ts3.4/syntaxhighlighter/syntaxhighlighter-types.d.ts +15 -0
- package/dist/ts3.4/syntaxhighlighter/syntaxhighlighter.d.ts +18 -0
- package/dist/ts3.4/tabs/tabs.d.ts +52 -0
- package/dist/ts3.4/tooltip/ListItem.d.ts +34 -0
- package/dist/ts3.4/tooltip/Tooltip.d.ts +21 -0
- package/dist/ts3.4/tooltip/TooltipLinkList.d.ts +12 -0
- package/dist/ts3.4/tooltip/TooltipMessage.d.ts +11 -0
- package/dist/ts3.4/tooltip/TooltipNote.d.ts +5 -0
- package/dist/ts3.4/tooltip/WithTooltip.d.ts +23 -0
- package/dist/ts3.4/tooltip/lazy-WithTooltip.d.ts +8 -0
- package/dist/ts3.4/typography/DocumentFormatting.d.ts +56 -0
- package/dist/ts3.4/typography/DocumentWrapper.d.ts +2 -0
- package/dist/ts3.4/typography/link/link.d.ts +22 -0
- package/dist/ts3.4/typography/shared.d.ts +11 -0
- package/dist/ts3.9/ActionBar/ActionBar.d.ts +14 -0
- package/dist/ts3.9/Badge/Badge.d.ts +5 -0
- package/dist/ts3.9/Button/Button.d.ts +18 -0
- package/dist/ts3.9/Colors/SideBySide.d.ts +2 -0
- package/dist/ts3.9/Loader/Loader.d.ts +18 -0
- package/dist/ts3.9/ScrollArea/GlobalScrollAreaStyles.d.ts +5 -0
- package/dist/ts3.9/ScrollArea/OverlayScrollbars.d.ts +15 -0
- package/dist/ts3.9/ScrollArea/ScrollArea.d.ts +7 -0
- package/dist/ts3.9/Zoom/Zoom.d.ts +7 -0
- package/dist/ts3.9/Zoom/ZoomElement.d.ts +7 -0
- package/dist/ts3.9/Zoom/ZoomIFrame.d.ts +15 -0
- package/dist/ts3.9/Zoom/browserSupportsCssZoom.d.ts +1 -0
- package/dist/ts3.9/addon-panel/addon-panel.d.ts +6 -0
- package/dist/ts3.9/bar/bar.d.ts +12 -0
- package/dist/ts3.9/bar/button.d.ts +25 -0
- package/dist/ts3.9/bar/separator.d.ts +6 -0
- package/dist/ts3.9/blocks/ArgsTable/ArgControl.d.ts +8 -0
- package/dist/ts3.9/blocks/ArgsTable/ArgJsDoc.d.ts +8 -0
- package/dist/ts3.9/blocks/ArgsTable/ArgRow.d.ts +11 -0
- package/dist/ts3.9/blocks/ArgsTable/ArgValue.d.ts +8 -0
- package/dist/ts3.9/blocks/ArgsTable/ArgsTable.d.ts +30 -0
- package/dist/ts3.9/blocks/ArgsTable/NoControlsWarning.d.ts +2 -0
- package/dist/ts3.9/blocks/ArgsTable/SectionRow.d.ts +10 -0
- package/dist/ts3.9/blocks/ArgsTable/TabbedArgsTable.d.ts +7 -0
- package/dist/ts3.9/blocks/ArgsTable/index.d.ts +4 -0
- package/dist/ts3.9/blocks/ArgsTable/types.d.ts +36 -0
- package/dist/ts3.9/blocks/BlockBackgroundStyles.d.ts +2 -0
- package/dist/ts3.9/blocks/ColorPalette.d.ts +20 -0
- package/dist/ts3.9/blocks/Description.d.ts +9 -0
- package/dist/ts3.9/blocks/DocsPage.d.ts +11 -0
- package/dist/ts3.9/blocks/EmptyBlock.d.ts +2 -0
- package/dist/ts3.9/blocks/IFrame.d.ts +24 -0
- package/dist/ts3.9/blocks/IconGallery.d.ts +13 -0
- package/dist/ts3.9/blocks/Preview.d.ts +19 -0
- package/dist/ts3.9/blocks/Source.d.ts +21 -0
- package/dist/ts3.9/blocks/Story.d.ts +25 -0
- package/dist/ts3.9/blocks/Toolbar.d.ts +15 -0
- package/dist/ts3.9/blocks/Typeset.d.ts +12 -0
- package/dist/ts3.9/blocks/ZoomContext.d.ts +4 -0
- package/dist/ts3.9/blocks/index.d.ts +10 -0
- package/dist/ts3.9/brand/StorybookIcon.d.ts +2 -0
- package/dist/ts3.9/brand/StorybookLogo.d.ts +5 -0
- package/dist/ts3.9/controls/Boolean.d.ts +4 -0
- package/dist/ts3.9/controls/Color.d.ts +5 -0
- package/dist/ts3.9/controls/Date.d.ts +4 -0
- package/dist/ts3.9/controls/Files.d.ts +6 -0
- package/dist/ts3.9/controls/Number.d.ts +7 -0
- package/dist/ts3.9/controls/Object.d.ts +6 -0
- package/dist/ts3.9/controls/Range.d.ts +5 -0
- package/dist/ts3.9/controls/Text.d.ts +4 -0
- package/dist/ts3.9/controls/helpers.d.ts +14 -0
- package/dist/ts3.9/controls/index.d.ts +13 -0
- package/dist/ts3.9/controls/options/Checkbox.d.ts +8 -0
- package/dist/ts3.9/controls/options/Options.d.ts +4 -0
- package/dist/ts3.9/controls/options/Radio.d.ts +8 -0
- package/dist/ts3.9/controls/options/Select.d.ts +8 -0
- package/dist/ts3.9/controls/options/helpers.d.ts +4 -0
- package/dist/ts3.9/controls/options/index.d.ts +1 -0
- package/dist/ts3.9/controls/types.d.ts +56 -0
- package/dist/ts3.9/form/field/field.d.ts +5 -0
- package/dist/ts3.9/form/index.d.ts +15 -0
- package/dist/ts3.9/form/input/input.d.ts +26 -0
- package/dist/ts3.9/html.d.ts +2 -0
- package/dist/ts3.9/icon/icon.d.ts +12 -0
- package/dist/ts3.9/icon/icons.d.ts +174 -0
- package/dist/ts3.9/icon/svg.d.ts +6 -0
- package/dist/ts3.9/index.d.ts +34 -0
- package/dist/ts3.9/placeholder/placeholder.d.ts +2 -0
- package/dist/ts3.9/shared/animation.d.ts +1 -0
- package/dist/ts3.9/spaced/Spaced.d.ts +12 -0
- package/dist/ts3.9/syntaxhighlighter/formatter.d.ts +1 -0
- package/dist/ts3.9/syntaxhighlighter/lazy-syntaxhighlighter.d.ts +4 -0
- package/dist/ts3.9/syntaxhighlighter/syntaxhighlighter-types.d.ts +15 -0
- package/dist/ts3.9/syntaxhighlighter/syntaxhighlighter.d.ts +18 -0
- package/dist/ts3.9/tabs/tabs.d.ts +52 -0
- package/dist/ts3.9/tooltip/ListItem.d.ts +34 -0
- package/dist/ts3.9/tooltip/Tooltip.d.ts +21 -0
- package/dist/ts3.9/tooltip/TooltipLinkList.d.ts +12 -0
- package/dist/ts3.9/tooltip/TooltipMessage.d.ts +11 -0
- package/dist/ts3.9/tooltip/TooltipNote.d.ts +5 -0
- package/dist/ts3.9/tooltip/WithTooltip.d.ts +23 -0
- package/dist/ts3.9/tooltip/lazy-WithTooltip.d.ts +8 -0
- package/dist/ts3.9/typography/DocumentFormatting.d.ts +56 -0
- package/dist/ts3.9/typography/DocumentWrapper.d.ts +2 -0
- package/dist/ts3.9/typography/link/link.d.ts +22 -0
- package/dist/ts3.9/typography/shared.d.ts +11 -0
- package/package.json +4 -4
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import global from 'global';
|
|
2
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
3
|
+
import React, { useCallback, useMemo, useState, useEffect, useRef } from 'react';
|
|
4
|
+
import { styled, useTheme } from '@storybook/theming'; // @ts-ignore
|
|
5
|
+
|
|
6
|
+
import { JsonTree, getObjectType } from './react-editable-json-tree';
|
|
7
|
+
import { getControlId, getControlSetterButtonId } from './helpers';
|
|
8
|
+
import { Form } from '../form';
|
|
9
|
+
import { Icons } from '../icon/icon';
|
|
10
|
+
import { IconButton } from '../bar/button';
|
|
11
|
+
const {
|
|
12
|
+
window: globalWindow
|
|
13
|
+
} = global;
|
|
14
|
+
const Wrapper = styled.div(({
|
|
15
|
+
theme
|
|
16
|
+
}) => ({
|
|
17
|
+
position: 'relative',
|
|
18
|
+
display: 'flex',
|
|
19
|
+
'.rejt-tree': {
|
|
20
|
+
marginLeft: '1rem',
|
|
21
|
+
fontSize: '13px'
|
|
22
|
+
},
|
|
23
|
+
'.rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed': {
|
|
24
|
+
'& > svg': {
|
|
25
|
+
opacity: 0,
|
|
26
|
+
transition: 'opacity 0.2s'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
'.rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed': {
|
|
30
|
+
'& > svg': {
|
|
31
|
+
opacity: 1
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
'.rejt-edit-form button': {
|
|
35
|
+
display: 'none'
|
|
36
|
+
},
|
|
37
|
+
'.rejt-add-form': {
|
|
38
|
+
marginLeft: 10
|
|
39
|
+
},
|
|
40
|
+
'.rejt-add-value-node': {
|
|
41
|
+
display: 'inline-flex',
|
|
42
|
+
alignItems: 'center'
|
|
43
|
+
},
|
|
44
|
+
'.rejt-name': {
|
|
45
|
+
lineHeight: '22px'
|
|
46
|
+
},
|
|
47
|
+
'.rejt-not-collapsed-delimiter': {
|
|
48
|
+
lineHeight: '22px'
|
|
49
|
+
},
|
|
50
|
+
'.rejt-plus-menu': {
|
|
51
|
+
marginLeft: 5
|
|
52
|
+
},
|
|
53
|
+
'.rejt-object-node > span > *': {
|
|
54
|
+
position: 'relative',
|
|
55
|
+
zIndex: 2
|
|
56
|
+
},
|
|
57
|
+
'.rejt-object-node, .rejt-array-node': {
|
|
58
|
+
position: 'relative'
|
|
59
|
+
},
|
|
60
|
+
'.rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before': {
|
|
61
|
+
content: '""',
|
|
62
|
+
position: 'absolute',
|
|
63
|
+
top: 0,
|
|
64
|
+
display: 'block',
|
|
65
|
+
width: '100%',
|
|
66
|
+
marginLeft: '-1rem',
|
|
67
|
+
padding: '0 4px 0 1rem',
|
|
68
|
+
height: 22
|
|
69
|
+
},
|
|
70
|
+
'.rejt-collapsed::before, .rejt-not-collapsed::before': {
|
|
71
|
+
zIndex: 1,
|
|
72
|
+
background: 'transparent',
|
|
73
|
+
borderRadius: 4,
|
|
74
|
+
transition: 'background 0.2s',
|
|
75
|
+
pointerEvents: 'none',
|
|
76
|
+
opacity: 0.1
|
|
77
|
+
},
|
|
78
|
+
'.rejt-object-node:hover, .rejt-array-node:hover': {
|
|
79
|
+
'& > .rejt-collapsed::before, & > .rejt-not-collapsed::before': {
|
|
80
|
+
background: theme.color.secondary
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
'.rejt-collapsed::after, .rejt-not-collapsed::after': {
|
|
84
|
+
content: '""',
|
|
85
|
+
position: 'absolute',
|
|
86
|
+
display: 'inline-block',
|
|
87
|
+
pointerEvents: 'none',
|
|
88
|
+
width: 0,
|
|
89
|
+
height: 0
|
|
90
|
+
},
|
|
91
|
+
'.rejt-collapsed::after': {
|
|
92
|
+
left: -8,
|
|
93
|
+
top: 8,
|
|
94
|
+
borderTop: '3px solid transparent',
|
|
95
|
+
borderBottom: '3px solid transparent',
|
|
96
|
+
borderLeft: '3px solid rgba(153,153,153,0.6)'
|
|
97
|
+
},
|
|
98
|
+
'.rejt-not-collapsed::after': {
|
|
99
|
+
left: -10,
|
|
100
|
+
top: 10,
|
|
101
|
+
borderTop: '3px solid rgba(153,153,153,0.6)',
|
|
102
|
+
borderLeft: '3px solid transparent',
|
|
103
|
+
borderRight: '3px solid transparent'
|
|
104
|
+
},
|
|
105
|
+
'.rejt-value': {
|
|
106
|
+
display: 'inline-block',
|
|
107
|
+
border: '1px solid transparent',
|
|
108
|
+
borderRadius: 4,
|
|
109
|
+
margin: '1px 0',
|
|
110
|
+
padding: '0 4px',
|
|
111
|
+
cursor: 'text',
|
|
112
|
+
color: theme.color.defaultText
|
|
113
|
+
},
|
|
114
|
+
'.rejt-value-node:hover > .rejt-value': {
|
|
115
|
+
background: theme.background.app,
|
|
116
|
+
borderColor: theme.color.border
|
|
117
|
+
}
|
|
118
|
+
}));
|
|
119
|
+
const Button = styled.button(({
|
|
120
|
+
theme,
|
|
121
|
+
primary
|
|
122
|
+
}) => ({
|
|
123
|
+
border: 0,
|
|
124
|
+
height: 20,
|
|
125
|
+
margin: 1,
|
|
126
|
+
borderRadius: 4,
|
|
127
|
+
background: primary ? theme.color.secondary : 'transparent',
|
|
128
|
+
color: primary ? theme.color.lightest : theme.color.dark,
|
|
129
|
+
fontWeight: primary ? 'bold' : 'normal',
|
|
130
|
+
cursor: 'pointer',
|
|
131
|
+
order: primary ? 'initial' : 9
|
|
132
|
+
}));
|
|
133
|
+
const ActionIcon = styled(Icons)(({
|
|
134
|
+
theme,
|
|
135
|
+
icon,
|
|
136
|
+
disabled
|
|
137
|
+
}) => ({
|
|
138
|
+
display: 'inline-block',
|
|
139
|
+
verticalAlign: 'middle',
|
|
140
|
+
width: 15,
|
|
141
|
+
height: 15,
|
|
142
|
+
padding: 3,
|
|
143
|
+
marginLeft: 5,
|
|
144
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
145
|
+
color: theme.color.mediumdark,
|
|
146
|
+
'&:hover': disabled ? {} : {
|
|
147
|
+
color: icon === 'subtract' ? theme.color.negative : theme.color.ancillary
|
|
148
|
+
},
|
|
149
|
+
'svg + &': {
|
|
150
|
+
marginLeft: 0
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
const Input = styled.input(({
|
|
154
|
+
theme,
|
|
155
|
+
placeholder
|
|
156
|
+
}) => ({
|
|
157
|
+
outline: 0,
|
|
158
|
+
margin: placeholder ? 1 : '1px 0',
|
|
159
|
+
padding: '3px 4px',
|
|
160
|
+
color: theme.color.defaultText,
|
|
161
|
+
background: theme.background.app,
|
|
162
|
+
border: `1px solid ${theme.color.border}`,
|
|
163
|
+
borderRadius: 4,
|
|
164
|
+
lineHeight: '14px',
|
|
165
|
+
width: placeholder === 'Key' ? 80 : 120,
|
|
166
|
+
'&:focus': {
|
|
167
|
+
border: `1px solid ${theme.color.secondary}`
|
|
168
|
+
}
|
|
169
|
+
}));
|
|
170
|
+
const RawButton = styled(IconButton)(({
|
|
171
|
+
theme
|
|
172
|
+
}) => ({
|
|
173
|
+
position: 'absolute',
|
|
174
|
+
zIndex: 2,
|
|
175
|
+
top: 2,
|
|
176
|
+
right: 2,
|
|
177
|
+
height: 21,
|
|
178
|
+
padding: '0 3px',
|
|
179
|
+
background: theme.background.bar,
|
|
180
|
+
border: `1px solid ${theme.color.border}`,
|
|
181
|
+
borderRadius: 3,
|
|
182
|
+
color: theme.color.mediumdark,
|
|
183
|
+
fontSize: '9px',
|
|
184
|
+
fontWeight: 'bold',
|
|
185
|
+
span: {
|
|
186
|
+
marginLeft: 3,
|
|
187
|
+
marginTop: 1
|
|
188
|
+
}
|
|
189
|
+
}));
|
|
190
|
+
const RawInput = styled(Form.Textarea)(({
|
|
191
|
+
theme
|
|
192
|
+
}) => ({
|
|
193
|
+
flex: 1,
|
|
194
|
+
padding: '7px 6px',
|
|
195
|
+
fontFamily: theme.typography.fonts.mono,
|
|
196
|
+
fontSize: '12px',
|
|
197
|
+
lineHeight: '18px',
|
|
198
|
+
'&::placeholder': {
|
|
199
|
+
fontFamily: theme.typography.fonts.base,
|
|
200
|
+
fontSize: '13px'
|
|
201
|
+
},
|
|
202
|
+
'&:placeholder-shown': {
|
|
203
|
+
padding: '7px 10px'
|
|
204
|
+
}
|
|
205
|
+
}));
|
|
206
|
+
const ENTER_EVENT = {
|
|
207
|
+
bubbles: true,
|
|
208
|
+
cancelable: true,
|
|
209
|
+
key: 'Enter',
|
|
210
|
+
code: 'Enter',
|
|
211
|
+
keyCode: 13
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
const dispatchEnterKey = event => {
|
|
215
|
+
event.currentTarget.dispatchEvent(new globalWindow.KeyboardEvent('keydown', ENTER_EVENT));
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const selectValue = event => {
|
|
219
|
+
event.currentTarget.select();
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
const getCustomStyleFunction = theme => () => ({
|
|
223
|
+
name: {
|
|
224
|
+
color: theme.color.secondary
|
|
225
|
+
},
|
|
226
|
+
collapsed: {
|
|
227
|
+
color: theme.color.dark
|
|
228
|
+
},
|
|
229
|
+
ul: {
|
|
230
|
+
listStyle: 'none',
|
|
231
|
+
margin: '0 0 0 1rem',
|
|
232
|
+
padding: 0
|
|
233
|
+
},
|
|
234
|
+
li: {
|
|
235
|
+
outline: 0
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
export const ObjectControl = ({
|
|
240
|
+
name,
|
|
241
|
+
value,
|
|
242
|
+
onChange
|
|
243
|
+
}) => {
|
|
244
|
+
const theme = useTheme();
|
|
245
|
+
const data = useMemo(() => value && cloneDeep(value), [value]);
|
|
246
|
+
const hasData = data !== null && data !== undefined;
|
|
247
|
+
const [showRaw, setShowRaw] = useState(!hasData);
|
|
248
|
+
const [parseError, setParseError] = useState(null);
|
|
249
|
+
const updateRaw = useCallback(raw => {
|
|
250
|
+
try {
|
|
251
|
+
if (raw) onChange(JSON.parse(raw));
|
|
252
|
+
setParseError(undefined);
|
|
253
|
+
} catch (e) {
|
|
254
|
+
setParseError(e);
|
|
255
|
+
}
|
|
256
|
+
}, [onChange]);
|
|
257
|
+
const [forceVisible, setForceVisible] = useState(false);
|
|
258
|
+
const onForceVisible = useCallback(() => {
|
|
259
|
+
onChange({});
|
|
260
|
+
setForceVisible(true);
|
|
261
|
+
}, [setForceVisible]);
|
|
262
|
+
const htmlElRef = useRef(null);
|
|
263
|
+
useEffect(() => {
|
|
264
|
+
if (forceVisible && htmlElRef.current) htmlElRef.current.select();
|
|
265
|
+
}, [forceVisible]);
|
|
266
|
+
|
|
267
|
+
if (!hasData) {
|
|
268
|
+
return /*#__PURE__*/React.createElement(Form.Button, {
|
|
269
|
+
id: getControlSetterButtonId(name),
|
|
270
|
+
onClick: onForceVisible
|
|
271
|
+
}, "Set object");
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const rawJSONForm = /*#__PURE__*/React.createElement(RawInput, {
|
|
275
|
+
ref: htmlElRef,
|
|
276
|
+
id: getControlId(name),
|
|
277
|
+
name: name,
|
|
278
|
+
defaultValue: value === null ? '' : JSON.stringify(value, null, 2),
|
|
279
|
+
onBlur: event => updateRaw(event.target.value),
|
|
280
|
+
placeholder: "Edit JSON string...",
|
|
281
|
+
autoFocus: forceVisible,
|
|
282
|
+
valid: parseError ? 'error' : null
|
|
283
|
+
});
|
|
284
|
+
return /*#__PURE__*/React.createElement(Wrapper, null, ['Object', 'Array'].includes(getObjectType(data)) && /*#__PURE__*/React.createElement(RawButton, {
|
|
285
|
+
onClick: () => setShowRaw(v => !v)
|
|
286
|
+
}, /*#__PURE__*/React.createElement(Icons, {
|
|
287
|
+
icon: showRaw ? 'eyeclose' : 'eye'
|
|
288
|
+
}), /*#__PURE__*/React.createElement("span", null, "RAW")), !showRaw ? /*#__PURE__*/React.createElement(JsonTree, {
|
|
289
|
+
data: data,
|
|
290
|
+
rootName: name,
|
|
291
|
+
onFullyUpdate: onChange,
|
|
292
|
+
getStyle: getCustomStyleFunction(theme),
|
|
293
|
+
cancelButtonElement: /*#__PURE__*/React.createElement(Button, {
|
|
294
|
+
type: "button"
|
|
295
|
+
}, "Cancel"),
|
|
296
|
+
editButtonElement: /*#__PURE__*/React.createElement(Button, {
|
|
297
|
+
type: "submit"
|
|
298
|
+
}, "Save"),
|
|
299
|
+
addButtonElement: /*#__PURE__*/React.createElement(Button, {
|
|
300
|
+
type: "submit",
|
|
301
|
+
primary: true
|
|
302
|
+
}, "Save"),
|
|
303
|
+
plusMenuElement: /*#__PURE__*/React.createElement(ActionIcon, {
|
|
304
|
+
icon: "add"
|
|
305
|
+
}),
|
|
306
|
+
minusMenuElement: /*#__PURE__*/React.createElement(ActionIcon, {
|
|
307
|
+
icon: "subtract"
|
|
308
|
+
}),
|
|
309
|
+
inputElement: (_, __, ___, key) => key ? /*#__PURE__*/React.createElement(Input, {
|
|
310
|
+
onFocus: selectValue,
|
|
311
|
+
onBlur: dispatchEnterKey
|
|
312
|
+
}) : /*#__PURE__*/React.createElement(Input, null),
|
|
313
|
+
fallback: rawJSONForm
|
|
314
|
+
}) : rawJSONForm);
|
|
315
|
+
};
|
|
316
|
+
ObjectControl.displayName = "ObjectControl";
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { ObjectControl } from './Object';
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Controls/Object',
|
|
5
|
+
component: ObjectControl
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const Template = initialValue => {
|
|
9
|
+
const [value, setValue] = useState(initialValue);
|
|
10
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ObjectControl, {
|
|
11
|
+
name: "object",
|
|
12
|
+
value: value,
|
|
13
|
+
onChange: newVal => setValue(newVal)
|
|
14
|
+
}), /*#__PURE__*/React.createElement("pre", null, JSON.stringify(value) || 'undefined'));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const Basic = () => Template({
|
|
18
|
+
name: 'Michael',
|
|
19
|
+
nested: {
|
|
20
|
+
something: true
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
export const Empty = () => Template({});
|
|
24
|
+
export const Null = () => Template(null);
|
|
25
|
+
export const Undefined = () => Template(undefined);
|
|
26
|
+
export const ValidatedAsArray = () => {
|
|
27
|
+
const [value, setValue] = useState([]);
|
|
28
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ObjectControl, {
|
|
29
|
+
name: "object",
|
|
30
|
+
argType: {
|
|
31
|
+
type: {
|
|
32
|
+
name: 'array'
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
value: value,
|
|
36
|
+
onChange: newVal => setValue(newVal)
|
|
37
|
+
}), /*#__PURE__*/React.createElement("p", null, value && JSON.stringify(value)));
|
|
38
|
+
};
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { styled } from '@storybook/theming';
|
|
3
|
+
import { lighten, darken, rgba } from 'polished';
|
|
4
|
+
import { getControlId } from './helpers';
|
|
5
|
+
import { parse } from './Number';
|
|
6
|
+
const RangeInput = styled.input(({
|
|
7
|
+
theme,
|
|
8
|
+
min,
|
|
9
|
+
max,
|
|
10
|
+
value
|
|
11
|
+
}) => ({
|
|
12
|
+
// Resytled using http://danielstern.ca/range.css/#/
|
|
13
|
+
'&': {
|
|
14
|
+
width: '100%',
|
|
15
|
+
backgroundColor: 'transparent',
|
|
16
|
+
appearance: 'none'
|
|
17
|
+
},
|
|
18
|
+
'&::-webkit-slider-runnable-track': {
|
|
19
|
+
background: theme.base === 'light' ? `linear-gradient(to right,
|
|
20
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
21
|
+
${darken(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
22
|
+
${darken(0.02, theme.input.background)} 100%)` : `linear-gradient(to right,
|
|
23
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
24
|
+
${lighten(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
25
|
+
${lighten(0.02, theme.input.background)} 100%)`,
|
|
26
|
+
boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
|
|
27
|
+
borderRadius: 6,
|
|
28
|
+
width: '100%',
|
|
29
|
+
height: 6,
|
|
30
|
+
cursor: 'pointer'
|
|
31
|
+
},
|
|
32
|
+
'&::-webkit-slider-thumb': {
|
|
33
|
+
marginTop: '-6px',
|
|
34
|
+
width: 16,
|
|
35
|
+
height: 16,
|
|
36
|
+
border: `1px solid ${rgba(theme.appBorderColor, 0.2)}`,
|
|
37
|
+
borderRadius: '50px',
|
|
38
|
+
boxShadow: `0 1px 3px 0px ${rgba(theme.appBorderColor, 0.2)}`,
|
|
39
|
+
cursor: 'grab',
|
|
40
|
+
appearance: 'none',
|
|
41
|
+
background: `${theme.input.background}`,
|
|
42
|
+
transition: 'all 150ms ease-out',
|
|
43
|
+
'&:hover': {
|
|
44
|
+
background: `${darken(0.05, theme.input.background)}`,
|
|
45
|
+
transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
|
|
46
|
+
transition: 'all 50ms ease-out'
|
|
47
|
+
},
|
|
48
|
+
'&:active': {
|
|
49
|
+
background: `${theme.input.background}`,
|
|
50
|
+
transform: 'scale3d(1, 1, 1) translateY(0px)',
|
|
51
|
+
cursor: 'grabbing'
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
'&:focus': {
|
|
55
|
+
outline: 'none',
|
|
56
|
+
'&::-webkit-slider-runnable-track': {
|
|
57
|
+
borderColor: rgba(theme.color.secondary, 0.4)
|
|
58
|
+
},
|
|
59
|
+
'&::-webkit-slider-thumb': {
|
|
60
|
+
borderColor: theme.color.secondary,
|
|
61
|
+
boxShadow: `0 0px 5px 0px ${theme.color.secondary}`
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
'&::-moz-range-track': {
|
|
65
|
+
background: theme.base === 'light' ? `linear-gradient(to right,
|
|
66
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
67
|
+
${darken(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
68
|
+
${darken(0.02, theme.input.background)} 100%)` : `linear-gradient(to right,
|
|
69
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
70
|
+
${lighten(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
71
|
+
${lighten(0.02, theme.input.background)} 100%)`,
|
|
72
|
+
boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
|
|
73
|
+
borderRadius: 6,
|
|
74
|
+
width: '100%',
|
|
75
|
+
height: 6,
|
|
76
|
+
cursor: 'pointer',
|
|
77
|
+
outline: 'none'
|
|
78
|
+
},
|
|
79
|
+
'&::-moz-range-thumb': {
|
|
80
|
+
width: 16,
|
|
81
|
+
height: 16,
|
|
82
|
+
border: `1px solid ${rgba(theme.color.border, 0.2)}`,
|
|
83
|
+
borderRadius: '50px',
|
|
84
|
+
boxShadow: `0 1px 3px 0px ${rgba(theme.color.border, 0.2)}`,
|
|
85
|
+
cursor: 'grab',
|
|
86
|
+
background: `${theme.input.background}`,
|
|
87
|
+
transition: 'all 150ms ease-out',
|
|
88
|
+
'&:hover': {
|
|
89
|
+
background: `${darken(0.05, theme.input.background)}`,
|
|
90
|
+
transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
|
|
91
|
+
transition: 'all 50ms ease-out'
|
|
92
|
+
},
|
|
93
|
+
'&:active': {
|
|
94
|
+
background: `${theme.input.background}`,
|
|
95
|
+
transform: 'scale3d(1, 1, 1) translateY(0px)',
|
|
96
|
+
cursor: 'grabbing'
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
'&::-ms-track': {
|
|
100
|
+
background: theme.base === 'light' ? `linear-gradient(to right,
|
|
101
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
102
|
+
${darken(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
103
|
+
${darken(0.02, theme.input.background)} 100%)` : `linear-gradient(to right,
|
|
104
|
+
${theme.color.green} 0%, ${theme.color.green} ${(value - min) / (max - min) * 100}%,
|
|
105
|
+
${lighten(0.02, theme.input.background)} ${(value - min) / (max - min) * 100}%,
|
|
106
|
+
${lighten(0.02, theme.input.background)} 100%)`,
|
|
107
|
+
boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
|
|
108
|
+
color: 'transparent',
|
|
109
|
+
width: '100%',
|
|
110
|
+
height: '6px',
|
|
111
|
+
cursor: 'pointer'
|
|
112
|
+
},
|
|
113
|
+
'&::-ms-fill-lower': {
|
|
114
|
+
borderRadius: 6
|
|
115
|
+
},
|
|
116
|
+
'&::-ms-fill-upper': {
|
|
117
|
+
borderRadius: 6
|
|
118
|
+
},
|
|
119
|
+
'&::-ms-thumb': {
|
|
120
|
+
width: 16,
|
|
121
|
+
height: 16,
|
|
122
|
+
background: `${theme.input.background}`,
|
|
123
|
+
border: `1px solid ${rgba(theme.appBorderColor, 0.2)}`,
|
|
124
|
+
borderRadius: 50,
|
|
125
|
+
cursor: 'grab',
|
|
126
|
+
marginTop: 0
|
|
127
|
+
},
|
|
128
|
+
'@supports (-ms-ime-align:auto)': {
|
|
129
|
+
'input[type=range]': {
|
|
130
|
+
margin: '0'
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}));
|
|
134
|
+
const RangeLabel = styled.span({
|
|
135
|
+
paddingLeft: 5,
|
|
136
|
+
paddingRight: 5,
|
|
137
|
+
fontSize: 12,
|
|
138
|
+
whiteSpace: 'nowrap',
|
|
139
|
+
fontFeatureSettings: 'tnum',
|
|
140
|
+
fontVariantNumeric: 'tabular-nums'
|
|
141
|
+
});
|
|
142
|
+
const RangeWrapper = styled.div({
|
|
143
|
+
display: 'flex',
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
width: '100%'
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
function getNumberOfDecimalPlaces(number) {
|
|
149
|
+
const match = number.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
|
|
150
|
+
return !match ? 0 : Math.max(0, // Number of digits right of decimal point.
|
|
151
|
+
(match[1] ? match[1].length : 0) - ( // Adjust for scientific notation.
|
|
152
|
+
match[2] ? +match[2] : 0));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export const RangeControl = ({
|
|
156
|
+
name,
|
|
157
|
+
value,
|
|
158
|
+
onChange,
|
|
159
|
+
min = 0,
|
|
160
|
+
max = 100,
|
|
161
|
+
step = 1,
|
|
162
|
+
onBlur,
|
|
163
|
+
onFocus
|
|
164
|
+
}) => {
|
|
165
|
+
const handleChange = event => {
|
|
166
|
+
onChange(parse(event.target.value));
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const hasValue = value !== undefined;
|
|
170
|
+
const numberOFDecimalsPlaces = useMemo(() => getNumberOfDecimalPlaces(step), [step]);
|
|
171
|
+
return /*#__PURE__*/React.createElement(RangeWrapper, null, /*#__PURE__*/React.createElement(RangeLabel, null, min), /*#__PURE__*/React.createElement(RangeInput, {
|
|
172
|
+
id: getControlId(name),
|
|
173
|
+
type: "range",
|
|
174
|
+
onChange: handleChange,
|
|
175
|
+
name,
|
|
176
|
+
value,
|
|
177
|
+
min,
|
|
178
|
+
max,
|
|
179
|
+
step,
|
|
180
|
+
onFocus,
|
|
181
|
+
onBlur
|
|
182
|
+
}), /*#__PURE__*/React.createElement(RangeLabel, null, `${hasValue ? value.toFixed(numberOFDecimalsPlaces) : '--'}`, " / ", max));
|
|
183
|
+
};
|
|
184
|
+
RangeControl.displayName = "RangeControl";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { RangeControl } from './Range';
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Controls/Range',
|
|
5
|
+
component: RangeControl
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const Template = ({
|
|
9
|
+
initialValue,
|
|
10
|
+
step,
|
|
11
|
+
max
|
|
12
|
+
}) => {
|
|
13
|
+
const [value, setValue] = useState(initialValue);
|
|
14
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RangeControl, {
|
|
15
|
+
name: "range",
|
|
16
|
+
value: value,
|
|
17
|
+
onChange: newVal => setValue(newVal),
|
|
18
|
+
min: 0,
|
|
19
|
+
max: max,
|
|
20
|
+
step: step
|
|
21
|
+
}), /*#__PURE__*/React.createElement("pre", null, JSON.stringify(value) || 'undefined'));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const Basic = () => Template({
|
|
25
|
+
initialValue: 10,
|
|
26
|
+
max: 20,
|
|
27
|
+
step: 2
|
|
28
|
+
});
|
|
29
|
+
export const Zero = () => Template({
|
|
30
|
+
initialValue: 0,
|
|
31
|
+
max: 20,
|
|
32
|
+
step: 2
|
|
33
|
+
});
|
|
34
|
+
export const Decimals = () => Template({
|
|
35
|
+
step: 0.000000000002,
|
|
36
|
+
initialValue: 1989.123123123123,
|
|
37
|
+
max: 2000
|
|
38
|
+
});
|
|
39
|
+
export const BigMaxValue = () => Template({
|
|
40
|
+
step: 1000,
|
|
41
|
+
initialValue: 15,
|
|
42
|
+
max: 10000000000
|
|
43
|
+
});
|
|
44
|
+
export const Undefined = () => Template({});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
|
+
import { styled } from '@storybook/theming';
|
|
3
|
+
import { Form } from '../form';
|
|
4
|
+
import { getControlId, getControlSetterButtonId } from './helpers';
|
|
5
|
+
const Wrapper = styled.label({
|
|
6
|
+
display: 'flex'
|
|
7
|
+
});
|
|
8
|
+
export const TextControl = ({
|
|
9
|
+
name,
|
|
10
|
+
value,
|
|
11
|
+
onChange,
|
|
12
|
+
onFocus,
|
|
13
|
+
onBlur
|
|
14
|
+
}) => {
|
|
15
|
+
const handleChange = event => {
|
|
16
|
+
onChange(event.target.value);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const [forceVisible, setForceVisible] = useState(false);
|
|
20
|
+
const onForceVisible = useCallback(() => {
|
|
21
|
+
onChange('');
|
|
22
|
+
setForceVisible(true);
|
|
23
|
+
}, [setForceVisible]);
|
|
24
|
+
|
|
25
|
+
if (value === undefined) {
|
|
26
|
+
return /*#__PURE__*/React.createElement(Form.Button, {
|
|
27
|
+
id: getControlSetterButtonId(name),
|
|
28
|
+
onClick: onForceVisible
|
|
29
|
+
}, "Set string");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const isValid = typeof value === 'string';
|
|
33
|
+
return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(Form.Textarea, {
|
|
34
|
+
id: getControlId(name),
|
|
35
|
+
onChange: handleChange,
|
|
36
|
+
size: "flex",
|
|
37
|
+
placeholder: "Edit string...",
|
|
38
|
+
autoFocus: forceVisible,
|
|
39
|
+
valid: isValid ? null : 'error',
|
|
40
|
+
name,
|
|
41
|
+
value: isValid ? value : '',
|
|
42
|
+
onFocus,
|
|
43
|
+
onBlur
|
|
44
|
+
}));
|
|
45
|
+
};
|
|
46
|
+
TextControl.displayName = "TextControl";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { TextControl } from './Text';
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Controls/Text',
|
|
5
|
+
component: TextControl
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const Template = initialValue => {
|
|
9
|
+
const [value, setValue] = useState(initialValue);
|
|
10
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextControl, {
|
|
11
|
+
name: "Text",
|
|
12
|
+
value: value,
|
|
13
|
+
onChange: newVal => setValue(newVal)
|
|
14
|
+
}), /*#__PURE__*/React.createElement("pre", null, JSON.stringify(value) || 'undefined'));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const Basic = () => Template('Hello text');
|
|
18
|
+
export const Empty = () => Template('');
|
|
19
|
+
export const Undefined = () => Template(undefined);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds `control` prefix to make ID attribute more specific.
|
|
3
|
+
* Removes spaces because spaces are not allowed in ID attributes
|
|
4
|
+
* @link http://xahlee.info/js/html_allowed_chars_in_attribute.html
|
|
5
|
+
* @example getControlId('my prop name') -> 'control-my-prop-name'
|
|
6
|
+
*/
|
|
7
|
+
export const getControlId = value => `control-${value.replace(/\s+/g, '-')}`;
|
|
8
|
+
/**
|
|
9
|
+
* Adds `set` prefix to make ID attribute more specific.
|
|
10
|
+
* Removes spaces because spaces are not allowed in ID attributes
|
|
11
|
+
* @link http://xahlee.info/js/html_allowed_chars_in_attribute.html
|
|
12
|
+
* @example getControlSetterButtonId('my prop name') -> 'set-my-prop-name'
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export const getControlSetterButtonId = value => `set-${value.replace(/\s+/g, '-')}`;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { Suspense } from 'react';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export * from './Boolean';
|
|
4
|
+
const LazyColorControl = /*#__PURE__*/React.lazy(() => import('./Color'));
|
|
5
|
+
export const ColorControl = props => /*#__PURE__*/React.createElement(Suspense, {
|
|
6
|
+
fallback: /*#__PURE__*/React.createElement("div", null)
|
|
7
|
+
}, /*#__PURE__*/React.createElement(LazyColorControl, props));
|
|
8
|
+
ColorControl.displayName = "ColorControl";
|
|
9
|
+
export * from './Date';
|
|
10
|
+
export * from './Number';
|
|
11
|
+
export * from './options';
|
|
12
|
+
export * from './Object';
|
|
13
|
+
export * from './Range';
|
|
14
|
+
export * from './Text';
|
|
15
|
+
export * from './Files';
|