@icij/murmur-next 4.0.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/.github/workflows/deploy-github-pages.yaml +50 -0
- package/.storybook/app.scss +14 -0
- package/.storybook/doc_variables.scss +20 -0
- package/.storybook/main.ts +35 -0
- package/.storybook/preview-head.html +2 -0
- package/.storybook/preview.ts +32 -0
- package/README.md +71 -0
- package/deploy.js +15 -0
- package/docs/components/ApiTable.vue +171 -0
- package/docs/components/App.vue +146 -0
- package/docs/components/CollapsibleBlock.vue +122 -0
- package/docs/components/DocsHeader.vue +68 -0
- package/docs/components/DocsMenu.vue +201 -0
- package/docs/components/DocsMenuSection.vue +109 -0
- package/docs/components/EditLink.vue +49 -0
- package/docs/components/OutboundLink.vue +13 -0
- package/docs/components/PalettePresenter.vue +96 -0
- package/docs/components/RepositoryLink.vue +28 -0
- package/docs/components/SampleCard.vue +119 -0
- package/docs/main.js +42 -0
- package/docs/pages/components/accordion/doc.md +96 -0
- package/docs/pages/components/active-text-truncate/doc.md +44 -0
- package/docs/pages/components/advanced-link-form/doc.md +105 -0
- package/docs/pages/components/brand/doc.md +30 -0
- package/docs/pages/components/brand-expansion/doc.md +70 -0
- package/docs/pages/components/confirm-button/doc.md +91 -0
- package/docs/pages/components/content-placeholder/doc.md +16 -0
- package/docs/pages/components/custom-pagination/doc.md +61 -0
- package/docs/pages/components/digits-input/doc.md +28 -0
- package/docs/pages/components/donate-form/doc.md +20 -0
- package/docs/pages/components/embed-form/doc.md +22 -0
- package/docs/pages/components/embeddable-footer/doc.md +60 -0
- package/docs/pages/components/follow-us-popover/doc.md +5 -0
- package/docs/pages/components/generic-footer/doc.md +21 -0
- package/docs/pages/components/generic-header/doc.md +24 -0
- package/docs/pages/components/haptic-copy/doc.md +27 -0
- package/docs/pages/components/imddb-header/doc.md +23 -0
- package/docs/pages/components/ordinal-legend/doc.md +44 -0
- package/docs/pages/components/range-picker/doc.md +86 -0
- package/docs/pages/components/responsive-iframe/doc.md +13 -0
- package/docs/pages/components/scale-legend/doc.md +65 -0
- package/docs/pages/components/secret-input/doc.md +12 -0
- package/docs/pages/components/selectable-dropdown/doc.md +156 -0
- package/docs/pages/components/sharing-options/doc.md +13 -0
- package/docs/pages/components/sharing-options-link/doc.md +36 -0
- package/docs/pages/components/sign-up-form/doc.md +13 -0
- package/docs/pages/components/slide-up-down/doc.md +28 -0
- package/docs/pages/components/textured-deck/doc.md +78 -0
- package/docs/pages/components/tiny-pagination/doc.md +92 -0
- package/docs/pages/datavisualisation/bars/doc.md +110 -0
- package/docs/pages/datavisualisation/columns/doc.md +165 -0
- package/docs/pages/datavisualisation/lines/doc.md +139 -0
- package/docs/pages/datavisualisation/stacked-bar/doc.md +160 -0
- package/docs/pages/datavisualisation/stacked-column/doc.md +191 -0
- package/docs/pages/getting-started/about-icij/doc.md +13 -0
- package/docs/pages/getting-started/custom-bootstrap/doc.md +36 -0
- package/docs/pages/getting-started/installation-guide/doc.md +59 -0
- package/docs/pages/getting-started/internationalization/doc.md +74 -0
- package/docs/pages/maps/choropleth-map/doc.md +420 -0
- package/docs/pages/maps/choropleth-map-annotation/doc.md +373 -0
- package/docs/pages/maps/symbol-map/doc.md +203 -0
- package/docs/pages/structure/breakpoints/doc.md +3 -0
- package/docs/pages/structure/grid/doc.md +3 -0
- package/docs/pages/utilities/assets/doc.md +138 -0
- package/docs/pages/utilities/config/doc.md +52 -0
- package/docs/pages/utilities/iframes/doc.md +3 -0
- package/docs/pages/visual/colors/doc.md +31 -0
- package/docs/pages/visual/iconography/doc.md +56 -0
- package/docs/pages/visual/states/doc.md +77 -0
- package/docs/pages/visual/themes/doc.md +3 -0
- package/docs/pages/visual/typography/doc.md +71 -0
- package/docs/routes.js +25 -0
- package/docs/store/index.js +21 -0
- package/docs/styles/app.scss +36 -0
- package/docs/styles/variables.scss +20 -0
- package/lib/assets/images/icij-full-white.svg +6 -0
- package/lib/assets/images/icij-full.svg +6 -0
- package/lib/assets/images/icij.png +0 -0
- package/lib/assets/images/icij.svg +46 -0
- package/lib/assets/images/icij@2x.png +0 -0
- package/lib/assets/images/murmur-dark.png +0 -0
- package/lib/assets/images/murmur-dark.svg +79 -0
- package/lib/assets/images/murmur-white.png +0 -0
- package/lib/assets/images/murmur-white.svg +68 -0
- package/lib/components/AccordionStep.vue +128 -0
- package/lib/components/AccordionWrapper.vue +138 -0
- package/lib/components/ActiveTextTruncate.vue +258 -0
- package/lib/components/AdvancedLinkForm.vue +273 -0
- package/lib/components/Brand.vue +150 -0
- package/lib/components/BrandExpansion.vue +237 -0
- package/lib/components/ConfirmButton.vue +204 -0
- package/lib/components/ContentPlaceholder.vue +100 -0
- package/lib/components/CustomPagination.vue +225 -0
- package/lib/components/DigitsInput.vue +180 -0
- package/lib/components/DonateForm.vue +367 -0
- package/lib/components/EmbedForm.vue +173 -0
- package/lib/components/EmbeddableFooter.vue +201 -0
- package/lib/components/Fa.js +3 -0
- package/lib/components/FollowUsPopover.vue +117 -0
- package/lib/components/GenericFooter.vue +218 -0
- package/lib/components/GenericHeader.vue +259 -0
- package/lib/components/HapticCopy.vue +256 -0
- package/lib/components/ImddbHeader.vue +336 -0
- package/lib/components/OrdinalLegend.vue +164 -0
- package/lib/components/RangePicker.vue +430 -0
- package/lib/components/ResponsiveIframe.vue +48 -0
- package/lib/components/ScaleLegend.vue +230 -0
- package/lib/components/SecretInput.vue +132 -0
- package/lib/components/SelectableDropdown.vue +368 -0
- package/lib/components/SharingOptions.vue +230 -0
- package/lib/components/SharingOptionsLink.vue +259 -0
- package/lib/components/SignUpForm.vue +181 -0
- package/lib/components/SlideUpDown.vue +131 -0
- package/lib/components/TexturedDeck.vue +101 -0
- package/lib/components/TinyPagination.vue +268 -0
- package/lib/components/index.js +31 -0
- package/lib/composables/chart.ts +182 -0
- package/lib/composables/resizeObserver.ts +37 -0
- package/lib/composables/sendEmail.ts +50 -0
- package/lib/config.default.ts +33 -0
- package/lib/config.ts +70 -0
- package/lib/d3-geo-projection.d.ts +1 -0
- package/lib/datavisualisations/BarChart.vue +275 -0
- package/lib/datavisualisations/ColumnChart.vue +527 -0
- package/lib/datavisualisations/LineChart.vue +274 -0
- package/lib/datavisualisations/StackedBarChart.vue +614 -0
- package/lib/datavisualisations/StackedColumnChart.vue +640 -0
- package/lib/datavisualisations/index.js +5 -0
- package/lib/enums.ts +25 -0
- package/lib/i18n.ts +16 -0
- package/lib/keys.ts +2 -0
- package/lib/locales/en.json +140 -0
- package/lib/locales/fr.json +117 -0
- package/lib/locales/locales/en.json +140 -0
- package/lib/locales/locales/fr.json +117 -0
- package/lib/main.ts +87 -0
- package/lib/maps/ChoroplethMap.vue +825 -0
- package/lib/maps/ChoroplethMapAnnotation.vue +336 -0
- package/lib/maps/SymbolMap.vue +628 -0
- package/lib/maps/index.js +3 -0
- package/lib/querystring-es3.d.ts +1 -0
- package/lib/shims-bootstrap-vue.d.ts +5 -0
- package/lib/shims-tsx.d.ts +11 -0
- package/lib/shims-vue.d.ts +14 -0
- package/lib/styles/functions.scss +20 -0
- package/lib/styles/lib.scss +19 -0
- package/lib/styles/mixins.scss +37 -0
- package/lib/styles/utilities.scss +18 -0
- package/lib/styles/variables.scss +94 -0
- package/lib/styles/variables_dark.scss +1 -0
- package/lib/types.ts +46 -0
- package/lib/utils/animation.ts +24 -0
- package/lib/utils/assets.ts +46 -0
- package/lib/utils/clipboard.ts +41 -0
- package/lib/utils/iframe-resizer.ts +49 -0
- package/lib/utils/placeholder.ts +66 -0
- package/lib/utils/placeholderTypes.ts +21 -0
- package/lib/utils/strings.ts +8 -0
- package/loaders/highlight-loader.js +13 -0
- package/loaders/markdown-loader.js +91 -0
- package/loaders/metadata-loader.js +18 -0
- package/loaders/sass-extract-loader.js +14 -0
- package/loaders/vue-docgen-loader.js +14 -0
- package/package.json +96 -0
- package/plugins/MdPluginTypes.ts +10 -0
- package/plugins/docs.ts +50 -0
- package/plugins/front-matter.ts +36 -0
- package/plugins/highlight.ts +27 -0
- package/plugins/markdown-it/api-table.ts +25 -0
- package/plugins/markdown-it/sample-card.ts +31 -0
- package/plugins/plugin-delete.ts +47 -0
- package/plugins/plugin-docgen.ts +23 -0
- package/plugins/sass-vars.ts +25 -0
- package/plugins/vue-docgen.ts +29 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/assets/img/arrow-bottom.svg +3 -0
- package/public/assets/img/texture-brick-black.jpg +0 -0
- package/public/assets/img/texture-brick.jpg +0 -0
- package/public/assets/img/texture-carbon-black.jpg +0 -0
- package/public/assets/img/texture-carbon.jpg +0 -0
- package/public/assets/img/texture-crack-black.jpg +0 -0
- package/public/assets/img/texture-crack.jpg +0 -0
- package/public/assets/img/texture-rock-black.jpg +0 -0
- package/public/assets/img/texture-rock.jpg +0 -0
- package/public/assets/img/texture-sand-black.jpg +0 -0
- package/public/assets/img/texture-sand.jpg +0 -0
- package/public/assets/img/texture-silk-black.jpg +0 -0
- package/public/assets/img/texture-silk.jpg +0 -0
- package/public/assets/topojson/france-departments.json +1 -0
- package/public/assets/topojson/paris-arrondissements.json +1 -0
- package/public/assets/topojson/world-countries-sans-antarctica.json +1 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/site.webmanifest +1 -0
- package/stories/assets/code-brackets.svg +1 -0
- package/stories/assets/colors.svg +1 -0
- package/stories/assets/comments.svg +1 -0
- package/stories/assets/direction.svg +1 -0
- package/stories/assets/flow.svg +1 -0
- package/stories/assets/plugin.svg +1 -0
- package/stories/assets/repo.svg +1 -0
- package/stories/assets/stackalt.svg +1 -0
- package/stories/getting-started/about-icij.mdx +14 -0
- package/stories/getting-started/custom-bootstrap.mdx +23 -0
- package/stories/getting-started/installation-guide.mdx +62 -0
- package/stories/getting-started/internationalization.mdx +63 -0
- package/stories/murmur/components/AccordionStep.stories.ts +33 -0
- package/stories/murmur/components/AccordionWrapper.stories.ts +69 -0
- package/stories/murmur/components/ActiveTextTruncate.stories.ts +32 -0
- package/stories/murmur/components/AdvancedLinkForm.stories.ts +77 -0
- package/stories/murmur/components/Brand.stories.ts +30 -0
- package/stories/murmur/components/BrandExpansion.stories.ts +41 -0
- package/stories/murmur/components/ConfirmButton.stories.ts +40 -0
- package/stories/murmur/components/ContentPlaceholder.stories.ts +41 -0
- package/stories/murmur/components/CustomPagination.stories.ts +42 -0
- package/stories/murmur/components/DigitsInput.stories.ts +29 -0
- package/stories/murmur/components/DonateForm.stories.ts +29 -0
- package/stories/murmur/components/EmbedForm.stories.ts +35 -0
- package/stories/murmur/components/EmbeddableFooter.stories.ts +59 -0
- package/stories/murmur/components/FollowUsPopover.stories.ts +24 -0
- package/stories/murmur/components/GenericFooter.stories.ts +27 -0
- package/stories/murmur/components/GenericHeader.stories.ts +27 -0
- package/stories/murmur/components/HapticCopy.stories.ts +40 -0
- package/stories/murmur/components/ImddbHeader.stories.ts +27 -0
- package/stories/murmur/components/OrdinalLegend.stories.ts +49 -0
- package/stories/murmur/components/RangePicker.stories.ts +98 -0
- package/stories/murmur/components/ResponsiveIframe.stories.ts +24 -0
- package/stories/murmur/components/ScaleLegend.stories.ts +65 -0
- package/stories/murmur/components/SecretInput.stories.ts +60 -0
- package/stories/murmur/components/SelectableDropdown.stories.ts +143 -0
- package/stories/murmur/components/SharingOptions.stories.ts +32 -0
- package/stories/murmur/components/SharingOptionsLink.stories.ts +53 -0
- package/stories/murmur/components/SignUpForm.stories.ts +51 -0
- package/stories/murmur/components/SlideUpDown.stories.ts +32 -0
- package/stories/murmur/components/TexturedDeck.stories.ts +83 -0
- package/stories/murmur/components/TinyPagination.stories.ts +65 -0
- package/stories/murmur/datavisualisations/BarChart.stories.ts +54 -0
- package/stories/murmur/datavisualisations/ColumnChart.stories.ts +88 -0
- package/stories/murmur/datavisualisations/LineChart.stories.ts +139 -0
- package/stories/murmur/datavisualisations/StackedBarChart.stories.ts +199 -0
- package/stories/murmur/datavisualisations/StackedColumnChart.stories.ts +136 -0
- package/stories/murmur/decorators.ts +108 -0
- package/stories/murmur/maps/ChoroplethMap.stories.ts +440 -0
- package/stories/murmur/maps/ChoroplethMapAnnotation.stories.ts +26 -0
- package/stories/murmur/maps/SymbolMap.stories.ts +24 -0
- package/stories/murmur/utils.ts +7 -0
- package/tests/unit/components/AccordionStep.spec.ts +157 -0
- package/tests/unit/components/AccordionWrapper.spec.ts +57 -0
- package/tests/unit/components/ActiveTextTruncate.spec.js +30 -0
- package/tests/unit/components/AdvancedLinkForm.spec.js +124 -0
- package/tests/unit/components/Brand.spec.js +50 -0
- package/tests/unit/components/ContentPlaceholder.spec.js +29 -0
- package/tests/unit/components/CustomPagination.spec.js +72 -0
- package/tests/unit/components/DigitsInput.spec.ts +157 -0
- package/tests/unit/components/DonateForm.spec.js +149 -0
- package/tests/unit/components/EmbedForm.spec.js +108 -0
- package/tests/unit/components/EmbeddableFooter.spec.js +11 -0
- package/tests/unit/components/Fa.spec.js +18 -0
- package/tests/unit/components/FollowUsPopover.spec.js +29 -0
- package/tests/unit/components/GenericFooter.spec.js +29 -0
- package/tests/unit/components/GenericHeader.spec.js +104 -0
- package/tests/unit/components/HapticCopy.spec.js +123 -0
- package/tests/unit/components/ImddbHeader.spec.js +96 -0
- package/tests/unit/components/OrdinalLegend.spec.js +120 -0
- package/tests/unit/components/RangePicker.spec.ts +87 -0
- package/tests/unit/components/ResponsiveIframe.spec.js +20 -0
- package/tests/unit/components/ScaleLegend.spec.js +139 -0
- package/tests/unit/components/SecretInput.spec.js +81 -0
- package/tests/unit/components/SelectableDropdown.spec.js +160 -0
- package/tests/unit/components/SharingOptions.spec.js +125 -0
- package/tests/unit/components/SharingOptionsLink.spec.js +184 -0
- package/tests/unit/components/SignUpForm.spec.js +145 -0
- package/tests/unit/components/SlideUpDown.spec.js +59 -0
- package/tests/unit/components/TinyPagination.spec.js +46 -0
- package/tests/unit/config.spec.js +136 -0
- package/tests/unit/datavisualisations/BarChart.spec.js +63 -0
- package/tests/unit/datavisualisations/ColumnChart.spec.js +344 -0
- package/tests/unit/datavisualisations/LineChart.spec.js +155 -0
- package/tests/unit/datavisualisations/StackedBarChart.spec.js +294 -0
- package/tests/unit/datavisualisations/StackedColumnChart.spec.js +443 -0
- package/tests/unit/i18n.spec.ts +19 -0
- package/tests/unit/main.spec.js +82 -0
- package/tests/unit/maps/ChoroplethMap.spec.js +214 -0
- package/tests/unit/maps/ChoroplethMapAnnotation.spec.ts +186 -0
- package/tests/unit/maps/SymbolMap.spec.js +92 -0
- package/tests/unit/require.spec.js +22 -0
- package/tests/unit/setup.js +13 -0
- package/tests/unit/utils/assets.spec.js +61 -0
- package/tests/unit/utils/clipboard.spec.js +18 -0
- package/tests/unit/utils/iframe-resizer.spec.js +71 -0
- package/tsconfig.json +35 -0
- package/vite.config.ts +79 -0
- package/vitest.config.ts +19 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { OrdinalLegend } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const data = {
|
|
6
|
+
highlighted: 'dc',
|
|
7
|
+
icijOffices: [
|
|
8
|
+
{ id: 'paris', color: '#6e40aa', label: 'Paris, France' },
|
|
9
|
+
{ id: 'sydney', color: '#ff5e63', label: 'Sydney, Australia' },
|
|
10
|
+
{ id: 'dc', color: '#aff05b', label: 'Washington DC, USA' }
|
|
11
|
+
]}
|
|
12
|
+
export default {
|
|
13
|
+
title: 'Murmur/components/OrdinalLegend',
|
|
14
|
+
component: OrdinalLegend,
|
|
15
|
+
tags: ['autodocs'],
|
|
16
|
+
argTypes: {
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
type Story = StoryObj<typeof OrdinalLegend>;
|
|
21
|
+
const Template: Story = (args: any) => ({
|
|
22
|
+
components: { OrdinalLegend },
|
|
23
|
+
setup() {
|
|
24
|
+
return { args };
|
|
25
|
+
},
|
|
26
|
+
template: '<OrdinalLegend v-bind="args" />',
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const Default = Template.bind({});
|
|
30
|
+
Default.args = {
|
|
31
|
+
data:data.icijOffices,
|
|
32
|
+
value:"paris"
|
|
33
|
+
};
|
|
34
|
+
export const Horizontal = Template.bind({});
|
|
35
|
+
Horizontal.args = {
|
|
36
|
+
data:data.icijOffices,
|
|
37
|
+
horizontal:true
|
|
38
|
+
};
|
|
39
|
+
export const Highlighted = Template.bind({});
|
|
40
|
+
Highlighted.args = {
|
|
41
|
+
data:data.icijOffices,
|
|
42
|
+
highlight:data.highlighted,
|
|
43
|
+
horizontal:true
|
|
44
|
+
};
|
|
45
|
+
export const CustomMarker = Template.bind({});
|
|
46
|
+
CustomMarker.args = {
|
|
47
|
+
data:data.icijOffices,
|
|
48
|
+
markerPath:"M384 192C384 279.4 267 435 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C298 0 384 85.96 384 192H384z"
|
|
49
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { RangePicker } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
import {BBadge} from "bootstrap-vue-next";
|
|
4
|
+
import {ColumnChart} from "../../../lib/main";
|
|
5
|
+
import {range} from "lodash";
|
|
6
|
+
import {computed} from "vue";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Murmur/components/RangePicker',
|
|
10
|
+
component: RangePicker,
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: {
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type Story = StoryObj<typeof RangePicker>;
|
|
17
|
+
const Template: Story = (args: any) => ({
|
|
18
|
+
components: { RangePicker, BBadge },
|
|
19
|
+
setup() {
|
|
20
|
+
return { args };
|
|
21
|
+
},
|
|
22
|
+
template: `<RangePicker v-bind="args" ></RangePicker>`
|
|
23
|
+
});
|
|
24
|
+
export const Default = Template.bind({});
|
|
25
|
+
Default.decorators=[()=>({template:`<div style="width:500px;"><story/></div>`})]
|
|
26
|
+
Default.args = {
|
|
27
|
+
range:[5,10]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const WithOffsets = (args: any) => ({
|
|
31
|
+
components: { RangePicker, BBadge },
|
|
32
|
+
setup() {
|
|
33
|
+
return { args };
|
|
34
|
+
},
|
|
35
|
+
template: `
|
|
36
|
+
<RangePicker v-bind="args" >
|
|
37
|
+
<div class="bg-white p-3 text-center text-uppercase">
|
|
38
|
+
<b-badge>{{ args.range[0] * 100 }}%</b-badge> - <b-badge>{{ args.range[1] * 100 }}%</b-badge>
|
|
39
|
+
</div>
|
|
40
|
+
</RangePicker>
|
|
41
|
+
`,
|
|
42
|
+
});
|
|
43
|
+
WithOffsets.args = {
|
|
44
|
+
range:[5,10],
|
|
45
|
+
|
|
46
|
+
};
|
|
47
|
+
export const WithColumnChart = (args: any) => ({
|
|
48
|
+
components: { RangePicker, ColumnChart },
|
|
49
|
+
setup() {
|
|
50
|
+
const rangeStartYear = computed(()=> {
|
|
51
|
+
const start = args.rangeYears[0]
|
|
52
|
+
const year = Math.ceil(start * (args.dataPerYear.length - 1))
|
|
53
|
+
return args.dataPerYear[year].date
|
|
54
|
+
})
|
|
55
|
+
const rangeEndYear = computed(()=> {
|
|
56
|
+
const end = args.rangeYears[1]
|
|
57
|
+
return args.dataPerYear[Math.floor(end * (args.dataPerYear.length - 1))].date
|
|
58
|
+
})
|
|
59
|
+
const highlightedYears = computed(()=> {
|
|
60
|
+
return range(rangeStartYear.value, rangeEndYear.value + 1)
|
|
61
|
+
})
|
|
62
|
+
return { args,highlightedYears };
|
|
63
|
+
},
|
|
64
|
+
template: `
|
|
65
|
+
<div class="bg-light p-5">
|
|
66
|
+
<range-picker :snap="1 / args.dataPerYear.length" variant="dark" v-model:range="args.rangeYears" class="py-2" hover>
|
|
67
|
+
<column-chart :bar-padding=0 :bar-margin=20 :highlights="highlightedYears" :data="args.dataPerYear" :fixed-height="200" no-y-axis no-tooltips />
|
|
68
|
+
</range-picker>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
`,
|
|
72
|
+
});
|
|
73
|
+
WithColumnChart.args = {
|
|
74
|
+
range: [.2, .8],
|
|
75
|
+
rangeYears: [0, 1 / 5],
|
|
76
|
+
dataPerYear: [
|
|
77
|
+
{
|
|
78
|
+
date: 2018,
|
|
79
|
+
value: 120
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
date: 2019,
|
|
83
|
+
value: 100
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
date: 2020,
|
|
87
|
+
value: 80
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
date: 2021,
|
|
91
|
+
value: 110
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
date: 2022,
|
|
95
|
+
value: 130
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ResponsiveIframe } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Murmur/components/ResponsiveIframe',
|
|
6
|
+
component: ResponsiveIframe,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof ResponsiveIframe>;
|
|
13
|
+
const Template: Story = (args: any) => ({
|
|
14
|
+
components: { ResponsiveIframe },
|
|
15
|
+
setup() {
|
|
16
|
+
return { args };
|
|
17
|
+
},
|
|
18
|
+
template: `<ResponsiveIframe v-bind="args" />`,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export const Default = Template.bind({});
|
|
22
|
+
Default.args = {
|
|
23
|
+
url:"https://projects.icij.org/the-implant-files/graphics/#/adverse-events?no-embeddable-footer=1"
|
|
24
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ScaleLegend } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
import * as d3 from 'd3'
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Murmur/components/ScaleLegend',
|
|
7
|
+
component: ScaleLegend,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof ScaleLegend>;
|
|
14
|
+
const Template: Story = (args: any) => ({
|
|
15
|
+
components: { ScaleLegend },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args };
|
|
18
|
+
},
|
|
19
|
+
template: '<ScaleLegend v-bind="args" >{{args.default}}</ScaleLegend>',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const Default = Template.bind({});
|
|
23
|
+
Default.args = {};
|
|
24
|
+
export const Width = Template.bind({});
|
|
25
|
+
Width.args = {width:"200"};
|
|
26
|
+
export const ColorScale = Template.bind({});
|
|
27
|
+
ColorScale.args = {
|
|
28
|
+
colorScaleStart:"#fafa6e",
|
|
29
|
+
colorScaleEnd:"teal"
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
function thresholdScaleFn () {
|
|
33
|
+
return d3.scaleThreshold()
|
|
34
|
+
.domain([1e4, 2e4, 3e4, 4e4, 5e4])
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
.range(["#D12229", "#F68A1E", "#FDE01A", "#007940", "#24408E", "#732982"])
|
|
37
|
+
}
|
|
38
|
+
export const ThresholdScale = Template.bind({});
|
|
39
|
+
ThresholdScale.args = {
|
|
40
|
+
min:0,
|
|
41
|
+
max:6e4,
|
|
42
|
+
colorScale:thresholdScaleFn()
|
|
43
|
+
};
|
|
44
|
+
export const HighlightValue = Template.bind({});
|
|
45
|
+
HighlightValue.args = {
|
|
46
|
+
width:400,
|
|
47
|
+
cursorValue:46
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const CustomizedWithSlot: Story = (args: any) => ({
|
|
51
|
+
components: { ScaleLegend },
|
|
52
|
+
setup() {
|
|
53
|
+
return { args };
|
|
54
|
+
},
|
|
55
|
+
template: `<ScaleLegend v-bind="args" ><template #cursor="{ value }">
|
|
56
|
+
<div class="bg-dark text-light px-3 py-2">
|
|
57
|
+
{{value}}
|
|
58
|
+
</div>
|
|
59
|
+
</template></ScaleLegend>`
|
|
60
|
+
});
|
|
61
|
+
CustomizedWithSlot.decorators=[()=>({template:`<div style="margin:40px;"><story/></div>`})]
|
|
62
|
+
CustomizedWithSlot.args={
|
|
63
|
+
width:400,
|
|
64
|
+
cursorValue:10
|
|
65
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { SecretInput } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
import {Size} from "../../../lib/enums";
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Murmur/components/SecretInput',
|
|
7
|
+
component: SecretInput,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof SecretInput>;
|
|
14
|
+
const Template: Story = (args: any) => ({
|
|
15
|
+
components: { SecretInput },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args };
|
|
18
|
+
},
|
|
19
|
+
template: '<SecretInput v-bind="args" />',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const Default = Template.bind({});
|
|
23
|
+
Default.args = {};
|
|
24
|
+
export const NoToggler = Template.bind({});
|
|
25
|
+
NoToggler.args = {noToggler:true};
|
|
26
|
+
export const NoHapticCopy = Template.bind({});
|
|
27
|
+
NoHapticCopy.args = {noHapticCopy:true};
|
|
28
|
+
export const HideSecret = Template.bind({});
|
|
29
|
+
HideSecret.args = {
|
|
30
|
+
value:"this is a secret passphrase 🕵️♀️"
|
|
31
|
+
};
|
|
32
|
+
export const ShowSecret = Template.bind({});
|
|
33
|
+
ShowSecret.args = {
|
|
34
|
+
value:"this is a secret passphrase 🕵️♀️",
|
|
35
|
+
visible:true
|
|
36
|
+
};
|
|
37
|
+
export const SmallSize = Template.bind({});
|
|
38
|
+
SmallSize.args = {
|
|
39
|
+
value:"this is a secret passphrase 🕵️♀️",
|
|
40
|
+
visible:true,
|
|
41
|
+
size:Size.sm
|
|
42
|
+
};
|
|
43
|
+
export const MediumSize = Template.bind({});
|
|
44
|
+
MediumSize.args = {
|
|
45
|
+
value:"this is a secret passphrase 🕵️♀️",
|
|
46
|
+
visible:true,
|
|
47
|
+
size:Size.md
|
|
48
|
+
};
|
|
49
|
+
export const LargeSize = Template.bind({});
|
|
50
|
+
LargeSize.args = {
|
|
51
|
+
value:"this is a secret passphrase 🕵️♀️",
|
|
52
|
+
visible:true,
|
|
53
|
+
size:Size.lg
|
|
54
|
+
};
|
|
55
|
+
export const HapticCopyVariant = Template.bind({});
|
|
56
|
+
HapticCopyVariant.args = {
|
|
57
|
+
value:"this is a secret passphrase 🕵️♀️",
|
|
58
|
+
visible:true,
|
|
59
|
+
hapticCopyVariant:"secondary"
|
|
60
|
+
};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { SelectableDropdown } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
import {onBeforeMount, reactive, ref, toRef, toRefs, watch} from "vue";
|
|
4
|
+
|
|
5
|
+
const data = {
|
|
6
|
+
country: 'Peru',
|
|
7
|
+
countries: [],
|
|
8
|
+
filteredCountries: ['Spain', 'Peru', 'France'],
|
|
9
|
+
twoCountries: ['Spain', 'France'],
|
|
10
|
+
treeCountries: ['Spain', 'Peru', 'France'],
|
|
11
|
+
allCountries: ['France', 'United States of America', 'Spain', 'Peru'],
|
|
12
|
+
countryCollection: [
|
|
13
|
+
{ label: 'Spain' },
|
|
14
|
+
{ label: 'Peru' },
|
|
15
|
+
{ label: 'France' }
|
|
16
|
+
],
|
|
17
|
+
selectedGames: [{uid: 'sf1'},{uid: 'sf3'},{uid: 'sf5'}],
|
|
18
|
+
streetFighters : [
|
|
19
|
+
{ label: 'Street Fighter (I)', uid: 'sf1' },
|
|
20
|
+
{ label: 'Street Fighter (II)', uid: 'sf2' },
|
|
21
|
+
{ label: 'Street Fighter (III)', uid: 'sf3' },
|
|
22
|
+
{ label: 'Street Fighter (IV)', uid: 'sf4' },
|
|
23
|
+
{ label: 'Street Fighter (V)', uid: 'sf5' },
|
|
24
|
+
],
|
|
25
|
+
frenchCities:[],
|
|
26
|
+
selectedFrenchCities:[]
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const countryArgTypes = {
|
|
30
|
+
modelValue:{control:"multi-select",options:data.allCountries}
|
|
31
|
+
}
|
|
32
|
+
const SFArgTypes = {
|
|
33
|
+
modelValue:{control:"object"}
|
|
34
|
+
}
|
|
35
|
+
export default {
|
|
36
|
+
title: 'Murmur/components/SelectableDropdown',
|
|
37
|
+
component: SelectableDropdown,
|
|
38
|
+
tags: ['autodocs']
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type Story = StoryObj<typeof SelectableDropdown>;
|
|
42
|
+
const Template: Story = (args: any) => ({
|
|
43
|
+
components: { SelectableDropdown },
|
|
44
|
+
setup() {
|
|
45
|
+
return { args };
|
|
46
|
+
},
|
|
47
|
+
template: '<SelectableDropdown v-bind="args" />',
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export const Default = Template.bind({});
|
|
51
|
+
Default.args = {
|
|
52
|
+
modelValue:data.country,
|
|
53
|
+
items:data.allCountries,
|
|
54
|
+
}
|
|
55
|
+
Default.argTypes= countryArgTypes
|
|
56
|
+
export const WithSerializer = Template.bind({});
|
|
57
|
+
WithSerializer.args = {
|
|
58
|
+
modelValue:data.country,
|
|
59
|
+
items:data.allCountries,
|
|
60
|
+
deactivateKeys :true,
|
|
61
|
+
serializer:(item:string) => item.toUpperCase()
|
|
62
|
+
}
|
|
63
|
+
WithSerializer.argTypes= countryArgTypes
|
|
64
|
+
export const WithSerializerLabel = Template.bind({});
|
|
65
|
+
WithSerializerLabel.args = {
|
|
66
|
+
modelValue:data.country,
|
|
67
|
+
items:data.countryCollection,
|
|
68
|
+
serializer:(item:{label:string}) => item.label,
|
|
69
|
+
deactivateKeys :true,
|
|
70
|
+
multiple :true
|
|
71
|
+
}
|
|
72
|
+
export const WithSerializerAndEqualFn = Template.bind({});
|
|
73
|
+
|
|
74
|
+
WithSerializerAndEqualFn.args = {
|
|
75
|
+
eq:(item:any, other:any) => item.uid === other.uid,
|
|
76
|
+
serializer:(item:{label:string}) => item.label,
|
|
77
|
+
items:data.streetFighters,
|
|
78
|
+
deactivateKeys :true,
|
|
79
|
+
multiple :true,
|
|
80
|
+
modelValue:data.selectedGames
|
|
81
|
+
}
|
|
82
|
+
WithSerializerAndEqualFn.argTypes= SFArgTypes
|
|
83
|
+
|
|
84
|
+
export const Multiple = Template.bind({});
|
|
85
|
+
Multiple.args = {
|
|
86
|
+
modelValue:data.country,
|
|
87
|
+
items:data.allCountries,
|
|
88
|
+
deactivateKeys :true,
|
|
89
|
+
multiple :true
|
|
90
|
+
}
|
|
91
|
+
Multiple.argTypes= countryArgTypes
|
|
92
|
+
export const DynamicList = Template.bind({});
|
|
93
|
+
DynamicList.decorators = [(_storyFn:any,context:any)=>({
|
|
94
|
+
setup() {
|
|
95
|
+
const { modelValue } = toRefs( context.args)
|
|
96
|
+
function onClickThree(){
|
|
97
|
+
modelValue.value = data.treeCountries
|
|
98
|
+
}
|
|
99
|
+
function onClickTwo(){
|
|
100
|
+
modelValue.value = data.twoCountries
|
|
101
|
+
}
|
|
102
|
+
return {onClickTwo,onClickThree}
|
|
103
|
+
},
|
|
104
|
+
template:`
|
|
105
|
+
<story/>
|
|
106
|
+
<button class="btn btn-outline-secondary mt-2 mx-2" @click="onClickThree">
|
|
107
|
+
Tree countries
|
|
108
|
+
</button>
|
|
109
|
+
<button class="btn btn-outline-secondary mt-2 mx-2" @click="onClickTwo">
|
|
110
|
+
Two countries
|
|
111
|
+
</button>`})]
|
|
112
|
+
DynamicList.args = {
|
|
113
|
+
modelValue:data.filteredCountries,
|
|
114
|
+
items:data.allCountries,
|
|
115
|
+
deactivateKeys :true,
|
|
116
|
+
multiple :true
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
DynamicList.argTypes= countryArgTypes
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
export const BigList = Template.bind({});
|
|
123
|
+
BigList.decorators=[(fn:any,ctx:any)=>({
|
|
124
|
+
setup(){
|
|
125
|
+
const frenchCities = ref<any>([])
|
|
126
|
+
const args = toRefs(ctx.args)
|
|
127
|
+
onBeforeMount(async ()=>{
|
|
128
|
+
const url = 'https://raw.githubusercontent.com/high54/Communes-France-JSON/master/france.json';
|
|
129
|
+
const cities = await fetch(url).then(data=> data.json());
|
|
130
|
+
args.items.value = [...new Set(cities.map((city:any)=> city.Code_postal + ' - ' + city.Nom_commune).sort())];
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
return {...args}
|
|
134
|
+
},
|
|
135
|
+
template:`<story />`
|
|
136
|
+
})]
|
|
137
|
+
BigList.args = {
|
|
138
|
+
modelValue:[],
|
|
139
|
+
items:data.frenchCities,
|
|
140
|
+
deactivateKeys :true,
|
|
141
|
+
multiple :true,
|
|
142
|
+
scrollerHeight:"500px",
|
|
143
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SharingOptions } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Murmur/components/SharingOptions',
|
|
6
|
+
component: SharingOptions,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
direction:{control:'select',options:['row', 'row-reverse', 'column', 'column-reverse']}
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof SharingOptions>;
|
|
14
|
+
const Template: Story = (args: any) => ({
|
|
15
|
+
components: { SharingOptions },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args };
|
|
18
|
+
},
|
|
19
|
+
template: `<SharingOptions v-bind="args" />`,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const Default = Template.bind({});
|
|
23
|
+
Default.args = {};
|
|
24
|
+
export const WithUrl = Template.bind({});
|
|
25
|
+
WithUrl.args = {
|
|
26
|
+
url:"https://www.icij.org/",
|
|
27
|
+
class:"justify-content-center"
|
|
28
|
+
};
|
|
29
|
+
export const DirectionColumn = Template.bind({});
|
|
30
|
+
DirectionColumn.args = {
|
|
31
|
+
direction:"column"
|
|
32
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SharingOptionsLink } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Murmur/components/SharingOptionsLink',
|
|
6
|
+
component: SharingOptionsLink,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
network:{control:"select",options:["twitter","facebook","linkedin","email"]}
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof SharingOptionsLink>;
|
|
14
|
+
const Template: Story = (args: any) => ({
|
|
15
|
+
components: { SharingOptionsLink },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args };
|
|
18
|
+
},
|
|
19
|
+
template: '<SharingOptionsLink v-bind="args" >{{args.default}}</SharingOptionsLink>',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const Default = Template.bind({});
|
|
23
|
+
Default.args = {
|
|
24
|
+
network:"twitter",
|
|
25
|
+
class:"btn btn-outline-primary mx-1",
|
|
26
|
+
url:"https://www.icij.org"
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const NoIcon = Template.bind({});
|
|
30
|
+
NoIcon.args = {
|
|
31
|
+
network:"twitter",
|
|
32
|
+
class:"btn btn-outline-primary mx-1",
|
|
33
|
+
url:"https://www.icij.org",
|
|
34
|
+
noIcon:true
|
|
35
|
+
};
|
|
36
|
+
export const CustomSlot = Template.bind({});
|
|
37
|
+
CustomSlot.args = {
|
|
38
|
+
network:"twitter",
|
|
39
|
+
class:"btn btn-outline-primary mx-1",
|
|
40
|
+
url:"https://www.icij.org",
|
|
41
|
+
noIcon:true,
|
|
42
|
+
default:"Share twitter"
|
|
43
|
+
};
|
|
44
|
+
export const CustomTagAndSlot = Template.bind({});
|
|
45
|
+
CustomTagAndSlot.args = {
|
|
46
|
+
network:"twitter",
|
|
47
|
+
title:"Murmur Design System",
|
|
48
|
+
class:"btn btn-warning",
|
|
49
|
+
url:"https://www.icij.org",
|
|
50
|
+
noIcon:true,
|
|
51
|
+
tag:"button",
|
|
52
|
+
default:"Twitter Button"
|
|
53
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { SignUpForm } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Murmur/components/SignUpForm',
|
|
6
|
+
component: SignUpForm,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
variant:{type:'select',options:[
|
|
10
|
+
"primary",
|
|
11
|
+
"secondary",
|
|
12
|
+
"success",
|
|
13
|
+
"danger",
|
|
14
|
+
"warning",
|
|
15
|
+
"info",
|
|
16
|
+
"light",
|
|
17
|
+
"dark",
|
|
18
|
+
]}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
type Story = StoryObj<typeof SignUpForm>;
|
|
23
|
+
const Template: Story = (args: any) => ({
|
|
24
|
+
components: { SignUpForm },
|
|
25
|
+
setup() {
|
|
26
|
+
return { args };
|
|
27
|
+
},
|
|
28
|
+
template: '<SignUpForm v-bind="args" />',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export const Default = Template.bind({});
|
|
32
|
+
Default.args = {};
|
|
33
|
+
|
|
34
|
+
export const Variant = Template.bind({});
|
|
35
|
+
Variant.args = {
|
|
36
|
+
variant:'secondary'
|
|
37
|
+
};
|
|
38
|
+
export const Horizontal = Template.bind({});
|
|
39
|
+
Horizontal.args = {
|
|
40
|
+
variant:'secondary',
|
|
41
|
+
horizontal :true,
|
|
42
|
+
defaultGroups:'group[9][1],group[9][131072]',
|
|
43
|
+
};
|
|
44
|
+
export const NoLabel = Template.bind({});
|
|
45
|
+
NoLabel.args = {
|
|
46
|
+
noLabel:true,
|
|
47
|
+
};
|
|
48
|
+
export const MailChimpGroups = Template.bind({});
|
|
49
|
+
MailChimpGroups.args = {
|
|
50
|
+
defaultGroups:'group[9][1],group[9][131072]',
|
|
51
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SlideUpDown } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
import {toggleDecorator} from "../decorators";
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Murmur/components/SlideUpDown',
|
|
7
|
+
component: SlideUpDown,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof SlideUpDown>;
|
|
14
|
+
const Template: Story = (args: any) => ({
|
|
15
|
+
components: { SlideUpDown },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args }
|
|
18
|
+
},
|
|
19
|
+
template: `
|
|
20
|
+
<slide-up-down v-bind="args">
|
|
21
|
+
<div class="card-body">
|
|
22
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
23
|
+
</div>
|
|
24
|
+
</slide-up-down>`
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export const Default = Template.bind({})
|
|
28
|
+
Default.args = {
|
|
29
|
+
active:true
|
|
30
|
+
}
|
|
31
|
+
Default.decorators = [toggleDecorator]
|
|
32
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { TexturedDeck } from "@/components";
|
|
2
|
+
import { StoryObj } from "@storybook/vue3";
|
|
3
|
+
import {BButton} from "bootstrap-vue-next";
|
|
4
|
+
import {Brand} from "@/components";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Murmur/components/TexturedDeck',
|
|
8
|
+
component: TexturedDeck,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
modelValue:{control:"select",options:["brick","crack","rock","sand"]},
|
|
12
|
+
size:{control:"select",options:["cover", "contain", "auto", "50%", "50%", "auto"]}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type Story = StoryObj<typeof TexturedDeck>;
|
|
17
|
+
const Template: Story = (args: any) => ({
|
|
18
|
+
components: { TexturedDeck },
|
|
19
|
+
setup() {
|
|
20
|
+
return { args };
|
|
21
|
+
},
|
|
22
|
+
template: `<TexturedDeck class="p-5 m-4" v-bind="args" >
|
|
23
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
24
|
+
</TexturedDeck>`,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const Default = Template.bind({});
|
|
28
|
+
Default.args = {
|
|
29
|
+
};
|
|
30
|
+
export const Black = Template.bind({});
|
|
31
|
+
Black.args = {
|
|
32
|
+
black:true
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const BrickDonate = (args: any) => ({
|
|
36
|
+
components: { TexturedDeck,BButton },
|
|
37
|
+
setup() {
|
|
38
|
+
return { args };
|
|
39
|
+
},
|
|
40
|
+
template: `<textured-deck class="p-5 m-4 row no-gutters align-items-center" v-bind="args">
|
|
41
|
+
<div class="col">
|
|
42
|
+
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
43
|
+
</div>
|
|
44
|
+
<div class="col-4 text-center">
|
|
45
|
+
<b-button variant="primary" class="text-dark">
|
|
46
|
+
Donate now
|
|
47
|
+
</b-button>
|
|
48
|
+
</div>
|
|
49
|
+
</textured-deck>`
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
BrickDonate.args = {
|
|
53
|
+
modelValue:"brick"
|
|
54
|
+
};
|
|
55
|
+
export const CrackBrand = (args: any) => ({
|
|
56
|
+
components: { TexturedDeck,Brand },
|
|
57
|
+
setup() {
|
|
58
|
+
return { args };
|
|
59
|
+
},
|
|
60
|
+
template: `<textured-deck class="p-5 m-4 d-flex align-items-center" v-bind="args">
|
|
61
|
+
<brand class="me-5" /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
62
|
+
</textured-deck>`
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
CrackBrand.args = {
|
|
66
|
+
modelValue:"crack"
|
|
67
|
+
};
|
|
68
|
+
export const Rock = Template.bind({});
|
|
69
|
+
Rock.args = {
|
|
70
|
+
modelValue:"rock"
|
|
71
|
+
};
|
|
72
|
+
export const Sand = Template.bind({});
|
|
73
|
+
Sand.args = {
|
|
74
|
+
modelValue:"sand"
|
|
75
|
+
};
|
|
76
|
+
export const Crack = Template.bind({});
|
|
77
|
+
Crack.args = {
|
|
78
|
+
modelValue:"crack"
|
|
79
|
+
};
|
|
80
|
+
export const Carbon = Template.bind({});
|
|
81
|
+
Carbon.args = {
|
|
82
|
+
modelValue:"carbon"
|
|
83
|
+
};
|