@bagelink/vue 0.0.884 → 0.0.886

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.
@@ -94,7 +94,7 @@ declare function __VLS_template(): {
94
94
  };
95
95
  $forceUpdate: () => void;
96
96
  $nextTick: typeof import('vue').nextTick;
97
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
97
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (... /** @type { [typeof __VLS_components.Icon, ] } */args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
98
98
  } & Readonly<{}> & Omit<Readonly<{
99
99
  value?: string;
100
100
  thin?: boolean;
@@ -229,6 +229,7 @@ declare function __VLS_template(): {
229
229
  modelValue: string | number;
230
230
  debounceDelay: number;
231
231
  }> | null;
232
+ trigger: HTMLButtonElement;
232
233
  selectOptions: HTMLDivElement;
233
234
  };
234
235
  attrs: Partial<{}>;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/SelectInput.vue"],"names":[],"mappings":"AAwaA,OAAO,EAMN,KAAK,aAAa,EAClB,KAAK,MAAM,EAEX,MAAM,eAAe,CAAA;AAEtB,OAAO,wBAAwB,CAAA;AA+N/B,iBAAS,cAAc;;sBA4RI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA9EzB,GAAG,8CACmB,GAAE,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAyFjF,OAAO,IAA6B;EAEjD;AAmCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;aAxiBX,MAAM,EAAE;kBACH,MAAM;eACT,OAAO;iBACL,MAAM;iBACN,OAAO;eACT,OAAO;YACV,MAAM;gBACF,OAAO;kBACL,OAAO;WACd,aAAa;gBACR,OAAO;mBACJ,MAAM;gBACT,OAAO;wBACC,MAAM;eACf,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;;;;aAdvC,MAAM,EAAE;kBACH,MAAM;eACT,OAAO;iBACL,MAAM;iBACN,OAAO;eACT,OAAO;YACV,MAAM;gBACF,OAAO;kBACL,OAAO;WACd,aAAa;gBACR,OAAO;mBACJ,MAAM;gBACT,OAAO;wBACC,MAAM;eACf,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;;;kFAiiB/C,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAWpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/SelectInput.vue"],"names":[],"mappings":"AAobA,OAAO,EAMN,KAAK,aAAa,EAClB,KAAK,MAAM,EAEX,MAAM,eAAe,CAAA;AAEtB,OAAO,wBAAwB,CAAA;AA2O/B,iBAAS,cAAc;;sBA8RI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAzFrB,GAAG,8CACmB,GAAG,yBAAyB,GAC3D,CAAA,iDAAiD,6DAAd,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAoGxB,OAAO,IAA6B;EAEjD;AAoCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;aAxjBX,MAAM,EAAE;kBACH,MAAM;eACT,OAAO;iBACL,MAAM;iBACN,OAAO;eACT,OAAO;YACV,MAAM;gBACF,OAAO;kBACL,OAAO;WACd,aAAa;gBACR,OAAO;mBACJ,MAAM;gBACT,OAAO;wBACC,MAAM;eACf,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;;;;aAdvC,MAAM,EAAE;kBACH,MAAM;eACT,OAAO;iBACL,MAAM;iBACN,OAAO;eACT,OAAO;YACV,MAAM;gBACF,OAAO;kBACL,OAAO;WACd,aAAa;gBACR,OAAO;mBACJ,MAAM;gBACT,OAAO;wBACC,MAAM;eACf,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;;;kFAijB/C,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAWpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
package/dist/index.cjs CHANGED
@@ -43998,6 +43998,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
43998
43998
  const emit2 = __emit;
43999
43999
  const searchPlaceholder = vue.computed(() => props2.searchPlaceholder || "Search");
44000
44000
  const searchInput = vue.ref();
44001
+ const trigger = vue.ref();
44001
44002
  let selectedItems = vue.ref([]);
44002
44003
  const selectedItemCount = vue.computed(() => selectedItems.value.length ?? 0);
44003
44004
  let search = vue.ref("");
@@ -44040,6 +44041,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44040
44041
  let highlightedIndex = vue.ref(0);
44041
44042
  const selectOptions = vue.ref();
