@flux-ui/components 3.0.0-next.3 → 3.0.0-next.31

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 (549) hide show
  1. package/README.md +12 -40
  2. package/dist/component/FluxAction.vue.d.ts +7 -7
  3. package/dist/component/FluxActionBar.vue.d.ts +5 -5
  4. package/dist/component/FluxActionPane.vue.d.ts +2 -2
  5. package/dist/component/FluxActions.vue.d.ts +52 -50
  6. package/dist/component/FluxAlert.vue.d.ts +2 -2
  7. package/dist/component/FluxAnimatedColors.vue.d.ts +3 -2
  8. package/dist/component/FluxAspectRatio.vue.d.ts +2 -2
  9. package/dist/component/FluxAutoGrid.vue.d.ts +2 -2
  10. package/dist/component/FluxAvatar.vue.d.ts +7 -7
  11. package/dist/component/FluxBadge.vue.d.ts +8 -8
  12. package/dist/component/FluxBadgeStack.vue.d.ts +2 -2
  13. package/dist/component/FluxBorderShine.vue.d.ts +8 -9
  14. package/dist/component/FluxBoxedIcon.vue.d.ts +5 -5
  15. package/dist/component/FluxButton.vue.d.ts +8 -8
  16. package/dist/component/FluxButtonGroup.vue.d.ts +2 -2
  17. package/dist/component/FluxButtonStack.vue.d.ts +2 -2
  18. package/dist/component/FluxCalendar.vue.d.ts +5 -5
  19. package/dist/component/FluxCalendarEvent.vue.d.ts +5 -5
  20. package/dist/component/FluxCheckbox.vue.d.ts +6 -6
  21. package/dist/component/FluxChip.vue.d.ts +5 -5
  22. package/dist/component/FluxClickablePane.vue.d.ts +2 -2
  23. package/dist/component/FluxColorPicker.vue.d.ts +5 -5
  24. package/dist/component/FluxColorSelect.vue.d.ts +5 -5
  25. package/dist/component/FluxComment.vue.d.ts +2 -2
  26. package/dist/component/FluxConfirm.vue.d.ts +2 -2
  27. package/dist/component/FluxContainer.vue.d.ts +2 -2
  28. package/dist/component/FluxDataTable.vue.d.ts +52 -21
  29. package/dist/component/FluxDatePicker.vue.d.ts +6 -6
  30. package/dist/component/FluxDestructiveButton.vue.d.ts +7 -7
  31. package/dist/component/FluxDisabled.vue.d.ts +2 -2
  32. package/dist/component/FluxDivider.vue.d.ts +2 -2
  33. package/dist/component/FluxDotPattern.vue.d.ts +2 -2
  34. package/dist/component/FluxDropZone.vue.d.ts +6 -6
  35. package/dist/component/FluxDynamicView.vue.d.ts +2 -3
  36. package/dist/component/FluxExpandable.vue.d.ts +10 -10
  37. package/dist/component/FluxExpandableGroup.vue.d.ts +2 -2
  38. package/dist/component/FluxFader.vue.d.ts +5 -5
  39. package/dist/component/FluxFaderItem.vue.d.ts +2 -2
  40. package/dist/component/FluxFilter.vue.d.ts +8 -140
  41. package/dist/component/FluxFilterBar.vue.d.ts +38 -0
  42. package/dist/component/FluxFilterBase.vue.d.ts +45 -0
  43. package/dist/component/FluxFilterDate.vue.d.ts +2 -2
  44. package/dist/component/FluxFilterDateRange.vue.d.ts +2 -2
  45. package/dist/component/FluxFilterOption.vue.d.ts +5 -5
  46. package/dist/component/FluxFilterOptionAsync.vue.d.ts +5 -5
  47. package/dist/component/FluxFilterOptions.vue.d.ts +5 -5
  48. package/dist/component/FluxFilterOptionsAsync.vue.d.ts +5 -5
  49. package/dist/component/FluxFilterRange.vue.d.ts +2 -2
  50. package/dist/component/FluxFilterWindow.vue.d.ts +163 -0
  51. package/dist/component/FluxFlickeringGrid.vue.d.ts +2 -2
  52. package/dist/component/FluxFlyout.vue.d.ts +42 -41
  53. package/dist/component/FluxFocalPointEditor.vue.d.ts +5 -5
  54. package/dist/component/FluxFocalPointImage.vue.d.ts +2 -2
  55. package/dist/component/FluxForm.vue.d.ts +6 -6
  56. package/dist/component/FluxFormColumn.vue.d.ts +2 -2
  57. package/dist/component/FluxFormDateInput.vue.d.ts +52 -51
  58. package/dist/component/FluxFormDateRangeInput.vue.d.ts +50 -49
  59. package/dist/component/FluxFormDateTimeInput.vue.d.ts +50 -49
  60. package/dist/component/FluxFormField.vue.d.ts +2 -2
  61. package/dist/component/FluxFormFieldAddition.vue.d.ts +2 -2
  62. package/dist/component/FluxFormGrid.vue.d.ts +23 -0
  63. package/dist/component/FluxFormInput.vue.d.ts +12 -10
  64. package/dist/component/FluxFormInputAddition.vue.d.ts +2 -2
  65. package/dist/component/FluxFormInputGroup.vue.d.ts +3 -2
  66. package/dist/component/FluxFormPinInput.vue.d.ts +5 -5
  67. package/dist/component/FluxFormRangeSlider.vue.d.ts +25 -25
  68. package/dist/component/FluxFormRow.vue.d.ts +2 -2
  69. package/dist/component/FluxFormSection.vue.d.ts +2 -2
  70. package/dist/component/FluxFormSelect.vue.d.ts +6 -6
  71. package/dist/component/FluxFormSelectAsync.vue.d.ts +6 -6
  72. package/dist/component/FluxFormSlider.vue.d.ts +15 -15
  73. package/dist/component/FluxFormTextArea.vue.d.ts +7 -7
  74. package/dist/component/FluxFormTimeZonePicker.vue.d.ts +6 -6
  75. package/dist/component/FluxGallery.vue.d.ts +6 -6
  76. package/dist/component/FluxGalleryItem.vue.d.ts +5 -5
  77. package/dist/component/FluxGrid.vue.d.ts +2 -2
  78. package/dist/component/FluxGridColumn.vue.d.ts +2 -2
  79. package/dist/component/FluxGridPattern.vue.d.ts +2 -2
  80. package/dist/component/FluxIcon.vue.d.ts +5 -5
  81. package/dist/component/FluxInfo.vue.d.ts +2 -2
  82. package/dist/component/FluxInfoStack.vue.d.ts +2 -2
  83. package/dist/component/FluxItem.vue.d.ts +18 -0
  84. package/dist/component/FluxItemActions.vue.d.ts +21 -0
  85. package/dist/component/FluxItemContent.vue.d.ts +21 -0
  86. package/dist/component/FluxItemMedia.vue.d.ts +22 -0
  87. package/dist/component/FluxItemStack.vue.d.ts +18 -0
  88. package/dist/component/FluxLegend.vue.d.ts +2 -2
  89. package/dist/component/FluxLink.vue.d.ts +7 -7
  90. package/dist/component/FluxMenu.vue.d.ts +2 -2
  91. package/dist/component/FluxMenuGroup.vue.d.ts +2 -2
  92. package/dist/component/FluxMenuItem.vue.d.ts +25 -7
  93. package/dist/component/FluxMenuOptions.vue.d.ts +5 -5
  94. package/dist/component/FluxMenuSubHeader.vue.d.ts +2 -2
  95. package/dist/component/FluxMenuTitle.vue.d.ts +2 -2
  96. package/dist/component/FluxNotice.vue.d.ts +5 -5
  97. package/dist/component/FluxNoticeStack.vue.d.ts +2 -2
  98. package/dist/component/FluxOverflowBar.vue.d.ts +40 -0
  99. package/dist/component/FluxOverlay.vue.d.ts +5 -6
  100. package/dist/component/FluxOverlayProvider.vue.d.ts +3 -0
  101. package/dist/component/FluxPagination.vue.d.ts +5 -5
  102. package/dist/component/FluxPaginationBar.vue.d.ts +6 -6
  103. package/dist/component/FluxPaginationButton.vue.d.ts +30 -0
  104. package/dist/component/FluxPane.vue.d.ts +2 -2
  105. package/dist/component/FluxPaneBody.vue.d.ts +2 -2
  106. package/dist/component/FluxPaneDeck.vue.d.ts +2 -2
  107. package/dist/component/FluxPaneFooter.vue.d.ts +2 -2
  108. package/dist/component/FluxPaneGroup.vue.d.ts +2 -2
  109. package/dist/component/FluxPaneHeader.vue.d.ts +2 -2
  110. package/dist/component/FluxPaneIllustration.vue.d.ts +2 -2
  111. package/dist/component/FluxPaneMedia.vue.d.ts +3 -2
  112. package/dist/component/FluxPercentageBar.vue.d.ts +2 -2
  113. package/dist/component/FluxPersona.vue.d.ts +5 -5
  114. package/dist/component/FluxPlaceholder.vue.d.ts +5 -5
  115. package/dist/component/FluxPressable.vue.d.ts +7 -7
  116. package/dist/component/FluxPrimaryButton.vue.d.ts +7 -7
  117. package/dist/component/FluxPrimaryLinkButton.vue.d.ts +25 -0
  118. package/dist/component/FluxProgressBar.vue.d.ts +2 -2
  119. package/dist/component/FluxPrompt.vue.d.ts +31 -27
  120. package/dist/component/FluxPublishButton.vue.d.ts +7 -7
  121. package/dist/component/FluxQuantitySelector.vue.d.ts +5 -5
  122. package/dist/component/FluxRemove.vue.d.ts +5 -5
  123. package/dist/component/FluxRoot.vue.d.ts +2 -2
  124. package/dist/component/FluxSecondaryButton.vue.d.ts +7 -7
  125. package/dist/component/FluxSecondaryLinkButton.vue.d.ts +25 -0
  126. package/dist/component/FluxSegmentedControl.vue.d.ts +5 -5
  127. package/dist/component/FluxSegmentedView.vue.d.ts +5 -5
  128. package/dist/component/FluxSeparator.vue.d.ts +2 -2
  129. package/dist/component/FluxSlideOver.vue.d.ts +7 -7
  130. package/dist/component/FluxSnackbar.vue.d.ts +6 -6
  131. package/dist/component/FluxSnackbarProvider.vue.d.ts +2 -2
  132. package/dist/component/FluxSpacer.vue.d.ts +2 -2
  133. package/dist/component/FluxSpacing.vue.d.ts +2 -2
  134. package/dist/component/FluxSpinner.vue.d.ts +2 -2
  135. package/dist/component/FluxSplitButton.vue.d.ts +2 -2
  136. package/dist/component/FluxStack.vue.d.ts +2 -2
  137. package/dist/component/FluxStatistic.vue.d.ts +8 -5
  138. package/dist/component/FluxStepper.vue.d.ts +5 -6
  139. package/dist/component/FluxStepperStep.vue.d.ts +2 -2
  140. package/dist/component/FluxStepperSteps.vue.d.ts +5 -5
  141. package/dist/component/FluxTab.vue.d.ts +2 -2
  142. package/dist/component/FluxTabBar.vue.d.ts +2 -2
  143. package/dist/component/FluxTabBarItem.vue.d.ts +36 -36
  144. package/dist/component/FluxTable.vue.d.ts +15 -10
  145. package/dist/component/FluxTableActions.vue.d.ts +2 -2
  146. package/dist/component/FluxTableBar.vue.d.ts +20 -0
  147. package/dist/component/FluxTableCell.vue.d.ts +3 -2
  148. package/dist/component/FluxTableHeader.vue.d.ts +6 -6
  149. package/dist/component/FluxTableRow.vue.d.ts +2 -2
  150. package/dist/component/FluxTabs.vue.d.ts +5 -6
  151. package/dist/component/FluxTag.vue.d.ts +8 -8
  152. package/dist/component/FluxTagStack.vue.d.ts +2 -2
  153. package/dist/component/FluxTicks.vue.d.ts +2 -2
  154. package/dist/component/FluxTimeline.vue.d.ts +2 -2
  155. package/dist/component/FluxTimelineItem.vue.d.ts +2 -2
  156. package/dist/component/FluxToggle.vue.d.ts +5 -5
  157. package/dist/component/FluxToolbar.vue.d.ts +2 -2
  158. package/dist/component/FluxToolbarGroup.vue.d.ts +2 -2
  159. package/dist/component/FluxTooltip.vue.d.ts +5 -6
  160. package/dist/component/FluxTooltipProvider.vue.d.ts +2 -2
  161. package/dist/component/FluxWindow.vue.d.ts +3 -3
  162. package/dist/component/index.d.ts +12 -1
  163. package/dist/component/primitive/Anchor.vue.d.ts +2 -2
  164. package/dist/component/primitive/AnchorPopup.vue.d.ts +2 -3
  165. package/dist/component/primitive/CoordinatePicker.vue.d.ts +6 -6
  166. package/dist/component/primitive/CoordinatePickerThumb.vue.d.ts +7 -7
  167. package/dist/component/primitive/FilterBadge.vue.d.ts +12 -0
  168. package/dist/component/primitive/FilterItem.vue.d.ts +5 -5
  169. package/dist/component/primitive/FilterMenuRenderer.d.ts +21 -10
  170. package/dist/component/primitive/FilterOptionBase.vue.d.ts +6 -6
  171. package/dist/component/primitive/SelectBase.vue.d.ts +170 -101
  172. package/dist/component/primitive/SliderBase.vue.d.ts +7 -7
  173. package/dist/component/primitive/SliderThumb.vue.d.ts +7 -7
  174. package/dist/component/primitive/SliderTrack.vue.d.ts +2 -2
  175. package/dist/component/primitive/VNodeRenderer.d.ts +5 -6
  176. package/dist/component/primitive/index.d.ts +2 -1
  177. package/dist/composable/index.d.ts +1 -1
  178. package/dist/composable/private/index.d.ts +0 -2
  179. package/dist/composable/private/useFormSelect.d.ts +6 -7
  180. package/dist/composable/private/useTranslate.d.ts +0 -1
  181. package/dist/composable/useBreakpoints.d.ts +1 -2
  182. package/dist/composable/useDisabled.d.ts +2 -3
  183. package/dist/composable/useDisabledInjection.d.ts +2 -2
  184. package/dist/composable/useExpandableGroupInjection.d.ts +2 -2
  185. package/dist/composable/useFilterInjection.d.ts +2 -2
  186. package/dist/composable/useFlyoutInjection.d.ts +2 -6
  187. package/dist/composable/useFormFieldInjection.d.ts +2 -2
  188. package/dist/composable/useTableInjection.d.ts +2 -7
  189. package/dist/composable/useTooltipInjection.d.ts +3 -0
  190. package/dist/data/di.d.ts +4 -1
  191. package/dist/data/filter.d.ts +18 -2
  192. package/dist/data/helper.d.ts +0 -1
  193. package/dist/data/i18n.d.ts +1 -2
  194. package/dist/data/iconRegistry.d.ts +0 -1
  195. package/dist/data/index.d.ts +0 -1
  196. package/dist/data/inputMask.d.ts +0 -1
  197. package/dist/data/store.d.ts +2 -3
  198. package/dist/index.css +6058 -0
  199. package/dist/index.d.ts +1 -2
  200. package/dist/index.js +17628 -0
  201. package/dist/index.js.map +1 -0
  202. package/dist/transition/FluxAutoHeightTransition.vue.d.ts +2 -2
  203. package/dist/transition/FluxAutoWidthTransition.vue.d.ts +2 -2
  204. package/dist/transition/FluxBreakthroughTransition.vue.d.ts +2 -2
  205. package/dist/transition/FluxFadeTransition.vue.d.ts +2 -2
  206. package/dist/transition/FluxOverlayTransition.vue.d.ts +2 -2
  207. package/dist/transition/FluxRouteTransition.vue.d.ts +2 -2
  208. package/dist/transition/FluxSlideOverTransition.vue.d.ts +2 -2
  209. package/dist/transition/FluxTooltipTransition.vue.d.ts +2 -2
  210. package/dist/transition/FluxVerticalWindowTransition.vue.d.ts +2 -2
  211. package/dist/transition/FluxWindowTransition.vue.d.ts +2 -2
  212. package/dist/transition/index.d.ts +0 -1
  213. package/dist/util/createDialogRenderer.d.ts +1 -2
  214. package/dist/util/createLabelForDateRange.d.ts +0 -1
  215. package/dist/util/index.d.ts +0 -1
  216. package/dist/vite.d.ts +7 -0
  217. package/package.json +24 -23
  218. package/src/component/FluxActionBar.vue +1 -1
  219. package/src/component/FluxAnimatedColors.vue +6 -4
  220. package/src/component/FluxAutoGrid.vue +1 -1
  221. package/src/component/FluxBorderShine.vue +1 -1
  222. package/src/component/FluxCalendar.vue +3 -3
  223. package/src/component/FluxColorPicker.vue +1 -1
  224. package/src/component/FluxContainer.vue +1 -1
  225. package/src/component/FluxDataTable.vue +68 -16
  226. package/src/component/FluxDatePicker.vue +7 -5
  227. package/src/component/FluxDynamicView.vue +1 -1
  228. package/src/component/FluxExpandable.vue +1 -1
  229. package/src/component/FluxExpandableGroup.vue +1 -1
  230. package/src/component/FluxFader.vue +2 -1
  231. package/src/component/FluxFilter.vue +20 -107
  232. package/src/component/FluxFilterBar.vue +117 -0
  233. package/src/component/FluxFilterBase.vue +141 -0
  234. package/src/component/FluxFilterOptionAsync.vue +1 -2
  235. package/src/component/FluxFilterOptionsAsync.vue +1 -2
  236. package/src/component/FluxFilterWindow.vue +83 -0
  237. package/src/component/FluxFlyout.vue +4 -3
  238. package/src/component/FluxForm.vue +7 -7
  239. package/src/component/FluxFormGrid.vue +23 -0
  240. package/src/component/FluxFormInput.vue +10 -1
  241. package/src/component/FluxFormInputGroup.vue +2 -0
  242. package/src/component/FluxFormSelect.vue +1 -1
  243. package/src/component/FluxFormSelectAsync.vue +2 -2
  244. package/src/component/FluxFormTimeZonePicker.vue +5 -0
  245. package/src/component/FluxGallery.vue +2 -2
  246. package/src/component/FluxGrid.vue +1 -1
  247. package/src/component/FluxIcon.vue +0 -12
  248. package/src/component/FluxItem.vue +11 -0
  249. package/src/component/FluxItemActions.vue +18 -0
  250. package/src/component/FluxItemContent.vue +15 -0
  251. package/src/component/FluxItemMedia.vue +20 -0
  252. package/src/component/FluxItemStack.vue +14 -0
  253. package/src/component/FluxMenuItem.vue +10 -2
  254. package/src/component/FluxMenuOptions.vue +1 -1
  255. package/src/component/FluxOverflowBar.vue +133 -0
  256. package/src/component/FluxOverlay.vue +1 -1
  257. package/src/component/FluxOverlayProvider.vue +39 -0
  258. package/src/component/FluxPagination.vue +16 -14
  259. package/src/component/FluxPaginationBar.vue +27 -38
  260. package/src/component/FluxPaginationButton.vue +39 -0
  261. package/src/component/FluxPaneMedia.vue +2 -0
  262. package/src/component/FluxPressable.vue +1 -1
  263. package/src/component/FluxPrimaryLinkButton.vue +28 -0
  264. package/src/component/FluxProgressBar.vue +1 -1
  265. package/src/component/FluxRoot.vue +3 -26
  266. package/src/component/FluxSecondaryLinkButton.vue +28 -0
  267. package/src/component/FluxStack.vue +1 -1
  268. package/src/component/FluxStatistic.vue +23 -9
  269. package/src/component/FluxStepper.vue +1 -1
  270. package/src/component/FluxTabBar.vue +23 -17
  271. package/src/component/FluxTabBarItem.vue +1 -1
  272. package/src/component/FluxTable.vue +25 -4
  273. package/src/component/FluxTableBar.vue +37 -0
  274. package/src/component/FluxTableCell.vue +3 -1
  275. package/src/component/FluxTabs.vue +1 -1
  276. package/src/component/FluxTooltip.vue +3 -1
  277. package/src/component/FluxTooltipProvider.vue +7 -3
  278. package/src/component/index.ts +12 -0
  279. package/src/component/primitive/AnchorPopup.vue +11 -5
  280. package/src/component/primitive/FilterBadge.vue +43 -0
  281. package/src/component/primitive/FilterItem.vue +1 -1
  282. package/src/component/primitive/FilterMenuRenderer.ts +10 -198
  283. package/src/component/primitive/SelectBase.vue +9 -2
  284. package/src/component/primitive/index.ts +2 -0
  285. package/src/composable/index.ts +1 -0
  286. package/src/composable/private/index.ts +0 -1
  287. package/src/composable/private/useFormSelect.ts +2 -2
  288. package/src/composable/useFilterInjection.ts +1 -8
  289. package/src/composable/useTooltipInjection.ts +8 -0
  290. package/src/css/base.scss +6 -3
  291. package/src/css/component/Action.module.scss +10 -7
  292. package/src/css/component/Avatar.module.scss +14 -14
  293. package/src/css/component/Badge.module.scss +17 -16
  294. package/src/css/component/Button.module.scss +69 -35
  295. package/src/css/component/Calendar.module.scss +12 -12
  296. package/src/css/component/Chip.module.scss +7 -19
  297. package/src/css/component/Color.module.scss +4 -4
  298. package/src/css/component/Comment.module.scss +15 -14
  299. package/src/css/component/DatePicker.module.scss +12 -23
  300. package/src/css/component/Divider.module.scss +2 -2
  301. package/src/css/component/DropZone.module.scss +27 -24
  302. package/src/css/component/Expandable.module.scss +4 -4
  303. package/src/css/component/Filter.module.scss +45 -5
  304. package/src/css/component/Flyout.module.scss +1 -1
  305. package/src/css/component/Form.module.scss +91 -50
  306. package/src/css/component/Gallery.module.scss +14 -4
  307. package/src/css/component/Icon.module.scss +36 -50
  308. package/src/css/component/Info.module.scss +2 -3
  309. package/src/css/component/Item.module.scss +74 -0
  310. package/src/css/component/Layout.module.scss +3 -0
  311. package/src/css/component/Menu.module.scss +29 -30
  312. package/src/css/component/Notice.module.scss +43 -43
  313. package/src/css/component/OverflowBar.module.scss +41 -0
  314. package/src/css/component/Overlay.module.scss +55 -7
  315. package/src/css/component/Pagination.module.scss +70 -33
  316. package/src/css/component/Pane.module.scss +52 -9
  317. package/src/css/component/PercentageBar.module.scss +1 -1
  318. package/src/css/component/Placeholder.module.scss +4 -4
  319. package/src/css/component/Progress.module.scss +17 -6
  320. package/src/css/component/Remove.module.scss +4 -4
  321. package/src/css/component/SegmentedControl.module.scss +8 -8
  322. package/src/css/component/Snackbar.module.scss +19 -18
  323. package/src/css/component/Spinner.module.scss +2 -2
  324. package/src/css/component/Statistic.module.scss +12 -39
  325. package/src/css/component/Stepper.module.scss +9 -9
  326. package/src/css/component/Tab.module.scss +21 -9
  327. package/src/css/component/Table.module.scss +67 -20
  328. package/src/css/component/Timeline.module.scss +20 -20
  329. package/src/css/component/Toolbar.module.scss +7 -2
  330. package/src/css/component/Tooltip.module.scss +4 -2
  331. package/src/css/component/Transition.module.scss +5 -5
  332. package/src/css/component/Visual.module.scss +3 -3
  333. package/src/css/component/base/Button.module.scss +10 -0
  334. package/src/css/component/base/Pane.module.scss +4 -8
  335. package/src/css/component/primitive/CoordinatePicker.module.scss +3 -3
  336. package/src/css/component/primitive/Slider.module.scss +10 -15
  337. package/src/css/mixin/breakpoints.scss +15 -3
  338. package/src/css/mixin/focus-ring.scss +2 -2
  339. package/src/css/typography.scss +13 -7
  340. package/src/css/variables.scss +218 -186
  341. package/src/data/di.ts +5 -0
  342. package/src/data/filter.ts +161 -1
  343. package/src/data/i18n.ts +1 -1
  344. package/src/data/iconRegistry.ts +5 -1
  345. package/src/data/store.ts +6 -4
  346. package/src/index.ts +1 -0
  347. package/src/util/createDialogRenderer.ts +36 -19
  348. package/src/vite.d.ts +2 -8
  349. package/tsconfig.json +4 -42
  350. package/dist/component/FluxAction.vue.d.ts.map +0 -1
  351. package/dist/component/FluxActionBar.vue.d.ts.map +0 -1
  352. package/dist/component/FluxActionPane.vue.d.ts.map +0 -1
  353. package/dist/component/FluxActions.vue.d.ts.map +0 -1
  354. package/dist/component/FluxAlert.vue.d.ts.map +0 -1
  355. package/dist/component/FluxAnimatedColors.vue.d.ts.map +0 -1
  356. package/dist/component/FluxAspectRatio.vue.d.ts.map +0 -1
  357. package/dist/component/FluxAutoGrid.vue.d.ts.map +0 -1
  358. package/dist/component/FluxAvatar.vue.d.ts.map +0 -1
  359. package/dist/component/FluxBadge.vue.d.ts.map +0 -1
  360. package/dist/component/FluxBadgeStack.vue.d.ts.map +0 -1
  361. package/dist/component/FluxBorderShine.vue.d.ts.map +0 -1
  362. package/dist/component/FluxBoxedIcon.vue.d.ts.map +0 -1
  363. package/dist/component/FluxButton.vue.d.ts.map +0 -1
  364. package/dist/component/FluxButtonGroup.vue.d.ts.map +0 -1
  365. package/dist/component/FluxButtonStack.vue.d.ts.map +0 -1
  366. package/dist/component/FluxCalendar.vue.d.ts.map +0 -1
  367. package/dist/component/FluxCalendarEvent.vue.d.ts.map +0 -1
  368. package/dist/component/FluxCheckbox.vue.d.ts.map +0 -1
  369. package/dist/component/FluxChip.vue.d.ts.map +0 -1
  370. package/dist/component/FluxClickablePane.vue.d.ts.map +0 -1
  371. package/dist/component/FluxColorPicker.vue.d.ts.map +0 -1
  372. package/dist/component/FluxColorSelect.vue.d.ts.map +0 -1
  373. package/dist/component/FluxComment.vue.d.ts.map +0 -1
  374. package/dist/component/FluxConfirm.vue.d.ts.map +0 -1
  375. package/dist/component/FluxContainer.vue.d.ts.map +0 -1
  376. package/dist/component/FluxDataTable.vue.d.ts.map +0 -1
  377. package/dist/component/FluxDatePicker.vue.d.ts.map +0 -1
  378. package/dist/component/FluxDestructiveButton.vue.d.ts.map +0 -1
  379. package/dist/component/FluxDisabled.vue.d.ts.map +0 -1
  380. package/dist/component/FluxDivider.vue.d.ts.map +0 -1
  381. package/dist/component/FluxDotPattern.vue.d.ts.map +0 -1
  382. package/dist/component/FluxDropZone.vue.d.ts.map +0 -1
  383. package/dist/component/FluxDynamicView.vue.d.ts.map +0 -1
  384. package/dist/component/FluxExpandable.vue.d.ts.map +0 -1
  385. package/dist/component/FluxExpandableGroup.vue.d.ts.map +0 -1
  386. package/dist/component/FluxFader.vue.d.ts.map +0 -1
  387. package/dist/component/FluxFaderItem.vue.d.ts.map +0 -1
  388. package/dist/component/FluxFilter.vue.d.ts.map +0 -1
  389. package/dist/component/FluxFilterDate.vue.d.ts.map +0 -1
  390. package/dist/component/FluxFilterDateRange.vue.d.ts.map +0 -1
  391. package/dist/component/FluxFilterOption.vue.d.ts.map +0 -1
  392. package/dist/component/FluxFilterOptionAsync.vue.d.ts.map +0 -1
  393. package/dist/component/FluxFilterOptions.vue.d.ts.map +0 -1
  394. package/dist/component/FluxFilterOptionsAsync.vue.d.ts.map +0 -1
  395. package/dist/component/FluxFilterRange.vue.d.ts.map +0 -1
  396. package/dist/component/FluxFlickeringGrid.vue.d.ts.map +0 -1
  397. package/dist/component/FluxFlyout.vue.d.ts.map +0 -1
  398. package/dist/component/FluxFocalPointEditor.vue.d.ts.map +0 -1
  399. package/dist/component/FluxFocalPointImage.vue.d.ts.map +0 -1
  400. package/dist/component/FluxForm.vue.d.ts.map +0 -1
  401. package/dist/component/FluxFormColumn.vue.d.ts.map +0 -1
  402. package/dist/component/FluxFormDateInput.vue.d.ts.map +0 -1
  403. package/dist/component/FluxFormDateRangeInput.vue.d.ts.map +0 -1
  404. package/dist/component/FluxFormDateTimeInput.vue.d.ts.map +0 -1
  405. package/dist/component/FluxFormField.vue.d.ts.map +0 -1
  406. package/dist/component/FluxFormFieldAddition.vue.d.ts.map +0 -1
  407. package/dist/component/FluxFormInput.vue.d.ts.map +0 -1
  408. package/dist/component/FluxFormInputAddition.vue.d.ts.map +0 -1
  409. package/dist/component/FluxFormInputGroup.vue.d.ts.map +0 -1
  410. package/dist/component/FluxFormPinInput.vue.d.ts.map +0 -1
  411. package/dist/component/FluxFormRangeSlider.vue.d.ts.map +0 -1
  412. package/dist/component/FluxFormRow.vue.d.ts.map +0 -1
  413. package/dist/component/FluxFormSection.vue.d.ts.map +0 -1
  414. package/dist/component/FluxFormSelect.vue.d.ts.map +0 -1
  415. package/dist/component/FluxFormSelectAsync.vue.d.ts.map +0 -1
  416. package/dist/component/FluxFormSlider.vue.d.ts.map +0 -1
  417. package/dist/component/FluxFormTextArea.vue.d.ts.map +0 -1
  418. package/dist/component/FluxFormTimeZonePicker.vue.d.ts.map +0 -1
  419. package/dist/component/FluxGallery.vue.d.ts.map +0 -1
  420. package/dist/component/FluxGalleryItem.vue.d.ts.map +0 -1
  421. package/dist/component/FluxGrid.vue.d.ts.map +0 -1
  422. package/dist/component/FluxGridColumn.vue.d.ts.map +0 -1
  423. package/dist/component/FluxGridPattern.vue.d.ts.map +0 -1
  424. package/dist/component/FluxIcon.vue.d.ts.map +0 -1
  425. package/dist/component/FluxInfo.vue.d.ts.map +0 -1
  426. package/dist/component/FluxInfoStack.vue.d.ts.map +0 -1
  427. package/dist/component/FluxLegend.vue.d.ts.map +0 -1
  428. package/dist/component/FluxLink.vue.d.ts.map +0 -1
  429. package/dist/component/FluxMenu.vue.d.ts.map +0 -1
  430. package/dist/component/FluxMenuGroup.vue.d.ts.map +0 -1
  431. package/dist/component/FluxMenuItem.vue.d.ts.map +0 -1
  432. package/dist/component/FluxMenuOptions.vue.d.ts.map +0 -1
  433. package/dist/component/FluxMenuSubHeader.vue.d.ts.map +0 -1
  434. package/dist/component/FluxMenuTitle.vue.d.ts.map +0 -1
  435. package/dist/component/FluxNotice.vue.d.ts.map +0 -1
  436. package/dist/component/FluxNoticeStack.vue.d.ts.map +0 -1
  437. package/dist/component/FluxOverlay.vue.d.ts.map +0 -1
  438. package/dist/component/FluxPagination.vue.d.ts.map +0 -1
  439. package/dist/component/FluxPaginationBar.vue.d.ts.map +0 -1
  440. package/dist/component/FluxPane.vue.d.ts.map +0 -1
  441. package/dist/component/FluxPaneBody.vue.d.ts.map +0 -1
  442. package/dist/component/FluxPaneDeck.vue.d.ts.map +0 -1
  443. package/dist/component/FluxPaneFooter.vue.d.ts.map +0 -1
  444. package/dist/component/FluxPaneGroup.vue.d.ts.map +0 -1
  445. package/dist/component/FluxPaneHeader.vue.d.ts.map +0 -1
  446. package/dist/component/FluxPaneIllustration.vue.d.ts.map +0 -1
  447. package/dist/component/FluxPaneMedia.vue.d.ts.map +0 -1
  448. package/dist/component/FluxPercentageBar.vue.d.ts.map +0 -1
  449. package/dist/component/FluxPersona.vue.d.ts.map +0 -1
  450. package/dist/component/FluxPlaceholder.vue.d.ts.map +0 -1
  451. package/dist/component/FluxPressable.vue.d.ts.map +0 -1
  452. package/dist/component/FluxPrimaryButton.vue.d.ts.map +0 -1
  453. package/dist/component/FluxProgressBar.vue.d.ts.map +0 -1
  454. package/dist/component/FluxPrompt.vue.d.ts.map +0 -1
  455. package/dist/component/FluxPublishButton.vue.d.ts.map +0 -1
  456. package/dist/component/FluxQuantitySelector.vue.d.ts.map +0 -1
  457. package/dist/component/FluxRemove.vue.d.ts.map +0 -1
  458. package/dist/component/FluxRoot.vue.d.ts.map +0 -1
  459. package/dist/component/FluxSecondaryButton.vue.d.ts.map +0 -1
  460. package/dist/component/FluxSegmentedControl.vue.d.ts.map +0 -1
  461. package/dist/component/FluxSegmentedView.vue.d.ts.map +0 -1
  462. package/dist/component/FluxSeparator.vue.d.ts.map +0 -1
  463. package/dist/component/FluxSlideOver.vue.d.ts.map +0 -1
  464. package/dist/component/FluxSnackbar.vue.d.ts.map +0 -1
  465. package/dist/component/FluxSnackbarProvider.vue.d.ts.map +0 -1
  466. package/dist/component/FluxSpacer.vue.d.ts.map +0 -1
  467. package/dist/component/FluxSpacing.vue.d.ts.map +0 -1
  468. package/dist/component/FluxSpinner.vue.d.ts.map +0 -1
  469. package/dist/component/FluxSplitButton.vue.d.ts.map +0 -1
  470. package/dist/component/FluxStack.vue.d.ts.map +0 -1
  471. package/dist/component/FluxStatistic.vue.d.ts.map +0 -1
  472. package/dist/component/FluxStepper.vue.d.ts.map +0 -1
  473. package/dist/component/FluxStepperStep.vue.d.ts.map +0 -1
  474. package/dist/component/FluxStepperSteps.vue.d.ts.map +0 -1
  475. package/dist/component/FluxTab.vue.d.ts.map +0 -1
  476. package/dist/component/FluxTabBar.vue.d.ts.map +0 -1
  477. package/dist/component/FluxTabBarItem.vue.d.ts.map +0 -1
  478. package/dist/component/FluxTable.vue.d.ts.map +0 -1
  479. package/dist/component/FluxTableActions.vue.d.ts.map +0 -1
  480. package/dist/component/FluxTableCell.vue.d.ts.map +0 -1
  481. package/dist/component/FluxTableHeader.vue.d.ts.map +0 -1
  482. package/dist/component/FluxTableRow.vue.d.ts.map +0 -1
  483. package/dist/component/FluxTabs.vue.d.ts.map +0 -1
  484. package/dist/component/FluxTag.vue.d.ts.map +0 -1
  485. package/dist/component/FluxTagStack.vue.d.ts.map +0 -1
  486. package/dist/component/FluxTicks.vue.d.ts.map +0 -1
  487. package/dist/component/FluxTimeline.vue.d.ts.map +0 -1
  488. package/dist/component/FluxTimelineItem.vue.d.ts.map +0 -1
  489. package/dist/component/FluxToggle.vue.d.ts.map +0 -1
  490. package/dist/component/FluxToolbar.vue.d.ts.map +0 -1
  491. package/dist/component/FluxToolbarGroup.vue.d.ts.map +0 -1
  492. package/dist/component/FluxTooltip.vue.d.ts.map +0 -1
  493. package/dist/component/FluxTooltipProvider.vue.d.ts.map +0 -1
  494. package/dist/component/FluxWindow.vue.d.ts.map +0 -1
  495. package/dist/component/index.d.ts.map +0 -1
  496. package/dist/component/primitive/Anchor.vue.d.ts.map +0 -1
  497. package/dist/component/primitive/AnchorPopup.vue.d.ts.map +0 -1
  498. package/dist/component/primitive/CoordinatePicker.vue.d.ts.map +0 -1
  499. package/dist/component/primitive/CoordinatePickerThumb.vue.d.ts.map +0 -1
  500. package/dist/component/primitive/FilterItem.vue.d.ts.map +0 -1
  501. package/dist/component/primitive/FilterMenuRenderer.d.ts.map +0 -1
  502. package/dist/component/primitive/FilterOptionBase.vue.d.ts.map +0 -1
  503. package/dist/component/primitive/SelectBase.vue.d.ts.map +0 -1
  504. package/dist/component/primitive/SliderBase.vue.d.ts.map +0 -1
  505. package/dist/component/primitive/SliderThumb.vue.d.ts.map +0 -1
  506. package/dist/component/primitive/SliderTrack.vue.d.ts.map +0 -1
  507. package/dist/component/primitive/VNodeRenderer.d.ts.map +0 -1
  508. package/dist/component/primitive/index.d.ts.map +0 -1
  509. package/dist/composable/index.d.ts.map +0 -1
  510. package/dist/composable/private/index.d.ts.map +0 -1
  511. package/dist/composable/private/useFormSelect.d.ts.map +0 -1
  512. package/dist/composable/private/useLoaded.d.ts +0 -5
  513. package/dist/composable/private/useLoaded.d.ts.map +0 -1
  514. package/dist/composable/private/useTranslate.d.ts.map +0 -1
  515. package/dist/composable/useBreakpoints.d.ts.map +0 -1
  516. package/dist/composable/useDisabled.d.ts.map +0 -1
  517. package/dist/composable/useDisabledInjection.d.ts.map +0 -1
  518. package/dist/composable/useExpandableGroupInjection.d.ts.map +0 -1
  519. package/dist/composable/useFilterInjection.d.ts.map +0 -1
  520. package/dist/composable/useFlyoutInjection.d.ts.map +0 -1
  521. package/dist/composable/useFormFieldInjection.d.ts.map +0 -1
  522. package/dist/composable/useTableInjection.d.ts.map +0 -1
  523. package/dist/data/di.d.ts.map +0 -1
  524. package/dist/data/filter.d.ts.map +0 -1
  525. package/dist/data/helper.d.ts.map +0 -1
  526. package/dist/data/i18n.d.ts.map +0 -1
  527. package/dist/data/iconRegistry.d.ts.map +0 -1
  528. package/dist/data/index.d.ts.map +0 -1
  529. package/dist/data/inputMask.d.ts.map +0 -1
  530. package/dist/data/store.d.ts.map +0 -1
  531. package/dist/flux.css +0 -1
  532. package/dist/flux.js +0 -11402
  533. package/dist/flux.js.map +0 -1
  534. package/dist/index.d.ts.map +0 -1
  535. package/dist/transition/FluxAutoHeightTransition.vue.d.ts.map +0 -1
  536. package/dist/transition/FluxAutoWidthTransition.vue.d.ts.map +0 -1
  537. package/dist/transition/FluxBreakthroughTransition.vue.d.ts.map +0 -1
  538. package/dist/transition/FluxFadeTransition.vue.d.ts.map +0 -1
  539. package/dist/transition/FluxOverlayTransition.vue.d.ts.map +0 -1
  540. package/dist/transition/FluxRouteTransition.vue.d.ts.map +0 -1
  541. package/dist/transition/FluxSlideOverTransition.vue.d.ts.map +0 -1
  542. package/dist/transition/FluxTooltipTransition.vue.d.ts.map +0 -1
  543. package/dist/transition/FluxVerticalWindowTransition.vue.d.ts.map +0 -1
  544. package/dist/transition/FluxWindowTransition.vue.d.ts.map +0 -1
  545. package/dist/transition/index.d.ts.map +0 -1
  546. package/dist/util/createDialogRenderer.d.ts.map +0 -1
  547. package/dist/util/createLabelForDateRange.d.ts.map +0 -1
  548. package/dist/util/index.d.ts.map +0 -1
  549. package/src/composable/private/useLoaded.ts +0 -21
