@strands.gg/accui 2.9.4 → 2.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -3,12 +3,12 @@ import { u as useStrandsConfig, p as provideStrandsConfig } from "./useStrandsCo
3
3
  import { s } from "./useStrandsConfig-XmPqJn_B.es.js";
4
4
  import { u as useStrandsAuth } from "./useStrandsAuth-Dca-zFQT.es.js";
5
5
  const _hoisted_1$U = { class: "app-content" };
6
- const _hoisted_2$L = {
6
+ const _hoisted_2$M = {
7
7
  key: 0,
8
8
  class: "ui-app-loading-overlay"
9
9
  };
10
- const _hoisted_3$I = { class: "ui-app-loading-content" };
11
- const _hoisted_4$F = {
10
+ const _hoisted_3$J = { class: "ui-app-loading-content" };
11
+ const _hoisted_4$G = {
12
12
  key: 0,
13
13
  class: "ui-app-loading-message"
14
14
  };
@@ -64,10 +64,10 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
64
64
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "ui-app-notifications" }, null, -1))
65
65
  ])),
66
66
  (openBlock(), createBlock(Teleport, { to: "body" }, [
67
- isGlobalLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$L, [
68
- createElementVNode("div", _hoisted_3$I, [
67
+ isGlobalLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$M, [
68
+ createElementVNode("div", _hoisted_3$J, [
69
69
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "ui-app-loading-spinner" }, null, -1)),
70
- _ctx.loadingMessage ? (openBlock(), createElementBlock("p", _hoisted_4$F, toDisplayString(_ctx.loadingMessage), 1)) : createCommentVNode("", true)
70
+ _ctx.loadingMessage ? (openBlock(), createElementBlock("p", _hoisted_4$G, toDisplayString(_ctx.loadingMessage), 1)) : createCommentVNode("", true)
71
71
  ])
72
72
  ])) : createCommentVNode("", true)
73
73
  ]))
@@ -84,9 +84,9 @@ const _export_sfc = (sfc, props) => {
84
84
  };
85
85
  const UiApp = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["__scopeId", "data-v-f18c1706"]]);
86
86
  const _hoisted_1$T = { class: "accui-component-scope" };
