@allxsmith/bestax-bulma 5.26.6 → 5.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/dist/bestax.css +1 -1
  2. package/dist/bestax.css.map +1 -1
  3. package/dist/esm/columns/Column.js +48 -0
  4. package/dist/esm/columns/Column.js.map +1 -0
  5. package/dist/esm/columns/Columns.js +53 -0
  6. package/dist/esm/columns/Columns.js.map +1 -0
  7. package/dist/esm/components/Avatar.js +299 -0
  8. package/dist/esm/components/Avatar.js.map +1 -0
  9. package/dist/esm/components/Avatars.js +81 -0
  10. package/dist/esm/components/Avatars.js.map +1 -0
  11. package/dist/esm/components/Badge.js +105 -0
  12. package/dist/esm/components/Badge.js.map +1 -0
  13. package/dist/esm/components/Breadcrumb.js +36 -0
  14. package/dist/esm/components/Breadcrumb.js.map +1 -0
  15. package/dist/esm/components/Card.js +252 -0
  16. package/dist/esm/components/Card.js.map +1 -0
  17. package/dist/esm/components/Carousel.js +351 -0
  18. package/dist/esm/components/Carousel.js.map +1 -0
  19. package/dist/esm/components/Collapse.js +193 -0
  20. package/dist/esm/components/Collapse.js.map +1 -0
  21. package/dist/esm/components/Collapses.js +99 -0
  22. package/dist/esm/components/Collapses.js.map +1 -0
  23. package/dist/esm/components/Dialog.js +230 -0
  24. package/dist/esm/components/Dialog.js.map +1 -0
  25. package/dist/esm/components/Dropdown.js +362 -0
  26. package/dist/esm/components/Dropdown.js.map +1 -0
  27. package/dist/esm/components/Loading.js +87 -0
  28. package/dist/esm/components/Loading.js.map +1 -0
  29. package/dist/esm/components/Menu.js +117 -0
  30. package/dist/esm/components/Menu.js.map +1 -0
  31. package/dist/esm/components/Message.js +56 -0
  32. package/dist/esm/components/Message.js.map +1 -0
  33. package/dist/esm/components/Modal.js +354 -0
  34. package/dist/esm/components/Modal.js.map +1 -0
  35. package/dist/esm/components/Navbar.js +287 -0
  36. package/dist/esm/components/Navbar.js.map +1 -0
  37. package/dist/esm/components/Pagination.js +191 -0
  38. package/dist/esm/components/Pagination.js.map +1 -0
  39. package/dist/esm/components/Panel.js +100 -0
  40. package/dist/esm/components/Panel.js.map +1 -0
  41. package/dist/esm/components/Popover.js +298 -0
  42. package/dist/esm/components/Popover.js.map +1 -0
  43. package/dist/esm/components/Reveal.js +157 -0
  44. package/dist/esm/components/Reveal.js.map +1 -0
  45. package/dist/esm/components/Sidebar.js +209 -0
  46. package/dist/esm/components/Sidebar.js.map +1 -0
  47. package/dist/esm/components/Steps.js +128 -0
  48. package/dist/esm/components/Steps.js.map +1 -0
  49. package/dist/esm/components/Tabs.js +335 -0
  50. package/dist/esm/components/Tabs.js.map +1 -0
  51. package/dist/esm/components/Toast.js +322 -0
  52. package/dist/esm/components/Toast.js.map +1 -0
  53. package/dist/esm/components/Tooltip.js +202 -0
  54. package/dist/esm/components/Tooltip.js.map +1 -0
  55. package/dist/esm/components/collapsesContext.js +12 -0
  56. package/dist/esm/components/collapsesContext.js.map +1 -0
  57. package/dist/esm/elements/Block.js +29 -0
  58. package/dist/esm/elements/Block.js.map +1 -0
  59. package/dist/esm/elements/Box.js +32 -0
  60. package/dist/esm/elements/Box.js.map +1 -0
  61. package/dist/esm/elements/Button.js +139 -0
  62. package/dist/esm/elements/Button.js.map +1 -0
  63. package/dist/esm/elements/Buttons.js +42 -0
  64. package/dist/esm/elements/Buttons.js.map +1 -0
  65. package/dist/esm/elements/Code.js +25 -0
  66. package/dist/esm/elements/Code.js.map +1 -0
  67. package/dist/esm/elements/Content.js +33 -0
  68. package/dist/esm/elements/Content.js.map +1 -0
  69. package/dist/esm/elements/Delete.js +35 -0
  70. package/dist/esm/elements/Delete.js.map +1 -0
  71. package/dist/esm/elements/Divider.js +27 -0
  72. package/dist/esm/elements/Divider.js.map +1 -0
  73. package/dist/esm/elements/Emphasis.js +25 -0
  74. package/dist/esm/elements/Emphasis.js.map +1 -0
  75. package/dist/esm/elements/Figure.js +58 -0
  76. package/dist/esm/elements/Figure.js.map +1 -0
  77. package/dist/esm/elements/Icon.js +256 -0
  78. package/dist/esm/elements/Icon.js.map +1 -0
  79. package/dist/esm/elements/IconText.js +36 -0
  80. package/dist/esm/elements/IconText.js.map +1 -0
  81. package/dist/esm/elements/Image.js +46 -0
  82. package/dist/esm/elements/Image.js.map +1 -0
  83. package/dist/esm/elements/Link.js +36 -0
  84. package/dist/esm/elements/Link.js.map +1 -0
  85. package/dist/esm/elements/LinkButton.js +37 -0
  86. package/dist/esm/elements/LinkButton.js.map +1 -0
  87. package/dist/esm/elements/ListItem.js +28 -0
  88. package/dist/esm/elements/ListItem.js.map +1 -0
  89. package/dist/esm/elements/Loader.js +37 -0
  90. package/dist/esm/elements/Loader.js.map +1 -0
  91. package/dist/esm/elements/Notification.js +316 -0
  92. package/dist/esm/elements/Notification.js.map +1 -0
  93. package/dist/esm/elements/OrderedList.js +31 -0
  94. package/dist/esm/elements/OrderedList.js.map +1 -0
  95. package/dist/esm/elements/Paragraph.js +28 -0
  96. package/dist/esm/elements/Paragraph.js.map +1 -0
  97. package/dist/esm/elements/Pre.js +25 -0
  98. package/dist/esm/elements/Pre.js.map +1 -0
  99. package/dist/esm/elements/Progress.js +33 -0
  100. package/dist/esm/elements/Progress.js.map +1 -0
  101. package/dist/esm/elements/Skeleton.js +30 -0
  102. package/dist/esm/elements/Skeleton.js.map +1 -0
  103. package/dist/esm/elements/Span.js +28 -0
  104. package/dist/esm/elements/Span.js.map +1 -0
  105. package/dist/esm/elements/Strong.js +25 -0
  106. package/dist/esm/elements/Strong.js.map +1 -0
  107. package/dist/esm/elements/SubTitle.js +51 -0
  108. package/dist/esm/elements/SubTitle.js.map +1 -0
  109. package/dist/esm/elements/Table.js +51 -0
  110. package/dist/esm/elements/Table.js.map +1 -0
  111. package/dist/esm/elements/Tag.js +49 -0
  112. package/dist/esm/elements/Tag.js.map +1 -0
  113. package/dist/esm/elements/Tags.js +34 -0
  114. package/dist/esm/elements/Tags.js.map +1 -0
  115. package/dist/esm/elements/Tbody.js +26 -0
  116. package/dist/esm/elements/Tbody.js.map +1 -0
  117. package/dist/esm/elements/Td.js +61 -0
  118. package/dist/esm/elements/Td.js.map +1 -0
  119. package/dist/esm/elements/Tfoot.js +26 -0
  120. package/dist/esm/elements/Tfoot.js.map +1 -0
  121. package/dist/esm/elements/Th.js +34 -0
  122. package/dist/esm/elements/Th.js.map +1 -0
  123. package/dist/esm/elements/Thead.js +26 -0
  124. package/dist/esm/elements/Thead.js.map +1 -0
  125. package/dist/esm/elements/Title.js +44 -0
  126. package/dist/esm/elements/Title.js.map +1 -0
  127. package/dist/esm/elements/Tr.js +31 -0
  128. package/dist/esm/elements/Tr.js.map +1 -0
  129. package/dist/esm/elements/UnorderedList.js +31 -0
  130. package/dist/esm/elements/UnorderedList.js.map +1 -0
  131. package/dist/esm/elements/iconProps.js +49 -0
  132. package/dist/esm/elements/iconProps.js.map +1 -0
  133. package/dist/esm/form/Autocomplete.js +279 -0
  134. package/dist/esm/form/Autocomplete.js.map +1 -0
  135. package/dist/esm/form/Checkbox.js +111 -0
  136. package/dist/esm/form/Checkbox.js.map +1 -0
  137. package/dist/esm/form/Checkboxes.js +89 -0
  138. package/dist/esm/form/Checkboxes.js.map +1 -0
  139. package/dist/esm/form/Control.js +79 -0
  140. package/dist/esm/form/Control.js.map +1 -0
  141. package/dist/esm/form/DateInput.js +87 -0
  142. package/dist/esm/form/DateInput.js.map +1 -0
  143. package/dist/esm/form/DateInputBase.js +263 -0
  144. package/dist/esm/form/DateInputBase.js.map +1 -0
  145. package/dist/esm/form/DateRangeInput.js +76 -0
  146. package/dist/esm/form/DateRangeInput.js.map +1 -0
  147. package/dist/esm/form/DateRangeInputBase.js +301 -0
  148. package/dist/esm/form/DateRangeInputBase.js.map +1 -0
  149. package/dist/esm/form/DateTimeInput.js +87 -0
  150. package/dist/esm/form/DateTimeInput.js.map +1 -0
  151. package/dist/esm/form/DateTimeInputBase.js +333 -0
  152. package/dist/esm/form/DateTimeInputBase.js.map +1 -0
  153. package/dist/esm/form/Field.js +153 -0
  154. package/dist/esm/form/Field.js.map +1 -0
  155. package/dist/esm/form/File.js +109 -0
  156. package/dist/esm/form/File.js.map +1 -0
  157. package/dist/esm/form/FormContext.js +170 -0
  158. package/dist/esm/form/FormContext.js.map +1 -0
  159. package/dist/esm/form/Input.js +88 -0
  160. package/dist/esm/form/Input.js.map +1 -0
  161. package/dist/esm/form/InputBase.js +40 -0
  162. package/dist/esm/form/InputBase.js.map +1 -0
  163. package/dist/esm/form/Numberinput.js +199 -0
  164. package/dist/esm/form/Numberinput.js.map +1 -0
  165. package/dist/esm/form/Radio.js +108 -0
  166. package/dist/esm/form/Radio.js.map +1 -0
  167. package/dist/esm/form/Radios.js +91 -0
  168. package/dist/esm/form/Radios.js.map +1 -0
  169. package/dist/esm/form/Rate.js +279 -0
  170. package/dist/esm/form/Rate.js.map +1 -0
  171. package/dist/esm/form/Select.js +81 -0
  172. package/dist/esm/form/Select.js.map +1 -0
  173. package/dist/esm/form/SelectBase.js +54 -0
  174. package/dist/esm/form/SelectBase.js.map +1 -0
  175. package/dist/esm/form/Slider.js +459 -0
  176. package/dist/esm/form/Slider.js.map +1 -0
  177. package/dist/esm/form/Switch.js +96 -0
  178. package/dist/esm/form/Switch.js.map +1 -0
  179. package/dist/esm/form/Taginput.js +352 -0
  180. package/dist/esm/form/Taginput.js.map +1 -0
  181. package/dist/esm/form/TextArea.js +77 -0
  182. package/dist/esm/form/TextArea.js.map +1 -0
  183. package/dist/esm/form/TextAreaBase.js +45 -0
  184. package/dist/esm/form/TextAreaBase.js.map +1 -0
  185. package/dist/esm/form/TimeInput.js +83 -0
  186. package/dist/esm/form/TimeInput.js.map +1 -0
  187. package/dist/esm/form/TimeInputBase.js +246 -0
  188. package/dist/esm/form/TimeInputBase.js.map +1 -0
  189. package/dist/esm/form/_pickerInternals/Calendar.js +760 -0
  190. package/dist/esm/form/_pickerInternals/Calendar.js.map +1 -0
  191. package/dist/esm/form/_pickerInternals/PickerPopover.js +95 -0
  192. package/dist/esm/form/_pickerInternals/PickerPopover.js.map +1 -0
  193. package/dist/esm/form/_pickerInternals/TimeWheels.js +721 -0
  194. package/dist/esm/form/_pickerInternals/TimeWheels.js.map +1 -0
  195. package/dist/esm/form/_pickerInternals/audioTick.js +109 -0
  196. package/dist/esm/form/_pickerInternals/audioTick.js.map +1 -0
  197. package/dist/esm/form/_pickerInternals/dateUtils.js +267 -0
  198. package/dist/esm/form/_pickerInternals/dateUtils.js.map +1 -0
  199. package/dist/esm/form/_pickerInternals/formatters.js +322 -0
  200. package/dist/esm/form/_pickerInternals/formatters.js.map +1 -0
  201. package/dist/esm/form/_pickerInternals/haptics.js +38 -0
  202. package/dist/esm/form/_pickerInternals/haptics.js.map +1 -0
  203. package/dist/esm/form/_pickerInternals/nativeInputSupport.js +25 -0
  204. package/dist/esm/form/_pickerInternals/nativeInputSupport.js.map +1 -0
  205. package/dist/esm/form/_pickerInternals/pickerTypes.js +50 -0
  206. package/dist/esm/form/_pickerInternals/pickerTypes.js.map +1 -0
  207. package/dist/esm/form/_pickerInternals/segmentMap.js +315 -0
  208. package/dist/esm/form/_pickerInternals/segmentMap.js.map +1 -0
  209. package/dist/esm/form/_pickerInternals/useNativeMobilePicker.js +49 -0
  210. package/dist/esm/form/_pickerInternals/useNativeMobilePicker.js.map +1 -0
  211. package/dist/esm/form/_pickerInternals/useSegmentedEntry.js +427 -0
  212. package/dist/esm/form/_pickerInternals/useSegmentedEntry.js.map +1 -0
  213. package/dist/esm/form/controlLoading.js +18 -0
  214. package/dist/esm/form/controlLoading.js.map +1 -0
  215. package/dist/esm/form/useAutoLabelId.js +54 -0
  216. package/dist/esm/form/useAutoLabelId.js.map +1 -0
  217. package/dist/esm/grid/Cell.js +35 -0
  218. package/dist/esm/grid/Cell.js.map +1 -0
  219. package/dist/esm/grid/Grid.js +51 -0
  220. package/dist/esm/grid/Grid.js.map +1 -0
  221. package/dist/esm/helpers/ClientOnly.js +33 -0
  222. package/dist/esm/helpers/ClientOnly.js.map +1 -0
  223. package/dist/esm/helpers/Config.js +60 -0
  224. package/dist/esm/helpers/Config.js.map +1 -0
  225. package/dist/esm/helpers/Theme.js +947 -0
  226. package/dist/esm/helpers/Theme.js.map +1 -0
  227. package/dist/esm/helpers/anchorAttrs.js +72 -0
  228. package/dist/esm/helpers/anchorAttrs.js.map +1 -0
  229. package/dist/esm/helpers/bulmaClassHelpers.js +415 -0
  230. package/dist/esm/helpers/bulmaClassHelpers.js.map +1 -0
  231. package/dist/esm/helpers/buttonType.js +24 -0
  232. package/dist/esm/helpers/buttonType.js.map +1 -0
  233. package/dist/esm/helpers/classNames.js +137 -0
  234. package/dist/esm/helpers/classNames.js.map +1 -0
  235. package/dist/esm/helpers/colorDeprecations.js +50 -0
  236. package/dist/esm/helpers/colorDeprecations.js.map +1 -0
  237. package/dist/esm/helpers/devWarnings.js +27 -0
  238. package/dist/esm/helpers/devWarnings.js.map +1 -0
  239. package/dist/esm/helpers/inertProps.js +27 -0
  240. package/dist/esm/helpers/inertProps.js.map +1 -0
  241. package/dist/esm/helpers/mergeBulmaStyles.js +20 -0
  242. package/dist/esm/helpers/mergeBulmaStyles.js.map +1 -0
  243. package/dist/esm/helpers/polymorphic.js +18 -0
  244. package/dist/esm/helpers/polymorphic.js.map +1 -0
  245. package/dist/esm/helpers/portal.js +76 -0
  246. package/dist/esm/helpers/portal.js.map +1 -0
  247. package/dist/esm/helpers/positionStacks.js +45 -0
  248. package/dist/esm/helpers/positionStacks.js.map +1 -0
  249. package/dist/esm/helpers/scrollLock.js +38 -0
  250. package/dist/esm/helpers/scrollLock.js.map +1 -0
  251. package/dist/esm/helpers/shadowDom.js +71 -0
  252. package/dist/esm/helpers/shadowDom.js.map +1 -0
  253. package/dist/esm/helpers/statusRegion.js +282 -0
  254. package/dist/esm/helpers/statusRegion.js.map +1 -0
  255. package/dist/esm/helpers/useAnchoredPosition.js +86 -0
  256. package/dist/esm/helpers/useAnchoredPosition.js.map +1 -0
  257. package/dist/esm/helpers/useBulmaClasses.js +158 -0
  258. package/dist/esm/helpers/useBulmaClasses.js.map +1 -0
  259. package/dist/esm/helpers/useClientLayoutEffect.js +13 -0
  260. package/dist/esm/helpers/useClientLayoutEffect.js.map +1 -0
  261. package/dist/esm/helpers/useColorClasses.js +84 -0
  262. package/dist/esm/helpers/useColorClasses.js.map +1 -0
  263. package/dist/esm/helpers/useFlexboxClasses.js +92 -0
  264. package/dist/esm/helpers/useFlexboxClasses.js.map +1 -0
  265. package/dist/esm/helpers/useFocusTrap.js +470 -0
  266. package/dist/esm/helpers/useFocusTrap.js.map +1 -0
  267. package/dist/esm/helpers/useIsHydrated.js +31 -0
  268. package/dist/esm/helpers/useIsHydrated.js.map +1 -0
  269. package/dist/esm/helpers/useOtherClasses.js +115 -0
  270. package/dist/esm/helpers/useOtherClasses.js.map +1 -0
  271. package/dist/esm/helpers/useSpacingClasses.js +82 -0
  272. package/dist/esm/helpers/useSpacingClasses.js.map +1 -0
  273. package/dist/esm/helpers/useTypographyClasses.js +93 -0
  274. package/dist/esm/helpers/useTypographyClasses.js.map +1 -0
  275. package/dist/esm/helpers/useVisibilityClasses.js +134 -0
  276. package/dist/esm/helpers/useVisibilityClasses.js.map +1 -0
  277. package/dist/esm/helpers/withSubComponents.js +24 -0
  278. package/dist/esm/helpers/withSubComponents.js.map +1 -0
  279. package/dist/esm/layout/Container.js +48 -0
  280. package/dist/esm/layout/Container.js.map +1 -0
  281. package/dist/esm/layout/Footer.js +33 -0
  282. package/dist/esm/layout/Footer.js.map +1 -0
  283. package/dist/esm/layout/Hero.js +90 -0
  284. package/dist/esm/layout/Hero.js.map +1 -0
  285. package/dist/esm/layout/Level.js +110 -0
  286. package/dist/esm/layout/Level.js.map +1 -0
  287. package/dist/esm/layout/Media.js +86 -0
  288. package/dist/esm/layout/Media.js.map +1 -0
  289. package/dist/esm/layout/Section.js +30 -0
  290. package/dist/esm/layout/Section.js.map +1 -0
  291. package/dist/extras.css +1 -1
  292. package/dist/extras.css.map +1 -1
  293. package/dist/index.cjs +821 -102
  294. package/dist/index.cjs.map +1 -1
  295. package/dist/index.esm.js +115 -16845
  296. package/dist/index.esm.js.map +1 -1
  297. package/dist/types/components/Tabs.d.ts +25 -3
  298. package/dist/types/elements/Icon.d.ts +10 -7
  299. package/dist/types/form/DateInputBase.d.ts +8 -6
  300. package/dist/types/form/DateRangeInput.d.ts +91 -0
  301. package/dist/types/form/DateRangeInputBase.d.ts +172 -0
  302. package/dist/types/form/DateTimeInputBase.d.ts +10 -6
  303. package/dist/types/form/File.d.ts +18 -5
  304. package/dist/types/form/FormContext.d.ts +11 -0
  305. package/dist/types/form/TimeInputBase.d.ts +1 -1
  306. package/dist/types/form/_pickerInternals/PickerPopover.d.ts +1 -0
  307. package/dist/types/form/_pickerInternals/dateUtils.d.ts +7 -0
  308. package/dist/types/form/_pickerInternals/formatters.d.ts +14 -0
  309. package/dist/types/form/_pickerInternals/pickerTypes.d.ts +13 -0
  310. package/dist/types/form/_pickerInternals/useSegmentedEntry.d.ts +12 -3
  311. package/dist/types/index.d.ts +4 -0
  312. package/dist/types-cjs/components/Tabs.d.ts +25 -3
  313. package/dist/types-cjs/elements/Icon.d.ts +10 -7
  314. package/dist/types-cjs/form/DateInputBase.d.ts +8 -6
  315. package/dist/types-cjs/form/DateRangeInput.d.ts +91 -0
  316. package/dist/types-cjs/form/DateRangeInputBase.d.ts +172 -0
  317. package/dist/types-cjs/form/DateTimeInputBase.d.ts +10 -6
  318. package/dist/types-cjs/form/File.d.ts +18 -5
  319. package/dist/types-cjs/form/FormContext.d.ts +11 -0
  320. package/dist/types-cjs/form/TimeInputBase.d.ts +1 -1
  321. package/dist/types-cjs/form/_pickerInternals/PickerPopover.d.ts +1 -0
  322. package/dist/types-cjs/form/_pickerInternals/dateUtils.d.ts +7 -0
  323. package/dist/types-cjs/form/_pickerInternals/formatters.d.ts +14 -0
  324. package/dist/types-cjs/form/_pickerInternals/pickerTypes.d.ts +13 -0
  325. package/dist/types-cjs/form/_pickerInternals/useSegmentedEntry.d.ts +12 -3
  326. package/dist/types-cjs/index.d.ts +4 -0
  327. package/dist/versions/bestax-no-dark-mode.css +1 -1
  328. package/dist/versions/bestax-no-dark-mode.css.map +1 -1
  329. package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
  330. package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
  331. package/dist/versions/bestax-no-helpers.css +1 -1
  332. package/dist/versions/bestax-no-helpers.css.map +1 -1
  333. package/dist/versions/bestax-prefixed.css +1 -1
  334. package/dist/versions/bestax-prefixed.css.map +1 -1
  335. package/package.json +1 -1
  336. package/src/scss/components/_tabs.scss +44 -0
  337. package/src/scss/form/_dateinput.scss +87 -8
  338. package/src/scss/form/_daterangeinput.scss +63 -0
  339. package/src/scss/form/_datetimeinput.scss +7 -2
  340. package/src/scss/form/_file.scss +37 -0
  341. package/src/scss/form/_index.scss +2 -0
  342. package/src/scss/form/_picker-popover.scss +1 -4
