@atlassian/aui 9.12.6 → 9.13.0-50607a7cb

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 (293) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -9
  3. package/dist/aui/aui-css-deprecations.js.map +1 -1
  4. package/dist/aui/aui-prototyping-browserfocus.css +1 -1
  5. package/dist/aui/aui-prototyping-browserfocus.css.map +1 -1
  6. package/dist/aui/aui-prototyping-darkmode.css +1 -1
  7. package/dist/aui/aui-prototyping-darkmode.css.map +1 -1
  8. package/dist/aui/aui-prototyping-design-tokens-api-full.js +2 -2
  9. package/dist/aui/aui-prototyping-design-tokens-api-full.js.map +1 -1
  10. package/dist/aui/aui-prototyping-design-tokens-api.js +2 -2
  11. package/dist/aui/aui-prototyping-design-tokens-api.js.map +1 -1
  12. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css +2 -2
  13. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css.map +1 -1
  14. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.js +1 -1
  15. package/dist/aui/aui-prototyping-design-tokens-base-themes.js +1 -1
  16. package/dist/aui/aui-prototyping-design-tokens-compatibility.css +1 -1
  17. package/dist/aui/aui-prototyping-design-tokens-compatibility.css.map +1 -1
  18. package/dist/aui/aui-prototyping-lf-extracted-color-channels.css +2 -0
  19. package/dist/aui/aui-prototyping-lf-extracted-color-channels.css.map +1 -0
  20. package/dist/aui/aui-prototyping.css +10 -10
  21. package/dist/aui/aui-prototyping.css.map +1 -1
  22. package/dist/aui/aui-prototyping.js +10 -10
  23. package/dist/aui/aui-prototyping.js.map +1 -1
  24. package/dist/aui/aui-prototyping.nodeps.css +10 -10
  25. package/dist/aui/aui-prototyping.nodeps.css.map +1 -1
  26. package/dist/aui/aui-prototyping.nodeps.js +10 -10
  27. package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
  28. package/dist/aui/fonts/adgs-icons.eot +0 -0
  29. package/dist/aui/fonts/adgs-icons.ttf +0 -0
  30. package/dist/aui/fonts/adgs-icons.woff +0 -0
  31. package/entry/aui.batch.components.js +23 -23
  32. package/entry/aui.batch.page.js +3 -3
  33. package/entry/aui.batch.patterns.js +20 -20
  34. package/entry/aui.batch.prototyping.js +3 -11
  35. package/entry/aui.component.nav.js +1 -1
  36. package/entry/aui.component.progressbar.js +4 -1
  37. package/entry/aui.side-effects.js +2 -2
  38. package/entry/behaviours/aui.behaviour.format.js +1 -1
  39. package/entry/behaviours/aui.behaviour.i18n.js +1 -1
  40. package/entry/behaviours/aui.behaviour.keyboard-shortcuts.js +1 -1
  41. package/entry/behaviours/aui.behaviour.progressive-data-set.js +1 -1
  42. package/entry/behaviours/aui.behaviour.version.js +1 -1
  43. package/entry/deprecated/aui.component.inline-dialog1.js +1 -1
  44. package/entry/styles/aui-design-tokens-compatibility.less +114 -115
  45. package/entry/token-themes-generated/npm/aui-prototyping-lf-extracted-color-channels.css +28 -0
  46. package/entry/token-themes-generated/p2/aui-prototyping-lf-extracted-color-channels.css +28 -0
  47. package/package.json +3 -3
  48. package/src/js/aui/alphanum.js +1 -1
  49. package/src/js/aui/avatar-badged.js +4 -5
  50. package/src/js/aui/avatar-group.js +58 -28
  51. package/src/js/aui/avatar.js +16 -14
  52. package/src/js/aui/banner.js +3 -2
  53. package/src/js/aui/blanket.js +11 -14
  54. package/src/js/aui/button.js +5 -5
  55. package/src/js/aui/checkbox-multiselect.js +79 -76
  56. package/src/js/aui/clone.js +1 -1
  57. package/src/js/aui/close-button.js +2 -6
  58. package/src/js/aui/contain-dropdown.js +5 -5
  59. package/src/js/aui/contains.js +1 -1
  60. package/src/js/aui/cookie.js +12 -16
  61. package/src/js/aui/date-picker.js +84 -69
  62. package/src/js/aui/debounce.js +5 -8
  63. package/src/js/aui/design-tokens/design-tokens-full.js +4 -13
  64. package/src/js/aui/design-tokens/design-tokens-init.js +1 -3
  65. package/src/js/aui/design-tokens/design-tokens-testing-theme.js +9 -15
  66. package/src/js/aui/design-tokens/design-tokens.js +2 -4
  67. package/src/js/aui/dialog.js +206 -172
  68. package/src/js/aui/dialog2.js +36 -25
  69. package/src/js/aui/dropdown2.js +221 -189
  70. package/src/js/aui/escape-html.js +2 -2
  71. package/src/js/aui/escape.js +1 -1
  72. package/src/js/aui/event.js +4 -8
  73. package/src/js/aui/expander.js +15 -13
  74. package/src/js/aui/flag.js +24 -22
  75. package/src/js/aui/focus-manager.js +20 -21
  76. package/src/js/aui/form-notification.js +16 -15
  77. package/src/js/aui/form-validation/basic-validators.js +39 -30
  78. package/src/js/aui/form-validation/validator-register.js +9 -5
  79. package/src/js/aui/form-validation.js +12 -13
  80. package/src/js/aui/format.js +9 -6
  81. package/src/js/aui/forms/create-forms-component-body.js +6 -9
  82. package/src/js/aui/forms/custom-checkbox.js +2 -6
  83. package/src/js/aui/forms/custom-radio.js +2 -6
  84. package/src/js/aui/forms.js +4 -8
  85. package/src/js/aui/header-async.js +1 -1
  86. package/src/js/aui/header.js +2 -2
  87. package/src/js/aui/i18n.js +2 -5
  88. package/src/js/aui/index-of.js +1 -1
  89. package/src/js/aui/inline-dialog.js +171 -117
  90. package/src/js/aui/inline-dialog2.js +40 -33
  91. package/src/js/aui/internal/a11y/focusable-query.js +2 -4
  92. package/src/js/aui/internal/add-id.js +1 -1
  93. package/src/js/aui/internal/alignment.js +57 -49
  94. package/src/js/aui/internal/amdify.js +0 -1
  95. package/src/js/aui/internal/animation.js +2 -5
  96. package/src/js/aui/internal/attributes.js +2 -3
  97. package/src/js/aui/internal/browser.js +6 -7
  98. package/src/js/aui/internal/constants.js +1 -3
  99. package/src/js/aui/internal/deduplicateIDs.js +8 -7
  100. package/src/js/aui/internal/deprecation/deprecated-adg2-icons.js +132 -132
  101. package/src/js/aui/internal/deprecation.js +54 -32
  102. package/src/js/aui/internal/detect-children-change.js +3 -2
  103. package/src/js/aui/internal/elements.js +2 -5
  104. package/src/js/aui/internal/enforcer.js +11 -13
  105. package/src/js/aui/internal/globalize.js +3 -3
  106. package/src/js/aui/internal/has-touch.js +1 -2
  107. package/src/js/aui/internal/header/create-header.js +54 -30
  108. package/src/js/aui/internal/i18n/aui.js +9 -5
  109. package/src/js/aui/internal/i18n/aui_af.js +31 -31
  110. package/src/js/aui/internal/i18n/aui_ar.js +31 -31
  111. package/src/js/aui/internal/i18n/aui_ar_DZ.js +31 -31
  112. package/src/js/aui/internal/i18n/aui_az.js +31 -31
  113. package/src/js/aui/internal/i18n/aui_bg.js +31 -31
  114. package/src/js/aui/internal/i18n/aui_bs.js +31 -31
  115. package/src/js/aui/internal/i18n/aui_ca.js +31 -31
  116. package/src/js/aui/internal/i18n/aui_cs.js +31 -31
  117. package/src/js/aui/internal/i18n/aui_da.js +31 -31
  118. package/src/js/aui/internal/i18n/aui_de.js +31 -31
  119. package/src/js/aui/internal/i18n/aui_el.js +31 -31
  120. package/src/js/aui/internal/i18n/aui_en_AU.js +31 -31
  121. package/src/js/aui/internal/i18n/aui_en_GB.js +31 -31
  122. package/src/js/aui/internal/i18n/aui_en_NZ.js +31 -31
  123. package/src/js/aui/internal/i18n/aui_eo.js +31 -31
  124. package/src/js/aui/internal/i18n/aui_es.js +31 -31
  125. package/src/js/aui/internal/i18n/aui_et.js +31 -31
  126. package/src/js/aui/internal/i18n/aui_eu.js +31 -31
  127. package/src/js/aui/internal/i18n/aui_fa.js +31 -31
  128. package/src/js/aui/internal/i18n/aui_fi.js +31 -31
  129. package/src/js/aui/internal/i18n/aui_fo.js +31 -31
  130. package/src/js/aui/internal/i18n/aui_fr.js +31 -31
  131. package/src/js/aui/internal/i18n/aui_fr_CH.js +31 -31
  132. package/src/js/aui/internal/i18n/aui_gl.js +31 -31
  133. package/src/js/aui/internal/i18n/aui_he.js +31 -31
  134. package/src/js/aui/internal/i18n/aui_hr.js +31 -31
  135. package/src/js/aui/internal/i18n/aui_hu.js +31 -31
  136. package/src/js/aui/internal/i18n/aui_hy.js +31 -31
  137. package/src/js/aui/internal/i18n/aui_id.js +31 -31
  138. package/src/js/aui/internal/i18n/aui_is.js +31 -31
  139. package/src/js/aui/internal/i18n/aui_it.js +31 -31
  140. package/src/js/aui/internal/i18n/aui_ja.js +31 -31
  141. package/src/js/aui/internal/i18n/aui_ko.js +31 -31
  142. package/src/js/aui/internal/i18n/aui_kz.js +31 -31
  143. package/src/js/aui/internal/i18n/aui_lt.js +31 -31
  144. package/src/js/aui/internal/i18n/aui_lv.js +31 -31
  145. package/src/js/aui/internal/i18n/aui_ml.js +31 -31
  146. package/src/js/aui/internal/i18n/aui_ms.js +31 -31
  147. package/src/js/aui/internal/i18n/aui_nl.js +31 -31
  148. package/src/js/aui/internal/i18n/aui_no.js +31 -31
  149. package/src/js/aui/internal/i18n/aui_pl.js +31 -31
  150. package/src/js/aui/internal/i18n/aui_pt.js +31 -31
  151. package/src/js/aui/internal/i18n/aui_pt_BR.js +31 -31
  152. package/src/js/aui/internal/i18n/aui_rm.js +31 -31
  153. package/src/js/aui/internal/i18n/aui_ro.js +31 -31
  154. package/src/js/aui/internal/i18n/aui_ru.js +31 -31
  155. package/src/js/aui/internal/i18n/aui_sk.js +31 -31
  156. package/src/js/aui/internal/i18n/aui_sl.js +31 -31
  157. package/src/js/aui/internal/i18n/aui_sq.js +31 -31
  158. package/src/js/aui/internal/i18n/aui_sr.js +31 -31
  159. package/src/js/aui/internal/i18n/aui_sr_SR.js +31 -31
  160. package/src/js/aui/internal/i18n/aui_sv.js +31 -31
  161. package/src/js/aui/internal/i18n/aui_ta.js +31 -31
  162. package/src/js/aui/internal/i18n/aui_th.js +31 -31
  163. package/src/js/aui/internal/i18n/aui_tj.js +31 -31
  164. package/src/js/aui/internal/i18n/aui_tr.js +31 -31
  165. package/src/js/aui/internal/i18n/aui_uk.js +31 -31
  166. package/src/js/aui/internal/i18n/aui_vi.js +31 -31
  167. package/src/js/aui/internal/i18n/aui_zh_CN.js +31 -31
  168. package/src/js/aui/internal/i18n/aui_zh_HK.js +31 -31
  169. package/src/js/aui/internal/i18n/aui_zh_TW.js +31 -31
  170. package/src/js/aui/internal/log.js +2 -6
  171. package/src/js/aui/internal/mediaQuery.js +2 -3
  172. package/src/js/aui/internal/select/option.js +3 -3
  173. package/src/js/aui/internal/select/suggestion-model.js +1 -1
  174. package/src/js/aui/internal/select/suggestions-model.js +4 -5
  175. package/src/js/aui/internal/select/suggestions-view.js +17 -12
  176. package/src/js/aui/internal/state.js +2 -3
  177. package/src/js/aui/is-clipped.js +2 -2
  178. package/src/js/aui/key-code.js +1 -1
  179. package/src/js/aui/label.js +6 -6
  180. package/src/js/aui/layer.js +101 -89
  181. package/src/js/aui/messages.js +67 -43
  182. package/src/js/aui/navigation.js +7 -9
  183. package/src/js/aui/on-text-resize.js +7 -5
  184. package/src/js/aui/params.js +11 -8
  185. package/src/js/aui/polyfills/custom-event.js +9 -9
  186. package/src/js/aui/polyfills/placeholder.js +4 -4
  187. package/src/js/aui/populate-parameters.js +4 -4
  188. package/src/js/aui/progress-indicator.js +35 -27
  189. package/src/js/aui/progressive-data-set.js +13 -8
  190. package/src/js/aui/query-input.js +1 -1
  191. package/src/js/aui/restful-table/class-names.js +1 -1
  192. package/src/js/aui/restful-table/data-keys.js +1 -1
  193. package/src/js/aui/restful-table/edit-row.js +63 -63
  194. package/src/js/aui/restful-table/entry-model.js +6 -13
  195. package/src/js/aui/restful-table/event-handlers.js +4 -8
  196. package/src/js/aui/restful-table/event-names.js +1 -1
  197. package/src/js/aui/restful-table/row.js +41 -23
  198. package/src/js/aui/restful-table.js +101 -72
  199. package/src/js/aui/result-set.js +5 -5
  200. package/src/js/aui/results-list.js +3 -3
  201. package/src/js/aui/select.js +72 -51
  202. package/src/js/aui/select2.js +16 -8
  203. package/src/js/aui/sidebar.js +81 -51
  204. package/src/js/aui/spin.js +61 -49
  205. package/src/js/aui/spinner.js +11 -12
  206. package/src/js/aui/tables-sortable.js +21 -10
  207. package/src/js/aui/tabs.js +108 -77
  208. package/src/js/aui/to-init.js +1 -1
  209. package/src/js/aui/toggle.js +55 -43
  210. package/src/js/aui/tooltip.js +34 -33
  211. package/src/js/aui/trigger.js +21 -19
  212. package/src/js/aui/truncating-progressive-data-set.js +1 -1
  213. package/src/js/aui/unbind-text-resize.js +1 -1
  214. package/src/js/aui/unique-id.js +1 -1
  215. package/src/js/aui/when-i-type.js +67 -40
  216. package/src/js/aui-css-deprecations.js +52 -51
  217. package/src/js/jquery/jquery.moveto.js +18 -12
  218. package/src/js-vendor-effective/tablesorter/jquery.tablesorter.js +6 -8
  219. package/src/less/adg-fancy-file-input.less +2 -3
  220. package/src/less/adg-header-quicksearch.less +5 -2
  221. package/src/less/adg-iconfont.less +242 -242
  222. package/src/less/adgs-icons.less +262 -262
  223. package/src/less/aui-appheader.less +53 -16
  224. package/src/less/aui-avatars.less +1 -1
  225. package/src/less/aui-banner.less +2 -1
  226. package/src/less/aui-buttons.less +6 -5
  227. package/src/less/aui-dark-mode.less +1 -1
  228. package/src/less/aui-date-picker.less +9 -6
  229. package/src/less/aui-experimental-expander.less +3 -3
  230. package/src/less/aui-experimental-labels.less +1 -1
  231. package/src/less/aui-experimental-progress-indicator.less +10 -4
  232. package/src/less/aui-experimental-progress-tracker.less +9 -6
  233. package/src/less/aui-experimental-restfultable.less +11 -3
  234. package/src/less/aui-experimental-tables-sortable.less +5 -3
  235. package/src/less/aui-experimental-tooltip.less +1 -1
  236. package/src/less/aui-link.less +0 -1
  237. package/src/less/aui-lozenge.less +6 -3
  238. package/src/less/aui-navigation.less +16 -14
  239. package/src/less/aui-page-layout.less +3 -4
  240. package/src/less/aui-page-typography.less +8 -3
  241. package/src/less/aui-reset.less +22 -6
  242. package/src/less/aui-select2.less +12 -9
  243. package/src/less/aui-sidebar-badges.less +1 -2
  244. package/src/less/aui-sidebar-config.less +7 -2
  245. package/src/less/aui-sidebar-grouping.less +22 -6
  246. package/src/less/aui-sidebar-navigation.less +7 -5
  247. package/src/less/aui-sidebar-skeleton.less +12 -7
  248. package/src/less/aui-skip-link.less +2 -1
  249. package/src/less/aui-spinner.less +2 -2
  250. package/src/less/aui-toggle.less +8 -4
  251. package/src/less/aui-toolbar2.less +1 -1
  252. package/src/less/checkbox-multiselect.less +13 -13
  253. package/src/less/dialog.less +3 -3
  254. package/src/less/dialog2.less +11 -10
  255. package/src/less/dropdown2-temp.css +4 -4
  256. package/src/less/dropdown2.less +4 -4
  257. package/src/less/flag.less +2 -2
  258. package/src/less/form-notification.less +10 -6
  259. package/src/less/forms-current.less +16 -18
  260. package/src/less/forms-legacy.less +4 -2
  261. package/src/less/forms-radios-and-checkboxes.less +18 -16
  262. package/src/less/forms.less +2 -4
  263. package/src/less/iconfont-mixin.less +7 -4
  264. package/src/less/imports/aui-theme/adg/adg-colors.less +40 -40
  265. package/src/less/imports/aui-theme/adg/adg-neutral-dark.less +20 -20
  266. package/src/less/imports/aui-theme/adg/adg-neutral-light.less +20 -20
  267. package/src/less/imports/aui-theme/components/buttons.less +7 -1
  268. package/src/less/imports/aui-theme/components/dropdown.less +3 -1
  269. package/src/less/imports/aui-theme/components/flag.less +1 -1
  270. package/src/less/imports/aui-theme/components/form-notification.less +2 -1
  271. package/src/less/imports/aui-theme/components/forms.less +8 -3
  272. package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
  273. package/src/less/imports/aui-theme/components/navigation.less +6 -3
  274. package/src/less/imports/aui-theme/components/progress-tracker.less +6 -2
  275. package/src/less/imports/aui-theme/components/tables.less +3 -2
  276. package/src/less/imports/aui-theme/components/toggle.less +8 -3
  277. package/src/less/imports/aui-theme/core/colors.less +2 -2
  278. package/src/less/imports/aui-theme/core/icons.less +22 -22
  279. package/src/less/imports/aui-theme/core/text.less +6 -3
  280. package/src/less/imports/aui-theme/theme.less +17 -3
  281. package/src/less/imports/mixins/dropdown2-trigger-chevron-icon.less +0 -1
  282. package/src/less/imports/mixins/focus.less +12 -4
  283. package/src/less/imports/mixins/look-and-feel.less +66 -0
  284. package/src/less/imports/mixins/media-queries.less +2 -2
  285. package/src/less/imports/mixins/shadows.less +3 -1
  286. package/src/less/imports/mixins/tab-indicator.less +2 -2
  287. package/src/less/imports/mixins.less +11 -4
  288. package/src/less/inline-dialog.less +21 -19
  289. package/src/less/layer.less +0 -2
  290. package/src/less/messages.less +2 -1
  291. package/src/less/single-select.less +15 -10
  292. package/src/less/tables.less +3 -2
  293. package/src/less/tabs.less +4 -3
