@flux-ui/components 3.0.0-next.34 → 3.0.0-next.38

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 (339) hide show
  1. package/dist/component/FluxActionBar.vue.d.ts +17 -17
  2. package/dist/component/FluxActionPane.vue.d.ts +7 -7
  3. package/dist/component/{FluxActions.vue.d.ts → FluxActionStack.vue.d.ts} +11 -15
  4. package/dist/component/{FluxAutoGrid.vue.d.ts → FluxAdaptiveGroup.vue.d.ts} +6 -3
  5. package/dist/component/FluxAdaptiveSlot.vue.d.ts +35 -0
  6. package/dist/component/FluxAspectRatio.vue.d.ts +3 -3
  7. package/dist/component/FluxBadgeStack.vue.d.ts +3 -3
  8. package/dist/component/FluxButtonGroup.vue.d.ts +3 -3
  9. package/dist/component/FluxButtonStack.vue.d.ts +3 -3
  10. package/dist/component/FluxCalendar.vue.d.ts +3 -3
  11. package/dist/component/FluxCalendarEvent.vue.d.ts +3 -3
  12. package/dist/component/FluxCheckbox.vue.d.ts +2 -1
  13. package/dist/component/FluxClickablePane.vue.d.ts +5 -5
  14. package/dist/component/FluxColorSelect.vue.d.ts +1 -0
  15. package/dist/component/{FluxPaneDeck.vue.d.ts → FluxColumn.vue.d.ts} +5 -5
  16. package/dist/component/FluxCommandPalette.vue.d.ts +52 -0
  17. package/dist/component/FluxCommandPaletteGroup.vue.d.ts +8 -0
  18. package/dist/component/FluxCommandPaletteItem.vue.d.ts +18 -0
  19. package/dist/component/FluxComment.vue.d.ts +3 -3
  20. package/dist/component/FluxContainer.vue.d.ts +3 -3
  21. package/dist/component/FluxDivider.vue.d.ts +5 -3
  22. package/dist/component/FluxDropZone.vue.d.ts +8 -7
  23. package/dist/component/FluxExpandableGroup.vue.d.ts +3 -3
  24. package/dist/component/FluxFader.vue.d.ts +3 -3
  25. package/dist/component/FluxFaderItem.vue.d.ts +3 -3
  26. package/dist/component/FluxFilter.vue.d.ts +3 -3
  27. package/dist/component/FluxFilterBar.vue.d.ts +3 -3
  28. package/dist/component/FluxFilterBase.vue.d.ts +4 -4
  29. package/dist/component/FluxFilterWindow.vue.d.ts +13 -17
  30. package/dist/component/FluxFlyout.vue.d.ts +19 -21
  31. package/dist/component/FluxForm.vue.d.ts +3 -3
  32. package/dist/component/FluxFormColumn.vue.d.ts +3 -3
  33. package/dist/component/FluxFormDateInput.vue.d.ts +18 -24
  34. package/dist/component/FluxFormDateRangeInput.vue.d.ts +18 -21
  35. package/dist/component/FluxFormDateTimeInput.vue.d.ts +18 -24
  36. package/dist/component/FluxFormField.vue.d.ts +7 -7
  37. package/dist/component/FluxFormGrid.vue.d.ts +3 -3
  38. package/dist/component/FluxFormInput.vue.d.ts +2 -9
  39. package/dist/component/FluxFormInputAddition.vue.d.ts +3 -3
  40. package/dist/component/FluxFormInputGroup.vue.d.ts +3 -3
  41. package/dist/component/FluxFormPinInput.vue.d.ts +2 -4
  42. package/dist/component/FluxFormRangeSlider.vue.d.ts +18 -2
  43. package/dist/component/FluxFormRow.vue.d.ts +3 -3
  44. package/dist/component/FluxFormSection.vue.d.ts +3 -3
  45. package/dist/component/FluxFormSelect.vue.d.ts +2 -4
  46. package/dist/component/FluxFormSelectAsync.vue.d.ts +2 -4
  47. package/dist/component/FluxFormSlider.vue.d.ts +11 -2
  48. package/dist/component/FluxFormTextArea.vue.d.ts +2 -6
  49. package/dist/component/FluxFormTimeZonePicker.vue.d.ts +2 -4
  50. package/dist/component/FluxFormTreeViewSelect.vue.d.ts +15 -37
  51. package/dist/component/FluxGallery.vue.d.ts +3 -3
  52. package/dist/component/FluxGrid.vue.d.ts +3 -3
  53. package/dist/component/FluxGridColumn.vue.d.ts +3 -3
  54. package/dist/component/FluxIcon.vue.d.ts +1 -0
  55. package/dist/component/FluxInfo.vue.d.ts +3 -3
  56. package/dist/component/FluxInfoStack.vue.d.ts +3 -3
  57. package/dist/component/FluxLayerPane.vue.d.ts +20 -0
  58. package/dist/component/FluxLayerPaneSecondary.vue.d.ts +20 -0
  59. package/dist/component/FluxMenu.vue.d.ts +3 -3
  60. package/dist/component/FluxMenuCollapsible.vue.d.ts +47 -0
  61. package/dist/component/FluxMenuGroup.vue.d.ts +3 -3
  62. package/dist/component/FluxMenuItem.vue.d.ts +5 -3
  63. package/dist/component/FluxMenuOptions.vue.d.ts +3 -3
  64. package/dist/component/FluxNotice.vue.d.ts +5 -5
  65. package/dist/component/FluxNoticeStack.vue.d.ts +3 -3
  66. package/dist/component/FluxOverflowBar.vue.d.ts +4 -4
  67. package/dist/component/FluxPane.vue.d.ts +5 -5
  68. package/dist/component/FluxPaneBody.vue.d.ts +3 -3
  69. package/dist/component/FluxPaneFooter.vue.d.ts +3 -3
  70. package/dist/component/FluxPaneGroup.vue.d.ts +3 -3
  71. package/dist/component/FluxPaneHeader.vue.d.ts +6 -6
  72. package/dist/component/FluxPaneIllustration.vue.d.ts +5 -5
  73. package/dist/component/FluxPressable.vue.d.ts +3 -3
  74. package/dist/component/FluxPrompt.vue.d.ts +3 -17
  75. package/dist/component/FluxRoot.vue.d.ts +3 -3
  76. package/dist/component/FluxRow.vue.d.ts +23 -0
  77. package/dist/component/FluxSegmentedControl.vue.d.ts +3 -2
  78. package/dist/component/FluxSplitButton.vue.d.ts +5 -5
  79. package/dist/component/FluxStack.vue.d.ts +3 -3
  80. package/dist/component/FluxStepper.vue.d.ts +6 -6
  81. package/dist/component/FluxStepperStep.vue.d.ts +3 -3
  82. package/dist/component/FluxTab.vue.d.ts +3 -3
  83. package/dist/component/FluxTabBar.vue.d.ts +3 -3
  84. package/dist/component/FluxTabBarItem.vue.d.ts +5 -7
  85. package/dist/component/FluxTableActions.vue.d.ts +3 -3
  86. package/dist/component/FluxTableBar.vue.d.ts +3 -3
  87. package/dist/component/FluxTableCell.vue.d.ts +5 -5
  88. package/dist/component/FluxTableHeader.vue.d.ts +3 -3
  89. package/dist/component/FluxTableRow.vue.d.ts +3 -3
  90. package/dist/component/FluxTabs.vue.d.ts +6 -6
  91. package/dist/component/FluxTag.vue.d.ts +1 -0
  92. package/dist/component/FluxTagStack.vue.d.ts +3 -3
  93. package/dist/component/FluxTimeline.vue.d.ts +3 -3
  94. package/dist/component/FluxTimelineItem.vue.d.ts +3 -3
  95. package/dist/component/FluxToggle.vue.d.ts +2 -3
  96. package/dist/component/FluxToolbar.vue.d.ts +3 -3
  97. package/dist/component/FluxToolbarGroup.vue.d.ts +3 -3
  98. package/dist/component/FluxWindow.vue.d.ts +3 -3
  99. package/dist/component/index.d.ts +11 -3
  100. package/dist/component/primitive/Anchor.vue.d.ts +3 -3
  101. package/dist/component/primitive/AnchorPopup.vue.d.ts +3 -3
  102. package/dist/component/primitive/CoordinatePicker.vue.d.ts +1 -0
  103. package/dist/component/primitive/DialogLayout.vue.d.ts +28 -0
  104. package/dist/component/primitive/FilterOptionBase.vue.d.ts +2 -2
  105. package/dist/component/primitive/SelectBase.vue.d.ts +19 -37
  106. package/dist/component/primitive/SliderThumb.vue.d.ts +4 -0
  107. package/dist/component/primitive/TreeNodeRenderer.vue.d.ts +30 -0
  108. package/dist/component/primitive/index.d.ts +2 -0
  109. package/dist/composable/index.d.ts +1 -0
  110. package/dist/composable/private/index.d.ts +8 -0
  111. package/dist/composable/private/useAsyncFilterOptions.d.ts +14 -0
  112. package/dist/composable/private/useCommandPalette.d.ts +38 -0
  113. package/dist/composable/private/useDateFlyout.d.ts +10 -0
  114. package/dist/composable/private/useDropdownPopup.d.ts +27 -0
  115. package/dist/composable/private/useFilterOption.d.ts +12 -0
  116. package/dist/composable/useAdaptiveGroupInjection.d.ts +2 -0
  117. package/dist/data/di.d.ts +11 -0
  118. package/dist/data/filter.d.ts +4 -17
  119. package/dist/data/i18n.d.ts +17 -0
  120. package/dist/data/timeZones.d.ts +3 -0
  121. package/dist/index.css +710 -349
  122. package/dist/index.d.ts +1 -1
  123. package/dist/index.js +6936 -5537
  124. package/dist/index.js.map +1 -1
  125. package/dist/transition/FluxAutoHeightTransition.vue.d.ts +5 -3
  126. package/dist/transition/FluxAutoWidthTransition.vue.d.ts +5 -3
  127. package/dist/transition/FluxBreakthroughTransition.vue.d.ts +5 -3
  128. package/dist/transition/FluxFadeTransition.vue.d.ts +5 -3
  129. package/dist/transition/FluxOverlayTransition.vue.d.ts +5 -3
  130. package/dist/transition/FluxRouteTransition.vue.d.ts +5 -3
  131. package/dist/transition/FluxSlideOverTransition.vue.d.ts +5 -3
  132. package/dist/transition/FluxTooltipTransition.vue.d.ts +5 -3
  133. package/dist/transition/FluxVerticalWindowTransition.vue.d.ts +5 -3
  134. package/dist/transition/FluxWindowTransition.vue.d.ts +5 -3
  135. package/package.json +19 -23
  136. package/src/component/FluxActionBar.vue +9 -8
  137. package/src/component/FluxActionPane.vue +4 -3
  138. package/src/component/{FluxActions.vue → FluxActionStack.vue} +2 -2
  139. package/src/component/FluxAdaptiveGroup.vue +112 -0
  140. package/src/component/FluxAdaptiveSlot.vue +159 -0
  141. package/src/component/FluxAlert.vue +8 -17
  142. package/src/component/FluxAnimatedColors.vue +1 -1
  143. package/src/component/FluxAspectRatio.vue +2 -1
  144. package/src/component/FluxBadge.vue +5 -1
  145. package/src/component/FluxBadgeStack.vue +2 -1
  146. package/src/component/FluxButtonGroup.vue +2 -1
  147. package/src/component/FluxButtonStack.vue +2 -1
  148. package/src/component/FluxCalendar.vue +8 -1
  149. package/src/component/FluxCalendarEvent.vue +2 -1
  150. package/src/component/FluxCheckbox.vue +33 -6
  151. package/src/component/FluxChip.vue +1 -0
  152. package/src/component/FluxClickablePane.vue +3 -2
  153. package/src/component/FluxColorPicker.vue +8 -1
  154. package/src/component/FluxColorSelect.vue +25 -4
  155. package/src/component/{FluxAutoGrid.vue → FluxColumn.vue} +5 -8
  156. package/src/component/FluxCommandPalette.vue +290 -0
  157. package/src/component/FluxCommandPaletteGroup.vue +23 -0
  158. package/src/component/FluxCommandPaletteItem.vue +60 -0
  159. package/src/component/FluxComment.vue +2 -2
  160. package/src/component/FluxConfirm.vue +8 -17
  161. package/src/component/FluxContainer.vue +3 -2
  162. package/src/component/FluxDataTable.vue +3 -1
  163. package/src/component/FluxDivider.vue +7 -3
  164. package/src/component/FluxDropZone.vue +22 -8
  165. package/src/component/FluxExpandable.vue +3 -2
  166. package/src/component/FluxExpandableGroup.vue +2 -2
  167. package/src/component/FluxFader.vue +2 -2
  168. package/src/component/FluxFaderItem.vue +2 -1
  169. package/src/component/FluxFilter.vue +2 -1
  170. package/src/component/FluxFilterBar.vue +3 -2
  171. package/src/component/FluxFilterBase.vue +17 -9
  172. package/src/component/FluxFilterOption.vue +3 -14
  173. package/src/component/FluxFilterOptionAsync.vue +17 -60
  174. package/src/component/FluxFilterOptions.vue +3 -25
  175. package/src/component/FluxFilterOptionsAsync.vue +9 -73
  176. package/src/component/FluxFilterWindow.vue +1 -1
  177. package/src/component/FluxFlyout.vue +13 -11
  178. package/src/component/FluxForm.vue +2 -1
  179. package/src/component/FluxFormColumn.vue +2 -1
  180. package/src/component/FluxFormDateInput.vue +9 -22
  181. package/src/component/FluxFormDateRangeInput.vue +20 -15
  182. package/src/component/FluxFormDateTimeInput.vue +17 -20
  183. package/src/component/FluxFormField.vue +4 -4
  184. package/src/component/FluxFormGrid.vue +2 -1
  185. package/src/component/FluxFormInput.vue +11 -10
  186. package/src/component/FluxFormInputAddition.vue +2 -1
  187. package/src/component/FluxFormInputGroup.vue +3 -2
  188. package/src/component/FluxFormPinInput.vue +14 -6
  189. package/src/component/FluxFormRangeSlider.vue +12 -2
  190. package/src/component/FluxFormRow.vue +2 -1
  191. package/src/component/FluxFormSection.vue +4 -3
  192. package/src/component/FluxFormSelect.vue +11 -4
  193. package/src/component/FluxFormSelectAsync.vue +14 -8
  194. package/src/component/FluxFormSlider.vue +8 -2
  195. package/src/component/FluxFormTextArea.vue +12 -7
  196. package/src/component/FluxFormTimeZonePicker.vue +13 -626
  197. package/src/component/FluxFormTreeViewSelect.vue +51 -79
  198. package/src/component/FluxGallery.vue +2 -1
  199. package/src/component/FluxGrid.vue +3 -2
  200. package/src/component/FluxGridColumn.vue +2 -1
  201. package/src/component/FluxIcon.vue +4 -2
  202. package/src/component/FluxInfo.vue +2 -1
  203. package/src/component/FluxInfoStack.vue +3 -2
  204. package/src/component/FluxLayerPane.vue +16 -0
  205. package/src/component/FluxLayerPaneSecondary.vue +16 -0
  206. package/src/component/FluxLegend.vue +9 -9
  207. package/src/component/FluxMenu.vue +2 -2
  208. package/src/component/FluxMenuCollapsible.vue +187 -0
  209. package/src/component/FluxMenuGroup.vue +2 -1
  210. package/src/component/FluxMenuItem.vue +9 -1
  211. package/src/component/FluxMenuOptions.vue +1 -1
  212. package/src/component/FluxNotice.vue +7 -2
  213. package/src/component/FluxNoticeStack.vue +2 -1
  214. package/src/component/FluxOverflowBar.vue +3 -3
  215. package/src/component/FluxPagination.vue +1 -0
  216. package/src/component/FluxPane.vue +3 -2
  217. package/src/component/FluxPaneBody.vue +2 -1
  218. package/src/component/FluxPaneFooter.vue +2 -1
  219. package/src/component/FluxPaneGroup.vue +2 -1
  220. package/src/component/FluxPaneHeader.vue +7 -6
  221. package/src/component/FluxPaneIllustration.vue +3 -3
  222. package/src/component/FluxPaneMedia.vue +1 -1
  223. package/src/component/FluxPercentageBar.vue +3 -1
  224. package/src/component/FluxPressable.vue +2 -1
  225. package/src/component/FluxProgressBar.vue +2 -1
  226. package/src/component/FluxPrompt.vue +16 -27
  227. package/src/component/FluxRemove.vue +4 -0
  228. package/src/component/FluxRoot.vue +2 -2
  229. package/src/component/FluxRow.vue +24 -0
  230. package/src/component/FluxSegmentedControl.vue +51 -4
  231. package/src/component/FluxSnackbar.vue +36 -12
  232. package/src/component/FluxSplitButton.vue +3 -2
  233. package/src/component/FluxStack.vue +4 -3
  234. package/src/component/FluxStepper.vue +3 -3
  235. package/src/component/FluxStepperStep.vue +2 -1
  236. package/src/component/FluxTab.vue +2 -1
  237. package/src/component/FluxTabBar.vue +3 -3
  238. package/src/component/FluxTableActions.vue +5 -4
  239. package/src/component/FluxTableBar.vue +2 -1
  240. package/src/component/FluxTableCell.vue +4 -3
  241. package/src/component/FluxTableHeader.vue +4 -2
  242. package/src/component/FluxTableRow.vue +2 -1
  243. package/src/component/FluxTabs.vue +15 -6
  244. package/src/component/FluxTag.vue +8 -2
  245. package/src/component/FluxTagStack.vue +2 -1
  246. package/src/component/FluxTimeline.vue +2 -1
  247. package/src/component/FluxTimelineItem.vue +2 -1
  248. package/src/component/FluxToggle.vue +20 -5
  249. package/src/component/FluxToolbar.vue +2 -1
  250. package/src/component/FluxToolbarGroup.vue +2 -1
  251. package/src/component/FluxTooltip.vue +1 -1
  252. package/src/component/FluxTreeView.vue +9 -35
  253. package/src/component/FluxWindow.vue +2 -2
  254. package/src/component/index.ts +11 -3
  255. package/src/component/primitive/Anchor.vue +3 -1
  256. package/src/component/primitive/AnchorPopup.vue +3 -3
  257. package/src/component/primitive/CoordinatePicker.vue +2 -1
  258. package/src/component/primitive/CoordinatePickerThumb.vue +2 -0
  259. package/src/component/primitive/DialogLayout.vue +44 -0
  260. package/src/component/primitive/SelectBase.vue +22 -28
  261. package/src/component/primitive/SliderBase.vue +0 -1
  262. package/src/component/primitive/SliderThumb.vue +9 -0
  263. package/src/component/primitive/TreeNodeRenderer.vue +77 -0
  264. package/src/component/primitive/index.ts +2 -0
  265. package/src/composable/index.ts +1 -0
  266. package/src/composable/private/index.ts +8 -0
  267. package/src/composable/private/useAsyncFilterOptions.ts +70 -0
  268. package/src/composable/private/useCommandPalette.ts +405 -0
  269. package/src/composable/private/useDateFlyout.ts +34 -0
  270. package/src/composable/private/useDropdownPopup.ts +99 -0
  271. package/src/composable/private/useFilterOption.ts +59 -0
  272. package/src/composable/useAdaptiveGroupInjection.ts +6 -0
  273. package/src/css/component/Action.module.scss +2 -2
  274. package/src/css/component/AdaptiveSlot.module.scss +25 -0
  275. package/src/css/component/Avatar.module.scss +10 -11
  276. package/src/css/component/Badge.module.scss +11 -4
  277. package/src/css/component/Button.module.scss +4 -16
  278. package/src/css/component/Calendar.module.scss +4 -4
  279. package/src/css/component/Chip.module.scss +6 -10
  280. package/src/css/component/Color.module.scss +1 -1
  281. package/src/css/component/CommandPalette.module.scss +332 -0
  282. package/src/css/component/DatePicker.module.scss +1 -1
  283. package/src/css/component/Expandable.module.scss +5 -5
  284. package/src/css/component/Fader.module.scss +2 -1
  285. package/src/css/component/Flyout.module.scss +1 -1
  286. package/src/css/component/FocalPoint.module.scss +1 -1
  287. package/src/css/component/Form.module.scss +56 -10
  288. package/src/css/component/Item.module.scss +4 -4
  289. package/src/css/component/LayerPane.module.scss +40 -0
  290. package/src/css/component/Layout.module.scss +11 -4
  291. package/src/css/component/Legend.module.scss +2 -2
  292. package/src/css/component/Menu.module.scss +59 -11
  293. package/src/css/component/Notice.module.scss +7 -7
  294. package/src/css/component/Overlay.module.scss +2 -2
  295. package/src/css/component/Pane.module.scss +10 -23
  296. package/src/css/component/PercentageBar.module.scss +1 -1
  297. package/src/css/component/Remove.module.scss +1 -1
  298. package/src/css/component/SegmentedControl.module.scss +1 -0
  299. package/src/css/component/Snackbar.module.scss +1 -1
  300. package/src/css/component/Statistic.module.scss +2 -2
  301. package/src/css/component/Stepper.module.scss +1 -1
  302. package/src/css/component/Tab.module.scss +11 -15
  303. package/src/css/component/Table.module.scss +13 -13
  304. package/src/css/component/Timeline.module.scss +2 -2
  305. package/src/css/component/Toolbar.module.scss +3 -3
  306. package/src/css/component/Tooltip.module.scss +3 -4
  307. package/src/css/component/Transition.module.scss +1 -1
  308. package/src/css/component/TreeView.module.scss +2 -15
  309. package/src/css/component/TreeViewSelect.module.scss +1 -15
  310. package/src/css/component/base/Button.module.scss +6 -7
  311. package/src/css/component/base/Effect.module.scss +2 -1
  312. package/src/css/component/primitive/Slider.module.scss +6 -7
  313. package/src/css/component/primitive/TreeNode.module.scss +19 -0
  314. package/src/css/mixin/button-active.scss +6 -0
  315. package/src/css/mixin/focus-ring.scss +1 -1
  316. package/src/css/mixin/index.scss +1 -0
  317. package/src/css/typography.scss +3 -2
  318. package/src/css/variables.scss +7 -2
  319. package/src/data/di.ts +13 -0
  320. package/src/data/filter.ts +24 -28
  321. package/src/data/i18n.ts +17 -0
  322. package/src/data/store.ts +46 -11
  323. package/src/data/timeZones.ts +619 -0
  324. package/src/index.ts +2 -0
  325. package/src/transition/FluxAutoHeightTransition.vue +5 -0
  326. package/src/transition/FluxAutoWidthTransition.vue +5 -0
  327. package/src/transition/FluxBreakthroughTransition.vue +5 -0
  328. package/src/transition/FluxFadeTransition.vue +5 -0
  329. package/src/transition/FluxOverlayTransition.vue +5 -0
  330. package/src/transition/FluxRouteTransition.vue +5 -0
  331. package/src/transition/FluxSlideOverTransition.vue +5 -0
  332. package/src/transition/FluxTooltipTransition.vue +5 -0
  333. package/src/transition/FluxVerticalWindowTransition.vue +5 -0
  334. package/src/transition/FluxWindowTransition.vue +5 -0
  335. package/dist/0db98648.svg +0 -3
  336. package/src/component/FluxPaneDeck.vue +0 -24
  337. package/src/css/component/base/Grid.module.scss +0 -8
  338. package/src/image/avatar-mask.svg +0 -3
  339. package/tsconfig.json +0 -7