@@ -8,14 +8,37 @@ $dateinput-cell-color: cv.getVar('text') !default;
8
8
  $dateinput-cell-hover-bg: hsla(0, 0%, 50%, 0.13) !default;
9
9
  $dateinput-cell-selected-bg: cv.getVar('primary') !default;
10
10
  $dateinput-cell-selected-color: cv.getVar('primary-invert') !default;
11
- $dateinput-cell-today-color: cv.getVar('primary') !default;
12
- $dateinput-focus-ring-color: cv.getVar('primary') !default;
11
+ // Today's tint and the focus ring sit on the calendar's surface, so they take
12
+ // `primary`'s `-on-scheme` variant, the one `color="primary"` gives them too.
13
+ // Plain `primary` is too dark to read on a dark panel.
14
+ $dateinput-cell-today-color: cv.getVar('primary-on-scheme') !default;
15
+ $dateinput-focus-ring-color: cv.getVar('primary-on-scheme') !default;
13
16
  $dateinput-cell-disabled-color: cv.getVar('text-weak') !default;
14
- $dateinput-cell-other-month-color: cv.getVar('text-weak') !default;
17
+ // Halfway between `text-weak` and `text`, in either scheme: still a step back
18
+ // from the month's own days, and readable on the hover fill, where
19
+ // `text-weak` falls below 4.5:1.
20
+ $dateinput-cell-other-month-color: color-mix(
21
+ in srgb,
22
+ #{cv.getVar('text-weak')},
23
+ #{cv.getVar('text')}
24
+ ) !default;
15
25
  $dateinput-header-padding: 0.5rem 0 !default;