87
- const _hoisted_2$K = { class: "alert-content" };
88
- const _hoisted_3$H = { class: "alert-icon-container" };
89
- const _hoisted_4$E = {
87
+ const _hoisted_2$L = { class: "alert-content" };
88
+ const _hoisted_3$I = { class: "alert-icon-container" };
89
+ const _hoisted_4$F = {
90
90
  class: "alert-main-icon",
91
91
  fill: "currentColor",
92
92
  viewBox: "0 0 20 20",
@@ -139,9 +139,9 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
139
139
  class: normalizeClass(alertClasses.value),
140
140
  role: "alert"
141
141
  }, [
142
- createElementVNode("div", _hoisted_2$K, [
143
- createElementVNode("div", _hoisted_3$H, [
144
- (openBlock(), createElementBlock("svg", _hoisted_4$E, [
142
+ createElementVNode("div", _hoisted_2$L, [
143
+ createElementVNode("div", _hoisted_3$I, [
144
+ (openBlock(), createElementBlock("svg", _hoisted_4$F, [
145
145
  createElementVNode("path", {
146
146
  "fill-rule": "evenodd",
147
147
  d: iconPath.value,
@@ -194,9 +194,9 @@ const _hoisted_1$S = {
194
194
  key: 0,
195
195
  class: "loader-icon"
196
196
  };
197
- const _hoisted_2$J = ["width", "height"];
198
- const _hoisted_3$G = ["d"];
199
- const _hoisted_4$D = ["stroke-width"];
197
+ const _hoisted_2$K = ["width", "height"];
198
+ const _hoisted_3$H = ["d"];
199
+ const _hoisted_4$E = ["stroke-width"];
200
200
  const _hoisted_5$z = ["stroke-width"];
201
201
  const _hoisted_6$s = ["width", "height"];
202
202
  const _hoisted_7$r = {
@@ -248,7 +248,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
248
248
  id: "logo-path",
249
249
  d: unref(d),
250
250
  transform: "translate(81, 13) scale(1.0)"
251
- }, null, 8, _hoisted_3$G)
251
+ }, null, 8, _hoisted_3$H)
252
252
  ]),
253
253
  createElementVNode("use", {
254
254
  href: "#logo-path",
@@ -257,7 +257,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
257
257
  "stroke-width": _ctx.weight,
258
258
  "stroke-linecap": "round",
259
259
  "stroke-linejoin": "round"
260
- }, null, 8, _hoisted_4$D),
260
+ }, null, 8, _hoisted_4$E),
261
261
  createElementVNode("use", {
262
262
  href: "#logo-path",
263
263
  fill: "none",
@@ -267,7 +267,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
267
267
  "stroke-linejoin": "round",
268
268
  class: "loader-animated-path"
269
269
  }, null, 8, _hoisted_5$z)
270
- ], 8, _hoisted_2$J))
270
+ ], 8, _hoisted_2$K))
271
271
  ])) : _ctx.variant === "circle" ? (openBlock(), createElementBlock("div", {
272
272
  key: 1,
273
273
  class: "loader-circle",
@@ -311,12 +311,12 @@ const _hoisted_1$R = {
311
311
  key: 0,
312
312
  class: "button-loading-content"
313
313
  };
314
- const _hoisted_2$I = { key: 0 };
315
- const _hoisted_3$F = {
314
+ const _hoisted_2$J = { key: 0 };
315
+ const _hoisted_3$G = {
316
316
  key: 0,
317
317
  class: "leading-icon"
318
318
  };
319
- const _hoisted_4$C = {
319
+ const _hoisted_4$D = {
320
320
  key: 1,
321
321
  class: "trailing-icon"
322
322
  };
@@ -369,18 +369,18 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
369
369
  centered: false,
370
370
  color: "white"
371
371
  }, null, 8, ["size"]),
372
- !_ctx.icon ? (openBlock(), createElementBlock("span", _hoisted_2$I, toDisplayString(_ctx.loadingText || "Loading..."), 1)) : createCommentVNode("", true)
372
+ !_ctx.icon ? (openBlock(), createElementBlock("span", _hoisted_2$J, toDisplayString(_ctx.loadingText || "Loading..."), 1)) : createCommentVNode("", true)
373
373
  ])) : (openBlock(), createElementBlock("span", {
374
374
  key: 1,
375
375
  class: normalizeClass(["button-content", sizeClass.value])
376
376
  }, [
377
377
  _ctx.icon ? renderSlot(_ctx.$slots, "icon", { key: 0 }, void 0, true) : (openBlock(), createElementBlock(Fragment$1, { key: 1 }, [
378
- hasLeadingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_3$F, [
378
+ hasLeadingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_3$G, [
379
379
  renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
380
380
  ])) : createCommentVNode("", true),
381
381
  renderSlot(_ctx.$slots, "icon", {}, void 0, true),
382
382
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
383
- hasTrailingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_4$C, [
383
+ hasTrailingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_4$D, [
384
384
  renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
385
385
  ])) : createCommentVNode("", true)
386
386
  ], 64))
@@ -795,8 +795,8 @@ const _hoisted_1$O = {
795
795
  key: 0,
796
796
  class: "ui-card-header"
797
797
  };
798
- const _hoisted_2$H = { class: "ui-card-content" };
799
- const _hoisted_3$E = {
798
+ const _hoisted_2$I = { class: "ui-card-content" };
799
+ const _hoisted_3$F = {
800
800
  key: 1,
801
801
  class: "ui-card-footer"
802
802
  };
@@ -826,10 +826,10 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
826
826
  _ctx.$slots["header"] ? (openBlock(), createElementBlock("div", _hoisted_1$O, [
827
827
  renderSlot(_ctx.$slots, "header", {}, void 0, true)
828
828
  ])) : createCommentVNode("", true),
829
- createElementVNode("div", _hoisted_2$H, [
829
+ createElementVNode("div", _hoisted_2$I, [
830
830
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
831
831
  ]),
832
- _ctx.$slots["footer"] ? (openBlock(), createElementBlock("div", _hoisted_3$E, [
832
+ _ctx.$slots["footer"] ? (openBlock(), createElementBlock("div", _hoisted_3$F, [
833
833
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
834
834
  ])) : createCommentVNode("", true)
835
835
  ], 2);
@@ -1394,12 +1394,12 @@ const _hoisted_1$N = {
1394
1394
  key: 0,
1395
1395
  class: "input-leading-icon"
1396
1396
  };
1397
- const _hoisted_2$G = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "min", "max", "step", "autocomplete", "spellcheck"];
1398
- const _hoisted_3$D = {
1397
+ const _hoisted_2$H = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "min", "max", "step", "autocomplete", "spellcheck"];
1398
+ const _hoisted_3$E = {
1399
1399
  key: 1,
1400
1400
  class: "input-trailing-icon"
1401
1401
  };
1402
- const _hoisted_4$B = {
1402
+ const _hoisted_4$C = {
1403
1403
  key: 2,
1404
1404
  class: "input-trailing-icon"
1405
1405
  };
@@ -1510,8 +1510,8 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
1510
1510
  onBlur: handleBlur,
1511
1511
  onFocus: handleFocus,
1512
1512
  onKeydown: handleKeydown
1513
- }, null, 42, _hoisted_2$G),
1514
- _ctx.type === "password" ? (openBlock(), createElementBlock("div", _hoisted_3$D, [
1513
+ }, null, 42, _hoisted_2$H),
1514
+ _ctx.type === "password" ? (openBlock(), createElementBlock("div", _hoisted_3$E, [
1515
1515
  createVNode(StrandsUiButton, {
1516
1516
  color: showPassword.value ? "primary" : "secondary",
1517
1517
  variant: showPassword.value ? "primary" : "ghost",
@@ -1526,7 +1526,7 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
1526
1526
  ]),
1527
1527
  _: 1
1528
1528
  }, 8, ["color", "variant", "aria-label"])
1529
- ])) : _ctx.type === "search" && _ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", _hoisted_4$B, [
1529
+ ])) : _ctx.type === "search" && _ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", _hoisted_4$C, [
1530
1530
  createVNode(StrandsUiButton, {
1531
1531
  color: "danger",
1532
1532
  variant: "ghost",
@@ -1553,8 +1553,8 @@ const _hoisted_1$M = {
1553
1553
  key: 0,
1554
1554
  class: "input-leading-icon"
1555
1555
  };
1556
- const _hoisted_2$F = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "cols", "maxlength", "autocomplete", "spellcheck"];
1557
- const _hoisted_3$C = {
1556
+ const _hoisted_2$G = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "cols", "maxlength", "autocomplete", "spellcheck"];
1557
+ const _hoisted_3$D = {
1558
1558
  key: 1,
1559
1559
  class: "input-trailing-icon"
1560
1560
  };
@@ -1646,9 +1646,9 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
1646
1646
  onBlur: handleBlur,
1647
1647
  onFocus: handleFocus,
1648
1648
  onKeydown: handleKeydown
1649
- }, null, 42, _hoisted_2$F)
1649
+ }, null, 42, _hoisted_2$G)
1650
1650
  ], 2),