@@ -1,5 +1,6 @@
1
1
  @import (reference) 'core-variables';
2
2
  @import (reference) 'component-variables';
3
+ @import (reference) '../mixins/look-and-feel';
3
4
 
4
5
  :root {
5
6
  #aui-themes.light();
@@ -17,13 +18,26 @@
17
18
  @design-tokens-light-theme-enabled: ~'@{design-tokens-mode-enabled}@{light-mode-enabled}';
18
19
  @design-tokens-dark-theme-enabled: ~'@{design-tokens-mode-enabled}@{dark-mode-enabled}';
19
20
 
20
-
21
21
  @{design-tokens-mode-enabled} {
22
22
  #aui-themes.design-tokens();
23
- };
24
23
 
25
- #aui-themes {
24
+ // The L&F switched colors are dependent on color channels of the design
25
+ // tokens, so will be available only when design tokens are loaded.
26
+ #aui.lf-define-switched-color(
27
+ @switch-on: --atl-theme-primary-color;
28
+ @token: '--ds-text';
29
+ );
30
+ #aui.lf-define-switched-color(
31
+ @switch-on: --atl-theme-primary-color;
32
+ @token: '--ds-background-neutral-hovered';
33
+ );
34
+ #aui.lf-define-switched-color(
35
+ @switch-on: --atl-theme-primary-color;
36
+ @token: '--ds-background-neutral-subtle-pressed';
37
+ );
38
+ }
26
39
 