16
26
  $dateinput-day-name-color: cv.getVar('text-weak') !default;
17
27
  $dateinput-day-name-size: cv.getVar('size-7') !default;
18
28
  $dateinput-nav-button-size: 1.75rem !default;
29
+ // A range's band: the days between its ends, tinted from the selection fill
30
+ // so a `color` variant re-tints it too. A preview, while the end is still
31
+ // being picked, is fainter.
32
+ $dateinput-cell-range-bg: color-mix(
33
+ in srgb,
34
+ #{cv.getVar('dateinput-cell-selected-bg')} 18%,
35
+ transparent
36
+ ) !default;
37
+ $dateinput-cell-range-preview-bg: color-mix(
38
+ in srgb,
39
+ #{cv.getVar('dateinput-cell-selected-bg')} 9%,
40
+ transparent
41
+ ) !default;
19
42
 
20
43
  .#{iv.$class-prefix}dateinput {
21
44
  @include cv.register-vars(
@@ -35,6 +58,8 @@ $dateinput-nav-button-size: 1.75rem !default;
35
58
  'dateinput-day-name-color': #{$dateinput-day-name-color},
36
59
  'dateinput-day-name-size': #{$dateinput-day-name-size},
37
60
  'dateinput-nav-button-size': #{$dateinput-nav-button-size},
61
+ 'dateinput-cell-range-bg': #{$dateinput-cell-range-bg},
62
+ 'dateinput-cell-range-preview-bg': #{$dateinput-cell-range-preview-bg},
38
63
  )
