@ilo-org/twig 0.17.0 → 0.18.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.
Files changed (255) hide show
  1. package/dist/components/accordion/accordion-item.twig +22 -0
  2. package/dist/components/accordion/accordion.behavior.js +1 -0
  3. package/dist/components/accordion/accordion.css +1 -0
  4. package/dist/components/accordion/accordion.twig +16 -0
  5. package/dist/components/accordion/accordion.wingsuit.yml +77 -0
  6. package/dist/components/breadcrumb/breadcrumb.behavior.js +1 -0
  7. package/dist/components/breadcrumb/breadcrumb.css +1 -0
  8. package/dist/components/breadcrumb/breadcrumb.twig +43 -0
  9. package/dist/components/breadcrumb/breadcrumb.wingsuit.yml +36 -0
  10. package/dist/components/button/button.css +1 -0
  11. package/dist/components/button/button.twig +23 -0
  12. package/dist/components/button/button.wingsuit.yml +114 -0
  13. package/dist/components/callout/callout.behavior.js +1 -0
  14. package/dist/components/callout/callout.css +1 -0
  15. package/dist/components/callout/callout.twig +41 -0
  16. package/dist/components/callout/callout.wingsuit.yml +72 -0
  17. package/dist/components/card/card.css +1 -0
  18. package/dist/components/card/card.twig +24 -0
  19. package/dist/components/card/card.wingsuit.yml +227 -0
  20. package/dist/components/card_data/card_data.twig +101 -0
  21. package/dist/components/card_data/card_data.wingsuit.yml +135 -0
  22. package/dist/components/card_detail/card_detail.twig +37 -0
  23. package/dist/components/card_detail/card_detail.wingsuit.yml +71 -0
  24. package/dist/components/card_factlist/card_factlist.twig +21 -0
  25. package/dist/components/card_factlist/card_factlist.wingsuit.yml +46 -0
  26. package/dist/components/card_feature/card_feature.twig +39 -0
  27. package/dist/components/card_feature/card_feature.wingsuit.yml +80 -0
  28. package/dist/components/card_multilink/card_multilink.twig +45 -0
  29. package/dist/components/card_multilink/card_multilink.wingsuit.yml +91 -0
  30. package/dist/components/card_promo/card_promo.twig +35 -0
  31. package/dist/components/card_promo/card_promo.wingsuit.yml +71 -0
  32. package/dist/components/card_stat/card_stat.twig +24 -0
  33. package/dist/components/card_stat/card_stat.wingsuit.yml +44 -0
  34. package/dist/components/card_text/card_text.twig +35 -0
  35. package/dist/components/card_text/card_text.wingsuit.yml +57 -0
  36. package/dist/components/cardgroup/cardgroup.css +1 -0
  37. package/dist/components/cardgroup/cardgroup.twig +46 -0
  38. package/dist/components/cardgroup/cardgroup.wingsuit.yml +158 -0
  39. package/dist/components/checkbox/checkbox.css +1 -0
  40. package/dist/components/checkbox/checkbox.twig +17 -0
  41. package/dist/components/checkbox/checkbox.wingsuit.yml +84 -0
  42. package/dist/components/container/container.css +1 -0
  43. package/dist/components/contextmenu/contextmenu.css +1 -0
  44. package/dist/components/contextmenu/contextmenu.twig +12 -0
  45. package/dist/components/contextmenu/contextmenu.wingsuit.yml +24 -0
  46. package/dist/components/credit/credit.css +1 -0
  47. package/dist/components/datacard/datacard.css +1 -0
  48. package/dist/components/datepicker/datepicker.css +1 -0
  49. package/dist/components/datepicker/datepicker.twig +20 -0
  50. package/dist/components/datepicker/datepicker.wingsuit.yml +72 -0
  51. package/dist/components/detailcard/detailcard.css +1 -0
  52. package/dist/components/dropdown/dropdown.css +1 -0
  53. package/dist/components/dropdown/dropdown.twig +22 -0
  54. package/dist/components/dropdown/dropdown.wingsuit.yml +101 -0
  55. package/dist/components/empty/empty.css +1 -0
  56. package/dist/components/factlistcard/factlistcard.css +1 -0
  57. package/dist/components/featurecard/featurecard.css +1 -0
  58. package/dist/components/fieldset/fieldset.css +1 -0
  59. package/dist/components/file-upload/file-upload.css +1 -0
  60. package/dist/components/fileupload/fileupload.behavior.js +1 -0
  61. package/dist/components/fileupload/fileupload.twig +20 -0
  62. package/dist/components/fileupload/fileupload.wingsuit.yml +95 -0
  63. package/dist/components/footer/footer.css +1 -0
  64. package/dist/components/footer/footer.twig +63 -0
  65. package/dist/components/footer/footer.wingsuit.yml +106 -0
  66. package/dist/components/form/fieldset.twig +70 -0
  67. package/dist/components/form/form.css +1 -0
  68. package/dist/components/form/form.twig +19 -0
  69. package/dist/components/form/form.wingsuit.yml +205 -0
  70. package/dist/components/form/formcontrol.twig +89 -0
  71. package/dist/components/form/input.twig +10 -0
  72. package/dist/components/formcontrol/formcontrol.css +1 -0
  73. package/dist/components/heading/heading.css +1 -0
  74. package/dist/components/hero/hero.css +1 -0
  75. package/dist/components/hero/hero.twig +65 -0
  76. package/dist/components/hero/hero.wingsuit.yml +182 -0
  77. package/dist/components/herocard/herocard.css +1 -0
  78. package/dist/components/herocard/herocard.twig +30 -0
  79. package/dist/components/herocard/herocard.wingsuit.yml +71 -0
  80. package/dist/components/icon/icon.behavior.js +1 -0
  81. package/dist/components/icon/icon.css +1 -0
  82. package/dist/components/icon/icon.twig +4 -0
  83. package/dist/components/icon/icon.wingsuit.yml +29 -0
  84. package/dist/components/image/image.css +1 -0
  85. package/dist/components/image/image.twig +29 -0
  86. package/dist/components/image/image.wingsuit.yml +57 -0
  87. package/dist/components/input/input.css +1 -0
  88. package/dist/components/link/link.css +1 -0
  89. package/dist/components/link/link.twig +8 -0
  90. package/dist/components/link/link.wingsuit.yml +36 -0
  91. package/dist/components/linklist/linklist.behavior.js +1 -0
  92. package/dist/components/linklist/linklist.css +1 -0
  93. package/dist/components/linklist/linklist.twig +26 -0
  94. package/dist/components/linklist/linklist.wingsuit.yml +55 -0
  95. package/dist/components/list/list-item.twig +6 -0
  96. package/dist/components/list/list.css +1 -0
  97. package/dist/components/list/list.twig +35 -0
  98. package/dist/components/list/list.wingsuit.yml +60 -0
  99. package/dist/components/list-item/list-item.wingsuit.yml +19 -0
  100. package/dist/components/loading/loading.behavior.js +1 -0
  101. package/dist/components/loading/loading.css +1 -0
  102. package/dist/components/loading/loading.twig +8 -0
  103. package/dist/components/loading/loading.wingsuit.yml +39 -0
  104. package/dist/components/localnav/localnav.twig +86 -0
  105. package/dist/components/localnav/localnav.wingsuit.yml +88 -0
  106. package/dist/components/logo/logo.css +1 -0
  107. package/dist/components/logogrid/logogrid.css +1 -0
  108. package/dist/components/logogrid/logogrid.twig +17 -0
  109. package/dist/components/logogrid/logogrid.wingsuit.yml +45 -0
  110. package/dist/components/modal/modal.behavior.js +1 -0
  111. package/dist/components/modal/modal.css +1 -0
  112. package/dist/components/modal/modal.twig +20 -0
  113. package/dist/components/modal/modal.wingsuit.yml +61 -0
  114. package/dist/components/multilinkcard/multilinkcard.css +1 -0
  115. package/dist/components/navigation/navigation.behavior.js +1 -0
  116. package/dist/components/navigation/navigation.css +1 -0
  117. package/dist/components/navigation/navigation.twig +171 -0
  118. package/dist/components/navigation/navigation.wingsuit.yml +127 -0
  119. package/dist/components/notification/notification.behavior.js +1 -0
  120. package/dist/components/notification/notification.css +1 -0
  121. package/dist/components/notification/notification.twig +18 -0
  122. package/dist/components/notification/notification.wingsuit.yml +59 -0
  123. package/dist/components/numberpicker/numberpicker.twig +16 -0
  124. package/dist/components/numberpicker/numberpicker.wingsuit.yml +92 -0
  125. package/dist/components/pagination/pagination.css +1 -0
  126. package/dist/components/pagination/pagination.twig +49 -0
  127. package/dist/components/pagination/pagination.wingsuit.yml +75 -0
  128. package/dist/components/picture/picture.twig +21 -0
  129. package/dist/components/polyfill/polyfill.twig +10 -0
  130. package/dist/components/profile/profile.css +1 -0
  131. package/dist/components/profile/profile.twig +26 -0
  132. package/dist/components/profile/profile.wingsuit.yml +46 -0
  133. package/dist/components/promocard/promocard.css +1 -0
  134. package/dist/components/radio/radio.css +1 -0
  135. package/dist/components/radio/radio.twig +23 -0
  136. package/dist/components/radio/radio.wingsuit.yml +84 -0
  137. package/dist/components/readmore/readmore.behavior.js +1 -0
  138. package/dist/components/readmore/readmore.css +1 -0
  139. package/dist/components/readmore/readmore.twig +16 -0
  140. package/dist/components/readmore/readmore.wingsuit.yml +37 -0
  141. package/dist/components/richtext/richtext.css +1 -0
  142. package/dist/components/richtext/richtext.twig +6 -0
  143. package/dist/components/richtext/richtext.wingsuit.yml +13 -0
  144. package/dist/components/search/search.behavior.js +1 -0
  145. package/dist/components/search/search.twig +31 -0
  146. package/dist/components/search/search.wingsuit.yml +90 -0
  147. package/dist/components/searchfield/searchfield.css +1 -0
  148. package/dist/components/socialmedia/socialmedia.css +1 -0
  149. package/dist/components/socialmedia/socialmedia.twig +17 -0
  150. package/dist/components/socialmedia/socialmedia.wingsuit.yml +59 -0
  151. package/dist/components/statcard/statcard.css +1 -0
  152. package/dist/components/table/table.behavior.js +1 -0
  153. package/dist/components/table/table.css +1 -0
  154. package/dist/components/table/table.twig +39 -0
  155. package/dist/components/table/table.wingsuit.yml +112 -0
  156. package/dist/components/tableofcontents/tableofcontents.behavior.js +1 -0
  157. package/dist/components/tableofcontents/tableofcontents.css +1 -0
  158. package/dist/components/tableofcontents/tableofcontents.twig +47 -0
  159. package/dist/components/tableofcontents/tableofcontents.wingsuit.yml +44 -0
  160. package/dist/components/tabs/tabs.behavior.js +1 -0
  161. package/dist/components/tabs/tabs.css +1 -0
  162. package/dist/components/tabs/tabs.twig +26 -0
  163. package/dist/components/tabs/tabs.wingsuit.yml +169 -0
  164. package/dist/components/tag/tag.behavior.js +1 -0
  165. package/dist/components/tag/tag.css +1 -0
  166. package/dist/components/tag/tag.wingsuit.yml +44 -0
  167. package/dist/components/tags/tag.twig +30 -0
  168. package/dist/components/tags/tags.twig +15 -0
  169. package/dist/components/tags/tags.wingsuit.yml +45 -0
  170. package/dist/components/textarea/textarea.css +1 -0
  171. package/dist/components/textarea/textarea.twig +14 -0
  172. package/dist/components/textarea/textarea.wingsuit.yml +127 -0
  173. package/dist/components/textcard/textcard.css +1 -0
  174. package/dist/components/textinput/textinput.css +1 -0
  175. package/dist/components/textinput/textinput.twig +14 -0
  176. package/dist/components/textinput/textinput.wingsuit.yml +87 -0
  177. package/dist/components/toggle/toggle.css +1 -0
  178. package/dist/components/toggle/toggle.twig +36 -0
  179. package/dist/components/toggle/toggle.wingsuit.yml +95 -0
  180. package/dist/components/tooltip/tooltip.behavior.js +1 -0
  181. package/dist/components/tooltip/tooltip.css +1 -0
  182. package/dist/components/tooltip/tooltip.twig +14 -0
  183. package/dist/components/tooltip/tooltip.wingsuit.yml +53 -0
  184. package/dist/components/video/video.behavior.js +16 -0
  185. package/dist/components/video/video.css +1 -0
  186. package/dist/components/video/video.twig +18 -0
  187. package/dist/components/video/video.wingsuit.yml +82 -0
  188. package/dist/components/video/videoplayer.twig +8 -0
  189. package/dist/global/styles.css +2 -0
  190. package/package.json +13 -9
  191. package/src/patterns/components/checkbox/checkbox.wingsuit.yml +1 -0
  192. package/src/patterns/components/dropdown/dropdown.wingsuit.yml +2 -1
  193. package/src/patterns/components/fileupload/fileupload.wingsuit.yml +1 -0
  194. package/src/patterns/components/list/list-item.twig +1 -1
  195. package/src/patterns/components/list/list-item.wingsuit.yml +1 -1
  196. package/src/patterns/components/list/list.twig +2 -2
  197. package/src/patterns/components/list/list.wingsuit.yml +11 -11
  198. package/src/patterns/components/navigation/navigation.wingsuit.yml +1 -0
  199. package/src/patterns/components/numberpicker/numberpicker.wingsuit.yml +1 -0
  200. package/src/patterns/components/radio/radio.wingsuit.yml +1 -0
  201. package/src/patterns/components/search/search.wingsuit.yml +1 -0
  202. package/src/patterns/components/tags/tag.twig +4 -4
  203. package/src/patterns/components/tags/tag.wingsuit.yml +4 -3
  204. package/src/patterns/components/tags/tags.twig +1 -1
  205. package/src/patterns/components/tags/tags.wingsuit.yml +3 -3
  206. package/src/patterns/components/textarea/textarea.wingsuit.yml +1 -0
  207. package/src/patterns/components/textinput/textinput.wingsuit.yml +1 -0
  208. package/src/patterns/components/toggle/toggle.wingsuit.yml +1 -0
  209. package/.browserslistrc +0 -4
  210. package/.eslintrc.js +0 -25
  211. package/.stylelintignore +0 -9
  212. package/.stylelintrc +0 -19
  213. package/.turbo/turbo-build:lib.log +0 -71
  214. package/CHANGELOG.md +0 -1036
  215. package/apps/storybook/assets.js +0 -10
  216. package/apps/storybook/main.js +0 -27
  217. package/apps/storybook/manager-head.html +0 -92
  218. package/apps/storybook/manager.js +0 -7
  219. package/apps/storybook/patterns/colors.stories.mdx +0 -23
  220. package/apps/storybook/patterns/intro.stories.mdx +0 -184
  221. package/apps/storybook/patterns/typeset.stories.mdx +0 -32
  222. package/apps/storybook/patterns/welcome.stories.mdx +0 -33
  223. package/apps/storybook/preview-body.html +0 -4
  224. package/apps/storybook/preview-head.html +0 -5
  225. package/apps/storybook/preview.js +0 -36
  226. package/apps/storybook/styles.scss +0 -25
  227. package/apps/storybook/theme.js +0 -46
  228. package/apps/storybook/welcome.scss +0 -131
  229. package/babel.config.js +0 -16
  230. package/copystyles.js +0 -16
  231. package/copytemplates.js +0 -27
  232. package/images/fao-logo.svg +0 -195
  233. package/images/favicon.ico +0 -0
  234. package/images/hero.jpg +0 -0
  235. package/images/ilo-dg.jpg +0 -0
  236. package/images/ilo-headquarters.jpg +0 -0
  237. package/images/large.jpg +0 -0
  238. package/images/logo_en_horizontal_blue.svg +0 -893
  239. package/images/media-file-poster.jpg +0 -0
  240. package/images/medium.jpg +0 -0
  241. package/images/publication.jpg +0 -0
  242. package/images/small.jpg +0 -0
  243. package/images/twig.svg +0 -6
  244. package/images/unhcr-logo.svg +0 -1
  245. package/images/unicef-logo.png +0 -0
  246. package/images/video-example.mp4 +0 -0
  247. package/images/wfp-logo.svg +0 -1
  248. package/images/who-logo.svg +0 -1
  249. package/images/youtube-video-poster.avif +0 -0
  250. package/importprefix.js +0 -20
  251. package/importsvgs.js +0 -5
  252. package/jest.config.js +0 -18
  253. package/postcss.config.js +0 -6
  254. package/rollup.config.js +0 -31
  255. package/wingsuit.config.js +0 -28
