@bloom-housing/ui-components 2.0.0-pre-tailwind

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 (223) hide show
  1. package/.jest/setup-tests.js +24 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +195 -0
  4. package/index.ts +148 -0
  5. package/jest.config.js +41 -0
  6. package/package.json +98 -0
  7. package/public/images/alameda-logo-white.svg +1 -0
  8. package/public/images/arrow-down.png +0 -0
  9. package/public/images/arrow-down.svg +1 -0
  10. package/public/images/check.png +0 -0
  11. package/public/images/check.svg +11 -0
  12. package/public/images/eho-logo-white.svg +1 -0
  13. package/public/images/eho-logo.svg +1 -0
  14. package/public/images/logo_glyph.svg +11 -0
  15. package/src/actions/Button.scss +157 -0
  16. package/src/actions/Button.tsx +80 -0
  17. package/src/actions/ExpandableContent.tsx +29 -0
  18. package/src/actions/ExpandableText.scss +18 -0
  19. package/src/actions/ExpandableText.tsx +52 -0
  20. package/src/actions/LinkButton.tsx +30 -0
  21. package/src/actions/LocalizedLink.tsx +11 -0
  22. package/src/authentication/AuthContext.ts +327 -0
  23. package/src/authentication/RequireLogin.tsx +62 -0
  24. package/src/authentication/index.ts +5 -0
  25. package/src/authentication/timeout.tsx +127 -0
  26. package/src/authentication/token.ts +17 -0
  27. package/src/authentication/useRequireLoggedInUser.ts +19 -0
  28. package/src/blocks/ActionBlock.scss +108 -0
  29. package/src/blocks/ActionBlock.tsx +51 -0
  30. package/src/blocks/AppStatusItem.scss +140 -0
  31. package/src/blocks/AppStatusItem.tsx +75 -0
  32. package/src/blocks/DashBlock.tsx +42 -0
  33. package/src/blocks/DashBlocks.scss +56 -0
  34. package/src/blocks/DashBlocks.tsx +7 -0
  35. package/src/blocks/FormCard.scss +201 -0
  36. package/src/blocks/FormCard.tsx +29 -0
  37. package/src/blocks/HousingCounselor.tsx +51 -0
  38. package/src/blocks/ImageCard.scss +91 -0
  39. package/src/blocks/ImageCard.tsx +77 -0
  40. package/src/blocks/InfoCard.scss +42 -0
  41. package/src/blocks/InfoCard.tsx +44 -0
  42. package/src/blocks/StatusBar.scss +30 -0
  43. package/src/blocks/StatusBar.tsx +31 -0
  44. package/src/blocks/ViewItem.scss +59 -0
  45. package/src/blocks/ViewItem.tsx +32 -0
  46. package/src/config/ConfigContext.tsx +36 -0
  47. package/src/config/NavigationContext.tsx +54 -0
  48. package/src/config/index.ts +2 -0
  49. package/src/footers/ExygyFooter.tsx +12 -0
  50. package/src/footers/SiteFooter.scss +28 -0
  51. package/src/footers/SiteFooter.tsx +10 -0
  52. package/src/forms/CloudinaryUpload.ts +50 -0
  53. package/src/forms/DOBField.tsx +132 -0
  54. package/src/forms/DateField.tsx +120 -0
  55. package/src/forms/Dropzone.scss +17 -0
  56. package/src/forms/Dropzone.tsx +67 -0
  57. package/src/forms/Field.tsx +115 -0
  58. package/src/forms/FieldGroup.tsx +82 -0
  59. package/src/forms/Form.tsx +22 -0
  60. package/src/forms/HouseholdMemberForm.tsx +41 -0
  61. package/src/forms/HouseholdSizeField.tsx +74 -0
  62. package/src/forms/PhoneField.tsx +69 -0
  63. package/src/forms/PhoneMask.tsx +24 -0
  64. package/src/forms/Select.tsx +80 -0
  65. package/src/forms/Textarea.scss +40 -0
  66. package/src/forms/Textarea.tsx +64 -0
  67. package/src/forms/TimeField.tsx +176 -0
  68. package/src/global/AppearanceTypes.ts +46 -0
  69. package/src/global/ApplicationStatusType.ts +6 -0
  70. package/src/global/accordion.scss +4 -0
  71. package/src/global/blocks.scss +137 -0
  72. package/src/global/custom_counter.scss +50 -0
  73. package/src/global/forms.scss +362 -0
  74. package/src/global/headers.scss +89 -0
  75. package/src/global/homepage.scss +8 -0
  76. package/src/global/index.scss +72 -0
  77. package/src/global/lists.scss +21 -0
  78. package/src/global/markdown.scss +33 -0
  79. package/src/global/mixins.scss +175 -0
  80. package/src/global/navbar.scss +280 -0
  81. package/src/global/print.scss +59 -0
  82. package/src/global/tables.scss +197 -0
  83. package/src/global/text.scss +141 -0
  84. package/src/global/vendor/AgPagination.tsx +133 -0
  85. package/src/global/vendor/_setup_bulma.scss +31 -0
  86. package/src/global/vendor/ag_grid.scss +140 -0
  87. package/src/headers/Hero.scss +56 -0
  88. package/src/headers/Hero.tsx +76 -0
  89. package/src/headers/PageHeader.scss +31 -0
  90. package/src/headers/PageHeader.tsx +39 -0
  91. package/src/headers/SiteHeader.tsx +136 -0
  92. package/src/helpers/address.tsx +46 -0
  93. package/src/helpers/blankApplication.ts +108 -0
  94. package/src/helpers/capitalize.tsx +7 -0
  95. package/src/helpers/dateToString.ts +11 -0
  96. package/src/helpers/debounce.ts +12 -0
  97. package/src/helpers/formOptions.tsx +229 -0
  98. package/src/helpers/formatYesNoLabel.ts +9 -0
  99. package/src/helpers/getTranslationWithArguments.ts +14 -0
  100. package/src/helpers/links.ts +7 -0
  101. package/src/helpers/localeRoute.tsx +13 -0
  102. package/src/helpers/mergeDeep.ts +12 -0
  103. package/src/helpers/nextjs.ts +7 -0
  104. package/src/helpers/numberOrdinal.ts +17 -0
  105. package/src/helpers/occupancyFormatting.tsx +46 -0
  106. package/src/helpers/pdfs.ts +19 -0
  107. package/src/helpers/photos.ts +19 -0
  108. package/src/helpers/preferences.tsx +426 -0
  109. package/src/helpers/resolveObject.ts +5 -0
  110. package/src/helpers/state.tsx +7 -0
  111. package/src/helpers/tableSummaries.tsx +80 -0
  112. package/src/helpers/translator.tsx +37 -0
  113. package/src/helpers/useKeyPress.ts +17 -0
  114. package/src/helpers/useMutate.ts +40 -0
  115. package/src/helpers/useOutsideClick.ts +25 -0
  116. package/src/helpers/validators.ts +3 -0
  117. package/src/icons/HeaderBadge.scss +29 -0
  118. package/src/icons/HeaderBadge.tsx +38 -0
  119. package/src/icons/Icon.scss +76 -0
  120. package/src/icons/Icon.tsx +145 -0
  121. package/src/icons/Icons.tsx +556 -0
  122. package/src/lists/PreferencesList.scss +72 -0
  123. package/src/lists/PreferencesList.tsx +60 -0
  124. package/src/locales/es.json +745 -0
  125. package/src/locales/general.json +1307 -0
  126. package/src/locales/general_OLD.json +868 -0
  127. package/src/locales/vi.json +745 -0
  128. package/src/locales/zh.json +745 -0
  129. package/src/navigation/Breadcrumbs.scss +25 -0
  130. package/src/navigation/Breadcrumbs.tsx +27 -0
  131. package/src/navigation/FooterNav.scss +47 -0
  132. package/src/navigation/FooterNav.tsx +19 -0
  133. package/src/navigation/LanguageNav.scss +32 -0
  134. package/src/navigation/LanguageNav.tsx +53 -0
  135. package/src/navigation/ProgressNav.scss +102 -0
  136. package/src/navigation/ProgressNav.tsx +50 -0
  137. package/src/navigation/TabNav.scss +38 -0
  138. package/src/navigation/TabNav.tsx +69 -0
  139. package/src/navigation/Tabs.scss +65 -0
  140. package/src/navigation/Tabs.tsx +93 -0
  141. package/src/navigation/UserNav.tsx +37 -0
  142. package/src/notifications/AlertBox.scss +78 -0
  143. package/src/notifications/AlertBox.tsx +79 -0
  144. package/src/notifications/AlertNotice.scss +58 -0
  145. package/src/notifications/AlertNotice.tsx +37 -0
  146. package/src/notifications/ApplicationStatus.scss +10 -0
  147. package/src/notifications/ApplicationStatus.tsx +64 -0
  148. package/src/notifications/ErrorMessage.tsx +15 -0
  149. package/src/notifications/SiteAlert.tsx +54 -0
  150. package/src/notifications/StatusAside.scss +11 -0
  151. package/src/notifications/StatusAside.tsx +25 -0
  152. package/src/notifications/StatusMessage.scss +25 -0
  153. package/src/notifications/StatusMessage.tsx +59 -0
  154. package/src/notifications/alertTypes.ts +7 -0
  155. package/src/notifications/index.ts +4 -0
  156. package/src/overlays/Drawer.scss +105 -0
  157. package/src/overlays/Drawer.tsx +51 -0
  158. package/src/overlays/LoadingOverlay.scss +25 -0
  159. package/src/overlays/LoadingOverlay.tsx +29 -0
  160. package/src/overlays/Modal.scss +55 -0
  161. package/src/overlays/Modal.tsx +61 -0
  162. package/src/overlays/Overlay.scss +50 -0
  163. package/src/overlays/Overlay.tsx +100 -0
  164. package/src/page_components/listing/AdditionalFees.tsx +56 -0
  165. package/src/page_components/listing/ListingCard.scss +47 -0
  166. package/src/page_components/listing/ListingCard.tsx +34 -0
  167. package/src/page_components/listing/ListingDetailHeader.tsx +25 -0
  168. package/src/page_components/listing/ListingDetails.tsx +29 -0
  169. package/src/page_components/listing/ListingMap.scss +36 -0
  170. package/src/page_components/listing/ListingMap.tsx +138 -0
  171. package/src/page_components/listing/ListingsGroup.scss +65 -0
  172. package/src/page_components/listing/ListingsGroup.tsx +49 -0
  173. package/src/page_components/listing/UnitTables.tsx +111 -0
  174. package/src/page_components/listing/listing_sidebar/ApplicationSection.tsx +49 -0
  175. package/src/page_components/listing/listing_sidebar/Apply.tsx +225 -0
  176. package/src/page_components/listing/listing_sidebar/LeasingAgent.tsx +77 -0
  177. package/src/page_components/listing/listing_sidebar/ListingUpdated.tsx +20 -0
  178. package/src/page_components/listing/listing_sidebar/ReferralApplication.tsx +28 -0
  179. package/src/page_components/listing/listing_sidebar/SidebarAddress.tsx +56 -0
  180. package/src/page_components/listing/listing_sidebar/Waitlist.tsx +94 -0
  181. package/src/page_components/listing/listing_sidebar/WhatToExpect.tsx +22 -0
  182. package/src/page_components/listing/listing_sidebar/events/DownloadLotteryResults.tsx +34 -0
  183. package/src/page_components/listing/listing_sidebar/events/EventDateSection.tsx +24 -0
  184. package/src/page_components/listing/listing_sidebar/events/LotteryResultsEvent.tsx +26 -0
  185. package/src/page_components/listing/listing_sidebar/events/OpenHouseEvent.tsx +27 -0
  186. package/src/page_components/listing/listing_sidebar/events/PublicLotteryEvent.tsx +22 -0
  187. package/src/prototypes/AppCard.scss +64 -0
  188. package/src/prototypes/Back.scss +19 -0
  189. package/src/prototypes/ButtonGroup.scss +6 -0
  190. package/src/prototypes/ButtonPager.scss +22 -0
  191. package/src/prototypes/FieldSection.scss +35 -0
  192. package/src/prototypes/FieldSection.tsx +31 -0
  193. package/src/prototypes/GridItem.tsx +15 -0
  194. package/src/prototypes/SideNav.scss +32 -0
  195. package/src/prototypes/SideNav.tsx +14 -0
  196. package/src/prototypes/SummaryCard.scss +34 -0
  197. package/src/sections/ContentSection.scss +15 -0
  198. package/src/sections/ContentSection.tsx +25 -0
  199. package/src/sections/FooterSection.scss +6 -0
  200. package/src/sections/FooterSection.tsx +16 -0
  201. package/src/sections/GridSection.scss +72 -0
  202. package/src/sections/GridSection.tsx +82 -0
  203. package/src/sections/InfoCardGrid.scss +45 -0
  204. package/src/sections/InfoCardGrid.tsx +20 -0
  205. package/src/sections/ListSection.scss +7 -0
  206. package/src/sections/ListSection.tsx +23 -0
  207. package/src/sections/MarkdownSection.scss +13 -0
  208. package/src/sections/MarkdownSection.tsx +21 -0
  209. package/src/sections/ResponsiveContentList.tsx +67 -0
  210. package/src/sections/ResponsiveWrappers.tsx +23 -0
  211. package/src/tables/GroupedTable.tsx +86 -0
  212. package/src/tables/MinimalTable.tsx +32 -0
  213. package/src/tables/ResponsiveTable.tsx +24 -0
  214. package/src/tables/StandardTable.tsx +229 -0
  215. package/src/text/Description.scss +52 -0
  216. package/src/text/Description.tsx +24 -0
  217. package/src/text/Message.scss +16 -0
  218. package/src/text/Message.tsx +16 -0
  219. package/src/text/Tag.scss +94 -0
  220. package/src/text/Tag.tsx +22 -0
  221. package/tailwind.config.js +128 -0
  222. package/tailwind.tosass.js +29 -0
  223. package/tsconfig.json +31 -0
