@tacc/core-styles 0.11.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +107 -85
  2. package/dist/branding_logos.css +1 -1
  3. package/dist/components/README.css +1 -1
  4. package/dist/components/bootstrap/bootstrap--form.demo.css +1 -0
  5. package/dist/components/bootstrap/bootstrap--modal.demo.css +1 -0
  6. package/dist/components/bootstrap/demo.css +1 -0
  7. package/dist/components/bootstrap.container.css +1 -1
  8. package/dist/components/bootstrap.css +1 -1
  9. package/dist/components/bootstrap.figure.css +1 -1
  10. package/dist/components/bootstrap.form.css +1 -1
  11. package/dist/components/bootstrap.modal.css +1 -1
  12. package/dist/components/bootstrap.pagination.css +1 -1
  13. package/dist/components/c-button/demo.css +1 -0
  14. package/dist/components/c-button.css +1 -1
  15. package/dist/components/c-callout.css +1 -1
  16. package/dist/components/c-card.css +1 -1
  17. package/dist/components/c-data-list.css +1 -1
  18. package/dist/components/c-footer.css +1 -1
  19. package/dist/components/c-form.css +1 -0
  20. package/dist/components/c-image-map.css +1 -1
  21. package/dist/components/c-image-map.skin.css +1 -1
  22. package/dist/components/c-image-map.structure.css +1 -1
  23. package/dist/components/c-message.css +1 -1
  24. package/dist/components/c-nav.css +1 -1
  25. package/dist/components/c-page.css +1 -1
  26. package/dist/components/c-recognition.css +1 -1
  27. package/dist/components/c-see-all-link.css +1 -1
  28. package/dist/components/c-show-more.css +1 -1
  29. package/dist/components/cortal.icon.css +1 -1
  30. package/dist/components/cortal.icon.font.css +1 -1
  31. package/dist/components/django-cms-forms.css +1 -0
  32. package/dist/components/django-cms-forms.hacks.css +1 -0
  33. package/dist/components/mui.tabs.css +1 -0
  34. package/dist/core-styles.base.css +4 -0
  35. package/dist/core-styles.cms.css +2 -0
  36. package/dist/core-styles.demo.css +2 -0
  37. package/dist/core-styles.header.css +2 -0
  38. package/dist/core-styles.portal.css +2 -0
  39. package/dist/core-styles.settings.css +3 -0
  40. package/dist/elements/README.css +1 -1
  41. package/dist/elements/bootstrap.css +1 -1
  42. package/dist/elements/demo.css +1 -0
  43. package/dist/elements/form.cms.css +1 -1
  44. package/dist/elements/html-elements.cms.css +1 -1
  45. package/dist/elements/html-elements.css +1 -0
  46. package/dist/elements/links/demo.css +1 -0
  47. package/dist/elements/links.css +1 -1
  48. package/dist/elements/table--basic.css +1 -1
  49. package/dist/elements/table--nested.css +1 -1
  50. package/dist/elements/table.css +1 -1
  51. package/dist/elements/tacc-search-bar.css +1 -1
  52. package/dist/fonts/BentonSans-Black.otf +0 -0
  53. package/dist/fonts/BentonSans-RegularItalic.otf +0 -0
  54. package/dist/fractal.server.refresh.css +1 -1
  55. package/dist/generics/README.css +1 -1
  56. package/dist/generics/fonts.css +1 -1
  57. package/dist/objects/README.css +1 -1
  58. package/dist/objects/o-fixed-header-table/demo.css +1 -0
  59. package/dist/objects/o-fixed-header-table.css +1 -1
  60. package/dist/objects/o-flex-item-table-wrap/demo.css +1 -0
  61. package/dist/objects/o-flex-item-table-wrap.css +1 -1
  62. package/dist/objects/o-float-content.css +1 -1
  63. package/dist/objects/o-grid.css +1 -1
  64. package/dist/objects/o-offset-content.css +1 -1
  65. package/dist/objects/o-section.css +1 -1
  66. package/dist/objects/o-site.css +1 -1
  67. package/dist/objects/o-table-wrap/demo.basic.css +1 -0
  68. package/dist/objects/o-table-wrap/demo.extra.css +1 -0
  69. package/dist/objects/o-table-wrap/extra.flexible-horz.css +1 -0
  70. package/dist/objects/o-table-wrap/extra.overflow-hidden.css +1 -0
  71. package/dist/objects/o-table-wrap/extra.overflow-scroll.css +1 -0
  72. package/dist/objects/o-table-wrap/o-table-wrap--flexible-horz.css +1 -0
  73. package/dist/objects/o-table-wrap/o-table-wrap--flexible-vert.css +1 -0
  74. package/dist/objects/o-table-wrap/o-table-wrap--overflow-hidden.css +1 -0
  75. package/dist/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.css +1 -0
  76. package/dist/objects/o-table-wrap/o-table-wrap--overflow-scroll.css +1 -0
  77. package/dist/objects/o-table-wrap.css +1 -0
  78. package/dist/settings/README.css +1 -1
  79. package/dist/settings/border.css +1 -1
  80. package/dist/settings/color.css +1 -1
  81. package/dist/settings/font.css +1 -1
  82. package/dist/settings/max-width.css +1 -1
  83. package/dist/settings/space.css +1 -1
  84. package/dist/tools/README.css +1 -1
  85. package/dist/tools/media-queries.css +1 -1
  86. package/dist/tools/x-article-link.css +1 -1
  87. package/dist/tools/x-center.css +1 -1
  88. package/dist/tools/x-fake-border.css +1 -1
  89. package/dist/tools/x-grid.css +1 -1
  90. package/dist/tools/x-layout.css +1 -1
  91. package/dist/tools/x-link/demo.css +1 -0
  92. package/dist/tools/x-link.css +1 -1
  93. package/dist/tools/x-mailto-text-replace.css +1 -1
  94. package/dist/tools/x-overlay.css +1 -1
  95. package/dist/tools/x-truncate.css +1 -1
  96. package/dist/trumps/README.css +1 -1
  97. package/dist/trumps/s-affixed-input-wrapper/demo.css +1 -0
  98. package/dist/trumps/s-affixed-input-wrapper.css +1 -1
  99. package/dist/trumps/s-article-list.css +1 -1
  100. package/dist/trumps/s-article-preview.css +1 -1
  101. package/dist/trumps/s-blockquote.css +1 -1
  102. package/dist/trumps/s-breadcrumbs.css +1 -1
  103. package/dist/trumps/s-cms-nav.css +1 -1
  104. package/dist/trumps/s-document.css +1 -1
  105. package/dist/trumps/s-footer.css +1 -1
  106. package/dist/trumps/s-guide-doc.css +1 -1
  107. package/dist/trumps/s-header.bootstrap.css +1 -0
  108. package/dist/trumps/s-header.css +1 -1
  109. package/dist/trumps/s-inline-dl.css +1 -1
  110. package/dist/trumps/s-irregular-links.css +1 -1
  111. package/dist/trumps/s-portal-nav.css +1 -1
  112. package/dist/trumps/s-style-guide.css +1 -1
  113. package/dist/trumps/s-system-specs.css +1 -1
  114. package/dist/trumps/tacc-search-bar.css +1 -1
  115. package/dist/trumps/u-empty.css +1 -1
  116. package/dist/trumps/u-hide.css +1 -1
  117. package/dist/trumps/u-mailto-text-replace.css +1 -1
  118. package/dist/trumps/u-nested-text-content.css +1 -1
  119. package/docs/index.md +10 -5
  120. package/docs/shortcuts/tables.md +7 -0
  121. package/fractal.config.js +32 -17
  122. package/package.json +11 -7
  123. package/src/.postcssrc.base.yml +11 -2
  124. package/src/bin/build.js +0 -1
  125. package/src/lib/_imports/_partials/text-of-one-sentence.hbs +1 -0
  126. package/src/lib/_imports/_preview.hbs +95 -42
  127. package/src/lib/_imports/branding_logos.css +0 -2
  128. package/src/lib/_imports/components/bootstrap/{bootstrap--form.docs.css → bootstrap--form.demo.css} +0 -0
  129. package/src/lib/_imports/components/bootstrap/{bootstrap--modal.docs.css → bootstrap--modal.demo.css} +0 -0
  130. package/src/lib/_imports/components/bootstrap/bootstrap--modal.readme.md +4 -0
  131. package/src/lib/_imports/components/bootstrap/config.yml +3 -7
  132. package/src/lib/_imports/components/bootstrap/{docs.css → demo.css} +2 -2
  133. package/src/lib/_imports/components/bootstrap.container.css +0 -1
  134. package/src/lib/_imports/components/bootstrap.form.css +0 -1
  135. package/src/lib/_imports/components/bootstrap.modal.css +3 -0
  136. package/src/lib/_imports/components/c-button/{docs.css → demo.css} +0 -5
  137. package/src/lib/_imports/components/c-button.css +3 -0
  138. package/src/lib/_imports/components/c-form/c-form.hbs +362 -0
  139. package/src/lib/_imports/components/c-form/config.yml +2 -0
  140. package/src/lib/_imports/components/c-form/readme.md +14 -0
  141. package/src/lib/_imports/components/c-form/toggle-field-errors.js +101 -0
  142. package/src/lib/_imports/components/c-form/toggle-required-fields.js +85 -0
  143. package/src/lib/_imports/components/c-form.css +176 -0
  144. package/src/lib/_imports/components/c-message.css +61 -24
  145. package/src/lib/_imports/components/cortal.icon.css +15 -6
  146. package/src/lib/_imports/components/django-cms-forms/config.yml +5 -0
  147. package/src/lib/_imports/components/django-cms-forms/django-cms-forms.hbs +404 -0
  148. package/src/lib/_imports/components/django-cms-forms/readme.md +20 -0
  149. package/src/lib/_imports/components/django-cms-forms.css +187 -0
  150. package/src/lib/_imports/components/django-cms-forms.hacks.css +59 -0
  151. package/src/lib/_imports/components/mui.tabs.css +30 -0
  152. package/src/lib/_imports/core-styles.base.css +54 -0
  153. package/src/lib/_imports/core-styles.cms.css +34 -0
  154. package/src/lib/_imports/core-styles.demo.css +23 -0
  155. package/src/lib/_imports/core-styles.header.css +37 -0
  156. package/src/lib/_imports/core-styles.portal.css +25 -0
  157. package/src/lib/_imports/core-styles.settings.css +9 -0
  158. package/src/lib/_imports/elements/demo.css +59 -0
  159. package/src/lib/_imports/elements/form.cms/readme.md +16 -0
  160. package/src/lib/_imports/elements/form.cms.css +5 -23
  161. package/src/lib/_imports/elements/html-elements.cms.css +3 -4
  162. package/src/lib/_imports/elements/html-elements.css +67 -0
  163. package/src/lib/_imports/elements/links/config.yml +1 -1
  164. package/src/lib/_imports/elements/links.css +3 -3
  165. package/src/lib/_imports/elements/table/config.yml +1 -4
  166. package/src/lib/_imports/elements/table/table.hbs +8 -0
  167. package/src/lib/_imports/elements/table--basic.css +13 -2
  168. package/src/lib/_imports/generics/fonts.css +21 -7
  169. package/src/lib/_imports/objects/o-fixed-header-table/config.yml +60 -0
  170. package/src/lib/_imports/objects/o-fixed-header-table/demo.css +18 -0
  171. package/src/lib/_imports/objects/o-fixed-header-table/o-fixed-header-table.hbs +3 -0
  172. package/src/lib/_imports/objects/o-fixed-header-table/readme.md +18 -0
  173. package/src/lib/_imports/objects/o-fixed-header-table.css +1 -27
  174. package/src/lib/_imports/objects/o-flex-item-table-wrap/config.yml +27 -0
  175. package/src/lib/_imports/objects/o-flex-item-table-wrap/demo.css +7 -0
  176. package/src/lib/_imports/objects/o-flex-item-table-wrap/o-flex-item-table-wrap.hbs +7 -0
  177. package/src/lib/_imports/objects/o-flex-item-table-wrap/readme.md +22 -0
  178. package/src/lib/_imports/objects/o-flex-item-table-wrap.css +0 -34
  179. package/src/lib/_imports/objects/o-float-content.css +0 -1
  180. package/src/lib/_imports/objects/o-section.css +0 -1
  181. package/src/lib/_imports/objects/o-site.css +1 -0
  182. package/src/lib/_imports/objects/o-table-wrap/config.yml +82 -0
  183. package/src/lib/_imports/objects/o-table-wrap/demo.basic.css +18 -0
  184. package/src/lib/_imports/objects/o-table-wrap/demo.extra.css +31 -0
  185. package/src/lib/_imports/objects/o-table-wrap/extra.flexible-horz.css +23 -0
  186. package/src/lib/_imports/objects/o-table-wrap/extra.overflow-hidden.css +7 -0
  187. package/src/lib/_imports/objects/o-table-wrap/extra.overflow-scroll.css +7 -0
  188. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-horz.css +4 -0
  189. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-horz.hbs +5 -0
  190. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-horz.readme.md +20 -0
  191. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-vert.css +3 -0
  192. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-vert.hbs +5 -0
  193. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--flexible-vert.readme.md +18 -0
  194. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-hidden.css +3 -0
  195. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-hidden.hbs +5 -0
  196. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-hidden.readme.md +14 -0
  197. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.css +2 -0
  198. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.hbs +18 -0
  199. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.readme.md +18 -0
  200. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll.css +5 -0
  201. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll.hbs +5 -0
  202. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap--overflow-scroll.readme.md +20 -0
  203. package/src/lib/_imports/objects/o-table-wrap/o-table-wrap.hbs +11 -0
  204. package/src/lib/_imports/objects/o-table-wrap/readme.md +24 -0
  205. package/src/lib/_imports/objects/o-table-wrap.css +5 -0
  206. package/src/lib/_imports/settings/color.css +29 -11
  207. package/src/lib/_imports/settings/font.css +2 -0
  208. package/src/lib/_imports/{elements/links/docs.css → tools/x-link/demo.css} +0 -0
  209. package/src/lib/_imports/tools/x-link.css +0 -3
  210. package/src/lib/_imports/trumps/s-affixed-input-wrapper/{readme.md → README.md} +0 -0
  211. package/src/lib/_imports/trumps/s-affixed-input-wrapper/config.yml +2 -4
  212. package/src/lib/_imports/trumps/s-affixed-input-wrapper/s-affixed-input-wrapper.hbs +26 -24
  213. package/src/lib/_imports/trumps/s-affixed-input-wrapper.css +9 -11
  214. package/src/lib/_imports/trumps/s-cms-nav.css +11 -0
  215. package/src/lib/_imports/trumps/s-header.bootstrap.css +30 -0
  216. package/src/lib/_imports/trumps/s-header.css +1 -0
  217. package/src/lib/_imports/trumps/s-inline-dl.css +1 -0
  218. package/src/lib/_imports/trumps/s-irregular-links/config.yml +1 -5
  219. package/src/lib/_imports/trumps/s-portal-nav.css +11 -1
  220. package/src/lib/_imports/trumps/u-empty.css +4 -0
  221. package/src/lib/_imports/trumps/u-mailto-text-replace/config.yml +0 -3
  222. package/src/lib/_imports/trumps/u-mailto-text-replace/readme.md +1 -1
  223. package/src/lib/fonts/BentonSans-Black.otf +0 -0
  224. package/src/lib/fonts/BentonSans-RegularItalic.otf +0 -0
  225. package/dist/components/bootstrap/bootstrap--form.docs.css +0 -1
  226. package/dist/components/bootstrap/bootstrap--modal.docs.css +0 -1
  227. package/dist/components/bootstrap/bootstrap.modal/docs.css +0 -1
  228. package/dist/components/bootstrap/docs.css +0 -1
  229. package/dist/components/bootstrap/portal/bootstrap.form/docs.css +0 -1
  230. package/dist/components/bootstrap--container.css +0 -1
  231. package/dist/components/bootstrap--form/docs.css +0 -1
  232. package/dist/components/bootstrap--form.css +0 -1
  233. package/dist/components/bootstrap--modal/docs.css +0 -1
  234. package/dist/components/bootstrap--modal.css +0 -1
  235. package/dist/components/bootstrap.form/docs.css +0 -1
  236. package/dist/components/bootstrap.modal/docs.css +0 -1
  237. package/dist/components/c-button/docs.css +0 -1
  238. package/dist/elements/links/docs.css +0 -1
  239. package/dist/elements/table/docs.css +0 -1
  240. package/dist/elements/table/table.docs.css +0 -1
  241. package/dist/elements/table copy.css +0 -1
  242. package/dist/fonts/fonts/BentonSans-Bold.otf +0 -0
  243. package/dist/fonts/fonts/BentonSans-Medium.otf +0 -0
  244. package/dist/fonts/fonts/BentonSans-MediumItalic.otf +0 -0
  245. package/dist/fonts/fonts/BentonSans-Regular.otf +0 -0
  246. package/dist/fractal.server.css +0 -1
  247. package/dist/fractal.server.reload.css +0 -1
  248. package/dist/tools/x-link/docs.css +0 -1
  249. package/dist/trumps/icon.css +0 -1
  250. package/dist/trumps/icon.fonts.css +0 -1
  251. package/src/lib/_imports/_partials/bootstrap.css.hbs +0 -1
  252. package/src/lib/_imports/_partials/bootstrap.js.hbs +0 -2
  253. package/src/lib/_imports/_partials/cms.css.hbs +0 -3
  254. package/src/lib/_imports/_partials/css.hbs +0 -27
  255. package/src/lib/_imports/_preview.bootstrap-cms.hbs +0 -5
  256. package/src/lib/_imports/_preview.bootstrap.hbs +0 -5
  257. package/src/lib/_imports/_preview.cms.hbs +0 -3
  258. package/src/lib/_imports/tools/x-link/docs.css +0 -6
  259. package/src/lib/_imports/trumps/icon.css +0 -31
  260. package/src/lib/_imports/trumps/icon.fonts.css +0 -316
