@flux-ui/components 3.0.0-next.72 → 3.0.0-next.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/component/FluxFormField.vue.d.ts +2 -2
  2. package/dist/component/FluxKanbanColumn.vue.d.ts +1 -1
  3. package/dist/component/FluxSegmentedControl.vue.d.ts +18 -8
  4. package/dist/component/FluxSegmentedControlItem.vue.d.ts +20 -0
  5. package/dist/component/FluxSpacing.vue.d.ts +2 -1
  6. package/dist/component/index.d.ts +1 -1
  7. package/dist/component/primitive/FilterMenuRenderer.d.ts +3 -3
  8. package/dist/composable/index.d.ts +1 -0
  9. package/dist/composable/useSegmentedControlInjection.d.ts +2 -0
  10. package/dist/data/di.d.ts +10 -1
  11. package/dist/index.css +398 -368
  12. package/dist/index.js +1264 -1164
  13. package/dist/index.js.map +1 -1
  14. package/dist/util/index.d.ts +1 -0
  15. package/dist/util/sanitizeUrl.d.ts +7 -0
  16. package/package.json +9 -9
  17. package/src/component/FluxBoxedIcon.vue +1 -1
  18. package/src/component/FluxCalendar.vue +6 -6
  19. package/src/component/FluxColorPicker.vue +6 -6
  20. package/src/component/FluxDropZone.vue +0 -1
  21. package/src/component/FluxDynamicView.vue +2 -2
  22. package/src/component/FluxExpandableGroup.vue +0 -1
  23. package/src/component/FluxFilterBase.vue +11 -11
  24. package/src/component/FluxFormField.vue +4 -2
  25. package/src/component/FluxFormFieldAddition.vue +2 -2
  26. package/src/component/FluxInfo.vue +2 -2
  27. package/src/component/FluxInfoStack.vue +2 -2
  28. package/src/component/FluxKanbanColumn.vue +3 -5
  29. package/src/component/FluxLayerPane.vue +1 -1
  30. package/src/component/FluxPagination.vue +4 -4
  31. package/src/component/FluxPressable.vue +14 -5
  32. package/src/component/FluxSegmentedControl.vue +64 -67
  33. package/src/component/FluxSegmentedControlItem.vue +98 -0
  34. package/src/component/FluxSpacing.vue +5 -1
  35. package/src/component/FluxSplitButton.vue +2 -2
  36. package/src/component/FluxTable.vue +3 -1
  37. package/src/component/FluxToolbar.vue +1 -1
  38. package/src/component/index.ts +1 -1
  39. package/src/component/primitive/DialogLayout.vue +3 -3
  40. package/src/component/primitive/FilterBadge.vue +11 -2
  41. package/src/component/primitive/FilterMenuRenderer.ts +4 -4
  42. package/src/composable/index.ts +1 -0
  43. package/src/composable/useSegmentedControlInjection.ts +13 -0
  44. package/src/css/component/Form.module.scss +2 -2
  45. package/src/css/component/SegmentedControl.module.scss +53 -24
  46. package/src/css/component/Spinner.module.scss +1 -0
  47. package/src/css/component/Visual.module.scss +1 -0
  48. package/src/css/mixin/tree-node.scss +3 -3
  49. package/src/data/di.ts +13 -1
  50. package/src/data/iconRegistry.ts +1 -1
  51. package/src/util/createDialogRenderer.ts +1 -1
  52. package/src/util/index.ts +1 -0
  53. package/src/util/sanitizeUrl.ts +40 -0
  54. package/dist/component/FluxSegmentedView.vue.d.ts +0 -9
  55. package/src/component/FluxSegmentedView.vue +0 -15
package/dist/index.js CHANGED
@@ -70,6 +70,7 @@ var FluxExpandableGroupInjectionKey = Symbol();
70
70
  var FluxFlyoutInjectionKey = Symbol();
71
71
  var FluxFilterInjectionKey = Symbol();
72
72
  var FluxFormFieldInjectionKey = Symbol();
73
+ var FluxSegmentedControlInjectionKey = Symbol();
73
74
  var FluxTabBarInjectionKey = Symbol();
74
75
  var FluxTableInjectionKey = Symbol();
75
76
  var FluxTooltipInjectionKey = Symbol();
@@ -164,7 +165,7 @@ function fluxRegisterIcons(icons) {
164
165
  if (!icons[key]) return acc;
165
166
  const { icon, iconName } = icons[key];
166
167
  acc[iconName] = icon;
167
- if (Array.isArray(icon[2])) icon[2].forEach((iconName) => acc[iconName] = icon);
168
+ if (Array.isArray(icon[2])) icon[2].forEach((alias) => acc[alias] = icon);
168
169
  return acc;
169
170
  }, {});
170
171
  }
@@ -2345,6 +2346,17 @@ function useKanbanInjection_default() {
2345
2346
  return injection;
2346
2347
  }
2347
2348
  //#endregion
2349
+ //#region src/composable/useSegmentedControlInjection.ts
2350
+ function useSegmentedControlInjection_default() {
2351
+ return inject(FluxSegmentedControlInjectionKey, {
2352
+ modelValue: ref(void 0),
2353
+ size: ref("medium"),
2354
+ select: () => void 0,
2355
+ registerItem: () => void 0,
2356
+ unregisterItem: () => void 0
2357
+ });
2358
+ }
2359
+ //#endregion
2348
2360
  //#region src/composable/useTabBarInjection.ts
