superdesk-ui-framework 2.4.21 → 3.0.1-beta.2

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 (519) hide show
  1. package/app/fonts/sd_big-icons.eot +0 -0
  2. package/app/fonts/sd_big-icons.svg +55 -53
  3. package/app/fonts/sd_big-icons.ttf +0 -0
  4. package/app/fonts/sd_big-icons.woff +0 -0
  5. package/app/fonts/sd_icons.eot +0 -0
  6. package/app/fonts/sd_icons.svg +1 -0
  7. package/app/fonts/sd_icons.ttf +0 -0
  8. package/app/fonts/sd_icons.woff +0 -0
  9. package/app/img/dots.svg +3 -0
  10. package/app/img/spinner.svg +3 -0
  11. package/app/img/themes/theme-base.svg +1 -0
  12. package/app/img/themes/theme-contrast.svg +45 -0
  13. package/app/img/themes/theme-dark.svg +1 -0
  14. package/app/img/themes/theme-light.svg +1 -0
  15. package/app/index.js +2 -1
  16. package/app/scripts/check.js +1 -1
  17. package/app/scripts/modals.js +1 -0
  18. package/app/styles/_accessibility.scss +308 -6
  19. package/app/styles/_alerts.scss +227 -97
  20. package/app/styles/_avatar.scss +60 -33
  21. package/app/styles/_badge.scss +55 -26
  22. package/app/styles/_big-icon-font.scss +61 -23
  23. package/app/styles/_boxed-list.scss +67 -23
  24. package/app/styles/_buttons.scss +548 -1026
  25. package/app/styles/_carousel.scss +19 -13
  26. package/app/styles/_content-divider.scss +125 -0
  27. package/app/styles/_design-tokens.scss +2 -0
  28. package/app/styles/_drag-drop.scss +1 -1
  29. package/app/styles/_empty-states.scss +9 -1
  30. package/app/styles/_helpers.scss +654 -311
  31. package/app/styles/_icon-font.scss +343 -309
  32. package/app/styles/_icon-labels.scss +69 -14
  33. package/app/styles/_labels.scss +65 -52
  34. package/app/styles/_loaders.scss +28 -0
  35. package/app/styles/_master-desk.scss +11 -11
  36. package/app/styles/_mixins.scss +21 -13
  37. package/app/styles/_modals.scss +103 -116
  38. package/app/styles/_normalize.scss +1 -0
  39. package/app/styles/_panel-info.scss +21 -16
  40. package/app/styles/_popover.scss +2 -2
  41. package/app/styles/_pr-superdesk-theme.scss +4 -0
  42. package/app/styles/_publisher-styles.scss +182 -0
  43. package/app/styles/_reboot.scss +1 -0
  44. package/app/styles/_sd-tag-input.scss +184 -97
  45. package/app/styles/_simple-list.scss +41 -19
  46. package/app/styles/_table-list.scss +244 -0
  47. package/app/styles/_tables.scss +5 -4
  48. package/app/styles/_tabs.scss +24 -75
  49. package/app/styles/_tag-labels.scss +47 -47
  50. package/app/styles/_thumb-carousel.scss +11 -10
  51. package/app/styles/_toggle-box.scss +52 -46
  52. package/app/styles/_toggle-button.scss +42 -0
  53. package/app/styles/_tooltips.scss +55 -98
  54. package/app/styles/_variables.scss +0 -1
  55. package/app/styles/app.scss +17 -1
  56. package/app/styles/components/_card-item.scss +41 -28
  57. package/app/styles/components/_list-item.scss +47 -113
  58. package/app/styles/components/_sd-circular-progress.scss +1 -1
  59. package/app/styles/components/_sd-collapse-box.scss +6 -33
  60. package/app/styles/components/_sd-comment-box.scss +1 -1
  61. package/app/styles/components/_sd-dropzone.scss +114 -0
  62. package/app/styles/components/_sd-grid-item.scss +78 -180
  63. package/app/styles/components/_sd-loader.scss +1 -16
  64. package/app/styles/components/_sd-media-carousel.scss +10 -12
  65. package/app/styles/components/_sd-photo-preview.scss +13 -13
  66. package/app/styles/components/_sd-searchbar.scss +43 -127
  67. package/app/styles/components/_sd-toaster.scss +13 -6
  68. package/app/styles/components/_subnav.scss +172 -171
  69. package/app/styles/components/_theme-selector.scss +189 -0
  70. package/app/styles/components/sd-slider.scss +11 -11
  71. package/app/styles/design-tokens/_design-tokens-general.scss +84 -0
  72. package/app/styles/design-tokens/_new-colors.scss +702 -0
  73. package/app/styles/dropdowns/_basic-dropdown.scss +119 -76
  74. package/app/styles/dropdowns/_navigation_dropdown.scss +7 -8
  75. package/app/styles/dropdowns/_nested-dropdown.scss +30 -16
  76. package/app/styles/dropdowns/_other_dropdown.scss +1 -1
  77. package/app/styles/editor/_editor-buttons.scss +54 -0
  78. package/app/styles/editor/_editor-themes.scss +437 -0
  79. package/app/styles/form-elements/_autocomplete.scss +12 -41
  80. package/app/styles/form-elements/_checkbox.scss +180 -245
  81. package/app/styles/form-elements/_forms-general.scss +92 -20
  82. package/app/styles/form-elements/_inputs.scss +100 -350
  83. package/app/styles/form-elements/_radio.scss +6 -6
  84. package/app/styles/form-elements/_select-grid.scss +16 -14
  85. package/app/styles/form-elements/_switch.scss +26 -47
  86. package/app/styles/grids/_basic-grid.scss +52 -26
  87. package/app/styles/grids/_grid-layout.scss +114 -65
  88. package/app/styles/grids/_layout-grid.scss +6 -6
  89. package/app/styles/grids/_sd-kanban-list.scss +2 -2
  90. package/app/styles/interface-elements/_side-panel.scss +115 -83
  91. package/app/styles/layout/_basic-layout.scss +11 -19
  92. package/app/styles/layout/_container.scss +35 -0
  93. package/app/styles/layout/_editor.scss +398 -0
  94. package/app/styles/layout/_general.scss +4 -5
  95. package/app/styles/menus/_sd-content-navigation.scss +1 -1
  96. package/app/styles/menus/_sd-left-navigation.scss +34 -18
  97. package/app/styles/menus/_sd-sidebar-menu.scss +123 -25
  98. package/app/styles/menus/_sd-top-menu.scss +3 -3
  99. package/app/styles/primereact/_pr-datepicker.scss +60 -9
  100. package/app/styles/primereact/_pr-dialog.scss +131 -30
  101. package/app/styles/primereact/_pr-dropdown.scss +177 -19
  102. package/app/styles/primereact/_pr-general.scss +14 -7
  103. package/app/styles/primereact/_pr-menu.scss +9 -12
  104. package/app/styles/variables/_colors.scss +124 -516
  105. package/app/styles/variables/_dimensions.scss +82 -4
  106. package/app/styles/variables/_form-elements.scss +0 -2
  107. package/app/styles/variables/_typography.scss +2 -0
  108. package/app-typescript/components/Alert.tsx +16 -1
  109. package/app-typescript/components/Avatar.tsx +21 -0
  110. package/app-typescript/components/ButtonGroup.tsx +9 -5
  111. package/app-typescript/components/Carousel.tsx +1 -1
  112. package/app-typescript/components/CheckButtonGroup.tsx +19 -5
  113. package/app-typescript/components/CheckGroup.tsx +2 -1
  114. package/app-typescript/components/Checkbox.tsx +7 -3
  115. package/app-typescript/components/CheckboxButton.tsx +9 -2
  116. package/app-typescript/components/ContentDivider.tsx +34 -0
  117. package/app-typescript/components/CreateButton.tsx +38 -0
  118. package/app-typescript/components/DatePicker.tsx +6 -2
  119. package/app-typescript/components/DropZone.tsx +89 -0
  120. package/app-typescript/components/Dropdown.tsx +30 -11
  121. package/app-typescript/components/DropdownFirst.tsx +1 -1
  122. package/app-typescript/components/Editor/EditorButton.tsx +34 -0
  123. package/app-typescript/components/Form/FormGroup.tsx +33 -0
  124. package/app-typescript/components/Form/FormItem.tsx +20 -0
  125. package/app-typescript/components/Form/FormLabel.tsx +22 -0
  126. package/app-typescript/components/Form/FormRow.tsx +40 -0
  127. package/app-typescript/components/Form/FormText.tsx +15 -0
  128. package/app-typescript/components/Form/index.tsx +5 -0
  129. package/app-typescript/components/Icon.tsx +3 -1
  130. package/app-typescript/components/IconButton.tsx +26 -12
  131. package/app-typescript/components/IconLabel.tsx +8 -1
  132. package/app-typescript/components/Input.tsx +39 -20
  133. package/app-typescript/components/Layouts/AuthorinInnerSideBar.tsx +15 -0
  134. package/app-typescript/components/Layouts/AuthoringContainer.tsx +27 -0
  135. package/app-typescript/components/Layouts/AuthoringFrame.tsx +72 -0
  136. package/app-typescript/components/Layouts/AuthoringFrameContainer.tsx +15 -0
  137. package/app-typescript/components/Layouts/AuthoringFrameLeftBar.tsx +15 -0
  138. package/app-typescript/components/Layouts/AuthoringFrameMain.tsx +15 -0
  139. package/app-typescript/components/Layouts/AuthoringFrameNavBar.tsx +15 -0
  140. package/app-typescript/components/Layouts/AuthoringFrameOverlay.tsx +15 -0
  141. package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +15 -0
  142. package/app-typescript/components/Layouts/AuthoringFrameSidePanel.tsx +22 -0
  143. package/app-typescript/components/Layouts/AuthoringFrameSidePanelOverlay.tsx +22 -0
  144. package/app-typescript/components/Layouts/AuthoringInnerBody.tsx +15 -0
  145. package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +40 -0
  146. package/app-typescript/components/Layouts/AuthoringMain.tsx +50 -0
  147. package/app-typescript/components/Layouts/AuthoringMainContainer.tsx +15 -0
  148. package/app-typescript/components/Layouts/AuthoringMainContent.tsx +15 -0
  149. package/app-typescript/components/Layouts/AuthoringMainToolBar.tsx +21 -0
  150. package/app-typescript/components/Layouts/Container.tsx +30 -0
  151. package/app-typescript/components/Layouts/ContentSplitter.tsx +23 -0
  152. package/app-typescript/components/Layouts/HeaderPanel.tsx +15 -0
  153. package/app-typescript/components/Layouts/Layout.tsx +33 -0
  154. package/app-typescript/components/Layouts/LayoutContainer.tsx +15 -0
  155. package/app-typescript/components/Layouts/LeftPanel.tsx +24 -0
  156. package/app-typescript/components/Layouts/MainPanel.tsx +27 -0
  157. package/app-typescript/components/Layouts/OverlayPanel.tsx +19 -0
  158. package/app-typescript/components/Layouts/PageLayout.tsx +51 -0
  159. package/app-typescript/components/Layouts/Panel.tsx +208 -0
  160. package/app-typescript/components/Layouts/RightPanel.tsx +16 -0
  161. package/app-typescript/components/Layouts/index.tsx +31 -0
  162. package/app-typescript/components/LeftMenu.tsx +123 -49
  163. package/app-typescript/components/Lists/BoxedList.tsx +137 -0
  164. package/app-typescript/components/Lists/ContentList.tsx +100 -0
  165. package/app-typescript/components/Lists/SimpleList.tsx +54 -0
  166. package/app-typescript/components/Lists/TableList.tsx +208 -0
  167. package/app-typescript/components/Lists/index.tsx +2 -0
  168. package/app-typescript/components/Modal.tsx +30 -15
  169. package/app-typescript/components/MultiSelect.tsx +69 -0
  170. package/app-typescript/components/Navigation/QuickNavBar.tsx +114 -0
  171. package/app-typescript/components/Navigation/SideBarMenu.tsx +68 -0
  172. package/app-typescript/components/Navigation/SideBarTabs.tsx +87 -0
  173. package/app-typescript/components/Navigation/index.tsx +3 -0
  174. package/app-typescript/components/RadioButtonGroup.tsx +113 -0
  175. package/app-typescript/components/RadioGroup.tsx +69 -0
  176. package/app-typescript/components/SearchBar.tsx +79 -0
  177. package/app-typescript/components/Select.tsx +9 -9
  178. package/app-typescript/components/SelectGrid.tsx +3 -3
  179. package/app-typescript/components/SidebarMenu.tsx +68 -0
  180. package/app-typescript/components/SlidingToolbar.tsx +8 -2
  181. package/app-typescript/components/Spinner.tsx +1 -2
  182. package/app-typescript/components/SubNav.tsx +25 -4
  183. package/app-typescript/components/Switch.tsx +34 -12
  184. package/app-typescript/components/SwitchGroup.tsx +2 -1
  185. package/app-typescript/components/TabCustom.tsx +40 -89
  186. package/app-typescript/components/TabList.tsx +18 -43
  187. package/app-typescript/components/Tag.tsx +32 -9
  188. package/app-typescript/components/Text/Heading.tsx +67 -0
  189. package/app-typescript/components/Text/Text.tsx +36 -0
  190. package/app-typescript/components/ThemeSelector.tsx +113 -0
  191. package/app-typescript/components/TimePicker.tsx +3 -3
  192. package/app-typescript/components/Togglebox.tsx +8 -6
  193. package/app-typescript/components/TreeSelect.tsx +330 -0
  194. package/app-typescript/index.ts +19 -4
  195. package/dist/avatar-2.jpg +0 -0
  196. package/dist/avatar-3.jpg +0 -0
  197. package/dist/avatar-4.jpg +0 -0
  198. package/dist/avatar-5.jpg +0 -0
  199. package/dist/avatar-6.jpg +0 -0
  200. package/dist/avatar_64.png +0 -0
  201. package/dist/components/basic-grid.html +1 -1
  202. package/dist/components/checkbox.html +1 -1
  203. package/dist/dots.svg +3 -0
  204. package/dist/examples.bundle.css +9800 -2768
  205. package/dist/examples.bundle.js +39221 -17840
  206. package/dist/index.html +9 -12
  207. package/dist/playgrounds/boxed-list.html +1 -1
  208. package/dist/playgrounds/cards.html +9 -4
  209. package/dist/playgrounds/editor-3-test.html +15 -0
  210. package/dist/playgrounds/form-layout.html +9 -7
  211. package/dist/playgrounds/layout-test-2.html +40 -36
  212. package/dist/playgrounds/list-item-test.html +1 -1
  213. package/dist/playgrounds/master-desk.html +1 -3
  214. package/dist/playgrounds/photo-desk.html +33 -33
  215. package/dist/playgrounds/react-playgrounds/EditorTest.tsx +459 -0
  216. package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +4 -4
  217. package/dist/playgrounds/react-playgrounds/Index.tsx +7 -1
  218. package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +161 -0
  219. package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +635 -0
  220. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
  221. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
  222. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +30 -39
  223. package/dist/playgrounds/react-playgrounds/TestGround.tsx +240 -23
  224. package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +304 -0
  225. package/dist/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
  226. package/dist/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
  227. package/dist/playgrounds/react-playgrounds/components/Index.tsx +6 -1
  228. package/dist/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
  229. package/dist/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
  230. package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
  231. package/dist/playgrounds/tags-input.html +1 -1
  232. package/dist/react/Alerts.tsx +123 -23
  233. package/dist/react/Avatar.tsx +314 -127
  234. package/dist/react/BoxedList.tsx +362 -0
  235. package/dist/react/ButtonGroups.tsx +66 -65
  236. package/dist/react/Buttons.tsx +62 -247
  237. package/dist/react/Carousel.tsx +2 -3
  238. package/dist/react/Checkboxs.tsx +66 -25
  239. package/dist/react/Container.tsx +143 -0
  240. package/dist/react/ContentDivider.tsx +178 -0
  241. package/dist/react/ContentList.tsx +280 -0
  242. package/dist/react/CreateButton.tsx +71 -0
  243. package/dist/react/DropZone.tsx +111 -0
  244. package/dist/react/Heading.tsx +106 -0
  245. package/dist/react/IconButtons.tsx +49 -42
  246. package/dist/react/IconLabels.tsx +24 -2
  247. package/dist/react/Index.tsx +133 -11
  248. package/dist/react/Inputs.tsx +33 -20
  249. package/dist/react/LeftNavigations.tsx +161 -9
  250. package/dist/react/ListItems.tsx +3 -3
  251. package/dist/react/Modal.tsx +174 -19
  252. package/dist/react/MultiSelect.tsx +193 -0
  253. package/dist/react/NavButtons.tsx +4 -4
  254. package/dist/react/Panel.tsx +366 -0
  255. package/dist/react/QuickNavigationBar.tsx +142 -0
  256. package/dist/react/RadioGroup.tsx +351 -0
  257. package/dist/react/SelectWithTemplate.tsx +1 -1
  258. package/dist/react/Selects.tsx +3 -23
  259. package/dist/react/SimpleList.tsx +148 -0
  260. package/dist/react/SubNav.tsx +69 -20
  261. package/dist/react/TableList.tsx +268 -0
  262. package/dist/react/Tabs.tsx +72 -248
  263. package/dist/react/Tags.tsx +52 -13
  264. package/dist/react/Text.tsx +134 -0
  265. package/dist/react/Tooltips.tsx +1 -1
  266. package/dist/react/TreeSelect.tsx +178 -0
  267. package/dist/react.html +4 -0
  268. package/dist/sd_big-icons.eot +0 -0
  269. package/dist/sd_big-icons.svg +55 -53
  270. package/dist/sd_big-icons.ttf +0 -0
  271. package/dist/sd_big-icons.woff +0 -0
  272. package/dist/sd_icons.eot +0 -0
  273. package/dist/sd_icons.svg +1 -0
  274. package/dist/sd_icons.ttf +0 -0
  275. package/dist/sd_icons.woff +0 -0
  276. package/dist/superdesk-ui.bundle.css +51124 -26537
  277. package/dist/superdesk-ui.bundle.js +7849 -3639
  278. package/dist/vendor.bundle.js +71 -75
  279. package/examples/css/docs-page.css +204 -46
  280. package/examples/img/avatar-2.jpg +0 -0
  281. package/examples/img/avatar-3.jpg +0 -0
  282. package/examples/img/avatar-4.jpg +0 -0
  283. package/examples/img/avatar-5.jpg +0 -0
  284. package/examples/img/avatar-6.jpg +0 -0
  285. package/examples/index.html +9 -12
  286. package/examples/index.js +28 -0
  287. package/examples/pages/components/basic-grid.html +1 -1
  288. package/examples/pages/components/checkbox.html +1 -1
  289. package/examples/pages/playgrounds/boxed-list.html +1 -1
  290. package/examples/pages/playgrounds/cards.html +9 -4
  291. package/examples/pages/playgrounds/editor-3-test.html +15 -0
  292. package/examples/pages/playgrounds/form-layout.html +9 -7
  293. package/examples/pages/playgrounds/layout-test-2.html +40 -36
  294. package/examples/pages/playgrounds/list-item-test.html +1 -1
  295. package/examples/pages/playgrounds/master-desk.html +1 -3
  296. package/examples/pages/playgrounds/photo-desk.html +33 -33
  297. package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +459 -0
  298. package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +4 -4
  299. package/examples/pages/playgrounds/react-playgrounds/Index.tsx +7 -1
  300. package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +161 -0
  301. package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +635 -0
  302. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +466 -0
  303. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +1002 -0
  304. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +30 -39
  305. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +240 -23
  306. package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +304 -0
  307. package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +26 -0
  308. package/examples/pages/playgrounds/react-playgrounds/components/ContentSplitter.tsx +22 -0
  309. package/examples/pages/playgrounds/react-playgrounds/components/Index.tsx +6 -1
  310. package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
  311. package/examples/pages/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -1
  312. package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +51 -9
  313. package/examples/pages/playgrounds/tags-input.html +1 -1
  314. package/examples/pages/react/Alerts.tsx +123 -23
  315. package/examples/pages/react/Avatar.tsx +314 -127
  316. package/examples/pages/react/BoxedList.tsx +362 -0
  317. package/examples/pages/react/ButtonGroups.tsx +66 -65
  318. package/examples/pages/react/Buttons.tsx +62 -247
  319. package/examples/pages/react/Carousel.tsx +2 -3
  320. package/examples/pages/react/Checkboxs.tsx +66 -25
  321. package/examples/pages/react/Container.tsx +143 -0
  322. package/examples/pages/react/ContentDivider.tsx +178 -0
  323. package/examples/pages/react/ContentList.tsx +280 -0
  324. package/examples/pages/react/CreateButton.tsx +71 -0
  325. package/examples/pages/react/DropZone.tsx +111 -0
  326. package/examples/pages/react/Heading.tsx +106 -0
  327. package/examples/pages/react/IconButtons.tsx +49 -42
  328. package/examples/pages/react/IconLabels.tsx +24 -2
  329. package/examples/pages/react/Index.tsx +133 -11
  330. package/examples/pages/react/Inputs.tsx +33 -20
  331. package/examples/pages/react/LeftNavigations.tsx +161 -9
  332. package/examples/pages/react/ListItems.tsx +3 -3
  333. package/examples/pages/react/Modal.tsx +174 -19
  334. package/examples/pages/react/MultiSelect.tsx +193 -0
  335. package/examples/pages/react/NavButtons.tsx +4 -4
  336. package/examples/pages/react/Panel.tsx +366 -0
  337. package/examples/pages/react/QuickNavigationBar.tsx +142 -0
  338. package/examples/pages/react/RadioGroup.tsx +351 -0
  339. package/examples/pages/react/SelectWithTemplate.tsx +1 -1
  340. package/examples/pages/react/Selects.tsx +3 -23
  341. package/examples/pages/react/SimpleList.tsx +148 -0
  342. package/examples/pages/react/SubNav.tsx +69 -20
  343. package/examples/pages/react/TableList.tsx +268 -0
  344. package/examples/pages/react/Tabs.tsx +72 -248
  345. package/examples/pages/react/Tags.tsx +52 -13
  346. package/examples/pages/react/Text.tsx +134 -0
  347. package/examples/pages/react/Tooltips.tsx +1 -1
  348. package/examples/pages/react/TreeSelect.tsx +178 -0
  349. package/examples/pages/react.html +4 -0
  350. package/images/avatar_64.png +0 -0
  351. package/package.json +11 -6
  352. package/react/components/Alert.d.ts +3 -0
  353. package/react/components/Alert.js +9 -1
  354. package/react/components/Avatar.d.ts +9 -0
  355. package/react/components/Avatar.js +19 -1
  356. package/react/components/ButtonGroup.d.ts +4 -2
  357. package/react/components/ButtonGroup.js +5 -3
  358. package/react/components/Carousel.js +1 -1
  359. package/react/components/CheckButtonGroup.d.ts +3 -1
  360. package/react/components/CheckButtonGroup.js +8 -2
  361. package/react/components/CheckGroup.d.ts +1 -0
  362. package/react/components/CheckGroup.js +1 -1
  363. package/react/components/Checkbox.d.ts +2 -1
  364. package/react/components/Checkbox.js +2 -2
  365. package/react/components/CheckboxButton.d.ts +1 -0
  366. package/react/components/CheckboxButton.js +2 -2
  367. package/react/components/ContentDivider.d.ts +12 -0
  368. package/react/components/ContentDivider.js +66 -0
  369. package/react/components/CreateButton.d.ts +17 -0
  370. package/react/components/CreateButton.js +66 -0
  371. package/react/components/DatePicker.js +7 -2
  372. package/react/components/DropZone.d.ts +25 -0
  373. package/react/components/DropZone.js +93 -0
  374. package/react/components/Dropdown.d.ts +1 -0
  375. package/react/components/Dropdown.js +28 -23
  376. package/react/components/DropdownFirst.js +1 -1
  377. package/react/components/Form/FormGroup.d.ts +13 -0
  378. package/react/components/Form/FormGroup.js +61 -0
  379. package/react/components/Form/FormItem.d.ts +9 -0
  380. package/react/components/Form/FormItem.js +54 -0
  381. package/react/components/Form/FormLabel.d.ts +10 -0
  382. package/react/components/Form/FormLabel.js +54 -0
  383. package/react/components/Form/FormRow.d.ts +17 -0
  384. package/react/components/Form/FormRow.js +62 -0
  385. package/react/components/Form/FormText.d.ts +8 -0
  386. package/react/components/Form/FormText.js +47 -0
  387. package/react/components/Form/index.d.ts +5 -0
  388. package/react/components/Form/index.js +12 -0
  389. package/react/components/Icon.d.ts +1 -0
  390. package/react/components/Icon.js +2 -1
  391. package/react/components/IconButton.d.ts +9 -2
  392. package/react/components/IconButton.js +13 -5
  393. package/react/components/IconLabel.d.ts +2 -0
  394. package/react/components/IconLabel.js +6 -3
  395. package/react/components/Input.d.ts +21 -7
  396. package/react/components/Input.js +10 -13
  397. package/react/components/Layouts/AuthorinInnerSideBar.d.ts +8 -0
  398. package/react/components/Layouts/AuthorinInnerSideBar.js +47 -0
  399. package/react/components/Layouts/AuthoringContainer.d.ts +11 -0
  400. package/react/components/Layouts/AuthoringContainer.js +58 -0
  401. package/react/components/Layouts/AuthoringFrame.d.ts +18 -0
  402. package/react/components/Layouts/AuthoringFrame.js +56 -0
  403. package/react/components/Layouts/AuthoringFrameContainer.d.ts +8 -0
  404. package/react/components/Layouts/AuthoringFrameContainer.js +47 -0
  405. package/react/components/Layouts/AuthoringFrameLeftBar.d.ts +8 -0
  406. package/react/components/Layouts/AuthoringFrameLeftBar.js +47 -0
  407. package/react/components/Layouts/AuthoringFrameMain.d.ts +8 -0
  408. package/react/components/Layouts/AuthoringFrameMain.js +47 -0
  409. package/react/components/Layouts/AuthoringFrameNavBar.d.ts +8 -0
  410. package/react/components/Layouts/AuthoringFrameNavBar.js +47 -0
  411. package/react/components/Layouts/AuthoringFrameOverlay.d.ts +8 -0
  412. package/react/components/Layouts/AuthoringFrameOverlay.js +47 -0
  413. package/react/components/Layouts/AuthoringFrameRightBar.d.ts +8 -0
  414. package/react/components/Layouts/AuthoringFrameRightBar.js +47 -0
  415. package/react/components/Layouts/AuthoringFrameSidePanel.d.ts +10 -0
  416. package/react/components/Layouts/AuthoringFrameSidePanel.js +56 -0
  417. package/react/components/Layouts/AuthoringFrameSidePanelOverlay.d.ts +9 -0
  418. package/react/components/Layouts/AuthoringFrameSidePanelOverlay.js +56 -0
  419. package/react/components/Layouts/AuthoringInnerBody.d.ts +8 -0
  420. package/react/components/Layouts/AuthoringInnerBody.js +47 -0
  421. package/react/components/Layouts/AuthoringInnerHeader.d.ts +14 -0
  422. package/react/components/{RadioButton.js → Layouts/AuthoringInnerHeader.js} +23 -22
  423. package/react/components/Layouts/AuthoringMain.d.ts +14 -0
  424. package/react/components/Layouts/AuthoringMain.js +53 -0
  425. package/react/components/Layouts/AuthoringMainContainer.d.ts +8 -0
  426. package/react/components/Layouts/AuthoringMainContainer.js +47 -0
  427. package/react/components/Layouts/AuthoringMainContent.d.ts +8 -0
  428. package/react/components/Layouts/AuthoringMainContent.js +47 -0
  429. package/react/components/Layouts/AuthoringMainToolBar.d.ts +9 -0
  430. package/react/components/Layouts/AuthoringMainToolBar.js +54 -0
  431. package/react/components/Layouts/Container.d.ts +14 -0
  432. package/react/components/Layouts/Container.js +60 -0
  433. package/react/components/Layouts/ContentSplitter.d.ts +10 -0
  434. package/react/components/Layouts/ContentSplitter.js +56 -0
  435. package/react/components/Layouts/HeaderPanel.d.ts +8 -0
  436. package/react/components/Layouts/HeaderPanel.js +47 -0
  437. package/react/components/Layouts/Layout.d.ts +8 -0
  438. package/react/components/Layouts/Layout.js +35 -0
  439. package/react/components/Layouts/LayoutContainer.d.ts +8 -0
  440. package/react/components/Layouts/LayoutContainer.js +47 -0
  441. package/react/components/Layouts/LeftPanel.d.ts +9 -0
  442. package/react/components/Layouts/LeftPanel.js +54 -0
  443. package/react/components/Layouts/MainPanel.d.ts +11 -0
  444. package/react/components/Layouts/MainPanel.js +57 -0
  445. package/react/components/Layouts/OverlayPanel.d.ts +8 -0
  446. package/react/components/Layouts/OverlayPanel.js +49 -0
  447. package/react/components/Layouts/PageLayout.d.ts +16 -0
  448. package/react/components/Layouts/PageLayout.js +64 -0
  449. package/react/components/Layouts/Panel.d.ts +66 -0
  450. package/react/components/Layouts/Panel.js +166 -0
  451. package/react/components/Layouts/RightPanel.d.ts +9 -0
  452. package/react/components/Layouts/RightPanel.js +47 -0
  453. package/react/components/Layouts/index.d.ts +28 -0
  454. package/react/components/Layouts/index.js +63 -0
  455. package/react/components/LeftMenu.d.ts +8 -3
  456. package/react/components/LeftMenu.js +55 -16
  457. package/react/components/Lists/BoxedList.d.ts +38 -0
  458. package/react/components/Lists/BoxedList.js +139 -0
  459. package/react/components/Lists/SimpleList.d.ts +21 -0
  460. package/react/components/Lists/SimpleList.js +78 -0
  461. package/react/components/Lists/index.d.ts +2 -0
  462. package/react/components/Lists/index.js +9 -0
  463. package/react/components/Modal.d.ts +5 -1
  464. package/react/components/Modal.js +11 -2
  465. package/react/components/Navigation/QuickNavBar.d.ts +24 -0
  466. package/react/components/Navigation/QuickNavBar.js +113 -0
  467. package/react/components/Navigation/SideBarMenu.d.ts +21 -0
  468. package/react/components/Navigation/SideBarMenu.js +77 -0
  469. package/react/components/Navigation/SideBarTabs.d.ts +23 -0
  470. package/react/components/Navigation/SideBarTabs.js +86 -0
  471. package/react/components/Navigation/index.d.ts +3 -0
  472. package/react/components/Navigation/index.js +8 -0
  473. package/react/components/RadioButtonGroup.d.ts +29 -0
  474. package/react/components/RadioButtonGroup.js +89 -0
  475. package/react/components/{Radio.d.ts → RadioGroup.d.ts} +7 -3
  476. package/react/components/{Radio.js → RadioGroup.js} +15 -11
  477. package/react/components/SearchBar.d.ts +23 -0
  478. package/react/components/SearchBar.js +87 -0
  479. package/react/components/Select.d.ts +2 -1
  480. package/react/components/Select.js +3 -9
  481. package/react/components/SelectGrid.js +3 -3
  482. package/react/components/SlidingToolbar.d.ts +1 -1
  483. package/react/components/SlidingToolbar.js +11 -1
  484. package/react/components/Spinner.d.ts +0 -1
  485. package/react/components/Spinner.js +1 -2
  486. package/react/components/SubNav.d.ts +8 -1
  487. package/react/components/SubNav.js +22 -4
  488. package/react/components/Switch.d.ts +4 -1
  489. package/react/components/Switch.js +19 -7
  490. package/react/components/SwitchGroup.d.ts +1 -0
  491. package/react/components/SwitchGroup.js +1 -1
  492. package/react/components/TabCustom.d.ts +11 -22
  493. package/react/components/TabCustom.js +23 -52
  494. package/react/components/TabList.d.ts +2 -11
  495. package/react/components/TabList.js +11 -32
  496. package/react/components/Tag.d.ts +4 -4
  497. package/react/components/Tag.js +16 -5
  498. package/react/components/TagInput.d.ts +0 -1
  499. package/react/components/Text/Heading.d.ts +15 -0
  500. package/react/components/Text/Heading.js +77 -0
  501. package/react/components/Text/Text.d.ts +15 -0
  502. package/react/components/Text/Text.js +65 -0
  503. package/react/components/{RadioButton.d.ts → ThemeSelector.d.ts} +4 -3
  504. package/react/components/ThemeSelector.js +112 -0
  505. package/react/components/TimePicker.js +2 -2
  506. package/react/components/Togglebox.d.ts +1 -0
  507. package/react/components/Togglebox.js +9 -2
  508. package/react/index.d.ts +17 -4
  509. package/react/index.js +41 -6
  510. package/sd_icons.eot +0 -0
  511. package/sd_icons.svg +189 -0
  512. package/sd_icons.ttf +0 -0
  513. package/sd_icons.woff +0 -0
  514. package/app/styles/_editor-themes.scss +0 -326
  515. package/app/styles/variables/_design-tokens-general.scss +0 -76
  516. package/app-typescript/components/Radio.tsx +0 -57
  517. package/app-typescript/components/RadioButton.tsx +0 -57
  518. package/dist/react/Radios.tsx +0 -391
  519. package/examples/pages/react/Radios.tsx +0 -391
