@transferwise/components 0.0.0-experimental-aa49e22 → 0.0.0-experimental-9f6647e

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 (342) hide show
  1. package/build/alert/Alert.js +4 -1
  2. package/build/alert/Alert.js.map +1 -1
  3. package/build/alert/Alert.mjs +4 -1
  4. package/build/alert/Alert.mjs.map +1 -1
  5. package/build/criticalBanner/CriticalCommsBanner.js +6 -4
  6. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  7. package/build/criticalBanner/CriticalCommsBanner.mjs +6 -4
  8. package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
  9. package/build/main.css +16 -27001
  10. package/build/styles/criticalBanner/CriticalCommsBanner.css +9 -0
  11. package/build/styles/main.css +16 -27001
  12. package/build/types/alert/Alert.d.ts +2 -0
  13. package/build/types/alert/Alert.d.ts.map +1 -1
  14. package/build/types/criticalBanner/CriticalCommsBanner.d.ts +1 -0
  15. package/build/types/criticalBanner/CriticalCommsBanner.d.ts.map +1 -1
  16. package/package.json +4 -4
  17. package/src/accordion/Accordion.css +74 -0
  18. package/src/accordion/Accordion.less +3 -3
  19. package/src/actionButton/ActionButton.css +64 -0
  20. package/src/actionButton/ActionButton.less +1 -1
  21. package/src/actionOption/ActionOption.css +4 -0
  22. package/src/alert/Alert.css +7 -0
  23. package/src/alert/Alert.tsx +6 -1
  24. package/src/avatar/Avatar.css +250 -0
  25. package/src/avatar/Avatar.less +3 -3
  26. package/src/avatarLayout/AvatarLayout.css +42 -0
  27. package/src/avatarView/AvatarView.css +44 -0
  28. package/src/avatarView/Dot.css +26 -0
  29. package/src/badge/Badge.css +65 -0
  30. package/src/badge/Badge.less +1 -1
  31. package/src/body/Body.css +3 -0
  32. package/src/button/Button.css +246 -0
  33. package/src/button/Button.vars.css +46 -0
  34. package/src/button/LegacyButton.css +23 -0
  35. package/src/button/LegacyButton.less +1 -1
  36. package/src/card/Card.css +100 -0
  37. package/src/card/Card.less +3 -3
  38. package/src/carousel/Carousel.css +134 -0
  39. package/src/checkboxButton/CheckboxButton.css +43 -0
  40. package/src/checkboxButton/CheckboxButton.less +2 -2
  41. package/src/chips/Chip.css +190 -0
  42. package/src/chips/Chip.less +3 -3
  43. package/src/circularButton/CircularButton.css +34 -0
  44. package/src/common/Option/Option.css +122 -0
  45. package/src/common/Option/Option.less +2 -2
  46. package/src/common/RadioButton/RadioButton.css +4 -0
  47. package/src/common/baseCard/BaseCard.css +49 -0
  48. package/src/common/bottomSheet/BottomSheet.css +53 -0
  49. package/src/common/bottomSheet/BottomSheet.less +1 -1
  50. package/src/common/circle/Circle.css +43 -0
  51. package/src/common/closeButton/CloseButton.css +94 -0
  52. package/src/common/closeButton/CloseButton.less +1 -1
  53. package/src/common/panel/Panel.css +73 -0
  54. package/src/common/panel/Panel.less +1 -1
  55. package/src/criticalBanner/CriticalCommsBanner.css +63 -0
  56. package/src/criticalBanner/CriticalCommsBanner.less +13 -0
  57. package/src/criticalBanner/CriticalCommsBanner.test.story.tsx +15 -0
  58. package/src/criticalBanner/CriticalCommsBanner.test.tsx +28 -2
  59. package/src/criticalBanner/CriticalCommsBanner.tsx +10 -1
  60. package/src/dateInput/DateInput.css +16 -0
  61. package/src/dateLookup/DateLookup.css +93 -0
  62. package/src/dateLookup/DateLookup.less +1 -1
  63. package/src/dateLookup/dateTrigger/DateTrigger.css +29 -0
  64. package/src/dateLookup/dateTrigger/DateTrigger.less +2 -2
  65. package/src/decision/Decision.css +17 -0
  66. package/src/decision/Decision.less +1 -1
  67. package/src/definitionList/DefinitionList.css +53 -0
  68. package/src/definitionList/DefinitionList.less +1 -1
  69. package/src/dimmer/Dimmer.css +70 -0
  70. package/src/dimmer/Dimmer.less +2 -2
  71. package/src/divider/Divider.css +24 -0
  72. package/src/drawer/Drawer.css +56 -0
  73. package/src/dropFade/DropFade.css +19 -0
  74. package/src/emphasis/Emphasis.css +31 -0
  75. package/src/expressiveMoneyInput/ExpressiveMoneyInput.css +58 -0
  76. package/src/expressiveMoneyInput/amountInput/AmountInput.css +32 -0
  77. package/src/expressiveMoneyInput/chevron/Chevron.css +12 -0
  78. package/src/expressiveMoneyInput/currencySelector/CurrencySelector.css +6 -0
  79. package/src/field/Field.css +13 -0
  80. package/src/flowNavigation/FlowNavigation.css +76 -0
  81. package/src/flowNavigation/FlowNavigation.less +1 -1
  82. package/src/flowNavigation/animatedLabel/AnimatedLabel.css +30 -0
  83. package/src/flowNavigation/animatedLabel/AnimatedLabel.less +2 -2
  84. package/src/header/Header.css +33 -0
  85. package/src/iconButton/IconButton.css +82 -0
  86. package/src/image/Image.css +13 -0
  87. package/src/info/Info.css +9 -0
  88. package/src/info/Info.less +1 -1
  89. package/src/inputs/Input.css +158 -0
  90. package/src/inputs/InputGroup.css +63 -0
  91. package/src/inputs/SelectInput.css +380 -0
  92. package/src/inputs/SelectInput.less +1 -1
  93. package/src/inputs/TextArea.css +161 -0
  94. package/src/inputs/_common.less +1 -1
  95. package/src/instructionsList/InstructionsList.css +26 -0
  96. package/src/legacylistItem/LegacyListItem.css +6 -0
  97. package/src/link/Link.css +24 -0
  98. package/src/link/Link.less +2 -2
  99. package/src/listItem/ListItem.css +659 -0
  100. package/src/listItem/ListItem.grid.css +384 -0
  101. package/src/listItem/ListItem.less +1 -1
  102. package/src/listItem/Prompt/ListItemPrompt.css +4 -0
  103. package/src/loader/Loader.css +227 -0
  104. package/src/logo/Logo.css +26 -0
  105. package/src/main.css +7529 -0
  106. package/src/main.less +0 -2
  107. package/src/modal/Modal.css +95 -0
  108. package/src/moneyInput/MoneyInput.css +74 -0
  109. package/src/moneyInput/MoneyInput.less +2 -2
  110. package/src/navigationOption/NavigationOption.css +69 -0
  111. package/src/navigationOption/NavigationOption.less +3 -3
  112. package/src/navigationOptionsList/NavigationOptionsList.css +13 -0
  113. package/src/navigationOptionsList/NavigationOptionsList.less +1 -1
  114. package/src/nudge/Nudge.css +206 -0
  115. package/src/overlayHeader/OverlayHeader.css +15 -0
  116. package/src/overlayHeader/OverlayHeader.less +1 -1
  117. package/src/phoneNumberInput/PhoneNumberInput.css +23 -0
  118. package/src/phoneNumberInput/PhoneNumberInput.less +1 -1
  119. package/src/popover/Popover.css +76 -0
  120. package/src/popover/Popover.less +1 -1
  121. package/src/progress/Progress.css +43 -0
  122. package/src/progressBar/ProgressBar.css +14 -0
  123. package/src/promoCard/PromoCard.css +186 -0
  124. package/src/prompt/ActionPrompt/ActionPrompt.css +25 -0
  125. package/src/prompt/InfoPrompt/InfoPrompt.css +33 -0
  126. package/src/prompt/InlinePrompt/InlinePrompt.css +57 -0
  127. package/src/prompt/PrimitivePrompt/PrimitivePrompt.css +51 -0
  128. package/src/radioGroup/RadioGroup.css +3 -0
  129. package/src/section/Section.css +10 -0
  130. package/src/segmentedControl/SegmentedControl.css +101 -0
  131. package/src/select/Select.css +368 -0
  132. package/src/select/Select.less +5 -5
  133. package/src/sentimentSurface/SentimentSurface.css +487 -0
  134. package/src/slidingPanel/SlidingPanel.css +105 -0
  135. package/src/slidingPanel/SlidingPanel.less +2 -2
  136. package/src/snackbar/Snackbar.css +93 -0
  137. package/src/snackbar/Snackbar.less +3 -3
  138. package/src/statusIcon/StatusIcon.css +6 -0
  139. package/src/stepper/Stepper.css +77 -0
  140. package/src/stepper/Stepper.less +3 -3
  141. package/src/summary/Summary.css +81 -0
  142. package/src/summary/Summary.less +1 -1
  143. package/src/switch/Switch.css +63 -0
  144. package/src/switch/Switch.less +4 -4
  145. package/src/switchOption/SwitchOption.css +4 -0
  146. package/src/table/Table.css +274 -0
  147. package/src/table/Table.less +1 -1
  148. package/src/tabs/Tabs.css +121 -0
  149. package/src/tabs/Tabs.less +4 -4
  150. package/src/tile/Tile.css +68 -0
  151. package/src/tile/Tile.less +1 -1
  152. package/src/tooltip/Tooltip.css +50 -0
  153. package/src/tooltip/Tooltip.less +1 -1
  154. package/src/typeahead/Typeahead.css +187 -0
  155. package/src/typeahead/Typeahead.less +2 -2
  156. package/src/typeahead/typeaheadOption/TypeaheadOption.css +9 -0
  157. package/src/typeahead/typeaheadOption/TypeaheadOption.less +1 -1
  158. package/src/upload/Upload.css +34 -0
  159. package/src/upload/Upload.less +1 -1
  160. package/src/uploadInput/UploadInput.css +18 -0
  161. package/src/uploadInput/UploadInput.less +2 -2
  162. package/src/uploadInput/uploadButton/UploadButton.css +90 -0
  163. package/src/uploadInput/uploadItem/UploadItem.css +166 -0
  164. package/src/uploadInput/uploadItem/UploadItem.less +1 -1
  165. package/build/neptune-css/fonts/TW-Averta-Bold.woff +0 -0
  166. package/build/neptune-css/fonts/TW-Averta-Bold.woff2 +0 -0
  167. package/build/neptune-css/fonts/TW-Averta-Regular.woff +0 -0
  168. package/build/neptune-css/fonts/TW-Averta-Regular.woff2 +0 -0
  169. package/build/neptune-css/fonts/TW-Averta-Semibold.woff +0 -0
  170. package/build/neptune-css/fonts/TW-Averta-Semibold.woff2 +0 -0
  171. package/build/neptune-css/fonts/TransferWise-IconFont.svg +0 -81
  172. package/build/neptune-css/fonts/TransferWise-IconFont.woff +0 -0
  173. package/build/neptune-css/fonts/WiseSans-Heavy.woff2 +0 -0
  174. package/build/neptune-css/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  175. package/build/neptune-css/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  176. package/build/neptune-css/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  177. package/build/neptune-css/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  178. package/build/neptune-css/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  179. package/build/neptune-css/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  180. package/build/neptune-css/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  181. package/build/neptune-css/img/bg-dark.svg +0 -31
  182. package/build/neptune-css/img/bg-light.svg +0 -26
  183. package/build/styles/neptune-css/less/accordion.css +0 -255
  184. package/build/styles/neptune-css/less/alerts.css +0 -751
  185. package/build/styles/neptune-css/less/background.css +0 -20
  186. package/build/styles/neptune-css/less/badge.css +0 -90
  187. package/build/styles/neptune-css/less/border-radius.css +0 -3
  188. package/build/styles/neptune-css/less/breadcrumbs.css +0 -20
  189. package/build/styles/neptune-css/less/button-groups.css +0 -495
  190. package/build/styles/neptune-css/less/buttons.css +0 -1390
  191. package/build/styles/neptune-css/less/chevron.css +0 -35
  192. package/build/styles/neptune-css/less/circles.css +0 -248
  193. package/build/styles/neptune-css/less/close.css +0 -47
  194. package/build/styles/neptune-css/less/column-layout.css +0 -164
  195. package/build/styles/neptune-css/less/core/viewport-themes.css +0 -59
  196. package/build/styles/neptune-css/less/currency-flags.css +0 -46
  197. package/build/styles/neptune-css/less/decision.css +0 -136
  198. package/build/styles/neptune-css/less/dropdowns.css +0 -472
  199. package/build/styles/neptune-css/less/droppable.css +0 -221
  200. package/build/styles/neptune-css/less/flex.css +0 -598
  201. package/build/styles/neptune-css/less/footer.css +0 -129
  202. package/build/styles/neptune-css/less/forms/bootstrap-forms.css +0 -2277
  203. package/build/styles/neptune-css/less/forms/checkbox-radio.css +0 -367
  204. package/build/styles/neptune-css/less/grid.css +0 -2369
  205. package/build/styles/neptune-css/less/input-groups.css +0 -2740
  206. package/build/styles/neptune-css/less/link-callout.css +0 -20
  207. package/build/styles/neptune-css/less/list-group.css +0 -350
  208. package/build/styles/neptune-css/less/loaders.css +0 -76
  209. package/build/styles/neptune-css/less/media.css +0 -74
  210. package/build/styles/neptune-css/less/modals.css +0 -185
  211. package/build/styles/neptune-css/less/navbar.css +0 -2406
  212. package/build/styles/neptune-css/less/navs.css +0 -296
  213. package/build/styles/neptune-css/less/neptune-addons.css +0 -1857
  214. package/build/styles/neptune-css/less/neptune-core.css +0 -2049
  215. package/build/styles/neptune-css/less/neptune-social-media.css +0 -144
  216. package/build/styles/neptune-css/less/neptune.css +0 -25724
  217. package/build/styles/neptune-css/less/panels.css +0 -528
  218. package/build/styles/neptune-css/less/popovers.css +0 -661
  219. package/build/styles/neptune-css/less/process.css +0 -483
  220. package/build/styles/neptune-css/less/progress-bars.css +0 -64
  221. package/build/styles/neptune-css/less/ring.css +0 -55
  222. package/build/styles/neptune-css/less/select.css +0 -99
  223. package/build/styles/neptune-css/less/sequences.css +0 -855
  224. package/build/styles/neptune-css/less/table.css +0 -446
  225. package/build/styles/neptune-css/less/tick.css +0 -32
  226. package/build/styles/neptune-css/less/tooltip.css +0 -160
  227. package/build/styles/neptune-css/less/utilities.css +0 -145
  228. package/build/styles/neptune-css/less/wells.css +0 -74
  229. package/build/styles/neptune-css/props/custom-media.css +0 -11
  230. package/build/styles/neptune-css/props/legacy-custom-props.css +0 -69
  231. package/build/styles/neptune-css/props/neptune-tokens.css +0 -11
  232. package/build/styles/neptune-css/variables/neptune-tokens.css +0 -0
  233. package/build/styles/neptune-css/variables/zindex.css +0 -0
  234. package/src/neptune-css/fonts/TW-Averta-Bold.woff +0 -0
  235. package/src/neptune-css/fonts/TW-Averta-Bold.woff2 +0 -0
  236. package/src/neptune-css/fonts/TW-Averta-Regular.woff +0 -0
  237. package/src/neptune-css/fonts/TW-Averta-Regular.woff2 +0 -0
  238. package/src/neptune-css/fonts/TW-Averta-Semibold.woff +0 -0
  239. package/src/neptune-css/fonts/TW-Averta-Semibold.woff2 +0 -0
  240. package/src/neptune-css/fonts/TransferWise-IconFont.svg +0 -81
  241. package/src/neptune-css/fonts/TransferWise-IconFont.woff +0 -0
  242. package/src/neptune-css/fonts/WiseSans-Heavy.woff2 +0 -0
  243. package/src/neptune-css/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  244. package/src/neptune-css/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  245. package/src/neptune-css/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  246. package/src/neptune-css/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  247. package/src/neptune-css/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  248. package/src/neptune-css/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  249. package/src/neptune-css/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  250. package/src/neptune-css/img/bg-dark.svg +0 -31
  251. package/src/neptune-css/img/bg-light.svg +0 -26
  252. package/src/neptune-css/less/accordion.less +0 -15
  253. package/src/neptune-css/less/addons/_background-utilities.less +0 -82
  254. package/src/neptune-css/less/addons/_border.less +0 -3
  255. package/src/neptune-css/less/addons/_display-utilities.less +0 -159
  256. package/src/neptune-css/less/addons/_spacing-utilities.less +0 -73
  257. package/src/neptune-css/less/addons/_utilities.less +0 -147
  258. package/src/neptune-css/less/alerts.less +0 -252
  259. package/src/neptune-css/less/background.less +0 -24
  260. package/src/neptune-css/less/badge.less +0 -85
  261. package/src/neptune-css/less/border-radius.less +0 -3
  262. package/src/neptune-css/less/breadcrumbs.less +0 -27
  263. package/src/neptune-css/less/button-groups.less +0 -424
  264. package/src/neptune-css/less/buttons.less +0 -738
  265. package/src/neptune-css/less/chevron.less +0 -39
  266. package/src/neptune-css/less/circles.less +0 -233
  267. package/src/neptune-css/less/close.less +0 -48
  268. package/src/neptune-css/less/column-layout.less +0 -167
  269. package/src/neptune-css/less/components/_component-animations.less +0 -43
  270. package/src/neptune-css/less/core/_fonts.less +0 -97
  271. package/src/neptune-css/less/core/_scaffolding.less +0 -380
  272. package/src/neptune-css/less/core/_typography-utilities.less +0 -255
  273. package/src/neptune-css/less/core/_typography.less +0 -575
  274. package/src/neptune-css/less/core/viewport-themes.less +0 -65
  275. package/src/neptune-css/less/currency-flags.less +0 -42
  276. package/src/neptune-css/less/decision.less +0 -98
  277. package/src/neptune-css/less/dropdowns.less +0 -365
  278. package/src/neptune-css/less/droppable.less +0 -213
  279. package/src/neptune-css/less/flex.less +0 -113
  280. package/src/neptune-css/less/footer.less +0 -113
  281. package/src/neptune-css/less/forms/bootstrap-forms.less +0 -1218
  282. package/src/neptune-css/less/forms/checkbox-radio.less +0 -330
  283. package/src/neptune-css/less/grid.less +0 -187
  284. package/src/neptune-css/less/input-groups.less +0 -298
  285. package/src/neptune-css/less/link-callout.less +0 -17
  286. package/src/neptune-css/less/list-group.less +0 -260
  287. package/src/neptune-css/less/loaders.less +0 -91
  288. package/src/neptune-css/less/media.less +0 -68
  289. package/src/neptune-css/less/mixins/_alerts.less +0 -39
  290. package/src/neptune-css/less/mixins/_arrows.less +0 -52
  291. package/src/neptune-css/less/mixins/_border-radius.less +0 -11
  292. package/src/neptune-css/less/mixins/_buttons.less +0 -82
  293. package/src/neptune-css/less/mixins/_center-block.less +0 -7
  294. package/src/neptune-css/less/mixins/_clearfix.less +0 -23
  295. package/src/neptune-css/less/mixins/_flex.less +0 -105
  296. package/src/neptune-css/less/mixins/_forms.less +0 -130
  297. package/src/neptune-css/less/mixins/_grid-framework.less +0 -104
  298. package/src/neptune-css/less/mixins/_grid.less +0 -158
  299. package/src/neptune-css/less/mixins/_hide-text.less +0 -20
  300. package/src/neptune-css/less/mixins/_links.less +0 -7
  301. package/src/neptune-css/less/mixins/_list-group.less +0 -23
  302. package/src/neptune-css/less/mixins/_logical-properties-IE-friendly.less +0 -381
  303. package/src/neptune-css/less/mixins/_logical-properties-modern-browsers.less +0 -226
  304. package/src/neptune-css/less/mixins/_logical-properties.less +0 -5
  305. package/src/neptune-css/less/mixins/_nav-divider.less +0 -10
  306. package/src/neptune-css/less/mixins/_nav-vertical-align.less +0 -10
  307. package/src/neptune-css/less/mixins/_panels.less +0 -23
  308. package/src/neptune-css/less/mixins/_physical-properties.less +0 -110
  309. package/src/neptune-css/less/mixins/_reset-text.less +0 -22
  310. package/src/neptune-css/less/mixins/_sequence.less +0 -203
  311. package/src/neptune-css/less/mixins/_spacing.less +0 -122
  312. package/src/neptune-css/less/mixins/_tab-focus.less +0 -5
  313. package/src/neptune-css/less/mixins/_table-row.less +0 -47
  314. package/src/neptune-css/less/mixins/_text-emphasis.less +0 -39
  315. package/src/neptune-css/less/mixins/_text-overflow.less +0 -8
  316. package/src/neptune-css/less/mixins/_theming.less +0 -7
  317. package/src/neptune-css/less/modals.less +0 -239
  318. package/src/neptune-css/less/navbar.less +0 -1442
  319. package/src/neptune-css/less/navs.less +0 -339
  320. package/src/neptune-css/less/neptune-addons.less +0 -4
  321. package/src/neptune-css/less/neptune-core.less +0 -4
  322. package/src/neptune-css/less/neptune-social-media.less +0 -84
  323. package/src/neptune-css/less/neptune.bundle.less +0 -65
  324. package/src/neptune-css/less/panels.less +0 -410
  325. package/src/neptune-css/less/popovers.less +0 -379
  326. package/src/neptune-css/less/process.less +0 -426
  327. package/src/neptune-css/less/progress-bars.less +0 -55
  328. package/src/neptune-css/less/ring.less +0 -51
  329. package/src/neptune-css/less/select.less +0 -88
  330. package/src/neptune-css/less/sequences.less +0 -511
  331. package/src/neptune-css/less/table.less +0 -385
  332. package/src/neptune-css/less/tick.less +0 -37
  333. package/src/neptune-css/less/tooltip.less +0 -130
  334. package/src/neptune-css/less/utilities.less +0 -153
  335. package/src/neptune-css/less/wells.less +0 -37
  336. package/src/neptune-css/props/custom-media.css +0 -11
  337. package/src/neptune-css/props/legacy-custom-props.css +0 -69
  338. package/src/neptune-css/props/neptune-tokens.css +0 -11
  339. package/src/neptune-css/variables/legacy-variables.less +0 -1299
  340. package/src/neptune-css/variables/neptune-tokens.less +0 -12
  341. package/src/neptune-css/variables/zindex.less +0 -17
  342. /package/{build/styles/neptune-css/variables/legacy-variables.css → src/listItem/ListItem.vars.css} +0 -0