2349
2361
  function useTabBarInjection_default() {
2350
2362
  return inject(FluxTabBarInjectionKey, {
@@ -2369,7 +2381,7 @@ function useTooltipInjection_default() {
2369
2381
  return inject(FluxTooltipInjectionKey, { calculate: () => void 0 });
2370
2382
  }
2371
2383
  //#endregion
2372
- //#region ../../node_modules/.bun/@basmilius+utils@3.37.0+f2ed1ec6a4c7f7fd/node_modules/@basmilius/utils/dist/index.mjs
2384
+ //#region ../../node_modules/.bun/@basmilius+utils@3.40.0+f2ed1ec6a4c7f7fd/node_modules/@basmilius/utils/dist/index.mjs
2373
2385
  function t$1(e, t) {
2374
2386
  return Math.round(e / t) * t;
2375
2387
  }
@@ -3339,7 +3351,7 @@ var camelCase = createCompounder(function(result, word, index) {
3339
3351
  return result + (index ? capitalize(word) : word);
3340
3352
  });
3341
3353
  //#endregion
3342
- //#region ../internals/dist/util-CwaOsSvo.js
3354
+ //#region ../internals/dist/util-CJ4O9fDL.js
3343
3355
  function i$2(e) {
3344
3356
  if (typeof requestAnimationFrame > `u`) return (() => {});
3345
3357
  let t = 0;
@@ -3468,7 +3480,7 @@ function v$2(...e) {
3468
3480
  }
3469
3481
  function y$2(e, t, n = !1) {
3470
3482
  let r = b$2(e), i = t.compareDocumentPosition(e), a;
3471
- a = i && Node.DOCUMENT_POSITION_PRECEDING || n ? r.firstChild() : r.lastChild(), (a === null ? e : a).focus();
3483
+ a = (i & Node.DOCUMENT_POSITION_PRECEDING) !== 0 || n ? r.firstChild() : r.lastChild(), (a === null ? e : a).focus();
3472
3484
  }
3473
3485
  function b$2(e) {
3474
3486
  return document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: (e) => e.tabIndex >= 0 && !e.disabled ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP });
@@ -6585,7 +6597,7 @@ useMode(definition$2);
6585
6597
  useMode(definition$1);
6586
6598
  useMode(definition);
6587
6599
  //#endregion
6588
- //#region ../../node_modules/.bun/@basmilius+http-client@3.37.0+f97c77f67c914c00/node_modules/@basmilius/http-client/dist/index.mjs
6600
+ //#region ../../node_modules/.bun/@basmilius+http-client@3.40.0+24cbb59c6ffe9d25/node_modules/@basmilius/http-client/dist/index.mjs
6589
6601
  function adapter_default(Parent) {
6590
6602
  return class extends Parent {
6591
6603
  constructor(...args) {
@@ -6593,11 +6605,6 @@ function adapter_default(Parent) {
6593
6605
  }
6594
6606
  };
6595
6607
  }
6596
- function bound_default() {
6597
- return (target, method) => {
6598
- target[method] = target[method].bind(target);
6599
- };
6600
- }
6601
6608
  /**
6602
6609
  * Checks if the two given values are equal. When both values are a
6603
6610
  * dto, the check is done by firstly converthing them to JSON.
@@ -6621,7 +6628,7 @@ var TRIGGER = Symbol();
6621
6628
  * Checks if the given object is a dto.
6622
6629
  */
6623
6630
  function isDto_default(obj) {
6624
- return typeof obj === "object" && obj !== null && NAME in obj;
6631
+ return obj && typeof obj === "object" && !!obj[NAME];
6625
6632
  }
6626
6633
  /**
6627
6634
  * Asserts that the given object is a dto.
@@ -6676,9 +6683,6 @@ var markDtoClean = circularProtect_default(function(obj) {
6676
6683
  if (!obj[CHILDREN] || obj[CHILDREN].length === 0) return;
6677
6684
  obj[CHILDREN].filter(isDtoDirty_default).forEach(markDtoClean);
6678
6685
  });
6679
- function isProxiedArray_default(value) {
6680
- return Array.isArray(value) && PARENT in value;
6681
- }
6682
6686
  /**
6683
6687
  * Marks the given dto dirty.
6684
6688
  */
@@ -6705,7 +6709,7 @@ function relateDtoTo_default(dto, parent, key) {
6705
6709
  */
6706
6710
  function relateValueTo_default(dto, key, value) {
6707
6711
  if (isDto_default(value)) relateDtoTo_default(value, dto, key);
6708
- else if (isProxiedArray_default(value)) {
6712
+ else if (Array.isArray(value)) {
6709
6713
  for (const item of value) {
6710
6714
  if (!isDto_default(item)) continue;
6711
6715
  relateDtoTo_default(item, dto, key);
@@ -6737,7 +6741,7 @@ function unrelateDtoFrom_default(dto, parent) {
6737
6741
  */
6738
6742
  function unrelateValueFrom_default(dto, value) {
6739
6743
  if (isDto_default(value)) unrelateDtoFrom_default(value, dto);
6740
- else if (isProxiedArray_default(value)) {
6744
+ else if (Array.isArray(value)) {
6741
6745
  for (const item of value) if (isDto_default(item)) unrelateDtoFrom_default(item, dto);
6742
6746
  value[PARENT] = void 0;
6743
6747
  value[PARENT_KEY] = void 0;
@@ -6781,7 +6785,7 @@ var arrayProxy_default = {
6781
6785
  }
6782
6786
  };
6783
6787
  /**
6784
- * Checks if the proxy should ignore the given key.
6788
+ * Checks if the given key should be ignored by the proxy.
6785
6789
  */
6786
6790
  function ignored(target, key) {
6787
6791
  return typeof key === "symbol" || typeof target[key] === "function" || key === "length";
@@ -6826,7 +6830,7 @@ var instanceProxy_default = {
6826
6830
  const oldValue = descriptor.get?.call(target) ?? void 0;
6827
6831
  if (areEqual_default(value, oldValue)) return true;
6828
6832
  unrelateValueFrom_default(target, oldValue);
6829
- if (Array.isArray(value) && !isProxiedArray_default(value)) value = new Proxy(value, arrayProxy_default);
6833
+ if (Array.isArray(value) && !value[PROXY]) value = new Proxy(value, arrayProxy_default);
6830
6834
  descriptor.set.call(target, value);
6831
6835
  relateValueTo_default(target, key, value);
6832
6836
  markDtoDirty(target, key);
@@ -6950,7 +6954,7 @@ function dto_default(clazz) {
6950
6954
  K$2(clazz.prototype, DESCRIPTORS, descriptors);
6951
6955
  K$2(clazz.prototype, NAME, clazz.name);
6952
6956
  K$2(clazz.prototype, PROPERTIES, properties);
6953
- K$2(clazz, Symbol.hasInstance, (instance) => typeof instance === "object" && instance !== null && NAME in instance && instance[NAME] === clazz.name);
6957
+ K$2(clazz, Symbol.hasInstance, (instance) => typeof instance === "object" && instance?.[NAME] === clazz.name);
6954
6958
  G$2(clazz, "clone", clone_default);
6955
6959
  G$2(clazz, "fill", fill_default);
6956
6960
  G$2(clazz, "toJSON", toJSON_default);
@@ -6971,12 +6975,6 @@ function __decorate(decorators, target, key, desc) {
6971
6975
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6972
6976
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6973
6977
  }
6974
- var X$2 = class {
6975
- test() {
6976
- return true;
6977
- }
6978
- };
6979
- __decorate([bound_default()], X$2.prototype, "test", null);
6980
6978
  var BlobResponse = class BlobResponse {
6981
6979
  get blob() {
6982
6980
  return this.#blob;
@@ -7089,7 +7087,7 @@ var HttpAdapter = _HttpAdapter = class HttpAdapter {
7089
7087
  const defaultFilename = `download-${DateTime.now().toFormat("yyyy-MM-dd HH-mm-ss")}`;
7090
7088
  if (!header.startsWith("attachment")) return defaultFilename;
7091
7089
  const matches = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(header);
7092
- if (!matches || matches.length < 2) return defaultFilename;
7090
+ if ((matches?.length || 0) < 2) return defaultFilename;
7093
7091
  return matches[1].replaceAll("'", "").replaceAll("\"", "").replaceAll("/", "-").replaceAll(":", "-");
7094
7092
  }
7095
7093
  static parseRequestError(data, statusCode) {
@@ -7097,7 +7095,12 @@ var HttpAdapter = _HttpAdapter = class HttpAdapter {
7097
7095
  }
7098
7096
  static parseValidationError(data) {
7099
7097
  let errors;
7100
- if (data.errors) errors = Object.fromEntries(Object.entries(data.errors).map(([key, value]) => [key, _HttpAdapter.parseValidationError(value)]));
7098
+ if (data.errors) {
7099
+ errors = {};
7100
+ Object.entries(data.errors).forEach(([key, value]) => {
7101
+ errors[key] = _HttpAdapter.parseValidationError(value);
7102
+ });
7103
+ }
7101
7104
  return new ValidationError_default(data.code, data.error, data.error_description, errors, data.params);
7102
7105
  }
7103
7106
  };
@@ -7204,7 +7207,7 @@ function ye$1(e, t, n) {
7204
7207
  onScopeDispose(o);
7205
7208
  }
7206
7209
  //#endregion
7207
- //#region ../internals/dist/composable-5ooZTjm_.js
7210
+ //#region ../internals/dist/composable-CbnFLx66.js
7208
7211
  function _$1(e, t) {
7209
7212
  let n = ref(!1), r = ref(e), i = computed(() => {
7210
7213
  let e = [], t = unref(r).month, n = unref(r).startOf(`month`);
@@ -7343,54 +7346,52 @@ function T$1(e) {
7343
7346
  }));
7344
7347
  }
7345
7348
  function E$1(e) {
7346
- let t = ref(null);
7347
- e.announce;
7348
- let n = computed(() => {
7349
+ let t = ref(null), n = e.announce ?? T$1, r = computed(() => {
7349
7350
  let t = unref(e.itemId), n = unref(e.grabbedId);
7350
7351
  return t != null && n === t;
7351
7352
  });
7352
- function r() {
7353
+ function i() {
7353
7354
  t.value = null;
7354
7355
  }
7355
- function i(r) {
7356
+ function a(i) {
7356
7357
  if (unref(e.isDraggable) && unref(e.itemId) != null) {
7357
- if (!n.value) {
7358
- (r.key === ` ` || r.key === `Enter`) && (r.preventDefault(), t.value = e.onGrab());
7358
+ if (!r.value) {
7359
+ (i.key === ` ` || i.key === `Enter`) && (i.preventDefault(), t.value = e.onGrab(), n(`Grabbed, use arrow keys to move`));
7359
7360
  return;
7360
7361
  }
7361
- switch (r.key) {
7362
+ switch (i.key) {
7362
7363
  case `ArrowUp`:
7363
- r.preventDefault(), e.onMove(`up`);
7364
+ i.preventDefault(), e.onMove(`up`), n(`Moved up`);
7364
7365
  break;
7365
7366
  case `ArrowDown`:
7366
- r.preventDefault(), e.onMove(`down`);
7367
+ i.preventDefault(), e.onMove(`down`), n(`Moved down`);
7367
7368
  break;
7368
7369
  case `ArrowLeft`:
7369
- r.preventDefault(), e.onMove(`left`);
7370
+ i.preventDefault(), e.onMove(`left`), n(`Moved left`);
7370
7371
  break;
7371
7372
  case `ArrowRight`:
7372
- r.preventDefault(), e.onMove(`right`);
7373
+ i.preventDefault(), e.onMove(`right`), n(`Moved right`);
7373
7374
  break;
7374
7375
  case ` `:
7375
7376
  case `Enter`: {
7376
- r.preventDefault();
7377
- let n = t.value;
7378
- t.value = null, n !== null && e.onCommit(n);
7377
+ i.preventDefault();
7378
+ let r = t.value;
7379
+ t.value = null, r !== null && (e.onCommit(r), n(`Dropped`));
7379
7380
  break;
7380
7381
  }
7381
7382
  case `Escape`: {
7382
- r.preventDefault();
7383
- let n = t.value;
7384
- t.value = null, n !== null && e.onCancel(n);
7383
+ i.preventDefault();
7384
+ let r = t.value;
7385
+ t.value = null, r !== null && (e.onCancel(r), n(`Cancelled`));
7385
7386
  break;
7386
7387
  }
7387
7388
  }
7388
7389
  }
7389
7390
  }
7390
7391
  return {
7391
- isGrabbed: n,
7392
- handleKeyDown: i,
7393
- release: r
7392
+ isGrabbed: r,
7393
+ handleKeyDown: a,
7394
+ release: i
7394
7395
  };
7395
7396
  }
7396
7397
  function D$1(e, t, n, r = { passive: !0 }) {
@@ -7410,11 +7411,13 @@ function O$1(t, n = {}) {
7410
7411
  function k$1(e, t) {
7411
7412
  let n = `flux/${e}`, r = ref(i() ?? t);
7412
7413
  function i() {
7413
- if (n in localStorage) {
7414
+ if (!(n in localStorage)) return null;
7415
+ try {
7414
7416
  let e = JSON.parse(localStorage.getItem(n));
7415
7417
  return Array.isArray(e) && e[0] === `DateTime` && (e = DateTime.fromISO(e[1])), e;
7418
+ } catch {
7419
+ return null;
7416
7420
  }
7417
- return null;
7418
7421
  }
7419
7422
  return watch(r, (e) => {
7420
7423
  let t = e;
@@ -7570,7 +7573,7 @@ function z$1(e, t, n, r, i, o) {
7570
7573
  //#region ../internals/dist/data/index.js
7571
7574
  var oe = `#ef4444`, se = `#dc2626`, _e = `#f97316`, ve = `#ea580c`, Oe = `#f59e0b`, ke = `#d97706`, ze = `#eab308`, Be = `#ca8a04`, Xe = `#84cc16`, Ze = `#65a30d`, st = `#22c55e`, ct = `#16a34a`, vt = `#10b981`, yt = `#059669`, kt = `#14b8a6`, At = `#0d9488`, Bt = `#06b6d4`, Vt = `#0891b2`, Zt = `#0ea5e9`, Qt = `#0284c7`, ln = `#3b82f6`, un = `#2563eb`, bn = `#6366f1`, xn = `#4f46e5`, jn = `#8b5cf6`, Mn = `#7c3aed`, Hn = `#a855f7`, Un = `#9333ea`, $n = `#d946ef`, er = `#c026d3`, ur = `#ec4899`, dr = `#db2777`, xr = `#f43f5e`, Sr = `#e11d48`;
7572
7575
  //#endregion
7573
- //#region ../internals/dist/directive-Dprka-AO.js
7576
+ //#region ../internals/dist/directive-CoRl44Fx.js
7574
7577
  var i = class {
7575
7578
  #e;
7576
7579
  #t;
@@ -7631,7 +7634,7 @@ var Icon_module_default = {
7631
7634
  };
7632
7635
  //#endregion
7633
7636
  //#region src/component/FluxIcon.vue?vue&type=script&setup=true&lang.ts
7634
- var _hoisted_1$62 = [
7637
+ var _hoisted_1$63 = [
7635
7638
  "viewBox",
7636
7639
  "role",
7637
7640
  "aria-hidden",
@@ -7684,499 +7687,123 @@ var FluxIcon_default = /* @__PURE__ */ defineComponent({
7684
7687
  d: path,
7685
7688
  fill: "currentColor"
7686
7689
  }, null, 8, _hoisted_2$24);
7687
- }), 256))], 14, _hoisted_1$62)) : (openBlock(), createElementBlock("i", {
7690
+ }), 256))], 14, _hoisted_1$63)) : (openBlock(), createElementBlock("i", {
7688
7691
  key: 1,
7689
7692
  class: normalizeClass(unref(Icon_module_default).icon)
7690
7693
  }, null, 2));
7691
7694
  };
7692
7695
  }
7693
7696
  });
7694
- //#endregion
7695
- //#region src/component/FluxPressable.vue?vue&type=script&setup=true&lang.ts
7696
- var _hoisted_1$61 = [
7697
- "href",
7698
- "rel",
7699
- "target"
7700
- ];
7701
- //#endregion
7702
- //#region src/component/FluxPressable.vue
7703
- var FluxPressable_default = /* @__PURE__ */ defineComponent({
7704
- __name: "FluxPressable",
7705
- props: {
7706
- componentType: {},
7707
- href: {},
7708
- rel: {},
7709
- target: {},
7710
- to: {}
7711
- },
7712
- emits: [
7713
- "click",
7714
- "mouseenter",
7715
- "mouseleave"
7716
- ],
7717
- setup(__props, { emit: __emit, attrs: $attrs }) {
7718
- const emit = __emit;
7719
- const hoverListeners = {
7720
- onMouseenter: (evt) => emit("mouseenter", evt),
7721
- onMouseleave: (evt) => emit("mouseleave", evt)
7722
- };
7723
- function onClick(evt, navigate) {
7724
- emit("click", evt);
7725
- if (evt.defaultPrevented) return;
7726
- navigate?.(evt);
7727
- }
7728
- return (_ctx, _cache) => {
7729
- const _component_router_link = resolveComponent("router-link");
7730
- return __props.componentType === "route" ? (openBlock(), createBlock(_component_router_link, mergeProps({ key: 0 }, $attrs, toHandlers(hoverListeners), {
7731
- rel: __props.rel,
7732
- target: __props.target,
7733
- to: __props.to,
7734
- onClick: _cache[0] || (_cache[0] = ($event) => onClick($event))
7735
- }), {
7736
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
7737
- _: 3
7738
- }, 16, [
7739
- "rel",
7740
- "target",
7741
- "to"
7742
- ])) : __props.componentType === "link" ? (openBlock(), createElementBlock("a", mergeProps({ key: 1 }, $attrs, toHandlers(hoverListeners, true), {
7743
- href: __props.href,
7744
- rel: __props.rel,
7745
- target: __props.target,
7746
- onClick: _cache[1] || (_cache[1] = ($event) => onClick($event))
7747
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$61)) : __props.componentType === "button" ? (openBlock(), createElementBlock("button", mergeProps({ key: 2 }, $attrs, toHandlers(hoverListeners, true), { onClick: _cache[2] || (_cache[2] = ($event) => onClick($event)) }), [renderSlot(_ctx.$slots, "default")], 16)) : (openBlock(), createElementBlock("div", mergeProps({ key: 3 }, $attrs, toHandlers(hoverListeners, true), { onClick }), [renderSlot(_ctx.$slots, "default")], 16));
7748
- };
7749
- }
7750
- });
7751
- var Spinner_module_default = {
7752
- spinner: `spinner`,
7753
- spinnerTrack: `spinner-track`,
7754
- spinnerEffect: `spinner-effect`,
7755
- spinnerValue: `spinner-value`
7697
+ var Overlay_module_default = {
7698
+ overlayView: `overlay-view`,
7699
+ overlayProvider: `overlay-provider overlay-view`,
7700
+ overlayShade: `overlay-shade overlay-view`,
7701
+ overlay: `overlay`,
7702
+ overlayTransitionLeaveActive: `overlay-transition-leave-active`,
7703
+ slideOverTransitionLeaveActive: `slide-over-transition-leave-active`,
7704
+ basePaneStructure: `base-pane-structure`,
7705
+ paneFooter: `pane-footer`,
7706
+ isCurrent: `is-current`,
7707
+ overlaySmall: `overlay-small overlay`,
7708
+ overlayMedium: `overlay-medium overlay`,
7709
+ overlayLarge: `overlay-large overlay`,
7710
+ slideOver: `slide-over overlay`,
7711
+ paneHeader: `pane-header`,
7712
+ tabs: `tabs`,
7713
+ tabBarDefault: `tab-bar-default`,
7714
+ paneHeaderCaption: `pane-header-caption`,
7715
+ overlayTransitionEnterActive: `overlay-transition-enter-active`,
7716
+ overlayTransitionEnterFrom: `overlay-transition-enter-from`,
7717
+ overlayTransitionLeaveTo: `overlay-transition-leave-to`,
7718
+ slideOverTransitionEnterActive: `slide-over-transition-enter-active`,
7719
+ slideOverTransitionEnterFrom: `slide-over-transition-enter-from`,
7720
+ slideOverTransitionLeaveTo: `slide-over-transition-leave-to`
7756
7721
  };
7757
7722
  //#endregion
7758
- //#region src/component/FluxSpinner.vue
7759
- var FluxSpinner_default = /* @__PURE__ */ defineComponent({
7760
- __name: "FluxSpinner",
7761
- props: { size: {} },
7762
- setup(__props) {
7763
- return (_ctx, _cache) => {
7764
- return openBlock(), createElementBlock("svg", {
7765
- class: normalizeClass(unref(Spinner_module_default).spinner),
7766
- viewBox: "0 0 24 24",
7767
- style: normalizeStyle({ fontSize: __props.size && `${__props.size}px` })
7768
- }, [
7769
- createElementVNode("circle", {
7770
- class: normalizeClass(unref(Spinner_module_default).spinnerTrack),
7771
- cx: "12",
7772
- cy: "12",
7773
- r: "10",
7774
- fill: "transparent",
7775
- "stroke-width": "4"
7776
- }, null, 2),
7777
- createElementVNode("circle", {
7778
- class: normalizeClass(unref(Spinner_module_default).spinnerEffect),
7779
- cx: "12",
7780
- cy: "12",
7781
- r: "10",
7782
- fill: "transparent",
7783
- "stroke-width": "4",
7784
- "stroke-dasharray": "21 45",
7785
- "stroke-dashoffset": "30",
7786
- "stroke-linecap": "round"
7787
- }, null, 2),
7788
- createElementVNode("circle", {
7789
- class: normalizeClass(unref(Spinner_module_default).spinnerValue),
7790
- cx: "12",
7791
- cy: "12",
7792
- r: "10",
7793
- fill: "transparent",
7794
- "stroke-width": "4",
7795
- "stroke-dasharray": "21 45",
7796
- "stroke-dashoffset": "30",
7797
- "stroke-linecap": "round"
7798
- }, null, 2)
7799
- ], 6);
7800
- };
7723
+ //#region src/util/createDialogRenderer.ts
7724
+ var TARGET_SELECTOR = `.${Overlay_module_default.overlayProvider.replaceAll(" ", ".")}`;
7725
+ var DIALOG_ID = 0;
7726
+ function createDialogRenderer_default(attrs, props, emit, slots, className, transition) {
7727
+ const dialogId = `flux-dialog:${DIALOG_ID++}`;
7728
+ let unregister = null;
7729
+ let zIndex = 0;
7730
+ const dialogRef = ref();
7731
+ F$1(dialogRef);
7732
+ onUnmounted(() => {
7733
+ unregister?.();
7734
+ });
7735
+ watch(dialogRef, (dialog, _, onCleanup) => {
7736
+ if (!dialog) return;
7737
+ dialog.addEventListener("keydown", onKeyDown, { passive: true });
7738
+ onCleanup(() => {
7739
+ dialog.removeEventListener("keydown", onKeyDown);
7740
+ });
7741
+ });
7742
+ function onKeyDown(evt) {
7743
+ if (evt.key !== "Escape" || !unregister || !props.isCloseable) return;
7744
+ emit("close");
7801
7745
  }
7802
- });
7803
- var Button_module_default$1 = {
7804
- button: `button`,
7805
- isSmall: `is-small`,
7806
- isMedium: `is-medium`,
7807
- isLarge: `is-large`,
7808
- isXl: `is-xl`,
7809
- isFilled: `is-filled`,
7810
- spinner: `spinner`,
7811
- buttonIcon: `button-icon`,
7812
- buttonLabel: `button-label`,
7813
- badge: `badge`
7814
- };
7746
+ return () => {
7747
+ const { dialogCount } = useFluxStore();
7748
+ const children = a$2(slots.default?.() ?? []);
7749
+ const isVisible = children.length > 0 && children.some((child) => child.type !== Comment);
7750
+ let content;
7751
+ if (isVisible) {
7752
+ if (!unregister) [zIndex, unregister] = registerDialog();
7753
+ content = h("div", {
7754
+ key: props.viewKey ?? dialogId,
7755
+ ref: dialogRef,
7756
+ class: [className, zIndex === dialogCount && Overlay_module_default.isCurrent],
7757
+ style: { zIndex: zIndex + 1e3 },
7758
+ tabindex: 0
7759
+ }, children);
7760
+ } else {
7761
+ unregister?.();
7762
+ unregister = null;
7763
+ }
7764
+ return h(Teleport, {
7765
+ defer: true,
7766
+ disabled: !content,
7767
+ to: TARGET_SELECTOR
7768
+ }, [h(transition, attrs, { default: () => content })]);
7769
+ };
7770
+ }
7815
7771
  //#endregion
7816
- //#region src/component/FluxButton.vue?vue&type=script&setup=true&lang.ts
7817
- var SLOTS = [
7818
- "default",
7819
- "after",
7820
- "before",
7821
- "iconLeading",
7822
- "iconTrailing",
7823
- "label"
7824
- ];
7825
- //#endregion
7826
- //#region src/component/FluxButton.vue
7827
- var FluxButton_default = /* @__PURE__ */ defineComponent({
7828
- __name: "FluxButton",
7829
- props: {
7830
- type: { default: "button" },
7831
- disabled: { type: Boolean },
7832
- iconLeading: {},
7833
- iconTrailing: {},
7834
- isFilled: { type: Boolean },
7835
- isLoading: { type: Boolean },
7836
- isSubmit: { type: Boolean },
7837
- label: {},
7838
- size: { default: "medium" },
7839
- tabindex: { default: 0 },
7840
- href: {},
7841
- rel: {},
7842
- target: {},
7843
- to: {},
7844
- cssClass: {},
7845
- cssClassIcon: {},
7846
- cssClassLabel: {}
7847
- },
7848
- emits: [
7849
- "click",
7850
- "mouseenter",
7851
- "mouseleave"
7852
- ],
7853
- setup(__props, { emit: __emit }) {
7854
- const emit = __emit;
7855
- const disabled = useDisabled_default(toRef(() => __props.disabled));
7856
- function onClick(evt) {
7857
- if (unref(disabled) || __props.isLoading) {
7858
- evt.preventDefault();
7859
- evt.stopPropagation();
7860
- return;
7861
- }
7862
- emit("click", evt);
7863
- }
7864
- function onMouseEnter(evt) {
7865
- emit("mouseenter", evt);
7866
- }
7867
- function onMouseLeave(evt) {
7868
- emit("mouseleave", evt);
7869
- }
7870
- return (_ctx, _cache) => {
7871
- return openBlock(), createBlock(FluxPressable_default, {
7872
- "component-type": __props.type,
7873
- class: normalizeClass(unref(clsx)(__props.cssClass, __props.isFilled && unref(Button_module_default$1).isFilled, __props.size === "small" && unref(Button_module_default$1).isSmall, __props.size === "medium" && unref(Button_module_default$1).isMedium, __props.size === "large" && unref(Button_module_default$1).isLarge, __props.size === "xl" && unref(Button_module_default$1).isXl)),
7874
- type: __props.isSubmit ? "submit" : "button",
7875
- "aria-disabled": unref(disabled) ? true : void 0,
7876
- disabled: unref(disabled) ? true : void 0,
7877
- tabindex: unref(disabled) ? -1 : __props.tabindex,
7878
- href: __props.href,
7879
- rel: __props.rel,
7880
- target: __props.target,
7881
- to: __props.to,
7882
- onClick,
7883
- onMouseenter: onMouseEnter,
7884
- onMouseleave: onMouseLeave
7885
- }, {
7886
- default: withCtx(() => [
7887
- renderSlot(_ctx.$slots, "before"),
7888
- renderSlot(_ctx.$slots, "iconLeading", {}, () => [__props.isLoading && (__props.iconLeading || !__props.iconTrailing) ? (openBlock(), createBlock(FluxSpinner_default, {
7889
- key: 0,
7890
- size: 20
7891
- })) : __props.iconLeading ? (openBlock(), createBlock(FluxIcon_default, {
7892
- key: 1,
7893
- class: normalizeClass(__props.cssClassIcon),
7894
- name: __props.iconLeading
7895
- }, null, 8, ["class", "name"])) : createCommentVNode("", true)]),
7896
- renderSlot(_ctx.$slots, "label", {}, () => [__props.label ? (openBlock(), createElementBlock("span", {
7897
- key: 0,
7898
- class: normalizeClass(__props.cssClassLabel)
7899
- }, toDisplayString(__props.label), 3)) : createCommentVNode("", true)]),
7900
- renderSlot(_ctx.$slots, "iconTrailing", {}, () => [__props.isLoading && !__props.iconLeading && __props.iconTrailing ? (openBlock(), createBlock(FluxSpinner_default, {
7901
- key: 0,
7902
- size: 20
7903
- })) : __props.iconTrailing ? (openBlock(), createBlock(FluxIcon_default, {
7904
- key: 1,
7905
- class: normalizeClass(__props.cssClassIcon),
7906
- name: __props.iconTrailing
7907
- }, null, 8, ["class", "name"])) : createCommentVNode("", true)]),
7908
- renderSlot(_ctx.$slots, "after")
7909
- ]),
7910
- _: 3
7911
- }, 8, [
7912
- "component-type",
7913
- "class",
7914
- "type",
7915
- "aria-disabled",
7916
- "disabled",
7917
- "tabindex",
7918
- "href",
7919
- "rel",
7920
- "target",
7921
- "to"
7922
- ]);
7923
- };
7924
- }
7925
- });
7926
- //#endregion
7927
- //#region src/css/component/Action.module.scss
7928
- var { "button": _0$15, "buttonIcon": _1$6, "buttonLabel": _2$5 } = Button_module_default$1;
7929
- var Action_module_default = {
7930
- action: `action ${_0$15}`,
7931
- spinner: `spinner`,
7932
- actionIcon: `action-icon ${_1$6}`,
7933
- isDestructive: `is-destructive`,
7934
- actionLabel: `action-label ${_2$5}`,
7935
- actionBar: `action-bar`,
7936
- separator: `separator`,
7937
- formInput: `form-input`,
7938
- basePaneStructure: `base-pane-structure`,
7939
- actionPane: `action-pane`,
7940
- actionPaneGrid: `action-pane-grid`,
7941
- actionPaneBody: `action-pane-body`,
7942
- paneBody: `pane-body`
7943
- };
7944
- //#endregion
7945
- //#region src/component/FluxAction.vue
7946
- var FluxAction_default = /* @__PURE__ */ defineComponent({
7947
- __name: "FluxAction",
7948
- props: {
7949
- type: {},
7950
- disabled: { type: Boolean },
7951
- isLoading: { type: Boolean },
7952
- isSubmit: { type: Boolean },
7953
- label: {},
7954
- tabindex: {},
7955
- href: {},
7956
- rel: {},
7957
- target: {},
7958
- to: {},
7959
- icon: {},
7960
- isDestructive: { type: Boolean }
7961
- },
7962
- emits: [
7963
- "click",
7964
- "mouseenter",
7965
- "mouseleave"
7966
- ],
7967
- setup(__props, { emit: $emit }) {
7968
- return (_ctx, _cache) => {
7969
- return openBlock(), createBlock(FluxButton_default, mergeProps({
7970
- disabled: __props.disabled,
7971
- isLoading: __props.isLoading,
7972
- label: __props.label,
7973
- href: __props.href,
7974
- rel: __props.rel,
7975
- target: __props.target,
7976
- to: __props.to,
7977
- type: __props.type
7978
- }, {
7979
- "css-class": unref(Action_module_default).action,
7980
- "css-class-icon": unref(Action_module_default).actionIcon,
7981
- "css-class-label": unref(Action_module_default).actionLabel,
7982
- class: __props.isDestructive && unref(Action_module_default).isDestructive,
7983
- "icon-leading": __props.icon,
7984
- onClick: _cache[0] || (_cache[0] = ($event) => $emit("click", $event)),
7985
- onMouseenter: _cache[1] || (_cache[1] = ($event) => $emit("mouseenter", $event)),
7986
- onMouseleave: _cache[2] || (_cache[2] = ($event) => $emit("mouseleave", $event))
7987
- }), null, 16, [
7988
- "css-class",
7989
- "css-class-icon",
7990
- "css-class-label",
7991
- "class",
7992
- "icon-leading"
7993
- ]);
7994
- };
7995
- }
7996
- });
7997
- var Overlay_module_default = {
7998
- overlayView: `overlay-view`,
7999
- overlayProvider: `overlay-provider overlay-view`,
8000
- overlayShade: `overlay-shade overlay-view`,
8001
- overlay: `overlay`,
8002
- overlayTransitionLeaveActive: `overlay-transition-leave-active`,
8003
- slideOverTransitionLeaveActive: `slide-over-transition-leave-active`,
8004
- basePaneStructure: `base-pane-structure`,
8005
- paneFooter: `pane-footer`,
8006
- isCurrent: `is-current`,
8007
- overlaySmall: `overlay-small overlay`,
8008
- overlayMedium: `overlay-medium overlay`,
8009
- overlayLarge: `overlay-large overlay`,
8010
- slideOver: `slide-over overlay`,
8011
- paneHeader: `pane-header`,
8012
- tabs: `tabs`,
8013
- tabBarDefault: `tab-bar-default`,
8014
- paneHeaderCaption: `pane-header-caption`,
8015
- overlayTransitionEnterActive: `overlay-transition-enter-active`,
8016
- overlayTransitionEnterFrom: `overlay-transition-enter-from`,
8017
- overlayTransitionLeaveTo: `overlay-transition-leave-to`,
8018
- slideOverTransitionEnterActive: `slide-over-transition-enter-active`,
8019
- slideOverTransitionEnterFrom: `slide-over-transition-enter-from`,
8020
- slideOverTransitionLeaveTo: `slide-over-transition-leave-to`
8021
- };
8022
- //#endregion
8023
- //#region src/util/createDialogRenderer.ts
8024
- var TARGET_SELECTOR = `.${Overlay_module_default.overlayProvider.replaceAll(" ", ".")}`;
8025
- var DIALOG_ID = 0;
8026
- function createDialogRenderer_default(attrs, props, emit, slots, className, transition) {
8027
- const dialogId = `flux-dialog:${DIALOG_ID++}`;
8028
- let unregister = null;
8029
- let zIndex = 0;
8030
- const dialogRef = ref();
8031
- F$1(dialogRef);
8032
- onUnmounted(() => {
8033
- unregister?.();
8034
- });
8035
- watch(dialogRef, (dialog, _, onCleanup) => {
8036
- if (!dialog) return;
8037
- dialog.addEventListener("keydown", onKeyDown, { passive: true });
8038
- onCleanup(() => {
8039
- dialog.removeEventListener("keydown", onKeyDown);
8040
- });
8041
- });
8042
- function onKeyDown(evt) {
8043
- if (evt.key !== "Escape" || !unregister || !props.isCloseable) return;
8044
- emit("close");
8045
- }
8046
- return () => {
8047
- const { dialogCount } = useFluxStore();
8048
- const children = a$2(slots.default?.() ?? []);
8049
- const isVisible = children.length > 0 && children.some((child) => child.type !== Comment);
8050
- let content;
8051
- if (isVisible) {
8052
- if (!unregister) [zIndex, unregister] = registerDialog();
8053
- content = h("div", {
8054
- key: props.viewKey ?? dialogId,
8055
- ref: dialogRef,
8056
- class: [className, zIndex === dialogCount && Overlay_module_default.isCurrent],
8057
- style: { zIndex: zIndex + 1e3 },
8058
- tabindex: 0
8059
- }, children);
8060
- } else {
8061
- unregister?.();
8062
- unregister = null;
8063
- }
8064
- return h(Teleport, {
8065
- defer: true,
8066
- disabled: !content,
8067
- to: TARGET_SELECTOR
8068
- }, [h(transition, attrs, { default: () => content })]);
8069
- };
8070
- }
8071
- //#endregion
8072
- //#region src/util/createLabelForDateRange.ts
8073
- function createLabelForDateRange_default(start, end, preventCustom = false) {
8074
- const translate = useTranslate_default();
8075
- if (start.day === end.day && start.month === end.month && start.year === end.year) return start.toLocaleString({
8076
- day: "numeric",
8077
- month: "short",
8078
- year: "numeric"
8079
- });
8080
- if (start.month === end.month && start.year === end.year) return `${start.toLocaleString({ day: "numeric" })} – ${end.toLocaleString({
8081
- day: "numeric",
8082
- month: "short",
8083
- year: "numeric"
8084
- })}`;
8085
- if (start.year === end.year) return `${start.toLocaleString({
8086
- day: "numeric",
8087
- month: "short"
8088
- })} – ${end.toLocaleString({
8089
- day: "numeric",
8090
- month: "short",
8091
- year: "numeric"
8092
- })}`;
8093
- if (preventCustom) return `${start.toLocaleString({
8094
- day: "numeric",
8095
- month: "short",
8096
- year: "numeric"
8097
- })} – ${end.toLocaleString({
8098
- day: "numeric",
8099
- month: "short",
8100
- year: "numeric"
8101
- })}`;
8102
- return translate("flux.customPeriod");
8103
- }
8104
- //#endregion
8105
- //#region src/util/defineFilter.ts
8106
- function defineFilter(factory) {
8107
- return factory;
8108
- }
8109
- //#endregion
8110
- //#region src/util/filter.ts
8111
- function isFluxFilterOptionHeader(obj) {
8112
- return "title" in obj;
8113
- }
8114
- function isFluxFilterOptionItem(obj) {
8115
- return "label" in obj && "value" in obj;
8116
- }
8117
- function isResettable(definition, value) {
8118
- if (!definition || definition.defaultValue === void 0) return false;
8119
- return !isFilterValueEqual(value, definition.defaultValue);
8120
- }
8121
- function isFilterValueEqual(a, b) {
8122
- if (a === b) return true;
8123
- if (DateTime.isDateTime(a) && DateTime.isDateTime(b)) return a.equals(b);
8124
- if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((value, index) => isFilterValueEqual(value, b[index]));
8125
- return false;
8126
- }
8127
- function pickFilterCommon(props) {
8128
- return {
8129
- name: props.name,
8130
- label: props.label,
8131
- icon: props.icon,
8132
- disabled: props.disabled,
8133
- defaultValue: props.defaultValue,
8134
- onChange: props.onChange,
8135
- onClear: props.onClear
8136
- };
8137
- }
8138
- function generateMultiOptionsLabel(translate, options, values) {
8139
- const selected = options.filter((o) => values.includes(o.value)).length;
8140
- if (selected <= 0) return null;
8141
- if (selected === 1) return options.find((o) => values.includes(o.value)).label;
8142
- return translate("flux.nSelected", { n: selected });
8143
- }
8144
- //#endregion
8145
- //#region src/composable/private/useAsyncFilterOptions.ts
8146
- function useAsyncFilterOptions_default(params) {
8147
- const { isLoading, loaded } = X$1();
8148
- const debouncedModelSearch = Y$1(params.modelSearch, 150);
8149
- const fetchOptions = computed(() => loaded(params.fetchOptions));
8150
- const fetchRelevant = computed(() => loaded(params.fetchRelevant));
8151
- const fetchSearch = computed(() => loaded(params.fetchSearch));
8152
- const selectedOptions = ref([]);
8153
- const visibleOptions = ref([]);
8154
- const options = computed(() => {
8155
- const options = [];
8156
- const search = unref(params.modelSearch);
8157
- const selected = unref(selectedOptions);
8158
- const visible = unref(visibleOptions);
8159
- visible.forEach((vo) => options.push(vo));
8160
- selected.forEach((so) => {
8161
- if (isFluxFilterOptionItem(so) && visible.find((vo) => isFluxFilterOptionItem(vo) && vo.value === so.value)) return;
8162
- if (isFluxFilterOptionItem(so) && !so.label.toLowerCase().includes(search.toLowerCase())) return;
8163
- options.push(so);
8164
- });
8165
- return options;
8166
- });
8167
- watch(params.currentValueIds, async (ids) => {
8168
- if (ids.length === 0) return;
8169
- selectedOptions.value = await unref(fetchOptions)(ids);
8170
- }, { immediate: true });
8171
- watch(debouncedModelSearch, async (searchQuery) => {
8172
- if (searchQuery.length > 0) visibleOptions.value = await unref(fetchSearch)(searchQuery);
8173
- else visibleOptions.value = await unref(fetchRelevant)();
8174
- }, { immediate: true });
8175
- return {
8176
- isLoading,
8177
- options
8178
- };
8179
- }
7772
+ //#region src/composable/private/useAsyncFilterOptions.ts
7773
+ function useAsyncFilterOptions_default(params) {
7774
+ const { isLoading, loaded } = X$1();
7775
+ const debouncedModelSearch = Y$1(params.modelSearch, 150);
7776
+ const fetchOptions = computed(() => loaded(params.fetchOptions));
7777
+ const fetchRelevant = computed(() => loaded(params.fetchRelevant));
7778
+ const fetchSearch = computed(() => loaded(params.fetchSearch));
7779
+ const selectedOptions = ref([]);
7780
+ const visibleOptions = ref([]);
7781
+ const options = computed(() => {
7782
+ const options = [];
7783
+ const search = unref(params.modelSearch);
7784
+ const selected = unref(selectedOptions);
7785
+ const visible = unref(visibleOptions);
7786
+ visible.forEach((vo) => options.push(vo));
7787
+ selected.forEach((so) => {
7788
+ if (isFluxFilterOptionItem(so) && visible.find((vo) => isFluxFilterOptionItem(vo) && vo.value === so.value)) return;
7789
+ if (isFluxFilterOptionItem(so) && !so.label.toLowerCase().includes(search.toLowerCase())) return;
7790
+ options.push(so);
7791
+ });
7792
+ return options;
7793
+ });
7794
+ watch(params.currentValueIds, async (ids) => {
7795
+ if (ids.length === 0) return;
7796
+ selectedOptions.value = await unref(fetchOptions)(ids);
7797
+ }, { immediate: true });
7798
+ watch(debouncedModelSearch, async (searchQuery) => {
7799
+ if (searchQuery.length > 0) visibleOptions.value = await unref(fetchSearch)(searchQuery);
7800
+ else visibleOptions.value = await unref(fetchRelevant)();
7801
+ }, { immediate: true });
7802
+ return {
7803
+ isLoading,
7804
+ options
7805
+ };
7806
+ }
8180
7807
  //#endregion
8181
7808
  //#region src/composable/private/useDateFlyout.ts
8182
7809
  function useDateFlyout_default(modelValue, flyoutRef, options = {}) {
@@ -9112,215 +8739,623 @@ function useCommandPalette(params) {
9112
8739
  } finally {
9113
8740
  if (generation === fetchGeneration) isLoading.value = false;
9114
8741
  }
9115
- });
8742
+ });
8743
+ watch(highlightedIndex, (index) => {
8744
+ if (index < 0 || !unref(isKeyboardNav)) return;
8745
+ isKeyboardNav.value = false;
8746
+ nextTick(() => unref(params.itemRefs)?.[index]?.$el?.scrollIntoView({ block: "nearest" }));
8747
+ });
8748
+ watch(totalItems, (total) => {
8749
+ if (unref(highlightedIndex) >= total) highlightedIndex.value = Math.max(-1, total - 1);
8750
+ });
8751
+ return {
8752
+ search,
8753
+ activeTab,
8754
+ activeTabSource,
8755
+ highlightedIndex,
8756
+ isLoading,
8757
+ isTransitioningBack,
8758
+ subActionTarget,
8759
+ filteredItems,
8760
+ groupedItems,
8761
+ subActions,
8762
+ tabs,
8763
+ totalItems,
8764
+ setSearch,
8765
+ setActiveTab,
8766
+ enterSubActions,
8767
+ onKeyNavigate,
8768
+ reset
8769
+ };
8770
+ }
8771
+ //#endregion
8772
+ //#region src/composable/private/useFilterOption.ts
8773
+ function useFilterOptionSingle(name) {
8774
+ const { back, state, setValue } = useFilterInjection_default();
8775
+ const currentValue = computed(() => unref(state)[name]);
8776
+ function onSelect(value) {
8777
+ if (unref(currentValue) === value) setValue(name, null);
8778
+ else setValue(name, value);
8779
+ back();
8780
+ }
8781
+ return {
8782
+ currentValue,
8783
+ onSelect
8784
+ };
8785
+ }
8786
+ function useFilterOptionMulti(name) {
8787
+ const { state, setValue } = useFilterInjection_default();
8788
+ const currentValue = computed(() => {
8789
+ const value = unref(state)[name];
8790
+ if (Array.isArray(value)) return value;
8791
+ return [];
8792
+ });
8793
+ function onSelect(value) {
8794
+ let values = Array.from(unref(currentValue));
8795
+ if (values.includes(value)) values = values.filter((v) => v !== value);
8796
+ else values.push(value);
8797
+ setValue(name, values.length > 0 ? values : null);
8798
+ }
8799
+ return {
8800
+ currentValue,
8801
+ onSelect
8802
+ };
8803
+ }
8804
+ //#endregion
8805
+ //#region src/composable/private/useTreeView.ts
8806
+ var FLUX_COLORS = [
8807
+ "gray",
8808
+ "primary",
8809
+ "danger",
8810
+ "info",
8811
+ "success",
8812
+ "warning"
8813
+ ];
8814
+ function flattenVisible(nodes, depth, expanded, parentGuides = []) {
8815
+ return nodes.flatMap((node, index) => {
8816
+ const isLast = index === nodes.length - 1;
8817
+ const flatNode = {
8818
+ ...node,
8819
+ depth,
8820
+ isLast,
8821
+ lineGuides: parentGuides
8822
+ };
8823
+ if (node.children?.length && expanded.has(node.id)) {
8824
+ const childGuides = [...parentGuides, !isLast];
8825
+ return [flatNode, ...flattenVisible(node.children, depth + 1, expanded, childGuides)];
8826
+ }
8827
+ return [flatNode];
8828
+ });
8829
+ }
8830
+ function flattenAll(nodes, depth = 0) {
8831
+ return nodes.flatMap((node) => [{
8832
+ ...node,
8833
+ depth,
8834
+ isLast: false,
8835
+ lineGuides: []
8836
+ }, ...node.children ? flattenAll(node.children, depth + 1) : []]);
8837
+ }
8838
+ function getLevelColor(depth, levelColors) {
8839
+ if (!levelColors || depth >= levelColors.length) return;
8840
+ const color = levelColors[depth];
8841
+ if (FLUX_COLORS.includes(color)) return `var(--${color}-600)`;
8842
+ return color;
8843
+ }
8844
+ function useTreeView(params) {
8845
+ const highlightedIndex = ref(-1);
8846
+ function toggleExpand(nodeId) {
8847
+ const ids = new Set(unref(params.expandedIds));
8848
+ if (ids.has(nodeId)) ids.delete(nodeId);
8849
+ else ids.add(nodeId);
8850
+ params.expandedIds.value = ids;
8851
+ }
8852
+ function onExpandClick(node, evt) {
8853
+ if (!node.children?.length) return;
8854
+ evt.stopPropagation();
8855
+ toggleExpand(node.id);
8856
+ }
8857
+ function onKeyNavigate(evt, onActivate) {
8858
+ const nodes = unref(params.visibleNodes);
8859
+ const current = unref(highlightedIndex);
8860
+ switch (evt.key) {
8861
+ case "ArrowDown":
8862
+ evt.preventDefault();
8863
+ highlightedIndex.value = current === -1 ? 0 : Math.min(nodes.length - 1, current + 1);
8864
+ return true;
8865
+ case "ArrowUp":
8866
+ evt.preventDefault();
8867
+ highlightedIndex.value = current === -1 ? nodes.length - 1 : Math.max(0, current - 1);
8868
+ return true;
8869
+ case "ArrowRight":
8870
+ evt.preventDefault();
8871
+ if (current >= 0) {
8872
+ const node = nodes[current];
8873
+ if (node.children?.length) {
8874
+ if (!unref(params.expandedIds).has(node.id)) toggleExpand(node.id);
8875
+ else if (current + 1 < nodes.length && nodes[current + 1].depth > node.depth) highlightedIndex.value = current + 1;
8876
+ }
8877
+ }
8878
+ return true;
8879
+ case "ArrowLeft":
8880
+ evt.preventDefault();
8881
+ if (current >= 0) {
8882
+ const node = nodes[current];
8883
+ if (node.children?.length && unref(params.expandedIds).has(node.id)) toggleExpand(node.id);
8884
+ else if (node.depth > 0) {
8885
+ for (let i = current - 1; i >= 0; i--) if (nodes[i].depth === node.depth - 1) {
8886
+ highlightedIndex.value = i;
8887
+ break;
8888
+ }
8889
+ }
8890
+ }
8891
+ return true;
8892
+ case "Enter":
8893
+ case " ":
8894
+ evt.preventDefault();
8895
+ if (current >= 0) onActivate(nodes[current]);
8896
+ return true;
8897
+ default:
8898
+ if (evt.key.length === 1) {
8899
+ const lowerKey = evt.key.toLowerCase();
8900
+ let matchIndex = nodes.findIndex((n, i) => i > current && n.label.toLowerCase().startsWith(lowerKey));
8901
+ if (matchIndex < 0) matchIndex = nodes.findIndex((n) => n.label.toLowerCase().startsWith(lowerKey));
8902
+ if (matchIndex >= 0) {
8903
+ highlightedIndex.value = matchIndex;
8904
+ return true;
8905
+ }
8906
+ }
8907
+ return false;
8908
+ }
8909
+ }
9116
8910
  watch(highlightedIndex, (index) => {
9117
- if (index < 0 || !unref(isKeyboardNav)) return;
9118
- isKeyboardNav.value = false;
9119
- nextTick(() => unref(params.itemRefs)?.[index]?.$el?.scrollIntoView({ block: "nearest" }));
8911
+ if (index < 0) return;
8912
+ nextTick(() => unref(params.nodeElementRefs)?.[index]?.scrollIntoView({ block: "nearest" }));
9120
8913
  });
9121
- watch(totalItems, (total) => {
9122
- if (unref(highlightedIndex) >= total) highlightedIndex.value = Math.max(-1, total - 1);
8914
+ watch(params.visibleNodes, (nodes) => {
8915
+ if (unref(highlightedIndex) >= nodes.length) highlightedIndex.value = Math.max(-1, nodes.length - 1);
9123
8916
  });
9124
8917
  return {
9125
- search,
9126
- activeTab,
9127
- activeTabSource,
9128
8918
  highlightedIndex,
9129
- isLoading,
9130
- isTransitioningBack,
9131
- subActionTarget,
9132
- filteredItems,
9133
- groupedItems,
9134
- subActions,
9135
- tabs,
9136
- totalItems,
9137
- setSearch,
9138
- setActiveTab,
9139
- enterSubActions,
9140
- onKeyNavigate,
9141
- reset
8919
+ toggleExpand,
8920
+ onExpandClick,
8921
+ onKeyNavigate
9142
8922
  };
9143
8923
  }
9144
8924
  //#endregion
9145
- //#region src/composable/private/useFilterOption.ts
9146
- function useFilterOptionSingle(name) {
9147
- const { back, state, setValue } = useFilterInjection_default();
9148
- const currentValue = computed(() => unref(state)[name]);
9149
- function onSelect(value) {
9150
- if (unref(currentValue) === value) setValue(name, null);
9151
- else setValue(name, value);
9152
- back();
9153
- }
8925
+ //#region src/util/createLabelForDateRange.ts
8926
+ function createLabelForDateRange_default(start, end, preventCustom = false) {
8927
+ const translate = useTranslate_default();
8928
+ if (start.day === end.day && start.month === end.month && start.year === end.year) return start.toLocaleString({
8929
+ day: "numeric",
8930
+ month: "short",
8931
+ year: "numeric"
8932
+ });
8933
+ if (start.month === end.month && start.year === end.year) return `${start.toLocaleString({ day: "numeric" })} – ${end.toLocaleString({
8934
+ day: "numeric",
8935
+ month: "short",
8936
+ year: "numeric"
8937
+ })}`;
8938
+ if (start.year === end.year) return `${start.toLocaleString({
8939
+ day: "numeric",
8940
+ month: "short"
8941
+ })} – ${end.toLocaleString({
8942
+ day: "numeric",
8943
+ month: "short",
8944
+ year: "numeric"
8945
+ })}`;
8946
+ if (preventCustom) return `${start.toLocaleString({
8947
+ day: "numeric",
8948
+ month: "short",
8949
+ year: "numeric"
8950
+ })} – ${end.toLocaleString({
8951
+ day: "numeric",
8952
+ month: "short",
8953
+ year: "numeric"
8954
+ })}`;
8955
+ return translate("flux.customPeriod");
8956
+ }
8957
+ //#endregion
8958
+ //#region src/util/defineFilter.ts
8959
+ function defineFilter(factory) {
8960
+ return factory;
8961
+ }
8962
+ //#endregion
8963
+ //#region src/util/filter.ts
8964
+ function isFluxFilterOptionHeader(obj) {
8965
+ return "title" in obj;
8966
+ }
8967
+ function isFluxFilterOptionItem(obj) {
8968
+ return "label" in obj && "value" in obj;
8969
+ }
8970
+ function isResettable(definition, value) {
8971
+ if (!definition || definition.defaultValue === void 0) return false;
8972
+ return !isFilterValueEqual(value, definition.defaultValue);
8973
+ }
8974
+ function isFilterValueEqual(a, b) {
8975
+ if (a === b) return true;
8976
+ if (DateTime.isDateTime(a) && DateTime.isDateTime(b)) return a.equals(b);
8977
+ if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((value, index) => isFilterValueEqual(value, b[index]));
8978
+ return false;
8979
+ }
8980
+ function pickFilterCommon(props) {
9154
8981
  return {
9155
- currentValue,
9156
- onSelect
8982
+ name: props.name,
8983
+ label: props.label,
8984
+ icon: props.icon,
8985
+ disabled: props.disabled,
8986
+ defaultValue: props.defaultValue,
8987
+ onChange: props.onChange,
8988
+ onClear: props.onClear
9157
8989
  };
9158
8990
  }
9159
- function useFilterOptionMulti(name) {
9160
- const { state, setValue } = useFilterInjection_default();
9161
- const currentValue = computed(() => {
9162
- const value = unref(state)[name];
9163
- if (Array.isArray(value)) return value;
9164
- return [];
9165
- });
9166
- function onSelect(value) {
9167
- let values = Array.from(unref(currentValue));
9168
- if (values.includes(value)) values = values.filter((v) => v !== value);
9169
- else values.push(value);
9170
- setValue(name, values.length > 0 ? values : null);
8991
+ function generateMultiOptionsLabel(translate, options, values) {
8992
+ const selected = options.filter((o) => values.includes(o.value)).length;
8993
+ if (selected <= 0) return null;
8994
+ if (selected === 1) return options.find((o) => values.includes(o.value)).label;
8995
+ return translate("flux.nSelected", { n: selected });
8996
+ }
8997
+ //#endregion
8998
+ //#region src/util/sanitizeUrl.ts
8999
+ var DANGEROUS_PROTOCOL = /^(javascript|vbscript|data):/i;
9000
+ /**
9001
+ * Removes control characters (and the Unicode line/paragraph separators) that
9002
+ * browsers ignore inside URLs but which can be used to obfuscate the scheme,
9003
+ * e.g. `java\tscript:alert(1)`.
9004
+ */
9005
+ function stripControlChars(value) {
9006
+ let out = "";
9007
+ for (let i = 0; i < value.length; i++) {
9008
+ const code = value.charCodeAt(i);
9009
+ if (code <= 32 || code >= 127 && code <= 159 || code === 8232 || code === 8233) continue;
9010
+ out += value[i];
9011
+ }
9012
+ return out;
9013
+ }
9014
+ /**
9015
+ * Sanitizes a URL intended for an `href` attribute. Returns `undefined` when the
9016
+ * URL uses a dangerous scheme (`javascript:`, `vbscript:`, `data:`) so the attribute
9017
+ * is omitted instead of becoming a script-execution or data-injection vector.
9018
+ * Safe and relative URLs are returned unchanged.
9019
+ */
9020
+ function sanitizeUrl_default(href) {
9021
+ if (!href) return href;
9022
+ if (DANGEROUS_PROTOCOL.test(stripControlChars(href))) return;
9023
+ return href;
9024
+ }
9025
+ //#endregion
9026
+ //#region src/component/FluxPressable.vue?vue&type=script&setup=true&lang.ts
9027
+ var _hoisted_1$62 = [
9028
+ "href",
9029
+ "rel",
9030
+ "target"
9031
+ ];
9032
+ //#endregion
9033
+ //#region src/component/FluxPressable.vue
9034
+ var FluxPressable_default = /* @__PURE__ */ defineComponent({
9035
+ __name: "FluxPressable",
9036
+ props: {
9037
+ componentType: {},
9038
+ href: {},
9039
+ rel: {},
9040
+ target: {},
9041
+ to: {}
9042
+ },
9043
+ emits: [
9044
+ "click",
9045
+ "mouseenter",
9046
+ "mouseleave"
9047
+ ],
9048
+ setup(__props, { emit: __emit, attrs: $attrs }) {
9049
+ const emit = __emit;
9050
+ const resolvedRel = computed(() => {
9051
+ if (__props.rel) return __props.rel;
9052
+ return __props.target === "_blank" ? "noopener noreferrer" : void 0;
9053
+ });
9054
+ const hoverListeners = {
9055
+ onMouseenter: (evt) => emit("mouseenter", evt),
9056
+ onMouseleave: (evt) => emit("mouseleave", evt)
9057
+ };
9058
+ function onClick(evt, navigate) {
9059
+ emit("click", evt);
9060
+ if (evt.defaultPrevented) return;
9061
+ navigate?.(evt);
9062
+ }
9063
+ return (_ctx, _cache) => {
9064
+ const _component_router_link = resolveComponent("router-link");
9065
+ return __props.componentType === "route" ? (openBlock(), createBlock(_component_router_link, mergeProps({ key: 0 }, $attrs, toHandlers(hoverListeners), {
9066
+ rel: resolvedRel.value,
9067
+ target: __props.target,
9068
+ to: __props.to,
9069
+ onClick: _cache[0] || (_cache[0] = ($event) => onClick($event))
9070
+ }), {
9071
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
9072
+ _: 3
9073
+ }, 16, [
9074
+ "rel",
9075
+ "target",
9076
+ "to"
9077
+ ])) : __props.componentType === "link" ? (openBlock(), createElementBlock("a", mergeProps({ key: 1 }, $attrs, toHandlers(hoverListeners, true), {
9078
+ href: unref(sanitizeUrl_default)(__props.href),
9079
+ rel: resolvedRel.value,
9080
+ target: __props.target,
9081
+ onClick: _cache[1] || (_cache[1] = ($event) => onClick($event))
9082
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$62)) : __props.componentType === "button" ? (openBlock(), createElementBlock("button", mergeProps({ key: 2 }, $attrs, toHandlers(hoverListeners, true), { onClick: _cache[2] || (_cache[2] = ($event) => onClick($event)) }), [renderSlot(_ctx.$slots, "default")], 16)) : (openBlock(), createElementBlock("div", mergeProps({ key: 3 }, $attrs, toHandlers(hoverListeners, true), { onClick }), [renderSlot(_ctx.$slots, "default")], 16));
9083
+ };
9084
+ }
9085
+ });
9086
+ var Spinner_module_default = {
9087
+ spinner: `spinner`,
9088
+ spinnerTrack: `spinner-track`,
9089
+ spinnerEffect: `spinner-effect`,
9090
+ spinnerValue: `spinner-value`
9091
+ };
9092
+ //#endregion
9093
+ //#region src/component/FluxSpinner.vue
9094
+ var FluxSpinner_default = /* @__PURE__ */ defineComponent({
9095
+ __name: "FluxSpinner",
9096
+ props: { size: {} },
9097
+ setup(__props) {
9098
+ return (_ctx, _cache) => {
9099
+ return openBlock(), createElementBlock("svg", {
9100
+ class: normalizeClass(unref(Spinner_module_default).spinner),
9101
+ viewBox: "0 0 24 24",
9102
+ style: normalizeStyle({ fontSize: __props.size && `${__props.size}px` })
9103
+ }, [
9104
+ createElementVNode("circle", {
9105
+ class: normalizeClass(unref(Spinner_module_default).spinnerTrack),
9106
+ cx: "12",
9107
+ cy: "12",
9108
+ r: "10",
9109
+ fill: "transparent",
9110
+ "stroke-width": "4"
9111
+ }, null, 2),
9112
+ createElementVNode("circle", {
9113
+ class: normalizeClass(unref(Spinner_module_default).spinnerEffect),
9114
+ cx: "12",
9115
+ cy: "12",
9116
+ r: "10",
9117
+ fill: "transparent",
9118
+ "stroke-width": "4",
9119
+ "stroke-dasharray": "21 45",
9120
+ "stroke-dashoffset": "30",
9121
+ "stroke-linecap": "round"
9122
+ }, null, 2),
9123
+ createElementVNode("circle", {
9124
+ class: normalizeClass(unref(Spinner_module_default).spinnerValue),
9125
+ cx: "12",
9126
+ cy: "12",
9127
+ r: "10",
9128
+ fill: "transparent",
9129
+ "stroke-width": "4",
9130
+ "stroke-dasharray": "21 45",
9131
+ "stroke-dashoffset": "30",
9132
+ "stroke-linecap": "round"
9133
+ }, null, 2)
9134
+ ], 6);
9135
+ };
9171
9136
  }
9172
- return {
9173
- currentValue,
9174
- onSelect
9175
- };
9176
- }
9137
+ });
9138
+ var Button_module_default$1 = {
9139
+ button: `button`,
9140
+ isSmall: `is-small`,
9141
+ isMedium: `is-medium`,
9142
+ isLarge: `is-large`,
9143
+ isXl: `is-xl`,
9144
+ isFilled: `is-filled`,
9145
+ spinner: `spinner`,
9146
+ buttonIcon: `button-icon`,
9147
+ buttonLabel: `button-label`,
9148
+ badge: `badge`
9149
+ };
9177
9150
  //#endregion
9178
- //#region src/composable/private/useTreeView.ts
9179
- var FLUX_COLORS = [
9180
- "gray",
9181
- "primary",
9182
- "danger",
9183
- "info",
9184
- "success",
9185
- "warning"
9151
+ //#region src/component/FluxButton.vue?vue&type=script&setup=true&lang.ts
9152
+ var SLOTS = [
9153
+ "default",
9154
+ "after",
9155
+ "before",
9156
+ "iconLeading",
9157
+ "iconTrailing",
9158
+ "label"
9186
9159
  ];
9187
- function flattenVisible(nodes, depth, expanded, parentGuides = []) {
9188
- return nodes.flatMap((node, index) => {
9189
- const isLast = index === nodes.length - 1;
9190
- const flatNode = {
9191
- ...node,
9192
- depth,
9193
- isLast,
9194
- lineGuides: parentGuides
9195
- };
9196
- if (node.children?.length && expanded.has(node.id)) {
9197
- const childGuides = [...parentGuides, !isLast];
9198
- return [flatNode, ...flattenVisible(node.children, depth + 1, expanded, childGuides)];
9199
- }
9200
- return [flatNode];
9201
- });
9202
- }
9203
- function flattenAll(nodes, depth = 0) {
9204
- return nodes.flatMap((node) => [{
9205
- ...node,
9206
- depth,
9207
- isLast: false,
9208
- lineGuides: []
9209
- }, ...node.children ? flattenAll(node.children, depth + 1) : []]);
9210
- }
9211
- function getLevelColor(depth, levelColors) {
9212
- if (!levelColors || depth >= levelColors.length) return;
9213
- const color = levelColors[depth];
9214
- if (FLUX_COLORS.includes(color)) return `var(--${color}-600)`;
9215
- return color;
9216
- }
9217
- function useTreeView(params) {
9218
- const highlightedIndex = ref(-1);
9219
- function toggleExpand(nodeId) {
9220
- const ids = new Set(unref(params.expandedIds));
9221
- if (ids.has(nodeId)) ids.delete(nodeId);
9222
- else ids.add(nodeId);
9223
- params.expandedIds.value = ids;
9224
- }
9225
- function onExpandClick(node, evt) {
9226
- if (!node.children?.length) return;
9227
- evt.stopPropagation();
9228
- toggleExpand(node.id);
9229
- }
9230
- function onKeyNavigate(evt, onActivate) {
9231
- const nodes = unref(params.visibleNodes);
9232
- const current = unref(highlightedIndex);
9233
- switch (evt.key) {
9234
- case "ArrowDown":
9235
- evt.preventDefault();
9236
- highlightedIndex.value = current === -1 ? 0 : Math.min(nodes.length - 1, current + 1);
9237
- return true;
9238
- case "ArrowUp":
9239
- evt.preventDefault();
9240
- highlightedIndex.value = current === -1 ? nodes.length - 1 : Math.max(0, current - 1);
9241
- return true;
9242
- case "ArrowRight":
9243
- evt.preventDefault();
9244
- if (current >= 0) {
9245
- const node = nodes[current];
9246
- if (node.children?.length) {
9247
- if (!unref(params.expandedIds).has(node.id)) toggleExpand(node.id);
9248
- else if (current + 1 < nodes.length && nodes[current + 1].depth > node.depth) highlightedIndex.value = current + 1;
9249
- }
9250
- }
9251
- return true;
9252
- case "ArrowLeft":
9253
- evt.preventDefault();
9254
- if (current >= 0) {
9255
- const node = nodes[current];
9256
- if (node.children?.length && unref(params.expandedIds).has(node.id)) toggleExpand(node.id);
9257
- else if (node.depth > 0) {
9258
- for (let i = current - 1; i >= 0; i--) if (nodes[i].depth === node.depth - 1) {
9259
- highlightedIndex.value = i;
9260
- break;
9261
- }
9262
- }
9263
- }
9264
- return true;
9265
- case "Enter":
9266
- case " ":
9160
+ //#endregion
9161
+ //#region src/component/FluxButton.vue
9162
+ var FluxButton_default = /* @__PURE__ */ defineComponent({
9163
+ __name: "FluxButton",
9164
+ props: {
9165
+ type: { default: "button" },
9166
+ disabled: { type: Boolean },
9167
+ iconLeading: {},
9168
+ iconTrailing: {},
9169
+ isFilled: { type: Boolean },
9170
+ isLoading: { type: Boolean },
9171
+ isSubmit: { type: Boolean },
9172
+ label: {},
9173
+ size: { default: "medium" },
9174
+ tabindex: { default: 0 },
9175
+ href: {},
9176
+ rel: {},
9177
+ target: {},
9178
+ to: {},
9179
+ cssClass: {},
9180
+ cssClassIcon: {},
9181
+ cssClassLabel: {}
9182
+ },
9183
+ emits: [
9184
+ "click",
9185
+ "mouseenter",
9186
+ "mouseleave"
9187
+ ],
9188
+ setup(__props, { emit: __emit }) {
9189
+ const emit = __emit;
9190
+ const disabled = useDisabled_default(toRef(() => __props.disabled));
9191
+ function onClick(evt) {
9192
+ if (unref(disabled) || __props.isLoading) {
9267
9193
  evt.preventDefault();
9268
- if (current >= 0) onActivate(nodes[current]);
9269
- return true;
9270
- default:
9271
- if (evt.key.length === 1) {
9272
- const lowerKey = evt.key.toLowerCase();
9273
- let matchIndex = nodes.findIndex((n, i) => i > current && n.label.toLowerCase().startsWith(lowerKey));
9274
- if (matchIndex < 0) matchIndex = nodes.findIndex((n) => n.label.toLowerCase().startsWith(lowerKey));
9275
- if (matchIndex >= 0) {
9276
- highlightedIndex.value = matchIndex;
9277
- return true;
9278
- }
9279
- }
9280
- return false;
9194
+ evt.stopPropagation();
9195
+ return;
9196
+ }
9197
+ emit("click", evt);
9198
+ }
9199
+ function onMouseEnter(evt) {
9200
+ emit("mouseenter", evt);
9201
+ }
9202
+ function onMouseLeave(evt) {
9203
+ emit("mouseleave", evt);
9281
9204
  }
9205
+ return (_ctx, _cache) => {
9206
+ return openBlock(), createBlock(FluxPressable_default, {
9207
+ "component-type": __props.type,
9208
+ class: normalizeClass(unref(clsx)(__props.cssClass, __props.isFilled && unref(Button_module_default$1).isFilled, __props.size === "small" && unref(Button_module_default$1).isSmall, __props.size === "medium" && unref(Button_module_default$1).isMedium, __props.size === "large" && unref(Button_module_default$1).isLarge, __props.size === "xl" && unref(Button_module_default$1).isXl)),
9209
+ type: __props.isSubmit ? "submit" : "button",
9210
+ "aria-disabled": unref(disabled) ? true : void 0,
9211
+ disabled: unref(disabled) ? true : void 0,
9212
+ tabindex: unref(disabled) ? -1 : __props.tabindex,
9213
+ href: __props.href,
9214
+ rel: __props.rel,
9215
+ target: __props.target,
9216
+ to: __props.to,
9217
+ onClick,
9218
+ onMouseenter: onMouseEnter,
9219
+ onMouseleave: onMouseLeave
9220
+ }, {
9221
+ default: withCtx(() => [
9222
+ renderSlot(_ctx.$slots, "before"),
9223
+ renderSlot(_ctx.$slots, "iconLeading", {}, () => [__props.isLoading && (__props.iconLeading || !__props.iconTrailing) ? (openBlock(), createBlock(FluxSpinner_default, {
9224
+ key: 0,
9225
+ size: 20
9226
+ })) : __props.iconLeading ? (openBlock(), createBlock(FluxIcon_default, {
9227
+ key: 1,
9228
+ class: normalizeClass(__props.cssClassIcon),
9229
+ name: __props.iconLeading
9230
+ }, null, 8, ["class", "name"])) : createCommentVNode("", true)]),
9231
+ renderSlot(_ctx.$slots, "label", {}, () => [__props.label ? (openBlock(), createElementBlock("span", {
9232
+ key: 0,
9233
+ class: normalizeClass(__props.cssClassLabel)
9234
+ }, toDisplayString(__props.label), 3)) : createCommentVNode("", true)]),
9235
+ renderSlot(_ctx.$slots, "iconTrailing", {}, () => [__props.isLoading && !__props.iconLeading && __props.iconTrailing ? (openBlock(), createBlock(FluxSpinner_default, {
9236
+ key: 0,
9237
+ size: 20
9238
+ })) : __props.iconTrailing ? (openBlock(), createBlock(FluxIcon_default, {
9239
+ key: 1,
9240
+ class: normalizeClass(__props.cssClassIcon),
9241
+ name: __props.iconTrailing
9242
+ }, null, 8, ["class", "name"])) : createCommentVNode("", true)]),
9243
+ renderSlot(_ctx.$slots, "after")
9244
+ ]),
9245
+ _: 3
9246
+ }, 8, [
9247
+ "component-type",
9248
+ "class",
9249
+ "type",
9250
+ "aria-disabled",
9251
+ "disabled",
9252
+ "tabindex",
9253
+ "href",
9254
+ "rel",
9255
+ "target",
9256
+ "to"
9257
+ ]);
9258
+ };
9259
+ }
9260
+ });
9261
+ //#endregion
9262
+ //#region src/css/component/Action.module.scss
9263
+ var { "button": _0$15, "buttonIcon": _1$6, "buttonLabel": _2$5 } = Button_module_default$1;
9264
+ var Action_module_default = {
9265
+ action: `action ${_0$15}`,
9266
+ spinner: `spinner`,
9267
+ actionIcon: `action-icon ${_1$6}`,
9268
+ isDestructive: `is-destructive`,
9269
+ actionLabel: `action-label ${_2$5}`,
9270
+ actionBar: `action-bar`,
9271
+ separator: `separator`,
9272
+ formInput: `form-input`,
9273
+ basePaneStructure: `base-pane-structure`,
9274
+ actionPane: `action-pane`,
9275
+ actionPaneGrid: `action-pane-grid`,
9276
+ actionPaneBody: `action-pane-body`,
9277
+ paneBody: `pane-body`
9278
+ };
9279
+ //#endregion
9280
+ //#region src/component/FluxAction.vue
9281
+ var FluxAction_default = /* @__PURE__ */ defineComponent({
9282
+ __name: "FluxAction",
9283
+ props: {
9284
+ type: {},
9285
+ disabled: { type: Boolean },
9286
+ isLoading: { type: Boolean },
9287
+ isSubmit: { type: Boolean },
9288
+ label: {},
9289
+ tabindex: {},
9290
+ href: {},
9291
+ rel: {},
9292
+ target: {},
9293
+ to: {},
9294
+ icon: {},
9295
+ isDestructive: { type: Boolean }
9296
+ },
9297
+ emits: [
9298
+ "click",
9299
+ "mouseenter",
9300
+ "mouseleave"
9301
+ ],
9302
+ setup(__props, { emit: $emit }) {
9303
+ return (_ctx, _cache) => {
9304
+ return openBlock(), createBlock(FluxButton_default, mergeProps({
9305
+ disabled: __props.disabled,
9306
+ isLoading: __props.isLoading,
9307
+ label: __props.label,
9308
+ href: __props.href,
9309
+ rel: __props.rel,
9310
+ target: __props.target,
9311
+ to: __props.to,
9312
+ type: __props.type
9313
+ }, {
9314
+ "css-class": unref(Action_module_default).action,
9315
+ "css-class-icon": unref(Action_module_default).actionIcon,
9316
+ "css-class-label": unref(Action_module_default).actionLabel,
9317
+ class: __props.isDestructive && unref(Action_module_default).isDestructive,
9318
+ "icon-leading": __props.icon,
9319
+ onClick: _cache[0] || (_cache[0] = ($event) => $emit("click", $event)),
9320
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => $emit("mouseenter", $event)),
9321
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => $emit("mouseleave", $event))
9322
+ }), null, 16, [
9323
+ "css-class",
9324
+ "css-class-icon",
9325
+ "css-class-label",
9326
+ "class",
9327
+ "icon-leading"
9328
+ ]);
9329
+ };
9282
9330
  }
9283
- watch(highlightedIndex, (index) => {
9284
- if (index < 0) return;
9285
- nextTick(() => unref(params.nodeElementRefs)?.[index]?.scrollIntoView({ block: "nearest" }));
9286
- });
9287
- watch(params.visibleNodes, (nodes) => {
9288
- if (unref(highlightedIndex) >= nodes.length) highlightedIndex.value = Math.max(-1, nodes.length - 1);
9289
- });
9290
- return {
9291
- highlightedIndex,
9292
- toggleExpand,
9293
- onExpandClick,
9294
- onKeyNavigate
9295
- };
9296
- }
9331
+ });
9297
9332
  //#endregion
9298
9333
  //#region src/css/component/Button.module.scss
9299
- var { "buttonIcon": _0$14, "button": _1$5, "buttonLabel": _2$4 } = Button_module_default$1;
9334
+ var { "button": _0$14, "buttonIcon": _1$5, "buttonLabel": _2$4 } = Button_module_default$1;
9300
9335
  var Button_module_default = {
9301
- primaryButton: `primary-button ${_1$5}`,
9336
+ primaryButton: `primary-button ${_0$14}`,
9302
9337
  spinner: `spinner`,
9303
- primaryButtonIcon: `primary-button-icon ${_0$14}`,
9338
+ primaryButtonIcon: `primary-button-icon ${_1$5}`,
9304
9339
  primaryButtonLabel: `primary-button-label ${_2$4}`,
9305
- secondaryButton: `secondary-button ${_1$5}`,
9306
- secondaryButtonIcon: `secondary-button-icon ${_0$14}`,
9340
+ secondaryButton: `secondary-button ${_0$14}`,
9341
+ secondaryButtonIcon: `secondary-button-icon ${_1$5}`,
9307
9342
  secondaryButtonLabel: `secondary-button-label ${_2$4}`,
9308
- destructiveButton: `destructive-button ${_1$5}`,
9309
- destructiveButtonIcon: `destructive-button-icon ${_0$14}`,
9343
+ destructiveButton: `destructive-button ${_0$14}`,
9344
+ destructiveButtonIcon: `destructive-button-icon ${_1$5}`,
9310
9345
  destructiveButtonLabel: `destructive-button-label ${_2$4}`,
9311
- baseLinkButton: `base-link-button ${_1$5}`,
9312
- primaryLinkButton: `primary-link-button base-link-button ${_1$5}`,
9313
- primaryLinkButtonIcon: `primary-link-button-icon ${_0$14}`,
9346
+ baseLinkButton: `base-link-button ${_0$14}`,
9347
+ primaryLinkButton: `primary-link-button base-link-button ${_0$14}`,
9348
+ primaryLinkButtonIcon: `primary-link-button-icon ${_1$5}`,
9314
9349
  primaryLinkButtonLabel: `primary-link-button-label ${_2$4}`,
9315
- secondaryLinkButton: `secondary-link-button base-link-button ${_1$5}`,
9316
- secondaryLinkButtonIcon: `secondary-link-button-icon ${_0$14}`,
9350
+ secondaryLinkButton: `secondary-link-button base-link-button ${_0$14}`,
9351
+ secondaryLinkButtonIcon: `secondary-link-button-icon ${_1$5}`,
9317
9352
  secondaryLinkButtonLabel: `secondary-link-button-label ${_2$4}`,
9318
- linkButton: `link-button ${_1$5}`,
9319
- linkButtonIcon: `link-button-icon ${_0$14}`,
9353
+ linkButton: `link-button ${_0$14}`,
9354
+ linkButtonIcon: `link-button-icon ${_1$5}`,
9320
9355
  icon: `icon`,
9321
9356
  linkButtonLabel: `link-button-label ${_2$4}`,
9322
- publishButton: `publish-button primary-button ${_1$5}`,
9323
- publishButtonIcon: `publish-button-icon primary-button-icon ${_0$14}`,
9357
+ publishButton: `publish-button primary-button ${_0$14}`,
9358
+ publishButtonIcon: `publish-button-icon primary-button-icon ${_1$5}`,
9324
9359
  publishButtonLabel: `publish-button-label primary-button-label ${_2$4}`,
9325
9360
  publishButtonAnimation: `publish-button-animation`,
9326
9361
  isDone: `is-done`,
@@ -9879,7 +9914,7 @@ var Flyout_module_default = {
9879
9914
  };
9880
9915
  //#endregion
9881
9916
  //#region src/component/FluxFlyout.vue?vue&type=script&setup=true&lang.ts
9882
- var _hoisted_1$60 = ["onKeydown"];
9917
+ var _hoisted_1$61 = ["onKeydown"];
9883
9918
  //#endregion
9884
9919
  //#region src/component/FluxFlyout.vue
9885
9920
  var FluxFlyout_default = /* @__PURE__ */ defineComponent({
@@ -10016,7 +10051,7 @@ var FluxFlyout_default = /* @__PURE__ */ defineComponent({
10016
10051
  openerHeight: openerHeight.value
10017
10052
  })))]),
10018
10053
  _: 3
10019
- }, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$60)], 6);
10054
+ }, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$61)], 6);
10020
10055
  };
10021
10056
  }
10022
10057
  });
@@ -10602,7 +10637,7 @@ var Avatar_module_default = {
10602
10637
  };
10603
10638
  //#endregion
10604
10639
  //#region src/component/FluxAvatar.vue?vue&type=script&setup=true&lang.ts
10605
- var _hoisted_1$59 = ["alt", "src"];
10640
+ var _hoisted_1$60 = ["alt", "src"];
10606
10641
  var _hoisted_2$23 = { key: 0 };
10607
10642
  //#endregion
10608
10643
  //#region src/component/FluxAvatar.vue
@@ -10689,7 +10724,7 @@ var FluxAvatar_default = /* @__PURE__ */ defineComponent({
10689
10724
  class: normalizeClass(unref(Avatar_module_default).avatarImage),
10690
10725
  alt: __props.alt,
10691
10726
  src: __props.src
10692
- }, null, 10, _hoisted_1$59)) : (openBlock(), createElementBlock("div", {
10727
+ }, null, 10, _hoisted_1$60)) : (openBlock(), createElementBlock("div", {
10693
10728
  key: 1,
10694
10729
  class: normalizeClass(__props.fallback === "colorized" ? unref(Avatar_module_default).avatarFallbackColorized : unref(Avatar_module_default).avatarFallbackNeutral)
10695
10730
  }, [__props.fallbackInitials ? (openBlock(), createElementBlock("span", _hoisted_2$23, toDisplayString(__props.fallbackInitials), 1)) : __props.fallbackIcon ? (openBlock(), createBlock(FluxIcon_default, {
@@ -10752,7 +10787,7 @@ var Badge_module_default = {
10752
10787
  };
10753
10788
  //#endregion
10754
10789
  //#region src/component/FluxBadge.vue?vue&type=script&setup=true&lang.ts
10755
- var _hoisted_1$58 = ["aria-label"];
10790
+ var _hoisted_1$59 = ["aria-label"];
10756
10791
  //#endregion
10757
10792
  //#region src/component/FluxBadge.vue
10758
10793
  var FluxBadge_default = /* @__PURE__ */ defineComponent({
@@ -10818,7 +10853,7 @@ var FluxBadge_default = /* @__PURE__ */ defineComponent({
10818
10853
  type: "button",
10819
10854
  "aria-label": unref(translate)("flux.delete"),
10820
10855
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onDeleteClick(), ["stop"]))
10821
- }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$58)) : createCommentVNode("", true)
10856
+ }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$59)) : createCommentVNode("", true)
10822
10857
  ]),
10823
10858
  _: 1
10824
10859
  }, 8, [
@@ -10972,7 +11007,7 @@ var Calendar_module_default = {
10972
11007
  };
10973
11008
  //#endregion
10974
11009
  //#region src/component/calendar/FluxCalendarItemDisplay.vue?vue&type=script&setup=true&lang.ts
10975
- var _hoisted_1$57 = ["draggable", "tabindex"];
11010
+ var _hoisted_1$58 = ["draggable", "tabindex"];
10976
11011
  //#endregion
10977
11012
  //#region src/component/calendar/FluxCalendarItemDisplay.vue
10978
11013
  var FluxCalendarItemDisplay_default = /* @__PURE__ */ defineComponent({
@@ -11045,13 +11080,13 @@ var FluxCalendarItemDisplay_default = /* @__PURE__ */ defineComponent({
11045
11080
  onDragstart: onDragStart,
11046
11081
  onDragend: onDragEnd,
11047
11082
  onKeydown: _cache[0] || (_cache[0] = (...args) => unref(handleKeyDown) && unref(handleKeyDown)(...args))
11048
- }, [createVNode(unref(RenderItemContent), { render: __props.data.renderContent }, null, 8, ["render"])], 42, _hoisted_1$57);
11083
+ }, [createVNode(unref(RenderItemContent), { render: __props.data.renderContent }, null, 8, ["render"])], 42, _hoisted_1$58);
11049
11084
  };
11050
11085
  }
11051
11086
  });
11052
11087
  //#endregion
11053
11088
  //#region src/component/calendar/FluxCalendarMonthView.vue?vue&type=script&setup=true&lang.ts
11054
- var _hoisted_1$56 = [
11089
+ var _hoisted_1$57 = [
11055
11090
  "onDragover",
11056
11091
  "onDragleave",
11057
11092
  "onDrop"
@@ -11126,7 +11161,7 @@ var FluxCalendarMonthView_default = /* @__PURE__ */ defineComponent({
11126
11161
  key: item.id,
11127
11162
  data: item
11128
11163
  }, null, 8, ["data"]);
11129
- }), 128))], 2), createElementVNode("span", { class: normalizeClass(unref(Calendar_module_default).calendarEntryDate) }, toDisplayString(date.toLocaleString({ day: "numeric" })), 3)], 42, _hoisted_1$56);
11164
+ }), 128))], 2), createElementVNode("span", { class: normalizeClass(unref(Calendar_module_default).calendarEntryDate) }, toDisplayString(date.toLocaleString({ day: "numeric" })), 3)], 42, _hoisted_1$57);
11130
11165
  }), 256))], 2))]),