1651
- _ctx.$slots["trailing-icon"] ? (openBlock(), createElementBlock("div", _hoisted_3$C, [
1651
+ _ctx.$slots["trailing-icon"] ? (openBlock(), createElementBlock("div", _hoisted_3$D, [
1652
1652
  renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
1653
1653
  ])) : createCommentVNode("", true)
1654
1654
  ], 2);
@@ -1862,9 +1862,9 @@ const _hoisted_1$L = {
1862
1862
  key: 0,
1863
1863
  class: "input-leading-icon"
1864
1864
  };
1865
- const _hoisted_2$E = ["aria-expanded", "aria-controls"];
1866
- const _hoisted_3$B = { class: "input-select-value" };
1867
- const _hoisted_4$A = {
1865
+ const _hoisted_2$F = ["aria-expanded", "aria-controls"];
1866
+ const _hoisted_3$C = { class: "input-select-value" };
1867
+ const _hoisted_4$B = {
1868
1868
  key: 0,
1869
1869
  class: "input-select-text"
1870
1870
  };
@@ -1905,9 +1905,10 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
1905
1905
  disabled: { type: Boolean, default: false },
1906
1906
  multiple: { type: Boolean, default: false },
1907
1907
  searchable: { type: Boolean, default: false },
1908
+ allowInsert: { type: Boolean, default: false },
1908
1909
  maxDropdownHeight: { default: 400 },
1909
1910
  noOptionsText: { default: "No options available" },
1910
- searchPlaceholder: { default: "Search..." },
1911
+ searchPlaceholder: { default: "" },
1911
1912
  inputId: {},
1912
1913
  error: { type: Boolean, default: false },
1913
1914
  size: { default: "md" }
@@ -1962,13 +1963,39 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
1962
1963
  }
1963
1964
  });
1964
1965
  const filteredOptions = computed(() => {
1965
- if (!props.searchable || !dropdownState.value.searchQuery) {
1966
- return props.options;
1966
+ let options = props.options;
1967
+ if (props.searchable && dropdownState.value.searchQuery) {
1968
+ const query = dropdownState.value.searchQuery.toLowerCase();
1969
+ options = props.options.filter(
1970
+ (option) => option.label.toLowerCase().includes(query) || option.description?.toLowerCase().includes(query)
1971
+ );
1972
+ if (props.allowInsert && props.multiple && dropdownState.value.searchQuery.trim()) {
1973
+ const exactMatch = props.options.some(
1974
+ (option) => option.label.toLowerCase() === dropdownState.value.searchQuery.toLowerCase()
1975
+ );
1976
+ if (!exactMatch) {
1977
+ options = [
1978
+ {
1979
+ value: `__insert__${dropdownState.value.searchQuery}`,
1980
+ label: `Add "${dropdownState.value.searchQuery}"`,
1981
+ description: "Add as new item",
1982
+ disabled: false
1983
+ },
1984
+ ...options
1985
+ ];
1986
+ }
1987
+ }
1967
1988
  }
1968
- const query = dropdownState.value.searchQuery.toLowerCase();
1969
- return props.options.filter(
1970
- (option) => option.label.toLowerCase().includes(query) || option.description?.toLowerCase().includes(query)
1971
- );
1989
+ return options;
1990
+ });
1991
+ const computedSearchPlaceholder = computed(() => {
1992
+ if (props.searchPlaceholder && props.searchPlaceholder.trim() !== "") {
1993
+ return props.searchPlaceholder;
1994
+ }
1995
+ if (props.allowInsert && props.multiple) {
1996
+ return "Search or create...";
1997
+ }
1998
+ return "Search...";
1972
1999
  });
1973
2000
  const wrapperClasses = computed(() => {
1974
2001
  const classes = [];
@@ -2016,13 +2043,6 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2016
2043
  dropdownState.value.highlightedIndex = -1;
2017
2044
  dropdownState.value.searchQuery = "";
2018
2045
  document.removeEventListener("keydown", handleGlobalKeydown);
2019
- nextTick(() => {
2020
- const activeElement = document.activeElement;
2021
- const isClickingOtherSelect = activeElement?.closest?.(".input-select-trigger");
2022
- if (!isClickingOtherSelect && selectTriggerRef.value) {
2023
- selectTriggerRef.value.focus();
2024
- }
2025
- });
2026
2046
  emit("blur", new FocusEvent("blur"));
2027
2047
  };
2028
2048
  const toggleDropdown = () => {
@@ -2033,17 +2053,28 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2033
2053
  }
2034
2054
  };
2035
2055
  const isOptionSelected = (option) => {
2056
+ if (option.value.startsWith("__insert__")) {
2057
+ return false;
2058
+ }
2036
2059
  return selectedValues.value.includes(option.value);
2037
2060
  };
2038
2061
  const selectOption = (option) => {
2039
2062
  if (option.disabled) return;
2040
2063
  if (props.multiple) {
2041
2064
  const newValue = [...selectedValues.value];
2042
- const index = newValue.indexOf(option.value);
2043
- if (index > -1) {
2044
- newValue.splice(index, 1);
2065
+ if (option.value.startsWith("__insert__")) {
2066
+ const newItemValue = option.value.replace("__insert__", "");
2067
+ if (!newValue.includes(newItemValue)) {
2068
+ newValue.push(newItemValue);
2069
+ }
2070
+ dropdownState.value.searchQuery = "";
2045
2071
  } else {
2046
- newValue.push(option.value);
2072
+ const index = newValue.indexOf(option.value);
2073
+ if (index > -1) {
2074
+ newValue.splice(index, 1);
2075
+ } else {
2076
+ newValue.push(option.value);
2077
+ }
2047
2078
  }
2048
2079
  emit("update:modelValue", newValue);
2049
2080
  } else {
@@ -2176,15 +2207,15 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2176
2207
  "aria-haspopup": true,
2177
2208
  "aria-controls": dropdownId.value
2178
2209
  }, [
2179
- createElementVNode("div", _hoisted_3$B, [
2180
- displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$A, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$x, toDisplayString(_ctx.placeholder || "Select an option..."), 1))
2210
+ createElementVNode("div", _hoisted_3$C, [
2211
+ displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$B, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$x, toDisplayString(_ctx.placeholder || "Select an option..."), 1))
2181
2212
  ]),
2182
2213
  createElementVNode("div", {
2183
2214
  class: normalizeClass(["input-select-arrow", { "input-select-arrow-open": dropdownState.value.isOpen }])
2184
2215
  }, [
2185
2216
  createVNode(unref(ChevronDown))
2186
2217
  ], 2)
2187
- ], 42, _hoisted_2$E),
2218
+ ], 42, _hoisted_2$F),
2188
2219
  _ctx.$slots["trailing-icon"] ? (openBlock(), createElementBlock("div", _hoisted_6$r, [
2189
2220
  renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
2190
2221
  ])) : createCommentVNode("", true)