@@ -1,1218 +0,0 @@
1
- @import (reference) '../../variables/legacy-variables.less';
2
- @import (reference) '../../variables/neptune-tokens.less';
3
- @import (reference) '../mixins/_arrows.less';
4
- @import (reference) '../mixins/_grid.less';
5
- @import (reference) '../mixins/_forms.less';
6
- @import (reference) '../mixins/_tab-focus.less';
7
- @import (reference) '../mixins/_logical-properties.less';
8
- @import (reference) '../core/_typography.less';
9
-
10
- //
11
- // Forms
12
- // --------------------------------------------------
13
-
14
- // Normalize non-controls
15
- //
16
- // Restyle and baseline non-control form elements.
17
- form {
18
- margin-bottom: 0;
19
- }
20
-
21
- fieldset {
22
- padding: 0;
23
- margin: 0;
24
- border: 0;
25
- // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
26
- // so we reset that to ensure it behaves more like a standard block element.
27
- // See https://github.com/twbs/bootstrap/issues/12359.
28
- min-width: 0;
29
- }
30
-
31
- legend {
32
- display: block;
33
- width: 100%;
34
- }
35
-
36
- label {
37
- display: inline-block;
38
- max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
39
- margin-bottom: var(--size-4);
40
- }
41
-
42
- label,
43
- .secondary {
44
- color: var(--color-content-secondary);
45
- transition: color ease-in-out 0.15s;
46
- font-size: var(--font-size-14);
47
- line-height: 20px;
48
- }
49
-
50
- // Normalize form controls
51
- //
52
- // While most of our form styles require extra classes, some basic normalization
53
- // is required to ensure optimum display with or without those classes to better
54
- // address browser inconsistencies.
55
-
56
- // Override content-box in Normalize (* isn't specific enough)
57
- input[type='search'] {
58
- box-sizing: border-box;
59
- }
60
-
61
- input[type='number'] {
62
- appearance: textfield;
63
- }
64
-
65
- input[type='number']::-webkit-outer-spin-button,
66
- input[type='number']::-webkit-inner-spin-button {
67
- appearance: none;
68
- margin: 0;
69
- }
70
-
71
- // Position radios and checkboxes better
72
- input[type='radio'],
73
- input[type='checkbox'] {
74
- margin: 4px 0 0;
75
- margin-top: 1px;
76
- line-height: normal;
77
- }
78
-
79
- input[type='file'] {
80
- display: block;
81
- }
82
-
83
- // Make range inputs behave like textual form controls
84
- input[type='range'] {
85
- display: block;
86
- width: 100%;
87
- }
88
-
89
- // Make multiple select elements height not fixed
90
- select[multiple],
91
- select[size] {
92
- height: auto;
93
- }
94
-
95
- // Focus for file, radio, and checkbox
96
- input[type='file']:focus,
97
- input[type='radio']:focus,
98
- input[type='checkbox']:focus {
99
- .tab-focus();
100
- }
101
-
102
- // Adjust output element
103
- output {
104
- display: block;
105
- padding-top: (@padding-base-vertical + 1);
106
- font-size: var(--font-size-16);
107
- line-height: var(--line-height-control);
108
- color: var(--color-content-primary);
109
- }
110
-
111
- // Common form controls
112
- //
113
- // Shared size and type resets for form controls. Apply `.form-control` to any
114
- // of the following form controls:
115
- //
116
- // select
117
- // textarea
118
- // input[type="text"]
119
- // input[type="password"]
120
- // input[type="datetime"]
121
- // input[type="datetime-local"]
122
- // input[type="date"]
123
- // input[type="month"]
124
- // input[type="time"]
125
- // input[type="week"]
126
- // input[type="number"]
127
- // input[type="email"]
128
- // input[type="url"]
129
- // input[type="search"]
130
- // input[type="tel"]
131
- // input[type="color"]
132
-
133
- .form-control {
134
- display: block;
135
- width: 100%;
136
- color: var(--color-content-primary);
137
- background-color: var(--color-background-screen);
138
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
139
- border: 1px solid var(--color-interactive-secondary);
140
- transition: border-color ease-in-out 0.15s;
141
- font-size: var(--font-size-16);
142
-
143
- .input-size(
144
- var(--input-height-base),
145
- var(--input-padding),
146
- @input-border-radius
147
- );
148
- .np-text-body-large;
149
-
150
- // Remove iOS drop shadow
151
- background-clip: padding-box;
152
-
153
- // Customize the `:focus` state to imitate native WebKit styles.
154
- .form-control-focus(var(--color-interactive-accent-active));
155
-
156
- &::placeholder {
157
- color: var(--color-content-tertiary);
158
- }
159
-
160
- // Reset height for `textarea`s
161
- textarea& {
162
- height: 144px;
163
- }
164
-
165
- + .text-muted,
166
- + .text-primary,
167
- + .text-success,
168
- + .text-positive,
169
- + .text-info,
170
- + .text-warning,
171
- + .text-negative,
172
- + .text-danger {
173
- margin-top: @padding-base-vertical;
174
- }
175
-
176
- &:focus {
177
- border-color: var(--color-interactive-accent-active);
178
- }
179
-
180
- .np-theme-personal & {
181
- .form-control-focus(var(--color-interactive-primary));
182
-
183
- &:hover {
184
- border-color: var(--color-interactive-secondary-hover);
185
- }
186
-
187
- &:focus {
188
- border-color: var(--color-interactive-primary);
189
- }
190
- }
191
- }
192
-
193
- // Search inputs in iOS
194
- //
195
- // This overrides the extra rounded corners on search inputs in iOS so that our
196
- // `.form-control` class can properly style them. Note that this cannot simply
197
- // be added to `.form-control` as it's not specific enough. For details, see
198
- // https://github.com/twbs/bootstrap/issues/11586.
199
-
200
- input[type='search'] {
201
- appearance: none;
202
- }
203
-
204
- // Special styles for iOS temporal inputs
205
- //
206
- // In Mobile Safari, setting `display: block` on temporal inputs causes the
207
- // text within the input to become vertically misaligned. As a workaround, we
208
- // set a pixel line-height that matches the given height of the input, but only
209
- // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
210
-
211
- @media screen and (min-device-pixel-ratio: 0) {
212
- input[type='date'],
213
- input[type='time'],
214
- input[type='datetime-local'],
215
- input[type='month'] {
216
- line-height: var(--input-height-base);
217
-
218
- &.input-sm,
219
- .input-group-sm & {
220
- line-height: var(--input-height-small);
221
- }
222
-
223
- &.input-lg,
224
- .input-group-lg & {
225
- line-height: calc(var(--input-height-large) - var(--line-height-body));
226
- }
227
- }
228
- }
229
-
230
- // Form groups
231
- //
232
- // Designed to help with the organization and spacing of vertical forms. For
233
- // horizontal forms, use the predefined grid classes.
234
-
235
- .form-group {
236
- margin-bottom: @form-group-margin-bottom;
237
-
238
- label {
239
- margin-bottom: 2px;
240
- }
241
-
242
- &:focus-within {
243
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
244
- .control-label,
245
- > label {
246
- color: var(--color-content-primary);
247
- }
248
- }
249
- }
250
-
251
- .row-equal-height > [class*='col-'] > .form-group {
252
- width: 100%;
253
- }
254
-
255
- // Checkboxes and radios
256
- //
257
- // Indent the labels to position radios/checkboxes as hanging controls.
258
-
259
- .radio,
260
- .checkbox {
261
- position: relative;
262
- display: block;
263
- margin-top: 0;
264
- // margin-bottom: (@padding-base-vertical * 1.5);
265
-
266
- label {
267
- min-height: var(--input-height-base);
268
- margin-bottom: 0;
269
- cursor: pointer;
270
- }
271
- }
272
-
273
- .radio + .radio,
274
- .checkbox + .checkbox {
275
- margin-top: (@padding-base-vertical * 1.5);
276
- }
277
-
278
- .radio input[type='radio'],
279
- .radio-inline input[type='radio'],
280
- .checkbox input[type='checkbox'],
281
- .checkbox-inline input[type='checkbox'] {
282
- position: absolute;
283
- .margin(left, -20px);
284
-
285
- margin-top: 4px \9;
286
- }
287
-
288
- // Radios and checkboxes on same line
289
- .radio-inline,
290
- .checkbox-inline {
291
- position: relative;
292
- display: inline-block;
293
- .padding(left, 20px);
294
-
295
- margin-bottom: 0;
296
- vertical-align: middle;
297
- font-weight: normal;
298
- cursor: pointer;
299
-
300
- &.disabled,
301
- fieldset[disabled] & {
302
- cursor: @cursor-disabled;
303
- }
304
- }
305
-
306
- .radio-inline + .radio-inline,
307
- .checkbox-inline + .checkbox-inline {
308
- margin-top: 0;
309
- .margin(left, 10px); // space out consecutive inline controls
310
- }
311
-
312
- // Apply same disabled cursor tweak as for inputs
313
- // Some special care is needed because <label>s don't inherit their parent's `cursor`.
314
- //
315
- // Note: Neither radios nor checkboxes can be readonly.
316
- input[type='radio'],
317
- input[type='checkbox'] {
318
- &[disabled],
319
- &.disabled,
320
- fieldset[disabled] & {
321
- cursor: @cursor-disabled;
322
- }
323
- }
324
-
325
- // hide native password reveal button for MS Edge
326
- // docs: https://learn.microsoft.com/en-us/microsoft-edge/web-platform/password-reveal
327
- input[type="password"] {
328
- &::-ms-reveal {
329
- display: none;
330
- }
331
- }
332
-
333
- // These classes are used on elements with <label> descendants
334
- .radio,
335
- .checkbox {
336
- &-disabled,
337
- fieldset[disabled] & {
338
- label {
339
- cursor: @cursor-disabled;
340
- }
341
- }
342
- }
343
-
344
- // Static form control text
345
- //
346
- // Apply class to a `p` element to make any string of text align with labels in
347
- // a horizontal form layout.
348
-
349
- .form-control-static {
350
- // Remove default margin from `p`
351
- margin-bottom: 0;
352
- min-height: calc(var(--line-height-control) * 2);
353
- color: var(--color-content-secondary);
354
- background-color: var(--color-background-neutral);
355
- border: 1px solid var(--color-interactive-secondary);
356
- border-radius: @input-border-radius;
357
- padding: var(--input-padding);
358
-
359
- &.input-lg,
360
- &.input-sm {
361
- .padding(left, 0);
362
-
363
- .padding(right, 0);
364
- }
365
- }
366
-
367
- // Form control sizing
368
- //
369
- // Build on `.form-control` with modifier classes to decrease or increase the
370
- // height and font-size of form controls.
371
- //
372
- // The `.form-group-* form-control` variations are sadly duplicated to avoid the
373
- // issue documented in https://github.com/twbs/bootstrap/issues/15074.
374
-
375
- .input-sm {
376
- .input-size(
377
- @input-height-small;
378
- var(--input-padding-small);
379
- @input-border-radius-small
380
- );
381
- font-size: 14px;
382
- line-height: 24px;
383
- .np-text-body-default();
384
- }
385
-
386
- .form-group-sm,
387
- .navbar {
388
- .form-control {
389
- height: @input-height-small;
390
- padding: var(--input-padding-small);
391
- font-size: var(--font-size-14);
392
- line-height: @input-line-height-small;
393
- border-radius: @input-border-radius-small;
394
- }
395
-
396
- select.form-control {
397
- height: @input-height-small;
398
- line-height: @input-height-small;
399
- }
400
-
401
- textarea.form-control,
402
- select[multiple].form-control {
403
- height: auto;
404
- }
405
-
406
- .form-control-static {
407
- height: @input-height-small;
408
- min-height: calc(var(--line-height-control) + @input-font-size-small);
409
- padding: var(--input-padding-small);
410
- font-size: var(--font-size-14);
411
- line-height: @input-line-height-small;
412
- }
413
- }
414
-
415
- .input-lg {
416
- .input-size(
417
- var(--input-height-large);
418
- var(--input-padding-large);
419
- @input-border-radius-large
420
- );
421
- .np-text-body-large;
422
- }
423
-
424
- .form-group-lg {
425
- position: relative;
426
-
427
- .input-lg,
428
- .input-group-lg > .form-control,
429
- .input-group-lg > .input-group-addon {
430
- height: var(--input-height-large);
431
- padding: calc(@padding-small-vertical + var(--size-24)) @padding-small-horizontal
432
- @padding-small-vertical;
433
- font-size: @input-font-size-large;
434
- line-height: @input-line-height-large;
435
- }
436
-
437
- select.form-control {
438
- line-height: var(--input-height-large);
439
- }
440
-
441
- textarea.form-control,
442
- select[multiple].form-control {
443
- height: auto;
444
- }
445
-
446
- .form-control-static {
447
- height: var(--input-height-large);
448
- min-height: calc(var(--line-height-control) + @input-font-size-large);
449
- padding: var(--input-padding-large);
450
- font-size: @input-font-size-large;
451
- line-height: @input-line-height-large;
452
- }
453
-
454
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
455
- .control-label {
456
- position: absolute;
457
- top: 12px;
458
- .left(14px);
459
-
460
- margin-bottom: 0;
461
- z-index: 1;
462
- }
463
- }
464
-
465
- // Form control feedback states
466
- //
467
- // Apply contextual and semantic states to individual form controls.
468
-
469
- .has-feedback {
470
- // Enable absolute positioning
471
- position: relative;
472
-
473
- // Ensure icons don't overlap text
474
- .form-control {
475
- .padding(right, var(--input-height-base));
476
- }
477
- }
478
- // Feedback icon (requires .glyphicon classes)
479
- .form-control-feedback {
480
- position: absolute;
481
- top: 0;
482
- .right(0);
483
-
484
- z-index: 2; // Ensure icon is above input groups
485
- display: block;
486
- width: @input-height-base;
487
- height: @input-height-base;
488
- text-align: center;
489
- pointer-events: none;
490
- }
491
-
492
- .input-lg + .form-control-feedback,
493
- .input-group-lg + .form-control-feedback,
494
- .form-group-lg .form-control + .form-control-feedback {
495
- width: var(--input-height-large);
496
- height: var(--input-height-large);
497
- }
498
-
499
- .input-sm + .form-control-feedback,
500
- .input-group-sm + .form-control-feedback,
501
- .form-group-sm .form-control + .form-control-feedback {
502
- width: @input-height-small;
503
- height: @input-height-small;
504
- }
505
-
506
- // Focus state
507
- .focus,
508
- .has-focus {
509
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
510
- .control-label {
511
- color: var(--color-content-primary);
512
- }
513
-
514
- .input-group-addon {
515
- border-color: var(--color-interactive-secondary);
516
-
517
- &:active {
518
- border-color: var(--color-interactive-secondary-active);
519
- }
520
- }
521
- }
522
-
523
- // Help text
524
- //
525
- // Apply to any element you wish to create light text for placement immediately
526
- // below a form control. Use for general help, formatting, or instructional text.
527
-
528
- .help-block,
529
- .error-messages {
530
- margin-top: 12px;
531
- margin-bottom: 4px;
532
- border-width: 0;
533
- border-style: solid;
534
- border-radius: var(--radius-small);
535
- padding: 4px 16px 3px;
536
- transition: border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
537
-
538
- a {
539
- color: inherit;
540
- }
541
- }
542
-
543
- .help-block {
544
- color: var(--color-content-secondary);
545
- border-color: var(--color-interactive-secondary);
546
- background-color: var(--color-background-neutral);
547
- display: block;
548
-
549
- .arrow(10px);
550
- }
551
-
552
- .focus, // TODO legacy, remove.
553
- .has-focus {
554
- .alert {
555
- border-color: var(--color-interactive-accent-active);
556
- }
557
- }
558
-
559
- // Feedback states
560
- .has-success {
561
- .form-control-validation(
562
- var(--color-content-positive);
563
- var(--color-interactive-positive);
564
- var(--color-interactive-positive-hover);
565
- );
566
-
567
- .np-theme-personal & {
568
- .form-control-validation(
569
- var(--color-content-primary);
570
- var(--color-sentiment-positive);
571
- var(--color-sentiment-positive);
572
- );
573
- }
574
- }
575
-
576
- .has-info {
577
- .form-control-validation(
578
- var(--color-content-accent);
579
- var(--color-interactive-accent);
580
- var(--color-interactive-accent-hover);
581
- );
582
-
583
- .np-theme-personal & {
584
- .form-control-validation(
585
- var(--color-content-primary);
586
- transparent;
587
- transparent;
588
- );
589
- }
590
- }
591
-
592
- .has-warning {
593
- .form-control-validation(
594
- var(--color-content-warning);
595
- var(--color-interactive-warning);
596
- var(--color-interactive-warning-hover);
597
- );
598
-
599
- .np-theme-personal & {
600
- .form-control-validation(
601
- var(--color-content-primary);
602
- var(--color-sentiment-warning);
603
- var(--color-sentiment-warning);
604
- );
605
- }
606
- }
607
-
608
- .has-error {
609
- .form-control-validation(
610
- var(--color-content-negative);
611
- var(--color-interactive-negative);
612
- var(--color-interactive-negative-hover);
613
- );
614
-
615
- .np-theme-personal & {
616
- .form-control-validation(
617
- var(--color-content-primary);
618
- var(--color-sentiment-negative);
619
- var(--color-sentiment-negative-hover);
620
- );
621
- }
622
- }
623
-
624
- // Reposition feedback icon if input has visible label above
625
- .has-feedback label {
626
- & ~ .form-control-feedback {
627
- top: var(--line-height-control); // Height of the `label` and its margin
628
- }
629
-
630
- &.sr-only ~ .form-control-feedback {
631
- top: 0;
632
- }
633
- }
634
-
635
- // Inline forms
636
- //
637
- // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
638
- // forms begin stacked on extra small (mobile) devices and then go inline when
639
- // viewports reach <768px.
640
- //
641
- // Requires wrapping inputs and labels with `.form-group` for proper display of
642
- // default HTML form controls and our custom form controls (e.g., input groups).
643
- //
644
- // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
645
-
646
- .form-inline {
647
- // Kick in the inline
648
- @media (min-width: @screen-sm-min) {
649
- // Inline-block all the things for "inline"
650
- .form-group {
651
- display: inline-block;
652
- margin-bottom: 0;
653
- vertical-align: middle;
654
- }
655
-
656
- // In navbar-form, allow folks to *not* use `.form-group`
657
- .form-control {
658
- display: inline-block;
659
- width: auto; // Prevent labels from stacking above inputs in `.form-group`
660
- vertical-align: middle;
661
- }
662
-
663
- // Make static controls behave like regular ones
664
- .form-control-static {
665
- display: inline-block;
666
- }
667
-
668
- .input-group {
669
- display: inline-table;
670
- vertical-align: middle;
671
-
672
- .input-group-addon,
673
- .input-group-btn,
674
- .form-control {
675
- width: auto;
676
- }
677
- }
678
-
679
- // Input groups need that 100% width though
680
- .input-group > .form-control {
681
- width: 100%;
682
- }
683
-
684
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
685
- .control-label {
686
- margin-bottom: 0;
687
- vertical-align: calc(-2px);
688
- }
689
-
690
- // Remove default margin on radios/checkboxes that were used for stacking, and
691
- // then undo the floating of radios and checkboxes to match.
692
- .radio,
693
- .checkbox {
694
- display: inline-block;
695
- margin-top: 0;
696
- margin-bottom: 0;
697
- vertical-align: middle;
698
-
699
- label {
700
- .padding(left, 0);
701
- }
702
- }
703
-
704
- .radio input[type='radio'],
705
- .checkbox input[type='checkbox'] {
706
- position: relative;
707
- .margin(left, 0);
708
- }
709
-
710
- // Re-override the feedback icon.
711
- .has-feedback .form-control-feedback {
712
- top: 0;
713
- }
714
- }
715
- }
716
-
717
- // Horizontal forms
718
- //
719
- // Horizontal forms are built on grid classes and allow you to create forms with
720
- // labels on the left and inputs on the right.
721
-
722
- .form-horizontal {
723
- // Consistent vertical alignment of radios and checkboxes
724
- //
725
- // Labels also get some reset styles, but that is scoped to a media query below.
726
- .radio,
727
- .checkbox,
728
- .radio-inline,
729
- .checkbox-inline {
730
- margin-top: 0;
731
- margin-bottom: 0;
732
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
733
- }
734
- // Account for padding we're adding to ensure the alignment and of help text
735
- // and other content below items
736
- .radio,
737
- .checkbox {
738
- min-height: calc(var(--line-height-control) + (@padding-base-vertical + 1));
739
- }
740
-
741
- // Make form groups behave like rows
742
- .form-group {
743
- .make-row();
744
- }
745
-
746
- // Reset spacing and right align labels, but scope to media queries so that
747
- // labels on narrow viewports stack the same as a default form example.
748
- @media (min-width: @screen-sm-min) {
749
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
750
- .control-label {
751
- .text-align(right);
752
-
753
- margin-bottom: 0;
754
- padding-top: 14px; // Default padding plus a border
755
- }
756
- }
757
-
758
- // Validation states
759
- //
760
- // Reposition the icon because it's now within a grid column and columns have
761
- // `position: relative;` on them. Also accounts for the grid gutter padding.
762
- .has-feedback .form-control-feedback {
763
- .right(floor((@grid-gutter-width / 2)));
764
- }
765
-
766
- // Form group sizes
767
- //
768
- // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
769
- // inputs and labels within a `.form-group`.
770
- .form-group-lg {
771
- @media (min-width: @screen-sm-min) {
772
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
773
- .control-label {
774
- padding-top: 17px;
775
- font-size: var(--font-size-20);
776
- }
777
- }
778
- }
779
-
780
- .form-group-sm {
781
- @media (min-width: @screen-sm-min) {
782
- // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
783
- .control-label {
784
- padding-top: 8px;
785
- font-size: var(--font-size-14);
786
- }
787
- }
788
- }
789
- }
790
-
791
- @import 'checkbox-radio.less';
792
-
793
- .input-group .input-group-btn + input {
794
- .border(left, 0, solid, transparent);
795
- }
796
-
797
- .input-group-addon {
798
- color: var(--color-content-secondary);
799
- transition: border-color ease-in-out 0.15s;
800
- }
801
-
802
- .form-control-feedback,
803
- .form-control-feedback.icon {
804
- font-size: 24px;
805
- line-height: 48px;
806
- }
807
-
808
- .label {
809
- padding-top: 0.25em;
810
- position: relative;
811
- top: -3px;
812
-
813
- .label-default {
814
- color: var(--color-content-secondary);
815
- background-color: var(--color-background-neutral);
816
- }
817
- }
818
-
819
- .form-group {
820
- position: relative;
821
- font-size: var(--font-size-14);
822
- }
823
-
824
- .form-group .row {
825
- .margin(left, -6px);
826
-
827
- .margin(right, -6px);
828
-
829
- [class*='col-'] {
830
- .padding(left, 6px);
831
-
832
- .padding(right, 6px);
833
- }
834
- }
835
-
836
- @media (max-width: @screen-xs-max) {
837
- .form-group .row [class*='col-sm-'] {
838
- margin-bottom: 0;
839
-
840
- .btn-input {
841
- margin-bottom: (@padding-base-vertical * 1.5);
842
- }
843
- }
844
- }
845
-
846
- @media (max-width: @screen-sm-max) {
847
- .form-group .row [class*='col-md-'] {
848
- margin-bottom: 0;
849
-
850
- .form-control,
851
- .btn-input {
852
- margin-bottom: (@padding-base-vertical * 1.5);
853
- }
854
- }
855
- }
856
-
857
- @media (max-width: @screen-md-max) {
858
- .form-group .row [class*='col-lg-'] {
859
- margin-bottom: 0;
860
-
861
- .form-control,
862
- .btn-input {
863
- margin-bottom: (@padding-base-vertical * 1.5);
864
- }
865
- }
866
- }
867
-
868
- @media (max-width: @screen-lg-max) {
869
- .form-group .row [class*='col-xl-'] {
870
- margin-bottom: 0;
871
-
872
- .form-control,
873
- .btn-input {
874
- margin-bottom: (@padding-base-vertical * 1.5);
875
- }
876
- }
877
- }
878
-
879
- @media (min-width: @screen-sm-min) {
880
- fieldset .form-group:nth-of-type(odd) {
881
- .clear(left);
882
- }
883
- }
884
-
885
- .checkbox,
886
- .radio {
887
- > label {
888
- display: block;
889
- cursor: pointer;
890
- padding-top: 12px;
891
- padding-bottom: 10px;
892
- .padding(right, 16px);
893
-
894
- color: var(--color-content-primary);
895
- background-color: var(--color-background-screen);
896
- border: 1px solid var(--color-interactive-secondary);
897
- border-radius: @border-radius-base;
898
- transition: border 0.15s ease-in-out, background-color 0.15s ease-in-out;
899
-
900
- .np-theme-personal & {
901
- border-radius: var(--radius-small);
902
- }
903
-
904
- &:not(.disabled, :disabled):hover {
905
- border-color: var(--color-interactive-secondary-hover);
906
- }
907
-
908
- &:not(.disabled, :disabled).focus,
909
- &:not(.disabled, :disabled).focus:hover,
910
- &:not(.disabled, :disabled).has-focus,
911
- &:not(.disabled, :disabled).has-focus:hover,
912
- &:not(.disabled, :disabled):focus-within {
913
- border-color: var(--color-interactive-accent-active);
914
-
915
- .np-theme-personal & {
916
- border-color: var(--color-interactive-secondary);
917
- }
918
- }
919
- }
920
-
921
- &.checkbox-lg,
922
- &.radio-lg {
923
- > label {
924
- min-height: var(--size-72);
925
-
926
- small,
927
- .small,
928
- .body-2,
929
- .np-text-body-default {
930
- display: block;
931
- color: var(--color-content-secondary);
932
- }
933
- }
934
- }
935
- }
936
-
937
- .error-messages {
938
- display: none;
939
- color: var(--color-content-negative);
940
- background-color: var(--color-background-negative);
941
- position: relative;
942
- .arrow-pointer(@alert-arrow-width);
943
-
944
- .form-group & {
945
- border-radius: @border-radius-base;
946
- border-width: 0;
947
- margin-top: 12px;
948
- }
949
-
950
- .has-error & {
951
- display: block;
952
-
953
- &:empty,
954
- &:-moz-only-whitespace {
955
- display: none;
956
-
957
- &::before {
958
- display: none;
959
- }
960
- }
961
- }
962
- }
963
-
964
- .error-required,
965
- .error-pattern,
966
- .error-minlength,
967
- .error-maxlength,
968
- .error-min,
969
- .error-max,
970
- .error-async,
971
- .error-number,
972
- .error-date,
973
- .error-time,
974
- .error-datetime,
975
- .error-email,
976
- .error-url,
977
- .error-week,
978
- .error-month,
979
- .error-datetimelocal {
980
- display: none;
981
- }
982
-
983
- .ng-invalid-required ~ .error-messages > .error-required,
984
- .ng-invalid-pattern ~ .error-messages > .error-pattern,
985
- .ng-invalid-minlength ~ .error-messages > .error-minlength,
986
- .ng-invalid-maxlength ~ .error-messages > .error-maxlength,
987
- .ng-invalid-min ~ .error-messages > .error-min,
988
- .ng-invalid-max ~ .error-messages > .error-max,
989
- .ng-invalid-async ~ .error-messages > .error-async,
990
- .ng-invalid-number ~ .error-messages > .error-number,
991
- .ng-invalid-date ~ .error-messages > .error-date,
992
- .ng-invalid-time ~ .error-messages > .error-time,
993
- .ng-invalid-datetime ~ .error-messages > .error-datetime,
994
- .ng-invalid-email ~ .error-messages > .error-email,
995
- .ng-invalid-url ~ .error-messages > .error-url,
996
- .ng-invalid-week ~ .error-messages > .error-week,
997
- .ng-invalid-month ~ .error-messages > .error-month,
998
- .ng-invalid-datetimelocal ~ .error-messages > .error-datetimelocal {
999
- display: block;
1000
- }
1001
-
1002
- .ng-invalid-required ~ .alert-danger > .error-required,
1003
- .ng-invalid-pattern ~ .alert-danger > .error-pattern,
1004
- .ng-invalid-minlength ~ .alert-danger > .error-minlength,
1005
- .ng-invalid-maxlength ~ .alert-danger > .error-maxlength,
1006
- .ng-invalid-min ~ .alert-danger > .error-min,
1007
- .ng-invalid-max ~ .alert-danger > .error-max,
1008
- .ng-invalid-async ~ .alert-danger > .error-async,
1009
- .ng-invalid-number ~ .alert-danger > .error-number,
1010
- .ng-invalid-date ~ .alert-danger > .error-date,
1011
- .ng-invalid-time ~ .alert-danger > .error-time,
1012
- .ng-invalid-datetime ~ .alert-danger > .error-datetime,
1013
- .ng-invalid-email ~ .alert-danger > .error-email,
1014
- .ng-invalid-url ~ .alert-danger > .error-url,
1015
- .ng-invalid-week ~ .alert-danger > .error-week,
1016
- .ng-invalid-month ~ .alert-danger > .error-month,
1017
- .ng-invalid-datetimelocal ~ .alert-danger > .error-datetimelocal {
1018
- display: block;
1019
- }
1020
-
1021
- .form-control-placeholder {
1022
- text-overflow: ellipsis;
1023
- overflow: hidden;
1024
- .np-text-body-large;
1025
- display: block;
1026
- width: 100%;
1027
- color: var(--color-content-tertiary);
1028
- }
1029
-
1030
- .np-theme-personal {
1031
- .btn-input,
1032
- .input-group,
1033
- .form-control,
1034
- .input-group-addon,
1035
- .radio > label,
1036
- .checkbox > label {
1037
- background-color: unset;
1038
- border: none !important;
1039
- border-radius: var(--radius-small);
1040
- }
1041
-
1042
- .btn-input,
1043
- .input-group,
1044
- .form-control,
1045
- .radio > label,
1046
- .checkbox > label {
1047
- box-shadow: inset 0 0 0 1px var(--color-interactive-secondary);
1048
- transition: box-shadow 0.3s ease-in-out;
1049
- }
1050
-
1051
- .input-group > .form-control,
1052
- .input-group > .btn-input,
1053
- .typeahead__input-container .form-control {
1054
- box-shadow: none !important;
1055
- }
1056
-
1057
- .btn-input:not(.disabled, :disabled),
1058
- .input-group:not(.disabled, :disabled),
1059
- .form-control:not(.disabled, :disabled),
1060
- .radio > label:not(.disabled, :disabled),
1061
- .checkbox > label:not(.disabled, :disabled) {
1062
- &:hover {
1063
- box-shadow: inset 0 0 0 2px var(--color-interactive-secondary-hover);
1064
- &:has(:checked, .checked) {
1065
- box-shadow: inset 0 0 0 2px var(--color-interactive-primary-hover);
1066
- }
1067
- }
1068
- }
1069
-
1070
- .btn-input:not(.disabled, :disabled):focus-visible,
1071
- .btn-input:not(.disabled, :disabled):has(:focus-visible),
1072
- .input-group:not(.disabled, :disabled):focus-visible,
1073
- .input-group:not(.disabled, :disabled):has(.form-control:focus-visible, .btn-input:focus-visible),
1074
- .form-control:not(.disabled, :disabled):focus-visible,
1075
- .form-control:not(.disabled, :disabled):has(:focus-visible),
1076
- .radio > label:not(.disabled, :disabled):focus-visible,
1077
- .radio > label:not(.disabled, :disabled):has(:focus-visible),
1078
- .checkbox > label:not(.disabled, :disabled):focus-visible,
1079
- .checkbox > label:not(.disabled, :disabled):has(:focus-visible) {
1080
- box-shadow: inset 0 0 0 3px var(--color-interactive-primary);
1081
- }
1082
-
1083
- .has-error {
1084
- .btn-input,
1085
- .input-group,
1086
- .form-control,
1087
- .radio > label,
1088
- .checkbox > label {
1089
- box-shadow: inset 0 0 0 2px var(--color-sentiment-negative);
1090
- }
1091
-
1092
- .input-group:not(.disabled, :disabled):hover,
1093
- .form-control:not(.disabled, :disabled):hover,
1094
- .radio > label:not(.disabled, :disabled):hover,
1095
- .checkbox > label:not(.disabled, :disabled):hover {
1096
- box-shadow: inset 0 0 0 2px var(--color-sentiment-negative-hover);
1097
- }
1098
-
1099
- .input-group:not(.disabled, :disabled):active,
1100
- .input-group:not(.disabled, :disabled):focus-visible,
1101
- .input-group:not(.disabled, :disabled):has(:focus-visible),
1102
- .form-control:not(.disabled, :disabled):active,
1103
- .form-control:not(.disabled, :disabled):focus-visible,
1104
- .form-control:not(.disabled, :disabled):has(:focus-visible),
1105
- .radio > label:not(.disabled, :disabled):active,
1106
- .radio > label:not(.disabled, :disabled):focus-visible,
1107
- .radio > label:not(.disabled, :disabled):has(:focus-visible),
1108
- .checkbox > label:not(.disabled, :disabled):active,
1109
- .checkbox > label:not(.disabled, :disabled):focus-visible,
1110
- .checkbox > label:not(.disabled, :disabled):has(:focus-visible) {
1111
- box-shadow: inset 0 0 0 3px var(--color-sentiment-negative);
1112
- }
1113
-
1114
- .tw-radio-button {
1115
- border-color: var(--color-sentiment-negative) !important;
1116
-
1117
- &.checked {
1118
- box-shadow: inset 0 0 0 1px var(--color-sentiment-negative);
1119
- }
1120
-
1121
- &.checked .tw-radio-check {
1122
- background: var(--color-sentiment-negative) !important;
1123
- }
1124
- }
1125
-
1126
- .checkbox:hover .tw-checkbox-button,
1127
- .radio:not(.disabled):hover .tw-radio-button,
1128
- .tw-checkbox-button:not(.disabled,:disabled):hover,
1129
- input[type=checkbox]:hover+.tw-checkbox-button,
1130
- input[type=radio]:not(.disabled,:disabled):hover+.tw-radio-button,
1131
- input[type=checkbox]:not(.disabled,:disabled):hover+.tw-checkbox-button {
1132
- box-shadow: inset 0 0 0 2px var(--color-sentiment-negative-hover);
1133
- }
1134
-
1135
- .tw-checkbox-button.checked,
1136
- .tw-checkbox-button:checked,
1137
- input[type=checkbox]:checked+.tw-checkbox-button,
1138
- .tw-checkbox-button.checked:hover,
1139
- .tw-checkbox-button:checked:hover,
1140
- input[type=checkbox]:not(.disabled,:disabled):checked:hover+.tw-checkbox-button {
1141
- box-shadow: inset 0 0 0 3px var(--color-sentiment-negative);
1142
- background: var(--color-sentiment-negative);
1143
- }
1144
-
1145
- .checkbox>label:not(.disabled,:disabled):active input[type=checkbox]+.tw-checkbox-button,
1146
- .checkbox>label:not(.disabled,:disabled):focus-visible input[type=checkbox]+.tw-checkbox-button,
1147
- .checkbox>label:not(.disabled,:disabled):has(:focus-visible) input[type=checkbox]+.tw-checkbox-button {
1148
- box-shadow: inset 0 0 0 2px var(--color-sentiment-negative-active);
1149
- }
1150
- }
1151
-
1152
- .tw-radio-button,
1153
- .tw-checkbox-button {
1154
- background-color: unset;
1155
- color: unset;
1156
- transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
1157
- }
1158
-
1159
- .btn-input:hover,
1160
- .btn-input:active,
1161
- .btn-input:focus,
1162
- .btn-input:focus,
1163
- .btn-input:focus-within,
1164
- &.open .btn-input {
1165
- background-color: unset !important;
1166
- }
1167
-
1168
- .form-group label {
1169
- margin-bottom: var(--padding-x-small);
1170
- }
1171
-
1172
- .form-group .np-upload-input label {
1173
- margin-bottom: 0;
1174
- }
1175
-
1176
- .form-group .alert:before,
1177
- .error-messages:before {
1178
- content: none;
1179
- }
1180
-
1181
- .error-messages,
1182
- .alert-detach {
1183
- color: var(--color-content-secondary);
1184
-
1185
- margin: var(--padding-x-small) 0;
1186
- padding: 0;
1187
- background-color: unset;
1188
- }
1189
-
1190
- .alert-detach {
1191
- .status-circle {
1192
- margin-top: 2px;
1193
- margin-right: var(--size-4);
1194
- }
1195
- }
1196
-
1197
- .has-error .error-messages,
1198
- .has-error .alert-detach.alert-danger {
1199
- color: var(--color-sentiment-negative);
1200
- }
1201
-
1202
- .has-success .alert-detach.alert-positive,
1203
- .has-warning .alert-detach.alert-warning,
1204
- .has-error .alert-detach.alert-danger {
1205
- display: flex;
1206
- }
1207
- }
1208
-
1209
- .has-required {
1210
- &::after {
1211
- content: "\00a0*";
1212
- color: var(--color-content-negative);
1213
-
1214
- .np-theme-personal & {
1215
- color: var(--color-sentiment-negative);
1216
- }
1217
- }
1218
- }