@@ -1,484 +1,234 @@
1
- /// Padding inside buttons.
2
- /// @type List
3
- $button-padding: 0 1.4rem !default;
4
- $button-padding-small: 0 1rem;
5
- $button-padding-large: 0 2rem;
6
1
 
7
- $button-height: $sd-base-increment * 4;
8
- $button-height-small: $sd-base-increment * 3;
9
- $button-height-large: $sd-base-increment * 5;
10
-
11
- $button-padding-icon-only: 0 0.8rem;
12
- $button-padding-small-icon-only: 0 0.4rem;
13
- $button-padding-large-icon-only: 0 1.4rem;
14
-
15
- $button-padding-icon-only-circle: 0;
16
-
17
-
18
- /// Margin around buttons.
19
- /// @type List
20
2
  $button-margin: 0 !default;
3
+ $button-opacity-disabled: 0.60 !default;
4
+ $icn-button-opacity-disabled: 0.40 !default;
21
5
 
22
- /// Default background color for buttons.
23
- /// @type Color
24
- $button-background: scale-color($default-color, $alpha: -75%) !default;
25
-
26
- /// Background color on hover for buttons.
27
- /// @type Color
28
- $button-background-hover: scale-color($button-background, $lightness: -85%) !default;
29
-
30
- /// Border color for active button state
31
- $active-button-border-color: scale-color($black, $alpha: -60%) !default;
32
-
33
- /// Font color for buttons.
34
- /// @type List
35
- $button-color: $grayDark !default;
36
-
37
- /// Alternative font color for buttons.
38
- /// @type List
39
- $button-color-alt: $white !default;
40
-
41
- /// Border radius for buttons, defaulted to global-radius.
42
- /// @type Number
43
- //$button-radius: $global-radius !default;
44
- $button-radius: 2px !default;
45
-
46
- /// Sizes for buttons / Font size
47
- /// @type Map
48
- $button-sizes: (
49
- btn--small: 1rem,
50
- btn--default: 1.2rem,
51
- btn--large: 1.4rem,
52
- ) !default;
53
-
54
- /// opacity for a disabled button.
55
- /// @type List
56
- $button-opacity-disabled: 0.6 !default;
57
-
58
- /// Background color lightness on hover for buttons.
59
- /// @type Number
60
- $button-background-hover-lightness: -20% !default;
6
+ // /// transitions for buttons.
7
+ $button-transition: all 0.2s ease-out, color 0.1s ease-out !default;
8
+ $button-focus-box-shadow: 0 0 0 3px $sd-colour--focus-shadow;
9
+ $icn-button-focus-box-shadow: 0 0 0 2px $sd-colour--focus-shadow;
61
10
 
