@strands.gg/accui 2.3.10 → 2.3.11

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.
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, provide, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass, renderSlot, createBlock, Teleport, createCommentVNode, unref, createElementVNode, toDisplayString, createTextVNode, h, useSlots, resolveDynamicComponent, mergeProps, withCtx, Fragment, ref, nextTick, toRefs, watch, normalizeStyle, renderList, reactive, withModifiers, createStaticVNode, createVNode, withDirectives, vModelText, Transition, createSlots, vModelSelect, inject, onBeforeUnmount, withKeys, isMemoSame, getCurrentInstance } from "vue";
1
+ import { defineComponent, computed, provide, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass, renderSlot, createBlock, Teleport, createCommentVNode, unref, createElementVNode, toDisplayString, createTextVNode, h, useSlots, Fragment, resolveDynamicComponent, normalizeStyle, createVNode, withCtx, resolveComponent, ref, nextTick, toRefs, watch, renderList, reactive, withModifiers, createStaticVNode, withDirectives, vModelText, Transition, createSlots, vModelSelect, inject, onBeforeUnmount, withKeys, isMemoSame, getCurrentInstance } from "vue";
2
2
  import { u as useStrandsConfig, p as provideStrandsConfig } from "./useStrandsConfig-C3gBJK6y.es.js";
3
3
  import { s } from "./useStrandsConfig-C3gBJK6y.es.js";
4
4
  import { u as useStrandsAuth } from "./useStrandsAuth-DoUupKb8.es.js";
@@ -49,11 +49,11 @@ if (typeof window !== "undefined") {
49
49
  modalStack.cleanup();
50
50
  });
51
51
  }
52
- const _hoisted_1$G = {
52
+ const _hoisted_1$J = {
53
53
  key: 0,
54
54
  class: "ui-app-modal-overlay"
55
55
  };
56
- const _hoisted_2$z = {
56
+ const _hoisted_2$A = {
57
57
  key: 0,
58
58
  class: "ui-app-loading-overlay"
59
59
  };
@@ -62,7 +62,7 @@ const _hoisted_4$u = {
62
62
  key: 0,
63
63
  class: "ui-app-loading-message"
64
64
  };
65
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
65
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
66
66
  __name: "UiApp",
67
67
  props: {
68
68
  theme: { default: "auto" },
@@ -111,13 +111,13 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
111
111
  }, [
112
112
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
113
113
  (openBlock(), createBlock(Teleport, { to: "body" }, [
114
- unref(modalStack).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$G)) : createCommentVNode("", true)
114
+ unref(modalStack).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$J)) : createCommentVNode("", true)
115
115
  ])),
116
116
  (openBlock(), createBlock(Teleport, { to: "body" }, [
117
117
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "ui-app-notifications" }, null, -1))
118
118
  ])),
