@platformatic/ui-components 0.1.30 → 0.1.32

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@platformatic/ui-components",
3
3
  "description": "Platformatic UI Components",
4
- "version": "0.1.30",
4
+ "version": "0.1.32",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -2,10 +2,13 @@
2
2
 
3
3
  import styles from './Box.module.css'
4
4
  import React from 'react'
5
- export default function Box (props) {
5
+ export default function Box ({ justifyCentered, children }) {
6
+ let className = `${styles.box}`
7
+ if (justifyCentered) className += ` ${styles.justifyCentered}`
8
+
6
9
  return (
7
- <div className={styles.box}>
8
- {props.children}
10
+ <div className={className}>
11
+ {children}
9
12
  </div>
10
13
  )
11
14
  }
@@ -1,3 +1,7 @@
1
1
  .box {
2
- @apply mx-24 my-24 flex flex-col
2
+ @apply p-5 m-0 md:p-0 md:m-24 flex flex-col;
3
+ }
4
+
5
+ .justifyCentered {
6
+ @apply justify-center;
3
7
  }
@@ -1,75 +1,57 @@
1
1
  import React from 'react'
2
- export default function Logo ({ width, heigth }) {
2
+ export default function Logo ({ width = 107, heigth = 86 }) {
3
3
  return (
4
4
  <svg
5
- data-name='Layer 1'
6
- xmlns='http://www.w3.org/2000/svg'
7
- viewBox='0 0 2000 2000'
8
5
  width={width}
9
6
  height={heigth}
7
+ viewBox='0 0 107 86'
8
+ fill='none'
9
+ xmlns='http://www.w3.org/2000/svg'
10
10
  >
11
11
  <path
12
- d='M610.13 1336.34h1012v-.29c136.31-6.16 244.94-118.58 244.94-256.4 0-141.77-114.93-256.7-256.7-256.7a255.52 255.52 0 0 0-118.5 29c-42.1-97.31-127.47-171.53-231.86-198.36m-866.79 0C243.55 692.05 133 827.87 133 989.53s110.76 297.67 260.58 336'
13
- style={{
14
- strokeWidth: '67.96px',
15
- stroke: '#FFFFFF',
16
- fill: 'none',
17
- strokeLinecap: 'round',
18
- strokeLinejoin: 'round'
19
- }}
12
+ d='M30.8197 62.5803H89.7919V62.5614C92.0266 62.4574 94.2096 61.8539 96.1799 60.7954C98.1502 59.7369 99.8577 58.2503 101.177 56.4452C102.496 54.6401 103.392 52.5624 103.801 50.3652C104.21 48.168 104.12 45.9072 103.538 43.7493C102.956 41.5915 101.897 39.5915 100.438 37.8967C98.9799 36.202 97.1596 34.8556 95.1114 33.9567C93.0632 33.0579 90.8392 32.6294 88.6032 32.703C86.3673 32.7765 84.1763 33.3502 82.1917 34.3817C80.9669 31.5572 79.1131 29.0491 76.7716 27.0482C74.43 25.0473 71.6623 23.6064 68.6792 22.8352M18.1691 22.8352C13.8266 23.9537 9.97973 26.4828 7.23367 30.0244C4.48761 33.566 2.99827 37.9192 3 42.399C3.00173 46.8787 4.49443 51.2307 7.24322 54.7702C9.992 58.3098 13.8409 60.8359 18.1841 61.951'
13
+ stroke='white'
14
+ stroke-width='4.21053'
15
+ stroke-linecap='round'
16
+ stroke-linejoin='round'
20
17
  />
21
18
  <path
22
- d='M661.56 916.05a322.34 322.34 0 0 0 164.19 44.64c178.89 0 323.91-145 323.91-323.92s-145-323.91-323.91-323.91-323.92 145-323.92 323.91v483.15'
23
- style={{
24
- stroke: '#21fa90',
25
- strokeWidth: '67.96px',
26
- fill: 'none',
27
- strokeLinecap: 'round',
28
- strokeLinejoin: 'round'
29
- }}
19
+ d='M41.4979 35.2219L33.6299 37.9838L37.0924 45.3197'
20
+ stroke='#21FA90'
21
+ stroke-width='4.21053'
22
+ stroke-linecap='round'
23
+ stroke-linejoin='round'
30
24
  />
31
25
  <path
32
- style={{
33
- opacity: 0.2,
34
- stroke: '#21fa90',
35
- strokeWidth: '67.96px',
36
- fill: 'none',
37
- strokeLinecap: 'round',
38
- strokeLinejoin: 'round'
39
- }}
40
- d='M501.83 1630.69v56.45'
26
+ d='M33.8069 38.1138C37.3946 40.2213 41.5789 41.0853 45.709 40.5715C49.8391 40.0577 53.6834 38.1948 56.6441 35.2727C59.6047 32.3505 61.5157 28.5329 62.0797 24.4136C62.6437 20.2943 61.8292 16.1043 59.7628 12.4953C57.6964 8.88629 54.494 6.0606 50.6537 4.45774C46.8135 2.85489 42.5506 2.56474 38.5281 3.63241C34.5057 4.70009 30.9492 7.06574 28.4119 10.3614C25.8745 13.6571 24.4986 17.698 24.498 21.8556V49.9806'
27
+ stroke='#21FA90'
28
+ stroke-width='4.21053'
29
+ stroke-linecap='round'
30
+ stroke-linejoin='round'
41
31
  />
42
32
  <path
43
- style={{
44
- opacity: 0.4,
45
- stroke: '#21fa90',
46
- strokeWidth: '67.96px',
47
- fill: 'none',
48
- strokeLinecap: 'round',
49
- strokeLinejoin: 'round'
50
- }}
51
- d='M502.33 1453.1v89.15'
33
+ opacity='0.2'
34
+ d='M24.498 79.7146V83.0001'
35
+ stroke='#21FA90'
36
+ stroke-width='4.21053'
37
+ stroke-linecap='round'
38
+ stroke-linejoin='round'
52
39
  />
53
40
  <path
54
- style={{
55
- opacity: 0.7,
56
- stroke: '#21fa90',
57
- strokeWidth: '67.96px',
58
- fill: 'none',
59
- strokeLinecap: 'round',
60
- strokeLinejoin: 'round'
61
- }}
62
- d='M501.83 1211.73v149.07'
41
+ opacity='0.4'
42
+ d='M24.5283 69.3757V74.5658'
43
+ stroke='#21FA90'
44
+ stroke-width='4.21053'
45
+ stroke-linecap='round'
46
+ stroke-linejoin='round'
63
47
  />
64
48
  <path
65
- d='m793.55 866.39-135 47.43 59.44 126'
66
- style={{
67
- strokeWidth: '70.05px',
68
- stroke: '#21fa90',
69
- fill: 'none',
70
- strokeLinecap: 'round',
71
- strokeLinejoin: 'round'
72
- }}
49
+ opacity='0.7'
50
+ d='M24.498 55.3254V64.0028'
51
+ stroke='#21FA90'
52
+ stroke-width='4.21053'
53
+ stroke-linecap='round'
54
+ stroke-linejoin='round'
73
55
  />
74
56
  </svg>
75
57
  )
@@ -1,7 +1,6 @@
1
- import { faClose } from '@fortawesome/free-solid-svg-icons'
2
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
3
1
  import React from 'react'
4
2
  import useEscapeKey from '../hooks/useEscapeKey'
3
+ import CloseModalIcon from './icons/CloseModalIcon'
5
4
  import styles from './Modal.module.css'
6
5
  export default function Modal (props) {
7
6
  const { setIsOpen, title } = props
@@ -14,13 +13,14 @@ export default function Modal (props) {
14
13
  <div className={styles.header}>
15
14
  <div className={styles.title}>{title}</div>
16
15
  <div className={styles.close} onClick={() => setIsOpen(false)}>
17
- <FontAwesomeIcon icon={faClose} />
16
+ <CloseModalIcon />
18
17
  </div>
19
18
  </div>
20
19
  <hr className={styles.hr} />
21
20
  <div>
22
21
  {props.children}
23
22
  </div>
23
+ <hr className={styles.hr} />
24
24
  </div>
25
25
  </div>
26
26
  </>
@@ -9,7 +9,7 @@
9
9
  @apply fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]
10
10
  }
11
11
  .modal {
12
- @apply bg-[#E9F7FF] p-4 rounded-md mx-auto my-auto min-w-[480px] max-h-[85vh] overflow-y-scroll;
12
+ @apply bg-[#E9F7FF] p-4 rounded-md mx-auto my-auto min-w-[480px] max-h-[85vh] overflow-y-auto;
13
13
  }
14
14
  .header {
15
15
  @apply flex justify-between items-center;
@@ -18,7 +18,7 @@
18
18
  @apply hover:cursor-pointer;
19
19
  }
20
20
  .hr {
21
- @apply text-[#00283D] my-2
21
+ @apply text-[#00283D] my-2 opacity-20;
22
22
  }
23
23
  .title {
24
24
  @apply font-bold text-lg;
@@ -1,12 +1,15 @@
1
1
  'use strict'
2
- import React, { useRef } from 'react'
2
+ import React, { useRef, useState } from 'react'
3
3
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
4
4
  import { faSearch } from '@fortawesome/free-solid-svg-icons'
5
5
  import styles from './SearchBar.module.css'
6
6
  import commonStyles from './Common.module.css'
7
7
  export default function SearchBar (props) {
8
8
  const inputRef = useRef()
9
- const { onSubmit, onChange } = props
9
+ const [wrapperClassName, setWrapperClassName] = useState(normalClassName())
10
+ const [isOnFocus, setIsOnFocus] = useState(false)
11
+ const { onSubmit, onChange, title } = props
12
+
10
13
  function handleSearch () {
11
14
  if (onSubmit) {
12
15
  const value = inputRef.current.value
@@ -20,13 +23,40 @@ export default function SearchBar (props) {
20
23
  return onChange(value)
21
24
  }
22
25
  }
23
- return (
24
- <div className={`${styles.input} ${commonStyles.padded}`}>
25
- <input type='text' placeholder='Search' className='grow' ref={inputRef} onChange={handleChange} />
26
- <button onClick={handleSearch}>
27
- <FontAwesomeIcon color='white' icon={faSearch} />
28
- </button>
29
26
 
27
+ function onFocus () {
28
+ if (!isOnFocus) {
29
+ setIsOnFocus(true)
30
+ setWrapperClassName(onFocusClassName())
31
+ }
32
+ }
33
+
34
+ function onBlur () {
35
+ setIsOnFocus(false)
36
+ setWrapperClassName(normalClassName())
37
+ }
38
+
39
+ function onFocusClassName () {
40
+ return `${styles.input} ${commonStyles.padded} ${styles.onFocus}`
41
+ }
42
+
43
+ function normalClassName () {
44
+ return `${styles.input} ${commonStyles.padded} ${styles.onBlur}`
45
+ }
46
+
47
+ function iconClassName () {
48
+ return isOnFocus ? 'text-main-green' : 'text-white'
49
+ }
50
+
51
+ return (
52
+ <div>
53
+ {title && <h1 className={styles.title}>{title}</h1>}
54
+ <div className={wrapperClassName}>
55
+ <input type='text' placeholder='Search' className='grow' ref={inputRef} onChange={handleChange} onFocus={onFocus} onBlur={onBlur} />
56
+ <button onClick={handleSearch} onFocus={onFocus} onBlur={onBlur}>
57
+ <FontAwesomeIcon className={iconClassName()} icon={faSearch} />
58
+ </button>
59
+ </div>
30
60
  </div>
31
61
 
32
62
  )
@@ -1,6 +1,21 @@
1
1
  .input {
2
- @apply flex justify-between w-full h-10 text-white border-main-green border border-solid box-border rounded-md;
2
+ @apply flex justify-between w-full h-10 text-white border border-solid box-border rounded-md;
3
+ }
4
+ .onFocus {
5
+ @apply border-main-green;
6
+ }
7
+ .onBlur {
8
+ @apply border-white;
9
+ }
10
+ .fillGreen {
11
+ @apply fill-main-green;
12
+ }
13
+ .fillWhite {
14
+ @apply fill-white;
3
15
  }
4
16
  .input > input:focus {
5
17
  @apply outline-none;
18
+ }
19
+ .title {
20
+ @apply font-semibold text-white text-3xl pb-4;
6
21
  }
@@ -0,0 +1,107 @@
1
+ import React from 'react'
2
+ export default function ApiEmptyIcon () {
3
+ return (
4
+ <svg
5
+ width='80'
6
+ height='80'
7
+ viewBox='0 0 80 80'
8
+ fill='none'
9
+ xmlns='http://www.w3.org/2000/svg'
10
+ >
11
+ <path
12
+ d='M38.2726 3.83337V5.48055C38.2726 5.79404 38.4831 6.07727 38.8003 6.18727L41.0653 6.98199C41.3737 7.08923 41.7235 7.01498 41.9488 6.78949L43.0369 5.70604C43.3571 5.38705 43.9026 5.3843 44.2257 5.70329L46.8525 8.28268C47.146 8.57142 47.1489 9.01965 46.8613 9.31114L45.462 10.7356C45.2397 10.9611 45.1863 11.2883 45.3256 11.5633L46.2743 13.4607C46.4077 13.7275 46.6983 13.9007 47.0155 13.9007H48.4682C48.9189 13.9007 49.2835 14.2389 49.2835 14.6569V17.8413C49.2835 18.2593 48.9189 18.5975 48.4682 18.5975H46.9414C46.5886 18.5975 46.2743 18.8092 46.1646 19.12L45.3938 21.3116C45.3019 21.5701 45.3671 21.8534 45.5658 22.0541L46.8198 23.3383C47.1252 23.6518 47.0956 24.1385 46.7517 24.4163L43.8611 26.7619C43.529 27.0314 43.025 27.0067 42.7256 26.7069L41.7176 25.7005C41.4982 25.4805 41.1573 25.4007 40.8519 25.4997L38.7469 26.1817C38.4179 26.2889 38.1985 26.5749 38.1985 26.8967V28.3953C38.1985 28.8133 37.8338 29.1516 37.3832 29.1516H33.5409C33.0903 29.1516 32.7256 28.8133 32.7256 28.3953V26.8967C32.7256 26.5749 32.5062 26.2889 32.1772 26.1817L30.0722 25.4997C29.7668 25.4007 29.4259 25.4777 29.2065 25.7005L28.1985 26.7069C27.8991 27.0067 27.3951 27.0314 27.063 26.7619L24.1724 24.4163C23.8285 24.1385 23.7989 23.6518 24.1043 23.3383L25.3583 22.0541C25.554 21.8534 25.6192 21.5701 25.5303 21.3116L24.7595 19.12C24.6498 18.8092 24.3355 18.5975 23.9827 18.5975H22.4588C22.0082 18.5975 21.6436 18.2593 21.6436 17.8413V14.6569C21.6436 14.2389 22.0082 13.9007 22.4588 13.9007H23.9116C24.2288 13.9007 24.5193 13.7302 24.6527 13.4607L25.6014 11.5633C25.7408 11.2856 25.6844 10.9611 25.4651 10.7356L24.0657 9.31114C23.7781 9.01965 23.7811 8.56867 24.0746 8.28268L26.7013 5.70329C27.0245 5.38705 27.57 5.38705 27.8902 5.70604L28.9782 6.78949C29.2036 7.01498 29.5534 7.08923 29.8617 6.98199L32.1268 6.18727C32.444 6.07727 32.6545 5.79404 32.6545 5.48055V3.83337C32.6545 3.41538 33.0191 3.07715 33.4698 3.07715H37.4573C37.9079 3.07715 38.2726 3.41538 38.2726 3.83337Z'
13
+ stroke='#21FA90'
14
+ stroke-width='3'
15
+ stroke-linecap='round'
16
+ stroke-linejoin='round'
17
+ />
18
+ <path
19
+ d='M30.8564 20.46L40.0698 11.7686'
20
+ stroke='#21FA90'
21
+ stroke-width='3'
22
+ stroke-linecap='round'
23
+ stroke-linejoin='round'
24
+ />
25
+ <path
26
+ d='M40.0698 20.46L30.8564 11.7685'
27
+ stroke='#21FA90'
28
+ stroke-width='3'
29
+ stroke-linecap='round'
30
+ stroke-linejoin='round'
31
+ />
32
+ <path
33
+ d='M23.9482 48.0268L30.2728 33.98H33.5161L39.861 48.0268H36.4149L31.2255 35.6255H32.5229L27.3132 48.0268H23.9482ZM27.1105 45.0168L27.9822 42.5485H35.2797L36.1716 45.0168H27.1105Z'
34
+ fill='#21FA90'
35
+ />
36
+ <path
37
+ d='M41.3331 48.0268V33.98H47.4752C48.7455 33.98 49.8402 34.1873 50.7591 34.6021C51.6781 35.0034 52.3876 35.5853 52.8876 36.3479C53.3876 37.1104 53.6376 38.0201 53.6376 39.077C53.6376 40.1204 53.3876 41.0235 52.8876 41.786C52.3876 42.5485 51.6781 43.1372 50.7591 43.5519C49.8402 43.9532 48.7455 44.1539 47.4752 44.1539H43.1575L44.617 42.689V48.0268H41.3331ZM44.617 43.0502L43.1575 41.5051H47.2928C48.3063 41.5051 49.0631 41.291 49.5631 40.8629C50.0632 40.4348 50.3132 39.8395 50.3132 39.077C50.3132 38.3011 50.0632 37.699 49.5631 37.271C49.0631 36.8429 48.3063 36.6288 47.2928 36.6288H43.1575L44.617 35.0837V43.0502Z'
38
+ fill='#21FA90'
39
+ />
40
+ <path d='M55.9821 48.0268V33.98H59.266V48.0268H55.9821Z' fill='#21FA90' />
41
+ <path
42
+ d='M68.3785 43.6372V43.6268M68.3785 43.6268C73.1364 43.4008 76.9245 39.4861 76.9245 34.6885C76.9245 29.7447 72.9027 25.7397 67.946 25.7397C67.8169 25.7397 67.6878 25.7432 67.5588 25.7501C65.5008 21.9502 61.4719 19.3706 56.8361 19.3706C55.6286 19.3706 54.4639 19.5464 53.3639 19.8731M68.3785 43.6268H63.1045M23.1801 43.6372H18.1488V43.6302C11.5702 43.4634 6.28906 38.2068 6.28906 31.5039C6.28906 26.0102 9.95151 21.3689 14.9756 19.8731'
43
+ stroke='#21FA90'
44
+ stroke-width='3'
45
+ stroke-miterlimit='10'
46
+ stroke-linecap='round'
47
+ stroke-linejoin='round'
48
+ />
49
+ <path
50
+ d='M22.3412 51.2373V67.8962C22.3412 68.4485 21.8935 68.8962 21.3412 68.8962H14.3145'
51
+ stroke='#21FA90'
52
+ stroke-width='3'
53
+ stroke-linecap='round'
54
+ stroke-linejoin='round'
55
+ />
56
+ <path
57
+ d='M60.8682 51.2373V58.2641C60.8682 58.8163 61.3159 59.2641 61.8682 59.2641H67.2896'
58
+ stroke='#21FA90'
59
+ stroke-width='3'
60
+ stroke-linecap='round'
61
+ stroke-linejoin='round'
62
+ />
63
+ <path
64
+ d='M35.1836 54.4478V67.2906'
65
+ stroke='#21FA90'
66
+ stroke-width='3'
67
+ stroke-linecap='round'
68
+ stroke-linejoin='round'
69
+ />
70
+ <path
71
+ d='M48.0254 54.4478V71.1066C48.0254 71.6589 48.4731 72.1066 49.0254 72.1066H56.0521'
72
+ stroke='#21FA90'
73
+ stroke-width='3'
74
+ stroke-linecap='round'
75
+ stroke-linejoin='round'
76
+ />
77
+ <circle
78
+ cx='7.8932'
79
+ cy='68.8966'
80
+ r='4.81605'
81
+ stroke='#21FA90'
82
+ stroke-width='3'
83
+ />
84
+ <circle
85
+ cx='72.1061'
86
+ cy='59.2638'
87
+ r='4.81605'
88
+ stroke='#21FA90'
89
+ stroke-width='3'
90
+ />
91
+ <circle
92
+ cx='62.4752'
93
+ cy='72.1073'
94
+ r='4.81605'
95
+ stroke='#21FA90'
96
+ stroke-width='3'
97
+ />
98
+ <circle
99
+ cx='35.1823'
100
+ cy='72.1073'
101
+ r='4.81605'
102
+ stroke='#21FA90'
103
+ stroke-width='3'
104
+ />
105
+ </svg>
106
+ )
107
+ }
@@ -0,0 +1,26 @@
1
+ import * as React from 'react'
2
+
3
+ const CloseModalIcon = () => (
4
+ <svg
5
+ width='16'
6
+ height='16'
7
+ viewBox='0 0 16 16'
8
+ fill='none'
9
+ xmlns='http://www.w3.org/2000/svg'
10
+ >
11
+ <path
12
+ d='M2 2L14 14'
13
+ stroke='#00283D'
14
+ stroke-linecap='round'
15
+ stroke-linejoin='round'
16
+ />
17
+ <path
18
+ d='M2 14L14 2'
19
+ stroke='#00283D'
20
+ stroke-linecap='round'
21
+ stroke-linejoin='round'
22
+ />
23
+ </svg>
24
+ )
25
+
26
+ export default CloseModalIcon
@@ -1,7 +1,9 @@
1
1
  import ApiIcon from './ApiIcon'
2
2
  import ApiIconClosed from './ApiIconClosed'
3
+ import ApiEmptyIcon from './ApiEmptyIcon'
4
+ import CloseModalIcon from './CloseModalIcon'
3
5
  import PullRequestIcon from './PullRequestIcon'
4
6
 
5
7
  export default {
6
- ApiIcon, ApiIconClosed, PullRequestIcon
8
+ ApiIcon, ApiIconClosed, ApiEmptyIcon, CloseModalIcon, PullRequestIcon
7
9
  }
@@ -1,9 +1,12 @@
1
1
  'use strict'
2
2
  import React from 'react'
3
- export default function TwoColumnsLayout (props) {
3
+ import styles from './TwoColumnsLayout.module.css'
4
+
5
+ export default function TwoColumnsLayout ({ children, gridTemplate = 'columns' }) {
6
+ const className = styles[`${gridTemplate}`]
4
7
  return (
5
- <div className='grid grid-cols-2 gap-x-4'>
6
- {props.children}
8
+ <div className={className}>
9
+ {children}
7
10
  </div>
8
11
  )
9
12
  }
@@ -0,0 +1,10 @@
1
+
2
+ .columns {
3
+ @apply grid grid-cols-2 gap-x-4;
4
+ }
5
+ .rows {
6
+ @apply grid grid-rows-2 gap-y-4;
7
+ }
8
+ .responsive {
9
+ @apply grid grid-rows-2 gap-y-4 md:grid-cols-2 md:gap-x-4;
10
+ }
@@ -7,8 +7,11 @@ export default {
7
7
  }
8
8
 
9
9
  const Template = (args) => <Logo {...args} />
10
- export const LogoSmall = Template.bind({})
11
- LogoSmall.args = {
10
+ export const LogoLarge = Template.bind({})
11
+ LogoLarge.args = {
12
12
  width: 300,
13
13
  heigth: 300
14
14
  }
15
+
16
+ export const LogoNormal = Template.bind({})
17
+ LogoNormal.args = {}
@@ -5,7 +5,8 @@ export default {
5
5
  component: SearchBar,
6
6
  argTypes: {
7
7
  onChange: { control: 'function' },
8
- onSubmit: { control: 'function' }
8
+ onSubmit: { control: 'function' },
9
+ title: { control: 'text' }
9
10
  }
10
11
  }
11
12
  const Template = (args) => {
@@ -0,0 +1,42 @@
1
+ 'use strict'
2
+ import TwoColumnsLayout from '../components/layouts/TwoColumnsLayout'
3
+ import BorderedBox from '../components/BorderedBox'
4
+ export default {
5
+ title: 'Platformatic/TwoColumnsLayout',
6
+ component: TwoColumnsLayout
7
+ // More on argTypes: https://storybook.js.org/docs/react/api/argtypes
8
+ /* argTypes: {
9
+ gridTemplate: {
10
+ type: 'string',
11
+ control: {
12
+ type: 'radio',
13
+ options: ['Default', 'Columns', 'Rows', 'Responsive' ],
14
+ }
15
+ }
16
+ } */
17
+ }
18
+
19
+ // More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args
20
+ const Template = (args) => <TwoColumnsLayout {...args}><BorderedBox>1st</BorderedBox><BorderedBox>2nd</BorderedBox></TwoColumnsLayout>
21
+
22
+ export const Default = Template.bind({})
23
+
24
+ Default.args = { }
25
+
26
+ export const Columns = Template.bind({})
27
+
28
+ Columns.args = {
29
+ gridTemplate: 'columns'
30
+ }
31
+
32
+ export const Rows = Template.bind({})
33
+
34
+ Rows.args = {
35
+ gridTemplate: 'rows'
36
+ }
37
+
38
+ export const Responsive = Template.bind({})
39
+
40
+ Responsive.args = {
41
+ gridTemplate: 'responsive'
42
+ }