@@ -41,7 +41,7 @@
41
41
  }>();
42
42
 
43
43
  const disabled = useDisabled(toRef(() => componentDisabled));
44
- const {groups, selected, values} = useFormSelect(modelValue, isMultiple, options, modelSearch);
44
+ const {groups, selected, values} = useFormSelect(modelValue, isMultiple, toRef(() => options), modelSearch);
45
45
 
46
46
  function onDeselect(id: string | number | null): void {
47
47
  if (unref(isMultiple)) {
@@ -16,12 +16,12 @@
16
16
  <script
17
17
  lang="ts"
18
18
  setup>
19
- import { useDebouncedRef } from '@flux-ui/internals';
19
+ import { useDebouncedRef, useLoaded } from '@basmilius/common';
20
20
  import type { FluxFormSelectEntry, FluxFormSelectValue, FluxFormSelectValueSingle } from '@flux-ui/types';
21
21
  import { computed, ref, toRef, unref, watch } from 'vue';
22
22
  import { SelectBase } from '$flux/component/primitive';
23
23
  import { useDisabled } from '$flux/composable';
24
- import { useFormSelect, useLoaded } from '$flux/composable/private';
24
+ import { useFormSelect } from '$flux/composable/private';
25
25
  import { isFluxFormSelectOption } from '$flux/data';
26
26
 
27
27
  const modelSearch = defineModel<string>('searchQuery', {
@@ -10,6 +10,7 @@
10
10
  <script
11
11
  lang="ts"
12
12
  setup>
13
+ import { isSSR } from '@flux-ui/internals';
13
14
  import type { FluxFormSelectEntry } from '@flux-ui/types';
14
15
  import { upperFirst } from 'lodash-es';
15
16
  import { computed, toRef } from 'vue';
@@ -651,6 +652,10 @@
651
652
  const translate = useTranslate();
652
653
 
653
654
  const options = computed<FluxFormSelectEntry[]>(() => {
655
+ if (isSSR) {
656
+ return [];
657
+ }
658
+
654
659
  const groups: Record<string, FluxFormSelectEntry[]> = {};
655
660
  const options: FluxFormSelectEntry[] = [];
656
661
 
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <FluxDropZone
3
+ :class="$style.gallery"
3
4
  accept="image/*"
4
5
  :disabled="!isEditable"
5
- :is-empty="items && items.length === 0"
6
6
  is-multiple
7
7
  placeholder-icon="image"
8
8
  :placeholder-button="translate('flux.galleryPlaceholderButton')"
@@ -11,7 +11,7 @@
11
11
  @select-multiple="onFilesSelected">
12
12
  <template #default="{showPicker}">
13
13
  <TransitionGroup
14
- :class="$style.gallery"
14
+ :class="$style.galleryGrid"
15
15
  :move-class="$style.galleryMove"
16
16
  tag="div">
17
17
  <template
@@ -16,7 +16,7 @@
16
16
 
17
17
  const {
18
18
  columns = 12,
19
- gap = 30
19
+ gap = 21
20
20
  } = defineProps<{
21
21
  readonly columns?: number;
22
22
  readonly gap?: number;
@@ -17,18 +17,6 @@
17
17
  fill="currentColor"/>
18
18
  </svg>
19
19
 
20
- <i
21
- v-else-if="name"
22
- :class="$style.materialSymbolIcon"
23
- :style="{
24
- fontSize: size && `${size}px`
25
- }"
26
- role="img"
27
- aria-hidden="true"
28
- @click="onClick">
29
- {{ name }}
30
- </i>
31
-
32
20
  <i
33
21
  v-else
34
22
  :class="$style.icon"/>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <div :class="$style.item">
3
+ <slot/>
4
+ </div>
5
+ </template>
6
+
7
+ <script
8
+ lang="ts"
9
+ setup>
10
+ import $style from '$flux/css/component/Item.module.scss';
11
+ </script>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <FluxActionBar
3
+ :class="[$style.itemActions, isCenter && $style.isCenter]"
4
+ #primary>
5
+ <slot/>
6
+ </FluxActionBar>
7
+ </template>
8
+
9
+ <script
10
+ lang="ts"
11
+ setup>
12
+ import $style from '$flux/css/component/Item.module.scss';
13
+ import FluxActionBar from './FluxActionBar.vue';
14
+
15
+ defineProps<{
16
+ readonly isCenter?: boolean;
17
+ }>();
18
+ </script>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div :class="[$style.itemContent, isCenter && $style.isCenter]">
3
+ <slot/>
4
+ </div>
5
+ </template>
6
+
7
+ <script
8
+ lang="ts"
9
+ setup>
10
+ import $style from '$flux/css/component/Item.module.scss';
11
+
12
+ defineProps<{
13
+ readonly isCenter?: boolean;
14
+ }>();
15
+ </script>
@@ -0,0 +1,20 @@
1
+ <template>
2
+ <div
3
+ :class="[$style.itemMedia, isCenter && $style.isCenter]"
4
+ :style="{
5
+ '--size': size && `${size}px`
6
+ }">
7
+ <slot/>
8
+ </div>
9
+ </template>
10
+
11
+ <script
12
+ lang="ts"
13
+ setup>
14
+ import $style from '$flux/css/component/Item.module.scss';
15
+
16
+ defineProps<{
17
+ readonly isCenter?: boolean;
18
+ readonly size?: number;
19
+ }>();
20
+ </script>
@@ -0,0 +1,14 @@
1
+ <template>
2
+ <FluxStack
3
+ :class="$style.itemStack"
4
+ :gap="0">
5
+ <slot/>
6
+ </FluxStack>
7
+ </template>
8
+
9
+ <script
10
+ lang="ts"
11
+ setup>
12
+ import FluxStack from './FluxStack.vue';
13
+ import $style from '$flux/css/component/Item.module.scss';
14
+ </script>
@@ -14,6 +14,7 @@
14
14
  [$style.menuItemSelected]: isSelectable && isSelected
15
15
  }"
16
16
  :aria-checked="isSelectable ? isSelected : undefined"
17
+ :tabindex="tabindex"
17
18
  @click="$emit('click', $event)">
18
19
  <template
19
20
  v-if="isSelectable && (!iconLeading || isSelected)"
@@ -29,11 +30,11 @@
29
30
  <img
30
31
  :class="$style.menuItemImage"
31
32
  :src="imageSrc"
32
- alt=""/>
33
+ :alt="imageAlt ?? ''"/>
33
34
  </template>
34
35
 
35
36
  <template
36
- v-if="command || commandIcon || commandLoading"
37
+ v-if="command || commandIcon || commandLoading || slots.after"
37
38
  #after>
38
39
  <FluxSpinner
39
40
  v-if="commandLoading"
@@ -52,6 +53,8 @@
52
53
  :class="$style.menuItemCommandIcon"
53
54
  :name="commandIcon"/>
54
55
  </template>
56
+
57
+ <slot name="after"/>
55
58
  </template>
56
59
  </FluxButton>
57
60
  </template>
@@ -67,12 +70,17 @@
67
70
 
68
71
  defineEmits<FluxButtonEmits>();
69
72
 
73
+ const slots = defineSlots<{
74
+ after(): any;
75
+ }>();
76
+
70
77
  const {
71
78
  type = 'button'
72
79
  } = defineProps<Omit<FluxButtonProps, 'isFilled' | 'isSubmit' | 'size'> & {
73
80
  readonly command?: string;
74
81
  readonly commandIcon?: FluxIconName;
75
82
  readonly commandLoading?: boolean;
83
+ readonly imageAlt?: string;
76
84
  readonly imageSrc?: string;
77
85
  readonly isActive?: boolean;
78
86
  readonly isDestructive?: boolean;
@@ -10,7 +10,7 @@
10
10
  lang="ts"
11
11
  setup>
12
12
  import { flattenVNodeTree } from '@flux-ui/internals';
13
- import { cloneVNode, computed, unref, VNode } from 'vue';
13
+ import { cloneVNode, computed, unref, type VNode } from 'vue';
14
14
  import FluxMenuGroup from './FluxMenuGroup.vue';
15
15
 
16
16
  const modelValue = defineModel<number>({
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <div
3
+ ref="bar"
4
+ :class="[
5
+ direction === 'horizontal' && $style.overflowBarHorizontal,
6
+ direction === 'vertical' && $style.overflowBarVertical,
7
+ alignment === 'start' && $style.alignStart,
8
+ alignment === 'center' && $style.alignCenter,
9
+ alignment === 'end' && $style.alignEnd
10
+ ]"
11
+ :style="{
12
+ gap: `${gap}px`
13
+ }">
14
+ <template v-for="item of items.slice(0, visibleItems)">
15
+ <FluxDynamicView :vnode="item"/>
16
+ </template>
17
+
18
+ <div
19
+ v-if="slots.overflow"
20
+ ref="overflow"
21
+ :class="$style.overflowBarOverflow">
22
+ <slot
23
+ name="overflow"
24
+ v-bind="{items: hiddenItems}"/>
25
+ </div>
26
+ </div>
27
+
28
+ <div
29
+ ref="measurer"
30
+ :class="$style.overflowBarMeasurer">
31
+ <slot/>
32
+ </div>
33
+ </template>
34
+
35
+ <script
36
+ lang="ts"
37
+ setup>
38
+ import { animationFrameDebounce, flattenVNodeTree, unrefTemplateElement } from '@flux-ui/internals';
39
+ import type { FluxAlignment, FluxDirection } from '@flux-ui/types';
40
+ import { computed, ref, unref, useTemplateRef, watch, type VNode } from 'vue';
41
+ import FluxDynamicView from './FluxDynamicView.vue';
42
+ import $style from '$flux/css/component/OverflowBar.module.scss';
43
+
44
+ const {
45
+ alignment = 'center',
46
+ direction = 'horizontal',
47
+ gap = 9
48
+ } = defineProps<{
49
+ readonly alignment?: FluxAlignment;
50
+ readonly direction?: FluxDirection;
51
+ readonly gap?: number;
52
+ }>();
53
+
54
+ const slots = defineSlots<{
55
+ default?(): any;
56
+ overflow?(props: { items: VNode[] }): any;
57
+ }>();
58
+
59
+ const barRef = useTemplateRef('bar');
60
+ const measurerRef = useTemplateRef('measurer');
61
+ const overflowRef = useTemplateRef('overflow');
62
+
63
+ const availableSize = ref(0);
64
+ const itemSizes = ref<number[]>([]);
65
+ const usedSize = ref(0);
66
+ const visibleItems = ref(0);
67
+
68
+ const hiddenItems = computed(() => unref(items).slice(unref(visibleItems)));
69
+ const items = computed(() => flattenVNodeTree(slots.default?.()));
70
+
71
+ const reflow = animationFrameDebounce(() => {
72
+ const bar = unref(barRef)!;
73
+ const measurer = unref(measurerRef)!;
74
+ const overflow = unrefTemplateElement(overflowRef);
75
+
76
+ availableSize.value = direction === 'horizontal' ? bar.offsetWidth : bar.offsetHeight;
77
+ itemSizes.value = Array.from(measurer.children)
78
+ .filter(item => item instanceof HTMLElement)
79
+ .map(item => {
80
+ const {display} = getComputedStyle(item);
81
+
82
+ if (display === 'contents') {
83
+ item = item.children[0] as HTMLElement;
84
+ }
85
+
86
+ return direction === 'horizontal'
87
+ ? item.offsetWidth
88
+ : item.offsetHeight;
89
+ });
90
+
91
+ let size = 0;
92
+ let visible = 0;
93
+
94
+ if (overflow) {
95
+ size += Array.from(overflow.children)
96
+ .map(item => getComputedStyle(item).display === 'contents' ? item.children[0] : item)
97
+ .filter(item => item instanceof HTMLElement)
98
+ .map(item => direction === 'horizontal' ? item.offsetWidth : item.offsetHeight)
99
+ .reduce((acc, curr, index) => acc + curr + (index === 0 ? 0 : gap), 0);
100
+ }
101
+
102
+ for (let i = 0; i < itemSizes.value.length; i++) {
103
+ const newSize = size + itemSizes.value[i] + (size === 0 ? 0 : gap);
104
+
105
+ if (newSize > availableSize.value) {
106
+ break;
107
+ }
108
+
109
+ visible++;
110
+ size = newSize;
111
+ }
112
+
113
+ usedSize.value = size;
114
+ visibleItems.value = visible;
115
+ });
116
+
117
+ watch([barRef, measurerRef], async ([bar, measurer], _, onCleanup) => {
118
+ if (!bar || !measurer) {
119
+ return;
120
+ }
121
+
122
+ const observer = new ResizeObserver(reflow);
123
+ observer.observe(bar);
124
+ observer.observe(measurer);
125
+ observer.observe(document.documentElement); // observe font-size changes.
126
+
127
+ onCleanup(() => {
128
+ observer.disconnect();
129
+ });
130
+ }, {immediate: true});
131
+
132
+ watch(items, reflow);
133
+ </script>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import type { FluxSize } from '@flux-ui/types';
3
3
  import { clsx } from 'clsx';
4
- import { defineComponent, PropType } from 'vue';
4
+ import { defineComponent, type PropType } from 'vue';
5
5
  import { FluxOverlayTransition } from '$flux/transition';
6
6
  import { createDialogRenderer } from '$flux/util';
7
7
  import $style from '$flux/css/component/Overlay.module.scss';
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <div :class="$style.overlayProvider">
3
+ <div :class="$style.overlayShade"/>
4
+ </div>
5
+
6
+ <FluxOverlay size="medium">
7
+ <FluxAlert
8
+ v-for="alert of alerts"
9
+ :key="alert.id"
10
+ :alert="alert"/>
11
+ </FluxOverlay>
12
+
13
+ <FluxOverlay size="medium">
14
+ <FluxConfirm
15
+ v-for="confirm of confirms"
16
+ :key="confirm.id"
17
+ :confirm="confirm"/>
18
+ </FluxOverlay>
19
+
20
+ <FluxOverlay size="medium">
21
+ <FluxPrompt
22
+ v-for="prompt of prompts"
23
+ :key="prompt.id"
24
+ :prompt="prompt"/>
25
+ </FluxOverlay>
26
+ </template>
27
+
28
+ <script
29
+ lang="ts"
30
+ setup>
31
+ import { useFluxStore } from '$flux/data';
32
+ import FluxAlert from './FluxAlert.vue';
33
+ import FluxConfirm from './FluxConfirm.vue';
34
+ import FluxOverlay from './FluxOverlay.vue';
35
+ import FluxPrompt from './FluxPrompt.vue';
36
+ import $style from '$flux/css/component/Overlay.module.scss';
37
+
38
+ const {alerts, confirms, prompts} = useFluxStore();
39
+ </script>
@@ -1,52 +1,56 @@
1
1
  <template>
2
- <FluxButtonGroup
2
+ <nav
3
3
  :class="$style.pagination"
4
4
  role="navigation"
5
5
  :aria-label="translate('flux.pagination')">
6
- <FluxSecondaryButton
6
+ <FluxPaginationButton
7
7
  v-if="arrows || isCompact"
8
8
  :disabled="isPreviousDisabled"
9
9
  icon-leading="angle-left"
10
+ is-arrow
10
11
  :aria-label="translate('flux.previous')"
11
12
  @click="previous"/>
12
13
 
13
14
  <template
14
15
  v-if="!isCompact"
15
16
  v-for="p of visiblePages">
16
- <FluxSecondaryButton
17
+ <FluxPaginationButton
17
18
  v-if="p === 'dots'"
18
19
  disabled
19
- icon-leading="ellipsis-h"/>
20
+ icon-leading="ellipsis-h"
21
+ is-spacer/>
20
22
 
21
- <FluxPrimaryButton
23
+ <FluxPaginationButton
22
24
  v-else-if="p === page"
25
+ is-current
23
26
  :label="`${p}`"
24
27
  aria-current="page"/>
25
28
 
26
- <FluxSecondaryButton
29
+ <FluxPaginationButton
27
30
  v-else
28
31
  :label="`${p}`"
29
32
  @click="navigate(p)"/>
30
33
  </template>
31
34
 
32
35
  <template v-else>
33
- <FluxSecondaryButton
36
+ <FluxPaginationButton
34
37
  :class="$style.paginationCurrentZZ"
35
38
  @click="prompt"
36
39
  #before>
37
40
  <strong>{{ page }}</strong>
38
41
  <span>/</span>
39
42
  <span>{{ pages }}</span>
40
- </FluxSecondaryButton>
43
+ </FluxPaginationButton>
41
44
  </template>
42
45
 
43
- <FluxSecondaryButton
46
+ <FluxPaginationButton
44
47
  v-if="arrows || isCompact"
45
48
  :disabled="isNextDisabled"
46
49
  icon-leading="angle-right"
50
+ is-arrow
47
51
  :aria-label="translate('flux.next')"
48
52
  @click="next"/>
49
- </FluxButtonGroup>
53
+ </nav>
50
54
  </template>
51
55
 
52
56
  <script
@@ -55,9 +59,7 @@
55
59
  import { computed, unref } from 'vue';
56
60
  import { useTranslate } from '$flux/composable/private';
57
61
  import { showPrompt } from '$flux/data';
58
- import FluxButtonGroup from './FluxButtonGroup.vue';
59
- import FluxPrimaryButton from './FluxPrimaryButton.vue';
60
- import FluxSecondaryButton from './FluxSecondaryButton.vue';
62
+ import FluxPaginationButton from './FluxPaginationButton.vue';
61
63
  import $style from '$flux/css/component/Pagination.module.scss';
62
64
 
63
65
  const emit = defineEmits<{
@@ -89,7 +91,7 @@
89
91
 
90
92
  const sizes = {
91
93
  end: 1,
92
- middle: 1
94
+ middle: 2
93
95
  } as const;
94
96
 
95
97
  let dots = false;
@@ -1,40 +1,32 @@
1
1
  <template>
2
- <FluxStack :class="$style.paginationBar">
3
- <FluxFormInputGroup>
4
- <FluxFormInputAddition>
5
- <span>{{ translate('flux.rowsPerPage') }}</span>
6
- </FluxFormInputAddition>
7
-
8
- <FluxFormSelect
9
- v-model="limit"
10
- :options="limitOptions"/>
11
- </FluxFormInputGroup>
2
+ <div :class="$style.paginationBar">
3
+ <FluxPagination
4
+ v-if="total > perPage"
5
+ arrows
6
+ :page="page"
7
+ :per-page="perPage"
8
+ :total="total"
9
+ @navigate="$emit('navigate', $event)"/>
12
10
 
13
11
  <FluxSpacer :class="$style.paginationBarSpacer"/>
14
12
 
15
- <FluxFormInputGroup>
16
- <FluxFormInputAddition>
17
- <span>
18
- {{
19
- translate('flux.displayingOf', {
20
- from: (page - 1) * perPage + 1,
21
- to: Math.min(total, page * perPage),
22
- total: total
23
- })
24
- }}
25
- </span>
26
- </FluxFormInputAddition>
13
+ <div :class="$style.paginationBarLimit">
14
+ <span :class="$style.paginationBarLimitDisplayingOf">
15
+ {{
16
+ translate('flux.displayingOf', {
17
+ from: (page - 1) * perPage + 1,
18
+ to: Math.min(total, page * perPage),
19
+ total: total
20
+ })
21
+ }}
22
+ </span>
27
23
 
28
- <FluxPagination
29
- v-if="total > perPage"
30
- arrows
31
- is-compact
32
- :page="page"
33
- :per-page="perPage"
34
- :total="total"
35
- @navigate="$emit('navigate', $event)"/>
36
- </FluxFormInputGroup>
37
- </FluxStack>
24
+ <FluxFormSelect
25
+ v-model="limit"
26
+ :class="$style.paginationBarLimitSelect"
27
+ :options="limitOptions"/>
28
+ </div>
29
+ </div>
38
30
  </template>
39
31
 
40
32
  <script
@@ -43,12 +35,9 @@
43
35
  import type { FluxFormSelectOption } from '@flux-ui/types';
44
36
  import { computed, ref, watch } from 'vue';
45
37
  import { useTranslate } from '$flux/composable/private';
46
- import FluxFormInputAddition from './FluxFormInputAddition.vue';
47
- import FluxFormInputGroup from './FluxFormInputGroup.vue';
48
38
  import FluxFormSelect from './FluxFormSelect.vue';
49
39
  import FluxPagination from './FluxPagination.vue';
50
40
  import FluxSpacer from './FluxSpacer.vue';
51
- import FluxStack from './FluxStack.vue';
52
41
  import $style from '$flux/css/component/Pagination.module.scss';
53
42
 
54
43
  const emit = defineEmits<{
@@ -70,9 +59,9 @@
70
59
 
71
60
  const limit = ref(perPage);
72
61
 
73
- const limitOptions = computed(() => limits.map<FluxFormSelectOption>(limit => ({
74
- label: limit.toString(),
75
- value: limit
62
+ const limitOptions = computed(() => limits.map<FluxFormSelectOption>(n => ({
63
+ label: translate('flux.showN', {n}),
64
+ value: n
76
65
  })));
77
66
 
78
67
  watch(limit, limit => emit('limit', limit));
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <FluxButton
3
+ :="{type, disabled, iconLeading, iconTrailing, isFilled, isLoading, isSubmit, label, size, href, rel, target, to}"
4
+ :class="[
5
+ isArrow && $style.paginationButtonArrow,
6
+ isCurrent && $style.paginationButtonCurrent,
7
+ isSpacer && $style.paginationButtonSpacer
8
+ ]"
9
+ :css-class="$style.paginationButton"
10
+ :css-class-icon="$style.paginationButtonIcon"
11
+ :css-class-label="$style.paginationButtonLabel"
12
+ @click="$emit('click', $event)"
13
+ @mouseenter="$emit('mouseenter', $event)"
14
+ @mouseleave="$emit('mouseleave', $event)">
15
+ <template
16
+ v-for="slot of SLOTS"
17
+ #[slot]>
18
+ <slot :name="slot"/>
19
+ </template>
20
+ </FluxButton>
21
+ </template>
22
+
23
+ <script
24
+ lang="ts"
25
+ setup>
26
+ import type { FluxButtonEmits, FluxButtonProps, FluxButtonSlots } from '@flux-ui/types';
27
+ import FluxButton, { SLOTS } from './FluxButton.vue';
28
+ import $style from '$flux/css/component/Pagination.module.scss';
29
+
30
+ defineEmits<FluxButtonEmits>();
31
+
32
+ defineProps<FluxButtonProps & {
33
+ readonly isArrow?: boolean;
34
+ readonly isCurrent?: boolean;
35
+ readonly isSpacer?: boolean;
36
+ }>();
37
+
38
+ defineSlots<FluxButtonSlots>();
39
+ </script>
@@ -4,6 +4,7 @@
4
4
  v-if="imageUrl"
5
5
  :class="$style.paneMediaImage"
6
6
  :style="{
7
+ aspectRatio,
7
8
  objectPosition: `${focalPointX}% ${focalPointY}%`
8
9
  }"
9
10
  :src="imageUrl"
@@ -20,6 +21,7 @@
20
21
  const {
21
22
  imageFocalPoint
22
23
  } = defineProps<{
24
+ readonly aspectRatio?: number;
23
25
  readonly imageAlt?: string;
24
26
  readonly imageFocalPoint?: [number, number];
25
27
  readonly imageUrl?: string;
@@ -4,7 +4,7 @@
4
4
  v-bind="$attrs"
5
5
  :rel="rel"
6
6
  :target="target"
7
- :to="to"
7
+ :to="to as any"
8
8
  @click="onClick($event)"
9
9
  @mouseenter="$emit('mouseenter', $event)"
10
10
  @mouseleave="$emit('mouseleave', $event)">