@indielayer/ui 1.18.0 → 1.18.1

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/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "1.18.0";
1
+ declare const _default: "1.18.1";
2
2
  export default _default;
package/lib/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const e = "1.18.0";
1
+ const e = "1.18.1";
2
2
  export {
3
3
  e as default
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indielayer/ui",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "description": "Indielayer UI Components with Tailwind CSS build for Vue 3",
5
5
  "author": {
6
6
  "name": "João Teixeira",
@@ -83,6 +83,21 @@ const props = defineProps(selectProps)
83
83
 
84
84
  const emit = defineEmits([...useInputtable.emits(), 'close', 'open'])
85
85
 
86
+ defineSlots<{
87
+ prefix(props: { item: SelectOption; }): any;
88
+ suffix(props: { item: SelectOption; }): any;
89
+ label(props: { item: SelectOption; }): any;
90
+ input(props: {
91
+ popover: InstanceType<typeof XPopover> | null;
92
+ selected: any;
93
+ disabled: boolean;
94
+ label: string;
95
+ }): any;
96
+ 'content-header'(props?: Record<string, never>): any;
97
+ 'content-footer'(props?: Record<string, never>): any;
98
+ icon(props?: Record<string, never>): any;
99
+ }>()
100
+
86
101
  const internalMultiple = computed(() => props.multiple || props.multipleCheckbox)
87
102
 
88
103
  const elRef = ref<HTMLElement | null>(null)
@@ -360,9 +375,16 @@ function getItem(value: string | number | []) {
360
375
  function getLabel(value: string | number | []) {
361
376
  const option = getItem(value)
362
377
 
363
- if (option) return option.label
378
+ if (option) return option.label?.toString()
379
+
380
+ return value?.toString()
381
+ }
364
382
 
365
- return ''
383
+ function fallbackSelectOption(value: string | number | []): SelectOption {
384
+ return {
385
+ value: value?.toString() || '',
386
+ label: value?.toString() || '',
387
+ }
366
388
  }
367
389
 
368
390
  const { focus, blur } = useInteractive(elRef)
@@ -581,7 +603,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
581
603
  <template v-if="!hideSelectedOptionSlots">
582
604
  <div class="flex items-center">
583
605
  <span v-if="$slots.prefix || getItem(value)?.prefix" class="mr-2 shrink-0">
584
- <slot name="prefix" :item="getItem(value)">{{ getItem(value)?.prefix }}</slot>
606
+ <slot name="prefix" :item="getItem(value) || fallbackSelectOption(value)">{{ getItem(value)?.prefix }}</slot>
585
607
  </span>
586
608
 
587
609
  <span class="flex-1 truncate">
@@ -589,7 +611,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
589
611
  </span>
590
612
 
591
613
  <span v-if="$slots.suffix || getItem(value)?.suffix" class="ml-1 shrink-0">
592
- <slot name="suffix" :item="getItem(value)">{{ getItem(value)?.suffix }}</slot>
614
+ <slot name="suffix" :item="getItem(value) || fallbackSelectOption(value)">{{ getItem(value)?.suffix }}</slot>
593
615
  </span>
594
616
  </div>
595
617
  </template>
@@ -610,7 +632,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
610
632
  <template v-if="!hideSelectedOptionSlots">
611
633
  <div class="flex items-center">
612
634
  <span v-if="$slots.prefix || getItem(selected)?.prefix" class="mr-2 shrink-0">
613
- <slot name="prefix" :item="getItem(selected)">{{ getItem(selected)?.prefix }}</slot>
635
+ <slot name="prefix" :item="getItem(selected) || fallbackSelectOption(selected)">{{ getItem(selected)?.prefix }}</slot>
614
636
  </span>
615
637
 
616
638
  <span class="flex-1 truncate">
@@ -618,7 +640,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
618
640
  </span>
619
641
 
620
642
  <span v-if="$slots.suffix || getItem(selected)?.suffix" class="ml-1 shrink-0">
621
- <slot name="suffix" :item="getItem(selected)">{{ getItem(selected)?.suffix }}</slot>
643
+ <slot name="suffix" :item="getItem(selected) || fallbackSelectOption(selected)">{{ getItem(selected)?.suffix }}</slot>
622
644
  </span>
623
645
  </div>
624
646
  </template>
@@ -705,7 +727,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
705
727
  <template v-if="!hideSelectedOptionSlots">
706
728
  <div class="flex items-center">
707
729
  <span v-if="$slots.prefix || getItem(value)?.prefix" class="mr-2 shrink-0">
708
- <slot name="prefix" :item="getItem(value)">{{ getItem(value)?.prefix }}</slot>
730
+ <slot name="prefix" :item="getItem(value) || fallbackSelectOption(value)">{{ getItem(value)?.prefix }}</slot>
709
731
  </span>
710
732
 
711
733
  <span class="flex-1 truncate">
@@ -713,7 +735,7 @@ defineExpose({ focus, blur, reset, validate, setError, filterRef })
713
735
  </span>
714
736
 
715
737
  <span v-if="$slots.suffix || getItem(value)?.suffix" class="ml-1 shrink-0">
716
- <slot name="suffix" :item="getItem(value)">{{ getItem(value)?.suffix }}</slot>
738
+ <slot name="suffix" :item="getItem(value) || fallbackSelectOption(value)">{{ getItem(value)?.suffix }}</slot>
717
739
  </span>
718
740
  </div>
719
741
  </template>
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export default '1.18.0'
1
+ export default '1.18.1'