@@ -1,3 +1,5 @@
1
+ @use '$flux/css/mixin';
2
+
1
3
  .table {
2
4
  composes: basePaneElement from './base/Pane.module.scss';
3
5
 
@@ -127,11 +129,11 @@ tfoot .tableCell {
127
129
  position: relative;
128
130
  background: var(--gray-50);
129
131
  box-shadow: 0 0 24px var(--gray-50),
130
- 0 0 24px var(--gray-50),
131
- 0 0 24px var(--gray-50),
132
- 0 0 24px var(--gray-50),
133
- 0 0 24px var(--gray-50),
134
- 0 0 24px var(--gray-50);
132
+ 0 0 24px var(--gray-50),
133
+ 0 0 24px var(--gray-50),
134
+ 0 0 24px var(--gray-50),
135
+ 0 0 24px var(--gray-50),
136
+ 0 0 24px var(--gray-50);
135
137
  z-index: 2;
136
138
  }
137
139
 
@@ -171,20 +173,18 @@ tfoot .tableCell {
171
173
  cursor: pointer;
172
174
  outline: 0;
173
175
 
174
- @media (hover: hover) {
175
- &:hover {
176
- background: var(--gray-100);
177
- color: var(--foreground);
178
- }
176
+ @include mixin.hover {
177
+ background: var(--gray-100);
178
+ color: var(--foreground);
179
179
  }
180
180
  }
181
181
 
182
182
  .basePaneStructure > .table .tableCell:first-child .tableCellContent {
183
- padding-left: 21px;
183
+ padding-left: 18px;
184
184
  }
185
185
 
186
186
  .basePaneStructure > .table .tableCell:last-child .tableCellContent {
187
- padding-right: 21px;
187
+ padding-right: 18px;
188
188
  }
189
189
 
190
190
  .basePaneStructure > .table .tableActions {
@@ -192,7 +192,7 @@ tfoot .tableCell {
192
192
  }
193
193
 
194
194
  .basePaneStructure > .table :is(caption) {
195
- padding: 12px 21px;
195
+ padding: 12px 18px;
196
196
  border-top: 1px solid var(--gray-100);
197
197
  }
198
198
 
@@ -17,7 +17,7 @@
17
17
  display: flex;
18
18
  align-items: center;
19
19
  justify-content: center;
20
- border-radius: 99px;
20
+ border-radius: var(--radius-full);
21
21
  outline: 6px solid var(--surface);
22
22
  }
23
23
 
@@ -42,7 +42,7 @@
42
42
  align-items: center;
43
43
  justify-content: center;
44
44
  background: var(--gray-25);
45
- border-radius: 99px;
45
+ border-radius: var(--radius-full);
46
46
  }
47
47
 
48
48
  .timelineItemPhotoImage {
@@ -44,12 +44,12 @@
44
44
 
45
45
  &.isTopEnd,
46
46
  &.isBottomEnd {
47
- right: 21px;
47
+ right: 18px;
48
48
  }
49
49
 
50
50
  &.isTopStart,
51
51
  &.isBottomStart {
52
- left: 21px;
52
+ left: 18px;
53
53
  }
54
54
  }
55
55
 
@@ -81,5 +81,5 @@
81
81
  }
