@leaflink/stash 52.0.3 → 53.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +51 -52
  2. package/dist/Accordion.js +16 -16
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionGroup.js +7 -7
  5. package/dist/AccordionGroup.js.map +1 -1
  6. package/dist/ActionsDropdown.js +16 -16
  7. package/dist/ActionsDropdown.js.map +1 -1
  8. package/dist/AddressSelect.js.map +1 -1
  9. package/dist/AddressSelect.vue.d.ts +1 -1
  10. package/dist/Alert.js +34 -34
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/AppNavigationItem.js +31 -31
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppSidebar.js +19 -19
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppTopbar.js +32 -32
  17. package/dist/AppTopbar.js.map +1 -1
  18. package/dist/Avatar.js +18 -18
  19. package/dist/Avatar.js.map +1 -1
  20. package/dist/Backdrop.js +5 -5
  21. package/dist/Backdrop.js.map +1 -1
  22. package/dist/Badge.js +38 -38
  23. package/dist/Badge.js.map +1 -1
  24. package/dist/Box.js +1 -1
  25. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js} +6 -6
  26. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js.map} +1 -1
  27. package/dist/Button.js +21 -21
  28. package/dist/Button.js.map +1 -1
  29. package/dist/ButtonGroup.js +26 -26
  30. package/dist/ButtonGroup.js.map +1 -1
  31. package/dist/Card.js +14 -14
  32. package/dist/Card.js.map +1 -1
  33. package/dist/CardContent.js +1 -1
  34. package/dist/CardContent.js.map +1 -1
  35. package/dist/CardFooter.js +1 -1
  36. package/dist/CardFooter.js.map +1 -1
  37. package/dist/CardHeader.js +4 -4
  38. package/dist/CardHeader.js.map +1 -1
  39. package/dist/CardMedia.js +20 -20
  40. package/dist/CardMedia.js.map +1 -1
  41. package/dist/Carousel.js +60 -60
  42. package/dist/Carousel.js.map +1 -1
  43. package/dist/Checkbox.js +30 -30
  44. package/dist/Checkbox.js.map +1 -1
  45. package/dist/Checkbox.vue.d.ts +0 -3
  46. package/dist/Chip.js +33 -33
  47. package/dist/Chip.js.map +1 -1
  48. package/dist/ConfirmationCodeInput.js +72 -72
  49. package/dist/ConfirmationCodeInput.js.map +1 -1
  50. package/dist/ContextSwitcher.js +27 -27
  51. package/dist/ContextSwitcher.js.map +1 -1
  52. package/dist/Copy.js +47 -48
  53. package/dist/Copy.js.map +1 -1
  54. package/dist/CurrencyInput.js +1 -1
  55. package/dist/CurrencyInput.js.map +1 -1
  56. package/dist/CurrencyInput.vue.d.ts +5 -5
  57. package/dist/DataView.js +23 -23
  58. package/dist/DataView.js.map +1 -1
  59. package/dist/DataViewFilters.js +26 -26
  60. package/dist/DataViewFilters.js.map +1 -1
  61. package/dist/DataViewSortButton.js +22 -22
  62. package/dist/DataViewSortButton.js.map +1 -1
  63. package/dist/DataViewToolbar.js +52 -52
  64. package/dist/DataViewToolbar.js.map +1 -1
  65. package/dist/DatePicker.js +10 -10
  66. package/dist/DatePicker.js.map +1 -1
  67. package/dist/DescriptionList.js +2 -2
  68. package/dist/DescriptionList.js.map +1 -1
  69. package/dist/DescriptionListDetail.js +2 -2
  70. package/dist/DescriptionListDetail.js.map +1 -1
  71. package/dist/DescriptionListGroup.js +9 -9
  72. package/dist/DescriptionListGroup.js.map +1 -1
  73. package/dist/DescriptionListTerm.js +8 -8
  74. package/dist/DescriptionListTerm.js.map +1 -1
  75. package/dist/Dialog.js +47 -47
  76. package/dist/Dialog.js.map +1 -1
  77. package/dist/Divider.js +6 -6
  78. package/dist/Divider.js.map +1 -1
  79. package/dist/Dropdown.js +20 -20
  80. package/dist/Dropdown.js.map +1 -1
  81. package/dist/EmptyState.js +26 -26
  82. package/dist/EmptyState.js.map +1 -1
  83. package/dist/Field.js +1 -1
  84. package/dist/{Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js → Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js} +17 -17
  85. package/dist/Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js.map +1 -0
  86. package/dist/FileUpload.js +47 -49
  87. package/dist/FileUpload.js.map +1 -1
  88. package/dist/FilterChip.js +20 -20
  89. package/dist/FilterChip.js.map +1 -1
  90. package/dist/FilterDrawerItem.js +13 -13
  91. package/dist/FilterDrawerItem.js.map +1 -1
  92. package/dist/FilterDropdown.js +27 -27
  93. package/dist/FilterDropdown.js.map +1 -1
  94. package/dist/FilterSelect.js +33 -33
  95. package/dist/FilterSelect.js.map +1 -1
  96. package/dist/Filters.js +29 -29
  97. package/dist/Filters.js.map +1 -1
  98. package/dist/Filters.vue.d.ts +2 -8
  99. package/dist/HttpError.js +29 -29
  100. package/dist/HttpError.js.map +1 -1
  101. package/dist/HttpError.vue.d.ts +0 -3
  102. package/dist/Icon.js +12 -12
  103. package/dist/Icon.js.map +1 -1
  104. package/dist/IconLabel.js +19 -19
  105. package/dist/IconLabel.js.map +1 -1
  106. package/dist/IconLabel.vue.d.ts +1 -1
  107. package/dist/Illustration.js +2 -2
  108. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js} +4 -4
  109. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js.map} +1 -1
  110. package/dist/Image.js +2 -2
  111. package/dist/Image.vue.d.ts +0 -3
  112. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js} +11 -11
  113. package/dist/Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js.map +1 -0
  114. package/dist/InlineEdit.js +8 -8
  115. package/dist/InlineEdit.js.map +1 -1
  116. package/dist/Input.js +29 -29
  117. package/dist/Input.js.map +1 -1
  118. package/dist/InputOptions.js +87 -84
  119. package/dist/InputOptions.js.map +1 -1
  120. package/dist/InputOptions.vue.d.ts +2 -2
  121. package/dist/IntegrationIcon.js +11 -11
  122. package/dist/IntegrationIcon.js.map +1 -1
  123. package/dist/Label.js +1 -1
  124. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js} +16 -16
  125. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js.map} +1 -1
  126. package/dist/ListItem.js +14 -14
  127. package/dist/ListItem.js.map +1 -1
  128. package/dist/ListItem.vue.d.ts +0 -6
  129. package/dist/ListItemCell.js +9 -9
  130. package/dist/ListItemCell.js.map +1 -1
  131. package/dist/ListView.js +138 -141
  132. package/dist/ListView.js.map +1 -1
  133. package/dist/ListView.vue.d.ts +6 -40
  134. package/dist/Loading.js +8 -8
  135. package/dist/Loading.js.map +1 -1
  136. package/dist/Logo.js +1 -1
  137. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js} +3 -3
  138. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js.map} +1 -1
  139. package/dist/Menu.js +5 -5
  140. package/dist/Menu.js.map +1 -1
  141. package/dist/MenuItem.js +12 -12
  142. package/dist/MenuItem.js.map +1 -1
  143. package/dist/Metric.js +24 -24
  144. package/dist/Metric.js.map +1 -1
  145. package/dist/Modal.js +60 -60
  146. package/dist/Modal.js.map +1 -1
  147. package/dist/Modals.js +1 -1
  148. package/dist/Modals.js.map +1 -1
  149. package/dist/Module.js +6 -6
  150. package/dist/Module.js.map +1 -1
  151. package/dist/ModuleContent.js +16 -16
  152. package/dist/ModuleContent.js.map +1 -1
  153. package/dist/ModuleFooter.js +13 -13
  154. package/dist/ModuleFooter.js.map +1 -1
  155. package/dist/ModuleHeader.js +29 -29
  156. package/dist/ModuleHeader.js.map +1 -1
  157. package/dist/MoreActions.js +81 -84
  158. package/dist/MoreActions.js.map +1 -1
  159. package/dist/ObfuscateText.js +4 -4
  160. package/dist/ObfuscateText.js.map +1 -1
  161. package/dist/PageContent.js +13 -13
  162. package/dist/PageContent.js.map +1 -1
  163. package/dist/PageHeader.js +28 -28
  164. package/dist/PageHeader.js.map +1 -1
  165. package/dist/PageNavigation.js +1 -1
  166. package/dist/Paginate.js +45 -45
  167. package/dist/Paginate.js.map +1 -1
  168. package/dist/QuickAction.js +18 -18
  169. package/dist/QuickAction.js.map +1 -1
  170. package/dist/Radio.js +17 -17
  171. package/dist/Radio.js.map +1 -1
  172. package/dist/RadioGroup.js +121 -121
  173. package/dist/RadioGroup.js.map +1 -1
  174. package/dist/RadioNew.js +80 -80
  175. package/dist/RadioNew.js.map +1 -1
  176. package/dist/RadioNew.vue.d.ts +0 -3
  177. package/dist/RangeInput.js +2 -2
  178. package/dist/RangeInput.js.map +1 -1
  179. package/dist/SearchBar.js +9 -9
  180. package/dist/SearchBar.js.map +1 -1
  181. package/dist/SectionHeader.js +14 -14
  182. package/dist/SectionHeader.js.map +1 -1
  183. package/dist/Select.js +369 -366
  184. package/dist/Select.js.map +1 -1
  185. package/dist/SelectStatus.js +26 -26
  186. package/dist/SelectStatus.js.map +1 -1
  187. package/dist/Skeleton.js +20 -20
  188. package/dist/Skeleton.js.map +1 -1
  189. package/dist/Step.js +37 -40
  190. package/dist/Step.js.map +1 -1
  191. package/dist/Stepper.js +17 -17
  192. package/dist/Stepper.js.map +1 -1
  193. package/dist/Switch.js +57 -57
  194. package/dist/Switch.js.map +1 -1
  195. package/dist/Tab.js +17 -19
  196. package/dist/Tab.js.map +1 -1
  197. package/dist/TabPanel.js +1 -1
  198. package/dist/TabPanel.js.map +1 -1
  199. package/dist/Table.js +22 -22
  200. package/dist/Table.js.map +1 -1
  201. package/dist/TableCell.js +32 -32
  202. package/dist/TableCell.js.map +1 -1
  203. package/dist/TableHeaderCell.js +35 -35
  204. package/dist/TableHeaderCell.js.map +1 -1
  205. package/dist/TableHeaderRow.js +10 -10
  206. package/dist/TableHeaderRow.js.map +1 -1
  207. package/dist/TableRow.js +51 -51
  208. package/dist/TableRow.js.map +1 -1
  209. package/dist/Tabs.js +2 -2
  210. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js → Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js} +33 -33
  211. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js.map +1 -0
  212. package/dist/TextEditor.js +8 -8
  213. package/dist/TextEditor.js.map +1 -1
  214. package/dist/Textarea.js +15 -15
  215. package/dist/Textarea.js.map +1 -1
  216. package/dist/Thumbnail.js +41 -41
  217. package/dist/Thumbnail.js.map +1 -1
  218. package/dist/ThumbnailEmpty.js +3 -3
  219. package/dist/ThumbnailEmpty.js.map +1 -1
  220. package/dist/ThumbnailGroup.js +22 -22
  221. package/dist/ThumbnailGroup.js.map +1 -1
  222. package/dist/Timeline.js +6 -6
  223. package/dist/Timeline.js.map +1 -1
  224. package/dist/Timeline.vue.d.ts +2 -2
  225. package/dist/TimelineItem.js +22 -22
  226. package/dist/TimelineItem.js.map +1 -1
  227. package/dist/Toast.js +29 -29
  228. package/dist/Toast.js.map +1 -1
  229. package/dist/Toast.vue.d.ts +3 -0
  230. package/dist/Toasts.js +11 -11
  231. package/dist/Toasts.js.map +1 -1
  232. package/dist/Tooltip.js +2 -81
  233. package/dist/Tooltip.js.map +1 -1
  234. package/dist/Tooltip.vue.d.ts +1 -1
  235. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js +84 -0
  236. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js.map +1 -0
  237. package/dist/components.css +2 -2
  238. package/dist/constants.d.ts +9 -9
  239. package/dist/constants.js +17 -17
  240. package/dist/constants.js.map +1 -1
  241. package/dist/directives/tooltip.js +2 -2
  242. package/dist/directives/tooltip.js.map +1 -1
  243. package/dist/floating-ui.vue-CuGrC-z8.js.map +1 -1
  244. package/dist/formatDateTime-Dz8bXV0R.js.map +1 -1
  245. package/dist/index-D6bxWkZ1.js.map +1 -1
  246. package/dist/{index-C14LhAwV.js → index-DBV9Uz0C.js} +3 -3
  247. package/dist/index-DBV9Uz0C.js.map +1 -0
  248. package/dist/index.js.map +1 -1
  249. package/dist/isValid-DN-HkCoi.js.map +1 -1
  250. package/dist/parseISO-wlfIB_QJ.js.map +1 -1
  251. package/dist/searchFuzzy-B3TsUO-V.js.map +1 -1
  252. package/dist/tailwind-base.js +4 -4
  253. package/dist/tailwind-base.js.d.ts +12 -0
  254. package/dist/tailwind-base.js.map +1 -1
  255. package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
  256. package/dist/useGoogleMaps.js.map +1 -1
  257. package/dist/useSortable.js +1 -1
  258. package/dist/useValidation.js.map +1 -1
  259. package/dist/utils/helpers.js +15 -15
  260. package/dist/utils/helpers.js.map +1 -1
  261. package/package.json +12 -82
  262. package/styles/backwards-compat.css +375 -2854
  263. package/styles/main.css +8 -0
  264. package/styles/sofia-font.css +23 -27
  265. package/styles/theme.css +1033 -0
  266. package/LICENSE +0 -21
  267. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +0 -1
  268. package/dist/Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map +0 -1
  269. package/dist/Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js.map +0 -1
  270. package/dist/index-C14LhAwV.js.map +0 -1
  271. package/dist/tailwind-base.d.ts +0 -333
  272. package/styles/base.css +0 -902
  273. package/tailwind-base.ts +0 -455
