vuetify 3.0.6 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/_settings.scss +1 -0
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +460 -12
  4. package/dist/json/importMap-labs.json +28 -0
  5. package/dist/json/importMap.json +60 -60
  6. package/dist/json/tags.json +154 -8
  7. package/dist/json/web-types.json +1522 -26
  8. package/dist/vuetify-labs.d.ts +875 -0
  9. package/dist/vuetify-labs.js +9748 -0
  10. package/dist/vuetify.css +36 -55
  11. package/dist/vuetify.d.ts +173 -196
  12. package/dist/vuetify.esm.js +190 -128
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +189 -127
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +788 -780
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/blueprints/index.d.ts +3 -2
  20. package/lib/blueprints/md1.d.ts +3 -2
  21. package/lib/blueprints/md2.d.ts +3 -2
  22. package/lib/blueprints/md3.d.ts +3 -2
  23. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  24. package/lib/components/VAlert/index.d.ts +1 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.ts +3 -12
  28. package/lib/components/VAvatar/VAvatar.mjs +2 -1
  29. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  30. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +23 -20
  31. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  32. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +21 -2
  33. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  34. package/lib/components/VBreadcrumbs/index.d.ts +4 -15
  35. package/lib/components/VColorPicker/VColorPicker.mjs +0 -1
  36. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  37. package/lib/components/VCombobox/VCombobox.mjs +8 -10
  38. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  39. package/lib/components/VCombobox/index.d.ts +3 -12
  40. package/lib/components/VDivider/VDivider.css +1 -1
  41. package/lib/components/VDivider/VDivider.sass +1 -0
  42. package/lib/components/VDivider/_variables.scss +2 -1
  43. package/lib/components/VIcon/VIcon.mjs +25 -20
  44. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  45. package/lib/components/VIcon/index.d.ts +4 -8
  46. package/lib/components/VList/VListItem.css +0 -4
  47. package/lib/components/VList/VListItem.sass +12 -6
  48. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -2
  49. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  50. package/lib/components/VNavigationDrawer/index.d.ts +11 -3
  51. package/lib/components/VPagination/VPagination.mjs +12 -5
  52. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  53. package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -2
  54. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  55. package/lib/components/VSelect/VSelect.mjs +11 -8
  56. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  57. package/lib/components/VSelectionControl/VSelectionControl.mjs +11 -2
  58. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  59. package/lib/components/VSelectionControl/index.d.ts +2 -2
  60. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +12 -3
  61. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  62. package/lib/components/VSlider/VSliderThumb.css +2 -0
  63. package/lib/components/VSlider/VSliderThumb.sass +2 -0
  64. package/lib/components/VTable/VTable.css +12 -29
  65. package/lib/components/VTable/VTable.mjs +3 -3
  66. package/lib/components/VTable/VTable.mjs.map +1 -1
  67. package/lib/components/VTable/VTable.sass +10 -17
  68. package/lib/components/VTable/_variables.scss +4 -2
  69. package/lib/components/index.d.ts +27 -51
  70. package/lib/composables/filter.mjs +18 -10
  71. package/lib/composables/filter.mjs.map +1 -1
  72. package/lib/composables/icons.mjs +12 -7
  73. package/lib/composables/icons.mjs.map +1 -1
  74. package/lib/entry-bundler.mjs +1 -1
  75. package/lib/framework.mjs +15 -13
  76. package/lib/framework.mjs.map +1 -1
  77. package/lib/iconsets/fa-svg.d.ts +3 -2
  78. package/lib/iconsets/fa.d.ts +3 -2
  79. package/lib/iconsets/fa.mjs +2 -1
  80. package/lib/iconsets/fa.mjs.map +1 -1
  81. package/lib/iconsets/fa4.d.ts +3 -2
  82. package/lib/iconsets/fa4.mjs +2 -1
  83. package/lib/iconsets/fa4.mjs.map +1 -1
  84. package/lib/iconsets/md.d.ts +3 -2
  85. package/lib/iconsets/md.mjs +2 -1
  86. package/lib/iconsets/md.mjs.map +1 -1
  87. package/lib/iconsets/mdi-svg.d.ts +3 -2
  88. package/lib/iconsets/mdi-svg.mjs +2 -1
  89. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  90. package/lib/iconsets/mdi.d.ts +3 -2
  91. package/lib/iconsets/mdi.mjs +2 -1
  92. package/lib/iconsets/mdi.mjs.map +1 -1
  93. package/lib/index.d.ts +19 -18
  94. package/lib/labs/VDataTable/VDataTable.css +119 -0
  95. package/lib/labs/VDataTable/VDataTable.mjs +146 -0
  96. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -0
  97. package/lib/labs/VDataTable/VDataTable.sass +106 -0
  98. package/lib/labs/VDataTable/VDataTableColumn.mjs +37 -0
  99. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -0
  100. package/lib/labs/VDataTable/VDataTableFooter.css +22 -0
  101. package/lib/labs/VDataTable/VDataTableFooter.mjs +105 -0
  102. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -0
  103. package/lib/labs/VDataTable/VDataTableFooter.sass +23 -0
  104. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +88 -0
  105. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -0
  106. package/lib/labs/VDataTable/VDataTableHeaders.mjs +143 -0
  107. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -0
  108. package/lib/labs/VDataTable/VDataTableRow.mjs +75 -0
  109. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -0
  110. package/lib/labs/VDataTable/VDataTableRows.mjs +87 -0
  111. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -0
  112. package/lib/labs/VDataTable/VDataTableServer.mjs +124 -0
  113. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -0
  114. package/lib/labs/VDataTable/VDataTableVirtual.mjs +154 -0
  115. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -0
  116. package/lib/labs/VDataTable/_variables.scss +6 -0
  117. package/lib/labs/VDataTable/composables/expand.mjs +51 -0
  118. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -0
  119. package/lib/labs/VDataTable/composables/group.mjs +124 -0
  120. package/lib/labs/VDataTable/composables/group.mjs.map +1 -0
  121. package/lib/labs/VDataTable/composables/headers.mjs +152 -0
  122. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -0
  123. package/lib/labs/VDataTable/composables/items.mjs +30 -0
  124. package/lib/labs/VDataTable/composables/items.mjs.map +1 -0
  125. package/lib/labs/VDataTable/composables/options.mjs +44 -0
  126. package/lib/labs/VDataTable/composables/options.mjs.map +1 -0
  127. package/lib/labs/VDataTable/composables/paginate.mjs +62 -0
  128. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -0
  129. package/lib/labs/VDataTable/composables/select.mjs +57 -0
  130. package/lib/labs/VDataTable/composables/select.mjs.map +1 -0
  131. package/lib/labs/VDataTable/composables/sort.mjs +109 -0
  132. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -0
  133. package/lib/labs/VDataTable/composables/virtual.mjs +77 -0
  134. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -0
  135. package/lib/labs/VDataTable/index.d.ts +705 -0
  136. package/lib/labs/VDataTable/index.mjs +6 -0
  137. package/lib/labs/VDataTable/index.mjs.map +1 -0
  138. package/lib/labs/VDataTable/types.mjs +2 -0
  139. package/lib/labs/VDataTable/types.mjs.map +1 -0
  140. package/lib/labs/VVirtualScroll/VVirtualScroll.css +11 -0
  141. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +118 -0
  142. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
  143. package/lib/{components → labs}/VVirtualScroll/VVirtualScroll.sass +0 -5
  144. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +35 -0
  145. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
  146. package/lib/labs/VVirtualScroll/index.d.ts +154 -0
  147. package/lib/labs/VVirtualScroll/index.mjs +2 -0
  148. package/lib/labs/VVirtualScroll/index.mjs.map +1 -0
  149. package/lib/labs/components.d.ts +856 -0
  150. package/lib/labs/components.mjs +3 -0
  151. package/lib/labs/components.mjs.map +1 -0
  152. package/lib/labs/index.mjs +3 -0
  153. package/lib/labs/index.mjs.map +1 -0
  154. package/lib/util/defineComponent.mjs +4 -0
  155. package/lib/util/defineComponent.mjs.map +1 -1
  156. package/lib/util/helpers.mjs +0 -38
  157. package/lib/util/helpers.mjs.map +1 -1
  158. package/package.json +4 -2
  159. package/lib/components/VDataTable/MobileRow.mjs +0 -63
  160. package/lib/components/VDataTable/MobileRow.mjs.map +0 -1
  161. package/lib/components/VDataTable/Row.mjs +0 -57
  162. package/lib/components/VDataTable/Row.mjs.map +0 -1
  163. package/lib/components/VDataTable/RowGroup.mjs +0 -48
  164. package/lib/components/VDataTable/RowGroup.mjs.map +0 -1
  165. package/lib/components/VDataTable/VDataTable.mjs +0 -577
  166. package/lib/components/VDataTable/VDataTable.mjs.map +0 -1
  167. package/lib/components/VDataTable/VDataTable.sass +0 -98
  168. package/lib/components/VDataTable/VDataTableHeader.mjs +0 -42
  169. package/lib/components/VDataTable/VDataTableHeader.mjs.map +0 -1
  170. package/lib/components/VDataTable/VDataTableHeader.sass +0 -80
  171. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -96
  172. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +0 -1
  173. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -89
  174. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +0 -1
  175. package/lib/components/VDataTable/VEditDialog.mjs +0 -127
  176. package/lib/components/VDataTable/VEditDialog.mjs.map +0 -1
  177. package/lib/components/VDataTable/VEditDialog.sass +0 -22
  178. package/lib/components/VDataTable/VVirtualTable.mjs +0 -132
  179. package/lib/components/VDataTable/VVirtualTable.mjs.map +0 -1
  180. package/lib/components/VDataTable/VVirtualTable.sass +0 -13
  181. package/lib/components/VDataTable/_variables.scss +0 -24
  182. package/lib/components/VDataTable/index.mjs +0 -21
  183. package/lib/components/VDataTable/index.mjs.map +0 -1
  184. package/lib/components/VDataTable/mixins/header.mjs +0 -71
  185. package/lib/components/VDataTable/mixins/header.mjs.map +0 -1
  186. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +0 -108
  187. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
  188. package/lib/components/VVirtualScroll/index.mjs +0 -4
  189. package/lib/components/VVirtualScroll/index.mjs.map +0 -1