82
82
 
83
83
  .paneHeader + .toolbarFlat {
84
- margin-top: 21px;
84
+ margin-top: 18px;
85
85
  }
@@ -6,8 +6,8 @@
6
6
  max-width: 360px;
7
7
  padding: 9px 15px;
8
8
  flex-flow: column;
9
- background: rgb(from var(--gray-950) r g b / .9);
10
- backdrop-filter: blur(6px) saturate(180%);
9
+ background: var(--overlay-strong);
10
+ backdrop-filter: blur(3px) saturate(180%);
11
11
  border-radius: var(--radius);
12
12
  color: var(--gray-25);
13
13
  font-size: 14px;
@@ -35,8 +35,7 @@
35
35
  }
36
36
 
37
37
  [dark] .tooltip {
38
- background: rgb(0 0 0 / .9);
39
- color: white;
38
+ color: var(--gray-700);
40
39
  }
41
40
 
42
41
  .tooltipAbove {
@@ -32,7 +32,7 @@
32
32
 
33
33
  .fadeTransitionEnterActive,
34
34
  .fadeTransitionLeaveActive {
35
- transition: opacity 180ms var(--swift-out) !important;
35
+ transition: opacity var(--transition-default) !important;
36
36
  }
37
37
 
38
38
  .fadeTransitionEnterFrom,
@@ -7,20 +7,9 @@
7
7
  }