119
119
  (openBlock(), createBlock(Teleport, { to: "body" }, [
120
- isGlobalLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$z, [
120
+ isGlobalLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$A, [
121
121
  createElementVNode("div", _hoisted_3$x, [
122
122
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "ui-app-loading-spinner" }, null, -1)),
123
123
  _ctx.loadingMessage ? (openBlock(), createElementBlock("p", _hoisted_4$u, toDisplayString(_ctx.loadingMessage), 1)) : createCommentVNode("", true)
@@ -135,9 +135,9 @@ const _export_sfc = (sfc, props) => {
135
135
  }
136
136
  return target;
137
137
  };
138
- const UiApp = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-942fd7a0"]]);
139
- const _hoisted_1$F = { class: "accui-component-scope" };
140
- const _hoisted_2$y = { class: "alert-content" };
138
+ const UiApp = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-942fd7a0"]]);
139
+ const _hoisted_1$I = { class: "accui-component-scope" };
140
+ const _hoisted_2$z = { class: "alert-content" };
141
141
  const _hoisted_3$w = { class: "alert-icon-container" };
142
142
  const _hoisted_4$t = {
143
143
  class: "alert-main-icon",
@@ -151,7 +151,7 @@ const _hoisted_7$m = {
151
151
  key: 0,
152
152
  class: "alert-dismiss-container"
153
153
  };
154
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
154
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
155
155
  __name: "UiAlert",
156
156
  props: {
157
157
  variant: { default: "info" },
@@ -187,12 +187,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
187
187
  return icons[props.variant];
188
188
  });
189
189
  return (_ctx, _cache) => {
190
- return openBlock(), createElementBlock("div", _hoisted_1$F, [
190
+ return openBlock(), createElementBlock("div", _hoisted_1$I, [
191
191
  createElementVNode("div", {
192
192
  class: normalizeClass(alertClasses.value),
193
193
  role: "alert"
194
194
  }, [
195
- createElementVNode("div", _hoisted_2$y, [
195
+ createElementVNode("div", _hoisted_2$z, [
196
196
  createElementVNode("div", _hoisted_3$w, [
197
197
  (openBlock(), createElementBlock("svg", _hoisted_4$t, [
198
198
  createElementVNode("path", {
@@ -241,7 +241,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
241
241
  };
242
242
  }
243
243
  });
244
- const StrandsUiAlert = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-1beb49ad"]]);
244
+ const StrandsUiAlert = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-1beb49ad"]]);
245
245
  /**
246
246
  * @license lucide-vue-next v0.542.0 - ISC
247
247
  *
@@ -613,11 +613,11 @@ const Users = createLucideIcon("users", [
613
613
  ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
614
614
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
615
615
  ]);
616
- const _hoisted_1$E = {
616
+ const _hoisted_1$H = {
617
617
  key: 0,
618
618
  class: "button-loading-content"
619
619
  };
620
- const _hoisted_2$x = { key: 0 };
620
+ const _hoisted_2$y = { key: 0 };
621
621
  const _hoisted_3$v = {
622
622
  key: 1,
623
623
  class: "button-content"
@@ -630,26 +630,16 @@ const _hoisted_5$p = {
630
630
  key: 1,
631
631
  class: "trailing-icon"
632
632
  };
633
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
634
- __name: "UiButton",
633
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
634
+ __name: "UiButton.Content",
635
635
  props: {
636
- variant: { default: "primary" },
637
- size: { default: "md" },
638
- type: { default: "button" },
639
- disabled: { type: Boolean, default: false },
640
636
  loading: { type: Boolean, default: false },
641
637
  loadingText: {},
642
- fullWidth: { type: Boolean, default: false },
643
- color: { default: "primary" },
644
- fontWeight: { default: 600 },
645
638
  icon: { type: Boolean, default: false },
646
639
  iconName: {},
647
640
  leadingIcon: {},
648
- trailingIcon: {},
649
- squircle: { type: Boolean, default: false },
650
- to: {}
641
+ trailingIcon: {}
651
642
  },
652
- emits: ["click"],
653
643
  setup(__props) {
654
644
  const LucideIcons = {
655
645
  Plus,
@@ -676,35 +666,289 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
676
666
  const LeadingIconComponent = computed(() => props.leadingIcon ? getLucideIcon(props.leadingIcon) : null);
677
667
  const TrailingIconComponent = computed(() => props.trailingIcon ? getLucideIcon(props.trailingIcon) : null);
678
668
  const IconComponent = computed(() => props.iconName ? getLucideIcon(props.iconName) : null);
679
- const componentTag = computed(() => {
680
- if (!props.to) return "button";
669
+ return (_ctx, _cache) => {
670
+ return _ctx.loading ? (openBlock(), createElementBlock("span", _hoisted_1$H, [
671
+ _cache[0] || (_cache[0] = createElementVNode("svg", {
672
+ class: "button-loading-icon",
673
+ fill: "none",
674
+ viewBox: "0 0 24 24"
675
+ }, [
676
+ createElementVNode("circle", {
677
+ class: "button-loading-track",
678
+ cx: "12",
679
+ cy: "12",
680
+ r: "10",
681
+ stroke: "currentColor",
682
+ "stroke-width": "4"
683
+ }),
684
+ createElementVNode("path", {
685
+ class: "button-loading-spinner",
686
+ fill: "currentColor",
687
+ d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
688
+ })
689
+ ], -1)),
690
+ !_ctx.icon ? (openBlock(), createElementBlock("span", _hoisted_2$y, toDisplayString(_ctx.loadingText || "Loading..."), 1)) : createCommentVNode("", true)
691
+ ])) : (openBlock(), createElementBlock("span", _hoisted_3$v, [
692
+ _ctx.icon ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
693
+ IconComponent.value && !unref(slots)["default"] ? (openBlock(), createBlock(resolveDynamicComponent(IconComponent.value), { key: 0 })) : renderSlot(_ctx.$slots, "default", { key: 1 })
694
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
695
+ IconComponent.value || LeadingIconComponent.value || unref(slots)["leading-icon"] ? (openBlock(), createElementBlock("span", _hoisted_4$s, [
696
+ IconComponent.value && !LeadingIconComponent.value && !unref(slots)["leading-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(IconComponent.value), { key: 0 })) : createCommentVNode("", true),
697
+ LeadingIconComponent.value && !unref(slots)["leading-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(LeadingIconComponent.value), { key: 1 })) : createCommentVNode("", true),
698
+ unref(slots)["leading-icon"] ? renderSlot(_ctx.$slots, "leading-icon", { key: 2 }) : createCommentVNode("", true)
699
+ ])) : createCommentVNode("", true),
700
+ renderSlot(_ctx.$slots, "icon"),
701
+ renderSlot(_ctx.$slots, "default"),
702
+ TrailingIconComponent.value || unref(slots)["trailing-icon"] ? (openBlock(), createElementBlock("span", _hoisted_5$p, [
703
+ TrailingIconComponent.value && !unref(slots)["trailing-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(TrailingIconComponent.value), { key: 0 })) : createCommentVNode("", true),
704
+ unref(slots)["trailing-icon"] ? renderSlot(_ctx.$slots, "trailing-icon", { key: 1 }) : createCommentVNode("", true)
705
+ ])) : createCommentVNode("", true)
706
+ ], 64))
707
+ ]));
708
+ };
709
+ }
710
+ });
711
+ const _hoisted_1$G = ["href", "target", "rel"];
712
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
713
+ __name: "UiButton.Anchor",
714
+ props: {
715
+ to: {},
716
+ href: {},
717
+ external: { type: Boolean, default: false },
718
+ disabled: { type: Boolean, default: false },
719
+ loading: { type: Boolean, default: false },
720
+ loadingText: {},
721
+ icon: { type: Boolean, default: false },
722
+ iconName: {},
723
+ leadingIcon: {},
724
+ trailingIcon: {},
725
+ buttonClasses: {},
726
+ buttonStyles: {}
727
+ },
728
+ emits: ["click"],
729
+ setup(__props, { emit: __emit }) {
730
+ const props = __props;
731
+ const emit = __emit;
732
+ const computedHref = computed(() => {
733
+ if (props.href) {
734
+ return props.href;
735
+ } else if (props.to) {
736
+ if (typeof props.to === "string") {
737
+ return props.to;
738
+ } else if (typeof props.to === "object" && props.to) {
739
+ return "#route-object-not-supported";
740
+ }
741
+ }
742
+ return "#";
743
+ });
744
+ const handleLinkClick = (event) => {
745
+ if (props.disabled || props.loading) {
746
+ event.preventDefault();
747
+ return;
748
+ }
749
+ emit("click", event);
750
+ };
751
+ return (_ctx, _cache) => {
752
+ return openBlock(), createElementBlock("a", {
753
+ href: computedHref.value,
754
+ target: _ctx.external ? "_blank" : void 0,
755
+ rel: _ctx.external ? "noopener noreferrer" : void 0,
756
+ class: normalizeClass(_ctx.buttonClasses),
757
+ style: normalizeStyle(_ctx.buttonStyles),
758
+ onClick: handleLinkClick
759
+ }, [
760
+ createVNode(_sfc_main$M, {
761
+ loading: _ctx.loading,
762
+ "loading-text": _ctx.loadingText,
763
+ icon: _ctx.icon,
764
+ "icon-name": _ctx.iconName,
765
+ "leading-icon": _ctx.leadingIcon,
766
+ "trailing-icon": _ctx.trailingIcon
767
+ }, {
768
+ "leading-icon": withCtx(() => [
769
+ renderSlot(_ctx.$slots, "leading-icon")
770
+ ]),
771
+ icon: withCtx(() => [
772
+ renderSlot(_ctx.$slots, "icon")
773
+ ]),
774
+ default: withCtx(() => [
775
+ renderSlot(_ctx.$slots, "default")
776
+ ]),
777
+ "trailing-icon": withCtx(() => [
778
+ renderSlot(_ctx.$slots, "trailing-icon")
779
+ ]),
780
+ _: 3
781
+ }, 8, ["loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon"])
782
+ ], 14, _hoisted_1$G);
783
+ };
784
+ }
785
+ });
786
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
787
+ __name: "UiButton.Nuxt",
788
+ props: {
789
+ to: {},
790
+ disabled: { type: Boolean, default: false },
791
+ loading: { type: Boolean, default: false },
792
+ loadingText: {},
793
+ icon: { type: Boolean, default: false },
794
+ iconName: {},
795
+ leadingIcon: {},
796
+ trailingIcon: {},
797
+ buttonClasses: {},
798
+ buttonStyles: {}
799
+ },
800
+ emits: ["click"],
801
+ setup(__props, { emit: __emit }) {
802
+ const props = __props;
803
+ const emit = __emit;
804
+ const handleLinkClick = (event) => {
805
+ if (props.disabled || props.loading) {
806
+ event.preventDefault();
807
+ return;
808
+ }
809
+ emit("click", event);
810
+ };
811
+ return (_ctx, _cache) => {
812
+ const _component_nuxt_link = resolveComponent("nuxt-link");
813
+ return openBlock(), createBlock(_component_nuxt_link, {
814
+ to: _ctx.to,
815
+ class: normalizeClass(_ctx.buttonClasses),
816
+ style: normalizeStyle(_ctx.buttonStyles),
817
+ onClick: handleLinkClick
818
+ }, {
819
+ default: withCtx(() => [
820
+ createVNode(_sfc_main$M, {
821
+ loading: _ctx.loading,
822
+ "loading-text": _ctx.loadingText,
823
+ icon: _ctx.icon,
824
+ "icon-name": _ctx.iconName,
825
+ "leading-icon": _ctx.leadingIcon,
826
+ "trailing-icon": _ctx.trailingIcon
827
+ }, {
828
+ "leading-icon": withCtx(() => [
829
+ renderSlot(_ctx.$slots, "leading-icon")
830
+ ]),
831
+ icon: withCtx(() => [
832
+ renderSlot(_ctx.$slots, "icon")
833
+ ]),
834
+ default: withCtx(() => [
835
+ renderSlot(_ctx.$slots, "default")
836
+ ]),
837
+ "trailing-icon": withCtx(() => [
838
+ renderSlot(_ctx.$slots, "trailing-icon")
839
+ ]),
840
+ _: 3
841
+ }, 8, ["loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon"])
842
+ ]),
843
+ _: 3
844
+ }, 8, ["to", "class", "style"]);
845
+ };
846
+ }
847
+ });
848
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
849
+ __name: "UiButton.Vue",
850
+ props: {
851
+ to: {},
852
+ disabled: { type: Boolean, default: false },
853
+ loading: { type: Boolean, default: false },
854
+ loadingText: {},
855
+ icon: { type: Boolean, default: false },
856
+ iconName: {},
857
+ leadingIcon: {},
858
+ trailingIcon: {},
859
+ buttonClasses: {},
860
+ buttonStyles: {}
861
+ },
862
+ emits: ["click"],
863
+ setup(__props, { emit: __emit }) {
864
+ const props = __props;
865
+ const emit = __emit;
866
+ const handleLinkClick = (event) => {
867
+ if (props.disabled || props.loading) {
868
+ event.preventDefault();
869
+ return;
870
+ }
871
+ emit("click", event);
872
+ };
873
+ return (_ctx, _cache) => {
874
+ const _component_router_link = resolveComponent("router-link");
875
+ return openBlock(), createBlock(_component_router_link, {
876
+ to: _ctx.to,
877
+ class: normalizeClass(_ctx.buttonClasses),
878
+ style: normalizeStyle(_ctx.buttonStyles),
879
+ onClick: handleLinkClick
880
+ }, {
881
+ default: withCtx(() => [
882
+ createVNode(_sfc_main$M, {
883
+ loading: _ctx.loading,
884
+ "loading-text": _ctx.loadingText,
885
+ icon: _ctx.icon,
886
+ "icon-name": _ctx.iconName,
887
+ "leading-icon": _ctx.leadingIcon,
888
+ "trailing-icon": _ctx.trailingIcon
889
+ }, {
890
+ "leading-icon": withCtx(() => [
891
+ renderSlot(_ctx.$slots, "leading-icon")
892
+ ]),
893
+ icon: withCtx(() => [
894
+ renderSlot(_ctx.$slots, "icon")
895
+ ]),
896
+ default: withCtx(() => [
897
+ renderSlot(_ctx.$slots, "default")
898
+ ]),
899
+ "trailing-icon": withCtx(() => [
900
+ renderSlot(_ctx.$slots, "trailing-icon")
901
+ ]),
902
+ _: 3
903
+ }, 8, ["loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon"])
904
+ ]),
905
+ _: 3
906
+ }, 8, ["to", "class", "style"]);
907
+ };
908
+ }
909
+ });
910
+ const _hoisted_1$F = ["type", "disabled"];
911
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
912
+ __name: "UiButton",
913
+ props: {
914
+ variant: { default: "primary" },
915
+ size: { default: "md" },
916
+ type: { default: "button" },
917
+ disabled: { type: Boolean, default: false },
918
+ loading: { type: Boolean, default: false },
919
+ loadingText: {},
920
+ fullWidth: { type: Boolean, default: false },
921
+ color: { default: "primary" },
922
+ fontWeight: { default: 600 },
923
+ icon: { type: Boolean, default: false },
924
+ iconName: {},
925
+ leadingIcon: {},
926
+ trailingIcon: {},
927
+ squircle: { type: Boolean, default: false },
928
+ to: {},
929
+ href: {},
930
+ external: { type: Boolean, default: false }
931
+ },
932
+ emits: ["click"],
933
+ setup(__props, { emit: __emit }) {
934
+ const props = __props;
935
+ const isNuxtAvailable = computed(() => {
681
936
  if (typeof process !== "undefined" && process.client !== void 0) {
682
- return "nuxt-link";
937
+ return true;
683
938
  }
684
939
  if (typeof window !== "undefined" && (window.__NUXT__ || window.$nuxt)) {
685
- return "nuxt-link";
940
+ return true;
686
941
  }
942
+ return false;
943
+ });
944
+ const isVueRouterAvailable = computed(() => {
687
945
  try {
688
946
  if (typeof window !== "undefined" && window.Vue?.Router) {
689
- return "router-link";
947
+ return true;
690
948
  }
691
949
  } catch (e) {
692
950
  }
693
- return "a";
694
- });
695
- const linkProps = computed(() => {
696
- if (!props.to) return {};
697
- const tag = componentTag.value;
698
- if (tag === "nuxt-link" || tag === "router-link") {
699
- return { to: props.to };
700
- }
701
- if (tag === "a") {
702
- if (typeof props.to === "object") {
703
- return { href: "#route-object-not-supported" };
704
- }
705
- return { href: props.to };
706
- }
707
- return {};
951
+ return false;
708
952
  });
709
953
  const buttonClasses = computed(() => {
710
954
  const classes = [
@@ -726,64 +970,129 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
726
970
  };
727
971
  });
728
972
  return (_ctx, _cache) => {
729
- return openBlock(), createBlock(resolveDynamicComponent(componentTag.value), mergeProps(linkProps.value, {
730
- type: componentTag.value === "button" ? _ctx.type : void 0,
973
+ return !_ctx.to ? (openBlock(), createElementBlock("button", {
974
+ key: 0,
975
+ type: _ctx.type,
731
976
  disabled: _ctx.disabled || _ctx.loading,
732
- class: buttonClasses.value,
733
- style: buttonStyles.value,
977
+ class: normalizeClass(buttonClasses.value),
978
+ style: normalizeStyle(buttonStyles.value),
734
979
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
735
- }), {
980
+ }, [
981
+ createVNode(_sfc_main$M, {
982
+ loading: _ctx.loading,
983
+ "loading-text": _ctx.loadingText,
984
+ icon: _ctx.icon,
985
+ "icon-name": _ctx.iconName,
986
+ "leading-icon": _ctx.leadingIcon,
987
+ "trailing-icon": _ctx.trailingIcon
988
+ }, {
989
+ "leading-icon": withCtx(() => [
990
+ renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
991
+ ]),
992
+ icon: withCtx(() => [
993
+ renderSlot(_ctx.$slots, "icon", {}, void 0, true)
994
+ ]),
995
+ default: withCtx(() => [
996
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
997
+ ]),
998
+ "trailing-icon": withCtx(() => [
999
+ renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
1000
+ ]),
1001
+ _: 3
1002
+ }, 8, ["loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon"])
1003
+ ], 14, _hoisted_1$F)) : isNuxtAvailable.value && _ctx.to ? (openBlock(), createBlock(_sfc_main$K, {
1004
+ key: 1,
1005
+ to: _ctx.to,
1006
+ disabled: _ctx.disabled,
1007
+ loading: _ctx.loading,
1008
+ "loading-text": _ctx.loadingText,
1009
+ icon: _ctx.icon,
1010
+ "icon-name": _ctx.iconName,
1011
+ "leading-icon": _ctx.leadingIcon,
1012
+ "trailing-icon": _ctx.trailingIcon,
1013
+ "button-classes": buttonClasses.value,
1014
+ "button-styles": buttonStyles.value,
1015
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("click", $event))
1016
+ }, {
1017
+ "leading-icon": withCtx(() => [
1018
+ renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
1019
+ ]),
1020
+ icon: withCtx(() => [
1021
+ renderSlot(_ctx.$slots, "icon", {}, void 0, true)
1022
+ ]),
736
1023
  default: withCtx(() => [
737
- _ctx.loading ? (openBlock(), createElementBlock("span", _hoisted_1$E, [
738
- _cache[1] || (_cache[1] = createElementVNode("svg", {
739
- class: "button-loading-icon",
740
- fill: "none",
741
- viewBox: "0 0 24 24"
742
- }, [
743
- createElementVNode("circle", {
744
- class: "button-loading-track",
745
- cx: "12",
746
- cy: "12",
747
- r: "10",
748
- stroke: "currentColor",
749
- "stroke-width": "4"
750
- }),
751
- createElementVNode("path", {
752
- class: "button-loading-spinner",
753
- fill: "currentColor",
754
- d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
755
- })
756
- ], -1)),
757
- !_ctx.icon ? (openBlock(), createElementBlock("span", _hoisted_2$x, toDisplayString(_ctx.loadingText || "Loading..."), 1)) : createCommentVNode("", true)
758
- ])) : (openBlock(), createElementBlock("span", _hoisted_3$v, [
759
- _ctx.icon ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
760
- IconComponent.value && !unref(slots)["default"] ? (openBlock(), createBlock(resolveDynamicComponent(IconComponent.value), { key: 0 })) : renderSlot(_ctx.$slots, "default", { key: 1 }, void 0, true)
761
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
762
- IconComponent.value || LeadingIconComponent.value || unref(slots)["leading-icon"] ? (openBlock(), createElementBlock("span", _hoisted_4$s, [
763
- IconComponent.value && !LeadingIconComponent.value && !unref(slots)["leading-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(IconComponent.value), { key: 0 })) : createCommentVNode("", true),
764
- LeadingIconComponent.value && !unref(slots)["leading-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(LeadingIconComponent.value), { key: 1 })) : createCommentVNode("", true),
765
- unref(slots)["leading-icon"] ? renderSlot(_ctx.$slots, "leading-icon", { key: 2 }, void 0, true) : createCommentVNode("", true)
766
- ])) : createCommentVNode("", true),
767
- renderSlot(_ctx.$slots, "icon", {}, void 0, true),
768
- renderSlot(_ctx.$slots, "default", {}, void 0, true),
769
- TrailingIconComponent.value || unref(slots)["trailing-icon"] ? (openBlock(), createElementBlock("span", _hoisted_5$p, [
770
- TrailingIconComponent.value && !unref(slots)["trailing-icon"] ? (openBlock(), createBlock(resolveDynamicComponent(TrailingIconComponent.value), { key: 0 })) : createCommentVNode("", true),
771
- unref(slots)["trailing-icon"] ? renderSlot(_ctx.$slots, "trailing-icon", { key: 1 }, void 0, true) : createCommentVNode("", true)
772
- ])) : createCommentVNode("", true)
773
- ], 64))
774
- ]))
1024
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
1025
+ ]),
1026
+ "trailing-icon": withCtx(() => [
1027
+ renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
775
1028
  ]),
776
1029
  _: 3
777
- }, 16, ["type", "disabled", "class", "style"]);
1030
+ }, 8, ["to", "disabled", "loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon", "button-classes", "button-styles"])) : isVueRouterAvailable.value && _ctx.to ? (openBlock(), createBlock(_sfc_main$J, {
1031
+ key: 2,
1032
+ to: _ctx.to,
1033
+ disabled: _ctx.disabled,
1034
+ loading: _ctx.loading,
1035
+ "loading-text": _ctx.loadingText,
1036
+ icon: _ctx.icon,
1037
+ "icon-name": _ctx.iconName,
1038
+ "leading-icon": _ctx.leadingIcon,
1039
+ "trailing-icon": _ctx.trailingIcon,
1040
+ "button-classes": buttonClasses.value,
1041
+ "button-styles": buttonStyles.value,
1042
+ onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("click", $event))
1043
+ }, {
1044
+ "leading-icon": withCtx(() => [
1045
+ renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
1046
+ ]),
1047
+ icon: withCtx(() => [
1048
+ renderSlot(_ctx.$slots, "icon", {}, void 0, true)
1049
+ ]),
1050
+ default: withCtx(() => [
1051
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
1052
+ ]),
1053
+ "trailing-icon": withCtx(() => [
1054
+ renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
1055
+ ]),
1056
+ _: 3
1057
+ }, 8, ["to", "disabled", "loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon", "button-classes", "button-styles"])) : (openBlock(), createBlock(_sfc_main$L, {
1058
+ key: 3,
1059
+ to: _ctx.to,
1060
+ href: _ctx.href,
1061
+ external: _ctx.external,
1062
+ disabled: _ctx.disabled,
1063
+ loading: _ctx.loading,
1064
+ "loading-text": _ctx.loadingText,
1065
+ icon: _ctx.icon,
1066
+ "icon-name": _ctx.iconName,
1067
+ "leading-icon": _ctx.leadingIcon,
1068
+ "trailing-icon": _ctx.trailingIcon,
1069
+ "button-classes": buttonClasses.value,
1070
+ "button-styles": buttonStyles.value,
1071
+ onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("click", $event))
1072
+ }, {
1073
+ "leading-icon": withCtx(() => [
1074
+ renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
1075
+ ]),
1076
+ icon: withCtx(() => [
1077
+ renderSlot(_ctx.$slots, "icon", {}, void 0, true)
1078
+ ]),
1079
+ default: withCtx(() => [
1080
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
1081
+ ]),
1082
+ "trailing-icon": withCtx(() => [
1083
+ renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
1084
+ ]),
1085
+ _: 3
1086
+ }, 8, ["to", "href", "external", "disabled", "loading", "loading-text", "icon", "icon-name", "leading-icon", "trailing-icon", "button-classes", "button-styles"]));
778
1087
  };
779
1088
  }
780
1089
  });
781
- const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-0a40a982"]]);
782
- const _hoisted_1$D = {
1090
+ const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-5fdcd316"]]);
1091
+ const _hoisted_1$E = {
783
1092
  key: 0,
784
1093
  class: "ui-card-header"
785
1094
  };
786
- const _hoisted_2$w = { class: "ui-card-content" };
1095
+ const _hoisted_2$x = { class: "ui-card-content" };
787
1096
  const _hoisted_3$u = {
788
1097
  key: 1,
789
1098
  class: "ui-card-footer"
@@ -806,10 +1115,10 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
806
1115
  `ui-card-color-${_ctx.color}`
807
1116
  ]])
808
1117
  }, [
809
- _ctx.$slots["header"] ? (openBlock(), createElementBlock("div", _hoisted_1$D, [
1118
+ _ctx.$slots["header"] ? (openBlock(), createElementBlock("div", _hoisted_1$E, [
810
1119
  renderSlot(_ctx.$slots, "header", {}, void 0, true)
811
1120
  ])) : createCommentVNode("", true),
812
- createElementVNode("div", _hoisted_2$w, [
1121
+ createElementVNode("div", _hoisted_2$x, [
813
1122
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
814
1123
  ]),
815
1124
  _ctx.$slots["footer"] ? (openBlock(), createElementBlock("div", _hoisted_3$u, [
@@ -820,8 +1129,8 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
820
1129
  }
821
1130
  });
822
1131
  const StrandsUiCard = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-d4383926"]]);
823
- const _hoisted_1$C = { class: "accui-component-scope" };
824
- const _hoisted_2$v = { class: "input-container" };
1132
+ const _hoisted_1$D = { class: "accui-component-scope" };
1133
+ const _hoisted_2$w = { class: "input-container" };
825
1134
  const _hoisted_3$t = ["for"];
826
1135
  const _hoisted_4$r = {
827
1136
  key: 0,
@@ -938,8 +1247,8 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
938
1247
  showPassword.value = !showPassword.value;
939
1248
  };
940
1249
  return (_ctx, _cache) => {
941
- return openBlock(), createElementBlock("div", _hoisted_1$C, [
942
- createElementVNode("div", _hoisted_2$v, [
1250
+ return openBlock(), createElementBlock("div", _hoisted_1$D, [
1251
+ createElementVNode("div", _hoisted_2$w, [
943
1252
  _ctx.label ? (openBlock(), createElementBlock("label", {
944
1253
  key: 0,
945
1254
  for: inputId.value,
@@ -1027,6 +1336,8 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1027
1336
  }
1028
1337
  });
1029
1338
  const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-26b9fb0d"]]);
1339
+ const _hoisted_1$C = ["disabled", "aria-disabled"];
1340
+ const _hoisted_2$v = ["href", "target", "rel", "aria-disabled"];
1030
1341
  const _sfc_main$F = /* @__PURE__ */ defineComponent({
1031
1342
  __name: "UiLink",
1032
1343
  props: {
@@ -1042,56 +1353,17 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1042
1353
  setup(__props, { emit: __emit }) {
1043
1354
  const props = __props;
1044
1355
  const emit = __emit;
1045
- const tag = computed(() => {
1046
- if (props.to) {
1047
- if (typeof process !== "undefined" && process.client !== void 0) {
1048
- return "nuxt-link";
1049
- }
1050
- if (typeof window !== "undefined" && (window.__NUXT__ || window.$nuxt)) {
1051
- return "nuxt-link";
1052
- }
1053
- try {
1054
- if (typeof window !== "undefined" && window.Vue?.Router) {
1055
- return "router-link";
1056
- }
1057
- } catch (e) {
1058
- }
1059
- return "a";
1060
- }
1061
- if (props.href) return "a";
1062
- return "button";
1063
- });
1064
- const linkProps = computed(() => {
1065
- const baseProps = {};
1066
- const currentTag = tag.value;
1067
- if (props.to) {
1068
- if (currentTag === "nuxt-link" || currentTag === "router-link") {
1069
- baseProps["to"] = props.to;
1070
- } else if (currentTag === "a") {
1071
- if (typeof props.to === "object") {
1072
- baseProps["href"] = "#route-object-not-supported";
1073
- } else {
1074
- baseProps["href"] = props.to;
1075
- if (props.external) {
1076
- baseProps["target"] = "_blank";
1077
- baseProps["rel"] = "noopener noreferrer";
1078
- }
1079
- }
1080
- }
1081
- } else if (props.href) {
1082
- baseProps["href"] = props.href;
1083
- if (props.external) {
1084
- baseProps["target"] = "_blank";
1085
- baseProps["rel"] = "noopener noreferrer";
1356
+ const computedHref = computed(() => {
1357
+ if (props.href) {
1358
+ return props.href;
1359
+ } else if (props.to) {
1360
+ if (typeof props.to === "string") {
1361
+ return props.to;
1362
+ } else if (typeof props.to === "object" && props.to) {
1363
+ return "#route-object-not-supported";
1086
1364
  }
1087
- } else {
1088
- baseProps["type"] = "button";
1089
- }
1090
- if (props.disabled) {
1091
- baseProps["disabled"] = true;
1092
- baseProps["aria-disabled"] = true;
1093
1365
  }
1094
- return baseProps;
1366
+ return "#";
1095
1367
  });
1096
1368
  function getCurrentAccentColor() {
1097
1369
  if (typeof window !== "undefined") {
@@ -1143,24 +1415,42 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1143
1415
  }
1144
1416
  };
1145
1417
  return (_ctx, _cache) => {
1146
- return openBlock(), createBlock(resolveDynamicComponent(tag.value), mergeProps({
1147
- class: ["ui-link", [
1418
+ return !_ctx.to && !_ctx.href ? (openBlock(), createElementBlock("button", {
1419
+ key: 0,
1420
+ type: "button",
1421
+ class: normalizeClass(["ui-link", [
1148
1422
  `ui-link-${_ctx.variant}`,
1149
1423
  `ui-link-${_ctx.size}`,
1150
1424
  { "ui-link-disabled": _ctx.disabled },
1151
1425
  { "ui-link-custom-color": _ctx.color }
1152
- ]],
1153
- style: linkStyles.value
1154
- }, linkProps.value, { onClick: handleClick }), {
1155
- default: withCtx(() => [
1156
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
1157
- ]),
1158
- _: 3
1159
- }, 16, ["class", "style"]);
1426
+ ]]),
1427
+ style: normalizeStyle(linkStyles.value),
1428
+ disabled: _ctx.disabled,
1429
+ "aria-disabled": _ctx.disabled,
1430
+ onClick: handleClick
1431
+ }, [
1432
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
1433
+ ], 14, _hoisted_1$C)) : (openBlock(), createElementBlock("a", {
1434
+ key: 1,
1435
+ class: normalizeClass(["ui-link", [
1436
+ `ui-link-${_ctx.variant}`,
1437
+ `ui-link-${_ctx.size}`,
1438
+ { "ui-link-disabled": _ctx.disabled },
1439
+ { "ui-link-custom-color": _ctx.color }
1440
+ ]]),
1441
+ style: normalizeStyle(linkStyles.value),
1442
+ href: computedHref.value,
1443
+ target: _ctx.external ? "_blank" : void 0,
1444
+ rel: _ctx.external ? "noopener noreferrer" : void 0,
1445
+ "aria-disabled": _ctx.disabled,
1446
+ onClick: handleClick
1447
+ }, [
1448
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
1449
+ ], 14, _hoisted_2$v));
1160
1450
  };
1161
1451
  }
1162
1452
  });
1163
- const StrandsUiLink = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-a9d22fbf"]]);
1453
+ const StrandsUiLink = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-ae8b647b"]]);
1164
1454
  const _hoisted_1$B = { class: "tabs-wrapper" };
1165
1455
  const _hoisted_2$u = {
1166
1456
  key: 0,