@@ -2209,7 +2240,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2209
2240
  modelValue: dropdownState.value.searchQuery,
2210
2241
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => dropdownState.value.searchQuery = $event),
2211
2242
  type: "search",
2212
- placeholder: _ctx.searchPlaceholder,
2243
+ placeholder: computedSearchPlaceholder.value,
2213
2244
  size: "sm",
2214
2245
  onKeydown: handleSearchKeydown
2215
2246
  }, {
@@ -2230,7 +2261,8 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2230
2261
  class: normalizeClass(["input-dropdown-option", {
2231
2262
  "input-dropdown-option--selected": isOptionSelected(option),
2232
2263
  "input-dropdown-option--highlighted": index === dropdownState.value.highlightedIndex,
2233
- "input-dropdown-option--disabled": option.disabled
2264
+ "input-dropdown-option--disabled": option.disabled,
2265
+ "input-dropdown-option--insert": option.value.startsWith("__insert__")
2234
2266
  }]),
2235
2267
  onClick: ($event) => selectOption(option),
2236
2268
  onMouseenter: ($event) => dropdownState.value.highlightedIndex = index,
@@ -2253,11 +2285,11 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
2253
2285
  };
2254
2286
  }
2255
2287
  });
2256
- const UiInputSelect = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-985cba8d"]]);
2288
+ const UiInputSelect = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-8fc867ab"]]);
2257
2289
  const _hoisted_1$K = { class: "input-leading-icon" };
2258
- const _hoisted_2$D = ["src"];
2259
- const _hoisted_3$A = ["id", "accept", "multiple", "disabled", "required"];
2260
- const _hoisted_4$z = { class: "input-file-content" };
2290
+ const _hoisted_2$E = ["src"];
2291
+ const _hoisted_3$B = ["id", "accept", "multiple", "disabled", "required"];
2292
+ const _hoisted_4$A = { class: "input-file-content" };
2261
2293
  const _hoisted_5$w = {
2262
2294
  key: 0,
2263
2295
  class: "input-file-prompt"
@@ -2467,7 +2499,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
2467
2499
  src: imagePreviewUrl.value,
2468
2500
  alt: "Preview",
2469
2501
  class: "input-file-preview"
2470
- }, null, 8, _hoisted_2$D)) : _ctx.$slots["leading-icon"] ? renderSlot(_ctx.$slots, "leading-icon", { key: 1 }, void 0, true) : (openBlock(), createBlock(unref(FileInput), { key: 2 }))
2502
+ }, null, 8, _hoisted_2$E)) : _ctx.$slots["leading-icon"] ? renderSlot(_ctx.$slots, "leading-icon", { key: 1 }, void 0, true) : (openBlock(), createBlock(unref(FileInput), { key: 2 }))
2471
2503
  ]),