@@ -0,0 +1,1033 @@
1
+ /*
2
+ * ALWAYS include these color related classes (below). This allows us to dynamically
3
+ * create color classes based on a color prop in our components instead of
4
+ * listing the full class name like is encouraged in the docs.
5
+ * https://tailwindcss.com/docs/detecting-classes-in-source-files#dynamic-class-names
6
+ *
7
+ * Note: If any stash components change which color classes they dynamically build,
8
+ * this needs to change. Keep this list as small as possible.
9
+ *
10
+ * Note: Patterns can only match against base utility names like /bg-red-.+/, and won't match if the pattern
11
+ * includes a variant modifier like /hover:bg-red-.+/.
12
+ */
13
+ @source inline("{bg,text,border}-{purple,royal,blue,seafoam,teal,green,yellow,orange,red,ice}-{100,200,500,700,900}");
14
+
15
+ /* Stroke and text colors for illustrations */
16
+ @source inline("stroke-{purple,royal,blue,seafoam,teal,green,yellow,orange,red,ice}-500");
17
+ @source inline("text-{purple,royal,blue,seafoam,teal,green,yellow,orange,red,ice}-400");
18
+
19
+ /* Other classes that are used dynamically (ex: `text-${isDark ? 'white' : 'black'}`) */
20
+ @source inline("bg-ice-200 bg-white bg-black text-white text-black border-white border-black");
21
+
22
+ /* Conflicts with our own custom container classes */
23
+ @source not inline("container");
24
+
25
+ :root {
26
+ --grid-gutter: 12px;
27
+
28
+ --line-height-base: calc(24 / 16);
29
+ --line-height-body: calc(20 / 14);
30
+ --line-height-small: calc(16 / 12);
31
+ --line-height-button: calc(24 / 14);
32
+
33
+ /* The tooltips position relative to the toggle element */
34
+ --tooltip-position: calc(100% + --spacing(3));
35
+
36
+ /* Centers arrow horizontally or vertically along tooltip on arrow's center */
37
+ --arrow-position-centered: calc(50% - --spacing(1.5));
38
+
39
+ @media (width >= theme(--breakpoint-lg)) {
40
+ --grid-gutter: 24px;
41
+ }
42
+
43
+ /* Deprecated colors */
44
+ --color-blue-hover: rgb(0 114 240 / 74.9%);
45
+ --color-red-hover: rgb(228 0 43 / 74.9%);
46
+ --color-ice-700-hover: rgb(118 121 127 / 11.8%);
47
+ --color-white-hover: rgb(255 255 255 / 11.8%);
48
+ --button-secondary-blue-hover: rgb(0 114 240 / 11.8%);
49
+ --button-secondary-red-hover: rgb(228 0 43 / 11.8%);
50
+ }
51
+
52
+ /**
53
+ * Stash Custom Theme
54
+ *
55
+ * Custom theme variables that extend/override Tailwind's defaults.
56
+ * Per Tailwind v4 docs, @import "tailwindcss" must come first for @theme overrides to work.
57
+ * https://tailwindcss.com/docs/theme
58
+ */
59
+ @theme {
60
+ --breakpoint-md: 640px;
61
+ --breakpoint-lg: 961px;
62
+ --breakpoint-xl: 1321px;
63
+
64
+ --font-mono: monospace;
65
+ --font-sans: sofia, sans-serif;
66
+ --font-sofia: sofia, sans-serif; /* @deprecated - use font-sans instead! */
67
+
68
+ --color-white: #fff;
69
+ --color-black: #000;
70
+ --color-transparent: transparent;
71
+ --color-inherit: inherit;
72
+ --color-current: currentcolor;
73
+
74
+ --color-purple-900: #06040F;
75
+ --color-purple-800: #0C091E;
76
+ --color-purple-700: #120D2D;
77
+ --color-purple-600: #18123C;
78
+ --color-purple-500: #1E164B;
79
+ --color-purple-400: #4B456F;
80
+ --color-purple-300: #787393;
81
+ --color-purple-200: #A5A2B7;
82
+ --color-purple-100: #D2D0DB;
83
+
84
+ --color-royal-900: #0A0C24;
85
+ --color-royal-800: #131747;
86
+ --color-royal-700: #1D236B;
87
+ --color-royal-600: #262E8E;
88
+ --color-royal-500: #303AB2;
89
+ --color-royal-400: #5961C1;
90
+ --color-royal-300: #8389D1;
91
+ --color-royal-200: #ACB0E0;
92
+ --color-royal-100: #D6D8F0;
93
+
94
+ --color-blue-900: #001730;
95
+ --color-blue-800: #002E60;
96
+ --color-blue-700: #004490;
97
+ --color-blue-600: #005BC0;
98
+ --color-blue-500: #0072F0;
99
+ --color-blue-400: #338EF3;
100
+ --color-blue-300: #66AAF6;
101
+ --color-blue-200: #99C7F9;
102
+ --color-blue-100: #CCE3FC;
103
+
104
+ --color-teal-900: #002528;
105
+ --color-teal-800: #004B50;
106
+ --color-teal-700: #017078;
107
+ --color-teal-600: #0196A0;
108
+ --color-teal-500: #01BBC8;
109
+ --color-teal-400: #34C9D3;
110
+ --color-teal-300: #67D6DE;
111
+ --color-teal-200: #99E4E9;
112
+ --color-teal-100: #CCF1F4;
113
+
114
+ --color-green-900: #062313;
115
+ --color-green-800: #0C4627;
116
+ --color-green-700: #11683A;
117
+ --color-green-600: #178B4E;
118
+ --color-green-500: #1DAE61;
119
+ --color-green-400: #4ABE81;
120
+ --color-green-300: #77CEA0;
121
+ --color-green-200: #A5DFC0;
122
+ --color-green-100: #D2EFDF;
123
+
124
+ --color-seafoam-900: #0C2C26;
125
+ --color-seafoam-800: #18584D;
126
+ --color-seafoam-700: #248373;
127
+ --color-seafoam-600: #30AF9A;
128
+ --color-seafoam-500: #3CDBC0;
129
+ --color-seafoam-400: #63E2CD;
130
+ --color-seafoam-300: #8AE9D9;
131
+ --color-seafoam-200: #B1F1E6;
132
+ --color-seafoam-100: #D8F8F2;
133
+
134
+ --color-yellow-900: #332A00;
135
+ --color-yellow-800: #650;
136
+ --color-yellow-700: #997F00;
137
+ --color-yellow-600: #CA0;
138
+ --color-yellow-500: #FFD400;
139
+ --color-yellow-400: #FD3;
140
+ --color-yellow-300: #FFE566;
141
+ --color-yellow-200: #FE9;
142
+ --color-yellow-100: #FFF6CC;
143
+
144
+ --color-orange-900: #331E07;
145
+ --color-orange-800: #663B0F;
146
+ --color-orange-700: #995916;
147
+ --color-orange-600: #CC761E;
148
+ --color-orange-500: #FF9425;
149
+ --color-orange-400: #FFA951;
150
+ --color-orange-300: #FFBF7C;
151
+ --color-orange-200: #FFD4A8;
152
+ --color-orange-100: #FFEAD3;
153
+
154
+ --color-red-900: #2E0009;
155
+ --color-red-800: #5B0011;
156
+ --color-red-700: #89001A;
157
+ --color-red-600: #B60022;
158
+ --color-red-500: #E4002B;
159
+ --color-red-400: #E93355;
160
+ --color-red-300: #EF6680;
161
+ --color-red-200: #F499AA;
162
+ --color-red-100: #FACCD5;
163
+
164
+ --color-ice-900: #27282A;
165
+ --color-ice-800: #4F5055;
166
+ --color-ice-700: #76797F;
167
+ --color-ice-600: #9EA1AA;
168
+ --color-ice-500: #C5C9D4;
169
+ --color-ice-400: #D1D4DD;
170
+ --color-ice-300: #DCDFE5;
171
+ --color-ice-200: #E8E9EE;
172
+ --color-ice-100: #F3F4F6;
173
+
174
+ --background-image-scroll-shadow: linear-gradient(0deg, rgb(197 201 212 / 35%), rgb(38 38 38 / 0%));
175
+
176
+ --spacing-gutter: var(--grid-gutter);
177
+
178
+ /* Modules or Images if necessary (Previously Shadow Low) */
179
+ --shadow-sm: 0px 2px 2px 0px rgb(38 38 38 / 5%), 0px 2px 6px 0px rgb(38 38 38 / 10%);
180
+
181
+ /* Cards Scroll Lock Modules like Global Nav or the Bulk Select Mobile Pattern */
182
+ --shadow-md: 0px 3px 3px 1px rgb(38 38 38 / 5%), 0px 3px 12px 1px rgb(38 38 38 / 10%);
183
+
184
+ /* TBD */
185
+ --shadow-lg: 0px 6px 6px 0px rgb(38 38 38 / 5%), 0px 6px 18px 2px rgb(38 38 38 / 10%), 0px 6px 18px 2px rgb(38 38 38 / 15%);
186
+
187
+ /* Floating UIs like the Zendesk Help center */
188
+ --shadow-xl: 0px 12px 12px 0px rgb(38 38 38 / 5%), 0px 12px 12px 2px rgb(38 38 38 / 10%), 0px 12px 24px 2px rgb(38 38 38 / 15%);
189
+
190
+ /* Dropdowns, Selects, Menus */
191
+ --shadow-2xl: 0px 18px 18px 4px rgb(38 38 38 / 5%), 0px 18px 18px 4px rgb(38 38 38 / 10%), 0px 18px 30px 0px rgb(38 38 38 / 15%);
192
+
193
+ /* Dialogs, Modals and any other Overlay types (Previously Shadow High) */
194
+ --shadow-3xl: 0px 24px 24px 0px rgb(38 38 38 / 5%), 0px 24px 24px 8px rgb(38 38 38 / 10%), 0px 24px 48px 8px rgb(38 38 38 / 15%);
195
+
196
+ --height-input: 2.25rem; /* 36px */
197
+ --height-logo: 1.375rem; /* 22px */
198
+ --height-topbar: 3.5rem; /* 56px */
199
+ --height-chip: 1.375rem; /* 22px */
200
+
201
+ --max-height-select-menu: 18.75rem; /* 300px - sharable with dropdown, date, etc. */
202
+
203
+ --min-width-input: 9rem; /* 144px */
204
+
205
+ --max-width-field: 18rem; /* 288px - standard width used for form field elements */
206
+ --max-width-initial: initial;
207
+ --max-width-container: 87.5rem; /* 1400px - max width used for page content */
208
+
209
+ --width-container: 87.5rem; /* 1400px */
210
+ --width-inline-edit: 8.75rem; /* 140px - standard width used for ll-inline-edit elements */
211
+ --width-inline-edit-small: 5.6rem; /* 90px - standard width used for smaller ll-inline-edit elements */
212
+ --width-sidebar: 17.5rem; /* 280px */
213
+ --width-select-menu: 5rem; /* 80px */
214
+
215
+ --z-index-n10: -10;
216
+ --z-index-n20: -20;
217
+ --z-index-n30: -30;
218
+ --z-index-behind: -1;
219
+ --z-index-content: 100; /* general content on the page */
220
+ --z-index-control: 200; /* for UI controls, widgets, buttons, etc. These are given one level higher priority */
221
+ --z-index-page: 300; /* applies to page-level blocks, ie. site-header, side-nav, etc */
222
+ --z-index-screen: 400; /* covers all "standard" things visible on the screen: page-level blocks, UI/control things, general content */
223
+ --z-index-modal: 1000; /* covers all things except dialogs, including other elements promoted along the z-axis. */
224
+ --z-index-dialog: 1001; /* covers all things, including other elements promoted along the z-axis. */
225
+
226
+ --animate-grow: grow 1s;
227
+ --animate-shake: shake 1s ease 0s 1 normal none running;
228
+ --animate-fade-in: fade-in 0.3s ease-out;
229
+ --animate-fade-out: fade-out 0.3s ease-in;
230
+
231
+ @keyframes grow {
232
+ 0%, 100% {
233
+ transform: scale3d(1, 1, 1);
234
+ }
235
+
236
+ 50% {
237
+ transform: scale3d(1.25, 1.25, 1.25);
238
+ }
239
+ }
240
+
241
+ @keyframes shake {
242
+ 0%, 100% {
243
+ transform: translate3d(0, 0, 0);
244
+ }
245
+
246
+ 10%, 30%, 50%, 70%, 90% {
247
+ transform: translate3d(-10px, 0, 0);
248
+ }
249
+
250
+ 20%, 40%, 60%, 80% {
251
+ transform: translate3d(10px, 0, 0);
252
+ }
253
+ }
254
+
255
+ @keyframes fade-in {
256
+ 0% {
257
+ opacity: 0;
258
+ }
259
+
260
+ 100% {
261
+ opacity: 1;
262
+ }
263
+ }
264
+
265
+ @keyframes fade-out {
266
+ 0% {
267
+ opacity: 1;
268
+ }
269
+
270
+ 100% {
271
+ opacity: 0;
272
+ }
273
+ }
274
+
275
+ --ease-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1);
276
+ --ease-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1);
277
+ --ease-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1);
278
+ --ease-in-out: cubic-bezier(0.4, 0, 0.6, 1);
279
+ --ease-fast-in-fast-out: cubic-bezier(0.25, 0.8, 0.25, 1);
280
+ --ease-swing: cubic-bezier(0.25, 0.8, 0.5, 1);
281
+ }
282
+
283
+ @layer components {
284
+ /**
285
+ * ll-grid is a legacy grid class that conflicts with tailwinds out of the box grid class.
286
+ * It's quite hard to replace it with a 1-1 swap, because there's so many default styles included in ll-grid, but it's
287
+ * also used in conjunction with other grid classes. For example:
288
+ * <div class="ll-grid ll-grid-cols-4 md:ll-grid-cols-8 lg:ll-grid-cols-12">
289
+ *
290
+ * In this example, ll-grid has default grid-cols styles, but the dev is overriding those defaults. If we were to
291
+ * replace ll-grid with grid in a simple find/replace, we would HAVE to include
292
+ * `grid-cols-1 gap-x-gutter gap-y-6 md:grid-cols-12` as well, and then in examples like the one above,
293
+ * you'd have weird conflicts and specificity issues.
294
+ *
295
+ * Conclusion: So, for now,
296
+ * - `.ll-grid` & `.grid` will continue to exist in backwards-compat.css as is.
297
+ * - `.grid` will behave as expected and is a simple utility with no baked in defaults.
298
+ * - We're creating a custom .ll-grid class that will have the same styles but won't cause weird issues downstream.
299
+ * In the future we can remove this class OR keep it around if we decide we want to keep a grid utility with
300
+ * some baked in defaults.
301
+ */
302
+ .ll-grid {
303
+ @apply grid grid-cols-1 gap-x-gutter gap-y-6 md:grid-cols-12;
304
+
305
+ --deprecated: "WARNING: Use `grid` instead";
306
+ }
307
+
308
+ /**
309
+ * This is a custom .container class that conflicts with tailwinds out of the box container class.
310
+ * Placed here before tailwind utilities, and specifically not within @layer components, so that it is
311
+ * always included in the output css.
312
+ */
313
+ .container {
314
+ @apply max-w-container px-gutter;
315
+
316
+ margin: 0 auto;
317
+ position: relative;
318
+ width: 100%;
319
+ }
320
+
321
+ /* helpful class to show an emdash when an element like a table cell is empty */
322
+ .show-empty:empty::before {
323
+ content: "—";
324
+ }
325
+ }
326
+
327
+ /**
328
+ * General styles and/or reset css could go here.
329
+ */
330
+
331
+ @layer base {
332
+ html {
333
+ -moz-osx-font-smoothing: grayscale;
334
+ -webkit-font-smoothing: antialiased;
335
+ overflow-x: hidden;
336
+ -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
337
+ text-rendering: optimizelegibility;
338
+ }
339
+
340
+ body {
341
+ @apply leading-normal text-ice-700 bg-ice-100 font-normal text-sm font-sans;
342
+
343
+ min-height: 100vh;
344
+ position: relative;
345
+ }
346
+
347
+ *,
348
+ ::before,
349
+ ::after {
350
+ @apply border-0 border-solid border-ice-500;
351
+
352
+ background-repeat: no-repeat;
353
+ box-sizing: border-box;
354
+ margin: 0;
355
+ padding: 0;
356
+ }
357
+
358
+ ::-ms-clear,
359
+ ::-ms-reveal {
360
+ display: none;
361
+ }
362
+
363
+ h1 {
364
+ @apply text-2xl font-medium text-ice-900;
365
+ margin: 0.67em 0;
366
+ }
367
+
368
+ h2 {
369
+ @apply text-xl font-medium text-ice-900;
370
+ }
371
+
372
+ h3 {
373
+ @apply text-base font-medium text-ice-900;
374
+ }
375
+
376
+ h4 {
377
+ @apply text-sm font-medium text-ice-900;
378
+ }
379
+
380
+ h5,
381
+ h6 {
382
+ @apply text-ice-900;
383
+ }
384
+
385
+ .heading-jumbo {
386
+ @apply text-2xl font-medium text-ice-900;
387
+ }
388
+
389
+ @media (width >= theme(--breakpoint-md)) {
390
+ .heading-jumbo {
391
+ font-size: var(--text-5xl);
392
+ }
393
+ }
394
+
395
+ p {
396
+ margin-bottom: 0.875rem;
397
+ }
398
+
399
+ small {
400
+ @apply text-xs font-normal;
401
+ }
402
+
403
+ address {
404
+ font-style: normal;
405
+ line-height: --spacing(6);
406
+ white-space: pre-line;
407
+ }
408
+
409
+ /**
410
+ * 1. Add the correct box sizing in Firefox.
411
+ * 2. Show the overflow in Edge and IE.
412
+ */
413
+ hr {
414
+ box-sizing: content-box; /* 1 */
415
+ height: 0; /* 1 */
416
+ overflow: visible; /* 2 */
417
+ }
418
+
419
+ /**
420
+ * 1. Correct the inheritance and scaling of font size in all browsers.
421
+ * 2. Correct the odd `em` font sizing in all browsers.
422
+ */
423
+ pre,
424
+ code,
425
+ kbd,
426
+ samp {
427
+ font-family: monospace; /* 1 */
428
+ font-size: 1em; /* 2 */
429
+ }
430
+
431
+ /**
432
+ * Remove the gray background on active links in IE 10.
433
+ *
434
+ * Add LeafLink's base styles to fix issues on localhost
435
+ */
436
+ a, .link {
437
+ @apply text-blue-500;
438
+
439
+ background-color: transparent;
440
+ font-weight: 500;
441
+ text-decoration: none;
442
+
443
+ &:hover {
444
+ text-decoration: underline;
445
+ }
446
+
447
+ /* When users right click on a link to view it in a new tab, a noticeable focus state helps them
448
+ see which link they were interacting with so that they can continue where they left off. */
449
+ &:focus {
450
+ text-decoration: underline;
451
+ }
452
+ }
453
+
454
+ /**
455
+ * 1. Remove the bottom border in Chrome 57-
456
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
457
+ */
458
+ abbr[title] {
459
+ border-bottom: none; /* 1 */
460
+ text-decoration: underline; /* 2 */
461
+ text-decoration: underline dotted; /* 2 */
462
+ }
463
+
464
+ /**
465
+ * Add the correct font weight in Chrome, Edge, and Safari.
466
+ */
467
+ b,
468
+ strong {
469
+ font-weight: bolder;
470
+ }
471
+
472
+ /**
473
+ * Prevent `sub` and `sup` elements from affecting the line height in
474
+ * all browsers.
475
+ */
476
+
477
+ sub,
478
+ sup {
479
+ font-size: 75%;
480
+ line-height: 0;
481
+ position: relative;
482
+ vertical-align: baseline;
483
+ }
484
+
485
+ sub {
486
+ bottom: -0.25em;
487
+ }
488
+
489
+ sup {
490
+ top: -0.5em;
491
+ }
492
+
493
+ /**
494
+ * 1. Undo the `border-style: none` from above so that our `border-{width}`
495
+ * utilities have the expected effect. It is unnecessary since border-width
496
+ * is 0 on all elements.
497
+ *
498
+ * 2. This helps to avoid unexpected alignment issues that you often run into
499
+ * using the browser default of `display: inline`.
500
+ */
501
+ img {
502
+ border-style: solid; /* 1 */
503
+ display: block; /* 2 */
504
+ }
505
+
506
+ /**
507
+ * 1. Change the font styles in all browsers.
508
+ * 2. Remove the margin in Firefox and Safari.
509
+ */
510
+ button,
511
+ input,
512
+ optgroup,
513
+ select,
514
+ textarea {
515
+ background-color: transparent;
516
+ color: inherit;
517
+ font-family: inherit; /* 1 */
518
+ font-size: 100%; /* 1 */
519
+ line-height: 1.15; /* 1 */
520
+ margin: 0; /* 2 */
521
+ }
522
+
523
+ button {
524
+ display: inline-block;
525
+ font-size: 0.875rem;
526
+ vertical-align: middle;
527
+ }
528
+
529
+ /**
530
+ * Show the overflow in IE.
531
+ * 1. Show the overflow in Edge.
532
+ */
533
+ button,
534
+ input { /* 1 */
535
+ overflow: visible;
536
+ }
537
+
538
+ /**
539
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
540
+ * 1. Remove the inheritance of text transform in Firefox.
541
+ */
542
+ button,
543
+ select { /* 1 */
544
+ text-transform: none;
545
+ }
546
+
547
+ /**
548
+ * Correct the inability to style clickable types in iOS and Safari.
549
+ */
550
+ button,
551
+ [type="button"],
552
+ [type="reset"],
553
+ [type="submit"] {
554
+ appearance: auto;
555
+ cursor: pointer;
556
+ }
557
+
558
+ /**
559
+ * Remove the inner border and padding in Firefox.
560
+ */
561
+ button::-moz-focus-inner,
562
+ [type="button"]::-moz-focus-inner,
563
+ [type="reset"]::-moz-focus-inner,
564
+ [type="submit"]::-moz-focus-inner {
565
+ border-style: none;
566
+ padding: 0;
567
+ }
568
+
569
+ /**
570
+ * Restore the focus styles unset by the previous rule.
571
+ */
572
+ button:-moz-focusring,
573
+ [type="button"]:-moz-focusring,
574
+ [type="reset"]:-moz-focusring,
575
+ [type="submit"]:-moz-focusring {
576
+ outline: 1px dotted ButtonText;
577
+ }
578
+
579
+ /**
580
+ * Correct the padding in Firefox.
581
+ */
582
+ fieldset {
583
+ padding: 0.35em 0.75em 0.625em;
584
+ }
585
+
586
+ /**
587
+ * 1. Correct the text wrapping in Edge and IE.
588
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
589
+ * 3. Remove the padding so developers are not caught out when they zero out
590
+ * `fieldset` elements in all browsers.
591
+ */
592
+ legend {
593
+ box-sizing: border-box; /* 1 */
594
+ color: inherit; /* 2 */
595
+ display: table; /* 1 */
596
+ max-width: 100%; /* 1 */
597
+ padding: 0; /* 3 */
598
+ white-space: normal; /* 1 */
599
+ }
600
+
601
+ /**
602
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
603
+ */
604
+ progress {
605
+ vertical-align: baseline;
606
+ }
607
+
608
+ /**
609
+ * 1. Add the correct box sizing in IE 10.
610
+ * 2. Remove the padding in IE 10.
611
+ */
612
+ [type="checkbox"],
613
+ [type="radio"] {
614
+ box-sizing: border-box; /* 1 */
615
+ padding: 0; /* 2 */
616
+ }
617
+
618
+ /**
619
+ * Correct the cursor style of increment and decrement buttons in Chrome.
620
+ */
621
+ [type="number"]::-webkit-inner-spin-button,
622
+ [type="number"]::-webkit-outer-spin-button {
623
+ height: auto;
624
+ }
625
+
626
+ /**
627
+ * 1. Correct the odd appearance in Chrome and Safari.
628
+ * 2. Correct the outline style in Safari.
629
+ */
630
+ [type="search"] {
631
+ appearance: textfield; /* 1 */
632
+ outline-offset: -2px; /* 2 */
633
+ }
634
+
635
+ /**
636
+ * Remove the inner padding in Chrome and Safari on macOS.
637
+ */
638
+ [type="search"]::-webkit-search-decoration {
639
+ appearance: none;
640
+ }
641
+
642
+ /**
643
+ * 1. Correct the inability to style clickable types in iOS and Safari.
644
+ * 2. Change font properties to `inherit` in Safari.
645
+ */
646
+ ::-webkit-file-upload-button {
647
+ appearance: auto; /* 1 */
648
+ font: inherit; /* 2 */
649
+ }
650
+
651
+ /**
652
+ * Add the correct display in all browsers.
653
+ */
654
+
655
+ details {
656
+ display: block;
657
+ }
658
+
659
+ summary {
660
+ display: list-item;
661
+ }
662
+
663
+ template {
664
+ display: none;
665
+ }
666
+
667
+ ul,
668
+ ol {
669
+ list-style-type: none;
670
+ margin: 0;
671
+ padding: 0;
672
+
673
+ &.bullets {
674
+ list-style-type: disc;
675
+ padding-left: --spacing(9);
676
+
677
+ li {
678
+ margin-bottom: --spacing(3);
679
+ }
680
+ }
681
+ }
682
+
683
+ table {
684
+ border-collapse: collapse;
685
+ border-spacing: 0;
686
+ max-width: 100%;
687
+ width: 100%;
688
+
689
+ td,
690
+ th {
691
+ border-top: 1px solid var(--color-ice-500);
692
+ padding: 0.766rem;
693
+ }
694
+
695
+ thead {
696
+ td,
697
+ th {
698
+ background-color: var(--color-ice-200);
699
+ border-bottom: 2px solid var(--color-ice-500);
700
+ border-top: none;
701
+ color: var(--color-ice-900);
702
+ font-weight: 500;
703
+ text-align: left;
704
+ user-select: none;
705
+ white-space: nowrap;
706
+ }
707
+ }
708
+
709
+ tbody {
710
+ td {
711
+ font-weight: 400;
712
+ }
713
+ }
714
+
715
+ tfoot {
716
+ tr {
717
+ td {
718
+ border: none;
719
+ }
720
+ }
721
+ }
722
+ }
723
+
724
+ /**
725
+ * Legacy button-grid class.
726
+ *
727
+ * Todo: Create ButtonGrid component with styles below and remove button grid styles from Button.vue
728
+ * https://leaflink.atlassian.net/browse/STASH-230
729
+ */
730
+ .button-grid {
731
+ display: flex;
732
+ grid-column-end: -1 !important;
733
+
734
+ > .button {
735
+ width: 50%;
736
+ }
737
+
738
+ > .button + .button {
739
+ margin-left: --spacing(6);
740
+ }
741
+
742
+ @media (width >= theme(--breakpoint-md)) {
743
+ display: inline-flex;
744
+
745
+ > .button {
746
+ width: auto;
747
+ }
748
+ }
749
+ }
750
+
751
+ .tooltip {
752
+ --offset: 0;
753
+
754
+ background: var(--color-ice-900);
755
+ border-radius: var(--radius-sm);
756
+ box-shadow: 0 0 #0000, 0 0 #0000, 0 2px 2px 0 rgb(38 38 38 / 5%), 0 2px 6px 0 rgb(38 38 38 / 10%);
757
+ color: var(--color-white);
758
+ font-size: 0.75rem;
759
+ line-height: calc(16 / 12);
760
+ opacity: 0;
761
+ padding: --spacing(3);
762
+ pointer-events: none; /* Tooltips should disappear once the user hovers away */
763
+ position: absolute;
764
+ text-align: center;
765
+ transition: opacity 150ms var(--ease-swing), visibility 150ms var(--ease-swing);
766
+ visibility: hidden;
767
+ white-space: normal;
768
+ width: 148px;
769
+
770
+ &::after {
771
+ background-color: var(--color-ice-900);
772
+ border-radius: 0 2px 0 0;
773
+ clip-path: polygon(100% 0%, 100% 100%, 0% 0%);
774
+ content: '';
775
+ display: inline-block;
776
+ height: 12px;
777
+ position: absolute;
778
+ top: calc(-1 * --spacing(1.5));
779
+ transform: rotate(135deg);
780
+ z-index: var(--z-index-behind);
781
+ width: 12px;
782
+ }
783
+ }
784
+
785
+ .tooltip--bottom,
786
+ .tooltip--top {
787
+ left: calc(50% + calc(var(--offset) * 1px));
788
+ transform: translateX(-50%);
789
+
790
+ &::after {
791
+ left: calc(var(--arrow-position-centered) + calc(var(--offset) * -1px));
792
+ }
793
+ }
794
+
795
+ .tooltip--bottom {
796
+ top: var(--tooltip-position);
797
+
798
+ &::after {
799
+ transform: rotate(-45deg);
800
+ }
801
+ }
802
+
803
+ .tooltip--top {
804
+ bottom: var(--tooltip-position);
805
+
806
+ &::after {
807
+ top: calc(100% - --spacing(1.5));
808
+ }
809
+ }
810
+
811
+ .tooltip--left,
812
+ .tooltip--right {
813
+ top: 50%;
814
+ transform: translateY(-50%);
815
+
816
+ &::after {
817
+ top: var(--arrow-position-centered);
818
+ }
819
+ }
820
+
821
+ .tooltip--left {
822
+ right: var(--tooltip-position);
823
+
824
+ &::after {
825
+ left: calc(100% - --spacing(1.5));
826
+ transform: rotate(45deg);
827
+ }
828
+ }
829
+
830
+ .tooltip--right {
831
+ left: var(--tooltip-position);
832
+
833
+ &::after {
834
+ left: calc(-1 * --spacing(1.5));
835
+ transform: rotate(-135deg);
836
+ }
837
+ }
838
+
839
+ .tooltip-toggle {
840
+ display: inline-block;
841
+ position: relative;
842
+ z-index: 0;
843
+
844
+ &:hover {
845
+ outline: none;
846
+ z-index: var(--z-index-modal);
847
+
848
+ .tooltip {
849
+ opacity: 0.95;
850
+ visibility: visible;
851
+ }
852
+ }
853
+ }
854
+
855
+ /**
856
+ * Animations
857
+ *
858
+ * Todo: These should be moved to tailwind as custom animations.
859
+ */
860
+
861
+ @keyframes shake {
862
+ 0%,
863
+ 100% {
864
+ transform: translate3d(0, 0, 0);
865
+ }
866
+
867
+ 10%,
868
+ 30%,
869
+ 50%,
870
+ 70%,
871
+ 90% {
872
+ transform: translate3d(-10px, 0, 0);
873
+ }
874
+
875
+ 20%,
876
+ 40%,
877
+ 60%,
878
+ 80% {
879
+ transform: translate3d(10px, 0, 0);
880
+ }
881
+ }
882
+
883
+ .fx-shake {
884
+ animation: 2s shake 1;
885
+ }
886
+
887
+
888
+ @keyframes pulse {
889
+ 0% {
890
+ transform: scale3d(1, 1, 1);
891
+ }
892
+
893
+ 50% {
894
+ transform: scale3d(1.25, 1.25, 1.25);
895
+ }
896
+
897
+ 100% {
898
+ transform: scale3d(1, 1, 1);
899
+ }
900
+ }
901
+
902
+ .fx-pulse {
903
+ animation: 1s pulse;
904
+ }
905
+
906
+ @keyframes spin-loading {
907
+ 0% {
908
+ transform: rotate(0deg);
909
+ }
910
+
911
+ 65% {
912
+ transform: rotate(720deg);
913
+ }
914
+
915
+ 100% {
916
+ transform: rotate(720deg);
917
+ }
918
+ }
919
+
920
+ .fx-spin {
921
+ animation-duration: 1.5s;
922
+ animation-iteration-count: infinite;
923
+ animation-name: spin-loading;
924
+ animation-timing-function: ease-in-out;
925
+ }
926
+
927
+ @keyframes flash {
928
+ 0% {
929
+ opacity: 1;
930
+ }
931
+
932
+ 50% {
933
+ opacity: 0;
934
+ }
935
+
936
+ 100% {
937
+ opacity: 1;
938
+ }
939
+ }
940
+
941
+ .fx-flash {
942
+ animation: 0.5s flash;
943
+ }
944
+
945
+ /**
946
+ * Transitions
947
+ *
948
+ * Todo: These should be moved to tailwind as custom transitions.
949
+ * See: https://tailwindcss.com/docs/transition-property
950
+ */
951
+
952
+ .scale-enter-active,
953
+ .scale-leave-active {
954
+ transition: 300ms var(--ease-in-out);
955
+ }
956
+
957
+ .scale-enter-from,
958
+ .scale-leave-from,
959
+ .scale-leave-to {
960
+ opacity: 0;
961
+ transform: scale(0);
962
+ }
963
+
964
+
965
+ .slide-y-enter-active,
966
+ .slide-y-leave-active {
967
+ transition: 150ms var(--ease-swing);
968
+ }
969
+
970
+ .slide-y-enter-from,
971
+ .slide-y-leave-to {
972
+ opacity: 0;
973
+ transform: translateY(-0.875rem);
974
+ }
975
+
976
+ .slide-x-enter-active,
977
+ .slide-x-leave-active {
978
+ transition: 150ms var(--ease-swing);
979
+ }
980
+
981
+ .slide-x-enter-from,
982
+ .slide-x-leave-to {
983
+ opacity: 0;
984
+ transform: translateX(-0.875rem);
985
+ }
986
+
987
+ .fade-enter-active,
988
+ .fade-leave-active {
989
+ transition: opacity 150ms var(--ease-swing);
990
+ }
991
+
992
+ .fade-enter-from,
993
+ .fade-leave-to {
994
+ opacity: 0;
995
+ }
996
+
997
+ .fade-enter-to {
998
+ opacity: 1;
999
+ }
1000
+
1001
+ .expand-enter-active,
1002
+ .expand-leave-active {
1003
+ transition:
1004
+ height 300ms var(--ease-in-out),
1005
+ opacity 500ms 150ms,
1006
+ transform 500ms 150ms;
1007
+ }
1008
+
1009
+ .expand-enter-from,
1010
+ .expand-leave-to {
1011
+ height: 0;
1012
+ opacity: 0;
1013
+ transform: translateY(-0.875rem);
1014
+ transition-delay: 0s;
1015
+ }
1016
+
1017
+ .expand-leave-from,
1018
+ .expand-enter-to {
1019
+ height: auto;
1020
+ opacity: 1;
1021
+ transform: translateY(0);
1022
+ }
1023
+
1024
+ .move-move {
1025
+ transition: transform 150ms var(--ease-swing);
1026
+ }
1027
+
1028
+ #launcher {
1029
+ filter: drop-shadow(4px 18px 18px rgb(38 38 38 / 5%)) drop-shadow(4px 18px 18px rgb(38 38 38 / 10%))
1030
+ drop-shadow(4px 18px 30px rgb(38 38 38 / 15%));
1031
+ }
1032
+ }
1033
+