@@ -2,58 +2,111 @@
2
2
  {{! FAQ: Any <link>s, and comments AFTER the first, are migrated to <head> }}
3
3
  <link rel='author' href='https://github.com/TACC/Core-Styles' />
4
4
 
5
- <!-- styles: support (the current component) -->
6
- {{#each _target.context.supportStyles}}
7
- <link rel='stylesheet' href='{{path this}}' />
5
+
6
+
7
+ <!-- Styles: Layers -->
8
+ {{!-- https://confluence.tacc.utexas.edu/x/b53tDg --}}
9
+ <style>
10
+ @layer foundation, base, project;
11
+ </style>
12
+
13
+ {{#if _target.context.shouldLoadBootstrap}}
14
+ {{#unless _target.context.shouldSkipBootstrap }}
15
+ <!-- Styles: Global (for current component): Bootstrap -->
16
+ <style>
17
+ @import url('https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css');
18
+ </style>
19
+ {{/unless}}
20
+ {{/if}}
21
+
22
+ <!-- Styles: Global (for every component) -->
23
+ <style>
24
+ {{#each globalStyles}}
25
+ {{#if this.isInternal}}
26
+ @import url('{{path this.path}}');
27
+ {{else}}
28
+ @import url('{{this.path}}');
29
+ {{/if}}
8
30
  {{/each}}
9
- <!-- styles: base (the current component) -->
10
- {{#unless styles.shouldSkipBase}}
11
- <link
12
- rel='stylesheet'
13
- href='{{path "/assets/{{ _target.context.subdir }}/{{ _target.baseHandle }}.css"}}'
14
- />
31
+ </style>
32
+
33
+ {{#if _target.context.shouldLoadCMS }}
34
+ {{#unless _target.context.shouldSkipCMS }}
35
+ <!-- Styles: Global (for current component): CMS -->
36
+ <style>
37
+ @import url('{{path "/assets/core-styles.cms.css"}}');
38
+ </style>
15
39
  {{/unless}}
40
+ {{/if}}
16
41
 
17
42
 
18
- <!-- styles: global (for every component) -->
19
- <!-- (manually configured) -->
20
- {{#each styles.external.global}}
21
- <link rel='stylesheet' href='{{this}}' />
22
- {{/each}}
23
- {{#each styles.internal.global}}
24
- <link rel='stylesheet' href='{{path this}}' />
25
- {{/each}}
26
43
 
27
- <!-- styles: local (for current component) -->
28
- <!-- (automatically found) -->
44
+ {{#if _target.context.supportStyles}}
45
+ <!-- Styles: Local (for current component): Supporting Patterns -->
46
+ <style>
47
+ {{#each _target.context.supportStyles}}
48
+ @import url('{{path this}}');
49
+ {{/each}}
50
+ </style>
51
+ {{/if}}
52
+
53
+ {{#unless _target.context.shouldSkipPattern}}
54
+ <!-- Styles: Local (for current component): Current Pattern -->
55
+ <style>
56
+ @import url('{{path "/assets/{{ _target.context.subdir }}/{{ _target.baseHandle }}.css"}}');
57
+ </style>
58
+ {{/unless}}
59
+
60
+
61
+
62
+ <!-- Styles: Demo (for current component) -->
29
63
  {{#each _target.resources.assets}}
30
- {{#if isCSS}}
31
- <link
32
- rel='stylesheet'
33
- href='{{path "/components/raw/{{ _target.baseHandle }}/{{ this.base }}"}}'
34
- />
35
- {{/if}}
36
- {{/each}}
37
- <!-- (manually configured) -->
38
- {{#each styles.external.local}}
39
- <link rel='stylesheet' href='{{this}}' />
40
- {{/each}}
41
- {{#each styles.internal.local}}
42
- <link rel='stylesheet' href='{{path this}}' />
64
+ {{#if this.isCSS}}
65
+ <style>
66
+ @import url('{{path "/components/raw/{{ _target.baseHandle }}/{{ this.base }}"}}');
67
+ </style>
68
+ {{/if}}
43
69
  {{/each}}
44
70
 
45
- {{! styles: specific to pattern library (so pattern library can override any) }}
46
- {{> @css }}
71
+ <!-- Styles: Demo (for every component) -->
72
+ <style>
73
+ @import url('{{path "/assets/core-styles.demo.css"}}');
74
+ </style>
75
+
47
76
 
48
- <!-- scripts: local (for current component) -->
49
- <!-- (automatically found) -->
77
+
78
+ {{#if _target.context.shouldLoadBootstrap}}
79
+ <!-- Scripts: Global (for current component): Bootstrap -->
80
+ <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
81
+ <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
82
+ {{/if}}
83
+
84
+ <!-- Scripts: Local (for current component) -->
50
85
  {{#each _target.resources.assets}}
51
- {{#if isJS}}
52
- <script
53
- src='{{path "/components/raw/{{ _target.baseHandle }}/{{ this.base }}"}}'
54
- ></script>
55
- {{/if}}
86
+ {{#if this.isJS}}
87
+ <script
88
+ type="module"
89
+ src='{{path "/components/raw/{{ _target.baseHandle }}/{{ this.base }}"}}'
90
+ ></script>
91
+ {{/if}}
56
92
  {{/each}}
57
93
 
58
- <!-- markup (for current component) -->
94
+
95
+
96
+ {{!-- Config (for current component) --}}
97
+ <details style="display:none;">
98
+ <summary>Configuration</summary>
99
+ <dl>
100
+ <dt>shouldLoadBootstrap</dt>
101
+ <dd>{{_target.context.shouldLoadBootstrap}}</dd>
102
+ <dt>shouldSkipBootstrap</dt>
103
+ <dd>{{_target.context.shouldSkipBootstrap}}</dd>
104
+ <dt>shouldLoadCMS</dt>
105
+ <dd>{{_target.context.shouldLoadCMS}}</dd>
106
+ <dt>shouldSkipCMS</dt>
107
+ <dd>{{_target.context.shouldSkipCMS}}</dd>
108
+ </dl>
109
+ </details>
110
+
111
+ {{!-- Markup (for current component) --}}
59
112
  {{{yield}}}
@@ -5,8 +5,6 @@
5
5
  `em` nor `rem` was not allowed because results were not consistent.
6
6
  UPDATE: As of PR #312, this has likely changed (untested). */
7
7
 
8
- /* Shared by All Templates */
9
-
10
8
  /* Branding Selectors */
11
9
 
12
10
  .branding-header {
@@ -1,5 +1,9 @@
1
1
  To override and extend [Bootstrap Modals](https://getbootstrap.com/docs/4.3/components/modal/).
2
2
 
3
+ > **⚠️ WARNING**
4
+ >
5
+ > The modal will not scroll unless using [Bootstrap 4.3](https://getbootstrap.com/docs/4.3/components/modal/). CMS uses [Bootstrap 4.0](https://getbootstrap.com/docs/4.0/components/modal/). The relevant class is `modal-dialog-scrollable`.
6
+
3
7
  <script>
4
8
  /* To open external links in new window */
5
9
  Array.from(document.links)
@@ -1,16 +1,12 @@
1
- preview: '@preview.bootstrap'
1
+ context:
2
+ shouldLoadBootstrap: true
2
3
  variants:
3
4
  - name: default
4
5
  hidden: true
5
6
  - name: container
6
7
  status: ready
7
8
  - name: modal
8
- context:
9
- supportStyles:
10
- - /assets/components/c-button.css
9
+ status: prototype
11
10
  - name: form
12
11
  label: (Portal) Form
13
12
  status: prototype
14
- context:
15
- supportStyles:
16
- - /assets/components/c-button.css
@@ -3,5 +3,5 @@
3
3
  /* All Bootstrap pattern library CSS loads for every component */
4
4
  /* FAQ: To support legacy client imports, Bootstrap file organization is odd */
5
5
 
6
- @import url("./bootstrap--form.docs.css");
7
- @import url("./bootstrap--modal.docs.css");
6
+ @import url("./bootstrap--form.demo.css");
7
+ @import url("./bootstrap--modal.demo.css");
@@ -1,4 +1,3 @@
1
- @import url("../settings/max-width.css");
2
1
  @import url("../tools/media-queries.css");
3
2
 
4
3
  @media (--xx-wide-and-above) {
@@ -1,4 +1,3 @@
1
- @import url('../settings/border.css');
2
1
 
3
2
  .form-control {
4
3
  border: var(--global-border--normal);
@@ -60,3 +60,6 @@
60
60
  .modal-header.has-MuiTabs .close {
61
61
  transform: translate(-25%, 25%);
62
62
  }
63
+ .modal-header.has-MuiTabs .MuiTabs-indicator {
64
+ background-color: white;
65
+ }
@@ -1,10 +1,5 @@
1
1
  /* This CSS is ONLY for the pattern library. It is NOT part of the pattern. */
2
2
 
3
- dd > * {
4
- margin-right: 0.5em;
5
- vertical-align: middle;
6
- }
7
-
8
3
  .c-button > i {
9
4
  font-style: normal;
10
5
  }
@@ -18,6 +18,9 @@
18
18
 
19
19
  display: inline-block;
20
20
 
21
+ /* To ensure identical <button> and <a> instances have same width */
22
+ box-sizing: border-box;
23
+
21
24
  border-width: var(--global-border-width--normal);
22
25
  border-style: solid;
23
26
 
@@ -0,0 +1,362 @@
1
+ <form action="" method="POST" enctype="multipart/form-data" class="c-form">
2
+
3
+ <h3 class="c-form__title">Title of Form</h3>
4
+ <div class="c-form__desc">
5
+ I describe the form, but not very well.
6
+ </div>
7
+
8
+ <ul class="c-form__errors" style="display:none;">
9
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
10
+ </ul>
11
+
12
+ <div class="c-form__field has-required">
13
+ <ul class="c-form__errors" style="display:none;">
14
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
15
+ </ul>
16
+
17
+ <label for="name">
18
+ Name<span class="c-form__star">*</span>
19
+ </label>
20
+
21
+ <input
22
+ type="text"
23
+ name="name"
24
+ required=""
25
+ placeholder="Your name"
26
+ id="name"
27
+ />
28
+
29
+ <div class="c-form__help">
30
+ We use this to identify your submission.
31
+ </div>
32
+ </div>
33
+
34
+ <div class="c-form__field">
35
+ <ul class="c-form__errors" style="display:none;">
36
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
37
+ </ul>
38
+
39
+ <label for="favorite-fruit">Favorite Fruit</label>
40
+
41
+ <select name="favorite-fruit" id="favorite-fruit">
42
+ <option value="" selected="">
43
+ Please select an option
44
+ </option>
45
+ <option value="Apple">Apple</option>
46
+ <option value="Banana">Banana</option>
47
+ <option value="Cherry">Cherry</option>
48
+ <option value="Durian">Durian</option>
49
+ <option value="Other">Other</option>
50
+ <option value="Whatever">Whatever</option>
51
+ </select>
52
+
53
+ <div class="c-form__help">
54
+ Choose your favorite fruit.
55
+ </div>
56
+ </div>
57
+
58
+ <div class="c-form__field">
59
+ <ul class="c-form__errors" style="display:none;">
60
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
61
+ </ul>
62
+
63
+ <label for="wake-up-time">Wake Up Time</label>
64
+
65
+ <input
66
+ type="time"
67
+ name="wake-up-time"
68
+ id="wake-up-time"
69
+ />
70
+
71
+ <div class="c-form__help">
72
+ We use this to know when to wake you up.
73
+ </div>
74
+ </div>
75
+
76
+ <div class="c-form__field">
77
+ <ul class="c-form__errors" style="display:none;">
78
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
79
+ </ul>
80
+
81
+ <label>Radio stations</label>
82
+
83
+ <ul id="radio-stations">
84
+ <li>
85
+ <label for="radio-stations-0">
86
+ <input
87
+ type="radio"
88
+ name="radio-stations"
89
+ value="LX 1234"
90
+ id="radio-stations-0"
91
+ />
92
+ LX 1234
93
+ </label>
94
+ </li>
95
+ <li>
96
+ <label for="radio-stations-1">
97
+ <input
98
+ type="radio"
99
+ name="radio-stations"
100
+ value="LOVE 45"
101
+ id="radio-stations-1"
102
+ />
103
+ LOVE 45
104
+ </label>
105
+ </li>
106
+ <li>
107
+ <label for="radio-stations-2">
108
+ <input
109
+ type="radio"
110
+ name="radio-stations"
111
+ value="OLD 555"
112
+ id="radio-stations-2"
113
+ />
114
+ OLD 555
115
+ </label>
116
+ </li>
117
+ </ul>
118
+
119
+ <div class="c-form__help">
120
+ Which radio stations do you prefer?
121
+ </div>
122
+ </div>
123
+
124
+ <div class="c-form__field has-type-check">
125
+ <ul class="c-form__errors" style="display:none;">
126
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
127
+ </ul>
128
+
129
+ <input
130
+ type="checkbox"
131
+ name="checking-out"
132
+ id="checking-out"
133
+ />
134
+
135
+ <label for="checking-out">Checking Out?</label>
136
+
137
+ <div class="c-form__help">
138
+ Are you checking out today?
139
+ </div>
140
+ </div>
141
+
142
+ <div class="c-form__field">
143
+ <ul class="c-form__errors" style="display:none;">
144
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
145
+ </ul>
146
+
147
+ <label for="">
148
+ Which fish do you want?
149
+ </label>
150
+
151
+ <ul id="which-fish-do-you-want">
152
+ <li>
153
+ <label for="which-fish-do-you-want-0">
154
+ <input
155
+ type="checkbox"
156
+ name="which-fish-do-you-want"
157
+ value="one fish"
158
+ id="which-fish-do-you-want-0"
159
+ />
160
+ one fish
161
+ </label>
162
+ </li>
163
+ <li>
164
+ <label for="which-fish-do-you-want-1">
165
+ <input
166
+ type="checkbox"
167
+ name="which-fish-do-you-want"
168
+ value="two fish"
169
+ id="which-fish-do-you-want-1"
170
+ />
171
+ two fish
172
+ </label>
173
+ </li>
174
+ <li>
175
+ <label for="which-fish-do-you-want-2">
176
+ <input
177
+ type="checkbox"
178
+ name="which-fish-do-you-want"
179
+ value="red fish"
180
+ id="which-fish-do-you-want-2"
181
+ />
182
+ red fish
183
+ </label>
184
+ </li>
185
+ <li>
186
+ <label for="which-fish-do-you-want-3">
187
+ <input
188
+ type="checkbox"
189
+ name="which-fish-do-you-want"
190
+ value="blue fish"
191
+ id="which-fish-do-you-want-3"
192
+ />
193
+ blue fish
194
+ </label>
195
+ </li>
196
+ <li>
197
+ <label for="which-fish-do-you-want-4">
198
+ <input
199
+ type="checkbox"
200
+ name="which-fish-do-you-want"
201
+ value="all the fish"
202
+ id="which-fish-do-you-want-4"
203
+ />
204
+ all the fish
205
+ </label>
206
+ </li>
207
+ </ul>
208
+ </div>
209
+
210
+ <div class="c-form__field">
211
+ <ul class="c-form__errors" style="display:none;">
212
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
213
+ </ul>
214
+
215
+ <label for="hangry-time">Hangry Time</label>
216
+
217
+ <select name="hangry-time" id="hangry-time">
218
+ <option value="" selected="">
219
+ Please select an option
220
+ </option>
221
+ <option value="Morning">Morning</option>
222
+ <option value="Noon">Noon</option>
223
+ <option value="Afternoon">Afternoon</option>
224
+ <option value="Evening">Evening</option>
225
+ <option value="Night">Night</option>
226
+ <option value="Midnight">Midnight</option>
227
+ </select>
228
+
229
+ <div class="c-form__help">
230
+ At which time of day do you get hangry?
231
+ </div>
232
+ </div>
233
+
234
+ <div class="c-form__field">
235
+ <ul class="c-form__errors" style="display:none;">
236
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
237
+ </ul>
238
+
239
+ <label for="life-story">Life Story</label>
240
+
241
+ <textarea
242
+ name="life-story"
243
+ cols="40"
244
+ rows="10"
245
+ id="life-story"
246
+ ></textarea>
247
+
248
+ <div class="c-form__help">
249
+ Go on, tell me everything.
250
+ </div>
251
+ </div>
252
+
253
+ <div class="c-form__field">
254
+ <ul class="c-form__errors" style="display:none;">
255
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
256
+ </ul>
257
+
258
+ <label for="what-day-is-it">What day is it?</label>
259
+
260
+ <input
261
+ type="date"
262
+ name="what-day-is-it"
263
+ id="what-day-is-it"
264
+ />
265
+
266
+ <div class="c-form__help">
267
+ Please enter today's date.
268
+ </div>
269
+ </div>
270
+
271
+ <div class="c-form__field">
272
+ <ul class="c-form__errors" style="display:none;">
273
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
274
+ </ul>
275
+
276
+ <label for="your-favorite-picture">Your favorite picture</label>
277
+
278
+ <input
279
+ type="file"
280
+ name="your-favorite-picture"
281
+ id="your-favorite-picture"
282
+ />
283
+
284
+ <div class="c-form__help">
285
+ Upload your favorite image.
286
+ <small>
287
+ Supported types:
288
+ <code>.jpeg</code>,<code>.jpg</code>,<code>.gif</code>,<code>.png</code>
289
+ </small>
290
+ </div>
291
+ </div>
292
+
293
+ <div class="c-form__field has-spam-check has-required">
294
+ <ul class="c-form__errors" style="display:none;">
295
+ <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
296
+ </ul>
297
+
298
+ <label for="recaptcha_g9y93gP8">
299
+ Are you a robot?<span class="c-form__star">*</span>
300
+ </label>
301
+
302
+ <script src="https://www.google.com/recaptcha/api.js"></script>
303
+ <script type="text/javascript">
304
+ // Submit function to be called, after reCAPTCHA was successful. var
305
+ onSubmit_9e32f28ccb9545109ff6ae891f9af324 = function(token){" "}
306
+ {console.log("reCAPTCHA validated for 'data-widget-uuid=\"9e32f28ccb9545109ff6ae891f9af324\"'")};
307
+ </script>
308
+ <div class="g-recaptcha" data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI" required="" id="recaptcha_g9y93gP8" data-widget-uuid="9e32f28ccb9545109ff6ae891f9af324" data-callback="onSubmit_9e32f28ccb9545109ff6ae891f9af324" data-size="normal"></div>
309
+ </div>
310
+
311
+ <div class="c-form__buttons">
312
+ <button class="c-form__button" type="submit">
313
+ Submit
314
+ </button>
315
+ <button id="toggle-field-errors" class="c-form__button" type="button">
316
+ Toggle Field Errors
317
+ </button>
318
+ <button id="toggle-required-fields" class="c-form__button" type="button">
319
+ Toggle Required Fields
320
+ </button>
321
+ </div>
322
+
323
+ </form>
324
+
325
+ <script type="module">
326
+ import toggleFieldErrors from '{{ path "/components/raw/c-form/toggle-field-errors.js" }}';
327
+
328
+ document.addEventListener('DOMContentLoaded', () => {
329
+ const toggle = document.getElementById('toggle-field-errors');
330
+ const form = document.querySelector('form');
331
+
332
+ toggle.addEventListener('click', () => {
333
+ toggleFieldErrors( form, '.c-form__errors');
334
+ });
335
+ });
336
+ </script>
337
+ <script type="module">
338
+ import toggleRequiredFields from '{{ path "/components/raw/c-form/toggle-required-fields.js" }}';
339
+
340
+ document.addEventListener('DOMContentLoaded', () => {
341
+ const toggle = document.getElementById('toggle-required-fields');
342
+ const form = toggle.closest('form');
343
+
344
+ toggle.addEventListener('click', () => {
345
+ toggleRequiredFields( form, 'c-form__field', 'has-required', {
346
+ shouldScrollToFirst: true
347
+ });
348
+ });
349
+ });
350
+ </script>
351
+ <script type="module">
352
+ document.addEventListener('DOMContentLoaded', () => {
353
+ const form = document.querySelector('form');
354
+
355
+ form.addEventListener('submit', event => {
356
+ event.preventDefault();
357
+
358
+ /* TODO: Show success message on form */
359
+ alert('Form was not submitted, because this is an incomplete demo.');
360
+ });
361
+ });
362
+ </script>
@@ -0,0 +1,2 @@
1
+ context:
2
+ shouldLoadCMS: true # temporary dependence, until proven to work on Portal
@@ -0,0 +1,14 @@
1
+ To style when raw [Form elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element#table_content) are insufficient.
2
+
3
+ > <details><summary><strong>✎ Inspiration</strong></summary>
4
+ >
5
+ > - [Django CMS Form Default Template](https://github.com/avryhof/djangocms-forms/blob/ab38b22/djangocms_forms/templates/djangocms_forms/form_template/default.html)
6
+ >
7
+ > </details>
8
+
9
+ <script>
10
+ /* To open external links in new window */
11
+ Array.from(document.links)
12
+ .filter(link => link.hostname != window.location.hostname)
13
+ .forEach(link => link.target = '_blank');
14
+ </script>