2472
2504
  createElementVNode("div", {
2473
2505
  class: normalizeClass(["input-file-area", {
@@ -2492,8 +2524,8 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
2492
2524
  onChange: handleFileSelect,
2493
2525
  onBlur: handleBlur,
2494
2526
  onFocus: handleFocus
2495
- }, null, 40, _hoisted_3$A),
2496
- createElementVNode("div", _hoisted_4$z, [
2527
+ }, null, 40, _hoisted_3$B),
2528
+ createElementVNode("div", _hoisted_4$A, [
2497
2529
  selectedFiles.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5$w, [
2498
2530
  createElementVNode("div", _hoisted_6$q, toDisplayString(_ctx.dragDropText || "Click to select or drag and drop"), 1),
2499
2531
  _ctx.accept ? (openBlock(), createElementBlock("div", _hoisted_7$p, toDisplayString(_ctx.accept), 1)) : createCommentVNode("", true)
@@ -2531,12 +2563,12 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
2531
2563
  });
2532
2564
  const UiInputFile = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-1328dc4f"]]);
2533
2565
  const _hoisted_1$J = { class: "tabs-wrapper" };
2534
- const _hoisted_2$C = {
2566
+ const _hoisted_2$D = {
2535
2567
  key: 0,
2536
2568
  class: "tabs-before"
2537
2569
  };
2538
- const _hoisted_3$z = ["aria-selected", "id", "onClick"];
2539
- const _hoisted_4$y = {
2570
+ const _hoisted_3$A = ["aria-selected", "id", "onClick"];
2571
+ const _hoisted_4$z = {
2540
2572
  key: 1,
2541
2573
  class: "tabs-after"
2542
2574
  };
@@ -2877,7 +2909,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
2877
2909
  ]]),
2878
2910
  style: normalizeStyle(_ctx.sticky ? { position: "sticky", [_ctx.sticky.side]: `${_ctx.sticky.offset}px`, zIndex: 10 } : {})
2879
2911
  }, [
2880
- _ctx.$slots["before"] ? (openBlock(), createElementBlock("div", _hoisted_2$C, [
2912
+ _ctx.$slots["before"] ? (openBlock(), createElementBlock("div", _hoisted_2$D, [
2881
2913
  renderSlot(_ctx.$slots, "before", {}, void 0, true)
2882
2914
  ])) : createCommentVNode("", true),
2883
2915
  createElementVNode("div", {
@@ -2901,7 +2933,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
2901
2933
  id: `tab-${tab.value}`,
2902
2934
  role: "tab",
2903
2935
  onClick: ($event) => handleTabClick(tab.value, index)
2904
- }, toDisplayString(tab.label), 11, _hoisted_3$z);
2936
+ }, toDisplayString(tab.label), 11, _hoisted_3$A);
2905
2937
  }), 128)),
2906
2938
  createElementVNode("div", {
2907
2939
  class: normalizeClass(["tab-background", { "no-transition": !enableTransitions.value }]),
@@ -2912,7 +2944,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
2912
2944
  style: normalizeStyle(underlineStyle.value)
2913
2945
  }, null, 6)
2914
2946
  ], 2),
2915
- _ctx.$slots["after"] ? (openBlock(), createElementBlock("div", _hoisted_4$y, [
2947
+ _ctx.$slots["after"] ? (openBlock(), createElementBlock("div", _hoisted_4$z, [
2916
2948
  renderSlot(_ctx.$slots, "after", {}, void 0, true)
2917
2949
  ])) : createCommentVNode("", true)
2918
2950
  ], 6)
@@ -3000,9 +3032,9 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
3000
3032
  });
3001
3033
  const UiDivider = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-1c798024"]]);
3002
3034
  const _hoisted_1$H = { class: "datetime-picker-wrapper" };
3003
- const _hoisted_2$B = { class: "datetime-picker-leading-icon" };
3004
- const _hoisted_3$y = { class: "datetime-picker-display" };
3005
- const _hoisted_4$x = {
3035
+ const _hoisted_2$C = { class: "datetime-picker-leading-icon" };
3036
+ const _hoisted_3$z = { class: "datetime-picker-display" };
3037
+ const _hoisted_4$y = {
3006
3038
  key: 0,
3007
3039
  class: "datetime-picker-value"
3008
3040
  };
@@ -3381,11 +3413,11 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
3381
3413
  ]]),
3382
3414
  onClick: togglePicker
