@eccenca/gui-elements 25.0.0 → 25.1.0-changeupgradedtoreact18cmem6639.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +124 -0
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +30 -26
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +11 -5
- package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +13 -6
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +49 -11
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/markdown/Markdown.js +2 -2
- package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +1 -1
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/graph.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/linking.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/workflow.js +0 -2
- package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/cjs/common/Intent/index.js +1 -1
- package/dist/cjs/common/Intent/index.js.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
- package/dist/cjs/common/utils/colorHash.js +26 -12
- package/dist/cjs/common/utils/colorHash.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationSidebarNavigation.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationTitle.js +5 -1
- package/dist/cjs/components/Application/ApplicationTitle.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
- package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
- package/dist/cjs/components/Application/index.js +1 -0
- package/dist/cjs/components/Application/index.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +2 -9
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +6 -2
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ColorField/ColorField.js +114 -0
- package/dist/cjs/components/ColorField/ColorField.js.map +1 -0
- package/dist/cjs/components/ContentGroup/ContentGroup.js +19 -19
- package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextMenu.js +4 -4
- package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js +3 -2
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +48 -0
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
- package/dist/cjs/components/Icon/IconButton.js +2 -2
- package/dist/cjs/components/Icon/IconButton.js.map +1 -1
- package/dist/cjs/components/Icon/canonicalIconNames.js +10 -1
- package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/cjs/components/Icon/transformIcon.js +14 -0
- package/dist/cjs/components/Icon/transformIcon.js.map +1 -0
- package/dist/cjs/components/MultiSelect/MultiSelect.js +63 -24
- package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/cjs/components/NotAvailable/NotAvailable.js +42 -0
- package/dist/cjs/components/NotAvailable/NotAvailable.js.map +1 -0
- package/dist/cjs/components/Notification/Notification.js.map +1 -1
- package/dist/cjs/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
- package/dist/cjs/components/RadioButton/RadioButton.js +5 -2
- package/dist/cjs/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +6 -4
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/Table/Table.js.map +1 -1
- package/dist/cjs/components/Table/TableContainer.js +1 -1
- package/dist/cjs/components/Table/TableContainer.js.map +1 -1
- package/dist/cjs/components/Table/TableExpandRow.js +2 -2
- package/dist/cjs/components/Table/TableExpandRow.js.map +1 -1
- package/dist/cjs/components/TextField/useTextValidation.js +17 -8
- package/dist/cjs/components/TextField/useTextValidation.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +11 -7
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Typography/InlineText.js +29 -0
- package/dist/cjs/components/Typography/InlineText.js.map +1 -0
- package/dist/cjs/components/Typography/index.js +1 -0
- package/dist/cjs/components/Typography/index.js.map +1 -1
- package/dist/cjs/components/VisualTour/VisualTour.js +30 -36
- package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/cjs/components/index.js +3 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/extensions/codemirror/CodeMirror.js +59 -21
- package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/cjs/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js +23 -0
- package/dist/cjs/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js.map +1 -0
- package/dist/cjs/extensions/codemirror/toolbars/markdown.toolbar.js +5 -2
- package/dist/cjs/extensions/codemirror/toolbars/markdown.toolbar.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +8 -3
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +6 -4
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeTools.js +2 -2
- package/dist/cjs/extensions/react-flow/edges/EdgeTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleContent.js +5 -2
- package/dist/cjs/extensions/react-flow/handles/HandleContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleTools.js +2 -2
- package/dist/cjs/extensions/react-flow/handles/HandleTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +7 -5
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +5 -2
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeTools.js +6 -2
- package/dist/cjs/extensions/react-flow/nodes/NodeTools.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +19 -14
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +4 -1
- package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +9 -5
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +57 -9
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/markdown/Markdown.js +1 -1
- package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +1 -1
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/graph.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/linking.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/workflow.js +0 -2
- package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/esm/common/Intent/index.js +1 -1
- package/dist/esm/common/Intent/index.js.map +1 -1
- package/dist/esm/common/index.js +2 -1
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
- package/dist/esm/common/utils/colorHash.js +26 -13
- package/dist/esm/common/utils/colorHash.js.map +1 -1
- package/dist/esm/common/utils/reduceToText.js +1 -1
- package/dist/esm/components/Application/ApplicationSidebarNavigation.js.map +1 -1
- package/dist/esm/components/Application/ApplicationTitle.js +5 -1
- package/dist/esm/components/Application/ApplicationTitle.js.map +1 -1
- package/dist/esm/components/Application/ApplicationViewability.js +28 -0
- package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
- package/dist/esm/components/Application/index.js +1 -0
- package/dist/esm/components/Application/index.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js +9 -16
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/esm/components/Button/Button.js +6 -2
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/ColorField/ColorField.js +140 -0
- package/dist/esm/components/ColorField/ColorField.js.map +1 -0
- package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
- package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextMenu.js +4 -4
- package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextOverlay.js +3 -2
- package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +42 -0
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
- package/dist/esm/components/Icon/IconButton.js +2 -2
- package/dist/esm/components/Icon/IconButton.js.map +1 -1
- package/dist/esm/components/Icon/canonicalIconNames.js +10 -1
- package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/esm/components/Icon/transformIcon.js +21 -0
- package/dist/esm/components/Icon/transformIcon.js.map +1 -0
- package/dist/esm/components/MultiSelect/MultiSelect.js +66 -27
- package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/components/NotAvailable/NotAvailable.js +46 -0
- package/dist/esm/components/NotAvailable/NotAvailable.js.map +1 -0
- package/dist/esm/components/Notification/Notification.js.map +1 -1
- package/dist/esm/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
- package/dist/esm/components/RadioButton/RadioButton.js +6 -2
- package/dist/esm/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/esm/components/Select/Select.js +3 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/esm/components/Table/Table.js.map +1 -1
- package/dist/esm/components/Table/TableContainer.js +1 -1
- package/dist/esm/components/Table/TableContainer.js.map +1 -1
- package/dist/esm/components/Table/TableExpandRow.js +1 -1
- package/dist/esm/components/Table/TableExpandRow.js.map +1 -1
- package/dist/esm/components/TextField/useTextValidation.js +39 -8
- package/dist/esm/components/TextField/useTextValidation.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +11 -7
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Typography/InlineText.js +33 -0
- package/dist/esm/components/Typography/InlineText.js.map +1 -0
- package/dist/esm/components/Typography/index.js +1 -0
- package/dist/esm/components/Typography/index.js.map +1 -1
- package/dist/esm/components/VisualTour/VisualTour.js +31 -37
- package/dist/esm/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/esm/components/index.js +3 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/extensions/codemirror/CodeMirror.js +62 -24
- package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/esm/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js +47 -0
- package/dist/esm/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js.map +1 -0
- package/dist/esm/extensions/codemirror/toolbars/markdown.toolbar.js +16 -2
- package/dist/esm/extensions/codemirror/toolbars/markdown.toolbar.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +4 -2
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js +3 -1
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeTools.js +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleContent.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleTools.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js +4 -2
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeTools.js +2 -1
- package/dist/esm/extensions/react-flow/nodes/NodeTools.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +13 -4
- package/dist/types/cmem/ActivityControl/ActivityExecutionErrorReportModal.d.ts +1 -1
- package/dist/types/cmem/ActivityControl/SilkActivityControl.d.ts +4 -4
- package/dist/types/cmem/ContentBlobToggler/ContentBlobToggler.d.ts +5 -1
- package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +27 -11
- package/dist/types/cmem/markdown/Markdown.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/graph.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/linking.d.ts +2 -1
- package/dist/types/cmem/react-flow/configuration/workflow.d.ts +2 -1
- package/dist/types/common/index.d.ts +2 -1
- package/dist/types/common/utils/CssCustomProperties.d.ts +2 -2
- package/dist/types/common/utils/colorHash.d.ts +5 -4
- package/dist/types/components/Accordion/AccordionItem.d.ts +1 -1
- package/dist/types/components/Application/ApplicationSidebarNavigation.d.ts +2 -0
- package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
- package/dist/types/components/Application/index.d.ts +1 -0
- package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +2 -2
- package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +2 -12
- package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +1 -1
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Card/CardHeader.d.ts +1 -1
- package/dist/types/components/ColorField/ColorField.d.ts +30 -0
- package/dist/types/components/ContentGroup/ContentGroup.d.ts +1 -1
- package/dist/types/components/ContextOverlay/ContextMenu.d.ts +9 -3
- package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +8 -2
- package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +22 -0
- package/dist/types/components/Depiction/Depiction.d.ts +1 -1
- package/dist/types/components/Dialog/SimpleDialog.d.ts +1 -1
- package/dist/types/components/Form/FieldItem.d.ts +1 -1
- package/dist/types/components/Form/FieldSet.d.ts +3 -3
- package/dist/types/components/HoverToggler/HoverToggler.d.ts +2 -2
- package/dist/types/components/Icon/IconButton.d.ts +1 -1
- package/dist/types/components/Icon/canonicalIconNames.d.ts +9 -1
- package/dist/types/components/Icon/transformIcon.d.ts +2 -0
- package/dist/types/components/Label/Label.d.ts +3 -3
- package/dist/types/components/Menu/MenuItem.d.ts +1 -1
- package/dist/types/components/MultiSelect/MultiSelect.d.ts +17 -5
- package/dist/types/components/NotAvailable/NotAvailable.d.ts +32 -0
- package/dist/types/components/Notification/Notification.d.ts +2 -2
- package/dist/types/components/OverviewItem/OverviewItemActions.d.ts +1 -1
- package/dist/types/components/PropertyValuePair/PropertyValueList.d.ts +1 -1
- package/dist/types/components/RadioButton/RadioButton.d.ts +8 -2
- package/dist/types/components/Select/Select.d.ts +2 -1
- package/dist/types/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/types/components/Structure/TitleSubsection.d.ts +3 -6
- package/dist/types/components/SuggestField/index.d.ts +2 -2
- package/dist/types/components/Table/TableContainer.d.ts +3 -3
- package/dist/types/components/Tabs/Tab.d.ts +4 -10
- package/dist/types/components/Tabs/TabTitle.d.ts +1 -1
- package/dist/types/components/TextField/TextArea.d.ts +1 -1
- package/dist/types/components/Typography/InlineText.d.ts +13 -0
- package/dist/types/components/Typography/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +3 -0
- package/dist/types/extensions/codemirror/CodeMirror.d.ts +12 -9
- package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +1 -1
- package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
- package/dist/types/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.d.ts +24 -0
- package/dist/types/extensions/codemirror/toolbars/markdown.toolbar.d.ts +2 -0
- package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +3 -3
- package/dist/types/extensions/react-flow/edges/EdgeTools.d.ts +1 -1
- package/dist/types/extensions/react-flow/handles/HandleContent.d.ts +2 -2
- package/dist/types/extensions/react-flow/handles/HandleTools.d.ts +2 -2
- package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +3 -3
- package/dist/types/extensions/react-flow/nodes/NodeTools.d.ts +2 -2
- package/package.json +65 -61
- package/src/_shame.scss +1 -35
- package/src/cmem/ActivityControl/ActivityControlWidget.stories.tsx +3 -8
- package/src/cmem/ActivityControl/ActivityControlWidget.tsx +74 -41
- package/src/cmem/ActivityControl/ActivityExecutionErrorReportModal.tsx +6 -4
- package/src/cmem/ActivityControl/SilkActivityControl.tsx +5 -5
- package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +16 -6
- package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +72 -19
- package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
- package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
- package/src/cmem/markdown/Markdown.stories.tsx +2 -2
- package/src/cmem/markdown/Markdown.tsx +2 -1
- package/src/cmem/markdown/markdown.scss +1 -1
- package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +1 -0
- package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -1
- package/src/cmem/react-flow/configuration/graph.ts +2 -3
- package/src/cmem/react-flow/configuration/linking.ts +2 -3
- package/src/cmem/react-flow/configuration/workflow.ts +2 -3
- package/src/common/Intent/index.ts +2 -1
- package/src/common/index.ts +2 -1
- package/src/common/scss/_accessibility-defaults.scss +101 -0
- package/src/common/utils/CssCustomProperties.ts +5 -3
- package/src/common/utils/colorHash.ts +38 -20
- package/src/components/Accordion/AccordionItem.tsx +1 -1
- package/src/components/Accordion/Stories/AccordionItem.stories.tsx +1 -1
- package/src/components/Application/ApplicationSidebarNavigation.tsx +5 -2
- package/src/components/Application/ApplicationTitle.tsx +7 -1
- package/src/components/Application/ApplicationViewability.tsx +61 -0
- package/src/components/Application/_colors.scss +15 -0
- package/src/components/Application/_content.scss +7 -0
- package/src/components/Application/_header.scss +45 -21
- package/src/components/Application/_sidebar.scss +6 -0
- package/src/components/Application/_toolbar.scss +3 -3
- package/src/components/Application/_viewability.scss +13 -0
- package/src/components/Application/application.scss +1 -0
- package/src/components/Application/index.ts +1 -0
- package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
- package/src/components/Application/stories/ColorPalettes.stories.tsx +4 -3
- package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
- package/src/components/AutoSuggestion/AutoSuggestion.scss +3 -1
- package/src/components/AutoSuggestion/AutoSuggestion.tsx +4 -4
- package/src/components/AutoSuggestion/AutoSuggestionList.tsx +1 -1
- package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
- package/src/components/AutocompleteField/AutoCompleteField.tsx +9 -18
- package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +1 -1
- package/src/components/Badge/Badge.stories.tsx +1 -1
- package/src/components/Badge/Badge.test.tsx +22 -0
- package/src/components/Breadcrumb/breadcrumb.scss +2 -2
- package/src/components/Button/Button.test.tsx +16 -2
- package/src/components/Button/Button.tsx +11 -6
- package/src/components/Button/button.scss +2 -0
- package/src/components/Card/CardHeader.tsx +1 -1
- package/src/components/Card/card.scss +6 -0
- package/src/components/Card/stories/Card.stories.tsx +1 -1
- package/src/components/Checkbox/Stories/Checkbox.stories.tsx +1 -1
- package/src/components/Checkbox/checkbox.scss +23 -3
- package/src/components/ColorField/ColorField.stories.tsx +72 -0
- package/src/components/ColorField/ColorField.test.tsx +101 -0
- package/src/components/ColorField/ColorField.tsx +200 -0
- package/src/components/ColorField/_colorfield.scss +67 -0
- package/src/components/ContentGroup/ContentGroup.stories.tsx +1 -1
- package/src/components/ContentGroup/ContentGroup.tsx +3 -3
- package/src/components/ContentGroup/_contentgroup.scss +9 -0
- package/src/components/ContextOverlay/ContextMenu.tsx +10 -4
- package/src/components/ContextOverlay/ContextOverlay.tsx +23 -4
- package/src/components/DecoupledOverlay/DecoupledOverlay.stories.tsx +30 -0
- package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +100 -0
- package/src/components/DecoupledOverlay/_decoupledoverlay.scss +46 -0
- package/src/components/Depiction/Depiction.tsx +1 -1
- package/src/components/Depiction/depiction.scss +6 -0
- package/src/components/Dialog/SimpleDialog.tsx +1 -1
- package/src/components/Dialog/dialog.scss +10 -2
- package/src/components/Dialog/stories/Modal.stories.tsx +1 -1
- package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
- package/src/components/Form/FieldItem.tsx +1 -1
- package/src/components/Form/FieldSet.tsx +3 -3
- package/src/components/Form/Stories/FieldItem.stories.tsx +1 -1
- package/src/components/Form/Stories/FieldSet.stories.tsx +1 -1
- package/src/components/Form/form.scss +2 -2
- package/src/components/Grid/grid.scss +17 -0
- package/src/components/Grid/stories/Grid.stories.tsx +10 -7
- package/src/components/Grid/stories/GridColumn.stories.tsx +1 -1
- package/src/components/Grid/stories/GridRow.stories.tsx +14 -8
- package/src/components/HoverToggler/HoverToggler.tsx +2 -2
- package/src/components/Icon/IconButton.tsx +3 -3
- package/src/components/Icon/canonicalIconNames.tsx +11 -1
- package/src/components/Icon/stories/IconButton.stories.tsx +1 -1
- package/src/components/Icon/stories/TestIcon.stories.tsx +1 -1
- package/src/components/Icon/transformIcon.tsx +17 -0
- package/src/components/Label/Label.tsx +3 -3
- package/src/components/Link/Link.stories.tsx +30 -0
- package/src/components/Link/link.scss +33 -8
- package/src/components/Menu/MenuItem.tsx +1 -1
- package/src/components/Menu/Stories/MenuItem.stories.tsx +1 -1
- package/src/components/MultiSelect/MultiSelect.tsx +104 -32
- package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +40 -1
- package/src/components/MultiSuggestField/_multisuggestfield.scss +18 -0
- package/src/components/MultiSuggestField/tests/MultiSuggestField.test.tsx +89 -37
- package/src/components/NotAvailable/NotAvailable.stories.tsx +15 -0
- package/src/components/NotAvailable/NotAvailable.tsx +71 -0
- package/src/components/Notification/Notification.stories.tsx +2 -1
- package/src/components/Notification/Notification.tsx +3 -3
- package/src/components/Notification/notification.scss +6 -0
- package/src/components/OverviewItem/OverviewItemActions.tsx +1 -1
- package/src/components/OverviewItem/OverviewItemDepiction.tsx +1 -1
- package/src/components/OverviewItem/overviewitem.scss +9 -0
- package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +29 -1
- package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +3 -3
- package/src/components/OverviewItem/stories/OverviewItemDepiction.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +2 -2
- package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
- package/src/components/Pagination/Stories/Pagination.stories.tsx +32 -0
- package/src/components/Pagination/pagination.scss +55 -5
- package/src/components/PropertyValuePair/PropertyValueList.tsx +1 -1
- package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
- package/src/components/RadioButton/RadioButton.tsx +15 -3
- package/src/components/RadioButton/Stories/RadioButton.stories.tsx +1 -1
- package/src/components/RadioButton/radiobutton.scss +18 -1
- package/src/components/Select/Select.tsx +8 -6
- package/src/components/Separation/separation.scss +6 -0
- package/src/components/Skeleton/Skeleton.tsx +2 -2
- package/src/components/Structure/TitleSubsection.tsx +1 -1
- package/src/components/Table/Table.tsx +1 -1
- package/src/components/Table/TableContainer.tsx +4 -4
- package/src/components/Table/TableExpandRow.tsx +1 -1
- package/src/components/Table/table.scss +22 -0
- package/src/components/Tabs/TabTitle.tsx +1 -1
- package/src/components/Tabs/stories/TabTitle.stories.tsx +7 -2
- package/src/components/Tabs/tabs.scss +2 -2
- package/src/components/Tag/stories/Tag.stories.tsx +1 -1
- package/src/components/Tag/stories/TagList.stories.tsx +3 -3
- package/src/components/Tag/tag.scss +19 -9
- package/src/components/TextField/TextArea.tsx +1 -1
- package/src/components/TextField/stories/TextArea.stories.tsx +1 -1
- package/src/components/TextField/stories/TextField.stories.tsx +24 -3
- package/src/components/TextField/tests/useTextValidation.test.tsx +83 -0
- package/src/components/TextField/textfield.scss +20 -0
- package/src/components/TextField/useTextValidation.ts +17 -8
- package/src/components/TextReducer/TextReducer.stories.tsx +4 -1
- package/src/components/TextReducer/TextReducer.test.tsx +3 -3
- package/src/components/Toolbar/toolbar.scss +1 -2
- package/src/components/Tooltip/Tooltip.test.tsx +40 -5
- package/src/components/Tooltip/Tooltip.tsx +15 -11
- package/src/components/Typography/InlineText.tsx +24 -0
- package/src/components/Typography/_reset.scss +2 -0
- package/src/components/Typography/index.ts +1 -0
- package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
- package/src/components/Typography/typography.scss +37 -3
- package/src/components/VisualTour/VisualTour.tsx +35 -55
- package/src/components/VisualTour/visualTour.scss +0 -34
- package/src/components/index.scss +2 -0
- package/src/components/index.ts +3 -0
- package/src/configuration/_customproperties.scss +32 -0
- package/src/configuration/stories/customproperties.stories.tsx +122 -0
- package/src/extensions/codemirror/CodeMirror.stories.tsx +9 -4
- package/src/extensions/codemirror/CodeMirror.tsx +93 -37
- package/src/extensions/codemirror/_codemirror.scss +18 -28
- package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +1 -2
- package/src/extensions/codemirror/tests/CodeEditor.test.tsx +138 -0
- package/src/extensions/codemirror/tests/EditorAppearanceConfigMenu.test.tsx +131 -0
- package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
- package/src/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.tsx +59 -0
- package/src/extensions/codemirror/toolbars/markdown.toolbar.tsx +17 -3
- package/src/extensions/react-flow/_config.scss +3 -3
- package/src/extensions/react-flow/_react-flow_v12.scss +1 -1
- package/src/extensions/react-flow/edges/EdgeLabel.tsx +15 -11
- package/src/extensions/react-flow/edges/EdgeNew.tsx +6 -6
- package/src/extensions/react-flow/edges/EdgeTools.tsx +5 -6
- package/src/extensions/react-flow/edges/_edges.scss +3 -2
- package/src/extensions/react-flow/edges/stories/EdgeLabel.stories.tsx +2 -1
- package/src/extensions/react-flow/handles/HandleContent.tsx +4 -4
- package/src/extensions/react-flow/handles/HandleDefault.tsx +3 -3
- package/src/extensions/react-flow/handles/HandleTools.tsx +3 -3
- package/src/extensions/react-flow/handles/_handles.scss +3 -3
- package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +1 -1
- package/src/extensions/react-flow/minimap/MiniMap.tsx +2 -1
- package/src/extensions/react-flow/minimap/MiniMapV12.tsx +1 -1
- package/src/extensions/react-flow/nodes/NodeContent.tsx +20 -19
- package/src/extensions/react-flow/nodes/NodeDefault.tsx +1 -1
- package/src/extensions/react-flow/nodes/NodeDefaultV12.tsx +1 -2
- package/src/extensions/react-flow/nodes/NodeTools.tsx +8 -8
- package/src/extensions/react-flow/nodes/_nodes.scss +4 -3
- package/src/extensions/react-flow/nodes/nodeUtils.tsx +1 -0
- package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +3 -1
- package/src/includes/carbon-components/_requisits.scss +3 -1
- package/src/index.scss +2 -0
- package/src/test/setupTests.js +1 -1
|
@@ -36,6 +36,7 @@ $tag-round-adjustment: 0 !default;
|
|
|
36
36
|
min-height: calc(#{$tag-height} - 2px);
|
|
37
37
|
max-height: calc(#{$tag-height} - 2px);
|
|
38
38
|
padding: 0 $tag-padding-top;
|
|
39
|
+
line-height: calc(#{$tag-height} - 2px);
|
|
39
40
|
|
|
40
41
|
&.#{$ns}-round {
|
|
41
42
|
border-radius: $tag-height * 0.5;
|
|
@@ -55,11 +56,12 @@ $tag-round-adjustment: 0 !default;
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
&.#{$eccgui}-tag--small {
|
|
58
|
-
min-width: calc(#{$tag-height-small} + #{$tag-padding-small}
|
|
59
|
-
min-height: calc(#{$tag-height-small} + #{$tag-padding-small}
|
|
60
|
-
max-height: calc(#{$tag-height-small} + #{$tag-padding-small}
|
|
59
|
+
min-width: calc(#{$tag-height-small} + #{$tag-padding-small});
|
|
60
|
+
min-height: calc(#{$tag-height-small} + #{$tag-padding-small});
|
|
61
|
+
max-height: calc(#{$tag-height-small} + #{$tag-padding-small});
|
|
61
62
|
padding: 0 $tag-padding-small;
|
|
62
|
-
|
|
63
|
+
font-size: calc(#{$eccgui-size-typo-tag} - 1px);
|
|
64
|
+
line-height: calc(#{$tag-height-small} + #{$tag-padding-small});
|
|
63
65
|
|
|
64
66
|
&.#{$ns}-round {
|
|
65
67
|
border-radius: $tag-height-small * 0.5;
|
|
@@ -75,7 +77,7 @@ $tag-round-adjustment: 0 !default;
|
|
|
75
77
|
min-height: calc(#{$tag-height-large} + #{$tag-padding-large} - 2px);
|
|
76
78
|
max-height: calc(#{$tag-height-large} + #{$tag-padding-large} - 2px);
|
|
77
79
|
font-size: $eccgui-size-typo-tag-large;
|
|
78
|
-
line-height: calc(#{$tag-height-large} - 2px);
|
|
80
|
+
line-height: calc(#{$tag-height-large} + #{$tag-padding-large} - 2px);
|
|
79
81
|
|
|
80
82
|
&.#{$ns}-round {
|
|
81
83
|
border-radius: $tag-height-large * 0.5;
|
|
@@ -137,8 +139,10 @@ $tag-round-adjustment: 0 !default;
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
.#{$ns}-tag {
|
|
142
|
+
--eccgui-tag-border-width: 1px;
|
|
143
|
+
|
|
140
144
|
border-style: solid;
|
|
141
|
-
border-width:
|
|
145
|
+
border-width: var(--eccgui-tag-border-width);
|
|
142
146
|
|
|
143
147
|
&:not([class*="#{$ns}-intent-"]) {
|
|
144
148
|
--eccgui-tag-bg: #{$tag-default-color};
|
|
@@ -151,7 +155,7 @@ $tag-round-adjustment: 0 !default;
|
|
|
151
155
|
var(--eccgui-tag-bg) var(--eccgui-tag-emfactor),
|
|
152
156
|
eccgui-color-var("identity", "background", "100")
|
|
153
157
|
);
|
|
154
|
-
border-color: var(--eccgui-tag-border);
|
|
158
|
+
border-color: eccgui-color-rgba(var(--eccgui-tag-border), calc(0.25 * var(--eccgui-tag-emfactor)));
|
|
155
159
|
|
|
156
160
|
&.#{$eccgui}-tag--strongeremphasis {
|
|
157
161
|
--eccgui-tag-emfactor: 95%;
|
|
@@ -211,7 +215,7 @@ $tag-round-adjustment: 0 !default;
|
|
|
211
215
|
var(--eccgui-tag-bg) var(--eccgui-tag-emfactor),
|
|
212
216
|
eccgui-color-var("identity", "background", "100")
|
|
213
217
|
);
|
|
214
|
-
border-color: var(--eccgui-tag-border);
|
|
218
|
+
border-color: eccgui-color-rgba(var(--eccgui-tag-border), calc(0.25 * var(--eccgui-tag-emfactor)));
|
|
215
219
|
|
|
216
220
|
&.#{$eccgui}-tag--strongeremphasis {
|
|
217
221
|
--eccgui-tag-emfactor: 100%;
|
|
@@ -231,7 +235,7 @@ $tag-round-adjustment: 0 !default;
|
|
|
231
235
|
|
|
232
236
|
&[class*="#{$eccgui}-intent--"] {
|
|
233
237
|
color: eccgui-color-rgba(var(--eccgui-tag-text), var(--eccgui-tag-emfactor));
|
|
234
|
-
border-color: eccgui-color-rgba(var(--eccgui-tag-border), var(--eccgui-tag-emfactor));
|
|
238
|
+
border-color: eccgui-color-rgba(var(--eccgui-tag-border), calc(0.25 * var(--eccgui-tag-emfactor)));
|
|
235
239
|
}
|
|
236
240
|
|
|
237
241
|
&.#{$eccgui}-intent--primary {
|
|
@@ -267,3 +271,9 @@ $tag-round-adjustment: 0 !default;
|
|
|
267
271
|
}
|
|
268
272
|
}
|
|
269
273
|
}
|
|
274
|
+
|
|
275
|
+
@media print {
|
|
276
|
+
.#{$eccgui}-tag__item {
|
|
277
|
+
print-color-adjust: exact;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
@@ -32,7 +32,7 @@ export interface TextAreaProps extends Omit<BlueprintTextAreaProps, "intent"> {
|
|
|
32
32
|
* Element to render on right side of text area. Should be not too large.
|
|
33
33
|
* This will update right padding on the text area.
|
|
34
34
|
*/
|
|
35
|
-
rightElement?: JSX.Element;
|
|
35
|
+
rightElement?: React.JSX.Element;
|
|
36
36
|
/**
|
|
37
37
|
* Add HTML properties to the wrapper element.
|
|
38
38
|
* The element wraps `TextArea` in case of a given `wrapperDivProps`, `leftIcon` or `rightElement` property.
|
|
@@ -3,7 +3,7 @@ import { Meta, StoryFn } from "@storybook/react";
|
|
|
3
3
|
|
|
4
4
|
import { helpersArgTypes } from "../../../../.storybook/helpers";
|
|
5
5
|
|
|
6
|
-
import { Button, IconButton, TextArea } from "
|
|
6
|
+
import { Button, IconButton, TextArea } from "./../../../components";
|
|
7
7
|
type TextAreaType = typeof TextArea;
|
|
8
8
|
|
|
9
9
|
export default {
|
|
@@ -3,9 +3,7 @@ import { Meta, StoryFn } from "@storybook/react";
|
|
|
3
3
|
|
|
4
4
|
import { helpersArgTypes } from "../../../../.storybook/helpers";
|
|
5
5
|
import characters from "../../../common/utils/characters";
|
|
6
|
-
import { TextFieldProps } from "../TextField";
|
|
7
|
-
|
|
8
|
-
import { TextField } from "./../../../../index";
|
|
6
|
+
import { TextField, TextFieldProps } from "../TextField";
|
|
9
7
|
|
|
10
8
|
export default {
|
|
11
9
|
title: "Forms/TextField",
|
|
@@ -61,3 +59,26 @@ const invisibleCharacterWarningProps: TextFieldProps = {
|
|
|
61
59
|
defaultValue: "Invisible character -><-",
|
|
62
60
|
};
|
|
63
61
|
InvisibleCharacterWarning.args = invisibleCharacterWarningProps;
|
|
62
|
+
|
|
63
|
+
/** Text field showing that emoji (✔️ variation-selector, 👨👩👧👦 ZWJ, #️⃣ keycap)
|
|
64
|
+
* are NOT reported as invisible characters, while a genuine ZWS still is. */
|
|
65
|
+
export const InvisibleCharacterWarningWithEmoji = Template.bind({});
|
|
66
|
+
|
|
67
|
+
const invisibleCharacterWarningWithEmojiProps: TextFieldProps = {
|
|
68
|
+
...Default.args,
|
|
69
|
+
invisibleCharacterWarning: {
|
|
70
|
+
callback: (codePoints) => {
|
|
71
|
+
if (codePoints.size) {
|
|
72
|
+
const codePointsString = [...codePoints]
|
|
73
|
+
.map((n) => characters.invisibleZeroWidthCharacters.codePointMap.get(n)?.fullLabel)
|
|
74
|
+
.join(", ");
|
|
75
|
+
alert("Invisible character detected in input string. Code points: " + codePointsString);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
callbackDelay: 500,
|
|
79
|
+
},
|
|
80
|
+
onChange: () => {},
|
|
81
|
+
// ZWS should be flagged; ✔️ 👨👩👧👦 #️⃣ should NOT be flagged
|
|
82
|
+
defaultValue: "Check\u200B ✔️ 👨👩👧👦 #️⃣",
|
|
83
|
+
};
|
|
84
|
+
InvisibleCharacterWarningWithEmoji.args = invisibleCharacterWarningWithEmojiProps;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { act, render } from "@testing-library/react";
|
|
3
|
+
|
|
4
|
+
import { useTextValidation } from "../useTextValidation";
|
|
5
|
+
|
|
6
|
+
const HookWrapper: React.FC<{ value: string; callback: jest.Mock; callbackDelay?: number }> = ({
|
|
7
|
+
value,
|
|
8
|
+
callback,
|
|
9
|
+
callbackDelay = 0,
|
|
10
|
+
}) => {
|
|
11
|
+
useTextValidation({
|
|
12
|
+
value,
|
|
13
|
+
onChange: jest.fn(),
|
|
14
|
+
invisibleCharacterWarning: { callback, callbackDelay },
|
|
15
|
+
});
|
|
16
|
+
return null;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
describe("useTextValidation", () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
jest.useFakeTimers();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
jest.useRealTimers();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
/** Render the hook with a controlled value and flush the debounce timer. */
|
|
29
|
+
const runWithValue = (value: string, callbackDelay = 0) => {
|
|
30
|
+
const callback = jest.fn();
|
|
31
|
+
render(<HookWrapper value={value} callback={callback} callbackDelay={callbackDelay} />);
|
|
32
|
+
act(() => {
|
|
33
|
+
jest.runAllTimers();
|
|
34
|
+
});
|
|
35
|
+
return callback;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
describe("invisible character detection", () => {
|
|
39
|
+
it("reports empty set for plain text", () => {
|
|
40
|
+
const callback = runWithValue("hello world");
|
|
41
|
+
expect(callback).toHaveBeenCalledWith(new Set());
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("detects zero-width space (U+200B)", () => {
|
|
45
|
+
const callback = runWithValue("hello\u200Bworld");
|
|
46
|
+
expect(callback).toHaveBeenCalledWith(new Set([0x200b]));
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("detects zero-width non-joiner (U+200C)", () => {
|
|
50
|
+
const callback = runWithValue("hello\u200Cworld");
|
|
51
|
+
expect(callback).toHaveBeenCalledWith(new Set([0x200c]));
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
describe("emoji false-positive prevention", () => {
|
|
56
|
+
it("does not flag ✔️ (base char + variation selector U+FE0F)", () => {
|
|
57
|
+
const callback = runWithValue("✔️");
|
|
58
|
+
expect(callback).toHaveBeenCalledWith(new Set());
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("does not flag ZWJ sequence emoji 👨👩👧👦", () => {
|
|
62
|
+
const callback = runWithValue("👨👩👧👦");
|
|
63
|
+
expect(callback).toHaveBeenCalledWith(new Set());
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("does not flag keycap emoji #️⃣", () => {
|
|
67
|
+
const callback = runWithValue("#️⃣");
|
|
68
|
+
expect(callback).toHaveBeenCalledWith(new Set());
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe("mixed content", () => {
|
|
73
|
+
it("detects ZWS while ignoring surrounding emoji", () => {
|
|
74
|
+
const callback = runWithValue("Check\u200B ✔️👨👩👧#️⃣");
|
|
75
|
+
expect(callback).toHaveBeenCalledWith(new Set([0x200b]));
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it("reports empty set for text with only emoji", () => {
|
|
79
|
+
const callback = runWithValue("✔️ 👨👩👧👦#️⃣");
|
|
80
|
+
expect(callback).toHaveBeenCalledWith(new Set());
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
@@ -103,6 +103,8 @@ $eccgui-map-intent-bgcolors: (
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.#{$ns}-input {
|
|
106
|
+
--#{$eccgui}-a11y-outline-color: #{$eccgui-color-accent};
|
|
107
|
+
|
|
106
108
|
.#{$ns}-input-group[class*="#{$eccgui}-intent--"] & {
|
|
107
109
|
animation-duration: 1s;
|
|
108
110
|
animation-delay: 0.5s;
|
|
@@ -111,16 +113,23 @@ $eccgui-map-intent-bgcolors: (
|
|
|
111
113
|
@each $each-intent, $each-bgcolor in $eccgui-map-intent-bgcolors {
|
|
112
114
|
.#{$ns}-input-group.#{$ns}-intent-#{$each-intent} & {
|
|
113
115
|
background-color: eccgui-color-var("semantic", $each-intent, "100");
|
|
116
|
+
|
|
117
|
+
--#{$eccgui}-a11y-outline-color: eccgui-color-var("semantic", $each-intent, "900");
|
|
118
|
+
|
|
114
119
|
animation-name: intent-state-flash-#{$each-intent};
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
.#{$ns}-input-group.#{$eccgui}-intent--info & {
|
|
119
124
|
@include pt-input-intent($eccgui-color-info-text);
|
|
125
|
+
|
|
126
|
+
--#{$eccgui}-a11y-outline-color: #{$eccgui-color-info-text};
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
.#{$ns}-input-group.#{$eccgui}-intent--accent & {
|
|
123
130
|
@include pt-input-intent($eccgui-color-primary);
|
|
131
|
+
|
|
132
|
+
--#{$eccgui}-a11y-outline-color: #{$eccgui-color-primary};
|
|
124
133
|
}
|
|
125
134
|
|
|
126
135
|
.#{$ns}-input-group.#{$eccgui}-intent--neutral & {
|
|
@@ -138,6 +147,10 @@ $eccgui-map-intent-bgcolors: (
|
|
|
138
147
|
|
|
139
148
|
text-decoration: line-through $eccgui-color-danger-text 2px;
|
|
140
149
|
}
|
|
150
|
+
|
|
151
|
+
&:focus-visible {
|
|
152
|
+
@extend .#{$eccgui}-a11y-focus-by-keyboard-static;
|
|
153
|
+
}
|
|
141
154
|
}
|
|
142
155
|
|
|
143
156
|
.#{$eccgui}-textarea {
|
|
@@ -151,16 +164,23 @@ $eccgui-map-intent-bgcolors: (
|
|
|
151
164
|
@each $each-intent, $each-bgcolor in $eccgui-map-intent-bgcolors {
|
|
152
165
|
&.#{$eccgui}-intent--#{$each-intent} {
|
|
153
166
|
background-color: eccgui-color-var("semantic", $each-intent, "100");
|
|
167
|
+
|
|
168
|
+
--#{$eccgui}-a11y-outline-color: eccgui-color-var("semantic", $each-intent, "900");
|
|
169
|
+
|
|
154
170
|
animation-name: intent-state-flash-#{$each-intent};
|
|
155
171
|
}
|
|
156
172
|
}
|
|
157
173
|
|
|
158
174
|
&.#{$eccgui}-intent--info {
|
|
159
175
|
@include pt-input-intent($eccgui-color-info-text);
|
|
176
|
+
|
|
177
|
+
--#{$eccgui}-a11y-outline-color: #{$eccgui-color-info-text};
|
|
160
178
|
}
|
|
161
179
|
|
|
162
180
|
&.#{$eccgui}-intent--accent {
|
|
163
181
|
@include pt-input-intent($eccgui-color-primary);
|
|
182
|
+
|
|
183
|
+
--#{$eccgui}-a11y-outline-color: #{$eccgui-color-primary};
|
|
164
184
|
}
|
|
165
185
|
|
|
166
186
|
&.#{$eccgui}-intent--neutral {
|
|
@@ -44,19 +44,28 @@ export const useTextValidation = <T>({ value, onChange, invisibleCharacterWarnin
|
|
|
44
44
|
state.current.detectedCodePoints = new Set();
|
|
45
45
|
}, []);
|
|
46
46
|
const detectionRegex = React.useMemo(() => chars.invisibleZeroWidthCharacters.createRegex(), []);
|
|
47
|
+
const segmenter = React.useMemo(() => new Intl.Segmenter(undefined, { granularity: "grapheme" }), []);
|
|
48
|
+
const emojiRegex = React.useMemo(() => new RegExp("\\p{Extended_Pictographic}|\\u20E3", "u"), []);
|
|
49
|
+
|
|
47
50
|
const detectIssues = React.useCallback(
|
|
48
51
|
(value: string): void => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
for (const { segment } of segmenter.segment(value)) {
|
|
53
|
+
if (emojiRegex.test(segment)) {
|
|
54
|
+
// skip emoji clusters since they legitimately contain variation selectors, ZWJ, tags, etc.
|
|
55
|
+
} else {
|
|
56
|
+
detectionRegex.lastIndex = 0;
|
|
57
|
+
let matchArray = detectionRegex.exec(segment);
|
|
58
|
+
while (matchArray) {
|
|
59
|
+
const codePoint = matchArray[0].codePointAt(0);
|
|
60
|
+
if (codePoint) {
|
|
61
|
+
state.current.detectedCodePoints.add(codePoint);
|
|
62
|
+
}
|
|
63
|
+
matchArray = detectionRegex.exec(segment);
|
|
64
|
+
}
|
|
55
65
|
}
|
|
56
|
-
matchArray = detectionRegex.exec(value);
|
|
57
66
|
}
|
|
58
67
|
},
|
|
59
|
-
[detectionRegex]
|
|
68
|
+
[detectionRegex, segmenter, emojiRegex]
|
|
60
69
|
);
|
|
61
70
|
// Checks if the value contains any problematic characters with a small delay.
|
|
62
71
|
const checkValue = React.useCallback(
|
|
@@ -2,7 +2,10 @@ import React from "react";
|
|
|
2
2
|
import { LoremIpsum } from "react-lorem-ipsum";
|
|
3
3
|
import { Meta, StoryFn } from "@storybook/react";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Markdown } from "../../cmem/markdown/Markdown";
|
|
6
|
+
import { HtmlContentBlock } from "../Typography";
|
|
7
|
+
|
|
8
|
+
import { TextReducer } from "./TextReducer";
|
|
6
9
|
|
|
7
10
|
export default {
|
|
8
11
|
title: "Components/TextReducer",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {render, RenderResult} from "@testing-library/react";
|
|
2
|
+
import { render, RenderResult } from "@testing-library/react";
|
|
3
3
|
|
|
4
4
|
import "@testing-library/jest-dom";
|
|
5
5
|
|
|
@@ -9,10 +9,10 @@ import { Default as TextReducerStory } from "./TextReducer.stories";
|
|
|
9
9
|
describe("TextReducer", () => {
|
|
10
10
|
const textMustExist = (queryByText: RenderResult["queryByText"], text: string) => {
|
|
11
11
|
expect(queryByText(text, { exact: false })).not.toBeNull();
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
13
|
const textMustNotExist = (queryByText: RenderResult["queryByText"], text: string) => {
|
|
14
14
|
expect(queryByText(text, { exact: false })).toBeNull();
|
|
15
|
-
}
|
|
15
|
+
};
|
|
16
16
|
it("should display encoded HTML entities by default if they are used in the transformed markup", () => {
|
|
17
17
|
const { queryByText } = render(<TextReducer {...TextReducerStory.args} />);
|
|
18
18
|
textMustExist(queryByText, "'entities' & "quotes"");
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
3
|
+
import userEvent from "@testing-library/user-event";
|
|
3
4
|
|
|
4
5
|
import "@testing-library/jest-dom";
|
|
5
6
|
|
|
@@ -45,19 +46,53 @@ describe("Tooltip", () => {
|
|
|
45
46
|
fireEvent.mouseEnter(container.getElementsByClassName(`${eccgui}-tooltip__wrapper--placeholder`)[0]);
|
|
46
47
|
checkForPlaceholderClass(container, 1);
|
|
47
48
|
await waitFor(() => {
|
|
48
|
-
expect(screen.queryAllByText(TooltipStory.args.content)).toHaveLength(0);
|
|
49
49
|
checkForPlaceholderClass(container, 0);
|
|
50
50
|
});
|
|
51
|
+
expect(screen.queryAllByText(TooltipStory.args.content as string)).toHaveLength(0);
|
|
51
52
|
});
|
|
52
53
|
it("should be displayed on two continues mouse hover when placeholder is used", async () => {
|
|
53
54
|
const { container } = render(<Tooltip {...TooltipStory.args} usePlaceholder={true} />);
|
|
54
55
|
fireEvent.mouseEnter(container.getElementsByClassName(`${eccgui}-tooltip__wrapper`)[0]);
|
|
55
56
|
checkForPlaceholderClass(container, 1);
|
|
56
|
-
await waitFor(
|
|
57
|
-
|
|
57
|
+
await waitFor(() => {
|
|
58
|
+
checkForPlaceholderClass(container, 0);
|
|
59
|
+
});
|
|
60
|
+
expect(screen.queryAllByText(TooltipStory.args.content as string)).toHaveLength(0);
|
|
61
|
+
fireEvent.mouseEnter(container.getElementsByClassName(`${eccgui}-tooltip__wrapper`)[0]);
|
|
62
|
+
expect(await screen.findByText(TooltipStory.args.content as string)).toBeVisible();
|
|
63
|
+
});
|
|
64
|
+
it("should be displayed on focus when no placeholder is used", async () => {
|
|
65
|
+
// Blueprint ignores focus events with null relatedTarget (page-refocus guard), so we tab
|
|
66
|
+
// from a preceding element to produce a non-null relatedTarget.
|
|
67
|
+
render(
|
|
68
|
+
<>
|
|
69
|
+
<button>previous element</button>
|
|
70
|
+
<Tooltip {...TooltipStory.args} usePlaceholder={false} />
|
|
71
|
+
</>
|
|
72
|
+
);
|
|
73
|
+
const user = userEvent.setup();
|
|
74
|
+
await user.tab(); // focuses "previous element"
|
|
75
|
+
await user.tab(); // focuses tooltip target, relatedTarget is non-null → Blueprint opens
|
|
76
|
+
expect(await screen.findByText(TooltipStory.args.content as string)).toBeVisible();
|
|
77
|
+
});
|
|
78
|
+
it("should be displayed after keyboard focus when placeholder is used", async () => {
|
|
79
|
+
// Use a focusable button child so refocus() can call .focus() on it after the swap.
|
|
80
|
+
// Tab from a preceding element so relatedTarget is non-null when Blueprint handles focus.
|
|
81
|
+
const { container } = render(
|
|
82
|
+
<>
|
|
83
|
+
<button>previous element</button>
|
|
84
|
+
<Tooltip {...TooltipStory.args} usePlaceholder={true}>
|
|
85
|
+
<button>tooltip target</button>
|
|
86
|
+
</Tooltip>
|
|
87
|
+
</>
|
|
88
|
+
);
|
|
89
|
+
const user = userEvent.setup();
|
|
90
|
+
await user.tab(); // focuses "previous element"
|
|
91
|
+
await user.tab(); // focuses placeholder inner button, triggers focusin swap
|
|
92
|
+
checkForPlaceholderClass(container, 1);
|
|
93
|
+
await waitFor(() => {
|
|
58
94
|
checkForPlaceholderClass(container, 0);
|
|
59
|
-
fireEvent.mouseOver(container.getElementsByClassName(`${eccgui}-tooltip__wrapper`)[0]);
|
|
60
|
-
expect(await screen.findByText(TooltipStory.args.content)).toBeVisible();
|
|
61
95
|
});
|
|
96
|
+
expect(await screen.findByText(TooltipStory.args.content as string)).toBeVisible();
|
|
62
97
|
});
|
|
63
98
|
});
|
|
@@ -50,7 +50,7 @@ export interface TooltipProps extends Omit<BlueprintTooltipProps, "position"> {
|
|
|
50
50
|
swapPlaceholderDelay?: number;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
export type TooltipSize = "small" | "medium" | "large"
|
|
53
|
+
export type TooltipSize = "small" | "medium" | "large";
|
|
54
54
|
|
|
55
55
|
export const Tooltip = ({
|
|
56
56
|
children,
|
|
@@ -100,15 +100,19 @@ export const Tooltip = ({
|
|
|
100
100
|
}, swapDelayTime);
|
|
101
101
|
if (placeholderRef.current !== null) {
|
|
102
102
|
const eventType = ev.type === "focusin" ? "focusout" : "mouseleave";
|
|
103
|
-
(placeholderRef.current as HTMLElement).
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
103
|
+
const innerFocusTarget = (placeholderRef.current as HTMLElement).querySelector("[tabindex='0']")
|
|
104
|
+
?.children[0];
|
|
105
|
+
if (innerFocusTarget) {
|
|
106
|
+
(innerFocusTarget as HTMLElement).addEventListener(eventType, () => {
|
|
107
|
+
if (
|
|
108
|
+
(eventType === "focusout" && eventMemory.current === "afterfocus") ||
|
|
109
|
+
(eventType === "mouseleave" && eventMemory.current === "afterhover")
|
|
110
|
+
) {
|
|
111
|
+
eventMemory.current = null;
|
|
112
|
+
}
|
|
113
|
+
clearTimeout(swapDelay.current as NodeJS.Timeout);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
112
116
|
}
|
|
113
117
|
};
|
|
114
118
|
(placeholderRef.current as HTMLElement).addEventListener("mouseenter", swap);
|
|
@@ -123,7 +127,7 @@ export const Tooltip = ({
|
|
|
123
127
|
return () => {};
|
|
124
128
|
}, [!!placeholderRef.current]);
|
|
125
129
|
|
|
126
|
-
const refocus = React.useCallback((node) => {
|
|
130
|
+
const refocus = React.useCallback((node:any) => {
|
|
127
131
|
if (eventMemory.current && node) {
|
|
128
132
|
// we do not have a `targetRef` here, so we need to workaround it
|
|
129
133
|
// const target = node.targetRef.current.children[0];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
|
|
4
|
+
import { TestableComponent } from "../interfaces";
|
|
5
|
+
|
|
6
|
+
export interface InlineTextProps extends React.HTMLAttributes<HTMLElement>, TestableComponent {
|
|
7
|
+
/**
|
|
8
|
+
* Additional CSS class name.
|
|
9
|
+
*/
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Forces all children to be displayed as inline content.
|
|
15
|
+
*/
|
|
16
|
+
export const InlineText = ({ className = "", children, ...otherProps }: InlineTextProps) => {
|
|
17
|
+
return (
|
|
18
|
+
<div {...otherProps} className={`${eccgui}-typography__inlinetext` + (className ? " " + className : "")}>
|
|
19
|
+
{children}
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default InlineText;
|
|
@@ -7,6 +7,7 @@ select,
|
|
|
7
7
|
input,
|
|
8
8
|
textarea {
|
|
9
9
|
font-family: inherit;
|
|
10
|
+
font-size-adjust: inherit;
|
|
10
11
|
border-radius: 0;
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -27,6 +28,7 @@ button {
|
|
|
27
28
|
|
|
28
29
|
svg {
|
|
29
30
|
padding: 0;
|
|
31
|
+
|
|
30
32
|
// forgotten in reset import but necessary to fix problems when used together with MDL resets
|
|
31
33
|
margin: 0;
|
|
32
34
|
font: inherit;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
3
|
+
|
|
4
|
+
import { InlineText } from "../InlineText";
|
|
5
|
+
|
|
6
|
+
import overflowTextConfig from "./OverflowText.stories";
|
|
7
|
+
|
|
8
|
+
const config = {
|
|
9
|
+
title: "Components/Typography/InlineText",
|
|
10
|
+
component: InlineText,
|
|
11
|
+
argTypes: {
|
|
12
|
+
children: overflowTextConfig.argTypes?.children,
|
|
13
|
+
},
|
|
14
|
+
} as Meta<typeof InlineText>;
|
|
15
|
+
export default config;
|
|
16
|
+
|
|
17
|
+
const Template: StoryFn<typeof InlineText> = (args) => <InlineText {...args} />;
|
|
18
|
+
|
|
19
|
+
export const Default = Template.bind({});
|
|
20
|
+
Default.args = {
|
|
21
|
+
children: (
|
|
22
|
+
<div>
|
|
23
|
+
<div>Block line 1.</div>
|
|
24
|
+
<div>Block line 2.</div>
|
|
25
|
+
</div>
|
|
26
|
+
),
|
|
27
|
+
};
|
|
@@ -13,6 +13,12 @@ html {
|
|
|
13
13
|
|
|
14
14
|
body {
|
|
15
15
|
font-family: $eccgui-font-family-default;
|
|
16
|
+
|
|
17
|
+
// User-facing text may contain Unicode symbols (e.g. "★") that fall outside the primary font stack.
|
|
18
|
+
// Browsers pick different system fallback fonts for such characters, causing glyphs to render at
|
|
19
|
+
// different optical sizes (smaller in Firefox). font-size-adjust normalises the fallback font size
|
|
20
|
+
// by matching the primary font's x-height, reducing the visual size discrepancy across browsers.
|
|
21
|
+
font-size-adjust: from-font;
|
|
16
22
|
font-weight: $eccgui-font-weight-regular;
|
|
17
23
|
text-rendering: optimizelegibility;
|
|
18
24
|
-webkit-font-smoothing: antialiased;
|
|
@@ -22,6 +28,11 @@ body {
|
|
|
22
28
|
code {
|
|
23
29
|
font-family: $eccgui-font-family-monospace;
|
|
24
30
|
font-size: 0.9em;
|
|
31
|
+
|
|
32
|
+
.#{$eccgui}-typography__contentblock &,
|
|
33
|
+
&.#{$eccgui}-typography__text {
|
|
34
|
+
background-color: $eccgui-color-workspace-background;
|
|
35
|
+
}
|
|
25
36
|
}
|
|
26
37
|
|
|
27
38
|
strong {
|
|
@@ -63,11 +74,18 @@ mark {
|
|
|
63
74
|
line-height: $eccgui-size-typo-text-lineheight;
|
|
64
75
|
}
|
|
65
76
|
|
|
66
|
-
.#{$eccgui}-typography__contentblock.#{$eccgui}-typography--small
|
|
77
|
+
.#{$eccgui}-typography__contentblock.#{$eccgui}-typography--small,
|
|
78
|
+
.#{$eccgui}-typography--small {
|
|
67
79
|
font-size: $eccgui-size-typo-caption;
|
|
68
80
|
line-height: $eccgui-size-typo-caption-lineheight;
|
|
69
81
|
}
|
|
70
82
|
|
|
83
|
+
.#{$eccgui}-typography__contentblock.#{$eccgui}-typography--large,
|
|
84
|
+
.#{$eccgui}-typography--large {
|
|
85
|
+
font-size: $eccgui-size-typo-subtitle;
|
|
86
|
+
line-height: $eccgui-size-typo-subtitle-lineheight;
|
|
87
|
+
}
|
|
88
|
+
|
|
71
89
|
h1 {
|
|
72
90
|
.#{$eccgui}-typography__contentblock &,
|
|
73
91
|
&.#{$eccgui}-typography__text {
|
|
@@ -223,9 +241,9 @@ table {
|
|
|
223
241
|
max-width: 100%;
|
|
224
242
|
overflow: hidden;
|
|
225
243
|
text-overflow: ellipsis;
|
|
244
|
+
vertical-align: middle;
|
|
226
245
|
overflow-wrap: normal;
|
|
227
246
|
white-space: nowrap;
|
|
228
|
-
vertical-align: middle;
|
|
229
247
|
}
|
|
230
248
|
|
|
231
249
|
.#{$eccgui}-typography__overflowtext--inline {
|
|
@@ -241,8 +259,8 @@ table {
|
|
|
241
259
|
}
|
|
242
260
|
|
|
243
261
|
.#{$eccgui}-typography__overflowtext--ellipsis-reverse {
|
|
244
|
-
text-align: left;
|
|
245
262
|
text-overflow: ellipsis;
|
|
263
|
+
text-align: left;
|
|
246
264
|
direction: rtl;
|
|
247
265
|
unicode-bidi: embed;
|
|
248
266
|
|
|
@@ -263,6 +281,22 @@ table {
|
|
|
263
281
|
}
|
|
264
282
|
}
|
|
265
283
|
|
|
284
|
+
// InlineText
|
|
285
|
+
|
|
286
|
+
.#{$eccgui}-typography__inlinetext {
|
|
287
|
+
display: inline;
|
|
288
|
+
|
|
289
|
+
* {
|
|
290
|
+
display: inline;
|
|
291
|
+
|
|
292
|
+
& + * {
|
|
293
|
+
&::before {
|
|
294
|
+
content: " ";
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
266
300
|
// helpers
|
|
267
301
|
|
|
268
302
|
.#{$eccgui}-typography--nooverflow {
|