@platformatic/ui-components 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{index.e67c83bd.js → index.fcbe6de7.js} +14 -14
- package/dist/index.html +2 -2
- package/dist/main.css +0 -15
- package/dist/platformatic-ui.css +1 -0
- package/index.js +2 -2
- package/package.json +1 -1
- package/src/components/Api/ApiIcon.jsx +29 -0
- package/src/components/Api/ApiIconClosed.jsx +19 -0
- package/src/components/Api/Footer.jsx +2 -2
- package/src/components/ApiDetail.jsx +1 -2
- package/src/components/{Api.jsx → ApiSummary.jsx} +8 -15
- package/src/stories/ApiDetail.stories.jsx +43 -0
- package/src/stories/ApiSummary.stories.jsx +43 -0
- package/src/stories/BorderedBox.stories.jsx +1 -1
- package/src/stories/BorderedText.stories.jsx +24 -0
- package/src/stories/Button.stories.jsx +13 -13
- package/src/stories/GHLoginButton.stories.jsx +1 -1
- package/src/stories/LoginButton.stories.jsx +2 -2
- package/dist/assets/index.a763f656.css +0 -1
- package/src/stories/Header.jsx +0 -57
- package/src/stories/Header.stories.jsx +0 -24
- package/src/stories/Page.jsx +0 -69
- package/src/stories/Page.stories.jsx +0 -25
- package/src/stories/header.css +0 -32
- package/src/stories/page.css +0 -69
- package/storybook-static/0.53758dff751ed2733218.manager.bundle.js +0 -2
- package/storybook-static/0.53758dff751ed2733218.manager.bundle.js.LICENSE.txt +0 -8
- package/storybook-static/1.9d13fd5be5dcb92d80a6.manager.bundle.js +0 -1
- package/storybook-static/5.410945cbec993452eed2.manager.bundle.js +0 -2
- package/storybook-static/5.410945cbec993452eed2.manager.bundle.js.LICENSE.txt +0 -31
- package/storybook-static/6.9ef90ca53c7deb768ec6.manager.bundle.js +0 -1
- package/storybook-static/7.47a294f1c5761295c4cb.manager.bundle.js +0 -1
- package/storybook-static/8.35b89a87599812bb0515.manager.bundle.js +0 -2
- package/storybook-static/8.35b89a87599812bb0515.manager.bundle.js.LICENSE.txt +0 -12
- package/storybook-static/9.d19ea1957ceb9893827c.manager.bundle.js +0 -1
- package/storybook-static/api-icon-closed.svg +0 -6
- package/storybook-static/api-icon.svg +0 -9
- package/storybook-static/assets/BorderedBox.stories.8d7654fe.css +0 -1
- package/storybook-static/assets/BorderedBox.stories.f9bbae3a.js +0 -26
- package/storybook-static/assets/BorderedBox.stories.f9bbae3a.js.map +0 -1
- package/storybook-static/assets/Button.7e305135.js +0 -2
- package/storybook-static/assets/Button.7e305135.js.map +0 -1
- package/storybook-static/assets/Button.bc1a867b.css +0 -1
- package/storybook-static/assets/Button.stories.8d745781.js +0 -42
- package/storybook-static/assets/Button.stories.8d745781.js.map +0 -1
- package/storybook-static/assets/Color-f953d088.a38b7cbd.js +0 -3
- package/storybook-static/assets/Color-f953d088.a38b7cbd.js.map +0 -1
- package/storybook-static/assets/GlobalScrollAreaStyles-8793ce4a.cf1537f5.js +0 -2
- package/storybook-static/assets/GlobalScrollAreaStyles-8793ce4a.cf1537f5.js.map +0 -1
- package/storybook-static/assets/Header.4fc7684b.css +0 -1
- package/storybook-static/assets/Header.cf6306b0.js +0 -2
- package/storybook-static/assets/Header.cf6306b0.js.map +0 -1
- package/storybook-static/assets/Header.stories.17ffb615.js +0 -26
- package/storybook-static/assets/Header.stories.17ffb615.js.map +0 -1
- package/storybook-static/assets/Introduction.stories.bc0afbca.js +0 -105
- package/storybook-static/assets/Introduction.stories.bc0afbca.js.map +0 -1
- package/storybook-static/assets/LoginButton.stories.10ae424d.js +0 -776
- package/storybook-static/assets/LoginButton.stories.10ae424d.js.map +0 -1
- package/storybook-static/assets/LoginButton.stories.edf744f1.css +0 -1
- package/storybook-static/assets/OverlayScrollbars-1355f44c.fce02603.js +0 -18
- package/storybook-static/assets/OverlayScrollbars-1355f44c.fce02603.js.map +0 -1
- package/storybook-static/assets/Page.stories.0913ba40.css +0 -1
- package/storybook-static/assets/Page.stories.76f6205c.js +0 -84
- package/storybook-static/assets/Page.stories.76f6205c.js.map +0 -1
- package/storybook-static/assets/Props.8d39388f.js +0 -187
- package/storybook-static/assets/Props.8d39388f.js.map +0 -1
- package/storybook-static/assets/WithTooltip-167e9982.ebb6fc8d.js +0 -11
- package/storybook-static/assets/WithTooltip-167e9982.ebb6fc8d.js.map +0 -1
- package/storybook-static/assets/client.177c4b3e.js +0 -2
- package/storybook-static/assets/client.177c4b3e.js.map +0 -1
- package/storybook-static/assets/code-brackets.9ef6443e.svg +0 -1
- package/storybook-static/assets/colors.ac9401f3.svg +0 -1
- package/storybook-static/assets/comments.f15a6837.svg +0 -1
- package/storybook-static/assets/config.3c15c657.js +0 -74
- package/storybook-static/assets/config.3c15c657.js.map +0 -1
- package/storybook-static/assets/config.be729574.js +0 -2
- package/storybook-static/assets/config.be729574.js.map +0 -1
- package/storybook-static/assets/direction.94a9917f.svg +0 -1
- package/storybook-static/assets/es.map.constructor.bc2f31bd.js +0 -2
- package/storybook-static/assets/es.map.constructor.bc2f31bd.js.map +0 -1
- package/storybook-static/assets/es.number.to-fixed.db152345.js +0 -2
- package/storybook-static/assets/es.number.to-fixed.db152345.js.map +0 -1
- package/storybook-static/assets/es.regexp.flags.ebae2243.js +0 -2
- package/storybook-static/assets/es.regexp.flags.ebae2243.js.map +0 -1
- package/storybook-static/assets/es.string.from-code-point.e6202842.js +0 -2
- package/storybook-static/assets/es.string.from-code-point.e6202842.js.map +0 -1
- package/storybook-static/assets/flow.275142c6.svg +0 -1
- package/storybook-static/assets/formatter-0d5cb0eb.aebafedb.js +0 -297
- package/storybook-static/assets/formatter-0d5cb0eb.aebafedb.js.map +0 -1
- package/storybook-static/assets/iframe.aab06436.js +0 -153
- package/storybook-static/assets/iframe.aab06436.js.map +0 -1
- package/storybook-static/assets/index.7df59845.js +0 -2
- package/storybook-static/assets/index.7df59845.js.map +0 -1
- package/storybook-static/assets/index.814c1dee.js +0 -9
- package/storybook-static/assets/index.814c1dee.js.map +0 -1
- package/storybook-static/assets/index.c7ae27b6.js +0 -25
- package/storybook-static/assets/index.c7ae27b6.js.map +0 -1
- package/storybook-static/assets/index.f76a1af3.js +0 -2
- package/storybook-static/assets/index.f76a1af3.js.map +0 -1
- package/storybook-static/assets/instrumenter.3eab649e.js +0 -4
- package/storybook-static/assets/instrumenter.3eab649e.js.map +0 -1
- package/storybook-static/assets/jsx-runtime.e2ea81d7.js +0 -18
- package/storybook-static/assets/jsx-runtime.e2ea81d7.js.map +0 -1
- package/storybook-static/assets/make-decorator.7fb2aeb9.js +0 -3
- package/storybook-static/assets/make-decorator.7fb2aeb9.js.map +0 -1
- package/storybook-static/assets/plugin.57148314.svg +0 -1
- package/storybook-static/assets/preview.0975d66e.js +0 -3
- package/storybook-static/assets/preview.0975d66e.js.map +0 -1
- package/storybook-static/assets/preview.38b4e44b.js +0 -14
- package/storybook-static/assets/preview.38b4e44b.js.map +0 -1
- package/storybook-static/assets/preview.4099ceae.js +0 -2
- package/storybook-static/assets/preview.4099ceae.js.map +0 -1
- package/storybook-static/assets/preview.43118df9.js +0 -26
- package/storybook-static/assets/preview.43118df9.js.map +0 -1
- package/storybook-static/assets/preview.4dfec941.js +0 -2
- package/storybook-static/assets/preview.4dfec941.js.map +0 -1
- package/storybook-static/assets/preview.b37e665b.js +0 -397
- package/storybook-static/assets/preview.b37e665b.js.map +0 -1
- package/storybook-static/assets/preview.b8ebcf81.css +0 -1
- package/storybook-static/assets/preview.cc910bd3.js +0 -2
- package/storybook-static/assets/preview.cc910bd3.js.map +0 -1
- package/storybook-static/assets/preview.f14efd1d.js +0 -3
- package/storybook-static/assets/preview.f14efd1d.js.map +0 -1
- package/storybook-static/assets/renderDocs.4312919d.js +0 -2
- package/storybook-static/assets/renderDocs.4312919d.js.map +0 -1
- package/storybook-static/assets/repo.fb4ece47.svg +0 -1
- package/storybook-static/assets/stackalt.2ad81543.svg +0 -1
- package/storybook-static/assets/string.6cc73134.js +0 -2
- package/storybook-static/assets/string.6cc73134.js.map +0 -1
- package/storybook-static/assets/syntaxhighlighter-b07b042a.04697fcf.js +0 -16
- package/storybook-static/assets/syntaxhighlighter-b07b042a.04697fcf.js.map +0 -1
- package/storybook-static/favicon.ico +0 -0
- package/storybook-static/iframe.html +0 -486
- package/storybook-static/index.html +0 -59
- package/storybook-static/main.1e2c996516b3b52674de.manager.bundle.js +0 -1
- package/storybook-static/project.json +0 -1
- package/storybook-static/runtime~main.904779a78e0adff8f659.manager.bundle.js +0 -1
- package/storybook-static/stories.json +0 -1
- package/storybook-static/vendors~main.ab297a8d7023057bddf0.manager.bundle.js +0 -2
- package/storybook-static/vendors~main.ab297a8d7023057bddf0.manager.bundle.js.LICENSE.txt +0 -107
- package/storybook-static/vite.svg +0 -1
package/dist/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Platformatic UI Components</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index.
|
|
8
|
-
<link rel="stylesheet" href="/
|
|
7
|
+
<script type="module" crossorigin src="/assets/index.fcbe6de7.js"></script>
|
|
8
|
+
<link rel="stylesheet" href="/platformatic-ui.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
package/dist/main.css
CHANGED
|
@@ -678,21 +678,6 @@ video {
|
|
|
678
678
|
line-height: 1.75rem;
|
|
679
679
|
}
|
|
680
680
|
|
|
681
|
-
.text-3xl {
|
|
682
|
-
font-size: 1.875rem;
|
|
683
|
-
line-height: 2.25rem;
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
.text-4xl {
|
|
687
|
-
font-size: 2.25rem;
|
|
688
|
-
line-height: 2.5rem;
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
.text-6xl {
|
|
692
|
-
font-size: 3.75rem;
|
|
693
|
-
line-height: 1;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
681
|
.font-semibold {
|
|
697
682
|
font-weight: 600;
|
|
698
683
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._input_1v03r_1{box-sizing:border-box;display:flex;height:2.5rem;width:100%;justify-content:space-between;border-radius:.375rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._input_1v03r_1>input:focus{outline:2px solid transparent;outline-offset:2px}._padded_1atg3_1{padding:.625rem .5rem}._bordered_1ece3_1{border-radius:.375rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity));padding:.25rem .5rem;letter-spacing:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._main_sk3z1_1{display:flex;align-items:center;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._data_sk3z1_5{display:flex;width:100%;flex-direction:column}._stats-header_19k8x_1{display:flex;align-items:center;justify-content:space-between;font-weight:700}._stats-main-stat_19k8x_4{display:flex;align-items:center;justify-content:center;gap:1rem}._tabbed-container_129x6_1{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity))}._tabs-header_129x6_5{margin-bottom:1rem;display:flex;height:4rem;justify-content:space-between;text-transform:uppercase;letter-spacing:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._tabs-header_129x6_5:hover{cursor:pointer}._selected-tab_129x6_8{font-weight:700;--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:8px}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Montserrat}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.m-3{margin:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mr-5{margin-right:1.25rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-1{margin-right:.25rem}.flex{display:flex}.grid{display:grid}.contents{display:contents}.w-full{width:100%}.w-9{width:2.25rem}.grow{flex-grow:1}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-4{gap:1rem}.gap-2{gap:.5rem}.gap-10{gap:2.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-error-red{--tw-border-opacity: 1;border-color:rgb(250 33 33 / var(--tw-border-opacity))}.border-main-green{--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity))}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-light{font-weight:300}.text-main-green{--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity))}.text-dark-green{--tw-text-opacity: 1;color:rgb(2 120 63 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-error-red{--tw-text-opacity: 1;color:rgb(250 33 33 / var(--tw-text-opacity))}@font-face{font-family:Montserrat;src:local("Montserrat"),url(./fonts/Montserrat/static/Montserrat-Light.ttf) format("truetype");font-weight:300}@font-face{font-family:Montserrat;src:local("Montserrat"),url(./fonts/Montserrat/static/Montserrat-Regular.ttf) format("truetype");font-weight:500}@font-face{font-family:Montserrat;src:local("Montserrat"),url(./fonts/Montserrat/static/Montserrat-Bold.ttf) format("truetype");font-weight:700}:root{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity));font-family:Montserrat}a{--tw-text-opacity: 1;color:rgb(37 136 228 / var(--tw-text-opacity))}.bordered{box-sizing:border-box;border-radius:.375rem;border-width:1px;border-style:solid}.padded{padding:.625rem .5rem}.api-footer{margin-left:2.25rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem 1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.api-status{justify-self:end}.bordered-box{margin-bottom:1rem;flex:1 1 0%;row-gap:1rem;--tw-bg-opacity: 1;background-color:rgb(0 52 79 / var(--tw-bg-opacity));padding:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));box-sizing:border-box;border-radius:.375rem;border-width:1px;border-style:solid}input{background-color:transparent}.hover\:cursor-pointer:hover{cursor:pointer}
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import ApiSummary from './src/components/ApiSummary'
|
|
4
4
|
import ApiDetails from './src/components/ApiDetail'
|
|
5
5
|
import BorderedBox from './src/components/BorderedBox'
|
|
6
6
|
import BorderedText from './src/components/BorderedText'
|
|
@@ -16,7 +16,7 @@ import VerticalSeparator from './src/components/VerticalSeparator'
|
|
|
16
16
|
import LoginButton from './src/components/LoginButton'
|
|
17
17
|
import GHLoginButton from './src/components/GHLoginButton'
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
ApiSummary,
|
|
20
20
|
ApiDetails,
|
|
21
21
|
BorderedBox,
|
|
22
22
|
BorderedText,
|
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
export default function ApiIcon () {
|
|
3
|
+
return (
|
|
4
|
+
<svg
|
|
5
|
+
width={38}
|
|
6
|
+
height={56}
|
|
7
|
+
fill='none'
|
|
8
|
+
xmlns='http://www.w3.org/2000/svg'
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
d='M8.12 22.358A7.12 7.12 0 0 1 8.118 8.12a7.12 7.12 0 0 1 13.631-2.88c.2-.02.404-.029.61-.029a7.121 7.121 0 0 1 6.864 5.236 6.079 6.079 0 1 1 1.7 11.912'
|
|
12
|
+
stroke='#fff'
|
|
13
|
+
strokeWidth={2}
|
|
14
|
+
strokeLinecap='round'
|
|
15
|
+
strokeLinejoin='round'
|
|
16
|
+
/>
|
|
17
|
+
<path
|
|
18
|
+
d='M13 11.5V31h-1.5M25 13v18h3M19 15.4v35.8h11.4'
|
|
19
|
+
stroke='#fff'
|
|
20
|
+
strokeWidth={2}
|
|
21
|
+
strokeLinecap='round'
|
|
22
|
+
strokeLinejoin='round'
|
|
23
|
+
/>
|
|
24
|
+
<circle cx={7} cy={31} r={3} stroke='#fff' strokeWidth={2} />
|
|
25
|
+
<circle cx={31} cy={31} r={3} stroke='#fff' strokeWidth={2} />
|
|
26
|
+
<circle cx={34} cy={51.2} r={3} stroke='#fff' strokeWidth={2} />
|
|
27
|
+
</svg>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
export default function ApiIconClosed () {
|
|
3
|
+
return (
|
|
4
|
+
<svg
|
|
5
|
+
width={38}
|
|
6
|
+
height={42}
|
|
7
|
+
fill='none'
|
|
8
|
+
xmlns='http://www.w3.org/2000/svg'
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
d='M8.12 22.358A7.12 7.12 0 0 1 8.118 8.12a7.12 7.12 0 0 1 13.631-2.88c.2-.02.404-.029.61-.029a7.121 7.121 0 0 1 6.864 5.236 6.079 6.079 0 1 1 1.7 11.912M13 11.5v7M13 31v-3m0-3v-3.5M25 13v6m0 15.5V31m0-3v-6M19 15.4v7.1m0 18v-4m0-11v8'
|
|
12
|
+
stroke='#fff'
|
|
13
|
+
strokeWidth={2}
|
|
14
|
+
strokeLinecap='round'
|
|
15
|
+
strokeLinejoin='round'
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -6,7 +6,7 @@ import BorderedText from '../BorderedText'
|
|
|
6
6
|
import styles from './Footer.module.css'
|
|
7
7
|
import React from 'react'
|
|
8
8
|
export default function ApiFooter (props) {
|
|
9
|
-
const { graphql, openapi } = props
|
|
9
|
+
const { graphql, openapi, db } = props
|
|
10
10
|
return (
|
|
11
11
|
<div className={styles.footer}>
|
|
12
12
|
<div className='flex gap-2'>
|
|
@@ -18,7 +18,7 @@ export default function ApiFooter (props) {
|
|
|
18
18
|
<Separator />
|
|
19
19
|
<span><FontAwesomeIcon icon={faFileLines} /> API Docs</span>
|
|
20
20
|
<Separator />
|
|
21
|
-
<span><FontAwesomeIcon icon={faDatabase} />
|
|
21
|
+
<span><FontAwesomeIcon icon={faDatabase} /> {db}</span>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
24
|
)
|
|
@@ -9,8 +9,7 @@ import StatsView from './StatsView'
|
|
|
9
9
|
import VerticalSeparator from './VerticalSeparator'
|
|
10
10
|
import React from 'react'
|
|
11
11
|
export default function ApiDetails (props) {
|
|
12
|
-
const
|
|
13
|
-
const { url, repository, version, openapi, graphql, source, lastDeploy } = apiData
|
|
12
|
+
const { url, repository, version, openapi, graphql, source, lastDeploy } = props
|
|
14
13
|
const requestStats = {
|
|
15
14
|
mainStat: {
|
|
16
15
|
value: 12,
|
|
@@ -4,6 +4,8 @@ import ApiFooter from './Api/Footer'
|
|
|
4
4
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
5
5
|
import { faLink } from '@fortawesome/free-solid-svg-icons'
|
|
6
6
|
import ApiVersion from './Api/Version'
|
|
7
|
+
import ApiIcon from './Api/ApiIcon'
|
|
8
|
+
import ApiIconClosed from './Api/ApiIconClosed'
|
|
7
9
|
import Separator from './VerticalSeparator'
|
|
8
10
|
import ApiStatus from './Api/Status'
|
|
9
11
|
import BorderedBox from './BorderedBox'
|
|
@@ -17,16 +19,10 @@ function ApiName (props) {
|
|
|
17
19
|
<span className='text-main-green font-semibold text-2xl'>{name}</span>
|
|
18
20
|
)
|
|
19
21
|
}
|
|
20
|
-
export default function
|
|
22
|
+
export default function ApiSummary (props) {
|
|
21
23
|
const [isOpen, setIsOpen] = useState(true)
|
|
22
|
-
const { name, version, source, lastDeploy, graphql, openapi, online } = props
|
|
24
|
+
const { name, version, source, lastDeploy, graphql, openapi, online, db } = props
|
|
23
25
|
const color = online ? 'green' : 'red'
|
|
24
|
-
function getApiIcon () {
|
|
25
|
-
if (isOpen) {
|
|
26
|
-
return 'api-icon.svg'
|
|
27
|
-
}
|
|
28
|
-
return 'api-icon-closed.svg'
|
|
29
|
-
}
|
|
30
26
|
return (
|
|
31
27
|
<BorderedBox
|
|
32
28
|
color={color}
|
|
@@ -35,16 +31,12 @@ export default function API (props) {
|
|
|
35
31
|
<>
|
|
36
32
|
<div className={styles.main}>
|
|
37
33
|
<div className='flex w-full'>
|
|
38
|
-
<
|
|
34
|
+
<div className='w-9 mr-5'><ApiIcon /></div>
|
|
39
35
|
<div className={styles.data}>
|
|
40
36
|
<div className='flex items-center justify-between'>
|
|
41
37
|
<div className='flex items-center justify-between gap-4'>
|
|
42
38
|
<ApiName name={name} />
|
|
43
|
-
<span>
|
|
44
|
-
<a href='#' className='border p-2 rounded-full'>
|
|
45
|
-
<FontAwesomeIcon color='white' icon={faLink} />
|
|
46
|
-
</a>
|
|
47
|
-
</span>
|
|
39
|
+
<span><FontAwesomeIcon color='white' icon={faLink} /></span>
|
|
48
40
|
<ApiVersion version={version} />
|
|
49
41
|
</div>
|
|
50
42
|
<div className={styles.status}>
|
|
@@ -67,12 +59,13 @@ export default function API (props) {
|
|
|
67
59
|
<ApiFooter
|
|
68
60
|
graphql={graphql}
|
|
69
61
|
openapi={openapi}
|
|
62
|
+
db={db}
|
|
70
63
|
/>
|
|
71
64
|
</>
|
|
72
65
|
)}
|
|
73
66
|
{!isOpen && (
|
|
74
67
|
<div className='flex items-center'>
|
|
75
|
-
<img className='w-9 mr-5' src={
|
|
68
|
+
<img className='w-9 mr-5' src={<ApiIconClosed />} />
|
|
76
69
|
<ApiName name={name} />
|
|
77
70
|
<span onClick={() => { setIsOpen(!isOpen) }} className='ml-4 hover:cursor-pointer'>Click here to set up your api</span>
|
|
78
71
|
</div>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
import ApiDetail from '../components/ApiDetail'
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Platformatic/ApiDetail',
|
|
5
|
+
component: ApiDetail,
|
|
6
|
+
argTypes: {
|
|
7
|
+
text: { control: 'string' }
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const Template = (args) => <ApiDetail {...args} />
|
|
12
|
+
|
|
13
|
+
export const Online = Template.bind({})
|
|
14
|
+
|
|
15
|
+
Online.args = {
|
|
16
|
+
id: 1,
|
|
17
|
+
name: 'api-online',
|
|
18
|
+
version: '1.2.3',
|
|
19
|
+
source: 'Platformatic DB',
|
|
20
|
+
lastDeploy: '2022-10-10',
|
|
21
|
+
graphql: true,
|
|
22
|
+
openapi: true,
|
|
23
|
+
online: true,
|
|
24
|
+
url: 'https://example.com',
|
|
25
|
+
repository: 'platformatic/example',
|
|
26
|
+
db: 'SQLite'
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const Offline = Template.bind({})
|
|
30
|
+
|
|
31
|
+
Offline.args = {
|
|
32
|
+
id: 1,
|
|
33
|
+
name: 'api-offline',
|
|
34
|
+
version: '1.2.3',
|
|
35
|
+
source: 'Platformatic DB',
|
|
36
|
+
lastDeploy: '2022-10-10',
|
|
37
|
+
graphql: true,
|
|
38
|
+
openapi: true,
|
|
39
|
+
online: false,
|
|
40
|
+
url: 'https://example.com',
|
|
41
|
+
repository: 'platformatic/example',
|
|
42
|
+
db: 'PostgreSQL'
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
import ApiSummary from '../components/ApiSummary'
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Platformatic/ApiSummary',
|
|
5
|
+
component: ApiSummary,
|
|
6
|
+
argTypes: {
|
|
7
|
+
text: { control: 'string' }
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const Template = (args) => <ApiSummary {...args} />
|
|
12
|
+
|
|
13
|
+
export const Online = Template.bind({})
|
|
14
|
+
|
|
15
|
+
Online.args = {
|
|
16
|
+
id: 1,
|
|
17
|
+
name: 'api-online',
|
|
18
|
+
version: '1.2.3',
|
|
19
|
+
source: 'Platformatic DB',
|
|
20
|
+
lastDeploy: '2022-10-10',
|
|
21
|
+
graphql: true,
|
|
22
|
+
openapi: true,
|
|
23
|
+
online: true,
|
|
24
|
+
url: 'https://example.com',
|
|
25
|
+
repository: 'platformatic/example',
|
|
26
|
+
db: 'SQLite'
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const Offline = Template.bind({})
|
|
30
|
+
|
|
31
|
+
Offline.args = {
|
|
32
|
+
id: 1,
|
|
33
|
+
name: 'api-offline',
|
|
34
|
+
version: '1.2.3',
|
|
35
|
+
source: 'Platformatic DB',
|
|
36
|
+
lastDeploy: '2022-10-10',
|
|
37
|
+
graphql: true,
|
|
38
|
+
openapi: true,
|
|
39
|
+
online: false,
|
|
40
|
+
url: 'https://example.com',
|
|
41
|
+
repository: 'platformatic/example',
|
|
42
|
+
db: 'PostgreSQL'
|
|
43
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
import BorderedBox from '../components/BorderedBox'
|
|
3
3
|
export default {
|
|
4
|
-
title: '
|
|
4
|
+
title: 'Platformatic/BorderedBox',
|
|
5
5
|
component: BorderedBox,
|
|
6
6
|
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
7
7
|
argTypes: {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
import BorderedText from '../components/BorderedText'
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Platformatic/BorderedText',
|
|
5
|
+
component: BorderedText,
|
|
6
|
+
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
7
|
+
argTypes: {
|
|
8
|
+
text: { control: 'string' }
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args
|
|
13
|
+
const Template = (args) => <BorderedText {...args} />
|
|
14
|
+
|
|
15
|
+
export const Sample = Template.bind({})
|
|
16
|
+
// More on args: https://storybook.js.org/docs/react/writing-stories/args
|
|
17
|
+
Sample.args = {
|
|
18
|
+
text: 'Hello Platformatic!'
|
|
19
|
+
}
|
|
20
|
+
export const Version = Template.bind({})
|
|
21
|
+
|
|
22
|
+
Version.args = {
|
|
23
|
+
text: 'v1.2.3'
|
|
24
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from 'react'
|
|
1
|
+
import React from 'react'
|
|
2
2
|
|
|
3
|
-
import { Button } from './Button'
|
|
3
|
+
import { Button } from './Button'
|
|
4
4
|
|
|
5
5
|
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
6
6
|
export default {
|
|
@@ -8,33 +8,33 @@ export default {
|
|
|
8
8
|
component: Button,
|
|
9
9
|
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
10
10
|
argTypes: {
|
|
11
|
-
backgroundColor: { control: 'color' }
|
|
11
|
+
backgroundColor: { control: 'color' }
|
|
12
12
|
},
|
|
13
|
-
}
|
|
13
|
+
}
|
|
14
14
|
|
|
15
15
|
// More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args
|
|
16
|
-
const Template = (args) => <Button {...args}
|
|
16
|
+
const Template = (args) => <Button {...args} />
|
|
17
17
|
|
|
18
|
-
export const Primary = Template.bind({})
|
|
18
|
+
export const Primary = Template.bind({})
|
|
19
19
|
// More on args: https://storybook.js.org/docs/react/writing-stories/args
|
|
20
20
|
Primary.args = {
|
|
21
21
|
primary: true,
|
|
22
|
-
label: 'Button'
|
|
22
|
+
label: 'Button'
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export const Secondary = Template.bind({})
|
|
25
|
+
export const Secondary = Template.bind({})
|
|
26
26
|
Secondary.args = {
|
|
27
|
-
label: 'Button'
|
|
27
|
+
label: 'Button'
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export const Large = Template.bind({})
|
|
30
|
+
export const Large = Template.bind({})
|
|
31
31
|
Large.args = {
|
|
32
32
|
size: 'large',
|
|
33
|
-
label: 'Button'
|
|
33
|
+
label: 'Button'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
export const Small = Template.bind({})
|
|
36
|
+
export const Small = Template.bind({})
|
|
37
37
|
Small.args = {
|
|
38
38
|
size: 'small',
|
|
39
|
-
label: 'Button'
|
|
39
|
+
label: 'Button'
|
|
40
40
|
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._input_1v03r_1{box-sizing:border-box;display:flex;height:2.5rem;width:100%;justify-content:space-between;border-radius:.375rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._input_1v03r_1>input:focus{outline:2px solid transparent;outline-offset:2px}._padded_650jz_1{padding:.625rem .5rem}._bordered_650jz_5{box-sizing:border-box;border-radius:.375rem;border-width:1px;border-style:solid}._bordered_1ece3_1{border-radius:.375rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity));padding:.25rem .5rem;letter-spacing:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._footer_kawbk_1{margin-left:2.25rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem 1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._borderedBox_1fd0d_1{margin-bottom:1rem;flex:1 1 0%;row-gap:1rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(0 52 79 / var(--tw-bg-opacity));padding:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._main_1uwu5_1{display:flex;align-items:center;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._data_1uwu5_5{display:flex;width:100%;flex-direction:column}._status_1uwu5_9{justify-self:end}._stats-header_w45a1_1{display:flex;align-items:center;justify-content:space-between;font-weight:700}._stats-main-stat_w45a1_4{display:flex;align-items:center;justify-content:center;gap:1rem}._tabbed-container_129x6_1{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity))}._tabs-header_129x6_5{margin-bottom:1rem;display:flex;height:4rem;justify-content:space-between;text-transform:uppercase;letter-spacing:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._tabs-header_129x6_5:hover{cursor:pointer}._selected-tab_129x6_8{font-weight:700;--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:8px}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Montserrat}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.m-3{margin:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mr-5{margin-right:1.25rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-1{margin-right:.25rem}.flex{display:flex}.grid{display:grid}.contents{display:contents}.w-full{width:100%}.w-9{width:2.25rem}.grow{flex-grow:1}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-4{gap:1rem}.gap-2{gap:.5rem}.gap-10{gap:2.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-error-red{--tw-border-opacity: 1;border-color:rgb(250 33 33 / var(--tw-border-opacity))}.border-main-green{--tw-border-opacity: 1;border-color:rgb(33 250 144 / var(--tw-border-opacity))}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-light{font-weight:300}.text-main-green{--tw-text-opacity: 1;color:rgb(33 250 144 / var(--tw-text-opacity))}.text-dark-green{--tw-text-opacity: 1;color:rgb(2 120 63 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-error-red{--tw-text-opacity: 1;color:rgb(250 33 33 / var(--tw-text-opacity))}@font-face{font-family:Montserrat;src:local("Montserrat"),url(./fonts/Montserrat/Montserrat-VariableFont_wght.ttf) format("truetype");font-weight:100 900}:root{--tw-bg-opacity: 1;background-color:rgb(0 40 61 / var(--tw-bg-opacity));font-family:Montserrat}a{--tw-text-opacity: 1;color:rgb(37 136 228 / var(--tw-text-opacity))}input{background-color:transparent}.hover\:cursor-pointer:hover{cursor:pointer}
|
package/src/stories/Header.jsx
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
|
|
4
|
-
import { Button } from './Button';
|
|
5
|
-
import './header.css';
|
|
6
|
-
|
|
7
|
-
export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (
|
|
8
|
-
<header>
|
|
9
|
-
<div className="wrapper">
|
|
10
|
-
<div>
|
|
11
|
-
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
12
|
-
<g fill="none" fillRule="evenodd">
|
|
13
|
-
<path
|
|
14
|
-
d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
|
|
15
|
-
fill="#FFF"
|
|
16
|
-
/>
|
|
17
|
-
<path
|
|
18
|
-
d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
|
|
19
|
-
fill="#555AB9"
|
|
20
|
-
/>
|
|
21
|
-
<path
|
|
22
|
-
d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
|
|
23
|
-
fill="#91BAF8"
|
|
24
|
-
/>
|
|
25
|
-
</g>
|
|
26
|
-
</svg>
|
|
27
|
-
<h1>Acme</h1>
|
|
28
|
-
</div>
|
|
29
|
-
<div>
|
|
30
|
-
{user ? (
|
|
31
|
-
<>
|
|
32
|
-
<span className="welcome">
|
|
33
|
-
Welcome, <b>{user.name}</b>!
|
|
34
|
-
</span>
|
|
35
|
-
<Button size="small" onClick={onLogout} label="Log out" />
|
|
36
|
-
</>
|
|
37
|
-
) : (
|
|
38
|
-
<>
|
|
39
|
-
<Button size="small" onClick={onLogin} label="Log in" />
|
|
40
|
-
<Button primary size="small" onClick={onCreateAccount} label="Sign up" />
|
|
41
|
-
</>
|
|
42
|
-
)}
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</header>
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
Header.propTypes = {
|
|
49
|
-
user: PropTypes.shape({}),
|
|
50
|
-
onLogin: PropTypes.func.isRequired,
|
|
51
|
-
onLogout: PropTypes.func.isRequired,
|
|
52
|
-
onCreateAccount: PropTypes.func.isRequired,
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
Header.defaultProps = {
|
|
56
|
-
user: null,
|
|
57
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { Header } from './Header';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Example/Header',
|
|
7
|
-
component: Header,
|
|
8
|
-
parameters: {
|
|
9
|
-
// More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
|
|
10
|
-
layout: 'fullscreen',
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const Template = (args) => <Header {...args} />;
|
|
15
|
-
|
|
16
|
-
export const LoggedIn = Template.bind({});
|
|
17
|
-
LoggedIn.args = {
|
|
18
|
-
user: {
|
|
19
|
-
name: 'Jane Doe',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const LoggedOut = Template.bind({});
|
|
24
|
-
LoggedOut.args = {};
|
package/src/stories/Page.jsx
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { Header } from './Header';
|
|
4
|
-
import './page.css';
|
|
5
|
-
|
|
6
|
-
export const Page = () => {
|
|
7
|
-
const [user, setUser] = React.useState();
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<article>
|
|
11
|
-
<Header
|
|
12
|
-
user={user}
|
|
13
|
-
onLogin={() => setUser({ name: 'Jane Doe' })}
|
|
14
|
-
onLogout={() => setUser(undefined)}
|
|
15
|
-
onCreateAccount={() => setUser({ name: 'Jane Doe' })}
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
<section>
|
|
19
|
-
<h2>Pages in Storybook</h2>
|
|
20
|
-
<p>
|
|
21
|
-
We recommend building UIs with a{' '}
|
|
22
|
-
<a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
|
|
23
|
-
<strong>component-driven</strong>
|
|
24
|
-
</a>{' '}
|
|
25
|
-
process starting with atomic components and ending with pages.
|
|
26
|
-
</p>
|
|
27
|
-
<p>
|
|
28
|
-
Render pages with mock data. This makes it easy to build and review page states without
|
|
29
|
-
needing to navigate to them in your app. Here are some handy patterns for managing page
|
|
30
|
-
data in Storybook:
|
|
31
|
-
</p>
|
|
32
|
-
<ul>
|
|
33
|
-
<li>
|
|
34
|
-
Use a higher-level connected component. Storybook helps you compose such data from the
|
|
35
|
-
"args" of child component stories
|
|
36
|
-
</li>
|
|
37
|
-
<li>
|
|
38
|
-
Assemble data in the page component from your services. You can mock these services out
|
|
39
|
-
using Storybook.
|
|
40
|
-
</li>
|
|
41
|
-
</ul>
|
|
42
|
-
<p>
|
|
43
|
-
Get a guided tutorial on component-driven development at{' '}
|
|
44
|
-
<a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
|
|
45
|
-
Storybook tutorials
|
|
46
|
-
</a>
|
|
47
|
-
. Read more in the{' '}
|
|
48
|
-
<a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
|
|
49
|
-
docs
|
|
50
|
-
</a>
|
|
51
|
-
.
|
|
52
|
-
</p>
|
|
53
|
-
<div className="tip-wrapper">
|
|
54
|
-
<span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
|
|
55
|
-
<svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
|
|
56
|
-
<g fill="none" fillRule="evenodd">
|
|
57
|
-
<path
|
|
58
|
-
d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
|
|
59
|
-
id="a"
|
|
60
|
-
fill="#999"
|
|
61
|
-
/>
|
|
62
|
-
</g>
|
|
63
|
-
</svg>
|
|
64
|
-
Viewports addon in the toolbar
|
|
65
|
-
</div>
|
|
66
|
-
</section>
|
|
67
|
-
</article>
|
|
68
|
-
);
|
|
69
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { within, userEvent } from '@storybook/testing-library';
|
|
3
|
-
|
|
4
|
-
import { Page } from './Page';
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: 'Example/Page',
|
|
8
|
-
component: Page,
|
|
9
|
-
parameters: {
|
|
10
|
-
// More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
|
|
11
|
-
layout: 'fullscreen',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const Template = (args) => <Page {...args} />;
|
|
16
|
-
|
|
17
|
-
// More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
|
|
18
|
-
export const LoggedOut = Template.bind({});
|
|
19
|
-
|
|
20
|
-
export const LoggedIn = Template.bind({});
|
|
21
|
-
LoggedIn.play = async ({ canvasElement }) => {
|
|
22
|
-
const canvas = within(canvasElement);
|
|
23
|
-
const loginButton = await canvas.getByRole('button', { name: /Log in/i });
|
|
24
|
-
await userEvent.click(loginButton);
|
|
25
|
-
};
|
package/src/stories/header.css
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
.wrapper {
|
|
2
|
-
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
3
|
-
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
4
|
-
padding: 15px 20px;
|
|
5
|
-
display: flex;
|
|
6
|
-
align-items: center;
|
|
7
|
-
justify-content: space-between;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
svg {
|
|
11
|
-
display: inline-block;
|
|
12
|
-
vertical-align: top;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
h1 {
|
|
16
|
-
font-weight: 900;
|
|
17
|
-
font-size: 20px;
|
|
18
|
-
line-height: 1;
|
|
19
|
-
margin: 6px 0 6px 10px;
|
|
20
|
-
display: inline-block;
|
|
21
|
-
vertical-align: top;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
button + button {
|
|
25
|
-
margin-left: 10px;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.welcome {
|
|
29
|
-
color: #333;
|
|
30
|
-
font-size: 14px;
|
|
31
|
-
margin-right: 10px;
|
|
32
|
-
}
|