3383
3415
  }, [
3384
- createElementVNode("div", _hoisted_2$B, [
3416
+ createElementVNode("div", _hoisted_2$C, [
3385
3417
  _ctx.type === "date" ? (openBlock(), createBlock(unref(Calendar), { key: 0 })) : _ctx.type === "time" ? (openBlock(), createBlock(unref(Clock), { key: 1 })) : (openBlock(), createBlock(unref(CalendarClock), { key: 2 }))
3386
3418
  ]),
3387
- createElementVNode("div", _hoisted_3$y, [
3388
- displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$x, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$u, toDisplayString(_ctx.placeholder || getDefaultPlaceholder()), 1))
3419
+ createElementVNode("div", _hoisted_3$z, [
3420
+ displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$y, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$u, toDisplayString(_ctx.placeholder || getDefaultPlaceholder()), 1))
3389
3421
  ]),
3390
3422
  _ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", {
3391
3423
  key: 0,
@@ -24725,9 +24757,9 @@ var TextAlign = Extension.create({
24725
24757
  var index_default$1 = TextAlign;
24726
24758
  var index_default = Placeholder;
24727
24759
  const _hoisted_1$G = { class: "input-richtext-toolbar" };
24728
- const _hoisted_2$A = { class: "input-richtext-group" };
24729
- const _hoisted_3$x = { class: "input-richtext-group" };
24730
- const _hoisted_4$w = { class: "input-richtext-group" };
24760
+ const _hoisted_2$B = { class: "input-richtext-group" };
24761
+ const _hoisted_3$y = { class: "input-richtext-group" };
24762
+ const _hoisted_4$x = { class: "input-richtext-group" };
24731
24763
  const _hoisted_5$t = { class: "input-richtext-group" };
24732
24764
  const _hoisted_6$o = { class: "input-richtext-group" };
24733
24765
  const _hoisted_7$n = { class: "input-richtext-editor-wrapper" };
@@ -24812,7 +24844,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
24812
24844
  }])
24813
24845
  }, [
24814
24846
  createElementVNode("div", _hoisted_1$G, [
24815
- createElementVNode("div", _hoisted_2$A, [
24847
+ createElementVNode("div", _hoisted_2$B, [
24816
24848
  createVNode(StrandsUiButton, {
24817
24849
  color: unref(editor)?.isActive("bold") ? "primary" : "secondary",
24818
24850
  size: "sm",
@@ -24875,7 +24907,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
24875
24907
  spacing: "28px",
24876
24908
  margin: "4px"
24877
24909
  }),
24878
- createElementVNode("div", _hoisted_3$x, [
24910
+ createElementVNode("div", _hoisted_3$y, [
24879
24911
  createVNode(StrandsUiButton, {
24880
24912
  color: unref(editor)?.isActive("heading", { level: 1 }) ? "primary" : "secondary",
24881
24913
  size: "sm",
@@ -24924,7 +24956,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
24924
24956
  spacing: "28px",
24925
24957
  margin: "4px"
24926
24958
  }),
24927
- createElementVNode("div", _hoisted_4$w, [
24959
+ createElementVNode("div", _hoisted_4$x, [
24928
24960
  createVNode(StrandsUiButton, {
24929
24961
  color: unref(editor)?.isActive({ textAlign: "left" }) ? "primary" : "secondary",
24930
24962
  size: "sm",
@@ -25094,12 +25126,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
25094
25126
  });
25095
25127
  const UiInputRichText = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-1031412d"]]);
25096
25128
  const _hoisted_1$F = { class: "pincode-inputs" };
25097
- const _hoisted_2$z = {
25129
+ const _hoisted_2$A = {
25098
25130
  key: 0,
25099
25131
  class: "pincode-icon pincode-icon-leading"
25100
25132
  };
25101
- const _hoisted_3$w = ["value", "disabled", "readonly", "tabindex", "data-index", "onInput", "onKeydown", "onFocus"];
25102
- const _hoisted_4$v = {
25133
+ const _hoisted_3$x = ["value", "disabled", "readonly", "tabindex", "data-index", "onInput", "onKeydown", "onFocus"];
25134
+ const _hoisted_4$w = {
25103
25135
  key: 1,
25104
25136
  class: "pincode-divider"
25105
25137
  };
@@ -25286,7 +25318,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
25286
25318
  class: normalizeClass(["pincode-wrapper", [`pincode-size-${_ctx.size}`, { "pincode-error": _ctx.error }]])
25287
25319
  }, [
25288
25320
  createElementVNode("div", _hoisted_1$F, [
25289
- _ctx.$slots["leading-icon"] ? (openBlock(), createElementBlock("div", _hoisted_2$z, [
25321
+ _ctx.$slots["leading-icon"] ? (openBlock(), createElementBlock("div", _hoisted_2$A, [
25290
25322
  renderSlot(_ctx.$slots, "leading-icon", {}, void 0, true)
25291
25323
  ])) : createCommentVNode("", true),
25292
25324
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(_ctx.maxLength, (index) => {
@@ -25311,11 +25343,11 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
25311
25343
  onFocus: ($event) => handleFocus(index - 1),
25312
25344
  onBlur: handleBlur,
25313
25345
  onPaste: handlePaste
25314
- }, null, 42, _hoisted_3$w),
25346
+ }, null, 42, _hoisted_3$x),
25315
25347
  shouldShowDivider(index) && useCustomDivider.value ? (openBlock(), createBlock(UiDivider, mergeProps({
25316
25348
  key: 0,
25317
25349
  ref_for: true
25318
- }, dividerProps.value, { class: "pincode-custom-divider" }), null, 16)) : shouldShowDivider(index) ? (openBlock(), createElementBlock("span", _hoisted_4$v, toDisplayString(dividerCharacter.value), 1)) : createCommentVNode("", true)
25350
+ }, dividerProps.value, { class: "pincode-custom-divider" }), null, 16)) : shouldShowDivider(index) ? (openBlock(), createElementBlock("span", _hoisted_4$w, toDisplayString(dividerCharacter.value), 1)) : createCommentVNode("", true)
25319
25351
  ], 64);
25320
25352
  }), 128)),
25321
25353
  _ctx.$slots["trailing-icon"] ? (openBlock(), createElementBlock("div", _hoisted_5$s, [
@@ -25328,12 +25360,12 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
25328
25360
  });
25329
25361
  const UiInputPincode = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-25372cfe"]]);
25330
25362
  const _hoisted_1$E = { class: "input-container" };
25331
- const _hoisted_2$y = ["for"];
25332
- const _hoisted_3$v = {
25363
+ const _hoisted_2$z = ["for"];
25364
+ const _hoisted_3$w = {
25333
25365
  key: 0,
25334
25366
  class: "input-required"
25335
25367
  };
25336
- const _hoisted_4$u = {
25368
+ const _hoisted_4$v = {
25337
25369
  key: 10,
25338
25370
  class: "input-error-text"
25339
25371
  };
@@ -25361,6 +25393,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
25361
25393
  options: {},
25362
25394
  multiple: { type: Boolean },
25363
25395
  searchable: { type: Boolean },
25396
+ allowInsert: { type: Boolean },
25364
25397
  maxDropdownHeight: {},
25365
25398
  noOptionsText: {},
25366
25399
  searchPlaceholder: {},
@@ -25419,8 +25452,8 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
25419
25452
  class: "input-label"
25420
25453
  }, [
25421
25454
  createTextVNode(toDisplayString(props.label) + " ", 1),
25422
- props.required ? (openBlock(), createElementBlock("span", _hoisted_3$v, "*")) : createCommentVNode("", true)
25423
- ], 8, _hoisted_2$y)) : createCommentVNode("", true),
25455
+ props.required ? (openBlock(), createElementBlock("span", _hoisted_3$w, "*")) : createCommentVNode("", true)
25456
+ ], 8, _hoisted_2$z)) : createCommentVNode("", true),
25424
25457
  isTextInput.value ? (openBlock(), createBlock(UiInputText, {
25425
25458
  key: 1,
25426
25459
  "model-value": _ctx.modelValue,
@@ -25499,6 +25532,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
25499
25532
  disabled: _ctx.disabled,
25500
25533
  multiple: props.multiple,
25501
25534
  searchable: props.searchable,
25535
+ "allow-insert": props.allowInsert,
25502
25536
  "max-dropdown-height": props.maxDropdownHeight,
25503
25537
  "no-options-text": props.noOptionsText,
25504
25538
  "search-placeholder": props.searchPlaceholder,
@@ -25523,7 +25557,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
25523
25557
  ]),
25524
25558
  key: "1"
25525
25559
  } : void 0
25526
- ]), 1032, ["model-value", "options", "placeholder", "disabled", "multiple", "searchable", "max-dropdown-height", "no-options-text", "search-placeholder", "input-id", "error", "size"])) : _ctx.type === "file" ? (openBlock(), createBlock(UiInputFile, {
25560
+ ]), 1032, ["model-value", "options", "placeholder", "disabled", "multiple", "searchable", "allow-insert", "max-dropdown-height", "no-options-text", "search-placeholder", "input-id", "error", "size"])) : _ctx.type === "file" ? (openBlock(), createBlock(UiInputFile, {
25527
25561
  key: 4,
25528
25562
  "model-value": _ctx.modelValue,
25529
25563
  accept: props.accept,
@@ -25642,14 +25676,14 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
25642
25676
  key: "1"
25643
25677
  } : void 0
25644
25678
  ]), 1032, ["model-value", "max-length", "variant", "divider", "disabled", "readonly", "input-id", "error", "size"])) : createCommentVNode("", true),
