@flux-ui/application 3.2.0-beta.2 → 3.2.0-beta.4

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.
@@ -0,0 +1,3 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3
+ export default _default;
@@ -5,6 +5,7 @@ export { default as FluxApplicationMenu } from './FluxApplicationMenu.vue';
5
5
  export { default as FluxApplicationMenuAccount } from './FluxApplicationMenuAccount.vue';
6
6
  export { default as FluxApplicationMenuContext } from './FluxApplicationMenuContext.vue';
7
7
  export { default as FluxApplicationMenuContextStack } from './FluxApplicationMenuContextStack.vue';
8
+ export { default as FluxApplicationMenuContextSwitcher } from './FluxApplicationMenuContextSwitcher.vue';
8
9
  export { default as FluxApplicationMenuPromo } from './FluxApplicationMenuPromo.vue';
9
10
  export { default as FluxApplicationMenuToggle } from './FluxApplicationMenuToggle.vue';
10
11
  export { default as FluxApplicationSection } from './FluxApplicationSection.vue';
package/dist/index.css CHANGED
@@ -1,4 +1,4 @@
1
- @charset "UTF-8";:root {
1
+ :root {
2
2
  --application-duration: 360ms;
3
3
  --application-menu-surface: var(--gray-100);
4
4
  --application-menu-surface-stroke: var(--gray-200);
@@ -119,6 +119,7 @@ html[data-application-resizing] .application-menu-backdrop {
119
119
  .application-content-full > :is(.calendar, .table) {
120
120
  max-height: 100%;
121
121
  flex-grow: 1;
122
+ background: var(--surface);
122
123
  }
123
124
  .application-content-full > .calendar {
124
125
  border-top: 0;
@@ -182,8 +183,7 @@ html[data-application-resizing] .application-menu-backdrop {
182
183
  margin: 0;
183
184
  color: var(--foreground-secondary);
184
185
  font-size: 18px;
185
- }
186
- .application-menu {
186
+ }.application-menu {
187
187
  position: fixed;
188
188
  display: flex;
189
189
  top: 0;
@@ -401,24 +401,31 @@ html[data-application-resizing] .application-menu-backdrop {
401
401
  margin-top: -12px;
402
402
  margin-left: -12px;
403
403
  margin-right: -12px;
404
- padding: 15px;
404
+ padding: 15px 16px;
405
405
  flex-flow: row nowrap;
406
406
  gap: 15px;
407
- border: 1px solid var(--application-menu-surface-stroke);
408
- border-top: 0;
409
- border-left: 0;
410
- border-right: 0;
407
+ border-bottom: 1px solid var(--application-menu-surface-stroke);
411
408
  }
412
409
 
413
410
  .application-menu-context-content {
414
- display: flex;
411
+ display: grid;
415
412
  align-self: center;
413
+ grid-template-rows: 1fr;
414
+ transition: var(--application-duration) var(--swift-out);
415
+ transition-property: filter, grid-template-rows, opacity, translate;
416
+ }
417
+
418
+ .application-menu-context-content-inner {
419
+ display: flex;
416
420
  flex-flow: column;
421
+ min-height: 0;
422
+ white-space: nowrap;
423
+ overflow: hidden;
417
424
  }
418
- .application-menu-context-content strong {
425
+ .application-menu-context-content-inner strong {
419
426
  color: var(--foreground-prominent);
420
427
  }
421
- .application-menu-context-content span {
428
+ .application-menu-context-content-inner span {
422
429
  color: var(--foreground-secondary);
423
430
  font-size: 14px;
424
431
  }
@@ -479,33 +486,29 @@ html[data-application-resizing] .application-menu-backdrop {
479
486
  width: var(--application-menu-width-collapsed);
480
487
  }
481
488
  .application-menu[data-collapsed][data-collapsible] .menu-item-label {
482
- filter: blur(6px);
489
+ filter: blur(3px);
483
490
  opacity: 0;
484
491
  translate: -12px 0;
485
492
  }
486
493
  .application-menu[data-collapsed][data-collapsible] .menu-sub-header {
487
494
  display: none;
488
495
  height: 0;
489
- /* Keep the sub-header's negative margins (sum -12px = one panel gap) while
490
- it is a zero-height flex item, so the space it leaves equals the single
491
- gap that remains after `display: none` removes it — avoiding a jump of
492
- the group below at the end of the collapse. */
493
496
  margin-top: -9px;
494
497
  margin-bottom: -3px;
495
498
  padding-top: 0;
496
499
  padding-bottom: 0;
497
500
  opacity: 0;
498
501
  }
499
- .application-menu[data-collapsed][data-collapsible] .application-menu-promo,
500
- .application-menu[data-collapsed][data-collapsible] .application-menu-context {
502
+ .application-menu[data-collapsed][data-collapsible] .application-menu-promo {
501
503
  opacity: 0;
502
504
  pointer-events: none;
503
505
  }
504
- .application-menu[data-collapsed][data-collapsible] .application-menu-context-pill-content strong,
505
- .application-menu[data-collapsed][data-collapsible] .application-menu-context-pill-content span {
506
- filter: blur(6px);
506
+ .application-menu[data-collapsed][data-collapsible] .application-menu-context-content {
507
+ grid-template-rows: 0fr;
508
+ filter: blur(3px);
507
509
  opacity: 0;
508
510
  translate: -12px 0;
511
+ pointer-events: none;
509
512
  }
510
513
  }
511
514
  @media (max-width: 1023.98px) {
@@ -529,8 +532,7 @@ html[data-application-resizing] .application-menu-track,
529
532
  html[data-application-resizing] .application-menu-promo,
530
533
  html[data-application-resizing] .application-menu .menu-sub-header,
531
534
  html[data-application-resizing] .application-menu .menu-item-label,
532
- html[data-application-resizing] .application-menu-context-pill-content strong,
533
- html[data-application-resizing] .application-menu-context-pill-content span {
535
+ html[data-application-resizing] .application-menu-context-content {
534
536
  transition: none;
535
537
  }.application-section {
536
538
  display: flex;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Fragment, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, customRef, defineComponent, h, inject, markRaw, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, shallowRef, toDisplayString, toRef, unref, useSlots, watch, withCtx, withDirectives } from "vue";
2
- import { FluxFadeTransition, FluxFlyout, FluxIcon, FluxMenu, FluxMenuItem, FluxPane, FluxRouteTransition, FluxSecondaryButton, FluxSpacer, FluxTabBar, useBreakpoints } from "@flux-ui/components";
2
+ import { FluxFadeTransition, FluxFlyout, FluxIcon, FluxMenu, FluxMenuGroup, FluxMenuItem, FluxPane, FluxRouteTransition, FluxSecondaryButton, FluxSpacer, FluxTabBar, useBreakpoints } from "@flux-ui/components";
3
3
  import { DateTime } from "luxon";
4
4
  import { RouterView, matchedRouteKey, useRoute, viewDepthKey } from "vue-router";
5
5
  //#region ../../node_modules/.bun/@basmilius+utils@3.45.0+f2ed1ec6a4c7f7fd/node_modules/@basmilius/utils/dist/index.mjs
@@ -4096,12 +4096,12 @@ var ApplicationMenu_module_default = {
4096
4096
  avatar: `avatar`,
4097
4097
  applicationMenuContext: `application-menu-context`,
4098
4098
  applicationMenuContextContent: `application-menu-context-content`,
4099
+ applicationMenuContextContentInner: `application-menu-context-content-inner`,
4099
4100
  applicationMenuPromo: `application-menu-promo`,
4100
4101
  icon: `icon`,
4101
4102
  applicationMenuPromoContent: `application-menu-promo-content`,
4102
4103
  applicationMenuToggle: `application-menu-toggle`,
4103
- applicationMenuToggleIcon: `application-menu-toggle-icon`,
4104
- applicationMenuContextPillContent: `application-menu-context-pill-content`
4104
+ applicationMenuToggleIcon: `application-menu-toggle-icon`
4105
4105
  };
4106
4106
  //#endregion
4107
4107
  //#region src/component/FluxApplicationMenu.vue?vue&type=script&setup=true&lang.ts
@@ -4255,7 +4255,7 @@ var FluxApplicationMenuContext_default = /* @__PURE__ */ defineComponent({
4255
4255
  "target",
4256
4256
  "to",
4257
4257
  "type"
4258
- ]), createElementVNode("div", { class: normalizeClass(unref(ApplicationMenu_module_default).applicationMenuContextContent) }, [createElementVNode("strong", null, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_1$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)], 2)], 2);
4258
+ ]), createElementVNode("div", { class: normalizeClass(unref(ApplicationMenu_module_default).applicationMenuContextContent) }, [createElementVNode("div", { class: normalizeClass(unref(ApplicationMenu_module_default).applicationMenuContextContentInner) }, [createElementVNode("strong", null, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_1$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)], 2)], 2)], 2);
4259
4259
  };
4260
4260
  }
4261
4261
  });