@@ -0,0 +1,227 @@
1
+ card:
2
+ namespace: Components/Cards
3
+ use: "@components/card/card.twig"
4
+ label: Card
5
+ description: Cards display prominent content of a page. This component is a wrapper around all of the card types in the design system except for the Hero Card. To use it, pass a `type` setting to the card and then pass the appropriate fields for that card type. For more information about the settings you can pass to each card type, see the documentation for that card.
6
+ visibility: storybook
7
+ fields:
8
+ cta:
9
+ type: object
10
+ label: cta
11
+ description: Renders a call to action button at the bottom of the card. This should include a `url` property for the link and a `label` property for the link text. Used by the `Feature Card`, `Promo Card` and `DataCard` types.
12
+ preview:
13
+ label: "Read more"
14
+ url: "https://www.ilo.org/"
15
+ dataset:
16
+ type: object
17
+ label: Dataset object
18
+ description: Array of Content (label, copy), Files object (optional headline, array of items with label and url) and Links object (optional headline, array of items with label and url). Only used by `Data Card`.
19
+ preview:
20
+ content:
21
+ items:
22
+ - label: Date of publication
23
+ copy: 17 March 2022
24
+ files:
25
+ headline: Files for download
26
+ items:
27
+ - label: PDF 3.2 MB
28
+ url: "https://www.ilo.org"
29
+ - label: EPUB 5.8 MB
30
+ url: "https://www.ilo.org"
31
+ - label: MOBI 2.4 MB
32
+ url: "https://www.ilo.org"
33
+ links:
34
+ headline: Also available in
35
+ items:
36
+ - label: English
37
+ url: "https://www.ilo.org/search?q=link"
38
+ - label: Español
39
+ url: "https://www.ilo.org/search?q=hyperlink"
40
+ - label: Français
41
+ url: "https://www.ilo.org/search?q=url"
42
+ date:
43
+ type: object
44
+ label: Date
45
+ description: Date copy (human and Unix). Used by all cards except for the `Promo Card` and `Stat Card`.
46
+ preview:
47
+ human: 20 September 2022
48
+ unix: 1670389200
49
+ dateExtra:
50
+ type: string
51
+ label: dateExtra
52
+ description: Strong date copy that could include other information such as the location of an event. Only used by `Details Card`.
53
+ preview: 20 September 2023 | Geneva
54
+ eyebrow:
55
+ type: string
56
+ label: Eyebrow
57
+ description: Text appears above the title providing extra context. Used by all cards except for the `Feature Card`, `Text Card`, `Detail Card`, `Promo Card` and `Data Card`.
58
+ preview: "Podcast"
59
+ image:
60
+ type: object
61
+ label: Image
62
+ description: Image settings for the card. This should include a `url`, which is an array of objects with an `src` property pointing to the image file and a `breakpoint` property which is either a number indicating the minimum viewport width at which the image should be displayed or a media query. It can also contain an `alt` property for the image's alt text and a `loading` property for the image's loading attribute. Used by `Detail Card`, `Feature Card`, `Multilink Card` and `Data Card`
63
+ preview:
64
+ alt: "Image alt text"
65
+ loading: "lazy"
66
+ url:
67
+ - breakpoint: "(min-width: 0px)"
68
+ src: "/images/small.jpg"
69
+ - breakpoint: "(min-width: 800px)"
70
+ src: "/images/medium.jpg"
71
+ - breakpoint: "(min-width: 1200px)"
72
+ src: "/images/large.jpg"
73
+ - breakpoint: "(min-width: 1440px)"
74
+ src: "/images/large.jpg"
75
+ intro:
76
+ type: string
77
+ label: Intro
78
+ description: Intro text usually follows the Title providing more information about the Card. Used by `Text Card`, `Detail Card`, `Promo Card`, `Multilink Card` and`Stat Card`.
79
+ preview: "A toxic combination of mutually-reinforcing crises – inflation, debt, food and fuel price rises, geopolitical tensions and conflict, climate change – are threatening to increase poverty, inequality and discrimination worldwide."
80
+ link:
81
+ type: string
82
+ label: Link
83
+ description: The primary link for the card, activated by clicking on the card itself. Used by all cards except for the `Data Card`, `Stat Card` and `Facts Card`.
84
+ preview: "https://www.ilo.org/"
85
+ linklist:
86
+ type: object
87
+ label: Link List
88
+ description: Displays a list of links. See the `Link` component for more details on settings. Only used by the `Multilink Card`.
89
+ preview:
90
+ linkgroup:
91
+ - links:
92
+ - label: Read the press release
93
+ url: "https://www.ilo.org"
94
+ - label: See the statement
95
+ url: "https://www.ilo.org"
96
+ - label: Remarks to G7 Openening Session
97
+ url: "https://www.ilo.org"
98
+ list:
99
+ type: object
100
+ label: List
101
+ description: List of facts or statistics. See the `List` component for a full list of options. Only used by `Factlist Card`.
102
+ preview:
103
+ settings:
104
+ - ordered: unordered
105
+ - alignment: default
106
+ items:
107
+ - content: "Global employment growth will be only 1.0 per cent in 2023, less than half the level in 2022."
108
+ id: "list1"
109
+ - content: "The labour market deterioration is mainly due to emerging geopolitical tensions and the Ukraine conflict."
110
+ id: "list2"
111
+ - content: "The current slowdown means that many workers will have to accept lower quality jobs, often at very low pay."
112
+ id: "list3"
113
+ title:
114
+ type: string
115
+ label: Title
116
+ description: The main title of the card. Used by all cards except for the `Data Card`.
117
+ preview: Can digital technology be an equality machine?
118
+ source:
119
+ type: object
120
+ label: Source
121
+ description: A stylized link used only by the `Stat Card` to indicate the source of a statistic.
122
+ preview:
123
+ label: "World Employment and Social Outlook: Trends 2023"
124
+ url: "https://www.ilo.org/global/research/global-reports/weso/WCMS_865332/lang--en/index.htm"
125
+ settings:
126
+ alignment:
127
+ type: select
128
+ label: Alignment
129
+ description: Positions the image to the right or to the left of the content when the card is displayed in a `wide` or `fluid` size. Has no effect if the card is displayed in a `standard` or `narrow` size. Only used by `Multilink Card`.
130
+ preview: "left"
131
+ options:
132
+ left: Left
133
+ right: Right
134
+ color:
135
+ type: select
136
+ label: Color
137
+ description: Used to set the color of `Stat Card`.
138
+ options:
139
+ turquoise: turquoise
140
+ green: green
141
+ yellow: yellow
142
+ blue: blue
143
+ preview: "blue"
144
+ columns:
145
+ type: select
146
+ label: columns
147
+ description: Displays the data in one or two columns when the size is set to `wide` or `fluid`. If not set, the card will appear as `one`. Only used by `Data Card`.
148
+ options:
149
+ one: one
150
+ two: two
151
+ preview: "one"
152
+ cornercut:
153
+ type: select
154
+ label: cornercut
155
+ description: Allows user to set the cornercut of the card. This is only used by the `Promo Card`.
156
+ required: false
157
+ preview: "true"
158
+ options:
159
+ "true": "true"
160
+ "false": "false"
161
+ size:
162
+ type: select
163
+ label: Size
164
+ description: Sets the size of the card. If a card has two options, `standard` and `fluid` are used and `standard` is the default. If it has three options, `narrow`, `wide` and `fluid` are used and `narrow` is the default. If it has all four options `standard` is the default. `fluid` makes the card stretch to fit the size of its container. If the size is set to `fluid`, other styles from `wide` will be used.
165
+ required: false
166
+ preview: "standard"
167
+ options:
168
+ standard: standard
169
+ narrow: narrow
170
+ wide: wide
171
+ fluid: fluid
172
+ theme:
173
+ type: select
174
+ label: Theme
175
+ description: Sets the card to appear as either light or dark. Used by all cards except for `Multilink Card`, `Data Card` and `Stat Card`.
176
+ required: false
177
+ preview: "dark"
178
+ options:
179
+ dark: Dark
180
+ light: Light
181
+ type:
182
+ type: select
183
+ label: Type
184
+ description: Sets the type of card to render.
185
+ preview: "feature"
186
+ options:
187
+ feature: Feature
188
+ text: Text
189
+ detail: Detail
190
+ promo: Promo
191
+ multilink: Multilink
192
+ data: Data
193
+ stat: Stat
194
+ factlist: Factlist
195
+ variants:
196
+ basic:
197
+ label: Default
198
+ feature:
199
+ label: Feature Card
200
+ settings:
201
+ type: feature
202
+ text:
203
+ label: Text Card
204
+ settings:
205
+ type: text
206
+ detail:
207
+ label: Detail Card
208
+ settings:
209
+ type: detail
210
+ promo:
211
+ label: Promo Card
212
+ settings:
213
+ type: promo
214
+ multilink:
215
+ label: Multilink Card
216
+ settings:
217
+ type: multilink
218
+ data:
219
+ label: Data Card
220
+ settings:
221
+ type: data
222
+ fields:
223
+ eyebrow: Flagship report
224
+ stat:
225
+ label: Stat Card
226
+ settings:
227
+ type: stat
@@ -0,0 +1,101 @@
1
+ {# card_data.twig #}
2
+
3
+ {% if not columns %}
4
+ {% set columns = "one" %}
5
+ {% endif %}
6
+
7
+ {# Different layout options to apply depending on if the card has an image
8
+ or if it has links. If it has two columns with image, then image goes on one side
9
+ and content goes on the other. If it has two columns witout image but links, then
10
+ links go on one side and the rest of the content goes on the other. Otherwise, flow
11
+ all content normally. #}
12
+ {% if image %}
13
+ {% set content = "with-image" %}
14
+ {% elseif not image and dataset.links %}
15
+ {% set content = "no-image-with-links" %}
16
+ {% else %}
17
+ {% set content = "default" %}
18
+ {% endif %}
19
+
20
+
21
+ <div class="ilo--card ilo--card__type__data ilo--card__size__{{size}} ilo--card__type__data__columns__{{columns}}">
22
+ <div class="ilo--card--wrap">
23
+ {% if not image and eyebrow %}
24
+ <div class="ilo--card--eyebrow">{{ eyebrow }}</div>
25
+ {% endif %}
26
+ <div class="ilo--card--content ilo--card--content__{{ content }}">
27
+ {% if image %}
28
+ <div class="ilo--card--area--image">
29
+ {% if eyebrow %}
30
+ <div class="ilo--card--eyebrow">{{ eyebrow }}</div>
31
+ {% endif %}
32
+ <div class="ilo--card--image">
33
+ {% include "@components/picture/picture.twig" with { image: image, class: "card" } %}
34
+ </div>
35
+ </div>
36
+ {% endif %}
37
+ {% if dataset.content %}
38
+ {% for item in dataset.content.items %}
39
+ <div class="ilo--card--area--content">
40
+ {% block content_item %}
41
+ <p class="ilo--card__type__data--content-label">{{ item.label }}</p>
42
+ <p class="ilo--card__type__data--content-copy">{{ item.copy }}</p>
43
+ {% endblock %}
44
+ </div>
45
+ {% endfor %}
46
+ {% endif %}
47
+ {% if dataset.files %}
48
+ <div class="ilo--card--area--files">
49
+ {% block area_files %}
50
+ <div class="ilo--card__type__data--content-files">
51
+ <p class="ilo--card__type__data--content-label">{{ dataset.files.headline }}</p>
52
+ {% for item in dataset.files.items %}
53
+ {% include "@components/button/button.twig" with {
54
+ type: "primary",
55
+ size: "small",
56
+ url: item.url,
57
+ label: item.label,
58
+ prefix: prefix
59
+ } only %}
60
+ {% endfor %}
61
+ </div>
62
+ {% endblock %}
63
+ </div>
64
+ {% endif %}
65
+ {% if dataset.cta %}
66
+ <div class="ilo--card--area--cta">
67
+ {% block area_cta %}
68
+ <div class="ilo--card__type__data--content-cta">
69
+ <p class="ilo--card__type__data--content-label">{{ dataset.cta.headline }}</p>
70
+ {% for item in dataset.cta.items %}
71
+ {% include "@components/button/button.twig" with {
72
+ type: "secondary",
73
+ size: "small",
74
+ url: item.url,
75
+ label: item.label,
76
+ prefix: prefix
77
+ } only %}
78
+ {% endfor %}
79
+ </div>
80
+ {% endblock %}
81
+ </div>
82
+ {% endif %}
83
+ {% if dataset.links %}
84
+ <div class="ilo--card--area--links">
85
+ {% block area_links %}
86
+ <div class="ilo--card__type__data--content-links">
87
+ <p class="ilo--card__type__data--content-label">{{ dataset.links.headline }}</p>
88
+ {% for item in dataset.links.items %}
89
+ {% include "@components/link/link.twig" with {
90
+ url: item.url,
91
+ label: item.label,
92
+ prefix: prefix
93
+ } only %}
94
+ {% endfor %}
95
+ </div>
96
+ {% endblock %}
97
+ </div>
98
+ {% endif %}
99
+ </div>
100
+ </div>
101
+ </div>
@@ -0,0 +1,135 @@
1
+ datacard:
2
+ namespace: Components/Cards
3
+ use: "@components/card_data/card_data.twig"
4
+ label: Data Card
5
+ description: A data card component for organising data about things like publications or events.
6
+ visibility: storybook
7
+ fields:
8
+ dataset:
9
+ type: object
10
+ label: Dataset object
11
+ description: Array of Content (label, copy), Files object (optional headline, array of items with label and url) and Links object (optional headline, array of items with label and url)
12
+ preview:
13
+ content:
14
+ items:
15
+ - label: Date of publication
16
+ copy: 17 March 2022
17
+ - label: Published by
18
+ copy: "ILO Department of Research"
19
+ files:
20
+ headline: Files for download
21
+ items:
22
+ - label: PDF 3.2 MB
23
+ url: "https://www.ilo.org"
24
+ - label: EPUB 5.8 MB
25
+ url: "https://www.ilo.org"
26
+ - label: MOBI 2.4 MB
27
+ url: "https://www.ilo.org"
28
+ cta:
29
+ headline: Read online
30
+ items:
31
+ - label: HTML Version
32
+ url: "https://www.ilo.org"
33
+ - label: InfoStories
34
+ url: "https://www.ilo.org/infostories/en-GB"
35
+ links:
36
+ headline: Also available in
37
+ items:
38
+ - label: English
39
+ url: "https://www.ilo.org/search?q=link"
40
+ - label: Español
41
+ url: "https://www.ilo.org/search?q=hyperlink"
42
+ - label: Dansk
43
+ url: "https://www.ilo.org/search?q=url"
44
+ - label: Deutsch
45
+ url: "https://www.ilo.org/search?q=url"
46
+ - label: Français
47
+ url: "https://www.ilo.org/search?q=url"
48
+ - label: Italiano
49
+ url: "https://www.ilo.org/search?q=url"
50
+ - label: Português
51
+ url: "https://www.ilo.org/search?q=url"
52
+ - label: Русский
53
+ url: "https://www.ilo.org/search?q=url"
54
+ - label: 中文
55
+ url: "https://www.ilo.org/search?q=url"
56
+ - label: العربية
57
+ url: "https://www.ilo.org/search?q=url"
58
+ - label: Ελληνικά
59
+ url: "https://www.ilo.org/search?q=url"
60
+ - label: Nederlands
61
+ url: "https://www.ilo.org/search?q=url"
62
+ eyebrow:
63
+ type: string
64
+ label: Eyebrow
65
+ description: Eyebrow copy
66
+ preview: Flagship report
67
+ image:
68
+ type: object
69
+ label: Image
70
+ description: Image settings for the card. This should include a `url`, which is an array of objects with an `src` property pointing to the image file and a `breakpoint` property which is either a number indicating the minimum viewport width at which the image should be displayed or a media query. It should also contain an `alt` property for the image's alt text.
71
+ preview:
72
+ alt: "Image alt text"
73
+ loading: "lazy"
74
+ url:
75
+ - breakpoint: "(min-width: 0px)"
76
+ src: "/images/publication.jpg"
77
+ settings:
78
+ size:
79
+ type: select
80
+ label: size
81
+ description: Sets the size of the card. If not set, the card will appear as `narrow`.
82
+ required: false
83
+ preview: narrow
84
+ options:
85
+ narrow: narrow
86
+ wide: wide
87
+ fluid: fluid
88
+ columns:
89
+ type: select
90
+ label: Columns
91
+ description: Displays the data in one or two columns. If not set, the card will appear as `one`.
92
+ required: false
93
+ preview: one
94
+ options:
95
+ one: one
96
+ two: two
97
+ variants:
98
+ default:
99
+ label: Default
100
+ no_image:
101
+ label: No image
102
+ fields:
103
+ image: false
104
+ two_columns:
105
+ label: Two columns
106
+ settings:
107
+ columns: two
108
+ size: wide
109
+ two_columns_no_image:
110
+ label: Two columns without image
111
+ settings:
112
+ columns: two
113
+ size: wide
114
+ fields:
115
+ image: false
116
+ two_columns_no_links:
117
+ label: Two columns without image or links
118
+ settings:
119
+ columns: two
120
+ size: wide
121
+ fields:
122
+ image: false
123
+ dataset:
124
+ content:
125
+ items:
126
+ - label: Date of publication
127
+ copy: 5 June 2023
128
+ files:
129
+ headline: Files for download
130
+ items:
131
+ - label: PDF 3.2 MB
132
+ url: "https://www.ilo.org"
133
+ - label: EPUB 5.8 MB
134
+ url: "https://www.ilo.org"
135
+ links: false
@@ -0,0 +1,37 @@
1
+ {#
2
+ DETAIL CARD COMPONENT
3
+ #}
4
+
5
+ <div class="ilo--card ilo--card__type__detail ilo--card__action ilo--card__size__{{size}} {% if isvideo %} ilo--card__isvideo {% endif %}">
6
+ <a class="ilo--card--link" href="{{link}}" title="{{title}}">
7
+ <span class="ilo--card--link--text">{{title}}</span>
8
+ </a>
9
+ <div class="ilo--card--wrap">
10
+ {% if image %}
11
+ <div class="ilo--card--image--wrapper">
12
+ {% include "@components/picture/picture.twig" with {
13
+ image: image,
14
+ class: "card"
15
+ }
16
+ %}
17
+ </div>
18
+ {% endif %}
19
+ <div class="ilo--card--content">
20
+ {% if eyebrow %}
21
+ <p class="ilo--card--eyebrow">{{eyebrow}}</p>
22
+ {% endif %}
23
+ {% if title %}
24
+ <h3 class="ilo--card--title">{{title}}</h3>
25
+ {% endif %}
26
+ {% if intro %}
27
+ <p class="ilo--card--intro">{{intro}}</p>
28
+ {% endif %}
29
+ {% if date %}
30
+ <time class="ilo--card--date" datetime="{{date.unix}}">{{date.human}}</time>
31
+ {% endif %}
32
+ {% if dateExtra %}
33
+ <p class="ilo--card--date-extra">{{dateExtra}}</p>
34
+ {% endif %}
35
+ </div>
36
+ </div>
37
+ </div>
@@ -0,0 +1,71 @@
1
+ detailcard:
2
+ namespace: Components/Cards
3
+ use: "@components/card_detail/card_detail.twig"
4
+ label: Detail Card
5
+ description: A detail card component for displaying links to content. It can have an image, title, link, intro text and date.
6
+ visibility: storybook
7
+ fields:
8
+ date:
9
+ type: object
10
+ label: Date
11
+ description: Date copy readable for both humans and machines
12
+ dateExtra:
13
+ type: string
14
+ label: dateExtra
15
+ description: Strong date copy that could include other information such as the location of an event.
16
+ preview: 20 September 2022 | Geneva
17
+ eyebrow:
18
+ type: string
19
+ label: Eyebrow
20
+ description: Eyebrow copy
21
+ preview: "Podcast"
22
+ image:
23
+ type: object
24
+ label: Image
25
+ description: Image settings for the card. This should include a `url`, which is an array of objects with an `src` property pointing to the image file and a `breakpoint` property which is either a number indicating the minimum viewport width at which the image should be displayed or a media query. It should also contain an `alt` property for the image's alt text.
26
+ preview:
27
+ alt: "Image alt text"
28
+ loading: "lazy"
29
+ url:
30
+ - breakpoint: "(min-width: 0px)"
31
+ src: "/images/small.jpg"
32
+ - breakpoint: "(min-width: 800px)"
33
+ src: "/images/medium.jpg"
34
+ - breakpoint: "(min-width: 1200px)"
35
+ src: "/images/large.jpg"
36
+ - breakpoint: "(min-width: 1440px)"
37
+ src: "/images/large.jpg"
38
+ intro:
39
+ type: string
40
+ label: Intro
41
+ description: Intro copy text
42
+ preview: "A toxic combination of mutually-reinforcing crises – inflation, debt, food and fuel price rises, geopolitical tensions and conflict, climate change – are threatening to increase poverty, inequality and discrimination worldwide."
43
+ link:
44
+ type: string
45
+ label: Link
46
+ description: Link field for the card
47
+ preview: "https://www.ilo.org/"
48
+ title:
49
+ type: string
50
+ label: Title
51
+ description: Title field for the card
52
+ preview: Can digital technology be an equality machine?
53
+ settings:
54
+ size:
55
+ type: select
56
+ label: size
57
+ description: Sets the size of the card. If not set, the card will appear as `narrow`.
58
+ required: false
59
+ preview: "narrow"
60
+ options:
61
+ narrow: narrow
62
+ wide: wide
63
+ fluid: fluid
64
+ isvideo:
65
+ type: select
66
+ label: Is a Video
67
+ description: Whether the card should display a video icon (for Feature card)
68
+ preview: "false"
69
+ options:
70
+ "true": "true"
71
+ "false": "false"
@@ -0,0 +1,21 @@
1
+ {#
2
+ FACT LIST CARD COMPONENT
3
+ #}
4
+ <div class="ilo--card ilo--card__type__factlist ilo--card__size__{{size}} ilo--card__theme__{{theme}}">
5
+ <div class="ilo--card--wrap">
6
+ <div class="ilo--card--content">
7
+ {% if title %}
8
+ <h3 class="ilo--card--title">{{title}}</h3>
9
+ {% endif %}
10
+ {% if list %}
11
+ {% include "@components/list/list.twig" with {
12
+ title: list.title,
13
+ ordered: list.ordered,
14
+ alignment: list.alignment,
15
+ items: list.items,
16
+ prefix: prefix,
17
+ } only %}
18
+ {% endif %}
19
+ </div>
20
+ </div>
21
+ </div>
@@ -0,0 +1,46 @@
1
+ factlistcard:
2
+ namespace: Components/Cards
3
+ use: "@components/card_factlist/card_factlist.twig"
4
+ label: Fact List Card
5
+ description: A Fact List Card is a card that displays a list of facts or statistics.
6
+ visibility: storybook
7
+ fields:
8
+ title:
9
+ type: string
10
+ label: Title
11
+ description: Title field for the card
12
+ preview: Can digital technology be an equality machine?
13
+ list:
14
+ type: object
15
+ label: List
16
+ description: List of facts or statistics. See the List component for a full list of options.
17
+ preview:
18
+ settings:
19
+ - ordered: unordered
20
+ - alignment: default
21
+ items:
22
+ - content: "Global employment growth will be only 1.0 per cent in 2023, less than half the level in 2022."
23
+ id: "list1"
24
+ - content: "The labour market deterioration is mainly due to emerging geopolitical tensions and the Ukraine conflict."
25
+ id: "list2"
26
+ - content: "The current slowdown means that many workers will have to accept lower quality jobs, often at very low pay."
27
+ id: "list3"
28
+ settings:
29
+ size:
30
+ type: select
31
+ label: Size
32
+ description: Sets the size of the card. If not set, the card will appear as `narrow`.
33
+ preview: "narrow"
34
+ options:
35
+ narrow: narrow
36
+ wide: wide
37
+ fluid: fluid
38
+ theme:
39
+ type: select
40
+ label: Theme
41
+ description: Sets the card to appear as either light or dark. If not set, the card will inherit the theme of its parent.
42
+ required: false
43
+ preview: "light"
44
+ options:
45
+ dark: Dark
46
+ light: Light
@@ -0,0 +1,39 @@
1
+ {#
2
+ FEATURE CARD COMPONENT
3
+ #}
4
+
5
+ <div class="ilo--card ilo--card__type__feature ilo--card__action ilo--card__theme__{{theme}} ilo--card__size__{{ size }} {% if isvideo %} ilo--card__isvideo {% endif %} {% if cta %} ilo--card__linklist {% endif %}">
6
+ <a class="ilo--card--link" href="{{link}}" title="{{title}}">
7
+ <span class="ilo--card--link--text">{{title}}</span>
8
+ </a>
9
+ <div class="ilo--card--wrap">
10
+ {% if image %}
11
+ <div class="ilo--card--image--wrapper">
12
+ {% include "@components/picture/picture.twig" with {
13
+ image: image,
14
+ class: "card"
15
+ }
16
+ %}
17
+ </div>
18
+ {% endif %}
19
+ <div class="ilo--card--content">
20
+ {% if eyebrow %}
21
+ <p class="ilo--card--eyebrow">{{eyebrow}}</p>
22
+ {% endif %}
23
+ {% if title %}
24
+ <h3 class="ilo--card--title">{{title}}</h3>
25
+ {% endif %}
26
+ {% if date %}
27
+ <time class="ilo--card--date" datetime="{{date.unix}}">{{date.human}}</time>
28
+ {% endif %}
29
+ {% if cta %}
30
+ {% include "@components/linklist/linklist.twig" with {
31
+ linkgroup: [{
32
+ links: [cta]
33
+ }],
34
+ prefix: prefix
35
+ } only %}
36
+ {% endif %}
37
+ </div>
38
+ </div>
39
+ </div>