11131
11166
  _: 1
11132
11167
  }, 8, ["is-back"]);
@@ -11135,7 +11170,7 @@ var FluxCalendarMonthView_default = /* @__PURE__ */ defineComponent({
11135
11170
  });
11136
11171
  //#endregion
11137
11172
  //#region src/component/calendar/FluxCalendarTimeGridView.vue?vue&type=script&setup=true&lang.ts
11138
- var _hoisted_1$55 = [
11173
+ var _hoisted_1$56 = [
11139
11174
  "onDragover",
11140
11175
  "onDragleave",
11141
11176
  "onDrop"
@@ -11145,7 +11180,7 @@ var _hoisted_2$22 = [
11145
11180
  "onDragleave",
11146
11181
  "onDrop"
11147
11182
  ];
11148
- var _hoisted_3$8 = ["onMousedown"];
11183
+ var _hoisted_3$7 = ["onMousedown"];
11149
11184
  var _hoisted_4$1 = ["onMousedown"];
11150
11185
  //#endregion
11151
11186
  //#region src/component/calendar/FluxCalendarTimeGridView.vue
@@ -11458,7 +11493,7 @@ var FluxCalendarTimeGridView_default = /* @__PURE__ */ defineComponent({
11458
11493
  key: item.id,
11459
11494
  data: item
11460
11495
  }, null, 8, ["data"]);
11461
- }), 128))], 42, _hoisted_1$55);
11496
+ }), 128))], 42, _hoisted_1$56);
11462
11497
  }), 128))], 2)], 2),
