@tacc/core-styles 2.14.0 → 2.15.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 (248) hide show
  1. package/README.md +7 -0
  2. package/dist/branding_logos.css +1 -1
  3. package/dist/components/README.css +1 -1
  4. package/dist/components/admonition/demo.css +1 -1
  5. package/dist/components/admonition.css +1 -1
  6. package/dist/components/align/demo.css +1 -1
  7. package/dist/components/align.css +1 -1
  8. package/dist/components/bootstrap/bootstrap--form.demo.css +1 -1
  9. package/dist/components/bootstrap/bootstrap--modal.demo.css +1 -1
  10. package/dist/components/bootstrap/demo.css +1 -1
  11. package/dist/components/bootstrap.col.css +1 -1
  12. package/dist/components/bootstrap.container.css +1 -1
  13. package/dist/components/bootstrap.css +1 -1
  14. package/dist/components/bootstrap.figure.css +1 -1
  15. package/dist/components/bootstrap.form.css +1 -1
  16. package/dist/components/bootstrap.modal--cms.css +1 -1
  17. package/dist/components/bootstrap.modal--portal.css +1 -1
  18. package/dist/components/bootstrap.modal.css +1 -1
  19. package/dist/components/bootstrap.nav-tabs.css +1 -1
  20. package/dist/components/bootstrap.pagination.css +1 -1
  21. package/dist/components/bootstrap.row.css +1 -1
  22. package/dist/components/c-button/demo.css +1 -1
  23. package/dist/components/c-button.css +1 -1
  24. package/dist/components/c-button.selectors.css +1 -1
  25. package/dist/components/c-callout.css +1 -1
  26. package/dist/components/c-card/c-card--frontera.demo.css +1 -1
  27. package/dist/components/c-card/c-card.demo.css +1 -1
  28. package/dist/components/c-card--docs.css +1 -1
  29. package/dist/components/c-card--from-tup-cms.css +1 -1
  30. package/dist/components/c-card--frontera-about-page.css +1 -1
  31. package/dist/components/c-card.css +1 -1
  32. package/dist/components/c-card.selectors.css +1 -1
  33. package/dist/components/c-data-list.css +1 -1
  34. package/dist/components/c-footer.css +1 -1
  35. package/dist/components/c-form--cms.css +1 -1
  36. package/dist/components/c-form--portal.css +1 -1
  37. package/dist/components/c-form.css +1 -1
  38. package/dist/components/c-form.selectors.css +1 -0
  39. package/dist/components/c-image-map.css +1 -1
  40. package/dist/components/c-image-map.skin.css +1 -1
  41. package/dist/components/c-image-map.structure.css +1 -1
  42. package/dist/components/c-island/demo.css +1 -1
  43. package/dist/components/c-island.css +1 -1
  44. package/dist/components/c-message/demo.css +1 -1
  45. package/dist/components/c-message--compact.css +1 -1
  46. package/dist/components/c-message--expanded.css +1 -1
  47. package/dist/components/c-message.css +1 -1
  48. package/dist/components/c-message.selectors.css +1 -1
  49. package/dist/components/c-nav/demo.css +1 -1
  50. package/dist/components/c-nav.css +1 -1
  51. package/dist/components/c-page.css +1 -1
  52. package/dist/components/c-recognition.css +1 -1
  53. package/dist/components/c-see-all-link.css +1 -1
  54. package/dist/components/c-show-more.css +1 -1
  55. package/dist/components/c-tag/demo.css +1 -1
  56. package/dist/components/c-tag.css +1 -1
  57. package/dist/components/c-tag.selectors.css +1 -1
  58. package/dist/components/cortal.icon.css +1 -1
  59. package/dist/components/cortal.icon.font.css +1 -1
  60. package/dist/components/demo.css +1 -1
  61. package/dist/components/django-cms-forms.css +1 -1
  62. package/dist/components/django-cms-forms.hacks.css +1 -1
  63. package/dist/components/django-cms-forms.selectors.css +1 -0
  64. package/dist/components/mui.tabs.css +1 -1
  65. package/dist/components/pymdownx--tabbed.css +1 -1
  66. package/dist/components/pymdownx.css +1 -1
  67. package/dist/components/tacc-docs.css +1 -1
  68. package/dist/core-styles.base.css +2 -2
  69. package/dist/core-styles.cms.css +2 -2
  70. package/dist/core-styles.demo.css +1 -1
  71. package/dist/core-styles.docs.css +2 -2
  72. package/dist/core-styles.header.css +1 -1
  73. package/dist/core-styles.portal.css +2 -2
  74. package/dist/core-styles.settings.css +1 -1
  75. package/dist/core-styles.theme.default.css +1 -1
  76. package/dist/core-styles.theme.has-dark-logo.css +1 -1
  77. package/dist/core-styles.wysiwyg.css +1 -1
  78. package/dist/elements/README.css +1 -1
  79. package/dist/elements/bootstrap.css +1 -1
  80. package/dist/elements/demo.css +1 -1
  81. package/dist/elements/form.css +1 -0
  82. package/dist/elements/headings/demo.css +1 -1
  83. package/dist/elements/headings--cms.css +1 -1
  84. package/dist/elements/headings--docs.css +1 -1
  85. package/dist/elements/html-elements/demo.css +1 -1
  86. package/dist/elements/html-elements.cms.css +1 -1
  87. package/dist/elements/html-elements.css +1 -1
  88. package/dist/elements/html-elements.docs.css +1 -1
  89. package/dist/elements/links.css +1 -1
  90. package/dist/elements/monospace.css +1 -1
  91. package/dist/elements/root--cms.css +1 -1
  92. package/dist/elements/root--demo.css +1 -1
  93. package/dist/elements/root--docs.css +1 -1
  94. package/dist/elements/root--portal.css +1 -1
  95. package/dist/elements/root.css +1 -1
  96. package/dist/elements/sticky-footer.css +1 -1
  97. package/dist/elements/table--basic.css +1 -1
  98. package/dist/elements/table--nested.css +1 -1
  99. package/dist/elements/table.cms.css +1 -1
  100. package/dist/elements/table.css +1 -1
  101. package/dist/elements/table.docs.css +1 -1
  102. package/dist/elements/table.selectors.css +1 -1
  103. package/dist/elements/tacc-search-bar.css +1 -1
  104. package/dist/fractal.server.refresh.css +1 -1
  105. package/dist/generics/README.css +1 -1
  106. package/dist/generics/fonts.css +1 -1
  107. package/dist/generics/pseudo-elements.css +1 -1
  108. package/dist/objects/README.css +1 -1
  109. package/dist/objects/o-fixed-header-table/demo.css +1 -1
  110. package/dist/objects/o-fixed-header-table.css +1 -1
  111. package/dist/objects/o-flex-item-table-wrap/demo.css +1 -1
  112. package/dist/objects/o-flex-item-table-wrap.css +1 -1
  113. package/dist/objects/o-float-content.css +1 -1
  114. package/dist/objects/o-grid.css +1 -1
  115. package/dist/objects/o-offset-content.css +1 -1
  116. package/dist/objects/o-section/demo.css +1 -1
  117. package/dist/objects/o-section--docs.css +1 -1
  118. package/dist/objects/o-section.css +1 -1
  119. package/dist/objects/o-section.selectors.css +1 -1
  120. package/dist/objects/o-site.css +1 -1
  121. package/dist/objects/o-table-wrap/demo.basic.css +1 -1
  122. package/dist/objects/o-table-wrap/demo.extra.css +1 -1
  123. package/dist/objects/o-table-wrap/example.flexible-horz.css +1 -1
  124. package/dist/objects/o-table-wrap/example.overflow-hidden.css +1 -1
  125. package/dist/objects/o-table-wrap/example.overflow-scroll.css +1 -1
  126. package/dist/objects/o-table-wrap/o-table-wrap--flexible-horz.css +1 -1
  127. package/dist/objects/o-table-wrap/o-table-wrap--flexible-vert.css +1 -1
  128. package/dist/objects/o-table-wrap/o-table-wrap--overflow-hidden.css +1 -1
  129. package/dist/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.css +1 -1
  130. package/dist/objects/o-table-wrap/o-table-wrap--overflow-scroll.css +1 -1
  131. package/dist/objects/o-table-wrap.css +1 -1
  132. package/dist/settings/README.css +1 -1
  133. package/dist/settings/border.css +1 -1
  134. package/dist/settings/color/demo.css +1 -1
  135. package/dist/settings/color--cms.css +1 -1
  136. package/dist/settings/color--demo.css +1 -1
  137. package/dist/settings/color--docs.css +1 -1
  138. package/dist/settings/color--portal.css +1 -1
  139. package/dist/settings/color.accent--blue.css +1 -1
  140. package/dist/settings/color.accent--purple.css +1 -1
  141. package/dist/settings/color.css +1 -1
  142. package/dist/settings/demo.css +1 -1
  143. package/dist/settings/font/demo-family.css +1 -1
  144. package/dist/settings/font/demo-size.css +1 -1
  145. package/dist/settings/font/demo-style.css +1 -1
  146. package/dist/settings/font/demo-weight.css +1 -1
  147. package/dist/settings/font--cms.css +1 -1
  148. package/dist/settings/font--docs.css +1 -1
  149. package/dist/settings/font--portal.css +1 -1
  150. package/dist/settings/font.css +1 -1
  151. package/dist/settings/max-width.css +1 -1
  152. package/dist/settings/space.css +1 -1
  153. package/dist/tools/README.css +1 -1
  154. package/dist/tools/c-form.selectors.css +1 -0
  155. package/dist/tools/media-queries.css +1 -1
  156. package/dist/tools/s-form.css +1 -0
  157. package/dist/tools/selectors.common.css +1 -1
  158. package/dist/tools/selectors.css +1 -1
  159. package/dist/tools/selectors.form.css +1 -0
  160. package/dist/tools/selectors.monospace.css +1 -1
  161. package/dist/tools/x-article-link.css +1 -1
  162. package/dist/tools/x-blockquote.css +1 -1
  163. package/dist/tools/x-center.css +1 -1
  164. package/dist/tools/x-fake-border.css +1 -1
  165. package/dist/tools/x-figure.css +1 -1
  166. package/dist/tools/x-grid.css +1 -1
  167. package/dist/tools/x-layout.css +1 -1
  168. package/dist/tools/x-link.css +1 -1
  169. package/dist/tools/x-mailto-text-replace.css +1 -1
  170. package/dist/tools/x-overlay.css +1 -1
  171. package/dist/tools/x-tabs/demo.css +1 -1
  172. package/dist/tools/x-tabs.css +1 -1
  173. package/dist/tools/x-tabs.skin.css +1 -1
  174. package/dist/tools/x-tabs.structure.css +1 -1
  175. package/dist/tools/x-truncate.css +1 -1
  176. package/dist/trumps/README.css +1 -1
  177. package/dist/trumps/demo.css +1 -1
  178. package/dist/trumps/s-affixed-input-wrapper/demo.css +1 -1
  179. package/dist/trumps/s-affixed-input-wrapper.css +1 -1
  180. package/dist/trumps/s-article-list.css +1 -1
  181. package/dist/trumps/s-article-preview.css +1 -1
  182. package/dist/trumps/s-blockquote.css +1 -1
  183. package/dist/trumps/s-breadcrumbs.css +1 -1
  184. package/dist/trumps/s-cms-nav.css +1 -1
  185. package/dist/trumps/s-document.css +1 -1
  186. package/dist/trumps/s-footer.css +1 -1
  187. package/dist/trumps/s-form--cms.css +1 -0
  188. package/dist/trumps/s-form--portal.css +1 -0
  189. package/dist/trumps/s-form.css +1 -0
  190. package/dist/trumps/s-form.selectors.css +1 -0
  191. package/dist/trumps/s-guide-doc.css +1 -1
  192. package/dist/trumps/s-header.bootstrap.css +1 -1
  193. package/dist/trumps/s-header.css +1 -1
  194. package/dist/trumps/s-image-grid.css +1 -1
  195. package/dist/trumps/s-inline-dl.css +1 -1
  196. package/dist/trumps/s-irregular-links.css +1 -1
  197. package/dist/trumps/s-paragraph-table.css +1 -1
  198. package/dist/trumps/s-portal-nav.css +1 -1
  199. package/dist/trumps/s-style-guide.css +1 -1
  200. package/dist/trumps/s-system-specs.css +1 -1
  201. package/dist/trumps/tacc-search-bar.css +1 -1
  202. package/dist/trumps/u-empty.css +1 -1
  203. package/dist/trumps/u-hide.css +1 -1
  204. package/dist/trumps/u-mailto-text-replace.css +1 -1
  205. package/dist/trumps/u-nested-text-content.css +1 -1
  206. package/docs/bootstrap.md +52 -0
  207. package/docs/contributing.config.yml +1 -0
  208. package/docs/contributing.md +1 -0
  209. package/docs/shortcuts/forms.md +11 -0
  210. package/docs/shortcuts/tables.md +5 -3
  211. package/package.json +1 -1
  212. package/src/lib/_imports/_partials/field-errors.hbs +1 -0
  213. package/src/lib/_imports/_partials/form-errors.hbs +12 -0
  214. package/src/lib/_imports/_partials/form.hbs +431 -0
  215. package/src/lib/_imports/_partials/link-list.hbs +19 -9
  216. package/src/lib/_imports/components/c-button.css +4 -4
  217. package/src/lib/_imports/components/c-form/c-form.hbs +1 -366
  218. package/src/lib/_imports/components/c-form/config.yml +19 -5
  219. package/src/lib/_imports/components/c-form/readme.md +1 -7
  220. package/src/lib/_imports/components/c-form/toggle-required-fields.js +35 -19
  221. package/src/lib/_imports/components/c-form--cms.css +3 -2
  222. package/src/lib/_imports/components/c-form--portal.css +3 -2
  223. package/src/lib/_imports/components/c-form.css +53 -57
  224. package/src/lib/_imports/components/c-form.selectors.css +37 -0
  225. package/src/lib/_imports/components/django-cms-forms/config.yml +35 -3
  226. package/src/lib/_imports/components/django-cms-forms/django-cms-forms.hbs +1 -408
  227. package/src/lib/_imports/components/django-cms-forms.css +12 -168
  228. package/src/lib/_imports/components/django-cms-forms.selectors.css +37 -0
  229. package/src/lib/_imports/components/pymdownx--tabbed.css +1 -1
  230. package/src/lib/_imports/core-styles.base.css +2 -0
  231. package/src/lib/_imports/core-styles.cms.css +0 -1
  232. package/src/lib/_imports/core-styles.docs.css +0 -1
  233. package/src/lib/_imports/elements/{form.cms.css → form.css} +11 -3
  234. package/src/lib/_imports/elements/html-elements.cms.css +3 -0
  235. package/src/lib/_imports/elements/html-elements.css +1 -1
  236. package/src/lib/_imports/tools/selectors.form.css +71 -0
  237. package/src/lib/_imports/trumps/s-affixed-input-wrapper.css +4 -2
  238. package/src/lib/_imports/trumps/s-form/config.yml +23 -0
  239. package/src/lib/_imports/trumps/s-form/readme.md +8 -0
  240. package/src/lib/_imports/trumps/s-form/s-form.hbs +1 -0
  241. package/src/lib/_imports/trumps/s-form--cms.css +1 -0
  242. package/src/lib/_imports/trumps/s-form--portal.css +1 -0
  243. package/src/lib/_imports/trumps/s-form.css +2 -0
  244. package/src/lib/_imports/trumps/s-form.selectors.css +38 -0
  245. package/dist/components/django-cms-forms--errors-via-c-message.css +0 -1
  246. package/dist/elements/form.cms.css +0 -1
  247. package/src/lib/_imports/components/django-cms-forms--errors-via-c-message.css +0 -23
  248. /package/docs/{index.md → 01-index.md} +0 -0