40
+ #aui-themes {
27
41
  // The mixins are intended to apply certain styles only when the light or
28
42
  // dark color mode is on. They support both the classic approach to the
29
43
  // themes and the new recommended design-tokens one. `data-color-mode`
@@ -2,7 +2,6 @@
2
2
 
3
3
  #aui {
4
4
  .aui-dropdown2-trigger-chevron-icon(@glyphsize: @aui-icon-size-small; @canvassize: @aui-icon-size-small-canvas) {
5
-
6
5
  #aui.icon-pseudoelement(@aui-icon-font-family);
7
6
  content: @aui-glyph-chevron-down;
8
7
  font-size: @glyphsize;
@@ -36,14 +36,22 @@
36
36
  // Remove default focus styles for mouse users ONLY if
37
37
  // :focus-visible (or its polyfill) is supported on this platform.
38
38
  // The selectors are discrete because CSS ignores an entire ruleset if one selector is invalid.
39
- html:not(.aui-no-focusvisible).js-focus-visible &:focus:not(.focus-visible) { .hide-outline(); }
40
- html:not(.aui-no-focusvisible) &:focus:not(:focus-visible) { .hide-outline(); }
39
+ html:not(.aui-no-focusvisible).js-focus-visible &:focus:not(.focus-visible) {
40
+ .hide-outline();
41
+ }
42
+ html:not(.aui-no-focusvisible) &:focus:not(:focus-visible) {
43
+ .hide-outline();
44
+ }
41
45
 
42
46
  // Affect the potential CSS standard pseudo-selector
43
47
  // Its mozilla-specific implementation, and
44
48
  // a CSS class added by the WICG polyfill.
45
49
  // The selectors are discrete because CSS ignores an entire ruleset if one selector is invalid.
46
- html:not(.aui-no-focusvisible).js-focus-visible &.focus-visible { @rules(); }
47
- html:not(.aui-no-focusvisible) &:focus-visible { @rules(); }
50
+ html:not(.aui-no-focusvisible).js-focus-visible &.focus-visible {
51
+ @rules();
52
+ }
53
+ html:not(.aui-no-focusvisible) &:focus-visible {
54
+ @rules();
55
+ }
48
56
  }