@@ -0,0 +1,50 @@
1
+ .custom-counter__item {
2
+ @screen md {
3
+ @apply mb-12;
4
+ @apply ml-8;
5
+ @apply pl-12;
6
+ @apply relative;
7
+ counter-increment: step-counter;
8
+ }
9
+ }
10
+
11
+ .custom-counter__item::before {
12
+ @screen md {
13
+ @apply absolute;
14
+ @apply font-serif;
15
+ @apply text-gray-850;
16
+ top: 0;
17
+ left: -1rem;
18
+ content: counter(step-counter);
19
+ margin-right: 5px;
20
+ font-size: 4.375rem;
21
+ line-height: 0.85;
22
+ }
23
+ }
24
+
25
+ .custom-counter__header {
26
+ @apply pb-4;
27
+
28
+ @screen md {
29
+ @apply -ml-4;
30
+ @apply pl-4;
31
+ @apply border-solid;
32
+ @apply border-l-2;
33
+ @apply border-gray-450;
34
+ @apply mb-4;
35
+ @apply mt-4;
36
+ }
37
+ }
38
+
39
+ .custom-counter__title {
40
+ @apply text-lg;
41
+
42
+ @screen md {
43
+ @apply text-xl;
44
+ }
45
+ }
46
+
47
+ .custom-counter__subtitle {
48
+ @apply text-gray-700;
49
+ @apply text-tiny;
50
+ }
@@ -0,0 +1,362 @@
1
+ .field {
2
+ margin-bottom: 1.25rem;
3
+
4
+ * > &:last-child {
5
+ margin-bottom: 0;
6
+ }
7
+
8
+ label,
9
+ .label {
10
+ @apply pb-2;
11
+ @apply text-tiny;
12
+ @apply text-gray-800;
13
+ }
14
+
15
+ label + .control {
16
+ @apply mt-2;
17
+ }
18
+
19
+ label.sr-only + .control,
20
+ label.field-label--caps + .control {
21
+ @apply mt-0;
22
+ }
23
+
24
+ .label + .field-note {
25
+ @apply mt-2;
26
+ }
27
+
28
+ .field-label--caps.label + .field-note {
29
+ @apply mt-0;
30
+ }
31
+
32
+ .control {
33
+ position: relative;
34
+
35
+ .input {
36
+ @apply border;
37
+ @apply border-gray-500;
38
+ @apply bg-gray-200;
39
+ @apply rounded;
40
+ @apply w-full;
41
+ @apply py-3;
42
+ @apply text-gray-900;
43
+ font-family: inherit;
44
+ font-size: 1rem;
45
+ line-height: normal;
46
+ }
47
+
48
+ select.input {
49
+ @apply pl-3;
50
+ @apply pr-8;
51
+ }
52
+
53
+ input.input {
54
+ @apply px-3;
55
+ }
56
+
57
+ .prepend {
58
+ @apply absolute;
59
+ @apply px-3;
60
+ @apply py-2;
61
+ @apply items-center;
62
+ @apply text-lg;
63
+ background: transparent;
64
+ }
65
+
66
+ .prepend + input[aria-invalid="false"] {
67
+ @apply pl-8;
68
+ }
69
+
70
+ .prepend + input[aria-invalid="true"] {
71
+ @apply pl-12;
72
+ }
73
+
74
+ &.control-narrower {
75
+ max-width: 8rem;
76
+ }
77
+ }
78
+
79
+ input[type="checkbox"],
80
+ input[type="radio"] {
81
+ opacity: 0;
82
+ position: absolute;
83
+ margin-left: -20px;
84
+
85
+ &:focus {
86
+ text-decoration: none;
87
+ // Appears to be for the case of no label
88
+ outline: none;
89
+ box-shadow: 0 0 0 2px #ffffff, 0 0 3px 4px $tailwind-primary;
90
+ }
91
+ }
92
+
93
+ input[type="checkbox"] + label,
94
+ input[type="radio"] + label {
95
+ cursor: pointer;
96
+ // margin-bottom: 0.5em;
97
+ margin-left: 2rem;
98
+ display: block;
99
+ text-indent: -2rem;
100
+ }
101
+
102
+ input[type="checkbox"] + label::before,
103
+ input[type="radio"] + label::before {
104
+ background: white;
105
+ border-radius: 4px;
106
+ box-shadow: 0 0 0 1px white, 0 0 0 2px map-get($tailwind-gray, 550);
107
+ content: "\a0";
108
+ display: inline-block;
109
+ height: 1.25rem;
110
+ line-height: 0.8;
111
+ margin-right: 0.8em;
112
+ text-indent: 0.15em;
113
+ vertical-align: 0.2em;
114
+ width: 1.25rem;
115
+ }
116
+
117
+ input[type="radio"] + label::before {
118
+ height: 1.2rem;
119
+ width: 1.2rem;
120
+ border-radius: 100%;
121
+ }
122
+
123
+ input[type="checkbox"]:checked + label::before,
124
+ input[type="radio"]:checked + label::before {
125
+ background-color: $tailwind-primary;
126
+ box-shadow: 0 0 0 1px $tailwind-primary;
127
+ }
128
+
129
+ input[type="radio"]:checked + label::before {
130
+ box-shadow: 0 0 0 1px white, 0 0 0 2px $tailwind-primary;
131
+ }
132
+
133
+ input[type="checkbox"]:checked + label::before {
134
+ background-image: url("/images/check.png");
135
+ background-image: url("/images/check.svg");
136
+ background-position: 50%;
137
+ background-repeat: no-repeat;
138
+ }
139
+
140
+ input[type="radio"]:focus + label::before,
141
+ input[type="checkbox"]:focus + label::before {
142
+ box-shadow: 0 0 0 1px white, 0 0 0 2px $tailwind-accent-cool, 0 0 3px 4px $tailwind-accent-cool;
143
+ }
144
+
145
+ input[type="checkbox"]:disabled + label {
146
+ color: map-get($tailwind-gray, 450) !important;
147
+ }
148
+
149
+ input[type="checkbox"]:disabled + label::before,
150
+ input[type="radio"]:disabled + label::before {
151
+ background: map-get($tailwind-gray, 400);
152
+ box-shadow: 0 0 0 1px map-get($tailwind-gray, 450);
153
+ cursor: not-allowed;
154
+ }
155
+
156
+ select {
157
+ @apply text-gray-900;
158
+ @apply rounded;
159
+ @apply border;
160
+ @apply border-gray-500;
161
+ @apply bg-gray-200;
162
+ @apply text-gray-900;
163
+ @apply leading-tight;
164
+ @apply py-2;
165
+ @apply px-3;
166
+ height: 3em;
167
+ font-family: inherit;
168
+ font-size: 1rem;
169
+ line-height: normal;
170
+ -moz-appearance: none;
171
+ -webkit-appearance: none;
172
+ appearance: none;
173
+ background-image: url("/images/arrow-down.png");
174
+ background-image: url("/images/arrow-down.svg");
175
+ background-position: right 0.75rem center;
176
+ background-repeat: no-repeat;
177
+ background-size: 0.75rem;
178
+ padding-right: 2.25rem;
179
+ }
180
+
181
+ input:disabled,
182
+ select:disabled,
183
+ textarea:disabled,
184
+ .control input:disabled,
185
+ .control select:disabled,
186
+ .control textarea:disabled {
187
+ @apply bg-gray-400;
188
+ cursor: not-allowed;
189
+ @apply text-gray-700;
190
+ @apply border-gray-500;
191
+ }
192
+
193
+ select:disabled,
194
+ .control select:disabled {
195
+ opacity: 1;
196
+ }
197
+
198
+ &.error {
199
+ label {
200
+ @apply text-red-700;
201
+ }
202
+
203
+ .control {
204
+ .input,
205
+ .prepend,
206
+ select {
207
+ @apply border-red-700;
208
+ @apply border-2;
209
+ }
210
+
211
+ .prepend {
212
+ @apply text-red-700;
213
+ }
214
+ }
215
+
216
+ .error-message {
217
+ @apply text-sm;
218
+ @apply text-red-700;
219
+ }
220
+
221
+ input[type="radio"] + label::before {
222
+ box-shadow: 0 0 0 2px #fff, 0 0 0 4px $tailwind-alert;
223
+ }
224
+
225
+ input[type="checkbox"] + label::before {
226
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px $tailwind-alert;
227
+ }
228
+ }
229
+ }
230
+
231
+ input[type],
232
+ textarea,
233
+ select {
234
+ @apply rounded;
235
+
236
+ &:focus {
237
+ outline: none;
238
+ box-shadow: 0 0 0 2px #fff, 0 0 3px 4px $tailwind-accent-cool;
239
+ }
240
+ }
241
+
242
+ input::-webkit-outer-spin-button,
243
+ input::-webkit-inner-spin-button {
244
+ -webkit-appearance: none;
245
+ margin: 0;
246
+ }
247
+
248
+ input[type="number"] {
249
+ -moz-appearance: textfield;
250
+ }
251
+
252
+ .field-group--inline {
253
+ @apply flex;
254
+
255
+ .field {
256
+ @apply mr-5;
257
+ @apply mb-0;
258
+ }
259
+ }
260
+
261
+ .field-label {
262
+ @apply pb-2;
263
+ @apply text-tiny;
264
+ @apply text-gray-800;
265
+ }
266
+
267
+ .field-label--caps {
268
+ @apply font-sans;
269
+ @apply uppercase;
270
+ @apply text-gray-750;
271
+ @apply tracking-widest;
272
+ @apply font-semibold;
273
+ @apply text-tiny;
274
+ @apply mb-3;
275
+ @apply inline-block;
276
+ }
277
+
278
+ .field--inline {
279
+ display: inline-block;
280
+ }
281
+
282
+ .field--inline + .field--inline {
283
+ margin-left: 1.5rem;
284
+ }
285
+
286
+ .flex > .field,
287
+ .field-group--date .field {
288
+ @apply flex-auto;
289
+ margin-left: 0.325rem;
290
+ margin-right: 0.325rem;
291
+ }
292
+
293
+ .flex > .field,
294
+ .field-group--date .field {
295
+ &:first-of-type {
296
+ margin-left: 0;
297
+ }
298
+ &:last-of-type {
299
+ margin-right: 0;
300
+ }
301
+ }
302
+
303
+ .field-group--date {
304
+ @apply flex;
305
+
306
+ .field {
307
+ max-width: 3.5rem;
308
+ margin-bottom: 0;
309
+
310
+ select {
311
+ padding-right: 1.75rem;
312
+ background-position: right 0.625rem center;
313
+ }
314
+
315
+ &:last-child {
316
+ max-width: 4.5rem;
317
+ }
318
+ }
319
+ }
320
+
321
+ .field-note {
322
+ @apply text-tiny;
323
+ @apply text-gray-700;
324
+ @apply font-semibold;
325
+ }
326
+
327
+ .form-section__title {
328
+ @apply font-alt-sans;
329
+ @apply text-xl;
330
+ @apply text-gray-900;
331
+ @apply font-medium;
332
+ @apply block;
333
+ @apply mb-1;
334
+ }
335
+
336
+ .form-section__description {
337
+ @apply font-sans;
338
+ @apply text-base;
339
+ @apply text-gray-750;
340
+ @apply block;
341
+ @apply mb-8;
342
+ }
343
+
344
+ progress,
345
+ ::-webkit-progress-bar {
346
+ appearance: none;
347
+ width: 100%;
348
+ @apply bg-gray-400;
349
+ border: 0;
350
+ height: 12px;
351
+ border-radius: 6px;
352
+ }
353
+ ::-webkit-progress-value {
354
+ border-radius: 6px;
355
+ @apply bg-primary;
356
+ transition: width 0.25s;
357
+ }
358
+ ::-moz-progress-bar {
359
+ border-radius: 6px;
360
+ @apply bg-primary;
361
+ transition: width 0.25s;
362
+ }
@@ -0,0 +1,89 @@
1
+ // Listing Detail
2
+ .detail-header {
3
+ @apply relative;
4
+ @apply pr-4;
5
+ @apply pb-6;
6
+ @apply pl-4;
7
+ @apply pt-4;
8
+ @apply border-b;
9
+ @apply border-gray-400;
10
+ @apply text-primary-darker;
11
+
12
+ @screen md {
13
+ @apply pt-0;
14
+ @apply pb-8;
15
+ @apply text-sm;
16
+ @apply border-none;
17
+ @apply text-gray-800;
18
+ }
19
+ }
20
+
21
+ .detail-header__image {
22
+ @apply absolute;
23
+ @apply w-12;
24
+ @apply mr-2;
25
+
26
+ @screen md {
27
+ @apply left-0;
28
+ }
29
+ }
30
+
31
+ .detail-header__hgroup {
32
+ @apply ml-12;
33
+ @apply pl-4;
34
+
35
+ @screen md {
36
+ @apply border-l-2;
37
+ @apply border-primary;
38
+ }
39
+
40
+ .ui-icon {
41
+ @apply absolute;
42
+ top: 1rem;
43
+ right: 1rem;
44
+
45
+ @screen md {
46
+ @apply hidden;
47
+ }
48
+
49
+ svg {
50
+ @apply w-3;
51
+ @apply h-3;
52
+ }
53
+ }
54
+ }
55
+
56
+ .detail-header__title {
57
+ @apply font-alt-sans;
58
+ @apply uppercase;
59
+ @apply text-tiny;
60
+ @apply tracking-widest;
61
+ @apply text-primary-darker;
62
+
63
+ @screen md {
64
+ @apply text-black;
65
+ @apply font-serif;
66
+ @apply text-3xl;
67
+ @apply normal-case;
68
+ @apply tracking-normal;
69
+ @apply text-gray-900;
70
+ }
71
+ }
72
+
73
+ .detail-header__subtitle {
74
+ @apply text-tiny;
75
+
76
+ @screen md {
77
+ @apply text-gray-700;
78
+ }
79
+ }
80
+
81
+ .toggle-header {
82
+ @apply font-sans;
83
+ @apply text-tiny;
84
+ @apply bg-primary-light;
85
+ @apply p-4;
86
+ @apply text-gray-800;
87
+ @apply border-b;
88
+ @apply border-primary;
89
+ }