25645
- props.error && props.error !== true ? (openBlock(), createElementBlock("p", _hoisted_4$u, toDisplayString(typeof props.error === "string" ? props.error : props.error?.message || String(props.error)), 1)) : props.helpText ? (openBlock(), createElementBlock("p", _hoisted_5$r, toDisplayString(props.helpText), 1)) : createCommentVNode("", true)
25679
+ props.error && props.error !== true ? (openBlock(), createElementBlock("p", _hoisted_4$v, toDisplayString(typeof props.error === "string" ? props.error : props.error?.message || String(props.error)), 1)) : props.helpText ? (openBlock(), createElementBlock("p", _hoisted_5$r, toDisplayString(props.helpText), 1)) : createCommentVNode("", true)
25646
25680
  ]);
25647
25681
  };
25648
25682
  }
25649
25683
  });
25650
- const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-adf737f4"]]);
25684
+ const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-83ae8958"]]);
25651
25685
  const _hoisted_1$D = ["disabled", "aria-disabled"];
25652
- const _hoisted_2$x = ["href", "target", "rel", "aria-disabled"];
25686
+ const _hoisted_2$y = ["href", "target", "rel", "aria-disabled"];
25653
25687
  const _sfc_main$G = /* @__PURE__ */ defineComponent({
25654
25688
  __name: "UiLink",
25655
25689
  props: {
@@ -25756,23 +25790,32 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
25756
25790
  onClick: handleClick2
25757
25791
  }, [
25758
25792
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
25759
- ], 14, _hoisted_2$x));
25793
+ ], 14, _hoisted_2$y));
25760
25794
  };
25761
25795
  }
25762
25796
  });
25763
25797
  const StrandsUiLink = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-3bf99110"]]);