11463
11498
  createElementVNode("div", { class: normalizeClass(unref(Calendar_module_default).timeGridBody) }, [createElementVNode("div", { class: normalizeClass(unref(Calendar_module_default).timeGridHours) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(hours.value, (hour) => {
11464
11499
  return openBlock(), createElementBlock("div", {
@@ -11487,7 +11522,7 @@ var FluxCalendarTimeGridView_default = /* @__PURE__ */ defineComponent({
11487
11522
  }, [createElementVNode("div", { class: normalizeClass(unref(Calendar_module_default).timeGridDayItemBody) }, [createVNode(FluxCalendarItemDisplay_default, { data: positioned.data }, null, 8, ["data"]), __props.draggable && !__props.hasActiveDrag ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createElementVNode("div", {
11488
11523
  class: normalizeClass(unref(clsx)(unref(Calendar_module_default).timeGridDayItemHandle, unref(Calendar_module_default).isTop)),
11489
11524
  onMousedown: (evt) => onResizeStart(positioned, "top", evt)
11490
- }, null, 42, _hoisted_3$8), createElementVNode("div", {
11525
+ }, null, 42, _hoisted_3$7), createElementVNode("div", {
11491
11526
  class: normalizeClass(unref(clsx)(unref(Calendar_module_default).timeGridDayItemHandle, unref(Calendar_module_default).isBottom)),
11492
11527
  onMousedown: (evt) => onResizeStart(positioned, "bottom", evt)
11493
11528
  }, null, 42, _hoisted_4$1)], 64)) : createCommentVNode("", true)], 2)], 6);
@@ -11526,14 +11561,14 @@ var DatePicker_module_default = {
11526
11561
  };
11527
11562
  //#endregion
11528
11563
  //#region src/component/FluxDatePicker.vue?vue&type=script&setup=true&lang.ts
11529
- var _hoisted_1$54 = ["id"];
11564
+ var _hoisted_1$55 = ["id"];
11530
11565
  var _hoisted_2$21 = ["aria-labelledby"];
11531
- var _hoisted_3$7 = ["onClick", "onMouseover"];
11566
+ var _hoisted_3$6 = ["onClick", "onMouseover"];
11532
11567
  //#endregion
11533
11568
  //#region src/component/FluxDatePicker.vue
11534
11569
  var FluxDatePicker_default = /* @__PURE__ */ defineComponent({
11535
11570
  __name: "FluxDatePicker",
11536
- props: /* @__PURE__ */ mergeModels({
11571
+ props: /*@__PURE__*/ mergeModels({
11537
11572
  max: {},
11538
11573
  min: {},
11539
11574
  rangeMode: {}
@@ -11677,7 +11712,7 @@ var FluxDatePicker_default = /* @__PURE__ */ defineComponent({
11677
11712
  class: normalizeClass(unref(DatePicker_module_default).datePickerHeaderViewButton),
11678
11713
  type: "button",
11679
11714
  onClick: _cache[1] || (_cache[1] = ($event) => setView("year"))
11680
- }, toDisplayString(unref(viewYear)), 3)], 10, _hoisted_1$54),
11715
+ }, toDisplayString(unref(viewYear)), 3)], 10, _hoisted_1$55),
11681
11716
  createVNode(unref(FluxFadeTransition_default), null, {
11682
11717
  default: withCtx(() => [viewMode.value === "date" ? (openBlock(), createBlock(FluxSecondaryButton_default, {
11683
11718
  key: 0,
@@ -11714,7 +11749,7 @@ var FluxDatePicker_default = /* @__PURE__ */ defineComponent({
11714
11749
  onClick: ($event) => setDate(date),
11715
11750
  onMouseover: ($event) => onDateMouseOver(date),
11716
11751
  onMouseout: onDateMouseOut
11717
- }, toDisplayString(date.toLocaleString({ day: "numeric" })), 43, _hoisted_3$7);
11752
+ }, toDisplayString(date.toLocaleString({ day: "numeric" })), 43, _hoisted_3$6);
11718
11753
  }), 256))], 2))]),
11719
11754
  _: 1
11720
11755
  }, 8, ["is-back"])], 10, _hoisted_2$21)) : viewMode.value === "month" ? (openBlock(), createElementBlock("div", {
@@ -11788,9 +11823,9 @@ var FluxLayerPane_default = /* @__PURE__ */ defineComponent({
11788
11823
  });
11789
11824
  //#endregion
11790
11825
  //#region src/component/FluxCalendar.vue?vue&type=script&setup=true&lang.ts
11791
- var _hoisted_1$53 = ["aria-label", "onClick"];
11826
+ var _hoisted_1$54 = ["aria-label", "onClick"];
11792
11827
  var _hoisted_2$20 = ["aria-label", "onClick"];
11793
- var _hoisted_3$6 = ["aria-label", "onClick"];
11828
+ var _hoisted_3$5 = ["aria-label", "onClick"];
11794
11829
  var SNAP_MINUTES = 30;
11795
11830
  var NAV_HOVER_INITIAL_DELAY_MS = 700;
11796
11831
  var NAV_HOVER_REPEAT_DELAY_MS = 450;
@@ -11848,9 +11883,9 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
11848
11883
  return "day";
11849
11884
  });
11850
11885
  const timeGridDayCount = computed(() => {
11851
- const v = unref(resolvedView);
11852
- if (v === "week") return 7;
11853
- if (v === "two-days") return 2;
11886
+ const resolved = unref(resolvedView);
11887
+ if (resolved === "week") return 7;
11888
+ if (resolved === "two-days") return 2;
11854
11889
  return 1;
11855
11890
  });
11856
11891
  const { isTransitioningToPast: monthIsTransitioningToPast, viewDate: monthViewDate, viewMonth: monthViewMonth, viewYear: monthViewYear, dates: monthDates, days: monthDays, setViewDate: setMonthViewDateRaw, nextMonth: nextMonthRaw, previousMonth: previousMonthRaw } = _$1(__props.initialDate, { weekDayLength: "long" });
@@ -12005,15 +12040,15 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
12005
12040
  if (id == null) return;
12006
12041
  const currentDate = findItemDate(id);
12007
12042
  if (!currentDate) return;
12008
- const v = unref(resolvedView);
12009
- const delta = (v === "month" ? MONTH_KEY_DELTAS : TIME_GRID_KEY_DELTAS)[direction];
12043
+ const resolved = unref(resolvedView);
12044
+ const delta = (resolved === "month" ? MONTH_KEY_DELTAS : TIME_GRID_KEY_DELTAS)[direction];
12010
12045
  const newDate = currentDate.plus(delta);
12011
12046
  emit("reschedule", {
12012
12047
  id,
12013
12048
  fromDate: currentDate,
12014
12049
  toDate: newDate
12015
12050
  });
12016
- if (v === "month") {
12051
+ if (resolved === "month") {
12017
12052
  monthFocusedDate.value = newDate.startOf("day");
12018
12053
  if (newDate.month !== unref(monthViewDate).month) setMonthViewDateRaw(newDate);
12019
12054
  } else {
@@ -12115,7 +12150,7 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
12115
12150
  "aria-label": unref(translate)("flux.selectMonth"),
12116
12151
  type: "button",
12117
12152
  onClick: open
12118
- }, toDisplayString(unref(monthViewMonth)), 11, _hoisted_1$53)]),
12153
+ }, toDisplayString(unref(monthViewMonth)), 11, _hoisted_1$54)]),
12119
12154
  default: withCtx(({ close }) => [createElementVNode("div", { class: normalizeClass(unref(DatePicker_module_default).datePickerMonths) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(months), (month) => {
12120
12155
  return openBlock(), createBlock(FluxSecondaryButton_default, {
12121
12156
  key: month.label,
@@ -12164,7 +12199,7 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
12164
12199
  "aria-label": unref(translate)("flux.selectDate"),
12165
12200
  type: "button",
12166
12201
  onClick: open
12167
- }, toDisplayString(rangeLabel.value), 11, _hoisted_3$6)]),
12202
+ }, toDisplayString(rangeLabel.value), 11, _hoisted_3$5)]),
12168
12203
  default: withCtx(({ close }) => [createVNode(FluxDatePicker_default, {
12169
12204
  "model-value": datePickerValue.value,
12170
12205
  "onUpdate:modelValue": ($event) => {
@@ -12263,7 +12298,7 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
12263
12298
  });
12264
12299
  //#endregion
12265
12300
  //#region src/component/FluxCalendarItem.vue?vue&type=script&setup=true&lang.ts
12266
- var _hoisted_1$52 = {
12301
+ var _hoisted_1$53 = {
12267
12302
  "aria-hidden": "true",
12268
12303
  style: { "display": "none" }
12269
12304
  };
@@ -12316,7 +12351,7 @@ var FluxCalendarItem_default = /* @__PURE__ */ defineComponent({
12316
12351
  if (dragContext && props.id != null) dragContext.registerItem(props.id, buildData());
12317
12352
  });
12318
12353
  return (_ctx, _cache) => {
12319
- return openBlock(), createElementBlock("span", _hoisted_1$52);
12354
+ return openBlock(), createElementBlock("span", _hoisted_1$53);
12320
12355
  };
12321
12356
  }
12322
12357
  });
@@ -12406,7 +12441,7 @@ var Form_module_default = {
12406
12441
  };
12407
12442
  //#endregion
12408
12443
  //#region src/component/FluxCheckbox.vue?vue&type=script&setup=true&lang.ts
12409
- var _hoisted_1$51 = ["for"];
12444
+ var _hoisted_1$52 = ["for"];
12410
12445
  var _hoisted_2$19 = [
12411
12446
  "id",
12412
12447
  "disabled",
@@ -12418,7 +12453,7 @@ var _hoisted_2$19 = [
12418
12453
  //#region src/component/FluxCheckbox.vue
12419
12454
  var FluxCheckbox_default = /* @__PURE__ */ defineComponent({
12420
12455
  __name: "FluxCheckbox",
12421
- props: /* @__PURE__ */ mergeModels({
12456
+ props: /*@__PURE__*/ mergeModels({
12422
12457
  disabled: { type: Boolean },
12423
12458
  error: {},
12424
12459
  isReadonly: { type: Boolean },
@@ -12479,7 +12514,7 @@ var FluxCheckbox_default = /* @__PURE__ */ defineComponent({
12479
12514
  key: 0,
12480
12515
  class: normalizeClass(unref(Form_module_default).checkboxLabel)
12481
12516
  }, toDisplayString(__props.label), 3)) : createCommentVNode("", true)
12482
- ], 10, _hoisted_1$51);
12517
+ ], 10, _hoisted_1$52);
12483
12518
  };
12484
12519
  }
12485
12520
  });
@@ -12638,7 +12673,7 @@ var FluxCommandPaletteGroup_default = /* @__PURE__ */ defineComponent({
12638
12673
  });
12639
12674
  //#endregion
12640
12675
  //#region src/component/FluxTag.vue?vue&type=script&setup=true&lang.ts
12641
- var _hoisted_1$50 = ["aria-label"];
12676
+ var _hoisted_1$51 = ["aria-label"];
12642
12677
  //#endregion
12643
12678
  //#region src/component/FluxTag.vue
12644
12679
  var FluxTag_default = /* @__PURE__ */ defineComponent({
@@ -12706,7 +12741,7 @@ var FluxTag_default = /* @__PURE__ */ defineComponent({
12706
12741
  type: "button",
12707
12742
  "aria-label": unref(translate)("flux.delete"),
12708
12743
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onDeleteClick(), ["stop"]))
12709
- }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$50)) : createCommentVNode("", true)
12744
+ }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$51)) : createCommentVNode("", true)
12710
12745
  ]),
12711
12746
  _: 1
12712
12747
  }, 8, [
@@ -12768,7 +12803,7 @@ var FluxCommandPaletteItem_default = /* @__PURE__ */ defineComponent({
12768
12803
  });
12769
12804
  //#endregion
12770
12805
  //#region src/component/FluxCommandPalette.vue?vue&type=script&setup=true&lang.ts
12771
- var _hoisted_1$49 = ["placeholder", "value"];
12806
+ var _hoisted_1$50 = ["placeholder", "value"];
12772
12807
  var _hoisted_2$18 = ["onClick"];
12773
12808
  //#endregion
12774
12809
  //#region src/component/FluxCommandPalette.vue
@@ -12896,7 +12931,7 @@ var FluxCommandPalette_default = /* @__PURE__ */ defineComponent({
12896
12931
  value: unref(search),
12897
12932
  type: "text",
12898
12933
  onInput: _cache[2] || (_cache[2] = ($event) => unref(setSearch)($event.target.value))
12899
- }, null, 42, _hoisted_1$49),
12934
+ }, null, 42, _hoisted_1$50),
12900
12935
  createVNode(FluxTag_default, {
12901
12936
  "is-keyboard-shortcut": "",
12902
12937
  label: "Esc"
@@ -13000,7 +13035,7 @@ var Comment_module_default = {
13000
13035
  };
13001
13036
  //#endregion
13002
13037
  //#region src/component/FluxComment.vue?vue&type=script&setup=true&lang.ts
13003
- var _hoisted_1$48 = { key: 0 };
13038
+ var _hoisted_1$49 = { key: 0 };
13004
13039
  var _hoisted_2$17 = ["datetime"];
13005
13040
  //#endregion
13006
13041
  //#region src/component/FluxComment.vue
@@ -13045,7 +13080,7 @@ var FluxComment_default = /* @__PURE__ */ defineComponent({
13045
13080
  key: 0,
13046
13081
  class: normalizeClass(unref(Comment_module_default).commentTyping)
13047
13082
  }, null, 2)) : renderSlot(_ctx.$slots, "default", { key: 1 })], 2),
13048
- createElementVNode("div", { class: normalizeClass(unref(Comment_module_default).commentFooter) }, [__props.isReceived && __props.postedBy ? (openBlock(), createElementBlock("span", _hoisted_1$48, toDisplayString(__props.postedBy), 1)) : createCommentVNode("", true), iso.value && relative.value && !__props.isTyping ? (openBlock(), createElementBlock("time", {
13083
+ createElementVNode("div", { class: normalizeClass(unref(Comment_module_default).commentFooter) }, [__props.isReceived && __props.postedBy ? (openBlock(), createElementBlock("span", _hoisted_1$49, toDisplayString(__props.postedBy), 1)) : createCommentVNode("", true), iso.value && relative.value && !__props.isTyping ? (openBlock(), createElementBlock("time", {
13049
13084
  key: 1,
13050
13085
  datetime: iso.value
13051
13086
  }, toDisplayString(isJustNowVisible.value ? unref(translate)("flux.justNow") : relative.value), 9, _hoisted_2$17)) : createCommentVNode("", true)], 2)
@@ -13053,194 +13088,9 @@ var FluxComment_default = /* @__PURE__ */ defineComponent({
13053
13088
  };
13054
13089
  }
13055
13090
  });
13056
- var Slider_module_default = {
13057
- slider: `slider`,
13058
- isDisabled: `is-disabled`,
13059
- isDragging: `is-dragging`,
13060
- sliderThumb: `slider-thumb`,
13061
- sliderTrack: `slider-track`,
13062
- sliderTrackValue: `slider-track-value`,
13063
- tick: `tick`,
13064
- tickLarge: `tick-large tick`,
13065
- tickSmall: `tick-small tick`,
13066
- ticks: `ticks`
13067
- };
13068
- //#endregion
13069
- //#region src/css/component/primitive/CoordinatePicker.module.scss
13070
- var { "sliderThumb": _0$10 } = Slider_module_default;
13071
- var CoordinatePicker_module_default = {
13072
- coordinatePicker: `coordinate-picker`,
13073
- coordinatePickerThumb: `coordinate-picker-thumb ${_0$10}`,
13074
- isDisabled: `is-disabled`,
13075
- isDragging: `is-dragging`
13076
- };
13077
- //#endregion
13078
- //#region src/component/primitive/CoordinatePickerThumb.vue?vue&type=script&setup=true&lang.ts
13079
- var _hoisted_1$47 = [
13080
- "aria-disabled",
13081
- "aria-valuetext",
13082
- "tabindex"
13083
- ];
13084
- //#endregion
13085
- //#region src/component/primitive/CoordinatePickerThumb.vue
13086
- var CoordinatePickerThumb_default = /* @__PURE__ */ defineComponent({
13087
- __name: "CoordinatePickerThumb",
13088
- props: {
13089
- disabled: { type: Boolean },
13090
- isDragging: { type: Boolean },
13091
- position: {}
13092
- },
13093
- emits: [
13094
- "decrement",
13095
- "grab",
13096
- "increment"
13097
- ],
13098
- setup(__props, { emit: __emit }) {
13099
- const $emit = __emit;
13100
- const emit = __emit;
13101
- const disabled = useDisabled_default(toRef(() => __props.disabled));
13102
- function onKeyDown(evt) {
13103
- if (unref(disabled)) return;
13104
- switch (evt.key) {
13105
- case "ArrowUp":
13106
- emit("decrement", false, true);
13107
- break;
13108
- case "ArrowDown":
13109
- emit("increment", false, true);
13110
- break;
13111
- case "ArrowLeft":
13112
- emit("decrement", true, false);
13113
- break;
13114
- case "ArrowRight":
13115
- emit("increment", true, false);
13116
- break;
13117
- default: return;
13118
- }
13119
- evt.preventDefault();
13120
- }
13121
- return (_ctx, _cache) => {
13122
- return openBlock(), createElementBlock("button", {
13123
- class: normalizeClass(unref(clsx)(unref(CoordinatePicker_module_default).coordinatePickerThumb, unref(disabled) && unref(CoordinatePicker_module_default).isDisabled, __props.isDragging && unref(CoordinatePicker_module_default).isDragging)),
13124
- style: normalizeStyle({
13125
- top: `${__props.position[1] * 100}%`,
13126
- left: `${__props.position[0] * 100}%`
13127
- }),
13128
- role: "slider",
13129
- "aria-disabled": unref(disabled) ? true : void 0,
13130
- "aria-valuetext": `X: ${Math.round(__props.position[0] * 100)}%, Y: ${Math.round(__props.position[1] * 100)}%`,
13131
- tabindex: unref(disabled) ? -1 : 0,
13132
- type: "button",
13133
- onKeydown: onKeyDown,
13134
- onPointerdown: _cache[0] || (_cache[0] = ($event) => $emit("grab", $event))
13135
- }, null, 46, _hoisted_1$47);
13136
- };
13137
- }
13138
- });
13139
- //#endregion
13140
- //#region src/component/primitive/CoordinatePicker.vue?vue&type=script&setup=true&lang.ts
13141
- var _hoisted_1$46 = ["aria-disabled", "aria-label"];
13142
- //#endregion
13143
- //#region src/component/primitive/CoordinatePicker.vue
13144
- var CoordinatePicker_default = /* @__PURE__ */ defineComponent({
13145
- __name: "CoordinatePicker",
13146
- props: /* @__PURE__ */ mergeModels({
13147
- ariaLabel: {},
13148
- disabled: { type: Boolean },
13149
- max: { default: 100 },
13150
- min: { default: 0 },
13151
- step: { default: 1 }
13152
- }, {
13153
- "modelValue": { default: [0, 0] },
13154
- "modelModifiers": {}
13155
- }),
13156
- emits: /* @__PURE__ */ mergeModels(["dragging"], ["update:modelValue"]),
13157
- setup(__props, { emit: __emit }) {
13158
- const emit = __emit;
13159
- const modelValue = useModel(__props, "modelValue");
13160
- const disabled = useDisabled_default(toRef(() => __props.disabled));
13161
- const rootRef = useTemplateRef("root");
13162
- const isDragging = ref(false);
13163
- const max = computed(() => Array.isArray(__props.max) ? __props.max : [__props.max, __props.max]);
13164
- const min = computed(() => Array.isArray(__props.min) ? __props.min : [__props.min, __props.min]);
13165
- const step = computed(() => Array.isArray(__props.step) ? __props.step : [__props.step, __props.step]);
13166
- const thumbPosition = computed(() => [(unref(modelValue)[0] - unref(min)[0]) / (unref(max)[0] - unref(min)[0]), (unref(modelValue)[1] - unref(min)[1]) / (unref(max)[1] - unref(min)[1])]);
13167
- function onDecrement(x, y) {
13168
- if (unref(disabled)) return;
13169
- let [valueX, valueY] = unref(modelValue);
13170
- const [maxX, maxY] = unref(max);
13171
- const [minX, minY] = unref(min);
13172
- const [stepX, stepY] = unref(step);
13173
- if (x) valueX = +t$1(Math.max(minX, Math.min(maxX, valueX - stepX)), stepX).toPrecision(4);
13174
- if (y) valueY = +t$1(Math.max(minY, Math.min(maxY, valueY - stepY)), stepY).toPrecision(4);
13175
- modelValue.value = [valueX, valueY];
13176
- }
13177
- function onIncrement(x, y) {
13178
- if (unref(disabled)) return;
13179
- let [valueX, valueY] = unref(modelValue);
13180
- const [maxX, maxY] = unref(max);
13181
- const [minX, minY] = unref(min);
13182
- const [stepX, stepY] = unref(step);
13183
- if (x) valueX = +t$1(Math.max(minX, Math.min(maxX, valueX + stepX)), stepX).toPrecision(4);
13184
- if (y) valueY = +t$1(Math.max(minY, Math.min(maxY, valueY + stepY)), stepY).toPrecision(4);
13185
- modelValue.value = [valueX, valueY];
13186
- }
13187
- function onPointerDown(evt) {
13188
- if (unref(disabled)) return;
13189
- isDragging.value = true;
13190
- document.addEventListener("pointermove", onPointerMove);
13191
- document.addEventListener("pointerup", onPointerUp, { passive: true });
13192
- requestAnimationFrame(() => onPointerMove(evt));
13193
- }
13194
- function onPointerMove(evt) {
13195
- const root = _$2(rootRef);
13196
- if (!unref(isDragging) || !root) return;
13197
- const [maxX, maxY] = unref(max);
13198
- const [minX, minY] = unref(min);
13199
- const [stepX, stepY] = unref(step);
13200
- let { top, left, width, height } = root.getBoundingClientRect();
13201
- top += 6;
13202
- left += 6;
13203
- width -= 12;
13204
- height -= 12;
13205
- const x = Math.max(0, Math.min(1, (evt.clientX - left) / width));
13206
- const y = Math.max(0, Math.min(1, (evt.clientY - top) / height));
13207
- modelValue.value = [+t$1(x * (maxX - minX) + minX, stepX).toPrecision(4), +t$1(y * (maxY - minY) + minY, stepY).toPrecision(4)];
13208
- evt.preventDefault();
13209
- }
13210
- function onPointerUp() {
13211
- isDragging.value = false;
13212
- document.removeEventListener("pointermove", onPointerMove);
13213
- document.removeEventListener("pointerup", onPointerUp);
13214
- }
13215
- watch(isDragging, (isDragging) => emit("dragging", isDragging));
13216
- onUnmounted(() => {
13217
- document.removeEventListener("pointermove", onPointerMove);
13218
- document.removeEventListener("pointerup", onPointerUp);
13219
- });
13220
- return (_ctx, _cache) => {
13221
- return openBlock(), createElementBlock("div", {
13222
- ref: "root",
13223
- class: normalizeClass(unref(CoordinatePicker_module_default).coordinatePicker),
13224
- "aria-disabled": unref(disabled) ? true : void 0,
13225
- "aria-label": __props.ariaLabel,
13226
- onPointerdown: onPointerDown
13227
- }, [createVNode(CoordinatePickerThumb_default, {
13228
- disabled: unref(disabled),
13229
- "is-dragging": isDragging.value,
13230
- position: thumbPosition.value,
13231
- onDecrement,
13232
- onIncrement
13233
- }, null, 8, [
13234
- "disabled",
13235
- "is-dragging",
13236
- "position"
13237
- ])], 42, _hoisted_1$46);
13238
- };
13239
- }
13240
- });
13241
13091
  //#endregion
13242
13092
  //#region src/component/FluxFormFieldAddition.vue?vue&type=script&setup=true&lang.ts
13243
- var _hoisted_1$45 = { key: 1 };
13093
+ var _hoisted_1$48 = { key: 1 };
13244
13094
  //#endregion
13245
13095
  //#region src/component/FluxFormFieldAddition.vue
13246
13096
  var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
@@ -13262,7 +13112,7 @@ var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
13262
13112
  name: __props.icon,
13263
13113
  size: 16
13264
13114
  }, null, 8, ["class", "name"])) : createCommentVNode("", true),
