testio-tailwind 0.1.0 → 0.2.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 (380) hide show
  1. package/.circleci/config.yml +217 -0
  2. package/.dockerignore +4 -0
  3. package/.eleventy.js +57 -57
  4. package/Dockerfile +27 -0
  5. package/LICENSE +21 -21
  6. package/README.md +43 -43
  7. package/icon-classes-extractor.js +29 -29
  8. package/index.html +399 -478
  9. package/package.json +66 -66
  10. package/src/_data/navigation.json +44 -44
  11. package/src/_data/site.js +12 -12
  12. package/src/_includes/card_popover.haml +7 -7
  13. package/src/_includes/example-header-customer.pug +99 -99
  14. package/src/_includes/example-header-manager.njk +53 -53
  15. package/src/_includes/example-header-tester.njk +99 -99
  16. package/src/_includes/example-header.njk +50 -50
  17. package/src/_includes/page-with-sidebar-nocode.njk +46 -46
  18. package/src/_includes/page-with-sidebar.njk +46 -46
  19. package/src/_includes/page.njk +38 -38
  20. package/src/_layouts/base.njk +83 -83
  21. package/src/_layouts/email-template.njk +90 -90
  22. package/src/_layouts/page-example-customer.njk +74 -74
  23. package/src/_layouts/page-example-manager.njk +74 -74
  24. package/src/_layouts/page-example-tester.njk +75 -75
  25. package/src/_layouts/page-example.njk +83 -83
  26. package/src/assets/images/Cirro-App-Defaultimage.svg +25 -25
  27. package/src/assets/images/arrow-down.svg +13 -13
  28. package/src/assets/images/arrow-left.svg +13 -13
  29. package/src/assets/images/arrow-right.svg +13 -13
  30. package/src/assets/images/arrow-thick-left.svg +13 -13
  31. package/src/assets/images/arrow-thick-right.svg +13 -13
  32. package/src/assets/images/arrow-up.svg +13 -13
  33. package/src/assets/images/at-sign.svg +12 -12
  34. package/src/assets/images/attachment-fallbackimage.svg +19 -19
  35. package/src/assets/images/attachment.svg +8 -8
  36. package/src/assets/images/bell-smile-xl.svg +18 -18
  37. package/src/assets/images/blocked.svg +7 -7
  38. package/src/assets/images/bug-chat-xl.svg +15 -15
  39. package/src/assets/images/bug-deceased-xl.svg +15 -15
  40. package/src/assets/images/bug-reproduction.svg +14 -14
  41. package/src/assets/images/bug-sad-xl.svg +13 -13
  42. package/src/assets/images/bug-search-xl.svg +18 -18
  43. package/src/assets/images/bug-sleeping-xl.svg +14 -14
  44. package/src/assets/images/bug-smile-xl.svg +9 -9
  45. package/src/assets/images/calendar.svg +15 -15
  46. package/src/assets/images/caret-down-centered.svg +6 -6
  47. package/src/assets/images/caret-down.svg +11 -11
  48. package/src/assets/images/caret-left-centered.svg +6 -6
  49. package/src/assets/images/caret-left.svg +6 -6
  50. package/src/assets/images/caret-right-centered.svg +6 -6
  51. package/src/assets/images/caret-right.svg +6 -6
  52. package/src/assets/images/caret-up-centered.svg +6 -6
  53. package/src/assets/images/caret-up.svg +11 -11
  54. package/src/assets/images/check-circle-filled-white.svg +9 -9
  55. package/src/assets/images/check-circle-filled.svg +12 -12
  56. package/src/assets/images/check-circle.svg +7 -7
  57. package/src/assets/images/check-selectable-items.svg +11 -11
  58. package/src/assets/images/check-thick-outline.svg +11 -11
  59. package/src/assets/images/check-thick.svg +6 -6
  60. package/src/assets/images/check.svg +17 -17
  61. package/src/assets/images/checkbox-background-black.svg +6 -6
  62. package/src/assets/images/checkbox-background-sm.svg +12 -12
  63. package/src/assets/images/checkbox-background-white.svg +6 -6
  64. package/src/assets/images/checkbox-background.svg +6 -6
  65. package/src/assets/images/checkbox-sm-checked.svg +11 -11
  66. package/src/assets/images/circle-empty-white.svg +6 -6
  67. package/src/assets/images/circle-sm-filled.svg +6 -6
  68. package/src/assets/images/clock.svg +12 -12
  69. package/src/assets/images/cross-circle-filled.svg +6 -6
  70. package/src/assets/images/cross-circle.svg +7 -7
  71. package/src/assets/images/cross-thick.svg +15 -15
  72. package/src/assets/images/cross.svg +7 -7
  73. package/src/assets/images/exclamation-circle-filled.svg +11 -11
  74. package/src/assets/images/exclamation-circle.svg +12 -12
  75. package/src/assets/images/feature-check.svg +9 -9
  76. package/src/assets/images/feature-cross.svg +10 -10
  77. package/src/assets/images/feature-draft.svg +14 -14
  78. package/src/assets/images/feature.svg +8 -8
  79. package/src/assets/images/file-image-plus-lg.svg +19 -19
  80. package/src/assets/images/file-image-plus-xl.svg +20 -20
  81. package/src/assets/images/format-bold.svg +11 -11
  82. package/src/assets/images/format-code.svg +12 -12
  83. package/src/assets/images/format-heading.svg +11 -11
  84. package/src/assets/images/format-indent-decrease.svg +11 -11
  85. package/src/assets/images/format-indent-increase.svg +11 -11
  86. package/src/assets/images/format-italic.svg +11 -11
  87. package/src/assets/images/format-link.svg +11 -11
  88. package/src/assets/images/format-list-bulleted.svg +17 -17
  89. package/src/assets/images/format-list-numbered.svg +17 -17
  90. package/src/assets/images/format-mark.svg +13 -13
  91. package/src/assets/images/format-quote.svg +17 -17
  92. package/src/assets/images/format-strikethrough.svg +11 -11
  93. package/src/assets/images/forward.svg +11 -11
  94. package/src/assets/images/google_signin.svg +22 -22
  95. package/src/assets/images/info-circle-cirro.svg +21 -21
  96. package/src/assets/images/info-circle-ux.svg +21 -21
  97. package/src/assets/images/lock.svg +15 -15
  98. package/src/assets/images/logo-mobile-cloud.svg +12 -12
  99. package/src/assets/images/logo-testio/testio_horizontal_black.svg +14 -14
  100. package/src/assets/images/logo-testio/testio_horizontal_icon_black.svg +25 -25
  101. package/src/assets/images/logo-testio/testio_horizontal_icon_purple_black.svg +27 -27
  102. package/src/assets/images/logo-testio/testio_horizontal_icon_purple_white.svg +25 -25
  103. package/src/assets/images/logo-testio/testio_horizontal_icon_white.svg +25 -25
  104. package/src/assets/images/logo-testio/testio_horizontal_purple_black.svg +9 -9
  105. package/src/assets/images/logo-testio/testio_horizontal_purple_white.svg +14 -14
  106. package/src/assets/images/logo-testio/testio_horizontal_purpleteal_black.svg +21 -21
  107. package/src/assets/images/logo-testio/testio_horizontal_purpleteal_white.svg +19 -19
  108. package/src/assets/images/logo-testio/testio_horizontal_teal_black.svg +14 -14
  109. package/src/assets/images/logo-testio/testio_horizontal_teal_white.svg +14 -14
  110. package/src/assets/images/logo-testio/testio_horizontal_tealpurple_black.svg +21 -21
  111. package/src/assets/images/logo-testio/testio_horizontal_tealpurple_white.svg +21 -21
  112. package/src/assets/images/logo-testio/testio_horizontal_white.svg +14 -14
  113. package/src/assets/images/logo-testio/testio_symbol_black_round.svg +11 -11
  114. package/src/assets/images/logo-testio/testio_symbol_purple.svg +15 -15
  115. package/src/assets/images/logo-testio/testio_symbol_purpleteal_round.svg +18 -18
  116. package/src/assets/images/logo-testio/testio_symbol_purpleteal_square.svg +18 -18
  117. package/src/assets/images/logo-testio/testio_symbol_teal.svg +15 -15
  118. package/src/assets/images/logo-testio/testio_symbol_tealpurple_round.svg +18 -18
  119. package/src/assets/images/logo-testio/testio_symbol_tealpurple_square.svg +18 -18
  120. package/src/assets/images/logo-testio/testio_symbol_white_round.svg +11 -11
  121. package/src/assets/images/logo-testio/testio_typo_black.svg +11 -11
  122. package/src/assets/images/logo-testio/testio_typo_white.svg +11 -11
  123. package/src/assets/images/logo-testio/testio_vertical_purpleteal_black.svg +19 -19
  124. package/src/assets/images/logo-testio/testio_vertical_purpleteal_white.svg +19 -19
  125. package/src/assets/images/logo-testio/testio_vertical_tealpurple_black.svg +19 -19
  126. package/src/assets/images/logo-testio/testio_vertical_tealpurple_white.svg +19 -19
  127. package/src/assets/images/message-feedback.svg +10 -10
  128. package/src/assets/images/message-question-filled.svg +6 -6
  129. package/src/assets/images/message-question.svg +8 -8
  130. package/src/assets/images/message.svg +11 -11
  131. package/src/assets/images/question-circle.svg +24 -24
  132. package/src/assets/images/radio-checked-black.svg +5 -5
  133. package/src/assets/images/redo.svg +7 -7
  134. package/src/assets/images/remove.svg +6 -6
  135. package/src/assets/images/search.svg +11 -11
  136. package/src/assets/images/seat.svg +14 -14
  137. package/src/assets/images/section.svg +8 -8
  138. package/src/assets/images/sendmessage.svg +15 -15
  139. package/src/assets/images/speaker.svg +10 -10
  140. package/src/assets/images/test-archived.svg +12 -12
  141. package/src/assets/images/test-automation.svg +8 -8
  142. package/src/assets/images/test-check.svg +9 -9
  143. package/src/assets/images/test-ended.svg +9 -9
  144. package/src/assets/images/test-failed.svg +10 -10
  145. package/src/assets/images/test-initialized.svg +10 -10
  146. package/src/assets/images/test-locked.svg +15 -15
  147. package/src/assets/images/test-plus.svg +11 -11
  148. package/src/assets/images/test-promoted.svg +9 -9
  149. package/src/assets/images/test-running.svg +9 -9
  150. package/src/assets/images/test-stopped.svg +17 -17
  151. package/src/assets/images/test.svg +8 -8
  152. package/src/assets/images/testcase.svg +10 -10
  153. package/src/assets/images/triangle-centered-down.svg +12 -12
  154. package/src/assets/images/triangle-centered-left.svg +12 -12
  155. package/src/assets/images/triangle-centered-right.svg +12 -12
  156. package/src/assets/images/triangle-centered-up.svg +12 -12
  157. package/src/assets/images/triangle-down.svg +5 -5
  158. package/src/assets/images/triangle-up.svg +5 -5
  159. package/src/assets/images/undo.svg +7 -7
  160. package/src/assets/images/verify-exclamation.svg +11 -11
  161. package/src/assets/scripts/app.js +150 -150
  162. package/src/assets/scripts/modules/colors.js +10 -10
  163. package/src/assets/scripts/modules/echarts_area.js +94 -94
  164. package/src/assets/scripts/modules/echarts_donut.js +85 -85
  165. package/src/assets/scripts/modules/echarts_exampledata.js +105 -105
  166. package/src/assets/scripts/modules/echarts_exampleseries.js +146 -146
  167. package/src/assets/scripts/modules/echarts_gauge.js +74 -74
  168. package/src/assets/scripts/modules/echarts_horizontal.js +80 -80
  169. package/src/assets/scripts/modules/echarts_legend.js +12 -12
  170. package/src/assets/scripts/modules/echarts_vertical.js +80 -80
  171. package/src/assets/stylesheets/app.css +77 -76
  172. package/src/assets/stylesheets/components/actionbar.css +41 -41
  173. package/src/assets/stylesheets/components/alerts.css +50 -50
  174. package/src/assets/stylesheets/components/banner_card.css +56 -56
  175. package/src/assets/stylesheets/components/buttons.css +192 -192
  176. package/src/assets/stylesheets/components/cards.css +148 -148
  177. package/src/assets/stylesheets/components/chat.css +265 -265
  178. package/src/assets/stylesheets/components/checkboxes_radiobuttons.css +173 -173
  179. package/src/assets/stylesheets/components/customer/customer_header.css +97 -97
  180. package/src/assets/stylesheets/components/customer/customer_productcards.css +212 -212
  181. package/src/assets/stylesheets/components/customer/customer_sidebar.css +76 -76
  182. package/src/assets/stylesheets/components/devices.css +77 -83
  183. package/src/assets/stylesheets/components/drawer.css +99 -99
  184. package/src/assets/stylesheets/components/dropdown.css +92 -92
  185. package/src/assets/stylesheets/components/emptystate_message.css +41 -41
  186. package/src/assets/stylesheets/components/form_card.css +20 -20
  187. package/src/assets/stylesheets/components/form_grid.css +11 -11
  188. package/src/assets/stylesheets/components/forms.css +106 -106
  189. package/src/assets/stylesheets/components/header.css +220 -220
  190. package/src/assets/stylesheets/components/iconfont.css +3303 -3303
  191. package/src/assets/stylesheets/components/icons.css +142 -142
  192. package/src/assets/stylesheets/components/images.css +27 -27
  193. package/src/assets/stylesheets/components/layout.css +37 -82
  194. package/src/assets/stylesheets/components/list_item.css +285 -281
  195. package/src/assets/stylesheets/components/lists.css +67 -67
  196. package/src/assets/stylesheets/components/loading_spinner.css +104 -104
  197. package/src/assets/stylesheets/components/manager/manager_header.css +50 -50
  198. package/src/assets/stylesheets/components/manager/manager_sidebar.css +76 -76
  199. package/src/assets/stylesheets/components/markdown_trix_styles.css +200 -200
  200. package/src/assets/stylesheets/components/metasidebar.css +56 -56
  201. package/src/assets/stylesheets/components/metrics.css +12 -12
  202. package/src/assets/stylesheets/components/modals.css +105 -105
  203. package/src/assets/stylesheets/components/notifications.css +154 -154
  204. package/src/assets/stylesheets/components/popover.css +120 -120
  205. package/src/assets/stylesheets/components/progress.css +69 -69
  206. package/src/assets/stylesheets/components/radio_tabs.css +59 -59
  207. package/src/assets/stylesheets/components/reset.css +26 -26
  208. package/src/assets/stylesheets/components/resultmodule.css +132 -132
  209. package/src/assets/stylesheets/components/search.css +110 -110
  210. package/src/assets/stylesheets/components/sections.css +97 -97
  211. package/src/assets/stylesheets/components/select.css +50 -50
  212. package/src/assets/stylesheets/components/select2.css +252 -252
  213. package/src/assets/stylesheets/components/selectable_token.css +223 -223
  214. package/src/assets/stylesheets/components/sidebar.css +480 -480
  215. package/src/assets/stylesheets/components/splitview.css +307 -304
  216. package/src/assets/stylesheets/components/tables.css +108 -108
  217. package/src/assets/stylesheets/components/tabs.css +121 -121
  218. package/src/assets/stylesheets/components/tags.css +28 -28
  219. package/src/assets/stylesheets/components/task_issue_item.css +78 -78
  220. package/src/assets/stylesheets/components/test_header.css +167 -0
  221. package/src/assets/stylesheets/components/test_item.css +89 -89
  222. package/src/assets/stylesheets/components/tester/tester_cards.css +143 -143
  223. package/src/assets/stylesheets/components/tester/tester_header.css +37 -37
  224. package/src/assets/stylesheets/components/tester/tester_sidebar.css +92 -92
  225. package/src/assets/stylesheets/components/toggleswitch.css +118 -118
  226. package/src/assets/stylesheets/components/tom_select.css +186 -186
  227. package/src/assets/stylesheets/components/trix_editor.css +174 -174
  228. package/src/assets/stylesheets/components/typography.css +81 -81
  229. package/src/assets/stylesheets/components/uploads.css +194 -194
  230. package/src/assets/stylesheets/components/user_item.css +57 -57
  231. package/src/assets/stylesheets/designsystem-styles.css +81 -81
  232. package/src/assets/stylesheets/postcss.config.js +16 -16
  233. package/src/assets/stylesheets/tailwind.config.js +331 -331
  234. package/src/humans.txt.njk +10 -10
  235. package/src/index.pug +16 -16
  236. package/src/pages/buttons/block.haml +39 -39
  237. package/src/pages/buttons/buttons-lg.haml +20 -20
  238. package/src/pages/buttons/buttons-sm.haml +41 -41
  239. package/src/pages/buttons/buttons-xl.haml +23 -23
  240. package/src/pages/buttons/buttons.haml +58 -58
  241. package/src/pages/buttons/buttons_input.haml +39 -39
  242. package/src/pages/buttons/dropdown-menu.haml +73 -73
  243. package/src/pages/buttons/index.njk +7 -7
  244. package/src/pages/buttons/info_popover.haml +32 -32
  245. package/src/pages/buttons/link-with-icon.haml +13 -13
  246. package/src/pages/buttons/square-buttons.haml +55 -55
  247. package/src/pages/charts/area.haml +215 -215
  248. package/src/pages/charts/bar_horizontal.haml +335 -335
  249. package/src/pages/charts/bar_vertical.haml +391 -391
  250. package/src/pages/charts/donut.haml +269 -269
  251. package/src/pages/charts/gauge.haml +214 -214
  252. package/src/pages/charts/index.njk +6 -6
  253. package/src/pages/ci.pug +8 -8
  254. package/src/pages/colors.pug +147 -147
  255. package/src/pages/components/alerts.haml +31 -31
  256. package/src/pages/components/banner_cards.haml +45 -45
  257. package/src/pages/components/cards.haml +111 -111
  258. package/src/pages/components/cards_customer.haml +487 -487
  259. package/src/pages/components/cards_fixedwidth.haml +135 -135
  260. package/src/pages/components/cards_iconheader.haml +57 -57
  261. package/src/pages/components/cards_tester.haml +159 -159
  262. package/src/pages/components/chat_window.haml +240 -240
  263. package/src/pages/components/comments_bug_preview.haml +29 -29
  264. package/src/pages/components/comments_chatmessages.haml +229 -229
  265. package/src/pages/components/descriptionlist.haml +47 -47
  266. package/src/pages/components/devices.haml +115 -115
  267. package/src/pages/components/drawer.haml +49 -49
  268. package/src/pages/components/drawer_filter.haml +76 -76
  269. package/src/pages/components/emptystate.haml +15 -15
  270. package/src/pages/components/index.njk +6 -6
  271. package/src/pages/components/issue-item.haml +18 -18
  272. package/src/pages/components/listitem_with_footer.haml +208 -208
  273. package/src/pages/components/listitems.haml +136 -136
  274. package/src/pages/components/listitems_badge.haml +36 -36
  275. package/src/pages/components/listitems_collapsable.haml +117 -117
  276. package/src/pages/components/listitems_nested.haml +50 -50
  277. package/src/pages/components/listitems_selectable.haml +59 -59
  278. package/src/pages/components/listitems_white.haml +82 -82
  279. package/src/pages/components/loading_spinner.haml +11 -11
  280. package/src/pages/components/metasidebar.haml +13 -13
  281. package/src/pages/components/modal_details.haml +68 -68
  282. package/src/pages/components/notification_center.haml +48 -48
  283. package/src/pages/components/notifications.haml +42 -42
  284. package/src/pages/components/profilethumb.haml +27 -27
  285. package/src/pages/components/progress.haml +23 -23
  286. package/src/pages/components/resultmodule.haml +150 -150
  287. package/src/pages/components/resultmodule_testcase.haml +125 -125
  288. package/src/pages/components/section_collapsable.haml +24 -24
  289. package/src/pages/components/splitview_item.haml +111 -111
  290. package/src/pages/components/splitview_item_collapsable.haml +65 -65
  291. package/src/pages/components/tables.haml +57 -57
  292. package/src/pages/components/tables_linked.haml +29 -29
  293. package/src/pages/components/tags.haml +12 -12
  294. package/src/pages/components/task_item.haml +33 -33
  295. package/src/pages/components/test_item.haml +119 -119
  296. package/src/pages/components/tester_levels.haml +70 -70
  297. package/src/pages/components/user_item.haml +49 -49
  298. package/src/pages/examples/layout-actionbar.haml +267 -267
  299. package/src/pages/examples/layout-basic.haml +28 -28
  300. package/src/pages/examples/layout-chat.haml +327 -327
  301. package/src/pages/examples/layout-customer.haml +189 -189
  302. package/src/pages/examples/layout-form-sidebar-actionbar-metasidebar.haml +312 -312
  303. package/src/pages/examples/layout-manager.haml +98 -98
  304. package/src/pages/examples/layout-metasidebar.haml +269 -269
  305. package/src/pages/examples/layout-sidebar-actionbar-metasidebar.haml +308 -308
  306. package/src/pages/examples/layout-sidebar-actionbar.haml +308 -308
  307. package/src/pages/examples/layout-sidebar.haml +296 -296
  308. package/src/pages/examples/layout-tester.haml +105 -105
  309. package/src/pages/examples/splitview-testcases.haml +477 -477
  310. package/src/pages/examples/splitview.haml +389 -389
  311. package/src/pages/forms/checkboxes.haml +64 -64
  312. package/src/pages/forms/checkboxes_devices.haml +45 -45
  313. package/src/pages/forms/form-addon.haml +16 -16
  314. package/src/pages/forms/form-card.haml +36 -36
  315. package/src/pages/forms/form-grid.haml +16 -16
  316. package/src/pages/forms/form_grid_narrow.haml +18 -18
  317. package/src/pages/forms/forms.haml +22 -22
  318. package/src/pages/forms/index.njk +6 -6
  319. package/src/pages/forms/radiobuttons.haml +50 -50
  320. package/src/pages/forms/rating_scale.haml +62 -62
  321. package/src/pages/forms/search.haml +71 -71
  322. package/src/pages/forms/select2.haml +72 -72
  323. package/src/pages/forms/select_native.haml +74 -74
  324. package/src/pages/forms/selectable_token.haml +49 -49
  325. package/src/pages/forms/selectable_token_browsers.haml +66 -66
  326. package/src/pages/forms/selectable_token_lg.haml +49 -49
  327. package/src/pages/forms/selectable_token_xl.haml +49 -49
  328. package/src/pages/forms/textarea.haml +24 -24
  329. package/src/pages/forms/toggle-buttons.haml +94 -94
  330. package/src/pages/forms/toggle-switch.haml +31 -31
  331. package/src/pages/forms/tomselect.haml +76 -76
  332. package/src/pages/forms/trix_editor.pug +10 -10
  333. package/src/pages/forms/uploads.pug +101 -101
  334. package/src/pages/icons/bug-icons.haml +75 -75
  335. package/src/pages/icons/index.njk +83 -83
  336. package/src/pages/icons/marketingicons.haml +15 -15
  337. package/src/pages/icons/status-icons.haml +38 -38
  338. package/src/pages/layout/app_layout.haml +27 -27
  339. package/src/pages/layout/index.njk +6 -6
  340. package/src/pages/layout/max_width.haml +49 -49
  341. package/src/pages/layout/spacing.haml +30 -30
  342. package/src/pages/navigation/header-manager.haml +73 -73
  343. package/src/pages/navigation/header-tester.haml +100 -100
  344. package/src/pages/navigation/header.haml +76 -76
  345. package/src/pages/navigation/header_customer.haml +77 -77
  346. package/src/pages/navigation/header_tester_epam.haml +108 -108
  347. package/src/pages/navigation/index.njk +7 -7
  348. package/src/pages/navigation/product_dropdown.haml +65 -65
  349. package/src/pages/navigation/radio_tabs.haml +22 -22
  350. package/src/pages/navigation/sidebar-manager.haml +46 -46
  351. package/src/pages/navigation/sidebar-tester-elements.haml +105 -105
  352. package/src/pages/navigation/sidebar-tester-seatlimitation.haml +108 -108
  353. package/src/pages/navigation/sidebar-tester.haml +75 -75
  354. package/src/pages/navigation/sidebar.haml +46 -46
  355. package/src/pages/navigation/sidebar_collapsables.haml +136 -136
  356. package/src/pages/navigation/sidebar_customer.haml +146 -146
  357. package/src/pages/navigation/tabnavigation.haml +12 -12
  358. package/src/pages/navigation/tabnavigation_actions.haml +21 -21
  359. package/src/pages/navigation/tabnavigation_pills.haml +12 -12
  360. package/src/pages/navigation/test-header-tester.haml +178 -0
  361. package/src/pages/typography/index.njk +7 -7
  362. package/src/pages/typography/link_with_icon.haml +12 -12
  363. package/src/pages/typography/linked_icon.haml +10 -10
  364. package/src/pages/typography/markdown.md +112 -112
  365. package/src/pages/typography/section_header.haml +25 -25
  366. package/src/pages/typography/section_header_actions.haml +59 -59
  367. package/src/pages/typography/text_with_icon.haml +12 -12
  368. package/src/pages/typography/trix_styles.haml +127 -127
  369. package/src/pages/typography/typography.haml +51 -51
  370. package/src/sitemap.xml.njk +13 -13
  371. package/src/static/app.compiled.css +536 -208
  372. package/src/static/app.compiled.css.map +1 -1
  373. package/src/static/browserconfig.xml +9 -9
  374. package/src/static/site.webmanifest +3 -3
  375. package/utils/collections.js +29 -29
  376. package/utils/filters.js +11 -11
  377. package/utils/markdown.js +9 -9
  378. package/utils/shortcodes.js +6 -6
  379. package/utils/transforms.js +19 -19
  380. package/webpack.config.js +24 -24
