@flux-ui/components 3.0.0-next.63 → 3.0.0-next.64

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.
package/dist/index.js CHANGED
@@ -7696,13 +7696,13 @@ var FluxButton_default = /* @__PURE__ */ defineComponent({
7696
7696
  });
7697
7697
  //#endregion
7698
7698
  //#region src/css/component/Action.module.scss
7699
- var { "button": _0$15, "buttonLabel": _1$6, "buttonIcon": _2$5 } = Button_module_default$1;
7699
+ var { "button": _0$15, "buttonIcon": _1$6, "buttonLabel": _2$5 } = Button_module_default$1;
7700
7700
  var Action_module_default = {
7701
7701
  action: `action ${_0$15}`,
7702
7702
  spinner: `spinner`,
7703
- actionIcon: `action-icon ${_2$5}`,
7703
+ actionIcon: `action-icon ${_1$6}`,
7704
7704
  isDestructive: `is-destructive`,
7705
- actionLabel: `action-label ${_1$6}`,
7705
+ actionLabel: `action-label ${_2$5}`,
7706
7706
  actionBar: `action-bar`,
7707
7707
  separator: `separator`,
7708
7708
  formInput: `form-input`,
@@ -9068,32 +9068,32 @@ function useTreeView(params) {
9068
9068
  }
9069
9069
  //#endregion
9070
9070
  //#region src/css/component/Button.module.scss
9071
- var { "button": _0$14, "buttonIcon": _1$5, "buttonLabel": _2$4 } = Button_module_default$1;
9071
+ var { "buttonLabel": _0$14, "button": _1$5, "buttonIcon": _2$4 } = Button_module_default$1;
9072
9072
  var Button_module_default = {
9073
- primaryButton: `primary-button ${_0$14}`,
9073
+ primaryButton: `primary-button ${_1$5}`,
9074
9074
  spinner: `spinner`,
9075
- primaryButtonIcon: `primary-button-icon ${_1$5}`,
9076
- primaryButtonLabel: `primary-button-label ${_2$4}`,
9077
- secondaryButton: `secondary-button ${_0$14}`,
9078
- secondaryButtonIcon: `secondary-button-icon ${_1$5}`,
9079
- secondaryButtonLabel: `secondary-button-label ${_2$4}`,
9080
- destructiveButton: `destructive-button ${_0$14}`,
9081
- destructiveButtonIcon: `destructive-button-icon ${_1$5}`,
9082
- destructiveButtonLabel: `destructive-button-label ${_2$4}`,
9083
- baseLinkButton: `base-link-button ${_0$14}`,
9084
- primaryLinkButton: `primary-link-button base-link-button ${_0$14}`,
9085
- primaryLinkButtonIcon: `primary-link-button-icon ${_1$5}`,
9086
- primaryLinkButtonLabel: `primary-link-button-label ${_2$4}`,
9087
- secondaryLinkButton: `secondary-link-button base-link-button ${_0$14}`,
9088
- secondaryLinkButtonIcon: `secondary-link-button-icon ${_1$5}`,
9089
- secondaryLinkButtonLabel: `secondary-link-button-label ${_2$4}`,
9090
- linkButton: `link-button ${_0$14}`,
9091
- linkButtonIcon: `link-button-icon ${_1$5}`,
9075
+ primaryButtonIcon: `primary-button-icon ${_2$4}`,
9076
+ primaryButtonLabel: `primary-button-label ${_0$14}`,
9077
+ secondaryButton: `secondary-button ${_1$5}`,
9078
+ secondaryButtonIcon: `secondary-button-icon ${_2$4}`,
9079
+ secondaryButtonLabel: `secondary-button-label ${_0$14}`,
9080
+ destructiveButton: `destructive-button ${_1$5}`,
9081
+ destructiveButtonIcon: `destructive-button-icon ${_2$4}`,
9082
+ destructiveButtonLabel: `destructive-button-label ${_0$14}`,
9083
+ baseLinkButton: `base-link-button ${_1$5}`,
9084
+ primaryLinkButton: `primary-link-button base-link-button ${_1$5}`,
9085
+ primaryLinkButtonIcon: `primary-link-button-icon ${_2$4}`,
9086
+ primaryLinkButtonLabel: `primary-link-button-label ${_0$14}`,
9087
+ secondaryLinkButton: `secondary-link-button base-link-button ${_1$5}`,
9088
+ secondaryLinkButtonIcon: `secondary-link-button-icon ${_2$4}`,
9089
+ secondaryLinkButtonLabel: `secondary-link-button-label ${_0$14}`,
9090
+ linkButton: `link-button ${_1$5}`,
9091
+ linkButtonIcon: `link-button-icon ${_2$4}`,
9092
9092
  icon: `icon`,
9093
- linkButtonLabel: `link-button-label ${_2$4}`,
9094
- publishButton: `publish-button primary-button ${_0$14}`,
9095
- publishButtonIcon: `publish-button-icon primary-button-icon ${_1$5}`,
9096
- publishButtonLabel: `publish-button-label primary-button-label ${_2$4}`,
9093
+ linkButtonLabel: `link-button-label ${_0$14}`,
9094
+ publishButton: `publish-button primary-button ${_1$5}`,
9095
+ publishButtonIcon: `publish-button-icon primary-button-icon ${_2$4}`,
9096
+ publishButtonLabel: `publish-button-label primary-button-label ${_0$14}`,
9097
9097
  publishButtonAnimation: `publish-button-animation`,
9098
9098
  isDone: `is-done`,
9099
9099
  publishButtonAnimationArrow: `publish-button-animation-arrow`,
@@ -9227,1124 +9227,1127 @@ var FluxFlex_default = /* @__PURE__ */ defineComponent({
9227
9227
  }
9228
9228
  });
9229
9229
  //#endregion
9230
- //#region src/css/component/Pane.module.scss
9231
- var { "basePaneStructure": _0$13, "basePaneElement": _1$4, "basePaneLoader": _2$3 } = Pane_module_default$1;
9232
- var Pane_module_default = {
9233
- pane: `pane ${_0$13}`,
9234
- paneDefault: `pane-default pane ${_0$13}`,
9235
- paneFlat: `pane-flat pane ${_0$13}`,
9236
- paneWell: `pane-well pane ${_0$13}`,
9237
- paneHeader: `pane-header ${_1$4}`,
9238
- paneBody: `pane-body ${_1$4}`,
9239
- paneHeaderCaption: `pane-header-caption`,
9240
- paneHeaderIcon: `pane-header-icon`,
9241
- paneFooter: `pane-footer ${_1$4}`,
9242
- paneLoader: `pane-loader ${_2$3}`,
9243
- paneTag: `pane-tag`,
9244
- paneMedia: `pane-media`,
9245
- paneMediaDefault: `pane-media-default pane-media`,
9246
- paneMediaInset: `pane-media-inset pane-media`,
9247
- paneMediaImage: `pane-media-image`,
9248
- paneGroup: `pane-group`,
9249
- paneIllustration: `pane-illustration`,
9250
- paneIllustrationContent: `pane-illustration-content`,
9251
- paneIllustrationContentControlled: `pane-illustration-content-controlled pane-illustration-content`,
9252
- paneIllustrationMagic: `pane-illustration-magic`,
9253
- paneIllustrationMasked: `pane-illustration-masked pane-illustration`,
9254
- iconBoxed: `icon-boxed`
9255
- };
9256
- //#endregion
9257
- //#region src/component/FluxPane.vue
9258
- var FluxPane_default = /* @__PURE__ */ defineComponent({
9259
- __name: "FluxPane",
9260
- props: {
9261
- isLoading: { type: Boolean },
9262
- tag: {},
9263
- variant: { default: "default" }
9264
- },
9230
+ //#region src/transition/FluxAutoHeightTransition.vue
9231
+ var FluxAutoHeightTransition_default = /* @__PURE__ */ defineComponent({
9232
+ __name: "FluxAutoHeightTransition",
9265
9233
  setup(__props) {
9266
- const CLASS_MAP = {
9267
- default: Pane_module_default.paneDefault,
9268
- flat: Pane_module_default.paneFlat,
9269
- well: Pane_module_default.paneWell
9270
- };
9234
+ function afterEnter(elm) {
9235
+ if (!R$2(elm)) return;
9236
+ elm.style.height = "auto";
9237
+ }
9238
+ function enter(elm) {
9239
+ if (!R$2(elm)) return;
9240
+ const { width } = getComputedStyle(elm);
9241
+ elm.style.position = "absolute";
9242
+ elm.style.width = width;
9243
+ elm.style.height = "auto";
9244
+ elm.style.visibility = "hidden";
9245
+ const { height } = getComputedStyle(elm);
9246
+ elm.style.removeProperty("position");
9247
+ elm.style.removeProperty("width");
9248
+ elm.style.removeProperty("visibility");
9249
+ elm.style.height = "0";
9250
+ getComputedStyle(elm);
9251
+ requestAnimationFrame(() => requestAnimationFrame(() => elm.style.height = height));
9252
+ }
9253
+ function leave(elm) {
9254
+ if (!R$2(elm)) return;
9255
+ const { height } = getComputedStyle(elm);
9256
+ elm.style.height = height;
9257
+ getComputedStyle(elm);
9258
+ requestAnimationFrame(() => requestAnimationFrame(() => elm.style.height = "0"));
9259
+ }
9271
9260
  return (_ctx, _cache) => {
9272
- return openBlock(), createElementBlock("div", { class: normalizeClass(CLASS_MAP[__props.variant]) }, [
9273
- renderSlot(_ctx.$slots, "default"),
9274
- __props.isLoading ? renderSlot(_ctx.$slots, "loader", { key: 0 }, () => [createElementVNode("div", { class: normalizeClass(unref(Pane_module_default).paneLoader) }, [createVNode(FluxSpinner_default)], 2)]) : createCommentVNode("", true),
9275
- __props.tag ? (openBlock(), createElementBlock("div", {
9276
- key: 1,
9277
- class: normalizeClass(unref(Pane_module_default).paneTag)
9278
- }, toDisplayString(__props.tag), 3)) : createCommentVNode("", true)
9279
- ], 2);
9261
+ return openBlock(), createBlock(Transition, {
9262
+ onAfterEnter: afterEnter,
9263
+ onEnter: enter,
9264
+ onLeave: leave
9265
+ }, {
9266
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9267
+ _: 3
9268
+ });
9280
9269
  };
9281
9270
  }
9282
9271
  });
9283
- var Flyout_module_default = {
9284
- flyout: `flyout`,
9285
- flyoutDialog: `flyout-dialog`,
9286
- flyoutPane: `flyout-pane`,
9287
- isAutoWidth: `is-auto-width`,
9288
- isClosing: `is-closing`,
9289
- close: `close`,
9290
- isOpening: `is-opening`,
9291
- open: `open`,
9292
- mobileClose: `mobile-close`,
9293
- mobileOpen: `mobile-open`
9294
- };
9295
- //#endregion
9296
- //#region src/component/FluxFlyout.vue?vue&type=script&setup=true&lang.ts
9297
- var _hoisted_1$60 = ["onKeydown"];
9298
9272
  //#endregion
9299
- //#region src/component/FluxFlyout.vue
9300
- var FluxFlyout_default = /* @__PURE__ */ defineComponent({
9301
- __name: "FluxFlyout",
9302
- props: {
9303
- direction: { default: "vertical" },
9304
- isAutoWidth: { type: Boolean },
9305
- margin: { default: 9 },
9306
- width: {}
9307
- },
9308
- setup(__props, { expose: __expose }) {
9309
- const dialogRef = useTemplateRef("dialog");
9310
- const mountRef = useTemplateRef("mount");
9311
- const paneRef = useTemplateRef("pane");
9312
- const isClosing = ref(false);
9313
- const isOpening = ref(false);
9314
- const isOpen = ref(false);
9315
- const openerWidth = ref(0);
9316
- const openerHeight = ref(0);
9317
- const paneX = ref(0);
9318
- const paneY = ref(0);
9319
- const paneMarginX = ref(0);
9320
- const paneMarginY = ref(0);
9321
- !S$3 && D$1(ref(window), "resize", () => unref(isOpen) && reposition());
9322
- F$1(paneRef);
9323
- function close() {
9324
- const pane = _$3(paneRef);
9325
- if (!pane) return;
9326
- pane.addEventListener("animationend", () => {
9327
- isClosing.value = false;
9328
- isOpen.value = false;
9329
- }, { once: true });
9330
- isClosing.value = true;
9331
- }
9332
- function open() {
9333
- const { width, height } = unref(mountRef).children[0].getBoundingClientRect();
9334
- isOpen.value = true;
9335
- openerWidth.value = width;
9336
- openerHeight.value = height;
9337
- requestAnimationFrame(() => {
9338
- _$3(paneRef).addEventListener("animationend", () => {
9339
- isOpening.value = false;
9340
- }, { once: true });
9341
- isOpening.value = true;
9342
- });
9343
- requestAnimationFrame(reposition);
9344
- }
9345
- function reposition() {
9346
- const mount = unref(mountRef);
9347
- const pane = _$3(paneRef);
9348
- const { top, left, width, height } = mount.children[0].getBoundingClientRect();
9349
- const { width: paneWidth, height: paneHeight } = pane.getBoundingClientRect();
9350
- let x, y, mx = 0, my = 0;
9351
- if (__props.direction === "horizontal") {
9352
- x = left + width;
9353
- y = top + height / 2 - paneHeight / 2;
9354
- mx = __props.margin;
9355
- if (x + paneWidth > innerWidth - 12) {
9356
- x = left - paneWidth;
9357
- mx = -mx;
9358
- }
9359
- } else {
9360
- x = left + width / 2 - paneWidth / 2;
9361
- y = top + height;
9362
- my = __props.margin;
9363
- if (y + paneHeight > innerHeight - 12) {
9364
- y = top - paneHeight;
9365
- my = -my;
9366
- }
9367
- }
9368
- paneX.value = Math.max(12, Math.min(innerWidth - paneWidth - 12, x));
9369
- paneY.value = Math.max(12, Math.min(innerHeight - paneHeight - 12, y));
9370
- paneMarginX.value = mx;
9371
- paneMarginY.value = my;
9273
+ //#region src/transition/FluxAutoWidthTransition.vue
9274
+ var FluxAutoWidthTransition_default = /* @__PURE__ */ defineComponent({
9275
+ __name: "FluxAutoWidthTransition",
9276
+ setup(__props) {
9277
+ function afterEnter(elm) {
9278
+ if (!R$2(elm)) return;
9279
+ elm.style.width = "auto";
9372
9280
  }
9373
- function toggle() {
9374
- if (isOpen.value) close();
9375
- else open();
9281
+ function enter(elm) {
9282
+ if (!R$2(elm)) return;
9283
+ const { height } = getComputedStyle(elm);
9284
+ elm.style.position = "absolute";
9285
+ elm.style.height = height;
9286
+ elm.style.width = "auto";
9287
+ elm.style.visibility = "hidden";
9288
+ const { width } = getComputedStyle(elm);
9289
+ elm.style.removeProperty("position");
9290
+ elm.style.removeProperty("height");
9291
+ elm.style.removeProperty("visibility");
9292
+ elm.style.width = "0";
9293
+ getComputedStyle(elm);
9294
+ requestAnimationFrame(() => requestAnimationFrame(() => elm.style.width = width));
9376
9295
  }
9377
- function onDialogBackdropClick(evt) {
9378
- if (evt.target.tagName !== "DIALOG") return;
9379
- close();
9296
+ function leave(elm) {
9297
+ if (!R$2(elm)) return;
9298
+ const { width } = getComputedStyle(elm);
9299
+ elm.style.width = width;
9300
+ getComputedStyle(elm);
9301
+ requestAnimationFrame(() => requestAnimationFrame(() => elm.style.width = "0"));
9380
9302
  }
9381
- watch(isOpen, (isOpen, _, onCleanup) => {
9382
- const dialog = unref(dialogRef);
9383
- if (isOpen && !dialog.open) {
9384
- dialog.showModal();
9385
- window.addEventListener("scroll", reposition, { passive: true });
9386
- onCleanup(() => window.removeEventListener("scroll", reposition));
9387
- } else if (!isOpen && dialog.open) dialog.close();
9388
- });
9389
- provide(FluxFlyoutInjectionKey, {
9390
- isClosing,
9391
- isOpen,
9392
- isOpening
9393
- });
9394
- __expose({
9395
- close,
9396
- open,
9397
- toggle
9398
- });
9399
9303
  return (_ctx, _cache) => {
9400
- return openBlock(), createElementBlock("div", {
9401
- ref: "mount",
9402
- class: normalizeClass(unref(Flyout_module_default).flyout),
9403
- style: normalizeStyle({
9404
- "--opener-width": `${openerWidth.value}px`,
9405
- "--pane-mx": `${paneMarginX.value}px`,
9406
- "--pane-my": `${paneMarginY.value}px`,
9407
- "--pane-x": `${paneX.value - 30}px`,
9408
- "--pane-y": `${paneY.value - 30}px`
9409
- })
9410
- }, [renderSlot(_ctx.$slots, "opener", normalizeProps(guardReactiveProps({
9411
- close,
9412
- open,
9413
- toggle,
9414
- isOpen: isOpen.value || isOpening.value || isClosing.value
9415
- }))), createElementVNode("dialog", {
9416
- ref: "dialog",
9417
- class: normalizeClass(unref(Flyout_module_default).flyoutDialog),
9418
- onClick: onDialogBackdropClick,
9419
- onKeydown: withKeys(withModifiers(close, ["prevent"]), ["esc"])
9420
- }, [isOpen.value ? (openBlock(), createBlock(FluxPane_default, {
9421
- key: 0,
9422
- ref: "pane",
9423
- class: normalizeClass(unref(clsx)(unref(Flyout_module_default).flyoutPane, __props.isAutoWidth && unref(Flyout_module_default).isAutoWidth, isClosing.value && unref(Flyout_module_default).isClosing, isOpening.value && unref(Flyout_module_default).isOpening)),
9424
- style: normalizeStyle({ width: `${__props.width}px` })
9304
+ return openBlock(), createBlock(Transition, {
9305
+ onAfterEnter: afterEnter,
9306
+ onEnter: enter,
9307
+ onLeave: leave
9425
9308
  }, {
9426
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
9427
- close,
9428
- paneX: paneX.value,
9429
- paneY: paneY.value,
9430
- openerWidth: openerWidth.value,
9431
- openerHeight: openerHeight.value
9432
- })))]),
9309
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9433
9310
  _: 3
9434
- }, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$60)], 6);
9311
+ });
9435
9312
  };
9436
9313
  }
9437
9314
  });
9315
+ var Transition_module_default = {
9316
+ breakthroughTransitionEnterActive: `breakthrough-transition-enter-active`,
9317
+ breakthroughTransitionBackEnterActive: `breakthrough-transition-back-enter-active`,
9318
+ breakthroughTransitionLeaveActive: `breakthrough-transition-leave-active`,
9319
+ breakthroughTransitionBackLeaveActive: `breakthrough-transition-back-leave-active`,
9320
+ breakthroughTransitionEnterFrom: `breakthrough-transition-enter-from`,
9321
+ breakthroughTransitionBackLeaveTo: `breakthrough-transition-back-leave-to`,
9322
+ breakthroughTransitionLeaveTo: `breakthrough-transition-leave-to`,
9323
+ breakthroughTransitionBackEnterFrom: `breakthrough-transition-back-enter-from`,
9324
+ fadeTransitionEnterActive: `fade-transition-enter-active`,
9325
+ fadeTransitionLeaveActive: `fade-transition-leave-active`,
9326
+ fadeTransitionEnterFrom: `fade-transition-enter-from`,
9327
+ fadeTransitionLeaveTo: `fade-transition-leave-to`,
9328
+ fadeTransitionEnterTo: `fade-transition-enter-to`,
9329
+ fadeTransitionLeaveFrom: `fade-transition-leave-from`,
9330
+ routeTransitionEnterActive: `route-transition-enter-active`,
9331
+ routeTransitionBackEnterActive: `route-transition-back-enter-active`,
9332
+ routeTransitionLeaveActive: `route-transition-leave-active`,
9333
+ routeTransitionBackLeaveActive: `route-transition-back-leave-active`,
9334
+ routeTransitionEnterFrom: `route-transition-enter-from`,
9335
+ routeTransitionBackLeaveTo: `route-transition-back-leave-to`,
9336
+ routeTransitionLeaveTo: `route-transition-leave-to`,
9337
+ routeTransitionBackEnterFrom: `route-transition-back-enter-from`,
9338
+ tooltipTransitionEnterActive: `tooltip-transition-enter-active`,
9339
+ tooltipTransitionLeaveActive: `tooltip-transition-leave-active`,
9340
+ tooltipTransitionEnterFrom: `tooltip-transition-enter-from`,
9341
+ tooltipTransitionLeaveTo: `tooltip-transition-leave-to`,
9342
+ verticalWindowTransitionEnterActive: `vertical-window-transition-enter-active`,
9343
+ verticalWindowTransitionBackEnterActive: `vertical-window-transition-back-enter-active`,
9344
+ verticalWindowTransitionLeaveActive: `vertical-window-transition-leave-active`,
9345
+ verticalWindowTransitionBackLeaveActive: `vertical-window-transition-back-leave-active`,
9346
+ verticalWindowTransitionBackLeaveTo: `vertical-window-transition-back-leave-to`,
9347
+ verticalWindowTransitionEnterFrom: `vertical-window-transition-enter-from`,
9348
+ verticalWindowTransitionBackEnterFrom: `vertical-window-transition-back-enter-from`,
9349
+ verticalWindowTransitionLeaveTo: `vertical-window-transition-leave-to`,
9350
+ windowTransitionEnterActive: `window-transition-enter-active`,
9351
+ windowTransitionBackEnterActive: `window-transition-back-enter-active`,
9352
+ windowTransitionLeaveActive: `window-transition-leave-active`,
9353
+ windowTransitionBackLeaveActive: `window-transition-back-leave-active`,
9354
+ windowTransitionBackLeaveTo: `window-transition-back-leave-to`,
9355
+ windowTransitionEnterFrom: `window-transition-enter-from`,
9356
+ windowTransitionBackEnterFrom: `window-transition-back-enter-from`,
9357
+ windowTransitionLeaveTo: `window-transition-leave-to`
9358
+ };
9438
9359
  //#endregion
9439
- //#region src/component/FluxSecondaryButton.vue
9440
- var FluxSecondaryButton_default = /* @__PURE__ */ defineComponent({
9441
- __name: "FluxSecondaryButton",
9360
+ //#region src/transition/FluxBreakthroughTransition.vue
9361
+ var FluxBreakthroughTransition_default = /* @__PURE__ */ defineComponent({
9362
+ __name: "FluxBreakthroughTransition",
9442
9363
  props: {
9443
- type: {},
9444
- disabled: { type: Boolean },
9445
- iconLeading: {},
9446
- iconTrailing: {},
9447
- isFilled: { type: Boolean },
9448
- isLoading: { type: Boolean },
9449
- isSubmit: { type: Boolean },
9450
- label: {},
9451
- size: {},
9452
- tabindex: {},
9453
- href: {},
9454
- rel: {},
9455
- target: {},
9456
- to: {}
9364
+ isBack: { type: Boolean },
9365
+ mode: { default: "out-in" }
9457
9366
  },
9458
- emits: [
9459
- "click",
9460
- "mouseenter",
9461
- "mouseleave"
9462
- ],
9463
- setup(__props, { emit: $emit }) {
9464
- return (_ctx, _cache) => {
9465
- return openBlock(), createBlock(FluxButton_default, mergeProps({
9466
- type: __props.type,
9467
- disabled: __props.disabled,
9468
- iconLeading: __props.iconLeading,
9469
- iconTrailing: __props.iconTrailing,
9470
- isFilled: __props.isFilled,
9471
- isLoading: __props.isLoading,
9472
- isSubmit: __props.isSubmit,
9473
- label: __props.label,
9474
- size: __props.size,
9475
- href: __props.href,
9476
- rel: __props.rel,
9477
- target: __props.target,
9478
- to: __props.to
9367
+ setup(__props) {
9368
+ return (_ctx, _cache) => {
9369
+ return openBlock(), createBlock(Transition, {
9370
+ mode: __props.mode,
9371
+ "enter-active-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackEnterActive : unref(Transition_module_default).breakthroughTransitionEnterActive,
9372
+ "enter-from-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackEnterFrom : unref(Transition_module_default).breakthroughTransitionEnterFrom,
9373
+ "leave-active-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackLeaveActive : unref(Transition_module_default).breakthroughTransitionLeaveActive,
9374
+ "leave-to-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackLeaveTo : unref(Transition_module_default).breakthroughTransitionLeaveTo
9479
9375
  }, {
9480
- "css-class": unref(Button_module_default).secondaryButton,
9481
- "css-class-icon": unref(Button_module_default).secondaryButtonIcon,
9482
- "css-class-label": unref(Button_module_default).secondaryButtonLabel,
9483
- onClick: _cache[0] || (_cache[0] = ($event) => $emit("click", $event)),
9484
- onMouseenter: _cache[1] || (_cache[1] = ($event) => $emit("mouseenter", $event)),
9485
- onMouseleave: _cache[2] || (_cache[2] = ($event) => $emit("mouseleave", $event))
9486
- }), createSlots({ _: 2 }, [renderList(unref(SLOTS), (slot) => {
9487
- return {
9488
- name: slot,
9489
- fn: withCtx(() => [renderSlot(_ctx.$slots, slot)])
9490
- };
9491
- })]), 1040, [
9492
- "css-class",
9493
- "css-class-icon",
9494
- "css-class-label"
9376
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9377
+ _: 3
9378
+ }, 8, [
9379
+ "mode",
9380
+ "enter-active-class",
9381
+ "enter-from-class",
9382
+ "leave-active-class",
9383
+ "leave-to-class"
9495
9384
  ]);
9496
9385
  };
9497
9386
  }
9498
9387
  });
9499
- var Layout_module_default = {
9500
- aspectRatio: `aspect-ratio`,
9501
- container: `container`,
9502
- spacer: `spacer`
9503
- };
9504
9388
  //#endregion
9505
- //#region src/component/FluxSpacer.vue
9506
- var FluxSpacer_default = /* @__PURE__ */ defineComponent({
9507
- __name: "FluxSpacer",
9389
+ //#region src/transition/FluxFadeTransition.vue
9390
+ var FluxFadeTransition_default = /* @__PURE__ */ defineComponent({
9391
+ __name: "FluxFadeTransition",
9392
+ props: { mode: { default: "out-in" } },
9508
9393
  setup(__props) {
9509
9394
  return (_ctx, _cache) => {
9510
- return openBlock(), createElementBlock("div", { class: normalizeClass(unref(Layout_module_default).spacer) }, null, 2);
9395
+ return openBlock(), createBlock(Transition, {
9396
+ mode: __props.mode,
9397
+ "enter-active-class": unref(Transition_module_default).fadeTransitionEnterActive,
9398
+ "enter-from-class": unref(Transition_module_default).fadeTransitionEnterFrom,
9399
+ "enter-to-class": unref(Transition_module_default).fadeTransitionEnterTo,
9400
+ "leave-active-class": unref(Transition_module_default).fadeTransitionLeaveActive,
9401
+ "leave-from-class": unref(Transition_module_default).fadeTransitionLeaveFrom,
9402
+ "leave-to-class": unref(Transition_module_default).fadeTransitionLeaveTo
9403
+ }, {
9404
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9405
+ _: 3
9406
+ }, 8, [
9407
+ "mode",
9408
+ "enter-active-class",
9409
+ "enter-from-class",
9410
+ "enter-to-class",
9411
+ "leave-active-class",
9412
+ "leave-from-class",
9413
+ "leave-to-class"
9414
+ ]);
9511
9415
  };
9512
9416
  }
9513
9417
  });
9514
9418
  //#endregion
9515
- //#region src/component/FluxTooltip.vue
9516
- var FluxTooltip_default = defineComponent({
9517
- props: {
9518
- content: String,
9519
- direction: String
9520
- },
9521
- slots: Object,
9522
- setup(props, { slots }) {
9523
- const instance = getCurrentInstance();
9524
- const tooltipId = ref(null);
9525
- onMounted(() => {
9526
- const elm = instance.proxy.$el;
9527
- elm.addEventListener("mouseenter", onHover, { passive: true });
9528
- elm.addEventListener("mouseleave", onLeave, { passive: true });
9529
- window.addEventListener("scroll", onLeave, { capture: true });
9530
- });
9531
- onUnmounted(() => {
9532
- const elm = instance.proxy.$el;
9533
- elm.removeEventListener("mouseenter", onHover);
9534
- elm.removeEventListener("mouseleave", onLeave);
9535
- window.removeEventListener("scroll", onLeave, { capture: true });
9536
- onLeave();
9537
- });
9538
- function onHover() {
9539
- onLeave();
9540
- if ((props.content?.trim().length ?? 0) === 0 && !slots.content) return;
9541
- tooltipId.value = addTooltip({
9542
- content: props.content,
9543
- contentSlot: slots.content,
9544
- direction: props.direction || "vertical",
9545
- origin: instance.proxy?.$el
9546
- });
9547
- }
9548
- function onLeave() {
9549
- if (tooltipId.value) removeTooltip(tooltipId.value);
9550
- }
9551
- return () => (slots.default?.() ?? [])[0] ?? null;
9552
- }
9553
- });
9554
- //#endregion
9555
- //#region src/component/FluxActionBar.vue
9556
- var FluxActionBar_default = /* @__PURE__ */ defineComponent({
9557
- __name: "FluxActionBar",
9558
- props: { isResettable: { type: Boolean } },
9559
- emits: ["reset"],
9560
- setup(__props, { emit: $emit }) {
9561
- const slots = useSlots();
9562
- const translate = useTranslate_default();
9419
+ //#region src/transition/FluxOverlayTransition.vue
9420
+ var FluxOverlayTransition_default = /* @__PURE__ */ defineComponent({
9421
+ __name: "FluxOverlayTransition",
9422
+ props: { mode: { default: "out-in" } },
9423
+ setup(__props) {
9563
9424
  return (_ctx, _cache) => {
9564
- return openBlock(), createBlock(FluxFlex_default, {
9565
- class: normalizeClass(unref(Action_module_default).actionBar),
9566
- gap: 9
9425
+ return openBlock(), createBlock(Transition, {
9426
+ mode: __props.mode,
9427
+ "enter-active-class": unref(Overlay_module_default).overlayTransitionEnterActive,
9428
+ "enter-from-class": unref(Overlay_module_default).overlayTransitionEnterFrom,
9429
+ "leave-active-class": unref(Overlay_module_default).overlayTransitionLeaveActive,
9430
+ "leave-to-class": unref(Overlay_module_default).overlayTransitionLeaveTo
9567
9431
  }, {
9568
- default: withCtx(() => [
9569
- renderSlot(_ctx.$slots, "primary"),
9570
- renderSlot(_ctx.$slots, "actionsStart"),
9571
- (slots.primary || slots.actionsStart) && (slots.actionsBeforeSearch || slots.search || slots.actionsAfterSearch || slots.filter || slots.actionsEnd) ? (openBlock(), createBlock(FluxSpacer_default, { key: 0 })) : createCommentVNode("", true),
9572
- renderSlot(_ctx.$slots, "actionsBeforeSearch"),
9573
- renderSlot(_ctx.$slots, "search"),
9574
- renderSlot(_ctx.$slots, "actionsAfterSearch"),
9575
- slots.filter ? (openBlock(), createBlock(FluxFlyout_default, { key: 1 }, {
9576
- opener: withCtx(({ close, open, toggle }) => [renderSlot(_ctx.$slots, "filterOpener", normalizeProps(guardReactiveProps({
9577
- close,
9578
- open,
9579
- toggle
9580
- })), () => [createVNode(FluxButtonGroup_default, null, {
9581
- default: withCtx(() => [createVNode(FluxSecondaryButton_default, {
9582
- "icon-leading": "filter",
9583
- label: unref(translate)("flux.filter"),
9584
- onClick: open
9585
- }, null, 8, ["label", "onClick"]), __props.isResettable ? (openBlock(), createBlock(FluxTooltip_default, {
9586
- key: 0,
9587
- content: unref(translate)("flux.filterReset")
9588
- }, {
9589
- default: withCtx(() => [createVNode(FluxDestructiveButton_default, {
9590
- "icon-leading": "xmark",
9591
- onClick: _cache[0] || (_cache[0] = ($event) => $emit("reset"))
9592
- })]),
9593
- _: 1
9594
- }, 8, ["content"])) : createCommentVNode("", true)]),
9595
- _: 2
9596
- }, 1024)])]),
9597
- default: withCtx(({ close, paneX, paneY, openerWidth, openerHeight }) => [renderSlot(_ctx.$slots, "filter", normalizeProps(guardReactiveProps({
9598
- close,
9599
- paneX,
9600
- paneY,
9601
- openerWidth,
9602
- openerHeight
9603
- })))]),
9604
- _: 3
9605
- })) : createCommentVNode("", true),
9606
- renderSlot(_ctx.$slots, "actionsEnd")
9607
- ]),
9432
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9608
9433
  _: 3
9609
- }, 8, ["class"]);
9434
+ }, 8, [
9435
+ "mode",
9436
+ "enter-active-class",
9437
+ "enter-from-class",
9438
+ "leave-active-class",
9439
+ "leave-to-class"
9440
+ ]);
9610
9441
  };
9611
9442
  }
9612
9443
  });
9613
9444
  //#endregion
9614
- //#region src/component/FluxButtonStack.vue
9615
- var FluxButtonStack_default = /* @__PURE__ */ defineComponent({
9616
- __name: "FluxButtonStack",
9445
+ //#region src/transition/FluxRouteTransition.vue
9446
+ var FluxRouteTransition_default = /* @__PURE__ */ defineComponent({
9447
+ __name: "FluxRouteTransition",
9617
9448
  props: {
9618
- direction: { default: "horizontal" },
9619
- gap: { default: 9 },
9620
- isFill: { type: Boolean }
9449
+ isBack: { type: Boolean },
9450
+ mode: { default: "out-in" }
9621
9451
  },
9622
9452
  setup(__props) {
9623
9453
  return (_ctx, _cache) => {
9624
- return openBlock(), createBlock(FluxFlex_default, {
9625
- class: normalizeClass(__props.isFill ? unref(Flex_module_default).flexFill : void 0),
9626
- direction: __props.direction,
9627
- gap: __props.gap,
9628
- wrap: "wrap"
9454
+ return openBlock(), createBlock(Transition, {
9455
+ mode: __props.mode,
9456
+ "enter-active-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackEnterActive : unref(Transition_module_default).routeTransitionEnterActive,
9457
+ "enter-from-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackEnterFrom : unref(Transition_module_default).routeTransitionEnterFrom,
9458
+ "leave-active-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackLeaveActive : unref(Transition_module_default).routeTransitionLeaveActive,
9459
+ "leave-to-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackLeaveTo : unref(Transition_module_default).routeTransitionLeaveTo
9629
9460
  }, {
9630
9461
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9631
9462
  _: 3
9632
9463
  }, 8, [
9633
- "class",
9634
- "direction",
9635
- "gap"
9464
+ "mode",
9465
+ "enter-active-class",
9466
+ "enter-from-class",
9467
+ "leave-active-class",
9468
+ "leave-to-class"
9636
9469
  ]);
9637
9470
  };
9638
9471
  }
9639
9472
  });
9640
9473
  //#endregion
9641
- //#region src/component/FluxPaneBody.vue
9642
- var FluxPaneBody_default = /* @__PURE__ */ defineComponent({
9643
- __name: "FluxPaneBody",
9474
+ //#region src/transition/FluxSlideOverTransition.vue
9475
+ var FluxSlideOverTransition_default = /* @__PURE__ */ defineComponent({
9476
+ __name: "FluxSlideOverTransition",
9477
+ props: { mode: { default: "out-in" } },
9644
9478
  setup(__props) {
9645
9479
  return (_ctx, _cache) => {
9646
- return openBlock(), createElementBlock("div", { class: normalizeClass(unref(Pane_module_default).paneBody) }, [renderSlot(_ctx.$slots, "default")], 2);
9480
+ return openBlock(), createBlock(Transition, {
9481
+ mode: __props.mode,
9482
+ "enter-active-class": unref(Overlay_module_default).slideOverTransitionEnterActive,
9483
+ "enter-from-class": unref(Overlay_module_default).slideOverTransitionEnterFrom,
9484
+ "leave-active-class": unref(Overlay_module_default).slideOverTransitionLeaveActive,
9485
+ "leave-to-class": unref(Overlay_module_default).slideOverTransitionLeaveTo
9486
+ }, {
9487
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9488
+ _: 3
9489
+ }, 8, [
9490
+ "mode",
9491
+ "enter-active-class",
9492
+ "enter-from-class",
9493
+ "leave-active-class",
9494
+ "leave-to-class"
9495
+ ]);
9647
9496
  };
9648
9497
  }
9649
9498
  });
9650
9499
  //#endregion
9651
- //#region src/component/FluxActionPane.vue
9652
- var FluxActionPane_default = /* @__PURE__ */ defineComponent({
9653
- __name: "FluxActionPane",
9654
- props: { paneVariant: {} },
9655
- setup(__props) {
9656
- const slots = useSlots();
9657
- return (_ctx, _cache) => {
9658
- return openBlock(), createBlock(FluxPane_default, {
9659
- class: normalizeClass(unref(Action_module_default).actionPane),
9660
- variant: __props.paneVariant
9661
- }, {
9662
- default: withCtx(() => [renderSlot(_ctx.$slots, "base"), createElementVNode("div", { class: normalizeClass(unref(Action_module_default).actionPaneGrid) }, [createVNode(FluxPaneBody_default, { class: normalizeClass(unref(Action_module_default).actionPaneBody) }, {
9663
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9664
- _: 3
9665
- }, 8, ["class"]), slots.buttons ? (openBlock(), createBlock(FluxPaneBody_default, {
9666
- key: 0,
9667
- class: normalizeClass(unref(Action_module_default).actionPaneBody)
9668
- }, {
9669
- default: withCtx(() => [createVNode(FluxButtonStack_default, { direction: "vertical" }, {
9670
- default: withCtx(() => [renderSlot(_ctx.$slots, "buttons")]),
9671
- _: 3
9672
- })]),
9673
- _: 3
9674
- }, 8, ["class"])) : createCommentVNode("", true)], 2)]),
9500
+ //#region src/transition/FluxTooltipTransition.vue
9501
+ var FluxTooltipTransition_default = /* @__PURE__ */ defineComponent({
9502
+ __name: "FluxTooltipTransition",
9503
+ props: { mode: { default: "out-in" } },
9504
+ setup(__props) {
9505
+ return (_ctx, _cache) => {
9506
+ return openBlock(), createBlock(Transition, {
9507
+ mode: __props.mode,
9508
+ "enter-active-class": unref(Transition_module_default).tooltipTransitionEnterActive,
9509
+ "enter-from-class": unref(Transition_module_default).tooltipTransitionEnterFrom,
9510
+ "leave-active-class": unref(Transition_module_default).tooltipTransitionLeaveActive,
9511
+ "leave-to-class": unref(Transition_module_default).tooltipTransitionLeaveTo
9512
+ }, {
9513
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9675
9514
  _: 3
9676
- }, 8, ["class", "variant"]);
9515
+ }, 8, [
9516
+ "mode",
9517
+ "enter-active-class",
9518
+ "enter-from-class",
9519
+ "leave-active-class",
9520
+ "leave-to-class"
9521
+ ]);
9677
9522
  };
9678
9523
  }
9679
9524
  });
9680
9525
  //#endregion
9681
- //#region src/component/FluxActionStack.vue
9682
- var FluxActionStack_default = /* @__PURE__ */ defineComponent({
9683
- __name: "FluxActionStack",
9526
+ //#region src/transition/FluxVerticalWindowTransition.vue
9527
+ var FluxVerticalWindowTransition_default = /* @__PURE__ */ defineComponent({
9528
+ __name: "FluxVerticalWindowTransition",
9529
+ props: {
9530
+ isBack: { type: Boolean },
9531
+ mode: { default: "out-in" }
9532
+ },
9684
9533
  setup(__props) {
9685
- L$1(useTemplateRef("element"), { direction: "horizontal" });
9686
9534
  return (_ctx, _cache) => {
9687
- return openBlock(), createBlock(FluxFlex_default, {
9688
- ref: "element",
9689
- direction: "horizontal",
9690
- gap: 1,
9691
- tag: "nav"
9535
+ return openBlock(), createBlock(Transition, {
9536
+ mode: __props.mode,
9537
+ "enter-active-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackEnterActive : unref(Transition_module_default).verticalWindowTransitionEnterActive,
9538
+ "enter-from-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackEnterFrom : unref(Transition_module_default).verticalWindowTransitionEnterFrom,
9539
+ "leave-active-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackLeaveActive : unref(Transition_module_default).verticalWindowTransitionLeaveActive,
9540
+ "leave-to-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackLeaveTo : unref(Transition_module_default).verticalWindowTransitionLeaveTo
9692
9541
  }, {
9693
9542
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9694
9543
  _: 3
9695
- }, 512);
9544
+ }, 8, [
9545
+ "mode",
9546
+ "enter-active-class",
9547
+ "enter-from-class",
9548
+ "leave-active-class",
9549
+ "leave-to-class"
9550
+ ]);
9696
9551
  };
9697
9552
  }
9698
9553
  });
9699
- var AdaptiveSlot_module_default = {
9700
- adaptiveGroup: `adaptive-group`,
9701
- adaptiveSlot: `adaptive-slot`,
9702
- adaptiveSlotMeasurer: `adaptive-slot-measurer`
9703
- };
9704
9554
  //#endregion
9705
- //#region src/component/FluxAdaptiveGroup.vue
9706
- var FluxAdaptiveGroup_default = /* @__PURE__ */ defineComponent({
9707
- __name: "FluxAdaptiveGroup",
9708
- props: { gap: { default: 9 } },
9555
+ //#region src/transition/FluxWindowTransition.vue
9556
+ var FluxWindowTransition_default = /* @__PURE__ */ defineComponent({
9557
+ __name: "FluxWindowTransition",
9558
+ props: {
9559
+ isBack: { type: Boolean },
9560
+ mode: { default: "out-in" }
9561
+ },
9709
9562
  setup(__props) {
9710
- const elementRef = useTemplateRef("element");
9711
- const children = shallowReactive(/* @__PURE__ */ new Map());
9712
- const reflow = i$2(() => {
9713
- const element = _$3(elementRef);
9714
- if (!element) return;
9715
- const available = element.clientWidth;
9716
- const entries = Array.from(children.entries());
9717
- const states = new Map(entries.map(([uid]) => [uid, true]));
9718
- const sorted = [...entries].sort(([, a], [, b]) => a.priority.value - b.priority.value);
9719
- const currentTotal = () => {
9720
- let total = 0;
9721
- let visible = 0;
9722
- for (const [uid, child] of entries) {
9723
- const width = states.get(uid) ? child.desiredDefaultWidth.value : child.desiredFallbackWidth.value;
9724
- if (width === 0) continue;
9725
- total += width;
9726
- visible++;
9727
- }
9728
- return total + Math.max(0, visible - 1) * __props.gap;
9729
- };
9730
- while (currentTotal() > available) {
9731
- const victim = sorted.find(([uid]) => states.get(uid));
9732
- if (!victim) break;
9733
- states.set(victim[0], false);
9734
- }
9735
- for (const [uid, child] of entries) child.isDefaultVisible.value = !!states.get(uid);
9736
- });
9737
- watchEffect(() => {
9738
- for (const child of children.values()) {
9739
- child.priority.value;
9740
- child.desiredDefaultWidth.value;
9741
- child.desiredFallbackWidth.value;
9742
- }
9743
- reflow();
9744
- });
9745
- provide(FluxAdaptiveGroupInjectionKey, {
9746
- register(uid, child) {
9747
- children.set(uid, child);
9748
- },
9749
- unregister(uid) {
9750
- children.delete(uid);
9751
- }
9752
- });
9753
- watch(elementRef, (element, _, onCleanup) => {
9754
- if (!element) return;
9755
- const observer = new ResizeObserver(reflow);
9756
- observer.observe(element);
9757
- observer.observe(document.documentElement);
9758
- onCleanup(() => {
9759
- observer.disconnect();
9760
- });
9761
- }, { immediate: true });
9762
9563
  return (_ctx, _cache) => {
9763
- return openBlock(), createElementBlock("div", {
9764
- ref: "element",
9765
- class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveGroup),
9766
- style: normalizeStyle({ "--gap": `${__props.gap}px` })
9767
- }, [renderSlot(_ctx.$slots, "default")], 6);
9564
+ return openBlock(), createBlock(Transition, {
9565
+ mode: __props.mode,
9566
+ "enter-active-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackEnterActive : unref(Transition_module_default).windowTransitionEnterActive,
9567
+ "enter-from-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackEnterFrom : unref(Transition_module_default).windowTransitionEnterFrom,
9568
+ "leave-active-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackLeaveActive : unref(Transition_module_default).windowTransitionLeaveActive,
9569
+ "leave-to-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackLeaveTo : unref(Transition_module_default).windowTransitionLeaveTo
9570
+ }, {
9571
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9572
+ _: 3
9573
+ }, 8, [
9574
+ "mode",
9575
+ "enter-active-class",
9576
+ "enter-from-class",
9577
+ "leave-active-class",
9578
+ "leave-to-class"
9579
+ ]);
9768
9580
  };
9769
9581
  }
9770
9582
  });
9771
9583
  //#endregion
9772
- //#region src/component/FluxAdaptiveSlot.vue
9773
- var FluxAdaptiveSlot_default = /* @__PURE__ */ defineComponent({
9774
- __name: "FluxAdaptiveSlot",
9775
- props: { priority: { default: 1 } },
9776
- setup(__props) {
9777
- const props = __props;
9778
- const group = useAdaptiveGroupInjection_default();
9779
- const instance = getCurrentInstance();
9780
- const elementRef = useTemplateRef("element");
9781
- const defaultMeasurerRef = useTemplateRef("defaultMeasurer");
9782
- const fallbackMeasurerRef = useTemplateRef("fallbackMeasurer");
9783
- const isDefaultVisible = ref(true);
9784
- const desiredDefaultWidth = ref(0);
9785
- const desiredFallbackWidth = ref(0);
9786
- const priorityRef = toRef(props, "priority");
9787
- watch([defaultMeasurerRef, fallbackMeasurerRef], ([def, fb], _, onCleanup) => {
9788
- if (!def) return;
9789
- const update = () => {
9790
- desiredDefaultWidth.value = def.offsetWidth;
9791
- desiredFallbackWidth.value = fb?.offsetWidth ?? 0;
9792
- };
9793
- const observer = new ResizeObserver(update);
9794
- observer.observe(def);
9795
- if (fb) observer.observe(fb);
9796
- observer.observe(document.documentElement);
9797
- update();
9798
- onCleanup(() => {
9799
- observer.disconnect();
9800
- });
9801
- }, { immediate: true });
9802
- if (group) {
9803
- onMounted(() => {
9804
- group.register(instance.uid, {
9805
- priority: priorityRef,
9806
- desiredDefaultWidth,
9807
- desiredFallbackWidth,
9808
- isDefaultVisible
9809
- });
9810
- });
9811
- onUnmounted(() => {
9812
- group.unregister(instance.uid);
9813
- });
9814
- } else {
9815
- let lastFailedParentWidth = -1;
9816
- const reflow = i$2(() => {
9817
- const element = _$3(elementRef);
9818
- if (!element || !isDefaultVisible.value) return;
9819
- if (desiredDefaultWidth.value > element.clientWidth) {
9820
- lastFailedParentWidth = element.parentElement?.clientWidth ?? -1;
9821
- isDefaultVisible.value = false;
9822
- } else lastFailedParentWidth = -1;
9823
- });
9824
- watch(elementRef, (element, _, onCleanup) => {
9825
- if (!element) return;
9826
- const parent = element.parentElement;
9827
- const observer = new ResizeObserver((entries) => {
9828
- for (const entry of entries) if (entry.target === parent && !isDefaultVisible.value) {
9829
- if (parent.clientWidth > lastFailedParentWidth) isDefaultVisible.value = true;
9830
- }
9831
- reflow();
9832
- });
9833
- observer.observe(element);
9834
- if (parent) observer.observe(parent);
9835
- observer.observe(document.documentElement);
9836
- onCleanup(() => {
9837
- observer.disconnect();
9838
- });
9839
- }, { immediate: true });
9840
- watch(desiredDefaultWidth, () => {
9841
- lastFailedParentWidth = -1;
9842
- isDefaultVisible.value = true;
9843
- });
9844
- }
9845
- return (_ctx, _cache) => {
9846
- return openBlock(), createElementBlock(Fragment, null, [
9847
- createElementVNode("div", {
9848
- ref: "element",
9849
- class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlot),
9850
- style: normalizeStyle(unref(group) ? "flex-shrink: 0" : void 0)
9851
- }, [isDefaultVisible.value ? renderSlot(_ctx.$slots, "default", { key: 0 }) : renderSlot(_ctx.$slots, "fallback", { key: 1 })], 6),
9852
- createElementVNode("div", {
9853
- ref: "defaultMeasurer",
9854
- class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlotMeasurer),
9855
- "aria-hidden": "true"
9856
- }, [renderSlot(_ctx.$slots, "default")], 2),
9857
- createElementVNode("div", {
9858
- ref: "fallbackMeasurer",
9859
- class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlotMeasurer),
9860
- "aria-hidden": "true"
9861
- }, [renderSlot(_ctx.$slots, "fallback")], 2)
9862
- ], 64);
9584
+ //#region src/css/component/Pane.module.scss
9585
+ var { "basePaneStructure": _0$13, "basePaneElement": _1$4, "basePaneLoader": _2$3 } = Pane_module_default$1;
9586
+ var Pane_module_default = {
9587
+ pane: `pane ${_0$13}`,
9588
+ paneDefault: `pane-default pane ${_0$13}`,
9589
+ paneFlat: `pane-flat pane ${_0$13}`,
9590
+ paneWell: `pane-well pane ${_0$13}`,
9591
+ paneHeader: `pane-header ${_1$4}`,
9592
+ paneBody: `pane-body ${_1$4}`,
9593
+ paneHeaderCaption: `pane-header-caption`,
9594
+ paneHeaderIcon: `pane-header-icon`,
9595
+ paneFooter: `pane-footer ${_1$4}`,
9596
+ paneLoader: `pane-loader ${_2$3}`,
9597
+ paneTag: `pane-tag`,
9598
+ paneMedia: `pane-media`,
9599
+ paneMediaDefault: `pane-media-default pane-media`,
9600
+ paneMediaInset: `pane-media-inset pane-media`,
9601
+ paneMediaImage: `pane-media-image`,
9602
+ paneGroup: `pane-group`,
9603
+ paneIllustration: `pane-illustration`,
9604
+ paneIllustrationContent: `pane-illustration-content`,
9605
+ paneIllustrationContentControlled: `pane-illustration-content-controlled pane-illustration-content`,
9606
+ paneIllustrationMagic: `pane-illustration-magic`,
9607
+ paneIllustrationMasked: `pane-illustration-masked pane-illustration`,
9608
+ iconBoxed: `icon-boxed`
9609
+ };
9610
+ //#endregion
9611
+ //#region src/component/FluxPane.vue
9612
+ var FluxPane_default = /* @__PURE__ */ defineComponent({
9613
+ __name: "FluxPane",
9614
+ props: {
9615
+ isLoading: { type: Boolean },
9616
+ tag: {},
9617
+ variant: { default: "default" }
9618
+ },
9619
+ setup(__props) {
9620
+ const CLASS_MAP = {
9621
+ default: Pane_module_default.paneDefault,
9622
+ flat: Pane_module_default.paneFlat,
9623
+ well: Pane_module_default.paneWell
9624
+ };
9625
+ return (_ctx, _cache) => {
9626
+ return openBlock(), createElementBlock("div", { class: normalizeClass(CLASS_MAP[__props.variant]) }, [
9627
+ renderSlot(_ctx.$slots, "default"),
9628
+ createVNode(unref(FluxFadeTransition_default), null, {
9629
+ default: withCtx(() => [__props.isLoading ? renderSlot(_ctx.$slots, "loader", { key: 0 }, () => [createElementVNode("div", { class: normalizeClass(unref(Pane_module_default).paneLoader) }, [createVNode(FluxSpinner_default)], 2)]) : createCommentVNode("", true)]),
9630
+ _: 3
9631
+ }),
9632
+ __props.tag ? (openBlock(), createElementBlock("div", {
9633
+ key: 0,
9634
+ class: normalizeClass(unref(Pane_module_default).paneTag)
9635
+ }, toDisplayString(__props.tag), 3)) : createCommentVNode("", true)
9636
+ ], 2);
9863
9637
  };
9864
9638
  }
9865
9639
  });
9866
- var Visual_module_default = {
9867
- fillVisual: `fill-visual`,
9868
- animatedColors: `animated-colors fill-visual`,
9869
- dotPattern: `dot-pattern fill-visual`,
9870
- flickeringGrid: `flickering-grid fill-visual`,
9871
- gridPattern: `grid-pattern fill-visual`,
9872
- borderShine: `border-shine`,
9873
- borderShinePosition: `border-shine-position`
9640
+ var Flyout_module_default = {
9641
+ flyout: `flyout`,
9642
+ flyoutDialog: `flyout-dialog`,
9643
+ flyoutPane: `flyout-pane`,
9644
+ isAutoWidth: `is-auto-width`,
9645
+ isClosing: `is-closing`,
9646
+ close: `close`,
9647
+ isOpening: `is-opening`,
9648
+ open: `open`,
9649
+ mobileClose: `mobile-close`,
9650
+ mobileOpen: `mobile-open`
9874
9651
  };
9875
9652
  //#endregion
9876
- //#region src/component/FluxAnimatedColors.vue
9877
- var FluxAnimatedColors_default = /* @__PURE__ */ defineComponent({
9878
- __name: "FluxAnimatedColors",
9653
+ //#region src/component/FluxFlyout.vue?vue&type=script&setup=true&lang.ts
9654
+ var _hoisted_1$60 = ["onKeydown"];
9655
+ //#endregion
9656
+ //#region src/component/FluxFlyout.vue
9657
+ var FluxFlyout_default = /* @__PURE__ */ defineComponent({
9658
+ __name: "FluxFlyout",
9879
9659
  props: {
9880
- colors: {},
9881
- incrementor: { default: 1 },
9882
- opacity: { default: .5 },
9883
- seed: {},
9884
- static: { type: Boolean }
9660
+ direction: { default: "vertical" },
9661
+ isAutoWidth: { type: Boolean },
9662
+ margin: { default: 9 },
9663
+ width: {}
9885
9664
  },
9886
- setup(__props) {
9887
- const canvasRef = useTemplateRef("canvas");
9888
- const componentId = q$1();
9889
- const contextRef = ref();
9890
- const animationFrame = ref(0);
9891
- const tick = ref(0);
9892
- const polygons = computed(() => {
9893
- if (!__props.colors || __props.colors.length === 0) return [];
9894
- const mulberry = V$2(__props.seed ?? componentId.value);
9895
- const polygons = [];
9896
- for (const color of __props.colors) {
9897
- const localMulberry = mulberry.fork();
9898
- const x = __props.colors.length === 1 ? .5 : localMulberry.next();
9899
- const y = __props.colors.length === 1 ? .5 : localMulberry.next();
9900
- const count = Math.round(localMulberry.nextBetween(6, 9));
9901
- const points = [];
9902
- for (let p = 0; p < count; ++p) points.push([
9903
- localMulberry.next(),
9904
- localMulberry.next(),
9905
- localMulberry.next()
9906
- ]);
9907
- polygons.push([
9908
- x,
9909
- y,
9910
- color,
9911
- points
9912
- ]);
9913
- }
9914
- return polygons;
9915
- });
9916
- onMounted(() => schedule());
9917
- onBeforeUnmount(() => cancel());
9918
- function cancel() {
9919
- cancelAnimationFrame(animationFrame.value);
9665
+ setup(__props, { expose: __expose }) {
9666
+ const dialogRef = useTemplateRef("dialog");
9667
+ const mountRef = useTemplateRef("mount");
9668
+ const paneRef = useTemplateRef("pane");
9669
+ const isClosing = ref(false);
9670
+ const isOpening = ref(false);
9671
+ const isOpen = ref(false);
9672
+ const openerWidth = ref(0);
9673
+ const openerHeight = ref(0);
9674
+ const paneX = ref(0);
9675
+ const paneY = ref(0);
9676
+ const paneMarginX = ref(0);
9677
+ const paneMarginY = ref(0);
9678
+ !S$3 && D$1(ref(window), "resize", () => unref(isOpen) && reposition());
9679
+ F$1(paneRef);
9680
+ function close() {
9681
+ const pane = _$3(paneRef);
9682
+ if (!pane) return;
9683
+ pane.addEventListener("animationend", () => {
9684
+ isClosing.value = false;
9685
+ isOpen.value = false;
9686
+ }, { once: true });
9687
+ isClosing.value = true;
9920
9688
  }
9921
- function schedule() {
9922
- animationFrame.value = requestAnimationFrame(update);
9923
- tick.value += __props.incrementor;
9689
+ function open() {
9690
+ const { width, height } = unref(mountRef).children[0].getBoundingClientRect();
9691
+ isOpen.value = true;
9692
+ openerWidth.value = width;
9693
+ openerHeight.value = height;
9694
+ requestAnimationFrame(() => {
9695
+ _$3(paneRef).addEventListener("animationend", () => {
9696
+ isOpening.value = false;
9697
+ }, { once: true });
9698
+ isOpening.value = true;
9699
+ });
9700
+ requestAnimationFrame(reposition);
9924
9701
  }
9925
- function update() {
9926
- const context = unref(contextRef);
9927
- const shapes = unref(polygons);
9928
- if (!context || shapes.length === 0) return;
9929
- const width = context.canvas.offsetWidth;
9930
- const height = context.canvas.offsetHeight;
9931
- context.canvas.width = width;
9932
- context.canvas.height = height;
9933
- const widthBasedOpacity = Math.min(1, Math.max(.15, 360 / width));
9934
- context.globalAlpha = __props.opacity * widthBasedOpacity;
9935
- context.globalCompositeOperation = "screen";
9936
- context.clearRect(0, 0, width, height);
9937
- for (const [tx, ty, color, shape] of shapes) {
9938
- context.save();
9939
- context.translate(tx * width, ty * height);
9940
- context.beginPath();
9941
- context.fillStyle = color;
9942
- for (let i = 0; i < shape.length; ++i) {
9943
- let [x, y, m] = shape[i];
9944
- x = Math.cos(x * Math.PI * 2 + tick.value / (m * 200 + 300)) * (width * .8);
9945
- y = Math.sin(y * Math.PI * 2 + tick.value / (m * 100 + 300)) * (height * .8);
9946
- if (i === 0) context.moveTo(x, y);
9947
- else context.lineTo(x, y);
9702
+ function reposition() {
9703
+ const mount = unref(mountRef);
9704
+ const pane = _$3(paneRef);
9705
+ const { top, left, width, height } = mount.children[0].getBoundingClientRect();
9706
+ const { width: paneWidth, height: paneHeight } = pane.getBoundingClientRect();
9707
+ let x, y, mx = 0, my = 0;
9708
+ if (__props.direction === "horizontal") {
9709
+ x = left + width;
9710
+ y = top + height / 2 - paneHeight / 2;
9711
+ mx = __props.margin;
9712
+ if (x + paneWidth > innerWidth - 12) {
9713
+ x = left - paneWidth;
9714
+ mx = -mx;
9715
+ }
9716
+ } else {
9717
+ x = left + width / 2 - paneWidth / 2;
9718
+ y = top + height;
9719
+ my = __props.margin;
9720
+ if (y + paneHeight > innerHeight - 12) {
9721
+ y = top - paneHeight;
9722
+ my = -my;
9948
9723
  }
9949
- context.closePath();
9950
- context.fill();
9951
- context.restore();
9952
9724
  }
9953
- !__props.static && schedule();
9725
+ paneX.value = Math.max(12, Math.min(innerWidth - paneWidth - 12, x));
9726
+ paneY.value = Math.max(12, Math.min(innerHeight - paneHeight - 12, y));
9727
+ paneMarginX.value = mx;
9728
+ paneMarginY.value = my;
9954
9729
  }
9955
- watch(canvasRef, (canvas) => {
9956
- if (!canvas) {
9957
- contextRef.value = void 0;
9958
- return;
9959
- }
9960
- contextRef.value = canvas.getContext("2d", {
9961
- alpha: true,
9962
- colorSpace: "display-p3"
9963
- });
9964
- }, { immediate: true });
9965
- watch(polygons, () => {
9966
- cancel();
9967
- !__props.static && schedule();
9730
+ function toggle() {
9731
+ if (isOpen.value) close();
9732
+ else open();
9733
+ }
9734
+ function onDialogBackdropClick(evt) {
9735
+ if (evt.target.tagName !== "DIALOG") return;
9736
+ close();
9737
+ }
9738
+ watch(isOpen, (isOpen, _, onCleanup) => {
9739
+ const dialog = unref(dialogRef);
9740
+ if (isOpen && !dialog.open) {
9741
+ dialog.showModal();
9742
+ window.addEventListener("scroll", reposition, { passive: true });
9743
+ onCleanup(() => window.removeEventListener("scroll", reposition));
9744
+ } else if (!isOpen && dialog.open) dialog.close();
9745
+ });
9746
+ provide(FluxFlyoutInjectionKey, {
9747
+ isClosing,
9748
+ isOpen,
9749
+ isOpening
9750
+ });
9751
+ __expose({
9752
+ close,
9753
+ open,
9754
+ toggle
9968
9755
  });
9969
9756
  return (_ctx, _cache) => {
9970
- return openBlock(), createElementBlock("canvas", {
9971
- ref: "canvas",
9972
- class: normalizeClass(unref(Visual_module_default).animatedColors)
9973
- }, null, 2);
9757
+ return openBlock(), createElementBlock("div", {
9758
+ ref: "mount",
9759
+ class: normalizeClass(unref(Flyout_module_default).flyout),
9760
+ style: normalizeStyle({
9761
+ "--opener-width": `${openerWidth.value}px`,
9762
+ "--pane-mx": `${paneMarginX.value}px`,
9763
+ "--pane-my": `${paneMarginY.value}px`,
9764
+ "--pane-x": `${paneX.value - 30}px`,
9765
+ "--pane-y": `${paneY.value - 30}px`
9766
+ })
9767
+ }, [renderSlot(_ctx.$slots, "opener", normalizeProps(guardReactiveProps({
9768
+ close,
9769
+ open,
9770
+ toggle,
9771
+ isOpen: isOpen.value || isOpening.value || isClosing.value
9772
+ }))), createElementVNode("dialog", {
9773
+ ref: "dialog",
9774
+ class: normalizeClass(unref(Flyout_module_default).flyoutDialog),
9775
+ onClick: onDialogBackdropClick,
9776
+ onKeydown: withKeys(withModifiers(close, ["prevent"]), ["esc"])
9777
+ }, [isOpen.value ? (openBlock(), createBlock(FluxPane_default, {
9778
+ key: 0,
9779
+ ref: "pane",
9780
+ class: normalizeClass(unref(clsx)(unref(Flyout_module_default).flyoutPane, __props.isAutoWidth && unref(Flyout_module_default).isAutoWidth, isClosing.value && unref(Flyout_module_default).isClosing, isOpening.value && unref(Flyout_module_default).isOpening)),
9781
+ style: normalizeStyle({ width: `${__props.width}px` })
9782
+ }, {
9783
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
9784
+ close,
9785
+ paneX: paneX.value,
9786
+ paneY: paneY.value,
9787
+ openerWidth: openerWidth.value,
9788
+ openerHeight: openerHeight.value
9789
+ })))]),
9790
+ _: 3
9791
+ }, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$60)], 6);
9974
9792
  };
9975
9793
  }
9976
9794
  });
9977
9795
  //#endregion
9978
- //#region src/component/FluxAspectRatio.vue
9979
- var FluxAspectRatio_default = /* @__PURE__ */ defineComponent({
9980
- __name: "FluxAspectRatio",
9796
+ //#region src/component/FluxSecondaryButton.vue
9797
+ var FluxSecondaryButton_default = /* @__PURE__ */ defineComponent({
9798
+ __name: "FluxSecondaryButton",
9981
9799
  props: {
9982
- aspectRatio: {},
9983
- tag: {}
9800
+ type: {},
9801
+ disabled: { type: Boolean },
9802
+ iconLeading: {},
9803
+ iconTrailing: {},
9804
+ isFilled: { type: Boolean },
9805
+ isLoading: { type: Boolean },
9806
+ isSubmit: { type: Boolean },
9807
+ label: {},
9808
+ size: {},
9809
+ tabindex: {},
9810
+ href: {},
9811
+ rel: {},
9812
+ target: {},
9813
+ to: {}
9984
9814
  },
9985
- setup(__props) {
9815
+ emits: [
9816
+ "click",
9817
+ "mouseenter",
9818
+ "mouseleave"
9819
+ ],
9820
+ setup(__props, { emit: $emit }) {
9986
9821
  return (_ctx, _cache) => {
9987
- return openBlock(), createBlock(resolveDynamicComponent(__props.tag ?? "div"), {
9988
- class: normalizeClass(unref(Layout_module_default).aspectRatio),
9989
- style: normalizeStyle({ aspectRatio: __props.aspectRatio })
9822
+ return openBlock(), createBlock(FluxButton_default, mergeProps({
9823
+ type: __props.type,
9824
+ disabled: __props.disabled,
9825
+ iconLeading: __props.iconLeading,
9826
+ iconTrailing: __props.iconTrailing,
9827
+ isFilled: __props.isFilled,
9828
+ isLoading: __props.isLoading,
9829
+ isSubmit: __props.isSubmit,
9830
+ label: __props.label,
9831
+ size: __props.size,
9832
+ href: __props.href,
9833
+ rel: __props.rel,
9834
+ target: __props.target,
9835
+ to: __props.to
9990
9836
  }, {
9991
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9992
- _: 3
9993
- }, 8, ["class", "style"]);
9837
+ "css-class": unref(Button_module_default).secondaryButton,
9838
+ "css-class-icon": unref(Button_module_default).secondaryButtonIcon,
9839
+ "css-class-label": unref(Button_module_default).secondaryButtonLabel,
9840
+ onClick: _cache[0] || (_cache[0] = ($event) => $emit("click", $event)),
9841
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => $emit("mouseenter", $event)),
9842
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => $emit("mouseleave", $event))
9843
+ }), createSlots({ _: 2 }, [renderList(unref(SLOTS), (slot) => {
9844
+ return {
9845
+ name: slot,
9846
+ fn: withCtx(() => [renderSlot(_ctx.$slots, slot)])
9847
+ };
9848
+ })]), 1040, [
9849
+ "css-class",
9850
+ "css-class-icon",
9851
+ "css-class-label"
9852
+ ]);
9994
9853
  };
9995
9854
  }
9996
9855
  });
9856
+ var Layout_module_default = {
9857
+ aspectRatio: `aspect-ratio`,
9858
+ container: `container`,
9859
+ spacer: `spacer`
9860
+ };
9997
9861
  //#endregion
9998
- //#region src/transition/FluxAutoHeightTransition.vue
9999
- var FluxAutoHeightTransition_default = /* @__PURE__ */ defineComponent({
10000
- __name: "FluxAutoHeightTransition",
9862
+ //#region src/component/FluxSpacer.vue
9863
+ var FluxSpacer_default = /* @__PURE__ */ defineComponent({
9864
+ __name: "FluxSpacer",
10001
9865
  setup(__props) {
10002
- function afterEnter(elm) {
10003
- if (!R$2(elm)) return;
10004
- elm.style.height = "auto";
10005
- }
10006
- function enter(elm) {
10007
- if (!R$2(elm)) return;
10008
- const { width } = getComputedStyle(elm);
10009
- elm.style.position = "absolute";
10010
- elm.style.width = width;
10011
- elm.style.height = "auto";
10012
- elm.style.visibility = "hidden";
10013
- const { height } = getComputedStyle(elm);
10014
- elm.style.removeProperty("position");
10015
- elm.style.removeProperty("width");
10016
- elm.style.removeProperty("visibility");
10017
- elm.style.height = "0";
10018
- getComputedStyle(elm);
10019
- requestAnimationFrame(() => requestAnimationFrame(() => elm.style.height = height));
10020
- }
10021
- function leave(elm) {
10022
- if (!R$2(elm)) return;
10023
- const { height } = getComputedStyle(elm);
10024
- elm.style.height = height;
10025
- getComputedStyle(elm);
10026
- requestAnimationFrame(() => requestAnimationFrame(() => elm.style.height = "0"));
10027
- }
10028
9866
  return (_ctx, _cache) => {
10029
- return openBlock(), createBlock(Transition, {
10030
- onAfterEnter: afterEnter,
10031
- onEnter: enter,
10032
- onLeave: leave
10033
- }, {
10034
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10035
- _: 3
10036
- });
9867
+ return openBlock(), createElementBlock("div", { class: normalizeClass(unref(Layout_module_default).spacer) }, null, 2);
10037
9868
  };
10038
9869
  }
10039
9870
  });
10040
9871
  //#endregion
10041
- //#region src/transition/FluxAutoWidthTransition.vue
10042
- var FluxAutoWidthTransition_default = /* @__PURE__ */ defineComponent({
10043
- __name: "FluxAutoWidthTransition",
10044
- setup(__props) {
10045
- function afterEnter(elm) {
10046
- if (!R$2(elm)) return;
10047
- elm.style.width = "auto";
10048
- }
10049
- function enter(elm) {
10050
- if (!R$2(elm)) return;
10051
- const { height } = getComputedStyle(elm);
10052
- elm.style.position = "absolute";
10053
- elm.style.height = height;
10054
- elm.style.width = "auto";
10055
- elm.style.visibility = "hidden";
10056
- const { width } = getComputedStyle(elm);
10057
- elm.style.removeProperty("position");
10058
- elm.style.removeProperty("height");
10059
- elm.style.removeProperty("visibility");
10060
- elm.style.width = "0";
10061
- getComputedStyle(elm);
10062
- requestAnimationFrame(() => requestAnimationFrame(() => elm.style.width = width));
9872
+ //#region src/component/FluxTooltip.vue
9873
+ var FluxTooltip_default = defineComponent({
9874
+ props: {
9875
+ content: String,
9876
+ direction: String
9877
+ },
9878
+ slots: Object,
9879
+ setup(props, { slots }) {
9880
+ const instance = getCurrentInstance();
9881
+ const tooltipId = ref(null);
9882
+ onMounted(() => {
9883
+ const elm = instance.proxy.$el;
9884
+ elm.addEventListener("mouseenter", onHover, { passive: true });
9885
+ elm.addEventListener("mouseleave", onLeave, { passive: true });
9886
+ window.addEventListener("scroll", onLeave, { capture: true });
9887
+ });
9888
+ onUnmounted(() => {
9889
+ const elm = instance.proxy.$el;
9890
+ elm.removeEventListener("mouseenter", onHover);
9891
+ elm.removeEventListener("mouseleave", onLeave);
9892
+ window.removeEventListener("scroll", onLeave, { capture: true });
9893
+ onLeave();
9894
+ });
9895
+ function onHover() {
9896
+ onLeave();
9897
+ if ((props.content?.trim().length ?? 0) === 0 && !slots.content) return;
9898
+ tooltipId.value = addTooltip({
9899
+ content: props.content,
9900
+ contentSlot: slots.content,
9901
+ direction: props.direction || "vertical",
9902
+ origin: instance.proxy?.$el
9903
+ });
10063
9904
  }
10064
- function leave(elm) {
10065
- if (!R$2(elm)) return;
10066
- const { width } = getComputedStyle(elm);
10067
- elm.style.width = width;
10068
- getComputedStyle(elm);
10069
- requestAnimationFrame(() => requestAnimationFrame(() => elm.style.width = "0"));
9905
+ function onLeave() {
9906
+ if (tooltipId.value) removeTooltip(tooltipId.value);
10070
9907
  }
10071
- return (_ctx, _cache) => {
10072
- return openBlock(), createBlock(Transition, {
10073
- onAfterEnter: afterEnter,
10074
- onEnter: enter,
10075
- onLeave: leave
10076
- }, {
10077
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10078
- _: 3
10079
- });
10080
- };
9908
+ return () => (slots.default?.() ?? [])[0] ?? null;
9909
+ }
9910
+ });
9911
+ //#endregion
9912
+ //#region src/component/FluxActionBar.vue
9913
+ var FluxActionBar_default = /* @__PURE__ */ defineComponent({
9914
+ __name: "FluxActionBar",
9915
+ props: { isResettable: { type: Boolean } },
9916
+ emits: ["reset"],
9917
+ setup(__props, { emit: $emit }) {
9918
+ const slots = useSlots();
9919
+ const translate = useTranslate_default();
9920
+ return (_ctx, _cache) => {
9921
+ return openBlock(), createBlock(FluxFlex_default, {
9922
+ class: normalizeClass(unref(Action_module_default).actionBar),
9923
+ gap: 9
9924
+ }, {
9925
+ default: withCtx(() => [
9926
+ renderSlot(_ctx.$slots, "primary"),
9927
+ renderSlot(_ctx.$slots, "actionsStart"),
9928
+ (slots.primary || slots.actionsStart) && (slots.actionsBeforeSearch || slots.search || slots.actionsAfterSearch || slots.filter || slots.actionsEnd) ? (openBlock(), createBlock(FluxSpacer_default, { key: 0 })) : createCommentVNode("", true),
9929
+ renderSlot(_ctx.$slots, "actionsBeforeSearch"),
9930
+ renderSlot(_ctx.$slots, "search"),
9931
+ renderSlot(_ctx.$slots, "actionsAfterSearch"),
9932
+ slots.filter ? (openBlock(), createBlock(FluxFlyout_default, { key: 1 }, {
9933
+ opener: withCtx(({ close, open, toggle }) => [renderSlot(_ctx.$slots, "filterOpener", normalizeProps(guardReactiveProps({
9934
+ close,
9935
+ open,
9936
+ toggle
9937
+ })), () => [createVNode(FluxButtonGroup_default, null, {
9938
+ default: withCtx(() => [createVNode(FluxSecondaryButton_default, {
9939
+ "icon-leading": "filter",
9940
+ label: unref(translate)("flux.filter"),
9941
+ onClick: open
9942
+ }, null, 8, ["label", "onClick"]), __props.isResettable ? (openBlock(), createBlock(FluxTooltip_default, {
9943
+ key: 0,
9944
+ content: unref(translate)("flux.filterReset")
9945
+ }, {
9946
+ default: withCtx(() => [createVNode(FluxDestructiveButton_default, {
9947
+ "icon-leading": "xmark",
9948
+ onClick: _cache[0] || (_cache[0] = ($event) => $emit("reset"))
9949
+ })]),
9950
+ _: 1
9951
+ }, 8, ["content"])) : createCommentVNode("", true)]),
9952
+ _: 2
9953
+ }, 1024)])]),
9954
+ default: withCtx(({ close, paneX, paneY, openerWidth, openerHeight }) => [renderSlot(_ctx.$slots, "filter", normalizeProps(guardReactiveProps({
9955
+ close,
9956
+ paneX,
9957
+ paneY,
9958
+ openerWidth,
9959
+ openerHeight
9960
+ })))]),
9961
+ _: 3
9962
+ })) : createCommentVNode("", true),
9963
+ renderSlot(_ctx.$slots, "actionsEnd")
9964
+ ]),
9965
+ _: 3
9966
+ }, 8, ["class"]);
9967
+ };
10081
9968
  }
10082
9969
  });
10083
- var Transition_module_default = {
10084
- breakthroughTransitionEnterActive: `breakthrough-transition-enter-active`,
10085
- breakthroughTransitionBackEnterActive: `breakthrough-transition-back-enter-active`,
10086
- breakthroughTransitionLeaveActive: `breakthrough-transition-leave-active`,
10087
- breakthroughTransitionBackLeaveActive: `breakthrough-transition-back-leave-active`,
10088
- breakthroughTransitionEnterFrom: `breakthrough-transition-enter-from`,
10089
- breakthroughTransitionBackLeaveTo: `breakthrough-transition-back-leave-to`,
10090
- breakthroughTransitionLeaveTo: `breakthrough-transition-leave-to`,
10091
- breakthroughTransitionBackEnterFrom: `breakthrough-transition-back-enter-from`,
10092
- fadeTransitionEnterActive: `fade-transition-enter-active`,
10093
- fadeTransitionLeaveActive: `fade-transition-leave-active`,
10094
- fadeTransitionEnterFrom: `fade-transition-enter-from`,
10095
- fadeTransitionLeaveTo: `fade-transition-leave-to`,
10096
- fadeTransitionEnterTo: `fade-transition-enter-to`,
10097
- fadeTransitionLeaveFrom: `fade-transition-leave-from`,
10098
- routeTransitionEnterActive: `route-transition-enter-active`,
10099
- routeTransitionBackEnterActive: `route-transition-back-enter-active`,
10100
- routeTransitionLeaveActive: `route-transition-leave-active`,
10101
- routeTransitionBackLeaveActive: `route-transition-back-leave-active`,
10102
- routeTransitionEnterFrom: `route-transition-enter-from`,
10103
- routeTransitionBackLeaveTo: `route-transition-back-leave-to`,
10104
- routeTransitionLeaveTo: `route-transition-leave-to`,
10105
- routeTransitionBackEnterFrom: `route-transition-back-enter-from`,
10106
- tooltipTransitionEnterActive: `tooltip-transition-enter-active`,
10107
- tooltipTransitionLeaveActive: `tooltip-transition-leave-active`,
10108
- tooltipTransitionEnterFrom: `tooltip-transition-enter-from`,
10109
- tooltipTransitionLeaveTo: `tooltip-transition-leave-to`,
10110
- verticalWindowTransitionEnterActive: `vertical-window-transition-enter-active`,
10111
- verticalWindowTransitionBackEnterActive: `vertical-window-transition-back-enter-active`,
10112
- verticalWindowTransitionLeaveActive: `vertical-window-transition-leave-active`,
10113
- verticalWindowTransitionBackLeaveActive: `vertical-window-transition-back-leave-active`,
10114
- verticalWindowTransitionBackLeaveTo: `vertical-window-transition-back-leave-to`,
10115
- verticalWindowTransitionEnterFrom: `vertical-window-transition-enter-from`,
10116
- verticalWindowTransitionBackEnterFrom: `vertical-window-transition-back-enter-from`,
10117
- verticalWindowTransitionLeaveTo: `vertical-window-transition-leave-to`,
10118
- windowTransitionEnterActive: `window-transition-enter-active`,
10119
- windowTransitionBackEnterActive: `window-transition-back-enter-active`,
10120
- windowTransitionLeaveActive: `window-transition-leave-active`,
10121
- windowTransitionBackLeaveActive: `window-transition-back-leave-active`,
10122
- windowTransitionBackLeaveTo: `window-transition-back-leave-to`,
10123
- windowTransitionEnterFrom: `window-transition-enter-from`,
10124
- windowTransitionBackEnterFrom: `window-transition-back-enter-from`,
10125
- windowTransitionLeaveTo: `window-transition-leave-to`
10126
- };
10127
9970
  //#endregion
10128
- //#region src/transition/FluxBreakthroughTransition.vue
10129
- var FluxBreakthroughTransition_default = /* @__PURE__ */ defineComponent({
10130
- __name: "FluxBreakthroughTransition",
9971
+ //#region src/component/FluxButtonStack.vue
9972
+ var FluxButtonStack_default = /* @__PURE__ */ defineComponent({
9973
+ __name: "FluxButtonStack",
10131
9974
  props: {
10132
- isBack: { type: Boolean },
10133
- mode: { default: "out-in" }
9975
+ direction: { default: "horizontal" },
9976
+ gap: { default: 9 },
9977
+ isFill: { type: Boolean }
10134
9978
  },
10135
9979
  setup(__props) {
10136
9980
  return (_ctx, _cache) => {
10137
- return openBlock(), createBlock(Transition, {
10138
- mode: __props.mode,
10139
- "enter-active-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackEnterActive : unref(Transition_module_default).breakthroughTransitionEnterActive,
10140
- "enter-from-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackEnterFrom : unref(Transition_module_default).breakthroughTransitionEnterFrom,
10141
- "leave-active-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackLeaveActive : unref(Transition_module_default).breakthroughTransitionLeaveActive,
10142
- "leave-to-class": __props.isBack ? unref(Transition_module_default).breakthroughTransitionBackLeaveTo : unref(Transition_module_default).breakthroughTransitionLeaveTo
9981
+ return openBlock(), createBlock(FluxFlex_default, {
9982
+ class: normalizeClass(__props.isFill ? unref(Flex_module_default).flexFill : void 0),
9983
+ direction: __props.direction,
9984
+ gap: __props.gap,
9985
+ wrap: "wrap"
10143
9986
  }, {
10144
9987
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10145
9988
  _: 3
10146
9989
  }, 8, [
10147
- "mode",
10148
- "enter-active-class",
10149
- "enter-from-class",
10150
- "leave-active-class",
10151
- "leave-to-class"
9990
+ "class",
9991
+ "direction",
9992
+ "gap"
10152
9993
  ]);
10153
9994
  };
10154
9995
  }
10155
9996
  });
10156
9997
  //#endregion
10157
- //#region src/transition/FluxFadeTransition.vue
10158
- var FluxFadeTransition_default = /* @__PURE__ */ defineComponent({
10159
- __name: "FluxFadeTransition",
10160
- props: { mode: { default: "out-in" } },
9998
+ //#region src/component/FluxPaneBody.vue
9999
+ var FluxPaneBody_default = /* @__PURE__ */ defineComponent({
10000
+ __name: "FluxPaneBody",
10161
10001
  setup(__props) {
10162
10002
  return (_ctx, _cache) => {
10163
- return openBlock(), createBlock(Transition, {
10164
- mode: __props.mode,
10165
- "enter-active-class": unref(Transition_module_default).fadeTransitionEnterActive,
10166
- "enter-from-class": unref(Transition_module_default).fadeTransitionEnterFrom,
10167
- "enter-to-class": unref(Transition_module_default).fadeTransitionEnterTo,
10168
- "leave-active-class": unref(Transition_module_default).fadeTransitionLeaveActive,
10169
- "leave-from-class": unref(Transition_module_default).fadeTransitionLeaveFrom,
10170
- "leave-to-class": unref(Transition_module_default).fadeTransitionLeaveTo
10171
- }, {
10172
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10173
- _: 3
10174
- }, 8, [
10175
- "mode",
10176
- "enter-active-class",
10177
- "enter-from-class",
10178
- "enter-to-class",
10179
- "leave-active-class",
10180
- "leave-from-class",
10181
- "leave-to-class"
10182
- ]);
10003
+ return openBlock(), createElementBlock("div", { class: normalizeClass(unref(Pane_module_default).paneBody) }, [renderSlot(_ctx.$slots, "default")], 2);
10183
10004
  };
10184
10005
  }
10185
10006
  });
10186
10007
  //#endregion
10187
- //#region src/transition/FluxOverlayTransition.vue
10188
- var FluxOverlayTransition_default = /* @__PURE__ */ defineComponent({
10189
- __name: "FluxOverlayTransition",
10190
- props: { mode: { default: "out-in" } },
10008
+ //#region src/component/FluxActionPane.vue
10009
+ var FluxActionPane_default = /* @__PURE__ */ defineComponent({
10010
+ __name: "FluxActionPane",
10011
+ props: { paneVariant: {} },
10191
10012
  setup(__props) {
10013
+ const slots = useSlots();
10192
10014
  return (_ctx, _cache) => {
10193
- return openBlock(), createBlock(Transition, {
10194
- mode: __props.mode,
10195
- "enter-active-class": unref(Overlay_module_default).overlayTransitionEnterActive,
10196
- "enter-from-class": unref(Overlay_module_default).overlayTransitionEnterFrom,
10197
- "leave-active-class": unref(Overlay_module_default).overlayTransitionLeaveActive,
10198
- "leave-to-class": unref(Overlay_module_default).overlayTransitionLeaveTo
10015
+ return openBlock(), createBlock(FluxPane_default, {
10016
+ class: normalizeClass(unref(Action_module_default).actionPane),
10017
+ variant: __props.paneVariant
10199
10018
  }, {
10200
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10019
+ default: withCtx(() => [renderSlot(_ctx.$slots, "base"), createElementVNode("div", { class: normalizeClass(unref(Action_module_default).actionPaneGrid) }, [createVNode(FluxPaneBody_default, { class: normalizeClass(unref(Action_module_default).actionPaneBody) }, {
10020
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10021
+ _: 3
10022
+ }, 8, ["class"]), slots.buttons ? (openBlock(), createBlock(FluxPaneBody_default, {
10023
+ key: 0,
10024
+ class: normalizeClass(unref(Action_module_default).actionPaneBody)
10025
+ }, {
10026
+ default: withCtx(() => [createVNode(FluxButtonStack_default, { direction: "vertical" }, {
10027
+ default: withCtx(() => [renderSlot(_ctx.$slots, "buttons")]),
10028
+ _: 3
10029
+ })]),
10030
+ _: 3
10031
+ }, 8, ["class"])) : createCommentVNode("", true)], 2)]),
10201
10032
  _: 3
10202
- }, 8, [
10203
- "mode",
10204
- "enter-active-class",
10205
- "enter-from-class",
10206
- "leave-active-class",
10207
- "leave-to-class"
10208
- ]);
10033
+ }, 8, ["class", "variant"]);
10209
10034
  };
10210
10035
  }
10211
10036
  });
10212
10037
  //#endregion
10213
- //#region src/transition/FluxRouteTransition.vue
10214
- var FluxRouteTransition_default = /* @__PURE__ */ defineComponent({
10215
- __name: "FluxRouteTransition",
10216
- props: {
10217
- isBack: { type: Boolean },
10218
- mode: { default: "out-in" }
10219
- },
10038
+ //#region src/component/FluxActionStack.vue
10039
+ var FluxActionStack_default = /* @__PURE__ */ defineComponent({
10040
+ __name: "FluxActionStack",
10220
10041
  setup(__props) {
10042
+ L$1(useTemplateRef("element"), { direction: "horizontal" });
10221
10043
  return (_ctx, _cache) => {
10222
- return openBlock(), createBlock(Transition, {
10223
- mode: __props.mode,
10224
- "enter-active-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackEnterActive : unref(Transition_module_default).routeTransitionEnterActive,
10225
- "enter-from-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackEnterFrom : unref(Transition_module_default).routeTransitionEnterFrom,
10226
- "leave-active-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackLeaveActive : unref(Transition_module_default).routeTransitionLeaveActive,
10227
- "leave-to-class": __props.isBack ? unref(Transition_module_default).routeTransitionBackLeaveTo : unref(Transition_module_default).routeTransitionLeaveTo
10044
+ return openBlock(), createBlock(FluxFlex_default, {
10045
+ ref: "element",
10046
+ direction: "horizontal",
10047
+ gap: 1,
10048
+ tag: "nav"
10228
10049
  }, {
10229
10050
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10230
10051
  _: 3
10231
- }, 8, [
10232
- "mode",
10233
- "enter-active-class",
10234
- "enter-from-class",
10235
- "leave-active-class",
10236
- "leave-to-class"
10237
- ]);
10052
+ }, 512);
10238
10053
  };
10239
10054
  }
10240
10055
  });
10056
+ var AdaptiveSlot_module_default = {
10057
+ adaptiveGroup: `adaptive-group`,
10058
+ adaptiveSlot: `adaptive-slot`,
10059
+ adaptiveSlotMeasurer: `adaptive-slot-measurer`
10060
+ };
10241
10061
  //#endregion
10242
- //#region src/transition/FluxSlideOverTransition.vue
10243
- var FluxSlideOverTransition_default = /* @__PURE__ */ defineComponent({
10244
- __name: "FluxSlideOverTransition",
10245
- props: { mode: { default: "out-in" } },
10062
+ //#region src/component/FluxAdaptiveGroup.vue
10063
+ var FluxAdaptiveGroup_default = /* @__PURE__ */ defineComponent({
10064
+ __name: "FluxAdaptiveGroup",
10065
+ props: { gap: { default: 9 } },
10246
10066
  setup(__props) {
10067
+ const elementRef = useTemplateRef("element");
10068
+ const children = shallowReactive(/* @__PURE__ */ new Map());
10069
+ const reflow = i$2(() => {
10070
+ const element = _$3(elementRef);
10071
+ if (!element) return;
10072
+ const available = element.clientWidth;
10073
+ const entries = Array.from(children.entries());
10074
+ const states = new Map(entries.map(([uid]) => [uid, true]));
10075
+ const sorted = [...entries].sort(([, a], [, b]) => a.priority.value - b.priority.value);
10076
+ const currentTotal = () => {
10077
+ let total = 0;
10078
+ let visible = 0;
10079
+ for (const [uid, child] of entries) {
10080
+ const width = states.get(uid) ? child.desiredDefaultWidth.value : child.desiredFallbackWidth.value;
10081
+ if (width === 0) continue;
10082
+ total += width;
10083
+ visible++;
10084
+ }
10085
+ return total + Math.max(0, visible - 1) * __props.gap;
10086
+ };
10087
+ while (currentTotal() > available) {
10088
+ const victim = sorted.find(([uid]) => states.get(uid));
10089
+ if (!victim) break;
10090
+ states.set(victim[0], false);
10091
+ }
10092
+ for (const [uid, child] of entries) child.isDefaultVisible.value = !!states.get(uid);
10093
+ });
10094
+ watchEffect(() => {
10095
+ for (const child of children.values()) {
10096
+ child.priority.value;
10097
+ child.desiredDefaultWidth.value;
10098
+ child.desiredFallbackWidth.value;
10099
+ }
10100
+ reflow();
10101
+ });
10102
+ provide(FluxAdaptiveGroupInjectionKey, {
10103
+ register(uid, child) {
10104
+ children.set(uid, child);
10105
+ },
10106
+ unregister(uid) {
10107
+ children.delete(uid);
10108
+ }
10109
+ });
10110
+ watch(elementRef, (element, _, onCleanup) => {
10111
+ if (!element) return;
10112
+ const observer = new ResizeObserver(reflow);
10113
+ observer.observe(element);
10114
+ observer.observe(document.documentElement);
10115
+ onCleanup(() => {
10116
+ observer.disconnect();
10117
+ });
10118
+ }, { immediate: true });
10247
10119
  return (_ctx, _cache) => {
10248
- return openBlock(), createBlock(Transition, {
10249
- mode: __props.mode,
10250
- "enter-active-class": unref(Overlay_module_default).slideOverTransitionEnterActive,
10251
- "enter-from-class": unref(Overlay_module_default).slideOverTransitionEnterFrom,
10252
- "leave-active-class": unref(Overlay_module_default).slideOverTransitionLeaveActive,
10253
- "leave-to-class": unref(Overlay_module_default).slideOverTransitionLeaveTo
10254
- }, {
10255
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10256
- _: 3
10257
- }, 8, [
10258
- "mode",
10259
- "enter-active-class",
10260
- "enter-from-class",
10261
- "leave-active-class",
10262
- "leave-to-class"
10263
- ]);
10120
+ return openBlock(), createElementBlock("div", {
10121
+ ref: "element",
10122
+ class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveGroup),
10123
+ style: normalizeStyle({ "--gap": `${__props.gap}px` })
10124
+ }, [renderSlot(_ctx.$slots, "default")], 6);
10264
10125
  };
10265
10126
  }
10266
10127
  });
10267
10128
  //#endregion
10268
- //#region src/transition/FluxTooltipTransition.vue
10269
- var FluxTooltipTransition_default = /* @__PURE__ */ defineComponent({
10270
- __name: "FluxTooltipTransition",
10271
- props: { mode: { default: "out-in" } },
10129
+ //#region src/component/FluxAdaptiveSlot.vue
10130
+ var FluxAdaptiveSlot_default = /* @__PURE__ */ defineComponent({
10131
+ __name: "FluxAdaptiveSlot",
10132
+ props: { priority: { default: 1 } },
10272
10133
  setup(__props) {
10134
+ const props = __props;
10135
+ const group = useAdaptiveGroupInjection_default();
10136
+ const instance = getCurrentInstance();
10137
+ const elementRef = useTemplateRef("element");
10138
+ const defaultMeasurerRef = useTemplateRef("defaultMeasurer");
10139
+ const fallbackMeasurerRef = useTemplateRef("fallbackMeasurer");
10140
+ const isDefaultVisible = ref(true);
10141
+ const desiredDefaultWidth = ref(0);
10142
+ const desiredFallbackWidth = ref(0);
10143
+ const priorityRef = toRef(props, "priority");
10144
+ watch([defaultMeasurerRef, fallbackMeasurerRef], ([def, fb], _, onCleanup) => {
10145
+ if (!def) return;
10146
+ const update = () => {
10147
+ desiredDefaultWidth.value = def.offsetWidth;
10148
+ desiredFallbackWidth.value = fb?.offsetWidth ?? 0;
10149
+ };
10150
+ const observer = new ResizeObserver(update);
10151
+ observer.observe(def);
10152
+ if (fb) observer.observe(fb);
10153
+ observer.observe(document.documentElement);
10154
+ update();
10155
+ onCleanup(() => {
10156
+ observer.disconnect();
10157
+ });
10158
+ }, { immediate: true });
10159
+ if (group) {
10160
+ onMounted(() => {
10161
+ group.register(instance.uid, {
10162
+ priority: priorityRef,
10163
+ desiredDefaultWidth,
10164
+ desiredFallbackWidth,
10165
+ isDefaultVisible
10166
+ });
10167
+ });
10168
+ onUnmounted(() => {
10169
+ group.unregister(instance.uid);
10170
+ });
10171
+ } else {
10172
+ let lastFailedParentWidth = -1;
10173
+ const reflow = i$2(() => {
10174
+ const element = _$3(elementRef);
10175
+ if (!element || !isDefaultVisible.value) return;
10176
+ if (desiredDefaultWidth.value > element.clientWidth) {
10177
+ lastFailedParentWidth = element.parentElement?.clientWidth ?? -1;
10178
+ isDefaultVisible.value = false;
10179
+ } else lastFailedParentWidth = -1;
10180
+ });
10181
+ watch(elementRef, (element, _, onCleanup) => {
10182
+ if (!element) return;
10183
+ const parent = element.parentElement;
10184
+ const observer = new ResizeObserver((entries) => {
10185
+ for (const entry of entries) if (entry.target === parent && !isDefaultVisible.value) {
10186
+ if (parent.clientWidth > lastFailedParentWidth) isDefaultVisible.value = true;
10187
+ }
10188
+ reflow();
10189
+ });
10190
+ observer.observe(element);
10191
+ if (parent) observer.observe(parent);
10192
+ observer.observe(document.documentElement);
10193
+ onCleanup(() => {
10194
+ observer.disconnect();
10195
+ });
10196
+ }, { immediate: true });
10197
+ watch(desiredDefaultWidth, () => {
10198
+ lastFailedParentWidth = -1;
10199
+ isDefaultVisible.value = true;
10200
+ });
10201
+ }
10273
10202
  return (_ctx, _cache) => {
10274
- return openBlock(), createBlock(Transition, {
10275
- mode: __props.mode,
10276
- "enter-active-class": unref(Transition_module_default).tooltipTransitionEnterActive,
10277
- "enter-from-class": unref(Transition_module_default).tooltipTransitionEnterFrom,
10278
- "leave-active-class": unref(Transition_module_default).tooltipTransitionLeaveActive,
10279
- "leave-to-class": unref(Transition_module_default).tooltipTransitionLeaveTo
10280
- }, {
10281
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10282
- _: 3
10283
- }, 8, [
10284
- "mode",
10285
- "enter-active-class",
10286
- "enter-from-class",
10287
- "leave-active-class",
10288
- "leave-to-class"
10289
- ]);
10203
+ return openBlock(), createElementBlock(Fragment, null, [
10204
+ createElementVNode("div", {
10205
+ ref: "element",
10206
+ class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlot),
10207
+ style: normalizeStyle(unref(group) ? "flex-shrink: 0" : void 0)
10208
+ }, [isDefaultVisible.value ? renderSlot(_ctx.$slots, "default", { key: 0 }) : renderSlot(_ctx.$slots, "fallback", { key: 1 })], 6),
10209
+ createElementVNode("div", {
10210
+ ref: "defaultMeasurer",
10211
+ class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlotMeasurer),
10212
+ "aria-hidden": "true"
10213
+ }, [renderSlot(_ctx.$slots, "default")], 2),
10214
+ createElementVNode("div", {
10215
+ ref: "fallbackMeasurer",
10216
+ class: normalizeClass(unref(AdaptiveSlot_module_default).adaptiveSlotMeasurer),
10217
+ "aria-hidden": "true"
10218
+ }, [renderSlot(_ctx.$slots, "fallback")], 2)
10219
+ ], 64);
10290
10220
  };
10291
10221
  }
10292
10222
  });
10223
+ var Visual_module_default = {
10224
+ fillVisual: `fill-visual`,
10225
+ animatedColors: `animated-colors fill-visual`,
10226
+ dotPattern: `dot-pattern fill-visual`,
10227
+ flickeringGrid: `flickering-grid fill-visual`,
10228
+ gridPattern: `grid-pattern fill-visual`,
10229
+ borderShine: `border-shine`,
10230
+ borderShinePosition: `border-shine-position`
10231
+ };
10293
10232
  //#endregion
10294
- //#region src/transition/FluxVerticalWindowTransition.vue
10295
- var FluxVerticalWindowTransition_default = /* @__PURE__ */ defineComponent({
10296
- __name: "FluxVerticalWindowTransition",
10233
+ //#region src/component/FluxAnimatedColors.vue
10234
+ var FluxAnimatedColors_default = /* @__PURE__ */ defineComponent({
10235
+ __name: "FluxAnimatedColors",
10297
10236
  props: {
10298
- isBack: { type: Boolean },
10299
- mode: { default: "out-in" }
10237
+ colors: {},
10238
+ incrementor: { default: 1 },
10239
+ opacity: { default: .5 },
10240
+ seed: {},
10241
+ static: { type: Boolean }
10300
10242
  },
10301
10243
  setup(__props) {
10244
+ const canvasRef = useTemplateRef("canvas");
10245
+ const componentId = q$1();
10246
+ const contextRef = ref();
10247
+ const animationFrame = ref(0);
10248
+ const tick = ref(0);
10249
+ const polygons = computed(() => {
10250
+ if (!__props.colors || __props.colors.length === 0) return [];
10251
+ const mulberry = V$2(__props.seed ?? componentId.value);
10252
+ const polygons = [];
10253
+ for (const color of __props.colors) {
10254
+ const localMulberry = mulberry.fork();
10255
+ const x = __props.colors.length === 1 ? .5 : localMulberry.next();
10256
+ const y = __props.colors.length === 1 ? .5 : localMulberry.next();
10257
+ const count = Math.round(localMulberry.nextBetween(6, 9));
10258
+ const points = [];
10259
+ for (let p = 0; p < count; ++p) points.push([
10260
+ localMulberry.next(),
10261
+ localMulberry.next(),
10262
+ localMulberry.next()
10263
+ ]);
10264
+ polygons.push([
10265
+ x,
10266
+ y,
10267
+ color,
10268
+ points
10269
+ ]);
10270
+ }
10271
+ return polygons;
10272
+ });
10273
+ onMounted(() => schedule());
10274
+ onBeforeUnmount(() => cancel());
10275
+ function cancel() {
10276
+ cancelAnimationFrame(animationFrame.value);
10277
+ }
10278
+ function schedule() {
10279
+ animationFrame.value = requestAnimationFrame(update);
10280
+ tick.value += __props.incrementor;
10281
+ }
10282
+ function update() {
10283
+ const context = unref(contextRef);
10284
+ const shapes = unref(polygons);
10285
+ if (!context || shapes.length === 0) return;
10286
+ const width = context.canvas.offsetWidth;
10287
+ const height = context.canvas.offsetHeight;
10288
+ context.canvas.width = width;
10289
+ context.canvas.height = height;
10290
+ const widthBasedOpacity = Math.min(1, Math.max(.15, 360 / width));
10291
+ context.globalAlpha = __props.opacity * widthBasedOpacity;
10292
+ context.globalCompositeOperation = "screen";
10293
+ context.clearRect(0, 0, width, height);
10294
+ for (const [tx, ty, color, shape] of shapes) {
10295
+ context.save();
10296
+ context.translate(tx * width, ty * height);
10297
+ context.beginPath();
10298
+ context.fillStyle = color;
10299
+ for (let i = 0; i < shape.length; ++i) {
10300
+ let [x, y, m] = shape[i];
10301
+ x = Math.cos(x * Math.PI * 2 + tick.value / (m * 200 + 300)) * (width * .8);
10302
+ y = Math.sin(y * Math.PI * 2 + tick.value / (m * 100 + 300)) * (height * .8);
10303
+ if (i === 0) context.moveTo(x, y);
10304
+ else context.lineTo(x, y);
10305
+ }
10306
+ context.closePath();
10307
+ context.fill();
10308
+ context.restore();
10309
+ }
10310
+ !__props.static && schedule();
10311
+ }
10312
+ watch(canvasRef, (canvas) => {
10313
+ if (!canvas) {
10314
+ contextRef.value = void 0;
10315
+ return;
10316
+ }
10317
+ contextRef.value = canvas.getContext("2d", {
10318
+ alpha: true,
10319
+ colorSpace: "display-p3"
10320
+ });
10321
+ }, { immediate: true });
10322
+ watch(polygons, () => {
10323
+ cancel();
10324
+ !__props.static && schedule();
10325
+ });
10302
10326
  return (_ctx, _cache) => {
10303
- return openBlock(), createBlock(Transition, {
10304
- mode: __props.mode,
10305
- "enter-active-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackEnterActive : unref(Transition_module_default).verticalWindowTransitionEnterActive,
10306
- "enter-from-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackEnterFrom : unref(Transition_module_default).verticalWindowTransitionEnterFrom,
10307
- "leave-active-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackLeaveActive : unref(Transition_module_default).verticalWindowTransitionLeaveActive,
10308
- "leave-to-class": __props.isBack ? unref(Transition_module_default).verticalWindowTransitionBackLeaveTo : unref(Transition_module_default).verticalWindowTransitionLeaveTo
10309
- }, {
10310
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10311
- _: 3
10312
- }, 8, [
10313
- "mode",
10314
- "enter-active-class",
10315
- "enter-from-class",
10316
- "leave-active-class",
10317
- "leave-to-class"
10318
- ]);
10327
+ return openBlock(), createElementBlock("canvas", {
10328
+ ref: "canvas",
10329
+ class: normalizeClass(unref(Visual_module_default).animatedColors)
10330
+ }, null, 2);
10319
10331
  };
10320
10332
  }
10321
10333
  });
10322
10334
  //#endregion
10323
- //#region src/transition/FluxWindowTransition.vue
10324
- var FluxWindowTransition_default = /* @__PURE__ */ defineComponent({
10325
- __name: "FluxWindowTransition",
10335
+ //#region src/component/FluxAspectRatio.vue
10336
+ var FluxAspectRatio_default = /* @__PURE__ */ defineComponent({
10337
+ __name: "FluxAspectRatio",
10326
10338
  props: {
10327
- isBack: { type: Boolean },
10328
- mode: { default: "out-in" }
10339
+ aspectRatio: {},
10340
+ tag: {}
10329
10341
  },
10330
10342
  setup(__props) {
10331
10343
  return (_ctx, _cache) => {
10332
- return openBlock(), createBlock(Transition, {
10333
- mode: __props.mode,
10334
- "enter-active-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackEnterActive : unref(Transition_module_default).windowTransitionEnterActive,
10335
- "enter-from-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackEnterFrom : unref(Transition_module_default).windowTransitionEnterFrom,
10336
- "leave-active-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackLeaveActive : unref(Transition_module_default).windowTransitionLeaveActive,
10337
- "leave-to-class": __props.isBack ? unref(Transition_module_default).windowTransitionBackLeaveTo : unref(Transition_module_default).windowTransitionLeaveTo
10344
+ return openBlock(), createBlock(resolveDynamicComponent(__props.tag ?? "div"), {
10345
+ class: normalizeClass(unref(Layout_module_default).aspectRatio),
10346
+ style: normalizeStyle({ aspectRatio: __props.aspectRatio })
10338
10347
  }, {
10339
10348
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
10340
10349
  _: 3
10341
- }, 8, [
10342
- "mode",
10343
- "enter-active-class",
10344
- "enter-from-class",
10345
- "leave-active-class",
10346
- "leave-to-class"
10347
- ]);
10350
+ }, 8, ["class", "style"]);
10348
10351
  };
10349
10352
  }
10350
10353
  });
@@ -13612,7 +13615,7 @@ var FilterBadge_default = /* @__PURE__ */ defineComponent({
13612
13615
  });
13613
13616
  //#endregion
13614
13617
  //#region src/css/component/Menu.module.scss
13615
- var { "button": _0$9, "buttonIcon": _1$3, "buttonLabel": _2$2 } = Button_module_default$1;
13618
+ var { "buttonLabel": _0$9, "button": _1$3, "buttonIcon": _2$2 } = Button_module_default$1;
13616
13619
  var Menu_module_default = {
13617
13620
  menu: `menu`,
13618
13621
  menuNormal: `menu-normal menu`,
@@ -13620,10 +13623,10 @@ var Menu_module_default = {
13620
13623
  menuGroup: `menu-group`,
13621
13624
  menuGroupHorizontal: `menu-group-horizontal menu-group`,
13622
13625
  menuGroupVertical: `menu-group-vertical menu-group`,
13623
- menuItem: `menu-item ${_0$9}`,
13626
+ menuItem: `menu-item ${_1$3}`,
13624
13627
  badge: `badge`,
13625
- menuItemIcon: `menu-item-icon ${_1$3}`,
13626
- menuItemLabel: `menu-item-label ${_2$2}`,
13628
+ menuItemIcon: `menu-item-icon ${_2$2}`,
13629
+ menuItemLabel: `menu-item-label ${_0$9}`,
13627
13630
  menuItemActive: `menu-item-active`,
13628
13631
  menuItemDestructive: `menu-item-destructive`,
13629
13632
  menuItemHighlighted: `menu-item-highlighted`,
@@ -13632,7 +13635,7 @@ var Menu_module_default = {
13632
13635
  menuCollapsibleOpened: `menu-collapsible-opened menu-collapsible`,
13633
13636
  menuCollapsibleBody: `menu-collapsible-body`,
13634
13637
  menuCollapsibleContent: `menu-collapsible-content`,
13635
- menuItemSelectableIcon: `menu-item-selectable-icon ${_1$3}`,
13638
+ menuItemSelectableIcon: `menu-item-selectable-icon ${_2$2}`,
13636
13639
  menuItemSelected: `menu-item-selected`,
13637
13640
  menuItemCommand: `menu-item-command`,
13638
13641
  menuItemCommandIcon: `menu-item-command-icon`,
@@ -15220,16 +15223,16 @@ var FluxFormSelect_default = /* @__PURE__ */ defineComponent({
15220
15223
  });
15221
15224
  //#endregion
15222
15225
  //#region src/css/component/Pagination.module.scss
15223
- var { "secondaryButton": _0$8, "secondaryButtonIcon": _1$2, "secondaryButtonLabel": _2$1 } = Button_module_default;
15226
+ var { "secondaryButtonLabel": _0$8, "secondaryButton": _1$2, "secondaryButtonIcon": _2$1 } = Button_module_default;
15224
15227
  var Pagination_module_default = {
15225
15228
  pagination: `pagination`,
15226
- paginationButton: `pagination-button ${_0$8}`,
15229
+ paginationButton: `pagination-button ${_1$2}`,
15227
15230
  secondaryButton: `secondary-button`,
15228
15231
  paginationButtonArrow: `pagination-button-arrow`,
15229
15232
  paginationButtonCurrent: `pagination-button-current`,
15230
15233
  paginationButtonSpacer: `pagination-button-spacer`,
15231
- paginationButtonIcon: `pagination-button-icon ${_1$2}`,
15232
- paginationButtonLabel: `pagination-button-label ${_2$1}`,
15234
+ paginationButtonIcon: `pagination-button-icon ${_2$1}`,
15235
+ paginationButtonLabel: `pagination-button-label ${_0$8}`,
15233
15236
  paginationBar: `pagination-bar`,
15234
15237
  paginationBarLimit: `pagination-bar-limit`,
15235
15238
  paginationBarLimitDisplayingOf: `pagination-bar-limit-displaying-of`,
@@ -15491,13 +15494,13 @@ var FluxPaginationBar_default = /* @__PURE__ */ defineComponent({
15491
15494
  });
15492
15495
  //#endregion
15493
15496
  //#region src/css/component/Table.module.scss
15494
- var { "basePaneElement": _0$7, "basePaneLoader": _1$1 } = Pane_module_default$1;
15497
+ var { "basePaneLoader": _0$7, "basePaneElement": _1$1 } = Pane_module_default$1;
15495
15498
  var Table_module_default = {
15496
- table: `table ${_0$7}`,
15499
+ table: `table ${_1$1}`,
15497
15500
  tableBase: `table-base`,
15498
15501
  tableFill: `table-fill`,
15499
15502
  tablePagination: `table-pagination`,
15500
- tableLoader: `table-loader ${_1$1}`,
15503
+ tableLoader: `table-loader ${_0$7}`,
15501
15504
  tableRow: `table-row`,
15502
15505
  tableCell: `table-cell`,
15503
15506
  tableCellContent: `table-cell-content`,