8
8
 
9
9
  .treeNode {
10
- display: flex;
11
- width: 100%;
12
- min-height: 36px;
13
- padding: 0 8px;
14
- align-items: center;
15
- border-radius: var(--radius-half);
16
- color: var(--foreground);
10
+ composes: treeNode from './primitive/TreeNode.module.scss';
11
+
17
12
  cursor: pointer;
18
- font-size: 14px;
19
- gap: 8px;
20
- outline: 0;
21
- transition: 150ms var(--swift-out);
22
- transition-property: background, color;
23
- user-select: none;
24
13
 
25
14
  @include mixin.hover {
26
15
  background: var(--surface-hover);
@@ -30,5 +19,3 @@
30
19
  background: var(--surface-hover);
31
20
  }
32
21
  }
33
-
34
- @include mixin.tree-node-classes();
@@ -21,19 +21,7 @@
21
21
  }
22
22
 
23
23
  .treeNode {
24
- display: flex;
25
- width: 100%;
26
- min-height: 36px;
27
- padding: 0 8px;
28
- align-items: center;
29
- border-radius: var(--radius-half);
30
- color: var(--foreground);
31
- font-size: 14px;
32
- gap: 8px;
33
- outline: 0;
34
- transition: 150ms var(--swift-out);
35
- transition-property: background, color;
36
- user-select: none;
24
+ composes: treeNode from './primitive/TreeNode.module.scss';
37
25
 
38
26
  &.isSelectable,
39
27
  &.isExpandable {
@@ -69,5 +57,3 @@
69
57
  color: var(--primary-600);
70
58
  flex-shrink: 0;
71
59
  }
72
-
73
- @include mixin.tree-node-classes();
@@ -3,8 +3,6 @@
3
3
  @layer flux-base {
4
4
  .button {
5
5
  display: inline-flex;
6
- height: 42px;
7
- padding: 0 12px;
8
6
  align-items: center;
9
7
  flex-grow: 0;
10
8
  flex-shrink: 0;
@@ -17,7 +15,7 @@
17
15
  cursor: pointer;
18
16
  font: inherit;
19
17
  text-decoration: none;
20
- transition: 180ms var(--swift-out);
18
+ transition: var(--transition-default);
21
19
  transition-property: background, border, box-shadow, color, scale, mixin.focus-ring-transition-properties();
22
20
  user-select: none;
23
21
 
@@ -64,12 +62,13 @@
64
62
  }
65
63
 
66
64
  .buttonIcon {
65
+ margin: 1px;
67
66
  flex-shrink: 0;
68
- font-size: 20px;
67
+ font-size: 18px;
69
68
 
70
69
  &:only-child {
71
- margin-left: -2px;
72
- margin-right: -2px;
70
+ margin-left: -1px;
71
+ margin-right: -1px;
73
72
  }
74
73
  }
75
74
 
@@ -85,7 +84,7 @@
85
84
  }
86
85
  }