@@ -0,0 +1,217 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ gcp-cli: circleci/gcp-cli@3.3.0
5
+
6
+ executors:
7
+ cci-base:
8
+ docker:
9
+ - image: cimg/base:stable
10
+ cci-node:
11
+ docker:
12
+ - image: cimg/node:21.6.2
13
+ cci-deploy:
14
+ docker:
15
+ - image: cimg/deploy:2025.01
16
+
17
+ commands:
18
+ gcp-oidc-authenticate:
19
+ description: "Create GCP credentials file from CircleCI OIDC token and use it to authenticate to our GCP project"
20
+ steps:
21
+ - run:
22
+ name: Create GCP credentials file from OIDC token and use it for authentication
23
+ command: |
24
+ echo $CIRCLE_OIDC_TOKEN > ${HOME}/oidc_token.json # store OIDC token in a file
25
+ gcloud iam workload-identity-pools create-cred-config \
26
+ "projects/${GCP_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WIP_ID}/providers/${GCP_WIP_PROVIDER_ID}" \
27
+ --credential-source-file=${HOME}/oidc_token.json \
28
+ --service-account="${GCP_SERVICE_ACCOUNT_EMAIL}" \
29
+ --output-file=${HOME}/gcp_cred_config.json
30
+ gcloud auth login --brief --cred-file ${HOME}/gcp_cred_config.json
31
+ echo "export GOOGLE_APPLICATION_CREDENTIALS=${HOME}/gcp_cred_config.json" >> $BASH_ENV # configure ADC
32
+
33
+ jobs:
34
+ build:
35
+ executor: cci-base
36
+ environment:
37
+ IMAGE: eu.gcr.io/oi-tset/tw-designsystem
38
+ steps:
39
+ - checkout
40
+ - gcp-cli/install
41
+ - gcp-oidc-authenticate
42
+ - setup_remote_docker:
43
+ docker_layer_caching: true
44
+ - run:
45
+ name: Setup access to the registry
46
+ command: gcloud auth configure-docker eu.gcr.io,europe-west3-docker.pkg.dev --quiet
47
+ - run:
48
+ name: Build application image
49
+ command: docker build -t $IMAGE:$CIRCLE_SHA1 .
50
+ - run:
51
+ name: Push image to the registry
52
+ command: docker push $IMAGE:$CIRCLE_SHA1
53
+
54
+ test:
55
+ executor: cci-node
56
+ steps:
57
+ - checkout
58
+ - restore_cache:
59
+ keys:
60
+ - v1-dependencies-{{ checksum "package.json" }}
61
+ - v1-dependencies-
62
+ - run: npm install
63
+ - save_cache:
64
+ key: v1-dependencies-{{ checksum "package.json" }}
65
+ paths:
66
+ - node_modules
67
+
68
+ publish:
69
+ executor: cci-node
70
+ working_directory: ~/repo
71
+ steps:
72
+ - checkout
73
+ - gcp-cli/install
74
+ - gcp-oidc-authenticate
75
+ - run:
76
+ name: Fetch npmjs publishing token and auth with the registry
77
+ command: |
78
+ export npm_TOKEN=$(gcloud secrets versions access latest --secret="npmjs-publish-token" --project=oi-tset --quiet) && \
79
+ echo "//registry.npmjs.org/:_authToken=$npm_TOKEN" > ~/repo/.npmrc
80
+ - run:
81
+ name: Publish NPM package
82
+ command: |
83
+ PACKAGE_VERSION=$(node -p -e "require('./package.json').version")
84
+ PACKAGE_NAME=$(node -p -e "require('./package.json').name")
85
+ FOUND_VERSION=$(npm view "$PACKAGE_NAME" version)
86
+ if [ "$PACKAGE_VERSION" == "$FOUND_VERSION" ]; then
87
+ echo "Cannot publish over the previously published version: $FOUND_VERSION."
88
+ exit 0
89
+ fi
90
+ npm publish
91
+
92
+ deploy:
93
+ executor: cci-deploy
94
+ environment:
95
+ HELM_CHART: tw-designsystem
96
+ GKE_CLUSTER: private-cluster
97
+ IMAGE: eu.gcr.io/oi-tset/tw-designsystem
98
+ steps:
99
+ - checkout
100
+ - gcp-cli/install
101
+ - gcp-oidc-authenticate
102
+ - run:
103
+ name: Copy deploy script
104
+ command: gsutil cp gs://helm_repo/scripts/deploy_from_helm_repo.sh .
105
+ - run:
106
+ name: Install required plugin
107
+ command: gcloud components install gke-gcloud-auth-plugin --quiet
108
+ - run:
109
+ name: Helm upgrade
110
+ command: bash ./deploy_from_helm_repo.sh
111
+ no_output_timeout: 25m
112
+ - run:
113
+ name: Add tag to the image in registry
114
+ command: gcloud container images add-tag $IMAGE:$CIRCLE_SHA1 $IMAGE:$CIRCLE_BRANCH --quiet
115
+
116
+ defectdojo:
117
+ executor: cci-base
118
+ environment:
119
+ IMAGE: eu.gcr.io/oi-tset/tw-designsystem
120
+ DEFECTDOJO_URL: defectdojo.testcloud.io
121
+ DEFECTDOJO_PRODUCT: Tailwind Designsystem
122
+ DEFECTDOJO_ENG_NAME: CircleCI Scan
123
+ circleci_ip_ranges: true
124
+ steps:
125
+ - checkout
126
+ - gcp-cli/install
127
+ - gcp-oidc-authenticate
128
+ - run:
129
+ name: Install Trivy and Gitleaks
130
+ command: |
131
+ curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b $HOME/bin
132
+ curl -L https://github.com/gitleaks/gitleaks/releases/download/v8.18.2/gitleaks_8.18.2_linux_x64.tar.gz -o $HOME/gitleaks.tar.gz
133
+ tar -xzf $HOME/gitleaks.tar.gz
134
+ - run:
135
+ name: Scans
136
+ command: |
137
+ trivy fs --exit-code 0 --no-progress --format json --output filesystem-scan.json .
138
+ trivy i --exit-code 0 --no-progress --format json --output image-scan.json $IMAGE:main
139
+ ./gitleaks detect --no-git --exit-code 0 --report-format json --report-path gitleaks.json
140
+ - run:
141
+ name: Send data to DefectDojo - Trivy filesystem scan
142
+ command: |
143
+ gcloud secrets versions access latest --secret="defectdojo_token" --project=oi-tset --quiet > DEFECTDOJO_TOKEN
144
+
145
+ curl --fail --request POST https://$DEFECTDOJO_URL/api/v2/reimport-scan/ \
146
+ --header "Authorization: Token $(< DEFECTDOJO_TOKEN)" \
147
+ --form "active=true" \
148
+ --form "auto_create_context=true" \
149
+ --form "branch_tag=${CIRCLE_BRANCH}" \
150
+ --form "commit_hash=${CIRCLE_SHA1}" \
151
+ --form "close_old_findings=true" \
152
+ --form "scan_type=Trivy Scan" \
153
+ --form "test_title=Trivy application scan" \
154
+ --form "engagement_name=${DEFECTDOJO_ENG_NAME}" \
155
+ --form "product_name=${DEFECTDOJO_PRODUCT}" \
156
+ --form "file=@filesystem-scan.json"
157
+ - run:
158
+ name: Send data to DefectDojo - Trivy image scan
159
+ command: |
160
+ curl --fail --request POST https://$DEFECTDOJO_URL/api/v2/reimport-scan/ \
161
+ --header "Authorization: Token $(< DEFECTDOJO_TOKEN)" \
162
+ --form "active=true" \
163
+ --form "auto_create_context=true" \
164
+ --form "branch_tag=${CIRCLE_BRANCH}" \
165
+ --form "commit_hash=${CIRCLE_SHA1}" \
166
+ --form "close_old_findings=true" \
167
+ --form "scan_type=Trivy Scan" \
168
+ --form "test_title=Trivy container image scan" \
169
+ --form "engagement_name=${DEFECTDOJO_ENG_NAME}" \
170
+ --form "product_name=${DEFECTDOJO_PRODUCT}" \
171
+ --form "file=@image-scan.json"
172
+ - run:
173
+ name: Send data to DefectDojo - Gitleaks scan
174
+ command: |
175
+ curl --fail --request POST https://$DEFECTDOJO_URL/api/v2/reimport-scan/ \
176
+ --header "Authorization: Token $(< DEFECTDOJO_TOKEN)" \
177
+ --form "active=true" \
178
+ --form "auto_create_context=true" \
179
+ --form "branch_tag=${CIRCLE_BRANCH}" \
180
+ --form "commit_hash=${CIRCLE_SHA1}" \
181
+ --form "close_old_findings=true" \
182
+ --form "scan_type=Gitleaks Scan" \
183
+ --form "test_title=Gitleaks Scan" \
184
+ --form "engagement_name=${DEFECTDOJO_ENG_NAME}" \
185
+ --form "product_name=${DEFECTDOJO_PRODUCT}" \
186
+ --form "file=@gitleaks.json"
187
+
188
+ workflows:
189
+ workflow:
190
+ jobs:
191
+ - build:
192
+ context: gcp-production
193
+ - test
194
+ - publish:
195
+ requires:
196
+ - test
197
+ filters:
198
+ branches:
199
+ only: main
200
+ context: gcp-production
201
+ - deploy:
202
+ requires:
203
+ - build
204
+ filters:
205
+ branches:
206
+ only: main
207
+ context: gcp-production
208
+ security_scan:
209
+ jobs:
210
+ - defectdojo:
211
+ context: gcp-production
212
+ triggers:
213
+ - schedule:
214
+ cron: "20 4 * * 0"
215
+ filters:
216
+ branches:
217
+ only: main
package/.dockerignore ADDED
@@ -0,0 +1,4 @@
1
+ node_modules
2
+ npm-debug.log
3
+ Dockerfile
4
+ .dockerignore
package/.eleventy.js CHANGED
@@ -1,57 +1,57 @@
1
- const filters = require('./utils/filters.js')
2
- const transforms = require('./utils/transforms.js')
3
- const collections = require('./utils/collections.js')
4
- const markdownIt = require('./utils/markdown.js');
5
- const appConfigs = {
6
- cirro: { output: "dist/" }
7
- }
8
-
9
- module.exports = function (eleventyConfig) {
10
- // Folders to copy to build dir (See. 1.1)
11
- eleventyConfig.addPassthroughCopy({
12
- "src/static/site.webmanifest": "",
13
- "src/static/*": "static",
14
- "src/assets/fonts/*": "assets/fonts",
15
- "src/static/downloads/*": "downloads",
16
- "src/assets/images/*": "assets/images"
17
- })
18
-
19
- // Filters
20
- Object.keys(filters).forEach((filterName) => {
21
- eleventyConfig.addFilter(filterName, filters[filterName])
22
- })
23
-
24
- // Transforms
25
- Object.keys(transforms).forEach((transformName) => {
26
- eleventyConfig.addTransform(transformName, transforms[transformName])
27
- })
28
-
29
- // Collections
30
- Object.keys(collections).forEach((collectionName) => {
31
- eleventyConfig.addCollection(collectionName, collections[collectionName])
32
- })
33
-
34
- // This allows Eleventy to watch for file changes during local development.
35
- eleventyConfig.setUseGitIgnore(false);
36
-
37
- eleventyConfig.addShortcode('tag', (arg) => `<div>${arg}</div>`);
38
- eleventyConfig.addPairedShortcode('tag', (children) => `<div class="markdown">${children}</div>`);
39
-
40
- let haml = require("hamljs");
41
- eleventyConfig.setLibrary("haml", haml);
42
- eleventyConfig.setLibrary('md', markdownIt);
43
-
44
- return {
45
- dir: {
46
- input: "src",
47
- output: appConfigs[process.env.APP].output,
48
- includes: "_includes",
49
- layouts: "_layouts"
50
- },
51
- templateFormats: ["html", "md", "njk", "pug", "haml", "png", "svg", "eot", "ttf", "woff", "woff2", "jpg", "otf"],
52
- htmlTemplateEngine: "njk",
53
-
54
- // 1.1 Enable eleventy to pass dirs specified above
55
- passthroughFileCopy: true
56
- };
57
- };
1
+ const filters = require('./utils/filters.js')
2
+ const transforms = require('./utils/transforms.js')
3
+ const collections = require('./utils/collections.js')
4
+ const markdownIt = require('./utils/markdown.js');
5
+ const appConfigs = {
6
+ cirro: { output: "dist/" }
7
+ }
8
+
9
+ module.exports = function (eleventyConfig) {
10
+ // Folders to copy to build dir (See. 1.1)
11
+ eleventyConfig.addPassthroughCopy({
12
+ "src/static/site.webmanifest": "",
13
+ "src/static/*": "static",
14
+ "src/assets/fonts/*": "assets/fonts",
15
+ "src/static/downloads/*": "downloads",
16
+ "src/assets/images/*": "assets/images"
17
+ })
18
+
19
+ // Filters
20
+ Object.keys(filters).forEach((filterName) => {
21
+ eleventyConfig.addFilter(filterName, filters[filterName])
22
+ })
23
+
24
+ // Transforms
25
+ Object.keys(transforms).forEach((transformName) => {
26
+ eleventyConfig.addTransform(transformName, transforms[transformName])
27
+ })
28
+
29
+ // Collections
30
+ Object.keys(collections).forEach((collectionName) => {
31
+ eleventyConfig.addCollection(collectionName, collections[collectionName])
32
+ })
33
+
34
+ // This allows Eleventy to watch for file changes during local development.
35
+ eleventyConfig.setUseGitIgnore(false);
36
+
37
+ eleventyConfig.addShortcode('tag', (arg) => `<div>${arg}</div>`);
38
+ eleventyConfig.addPairedShortcode('tag', (children) => `<div class="markdown">${children}</div>`);
39
+
40
+ let haml = require("hamljs");
41
+ eleventyConfig.setLibrary("haml", haml);
42
+ eleventyConfig.setLibrary('md', markdownIt);
43
+
44
+ return {
45
+ dir: {
46
+ input: "src",
47
+ output: appConfigs[process.env.APP].output,
48
+ includes: "_includes",
49
+ layouts: "_layouts"
50
+ },
51
+ templateFormats: ["html", "md", "njk", "pug", "haml", "png", "svg", "eot", "ttf", "woff", "woff2", "jpg", "otf"],
52
+ htmlTemplateEngine: "njk",
53
+
54
+ // 1.1 Enable eleventy to pass dirs specified above
55
+ passthroughFileCopy: true
56
+ };
57
+ };
package/Dockerfile ADDED
@@ -0,0 +1,27 @@
1
+ FROM europe-west3-docker.pkg.dev/oi-tset/hub/node:18-alpine
2
+
3
+ ARG APP_UID=5123
4
+ ARG USER=appuser
5
+ ARG GROUP=appgroup
6
+
7
+ RUN addgroup -S ${GROUP} -g $APP_UID && adduser -S ${USER} -G ${GROUP} -u $APP_UID
8
+
9
+ USER ${USER}
10
+
11
+ WORKDIR /home/${USER}/app
12
+
13
+ COPY --chown=${USER}:${GROUP} package*.json ./
14
+
15
+ RUN mkdir -p /home/${USER}/app/node_modules && \
16
+ npm install && \
17
+ npm install http-server
18
+
19
+ COPY --chown=${USER}:${GROUP} . ./
20
+
21
+ RUN npm run build
22
+
23
+ EXPOSE 8080
24
+
25
+ CMD [ "/home/appuser/app/node_modules/http-server/bin/http-server", "dist" ]
26
+
27
+ HEALTHCHECK NONE
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Chris Collins
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Chris Collins
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,43 +1,43 @@
1
- # Translation Space Designsystem
2
-
3
- [![CircleCI](https://dl.circleci.com/status-badge/img/gh/test-IO/translation-space-designsystem/tree/main.svg?style=svg&circle-token=60adcec1eb4c2df56fede063ffe512971f103889)](https://dl.circleci.com/status-badge/redirect/gh/test-IO/translation-space-designsystem/tree/main)
4
-
5
- --- (Live deployment)
6
-
7
-
8
- ## Development
9
-
10
- ### Requirements
11
-
12
- 1. Node.js
13
- 2. NPM (comes with Node.js)
14
-
15
- ### Install dependencies
16
-
17
- ```sh
18
- npm i
19
- ```
20
-
21
- ### Working locally
22
-
23
- Starts watch tasks to compile when changes detected
24
-
25
- ```sh
26
- npm start
27
- ```
28
-
29
- ### Creating a production build
30
-
31
- Minify HTML, compress JS, inline and minify CSS.
32
-
33
- ```sh
34
- npm run build
35
- ```
36
-
37
- ---
38
-
39
- ### Publishing to registry
40
-
41
- * Make sure to update the version number in package.json file for every pull request
42
- * CircleCI will take care of publishing to npm and also adding a tag when the commits are merged to master
43
- * CircleCI will publish it only if the package version has been increased
1
+ # Translation Space Designsystem
2
+
3
+ [![CircleCI](https://dl.circleci.com/status-badge/img/gh/test-IO/translation-space-designsystem/tree/main.svg?style=svg&circle-token=60adcec1eb4c2df56fede063ffe512971f103889)](https://dl.circleci.com/status-badge/redirect/gh/test-IO/translation-space-designsystem/tree/main)
4
+
5
+ --- (Live deployment)
6
+
7
+
8
+ ## Development
9
+
10
+ ### Requirements
11
+
12
+ 1. Node.js
13
+ 2. NPM (comes with Node.js)
14
+
15
+ ### Install dependencies
16
+
17
+ ```sh
18
+ npm i
19
+ ```
20
+
21
+ ### Working locally
22
+
23
+ Starts watch tasks to compile when changes detected
24
+
25
+ ```sh
26
+ npm start
27
+ ```
28
+
29
+ ### Creating a production build
30
+
31
+ Minify HTML, compress JS, inline and minify CSS.
32
+
33
+ ```sh
34
+ npm run build
35
+ ```
36
+
37
+ ---
38
+
39
+ ### Publishing to registry
40
+
41
+ * Make sure to update the version number in package.json file for every pull request
42
+ * CircleCI will take care of publishing to npm and also adding a tag when the commits are merged to master
43
+ * CircleCI will publish it only if the package version has been increased
@@ -1,29 +1,29 @@
1
- const fs = require('fs');
2
- const readline = require('readline');
3
-
4
- async function extractIconClasses(app) {
5
- const fileStream = fs.createReadStream('src/assets/stylesheets/components/iconfont.css');
6
-
7
- const rl = readline.createInterface({
8
- input: fileStream,
9
- crlfDelay: Infinity
10
- });
11
-
12
- const iconClasses = [];
13
-
14
- for await (const line of rl) {
15
- if (line.startsWith('.icon-'))
16
- iconClasses.push(line.split(':')[0].replace('.', ''));
17
- }
18
-
19
- fs.writeFile('src/static/icons-' + app + '.json', JSON.stringify(iconClasses), err => {
20
- if (err) {
21
- console.log('Error writing file', err)
22
- } else {
23
- console.log('Successfully extracted icon classes')
24
- }
25
- });
26
- }
27
-
28
- extractIconClasses('cirro');
29
-
1
+ const fs = require('fs');
2
+ const readline = require('readline');
3
+
4
+ async function extractIconClasses(app) {
5
+ const fileStream = fs.createReadStream('src/assets/stylesheets/components/iconfont.css');
6
+
7
+ const rl = readline.createInterface({
8
+ input: fileStream,
9
+ crlfDelay: Infinity
10
+ });
11
+
12
+ const iconClasses = [];
13
+
14
+ for await (const line of rl) {
15
+ if (line.startsWith('.icon-'))
16
+ iconClasses.push(line.split(':')[0].replace('.', ''));
17
+ }
18
+
19
+ fs.writeFile('src/static/icons-' + app + '.json', JSON.stringify(iconClasses), err => {
20
+ if (err) {
21
+ console.log('Error writing file', err)
22
+ } else {
23
+ console.log('Successfully extracted icon classes')
24
+ }
25
+ });
26
+ }
27
+
28
+ extractIconClasses('cirro');
29
+