13265
- __props.message ? (openBlock(), createElementBlock("span", _hoisted_1$45, toDisplayString(__props.message), 1)) : createCommentVNode("", true),
13115
+ __props.message ? (openBlock(), createElementBlock("span", _hoisted_1$48, toDisplayString(__props.message), 1)) : createCommentVNode("", true),
13266
13116
  renderSlot(_ctx.$slots, "default")
13267
13117
  ], 2);
13268
13118
  };
@@ -13270,7 +13120,7 @@ var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
13270
13120
  });
13271
13121
  //#endregion
13272
13122
  //#region src/component/FluxFormField.vue?vue&type=script&setup=true&lang.ts
13273
- var _hoisted_1$44 = ["for"];
13123
+ var _hoisted_1$47 = ["for"];
13274
13124
  //#endregion
13275
13125
  //#region src/component/FluxFormField.vue
13276
13126
  var FluxFormField_default = /* @__PURE__ */ defineComponent({
@@ -13294,13 +13144,16 @@ var FluxFormField_default = /* @__PURE__ */ defineComponent({
13294
13144
  for: unref(id),
13295
13145
  class: normalizeClass(unref(Form_module_default).formFieldHeader)
13296
13146
  }, [
13297
- createElementVNode("span", { class: normalizeClass(unref(Form_module_default).formFieldLabel) }, toDisplayString(__props.label), 3),
13298
- __props.isOptional ? (openBlock(), createElementBlock("span", {
13147
+ __props.label ? (openBlock(), createElementBlock("span", {
13299
13148
  key: 0,
13149
+ class: normalizeClass(unref(Form_module_default).formFieldLabel)
13150
+ }, toDisplayString(__props.label), 3)) : createCommentVNode("", true),
13151
+ __props.isOptional ? (openBlock(), createElementBlock("span", {
13152
+ key: 1,
13300
13153
  class: normalizeClass(unref(Form_module_default).formFieldOptional)
13301
13154
  }, " (" + toDisplayString(unref(translate)("flux.optional")) + ") ", 3)) : createCommentVNode("", true),
13302
13155
  "value" in slots ? (openBlock(), createElementBlock("span", {
13303
- key: 1,
13156
+ key: 2,
13304
13157
  class: normalizeClass(unref(Form_module_default).formFieldValue)
13305
13158
  }, [renderSlot(_ctx.$slots, "value", normalizeProps(guardReactiveProps({
13306
13159
  currentLength: __props.currentLength,
@@ -13311,7 +13164,7 @@ var FluxFormField_default = /* @__PURE__ */ defineComponent({
13311
13164
  label: __props.label,
13312
13165
  maxLength: __props.maxLength
13313
13166
  })))], 2)) : createCommentVNode("", true)
13314
- ], 10, _hoisted_1$44),
13167
+ ], 10, _hoisted_1$47),
13315
13168
  renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ id: unref(id) }))),
13316
13169
  __props.currentLength && __props.maxLength && __props.maxLength > 0 ? (openBlock(), createElementBlock("span", {
13317
13170
  key: 0,
@@ -13343,7 +13196,7 @@ var FluxFormField_default = /* @__PURE__ */ defineComponent({
13343
13196
  });
13344
13197
  //#endregion
13345
13198
  //#region src/component/FluxFormInput.vue?vue&type=script&setup=true&lang.ts
13346
- var _hoisted_1$43 = ["aria-disabled"];
13199
+ var _hoisted_1$46 = ["aria-disabled"];
13347
13200
  var _hoisted_2$16 = [
13348
13201
  "id",
13349
13202
  "name",
@@ -13365,7 +13218,7 @@ var _hoisted_2$16 = [
13365
13218
  //#region src/component/FluxFormInput.vue
13366
13219
  var FluxFormInput_default = /* @__PURE__ */ defineComponent({
13367
13220
  __name: "FluxFormInput",
13368
- props: /* @__PURE__ */ mergeModels({
13221
+ props: /*@__PURE__*/ mergeModels({
13369
13222
  autoFocus: {
13370
13223
  type: Boolean,
13371
13224
  default: false
@@ -13391,7 +13244,7 @@ var FluxFormInput_default = /* @__PURE__ */ defineComponent({
13391
13244
  "modelValue": { default: "" },
13392
13245
  "modelModifiers": {}
13393
13246
  }),
13394
- emits: /* @__PURE__ */ mergeModels([
13247
+ emits: /*@__PURE__*/ mergeModels([
13395
13248
  "blur",
13396
13249
  "focus",
13397
13250
  "showPicker"
@@ -13547,7 +13400,7 @@ var FluxFormInput_default = /* @__PURE__ */ defineComponent({
13547
13400
  class: normalizeClass(unref(Form_module_default).formInputIconTrailing),
13548
13401
  size: 18
13549
13402
  }, null, 8, ["class"])) : createCommentVNode("", true)
13550
- ], 10, _hoisted_1$43);
13403
+ ], 10, _hoisted_1$46);
13551
13404
  };
13552
13405
  }
13553
13406
  });
@@ -13718,7 +13571,7 @@ var FluxPaneFooter_default = /* @__PURE__ */ defineComponent({
13718
13571
  });
13719
13572
  //#endregion
13720
13573
  //#region src/component/FluxPaneHeader.vue?vue&type=script&setup=true&lang.ts
13721
- var _hoisted_1$42 = { key: 0 };
13574
+ var _hoisted_1$45 = { key: 0 };
13722
13575
  var _hoisted_2$15 = { key: 1 };
13723
13576
  //#endregion
13724
13577
  //#region src/component/FluxPaneHeader.vue
@@ -13742,7 +13595,7 @@ var FluxPaneHeader_default = /* @__PURE__ */ defineComponent({
13742
13595
  __props.title || __props.subtitle ? (openBlock(), createElementBlock("div", {
13743
13596
  key: 1,
13744
13597
  class: normalizeClass(unref(Pane_module_default).paneHeaderCaption)
13745
- }, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$42, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_2$15, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
13598
+ }, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$45, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_2$15, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
13746
13599
  renderSlot(_ctx.$slots, "after")
13747
13600
  ], 2);
13748
13601
  };
@@ -13765,10 +13618,10 @@ var DialogLayout_default = /* @__PURE__ */ defineComponent({
13765
13618
  icon: __props.icon,
13766
13619
  title: __props.title
13767
13620
  }, null, 8, ["icon", "title"]),
13768
- __props.message ? (openBlock(), createBlock(FluxPaneBody_default, {
13769
- key: 0,
13770
- innerHTML: __props.message
13771
- }, null, 8, ["innerHTML"])) : createCommentVNode("", true),
13621
+ __props.message ? (openBlock(), createBlock(FluxPaneBody_default, { key: 0 }, {
13622
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.message), 1)]),
13623
+ _: 1
13624
+ })) : createCommentVNode("", true),
13772
13625
  $slots.default ? (openBlock(), createBlock(FluxPaneBody_default, { key: 1 }, {
13773
13626
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
13774
13627
  _: 3
@@ -13830,8 +13683,13 @@ var FilterBadge_default = /* @__PURE__ */ defineComponent({
13830
13683
  function onClick(evt) {
13831
13684
  emit("click", evt);
13832
13685
  }
13833
- watch([() => __props.item, () => __props.value], async () => {
13834
- valueLabel.value = await unref(getValueLabel)(__props.value) ?? void 0;
13686
+ watch([() => __props.item, () => __props.value], async ([, nextValue], _prev, onCleanup) => {
13687
+ let cancelled = false;
13688
+ onCleanup(() => {
13689
+ cancelled = true;
13690
+ });
13691
+ const nextLabel = await unref(getValueLabel)(nextValue);
13692
+ if (!cancelled) valueLabel.value = nextLabel ?? void 0;
13835
13693
  }, {
13836
13694
  deep: true,
13837
13695
  immediate: true
@@ -13853,7 +13711,7 @@ var FilterBadge_default = /* @__PURE__ */ defineComponent({
13853
13711
  });
13854
13712
  //#endregion
13855
13713
  //#region src/css/component/Menu.module.scss
13856
- var { "buttonIcon": _0$9, "button": _1$3, "buttonLabel": _2$2 } = Button_module_default$1;
13714
+ var { "buttonIcon": _0$10, "button": _1$3, "buttonLabel": _2$2 } = Button_module_default$1;
13857
13715
  var Menu_module_default = {
13858
13716
  menu: `menu`,
13859
13717
  menuNormal: `menu-normal menu`,
@@ -13863,7 +13721,7 @@ var Menu_module_default = {
13863
13721
  menuGroupVertical: `menu-group-vertical menu-group`,
13864
13722
  menuItem: `menu-item ${_1$3}`,
13865
13723
  badge: `badge`,
13866
- menuItemIcon: `menu-item-icon ${_0$9}`,
13724
+ menuItemIcon: `menu-item-icon ${_0$10}`,
13867
13725
  menuItemLabel: `menu-item-label ${_2$2}`,
13868
13726
  menuItemActive: `menu-item-active`,
13869
13727
  menuItemDestructive: `menu-item-destructive`,
@@ -13873,7 +13731,7 @@ var Menu_module_default = {
13873
13731
  menuCollapsibleOpened: `menu-collapsible-opened menu-collapsible`,
13874
13732
  menuCollapsibleBody: `menu-collapsible-body`,
13875
13733
  menuCollapsibleContent: `menu-collapsible-content`,
13876
- menuItemSelectableIcon: `menu-item-selectable-icon ${_0$9}`,
13734
+ menuItemSelectableIcon: `menu-item-selectable-icon ${_0$10}`,
13877
13735
  menuItemSelected: `menu-item-selected`,
13878
13736
  menuItemCommand: `menu-item-command`,
13879
13737
  menuItemCommandIcon: `menu-item-command-icon`,
@@ -13905,7 +13763,7 @@ var FluxMenuGroup_default = /* @__PURE__ */ defineComponent({
13905
13763
  });
13906
13764
  //#endregion
13907
13765
  //#region src/component/FluxMenuItem.vue?vue&type=script&setup=true&lang.ts
13908
- var _hoisted_1$41 = ["src", "alt"];
13766
+ var _hoisted_1$44 = ["src", "alt"];
13909
13767
  //#endregion
13910
13768
  //#region src/component/FluxMenuItem.vue
13911
13769
  var FluxMenuItem_default = /* @__PURE__ */ defineComponent({
@@ -13982,7 +13840,7 @@ var FluxMenuItem_default = /* @__PURE__ */ defineComponent({
13982
13840
  class: normalizeClass(unref(Menu_module_default).menuItemImage),
13983
13841
  src: __props.imageSrc,
13984
13842
  alt: __props.imageAlt ?? ""
13985
- }, null, 10, _hoisted_1$41)]),
13843
+ }, null, 10, _hoisted_1$44)]),
13986
13844
  key: "1"
13987
13845
  } : slots.before ? {
13988
13846
  name: "iconLeading",
@@ -14049,7 +13907,7 @@ var FluxMenuSubHeader_default = /* @__PURE__ */ defineComponent({
14049
13907
  //#region src/component/primitive/FilterOptionBase.vue
14050
13908
  var FilterOptionBase_default = /* @__PURE__ */ defineComponent({
14051
13909
  __name: "FilterOptionBase",
14052
- props: /* @__PURE__ */ mergeModels({
13910
+ props: /*@__PURE__*/ mergeModels({
14053
13911
  isLoading: { type: Boolean },
14054
13912
  isSearchable: { type: Boolean },
14055
13913
  options: {},
@@ -14059,7 +13917,7 @@ var FilterOptionBase_default = /* @__PURE__ */ defineComponent({
14059
13917
  "searchQuery": { default: "" },
14060
13918
  "searchQueryModifiers": {}
14061
13919
  }),
14062
- emits: /* @__PURE__ */ mergeModels(["select"], ["update:searchQuery"]),
13920
+ emits: /*@__PURE__*/ mergeModels(["select"], ["update:searchQuery"]),
14063
13921
  setup(__props, { emit: __emit }) {
14064
13922
  const emit = __emit;
14065
13923
  const modelSearch = useModel(__props, "searchQuery");
@@ -14129,7 +13987,7 @@ var INITIAL_HIGHLIGHTED_INDEX = -1;
14129
13987
  var SelectBase_default = /* @__PURE__ */ defineComponent({
14130
13988
  inheritAttrs: false,
14131
13989
  __name: "SelectBase",
14132
- props: /* @__PURE__ */ mergeModels({
13990
+ props: /*@__PURE__*/ mergeModels({
14133
13991
  disabled: { type: Boolean },
14134
13992
  isLoading: { type: Boolean },
14135
13993
  isMultiple: { type: Boolean },
@@ -14141,7 +13999,7 @@ var SelectBase_default = /* @__PURE__ */ defineComponent({
14141
13999
  "searchQuery": { default: "" },
14142
14000
  "searchQueryModifiers": {}
14143
14001
  }),
14144
- emits: /* @__PURE__ */ mergeModels([
14002
+ emits: /*@__PURE__*/ mergeModels([
14145
14003
  "keyDown",
14146
14004
  "deselect",
14147
14005
  "select",
@@ -14388,6 +14246,18 @@ var SelectBase_default = /* @__PURE__ */ defineComponent({
14388
14246
  };
14389
14247
  }
14390
14248
  });
14249
+ var Slider_module_default = {
14250
+ slider: `slider`,
14251
+ isDisabled: `is-disabled`,
14252
+ isDragging: `is-dragging`,
14253
+ sliderThumb: `slider-thumb`,
14254
+ sliderTrack: `slider-track`,
14255
+ sliderTrackValue: `slider-track-value`,
14256
+ tick: `tick`,
14257
+ tickLarge: `tick-large tick`,
14258
+ tickSmall: `tick-small tick`,
14259
+ ticks: `ticks`
14260
+ };
14391
14261
  //#endregion
14392
14262
  //#region src/component/FluxTicks.vue
14393
14263
  var FluxTicks_default = /* @__PURE__ */ defineComponent({
@@ -14418,7 +14288,7 @@ var FluxTicks_default = /* @__PURE__ */ defineComponent({
14418
14288
  });
14419
14289
  //#endregion
14420
14290
  //#region src/component/primitive/SliderBase.vue?vue&type=script&setup=true&lang.ts
14421
- var _hoisted_1$40 = ["aria-disabled"];
14291
+ var _hoisted_1$43 = ["aria-disabled"];
14422
14292
  //#endregion
14423
14293
  //#region src/component/primitive/SliderBase.vue
14424
14294
  var SliderBase_default = /* @__PURE__ */ defineComponent({
@@ -14471,13 +14341,13 @@ var SliderBase_default = /* @__PURE__ */ defineComponent({
14471
14341
  key: 0,
14472
14342
  lower: __props.min,
14473
14343
  upper: __props.max
14474
- }, null, 8, ["lower", "upper"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$40);
14344
+ }, null, 8, ["lower", "upper"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$43);
14475
14345
  };
14476
14346
  }
14477
14347
  });
14478
14348
  //#endregion
14479
14349
  //#region src/component/primitive/SliderThumb.vue?vue&type=script&setup=true&lang.ts
14480
- var _hoisted_1$39 = [
14350
+ var _hoisted_1$42 = [
14481
14351
  "aria-disabled",
14482
14352
  "aria-label",
14483
14353
  "aria-valuemax",
@@ -14536,7 +14406,7 @@ var SliderThumb_default = /* @__PURE__ */ defineComponent({
14536
14406
  type: "button",
14537
14407
  onKeydown: onKeyDown,
14538
14408
  onPointerdown: _cache[0] || (_cache[0] = ($event) => $emit("grab", $event))
14539
- }, null, 46, _hoisted_1$39);
14409
+ }, null, 46, _hoisted_1$42);
14540
14410
  };
14541
14411
  }
14542
14412
  });
@@ -14641,7 +14511,7 @@ var Divider_module_default = {
14641
14511
  };
14642
14512
  //#endregion
14643
14513
  //#region src/component/FluxSeparator.vue?vue&type=script&setup=true&lang.ts
14644
- var _hoisted_1$38 = ["aria-orientation"];
14514
+ var _hoisted_1$41 = ["aria-orientation"];
14645
14515
  //#endregion
14646
14516
  //#region src/component/FluxSeparator.vue
14647
14517
  var FluxSeparator_default = /* @__PURE__ */ defineComponent({
@@ -14653,7 +14523,7 @@ var FluxSeparator_default = /* @__PURE__ */ defineComponent({
14653
14523
  class: normalizeClass(__props.direction === "horizontal" ? unref(Divider_module_default).separatorHorizontal : unref(Divider_module_default).separatorVertical),
14654
14524
  role: "separator",
14655
14525
  "aria-orientation": __props.direction
14656
- }, null, 10, _hoisted_1$38);
14526
+ }, null, 10, _hoisted_1$41);
14657
14527
  };
14658
14528
  }
14659
14529
  });
@@ -14760,7 +14630,7 @@ var VNodeRenderer = defineComponent({
14760
14630
  //#region src/component/FluxFormSlider.vue
14761
14631
  var FluxFormSlider_default = /* @__PURE__ */ defineComponent({
14762
14632
  __name: "FluxFormSlider",
14763
- props: /* @__PURE__ */ mergeModels({
14633
+ props: /*@__PURE__*/ mergeModels({
14764
14634
  disabled: {
14765
14635
  type: Boolean,
14766
14636
  default: false
@@ -14887,6 +14757,179 @@ var FluxFormSlider_default = /* @__PURE__ */ defineComponent({
14887
14757
  };
14888
14758
  }
14889
14759
  });
14760
+ //#endregion
14761
+ //#region src/css/component/primitive/CoordinatePicker.module.scss
14762
+ var { "sliderThumb": _0$9 } = Slider_module_default;
14763
+ var CoordinatePicker_module_default = {
14764
+ coordinatePicker: `coordinate-picker`,
14765
+ coordinatePickerThumb: `coordinate-picker-thumb ${_0$9}`,
14766
+ isDisabled: `is-disabled`,
14767
+ isDragging: `is-dragging`
14768
+ };
14769
+ //#endregion
14770
+ //#region src/component/primitive/CoordinatePickerThumb.vue?vue&type=script&setup=true&lang.ts
14771
+ var _hoisted_1$40 = [
14772
+ "aria-disabled",
14773
+ "aria-valuetext",
14774
+ "tabindex"
14775
+ ];
14776
+ //#endregion
14777
+ //#region src/component/primitive/CoordinatePickerThumb.vue
14778
+ var CoordinatePickerThumb_default = /* @__PURE__ */ defineComponent({
14779
+ __name: "CoordinatePickerThumb",
14780
+ props: {
14781
+ disabled: { type: Boolean },
14782
+ isDragging: { type: Boolean },
14783
+ position: {}
14784
+ },
14785
+ emits: [
14786
+ "decrement",
14787
+ "grab",
14788
+ "increment"
14789
+ ],
14790
+ setup(__props, { emit: __emit }) {
14791
+ const $emit = __emit;
14792
+ const emit = __emit;
14793
+ const disabled = useDisabled_default(toRef(() => __props.disabled));
14794
+ function onKeyDown(evt) {
14795
+ if (unref(disabled)) return;
14796
+ switch (evt.key) {
14797
+ case "ArrowUp":
14798
+ emit("decrement", false, true);
14799
+ break;
14800
+ case "ArrowDown":
14801
+ emit("increment", false, true);
14802
+ break;
14803
+ case "ArrowLeft":
14804
+ emit("decrement", true, false);
14805
+ break;
14806
+ case "ArrowRight":
14807
+ emit("increment", true, false);
14808
+ break;
14809
+ default: return;
14810
+ }
14811
+ evt.preventDefault();
14812
+ }
14813
+ return (_ctx, _cache) => {
14814
+ return openBlock(), createElementBlock("button", {
14815
+ class: normalizeClass(unref(clsx)(unref(CoordinatePicker_module_default).coordinatePickerThumb, unref(disabled) && unref(CoordinatePicker_module_default).isDisabled, __props.isDragging && unref(CoordinatePicker_module_default).isDragging)),
14816
+ style: normalizeStyle({
14817
+ top: `${__props.position[1] * 100}%`,
14818
+ left: `${__props.position[0] * 100}%`
14819
+ }),
14820
+ role: "slider",
14821
+ "aria-disabled": unref(disabled) ? true : void 0,
14822
+ "aria-valuetext": `X: ${Math.round(__props.position[0] * 100)}%, Y: ${Math.round(__props.position[1] * 100)}%`,
14823
+ tabindex: unref(disabled) ? -1 : 0,
14824
+ type: "button",
14825
+ onKeydown: onKeyDown,
14826
+ onPointerdown: _cache[0] || (_cache[0] = ($event) => $emit("grab", $event))
14827
+ }, null, 46, _hoisted_1$40);
14828
+ };
14829
+ }
14830
+ });
14831
+ //#endregion
14832
+ //#region src/component/primitive/CoordinatePicker.vue?vue&type=script&setup=true&lang.ts
14833
+ var _hoisted_1$39 = ["aria-disabled", "aria-label"];
14834
+ //#endregion
14835
+ //#region src/component/primitive/CoordinatePicker.vue
14836
+ var CoordinatePicker_default = /* @__PURE__ */ defineComponent({
14837
+ __name: "CoordinatePicker",
14838
+ props: /*@__PURE__*/ mergeModels({
14839
+ ariaLabel: {},
14840
+ disabled: { type: Boolean },
14841
+ max: { default: 100 },
14842
+ min: { default: 0 },
14843
+ step: { default: 1 }
14844
+ }, {
14845
+ "modelValue": { default: [0, 0] },
14846
+ "modelModifiers": {}
14847
+ }),
14848
+ emits: /*@__PURE__*/ mergeModels(["dragging"], ["update:modelValue"]),
14849
+ setup(__props, { emit: __emit }) {
14850
+ const emit = __emit;
14851
+ const modelValue = useModel(__props, "modelValue");
14852
+ const disabled = useDisabled_default(toRef(() => __props.disabled));
14853
+ const rootRef = useTemplateRef("root");
14854
+ const isDragging = ref(false);
14855
+ const max = computed(() => Array.isArray(__props.max) ? __props.max : [__props.max, __props.max]);
14856
+ const min = computed(() => Array.isArray(__props.min) ? __props.min : [__props.min, __props.min]);
14857
+ const step = computed(() => Array.isArray(__props.step) ? __props.step : [__props.step, __props.step]);
14858
+ const thumbPosition = computed(() => [(unref(modelValue)[0] - unref(min)[0]) / (unref(max)[0] - unref(min)[0]), (unref(modelValue)[1] - unref(min)[1]) / (unref(max)[1] - unref(min)[1])]);
14859
+ function onDecrement(x, y) {
14860
+ if (unref(disabled)) return;
14861
+ let [valueX, valueY] = unref(modelValue);
14862
+ const [maxX, maxY] = unref(max);
14863
+ const [minX, minY] = unref(min);
14864
+ const [stepX, stepY] = unref(step);
14865
+ if (x) valueX = +t$1(Math.max(minX, Math.min(maxX, valueX - stepX)), stepX).toPrecision(4);
14866
+ if (y) valueY = +t$1(Math.max(minY, Math.min(maxY, valueY - stepY)), stepY).toPrecision(4);
14867
+ modelValue.value = [valueX, valueY];
14868
+ }
14869
+ function onIncrement(x, y) {
14870
+ if (unref(disabled)) return;
14871
+ let [valueX, valueY] = unref(modelValue);
14872
+ const [maxX, maxY] = unref(max);
14873
+ const [minX, minY] = unref(min);
14874
+ const [stepX, stepY] = unref(step);
14875
+ if (x) valueX = +t$1(Math.max(minX, Math.min(maxX, valueX + stepX)), stepX).toPrecision(4);
14876
+ if (y) valueY = +t$1(Math.max(minY, Math.min(maxY, valueY + stepY)), stepY).toPrecision(4);
14877
+ modelValue.value = [valueX, valueY];
14878
+ }
14879
+ function onPointerDown(evt) {
14880
+ if (unref(disabled)) return;
14881
+ isDragging.value = true;
14882
+ document.addEventListener("pointermove", onPointerMove);
14883
+ document.addEventListener("pointerup", onPointerUp, { passive: true });
14884
+ requestAnimationFrame(() => onPointerMove(evt));
14885
+ }
14886
+ function onPointerMove(evt) {
14887
+ const root = _$2(rootRef);
14888
+ if (!unref(isDragging) || !root) return;
14889
+ const [maxX, maxY] = unref(max);
14890
+ const [minX, minY] = unref(min);
14891
+ const [stepX, stepY] = unref(step);
14892
+ let { top, left, width, height } = root.getBoundingClientRect();
14893
+ top += 6;
14894
+ left += 6;
14895
+ width -= 12;
14896
+ height -= 12;
14897
+ const x = Math.max(0, Math.min(1, (evt.clientX - left) / width));
14898
+ const y = Math.max(0, Math.min(1, (evt.clientY - top) / height));
14899
+ modelValue.value = [+t$1(x * (maxX - minX) + minX, stepX).toPrecision(4), +t$1(y * (maxY - minY) + minY, stepY).toPrecision(4)];
14900
+ evt.preventDefault();
14901
+ }
14902
+ function onPointerUp() {
14903
+ isDragging.value = false;
14904
+ document.removeEventListener("pointermove", onPointerMove);
14905
+ document.removeEventListener("pointerup", onPointerUp);
14906
+ }
14907
+ watch(isDragging, (isDragging) => emit("dragging", isDragging));
14908
+ onUnmounted(() => {
14909
+ document.removeEventListener("pointermove", onPointerMove);
14910
+ document.removeEventListener("pointerup", onPointerUp);
14911
+ });
14912
+ return (_ctx, _cache) => {
14913
+ return openBlock(), createElementBlock("div", {
14914
+ ref: "root",
14915
+ class: normalizeClass(unref(CoordinatePicker_module_default).coordinatePicker),
14916
+ "aria-disabled": unref(disabled) ? true : void 0,
14917
+ "aria-label": __props.ariaLabel,
14918
+ onPointerdown: onPointerDown
14919
+ }, [createVNode(CoordinatePickerThumb_default, {
14920
+ disabled: unref(disabled),
14921
+ "is-dragging": isDragging.value,
14922
+ position: thumbPosition.value,
14923
+ onDecrement,
14924
+ onIncrement
14925
+ }, null, 8, [
14926
+ "disabled",
14927
+ "is-dragging",
14928
+ "position"
14929
+ ])], 42, _hoisted_1$39);
14930
+ };
14931
+ }
14932
+ });
14890
14933
  var Color_module_default = {
14891
14934
  colorPicker: `color-picker`,
14892
14935
  colorPickerPreview: `color-picker-preview`,
@@ -14915,7 +14958,7 @@ var Color_module_default = {
14915
14958
  //#region src/component/FluxColorPicker.vue
14916
14959
  var FluxColorPicker_default = /* @__PURE__ */ defineComponent({
14917
14960
  __name: "FluxColorPicker",
14918
- props: /* @__PURE__ */ mergeModels({
14961
+ props: /*@__PURE__*/ mergeModels({
14919
14962
  isAlphaEnabled: { type: Boolean },
14920
14963
  type: { default: "hex" }
14921
14964
  }, {
@@ -14963,9 +15006,9 @@ var FluxColorPicker_default = /* @__PURE__ */ defineComponent({
14963
15006
  });
14964
15007
  const saturationValue = computed({
14965
15008
  get: () => [unref(saturation), unref(value)],
14966
- set: ([s, v]) => {
14967
- saturation.value = s;
14968
- value.value = v;
15009
+ set: ([nextSaturation, nextValue]) => {
15010
+ saturation.value = nextSaturation;
15011
+ value.value = nextValue;
14969
15012
  }
14970
15013
  });
14971
15014
  const saturationPickerColor = computed(() => {
@@ -15266,7 +15309,7 @@ var FluxPrimaryButton_default = /* @__PURE__ */ defineComponent({
15266
15309
  });
15267
15310
  //#endregion
15268
15311
  //#region src/component/FluxColorSelect.vue?vue&type=script&setup=true&lang.ts
15269
- var _hoisted_1$37 = [
15312
+ var _hoisted_1$38 = [
15270
15313
  "aria-checked",
15271
15314
  "aria-label",
15272
15315
  "disabled",
@@ -15283,7 +15326,7 @@ var _hoisted_2$14 = [
15283
15326
  //#region src/component/FluxColorSelect.vue
15284
15327
  var FluxColorSelect_default = /* @__PURE__ */ defineComponent({
15285
15328
  __name: "FluxColorSelect",
15286
- props: /* @__PURE__ */ mergeModels({
15329
+ props: /*@__PURE__*/ mergeModels({
15287
15330
  colors: { default: () => [
15288
15331
  oe,
15289
15332
  _e,
@@ -15341,7 +15384,7 @@ var FluxColorSelect_default = /* @__PURE__ */ defineComponent({
15341
15384
  class: normalizeClass(unref(Color_module_default).colorSelectCheck),
15342
15385
  name: "check",
15343
15386
  size: 14
15344
- }, null, 8, ["class"])], 14, _hoisted_1$37);
15387
+ }, null, 8, ["class"])], 14, _hoisted_1$38);
15345
15388
  }), 128)), __props.isCustomAllowed ? (openBlock(), createBlock(FluxFlyout_default, { key: 0 }, {
15346
15389
  opener: withCtx(({ open }) => [createElementVNode("button", {
15347
15390
  class: normalizeClass(unref(Color_module_default).colorSelectCustom),
@@ -15397,7 +15440,7 @@ var FluxContainer_default = /* @__PURE__ */ defineComponent({
15397
15440
  //#region src/component/FluxFormSelect.vue
15398
15441
  var FluxFormSelect_default = /* @__PURE__ */ defineComponent({
15399
15442
  __name: "FluxFormSelect",
15400
- props: /* @__PURE__ */ mergeModels({
15443
+ props: /*@__PURE__*/ mergeModels({
15401
15444
  autoFocus: { type: Boolean },
15402
15445
  disabled: { type: Boolean },
15403
15446
  error: {},
@@ -15461,16 +15504,16 @@ var FluxFormSelect_default = /* @__PURE__ */ defineComponent({
15461
15504
  });
15462
15505
  //#endregion
15463
15506
  //#region src/css/component/Pagination.module.scss
15464
- var { "secondaryButtonLabel": _0$8, "secondaryButton": _1$2, "secondaryButtonIcon": _2$1 } = Button_module_default;
15507
+ var { "secondaryButton": _0$8, "secondaryButtonIcon": _1$2, "secondaryButtonLabel": _2$1 } = Button_module_default;
15465
15508
  var Pagination_module_default = {
15466
15509
  pagination: `pagination`,
15467
- paginationButton: `pagination-button ${_1$2}`,
15510
+ paginationButton: `pagination-button ${_0$8}`,
15468
15511
  secondaryButton: `secondary-button`,
15469
15512
  paginationButtonArrow: `pagination-button-arrow`,
15470
15513
  paginationButtonCurrent: `pagination-button-current`,
15471
15514
  paginationButtonSpacer: `pagination-button-spacer`,
15472
- paginationButtonIcon: `pagination-button-icon ${_2$1}`,
15473
- paginationButtonLabel: `pagination-button-label ${_0$8}`,
15515
+ paginationButtonIcon: `pagination-button-icon ${_1$2}`,
15516
+ paginationButtonLabel: `pagination-button-label ${_2$1}`,
15474
15517
  paginationBar: `pagination-bar`,
15475
15518
  paginationBarLimit: `pagination-bar-limit`,
15476
15519
  paginationBarLimitDisplayingOf: `pagination-bar-limit-displaying-of`,
@@ -15550,7 +15593,7 @@ var FluxPaginationButton_default = /* @__PURE__ */ defineComponent({
15550
15593
  });
15551
15594
  //#endregion
15552
15595
  //#region src/component/FluxPagination.vue?vue&type=script&setup=true&lang.ts
15553
- var _hoisted_1$36 = ["aria-label"];
15596
+ var _hoisted_1$37 = ["aria-label"];
15554
15597
  //#endregion
15555
15598
  //#region src/component/FluxPagination.vue
15556
15599
  var FluxPagination_default = /* @__PURE__ */ defineComponent({
@@ -15606,9 +15649,9 @@ var FluxPagination_default = /* @__PURE__ */ defineComponent({
15606
15649
  message: translate("flux.paginationNavigateMessage"),
15607
15650
  fieldLabel: translate("flux.paginationNavigatePage")
15608
15651
  });
15609
- const page = Number(pageStr);
15610
- if (isNaN(page) || page > unref(pages) || page <= 0) return;
15611
- navigate(page);
15652
+ const target = Number(pageStr);
15653
+ if (isNaN(target) || target > unref(pages) || target <= 0) return;
15654
+ navigate(target);
15612
15655
  }
15613
15656
  return (_ctx, _cache) => {
15614
15657
  return openBlock(), createElementBlock("nav", {
@@ -15647,7 +15690,7 @@ var FluxPagination_default = /* @__PURE__ */ defineComponent({
15647
15690
  ]))], 64);
15648
15691
  }), 256)) : (openBlock(), createBlock(FluxPaginationButton_default, {
15649
15692
  key: 2,
15650
- class: normalizeClass(unref(Pagination_module_default).paginationCurrentZZ),
15693
+ "is-current": "",
15651
15694
  onClick: prompt
15652
15695
  }, {
15653
15696
  before: withCtx(() => [
@@ -15656,7 +15699,7 @@ var FluxPagination_default = /* @__PURE__ */ defineComponent({
15656
15699
  createElementVNode("span", null, toDisplayString(pages.value), 1)
15657
15700
  ]),
15658
15701
  _: 1
15659
- }, 8, ["class"])),
15702
+ })),
15660
15703
  __props.arrows || __props.isCompact ? (openBlock(), createBlock(FluxPaginationButton_default, {
15661
15704
  key: 3,
15662
15705
  disabled: isNextDisabled.value,
@@ -15665,7 +15708,7 @@ var FluxPagination_default = /* @__PURE__ */ defineComponent({
15665
15708
  "aria-label": unref(translate)("flux.next"),
15666
15709
  onClick: next
15667
15710
  }, null, 8, ["disabled", "aria-label"])) : createCommentVNode("", true)
15668
- ], 10, _hoisted_1$36);
15711
+ ], 10, _hoisted_1$37);
15669
15712
  };
15670
15713
  }
15671
15714
  });
@@ -15796,9 +15839,9 @@ var FluxTableRow_default = /* @__PURE__ */ defineComponent({
15796
15839
  });
15797
15840
  //#endregion
15798
15841
  //#region src/component/FluxTable.vue?vue&type=script&setup=true&lang.ts
15799
- var _hoisted_1$35 = { key: 0 };
15842
+ var _hoisted_1$36 = { key: 0 };
15800
15843
  var _hoisted_2$13 = { key: 1 };
15801
- var _hoisted_3$5 = { key: 2 };
15844
+ var _hoisted_3$4 = { key: 2 };
15802
15845
  //#endregion
15803
15846
  //#region src/component/FluxTable.vue
15804
15847
  var FluxTable_default = /* @__PURE__ */ defineComponent({
@@ -15845,17 +15888,17 @@ var FluxTable_default = /* @__PURE__ */ defineComponent({
15845
15888
  }, [
15846
15889
  createElementVNode("table", { class: normalizeClass(unref(Table_module_default).tableBase) }, [
15847
15890
  renderSlot(_ctx.$slots, "colgroups"),
15848
- slots.header ? (openBlock(), createElementBlock("thead", _hoisted_1$35, [renderSlot(_ctx.$slots, "header")])) : createCommentVNode("", true),
15891
+ slots.header ? (openBlock(), createElementBlock("thead", _hoisted_1$36, [renderSlot(_ctx.$slots, "header")])) : createCommentVNode("", true),
15849
15892
  slots.default ? (openBlock(), createElementBlock("tbody", _hoisted_2$13, [renderSlot(_ctx.$slots, "default"), __props.fillColumns ? (openBlock(), createBlock(FluxTableRow_default, {
15850
15893
  key: 0,
15851
15894
  class: normalizeClass(unref(Table_module_default).tableFill)
15852
15895
  }, {
15853
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fillColumns, (_) => {
15854
- return openBlock(), createBlock(FluxTableCell_default);
15855
- }), 256))]),
15896
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.fillColumns, (n) => {
15897
+ return openBlock(), createBlock(FluxTableCell_default, { key: n });
15898
+ }), 128))]),
15856
15899
  _: 1
15857
15900
  }, 8, ["class"])) : createCommentVNode("", true)])) : createCommentVNode("", true),
15858
- slots.footer ? (openBlock(), createElementBlock("tfoot", _hoisted_3$5, [renderSlot(_ctx.$slots, "footer")])) : createCommentVNode("", true),
15901
+ slots.footer ? (openBlock(), createElementBlock("tfoot", _hoisted_3$4, [renderSlot(_ctx.$slots, "footer")])) : createCommentVNode("", true),
15859
15902
  slots.caption ? (openBlock(), createElementBlock("caption", {
15860
15903
  key: 3,
15861
15904
  style: normalizeStyle({ captionSide: __props.captionSide })
@@ -15879,7 +15922,7 @@ var FluxTable_default = /* @__PURE__ */ defineComponent({
15879
15922
  });
15880
15923
  //#endregion
15881
15924
  //#region src/component/FluxTableHeader.vue?vue&type=script&setup=true&lang.ts
15882
- var _hoisted_1$34 = ["aria-sort"];
15925
+ var _hoisted_1$35 = ["aria-sort"];
15883
15926
  var _hoisted_2$12 = ["aria-label", "onClick"];
15884
15927
  //#endregion
15885
15928
  //#region src/component/FluxTableHeader.vue
@@ -15946,7 +15989,7 @@ var FluxTableHeader_default = /* @__PURE__ */ defineComponent({
15946
15989
  _: 1
15947
15990
  })]),
15948
15991
  _: 1
15949
- })) : createCommentVNode("", true)], 2)], 14, _hoisted_1$34);
15992
+ })) : createCommentVNode("", true)], 2)], 14, _hoisted_1$35);
15950
15993
  };
15951
15994
  }
15952
15995
  });
@@ -15954,7 +15997,7 @@ var FluxTableHeader_default = /* @__PURE__ */ defineComponent({
15954
15997
  //#region src/component/FluxDataTable.vue
15955
15998
  var FluxDataTable_default = /* @__PURE__ */ defineComponent({
15956
15999
  __name: "FluxDataTable",
15957
- props: /* @__PURE__ */ mergeModels({
16000
+ props: /*@__PURE__*/ mergeModels({
15958
16001
  fillColumns: {},
15959
16002
  isBordered: {
15960
16003
  type: Boolean,
@@ -15987,7 +16030,7 @@ var FluxDataTable_default = /* @__PURE__ */ defineComponent({
15987
16030
  "selected": {},
15988
16031
  "selectedModifiers": {}
15989
16032
  }),
15990
- emits: /* @__PURE__ */ mergeModels(["limit", "navigate"], ["update:selected"]),
16033
+ emits: /*@__PURE__*/ mergeModels(["limit", "navigate"], ["update:selected"]),
15991
16034
  setup(__props, { emit: __emit }) {
15992
16035
  const IGNORED_SLOTS = [
15993
16036
  "filter",
@@ -16204,7 +16247,7 @@ var FluxDisabled_default = /* @__PURE__ */ defineComponent({
16204
16247
  });
16205
16248
  //#endregion
16206
16249
  //#region src/component/FluxDivider.vue?vue&type=script&setup=true&lang.ts
16207
- var _hoisted_1$33 = ["aria-orientation"];
16250
+ var _hoisted_1$34 = ["aria-orientation"];
16208
16251
  //#endregion
16209
16252
  //#region src/component/FluxDivider.vue
16210
16253
  var FluxDivider_default = /* @__PURE__ */ defineComponent({
@@ -16226,13 +16269,13 @@ var FluxDivider_default = /* @__PURE__ */ defineComponent({
16226
16269
  }, [renderSlot(_ctx.$slots, "default")], 2)) : (openBlock(), createElementBlock("hr", {
16227
16270
  key: 1,
16228
16271
  class: normalizeClass(unref(Divider_module_default).dividerLine)
16229
- }, null, 2))], 10, _hoisted_1$33);
16272
+ }, null, 2))], 10, _hoisted_1$34);
16230
16273
  };
16231
16274
  }
16232
16275
  });
16233
16276
  //#endregion
16234
16277
  //#region src/component/FluxDotPattern.vue?vue&type=script&setup=true&lang.ts
16235
- var _hoisted_1$32 = [
16278
+ var _hoisted_1$33 = [
16236
16279
  "id",
16237
16280
  "width",
16238
16281
  "height"
@@ -16242,7 +16285,7 @@ var _hoisted_2$11 = [
16242
16285
  "cx",
16243
16286
  "cy"
16244
16287
  ];
16245
- var _hoisted_3$4 = ["fill"];
16288
+ var _hoisted_3$3 = ["fill"];
16246
16289
  //#endregion
16247
16290
  //#region src/component/FluxDotPattern.vue
16248
16291
  var FluxDotPattern_default = /* @__PURE__ */ defineComponent({
@@ -16287,12 +16330,12 @@ var FluxDotPattern_default = /* @__PURE__ */ defineComponent({
16287
16330
  r: __props.cr,
16288
16331
  cx: __props.width / 2 - __props.cx,
16289
16332
  cy: __props.height / 2 - __props.cy
16290
- }, null, 8, _hoisted_2$11)], 8, _hoisted_1$32)]), createElementVNode("rect", {
16333
+ }, null, 8, _hoisted_2$11)], 8, _hoisted_1$33)]), createElementVNode("rect", {
16291
16334
  width: "100%",
16292
16335
  height: "100%",
16293
16336
  "stroke-width": "0",
16294
16337
  fill: `url(#${unref(id)})`
16295
- }, null, 8, _hoisted_3$4)], 2);
16338
+ }, null, 8, _hoisted_3$3)], 2);
16296
16339
  };
16297
16340
  }
16298
16341
  });
@@ -16310,7 +16353,7 @@ var DropZone_module_default = {
16310
16353
  };
16311
16354
  //#endregion
16312
16355
  //#region src/component/FluxDropZone.vue?vue&type=script&setup=true&lang.ts
16313
- var _hoisted_1$31 = [
16356
+ var _hoisted_1$32 = [
16314
16357
  "aria-disabled",
16315
16358
  "aria-label",
16316
16359
  "tabindex"
@@ -16456,7 +16499,7 @@ var FluxDropZone_default = /* @__PURE__ */ defineComponent({
16456
16499
  isDraggingOver: isDraggingOver.value,
16457
16500
  showPicker
16458
16501
  })))
16459
- ], 42, _hoisted_1$31);
16502
+ ], 42, _hoisted_1$32);
16460
16503
  };
16461
16504
  }
16462
16505
  });
@@ -16486,7 +16529,7 @@ var Expandable_module_default = {
16486
16529
  };
16487
16530
  //#endregion
16488
16531
  //#region src/component/FluxExpandable.vue?vue&type=script&setup=true&lang.ts
16489
- var _hoisted_1$30 = [
16532
+ var _hoisted_1$31 = [
16490
16533
  "id",
16491
16534
  "aria-controls",
16492
16535
  "aria-expanded"
@@ -16584,7 +16627,7 @@ var FluxExpandable_default = /* @__PURE__ */ defineComponent({
16584
16627
  close
16585
16628
  })))], 2)])], 10, _hoisted_2$9)) : createCommentVNode("", true)]),