@@ -105,7 +105,8 @@ interface IconAliases {
105
105
  checkboxOff: IconValue;
106
106
  checkboxIndeterminate: IconValue;
107
107
  delimiter: IconValue;
108
- sort: IconValue;
108
+ sortAsc: IconValue;
109
+ sortDesc: IconValue;
109
110
  expand: IconValue;
110
111
  menu: IconValue;
111
112
  subgroup: IconValue;
@@ -126,7 +127,7 @@ interface IconAliases {
126
127
  }
127
128
  interface IconProps {
128
129
  tag: string;
129
- icon: IconValue;
130
+ icon?: IconValue;
130
131
  disabled?: Boolean;
131
132
  }
132
133
  declare type IconComponent = JSXComponent<IconProps>;
@@ -105,7 +105,8 @@ interface IconAliases {
105
105
  checkboxOff: IconValue;
106
106
  checkboxIndeterminate: IconValue;
107
107
  delimiter: IconValue;
108
- sort: IconValue;
108
+ sortAsc: IconValue;
109
+ sortDesc: IconValue;
109
110
  expand: IconValue;
110
111
  menu: IconValue;
111
112
  subgroup: IconValue;
@@ -126,7 +127,7 @@ interface IconAliases {
126
127
  }
127
128
  interface IconProps {
128
129
  tag: string;
129
- icon: IconValue;
130
+ icon?: IconValue;
130
131
  disabled?: Boolean;
131
132
  }
132
133
  declare type IconComponent = JSXComponent<IconProps>;
@@ -105,7 +105,8 @@ interface IconAliases {
105
105
  checkboxOff: IconValue;
106
106
  checkboxIndeterminate: IconValue;
107
107
  delimiter: IconValue;
108
- sort: IconValue;
108
+ sortAsc: IconValue;
109
+ sortDesc: IconValue;
109
110
  expand: IconValue;
110
111
  menu: IconValue;
111
112
  subgroup: IconValue;
@@ -126,7 +127,7 @@ interface IconAliases {
126
127
  }
127
128
  interface IconProps {
128
129
  tag: string;
129
- icon: IconValue;
130
+ icon?: IconValue;
130
131
  disabled?: Boolean;
131
132
  }
132
133
  declare type IconComponent = JSXComponent<IconProps>;
@@ -105,7 +105,8 @@ interface IconAliases {
105
105
  checkboxOff: IconValue;
106
106
  checkboxIndeterminate: IconValue;
107
107
  delimiter: IconValue;
108
- sort: IconValue;
108
+ sortAsc: IconValue;
109
+ sortDesc: IconValue;
109
110
  expand: IconValue;
110
111
  menu: IconValue;
111
112
  subgroup: IconValue;
@@ -126,7 +127,7 @@ interface IconAliases {
126
127
  }
127
128
  interface IconProps {
128
129
  tag: string;
129
- icon: IconValue;
130
+ icon?: IconValue;
130
131
  disabled?: Boolean;
131
132
  }
132
133
  declare type IconComponent = JSXComponent<IconProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"VAlertTitle.mjs","names":["createSimpleFunctional","VAlertTitle"],"sources":["../../../src/components/VAlert/VAlertTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlert = InstanceType<typeof VAlertTitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC"}
1
+ {"version":3,"file":"VAlertTitle.mjs","names":["createSimpleFunctional","VAlertTitle"],"sources":["../../../src/components/VAlert/VAlertTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlertTitle = InstanceType<typeof VAlertTitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC"}
@@ -183,5 +183,6 @@ declare const VAlertTitle: vue.DefineComponent<{
183
183
  }>>, {
184
184
  tag: string;
185
185
  }>;
186
+ declare type VAlertTitle = InstanceType<typeof VAlertTitle>;
186
187
 
187
188
  export { VAlert, VAlertTitle };
@@ -20,6 +20,7 @@ import { computed, mergeProps, nextTick, ref, watch } from 'vue';
20
20
  import { genericComponent, omit, useRender, wrapInArray } from "../../util/index.mjs";
21
21
  import { filterVTextFieldProps, makeVTextFieldProps } from "../VTextField/VTextField.mjs"; // Types
22
22
  function highlightResult(text, matches, length) {
23
+ if (matches == null) return text;
23
24
  if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
24
25
  return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode("span", {
25
26
  "class": "v-autocomplete__unmask"
@@ -73,7 +74,8 @@ export const VAutocomplete = genericComponent()({
73
74
  return props.multiple ? transformed : transformed[0] ?? null;
74
75
  });
75
76
  const {
76
- filteredItems
77
+ filteredItems,
78
+ getMatches
77
79
  } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value));
78
80
  const selections = computed(() => {
79
81
  return model.value.map(v => {
@@ -221,12 +223,8 @@ export const VAutocomplete = genericComponent()({
221
223
  }, {
222
224
  default: () => [!filteredItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? _createVNode(VListItem, {
223
225
  "title": t(props.noDataText)
224
- }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((_ref2, index) => {
226
+ }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((item, index) => {
225
227
  var _slots$item;
226
- let {
227
- item,
228
- matches
229
- } = _ref2;
230
228
  return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
231
229
  item,
232
230
  index,
@@ -238,18 +236,18 @@ export const VAutocomplete = genericComponent()({
238
236
  }, item.props, {
239
237
  "onClick": () => select(item)
240
238
  }), {
241
- prepend: _ref3 => {
239
+ prepend: _ref2 => {
242
240
  let {
243
241
  isSelected
244
- } = _ref3;
242
+ } = _ref2;
245
243
  return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
246
244
  "modelValue": isSelected,
247
245
  "ripple": false
248
246
  }, null) : undefined;
249
247
  },
250
248
  title: () => {
251
- var _search$value;
252
- return isPristine.value ? item.title : highlightResult(item.title, matches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
249
+ var _getMatches, _search$value;
250
+ return isPristine.value ? item.title : highlightResult(item.title, (_getMatches = getMatches(item)) == null ? void 0 : _getMatches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
253
251
  }
254
252
  });
255
253
  }), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
@@ -1 +1 @@
1
- {"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeFilterProps","useFilter","makeTransitionProps","forwardRefs","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","menu","items","transformIn","transformOut","model","v","transformed","multiple","filteredItems","value","undefined","selections","map","find","item","valueComparator","selected","selection","listRef","onClear","e","openOnClear","onClickControl","hideNoData","readonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","prepend","isSelected","hideSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { filteredItems.value.map(({ item, matches }, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeFilterProps","useFilter","makeTransitionProps","forwardRefs","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","menu","items","transformIn","transformOut","model","v","transformed","multiple","filteredItems","getMatches","value","undefined","selections","map","find","item","valueComparator","selected","selection","listRef","onClear","e","openOnClear","onClickControl","hideNoData","readonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","prepend","isSelected","hideSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems, getMatches } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { filteredItems.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
@@ -859,10 +859,7 @@ declare const VAutocomplete: {
859
859
  search: vue.Ref<string | undefined> & {
860
860
  readonly externalValue: string | undefined;
861
861
  };
862
- filteredItems: vue.ComputedRef<{
863
- item: InternalItem<any>;
864
- matches: Record<string, FilterMatch>;
865
- }[]>;
862
+ filteredItems: vue.Ref<InternalItem<any>[]>;
866
863
  select: (item: InternalItem) => void;
867
864
  } & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
868
865
  'update:search': (val: any) => boolean;
@@ -1273,10 +1270,7 @@ declare const VAutocomplete: {
1273
1270
  search: vue.Ref<string | undefined> & {
1274
1271
  readonly externalValue: string | undefined;
1275
1272
  };
1276
- filteredItems: vue.ComputedRef<{
1277
- item: InternalItem<any>;
1278
- matches: Record<string, FilterMatch>;
1279
- }[]>;
1273
+ filteredItems: vue.Ref<InternalItem<any>[]>;
1280
1274
  select: (item: InternalItem) => void;
1281
1275
  } & Omit<any, string | number | symbol>> & {} & vue.ComponentCustomProperties;
1282
1276
  __isFragment?: undefined;
@@ -1624,10 +1618,7 @@ declare const VAutocomplete: {
1624
1618
  search: vue.Ref<string | undefined> & {
1625
1619
  readonly externalValue: string | undefined;
1626
1620
  };
1627
- filteredItems: vue.ComputedRef<{
1628
- item: InternalItem<any>;
1629
- matches: Record<string, FilterMatch>;
1630
- }[]>;
1621
+ filteredItems: vue.Ref<InternalItem<any>[]>;
1631
1622
  select: (item: InternalItem) => void;
1632
1623
  } & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1633
1624
  'update:search': (val: any) => boolean;
@@ -64,7 +64,8 @@ export const VAvatar = defineComponent({
64
64
  default: () => [props.image ? _createVNode(VImg, {
65
65
  "key": "image",
66
66
  "src": props.image,
67
- "alt": ""
67
+ "alt": "",
68
+ "cover": true
68
69
  }, null) : props.icon ? _createVNode(VIcon, {
69
70
  "key": "icon",
70
71
  "icon": props.icon
@@ -1 +1 @@
1
- {"version":3,"file":"VAvatar.mjs","names":["VIcon","VImg","genOverlays","makeVariantProps","useVariant","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","defineComponent","propsFactory","useRender","makeVAvatarProps","start","Boolean","end","icon","image","String","variant","VAvatar","name","props","setup","slots","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","roundedClasses","sizeClasses","sizeStyles","value","default"],"sources":["../../../src/components/VAvatar/VAvatar.tsx"],"sourcesContent":["// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'v-avatar')\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image\n ? (<VImg key=\"image\" src={ props.image } alt=\"\" />)\n : props.icon\n ? (<VIcon key=\"icon\" icon={ props.icon } />)\n : slots.default?.()\n }\n\n { genOverlays(false, 'v-avatar') }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,IAAI,6BAEb;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,SAAS;AAAA,SACTC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,eAAe,EAAEC,YAAY,EAAEC,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,KAAK,EAAEC,OAAO;EACdC,GAAG,EAAED,OAAO;EACZE,IAAI,EAAEjB,SAAS;EACfkB,KAAK,EAAEC,MAAM;EAEb,GAAGlB,gBAAgB,EAAE;EACrB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,aAAa,EAAE;EAClB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc,EAAE;EACnB,GAAGV,gBAAgB,CAAC;IAAEsB,OAAO,EAAE;EAAO,CAAC;AACzC,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMC,OAAO,GAAGX,eAAe,CAAC;EACrCY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,EAAE;EAEzBW,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGjB,YAAY,CAACc,KAAK,CAAC;IAC5C,MAAM;MAAEI,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG9B,UAAU,CAACwB,KAAK,CAAC;IACvE,MAAM;MAAEO;IAAe,CAAC,GAAG5B,UAAU,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEQ;IAAe,CAAC,GAAG3B,UAAU,CAACmB,KAAK,CAAC;IAC5C,MAAM;MAAES,WAAW;MAAEC;IAAW,CAAC,GAAG3B,OAAO,CAACiB,KAAK,CAAC;IAElDX,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,UAAU,EACV;UACE,iBAAiB,EAAEW,KAAK,CAACT,KAAK;UAC9B,eAAe,EAAES,KAAK,CAACP;QACzB,CAAC,EACDU,YAAY,CAACQ,KAAK,EAClBP,YAAY,CAACO,KAAK,EAClBJ,cAAc,CAACI,KAAK,EACpBH,cAAc,CAACG,KAAK,EACpBF,WAAW,CAACE,KAAK,EACjBL,cAAc,CAACK,KAAK,CACrB;QAAA,SACM,CACLN,WAAW,CAACM,KAAK,EACjBD,UAAU,CAACC,KAAK;MACjB;QAAA,gBAECX,KAAK,CAACL,KAAK;UAAA,OACE,OAAO;UAAA,OAAOK,KAAK,CAACL,KAAK;UAAA,OAAO;QAAE,WAC7CK,KAAK,CAACN,IAAI;UAAA,OACI,MAAM;UAAA,QAAQM,KAAK,CAACN;QAAI,6BACpCQ,KAAK,CAACU,OAAO,qBAAb,oBAAAV,KAAK,CAAY,EAGrB5B,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;MAAA;IAAA,CAEnC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VAvatar.mjs","names":["VIcon","VImg","genOverlays","makeVariantProps","useVariant","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","defineComponent","propsFactory","useRender","makeVAvatarProps","start","Boolean","end","icon","image","String","variant","VAvatar","name","props","setup","slots","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","roundedClasses","sizeClasses","sizeStyles","value","default"],"sources":["../../../src/components/VAvatar/VAvatar.tsx"],"sourcesContent":["// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'v-avatar')\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image\n ? (<VImg key=\"image\" src={ props.image } alt=\"\" cover />)\n : props.icon\n ? (<VIcon key=\"icon\" icon={ props.icon } />)\n : slots.default?.()\n }\n\n { genOverlays(false, 'v-avatar') }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,IAAI,6BAEb;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,SAAS;AAAA,SACTC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,eAAe,EAAEC,YAAY,EAAEC,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,KAAK,EAAEC,OAAO;EACdC,GAAG,EAAED,OAAO;EACZE,IAAI,EAAEjB,SAAS;EACfkB,KAAK,EAAEC,MAAM;EAEb,GAAGlB,gBAAgB,EAAE;EACrB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,aAAa,EAAE;EAClB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc,EAAE;EACnB,GAAGV,gBAAgB,CAAC;IAAEsB,OAAO,EAAE;EAAO,CAAC;AACzC,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMC,OAAO,GAAGX,eAAe,CAAC;EACrCY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,EAAE;EAEzBW,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGjB,YAAY,CAACc,KAAK,CAAC;IAC5C,MAAM;MAAEI,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG9B,UAAU,CAACwB,KAAK,CAAC;IACvE,MAAM;MAAEO;IAAe,CAAC,GAAG5B,UAAU,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEQ;IAAe,CAAC,GAAG3B,UAAU,CAACmB,KAAK,CAAC;IAC5C,MAAM;MAAES,WAAW;MAAEC;IAAW,CAAC,GAAG3B,OAAO,CAACiB,KAAK,CAAC;IAElDX,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,UAAU,EACV;UACE,iBAAiB,EAAEW,KAAK,CAACT,KAAK;UAC9B,eAAe,EAAES,KAAK,CAACP;QACzB,CAAC,EACDU,YAAY,CAACQ,KAAK,EAClBP,YAAY,CAACO,KAAK,EAClBJ,cAAc,CAACI,KAAK,EACpBH,cAAc,CAACG,KAAK,EACpBF,WAAW,CAACE,KAAK,EACjBL,cAAc,CAACK,KAAK,CACrB;QAAA,SACM,CACLN,WAAW,CAACM,KAAK,EACjBD,UAAU,CAACC,KAAK;MACjB;QAAA,gBAECX,KAAK,CAACL,KAAK;UAAA,OACE,OAAO;UAAA,OAAOK,KAAK,CAACL,KAAK;UAAA,OAAO,EAAE;UAAA;QAAA,WAC7CK,KAAK,CAACN,IAAI;UAAA,OACI,MAAM;UAAA,QAAQM,KAAK,CAACN;QAAI,6BACpCQ,KAAK,CAACU,OAAO,qBAAb,oBAAAV,KAAK,CAAY,EAGrB5B,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;MAAA;IAAA,CAEnC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -56,6 +56,9 @@ export const VBreadcrumbs = genericComponent()({
56
56
  roundedClasses
57
57
  } = useRounded(props);
58
58
  provideDefaults({
59
+ VBreadcrumbsDivider: {
60
+ divider: toRef(props, 'divider')
61
+ },
59
62
  VBreadcrumbsItem: {
60
63
  activeClass: toRef(props, 'activeClass'),
61
64
  activeColor: toRef(props, 'activeColor'),
@@ -82,28 +85,28 @@ export const VBreadcrumbs = genericComponent()({
82
85
  default: () => [_createVNode("div", {
83
86
  "class": "v-breadcrumbs__prepend"
84
87
  }, [slots.prepend ? slots.prepend() : props.icon && _createVNode(VIcon, null, null)])]
85
- }), props.items.map((item, index, array) => {
86
- var _slots$divider;
87
- return _createVNode(_Fragment, null, [_createVNode(VBreadcrumbsItem, _mergeProps({
88
- "key": index,
89
- "disabled": index >= array.length - 1
90
- }, typeof item === 'string' ? {
91
- title: item
92
- } : item), {
93
- default: slots.title ? () => {
94
- var _slots$title;
95
- return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
96
- item,
97
- index
98
- });
99
- } : undefined
100
- }), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {
101
- default: () => [((_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
88
+ }), props.items.map((item, index, array) => _createVNode(_Fragment, null, [_createVNode(VBreadcrumbsItem, _mergeProps({
89
+ "key": index,
90
+ "disabled": index >= array.length - 1
91
+ }, typeof item === 'string' ? {
92
+ title: item
93
+ } : item), {
94
+ default: slots.title ? () => {
95
+ var _slots$title;
96
+ return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
102
97
  item,
103
98
  index
104
- })) ?? props.divider]
105
- })]);
106
- }), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
99
+ });
100
+ } : undefined
101
+ }), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {
102
+ default: slots.divider ? () => {
103
+ var _slots$divider;
104
+ return (_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
105
+ item,
106
+ index
107
+ });
108
+ } : undefined
109
+ })])), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
107
110
  });
108
111
  });
109
112
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n } & SlotsToProps<{\n prepend: []\n title: [{ item: T, index: number }]\n divider: [{ item: T, index: number }]\n default: []\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider>\n { slots.divider?.({ item, index }) ?? props.divider }\n </VBreadcrumbsDivider>\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { PropType } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n } & SlotsToProps<{\n prepend: []\n title: [{ item: T, index: number }]\n divider: [{ item: T, index: number }]\n default: []\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider\n v-slots={{\n default: slots.divider ? () => slots.divider?.({ item, index }) : undefined,\n }}\n />\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n"],"mappings":"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"}
@@ -1,3 +1,22 @@
1
- import { createSimpleFunctional } from "../../util/index.mjs";
2
- export const VBreadcrumbsDivider = createSimpleFunctional('v-breadcrumbs-divider', 'li');
1
+ import { createVNode as _createVNode } from "vue";
2
+ // Utility
3
+ import { defineComponent, useRender } from "../../util/index.mjs";
4
+ export const VBreadcrumbsDivider = defineComponent({
5
+ name: 'VBreadcrumbsDivider',
6
+ props: {
7
+ divider: [Number, String]
8
+ },
9
+ setup(props, _ref) {
10
+ let {
11
+ slots
12
+ } = _ref;
13
+ useRender(() => {
14
+ var _slots$default;
15
+ return _createVNode("li", {
16
+ "class": "v-breadcrumbs-divider"
17
+ }, [(slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)) ?? props.divider]);
18
+ });
19
+ return {};
20
+ }
21
+ });
3
22
  //# sourceMappingURL=VBreadcrumbsDivider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VBreadcrumbsDivider.mjs","names":["createSimpleFunctional","VBreadcrumbsDivider"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx"],"sourcesContent":["import { createSimpleFunctional } from '@/util'\n\nexport const VBreadcrumbsDivider = createSimpleFunctional('v-breadcrumbs-divider', 'li')\n\nexport type VBreadcrumbsDivider = InstanceType<typeof VBreadcrumbsDivider>\n"],"mappings":"SAASA,sBAAsB;AAE/B,OAAO,MAAMC,mBAAmB,GAAGD,sBAAsB,CAAC,uBAAuB,EAAE,IAAI,CAAC"}
1
+ {"version":3,"file":"VBreadcrumbsDivider.mjs","names":["defineComponent","useRender","VBreadcrumbsDivider","name","props","divider","Number","String","setup","slots","default"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx"],"sourcesContent":["// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBreadcrumbsDivider = defineComponent({\n name: 'VBreadcrumbsDivider',\n\n props: {\n divider: [Number, String],\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <li class=\"v-breadcrumbs-divider\">\n { slots?.default?.() ?? props.divider }\n </li>\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAEnC,OAAO,MAAMC,mBAAmB,GAAGF,eAAe,CAAC;EACjDG,IAAI,EAAE,qBAAqB;EAE3BC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,MAAM,EAAEC,MAAM;EAC1B,CAAC;EAEDC,KAAK,CAAEJ,KAAK,QAAa;IAAA,IAAX;MAAEK;IAAM,CAAC;IACrBR,SAAS,CAAC;MAAA;MAAA;QAAA,SACE;MAAuB,IAC7B,CAAAQ,KAAK,sCAALA,KAAK,CAAEC,OAAO,qBAAd,oBAAAD,KAAK,CAAa,KAAIL,KAAK,CAACC,OAAO;IAAA,CAExC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -294,20 +294,9 @@ declare const VBreadcrumbsItem: vue.DefineComponent<{
294
294
  declare type VBreadcrumbsItem = InstanceType<typeof VBreadcrumbsItem>;
295
295
 
296
296
  declare const VBreadcrumbsDivider: vue.DefineComponent<{
297
- tag: {
298
- type: StringConstructor;
299
- default: string;
300
- };
301
- }, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
302
- [key: string]: any;
303
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
304
- tag: {
305
- type: StringConstructor;
306
- default: string;
307
- };
308
- }>>, {
309
- tag: string;
310
- }>;
311
- declare type VBreadcrumbsDivider = InstanceType<typeof VBreadcrumbsDivider>;
297
+ divider: (StringConstructor | NumberConstructor)[];
298
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
299
+ divider: (StringConstructor | NumberConstructor)[];
300
+ }>>, {}>;
312
301
 
313
302
  export { VBreadcrumbs, VBreadcrumbsDivider, VBreadcrumbsItem };
@@ -20,7 +20,6 @@ import { onMounted, ref } from 'vue';
20
20
 
21
21
  export const VColorPicker = defineComponent({
22
22
  name: 'VColorPicker',
23
- inheritAttrs: false,
24
23
  props: {
25
24
  canvasHeight: {
26
25
  type: [String, Number],
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","inheritAttrs","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","updateColor","hsva","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n inheritAttrs: false,\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n useRender(() => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n ) }\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n ) }\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n ) }\n </div>\n ) }\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n ) }\n </VSheet>\n ))\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","updateColor","hsva","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n useRender(() => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n ) }\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n ) }\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n ) }\n </div>\n ) }\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n ) }\n </VSheet>\n ))\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}