25764
- const _hoisted_1$C = ["aria-pressed", "aria-labelledby"];
25798
+ const _hoisted_1$C = { class: "ui-toggle-container" };
25799
+ const _hoisted_2$x = ["for"];
25800
+ const _hoisted_3$v = {
25801
+ key: 0,
25802
+ class: "ui-toggle-required"
25803
+ };
25804
+ const _hoisted_4$u = ["id", "aria-pressed", "aria-labelledby"];
25765
25805
  const _sfc_main$F = /* @__PURE__ */ defineComponent({
25766
25806
  __name: "UiToggle",
25767
25807
  props: {
25768
25808
  modelValue: { type: Boolean, default: false },
25769
25809
  disabled: { type: Boolean, default: false },
25770
- id: {}
25810
+ id: {},
25811
+ label: {},
25812
+ required: { type: Boolean }
25771
25813
  },
25772
25814
  emits: ["update:modelValue"],
25773
25815
  setup(__props, { emit: __emit }) {
25774
25816
  const props = __props;
25775
25817
  const emit = __emit;
25818
+ const toggleId = computed(() => props.id || `ui-toggle-${Math.random().toString(36).substr(2, 9)}`);
25776
25819
  const toggleClasses = computed(() => [
25777
25820
  "ui-toggle",
25778
25821
  {
@@ -25792,21 +25835,32 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
25792
25835
  emit("update:modelValue", !props.modelValue);
25793
25836
  };
25794
25837
  return (_ctx, _cache) => {
25795
- return openBlock(), createElementBlock("button", {
25796
- type: "button",
25797
- class: normalizeClass(toggleClasses.value),
25798
- "aria-pressed": _ctx.modelValue,
25799
- "aria-labelledby": _ctx.id ? `${_ctx.id}-label` : void 0,
25800
- onClick: handleToggle
25801
- }, [
25802
- createElementVNode("span", {
25803
- class: normalizeClass(["ui-toggle-thumb", thumbClasses.value])
25804
- }, null, 2)
25805
- ], 10, _hoisted_1$C);
25838
+ return openBlock(), createElementBlock("div", _hoisted_1$C, [
25839
+ _ctx.label ? (openBlock(), createElementBlock("label", {
25840
+ key: 0,
25841
+ for: toggleId.value,
25842
+ class: "ui-toggle-label"
25843
+ }, [
25844
+ createTextVNode(toDisplayString(_ctx.label) + " ", 1),
25845
+ _ctx.required ? (openBlock(), createElementBlock("span", _hoisted_3$v, "*")) : createCommentVNode("", true)
25846
+ ], 8, _hoisted_2$x)) : createCommentVNode("", true),
25847
+ createElementVNode("button", {
25848
+ id: toggleId.value,
25849
+ type: "button",
25850
+ class: normalizeClass(toggleClasses.value),
25851
+ "aria-pressed": _ctx.modelValue,
25852
+ "aria-labelledby": _ctx.label ? `${toggleId.value}-label` : void 0,
25853
+ onClick: handleToggle
25854
+ }, [
25855
+ createElementVNode("span", {
25856
+ class: normalizeClass(["ui-toggle-thumb", thumbClasses.value])
25857
+ }, null, 2)
25858
+ ], 10, _hoisted_4$u)
25859
+ ]);
25806
25860
  };
25807
25861
  }
25808
25862
  });
25809
- const UiToggle = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-6c2fb8dd"]]);
25863
+ const UiToggle = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-ba05b9e3"]]);
25810
25864
  const _hoisted_1$B = { class: "accui-component-scope" };
25811
25865
  const _hoisted_2$w = { class: "avatar-editor-simple" };
25812
25866
  const _hoisted_3$u = {
@@ -39014,8 +39068,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
39014
39068
  createVNode(unref(CompoundUiButton), {
39015
39069
  color: "danger",
39016
39070
  onClick: handleSignOut,
39017
- disabled: signingOut.value,
39018
- class: "profile-sign-out-button"
39071
+ disabled: signingOut.value
39019
39072
  }, {
39020
39073
  default: withCtx(() => [
39021
39074
  createTextVNode(toDisplayString(signingOut.value ? "Signing out..." : "Sign Out"), 1)
@@ -39026,9 +39079,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
39026
39079
  trigger: withCtx(() => [
39027
39080
  createVNode(unref(CompoundUiButton), {
39028
39081
  color: "secondary",
39029
- class: "profile-sign-out-button"
39082
+ icon: ""
39030
39083
  }, {
39031
- default: withCtx(() => [..._cache[27] || (_cache[27] = [
39084
+ icon: withCtx(() => [..._cache[27] || (_cache[27] = [
39032
39085
  createElementVNode("svg", {
39033
39086
  class: "profile-action-icon",
39034
39087
  fill: "none",
@@ -39124,7 +39177,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
39124
39177
  };
39125
39178
  }
39126
39179
  });
39127
- const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-76c0144a"]]);
39180
+ const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-9430e3ba"]]);
39128
39181
  const _hoisted_1$6 = { class: "accui-component-scope" };
39129
39182
  const _hoisted_2$4 = { class: "accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up" };
39130
39183
  const _hoisted_3$3 = { class: "accui-mt-8 accui-text-center" };