@icij/murmur-next 4.0.0 → 4.0.1

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.
Files changed (273) hide show
  1. package/README.md +15 -19
  2. package/dist/lib/components/AccordionStep.vue.d.ts +79 -0
  3. package/dist/lib/components/AccordionWrapper.vue.d.ts +33 -0
  4. package/dist/lib/components/ActiveTextTruncate.vue.d.ts +101 -0
  5. package/dist/lib/components/AdvancedLinkForm.vue.d.ts +168 -0
  6. package/dist/lib/components/Brand.vue.d.ts +55 -0
  7. package/dist/lib/components/BrandExpansion.vue.d.ts +105 -0
  8. package/dist/lib/components/ConfirmButton.vue.d.ts +158 -0
  9. package/dist/lib/components/ContentPlaceholder.vue.d.ts +44 -0
  10. package/dist/lib/components/CustomPagination.vue.d.ts +130 -0
  11. package/dist/lib/components/DigitsInput.vue.d.ts +66 -0
  12. package/dist/lib/components/DonateForm.vue.d.ts +46 -0
  13. package/dist/lib/components/EmbedForm.vue.d.ts +121 -0
  14. package/dist/lib/components/EmbeddableFooter.vue.d.ts +103 -0
  15. package/dist/lib/components/FollowUsPopover.vue.d.ts +16 -0
  16. package/dist/lib/components/GenericFooter.vue.d.ts +47 -0
  17. package/dist/lib/components/GenericHeader.vue.d.ts +928 -0
  18. package/dist/lib/components/HapticCopy.vue.d.ts +156 -0
  19. package/dist/lib/components/ImddbHeader.vue.d.ts +960 -0
  20. package/dist/lib/components/OrdinalLegend.vue.d.ts +87 -0
  21. package/dist/lib/components/RangePicker.vue.d.ts +196 -0
  22. package/dist/lib/components/ResponsiveIframe.vue.d.ts +45 -0
  23. package/dist/lib/components/ScaleLegend.vue.d.ts +101 -0
  24. package/dist/lib/components/SecretInput.vue.d.ts +99 -0
  25. package/dist/lib/components/SelectableDropdown.vue.d.ts +210 -0
  26. package/dist/lib/components/SharingOptions.vue.d.ts +153 -0
  27. package/dist/lib/components/SharingOptionsLink.vue.d.ts +200 -0
  28. package/dist/lib/components/SignUpForm.vue.d.ts +141 -0
  29. package/dist/lib/components/SlideUpDown.vue.d.ts +74 -0
  30. package/dist/lib/components/TexturedDeck.vue.d.ts +89 -0
  31. package/dist/lib/components/TinyPagination.vue.d.ts +188 -0
  32. package/dist/lib/composables/chart.d.ts +48 -0
  33. package/dist/lib/composables/resizeObserver.d.ts +22 -0
  34. package/dist/lib/composables/sendEmail.d.ts +6 -0
  35. package/dist/lib/config.d.ts +19 -0
  36. package/dist/lib/config.default.d.ts +34 -0
  37. package/dist/lib/datavisualisations/BarChart.vue.d.ts +234 -0
  38. package/dist/lib/datavisualisations/ColumnChart.vue.d.ts +404 -0
  39. package/dist/lib/datavisualisations/LineChart.vue.d.ts +200 -0
  40. package/dist/lib/datavisualisations/StackedBarChart.vue.d.ts +342 -0
  41. package/dist/lib/datavisualisations/StackedColumnChart.vue.d.ts +412 -0
  42. package/dist/lib/enums.d.ts +32 -0
  43. package/dist/lib/i18n.d.ts +4 -0
  44. package/dist/lib/keys.d.ts +2 -0
  45. package/dist/lib/main.d.ts +52 -0
  46. package/dist/lib/maps/ChoroplethMap.vue.d.ts +460 -0
  47. package/dist/lib/maps/ChoroplethMapAnnotation.vue.d.ts +188 -0
  48. package/dist/lib/maps/SymbolMap.vue.d.ts +276 -0
  49. package/dist/lib/murmur.css +1 -0
  50. package/dist/lib/murmur.js +44661 -0
  51. package/dist/lib/murmur.js.map +1 -0
  52. package/dist/lib/murmur.umd.cjs +837 -0
  53. package/dist/lib/murmur.umd.cjs.map +1 -0
  54. package/dist/lib/types.d.ts +44 -0
  55. package/dist/lib/utils/animation.d.ts +8 -0
  56. package/dist/lib/utils/assets.d.ts +2 -0
  57. package/dist/lib/utils/clipboard.d.ts +2 -0
  58. package/dist/lib/utils/iframe-resizer.d.ts +10 -0
  59. package/dist/lib/utils/placeholder.d.ts +12 -0
  60. package/dist/lib/utils/placeholderTypes.d.ts +18 -0
  61. package/dist/lib/utils/strings.d.ts +1 -0
  62. package/package.json +15 -1
  63. package/.github/workflows/deploy-github-pages.yaml +0 -50
  64. package/.storybook/app.scss +0 -14
  65. package/.storybook/doc_variables.scss +0 -20
  66. package/.storybook/main.ts +0 -35
  67. package/.storybook/preview-head.html +0 -2
  68. package/.storybook/preview.ts +0 -32
  69. package/deploy.js +0 -15
  70. package/docs/components/ApiTable.vue +0 -171
  71. package/docs/components/App.vue +0 -146
  72. package/docs/components/CollapsibleBlock.vue +0 -122
  73. package/docs/components/DocsHeader.vue +0 -68
  74. package/docs/components/DocsMenu.vue +0 -201
  75. package/docs/components/DocsMenuSection.vue +0 -109
  76. package/docs/components/EditLink.vue +0 -49
  77. package/docs/components/OutboundLink.vue +0 -13
  78. package/docs/components/PalettePresenter.vue +0 -96
  79. package/docs/components/RepositoryLink.vue +0 -28
  80. package/docs/components/SampleCard.vue +0 -119
  81. package/docs/main.js +0 -42
  82. package/docs/pages/components/accordion/doc.md +0 -96
  83. package/docs/pages/components/active-text-truncate/doc.md +0 -44
  84. package/docs/pages/components/advanced-link-form/doc.md +0 -105
  85. package/docs/pages/components/brand/doc.md +0 -30
  86. package/docs/pages/components/brand-expansion/doc.md +0 -70
  87. package/docs/pages/components/confirm-button/doc.md +0 -91
  88. package/docs/pages/components/content-placeholder/doc.md +0 -16
  89. package/docs/pages/components/custom-pagination/doc.md +0 -61
  90. package/docs/pages/components/digits-input/doc.md +0 -28
  91. package/docs/pages/components/donate-form/doc.md +0 -20
  92. package/docs/pages/components/embed-form/doc.md +0 -22
  93. package/docs/pages/components/embeddable-footer/doc.md +0 -60
  94. package/docs/pages/components/follow-us-popover/doc.md +0 -5
  95. package/docs/pages/components/generic-footer/doc.md +0 -21
  96. package/docs/pages/components/generic-header/doc.md +0 -24
  97. package/docs/pages/components/haptic-copy/doc.md +0 -27
  98. package/docs/pages/components/imddb-header/doc.md +0 -23
  99. package/docs/pages/components/ordinal-legend/doc.md +0 -44
  100. package/docs/pages/components/range-picker/doc.md +0 -86
  101. package/docs/pages/components/responsive-iframe/doc.md +0 -13
  102. package/docs/pages/components/scale-legend/doc.md +0 -65
  103. package/docs/pages/components/secret-input/doc.md +0 -12
  104. package/docs/pages/components/selectable-dropdown/doc.md +0 -156
  105. package/docs/pages/components/sharing-options/doc.md +0 -13
  106. package/docs/pages/components/sharing-options-link/doc.md +0 -36
  107. package/docs/pages/components/sign-up-form/doc.md +0 -13
  108. package/docs/pages/components/slide-up-down/doc.md +0 -28
  109. package/docs/pages/components/textured-deck/doc.md +0 -78
  110. package/docs/pages/components/tiny-pagination/doc.md +0 -92
  111. package/docs/pages/datavisualisation/bars/doc.md +0 -110
  112. package/docs/pages/datavisualisation/columns/doc.md +0 -165
  113. package/docs/pages/datavisualisation/lines/doc.md +0 -139
  114. package/docs/pages/datavisualisation/stacked-bar/doc.md +0 -160
  115. package/docs/pages/datavisualisation/stacked-column/doc.md +0 -191
  116. package/docs/pages/getting-started/about-icij/doc.md +0 -13
  117. package/docs/pages/getting-started/custom-bootstrap/doc.md +0 -36
  118. package/docs/pages/getting-started/installation-guide/doc.md +0 -59
  119. package/docs/pages/getting-started/internationalization/doc.md +0 -74
  120. package/docs/pages/maps/choropleth-map/doc.md +0 -420
  121. package/docs/pages/maps/choropleth-map-annotation/doc.md +0 -373
  122. package/docs/pages/maps/symbol-map/doc.md +0 -203
  123. package/docs/pages/structure/breakpoints/doc.md +0 -3
  124. package/docs/pages/structure/grid/doc.md +0 -3
  125. package/docs/pages/utilities/assets/doc.md +0 -138
  126. package/docs/pages/utilities/config/doc.md +0 -52
  127. package/docs/pages/utilities/iframes/doc.md +0 -3
  128. package/docs/pages/visual/colors/doc.md +0 -31
  129. package/docs/pages/visual/iconography/doc.md +0 -56
  130. package/docs/pages/visual/states/doc.md +0 -77
  131. package/docs/pages/visual/themes/doc.md +0 -3
  132. package/docs/pages/visual/typography/doc.md +0 -71
  133. package/docs/routes.js +0 -25
  134. package/docs/store/index.js +0 -21
  135. package/docs/styles/app.scss +0 -36
  136. package/docs/styles/variables.scss +0 -20
  137. package/loaders/highlight-loader.js +0 -13
  138. package/loaders/markdown-loader.js +0 -91
  139. package/loaders/metadata-loader.js +0 -18
  140. package/loaders/sass-extract-loader.js +0 -14
  141. package/loaders/vue-docgen-loader.js +0 -14
  142. package/plugins/MdPluginTypes.ts +0 -10
  143. package/plugins/docs.ts +0 -50
  144. package/plugins/front-matter.ts +0 -36
  145. package/plugins/highlight.ts +0 -27
  146. package/plugins/markdown-it/api-table.ts +0 -25
  147. package/plugins/markdown-it/sample-card.ts +0 -31
  148. package/plugins/plugin-delete.ts +0 -47
  149. package/plugins/plugin-docgen.ts +0 -23
  150. package/plugins/sass-vars.ts +0 -25
  151. package/plugins/vue-docgen.ts +0 -29
  152. package/public/android-chrome-192x192.png +0 -0
  153. package/public/android-chrome-512x512.png +0 -0
  154. package/public/apple-touch-icon.png +0 -0
  155. package/public/assets/img/arrow-bottom.svg +0 -3
  156. package/public/assets/img/texture-brick-black.jpg +0 -0
  157. package/public/assets/img/texture-brick.jpg +0 -0
  158. package/public/assets/img/texture-carbon-black.jpg +0 -0
  159. package/public/assets/img/texture-carbon.jpg +0 -0
  160. package/public/assets/img/texture-crack-black.jpg +0 -0
  161. package/public/assets/img/texture-crack.jpg +0 -0
  162. package/public/assets/img/texture-rock-black.jpg +0 -0
  163. package/public/assets/img/texture-rock.jpg +0 -0
  164. package/public/assets/img/texture-sand-black.jpg +0 -0
  165. package/public/assets/img/texture-sand.jpg +0 -0
  166. package/public/assets/img/texture-silk-black.jpg +0 -0
  167. package/public/assets/img/texture-silk.jpg +0 -0
  168. package/public/assets/topojson/france-departments.json +0 -1
  169. package/public/assets/topojson/paris-arrondissements.json +0 -1
  170. package/public/assets/topojson/world-countries-sans-antarctica.json +0 -1
  171. package/public/favicon-16x16.png +0 -0
  172. package/public/favicon-32x32.png +0 -0
  173. package/public/favicon.ico +0 -0
  174. package/public/site.webmanifest +0 -1
  175. package/stories/assets/code-brackets.svg +0 -1
  176. package/stories/assets/colors.svg +0 -1
  177. package/stories/assets/comments.svg +0 -1
  178. package/stories/assets/direction.svg +0 -1
  179. package/stories/assets/flow.svg +0 -1
  180. package/stories/assets/plugin.svg +0 -1
  181. package/stories/assets/repo.svg +0 -1
  182. package/stories/assets/stackalt.svg +0 -1
  183. package/stories/getting-started/about-icij.mdx +0 -14
  184. package/stories/getting-started/custom-bootstrap.mdx +0 -23
  185. package/stories/getting-started/installation-guide.mdx +0 -62
  186. package/stories/getting-started/internationalization.mdx +0 -63
  187. package/stories/murmur/components/AccordionStep.stories.ts +0 -33
  188. package/stories/murmur/components/AccordionWrapper.stories.ts +0 -69
  189. package/stories/murmur/components/ActiveTextTruncate.stories.ts +0 -32
  190. package/stories/murmur/components/AdvancedLinkForm.stories.ts +0 -77
  191. package/stories/murmur/components/Brand.stories.ts +0 -30
  192. package/stories/murmur/components/BrandExpansion.stories.ts +0 -41
  193. package/stories/murmur/components/ConfirmButton.stories.ts +0 -40
  194. package/stories/murmur/components/ContentPlaceholder.stories.ts +0 -41
  195. package/stories/murmur/components/CustomPagination.stories.ts +0 -42
  196. package/stories/murmur/components/DigitsInput.stories.ts +0 -29
  197. package/stories/murmur/components/DonateForm.stories.ts +0 -29
  198. package/stories/murmur/components/EmbedForm.stories.ts +0 -35
  199. package/stories/murmur/components/EmbeddableFooter.stories.ts +0 -59
  200. package/stories/murmur/components/FollowUsPopover.stories.ts +0 -24
  201. package/stories/murmur/components/GenericFooter.stories.ts +0 -27
  202. package/stories/murmur/components/GenericHeader.stories.ts +0 -27
  203. package/stories/murmur/components/HapticCopy.stories.ts +0 -40
  204. package/stories/murmur/components/ImddbHeader.stories.ts +0 -27
  205. package/stories/murmur/components/OrdinalLegend.stories.ts +0 -49
  206. package/stories/murmur/components/RangePicker.stories.ts +0 -98
  207. package/stories/murmur/components/ResponsiveIframe.stories.ts +0 -24
  208. package/stories/murmur/components/ScaleLegend.stories.ts +0 -65
  209. package/stories/murmur/components/SecretInput.stories.ts +0 -60
  210. package/stories/murmur/components/SelectableDropdown.stories.ts +0 -143
  211. package/stories/murmur/components/SharingOptions.stories.ts +0 -32
  212. package/stories/murmur/components/SharingOptionsLink.stories.ts +0 -53
  213. package/stories/murmur/components/SignUpForm.stories.ts +0 -51
  214. package/stories/murmur/components/SlideUpDown.stories.ts +0 -32
  215. package/stories/murmur/components/TexturedDeck.stories.ts +0 -83
  216. package/stories/murmur/components/TinyPagination.stories.ts +0 -65
  217. package/stories/murmur/datavisualisations/BarChart.stories.ts +0 -54
  218. package/stories/murmur/datavisualisations/ColumnChart.stories.ts +0 -88
  219. package/stories/murmur/datavisualisations/LineChart.stories.ts +0 -139
  220. package/stories/murmur/datavisualisations/StackedBarChart.stories.ts +0 -199
  221. package/stories/murmur/datavisualisations/StackedColumnChart.stories.ts +0 -136
  222. package/stories/murmur/decorators.ts +0 -108
  223. package/stories/murmur/maps/ChoroplethMap.stories.ts +0 -440
  224. package/stories/murmur/maps/ChoroplethMapAnnotation.stories.ts +0 -26
  225. package/stories/murmur/maps/SymbolMap.stories.ts +0 -24
  226. package/stories/murmur/utils.ts +0 -7
  227. package/tests/unit/components/AccordionStep.spec.ts +0 -157
  228. package/tests/unit/components/AccordionWrapper.spec.ts +0 -57
  229. package/tests/unit/components/ActiveTextTruncate.spec.js +0 -30
  230. package/tests/unit/components/AdvancedLinkForm.spec.js +0 -124
  231. package/tests/unit/components/Brand.spec.js +0 -50
  232. package/tests/unit/components/ContentPlaceholder.spec.js +0 -29
  233. package/tests/unit/components/CustomPagination.spec.js +0 -72
  234. package/tests/unit/components/DigitsInput.spec.ts +0 -157
  235. package/tests/unit/components/DonateForm.spec.js +0 -149
  236. package/tests/unit/components/EmbedForm.spec.js +0 -108
  237. package/tests/unit/components/EmbeddableFooter.spec.js +0 -11
  238. package/tests/unit/components/Fa.spec.js +0 -18
  239. package/tests/unit/components/FollowUsPopover.spec.js +0 -29
  240. package/tests/unit/components/GenericFooter.spec.js +0 -29
  241. package/tests/unit/components/GenericHeader.spec.js +0 -104
  242. package/tests/unit/components/HapticCopy.spec.js +0 -123
  243. package/tests/unit/components/ImddbHeader.spec.js +0 -96
  244. package/tests/unit/components/OrdinalLegend.spec.js +0 -120
  245. package/tests/unit/components/RangePicker.spec.ts +0 -87
  246. package/tests/unit/components/ResponsiveIframe.spec.js +0 -20
  247. package/tests/unit/components/ScaleLegend.spec.js +0 -139
  248. package/tests/unit/components/SecretInput.spec.js +0 -81
  249. package/tests/unit/components/SelectableDropdown.spec.js +0 -160
  250. package/tests/unit/components/SharingOptions.spec.js +0 -125
  251. package/tests/unit/components/SharingOptionsLink.spec.js +0 -184
  252. package/tests/unit/components/SignUpForm.spec.js +0 -145
  253. package/tests/unit/components/SlideUpDown.spec.js +0 -59
  254. package/tests/unit/components/TinyPagination.spec.js +0 -46
  255. package/tests/unit/config.spec.js +0 -136
  256. package/tests/unit/datavisualisations/BarChart.spec.js +0 -63
  257. package/tests/unit/datavisualisations/ColumnChart.spec.js +0 -344
  258. package/tests/unit/datavisualisations/LineChart.spec.js +0 -155
  259. package/tests/unit/datavisualisations/StackedBarChart.spec.js +0 -294
  260. package/tests/unit/datavisualisations/StackedColumnChart.spec.js +0 -443
  261. package/tests/unit/i18n.spec.ts +0 -19
  262. package/tests/unit/main.spec.js +0 -82
  263. package/tests/unit/maps/ChoroplethMap.spec.js +0 -214
  264. package/tests/unit/maps/ChoroplethMapAnnotation.spec.ts +0 -186
  265. package/tests/unit/maps/SymbolMap.spec.js +0 -92
  266. package/tests/unit/require.spec.js +0 -22
  267. package/tests/unit/setup.js +0 -13
  268. package/tests/unit/utils/assets.spec.js +0 -61
  269. package/tests/unit/utils/clipboard.spec.js +0 -18
  270. package/tests/unit/utils/iframe-resizer.spec.js +0 -71
  271. package/tsconfig.json +0 -35
  272. package/vite.config.ts +0 -79
  273. package/vitest.config.ts +0 -19