49
57
  }
@@ -0,0 +1,66 @@
1
+ #aui {
2
+ /**
3
+ * Create an internal variable whose value is based on the @token value in light/dark themes,
4
+ * switching based on the perceptual lightness of @switch-on.
5
+ *
6
+ * Can only be used on tokens defined in tokenNamesToExtract in extractColorChannels (called
7
+ * at build step).
8
+ */
9
+ .lf-define-switched-color(
10
+ @switch-on: --atl-theme-primary-color;
11
+ @token;
12
+ ) {
13
+ /*
14
+ The following expression switches between two colors, whose oklch channels (l c h, and a
15
+ for alpha) are in separate variables built on base name, based on the perceptual lightness
16
+ of the input color.
17
+
18
+ l (perceptual lightness) ranges from 0 to 1; rounding gives 0 or 1; interpolation works
19
+ like a switch. We add 0.1 because I found it gives better contrast for some in-between
20
+ colors (though it might be only applicable to the current values of --ds-text and might
21
+ need adjustment in an unprobable case those values are changed):
22
+
23
+ round(l + 0.1) * (var(--l2) - var(--l1)) + var(--l1)
24
+ ^.. when 0 ..^ ^ this doesn't count ^ ^ and we get l1
25
+ ^.. when 1 ..^ ^ we get l2, cause -l1+l1=0
26
+
27
+ Safari has a limitation: it doesn't allow round() in this particular expression. So we
28
+ mimic it with the min/max trick. `min(l-0.6,1)` transforms the lower part of the range into
29
+ a zero; the multiply by 100 preserves zeroes, but makes any positive number (to a
30
+ resolution of 0.01 which is good enough) into a 1 or more, which min(x,1) clamps to 1. (The
31
+ browser logic would do the last `min` here, but we include it for clarity.)
32
+
33
+ Use ~'<text>' syntax to bypass Less resolving the functions `min` and `max`.
34
+ */
35
+
36
+ @base: ~'--auix@{token}';
37
+ @switched-color: ~'@{base}-s';
38
+
39
+ @supports (color: rgb(from white r g b)) {
40
+ @{switched-color}: ~'oklch(
41
+ from var(@{switch-on})
42
+ calc(min(max(0, l - 0.6) * 100, 1) * (var(@{base}-l1) - var(@{base}-l2)) + var(@{base}-l2))
43
+ calc(min(max(0, l - 0.6) * 100, 1) * (var(@{base}-c1) - var(@{base}-c2)) + var(@{base}-c2))
44
+ calc(min(max(0, l - 0.6) * 100, 1) * (var(@{base}-h1) - var(@{base}-h2)) + var(@{base}-h2))
45
+ /
46
+ calc(min(max(0, l - 0.6) * 100, 1) * (var(@{base}-a1) - var(@{base}-a2)) + var(@{base}-a2))
47
+ )';
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Define a variable @name that'll take its value from a lf-switched variable (must be defined
53
+ * earlier via lf-define-switched-color), or @fallback when the lf input variable is not
54
+ * defined.
55
+ */
56
+ .define-lf-variable(
57
+ @name;
58
+ @token;
59
+ @fallback;
60
+ ) {
61
+ @base: ~'--auix@{token}';
62
+ @switched-color: ~'@{base}-s';
63
+
64
+ @{name}: var(@switched-color, var(@fallback));
65
+ }
66
+ }
@@ -11,13 +11,13 @@
11
11
  }