39
64
  );
40
65
  }
@@ -50,8 +75,7 @@ $dateinput-nav-button-size: 1.75rem !default;
50
75
  // (no popover wrapper), give it a subtle frame so the grid doesn't look
51
76
  // orphaned on the page. Mirrors the popover's visual weight without the
52
77
  // drop-shadow / animation.
53
- .#{iv.$class-prefix}dateinput-container
54
- > .#{iv.$class-prefix}dateinput {
78
+ .#{iv.$class-prefix}dateinput-container > .#{iv.$class-prefix}dateinput {
55
79
  background-color: cv.getVar('scheme-main');
56
80
  border: 1px solid cv.getVar('border');
57
81
  border-radius: cv.getVar('radius');
@@ -204,6 +228,11 @@ $dateinput-nav-button-size: 1.75rem !default;
204
228
  color: cv.getVar('dateinput-cell-today-color');
205
229
  font-weight: cv.getVar('weight-semibold');
206
230
  }
231
+ &.#{iv.$class-prefix}is-other-month {
232
+ color: cv.getVar('dateinput-cell-other-month-color');
233
+ }
234
+ // After the other-month tint, so a selected day from a nearby month, such as
235
+ // a range's end, reads the selected value's colour on the fill.
207
236
  &.#{iv.$class-prefix}is-selected {