62
- /// Color lightness on hover for hollow buttons.
63
- /// @type Number
64
- $button-hollow-hover-lightness: -10% !default;
11
+ ////////////////////////////// NEW BUTTONS //////////////////////////////
65
12
 
66
- /// UI dark buttons
67
- $button-background-ui-dark: scale-color($default-color-ui-dark, $alpha: -75%) !default;
68
- $button-background-hover-ui-dark: scale-color($button-background-ui-dark, $lightness: -20%) !default;
69
- $button-color-ui-dark: $white !default;
70
- $button-background-hover-lightness-ui-dark: -20% !default;
13
+ $new-button-active-shadow: inset 0 1px 2px hsla(0, 0%, 0%, 0.3);
14
+ $new-button-active-shadow-hollow: inset 0 0 0 1px;
71
15
 
72
- /// transitions for buttons.
73
- $button-transition: background-color 0.2s ease-out, color 0.1s ease-out !default;
74
- $button-hover-box-shadow: 0 1px 2px 0 rgba(0,0,0,.3) !default;
75
- $button-focus-box-shadow: 0 0 0 3px rgba(94, 169, 200, 0.30);
76
- $icn-button-focus-box-shadow: 0 0 0 2px rgba(94, 169, 200, 0.30);
77
-
78
- // Button-base() mixin
79
- @mixin button-base {
80
- //@include disable-mouse-outline;
81
- display: inline-flex;
82
- align-items: center;
83
- vertical-align: middle;
84
- justify-content: center;
85
- margin: $button-margin;
86
- padding: $button-padding;
87
- height: $button-height;
88
-
89
- -webkit-appearance: none;
90
- border: 1px solid transparent;
91
- border-radius: $button-radius;
92
- transition: $button-transition;
16
+ :root {
17
+ --new-button-hover-shadow: 0 0 0 1px rgba(0,0,0,.12), 0 1px 4px 0 rgba(0,0,0,.14);
18
+ }
93
19
 
94
- font-size: map-get($button-sizes, btn--default);
95
- text-transform: uppercase;
96
- line-height: 1;
97
- font-weight: 400;
98
- letter-spacing: 0.1em;
99
- text-align: center;
100
- text-decoration: none;
101
- cursor: pointer;
102
- gap: 0.6rem;
20
+ [data-theme="dark-ui"], .dark-ui {
21
+ --new-button-hover-shadow: 0 0 0 1px rgba(0,0,0,.28), 0 1px 4px 0 rgba(0,0,0,.5);
103
22
  }
104
23
 
105
- /// Expands a button to make it full-width.
106
- @mixin button-expand($expand: true) {
107
- @if $expand {
108
- width: 100%;
109
- margin-right: 0;
110
- margin-left: 0;
111
- }
112
- @else {
24
+ @mixin new-button-base {
113
25
  display: inline-flex;
114
- width: auto;
26
+ align-items: center;
27
+ vertical-align: middle;
28
+ justify-content: center;
115
29
  margin: $button-margin;
116
- }
117
- }
118
-
119
- /// Active styles
120
- @mixin button-active-style () {
121
- box-shadow: inset 0 1px 1px rgba(0,0,0,.4);
122
- border-style: solid;
123
- border-color: $active-button-border-color $active-button-border-color transparent $active-button-border-color;
124
- border-width: 1px;
125
- }
126
-
127
-
128
- /// Sets the visual style of a button.
129
- @mixin button-style(
130
- $background: $button-background,
131
- $background-hover: $button-background-hover,
132
- $color: $button-color,
133
- $background-hover-lightness: $button-background-hover-lightness
134
- ) {
135
-
136
- @if $background-hover == auto {
137
- $background-hover: scale-color($background, $lightness: $background-hover-lightness);
138
- }
139
-
140
- background-color: $background;
141
- color: $color;
142
-
143
- &:hover, &:focus {
144
- background-color: $background-hover;
145
- color: $color;
30
+ padding-block-start: 0;
31
+ padding-block-end: 0;
32
+ padding-inline: $padding-x__button--default;
33
+ height: $height__button--default;
34
+ font-size: $font-size__button--default;
35
+ -webkit-appearance: none;
36
+ border: none;
37
+ border-radius: $border-radius__base--small;
38
+ transition: $button-transition;
39
+ text-transform: uppercase;
40
+ line-height: 1;
41
+ font-weight: 400;
42
+ letter-spacing: 0.1em;
43
+ text-align: center;
146
44
  text-decoration: none;
147
- box-shadow: $button-hover-box-shadow;
148
- }
149
- &:focus {
150
- box-shadow: $button-focus-box-shadow;
151
- }
152
- &:active {
153
- @include button-active-style;
154
- }
155
- }
156
-
157
- /// Removes background fill on hover and focus for hollow buttons.
158
- @mixin button-hollow {
159
- &,
160
- &:hover, &:focus {
161
- background-color: transparent;
162
- }
163
- }
164
-
165
- @mixin button-hollow-style(
166
- $color: $button-color,
167
- $border-color: scale-color($color, $alpha: -60%),
168
- $hover-lightness: $button-hollow-hover-lightness
169
- ) {
170
-
171
- $color-hover: scale-color($color, $alpha: $hover-lightness);
172
-
173
- border: 1px solid $border-color;
174
- color: $color;
175
- box-shadow: none;
176
-
177
- &:hover, &:focus {
178
- border-color: $color-hover;
179
- color: $color-hover;
180
- }
181
- &:focus {
182
- box-shadow: $button-focus-box-shadow;
183
- }
184
- &:active {
185
- box-shadow: inset 0 1px 0 0 $color;
186
- }
187
- }
188
-
189
- // UI dark
190
- @mixin button-ui-dark-style(
191
- $background: $button-background-ui-dark,
192
- $background-hover: $button-background-hover-ui-dark,
193
- $color: $button-color-ui-dark,
194
- $background-hover-lightness: $button-background-hover-lightness-ui-dark
195
- ) {
196
-
197
- @if $background-hover == auto {
198
- $background-hover: scale-color($background, $lightness: $background-hover-lightness);
199
- }
200
-
201
- background-color: $background;
202
- color: $color;
203
-
204
- &:hover, &:focus {
205
- background-color: $background-hover;
206
- color: $color;
207
- }
208
- &:focus {
209
- box-shadow: $button-focus-box-shadow;
210
- }
211
- &:active {
212
- @include button-active-style;
213
- }
214
- }
215
-
216
- @mixin button-text-only-style(
217
- $background: $button-background,
218
- $color: $button-color,
219
- $background-hover: $button-background-hover,
220
- $ui-dark: false
221
- ) {
222
-
223
- // no background by default
224
- background-color: transparent;
225
-
226
- // hover for colored buttons
227
- @if $background-hover == auto {
228
- $background-hover: scale-color($background, $alpha: -90%);
229
- box-shadow: none;
230
- }
231
-
232
- // hover for default gray button
233
- @else {
234
- $background-hover: scale-color($background, $alpha: -50%);
235
- }
236
-
237
- // button colors
238
- // UI dark
239
- @if $ui-dark {
240
- color: $default-color-ui-dark;
241
- $background-hover: scale-color($background, $alpha: -60%); // fix for default hover background on UI dark
242
- }
243
-
244
- // default UI (light)
245
- @else {
246
- color: $color;
247
- }
248
-
249
- &:hover, &:focus {
250
- background-color: $background-hover;
251
- color: $color;
252
- box-shadow: none;
253
- }
254
- &:active {
255
- $active-border-color: scale-color($color, $alpha: -60%);
256
- box-shadow: inset 0 1px 0 0 $active-border-color;
257
- border-color: $active-border-color transparent transparent transparent;
258
- background-color: scale-color($background-hover, $alpha: +10%);
259
- }
260
- }
261
-
262
- /// Adds disabled styles to a button by fading the element, reseting the cursor, and disabling pointer events.
263
- @mixin button-disabled(
264
- $background-color: $button-background,
265
- $color: $button-color
266
- ) {
267
- opacity: $button-opacity-disabled;
268
- cursor: not-allowed;
269
- box-shadow: none;
270
-
271
- &:hover, &:focus {
272
- background-color: $background-color;
273
- color: $color;
274
- box-shadow: none;
45
+ cursor: pointer;
46
+ position: relative;
275
47
  border: 1px solid transparent;
276
- box-shadow: none;
277
-
278
- }
48
+ background-color: var(--sd-btn-bg);
49
+ gap: 0.6rem;
50
+ &:hover {
51
+ background-color: var(--sd-btn-bg--hover);
52
+ box-shadow: var(--new-button-hover-shadow);
53
+ text-decoration: none !important;
54
+ }
55
+ &:active {
56
+ background-color: var(--sd-btn-bg--active);
57
+ box-shadow: $new-button-active-shadow;
58
+ }
59
+ &:focus-visible {
60
+ box-shadow: $button-focus-box-shadow;
61
+ }
62
+ [class^="icon-"], [class*=" icon-"] {
63
+ color: currentColor;
64
+ }
279
65
  }
280
-
281
- /// Adds all styles for a button. For more granular control over styles, use the individual button mixins.
282
- @mixin button(
283
- $expand: false,
284
- $background: $button-background,
285
- $background-hover: $button-background-hover,
286
- $color: $button-color
287
- ) {
288
- @include button-base;
289
-
290
- @include button-style($background, $background-hover, $color);
291
-
292
- @if $expand {
293
- @include button-expand;
294
- }
66
+ @mixin new-button-hollow {
67
+ border: 1px solid var(--sd-btn-border);
68
+ background-color: transparent !important;
69
+ box-shadow: inset 0 0 0 0px var(--sd-btn-border);
70
+ [class^="icon-"], [class*=" icon-"] {
71
+ color: var(--sd-btn-color);
72
+ }
73
+ &:hover {
74
+ box-shadow: none;
75
+ border-color: var(--sd-btn-color);
76
+ box-shadow: inset 0 0 0 2px var(--sd-btn-border);
77
+ }
78
+ &:active {
79
+ border-color: var(--sd-btn-color);
80
+ box-shadow: inset 0 0 0 2px var(--sd-btn-color);
81
+ }
82
+ &:focus-visible {
83
+ box-shadow: $button-focus-box-shadow;
84
+ }
85
+ }
86
+ @mixin new-button-text-only {
87
+ border: none;
88
+ background-color: transparent;
89
+ --sd-btn-hs: 214, 13%;
90
+ --sd-btn-l: var(--sd-btn-hs), 50%;
91
+ --sd-btn-txt: hsla(var(--sd-btn-l), 1);
92
+ --sd-btn-bg--hover: hsla(var(--sd-btn-l), 0.20);
93
+ --sd-btn-bg--active: hsla(var(--sd-btn-l), 0.16);
94
+ --sd-btn-bg--shadow: hsla(var(--sd-btn-l), 0.24);
95
+ [class^="icon-"], [class*=" icon-"] {
96
+ color: currentColor;
97
+ }
98
+ &:hover {
99
+ box-shadow: none;
100
+ background-color: var(--sd-btn-bg--hover);
101
+ box-shadow: inset 0 0 0 0 var(--sd-btn-bg--shadow);
102
+ }
103
+ &:active {
104
+ box-shadow: none;
105
+ background-color: var(--sd-btn-bg--active);
106
+ box-shadow: inset 0 0 0 4px var(--sd-btn-bg--shadow);
107
+ }
108
+ &:focus-visible {
109
+ box-shadow: $button-focus-box-shadow;
110
+ }
295
111
  }
296
112
 
297
113
  .btn {
298
- @include button;
114
+ --sd-btn-bg: var(--sd-colour-btn-bg-neutral);
115
+ --sd-btn-bg--hover: var(--sd-colour-btn-bg-neutral--hover);
116
+ --sd-btn-bg--active: var(--sd-colour-btn-bg-neutral--active);
117
+ color: var(--sd-colour-btn-txt-neutral);
299
118
 
119
+ @include new-button-base;
300
120
  // Sizes
301
- @each $size, $value in map-remove($button-sizes, btn--default) {
302
- &.#{$size} {
303
- font-size: $value;
304
- @if $size == btn--small {
305
- padding: $button-padding-small;
306
- height: $button-height-small;
121
+ &--small {
122
+ padding: $padding-x__button--small;
123
+ height: $height__button--small;
124
+ font-size: $font-size__button--small;
125
+ }
126
+ &--large {
127
+ padding: $padding-x__button--large;
128
+ height: $height__button--large;
129
+ font-size: $font-size__button--large;
130
+ }
131
+ &--expanded {
132
+ width: 100%;
133
+ margin-right: 0;
134
+ margin-left: 0;
135
+ }
136
+ [class^="icon-"], [class*=" icon-"] {
137
+ margin-inline-start: -0.3rem;
138
+ }
139
+ // Colours
140
+ &--primary, &--success, &--warning, &--alert, &--highlight, &--sd-green, &--secondary {
141
+ color: $white;
142
+ [class^="icon-"], [class*=" icon-"] {
143
+ color: $white;
307
144
  }
308
- @if $size == btn--large {
309
- padding: $button-padding-large;
310
- height: $button-height-large;
145
+ .sd-spinner__path {
146
+ stroke: $white;
311
147
  }
312
- }
313
148
  }
314
-
315
- &.btn--active { @include button-active-style; }
316
149
 
317
- &.btn--expanded { @include button-expand; }
318
-
319
- // Colors
320
- @each $name, $color in $sd-basic-palette {
321
- &.btn--#{$name} {
322
- @if $name == default {
323
- @include button-style($button-background, auto, $button-color); // btn--default class if needed
324
- }
325
- @else {
326
- @include button-style($color, auto, $button-color-alt); // for all colored buttons we use alt color (white)
327
- [class^="icon-"], [class*=" icon-"] {
328
- color: $button-color-alt;
329
- }
330
- }
331
- }
150
+ &--primary {
151
+ --sd-btn-bg: var(--sd-colour-primary);
152
+ --sd-btn-bg--hover: var(--sd-colour-primary--hover);
153
+ --sd-btn-bg--active: var(--sd-colour-primary--active);
332
154
  }
333
155
 
334
- // Hollow style
335
- &.btn--hollow {
336
- @include button-hollow;
337
- @include button-hollow-style;
338
-
339
- @each $name, $color in $sd-basic-palette {
340
- &.btn--#{$name} {
341
- @include button-hollow-style($color);
342
- [class^="icon-"], [class*=" icon-"] {
343
- color: $color;
344
- }
345
- }
346
- }
156
+ &--success {
157
+ --sd-btn-bg: var(--sd-colour-success);
158
+ --sd-btn-bg--hover: var(--sd-colour-success--hover);
159
+ --sd-btn-bg--active: var(--sd-colour-success--active);
347
160
  }
348
161
 
349
- // Text only style
350
- &.btn--text-only {
351
- @include button-text-only-style;
162
+ &--warning {
163
+ --sd-btn-bg: var(--sd-colour-warning);
164
+ --sd-btn-bg--hover: var(--sd-colour-warning--hover);
165
+ --sd-btn-bg--active: var(--sd-colour-warning--active);
166
+ }
352
167
 
353
- @each $name, $color in $sd-basic-palette {
354
- &.btn--#{$name} {
355
- @include button-text-only-style($color, $color, auto, false);
356
- }
357
- }
168
+ &--alert {
169
+ --sd-btn-bg: var(--sd-colour-alert);
170
+ --sd-btn-bg--hover: var(--sd-colour-alert--hover);
171
+ --sd-btn-bg--active: var(--sd-colour-alert--active);
358
172
  }
359
- // Disabled style
360
- &.btn--disabled,
361
- &[disabled] {
362
- @include button-disabled;
363
173
 
364
- @each $name, $color in $sd-basic-palette {
365
- &.btn--#{$name} {
366
- @include button-disabled($color, $button-color-alt);
367
- }
368
- }
174
+ &--highlight {
175
+ --sd-btn-bg: var(--sd-colour-highlight);
176
+ --sd-btn-bg--hover: var(--sd-colour-highlight--hover);
177
+ --sd-btn-bg--active: var(--sd-colour-highlight--active);
178
+ }
369
179
 
370
- // Hollow disabled style
371
- &.btn--hollow {
372
- @include button-hollow;
373
- @include button-hollow-style($button-color, 0);
374
- &:active {
375
- box-shadow: none;
376
- }
180
+ &--sd-green {
181
+ --sd-btn-bg: var(--sd-colour-superdesk);
182
+ --sd-btn-bg--hover: var(--sd-colour-superdesk--hover);
183
+ --sd-btn-bg--active: var(--sd-colour-superdesk--active);
184
+ }
377
185
 
378
- @each $name, $color in $sd-basic-palette {
379
- &.btn--#{$name} {
380
- @include button-hollow-style($color, 0);
381
- &:active {
382
- box-shadow: none;
383
- }
384
- }
385
- }
386
- }
186
+ &--secondary {
187
+ --sd-btn-bg: var(--sd-colour-secondary);
188
+ --sd-btn-bg--hover: var(--sd-colour-secondary--hover);
189
+ --sd-btn-bg--active: var(--sd-colour-secondary--active);
190
+ }
387
191
 
388
- // Text only disabled style
389
- &.btn--text-only {
390
- @include button-text-only-style($background: transparent);
391
- &:hover, &:focus, &:active {
392
- box-shadow: none;
393
- border-color: transparent;
394
- background: transparent;
395
- }
396
- &:focus {
397
- box-shadow: $button-focus-box-shadow;
192
+ // Hollow style
193
+ &.btn--hollow {
194
+ --sd-btn-border: var(--sd-colour-btn-border-neutral);
195
+ --sd-btn-color: var(--sd-colour-btn-txt-neutral);
196
+ color: var(--sd-colour-btn-txt-neutral);
197
+ @include new-button-hollow;
198
+ &.btn--primary {
199
+ --sd-btn-border: var(--sd-colour-interactive-btn-border);
200
+ --sd-btn-color: var(--sd-colour-interactive);
398
201
  }
399
-
400
- @each $name, $color in $sd-basic-palette {
401
- &.btn--#{$name} {
402
- @include button-text-only-style(transparent, $color, transparent, false);
403
- &:hover, &:focus, &:active {
404
- box-shadow: none;
405
- border-color: transparent;
406
- background: transparent;
407
- }
408
- }
202
+
203
+ &.btn--success {
204
+ --sd-btn-border: var(--sd-colour-success-btn-border);
205
+ --sd-btn-color: var(--sd-colour-success);
409
206
  }
410
- }
411
- }
412
-
413
- // UI dark style
414
- &.btn--ui-dark {
415
- @include button-ui-dark-style;
416
-
417
- @each $name, $color in $sd-basic-palette-ui-dark {
418
- &.btn--#{$name} {
419
- @include button-ui-dark-style($color, auto, $button-color-alt);
207
+
208
+ &.btn--warning {
209
+ --sd-btn-border: var(--sd-colour-warning-btn-border);
210
+ --sd-btn-color: var(--sd-colour-warning);
420
211
  }
421
- }
422
-
423
- &.btn--disabled,
424
- &[disabled] {
425
- @include button-ui-dark-style($button-background-ui-dark, auto, $button-color-ui-dark, 0);
426
-
427
- &:hover, &:focus, &:active {
428
- box-shadow: none;
429
- border-color: transparent;
212
+
213
+ &.btn--alert {
214
+ --sd-btn-border: var(--sd-colour-alert-btn-border);
215
+ --sd-btn-color: var(--sd-colour-alert);
430
216
  }
431
- @each $name, $color in $sd-basic-palette-ui-dark {
432
- &.btn--#{$name} {
433
- @include button-ui-dark-style($color, auto, $button-color-alt, 0);
434
- &:hover, &:focus, &:active {
435
- box-shadow: none;
436
- border-color: transparent;
437
- }
438
- }
217
+
218
+ &.btn--highlight {
219
+ --sd-btn-border: var(--sd-colour-highlight-btn-border);
220
+ --sd-btn-color: var(--sd-colour-highlight);
439
221
  }
440
- }
441
-
442
- [class^="icon-"], [class*=" icon-"] {
443
- color: $button-color-alt;
444
- }
445
-
446
- // Text only UI dark
447
- &.btn--text-only {
448
- @include button-text-only-style($button-background-ui-dark, $default-color-ui-dark, auto, true);
449
-
450
- @each $name, $color in $sd-basic-palette-ui-dark {
451
- $btn-background-hover: scale-color($color, $alpha: -80%);
452
- &.btn--#{$name} {
453
- @include button-ui-dark-style(transparent, $btn-background-hover, $color);
454
- &:active {
455
- $active-border-color: scale-color($color, $alpha: -60%);
456
- box-shadow: inset 0 1px 0 0 $active-border-color;
457
- border-color: $active-border-color transparent transparent transparent;
458
- }
459
- }
222
+
223
+ &.btn--sd-green {
224
+ --sd-btn-border: var(--sd-colour-superdesk-btn-border);
225
+ --sd-btn-color: var(--sd-colour-superdesk);
460
226
  }
461
-
462
- // Text only disabled UI dark
463
- &.btn--disabled,
464
- &[disabled] {
465
- @include button-text-only-style(transparent, $default-color-ui-dark, transparent, true);
466
- &:hover, &:focus, &:active {
467
- box-shadow: none;
468
- border-color: transparent;
469
- }
470
-
471
- @each $name, $color in $sd-basic-palette-ui-dark {
472
- &.btn--#{$name} {
473
- @include button-ui-dark-style(transparent, transparent, $color);
474
- &:hover, &:focus, &:active {
475
- box-shadow: none;
476
- border-color: transparent;
477
- }
478
- }
479
- }
227
+
228
+ &.btn--secondary {
229
+ --sd-btn-border: var(--sd-colour-secondary-btn-border);
230
+ --sd-btn-color: var(--sd-colour-secondary);
480
231
  }
481
-
482
232
  &.btn--primary,
483
233
  &.btn--success,
484
234
  &.btn--warning,
@@ -486,24 +236,44 @@ $icn-button-focus-box-shadow: 0 0 0 2px rgba(94, 169, 200, 0.30);
486
236
  &.btn--highlight,
487
237
  &.btn--sd-green,
488
238
  &.btn--secondary {
489
- color: var(--sd-btn-txt);
239
+ color: var(--sd-btn-color);
490
240
  .sd-spinner__path {
491
- stroke: var(--sd-btn-txt);
241
+ stroke: var(--sd-btn-color);
492
242
  }
493
243
  }
494
- }
495
-
496
- // Hollow UI dark
497
- &.btn--hollow {
498
- @include button-hollow;
499
- @include button-hollow-style(scale-color($default-color-ui-dark, $alpha: -30%));
500
-
501
- @each $name, $color in $sd-basic-palette-ui-dark {
502
- &.btn--#{$name} {
503
- @include button-hollow-style($color);
504
- }
244
+ }
245
+ // Text only
246
+ &.btn--text-only {
247
+ --sd-btn-hs: 214, 13%;
248
+ color: var(--sd-colour-btn-txt-neutral);
249
+ @include new-button-text-only;
250
+ &.btn--primary {
251
+ --sd-btn-hs: var(--sd-colour-primary-hs);
252
+ }
253
+
254
+ &.btn--success {
255
+ --sd-btn-hs: var(--sd-colour-success-hs);
256
+ }
257
+
258
+ &.btn--warning {
259
+ --sd-btn-hs: var(--sd-colour-warning-hs);
260
+ }
261
+
262
+ &.btn--alert {
263
+ --sd-btn-hs: var(--sd-colour-alert-hs);
264
+ }
265
+
266
+ &.btn--highlight {
267
+ --sd-btn-hs: var(--sd-colour-highlight-hs);
268
+ }
269
+
270
+ &.btn--sd-green {
271
+ --sd-btn-hs: var(--sd-colour-superdesk-hs);
272
+ }
273
+
274
+ &.btn--secondary {
275
+ --sd-btn-hs: var(--sd-colour-secondary-hs);
505
276
  }
506
-
507
277
  &.btn--primary,
508
278
  &.btn--success,
509
279
  &.btn--warning,
@@ -511,656 +281,402 @@ $icn-button-focus-box-shadow: 0 0 0 2px rgba(94, 169, 200, 0.30);
511
281
  &.btn--highlight,
512
282
  &.btn--sd-green,
513
283
  &.btn--secondary {
514
- color: var(--sd-btn-color);
284
+ color: var(--sd-btn-txt);
515
285
  .sd-spinner__path {
516
- stroke: var(--sd-btn-color);
517
- }
518
- }
519
-
520
- // Hollow disabled UI dark
521
- &.btn--disabled,
522
- &[disabled] {
523
- @include button-hollow;
524
- @include button-hollow-style($default-color-ui-dark, 0);
525
- &:hover, &:focus, &:active {
526
- box-shadow: none;
527
- }
528
-
529
- @each $name, $color in $sd-basic-palette-ui-dark {
530
- &.btn--#{$name} {
531
- @include button-hollow-style($color, 0);
532
- &:hover, &:focus, &:active {
533
- box-shadow: none;
534
- }
286
+ stroke: var(--sd-btn-txt);
535
287
  }
536
- }
537
288
  }
538
- }
539
- }
540
-
541
- // Add some space, i there is more buttons side by side
542
- &+.btn {
543
- margin-left: 4px;
544
- }
545
- // Icons inside buttons (with text included as well)
546
- [class^="icon-"], [class*=" icon-"] {
547
- margin: 0 0.6rem 0 -0.3rem;
548
- line-height: 1;
549
- vertical-align: middle;
550
289
  }
551
290
  &.btn--icon-only {
552
- padding: $button-padding-icon-only;
553
- justify-content: center;
554
- [class^="icon-"], [class*=" icon-"] {
555
- display:inline-block;
556
- margin: 0;
557
- vertical-align: middle;
558
- }
559
- &.btn--large {
560
- padding: $button-padding-large-icon-only;
561
-
562
- }
563
- &.btn--small {
564
- padding: $button-padding-small-icon-only;
565
-
566
- }
567
- }
568
- &.btn--icon-only-circle {
569
- padding: $button-padding-icon-only-circle;
570
- width: $button-height;
571
- justify-content: center;
572
- border-radius: 50%;
573
- [class^="icon-"], [class*=" icon-"] {
574
- display:inline-block;
575
- margin: 0;
576
- vertical-align: middle;
577
- }
578
- &.btn--large {
579
- //padding: $button-padding-icon-only-circle;
580
- width: $button-height-large;
581
- }
582
- &.btn--small {
583
- //padding: $button-padding-icon-only-circle;
584
- width: $button-height-small;
585
- }
586
-
587
- &.btn--text-only {
588
- @include button-text-only-style;
589
- transition: background-color 0.2s ease-out, color 0.1s ease-out, opacity 0.1s ease-out;
590
- opacity: 0.5;
591
- [class^="icon-"], [class*=" icon-"] {
592
- color:inherit;
593
- }
594
- &:hover, &:focus, &:active {
595
- box-shadow: none;
596
- opacity:1;
597
- border-color: transparent;
598
- }
599
- &:hover {
600
- background-color: rgba(35,35,35,0);
601
- }
602
- &:focus, &:active {
603
- background-color: rgba(35,35,35,0.2);
604
- }
605
- &.btn--ui-dark {
606
- [class^="icon-"], [class*=" icon-"] {
607
- color:$white;
608
- }
609
- }
610
- }
611
- }
612
-
613
- &--primary, &--success, &--warning, &--alert, &--highlight, &--sd-green, &--secondary {
614
- color: $white;
615
291
  [class^="icon-"], [class*=" icon-"] {
616
- color: $white;
617
- }
618
- .sd-spinner__path {
619
- stroke: $white;
620
- }
621
- }
622
- }
623
-
624
- // SD create button
625
- .sd-create-btn {
626
- width: 4.8rem;
627
- height: $subnav-height;
628
- line-height: 4.8rem;
629
- padding: 0 !important;
630
- overflow: hidden;
631
- position: relative;
632
- background: $white;
633
- vertical-align: top; // fix for active state
634
- i {
635
- position: absolute;
636
- z-index: 1;
637
- display: block;
638
- top: 50%; margin-top: -0.8rem;
639
- left: 50%; margin-left: -0.8rem;
640
- opacity: 1 !important;
641
- color: $white !important;
642
- line-height: 1.6rem !important;
643
- }
644
- .circle {
645
- @include border-box();
646
- display: inline-block;
647
- text-align: center;
648
- width: 2.6rem;
649
- height: 2.6rem;
650
- margin: 0;
651
- padding: 0;
652
- margin-top: 1.1rem;
653
- border-radius: 50%;
654
- background-color: $sd-blue;
655
- color: $white;
656
- position: relative;
657
- @include transition(all, 60ms, ease-in);
658
- }
659
- &:hover {
660
- .circle {
661
- width: 3.4rem;
662
- height: 3.4rem;
663
- margin-top: 0.7rem;
664
- margin-left: 0;
292
+ margin: 0;
293
+ }
294
+ &.btn--icon-only-circle {
295
+ border-radius: $border-radius__base--full;
296
+ padding: 0;
297
+ width: $height__button--default;
298
+ &.btn--small {
299
+ width: $height__button--small;
300
+ }
301
+ &.btn--large {
302
+ width: $height__button--large;
303
+ }
665
304
  }
666
305
  }
667
- &:active {
668
- .circle {
669
- width: 6.8rem;
670
- height: 6.8rem;
671
- margin: -1rem 0 0 -1rem;
672
- @include transition(all, 30ms, ease-in);
306
+ &.btn--disabled, &[disabled] {
307
+ opacity: $button-opacity-disabled;
308
+ cursor: not-allowed;
309
+ pointer-events: none;
310
+ box-shadow: none !important;
311
+ &:hover, &:active {
312
+ cursor: not-allowed;
673
313
  }
674
314
  }
675
315
  }
316
+ ////////////////////////////// END NEW BUTTONS /////////////////////////////
676
317
 
677
318
  // Plain Icon buttons
678
-
679
319
  @mixin icn-btn-style () {
680
- display: inline-flex;
681
- align-items: center;
682
- justify-content: center;
683
- font-size: 1.6rem;
684
- transition: background-color .2s ease-out, color .1s ease-out, opacity .1s ease-out;
685
- height: $sd-base-increment * 4;
686
- width: $sd-base-increment * 4;
687
- border-radius: 50%;
688
- background-color: transparent;
689
- opacity: 0.75;
690
- background-color: rgba(55,55,55,0);
691
- color: inherit;
692
- text-decoration: none;
693
- cursor: pointer;
694
- [class^="icon-"], [class*=" icon-"] {
320
+ display: inline-flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ font-size: 1.6rem;
324
+ transition: background-color .2s ease-out, color .1s ease-out, opacity .1s ease-out;
325
+ height: $height__button--default;
326
+ width: $height__button--default;
327
+ border-radius: $border-radius__base--full;
328
+ background-color: transparent;
329
+ opacity: 0.75;
330
+ background-color: rgba(55,55,55,0);
695
331
  color: inherit;
696
- vertical-align: baseline !important;
697
- }
698
- &:hover {
699
- opacity: 1;
700
332
  text-decoration: none;
701
- }
702
- &:focus {
703
- opacity: 1;
704
- background-color: rgba(155,155,155,0.15);
705
- box-shadow: $icn-button-focus-box-shadow;
333
+ cursor: pointer;
334
+ flex-shrink: 0;
706
335
  [class^="icon-"], [class*=" icon-"] {
707
- opacity: 1;
336
+ color: inherit;
337
+ vertical-align: baseline !important;
708
338
  }
709
- }
710
- &:active {
711
- opacity: 1;
712
- background-color: rgba(155,155,155,0.25);
713
- [class^="icon-"], [class*=" icon-"] {
714
- color: $sd-blue;
715
- opacity: 1;
339
+ &:hover {
340
+ opacity: 1;
341
+ text-decoration: none;
342
+ background-color: hsla(214, 13%, 55%, 0.2);
343
+ }
344
+ &:focus-visible {
345
+ opacity: 1;
346
+ background-color: hsla(214, 13%, 55%, 0.2);
347
+ box-shadow: $icn-button-focus-box-shadow;
348
+ outline: none;
349
+ [class^="icon-"], [class*=" icon-"] {
350
+ opacity: 1;
351
+ }
352
+ }
353
+ &:active {
354
+ opacity: 1;
355
+ background-color: hsla(214, 13%, 55%, 0.3);
356
+ [class^="icon-"], [class*=" icon-"] {
357
+ color: $sd-colour-interactive;
358
+ opacity: 1;
359
+ }
360
+ }
361
+ &--disabled {
362
+ opacity: $icn-button-opacity-disabled;
363
+ &:hover, &:active, &:focus-visible {
364
+ background-color: transparent !important;
365
+ cursor: not-allowed;
366
+ opacity: $icn-button-opacity-disabled;
367
+ [class^="icon-"], [class*=" icon-"] {
368
+ opacity: 1;
369
+ color: inherit !important;
370
+ }
371
+ }
716
372
  }
717
- }
718
- &--disabled {
719
- opacity: $button-opacity-disabled;
720
- }
721
373
  }
722
374
 
723
375
  .icn-btn {
724
- @include icn-btn-style;
725
- &--small {
726
- height: 1.25em;
727
- width: 1.25em;
728
- }
729
- }
730
-
731
-
732
- // Radio styled buttons
733
- // --------------------------------------------------
734
-
735
- $checkBtnColor: #546E7A;
736
- $checkBtnColorActive: #2c7694;
737
-
738
- .btn__check {
739
- position: relative;
740
- color: $white;
741
- padding: 0.7rem 1.6rem;
742
- background: $checkBtnColor;
743
- border: none;
744
- font-size: 1.3rem;
745
- border-radius: 3px;
746
- transition: $button-transition;
747
- &:hover {
748
- cursor: pointer;
749
- background: scale-color($checkBtnColor, $lightness: 5%);
750
- }
751
- &.btn__check--active, &:active {
752
- background: $checkBtnColorActive;
753
- box-shadow: inset 0 3px 0 0 rgba(0,0,0,0.2);
754
- &:after {
755
- content: "";
756
- width: 4.2rem;
757
- position: absolute;
758
- background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI0MnB4IiBoZWlnaHQ9IjQycHgiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDIgNDIiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBvcGFjaXR5PSIwLjU4IiBmaWxsPSIjRkZGRkZGIiBkPSJNMjEsMEM5LjQsMCwwLDkuNCwwLDIxYzAsMTEuNiw5LjQsMjEsMjEsMjFzMjEtOS40LDIxLTIxQzQyLDkuNCwzMi42LDAsMjEsMHogTTE3LDMzTDcsMjMKCWw0LTRsNiw2bDE0LTE0bDQsNEwxNywzM3oiLz4KPC9zdmc+Cg==) no-repeat;
759
- background-size: 4.2rem;
760
- background-position: 0 -0.2rem;
761
- top: 0;
762
- bottom: 0;
763
- right: 0.8rem;
764
- opacity: 0.3;
376
+ @include icn-btn-style;
377
+ &--small {
378
+ height: $height__button--small;
379
+ width: $height__button--small;
380
+ }
381
+ &--x-large {
382
+ height: $height__button--x-large;
383
+ width: $height__button--x-large;
384
+ [class^="icon-"], [class*=" icon-"] {
385
+ color: inherit;
386
+ vertical-align: baseline !important;
387
+ font-size: 2.4rem;
388
+ height: 2.4rem;
389
+ width: 2.4rem;
390
+ line-height: 2.4rem;
765
391
  }
392
+
766
393
  }
767
- &.btn__check--active {
768
- cursor: default;
769
- }
770
- &:active {
771
- background: scale-color($checkBtnColor, $lightness: 5%);
772
- box-shadow: inset 0 3px 0 0 rgba(0,0,0,0.2);
773
- &:after {
774
- opacity: 0.05;
394
+ &--outline {
395
+ border: 1px solid currentColor;
396
+ &:active:not(.icn-btn--disabled) {
397
+ border-color: var(--sd-colour-interactive);
775
398
  }
776
399
  }
777
-
778
- &.btn__check--active:disabled {
779
- opacity: 0.5;
780
- background-color: rgba(123,123,123,0.5);
781
- &:after {
782
- opacity: 0.15;
400
+ &--outlineWhite {
401
+ color: hsla(214, 13%, 95%, 0.8);
402
+ border: 1px solid currentColor;
403
+ &:hover:not(.icn-btn--disabled) {
404
+ color: hsla(214, 13%, 95%, 1);
405
+ border-color: hsla(214, 13%, 95%, 1);
406
+ background-color: hsla(0, 0%, 0%, 0.4);
407
+ }
408
+ &:active:not(.icn-btn--disabled) {
409
+ border-color: var(--sd-colour-interactive);
410
+ background-color: hsla(0, 0%, 0%, 0.6);
783
411
  }
784
412
  }
785
- &:disabled {
786
- opacity: 0.5;
787
- color:rgba(255,255,255,0.5);
788
- background-color: rgba(123,123,123,0.5);
789
- //&:not(.btn__check--active) { background: $checkBtnColor !important; }
790
- &:hover { cursor: not-allowed; }
413
+ &.icn-btn--x-large.icn-btn--outline,
414
+ &.icn-btn--x-large.icn-btn--outlineWhite {
415
+ border-width: 2px;
416
+ }
417
+ }
418
+ .p-dialog-header-close {
419
+ @include icn-btn-style;
420
+ height: $height__button--small;
421
+ width: $height__button--small;
422
+ &:hover {
423
+ opacity: 1;
424
+ text-decoration: none;
425
+ background-color: hsla(0, 0%, 61%, 0.2) !important;
426
+ }
427
+ &:active {
428
+ opacity: 1;
429
+ background-color: hsla(0, 0%, 61%, 0.3);
791
430
  }
792
431
  }
793
432
 
794
433
  // Button navigation
795
434
  // --------------------------------------------------
796
435
 
797
- $button-nav-color: currentColor;
798
-
799
436
  .button-nav {
800
437
  display: flex;
801
438
  flex-direction: row;
802
439
  align-content: center;
803
- .button-nav__btn {
804
- margin: 0 0.5rem;
805
- }
440
+ gap: $sd-base-increment;
806
441
  }
807
442
  .button-nav__btn {
808
-
809
- display: inline-block;
810
- vertical-align: middle;
811
- margin: $button-margin;
812
- padding: 0.7rem 1.8rem;
813
- background: transparent;
814
- -webkit-appearance: none;
815
- border: none;
816
- border-radius: 1em;
817
- transition: $button-transition;
818
- font-size: 1.4rem;
819
- line-height: 1;
820
- text-align: center;
821
- text-decoration: none;
822
- cursor: pointer;
823
- &:hover {
824
- background: rgba(123,123,123,0.2)
825
- }
826
- &:active, &--active, &--active:hover {
827
- color: scale-color($white, $alpha: -20%);
828
- background: rgba(0, 0, 0, 0.35);
829
- box-shadow: inset 0 2px 0 0 rgba(0,0,0,.25);
830
- }
443
+ color: var(--color-text);
444
+ display: inline-block;
445
+ vertical-align: middle;
446
+ margin: 0;
447
+ padding-block-start: 0.7rem;
448
+ padding-block-end: 0.7rem;
449
+ padding-inline: 1.8rem;
450
+ background: transparent;
451
+ -webkit-appearance: none;
452
+ border: none;
453
+ border-radius: $border-radius__base--full;
454
+ transition: $button-transition;
455
+ font-size: 1.4rem;
456
+ line-height: 1;
457
+ text-align: center;
458
+ text-decoration: none;
459
+ cursor: pointer;
460
+ background-color: var(--sd-colour-bg__button-nav-btn);
461
+ &:hover {
462
+ background-color: var(--sd-colour-bg__button-nav-btn--hover);
463
+ }
464
+ &:active, &--active, &--active:hover {
465
+ background-color: var(--sd-colour-bg__button-nav-btn--active);
466
+ box-shadow: inset 0 2px 0 0 hsla(0, 0%, 0%, 0.25);
467
+ }
831
468
  }
832
469
 
833
470
  // Button icon group
834
471
  .btn-icon-group {
835
- display: flex;
836
- align-items: center;
837
-
838
- .btn + .btn {
839
- margin-left: 6px;
840
- }
841
-
842
- [class^="icon-"], [class*=" icon-"] {
843
- opacity: 0.6;
844
- }
845
- }
846
-
847
- // DARK UI ---------------------------------------------
848
- //------------------------------------------------------
849
-
850
- .dark-ui,
851
- [data-theme="dark-ui"],
852
- [class^="--dark-ui"],
853
- [class*="--dark-ui"] {
854
- .btn.btn--ui-dark.btn--hollow.btn--active {
855
- color: $sd-blue;
856
- background-color: rgba(0, 0, 0, 0.3);
857
- box-shadow: inset 0 2px 0 rgba(0,0,0,0.8);
858
- i {
859
- color: inherit;
860
- }
861
- }
862
-
863
- .btn:not(.btn--success):not(.btn--primary):not(.btn--alert):not(.btn--warning):not(.btn--highlight):not(.btn--sd-green):not(.btn--hollow):not(.btn--text-only) {
864
- color: inherit;
865
- background-color: hsla(0, 0%, 50%, 0.5);
866
- &:hover {
867
- background-color: hsla(0, 0%, 40%, 0.5);
868
- }
869
- }
870
- .btn.btn--text-only {
871
- &:not(.btn--success):not(.btn--primary):not(.btn--alert):not(.btn--warning):not(.btn--highlight):not(.btn--sd-green):not(.btn--hollow) {
872
- color: inherit;
873
- &:hover {
874
- background-color: hsla(0, 0%, 40%, 0.5);
875
- }
876
- }
877
- }
878
-
879
- .btn {
880
- &.btn--hollow {
881
- @include button-hollow;
882
- @include button-hollow-style(scale-color($default-color-ui-dark, $alpha: -30%));
883
-
884
- @each $name, $color in $sd-basic-palette-ui-dark {
885
- &.btn--#{$name} {
886
- @include button-hollow-style($color);
887
- }
888
- }
889
-
890
- // Hollow disabled UI dark
891
- &.btn--disabled,
892
- &[disabled] {
893
- @include button-hollow;
894
- @include button-hollow-style($default-color-ui-dark, 0);
895
- &:hover, &:focus, &:active {
896
- box-shadow: none;
897
- }
898
-
899
- @each $name, $color in $sd-basic-palette-ui-dark {
900
- &.btn--#{$name} {
901
- @include button-hollow-style($color, 0);
902
- &:hover, &:focus, &:active {
903
- box-shadow: none;
904
- }
905
- }
906
- }
907
- }
472
+ display: flex;
473
+ align-items: center;
474
+ gap: 6px;
475
+ [class^="icon-"], [class*=" icon-"] {
476
+ opacity: 0.6;
908
477
  }
909
- }
910
478
  }
911
479
 
480
+
912
481
  // BUTTON GROUPS
913
482
  // --------------------------------------------------
914
483
 
915
484
  .button-group {
916
- display: flex;
917
- flex-direction: row;
918
- align-items: center;
919
- .btn {
920
- margin: 0;
921
- }
922
- &--left {
923
- margin-right: auto;
485
+ display: flex;
486
+ flex-direction: row;
487
+ align-items: center;
488
+ gap: $sd-base-increment;
489
+
924
490
  .btn {
925
- @include sd-margin('1', 'right');
926
- &:last-child {
927
- margin-right: 0;
928
- }
929
- }
930
- .sd-navbtn {
931
- border-width: 0 1px 0 0;
491
+ margin: 0;
932
492
  }
933
- &.button-group--compact {
934
- .btn {
935
- @include sd-margin('0-5', 'right');
936
- &:last-child {
937
- margin-right: 0;
493
+ &--left, &--start {
494
+ margin-inline-end: auto;
495
+ .sd-navbtn {
496
+ border-inline-width: 0 1px;
938
497
  }
939
- }
940
- }
941
- }
942
- &--inline {
943
- margin-right: 0;
944
- .btn {
945
- @include sd-margin('1', 'right');
946
- &:last-child {
947
- margin-right: 0;
948
- }
949
- }
950
- .sd-navbtn {
951
- border-width: 0 1px 0 0;
952
- }
953
- &.button-group--compact {
954
- .btn {
955
- @include sd-margin('0-5', 'right');
956
- &:last-child {
957
- margin-right: 0;
498
+ &.button-group--compact {
499
+ gap: 0.5 * $sd-base-increment;
958
500
  }
959
- }
960
- }
961
- &.button-group--compact {
962
- .btn {
963
- @include sd-margin('0-5', 'right');
964
- &:last-child {
965
- margin-right: 0;
501
+ .button-group--inline {
502
+ .sd-navbtn {
503
+ border-inline-width: 0 1px;
504
+ }
966
505
  }
967
- }
968
- }
969
- }
970
- &--right {
971
- margin-left: auto;
972
- .btn {
973
- @include sd-margin('1', 'left');
974
- &:first-child {
975
- margin-left: 0;
976
- }
977
506
  }
978
- &.button-group--compact {
979
- .btn {
980
- @include sd-margin('0-5', 'left');
981
- &:first-child {
982
- margin-right: 0;
507
+ &--inline {
508
+ margin-inline-end: 0;
509
+ .sd-navbtn {
510
+ border-inline-width: 0 1px;
983
511
  }
984
- }
985
512
  }
986
- }
987
- &--center {
988
- margin-left: auto;
989
- margin-right: auto;
990
- .btn {
991
- @include sd-margin('0-5', 'x');
992
- &:first-child {
993
- margin-left: 0;
994
- }
995
- &:last-child {
996
- margin-right: 0;
997
- }
998
- }
999
- .sd-navbtn {
1000
- border-width: 0 1px 0 0;
1001
- &:first-child {
1002
- border-width: 0 1px 0 1px;
1003
- }
1004
- }
1005
- &.button-group--compact {
1006
- .btn {
1007
- margin: 0 0.2rem;
1008
- &:first-child {
1009
- margin-left: 0;
1010
- }
1011
- &:last-child {
1012
- margin-right: 0;
1013
- }
1014
- }
513
+ &--right, &--end {
514
+ margin-inline-start: auto;
1015
515
  }
1016
- }
1017
- &--vertical {
1018
- flex-grow: 1;
1019
- flex-direction: column;
1020
- align-items: stretch;
1021
- justify-content: center;
1022
- .btn {
1023
- @include sd-margin('1', 'top');
1024
- &:first-child, &:only-child {
1025
- margin-top: 0;
1026
- }
1027
- }
1028
- &.button-group--compact {
1029
- .btn {
1030
- @include sd-margin('0-5', 'top');
1031
- &:first-child {
1032
- margin-left: 0;
1033
- }
1034
- &:last-child {
1035
- margin-right: 0;
516
+ &--center {
517
+ margin-inline-start: auto;
518
+ margin-inline-end: auto;
519
+ .sd-navbtn {
520
+ border-inline-width: 0 1px;
521
+ &:first-child {
522
+ border-inline-width: 1px 1px;
523
+ }
1036
524
  }
1037
- }
1038
525
  }
1039
- }
1040
- }
1041
-
1042
-
1043
-
1044
- .subnav {
1045
- .button-group--right {
1046
- .btn:last-of-type {
1047
- @include sd-margin('2', 'right');
526
+ &--vertical {
527
+ flex-grow: 1;
528
+ flex-direction: column;
529
+ align-items: stretch;
530
+ justify-content: center;
531
+ }
532
+ &--comfort {
533
+ gap: $sd-base-increment;
534
+ }
535
+ &--loose {
536
+ gap: $sd-base-increment * 2;
537
+ }
538
+ &--compact {
539
+ gap: $sd-base-increment * 0.5;
540
+ }
541
+ &--no-space {
542
+ gap: unset;
543
+ }
544
+ &--padded {
545
+ padding-inline-start: $sd-base-increment * 2;
546
+ padding-inline-end: $sd-base-increment * 2;
1048
547
  }
1049
- }
1050
- }
1051
- .button-group__divider {
1052
- width: 1px;
1053
- height: $sd-base-increment * 3;
1054
- &--mini {
1055
- @include sd-padding('1-5', 'left');
1056
- width: 0;
1057
- border: none !important;
1058
- }
1059
- &--small {
1060
- @include sd-margin('1', 'x');
1061
- }
1062
- &--medium {
1063
- @include sd-margin('1-5', 'x');
1064
- }
1065
- &--large {
1066
- @include sd-margin('2', 'x');
1067
- }
1068
- &--border {
1069
- border-left: 1px dotted rgba(123, 123, 123, 0.6);
1070
- }
1071
- }
1072
-
1073
-
1074
-
1075
- .button-group--right {
1076
- .button-group__divider {
1077
- &--border {
1078
- &.button-group__divider--small {
1079
- @include sd-margin('0-5', 'right');
1080
- @include sd-margin('1-5', 'left');
1081
- }
1082
- &.button-group__divider--medium {
1083
- @include sd-margin('1', 'right');
1084
- @include sd-margin('2', 'left');
1085
- }
1086
- &.button-group__divider--large {
1087
- @include sd-margin('1-5', 'right');
1088
- margin-left: $sd-base-increment * 2.5;
1089
- }
1090
- }
1091
- }
1092
- &.button-group--padded {
1093
- @include sd-margin('1-5', 'right');
1094
- }
1095
548
  }
1096
549
 
1097
- .button-group--left {
1098
- .button-group__divider {
550
+ .button-group__divider {
551
+ width: 1px;
552
+ height: $sd-base-increment * 3;
553
+ &--mini {
554
+ padding: 0 !important;
555
+ width: 0;
556
+ border: none !important;
557
+ }
558
+ &--small {
559
+ @include sd-margin('0-5', 'x');
560
+ }
561
+ &--medium {
562
+ @include sd-margin('1', 'x');
563
+ }
564
+ &--large {
565
+ @include sd-margin('1-5', 'x');
566
+ }
1099
567
  &--border {
1100
- &.button-group__divider--small {
1101
- @include sd-margin('0-5', 'left');
1102
- @include sd-margin('1-5', 'right');
1103
- }
1104
- &.button-group__divider--medium {
1105
- @include sd-margin('1', 'left');
1106
- @include sd-margin('2', 'right');
1107
- }
1108
- &.button-group__divider--large {
1109
- @include sd-margin('1-5', 'left');
1110
- margin-right: $sd-base-increment * 2.5;
1111
- }
1112
- }
1113
- }
1114
- &.button-group--padded {
1115
- @include sd-margin('1-5', 'left');
1116
- }
1117
- }
1118
-
1119
- .button-group--inline {
1120
- &.button-group--padded {
1121
- @include sd-margin('1-5', 'x');
1122
- }
568
+ border-left: 1px dotted var(--sd-colour-line--strong);
569
+ }
1123
570
  }
1124
571
 
1125
572
  .button-group--vertical {
1126
- .button-group__divider {
1127
- height: 1px;
1128
- width: auto;
1129
- @include sd-margin('0', 'x');
1130
-
1131
- &--border {
1132
- border-left: none;
1133
- border-top: 1px dotted rgba(123, 123, 123, 0.6);
573
+ .button-group__divider {
574
+ height: 1px;
575
+ width: auto;
576
+ @include sd-margin('0', 'x');
577
+ &--border {
578
+ border-left: none;
579
+ border-top: 1px dotted var(--sd-colour-line--strong);
580
+ }
581
+ &.button-group__divider--mini {
582
+ @include sd-padding('1-5', 'top');
583
+ }
584
+ &.button-group__divider--small {
585
+ @include sd-margin('0-5', 'y');
586
+ }
587
+ &.button-group__divider--medium {
588
+ @include sd-margin('1', 'y');
589
+ }
590
+ &.button-group__divider--large {
591
+ @include sd-margin('1-5', 'y');
592
+ }
1134
593
  }
1135
- &.button-group__divider--mini {
1136
- @include sd-padding('1-5', 'top');
594
+ }
595
+
596
+ .sd-create-btn {
597
+ width: 4.8rem;
598
+ height: 4.8rem;
599
+ line-height: 4.8rem;
600
+ padding: 0 !important;
601
+ overflow: hidden;
602
+ position: relative;
603
+ background: transparent;
604
+ vertical-align: top;
605
+ display: inline-flex;
606
+ align-items: center;
607
+ justify-content: center;
608
+ border: 0px solid var(--sd-colour-line--x-light);
609
+ border-inline-width: 1px 0;
610
+ .circle {
611
+ display: inline-block;
612
+ text-align: center;
613
+ width: 2.6rem;
614
+ height: 2.6rem;
615
+ margin: 0;
616
+ padding: 0;
617
+ border-radius: 50%;
618
+ background-color: var(--sd-colour-interactive);
619
+ color: hsl(0, 0%, 100%);
620
+ position: relative;
621
+ transition: all 0.2s ease;
1137
622
  }
1138
- &.button-group__divider--small {
1139
- @include sd-margin('0-5', 'bottom');
1140
- @include sd-margin('1-5', 'top');
623
+ &:hover {
624
+ .circle {
625
+ width: 3.4rem;
626
+ height: 3.4rem;
627
+ margin-inline-start: 0;
628
+ }
1141
629
  }
1142
- &.button-group__divider--medium {
1143
- @include sd-margin('1', 'bottom');
1144
- @include sd-margin('2', 'top');
630
+ &:active {
631
+ .circle {
632
+ width: 6.8rem;
633
+ height: 6.8rem;
634
+ margin-inline-start: -1rem;
635
+ margin-inline-end: -1rem;
636
+ transition: all 0.05s ease;
637
+ }
1145
638
  }
1146
- &.button-group__divider--large {
1147
- @include sd-margin('1-5', 'bottom');
1148
- margin-top: $sd-base-increment * 2.5;
639
+ i {
640
+ position: absolute;
641
+ z-index: 1;
642
+ display: block;
643
+ inset-block-start: 50%;
644
+ margin-block-start: -0.8rem;
645
+ inset-inline-start: 50%;
646
+ inset-inline-end: auto;
647
+ margin-inline-start: -0.8rem;
648
+ opacity: 1 !important;
649
+ color: hsl(0, 0%, 100%) !important;
650
+ line-height: 1.6rem !important;
1149
651
  }
1150
- }
1151
652
  }
1152
653
 
1153
654
  .visuallyhidden {
1154
- border: 0;
1155
- clip: rect(0 0 0 0);
1156
- height: 1px;
1157
- margin: -1px;
1158
- overflow: hidden;
1159
- padding: 0;
1160
- position: absolute;
1161
- width: 1px;
655
+ border: 0;
656
+ clip: rect(0 0 0 0);
657
+ height: 1px;
658
+ margin: -1px;
659
+ overflow: hidden;
660
+ padding: 0;
661
+ position: absolute;
662
+ width: 1px;
1162
663
  }
1163
664
 
665
+ .btn__state--loading {
666
+ position: absolute;
667
+ top: 0;
668
+ bottom: 0;
669
+ left: 0;
670
+ right: 0;
671
+ display: flex;
672
+ align-items: center;
673
+ justify-content: center;
674
+ z-index: 2;
675
+ }
676
+ .btn--loading {
677
+ color: transparent;
678
+ pointer-events: none;
679
+ }
1164
680
  .btn {
1165
681
  &[data-loading="true"] {
1166
682
  pointer-events: none;
@@ -1174,3 +690,9 @@ $button-nav-color: currentColor;
1174
690
  }
1175
691
  }
1176
692
  }
693
+
694
+ .button-group {
695
+ .tag-label {
696
+ margin: 0 !important;
697
+ }
698
+ }