@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,8 +1,10 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
- slots: {
5
- default?(_: {}): any;
4
+ slots: Readonly<{
5
+ default(): VNode[];
6
+ }> & {
7
+ default(): VNode[];
6
8
  };
7
9
  refs: {};
8
10
  rootEl: any;
@@ -1,8 +1,10 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
- slots: {
5
- default?(_: {}): any;
4
+ slots: Readonly<{
5
+ default(): VNode[];
6
+ }> & {
7
+ default(): VNode[];
6
8
  };
7
9
  refs: {};
8
10
  rootEl: any;
@@ -1,12 +1,14 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly isBack?: boolean;
4
4
  readonly mode?: 'in-out' | 'out-in';
5
5
  };
6
6
  declare function __VLS_template(): {
7
7
  attrs: Partial<{}>;
8
- slots: {
9
- default?(_: {}): any;
8
+ slots: Readonly<{
9
+ default(): VNode[];
10
+ }> & {
11
+ default(): VNode[];
10
12
  };
11
13
  refs: {};
12
14
  rootEl: any;
@@ -1,11 +1,13 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly mode?: 'in-out' | 'out-in';
4
4
  };
5
5
  declare function __VLS_template(): {
6
6
  attrs: Partial<{}>;
7
- slots: {
8
- default?(_: {}): any;
7
+ slots: Readonly<{
8
+ default(): VNode[];
9
+ }> & {
10
+ default(): VNode[];
9
11
  };
10
12
  refs: {};
11
13
  rootEl: any;
@@ -1,11 +1,13 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly mode?: 'in-out' | 'out-in';
4
4
  };
5
5
  declare function __VLS_template(): {
6
6
  attrs: Partial<{}>;
7
- slots: {
8
- default?(_: {}): any;
7
+ slots: Readonly<{
8
+ default(): VNode[];
9
+ }> & {
10
+ default(): VNode[];
9
11
  };
10
12
  refs: {};
11
13
  rootEl: any;
@@ -1,12 +1,14 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly isBack?: boolean;
4
4
  readonly mode?: 'in-out' | 'out-in';
5
5
  };
6
6
  declare function __VLS_template(): {
7
7
  attrs: Partial<{}>;
8
- slots: {
9
- default?(_: {}): any;
8
+ slots: Readonly<{
9
+ default(): VNode[];
10
+ }> & {
11
+ default(): VNode[];
10
12
  };
11
13
  refs: {};
12
14
  rootEl: any;
@@ -1,11 +1,13 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly mode?: 'in-out' | 'out-in';
4
4
  };
5
5
  declare function __VLS_template(): {
6
6
  attrs: Partial<{}>;
7
- slots: {
8
- default?(_: {}): any;
7
+ slots: Readonly<{
8
+ default(): VNode[];
9
+ }> & {
10
+ default(): VNode[];
9
11
  };
10
12
  refs: {};
11
13
  rootEl: any;
@@ -1,11 +1,13 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly mode?: 'in-out' | 'out-in';
4
4
  };
5
5
  declare function __VLS_template(): {
6
6
  attrs: Partial<{}>;
7
- slots: {
8
- default?(_: {}): any;
7
+ slots: Readonly<{
8
+ default(): VNode[];
9
+ }> & {
10
+ default(): VNode[];
9
11
  };
10
12
  refs: {};
11
13
  rootEl: any;
@@ -1,12 +1,14 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly isBack?: boolean;
4
4
  readonly mode?: 'in-out' | 'out-in';
5
5
  };
6
6
  declare function __VLS_template(): {
7
7
  attrs: Partial<{}>;
8
- slots: {
9
- default?(_: {}): any;
8
+ slots: Readonly<{
9
+ default(): VNode[];
10
+ }> & {
11
+ default(): VNode[];
10
12
  };
11
13
  refs: {};
12
14
  rootEl: any;
@@ -1,12 +1,14 @@
1
- import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
1
+ import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
3
  readonly isBack?: boolean;
4
4
  readonly mode?: 'in-out' | 'out-in';
5
5
  };
6
6
  declare function __VLS_template(): {
7
7
  attrs: Partial<{}>;
8
- slots: {
9
- default?(_: {}): any;
8
+ slots: Readonly<{
9
+ default(): VNode[];
10
+ }> & {
11
+ default(): VNode[];
10
12
  };
11
13
  refs: {};
12
14
  rootEl: any;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@flux-ui/components",
3
3
  "description": "A set of opiniated UI components.",
4
- "version": "3.0.0-next.34",
4
+ "version": "3.0.0-next.38",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/basmilius",
8
- "homepage": "https://flux.bas.dev",
8
+ "homepage": "https://flux-ui.dev",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https://github.com/basmilius/flux.git",
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "scripts": {
25
25
  "build": "vue-tsc && vite build",
26
- "dev": "vite build --mode dev --watch"
26
+ "dev": "vite build --watch --mode development"
27
27
  },
28
28
  "engines": {
29
29
  "node": ">=23"
@@ -33,8 +33,7 @@
33
33
  "types": "./dist/index.d.ts",
34
34
  "default": "./dist/index.js"
35
35
  },
36
- "./style.css": "./dist/index.css",
37
- "./*": "./*"
36
+ "./style.css": "./dist/index.css"
38
37
  },
39
38
  "publishConfig": {
40
39
  "access": "public",
@@ -42,37 +41,34 @@
42
41
  },
43
42
  "files": [
44
43
  "dist",
45
- "src",
46
- "tsconfig.json"
44
+ "src"
47
45
  ],
48
46
  "main": "./dist/index.js",
49
47
  "module": "./dist/index.js",
50
48
  "types": "./dist/index.d.ts",
51
- "typings": "./dist/index.d.ts",
52
- "sideEffects": false,
53
49
  "dependencies": {
54
- "@basmilius/common": "^3.12.1",
55
- "@basmilius/utils": "^3.12.1",
56
- "@flux-ui/internals": "3.0.0-next.34",
57
- "@flux-ui/types": "3.0.0-next.34",
50
+ "@basmilius/common": "^3.19.0",
51
+ "@basmilius/utils": "^3.19.0",
52
+ "@flux-ui/internals": "3.0.0-next.38",
53
+ "@flux-ui/types": "3.0.0-next.38",
58
54
  "@fortawesome/fontawesome-common-types": "^7.2.0",
59
55
  "clsx": "^2.1.1",
60
56
  "imask": "^7.6.1",
61
- "lodash-es": "^4.17.23",
57
+ "lodash-es": "^4.18.1",
62
58
  "luxon": "^3.7.2",
63
- "vue": "^3.6.0-beta.7"
59
+ "vue": "^3.6.0-beta.10"
64
60
  },
65
61
  "devDependencies": {
66
- "@basmilius/vite-preset": "^3.12.1",
62
+ "@basmilius/vite-preset": "^3.19.0",
67
63
  "@types/lodash-es": "^4.17.12",
68
64
  "@types/luxon": "^3.7.1",
69
- "@types/node": "^25.5.0",
70
- "@vitejs/plugin-vue": "^6.0.5",
71
- "@vue/tsconfig": "^0.9.0",
65
+ "@types/node": "^25.6.0",
66
+ "@vitejs/plugin-vue": "^6.0.6",
67
+ "@vue/tsconfig": "^0.9.1",
72
68
  "pinia": "^3.0.4",
73
- "sass-embedded": "^1.98.0",
74
- "typescript": "^5.9.3",
75
- "vite": "^8.0.0",
76
- "vue-tsc": "^3.2.5"
69
+ "sass-embedded": "^1.99.0",
70
+ "typescript": "^6.0.3",
71
+ "vite": "^8.0.10",
72
+ "vue-tsc": "^3.2.7"
77
73
  }
78
74
  }
@@ -48,6 +48,7 @@
48
48
  <script
49
49
  lang="ts"
50
50
  setup>
51
+ import type { VNode } from 'vue';
51
52
  import { useTranslate } from '$flux/composable/private';
52
53
  import FluxButtonGroup from './FluxButtonGroup.vue';
53
54
  import FluxDestructiveButton from './FluxDestructiveButton.vue';
@@ -67,12 +68,12 @@
67
68
  }>();
68
69
 
69
70
  const slots = defineSlots<{
70
- primary?(): any;
71
- actionsEnd?(): any;
72
- actionsStart?(): any;
73
- actionsAfterSearch?(): any;
74
- actionsBeforeSearch?(): any;
75
- search?(): any;
71
+ primary?(): VNode[];
72
+ actionsEnd?(): VNode[];
73
+ actionsStart?(): VNode[];
74
+ actionsAfterSearch?(): VNode[];
75
+ actionsBeforeSearch?(): VNode[];
76
+ search?(): VNode[];
76
77
 
77
78
  filter?(props: {
78
79
  close(): void;
@@ -81,13 +82,13 @@
81
82
  readonly paneY: number;
82
83
  readonly openerWidth: number;
83
84
  readonly openerHeight: number;
84
- }): any;
85
+ }): VNode[];
85
86
 
86
87
  filterOpener?(props: {
87
88
  close(): void;
88
89
  open(): void;
89
90
  toggle(): void;
90
- }): any;
91
+ }): VNode[];
91
92
  }>();
92
93
 
93
94
  const translate = useTranslate();
@@ -23,6 +23,7 @@
23
23
  <script
24
24
  lang="ts"
25
25
  setup>
26
+ import type { VNode } from 'vue';
26
27
  import FluxButtonStack from './FluxButtonStack.vue';
27
28
  import FluxPane from './FluxPane.vue';
28
29
  import FluxPaneBody from './FluxPaneBody.vue';
@@ -33,8 +34,8 @@
33
34
  }>();
34
35
 
35
36
  const slots = defineSlots<{
36
- default?(): any;
37
- buttons?(): any;
38
- base?(): any;
37
+ default?(): VNode[];
38
+ buttons?(): VNode[];
39
+ base?(): VNode[];
39
40
  }>();
40
41
  </script>
@@ -12,11 +12,11 @@
12
12
  lang="ts"
13
13
  setup>
14
14
  import { useFocusZone } from '@flux-ui/internals';
15
- import { useTemplateRef } from 'vue';
15
+ import { useTemplateRef, type VNode } from 'vue';
16
16
  import FluxStack from './FluxStack.vue';
17
17
 
18
18
  defineSlots<{
19
- default(): any;
19
+ default(): VNode[];
20
20
  }>();
21
21
 
22
22
  const elementRef = useTemplateRef('element');
@@ -0,0 +1,112 @@
1
+ <template>
2
+ <div
3
+ ref="element"
4
+ :class="$style.adaptiveGroup"
5
+ :style="{'--gap': `${gap}px`}">
6
+ <slot/>
7
+ </div>
8
+ </template>
9
+
10
+ <script
11
+ lang="ts"
12
+ setup>
13
+ import { animationFrameDebounce, unrefTemplateElement } from '@flux-ui/internals';
14
+ import { provide, shallowReactive, useTemplateRef, watch, watchEffect } from 'vue';
15
+ import { type FluxAdaptiveGroupChild, FluxAdaptiveGroupInjectionKey } from '$flux/data';
16
+ import $style from '$flux/css/component/AdaptiveSlot.module.scss';
17
+
18
+ const {
19
+ gap = 9
20
+ } = defineProps<{
21
+ readonly gap?: number;
22
+ }>();
23
+
24
+ defineSlots<{
25
+ default(): any;
26
+ }>();
27
+
28
+ const elementRef = useTemplateRef('element');
29
+ const children = shallowReactive(new Map<number, FluxAdaptiveGroupChild>());
30
+
31
+ const reflow = animationFrameDebounce(() => {
32
+ const element = unrefTemplateElement(elementRef);
33
+
34
+ if (!element) {
35
+ return;
36
+ }
37
+
38
+ const available = element.clientWidth;
39
+ const entries = Array.from(children.entries());
40
+ const states = new Map<number, boolean>(entries.map(([uid]) => [uid, true]));
41
+
42
+ const sorted = [...entries].sort(([, a], [, b]) => a.priority.value - b.priority.value);
43
+
44
+ const currentTotal = () => {
45
+ let total = 0;
46
+ let visible = 0;
47
+
48
+ for (const [uid, child] of entries) {
49
+ const width = states.get(uid)
50
+ ? child.desiredDefaultWidth.value
51
+ : child.desiredFallbackWidth.value;
52
+
53
+ if (width === 0) {
54
+ continue;
55
+ }
56
+
57
+ total += width;
58
+ visible++;
59
+ }
60
+
61
+ return total + Math.max(0, visible - 1) * gap;
62
+ };
63
+
64
+ while (currentTotal() > available) {
65
+ const victim = sorted.find(([uid]) => states.get(uid));
66
+
67
+ if (!victim) {
68
+ break;
69
+ }
70
+
71
+ states.set(victim[0], false);
72
+ }
73
+
74
+ for (const [uid, child] of entries) {
75
+ child.isDefaultVisible.value = !!states.get(uid);
76
+ }
77
+ });
78
+
79
+ watchEffect(() => {
80
+ for (const child of children.values()) {
81
+ // Touch reactive refs so this effect tracks them.
82
+ void child.priority.value;
83
+ void child.desiredDefaultWidth.value;
84
+ void child.desiredFallbackWidth.value;
85
+ }
86
+
87
+ reflow();
88
+ });
89
+
90
+ provide(FluxAdaptiveGroupInjectionKey, {
91
+ register(uid, child) {
92
+ children.set(uid, child);
93
+ },
94
+ unregister(uid) {
95
+ children.delete(uid);
96
+ }
97
+ });
98
+
99
+ watch(elementRef, (element, _, onCleanup) => {
100
+ if (!element) {
101
+ return;
102
+ }
103
+
104
+ const observer = new ResizeObserver(reflow);
105
+ observer.observe(element);
106
+ observer.observe(document.documentElement);
107
+
108
+ onCleanup(() => {
109
+ observer.disconnect();
110
+ });
111
+ }, {immediate: true});
112
+ </script>
@@ -0,0 +1,159 @@
1
+ <template>
2
+ <div
3
+ ref="element"
4
+ :class="$style.adaptiveSlot"
5
+ :style="group ? 'flex-shrink: 0' : undefined">
6
+ <slot v-if="isDefaultVisible"/>
7
+ <slot
8
+ v-else
9
+ name="fallback"/>
10
+ </div>
11
+
12
+ <div
13
+ ref="defaultMeasurer"
14
+ :class="$style.adaptiveSlotMeasurer"
15
+ aria-hidden="true">
16
+ <slot/>
17
+ </div>
18
+
19
+ <div
20
+ ref="fallbackMeasurer"
21
+ :class="$style.adaptiveSlotMeasurer"
22
+ aria-hidden="true">
23
+ <slot name="fallback"/>
24
+ </div>
25
+ </template>
26
+
27
+ <script
28
+ lang="ts"
29
+ setup>
30
+ import { animationFrameDebounce, unrefTemplateElement } from '@flux-ui/internals';
31
+ import { getCurrentInstance, onMounted, onUnmounted, ref, toRef, useTemplateRef, watch } from 'vue';
32
+ import { useAdaptiveGroupInjection } from '$flux/composable';
33
+ import $style from '$flux/css/component/AdaptiveSlot.module.scss';
34
+
35
+ const props = withDefaults(defineProps<{
36
+ readonly priority?: number;
37
+ }>(), {
38
+ priority: 1
39
+ });
40
+
41
+ defineSlots<{
42
+ default(): any;
43
+ fallback?(): any;
44
+ }>();
45
+
46
+ const group = useAdaptiveGroupInjection();
47
+ const instance = getCurrentInstance()!;
48
+
49
+ const elementRef = useTemplateRef('element');
50
+ const defaultMeasurerRef = useTemplateRef('defaultMeasurer');
51
+ const fallbackMeasurerRef = useTemplateRef('fallbackMeasurer');
52
+
53
+ const isDefaultVisible = ref(true);
54
+ const desiredDefaultWidth = ref(0);
55
+ const desiredFallbackWidth = ref(0);
56
+
57
+ const priorityRef = toRef(props, 'priority');
58
+
59
+ // Keep both desired widths in sync with the hidden measurers.
60
+ watch([defaultMeasurerRef, fallbackMeasurerRef], ([def, fb], _, onCleanup) => {
61
+ if (!def) {
62
+ return;
63
+ }
64
+
65
+ const update = () => {
66
+ desiredDefaultWidth.value = def.offsetWidth;
67
+ desiredFallbackWidth.value = fb?.offsetWidth ?? 0;
68
+ };
69
+
70
+ const observer = new ResizeObserver(update);
71
+ observer.observe(def);
72
+
73
+ if (fb) {
74
+ observer.observe(fb);
75
+ }
76
+
77
+ observer.observe(document.documentElement);
78
+
79
+ update();
80
+
81
+ onCleanup(() => {
82
+ observer.disconnect();
83
+ });
84
+ }, {immediate: true});
85
+
86
+ if (group) {
87
+ onMounted(() => {
88
+ group.register(instance.uid, {
89
+ priority: priorityRef,
90
+ desiredDefaultWidth,
91
+ desiredFallbackWidth,
92
+ isDefaultVisible
93
+ });
94
+ });
95
+
96
+ onUnmounted(() => {
97
+ group.unregister(instance.uid);
98
+ });
99
+ } else {
100
+ // Standalone: self-measurement with parent-observer hysteresis.
101
+ let lastFailedParentWidth = -1;
102
+
103
+ const reflow = animationFrameDebounce(() => {
104
+ const element = unrefTemplateElement(elementRef);
105
+
106
+ if (!element || !isDefaultVisible.value) {
107
+ return;
108
+ }
109
+
110
+ const desired = desiredDefaultWidth.value;
111
+ const available = element.clientWidth;
112
+
113
+ if (desired > available) {
114
+ lastFailedParentWidth = element.parentElement?.clientWidth ?? -1;
115
+ isDefaultVisible.value = false;
116
+ } else {
117
+ lastFailedParentWidth = -1;
118
+ }
119
+ });
120
+
121
+ watch(elementRef, (element, _, onCleanup) => {
122
+ if (!element) {
123
+ return;
124
+ }
125
+
126
+ const parent = element.parentElement;
127
+
128
+ const observer = new ResizeObserver(entries => {
129
+ for (const entry of entries) {
130
+ if (entry.target === parent && !isDefaultVisible.value) {
131
+ if (parent.clientWidth > lastFailedParentWidth) {
132
+ isDefaultVisible.value = true;
133
+ }
134
+ }
135
+ }
136
+
137
+ reflow();
138
+ });
139
+
140
+ observer.observe(element);
141
+
142
+ if (parent) {
143
+ observer.observe(parent);
144
+ }
145
+
146
+ observer.observe(document.documentElement);
147
+
148
+ onCleanup(() => {
149
+ observer.disconnect();
150
+ });
151
+ }, {immediate: true});
152
+
153
+ // Default content size changed: forget failure history and retry.
154
+ watch(desiredDefaultWidth, () => {
155
+ lastFailedParentWidth = -1;
156
+ isDefaultVisible.value = true;
157
+ });
158
+ }
159
+ </script>
@@ -1,20 +1,15 @@
1
1
  <template>
2
- <FluxPane>
3
- <FluxPaneHeader
4
- :icon="alert.icon"
5
- :title="alert.title"/>
6
-
7
- <FluxPaneBody v-html="alert.message"/>
8
-
9
- <FluxPaneFooter>
10
- <FluxSpacer/>
11
-
2
+ <DialogLayout
3
+ :icon="alert.icon"
4
+ :message="alert.message"
5
+ :title="alert.title">
6
+ <template #footer>
12
7
  <FluxPrimaryButton
13
8
  icon-leading="circle-check"
14
9
  :label="translate('flux.ok')"
15
10
  @click="alert.onClose()"/>
16
- </FluxPaneFooter>
17
- </FluxPane>
11
+ </template>
12
+ </DialogLayout>
18
13
  </template>
19
14
 
20
15
  <script
@@ -22,12 +17,8 @@
22
17
  setup>
23
18
  import type { FluxAlertObject } from '@flux-ui/types';
24
19
  import { useTranslate } from '$flux/composable/private';
25
- import FluxPane from './FluxPane.vue';
26
- import FluxPaneBody from './FluxPaneBody.vue';
27
- import FluxPaneFooter from './FluxPaneFooter.vue';
28
- import FluxPaneHeader from './FluxPaneHeader.vue';
29
20
  import FluxPrimaryButton from './FluxPrimaryButton.vue';
30
- import FluxSpacer from './FluxSpacer.vue';
21
+ import { DialogLayout } from './primitive';
31
22
 
32
23
  defineProps<{
33
24
  readonly alert: FluxAlertObject;
@@ -41,7 +41,7 @@
41
41
  return [];
42
42
  }
43
43
 
44
- const mulberry = mulberry32(seed ?? unref(componentId));
44
+ const mulberry = mulberry32(seed ?? componentId.value);
45
45
  const polygons: Polygon[] = [];
46
46
 
47
47
  for (const color of colors) {