44042
44043
  function navigate(direction) {
44044
+ console.log("navigate", direction);
44043
44045
  if (direction === "up") {
44044
44046
  highlightedIndex.value = highlightedIndex.value > 0 ? highlightedIndex.value - 1 : filteredOptions.value.length - 1;
44045
44047
  } else if (direction === "down") {
@@ -44053,7 +44055,19 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44053
44055
  }
44054
44056
  const isSelected = (option2) => selectedItems.value.find((item) => getValue(option2) === getValue(item)) !== void 0;
44055
44057
  function updateOpen(visible) {
44058
+ var _a2;
44059
+ console.log("updateOpen", visible);
44056
44060
  open.value = visible;
44061
+ if (open.value) {
44062
+ (_a2 = dropdown.value) == null ? void 0 : _a2.show();
44063
+ } else {
44064
+ setTimeout(() => {
44065
+ var _a3;
44066
+ if (trigger.value) trigger.value.focus();
44067
+ if (searchInput.value) searchInput.value.focus();
44068
+ (_a3 = dropdown.value) == null ? void 0 : _a3.hide();
44069
+ }, 10);
44070
+ }
44057
44071
  if (!open.value) {
44058
44072
  if (props2.searchable && !props2.multiselect && !search.value && !selected.value) {
44059
44073
  selectedItems.value = [];
@@ -44063,12 +44077,12 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44063
44077
  }
44064
44078
  highlightedIndex.value = -1;
44065
44079
  search.value = "";
44066
- } else {
44067
- if (props2.searchable && !props2.multiselect && selectedItemCount.value) search.value = selectedLabel.value;
44080
+ } else if (props2.searchable && !props2.multiselect && selectedItemCount.value) {
44081
+ search.value = selectedLabel.value;
44068
44082
  setTimeout(
44069
44083
  () => {
44070
- var _a2, _b, _c;
44071
- return (_c = (_b = (_a2 = searchInput.value) == null ? void 0 : _a2.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
44084
+ var _a3, _b, _c;
44085
+ return (_c = (_b = (_a3 = searchInput.value) == null ? void 0 : _a3.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
44072
44086
  },
44073
44087
  100
44074
44088
  );
@@ -44161,7 +44175,6 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44161
44175
  ref: dropdown,
44162
44176
  placement: "bottom-start",
44163
44177
  class: "bagel-input selectinput",
44164
- noAutoFocus: "",
44165
44178
  onHide: _cache[10] || (_cache[10] = ($event) => updateOpen(false))
44166
44179
  }, {
44167
44180
  trigger: vue.withCtx(() => [
@@ -44186,11 +44199,13 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44186
44199
  ]
44187
44200
  }, null, 8, ["modelValue", "placeholder"])) : (vue.openBlock(), vue.createElementBlock("button", {
44188
44201
  key: 1,
44202
+ ref_key: "trigger",
44203
+ ref: trigger,
44189
44204
  disabled: _ctx.disabled,
44190
44205
  type: "button",
44191
44206
  class: vue.normalizeClass(["selectinput-btn", { isEmpty: selectedItemCount.value === 0 }]),
44192
44207
  onFocus: openOptions,
44193
- onClick: _cache[6] || (_cache[6] = ($event) => updateOpen(true))
44208
+ onClick: _cache[6] || (_cache[6] = vue.withModifiers(($event) => updateOpen(true), ["stop"]))
44194
44209
  }, [
44195
44210
  _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$c), {
44196
44211
  key: 0,
@@ -44284,7 +44299,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44284
44299
  };
44285
44300
  }
44286
44301
  });
44287
- const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-0ea75792"]]);
44302
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-973e8b39"]]);
44288
44303
  /*!
44289
44304
  * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44290
44305
  * (c) 2024 Szymon Nowak | Released under the MIT license
package/dist/index.mjs CHANGED
@@ -43996,6 +43996,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
43996
43996
  const emit2 = __emit;
43997
43997
  const searchPlaceholder = computed(() => props2.searchPlaceholder || "Search");
43998
43998
  const searchInput = ref();
43999
+ const trigger = ref();
43999
44000
  let selectedItems = ref([]);
44000
44001
  const selectedItemCount = computed(() => selectedItems.value.length ?? 0);
44001
44002
  let search = ref("");
@@ -44038,6 +44039,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44038
44039
  let highlightedIndex = ref(0);
44039
44040
  const selectOptions = ref();
44040
44041
  function navigate(direction) {
44042
+ console.log("navigate", direction);
44041
44043
  if (direction === "up") {
44042
44044
  highlightedIndex.value = highlightedIndex.value > 0 ? highlightedIndex.value - 1 : filteredOptions.value.length - 1;
44043
44045
  } else if (direction === "down") {
@@ -44051,7 +44053,19 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44051
44053
  }
44052
44054
  const isSelected = (option2) => selectedItems.value.find((item) => getValue(option2) === getValue(item)) !== void 0;
44053
44055
  function updateOpen(visible) {
44056
+ var _a2;
44057
+ console.log("updateOpen", visible);
44054
44058
  open.value = visible;
44059
+ if (open.value) {
44060
+ (_a2 = dropdown.value) == null ? void 0 : _a2.show();
44061
+ } else {
44062
+ setTimeout(() => {
44063
+ var _a3;
44064
+ if (trigger.value) trigger.value.focus();
44065
+ if (searchInput.value) searchInput.value.focus();
44066
+ (_a3 = dropdown.value) == null ? void 0 : _a3.hide();
44067
+ }, 10);
44068
+ }
44055
44069
  if (!open.value) {
44056
44070
  if (props2.searchable && !props2.multiselect && !search.value && !selected.value) {
44057
44071
  selectedItems.value = [];
@@ -44061,12 +44075,12 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44061
44075
  }
44062
44076
  highlightedIndex.value = -1;
44063
44077
  search.value = "";
44064
- } else {
44065
- if (props2.searchable && !props2.multiselect && selectedItemCount.value) search.value = selectedLabel.value;
44078
+ } else if (props2.searchable && !props2.multiselect && selectedItemCount.value) {
44079
+ search.value = selectedLabel.value;
44066
44080
  setTimeout(
44067
44081
  () => {
44068
- var _a2, _b, _c;
44069
- return (_c = (_b = (_a2 = searchInput.value) == null ? void 0 : _a2.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
44082
+ var _a3, _b, _c;
44083
+ return (_c = (_b = (_a3 = searchInput.value) == null ? void 0 : _a3.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
44070
44084
  },
44071
44085
  100
44072
44086
  );
@@ -44159,7 +44173,6 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44159
44173
  ref: dropdown,
44160
44174
  placement: "bottom-start",
44161
44175
  class: "bagel-input selectinput",
44162
- noAutoFocus: "",
44163
44176
  onHide: _cache[10] || (_cache[10] = ($event) => updateOpen(false))
44164
44177
  }, {
44165
44178
  trigger: withCtx(() => [
@@ -44184,11 +44197,13 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44184
44197
  ]
44185
44198
  }, null, 8, ["modelValue", "placeholder"])) : (openBlock(), createElementBlock("button", {
44186
44199
  key: 1,
44200
+ ref_key: "trigger",
44201
+ ref: trigger,
44187
44202
  disabled: _ctx.disabled,
44188
44203
  type: "button",
44189
44204
  class: normalizeClass(["selectinput-btn", { isEmpty: selectedItemCount.value === 0 }]),
44190
44205
  onFocus: openOptions,
44191
- onClick: _cache[6] || (_cache[6] = ($event) => updateOpen(true))
44206
+ onClick: _cache[6] || (_cache[6] = withModifiers(($event) => updateOpen(true), ["stop"]))
44192
44207
  }, [
44193
44208
  _ctx.icon ? (openBlock(), createBlock(unref(_sfc_main$c), {
44194
44209
  key: 0,
@@ -44282,7 +44297,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44282
44297
  };
44283
44298
  }
44284
44299
  });
44285
- const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-0ea75792"]]);
44300
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-973e8b39"]]);
44286
44301
  /*!
44287
44302
  * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44288
44303
  * (c) 2024 Szymon Nowak | Released under the MIT license
package/dist/style.css CHANGED
@@ -1316,10 +1316,10 @@ p {
1316
1316
  } */
1317
1317
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
1318
1318
 
1319
- .selectinput[data-v-0ea75792] {
1319
+ .selectinput[data-v-973e8b39] {
1320
1320
  width: 100%;
1321
1321
  }
1322
- .selectinput-option[data-v-0ea75792] {
1322
+ .selectinput-option[data-v-973e8b39] {
1323
1323
  padding: 6px 12px;
1324
1324
  cursor: pointer;
1325
1325
  border-radius: 5px;
@@ -1331,23 +1331,23 @@ p {
1331
1331
  font-size: var(--input-font-size);
1332
1332
  margin-block: 0.15rem;
1333
1333
  }
1334
- .selectinput-option .bgl_icon-font[data-v-0ea75792]{
1334
+ .selectinput-option .bgl_icon-font[data-v-973e8b39]{
1335
1335
  line-height: normal;
1336
1336
  }
1337
- .selectinput-options.multiselect .selectinput-option[data-v-0ea75792] {
1337
+ .selectinput-options.multiselect .selectinput-option[data-v-973e8b39] {
1338
1338
  grid-template-columns: 10px 1fr;
1339
1339
  }
1340
- .selectinput-options[data-v-0ea75792] {
1340
+ .selectinput-options[data-v-973e8b39] {
1341
1341
  max-height: 300px;
1342
1342
  overflow-y: auto;
1343
1343
  }
1344
- .selectinput-option[data-v-0ea75792]:hover, .highlight[data-v-0ea75792] {
1344
+ .selectinput-option[data-v-973e8b39]:hover, .highlight[data-v-973e8b39] {
1345
1345
  background: var(--bgl-gray-20);
1346
1346
  }
1347
- .isEmpty p[data-v-0ea75792] {
1347
+ .isEmpty p[data-v-973e8b39] {
1348
1348
  opacity: 0.3;
1349
1349
  }
1350
- .selected[data-v-0ea75792]{
1350
+ .selected[data-v-973e8b39]{
1351
1351
  /* background: var(--bgl-primary-tint); */
1352
1352
  background: var(--bgl-selected);
1353
1353
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.884",
4
+ "version": "0.0.886",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -35,6 +35,7 @@ const emit = defineEmits(['update:modelValue']) // Add 'search' event
35
35
  const searchPlaceholder = $computed(() => props.searchPlaceholder || 'Search')
36
36
 
37
37
  const searchInput = $ref<HTMLInputElement | undefined>()
38
+ const trigger = $ref<HTMLButtonElement | undefined>()
38
39
 
39
40
  let selectedItems = $ref<Option[]>([])
40
41
 
@@ -97,6 +98,7 @@ let highlightedIndex = $ref(0)
97
98
  const selectOptions = $ref<HTMLElement | undefined>()
98
99
 
99
100
  function navigate(direction: 'up' | 'down') {
101
+ console.log('navigate', direction)
100
102
  if (direction === 'up') {
101
103
  highlightedIndex = highlightedIndex > 0 ? highlightedIndex - 1 : filteredOptions.length - 1
102
104
  } else if (direction === 'down') {
@@ -111,7 +113,17 @@ function navigate(direction: 'up' | 'down') {
111
113
  const isSelected = (option: Option) => selectedItems.find(item => getValue(option) === getValue(item)) !== undefined
112
114
 
113
115
  function updateOpen(visible: boolean) {
116
+ console.log('updateOpen', visible)
114
117
  open = visible
118
+
119
+ if (open) { dropdown?.show() }
120
+ else {
121
+ setTimeout(() => {
122
+ if (trigger) trigger.focus()
123
+ if (searchInput) searchInput.focus()
124
+ dropdown?.hide()
125
+ }, 10)
126
+ }
115
127
  if (!open) {
116
128
  if (props.searchable && !props.multiselect && !search && !selected) { selectedItems = []
117
129
  }
@@ -121,8 +133,8 @@ function updateOpen(visible: boolean) {
121
133
  highlightedIndex = -1
122
134
  search = ''
123
135
  }
124
- else {
125
- if (props.searchable && !props.multiselect && selectedItemCount) search = selectedLabel as string
136
+ else if (props.searchable && !props.multiselect && selectedItemCount) {
137
+ search = selectedLabel as string
126
138
  setTimeout(
127
139
  () => (searchInput as any)?.$el?.querySelector('input')?.focus(),
128
140
  100,
@@ -231,7 +243,6 @@ onMounted(() => {
231
243
  ref="dropdown"
232
244
  placement="bottom-start"
233
245
  class="bagel-input selectinput"
234
- noAutoFocus
235
246
  @hide="updateOpen(false)"
236
247
  >
237
248
  <template #trigger>
@@ -253,12 +264,13 @@ onMounted(() => {
253
264
  />
254
265
  <button
255
266
  v-else
267
+ ref="trigger"
256
268
  :disabled="disabled"
257
269
  type="button"
258
270
  class="selectinput-btn"
259
271
  :class="{ isEmpty: selectedItemCount === 0 }"
260
272
  @focus="openOptions"
261
- @click="updateOpen(true)"
273
+ @click.stop="updateOpen(true)"
262
274
  >
263
275
  <Icon v-if="icon" :icon="icon" />
264
276
  <p v-if="!hideLabel">