208
237
  background-color: cv.getVar('dateinput-cell-selected-bg');
209
238
  color: cv.getVar('dateinput-cell-selected-color');
@@ -214,15 +243,65 @@ $dateinput-nav-button-size: 1.75rem !default;
214
243
  &.#{iv.$class-prefix}is-selected:focus-visible {
215
244
  outline-color: cv.getVar('dateinput-cell-selected-color');
216
245
  }
217
- &.#{iv.$class-prefix}is-other-month {
218
- color: cv.getVar('dateinput-cell-other-month-color');
219
- }
220
246
  &.#{iv.$class-prefix}is-disabled,
221
247
  &:disabled {
222
248
  color: cv.getVar('dateinput-cell-disabled-color');
223
249
  cursor: not-allowed;
224
250
  opacity: 0.55;
225
251
  }
252
+ // A range: its ends take the selected fill above, and the days between
253
+ // them the band. The hover rule above replaces a cell's fill and outranks
254
+ // a bare class, so each band state repeats under `:hover`, where it ties
255
+ // that rule and comes later, and the hover overlay is painted on top of
256
+ // the band as an image rather than in its place.
257
+ &.#{iv.$class-prefix}is-in-range {
258
+ &,
259
+ &:hover:not(:disabled) {
260
+ background-color: cv.getVar('dateinput-cell-range-bg');
261
+ }
262
+ }
263
+ // A preview, while the end is still being picked: a fainter band, and an
264
+ // outline on the day it would end on, which isn't picked yet. On the
265
+ // pointer path that day is the one under the pointer.
266
+ &.#{iv.$class-prefix}is-in-range.#{iv.$class-prefix}is-preview,
267
+ &.#{iv.$class-prefix}is-range-end.#{iv.$class-prefix}is-preview {
268
+ &,
269
+ &:hover:not(:disabled) {
270
+ background-color: cv.getVar('dateinput-cell-range-preview-bg');
271
+ }
272
+ }
273
+ &.#{iv.$class-prefix}is-range-end.#{iv.$class-prefix}is-preview {
274
+ border-style: dashed;
275
+ border-color: cv.getVar('dateinput-cell-selected-bg');
276
+ }
277
+ &.#{iv.$class-prefix}is-in-range,
278
+ &.#{iv.$class-prefix}is-range-end.#{iv.$class-prefix}is-preview {
279
+ &:hover:not(:disabled) {
280
+ background-image: linear-gradient(
281
+ cv.getVar('dateinput-cell-hover-bg'),
282
+ cv.getVar('dateinput-cell-hover-bg')
283
+ );
284
+ }
285
+ // The band lifts the background toward its colour, and the hover overlay
286
+ // lifts it again, which takes the tints below 4.5:1 there. A nearby
287
+ // month's day in the band reads like any day of the range, and today
288
+ // leans a fifth of the way toward `text-strong`, which darkens it on a
289
+ // light scheme and lightens it on a dark one. Today comes first, as it
290
+ // does outside a band, so a day that is both today and from a nearby
291
+ // month reads as the nearby month's day in either place.
292
+ &:not(:disabled):not(.#{iv.$class-prefix}is-disabled) {
293
+ &.#{iv.$class-prefix}is-today {
294
+ color: color-mix(
295
+ in srgb,
296
+ cv.getVar('dateinput-cell-today-color') 80%,
297
+ cv.getVar('text-strong')
298
+ );
299
+ }
300
+ &.#{iv.$class-prefix}is-other-month {
301
+ color: cv.getVar('dateinput-cell-color');
302
+ }
303
+ }
304
+ }
226
305
  }
