@flux-ui/application 3.2.0-beta.1 → 3.2.0-beta.3

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
@@ -833,7 +833,7 @@ var hue = (hues, fn) => {
833
833
  var fixupHueShorter = (arr) => hue(arr, (d) => Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d));
834
834
  //#endregion
835
835
  //#region ../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/constants.js
836
- var M$1 = [
836
+ var M = [
837
837
  -.14861,
838
838
  1.78277,
839
839
  -.29227,
@@ -845,20 +845,20 @@ var degToRad = Math.PI / 180;
845
845
  var radToDeg = 180 / Math.PI;
846
846
  //#endregion
847
847
  //#region ../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js
848
- var DE = M$1[3] * M$1[4];
849
- var BE = M$1[1] * M$1[4];
850
- var BCAD = M$1[1] * M$1[2] - M$1[0] * M$1[3];
848
+ var DE = M[3] * M[4];
849
+ var BE = M[1] * M[4];
850
+ var BCAD = M[1] * M[2] - M[0] * M[3];
851
851
  var convertRgbToCubehelix = ({ r, g, b, alpha }) => {
852
852
  if (r === void 0) r = 0;
853
853
  if (g === void 0) g = 0;
854
854
  if (b === void 0) b = 0;
855
855
  let l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);
856
856
  let x = b - l;
857
- let y = (M$1[4] * (g - l) - M$1[2] * x) / M$1[3];
857
+ let y = (M[4] * (g - l) - M[2] * x) / M[3];
858
858
  let res = {
859
859
  mode: "cubehelix",
860
860
  l,
861
- s: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M$1[4] * l * (1 - l))
861
+ s: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))
862
862
  };
863
863
  if (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;
864
864
  if (alpha !== void 0) res.alpha = alpha;
@@ -873,9 +873,9 @@ var convertCubehelixToRgb = ({ h, s, l, alpha }) => {
873
873
  let amp = s === void 0 ? 0 : s * l * (1 - l);
874
874
  let cosh = Math.cos(h);
875
875
  let sinh = Math.sin(h);
876
- res.r = l + amp * (M$1[0] * cosh + M$1[1] * sinh);
877
- res.g = l + amp * (M$1[2] * cosh + M$1[3] * sinh);
878
- res.b = l + amp * (M$1[4] * cosh + M$1[5] * sinh);
876
+ res.r = l + amp * (M[0] * cosh + M[1] * sinh);
877
+ res.g = l + amp * (M[2] * cosh + M[3] * sinh);
878
+ res.b = l + amp * (M[4] * cosh + M[5] * sinh);
879
879
  if (alpha !== void 0) res.alpha = alpha;
880
880
  return res;
881
881
  };
@@ -3660,7 +3660,7 @@ var HttpAdapter = _HttpAdapter = class HttpAdapter {
3660
3660
  HttpAdapter = _HttpAdapter = __decorate([adapter_default], HttpAdapter);
3661
3661
  RegExp(`[a-z]`), RegExp(`[A-Z]`), RegExp(`[0-9]`), RegExp(`[!"#$%&'()*+,-./:;<=>?@[\\\\\\]^_\`{|}~]`);
3662
3662
  //#endregion
3663
- //#region ../internals/dist/composable-ByAxh3HA.js
3663
+ //#region ../internals/dist/composable-6jMsSnBV.js
3664
3664
  function O(t, n, r, i = { passive: !0 }) {
3665
3665
  watch(t, (a, o, s) => {
3666
3666
  let c = v(t) ?? (a instanceof EventTarget ? a : null);
@@ -3691,7 +3691,7 @@ function A(e, t) {
3691
3691
  } catch {}
3692
3692
  }), r;
3693
3693
  }
3694
- function M(e) {
3694
+ function j(e) {
3695
3695
  let t = ref(0), n = ref(0);
3696
3696
  if (C) return {
3697
3697
  x: t,
@@ -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",
@@ -4432,7 +4467,7 @@ var FluxApplicationTop_default = /* @__PURE__ */ defineComponent({
4432
4467
  setup(__props) {
4433
4468
  const slots = useSlots();
4434
4469
  const { layout, showDesktopMenuToggle } = useApplicationInjection_default();
4435
- const { y } = M();
4470
+ const { y } = j();
4436
4471
  return (_ctx, _cache) => {
4437
4472
  return openBlock(), createElementBlock("header", { class: normalizeClass(unref(y) > 1 ? unref(ApplicationTop_module_default).applicationTopScrolled : unref(ApplicationTop_module_default).applicationTop) }, [createElementVNode("div", { class: normalizeClass(unref(ApplicationTop_module_default).applicationTopBar) }, [
4438
4473
  createVNode(FluxApplicationMenuToggle_default, { class: normalizeClass(!unref(showDesktopMenuToggle) && unref(ApplicationTop_module_default).applicationTopMenuToggleHidden) }, null, 8, ["class"]),
@@ -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