16586
16629
  _: 3
16587
- })], 10, _hoisted_1$30);
16630
+ })], 10, _hoisted_1$31);
16588
16631
  };
16589
16632
  }
16590
16633
  });
@@ -16684,7 +16727,7 @@ var FluxFilterBase_default = /* @__PURE__ */ defineComponent({
16684
16727
  "modelValue": { required: true },
16685
16728
  "modelModifiers": {}
16686
16729
  },
16687
- emits: /* @__PURE__ */ mergeModels([
16730
+ emits: /*@__PURE__*/ mergeModels([
16688
16731
  "back",
16689
16732
  "clear",
16690
16733
  "reset"
@@ -16699,41 +16742,41 @@ var FluxFilterBase_default = /* @__PURE__ */ defineComponent({
16699
16742
  }
16700
16743
  const flattenedFilters = computed(() => a$2(slots.filters?.() ?? []));
16701
16744
  const buttons = computed(() => {
16702
- const buttons = {};
16745
+ const result = {};
16703
16746
  const items = unref(flattenedFilters);
16704
16747
  for (const item of items) {
16705
16748
  const definition = resolveDefinition(item);
16706
16749
  if (!definition) continue;
16707
- buttons[definition.name] = definition;
16750
+ result[definition.name] = definition;
16708
16751
  }
16709
- return buttons;
16752
+ return result;
16710
16753
  });
16711
16754
  const filters = computed(() => {
16712
- const filters = {};
16755
+ const result = {};
16713
16756
  const items = unref(flattenedFilters);
16714
16757
  for (const item of items) {
16715
16758
  const definition = resolveDefinition(item);
16716
16759
  if (!definition) continue;
16717
- filters[definition.name] = item;
16760
+ result[definition.name] = item;
16718
16761
  }
16719
- return filters;
16762
+ return result;
16720
16763
  });
16721
16764
  const menuItems = computed(() => {
16722
- const menuItems = [[]];
16765
+ const result = [[]];
16723
16766
  const items = unref(flattenedFilters);
16724
16767
  for (const item of items) {
16725
16768
  if (f$3(item) === "FluxSeparator") {
16726
- menuItems.push([]);
16769
+ result.push([]);
16727
16770
  continue;
16728
16771
  }
16729
16772
  const definition = resolveDefinition(item);
16730
16773
  if (definition) {
16731
- menuItems[menuItems.length - 1].push(definition);
16774
+ result[result.length - 1].push(definition);
16732
16775
  continue;
16733
16776
  }
16734
- menuItems[menuItems.length - 1].push(item);
16777
+ result[result.length - 1].push(item);
16735
16778
  }
16736
- return menuItems;
16779
+ return result;
16737
16780
  });
16738
16781
  watchEffect(() => {
16739
16782
  const state = unref(modelValue);
@@ -16910,7 +16953,7 @@ var FluxFilter_default = /* @__PURE__ */ defineComponent({
16910
16953
  "modelValue": { required: true },
16911
16954
  "modelModifiers": {}
16912
16955
  },
16913
- emits: /* @__PURE__ */ mergeModels(["clear", "reset"], ["update:modelValue"]),
16956
+ emits: /*@__PURE__*/ mergeModels(["clear", "reset"], ["update:modelValue"]),
16914
16957
  setup(__props, { emit: __emit }) {
16915
16958
  const emit = __emit;
16916
16959
  const modelValue = useModel(__props, "modelValue");
@@ -17031,7 +17074,7 @@ var FluxOverflowBar_default = /* @__PURE__ */ defineComponent({
17031
17074
  //#region src/component/FluxFilterBar.vue
17032
17075
  var FluxFilterBar_default = /* @__PURE__ */ defineComponent({
17033
17076
  __name: "FluxFilterBar",
17034
- props: /* @__PURE__ */ mergeModels({
17077
+ props: /*@__PURE__*/ mergeModels({
17035
17078
  isSearchable: { type: Boolean },
17036
17079
  searchPlaceholder: {}
17037
17080
  }, {
@@ -17040,7 +17083,7 @@ var FluxFilterBar_default = /* @__PURE__ */ defineComponent({
17040
17083
  "modelValue": { required: true },
17041
17084
  "modelModifiers": {}
17042
17085
  }),
17043
- emits: /* @__PURE__ */ mergeModels(["clear", "reset"], ["update:search", "update:modelValue"]),
17086
+ emits: /*@__PURE__*/ mergeModels(["clear", "reset"], ["update:search", "update:modelValue"]),
17044
17087
  setup(__props, { emit: __emit }) {
17045
17088
  const emit = __emit;
17046
17089
  const modelSearch = useModel(__props, "search");
@@ -17308,7 +17351,7 @@ var FluxFilterOption_default = /* @__PURE__ */ defineComponent({
17308
17351
  };
17309
17352
  }),
17310
17353
  __name: "FluxFilterOption",
17311
- props: /* @__PURE__ */ mergeModels({
17354
+ props: /*@__PURE__*/ mergeModels({
17312
17355
  icon: {},
17313
17356
  label: {},
17314
17357
  name: {},
@@ -17366,7 +17409,7 @@ var FluxFilterOptionAsync_default = /* @__PURE__ */ defineComponent({
17366
17409
  }
17367
17410
  })),
17368
17411
  __name: "FluxFilterOptionAsync",
17369
- props: /* @__PURE__ */ mergeModels({
17412
+ props: /*@__PURE__*/ mergeModels({
17370
17413
  icon: {},
17371
17414
  label: {},
17372
17415
  name: {},
@@ -17441,7 +17484,7 @@ var FluxFilterOptions_default = /* @__PURE__ */ defineComponent({
17441
17484
  };
17442
17485
  }),
17443
17486
  __name: "FluxFilterOptions",
17444
- props: /* @__PURE__ */ mergeModels({
17487
+ props: /*@__PURE__*/ mergeModels({
17445
17488
  icon: {},
17446
17489
  label: {},
17447
17490
  name: {},
@@ -17503,7 +17546,7 @@ var FluxFilterOptionsAsync_default = /* @__PURE__ */ defineComponent({
17503
17546
  };
17504
17547
  }),
17505
17548
  __name: "FluxFilterOptionsAsync",
17506
- props: /* @__PURE__ */ mergeModels({
17549
+ props: /*@__PURE__*/ mergeModels({
17507
17550
  icon: {},
17508
17551
  label: {},
17509
17552
  name: {},
@@ -17803,12 +17846,12 @@ var FocalPoint_module_default = {
17803
17846
  };
17804
17847
  //#endregion
17805
17848
  //#region src/component/FluxFocalPointEditor.vue?vue&type=script&setup=true&lang.ts
17806
- var _hoisted_1$29 = ["src"];
17849
+ var _hoisted_1$30 = ["src"];
17807
17850
  //#endregion
17808
17851
  //#region src/component/FluxFocalPointEditor.vue
17809
17852
  var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
17810
17853
  __name: "FluxFocalPointEditor",
17811
- props: /* @__PURE__ */ mergeModels({ src: {} }, {
17854
+ props: /*@__PURE__*/ mergeModels({ src: {} }, {
17812
17855
  "modelValue": { required: true },
17813
17856
  "modelModifiers": {}
17814
17857
  }),
@@ -17872,7 +17915,7 @@ var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
17872
17915
  src: __props.src,
17873
17916
  alt: "",
17874
17917
  onLoad: onImageLoaded
17875
- }, null, 42, _hoisted_1$29), createElementVNode("div", {
17918
+ }, null, 42, _hoisted_1$30), createElementVNode("div", {
17876
17919
  class: normalizeClass(unref(FocalPoint_module_default).focalPointEditorArea),
17877
17920
  style: normalizeStyle({
17878
17921
  top: `${focalPointY.value}%`,
@@ -17901,7 +17944,7 @@ var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
17901
17944
  });
17902
17945
  //#endregion
17903
17946
  //#region src/component/FluxFocalPointImage.vue?vue&type=script&setup=true&lang.ts
17904
- var _hoisted_1$28 = ["src", "alt"];
17947
+ var _hoisted_1$29 = ["src", "alt"];
17905
17948
  //#endregion
17906
17949
  //#region src/component/FluxFocalPointImage.vue
17907
17950
  var FluxFocalPointImage_default = /* @__PURE__ */ defineComponent({
@@ -17920,13 +17963,13 @@ var FluxFocalPointImage_default = /* @__PURE__ */ defineComponent({
17920
17963
  style: normalizeStyle({ objectPosition: `${x.value}% ${y.value}%` }),
17921
17964
  src: __props.src,
17922
17965
  alt: __props.alt
17923
- }, null, 14, _hoisted_1$28);
17966
+ }, null, 14, _hoisted_1$29);
17924
17967
  };
17925
17968
  }
17926
17969
  });
17927
17970
  //#endregion
17928
17971
  //#region src/component/FluxForm.vue?vue&type=script&setup=true&lang.ts
17929
- var _hoisted_1$27 = ["aria-disabled"];
17972
+ var _hoisted_1$28 = ["aria-disabled"];
17930
17973
  //#endregion
17931
17974
  //#region src/component/FluxForm.vue
17932
17975
  var FluxForm_default = /* @__PURE__ */ defineComponent({
@@ -17949,7 +17992,7 @@ var FluxForm_default = /* @__PURE__ */ defineComponent({
17949
17992
  }, [createVNode(FluxDisabled_default, { disabled: __props.disabled }, {
17950
17993
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
17951
17994
  _: 3
17952
- }, 8, ["disabled"])], 42, _hoisted_1$27);
17995
+ }, 8, ["disabled"])], 42, _hoisted_1$28);
17953
17996
  };
17954
17997
  }
17955
17998
  });
@@ -17974,7 +18017,7 @@ var FluxFormInputGroup_default = /* @__PURE__ */ defineComponent({
17974
18017
  //#region src/component/FluxFormDateInput.vue
17975
18018
  var FluxFormDateInput_default = /* @__PURE__ */ defineComponent({
17976
18019
  __name: "FluxFormDateInput",
17977
- props: /* @__PURE__ */ mergeModels({
18020
+ props: /*@__PURE__*/ mergeModels({
17978
18021
  autoFocus: { type: Boolean },
17979
18022
  disabled: { type: Boolean },
17980
18023
  error: {},
@@ -17991,7 +18034,7 @@ var FluxFormDateInput_default = /* @__PURE__ */ defineComponent({
17991
18034
  "modelValue": { default: null },
17992
18035
  "modelModifiers": {}
17993
18036
  }),
17994
- emits: /* @__PURE__ */ mergeModels(["blur", "focus"], ["update:modelValue"]),
18037
+ emits: /*@__PURE__*/ mergeModels(["blur", "focus"], ["update:modelValue"]),
17995
18038
  setup(__props, { emit: __emit }) {
17996
18039
  const emit = __emit;
17997
18040
  const modelValue = useModel(__props, "modelValue");
@@ -18061,12 +18104,12 @@ var FluxFormDateInput_default = /* @__PURE__ */ defineComponent({
18061
18104
  });
18062
18105
  //#endregion
18063
18106
  //#region src/component/FluxFormDateRangeInput.vue?vue&type=script&setup=true&lang.ts
18064
- var _hoisted_1$26 = { key: 0 };
18107
+ var _hoisted_1$27 = { key: 0 };
18065
18108
  //#endregion
18066
18109
  //#region src/component/FluxFormDateRangeInput.vue
18067
18110
  var FluxFormDateRangeInput_default = /* @__PURE__ */ defineComponent({
18068
18111
  __name: "FluxFormDateRangeInput",
18069
- props: /* @__PURE__ */ mergeModels({
18112
+ props: /*@__PURE__*/ mergeModels({
18070
18113
  autoFocus: { type: Boolean },
18071
18114
  disabled: { type: Boolean },
18072
18115
  error: {},
@@ -18107,7 +18150,7 @@ var FluxFormDateRangeInput_default = /* @__PURE__ */ defineComponent({
18107
18150
  default: withCtx(() => [createElementVNode("div", {
18108
18151
  class: normalizeClass(unref(clsx)(unref(Form_module_default).formDateRangeInput, unref(disabled) && unref(Form_module_default).isDisabled, __props.isCondensed && unref(Form_module_default).isCondensed, __props.isSecondary && unref(Form_module_default).isSecondary, __props.error && unref(Form_module_default).isInvalid)),
18109
18152
  role: "presentation"
18110
- }, [label.value ? (openBlock(), createElementBlock("span", _hoisted_1$26, toDisplayString(label.value), 1)) : __props.placeholder ? (openBlock(), createElementBlock("span", {
18153
+ }, [label.value ? (openBlock(), createElementBlock("span", _hoisted_1$27, toDisplayString(label.value), 1)) : __props.placeholder ? (openBlock(), createElementBlock("span", {
18111
18154
  key: 1,
18112
18155
  class: normalizeClass(unref(Form_module_default).formSelectPlaceholder)
18113
18156
  }, toDisplayString(__props.placeholder), 3)) : createCommentVNode("", true)], 2), createVNode(FluxSecondaryButton_default, {
@@ -18142,7 +18185,7 @@ var FluxFormDateRangeInput_default = /* @__PURE__ */ defineComponent({
18142
18185
  //#region src/component/FluxFormDateTimeInput.vue
18143
18186
  var FluxFormDateTimeInput_default = /* @__PURE__ */ defineComponent({
18144
18187
  __name: "FluxFormDateTimeInput",
18145
- props: /* @__PURE__ */ mergeModels({
18188
+ props: /*@__PURE__*/ mergeModels({
18146
18189
  autoFocus: { type: Boolean },
18147
18190
  disabled: { type: Boolean },
18148
18191
  error: {},
@@ -18279,7 +18322,7 @@ var FluxFormGrid_default = /* @__PURE__ */ defineComponent({
18279
18322
  });
18280
18323
  //#endregion
18281
18324
  //#region src/component/FluxFormInputAddition.vue?vue&type=script&setup=true&lang.ts
18282
- var _hoisted_1$25 = { key: 1 };
18325
+ var _hoisted_1$26 = { key: 1 };
18283
18326
  //#endregion
18284
18327
  //#region src/component/FluxFormInputAddition.vue
18285
18328
  var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
@@ -18296,7 +18339,7 @@ var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
18296
18339
  name: __props.icon,
18297
18340
  size: 18
18298
18341
  }, null, 8, ["name"])) : createCommentVNode("", true),
18299
- __props.label ? (openBlock(), createElementBlock("span", _hoisted_1$25, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
18342
+ __props.label ? (openBlock(), createElementBlock("span", _hoisted_1$26, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
18300
18343
  renderSlot(_ctx.$slots, "default")
18301
18344
  ], 2);
18302
18345
  };
@@ -18304,7 +18347,7 @@ var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
18304
18347
  });
18305
18348
  //#endregion
18306
18349
  //#region src/component/FluxFormPinInput.vue?vue&type=script&setup=true&lang.ts
18307
- var _hoisted_1$24 = [
18350
+ var _hoisted_1$25 = [
18308
18351
  "id",
18309
18352
  "name",
18310
18353
  "autofocus",
@@ -18325,7 +18368,7 @@ var _hoisted_2$8 = [
18325
18368
  //#region src/component/FluxFormPinInput.vue
18326
18369
  var FluxFormPinInput_default = /* @__PURE__ */ defineComponent({
18327
18370
  __name: "FluxFormPinInput",
18328
- props: /* @__PURE__ */ mergeModels({
18371
+ props: /*@__PURE__*/ mergeModels({
18329
18372
  autoFocus: {
18330
18373
  type: Boolean,
18331
18374
  default: false
@@ -18428,7 +18471,7 @@ var FluxFormPinInput_default = /* @__PURE__ */ defineComponent({
18428
18471
  onKeydown: onKeyDown,
18429
18472
  onPaste
18430
18473
  }, null, 42, _hoisted_2$8);
18431
- }), 128))], 14, _hoisted_1$24);
18474
+ }), 128))], 14, _hoisted_1$25);
18432
18475
  };
18433
18476
  }
18434
18477
  });
@@ -18436,7 +18479,7 @@ var FluxFormPinInput_default = /* @__PURE__ */ defineComponent({
18436
18479
  //#region src/component/FluxFormRangeSlider.vue
18437
18480
  var FluxFormRangeSlider_default = /* @__PURE__ */ defineComponent({
18438
18481
  __name: "FluxFormRangeSlider",
18439
- props: /* @__PURE__ */ mergeModels({
18482
+ props: /*@__PURE__*/ mergeModels({
18440
18483
  disabled: { type: Boolean },
18441
18484
  error: {},
18442
18485
  isLoading: { type: Boolean },
@@ -18628,7 +18671,7 @@ var FluxFormSection_default = /* @__PURE__ */ defineComponent({
18628
18671
  //#region src/component/FluxFormSelectAsync.vue
18629
18672
  var FluxFormSelectAsync_default = /* @__PURE__ */ defineComponent({
18630
18673
  __name: "FluxFormSelectAsync",
18631
- props: /* @__PURE__ */ mergeModels({
18674
+ props: /*@__PURE__*/ mergeModels({
18632
18675
  autoFocus: { type: Boolean },
18633
18676
  disabled: { type: Boolean },
18634
18677
  error: {},
@@ -18724,7 +18767,7 @@ var FluxFormSelectAsync_default = /* @__PURE__ */ defineComponent({
18724
18767
  });
18725
18768
  //#endregion
18726
18769
  //#region src/component/FluxFormTextArea.vue?vue&type=script&setup=true&lang.ts
18727
- var _hoisted_1$23 = [
18770
+ var _hoisted_1$24 = [
18728
18771
  "id",
18729
18772
  "name",
18730
18773
  "autocomplete",
@@ -18741,7 +18784,7 @@ var _hoisted_1$23 = [
18741
18784
  //#region src/component/FluxFormTextArea.vue
18742
18785
  var FluxFormTextArea_default = /* @__PURE__ */ defineComponent({
18743
18786
  __name: "FluxFormTextArea",
18744
- props: /* @__PURE__ */ mergeModels({
18787
+ props: /*@__PURE__*/ mergeModels({
18745
18788
  autoFocus: {
18746
18789
  type: Boolean,
18747
18790
  default: false
@@ -18761,7 +18804,7 @@ var FluxFormTextArea_default = /* @__PURE__ */ defineComponent({
18761
18804
  "modelValue": { default: "" },
18762
18805
  "modelModifiers": {}
18763
18806
  }),
18764
- emits: /* @__PURE__ */ mergeModels(["blur", "focus"], ["update:modelValue"]),
18807
+ emits: /*@__PURE__*/ mergeModels(["blur", "focus"], ["update:modelValue"]),
18765
18808
  setup(__props, { emit: __emit }) {
18766
18809
  const emit = __emit;
18767
18810
  const modelValue = useModel(__props, "modelValue");
@@ -18786,7 +18829,7 @@ var FluxFormTextArea_default = /* @__PURE__ */ defineComponent({
18786
18829
  "aria-invalid": __props.error ? true : void 0,
18787
18830
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur")),
18788
18831
  onFocus: _cache[2] || (_cache[2] = ($event) => emit("focus"))
18789
- }, null, 46, _hoisted_1$23)), [[vModelText, modelValue.value]]);
18832
+ }, null, 46, _hoisted_1$24)), [[vModelText, modelValue.value]]);
18790
18833
  };
18791
18834
  }
18792
18835
  });
@@ -19412,7 +19455,7 @@ var TIME_ZONE_GROUP_ORDER = [
19412
19455
  //#region src/component/FluxFormTimeZonePicker.vue
19413
19456
  var FluxFormTimeZonePicker_default = /* @__PURE__ */ defineComponent({
19414
19457
  __name: "FluxFormTimeZonePicker",
19415
- props: /* @__PURE__ */ mergeModels({
19458
+ props: /*@__PURE__*/ mergeModels({
19416
19459
  autoFocus: { type: Boolean },
19417
19460
  disabled: { type: Boolean },
19418
19461
  error: {},
@@ -19513,7 +19556,7 @@ var TreeViewSelect_module_default = {
19513
19556
  };
19514
19557
  //#endregion
19515
19558
  //#region src/component/FluxFormTreeViewSelect.vue?vue&type=script&setup=true&lang.ts
19516
- var _hoisted_1$22 = [
19559
+ var _hoisted_1$23 = [
19517
19560
  "role",
19518
19561
  "tabindex",
19519
19562
  "aria-selected",
@@ -19525,7 +19568,7 @@ var _hoisted_1$22 = [
19525
19568
  var FluxFormTreeViewSelect_default = /* @__PURE__ */ defineComponent({
19526
19569
  inheritAttrs: false,
19527
19570
  __name: "FluxFormTreeViewSelect",
19528
- props: /* @__PURE__ */ mergeModels({
19571
+ props: /*@__PURE__*/ mergeModels({
19529
19572
  autoFocus: { type: Boolean },
19530
19573
  disabled: { type: Boolean },
19531
19574
  error: {},
@@ -19754,7 +19797,7 @@ var FluxFormTreeViewSelect_default = /* @__PURE__ */ defineComponent({
19754
19797
  "expanded",
19755
19798
  "level-colors",
19756
19799
  "onExpandClick"
19757
- ])], 42, _hoisted_1$22);
19800
+ ])], 42, _hoisted_1$23);
19758
19801
  }), 128))], 2)]),
19759
19802
  _: 1
19760
19803
  }, 8, ["class", "anchor"])) : createCommentVNode("", true)]),
@@ -19769,7 +19812,7 @@ var Remove_module_default = {
19769
19812
  };
19770
19813
  //#endregion
19771
19814
  //#region src/component/FluxRemove.vue?vue&type=script&setup=true&lang.ts
19772
- var _hoisted_1$21 = ["aria-label"];
19815
+ var _hoisted_1$22 = ["aria-label"];
19773
19816
  //#endregion
19774
19817
  //#region src/component/FluxRemove.vue
19775
19818
  var FluxRemove_default = /* @__PURE__ */ defineComponent({
@@ -19792,7 +19835,7 @@ var FluxRemove_default = /* @__PURE__ */ defineComponent({
19792
19835
  key: 0,
19793
19836
  name: __props.icon,
19794
19837
  size: 16
19795
- }, null, 8, ["name"])) : createCommentVNode("", true)], 10, _hoisted_1$21);
19838
+ }, null, 8, ["name"])) : createCommentVNode("", true)], 10, _hoisted_1$22);
19796
19839
  };
19797
19840
  }
19798
19841
  });
@@ -19865,7 +19908,7 @@ var FluxGalleryItem_default = /* @__PURE__ */ defineComponent({
19865
19908
  });
19866
19909
  //#endregion
19867
19910
  //#region src/component/FluxGallery.vue?vue&type=script&setup=true&lang.ts
19868
- var _hoisted_1$20 = ["onClick"];
19911
+ var _hoisted_1$21 = ["onClick"];
19869
19912
  //#endregion
19870
19913
  //#region src/component/FluxGallery.vue
19871
19914
  var FluxGallery_default = /* @__PURE__ */ defineComponent({
@@ -19943,7 +19986,7 @@ var FluxGallery_default = /* @__PURE__ */ defineComponent({
19943
19986
  class: normalizeClass(unref(Gallery_module_default).galleryAdd),
19944
19987
  type: "button",
19945
19988
  onClick: ($event) => showPicker()
19946
- }, [createVNode(FluxIcon_default, { name: "plus" })], 10, _hoisted_1$20)) : createCommentVNode("", true)
19989
+ }, [createVNode(FluxIcon_default, { name: "plus" })], 10, _hoisted_1$21)) : createCommentVNode("", true)
19947
19990
  ]),
19948
19991
  _: 2
19949
19992
  }, 1032, ["class", "move-class"])]),
@@ -20018,13 +20061,13 @@ var FluxGridColumn_default = /* @__PURE__ */ defineComponent({
20018
20061
  });
20019
20062
  //#endregion
20020
20063
  //#region src/component/FluxGridPattern.vue?vue&type=script&setup=true&lang.ts
20021
- var _hoisted_1$19 = [
20064
+ var _hoisted_1$20 = [
20022
20065
  "id",
20023
20066
  "width",
20024
20067
  "height"
20025
20068
  ];
20026
20069
  var _hoisted_2$7 = ["d", "stroke-dasharray"];
20027
- var _hoisted_3$3 = ["fill"];
20070
+ var _hoisted_3$2 = ["fill"];
20028
20071
  var _hoisted_4 = {
20029
20072
  key: 0,
20030
20073
  style: { "overflow": "visible" }
@@ -20063,13 +20106,13 @@ var FluxGridPattern_default = /* @__PURE__ */ defineComponent({
20063
20106
  d: `M.5 ${__props.height}V.5H${__props.width}`,
20064
20107
  fill: "none",
20065
20108
  "stroke-dasharray": __props.strokeDasharray
20066
- }, null, 8, _hoisted_2$7)], 8, _hoisted_1$19)]),
20109
+ }, null, 8, _hoisted_2$7)], 8, _hoisted_1$20)]),
20067
20110
  createElementVNode("rect", {
20068
20111
  width: "100%",
20069
20112
  height: "100%",
20070
20113
  "stroke-width": "0",
20071
20114
  fill: `url(#${unref(id)})`
20072
- }, null, 8, _hoisted_3$3),
20115
+ }, null, 8, _hoisted_3$2),
20073
20116
  __props.squares ? (openBlock(), createElementBlock("svg", _hoisted_4, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.squares, ([x, y]) => {
20074
20117
  return openBlock(), createElementBlock("rect", {
20075
20118
  key: `${x}-${y}`,
@@ -20130,7 +20173,7 @@ var Kanban_module_default = {
20130
20173
  };
20131
20174
  //#endregion
20132
20175
  //#region src/component/FluxKanban.vue?vue&type=script&setup=true&lang.ts
20133
- var _hoisted_1$18 = ["aria-label"];
20176
+ var _hoisted_1$19 = ["aria-label"];
20134
20177
  //#endregion
20135
20178
  //#region src/component/FluxKanban.vue
20136
20179
  var FluxKanban_default = /* @__PURE__ */ defineComponent({
@@ -20197,13 +20240,13 @@ var FluxKanban_default = /* @__PURE__ */ defineComponent({
20197
20240
  "aria-live": "polite",
20198
20241
  "aria-atomic": "true",
20199
20242
  class: normalizeClass(unref(Kanban_module_default).kanbanLiveRegion)
20200
- }, toDisplayString(liveMessage.value), 3)], 10, _hoisted_1$18);
20243
+ }, toDisplayString(liveMessage.value), 3)], 10, _hoisted_1$19);
20201
20244
  };
20202
20245
  }
20203
20246
  });
20204
20247
  //#endregion
20205
20248
  //#region src/component/FluxKanbanColumn.vue?vue&type=script&setup=true&lang.ts
20206
- var _hoisted_1$17 = ["aria-label", "aria-disabled"];
20249
+ var _hoisted_1$18 = ["aria-label", "aria-disabled"];
20207
20250
  var _hoisted_2$6 = ["draggable", "tabindex"];
20208
20251
  //#endregion
20209
20252
  //#region src/component/FluxKanbanColumn.vue
@@ -20384,14 +20427,14 @@ var FluxKanbanColumn_default = /* @__PURE__ */ defineComponent({
20384
20427
  hasFooter.value ? (openBlock(), createElementBlock("footer", {
20385
20428
  key: 0,
20386
20429
  class: normalizeClass(unref(Kanban_module_default).kanbanColumnFooter)
20387
- }, [hasFooter.value ? renderSlot(_ctx.$slots, "footer", { key: 0 }) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)
20388
- ], 10, _hoisted_1$17);
20430
+ }, [renderSlot(_ctx.$slots, "footer")], 2)) : createCommentVNode("", true)
20431
+ ], 10, _hoisted_1$18);
20389
20432
  };
20390
20433
  }
20391
20434
  });
20392
20435
  //#endregion
20393
20436
  //#region src/component/FluxKanbanItem.vue?vue&type=script&setup=true&lang.ts
20394
- var _hoisted_1$16 = [
20437
+ var _hoisted_1$17 = [
20395
20438
  "aria-disabled",
20396
20439
  "draggable",
20397
20440
  "tabindex"
@@ -20517,7 +20560,7 @@ var FluxKanbanItem_default = /* @__PURE__ */ defineComponent({
20517
20560
  onDragover: withModifiers(onDragOver, ["stop"]),
20518
20561
  onFocus,
20519
20562
  onKeydown: _cache[0] || (_cache[0] = (...args) => unref(handleKeyDown) && unref(handleKeyDown)(...args))
20520
- }, [renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$16);
20563
+ }, [renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$17);
20521
20564
  };
20522
20565
  }
20523
20566
  });
@@ -20714,7 +20757,7 @@ var FluxLink_default = /* @__PURE__ */ defineComponent({
20714
20757
  });
20715
20758
  //#endregion
20716
20759
  //#region src/component/FluxMenuCollapsible.vue?vue&type=script&setup=true&lang.ts
20717
- var _hoisted_1$15 = ["id"];
20760
+ var _hoisted_1$16 = ["id"];
20718
20761
  //#endregion
20719
20762
  //#region src/component/FluxMenuCollapsible.vue
20720
20763
  var FluxMenuCollapsible_default = /* @__PURE__ */ defineComponent({
@@ -20824,7 +20867,7 @@ var FluxMenuCollapsible_default = /* @__PURE__ */ defineComponent({
20824
20867
  id: unref(bodyId),
20825
20868
  class: normalizeClass(unref(Menu_module_default).menuCollapsibleBody),
20826
20869
  role: "group"
20827
- }, [createElementVNode("div", { class: normalizeClass(unref(Menu_module_default).menuCollapsibleContent) }, [renderSlot(_ctx.$slots, "default")], 2)], 10, _hoisted_1$15)) : createCommentVNode("", true)]),
20870
+ }, [createElementVNode("div", { class: normalizeClass(unref(Menu_module_default).menuCollapsibleContent) }, [renderSlot(_ctx.$slots, "default")], 2)], 10, _hoisted_1$16)) : createCommentVNode("", true)]),
20828
20871
  _: 3
20829
20872
  })], 2);
20830
20873
  };
@@ -20834,7 +20877,7 @@ var FluxMenuCollapsible_default = /* @__PURE__ */ defineComponent({
20834
20877
  //#region src/component/FluxMenuOptions.vue
20835
20878
  var FluxMenuOptions_default = /* @__PURE__ */ defineComponent({
20836
20879
  __name: "FluxMenuOptions",
20837
- props: /* @__PURE__ */ mergeModels({
20880
+ props: /*@__PURE__*/ mergeModels({
20838
20881
  isHorizontal: { type: Boolean },
20839
20882
  mode: { default: "highlight" }
20840
20883
  }, {
@@ -20902,7 +20945,7 @@ var Notice_module_default = {
20902
20945
  };
20903
20946
  //#endregion
20904
20947
  //#region src/component/FluxNotice.vue?vue&type=script&setup=true&lang.ts
20905
- var _hoisted_1$14 = ["aria-label"];
20948
+ var _hoisted_1$15 = ["aria-label"];
20906
20949
  //#endregion
20907
20950
  //#region src/component/FluxNotice.vue
20908
20951
  var FluxNotice_default = /* @__PURE__ */ defineComponent({
@@ -20953,7 +20996,7 @@ var FluxNotice_default = /* @__PURE__ */ defineComponent({
20953
20996
  type: "button",
20954
20997
  "aria-label": unref(translate)("flux.close"),
20955
20998
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
20956
- }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$14)) : createCommentVNode("", true)
20999
+ }, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$15)) : createCommentVNode("", true)
20957
21000
  ], 2);
20958
21001
  };
20959
21002
  }
@@ -21206,7 +21249,7 @@ var FluxPaneIllustration_default = /* @__PURE__ */ defineComponent({
21206
21249
  });
21207
21250
  //#endregion
21208
21251
  //#region src/component/FluxPaneMedia.vue?vue&type=script&setup=true&lang.ts
21209
- var _hoisted_1$13 = ["src", "alt"];
21252
+ var _hoisted_1$14 = ["src", "alt"];
21210
21253
  //#endregion
21211
21254
  //#region src/component/FluxPaneMedia.vue
21212
21255
  var FluxPaneMedia_default = /* @__PURE__ */ defineComponent({
@@ -21231,7 +21274,7 @@ var FluxPaneMedia_default = /* @__PURE__ */ defineComponent({
21231
21274
  }),
21232
21275
  src: __props.imageUrl,
21233
21276
  alt: __props.imageAlt
21234
- }, null, 14, _hoisted_1$13)) : createCommentVNode("", true)], 2);
21277
+ }, null, 14, _hoisted_1$14)) : createCommentVNode("", true)], 2);
21235
21278
  };