87
86
 
88
- .badge {
87
+ .button .badge {
89
88
  &:first-child {
90
89
  margin-left: -6px;
91
90
  }
@@ -31,7 +31,8 @@ $-sparkle-r: .5 * $-sparkle-d;
31
31
  $-xs: $-xg + $-sparkle-d * cos($-sparkle-curr-angle);
32
32
  $-ys: $-yg + $-sparkle-d * sin($-sparkle-curr-angle);
33
33
 
34
- $-shadow-list: $-shadow-list, $-xs $-ys 0 $-spread-r hsl(($i + $j) * $-group-base-angle, 100%, 75%);
34
+ $-hue: ($i + $j) * $-group-base-angle;
35
+ $-shadow-list: $-shadow-list, $-xs $-ys 0 $-spread-r hsl($-hue, 100%, 75%);
35
36
  }
36
37
  }
37
38
 
@@ -26,7 +26,7 @@
26
26
  background: var(--surface);
27
27
  background-clip: padding-box;
28
28
  border: 1px solid var(--surface-stroke-out);
29
- border-radius: 99px;
29
+ border-radius: var(--radius-full);
30
30
  box-shadow: var(--shadow-sm);
31
31
  cursor: grab;
32
32
  outline: 0;
@@ -34,10 +34,8 @@
34
34
 