@@ -1,408 +1 @@
1
- {{> @message
2
- tag="p"
3
- content='This component is maintained simuiltaneously with <a href="../detail/c-form" target="_parent">C Form</code></a> and should look identical. Eventually, the two should have a single source of truth. To learn more, read <a href="https://confluence.tacc.utexas.edu/x/vJd9E" target="_blank">(Confluence) APCD - Form Markup &amp; Styles</a>.'
4
- }}
5
- <div class="forms">
6
-
7
- <h3 class="title">Title of Form</h3>
8
- <div class="description">
9
- I describe the form, but not very well.
10
- </div>
11
-
12
- <div class="form-wrapper">
13
- <form action="" method="POST" enctype="multipart/form-data">
14
- <div class="form-errors" style="display:none;">
15
- <ul class="errorlist">
16
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
17
- </ul>
18
- </div>
19
-
20
- <div class="field-wrapper textinput required">
21
- <div class="field-errors" style="display:none;">
22
- <ul class="errorlist">
23
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
24
- </ul>
25
- </div>
26
-
27
- <label for="name">
28
- Name<span class="asterisk">*</span>
29
- </label>
30
-
31
- <input
32
- type="text"
33
- name="name"
34
- required=""
35
- placeholder="Your name"
36
- class="textinput"
37
- id="name"
38
- />
39
-
40
- <div id="help-text-name" class="help-text">
41
- We use this to identify your submission.
42
- </div>
43
- </div>
44
-
45
- <div class="field-wrapper select">
46
- <div class="field-errors" style="display:none;">
47
- <ul class="errorlist">
48
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
49
- </ul>
50
- </div>
51
-
52
- <label for="favorite-fruit">Favorite Fruit</label>
53
-
54
- <select name="favorite-fruit" class="choicefield" id="favorite-fruit">
55
- <option value="" selected="">
56
- Please select an option
57
- </option>
58
- <option value="Apple">Apple</option>
59
- <option value="Banana">Banana</option>
60
- <option value="Cherry">Cherry</option>
61
- <option value="Durian">Durian</option>
62
- <option value="Other">Other</option>
63
- <option value="Whatever">Whatever</option>
64
- </select>
65
-
66
- <div id="help-text-favorite-fruit" class="help-text">
67
- Choose your favorite fruit.
68
- </div>
69
- </div>
70
-
71
- <div class="field-wrapper timeinput">
72
- <div class="field-errors" style="display:none;">
73
- <ul class="errorlist">
74
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
75
- </ul>
76
- </div>
77
-
78
- <label for="wake-up-time">Wake Up Time</label>
79
-
80
- <input
81
- type="time"
82
- name="wake-up-time"
83
- class="timeinput"
84
- id="wake-up-time"
85
- />
86
-
87
- <div id="help-text-wake-up-time" class="help-text">
88
- We use this to know when to wake you up.
89
- </div>
90
- </div>
91
-
92
- <div class="field-wrapper radioselect">
93
- <div class="field-errors" style="display:none;">
94
- <ul class="errorlist">
95
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
96
- </ul>
97
- </div>
98
-
99
- <label for="radio-stations_0">Radio stations</label>
100
-
101
- <ul id="radio-stations" class="radioselect">
102
- <li>
103
- <label for="radio-stations_0">
104
- <input
105
- type="radio"
106
- name="radio-stations"
107
- value="LX 1234"
108
- class="radioselect"
109
- id="radio-stations_0"
110
- />
111
- LX 1234
112
- </label>
113
- </li>
114
- <li>
115
- <label for="radio-stations_1">
116
- <input
117
- type="radio"
118
- name="radio-stations"
119
- value="LOVE 45"
120
- class="radioselect"
121
- id="radio-stations_1"
122
- />
123
- LOVE 45
124
- </label>
125
- </li>
126
- <li>
127
- <label for="radio-stations_2">
128
- <input
129
- type="radio"
130
- name="radio-stations"
131
- value="OLD 555"
132
- class="radioselect"
133
- id="radio-stations_2"
134
- />
135
- OLD 555
136
- </label>
137
- </li>
138
- </ul>
139
-
140
- <div id="help-text-radio-stations" class="help-text">
141
- Which radio stations do you prefer?
142
- </div>
143
- </div>
144
-
145
- <div class="field-wrapper checkboxinput">
146
- <div class="field-errors" style="display:none;">
147
- <ul class="errorlist">
148
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
149
- </ul>
150
- </div>
151
-
152
- <input
153
- type="checkbox"
154
- name="checking-out"
155
- class="booleanfield"
156
- id="checking-out"
157
- />
158
-
159
- <label for="checking-out">Checking Out?</label>
160
-
161
- <div id="help-text-checking-out" class="help-text">
162
- Are you checking out today?
163
- </div>
164
- </div>
165
-
166
- <div class="field-wrapper checkboxselectmultiple">
167
- <div class="field-errors" style="display:none;">
168
- <ul class="errorlist">
169
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
170
- </ul>
171
- </div>
172
-
173
- <label>
174
- Which fish do you want?
175
- </label>
176
-
177
- <ul id="which-fish-do-you-want" class="checkboxselectmultiple">
178
- <li>
179
- <label for="which-fish-do-you-want_0">
180
- <input
181
- type="checkbox"
182
- name="which-fish-do-you-want"
183
- value="one fish"
184
- class="checkboxselectmultiple"
185
- id="which-fish-do-you-want_0"
186
- />
187
- one fish
188
- </label>
189
- </li>
190
- <li>
191
- <label for="which-fish-do-you-want_1">
192
- <input
193
- type="checkbox"
194
- name="which-fish-do-you-want"
195
- value="two fish"
196
- class="checkboxselectmultiple"
197
- id="which-fish-do-you-want_1"
198
- />
199
- two fish
200
- </label>
201
- </li>
202
- <li>
203
- <label for="which-fish-do-you-want_2">
204
- <input
205
- type="checkbox"
206
- name="which-fish-do-you-want"
207
- value="red fish"
208
- class="checkboxselectmultiple"
209
- id="which-fish-do-you-want_2"
210
- />
211
- red fish
212
- </label>
213
- </li>
214
- <li>
215
- <label for="which-fish-do-you-want_3">
216
- <input
217
- type="checkbox"
218
- name="which-fish-do-you-want"
219
- value="blue fish"
220
- class="checkboxselectmultiple"
221
- id="which-fish-do-you-want_3"
222
- />
223
- blue fish
224
- </label>
225
- </li>
226
- <li>
227
- <label for="which-fish-do-you-want_4">
228
- <input
229
- type="checkbox"
230
- name="which-fish-do-you-want"
231
- value="all the fish"
232
- class="checkboxselectmultiple"
233
- id="which-fish-do-you-want_4"
234
- />
235
- all the fish
236
- </label>
237
- </li>
238
- </ul>
239
- </div>
240
-
241
- <div class="field-wrapper select">
242
- <div class="field-errors" style="display:none;">
243
- <ul class="errorlist">
244
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
245
- </ul>
246
- </div>
247
-
248
- <label for="hangry-time">Hangry Time</label>
249
-
250
- <select name="hangry-time" class="choicefield" id="hangry-time">
251
- <option value="" selected="">
252
- Please select an option
253
- </option>
254
- <option value="Morning">Morning</option>
255
- <option value="Noon">Noon</option>
256
- <option value="Afternoon">Afternoon</option>
257
- <option value="Evening">Evening</option>
258
- <option value="Night">Night</option>
259
- <option value="Midnight">Midnight</option>
260
- </select>
261
-
262
- <div id="help-text-hangry-time" class="help-text">
263
- At which time of day do you get hangry?
264
- </div>
265
- </div>
266
-
267
- <div class="field-wrapper textarea">
268
- <div class="field-errors" style="display:none;">
269
- <ul class="errorlist">
270
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
271
- </ul>
272
- </div>
273
-
274
- <label for="life-story">Life Story</label>
275
-
276
- <textarea
277
- name="life-story"
278
- cols="40"
279
- rows="10"
280
- class="textarea"
281
- id="life-story"
282
- ></textarea>
283
-
284
- <div id="help-text-life-story" class="help-text">
285
- Go on, tell me everything.
286
- </div>
287
- </div>
288
-
289
- <div class="field-wrapper dateinput">
290
- <div class="field-errors" style="display:none;">
291
- <ul class="errorlist">
292
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
293
- </ul>
294
- </div>
295
-
296
- <label for="what-day-is-it">What day is it?</label>
297
-
298
- <input
299
- type="date"
300
- name="what-day-is-it"
301
- class="dateinput"
302
- id="what-day-is-it"
303
- />
304
-
305
- <div id="help-text-what-day-is-it" class="help-text">
306
- Please enter today's date.
307
- </div>
308
- </div>
309
-
310
- <div class="field-wrapper clearablefileinput">
311
- <div class="field-errors" style="display:none;">
312
- <ul class="errorlist">
313
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
314
- </ul>
315
- </div>
316
-
317
- <label for="your-favorite-picture">Your favorite picture</label>
318
-
319
- <input
320
- type="file"
321
- name="your-favorite-picture"
322
- class="filefield"
323
- id="your-favorite-picture"
324
- />
325
-
326
- <div id="help-text-your-favorite-picture" class="help-text">
327
- Upload your favorite image.
328
- <small>
329
- Supported types:
330
- <code>.jpeg</code>,<code>.jpg</code>,<code>.gif</code>,<code>.png</code>
331
- </small>
332
- </div>
333
- </div>
334
-
335
- <div class="field-wrapper recaptchav2checkbox required">
336
- <div class="field-errors" style="display:none;">
337
- <ul class="errorlist">
338
- <li>Sample <strong>form</strong> error. <a href="#">Link.</a></li>
339
- </ul>
340
- </div>
341
-
342
- <label for="recaptcha_g9y93gP8">
343
- Are you a robot?<span class="asterisk">*</span>
344
- </label>
345
-
346
- <script src="https://www.google.com/recaptcha/api.js"></script>
347
- <script type="text/javascript">
348
- // Submit function to be called, after reCAPTCHA was successful. var
349
- onSubmit_9e32f28ccb9545109ff6ae891f9af324 = function(token){" "}
350
- {console.log("reCAPTCHA validated for 'data-widget-uuid=\"9e32f28ccb9545109ff6ae891f9af324\"'")};
351
- </script>
352
- <div class="g-recaptcha" data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI" required="" id="recaptcha_g9y93gP8" data-widget-uuid="9e32f28ccb9545109ff6ae891f9af324" data-callback="onSubmit_9e32f28ccb9545109ff6ae891f9af324" data-size="normal"></div>
353
- </div>
354
-
355
- <div class="button-wrapper submit">
356
- <button class="form-button" type="submit" value="Submit">
357
- Submit
358
- </button>
359
- <button id="toggle-field-errors" class="form-button" type="button">
360
- Toggle Field Errors
361
- </button>
362
- <button id="toggle-required-fields" class="form-button" type="button">
363
- Toggle Required Fields
364
- </button>
365
- </div>
366
- </form>
367
- </div>
368
-
369
- </div>
370
-
371
- <script type="module">
372
- import toggleFieldErrors from '{{ path "/components/raw/c-form/toggle-field-errors.js" }}';
373
-
374
- document.addEventListener('DOMContentLoaded', () => {
375
- const toggle = document.getElementById('toggle-field-errors');
376
- const scope = document.querySelector('div.forms');
377
-
378
- toggle.addEventListener('click', () => {
379
- toggleFieldErrors( scope, '.field-errors, .form-errors');
380
- });
381
- });
382
- </script>
383
- <script type="module">
384
- import toggleRequiredFields from '{{ path "/components/raw/c-form/toggle-required-fields.js" }}';
385
-
386
- document.addEventListener('DOMContentLoaded', () => {
387
- const toggle = document.getElementById('toggle-required-fields');
388
- const form = toggle.closest('form');
389
-
390
- toggle.addEventListener('click', () => {
391
- toggleRequiredFields( form, 'field-wrapper', 'required', {
392
- shouldScrollToFirst: true
393
- });
394
- });
395
- });
396
- </script>
397
- <script type="module">
398
- document.addEventListener('DOMContentLoaded', () => {
399
- const form = document.querySelector('form');
400
-
401
- form.addEventListener('submit', event => {
402
- event.preventDefault();
403
-
404
- /* TODO: Show success message on form */
405
- alert('Form was not submitted, because this is an incomplete demo.');
406
- });
407
- });
408
- </script>
1
+ {{> @form class=classNames selectors=selectors message=message }}
@@ -1,176 +1,20 @@
1
- @import url("../components/c-button.css");
2
- @import url("../components/c-message.css");
3
- @import url("../components/c-message--expanded.css");
1
+ /* FAQ: c-form.css styles s-form and django-cms-forms */
2
+ @import url("./c-form.css");
3
+ @import url("./c-form--cms.css");
4
4
 