21236
21279
  }
21237
21280
  });
@@ -21276,7 +21319,7 @@ var FluxPercentageBar_default = /* @__PURE__ */ defineComponent({
21276
21319
  });
21277
21320
  //#endregion
21278
21321
  //#region src/component/FluxPersona.vue?vue&type=script&setup=true&lang.ts
21279
- var _hoisted_1$12 = { key: 0 };
21322
+ var _hoisted_1$13 = { key: 0 };
21280
21323
  //#endregion
21281
21324
  //#region src/component/FluxPersona.vue
21282
21325
  var FluxPersona_default = /* @__PURE__ */ defineComponent({
@@ -21316,13 +21359,13 @@ var FluxPersona_default = /* @__PURE__ */ defineComponent({
21316
21359
  ]), !__props.isCompact ? (openBlock(), createElementBlock("div", {
21317
21360
  key: 0,
21318
21361
  class: normalizeClass(unref(Avatar_module_default).personaDetails)
21319
- }, [createElementVNode("strong", null, toDisplayString(__props.name), 1), __props.title ? (openBlock(), createElementBlock("span", _hoisted_1$12, toDisplayString(__props.title), 1)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2);
21362
+ }, [createElementVNode("strong", null, toDisplayString(__props.name), 1), __props.title ? (openBlock(), createElementBlock("span", _hoisted_1$13, toDisplayString(__props.title), 1)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2);
21320
21363
  };
21321
21364
  }
21322
21365
  });
21323
21366
  //#endregion
21324
21367
  //#region src/component/FluxPlaceholder.vue?vue&type=script&setup=true&lang.ts
21325
- var _hoisted_1$11 = { key: 0 };
21368
+ var _hoisted_1$12 = { key: 0 };
21326
21369
  var _hoisted_2$5 = { key: 1 };
21327
21370
  //#endregion
21328
21371
  //#region src/component/FluxPlaceholder.vue
@@ -21352,7 +21395,7 @@ var FluxPlaceholder_default = /* @__PURE__ */ defineComponent({
21352
21395
  class: normalizeClass(unref(Placeholder_module_default).placeholderIcon),
21353
21396
  name: __props.icon
21354
21397
  }, null, 8, ["class", "name"])) : createCommentVNode("", true),
21355
- createElementVNode("div", { class: normalizeClass(unref(Placeholder_module_default).placeholderCaption) }, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$11, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.message ? (openBlock(), createElementBlock("p", _hoisted_2$5, toDisplayString(__props.message), 1)) : createCommentVNode("", true)], 2),
21398
+ createElementVNode("div", { class: normalizeClass(unref(Placeholder_module_default).placeholderCaption) }, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$12, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.message ? (openBlock(), createElementBlock("p", _hoisted_2$5, toDisplayString(__props.message), 1)) : createCommentVNode("", true)], 2),
21356
21399
  renderSlot(_ctx.$slots, "default")
21357
21400
  ], 2);
21358
21401
  };
@@ -21578,7 +21621,7 @@ var FluxPublishButton_default = /* @__PURE__ */ defineComponent({
21578
21621
  });
21579
21622
  //#endregion
21580
21623
  //#region src/component/FluxQuantitySelector.vue?vue&type=script&setup=true&lang.ts
21581
- var _hoisted_1$10 = [
21624
+ var _hoisted_1$11 = [
21582
21625
  "disabled",
21583
21626
  "max",
21584
21627
  "min",
@@ -21588,7 +21631,7 @@ var _hoisted_1$10 = [
21588
21631
  //#region src/component/FluxQuantitySelector.vue
21589
21632
  var FluxQuantitySelector_default = /* @__PURE__ */ defineComponent({
21590
21633
  __name: "FluxQuantitySelector",
21591
- props: /* @__PURE__ */ mergeModels({
21634
+ props: /*@__PURE__*/ mergeModels({
21592
21635
  disabled: { type: Boolean },
21593
21636
  max: { default: 100 },
21594
21637
  min: { default: 0 },
@@ -21651,7 +21694,7 @@ var FluxQuantitySelector_default = /* @__PURE__ */ defineComponent({
21651
21694
  max: __props.max,
21652
21695
  min: __props.min,
21653
21696
  step: __props.step
21654
- }, null, 14, _hoisted_1$10), [[vModelText, modelValue.value]]),
21697
+ }, null, 14, _hoisted_1$11), [[vModelText, modelValue.value]]),
21655
21698
  createVNode(FluxSecondaryButton_default, {
21656
21699
  class: normalizeClass(unref(Form_module_default).quantitySelectorButton),
21657
21700
  disabled: unref(disabled) || modelValue.value >= __props.max,
@@ -21698,7 +21741,7 @@ var Snackbar_module_default = {
21698
21741
  };
21699
21742
  //#endregion
21700
21743
  //#region src/component/FluxSnackbar.vue?vue&type=script&setup=true&lang.ts
21701
- var _hoisted_1$9 = ["onClick"];
21744
+ var _hoisted_1$10 = ["onClick"];
21702
21745
  //#endregion
21703
21746
  //#region src/component/FluxSnackbar.vue
21704
21747
  var FluxSnackbar_default = /* @__PURE__ */ defineComponent({
@@ -21814,7 +21857,7 @@ var FluxSnackbar_default = /* @__PURE__ */ defineComponent({
21814
21857
  tabindex: "-1",
21815
21858
  type: "button",
21816
21859
  onClick: ($event) => onAction(actionKey)
21817
- }, [createElementVNode("span", null, toDisplayString(actionLabel), 1)], 10, _hoisted_1$9);
21860
+ }, [createElementVNode("span", null, toDisplayString(actionLabel), 1)], 10, _hoisted_1$10);
21818
21861
  }), 128))], 2)) : createCommentVNode("", true),
