From 54e48252f64e5af63ae2d9319cd4fd2d12742360 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 22 Jul 2019 10:09:56 +0200 Subject: [PATCH 1/4] portal: fix #space example page --- .../docs/uilib/components/space/Examples.js | 10 +- .../uilib/components/space/VisualHelpers.js | 133 ++++++++++++++++++ 2 files changed, 135 insertions(+), 8 deletions(-) create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js b/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js index c6cf5c90064..a4c1e97f255 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js @@ -3,18 +3,12 @@ * */ -import React, { - PureComponent - // , useEffect, useState -} from 'react' +import React, { PureComponent } from 'react' import PropTypes from 'prop-types' import ComponentBox from '../../../../shared/tags/ComponentBox' // import { Space } from 'dnb-ui-lib/src/components' import styled from '@emotion/styled' -import { - MagicBox, - VisualSpace -} from '../../../../../../dnb-ui-lib/stories/components/Space' +import { MagicBox, VisualSpace } from './VisualHelpers' const IS_TEST = typeof window !== 'undefined' && window.IS_TEST const TestStyles = styled.div` diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js b/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js new file mode 100644 index 00000000000..f86ba0b17e8 --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js @@ -0,0 +1,133 @@ +/** + * Visual helper to show spacing + * + */ + +import React, { useEffect, useState } from 'react' +import PropTypes from 'prop-types' +import styled from '@emotion/styled' +import { Space } from 'dnb-ui-lib/src/components' + +const Block = styled.div` + position: relative; + + display: flex; + justify-content: center; + + width: 1.5rem; + height: 1.5rem; + + background-color: var(--color-mint-green); +` +const Line = styled.div` + position: absolute; + bottom: 100%; + + display: flex; + align-items: center; + + width: 0.0625rem; + height: 100%; + + background-color: var(--color-cherry-red); + ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} +` +const MarginContainer = styled.div` + position: relative; +` +const Margin = styled.div` + position: absolute; + bottom: 100%; + + display: flex; + align-items: center; + justify-content: center; + + width: 100%; + height: 100%; + + background-color: rgba(213, 30, 149, 0.25); + ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} +` +const Label = styled.label` + display: block; + width: 1rem; + margin-left: 0.25rem; + font-size: 0.5rem; + text-align: center; + color: var(--color-black-80); +` + +const MagicBox = ({ label, ...rest }) => { + const ref = React.createRef() + + const [spaceInRem, setLabel] = useState(label) + const [title, setTitle] = useState(null) + + if (!label) { + useEffect(() => { + const spaceInPixels = window + .getComputedStyle(ref.current.parentElement) + .getPropertyValue('margin-top') + const spaceInRem = `${parseFloat(spaceInPixels) / 16}` + setLabel(spaceInRem) + + const title = ref.current.parentElement.getAttribute('class') + setTitle(title) + }) + } + + return ( + + + + + ) +} +MagicBox.propTypes = { + label: PropTypes.string +} +MagicBox.defaultProps = { + label: null +} + +const VisualSpace = ({ label, children, ...rest }) => { + const ref = React.createRef() + + const [spaceInRem, setLabel] = useState(label) + const [title, setTitle] = useState(null) + + if (!label) { + useEffect(() => { + const spaceInPixels = window + .getComputedStyle(ref.current.children[0]) + .getPropertyValue('margin-top') + const spaceInRem = `${parseFloat(spaceInPixels) / 16}` + setLabel(spaceInRem) + + const title = ref.current.parentElement.getAttribute('class') + setTitle(title) + }) + } + + return ( + + + {children} + + + + + + ) +} +VisualSpace.propTypes = { + label: PropTypes.string, + children: PropTypes.node +} +VisualSpace.defaultProps = { + label: null, + children: null +} + +export { MagicBox, VisualSpace } From 1096e9a10bcb1ae38ef7b6e28d27af5c53ae9e4b Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 22 Jul 2019 10:26:08 +0200 Subject: [PATCH 2/4] portal: fix #space example page, second attempt --- .../docs/uilib/components/space/Examples.js | 128 ++++++++++++++++- .../uilib/components/space/VisualHelpers.js | 133 ------------------ .../uilib/demos/eufemia-demo/form-demo-01.js | 5 + 3 files changed, 131 insertions(+), 135 deletions(-) delete mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js b/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js index a4c1e97f255..4d6bc2aa3a7 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/space/Examples.js @@ -3,12 +3,12 @@ * */ -import React, { PureComponent } from 'react' +import React, { PureComponent, useEffect, useState } from 'react' import PropTypes from 'prop-types' import ComponentBox from '../../../../shared/tags/ComponentBox' // import { Space } from 'dnb-ui-lib/src/components' import styled from '@emotion/styled' -import { MagicBox, VisualSpace } from './VisualHelpers' +import { Space } from 'dnb-ui-lib/src/components' const IS_TEST = typeof window !== 'undefined' && window.IS_TEST const TestStyles = styled.div` @@ -183,3 +183,127 @@ RedBox.propTypes = { RedBox.defaultProps = { children: null } + +const Block = styled.div` + position: relative; + + display: flex; + justify-content: center; + + width: 1.5rem; + height: 1.5rem; + + background-color: var(--color-mint-green); +` +const Line = styled.div` + position: absolute; + bottom: 100%; + + display: flex; + align-items: center; + + width: 0.0625rem; + height: 100%; + + background-color: var(--color-cherry-red); + ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} +` +const MarginContainer = styled.div` + position: relative; +` +const Margin = styled.div` + position: absolute; + bottom: 100%; + + display: flex; + align-items: center; + justify-content: center; + + width: 100%; + height: 100%; + + background-color: rgba(213, 30, 149, 0.25); + ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} +` +const Label = styled.label` + display: block; + width: 1rem; + margin-left: 0.25rem; + font-size: 0.5rem; + text-align: center; + color: var(--color-black-80); +` + +const MagicBox = ({ label, ...rest }) => { + const ref = React.createRef() + + const [spaceInRem, setLabel] = useState(label) + const [title, setTitle] = useState(null) + + if (!label) { + useEffect(() => { + const spaceInPixels = window + .getComputedStyle(ref.current.parentElement) + .getPropertyValue('margin-top') + const spaceInRem = `${parseFloat(spaceInPixels) / 16}` + setLabel(spaceInRem) + + const title = ref.current.parentElement.getAttribute('class') + setTitle(title) + }) + } + + return ( + + + + + ) +} +MagicBox.propTypes = { + label: PropTypes.string +} +MagicBox.defaultProps = { + label: null +} + +const VisualSpace = ({ label, children, ...rest }) => { + const ref = React.createRef() + + const [spaceInRem, setLabel] = useState(label) + const [title, setTitle] = useState(null) + + if (!label) { + useEffect(() => { + const spaceInPixels = window + .getComputedStyle(ref.current.children[0]) + .getPropertyValue('margin-top') + const spaceInRem = `${parseFloat(spaceInPixels) / 16}` + setLabel(spaceInRem) + + const title = ref.current.parentElement.getAttribute('class') + setTitle(title) + }) + } + + return ( + + + {children} + + + + + + ) +} +VisualSpace.propTypes = { + label: PropTypes.string, + children: PropTypes.node +} +VisualSpace.defaultProps = { + label: null, + children: null +} + +export { MagicBox, VisualSpace } diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js b/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js deleted file mode 100644 index f86ba0b17e8..00000000000 --- a/packages/dnb-design-system-portal/src/docs/uilib/components/space/VisualHelpers.js +++ /dev/null @@ -1,133 +0,0 @@ -/** - * Visual helper to show spacing - * - */ - -import React, { useEffect, useState } from 'react' -import PropTypes from 'prop-types' -import styled from '@emotion/styled' -import { Space } from 'dnb-ui-lib/src/components' - -const Block = styled.div` - position: relative; - - display: flex; - justify-content: center; - - width: 1.5rem; - height: 1.5rem; - - background-color: var(--color-mint-green); -` -const Line = styled.div` - position: absolute; - bottom: 100%; - - display: flex; - align-items: center; - - width: 0.0625rem; - height: 100%; - - background-color: var(--color-cherry-red); - ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} -` -const MarginContainer = styled.div` - position: relative; -` -const Margin = styled.div` - position: absolute; - bottom: 100%; - - display: flex; - align-items: center; - justify-content: center; - - width: 100%; - height: 100%; - - background-color: rgba(213, 30, 149, 0.25); - ${'' /* border-left: 0.0625rem dotted var(--color-cherry-red); */} -` -const Label = styled.label` - display: block; - width: 1rem; - margin-left: 0.25rem; - font-size: 0.5rem; - text-align: center; - color: var(--color-black-80); -` - -const MagicBox = ({ label, ...rest }) => { - const ref = React.createRef() - - const [spaceInRem, setLabel] = useState(label) - const [title, setTitle] = useState(null) - - if (!label) { - useEffect(() => { - const spaceInPixels = window - .getComputedStyle(ref.current.parentElement) - .getPropertyValue('margin-top') - const spaceInRem = `${parseFloat(spaceInPixels) / 16}` - setLabel(spaceInRem) - - const title = ref.current.parentElement.getAttribute('class') - setTitle(title) - }) - } - - return ( - - - - - ) -} -MagicBox.propTypes = { - label: PropTypes.string -} -MagicBox.defaultProps = { - label: null -} - -const VisualSpace = ({ label, children, ...rest }) => { - const ref = React.createRef() - - const [spaceInRem, setLabel] = useState(label) - const [title, setTitle] = useState(null) - - if (!label) { - useEffect(() => { - const spaceInPixels = window - .getComputedStyle(ref.current.children[0]) - .getPropertyValue('margin-top') - const spaceInRem = `${parseFloat(spaceInPixels) / 16}` - setLabel(spaceInRem) - - const title = ref.current.parentElement.getAttribute('class') - setTitle(title) - }) - } - - return ( - - - {children} - - - - - - ) -} -VisualSpace.propTypes = { - label: PropTypes.string, - children: PropTypes.node -} -VisualSpace.defaultProps = { - label: null, - children: null -} - -export { MagicBox, VisualSpace } diff --git a/packages/dnb-design-system-portal/src/docs/uilib/demos/eufemia-demo/form-demo-01.js b/packages/dnb-design-system-portal/src/docs/uilib/demos/eufemia-demo/form-demo-01.js index bd26c58ccf5..07480d540fe 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/demos/eufemia-demo/form-demo-01.js +++ b/packages/dnb-design-system-portal/src/docs/uilib/demos/eufemia-demo/form-demo-01.js @@ -95,6 +95,11 @@ const DividerSection = styled(Section)` .dnb-button + .dnb-button { margin-left: 1rem; } + @media (max-width: 40em) { + .dnb-button + .dnb-button { + margin-left: 0.5rem; + } + } ` // Default local states/values From 3940b179224298c8d7b550420443e909515ecbf2 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 22 Jul 2019 11:21:18 +0200 Subject: [PATCH 3/4] portal: enhance #table example --- .../src/docs/uilib/elements/tables.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md b/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md index 881c3e6957b..ac1d0623f2e 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md +++ b/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md @@ -14,10 +14,10 @@ The following table has a default style. But in future, there will be several pa - - - + + + + + + - - + From 39e2f1dbf4cbb1cb5d659d0e918ae94a5df42ebc Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 22 Jul 2019 11:48:20 +0200 Subject: [PATCH 4/4] fix: make #table style expandable in width --- .../src/docs/uilib/elements/tables.md | 2 ++ .../__tests__/Table.screenshot.test.js | 16 ++++++++++++++-- ...lt-choice-of-table-styles-1-b0b7d.snap.png | Bin 18485 -> 23142 bytes .../dnb-ui-lib/src/style/elements/table.scss | 3 ++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md b/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md index ac1d0623f2e..fa6ae517fb3 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md +++ b/packages/dnb-design-system-portal/src/docs/uilib/elements/tables.md @@ -9,6 +9,8 @@ import ComponentBox from 'Tags/ComponentBox' The following table has a default style. But in future, there will be several patterns and styles to choose from. +You may consider using `table-layout: fixed;`. + {`
- Only text + + Header + {/* Sortable @@ -29,7 +29,7 @@ The following table has a default style. But in future, there will be several pa title="Sort table row" /> + {/* Active @@ -43,6 +43,12 @@ The following table has a default style. But in future, there will be several pa
FooterSum
@@ -59,8 +65,7 @@ The following table has a default style. But in future, there will be several pa Column 4
Column 1Column 2Column witch spans over two columns Column 3 Column 4
diff --git a/packages/dnb-ui-lib/src/style/elements/__tests__/Table.screenshot.test.js b/packages/dnb-ui-lib/src/style/elements/__tests__/Table.screenshot.test.js index 9e7d0f2b625..9f5894db38c 100644 --- a/packages/dnb-ui-lib/src/style/elements/__tests__/Table.screenshot.test.js +++ b/packages/dnb-ui-lib/src/style/elements/__tests__/Table.screenshot.test.js @@ -12,16 +12,26 @@ describe('Table screenshot', () => { setupPageScreenshot({ url: '/uilib/elements/tables' }) it('have to match the default choice of table styles', async () => { const screenshot = await testPageScreenshot({ + style: { + width: '40rem' + }, selector: '[data-dnb-test="table-default"] .dnb-table' }) expect(screenshot).toMatchImageSnapshot() }) + const style = { + display: 'block', + width: '40rem' + } + const styleSelector = '[data-dnb-test="table-default"] .dnb-table' it('have to match a sortable table header on hover', async () => { const selector = '[data-dnb-test="table-default"] th.dnb-table--sortable:not(.dnb-table--active)' const screenshot = await testPageScreenshot({ + style, + styleSelector, selector, - simulateSelector: `${selector} button`, + simulateSelector: `${selector} button.dnb-button`, simulate: 'hover' }) expect(screenshot).toMatchImageSnapshot() @@ -30,8 +40,10 @@ describe('Table screenshot', () => { const selector = '[data-dnb-test="table-default"] th.dnb-table--sortable:not(.dnb-table--active)' const screenshot = await testPageScreenshot({ + style, + styleSelector, selector, - simulateSelector: `${selector} button`, + simulateSelector: `${selector} button.dnb-button`, simulate: 'focus' }) expect(screenshot).toMatchImageSnapshot() diff --git a/packages/dnb-ui-lib/src/style/elements/__tests__/__snapshots__/table-screenshot-test-js-table-screenshot-have-to-match-the-default-choice-of-table-styles-1-b0b7d.snap.png b/packages/dnb-ui-lib/src/style/elements/__tests__/__snapshots__/table-screenshot-test-js-table-screenshot-have-to-match-the-default-choice-of-table-styles-1-b0b7d.snap.png index 2f1ea4e49a50a674d3d4c5be984bf23d2c99d491..683fc299819fd0d2683e4e5d4964d582b3e2efd0 100644 GIT binary patch literal 23142 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 R7zhH95|