@@ -4313,6 +4313,41 @@ var FluxApplicationMenuContextStack_default = /* @__PURE__ */ defineComponent({
4313
4313
  }
4314
4314
  });
4315
4315
  //#endregion
4316
+ //#region src/component/FluxApplicationMenuContextSwitcher.vue
4317
+ var FluxApplicationMenuContextSwitcher_default = /* @__PURE__ */ defineComponent({
4318
+ __name: "FluxApplicationMenuContextSwitcher",
4319
+ setup(__props) {
4320
+ const { contexts, totalLevels, viewIndex, goToLevel } = useApplicationMenu_default();
4321
+ return (_ctx, _cache) => {
4322
+ return openBlock(), createBlock(unref(FluxFadeTransition), null, {
4323
+ default: withCtx(() => [unref(totalLevels) > 1 ? (openBlock(), createBlock(unref(FluxMenuGroup), {
4324
+ key: unref(totalLevels),
4325
+ "is-horizontal": ""
4326
+ }, {
4327
+ default: withCtx(() => [createVNode(unref(FluxMenuItem), {
4328
+ "icon-leading": "grid-2",
4329
+ "is-highlighted": 0 === unref(viewIndex),
4330
+ onClick: _cache[0] || (_cache[0] = ($event) => unref(goToLevel)(0))
4331
+ }, null, 8, ["is-highlighted"]), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(contexts), (context, index) => {
4332
+ return openBlock(), createBlock(unref(FluxMenuItem), {
4333
+ key: context.id,
4334
+ "icon-leading": context.icon,
4335
+ "is-highlighted": index + 1 === unref(viewIndex),
4336
+ onClick: ($event) => unref(goToLevel)(index + 1)
4337
+ }, null, 8, [
4338
+ "icon-leading",
4339
+ "is-highlighted",
4340
+ "onClick"
4341
+ ]);
4342
+ }), 128))]),
4343
+ _: 1
4344
+ })) : createCommentVNode("", true)]),
4345
+ _: 1
4346
+ });
4347
+ };
4348
+ }
4349
+ });
4350
+ //#endregion
4316
4351
  //#region src/component/FluxApplicationMenuPromo.vue