@@ -1,28 +0,0 @@
1
- ---
2
- title: Digits Input
3
- description: An multiple-digits input to
4
- ---
5
-
6
- ## 6 digits
7
-
8
- By default, this components displays 6 digits and has no value.
9
-
10
- :::sample-card
11
- <div class="p-5">
12
- <digits-input />
13
- </div>
14
- :::
15
-
16
- ## 4 digits with initial value
17
-
18
- You can use any number of digits you like, and specify a `value` or a `v-model`.
19
- The value of the component is always converted to string to allow user to specify
20
- number starting with "0".
21
-
22
- :::sample-card
23
- <div class="p-5">
24
- <digits-input :length="4" value="2017" />
25
- </div>
26
- :::
27
-
28
- ::: api-table components/DigitsInput.vue :::
@@ -1,20 +0,0 @@
1
- ---
2
- title: Donate Form
3
- description: A form to encourage donations.
4
- tags: depracted
5
- ---
6
-
7
- We usualy put this form inside a modal.
8
-
9
- ::: sample-card
10
- <div class="p-4 text-center">
11
- <button class="btn btn-info fw-bold" @click="$refs.formModal.show()">
12
- Click to see the form
13
- </button>
14
- </div>
15
- <b-modal hide-footer lazy title="Support ICIJ" ref="formModal" size="lg" no-headings>
16
- <donate-form no-title></donate-form>
17
- </b-modal>
18
- :::
19
-
20
- ::: api-table components/DonateForm.vue :::
@@ -1,22 +0,0 @@
1
- ---
2
- title: Embed Form
3
- ---
4
-
5
- ::: sample-card
6
- <embed-form url="https://projects.icij.org/the-implant-files/graphics/#/device-related-incidents-in-europe" :height="330" no-preview class="card card-sm mx-auto my-4 pt-2"></embed-form>
7
- :::
8
-
9
- We usualy put this form inside a modal (here, with Boostrap Vue).
10
-
11
- ::: sample-card
12
- <div class="p-4 text-center">
13
- <button class="btn btn-info fw-bold" @click="$refs.formModal.show()">
14
- Click to see the form with preview
15
- </button>
16
- </div>
17
- <b-modal hide-footer lazy title="Embed form with a preview" ref="formModal" size="lg">
18
- <embed-form no-title url="https://projects.icij.org/the-implant-files/graphics/#/device-related-incidents-in-europe?no-embeddable-footer=1" :height="550"></embed-form>
19
- </b-modal>
20
- :::
21
-
22
- ::: api-table components/EmbedForm.vue :::
@@ -1,60 +0,0 @@
1
- ::: sample-card
2
- <template>
3
- <div class="p-4">
4
- <embeddable-footer class="position-relative card"></embeddable-footer>
5
- </div>
6
- </template>
7
- :::
8
-
9
- Main slot is displayed as "lead" text:
10
-
11
- ::: sample-card
12
- <div class="p-4">
13
- <embeddable-footer class="position-relative card">
14
- 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.
15
- </embeddable-footer>
16
- </div>
17
- :::
18
-
19
- A title slot can also be provider:
20
-
21
- ::: sample-card
22
- <div class="p-4">
23
- <embeddable-footer class="position-relative card">
24
- <template #title>
25
- <span class="small">Demo<br />Project</span>
26
- </template>
27
- </embeddable-footer>
28
- </div>
29
- :::
30
-
31
- This can be used for more complex structures:
32
-
33
- ::: sample-card
34
- <template>
35
- <div class="p-4">
36
- <embeddable-footer class="position-relative card">
37
- <div class="d-flex align-items-center">
38
- <div class="flew-grow-1 mr-2">
39
- This is an helpful text.
40
- </div>
41
- <b-button variant="info" pill size="sm" class="ml-auto mr-2">
42
- Help
43
- </b-button>
44
- </div>
45
- </embeddable-footer>
46
- </div>
47
- </template>
48
- :::
49
-
50
- ::: api-table components/EmbeddableFooter.vue :::
51
-
52
- <script>
53
- export default {
54
- data () {
55
- return {
56
- url: 'https://www.reddit.com/submit?url=https%3A%2F%2Ficij.org'
57
- }
58
- }
59
- }
60
- </script>
@@ -1,5 +0,0 @@
1
- ::: sample-card
2
- <follow-us-popover class="card card-xs my-4 mx-auto border border-primary"></follow-us-popover>
3
- :::
4
-
5
- ::: api-table components/FollowUsPopover.vue :::
@@ -1,21 +0,0 @@
1
- ---
2
- title: Generic Footer
3
- ---
4
-
5
- ::: sample-card
6
- <div class="full-width">
7
- <generic-footer class="card m-4"></generic-footer>
8
- </div>
9
- :::
10
-
11
- ::: api-table components/GenericFooter.vue :::
12
-
13
- <style lang="scss" scoped>
14
- .full-width {
15
- overflow: auto;
16
-
17
- .generic-footer {
18
- width: 100vw;
19
- }
20
- }
21
- </style>
@@ -1,24 +0,0 @@
1
- ---
2
- title: Generic Header
3
- ---
4
-
5
- A component to create header with generic features.
6
-
7
- ::: sample-card
8
- <div class="full-width card m-4">
9
- <generic-header no-headroom position="relative" class=""></generic-header>
10
- </div>
11
- :::
12
-
13
- ::: api-table components/GenericHeader.vue :::
14
-
15
- <style lang="scss">
16
- .full-width {
17
- overflow: auto;
18
-
19
- .generic-header {
20
- width: 100vw;
21
- max-width: 1000px;
22
- }
23
- }
24
- </style>
@@ -1,27 +0,0 @@
1
- ---
2
- title: Haptic Copy
3
- ---
4
-
5
- A button to copy text with an haptic feedback:
6
-
7
- :::sample-card
8
- <div class="p-2 text-center">
9
- <haptic-copy text="Lorem info sit amet" class="btn-info" />
10
- </div>
11
- :::
12
-
13
- :::sample-card
14
- <template>
15
- <div class="p-2 text-center">
16
- <haptic-copy
17
- class="btn-secondary"
18
- hide-label
19
- tooltip-placement="right"
20
- v-b-tooltip.hover.right
21
- title="Click to copy"
22
- text="Lorem secondary sit amet" />
23
- </div>
24
- </template>
25
- :::
26
-
27
- ::: api-table components/HapticCopy.vue :::
@@ -1,23 +0,0 @@
1
- ---
2
- title: IMDDB Header
3
- ---
4
-
5
- A component to create header with generic features.
6
-
7
- :::sample-card
8
- <div class="full-width">
9
- <imddb-header no-headroom position="relative" />
10
- </div>
11
- :::
12
-
13
- ::: api-table components/ImddbHeader.vue :::
14
-
15
- <style lang="scss">
16
- .full-width {
17
- overflow: auto;
18
-
19
- .imddb-header {
20
- min-width: 990px;
21
- }
22
- }
23
- </style>
@@ -1,44 +0,0 @@
1
- ---
2
- badge: unstable
3
- ---
4
-
5
- A quick way to create orginal legend:
6
-
7
- :::sample-card
8
- <div class="bg-light p-5">
9
- <ordinal-legend :data="icijOffices" value="paris" />
10
- </div>
11
- :::
12
-
13
- Or horizontal:
14
-
15
- :::sample-card
16
- <div class="bg-light p-5">
17
- <ordinal-legend :data="icijOffices" :highlight.sync="highlighthed" horizontal />
18
- </div>
19
- :::
20
-
21
- It also works with a custom marker path:
22
-
23
- :::sample-card
24
- <div class="bg-light p-5">
25
- <ordinal-legend :data="icijOffices" marker-path="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" />
26
- </div>
27
- :::
28
-
29
- ::: api-table components/OrdinalLegend.vue :::
30
-
31
- <script>
32
- export default {
33
- data () {
34
- return {
35
- highlighthed: 'dc',
36
- icijOffices: [
37
- { id: 'paris', color: '#6e40aa', label: 'Paris, France' },
38
- { id: 'sydney', color: '#ff5e63', label: 'Sydney, Australia' },
39
- { id: 'dc', color: '#aff05b', label: 'Washington DC, USA' }
40
- ]
41
- }
42
- }
43
- }
44
- </script>
@@ -1,86 +0,0 @@
1
- ---
2
- title: Range Picker
3
- description: A component to wrap an HTML element with a range picker overlay.
4
- ---
5
-
6
- :::sample-card
7
- <div class="bg-light p-5">
8
- <range-picker v-model="range">
9
- <div class="bg-white p-3 text-center text-uppercase">
10
- <b-badge>{{ range[0] }}</b-badge> - <b-badge>{{ range[1] }}</b-badge>
11
- </div>
12
- </range-picker>
13
- </div>
14
- :::
15
-
16
- You can add offsets (in pixels), a snap fraction or a variant (using Bootstrap theme):
17
-
18
- :::sample-card
19
- <div class="bg-light p-5">
20
- <range-picker v-model="range" :start-offset=30 :end-offset=30 :snap=.1 :precision=2 variant="info" hover rounded>
21
- <div class="bg-white p-3 text-center text-uppercase">
22
- <b-badge>{{ range[0] * 100 }}%</b-badge> - <b-badge>{{ range[1] * 100 }}%</b-badge>
23
- </div>
24
- </range-picker>
25
- </div>
26
- :::
27
-
28
- Or in combination with a column chart
29
-
30
- :::sample-card
31
- <div class="bg-light p-5">
32
- <range-picker :snap="1 / dataPerYear.length" variant="dark" v-model="rangeYears" class="py-2" hover>
33
- <column-chart :bar-padding=0 :bar-margin=20 :highlights="higlightedYears" :data="dataPerYear" :fixed-height="200" no-y-axis no-tooltips />
34
- </range-picker>
35
- </div>
36
- :::
37
-
38
- ::: api-table components/RangePicker.vue :::
39
-
40
- <script>
41
- import { range } from 'lodash'
42
-
43
- export default {
44
- data() {
45
- return {
46
- range: [.2, .8],
47
- rangeYears: [0, 1 / 5],
48
- dataPerYear: [
49
- {
50
- date: 2018,
51
- value: 120
52
- },
53
- {
54
- date: 2019,
55
- value: 100
56
- },
57
- {
58
- date: 2020,
59
- value: 80
60
- },
61
- {
62
- date: 2021,
63
- value: 110
64
- },
65
- {
66
- date: 2022,
67
- value: 130
68
- }
69
- ]
70
- }
71
- },
72
- computed: {
73
- rangeStartYear() {
74
- const start = this.rangeYears[0]
75
- return this.dataPerYear[Math.ceil(start * (this.dataPerYear.length - 1))].date
76
- },
77
- rangeEndYear() {
78
- const end = this.rangeYears[1]
79
- return this.dataPerYear[Math.floor(end * (this.dataPerYear.length - 1))].date
80
- },
81
- higlightedYears() {
82
- return range(this.rangeStartYear, this.rangeEndYear + 1)
83
- }
84
- }
85
- }
86
- </script>
@@ -1,13 +0,0 @@
1
- ---
2
- title: Responsive Iframe
3
- ---
4
-
5
- A component to create responsive iframe with Pym.js:
6
-
7
- ::: sample-card
8
- <div class="card m-4">
9
- <responsive-iframe url="https://projects.icij.org/the-implant-files/graphics/#/adverse-events?no-embeddable-footer=1"></responsive-iframe>
10
- </div>
11
- :::
12
-
13
- ::: api-table components/ResponsiveIframe.vue :::
@@ -1,65 +0,0 @@
1
- ---
2
- badge: unstable
3
- ---
4
-
5
- A quick way to create scale legend:
6
-
7
- :::sample-card
8
- <div class="bg-light p-5 text-center">
9
- <scale-legend :width="200" />
10
- </div>
11
- :::
12
-
13
- Or use different colors
14
-
15
- :::sample-card
16
- <div class="bg-light p-5 text-center">
17
- <scale-legend :width="200" color-scale-start="#fafa6e" color-scale-end="teal" />
18
- </div>
19
- :::
20
-
21
- And a non-continuous scale
22
-
23
- :::sample-card
24
- <div class="bg-light p-5 text-center">
25
- <scale-legend :width="200" :min="0" :max="6e4" :color-scale="thresholdScale" />
26
- </div>
27
- :::
28
-
29
- You can highlight a specific value:
30
-
31
- :::sample-card
32
- <div class="bg-light p-5 text-center">
33
- <scale-legend :width="200" :cursor-value="46" />
34
- </div>
35
- :::
36
-
37
- The cursor can be customized with slot:
38
-
39
- :::sample-card
40
- <div class="bg-light p-5 text-center">
41
- <scale-legend :width="200" :cursor-value="10">
42
- <template #cursor="{ value }">
43
- <div class="bg-dark text-light px-3 py-2">
44
- <span v-html="`${value}€`"></span>
45
- </div>
46
- </template>
47
- </scale-legend>
48
- </div>
49
- :::
50
-
51
- ::: api-table components/ScaleLegend.vue :::
52
-
53
- <script>
54
- import * as d3 from 'd3'
55
-
56
- export default {
57
- computed: {
58
- thresholdScale () {
59
- return d3.scaleThreshold()
60
- .domain([1e4, 2e4, 3e4, 4e4, 5e4])
61
- .range(["#D12229", "#F68A1E", "#FDE01A", "#007940", "#24408E", "#732982"])
62
- }
63
- }
64
- }
65
- </script>
@@ -1,12 +0,0 @@
1
- ---
2
- title: Secret Input
3
- description: A input form for secret value that must not be seen.
4
- ---
5
-
6
- :::sample-card
7
- <div class="p-4">
8
- <secret-input value="this is a secret passphrase 🕵️‍♀️" />
9
- </div>
10
- :::
11
-
12
- ::: api-table components/SecretInput.vue :::
@@ -1,156 +0,0 @@
1
- ---
2
- title: Selectable Dropdown
3
- ---
4
-
5
- A component to create an interactive list.
6
-
7
- :::sample-card
8
- <template>
9
- <div class="p-2 text-center">
10
- <selectable-dropdown v-model="country" :items="allCountries" />
11
- <button @click="country = 'Peru'" class="btn btn-outline-secondary mt-2 mx-2">Choose Peru</button>
12
- <button @click="country = 'France'" class="btn btn-outline-secondary mt-2 mx-2">Choose France</button>
13
- </div>
14
- </template>
15
- :::
16
-
17
- With a serializer:
18
-
19
- :::sample-card
20
- <template>
21
- <div class="p-2 text-center">
22
- <selectable-dropdown deactivate-keys :serializer="item => item.toUpperCase()" :items="allCountries"></selectable-dropdown>
23
- </div>
24
- </template>
25
- :::
26
-
27
- With multiple values:
28
-
29
- :::sample-card
30
- <template>
31
- <div class="p-2 text-center">
32
- <selectable-dropdown deactivate-keys v-model="countries" multiple :items="allCountries"></selectable-dropdown>
33
- <button class="btn btn-outline-secondary mt-2 mx-2" @click="countries = twoCountries">Choose two countries</button>
34
- </div>
35
- </template>
36
- :::
37
-
38
- With a dynamic list:
39
-
40
- :::sample-card
41
- <template>
42
- <div class="p-2 text-center">
43
- <selectable-dropdown deactivate-keys v-model="countries" multiple :items="filteredCountries"></selectable-dropdown>
44
- <button class="btn btn-outline-secondary mt-2 mx-2" @click="filteredCountries = treeCountries">
45
- Tree countries
46
- </button>
47
- <button class="btn btn-outline-secondary mt-2 mx-2" @click="filteredCountries = twoCountries">
48
- Two countries
49
- </button>
50
- </div>
51
- </template>
52
- :::
53
-
54
- ## Collection
55
-
56
- You can also use this component to build a list based from a collection of object:
57
-
58
- :::sample-card
59
- <template>
60
- <div class="p-2 text-center">
61
- <selectable-dropdown deactivate-keys multiple :serializer="item => item.label" :items="countryCollection"></selectable-dropdown>
62
- </div>
63
- </template>
64
- :::
65
-
66
- Some lists are not trivial and comparisons are not easy. For instance a games with similar name:
67
-
68
- ```js
69
- const streetFighters = [
70
- { label: 'Street Fighter (I)', uid: 'sf1' },
71
- { label: 'Street Fighter (II)', uid: 'sf2' },
72
- { label: 'Street Fighter (III)', uid: 'sf3' },
73
- { label: 'Street Fighter (IV)', uid: 'sf4' },
74
- { label: 'Street Fighter (V)', uid: 'sf5' },
75
- ]
76
- ```
77
-
78
- You might want to display a list and prove uniqueness using the `uid`:
79
-
80
- :::sample-card
81
- <template>
82
- <div class="p-2 text-center">
83
- <selectable-dropdown
84
- :eq="(item, other) => item.uid === other.uid"
85
- :items="streetFighters"
86
- :serializer="item => item.label"
87
- deactivate-keys
88
- multiple
89
- v-model="selectedGames"
90
- />
91
- Selected games: {{ selectedGames.join(', ') }}
92
- </div>
93
- </template>
94
- :::
95
-
96
- When you want to display a very big list, like the 36,369 towns in France, the virtual scroller will help you deal with large amount of data:
97
-
98
- :::sample-card
99
- <template>
100
- <div class="p-2 text-center">
101
- <selectable-dropdown
102
- :items="frenchCities"
103
- deactivate-keys
104
- multiple
105
- scrollerHeight="500px"
106
- v-model="selectedFrenchCities"
107
- />
108
- Selected cities: {{ selectedFrenchCities.join(', ') }}
109
- </div>
110
- </template>
111
- :::
112
-
113
- ::: api-table components/SelectableDropdown.vue :::
114
-
115
- <script>
116
- export default {
117
- data () {
118
- return {
119
- country: 'Peru',
120
- countries: [],
121
- filteredCountries: ['Spain', 'Peru', 'France'],
122
- twoCountries: ['Spain', 'France'],
123
- treeCountries: ['Spain', 'Peru', 'France'],
124
- allCountries: ['France', 'United States of America', 'Spain', 'Peru'],
125
- countryCollection: [
126
- { label: 'Spain' },
127
- { label: 'Peru' },
128
- { label: 'France' }
129
- ],
130
- selectedGames: [],
131
- streetFighters: [
132
- { label: 'Street Fighter', episode: 'I', uid: 'sf1' },
133
- { label: 'Street Fighter', episode: 'II', uid: 'sf2' },
134
- { label: 'Street Fighter', episode: 'III', uid: 'sf3' },
135
- { label: 'Street Fighter', episode: 'IV', uid: 'sf4' },
136
- { label: 'Street Fighter', episode: 'V', uid: 'sf5' },
137
- ],
138
- frenchCities:[],
139
- selectedFrenchCities:[]
140
- }
141
- },
142
- watch: {
143
- country () {
144
- console.log('Selected country:', this.country)
145
- },
146
- countries () {
147
- console.log('Selected countries:', this.countries.join(', '))
148
- }
149
- },
150
- async created(){
151
- const url = 'https://raw.githubusercontent.com/high54/Communes-France-JSON/master/france.json';
152
- const cities = await fetch(url).then(data=> data.json());
153
- this.frenchCities = [...new Set(cities.map(city=> city.Code_postal + ' - ' + city.Nom_commune).sort())];
154
- }
155
- }
156
- </script>
@@ -1,13 +0,0 @@
1
- ---
2
- title: Sharing Options
3
- ---
4
-
5
- ::: sample-card
6
- <div class="text-center">
7
- <div class="card card-body d-inline-block my-4">
8
- <sharing-options url="https://www.pirhoo.com/" class="justify-content-center"></sharing-options>
9
- </div>
10
- </div>
11
- :::
12
-
13
- ::: api-table components/SharingOptions.vue :::
@@ -1,36 +0,0 @@
1
- ---
2
- title: Sharing Options Link
3
- ---
4
-
5
- A link to share a page on a given social network:
6
-
7
- :::sample-card
8
- <div class="p-2 text-center">
9
- <sharing-options-link network="twitter" url="https://www.icij.org" class="btn btn-outline-primary mx-1" />
10
- <sharing-options-link network="facebook" url="https://www.icij.org" class="btn btn-outline-primary mx-1" />
11
- <sharing-options-link network="linkedin" url="https://www.icij.org" class="btn btn-outline-primary mx-1" />
12
- <sharing-options-link network="email" url="https://www.icij.org" class="btn btn-outline-primary mx-1" />
13
- </div>
14
- :::
15
-
16
- Without icon and a custom slot:
17
-
18
- :::sample-card
19
- <div class="p-2 text-center">
20
- <sharing-options-link network="twitter" url="https://www.icij.org" no-icon class="btn btn-info">
21
- Share twitter
22
- </sharing-options-link>
23
- </div>
24
- :::
25
-
26
- With a custom tag and a custom slot:
27
-
28
- :::sample-card
29
- <div class="p-2 text-center">
30
- <sharing-options-link network="twitter" title="Murmur Design System" tag="button" class="btn btn-warning" no-icon>
31
- Twitter Button
32
- </sharing-options-link>
33
- </div>
34
- :::
35
-
36
- ::: api-table components/SharingOptionsLink.vue :::
@@ -1,13 +0,0 @@
1
- :::sample-card
2
- <div class="m-4">
3
- <sign-up-form />
4
- </div>
5
- :::
6
-
7
- :::sample-card
8
- <div class="m-4">
9
- <sign-up-form variant="secondary" horizontal default-groups="group[9][1],group[9][131072]" />
10
- </div>
11
- :::
12
-
13
- ::: api-table components/SignUpForm.vue :::