21819
21862
  __props.isCloseable ? (openBlock(), createBlock(FluxAction_default, {
21820
21863
  key: 1,
@@ -22017,7 +22060,7 @@ var Root_module_default = {
22017
22060
  };
22018
22061
  //#endregion
22019
22062
  //#region src/component/FluxRoot.vue?vue&type=script&setup=true&lang.ts
22020
- var _hoisted_1$8 = ["inert"];
22063
+ var _hoisted_1$9 = ["inert"];
22021
22064
  //#endregion
22022
22065
  //#region src/component/FluxRoot.vue
22023
22066
  var FluxRoot_default = /* @__PURE__ */ defineComponent({
@@ -22035,7 +22078,7 @@ var FluxRoot_default = /* @__PURE__ */ defineComponent({
22035
22078
  createElementVNode("div", mergeProps($attrs, {
22036
22079
  class: unref(Root_module_default).root,
22037
22080
  inert: unref(inertMain)
22038
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$8),
22081
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$9),
22039
22082
  createVNode(FluxOverlayProvider_default),
22040
22083
  createVNode(FluxSnackbarProvider_default),
22041
22084
  createVNode(FluxTooltipProvider_default)
@@ -22169,82 +22212,97 @@ var SegmentedControl_module_default = {
22169
22212
  segmentedControlHighlight: `segmented-control-highlight`,
22170
22213
  segmentedControlItem: `segmented-control-item`,
22171
22214
  isActive: `is-active`,
22172
- segmentedControlSeparator: `segmented-control-separator`
22215
+ isSmall: `is-small`,
22216
+ isMedium: `is-medium`,
22217
+ isLarge: `is-large`
22173
22218
  };
22174
22219
  //#endregion
22175
22220
  //#region src/component/FluxSegmentedControl.vue?vue&type=script&setup=true&lang.ts
22176
- var _hoisted_1$7 = ["aria-label"];
22177
- var _hoisted_2$4 = [
22178
- "aria-checked",
22179
- "aria-label",
22180
- "tabindex",
22181
- "onClick"
22182
- ];
22183
- var _hoisted_3$2 = { key: 1 };
22221
+ var _hoisted_1$8 = ["aria-label"];
22184
22222
  //#endregion
22185
22223
  //#region src/component/FluxSegmentedControl.vue
22186
22224
  var FluxSegmentedControl_default = /* @__PURE__ */ defineComponent({
22187
22225
  __name: "FluxSegmentedControl",
22188
- props: /* @__PURE__ */ mergeModels({
22226
+ props: /*@__PURE__*/ mergeModels({
22189
22227
  ariaLabel: {},
22190
22228
  isFill: { type: Boolean },
22191
- items: {}
22229
+ size: { default: "medium" }
22192
22230
  }, {
22193
- "modelValue": { default: 0 },
22231
+ "modelValue": {},
22194
22232
  "modelModifiers": {}
22195
22233
  }),
22196
22234
  emits: ["update:modelValue"],
22197
22235
  setup(__props) {
22198
22236
  const modelValue = useModel(__props, "modelValue");
22199
22237
  const controlRef = useTemplateRef("control");
22200
- const itemRefs = useTemplateRef("items");
22201
22238
  const activeItemX = ref(0);
22202
22239
  const activeItemWidth = ref(0);
22203
- const isAlive = ref(true);
22204
- onBeforeUnmount(() => {
22205
- isAlive.value = false;
22240
+ const items = /* @__PURE__ */ new Map();
22241
+ provide(FluxSegmentedControlInjectionKey, {
22242
+ modelValue,
22243
+ size: toRef(() => __props.size),
22244
+ select,
22245
+ registerItem(element, value) {
22246
+ items.set(element, value);
22247
+ updateHighlight();
22248
+ },
22249
+ unregisterItem(element) {
22250
+ items.delete(element);
22251
+ updateHighlight();
22252
+ }
22206
22253
  });
22207
- watchEffect(() => updateHighlight(unref(modelValue)), { flush: "post" });
22208
- ye$1(controlRef, () => updateHighlight(unref(modelValue)));
22209
- function activate(index) {
22210
- modelValue.value = index;
22211
- (itemRefs.value?.[index])?.focus();
22254
+ onMounted(() => updateHighlight());
22255
+ watch(modelValue, () => updateHighlight(), { flush: "post" });
22256
+ he$1(controlRef, () => updateHighlight(), {
22257
+ childList: true,
22258
+ subtree: true
22259
+ });
22260
+ ye$1(controlRef, () => updateHighlight());
22261
+ function select(value) {
22262
+ modelValue.value = value;
22212
22263
  }
22213
22264
  function onKeyDown(evt) {
22214
- const items = itemRefs.value;
22215
- if (!items) return;
22216
- let newIndex = null;
22265
+ const control = controlRef.value;
22266
+ if (!control) return;
22267
+ const radios = Array.from(control.querySelectorAll("[role=radio]:not([disabled])"));
22268
+ if (radios.length === 0) return;
22269
+ const activeElement = control.querySelector("[role=radio][aria-checked=true]");
22270
+ const currentIndex = activeElement ? radios.indexOf(activeElement) : -1;
22271
+ let newIndex;
22217
22272
  switch (evt.key) {
22218
22273
  case "ArrowLeft":
22219
22274
  case "ArrowUp":
22220
- newIndex = Math.max(0, unref(modelValue) - 1);
22275
+ newIndex = Math.max(0, currentIndex - 1);
22221
22276
  break;
22222
22277
  case "ArrowRight":
22223
22278
  case "ArrowDown":
22224
- newIndex = Math.min(items.length - 1, unref(modelValue) + 1);
22279
+ newIndex = Math.min(radios.length - 1, currentIndex + 1);
22225
22280
  break;
22226
22281
  case "Home":
22227
22282
  newIndex = 0;
22228
22283
  break;
22229
22284
  case "End":
22230
- newIndex = items.length - 1;
22285
+ newIndex = radios.length - 1;
22231
22286
  break;
22232
22287
  default: return;
22233
22288
  }
22234
- activate(newIndex);
22289
+ const target = radios[newIndex];
22290
+ const value = items.get(target);
22291
+ if (value !== void 0) select(value);
22292
+ target.focus();
22235
22293
  evt.preventDefault();
22236
22294
  }
22237
- function updateHighlight(index) {
22238
- if (!isAlive.value) return;
22239
- const itemRef = itemRefs.value?.[index];
22295
+ function updateHighlight() {
22240
22296
  const control = controlRef.value;
22241
- if (!itemRef || !control) return;
22242
- const width = itemRef.offsetWidth;
22297
+ if (!control) return;
22298
+ const activeElement = control.querySelector("[role=radio][aria-checked=true]");
22299
+ if (!activeElement) {
22300
+ activeItemWidth.value = 0;
22301
+ return;
22302
+ }
22303
+ const width = activeElement.offsetWidth;
22243
22304
  if (width === 0) return;
22244
- const controlRect = control.getBoundingClientRect();
22245
- const itemRect = itemRef.getBoundingClientRect();
22246
- const scaleX = control.offsetWidth > 0 ? controlRect.width / control.offsetWidth : 1;
22247
- activeItemX.value = (itemRect.left - controlRect.left) / scaleX;
22305
+ activeItemX.value = activeElement.offsetLeft;
22248
22306
  activeItemWidth.value = width;
22249
22307
  }
22250
22308
  return (_ctx, _cache) => {
@@ -22261,37 +22319,79 @@ var FluxSegmentedControl_default = /* @__PURE__ */ defineComponent({
22261
22319
  left: `${activeItemX.value}px`,
22262
22320
  width: `${activeItemWidth.value}px`
22263
22321
  })
22264
- }, null, 6)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
22265
- return openBlock(), createElementBlock(Fragment, null, [index > 0 ? (openBlock(), createElementBlock("div", {
22266
- key: 0,
22267
- class: normalizeClass(unref(clsx)(unref(SegmentedControl_module_default).segmentedControlSeparator, (index === modelValue.value || index === modelValue.value + 1) && unref(SegmentedControl_module_default).isActive)),
22268
- role: "separator"
22269
- }, null, 2)) : createCommentVNode("", true), createElementVNode("button", {
22270
- ref_for: true,
22271
- ref: "items",
22272
- class: normalizeClass(unref(clsx)(unref(SegmentedControl_module_default).segmentedControlItem, index === modelValue.value && unref(SegmentedControl_module_default).isActive)),
22273
- role: "radio",
22274
- "aria-checked": index === modelValue.value,
22275
- "aria-label": item.label,
22276
- tabindex: index === modelValue.value ? 0 : -1,
22277
- type: "button",
22278
- onClick: ($event) => activate(index)
22279
- }, [item.icon ? (openBlock(), createBlock(FluxIcon_default, {
22280
- key: 0,
22281
- name: item.icon,
22282
- size: 15
22283
- }, null, 8, ["name"])) : createCommentVNode("", true), item.label ? (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString(item.label), 1)) : createCommentVNode("", true)], 10, _hoisted_2$4)], 64);
22284
- }), 256))], 42, _hoisted_1$7);
22322
+ }, null, 6)) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$8);
22285
22323
  };
22286
22324
  }
22287
22325
  });
22288
22326
  //#endregion
22289
- //#region src/component/FluxSegmentedView.vue
22290
- var FluxSegmentedView_default = defineComponent({
22291
- props: { index: Number },
22292
- setup(props, { slots }) {
22293
- return () => {
22294
- return slots.default()[props.index];
22327
+ //#region src/component/FluxSegmentedControlItem.vue?vue&type=script&setup=true&lang.ts
22328
+ var _hoisted_1$7 = [
22329
+ "aria-checked",
22330
+ "aria-disabled",
22331
+ "disabled",
22332
+ "tabindex"
22333
+ ];
22334
+ var _hoisted_2$4 = { key: 1 };
22335
+ //#endregion
22336
+ //#region src/component/FluxSegmentedControlItem.vue
22337
+ var FluxSegmentedControlItem_default = /* @__PURE__ */ defineComponent({
22338
+ __name: "FluxSegmentedControlItem",
22339
+ props: {
22340
+ value: {},
22341
+ disabled: { type: Boolean },
22342
+ icon: {},
22343
+ label: {}
22344
+ },
22345
+ setup(__props) {
22346
+ const control = useSegmentedControlInjection_default();
22347
+ const disabled = useDisabled_default(toRef(() => __props.disabled));
22348
+ const itemRef = useTemplateRef("item");
22349
+ const sizeClasses = {
22350
+ small: SegmentedControl_module_default.isSmall,
22351
+ medium: SegmentedControl_module_default.isMedium,
22352
+ large: SegmentedControl_module_default.isLarge
22353
+ };
22354
+ const iconSizes = {
22355
+ small: 14,
22356
+ medium: 16,
22357
+ large: 18
22358
+ };
22359
+ const isActive = computed(() => control.modelValue.value === __props.value);
22360
+ const iconSize = computed(() => iconSizes[unref(control.size)]);
22361
+ const itemClass = computed(() => clsx(SegmentedControl_module_default.segmentedControlItem, sizeClasses[unref(control.size)], isActive.value && SegmentedControl_module_default.isActive));
22362
+ onMounted(() => {
22363
+ const element = unref(itemRef);
22364
+ if (!element) return;
22365
+ control.registerItem(element, __props.value);
22366
+ if (control.modelValue.value === void 0 && !unref(disabled)) control.select(__props.value);
22367
+ });
22368
+ onBeforeUnmount(() => {
22369
+ const element = unref(itemRef);
22370
+ if (element) control.unregisterItem(element);
22371
+ });
22372
+ function onClick(evt) {
22373
+ if (unref(disabled)) {
22374
+ evt.preventDefault();
22375
+ return;
22376
+ }
22377
+ control.select(__props.value);
22378
+ }
22379
+ return (_ctx, _cache) => {
22380
+ return openBlock(), createElementBlock("button", {
22381
+ ref: "item",
22382
+ class: normalizeClass(itemClass.value),
22383
+ role: "radio",
22384
+ "aria-checked": isActive.value,
22385
+ "aria-disabled": unref(disabled) ? true : void 0,
22386
+ disabled: unref(disabled) ? true : void 0,
22387
+ tabindex: isActive.value ? 0 : -1,
22388
+ type: "button",
22389
+ onClick
22390
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [__props.icon ? (openBlock(), createBlock(FluxIcon_default, {
22391
+ key: 0,
22392
+ name: __props.icon,
22393
+ size: iconSize.value
22394
+ }, null, 8, ["name", "size"])) : createCommentVNode("", true), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$4, toDisplayString(__props.label), 1)) : createCommentVNode("", true)])], 10, _hoisted_1$7);
22295
22395
  };
22296
22396
  }
22297
22397
  });
@@ -23013,7 +23113,7 @@ var FluxTabBarItem_default = /* @__PURE__ */ defineComponent({
23013
23113
  //#region src/component/FluxTabs.vue
23014
23114
  var FluxTabs_default = /* @__PURE__ */ defineComponent({
23015
23115
  __name: "FluxTabs",
23016
- props: /* @__PURE__ */ mergeModels({ isPills: { type: Boolean } }, {
23116
+ props: /*@__PURE__*/ mergeModels({ isPills: { type: Boolean } }, {
23017
23117
  "modelValue": { default: 0 },
23018
23118
  "modelModifiers": {}
23019
23119
  }),
@@ -23226,7 +23326,7 @@ var _hoisted_2 = [
23226
23326
  //#region src/component/FluxToggle.vue
23227
23327
  var FluxToggle_default = /* @__PURE__ */ defineComponent({
23228
23328
  __name: "FluxToggle",
23229
- props: /* @__PURE__ */ mergeModels({
23329
+ props: /*@__PURE__*/ mergeModels({
23230
23330
  disabled: { type: Boolean },
23231
23331
  error: {},
23232
23332
  isReadonly: { type: Boolean },
@@ -23420,6 +23520,6 @@ var FluxTreeView_default = /* @__PURE__ */ defineComponent({
23420
23520
  }
23421
23521
  });
23422
23522
  //#endregion
23423
- export { FluxAction_default as FluxAction, FluxActionBar_default as FluxActionBar, FluxActionPane_default as FluxActionPane, FluxActionStack_default as FluxActionStack, FluxAdaptiveGroup_default as FluxAdaptiveGroup, FluxAdaptiveSlot_default as FluxAdaptiveSlot, FluxAnimatedColors_default as FluxAnimatedColors, FluxAspectRatio_default as FluxAspectRatio, FluxAutoHeightTransition_default as FluxAutoHeightTransition, FluxAutoWidthTransition_default as FluxAutoWidthTransition, FluxAvatar_default as FluxAvatar, FluxBadge_default as FluxBadge, FluxBadgeStack_default as FluxBadgeStack, FluxBorderShine_default as FluxBorderShine, FluxBoxedIcon_default as FluxBoxedIcon, FluxBreakthroughTransition_default as FluxBreakthroughTransition, FluxButton_default as FluxButton, FluxButtonGroup_default as FluxButtonGroup, FluxButtonStack_default as FluxButtonStack, FluxCalendar_default as FluxCalendar, FluxCalendarItem_default as FluxCalendarItem, FluxCheckbox_default as FluxCheckbox, FluxChip_default as FluxChip, FluxClickablePane_default as FluxClickablePane, FluxColorPicker_default as FluxColorPicker, FluxColorSelect_default as FluxColorSelect, FluxCommandPalette_default as FluxCommandPalette, FluxCommandPaletteGroup_default as FluxCommandPaletteGroup, FluxCommandPaletteItem_default as FluxCommandPaletteItem, FluxComment_default as FluxComment, FluxContainer_default as FluxContainer, FluxDataTable_default as FluxDataTable, FluxDatePicker_default as FluxDatePicker, FluxDestructiveButton_default as FluxDestructiveButton, FluxDisabled_default as FluxDisabled, FluxDivider_default as FluxDivider, FluxDotPattern_default as FluxDotPattern, FluxDropZone_default as FluxDropZone, FluxDynamicView_default as FluxDynamicView, FluxExpandable_default as FluxExpandable, FluxExpandableGroup_default as FluxExpandableGroup, FluxFadeTransition_default as FluxFadeTransition, FluxFader_default as FluxFader, FluxFaderItem_default as FluxFaderItem, FluxFilter_default as FluxFilter, FluxFilterBar_default as FluxFilterBar, FluxFilterDate_default as FluxFilterDate, FluxFilterDateRange_default as FluxFilterDateRange, FluxFilterOption_default as FluxFilterOption, FluxFilterOptionAsync_default as FluxFilterOptionAsync, FluxFilterOptions_default as FluxFilterOptions, FluxFilterOptionsAsync_default as FluxFilterOptionsAsync, FluxFilterRange_default as FluxFilterRange, FluxFlex_default as FluxFlex, FluxFlexItem_default as FluxFlexItem, FluxFlickeringGrid_default as FluxFlickeringGrid, FluxFlyout_default as FluxFlyout, FluxFocalPointEditor_default as FluxFocalPointEditor, FluxFocalPointImage_default as FluxFocalPointImage, FluxForm_default as FluxForm, FluxFormColumn_default as FluxFormColumn, FluxFormDateInput_default as FluxFormDateInput, FluxFormDateRangeInput_default as FluxFormDateRangeInput, FluxFormDateTimeInput_default as FluxFormDateTimeInput, FluxFormField_default as FluxFormField, FluxFormFieldAddition_default as FluxFormFieldAddition, FluxFormGrid_default as FluxFormGrid, FluxFormInput_default as FluxFormInput, FluxFormInputAddition_default as FluxFormInputAddition, FluxFormInputGroup_default as FluxFormInputGroup, FluxFormPinInput_default as FluxFormPinInput, FluxFormRangeSlider_default as FluxFormRangeSlider, FluxFormRow_default as FluxFormRow, FluxFormSection_default as FluxFormSection, FluxFormSelect_default as FluxFormSelect, FluxFormSelectAsync_default as FluxFormSelectAsync, FluxFormSlider_default as FluxFormSlider, FluxFormTextArea_default as FluxFormTextArea, FluxFormTimeZonePicker_default as FluxFormTimeZonePicker, FluxFormTreeViewSelect_default as FluxFormTreeViewSelect, FluxGallery_default as FluxGallery, FluxGalleryItem_default as FluxGalleryItem, FluxGrid_default as FluxGrid, FluxGridColumn_default as FluxGridColumn, FluxGridPattern_default as FluxGridPattern, FluxIcon_default as FluxIcon, FluxInfo_default as FluxInfo, FluxInfoStack_default as FluxInfoStack, FluxItem_default as FluxItem, FluxItemActions_default as FluxItemActions, FluxItemContent_default as FluxItemContent, FluxItemMedia_default as FluxItemMedia, FluxItemStack_default as FluxItemStack, FluxKanban_default as FluxKanban, FluxKanbanColumn_default as FluxKanbanColumn, FluxKanbanItem_default as FluxKanbanItem, FluxLayerPane_default as FluxLayerPane, FluxLayerPaneSecondary_default as FluxLayerPaneSecondary, FluxLegend_default as FluxLegend, FluxLink_default as FluxLink, FluxMenu_default as FluxMenu, FluxMenuCollapsible_default as FluxMenuCollapsible, FluxMenuGroup_default as FluxMenuGroup, FluxMenuItem_default as FluxMenuItem, FluxMenuOptions_default as FluxMenuOptions, FluxMenuSubHeader_default as FluxMenuSubHeader, FluxMenuTitle_default as FluxMenuTitle, FluxNotice_default as FluxNotice, FluxNoticeStack_default as FluxNoticeStack, FluxOverflowBar_default as FluxOverflowBar, FluxOverlay_default as FluxOverlay, FluxOverlayProvider_default as FluxOverlayProvider, FluxOverlayTransition_default as FluxOverlayTransition, FluxPagination_default as FluxPagination, FluxPaginationBar_default as FluxPaginationBar, FluxPane_default as FluxPane, FluxPaneBody_default as FluxPaneBody, FluxPaneFooter_default as FluxPaneFooter, FluxPaneGroup_default as FluxPaneGroup, FluxPaneHeader_default as FluxPaneHeader, FluxPaneIllustration_default as FluxPaneIllustration, FluxPaneMedia_default as FluxPaneMedia, FluxPercentageBar_default as FluxPercentageBar, FluxPersona_default as FluxPersona, FluxPlaceholder_default as FluxPlaceholder, FluxPressable_default as FluxPressable, FluxPrimaryButton_default as FluxPrimaryButton, FluxPrimaryLinkButton_default as FluxPrimaryLinkButton, FluxProgressBar_default as FluxProgressBar, FluxPublishButton_default as FluxPublishButton, FluxQuantitySelector_default as FluxQuantitySelector, FluxRemove_default as FluxRemove, FluxRoot_default as FluxRoot, FluxRouteTransition_default as FluxRouteTransition, FluxScroller_default as FluxScroller, FluxSecondaryButton_default as FluxSecondaryButton, FluxSecondaryLinkButton_default as FluxSecondaryLinkButton, FluxSegmentedControl_default as FluxSegmentedControl, FluxSegmentedView_default as FluxSegmentedView, FluxSeparator_default as FluxSeparator, FluxSlideOver_default as FluxSlideOver, FluxSlideOverTransition_default as FluxSlideOverTransition, FluxSnackbar_default as FluxSnackbar, FluxSnackbarProvider_default as FluxSnackbarProvider, FluxSpacer_default as FluxSpacer, FluxSpacing_default as FluxSpacing, FluxSpinner_default as FluxSpinner, FluxSplitButton_default as FluxSplitButton, FluxSplitView_default as FluxSplitView, FluxSplitViewPane_default as FluxSplitViewPane, FluxStatistic_default as FluxStatistic, FluxStepper_default as FluxStepper, FluxStepperStep_default as FluxStepperStep, FluxStepperSteps_default as FluxStepperSteps, FluxSticky_default as FluxSticky, FluxTab_default as FluxTab, FluxTabBar_default as FluxTabBar, FluxTabBarItem_default as FluxTabBarItem, FluxTable_default as FluxTable, FluxTableActions_default as FluxTableActions, FluxTableBar_default as FluxTableBar, FluxTableCell_default as FluxTableCell, FluxTableHeader_default as FluxTableHeader, FluxTableRow_default as FluxTableRow, FluxTabs_default as FluxTabs, FluxTag_default as FluxTag, FluxTagStack_default as FluxTagStack, FluxTicks_default as FluxTicks, FluxTimeline_default as FluxTimeline, FluxTimelineItem_default as FluxTimelineItem, FluxToggle_default as FluxToggle, FluxToolbar_default as FluxToolbar, FluxToolbarGroup_default as FluxToolbarGroup, FluxTooltip_default as FluxTooltip, FluxTooltipProvider_default as FluxTooltipProvider, FluxTooltipTransition_default as FluxTooltipTransition, FluxTreeView_default as FluxTreeView, FluxVerticalWindowTransition_default as FluxVerticalWindowTransition, FluxWindow_default as FluxWindow, FluxWindowTransition_default as FluxWindowTransition, defineFilter, fluxRegisterIcons, iconRegistry, isFluxFilterOptionHeader, isFluxFilterOptionItem, isFluxFormSelectGroup, isFluxFormSelectOption, pickFilterCommon, showAlert, showConfirm, showPrompt, showSnackbar, useAdaptiveGroupInjection_default as useAdaptiveGroupInjection, useBreakpoints_default as useBreakpoints, useCalendarInjection_default as useCalendarInjection, useDisabled_default as useDisabled, useDisabledInjection_default as useDisabledInjection, useExpandableGroupInjection_default as useExpandableGroupInjection, useFilterInjection_default as useFilterInjection, useFluxStore, useFlyoutInjection_default as useFlyoutInjection, useFormFieldInjection_default as useFormFieldInjection, useKanbanInjection_default as useKanbanInjection, useTabBarInjection_default as useTabBarInjection, useTableInjection_default as useTableInjection, useTooltipInjection_default as useTooltipInjection };
23523
+ export { FluxAction_default as FluxAction, FluxActionBar_default as FluxActionBar, FluxActionPane_default as FluxActionPane, FluxActionStack_default as FluxActionStack, FluxAdaptiveGroup_default as FluxAdaptiveGroup, FluxAdaptiveSlot_default as FluxAdaptiveSlot, FluxAnimatedColors_default as FluxAnimatedColors, FluxAspectRatio_default as FluxAspectRatio, FluxAutoHeightTransition_default as FluxAutoHeightTransition, FluxAutoWidthTransition_default as FluxAutoWidthTransition, FluxAvatar_default as FluxAvatar, FluxBadge_default as FluxBadge, FluxBadgeStack_default as FluxBadgeStack, FluxBorderShine_default as FluxBorderShine, FluxBoxedIcon_default as FluxBoxedIcon, FluxBreakthroughTransition_default as FluxBreakthroughTransition, FluxButton_default as FluxButton, FluxButtonGroup_default as FluxButtonGroup, FluxButtonStack_default as FluxButtonStack, FluxCalendar_default as FluxCalendar, FluxCalendarItem_default as FluxCalendarItem, FluxCheckbox_default as FluxCheckbox, FluxChip_default as FluxChip, FluxClickablePane_default as FluxClickablePane, FluxColorPicker_default as FluxColorPicker, FluxColorSelect_default as FluxColorSelect, FluxCommandPalette_default as FluxCommandPalette, FluxCommandPaletteGroup_default as FluxCommandPaletteGroup, FluxCommandPaletteItem_default as FluxCommandPaletteItem, FluxComment_default as FluxComment, FluxContainer_default as FluxContainer, FluxDataTable_default as FluxDataTable, FluxDatePicker_default as FluxDatePicker, FluxDestructiveButton_default as FluxDestructiveButton, FluxDisabled_default as FluxDisabled, FluxDivider_default as FluxDivider, FluxDotPattern_default as FluxDotPattern, FluxDropZone_default as FluxDropZone, FluxDynamicView_default as FluxDynamicView, FluxExpandable_default as FluxExpandable, FluxExpandableGroup_default as FluxExpandableGroup, FluxFadeTransition_default as FluxFadeTransition, FluxFader_default as FluxFader, FluxFaderItem_default as FluxFaderItem, FluxFilter_default as FluxFilter, FluxFilterBar_default as FluxFilterBar, FluxFilterDate_default as FluxFilterDate, FluxFilterDateRange_default as FluxFilterDateRange, FluxFilterOption_default as FluxFilterOption, FluxFilterOptionAsync_default as FluxFilterOptionAsync, FluxFilterOptions_default as FluxFilterOptions, FluxFilterOptionsAsync_default as FluxFilterOptionsAsync, FluxFilterRange_default as FluxFilterRange, FluxFlex_default as FluxFlex, FluxFlexItem_default as FluxFlexItem, FluxFlickeringGrid_default as FluxFlickeringGrid, FluxFlyout_default as FluxFlyout, FluxFocalPointEditor_default as FluxFocalPointEditor, FluxFocalPointImage_default as FluxFocalPointImage, FluxForm_default as FluxForm, FluxFormColumn_default as FluxFormColumn, FluxFormDateInput_default as FluxFormDateInput, FluxFormDateRangeInput_default as FluxFormDateRangeInput, FluxFormDateTimeInput_default as FluxFormDateTimeInput, FluxFormField_default as FluxFormField, FluxFormFieldAddition_default as FluxFormFieldAddition, FluxFormGrid_default as FluxFormGrid, FluxFormInput_default as FluxFormInput, FluxFormInputAddition_default as FluxFormInputAddition, FluxFormInputGroup_default as FluxFormInputGroup, FluxFormPinInput_default as FluxFormPinInput, FluxFormRangeSlider_default as FluxFormRangeSlider, FluxFormRow_default as FluxFormRow, FluxFormSection_default as FluxFormSection, FluxFormSelect_default as FluxFormSelect, FluxFormSelectAsync_default as FluxFormSelectAsync, FluxFormSlider_default as FluxFormSlider, FluxFormTextArea_default as FluxFormTextArea, FluxFormTimeZonePicker_default as FluxFormTimeZonePicker, FluxFormTreeViewSelect_default as FluxFormTreeViewSelect, FluxGallery_default as FluxGallery, FluxGalleryItem_default as FluxGalleryItem, FluxGrid_default as FluxGrid, FluxGridColumn_default as FluxGridColumn, FluxGridPattern_default as FluxGridPattern, FluxIcon_default as FluxIcon, FluxInfo_default as FluxInfo, FluxInfoStack_default as FluxInfoStack, FluxItem_default as FluxItem, FluxItemActions_default as FluxItemActions, FluxItemContent_default as FluxItemContent, FluxItemMedia_default as FluxItemMedia, FluxItemStack_default as FluxItemStack, FluxKanban_default as FluxKanban, FluxKanbanColumn_default as FluxKanbanColumn, FluxKanbanItem_default as FluxKanbanItem, FluxLayerPane_default as FluxLayerPane, FluxLayerPaneSecondary_default as FluxLayerPaneSecondary, FluxLegend_default as FluxLegend, FluxLink_default as FluxLink, FluxMenu_default as FluxMenu, FluxMenuCollapsible_default as FluxMenuCollapsible, FluxMenuGroup_default as FluxMenuGroup, FluxMenuItem_default as FluxMenuItem, FluxMenuOptions_default as FluxMenuOptions, FluxMenuSubHeader_default as FluxMenuSubHeader, FluxMenuTitle_default as FluxMenuTitle, FluxNotice_default as FluxNotice, FluxNoticeStack_default as FluxNoticeStack, FluxOverflowBar_default as FluxOverflowBar, FluxOverlay_default as FluxOverlay, FluxOverlayProvider_default as FluxOverlayProvider, FluxOverlayTransition_default as FluxOverlayTransition, FluxPagination_default as FluxPagination, FluxPaginationBar_default as FluxPaginationBar, FluxPane_default as FluxPane, FluxPaneBody_default as FluxPaneBody, FluxPaneFooter_default as FluxPaneFooter, FluxPaneGroup_default as FluxPaneGroup, FluxPaneHeader_default as FluxPaneHeader, FluxPaneIllustration_default as FluxPaneIllustration, FluxPaneMedia_default as FluxPaneMedia, FluxPercentageBar_default as FluxPercentageBar, FluxPersona_default as FluxPersona, FluxPlaceholder_default as FluxPlaceholder, FluxPressable_default as FluxPressable, FluxPrimaryButton_default as FluxPrimaryButton, FluxPrimaryLinkButton_default as FluxPrimaryLinkButton, FluxProgressBar_default as FluxProgressBar, FluxPublishButton_default as FluxPublishButton, FluxQuantitySelector_default as FluxQuantitySelector, FluxRemove_default as FluxRemove, FluxRoot_default as FluxRoot, FluxRouteTransition_default as FluxRouteTransition, FluxScroller_default as FluxScroller, FluxSecondaryButton_default as FluxSecondaryButton, FluxSecondaryLinkButton_default as FluxSecondaryLinkButton, FluxSegmentedControl_default as FluxSegmentedControl, FluxSegmentedControlItem_default as FluxSegmentedControlItem, FluxSeparator_default as FluxSeparator, FluxSlideOver_default as FluxSlideOver, FluxSlideOverTransition_default as FluxSlideOverTransition, FluxSnackbar_default as FluxSnackbar, FluxSnackbarProvider_default as FluxSnackbarProvider, FluxSpacer_default as FluxSpacer, FluxSpacing_default as FluxSpacing, FluxSpinner_default as FluxSpinner, FluxSplitButton_default as FluxSplitButton, FluxSplitView_default as FluxSplitView, FluxSplitViewPane_default as FluxSplitViewPane, FluxStatistic_default as FluxStatistic, FluxStepper_default as FluxStepper, FluxStepperStep_default as FluxStepperStep, FluxStepperSteps_default as FluxStepperSteps, FluxSticky_default as FluxSticky, FluxTab_default as FluxTab, FluxTabBar_default as FluxTabBar, FluxTabBarItem_default as FluxTabBarItem, FluxTable_default as FluxTable, FluxTableActions_default as FluxTableActions, FluxTableBar_default as FluxTableBar, FluxTableCell_default as FluxTableCell, FluxTableHeader_default as FluxTableHeader, FluxTableRow_default as FluxTableRow, FluxTabs_default as FluxTabs, FluxTag_default as FluxTag, FluxTagStack_default as FluxTagStack, FluxTicks_default as FluxTicks, FluxTimeline_default as FluxTimeline, FluxTimelineItem_default as FluxTimelineItem, FluxToggle_default as FluxToggle, FluxToolbar_default as FluxToolbar, FluxToolbarGroup_default as FluxToolbarGroup, FluxTooltip_default as FluxTooltip, FluxTooltipProvider_default as FluxTooltipProvider, FluxTooltipTransition_default as FluxTooltipTransition, FluxTreeView_default as FluxTreeView, FluxVerticalWindowTransition_default as FluxVerticalWindowTransition, FluxWindow_default as FluxWindow, FluxWindowTransition_default as FluxWindowTransition, defineFilter, fluxRegisterIcons, iconRegistry, isFluxFilterOptionHeader, isFluxFilterOptionItem, isFluxFormSelectGroup, isFluxFormSelectOption, pickFilterCommon, showAlert, showConfirm, showPrompt, showSnackbar, useAdaptiveGroupInjection_default as useAdaptiveGroupInjection, useBreakpoints_default as useBreakpoints, useCalendarInjection_default as useCalendarInjection, useDisabled_default as useDisabled, useDisabledInjection_default as useDisabledInjection, useExpandableGroupInjection_default as useExpandableGroupInjection, useFilterInjection_default as useFilterInjection, useFluxStore, useFlyoutInjection_default as useFlyoutInjection, useFormFieldInjection_default as useFormFieldInjection, useKanbanInjection_default as useKanbanInjection, useSegmentedControlInjection_default as useSegmentedControlInjection, useTabBarInjection_default as useTabBarInjection, useTableInjection_default as useTableInjection, useTooltipInjection_default as useTooltipInjection };
23424
23524
 
23425
23525
  //# sourceMappingURL=index.js.map