4317
4352
  var FluxApplicationMenuPromo_default = /* @__PURE__ */ defineComponent({
4318
4353
  __name: "FluxApplicationMenuPromo",
@@ -4467,6 +4502,6 @@ var FluxApplicationTop_default = /* @__PURE__ */ defineComponent({
4467
4502
  }
4468
4503
  });
4469
4504
  //#endregion
4470
- export { FluxApplication_default as FluxApplication, FluxApplicationContent_default as FluxApplicationContent, FluxApplicationHero_default as FluxApplicationHero, FluxApplicationInjectionKey, FluxApplicationMenu_default as FluxApplicationMenu, FluxApplicationMenuAccount_default as FluxApplicationMenuAccount, FluxApplicationMenuContext_default as FluxApplicationMenuContext, FluxApplicationMenuContextStack_default as FluxApplicationMenuContextStack, FluxApplicationMenuPromo_default as FluxApplicationMenuPromo, FluxApplicationMenuToggle_default as FluxApplicationMenuToggle, FluxApplicationSection_default as FluxApplicationSection, FluxApplicationSide_default as FluxApplicationSide, FluxApplicationTop_default as FluxApplicationTop, useApplicationContextMenu_default as useApplicationContextMenu, useApplicationContextRegistration_default as useApplicationContextRegistration, useApplicationInjection_default as useApplicationInjection, useApplicationMenu_default as useApplicationMenu };
4505
+ export { FluxApplication_default as FluxApplication, FluxApplicationContent_default as FluxApplicationContent, FluxApplicationHero_default as FluxApplicationHero, FluxApplicationInjectionKey, FluxApplicationMenu_default as FluxApplicationMenu, FluxApplicationMenuAccount_default as FluxApplicationMenuAccount, FluxApplicationMenuContext_default as FluxApplicationMenuContext, FluxApplicationMenuContextStack_default as FluxApplicationMenuContextStack, FluxApplicationMenuContextSwitcher_default as FluxApplicationMenuContextSwitcher, FluxApplicationMenuPromo_default as FluxApplicationMenuPromo, FluxApplicationMenuToggle_default as FluxApplicationMenuToggle, FluxApplicationSection_default as FluxApplicationSection, FluxApplicationSide_default as FluxApplicationSide, FluxApplicationTop_default as FluxApplicationTop, useApplicationContextMenu_default as useApplicationContextMenu, useApplicationContextRegistration_default as useApplicationContextRegistration, useApplicationInjection_default as useApplicationInjection, useApplicationMenu_default as useApplicationMenu };
4471
4506
 
4472
4507
  //# sourceMappingURL=index.js.map