5
5
  @import url("./django-cms-forms.hacks.css");
6
- @import url("./django-cms-forms--errors-via-c-message.css");
7
6
 
7
+ /* No other styles necessary, because c-form supports s-form selectors */
8
+ /* SEE ../components/c-form.css */
9
+ /* SEE: ../tools/selectors.form.css */
8
10
 
11
+ @custom-selector :--cms-form__field--no-checkbox
12
+ .field-wrapper:where(:not(.checkboxinput));
9
13
 
10
- /* Title & Description */
11
-
12
- .description {
13
- margin-block: 25px;
14
- }
15
-
16
-
17
-
18
- /* Help Text */
19
-
20
- .help-text {
21
- font-size: var(--global-font-size--small);
22
- font-style: italic;
23
- }
24
- :not(
25
- ul, /* FAQ: Lists already have margin-bottom */
26
- label /* FAQ: Labels already have margin-bottom */
27
- ) + .help-text {
28
- margin-top: 0.3em; /* mimic Bootstrap _reboot.css label margin-bottom */
29
- }
30
- /* To prevent help text font-style from affecting any tags */
31
- /* FAQ: Help text can contain inline elements like <samp> */
32
- /* FAQ: Help text can be (ab)used to add headings between form fields */
33
- .help-text > :not(details, a, samp) {
34
- font-style: initial;
35
- }
36
-
37
-
38
-
39
- /* Fields */
40
-
41
- .field-wrapper {
42
- margin-bottom: 2rem; /* mimic <p> `margin-bottom` */
43
- }
44
-
45
- .field-wrapper:not(.checkboxinput) {
14
+ :--cms-form__field--no-checkbox {
46
15
  display: flex;
47
16
  flex-direction: column;
17
+ width: max-content;
48
18
  }
49
- .field-wrapper:not(.checkboxinput) > .field-errors {
50
- order: 1; /* i.e. move to end */
51
- }
52
-
53
- .field-wrapper.checkboxinput {
54
- display: inline-grid;
55
-
56
- column-gap: 0.5em;
57
- align-items: center;
58
- grid-template-columns: min-content auto; /* shrink input, let label extend */
59
- grid-template-areas:
60
- 'error _____'
61
- 'input label'
62
- 'notes notes';
63
- }
64
- .field-wrapper.checkboxinput .field-errors { grid-area: error; }
65
- .field-wrapper.checkboxinput input { grid-area: input; }
66
- .field-wrapper.checkboxinput label { grid-area: label; }
67
- .field-wrapper.checkboxinput .help-text { grid-area: notes; }
68
- .field-wrapper.checkboxinput label {
69
- margin-bottom: 0; /* overwrite forms.css label */
70
- }
71
-
72
- ul.radioselect label,
73
- ul.checkboxselectmultiple label {
74
- display: flex;
75
- gap: 0.5em;
76
- align-items: center;
77
- font-weight: revert; /* undo html-elements.cms.css */
78
- }
79
- ul.radioselect li:last-child label,
80
- ul.checkboxselectmultiple li:last-child label {
81
- margin-bottom: 0; /* overwrite forms.css label */
82
- }
83
-
84
- /* Field: Required, Asterisk, Important */
85
-
86
- .field-wrapper .asterisk {
87
- margin-left: 0.5em;
88
- }
89
- .field-wrapper.required .asterisk {
90
- color: var(--global-color-danger--dark);
91
- }
92
- .field-wrapper:not(.required) .asterisk
93
- /* NOTE: Manual markup ONLY; form plugin can't render non-required asterisk */ {
94
- color: var(--global-color-warning--dark);
95
- }
96
- /* To replace asterisk character with text */
97
- .field-wrapper .asterisk {
98
- width: 0;
99
- display: inline-block;
100
- visibility: hidden;
101
- line-height: 0;
102
- }
103
- .field-wrapper .asterisk::after {
104
- visibility: visible;
105
- line-height: initial;
106
- }
107
- .field-wrapper.required .asterisk::after {
108
- content: '(required)';
109
- }
110
- .field-wrapper:not(.required) .asterisk::after
111
- /* NOTE: Manual markup ONLY; form plugin can't render non-required asterisk */ {
112
- content: '(important)';
113
- }
114
-
115
-
116
-
117
- /* Errors */
118
-
119
- .field-errors ul {
120
- margin-top: 1rem; /* mimic ul margin-bottom */
121
- }
122
- .form-errors ul,
123
- .field-errors ul {
124
- margin-bottom: 0; /* overwrite ul margin-bottom */
125
- }
126
- .form-errors {
127
- margin-bottom: 1rem; /* mimic ul margin-bottom */
128
- }
129
-
130
- .form-errors ul,
131
- .field-errors ul {
132
- list-style: none;
133
- padding-inline: 0;
134
- }
135
-
136
-
137
-
138
- /* Lists */
139
-
140
- ul.radioselect,
141
- ul.checkboxselectmultiple {
142
- list-style: none;
143
-
144
- padding-left: 0;
145
- }
146
-
147
-
148
-
149
- /* Layout */
150
-
151
- .button-wrapper {
152
- margin-top: 35px;
153
- }
154
-
155
-
156
-
157
- /* Button */
158
-
159
- /* To style obvious buttons that neglect class */
160
- .button-wrapper button[type="submit"] {
161
- @extend :--c-button;
162
- @extend :--c-button--primary;
163
- }
164
-
165
- .form-button {
166
- @extend :--c-button;
167
- }
168
- .form-button[type="submit"] {
169
- @extend :--c-button--primary;
170
- }
171
- .form-button:where(:not([type="submit"], [type="reset"])) {
172
- @extend :--c-button--secondary;
173
- }
174
- .form-button[type="reset"] {
175
- @extend :--c-button--tertiary;
176
- }
19
+ :--cms-form__field--no-checkbox > .field-errors { order: 1; }
20
+ :--cms-form__field--no-checkbox > .help-text { order: 2; }
@@ -0,0 +1,37 @@
1
+ @custom-selector :--cms-form
2
+ .forms;
3
+
4
+ @custom-selector :--cms-form__title
5
+ .title;
6
+ @custom-selector :--cms-form__desc
7
+ .description;
8
+
9
+ @custom-selector :--cms-form__errors
10
+ :where(.form-errors, .field-errors);
11
+ @custom-selector :--cms-form__errors_list
12
+ .errorlist;
13
+ @custom-selector :--cms-form__errors--form /* submission errors */
14
+ :where(.form-errors .errorlist);
15
+ @custom-selector :--cms-form__errors--field /* validation errors */
16
+ :where(.field-errors .errorlist);
17
+
18
+ @custom-selector :--cms-form__field
19
+ .field-wrapper;
20
+ @custom-selector :--cms-form__field--has-required
21
+ :--cms-form__field.required;
22
+ @custom-selector :--cms-form__field--has-checkbox
23
+ :--cms-form__field.checkboxinput;
24
+
25
+ @custom-selector :--cms-form__menu
26
+ :where(.radioselect, .checkboxselectmultiple);
27
+
28
+ @custom-selector :--cms-form__help
29
+ .help-text;
30
+
31
+ @custom-selector :--cms-form__badge
32
+ .asterisk;
33
+
34
+ @custom-selector :--cms-form__buttons
35
+ .button-wrapper;
36
+ @custom-selector :--cms-form__button
37
+ .form_button;
@@ -14,7 +14,7 @@
14
14
  .tabbed-set > label {
15
15
  @extend .x-tabs__tab;
16
16
 
17
- margin-bottom: unset; /* overwrite form.cms.css which core-style.docs loads */
17
+ margin-bottom: unset; /* overwrite form.css which core-style.docs loads */
18
18
  }
19
19
  .tabbed-set > label:hover {
20
20
  @extend .x-tabs__tab--hover;
@@ -18,6 +18,7 @@
18
18
  @import url("./elements/root.css");
19
19
  /* NOTE: Load generic html-elements.css before specific elements/….css */
20
20
  @import url("./elements/html-elements.css");
21
+ @import url("./elements/form.css");
21
22
  @import url("./elements/links.css");
22
23
  @import url("./elements/table.css");
23
24
 
@@ -45,6 +46,7 @@
45
46
 
46
47
  /* TRUMPS */
47
48
  @import url("./trumps/s-affixed-input-wrapper.css");
49
+ @import url("./trumps/s-form.css");
48
50
  @import url("./trumps/s-blockquote.css");
49
51
  @import url("./trumps/s-breadcrumbs.css");
50
52
  @import url("./trumps/s-footer.css");
@@ -20,7 +20,6 @@
20
20
  @import url("./elements/html-elements.cms.css");
21
21
  @import url("./elements/headings--cms.css");
22
22
  @import url("./elements/monospace.css");
23
- @import url("./elements/form.cms.css");
24
23
  @import url("./elements/table.cms.css");
25
24
 
26
25
  /* OBJECTS */
@@ -14,7 +14,6 @@
14
14
 
15
15
  /* ELEMENTS */
16
16
  @import url("./elements/root--docs.css");
17
- @import url("./elements/form.cms.css");
18
17
  @import url("./elements/html-elements.cms.css");
19
18
  @import url("./elements/html-elements.docs.css");
20
19
  @import url("./elements/headings--docs.css");