35
35
  @include mixin.focus-ring-transition(2px);
36
36
 
37
- @media (hover: hover) {
38
- &:hover {
39
- background-color: var(--surface-hover);
40
- }
37
+ @include mixin.hover {
38
+ background-color: var(--surface-hover);
41
39
  }
42
40
 
43
41
  &.isDisabled {
@@ -56,8 +54,9 @@
56
54
  position: relative;
57
55
  height: 12px;
58
56
  background: var(--gray-50);
57
+ background-clip: padding-box;
59
58
  border-radius: var(--radius-half);
60
- box-shadow: inset 0 0 0 1px var(--surface-stroke);
59
+ box-shadow: inset 0 0 0 1px var(--surface-stroke-out);
61
60
  }
62
61
 
63
62
  .sliderTrackValue {
@@ -80,7 +79,7 @@
80
79
  height: 9px;
81
80
  width: 2px;
82
81
  background: var(--gray-300);
83
- border-radius: 99px;
82
+ border-radius: var(--radius-full);
84
83
  color: var(--foreground-prominent);
85
84
  font-size: 10px;
86
85
  font-weight: 600;
@@ -0,0 +1,19 @@
1
+ @use '$flux/css/mixin';
2
+
3
+ .treeNode {
4
+ display: flex;
5
+ width: 100%;
6
+ min-height: 36px;
7
+ padding: 0 8px;
8
+ align-items: center;
9
+ border-radius: var(--radius-half);
10
+ color: var(--foreground);
11
+ font-size: 14px;
12
+ gap: 8px;
13
+ outline: 0;
14
+ transition: 150ms var(--swift-out);
15
+ transition-property: background, color;
16
+ user-select: none;
17
+ }
18
+
19
+ @include mixin.tree-node-classes();
@@ -0,0 +1,6 @@
1
+ @mixin button-active($background) {
2
+ &:active {
3
+ background: $background;
4
+ scale: .9875;
5
+ }
6
+ }
@@ -45,7 +45,7 @@
45
45
  }
46
46
 
47
47
  @mixin focus-ring-transition($offset: 0, $within: false) {
48
- transition: 180ms var(--swift-out);
48
+ transition: var(--transition-default);
49
49
  transition-property: focus-ring-transition-properties();
50
50
 
51
51
  @include focus-ring($offset, $within);
@@ -1,4 +1,5 @@
1
1
  @forward 'breakpoints';
2
+ @forward 'button-active';
2
3
  @forward 'focus-ring';
3
4
  @forward 'hover';
4
5
  @forward 'tree-node';
@@ -1,6 +1,6 @@
1
1
  @layer flux-base {
2
2
  h1, h2, h3, h4, h5, h6 {
3
- font-weight: 700;
3
+ font-weight: 600;
4
4
  line-height: 1.6;
5
5
  text-wrap: balance;
6
6
  }
@@ -33,9 +33,10 @@
33
33
  }
34
34
 
35
35
  a:not([class]), a[class=""] {
36
+ align-self: start;
36
37
  color: var(--primary-600);
37
38
  text-decoration: underline;
38
- text-decoration-color: var(--primary-400);
39
+ text-decoration-color: currentColor;
39
40
  text-decoration-skip: auto;
40
41
  text-decoration-thickness: 1px;
41
42
  text-underline-offset: 2px;
@@ -174,9 +174,12 @@
174
174
  --font-size: 15px;
175
175
  --radius: 12px;
176
176
  --radius-double: 24px;
177
+ --radius-full: 9999px;
177
178
  --radius-half: 6px;
178
179
 
179
- --background: var(--gray-50);
180
+ --transition-default: 180ms var(--swift-out);
181
+
182
+ --background: var(--gray-25);
180
183
  --foreground: var(--gray-700);
181
184
  --foreground-prominent: var(--gray-900);
182
185
  --foreground-secondary: var(--gray-500);
@@ -190,13 +193,15 @@
190
193
  --surface-active: var(--gray-100);
191
194
  --surface-disabled: var(--gray-100);
192
195
 
193
- --overlay: rgb(from var(--gray-950) r g b / .3);
196
+ --overlay: rgb(from var(--gray-950) r g b / .5);
194
197
  --overlay-secondary: rgb(from var(--gray-950) r g b / .15);
198
+ --overlay-strong: rgb(from var(--gray-950) r g b / .9);
195
199
  }
196
200
 
197
201
  @mixin defaults-dark {
198
202
  --overlay: rgb(0 0 0 / .6);
199
203
  --overlay-secondary: rgb(0 0 0 / .4);
204
+ --overlay-strong: rgb(0 0 0 / .9);
200
205
  }
201
206
 
202
207
  @mixin shadow-light {
package/src/data/di.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { FluxFilterState, FluxFilterValue } from '@flux-ui/types';
2
2
  import type { ComponentInternalInstance, InjectionKey, Ref } from 'vue';
3
3
 
4
+ export const FluxAdaptiveGroupInjectionKey: InjectionKey<FluxAdaptiveGroupInjection> = Symbol();
4
5
  export const FluxDisabledInjectionKey: InjectionKey<Ref<boolean>> = Symbol();
5
6
  export const FluxExpandableGroupInjectionKey: InjectionKey<FluxExpandableGroupInjection> = Symbol();
6
7
  export const FluxFlyoutInjectionKey: InjectionKey<FluxFlyoutInjection> = Symbol();
@@ -9,6 +10,18 @@ export const FluxFormFieldInjectionKey: InjectionKey<FluxFormFieldInjection> = S
9
10
  export const FluxTableInjectionKey: InjectionKey<FluxTableInjection> = Symbol();
10
11
  export const FluxTooltipInjectionKey: InjectionKey<FluxTooltipInjection> = Symbol();
11
12
 
13
+ export type FluxAdaptiveGroupChild = {
14
+ readonly priority: Ref<number>;
15
+ readonly desiredDefaultWidth: Ref<number>;
16
+ readonly desiredFallbackWidth: Ref<number>;
17
+ readonly isDefaultVisible: Ref<boolean>;
18
+ };
19
+
20
+ export type FluxAdaptiveGroupInjection = {
21
+ register(uid: number, child: FluxAdaptiveGroupChild): void;
22
+ unregister(uid: number): void;
23
+ };
24
+
12
25
  export type FluxExpandableGroupInjection = {
13
26
  closeAll(): void;
14
27
  register(uid: number, expandable: ComponentInternalInstance): void;
@@ -1,11 +1,11 @@
1
1
  import { formatNumber } from '@basmilius/utils';
2
- import type { FluxFilterBase, FluxFilterDateEntry, FluxFilterDateRangeEntry, FluxFilterOptionEntry, FluxFilterOptionHeader, FluxFilterOptionItem, FluxFilterOptionRow, FluxFilterOptionsEntry, FluxFilterRangeEntry, FluxFilterValue, FluxFilterValueSingle } from '@flux-ui/types';
2
+ import type { FluxFilterDateEntry, FluxFilterDateRangeEntry, FluxFilterDateRangeSpec, FluxFilterDateSpec, FluxFilterEntryMap, FluxFilterOptionAsyncSpec, FluxFilterOptionEntry, FluxFilterOptionHeader, FluxFilterOptionItem, FluxFilterOptionSpec, FluxFilterOptionsAsyncSpec, FluxFilterOptionsEntry, FluxFilterOptionsSpec, FluxFilterRangeEntry, FluxFilterRangeSpec, FluxFilterSpecMap, FluxFilterValueSingle } from '@flux-ui/types';
3
3
  import { DateTime } from 'luxon';
4
4
  import { useTranslate } from '$flux/composable/private';
5
5
  import type { FluxTranslate } from '$flux/data';
6
6
  import { createLabelForDateRange } from '$flux/util';
7
7
 
8
- function parseDate(base: FluxFilterBase): FluxFilterDateEntry {
8
+ function parseDate(base: FluxFilterDateSpec): FluxFilterDateEntry {
9
9
  return {
10
10
  ...base,
11
11
  type: 'date',
@@ -24,7 +24,7 @@ function parseDate(base: FluxFilterBase): FluxFilterDateEntry {
24
24
  };
25
25
  }
26
26
 
27
- function parseDateRange(base: FluxFilterBase): FluxFilterDateRangeEntry {
27
+ function parseDateRange(base: FluxFilterDateRangeSpec): FluxFilterDateRangeEntry {
28
28
  return {
29
29
  ...base,
30
30
  type: 'dateRange',
@@ -45,36 +45,34 @@ function parseDateRange(base: FluxFilterBase): FluxFilterDateRangeEntry {
45
45
  };
46
46
  }
47
47
 
48
- function parseOption(base: FluxFilterBase): FluxFilterOptionEntry {
49
- const options = (base as any).options as FluxFilterOptionItem[];
48
+ function parseOption({options, ...base}: FluxFilterOptionSpec): FluxFilterOptionEntry {
49
+ const items = options.filter(isFluxFilterOptionItem);
50
50
 
51
51
  return {
52
52
  ...base,
53
53
  type: 'option',
54
54
 
55
55
  async getValueLabel(value): Promise<string | null> {
56
- return options.find(o => o.value === value)?.label ?? null;
56
+ return items.find(o => o.value === value)?.label ?? null;
57
57
  }
58
58
  };
59
59
  }
60
60
 
61
- function parseOptionAsync(base: FluxFilterBase): FluxFilterOptionEntry {
62
- const fetchOptions = (base as any).fetchOptions as (ids: FluxFilterValue[]) => Promise<FluxFilterOptionRow[]>;
63
-
61
+ function parseOptionAsync({fetchOptions, ...base}: FluxFilterOptionAsyncSpec): FluxFilterOptionEntry {
64
62
  return {
65
63
  ...base,
66
64
  type: 'option',
67
65
 
68
66
  async getValueLabel(value): Promise<string | null> {
69
- const options = (await fetchOptions([value])).filter(isFluxFilterOptionItem);
67
+ const items = (await fetchOptions([value])).filter(isFluxFilterOptionItem);
70
68
 
71
- return options.find(o => o.value === value)?.label ?? null;
69
+ return items.find(o => o.value === value)?.label ?? null;
72
70
  }
73
71
  };
74
72
  }
75
73
 
76
- function parseOptions(base: FluxFilterBase): FluxFilterOptionsEntry {
77
- const options = (base as any).options as FluxFilterOptionItem[];
74
+ function parseOptions({options, ...base}: FluxFilterOptionsSpec): FluxFilterOptionsEntry {
75
+ const items = options.filter(isFluxFilterOptionItem);
78
76
  const translate = useTranslate();
79
77
 
80
78
  return {
@@ -86,13 +84,12 @@ function parseOptions(base: FluxFilterBase): FluxFilterOptionsEntry {
86
84
  return null;
87
85
  }
88
86
 
89
- return generateMultiOptionsLabel(translate, options, value);
87
+ return generateMultiOptionsLabel(translate, items, value);
90
88
  }
91
89
  };
92
90
  }
93
91
 
94
- function parseOptionsAsync(base: FluxFilterBase): FluxFilterOptionsEntry {
95
- const fetchOptions = (base as any).fetchOptions as (ids: FluxFilterValue[]) => Promise<FluxFilterOptionRow[]>;
92
+ function parseOptionsAsync({fetchOptions, ...base}: FluxFilterOptionsAsyncSpec): FluxFilterOptionsEntry {
96
93
  const translate = useTranslate();
97
94
 
98
95
  return {
@@ -104,14 +101,14 @@ function parseOptionsAsync(base: FluxFilterBase): FluxFilterOptionsEntry {
104
101
  return null;
105
102
  }
106
103
 
107
- const options = (await fetchOptions(value)).filter(isFluxFilterOptionItem);
104
+ const items = (await fetchOptions(value)).filter(isFluxFilterOptionItem);
108
105
 
109
- return generateMultiOptionsLabel(translate, options, value);
106
+ return generateMultiOptionsLabel(translate, items, value);
110
107
  }
111
108
  };
112
109
  }
113
110
 
114
- function parseRange(base: FluxFilterBase): FluxFilterRangeEntry {
111
+ function parseRange(base: FluxFilterRangeSpec): FluxFilterRangeEntry {
115
112
  return {
116
113
  ...base,
117
114
  type: 'range',
@@ -122,14 +119,9 @@ function parseRange(base: FluxFilterBase): FluxFilterRangeEntry {
122
119
  }
123
120
 
124
121
  const [lower, upper] = value as number[];
122
+ const formatter = base.formatter ?? formatNumber;
125
123
 
126
- if ('formatter' in base) {
127
- const formatter = base.formatter as (value: number) => string;
128
-
129
- return `${formatter(lower!)} – ${formatter(upper!)}`;
130
- }
131
-
132
- return `${formatNumber(lower!)} – ${formatNumber(upper!)}`;
124
+ return `${formatter(lower!)} ${formatter(upper!)}`;
133
125
  }
134
126
  };
135
127
  }
@@ -150,7 +142,11 @@ function generateMultiOptionsLabel(translate: FluxTranslate, options: FluxFilter
150
142
  });
151
143
  }
152
144
 
153
- export const filterParsers = {
145
+ export type FluxFilterParsers = {
146
+ [K in keyof FluxFilterSpecMap]: (spec: FluxFilterSpecMap[K]) => FluxFilterEntryMap[K];
147
+ };
148
+
149
+ export const filterParsers: FluxFilterParsers = {
154
150
  date: parseDate,
155
151
  dateRange: parseDateRange,
156
152
  option: parseOption,
@@ -158,7 +154,7 @@ export const filterParsers = {
158
154
  options: parseOptions,
159
155
  optionsAsync: parseOptionsAsync,
160
156
  range: parseRange
161
- } as const;
157
+ };
162
158
 
163
159
  export function isFluxFilterOptionHeader(obj: object): obj is FluxFilterOptionHeader {
164
160
  return 'title' in obj;
package/src/data/i18n.ts CHANGED
@@ -4,9 +4,11 @@ export type FluxTranslation = keyof typeof english;
4
4
  export const english = {
5
5
  'flux.back': 'Back',
6
6
  'flux.cancel': 'Cancel',
7
+ 'flux.close': 'Close',
7
8
  'flux.comingSoon': 'Coming soon',
8
9
  'flux.continue': 'Continue',
9
10
  'flux.customPeriod': 'Custom period',
11
+ 'flux.delete': 'Delete',
10
12
  'flux.filter': 'Filter',
11
13
  'flux.filterReset': 'Reset filters',
12
14
  'flux.justNow': 'Just now',
@@ -32,6 +34,21 @@ export const english = {
32
34
  'flux.sortDescending': 'Descending',
33
35
  'flux.sortRemove': 'Remove sorting',
34
36
  'flux.today': 'Today',
37
+ 'flux.selectMonth': 'Select month',
38
+ 'flux.selectYear': 'Select year',
39
+ 'flux.previousMonth': 'Previous month',
40
+ 'flux.nextMonth': 'Next month',
41
+ 'flux.previousYears': 'Previous years',
42
+ 'flux.nextYears': 'Next years',
43
+ 'flux.goToPage': 'Go to page {page}',
44
+ 'flux.pinDigit': 'Digit {index} of {total}',
45
+ 'flux.dropFilesOrClick': 'Drop files here or click to upload',
46
+ 'flux.colorSaturationBrightness': 'Color saturation and brightness',
47
+ 'flux.customColor': 'Custom color',
48
+ 'flux.hue': 'Hue',
49
+ 'flux.opacity': 'Opacity',
50
+ 'flux.lowerBound': 'Lower bound',
51
+ 'flux.upperBound': 'Upper bound',
35
52
  'flux.galleryPlaceholderButton': 'Pick image',
36
53
  'flux.galleryPlaceholderMessage': 'Drop an image here or click the button to upload...',
37
54
  'flux.galleryPlaceholderTitle': 'Gallery',