227
306
 
228
307
  .#{iv.$class-prefix}dateinput-years-grid {
@@ -0,0 +1,63 @@
1
+ @use 'bulma/sass/utilities/initial-variables' as iv;
2
+ @use 'bulma/sass/utilities/css-variables' as cv;
3
+
4
+ // DateRangeInput's field: two inputs and a separator inside one Bulma
5
+ // `.input`. The calendar's range styles live with the rest of the calendar's,
6
+ // in `_dateinput.scss`, so a calendar portaled out of the field keeps them.
7
+ $daterangeinput-gap: 0.5em !default;
8
+ $daterangeinput-separator-color: cv.getVar('text-weak') !default;
9
+
10
+ .#{iv.$class-prefix}daterangeinput {
11
+ @include cv.register-vars(
12
+ (
13
+ 'daterangeinput-gap': #{$daterangeinput-gap},
14
+ 'daterangeinput-separator-color': #{$daterangeinput-separator-color},
15
+ )
16
+ );
17
+ }
18
+
19
+ // Bulma's `.input` already lays its content out in a row and draws its focus
20
+ // ring for `:focus-within`, so the field shows focus wherever it is inside.
21
+ .#{iv.$class-prefix}daterangeinput-field {
22
+ gap: cv.getVar('daterangeinput-gap');
23
+ cursor: text;
24
+ }
25
+
26
+ // The inputs are bare: the field around them is the input the user sees.
27
+ .#{iv.$class-prefix}daterangeinput-input {
28
+ flex: 1 1 0;
29
+ min-width: 0;
30
+ width: 100%;
31
+ padding: 0;
32
+ border: 0;
33
+ background: transparent;
34
+ color: inherit;
35
+ font: inherit;
36
+ outline: none;
37
+
38
+ &::placeholder {
39
+ color: cv.getVar('input-placeholder-color');
40
+ }
41
+ &:disabled {
42
+ cursor: not-allowed;
43
+ }
44
+ }
45
+
46
+ .#{iv.$class-prefix}daterangeinput-separator {
47
+ flex: none;
48
+ color: cv.getVar('daterangeinput-separator-color');
49
+ }
50
+
51
+ // A div takes no `disabled`, so the field is marked by class and given
52
+ // Bulma's disabled input look from Bulma's own variables.
53
+ .#{iv.$class-prefix}daterangeinput-field.#{iv.$class-prefix}is-disabled {
54
+ background-color: cv.getVar('input-disabled-background-color');
55
+ border-color: cv.getVar('input-disabled-border-color');
56
+ box-shadow: none;
57
+ color: cv.getVar('input-disabled-color');
58
+ cursor: not-allowed;
59
+
60
+ .#{iv.$class-prefix}daterangeinput-input::placeholder {
61
+ color: cv.getVar('input-disabled-placeholder-color');
62
+ }
63
+ }
@@ -129,14 +129,19 @@ $datetimeinput-time-overlay-blur: 3px !default;
129
129
  opacity: 0.5;