12
12
 
13
13
  .legacy-edge(@rules) {
14
- @supports (-ms-accelerator:true) or (-ms-ime-align:auto) {
14
+ @supports (-ms-accelerator: true) or (-ms-ime-align: auto) {
15
15
  @rules();
16
16
  }
17
17
  }
18
18
 
19
19
  .firefox(@rules) {
20
- @media all and (min--moz-device-pixel-ratio:0) {
20
+ @media all and (min--moz-device-pixel-ratio: 0) {
21
21
  @rules();
22
22
  }
23
23
  }
@@ -35,7 +35,9 @@
35
35
 
36
36
  // Internal use only
37
37
  .z-base(@shadow) {
38
- box-shadow: @shadow, 0 0 1px var(--aui-shadow2);
38
+ box-shadow:
39
+ @shadow,
40
+ 0 0 1px var(--aui-shadow2);
39
41
  // Improve legibility of the element's "border" in Legacy Edge.
40
42
  .legacy-edge({
41
43
  box-shadow: @shadow,
@@ -8,7 +8,7 @@
8
8
  &::before {
9
9
  background: @background;
10
10
  bottom: 0;
11
- content: "";
11
+ content: '';
12
12
  display: block;
13
13
  height: @aui-tab-break-height;
14
14
  left: @horizontal-gutter;
@@ -25,7 +25,7 @@
25
25
  &::before {
26
26
  background: @background;
27
27
  bottom: @vertical-gutter;
28
- content: "";
28
+ content: '';
29
29
  display: block;
30
30
  height: initial;
31
31
  position: absolute;
@@ -45,7 +45,11 @@
45
45
  .gradient {
46
46
  .vertical(@start-color: #fff, @end-color: #f2f2f2, @start-percent: 0%, @end-percent: 100%) {
47
47
  background: @end-color;
48
- background: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent);
48
+ background: linear-gradient(
49
+ to bottom,
50
+ @start-color @start-percent,
51
+ @end-color @end-percent
52
+ );
49
53
  }
50
54
  }
51
55
 
@@ -91,7 +95,9 @@
91
95
 
92
96
  .fadeOut(@length: 0.2s, @delay: 0s) {
93
97
  opacity: 0;
94
- transition: opacity @length, visibility @length;
98
+ transition:
99
+ opacity @length,
100
+ visibility @length;
95
101
  transition-delay: @delay;
96
102
  visibility: hidden;
97
103
  }
@@ -102,7 +108,7 @@
102
108
  }
103
109
 
104
110
  .height-calc(@calc) {
105
- height: ~"calc(@{calc})";
111
+ height: ~'calc(@{calc})';
106
112
  }
107
113
 
108
114
  .placeholder(@color) {
@@ -111,7 +117,8 @@
111
117
  opacity: 1;
112
118
  }
113
119
  // Target AUI's JS equivalent of the CSS proposal for the `:placeholder-shown` pseudo-class.
114
- &.aui-placeholder-shown, &.placeholder-shown {
120
+ &.aui-placeholder-shown,
121
+ &.placeholder-shown {
115
122
  color: @color;
116
123
  }
117
124
  }
@@ -8,7 +8,9 @@ aui-inline-dialog {
8
8
  --aui-tail-x: 0;
9
9
  --aui-tail-y: 0;
10
10
  --aui-tail-w: @aui-inline-dialog2-arrow-side-length;
11
- --aui-tail-bw: calc(var(--aui-inline-dialog-border-width) + @aui-inline-dialog2-arrow-border-width);
11
+ --aui-tail-bw: calc(
12
+ var(--aui-inline-dialog-border-width) + @aui-inline-dialog2-arrow-border-width
13
+ );
12
14
 
13
15
  display: block;
14
16
  position: absolute;
@@ -46,7 +48,7 @@ aui-inline-dialog {
46
48
  border: var(--aui-tail-w) solid transparent;
47
49
  border-bottom-color: @aui-inline-dialog-bg-color;
48
50
  box-sizing: border-box;
49
- content: "";
51
+ content: '';
50
52
  display: inline-block;
51
53
  height: 0;
52
54
  pointer-events: none;
@@ -61,60 +63,60 @@ aui-inline-dialog {
61
63
 
62
64
  // 'top _' alignment
63
65
  &.aui-alignment-side-top,
64
- &.aui-alignment-side-bottom[data-popper-placement*="top"] {
66
+ &.aui-alignment-side-bottom[data-popper-placement*='top'] {
65
67
  --aui-tail-deg: 180deg;
66
68
  --aui-tail-y: var(--aui-tail-w);
67
69
 
68
70
  &:before {
69
- top: calc(~"100%" - var(--aui-tail-w));
71
+ top: calc(~'100%' - var(--aui-tail-w));
70
72
  }
71
73
 
72
74
  &:after {
73
- top: calc(~"100%" - var(--aui-tail-w) - var(--aui-tail-bw));
75
+ top: calc(~'100%' - var(--aui-tail-w) - var(--aui-tail-bw));
74
76
  }
75
77
  }
76
78
 
77
79
  // 'bottom _' alignment
78
80
  &.aui-alignment-side-bottom,
79
- &.aui-alignment-side-top[data-popper-placement*="bottom"] {
81
+ &.aui-alignment-side-top[data-popper-placement*='bottom'] {
80
82
  --aui-tail-deg: 0deg;
81
83
  --aui-tail-y: var(--aui-tail-w);
82
84
 
83
85
  &:before {
84
- top: calc(~"0%" - var(--aui-tail-w));
86
+ top: calc(~'0%' - var(--aui-tail-w));
85
87
  }
86
88
  &:after {
87
- top: calc(~"0%" - var(--aui-tail-w) + var(--aui-tail-bw));
89
+ top: calc(~'0%' - var(--aui-tail-w) + var(--aui-tail-bw));
88
90
  }
89
91
  }
90
92
 
91
93
  // 'left _' alignment
92
94
  &.aui-alignment-side-left,
93
- &.aui-alignment-side-right[data-popper-placement*="left"] {
95
+ &.aui-alignment-side-right[data-popper-placement*='left'] {
94
96
  --aui-tail-deg: 90deg;
95
97
  --aui-tail-x: var(--aui-tail-w);
96
98
 
97
99
  &:before {
98
- left: calc(~"100%" - var(--aui-tail-w));
100
+ left: calc(~'100%' - var(--aui-tail-w));
99
101
  }
100
102
 
101
103
  &:after {
102
- left: calc(~"100%" - var(--aui-tail-w) - var(--aui-tail-bw));
104
+ left: calc(~'100%' - var(--aui-tail-w) - var(--aui-tail-bw));
103
105
  }
104
106
  }
105
107
 
106
108
  // 'right _' alignment
107
109
  &.aui-alignment-side-right,
108
- &.aui-alignment-side-left[data-popper-placement*="right"] {
110
+ &.aui-alignment-side-left[data-popper-placement*='right'] {
109
111
  --aui-tail-deg: -90deg;
110
112
  --aui-tail-x: var(--aui-tail-w);
111
113
 
112
114
  &:before {
113
- left: calc(~"0%" - var(--aui-tail-w));
115
+ left: calc(~'0%' - var(--aui-tail-w));
114
116
  }
115
117
 
116
118
  &:after {
117
- left: calc(~"0%" - var(--aui-tail-w) + var(--aui-tail-bw));
119
+ left: calc(~'0%' - var(--aui-tail-w) + var(--aui-tail-bw));
118
120
  }
119
121
  }
120
122
 
@@ -127,13 +129,13 @@ aui-inline-dialog {
127
129
  // '_ center' alignment
128
130
  &.aui-alignment-snap-center:before,
129
131
  &.aui-alignment-snap-center:after {
130
- left: calc(~"50%" - var(--aui-tail-w));
132
+ left: calc(~'50%' - var(--aui-tail-w));
131
133
  }
132
134
 
133
135
  // '_ right' alignment
134
136
  &.aui-alignment-snap-right:before,
135
137
  &.aui-alignment-snap-right:after {
136
- left: calc(~"100%" - ((var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset));
138
+ left: calc(~'100%' - ((var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset));
137
139
  }
138
140
 
139
141
  // '_ top' alignment
@@ -145,13 +147,13 @@ aui-inline-dialog {
145
147
  // '_ middle' alignment
146
148
  &.aui-alignment-snap-middle:before,
147
149
  &.aui-alignment-snap-middle:after {
148
- top: calc(~"50%" - var(--aui-tail-w));
150
+ top: calc(~'50%' - var(--aui-tail-w));
149
151
  }
150
152
 
151
153
  // '_ bottom' alignment
152
154
  &.aui-alignment-snap-bottom:before,
153
155
  &.aui-alignment-snap-bottom:after {
154
- top: calc(~"100%" - (var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset);
156
+ top: calc(~'100%' - (var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset);
155
157
  }
156
158
  }
157
159
 
@@ -199,7 +201,7 @@ aui-inline-dialog {
199
201
  border-color: @aui-inline-dialog-border-color transparent;
200
202
  border-style: solid;
201
203
  border-width: 0 8px 8px;
202
- content: "";
204
+ content: '';
203
205
  left: -8px;
204
206
  position: absolute;
205
207
  top: 0;
@@ -12,8 +12,6 @@
12
12
  #aui.focus-visible(#aui.with-focus-ring());
13
13
  }
14
14
 
15
-
16
-
17
15
  .aui-blanket {
18
16
  #aui.transition.fadeOut(@aui-blanket-fade-time, @aui-blanket-fade-delay);
19
17
 
@@ -62,7 +62,8 @@ aui-message {
62
62
  }
63
63
  }
64
64
 
65
- aui-message, .aui-message {
65
+ aui-message,
66
+ .aui-message {
66
67
  margin: (@aui-grid*2) 0 0 0;
67
68
 
68
69
  &:first-child {
@@ -19,7 +19,7 @@
19
19
  padding: @aui-dropdown-group-spacing 0;
20
20
  }
21
21
 
22
- [role="option"] {
22
+ [role='option'] {
23
23
  color: inherit;
24
24
  display: block;
25
25
  padding: 3px 10px;
@@ -45,7 +45,7 @@
45
45
  margin: 0;
46
46
  padding-left: 0;
47
47
 
48
- [role="option"] {
48
+ [role='option'] {
49
49
  #aui-nav.item-base();
50
50
  #aui-nav.item-style(normal);
51
51
 
@@ -58,7 +58,7 @@
58
58
  }
59
59
  }
60
60
 
61
- &:not(:hover) [role="option"].aui-select-active {
61
+ &:not(:hover) [role='option'].aui-select-active {
62
62
  #aui-nav.item-style(hover);
63
63
  }
64
64
  }
@@ -70,12 +70,12 @@
70
70
  @select-trigger-padding-left: 6px;
71
71
  @select-trigger-padding-right: 6px;
72
72
  @select-trigger-arrow-width: 8px;
73
- @select-trigger-width: @aui-button-border-width * 2 + @select-trigger-padding-left + @select-trigger-arrow-width + @select-trigger-padding-right;
73
+ @select-trigger-width: @aui-button-border-width * 2 + @select-trigger-padding-left +
74
+ @select-trigger-arrow-width + @select-trigger-padding-right;
74
75
  @select-trigger-arrow-height: (@select-trigger-arrow-width / 2);
75
76
 
76
77
  form.aui:not(.aui-legacy-forms) aui-select,
77
78
  aui-select {
78
-
79
79
  display: inline-block;
80
80
  position: relative;
81
81
  max-width: @aui-form-field-width-default;
@@ -84,7 +84,8 @@ aui-select {
84
84
  #aui-forms.aui-input-field-style(normal);
85
85
  font-size: @aui-font-size-medium;
86
86
 
87
- &:hover { // need this to make same hover for input on actually button hover
87
+ &:hover {
88
+ // need this to make same hover for input on actually button hover
88
89
  input {
89
90
  #aui-forms.aui-input-field-style(hover);
90
91
  }
@@ -106,7 +107,8 @@ aui-select {
106
107
  background-position: @aui-select-image-in-input-left @aui-select-image-in-input-top;
107
108
  background-repeat: no-repeat;
108
109
  background-size: @aui-select-image-size;
109
- padding-left: @aui-select-image-size + @aui-select-image-in-input-left + @aui-select-image-in-input-right;
110
+ padding-left: @aui-select-image-size + @aui-select-image-in-input-left +
111
+ @aui-select-image-in-input-right;
110
112
  }
111
113
 
112
114
  select,
@@ -138,7 +140,7 @@ aui-select {
138
140
  #aui.aui-dropdown2-trigger-chevron-icon();
139
141
  }
140
142
 
141
- &[aria-expanded="true"]:not([aria-busy])::before {
143
+ &[aria-expanded='true']:not([aria-busy])::before {
142
144
  transform: rotate(180deg);
143
145
  }
144
146
  }
@@ -168,7 +170,8 @@ form.aui.aui-legacy-forms aui-select {
168
170
  background-position: @aui-select-image-in-input-left @aui-select-image-in-input-top;
169
171
  background-repeat: no-repeat;
170
172
  background-size: @aui-select-image-size;
171
- padding-left: @aui-select-image-size + @aui-select-image-in-input-left + @aui-select-image-in-input-right;
173
+ padding-left: @aui-select-image-size + @aui-select-image-in-input-left +
174
+ @aui-select-image-in-input-right;
172
175
  }
173
176
 
174
177
  select,
@@ -207,7 +210,9 @@ form.aui.aui-legacy-forms aui-select {
207
210
  &:not([aria-busy])::before {
208
211
  #aui.aui-dropdown2-trigger-chevron-icon();
209
212
 
210
- right: ((@select-trigger-width - @aui-icon-size-small - (@aui-button-border-width *2)) / 2);
213
+ right: (
214
+ (@select-trigger-width - @aui-icon-size-small - (@aui-button-border-width * 2)) / 2
215
+ );
211
216
  }
212
217
  }
213
218
  }
@@ -116,7 +116,8 @@ table.aui.aui-table-list,
116
116
  table.aui.aui-table-interactive {
117
117
  > tbody {
118
118
  > tr {
119
- &:hover, &:focus-within {
119
+ &:hover,
120
+ &:focus-within {
120
121
  background: @aui-table-list-row-hover-color;
121
122
  }
122
123
  &.aui-row-subtle * {
@@ -125,7 +126,7 @@ table.aui.aui-table-interactive {
125
126
  .aui-avatar,
126
127
  .aui-icon,
127
128
  .aui-button {
128
- opacity: .8;
129
+ opacity: 0.8;
129
130
  }
130
131
  }
131
132
  }
@@ -82,7 +82,8 @@ aui-tabs {
82
82
  text-align: right;
83
83
  text-decoration: none;
84
84
  overflow: hidden;
85
- padding: @aui-tab-padding-y (@aui-tab-padding-x + @aui-tab-break-height) @aui-tab-padding-y @aui-tab-padding-x;
85
+ padding: @aui-tab-padding-y (@aui-tab-padding-x + @aui-tab-break-height)
86
+ @aui-tab-padding-y @aui-tab-padding-x;
86
87
  }
87
88
 
88
89
  strong {
@@ -124,7 +125,7 @@ aui-tabs {
124
125
  padding-top: @aui-grid;
125
126
  }
126
127
 
127
- &[data-aui-responsive]:not([data-aui-responsive="false"]) > .tabs-menu {
128
+ &[data-aui-responsive]:not([data-aui-responsive='false']) > .tabs-menu {
128
129
  font-size: 0; // required to remove spacing between inline elements
129
130
  flex-wrap: nowrap;
130
131
  margin: 0 0 -1px 0;
@@ -132,7 +133,7 @@ aui-tabs {
132
133
  white-space: nowrap;
133
134
  }
134
135
 
135
- &[data-aui-responsive]:not([data-aui-responsive="false"]) > .tabs-menu > .menu-item {
136
+ &[data-aui-responsive]:not([data-aui-responsive='false']) > .tabs-menu > .menu-item {
136
137
  float: none;
137
138
  flex-shrink: 0;
138
139
  font-size: @aui-tabs-font-size; // reset the font-size