130
130
  }
131
131
 
132
+ // `text`, not `text-weak`: the label is small, and `text-weak` falls below
133
+ // 4.5:1 once the row's hover or focus fill sits behind it, in either scheme.
132
134
  & > span:first-child {
133
- color: cv.getVar('text-weak');
135
+ color: cv.getVar('text');
134
136
  font-size: cv.getVar('size-7');
135
137
  }
136
138
  }
137
139
 
140
+ // The pill's text sits on the panel's surface, so it takes `primary`'s
141
+ // `-on-scheme` variant, which Bulma lightens on a dark scheme until it
142
+ // contrasts there. Plain `primary` is too dark to read on a dark panel.
138
143
  .#{iv.$class-prefix}datetimeinput-footer-time-pill {
139
- color: cv.getVar('primary');
144
+ color: cv.getVar('primary-on-scheme');
140
145
  font-weight: 600;
141
146
  font-variant-numeric: tabular-nums;
142
147
  padding: 0.15em 0.6em;
@@ -0,0 +1,37 @@
1
+ // File Component Styles
2
+ // Bulma already styles the file input; this adds its keyboard focus ring
3
+
4
+ @use "bulma/sass/utilities/initial-variables" as iv;
5
+ @use "bulma/sass/utilities/css-variables" as cv;
6
+
7
+ // Keyboard focus ring for File. The focusable element is the <input>, which
8
+ // Bulma lays transparent over the whole widget, so the ring goes on the CTA
9
+ // you see instead. The .file-label around them hides its overflow, which
10
+ // clips a ring drawn outside the CTA, so the ring is drawn inside it, with
11
+ // Bulma's focus colour, style and width. :focus-visible keeps it to the
12
+ // keyboard: a click shows none.
13
+ .#{iv.$class-prefix}file-input:focus-visible + .#{iv.$class-prefix}file-cta {
14
+ outline-color: hsl(cv.getVar("focus-h"), cv.getVar("focus-s"), cv.getVar("focus-l"));
15
+ outline-style: cv.getVar("focus-style");
16
+ outline-width: cv.getVar("focus-width");
17
+ outline-offset: calc(-1 * #{cv.getVar("focus-width")});
18
+ }
19
+
20
+ // A coloured File fills its CTA with that colour, which can be the focus
21
+ // colour itself (it is the link colour by default), so its ring takes the
22
+ // CTA's text colour (currentColor, which Bulma sets to read on the fill) and
23
+ // sits one ring width further in, keeping a band of the fill outside it to
24
+ // set it off from the page around the CTA. The colours are the ones File's
25
+ // `color` prop takes, and the placeholder joins them into one rule.
26
+ %file-focus-ring-on-fill {
27
+ outline-color: currentColor;
28
+ outline-offset: calc(-2 * #{cv.getVar("focus-width")});
29
+ }
30
+
31
+ @each $name in "primary", "link", "info", "success", "warning", "danger", "black", "dark", "light", "white" {
32
+ .#{iv.$class-prefix}file.#{iv.$class-prefix}is-#{$name}
33
+ .#{iv.$class-prefix}file-input:focus-visible
34
+ + .#{iv.$class-prefix}file-cta {
35
+ @extend %file-focus-ring-on-fill;
36
+ }
37
+ }
@@ -14,3 +14,5 @@
14
14
  @use 'dateinput';
15
15
  @use 'timeinput';
16
16
  @use 'datetimeinput';
17
+ @use 'daterangeinput';
18
+ @use 'file';
@@ -140,10 +140,7 @@ $picker-trigger-pairs: (
140
140
  )
141
141
  );
142
142
 
143
- @each $pair in $picker-trigger-pairs {
144
- $container: nth($pair, 1);
145
- $trigger: nth($pair, 2);
146
-
143
+ @each $container, $trigger in $picker-trigger-pairs {
147
144
  .#{$container} {
148
145
  position: relative;
149
146
  @include cv.register-vars(