@vuetify/nightly 3.0.0-next-20220107.0 → 3.0.0-next-20220126.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 (67) hide show
  1. package/dist/json/attributes.json +96 -20
  2. package/dist/json/importMap.json +8 -0
  3. package/dist/json/tags.json +32 -3
  4. package/dist/json/web-types.json +338 -41
  5. package/dist/vuetify.css +77 -20
  6. package/dist/vuetify.d.ts +204 -48
  7. package/dist/vuetify.esm.js +707 -387
  8. package/dist/vuetify.esm.js.map +1 -1
  9. package/dist/vuetify.js +707 -387
  10. package/dist/vuetify.js.map +1 -1
  11. package/dist/vuetify.min.css +2 -2
  12. package/dist/vuetify.min.js +2 -2
  13. package/dist/vuetify.min.js.map +1 -1
  14. package/lib/components/VBtn/VBtn.css +0 -16
  15. package/lib/components/VBtn/VBtn.sass +0 -6
  16. package/lib/components/VBtn/_variables.scss +0 -2
  17. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +2 -2
  18. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  19. package/lib/components/VHover/VHover.mjs +3 -3
  20. package/lib/components/VHover/VHover.mjs.map +1 -1
  21. package/lib/components/VInput/VInput.mjs +3 -2
  22. package/lib/components/VInput/VInput.mjs.map +1 -1
  23. package/lib/components/VList/VList.css +4 -2
  24. package/lib/components/VList/VList.mjs +34 -35
  25. package/lib/components/VList/VList.mjs.map +1 -1
  26. package/lib/components/VList/VList.sass +5 -2
  27. package/lib/components/VList/VListChildren.mjs +19 -14
  28. package/lib/components/VList/VListChildren.mjs.map +1 -1
  29. package/lib/components/VList/VListGroup.mjs +16 -40
  30. package/lib/components/VList/VListGroup.mjs.map +1 -1
  31. package/lib/components/VList/VListItem.mjs +3 -3
  32. package/lib/components/VList/VListItem.mjs.map +1 -1
  33. package/lib/components/VList/VListSubheader.mjs +20 -12
  34. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  35. package/lib/components/VList/list.mjs +31 -0
  36. package/lib/components/VList/list.mjs.map +1 -0
  37. package/lib/components/VMessages/VMessages.mjs +12 -4
  38. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  39. package/lib/components/VOverlay/VOverlay.mjs +2 -2
  40. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  41. package/lib/components/VOverlay/useActivator.mjs +12 -2
  42. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  43. package/lib/components/VPagination/VPagination.mjs +23 -31
  44. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  45. package/lib/components/VWindow/VWindow.css +70 -0
  46. package/lib/components/VWindow/VWindow.mjs +158 -233
  47. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  48. package/lib/components/VWindow/VWindow.sass +26 -50
  49. package/lib/components/VWindow/VWindowItem.mjs +72 -98
  50. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  51. package/lib/components/VWindow/_variables.scss +2 -3
  52. package/lib/components/VWindow/index.mjs +2 -9
  53. package/lib/components/VWindow/index.mjs.map +1 -1
  54. package/lib/components/index.d.ts +200 -47
  55. package/lib/components/index.mjs +1 -1
  56. package/lib/components/index.mjs.map +1 -1
  57. package/lib/composables/group.mjs +1 -6
  58. package/lib/composables/group.mjs.map +1 -1
  59. package/lib/composables/nested/nested.mjs +1 -1
  60. package/lib/composables/nested/nested.mjs.map +1 -1
  61. package/lib/composables/nested/openStrategies.mjs +1 -1
  62. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  63. package/lib/directives/touch/index.mjs +6 -3
  64. package/lib/directives/touch/index.mjs.map +1 -1
  65. package/lib/entry-bundler.mjs +1 -1
  66. package/lib/index.d.ts +2 -0
  67. package/package.json +2 -1
@@ -331,24 +331,8 @@
331
331
  }
332
332
 
333
333
  .v-pagination .v-btn {
334
- box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
335
334
  border-radius: 4px;
336
335
  }
337
- .v-pagination .v-btn.v-btn--density-default {
338
- height: calc(var(--v-btn-height) + 0px);
339
- width: calc(var(--v-btn-height) + 0px);
340
- }
341
- .v-pagination .v-btn.v-btn--density-comfortable {
342
- height: calc(var(--v-btn-height) + -4px);
343
- width: calc(var(--v-btn-height) + -4px);
344
- }
345
- .v-pagination .v-btn.v-btn--density-compact {
346
- height: calc(var(--v-btn-height) + -8px);
347
- width: calc(var(--v-btn-height) + -8px);
348
- }
349
- .v-pagination__list .v-btn--elevated {
350
- box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
351
- }
352
336
  .v-pagination__item--is-active .v-btn__overlay {
353
337
  opacity: var(--v-border-opacity);
354
338
  }
@@ -184,13 +184,7 @@
184
184
  // VPagination
185
185
  .v-btn
186
186
  .v-pagination &
187
- @include tools.elevation($button-pagination-elevation)
188
187
  @include tools.rounded($button-pagination-border-radius)
189
- @include button-density('height' 'width', $button-pagination-density)
190
-
191
- &--elevated
192
- .v-pagination__list &
193
- @include tools.elevation($button-pagination-elevation)
194
188
 
195
189
  &__overlay
196
190
  .v-pagination__item--is-active &
@@ -28,7 +28,6 @@ $button-bottom-navigation-text-transform: none !default;
28
28
  $button-bottom-navigation-transition-duration: .2s !default;
29
29
  $button-pagination-active-overlay-opacity: var(--v-border-opacity) !default;
30
30
  $button-pagination-border-radius: settings.$border-radius-root !default;
31
- $button-pagination-elevation: 0 !default;
32
31
  $button-border-color: settings.$border-color-root !default;
33
32
  $button-border-radius: settings.$border-radius-root !default;
34
33
  $button-border-style: settings.$border-style-root !default;
@@ -62,7 +61,6 @@ $button-stacked-width-ratio: 1 !default;
62
61
  $button-density: ('default': 0, 'comfortable': -2, 'compact': -3) !default;
63
62
  $button-stacked-density: ('default': 0, 'comfortable': -4, 'compact': -6) !default;
64
63
  $button-icon-density: ('default': 3, 'comfortable': 0, 'compact': -2) !default;
65
- $button-pagination-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
66
64
 
67
65
  $button-border: (
68
66
  $button-border-color,
@@ -40,11 +40,11 @@ export const VExpansionPanel = defineComponent({
40
40
  } = useElevation(props);
41
41
  provide(VExpansionPanelSymbol, groupItem);
42
42
  const isBeforeSelected = computed(() => {
43
- const index = groupItem.group.items.value.indexOf(groupItem.id);
43
+ const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
44
44
  return !groupItem.isSelected.value && groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === 1);
45
45
  });
46
46
  const isAfterSelected = computed(() => {
47
- const index = groupItem.group.items.value.indexOf(groupItem.id);
47
+ const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
48
48
  return !groupItem.isSelected.value && groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === -1);
49
49
  });
50
50
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanel.tsx"],"names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","VExpansionPanelText","VExpansionPanelSymbol","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","useBackgroundColor","makeTagProps","makeLazyProps","computed","provide","defineComponent","VExpansionPanel","name","props","title","String","text","bgColor","setup","slots","groupItem","roundedClasses","elevationClasses","isBeforeSelected","index","group","items","value","indexOf","id","isSelected","selected","some","isAfterSelected","backgroundColorClasses","backgroundColorStyles","disabled","default","expandIcon","collapseIcon","color","hideActions","ripple","eager"],"mappings":"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","sourcesContent":["// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelText } from './VExpansionPanelText'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeLazyProps } from '@/composables/lazy'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeLazyProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { roundedClasses } = useRounded(props)\n const { elevationClasses } = useElevation(props)\n\n provide(VExpansionPanelSymbol, groupItem)\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.indexOf(groupItem.id)\n return !groupItem.isSelected.value &&\n groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.indexOf(groupItem.id)\n return !groupItem.isSelected.value &&\n groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === -1)\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n\n return () => (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': groupItem.disabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n { slots.default?.() || (\n <>\n <VExpansionPanelTitle\n expandIcon={ props.expandIcon }\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n <VExpansionPanelText eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n </>\n ) }\n </props.tag>\n )\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n"],"file":"VExpansionPanel.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VExpansionPanel/VExpansionPanel.tsx"],"names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","VExpansionPanelText","VExpansionPanelSymbol","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","useBackgroundColor","makeTagProps","makeLazyProps","computed","provide","defineComponent","VExpansionPanel","name","props","title","String","text","bgColor","setup","slots","groupItem","roundedClasses","elevationClasses","isBeforeSelected","index","group","items","value","findIndex","item","id","isSelected","selected","some","indexOf","isAfterSelected","backgroundColorClasses","backgroundColorStyles","disabled","default","expandIcon","collapseIcon","color","hideActions","ripple","eager"],"mappings":"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","sourcesContent":["// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelText } from './VExpansionPanelText'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeLazyProps } from '@/composables/lazy'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeLazyProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { roundedClasses } = useRounded(props)\n const { elevationClasses } = useElevation(props)\n\n provide(VExpansionPanelSymbol, groupItem)\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === -1)\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n\n return () => (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': groupItem.disabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n { slots.default?.() || (\n <>\n <VExpansionPanelTitle\n expandIcon={ props.expandIcon }\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n <VExpansionPanelText eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n </>\n ) }\n </props.tag>\n )\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n"],"file":"VExpansionPanel.mjs"}
@@ -21,16 +21,16 @@ export const VHover = defineComponent({
21
21
  let {
22
22
  slots
23
23
  } = _ref;
24
- const hover = useProxiedModel(props, 'modelValue');
24
+ const isHovering = useProxiedModel(props, 'modelValue');
25
25
  const {
26
26
  runOpenDelay,
27
27
  runCloseDelay
28
- } = useDelay(props, value => !props.disabled && (hover.value = value));
28
+ } = useDelay(props, value => !props.disabled && (isHovering.value = value));
29
29
  return () => {
30
30
  var _slots$default;
31
31
 
32
32
  return (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
33
- hover: hover.value,
33
+ isHovering: isHovering.value,
34
34
  props: {
35
35
  onMouseenter: runOpenDelay,
36
36
  onMouseleave: runCloseDelay
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VHover/VHover.tsx"],"names":["makeDelayProps","useDelay","useProxiedModel","defineComponent","VHover","name","props","disabled","Boolean","modelValue","type","default","undefined","emits","value","setup","slots","hover","runOpenDelay","runCloseDelay","onMouseenter","onMouseleave"],"mappings":"AAAA;SACSA,c,EAAgBC,Q;SAChBC,e,8CAET;;SACSC,e;AAET,OAAO,MAAMC,MAAM,GAAGD,eAAe,CAAC;AACpCE,EAAAA,IAAI,EAAE,QAD8B;AAGpCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAEC,OADL;AAELC,IAAAA,UAAU,EAAE;AACVC,MAAAA,IAAI,EAAEF,OADI;AAEVG,MAAAA,OAAO,EAAEC;AAFC,KAFP;AAOL,OAAGZ,cAAc;AAPZ,GAH6B;AAapCa,EAAAA,KAAK,EAAE;AACL,yBAAsBC,KAAD,IAAoB;AADpC,GAb6B;;AAiBpCC,EAAAA,KAAK,CAAET,KAAF,QAAoB;AAAA,QAAX;AAAEU,MAAAA;AAAF,KAAW;AACvB,UAAMC,KAAK,GAAGf,eAAe,CAACI,KAAD,EAAQ,YAAR,CAA7B;AACA,UAAM;AAAEY,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QAAkClB,QAAQ,CAACK,KAAD,EAAQQ,KAAK,IAAI,CAACR,KAAK,CAACC,QAAP,KAAoBU,KAAK,CAACH,KAAN,GAAcA,KAAlC,CAAjB,CAAhD;AAEA,WAAO;AAAA;;AAAA,+BAAME,KAAK,CAACL,OAAZ,qBAAM,oBAAAK,KAAK,EAAW;AAC3BC,QAAAA,KAAK,EAAEA,KAAK,CAACH,KADc;AAE3BR,QAAAA,KAAK,EAAE;AACLc,UAAAA,YAAY,EAAEF,YADT;AAELG,UAAAA,YAAY,EAAEF;AAFT;AAFoB,OAAX,CAAX;AAAA,KAAP;AAOD;;AA5BmC,CAAD,CAA9B","sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VHover = defineComponent({\n name: 'VHover',\n\n props: {\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeDelayProps(),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const hover = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (hover.value = value))\n\n return () => slots.default?.({\n hover: hover.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n"],"file":"VHover.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VHover/VHover.tsx"],"names":["makeDelayProps","useDelay","useProxiedModel","defineComponent","VHover","name","props","disabled","Boolean","modelValue","type","default","undefined","emits","value","setup","slots","isHovering","runOpenDelay","runCloseDelay","onMouseenter","onMouseleave"],"mappings":"AAAA;SACSA,c,EAAgBC,Q;SAChBC,e,8CAET;;SACSC,e;AAET,OAAO,MAAMC,MAAM,GAAGD,eAAe,CAAC;AACpCE,EAAAA,IAAI,EAAE,QAD8B;AAGpCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAEC,OADL;AAELC,IAAAA,UAAU,EAAE;AACVC,MAAAA,IAAI,EAAEF,OADI;AAEVG,MAAAA,OAAO,EAAEC;AAFC,KAFP;AAOL,OAAGZ,cAAc;AAPZ,GAH6B;AAapCa,EAAAA,KAAK,EAAE;AACL,yBAAsBC,KAAD,IAAoB;AADpC,GAb6B;;AAiBpCC,EAAAA,KAAK,CAAET,KAAF,QAAoB;AAAA,QAAX;AAAEU,MAAAA;AAAF,KAAW;AACvB,UAAMC,UAAU,GAAGf,eAAe,CAACI,KAAD,EAAQ,YAAR,CAAlC;AACA,UAAM;AAAEY,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QAAkClB,QAAQ,CAACK,KAAD,EAAQQ,KAAK,IAAI,CAACR,KAAK,CAACC,QAAP,KAAoBU,UAAU,CAACH,KAAX,GAAmBA,KAAvC,CAAjB,CAAhD;AAEA,WAAO;AAAA;;AAAA,+BAAME,KAAK,CAACL,OAAZ,qBAAM,oBAAAK,KAAK,EAAW;AAC3BC,QAAAA,UAAU,EAAEA,UAAU,CAACH,KADI;AAE3BR,QAAAA,KAAK,EAAE;AACLc,UAAAA,YAAY,EAAEF,YADT;AAELG,UAAAA,YAAY,EAAEF;AAFT;AAFoB,OAAX,CAAX;AAAA,KAAP;AAOD;;AA5BmC,CAAD,CAA9B","sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VHover = defineComponent({\n name: 'VHover',\n\n props: {\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeDelayProps(),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isHovering = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (isHovering.value = value))\n\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n"],"file":"VHover.mjs"}
@@ -106,10 +106,11 @@ export const VInput = genericComponent()({
106
106
  "class": "v-input__details"
107
107
  }, [_createVNode(VMessages, {
108
108
  "active": showMessages,
109
- "value": errorMessages.value || (hasMessages ? props.messages : props.hint)
109
+ "color": isValid.value === false ? 'error' : undefined,
110
+ "value": errorMessages.value.length > 0 ? errorMessages.value : hasMessages ? props.messages : props.hint
110
111
  }, {
111
112
  default: slots.messages
112
- }, 8, ["active", "value"]), (_slots$details = slots.details) == null ? void 0 : _slots$details.call(slots, slotProps.value)])], 2);
113
+ }, 8, ["active", "color", "value"]), (_slots$details = slots.details) == null ? void 0 : _slots$details.call(slots, slotProps.value)])], 2);
113
114
  });
114
115
  return {
115
116
  isValid,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","provide","toRef","genericComponent","getUid","pick","propsFactory","useRender","VInputSymbol","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","hint","messages","type","Array","default","persistentHint","direction","validator","v","includes","VInput","name","props","focused","emits","val","e","setup","slots","emit","densityClasses","errorMessages","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","uid","isFocused","slotProps","hasPrepend","prepend","hasAppend","append","hasHint","hasMessages","length","value","hasDetails","showMessages","details","filterInputProps","Object","keys"],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDisabled: ComputedRef<boolean>\n isFocused: Ref<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const VInputSymbol = 'VInput' as any as InjectionKey<ComputedRef<VInputSlot>>\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hint: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n persistentHint: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n }>\n}>()({\n name: 'VInput',\n\n props: {\n focused: Boolean,\n\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'click:prepend': (e: MouseEvent) => true,\n 'click:append': (e: MouseEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = toRef(props, 'focused')\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDisabled,\n isFocused,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n provide(VInputSymbol, slotProps)\n\n useRender(() => {\n const hasPrepend = (slots.prepend || props.prependIcon)\n const hasAppend = (slots.append || props.appendIcon)\n const hasHint = !!(slots.hint || props.hint)\n const hasMessages = !!(\n slots.messages ||\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || hasHint)\n )\n const showMessages = hasMessages || (\n hasHint &&\n (props.persistentHint || props.focused)\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n onClick={ e => emit('click:prepend', e) }\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon icon={ props.prependIcon } />\n ) }\n </div>\n ) }\n\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n onClick={ e => emit('click:append', e) }\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon icon={ props.appendIcon } />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ showMessages }\n value={ errorMessages.value || (hasMessages ? props.messages : props.hint) }\n v-slots={{ default: slots.messages }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n isValid,\n validate,\n reset,\n resetValidation,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"file":"VInput.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","provide","toRef","genericComponent","getUid","pick","propsFactory","useRender","VInputSymbol","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","hint","messages","type","Array","default","persistentHint","direction","validator","v","includes","VInput","name","props","focused","emits","val","e","setup","slots","emit","densityClasses","errorMessages","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","uid","isFocused","slotProps","hasPrepend","prepend","hasAppend","append","hasHint","hasMessages","length","value","hasDetails","showMessages","undefined","details","filterInputProps","Object","keys"],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDisabled: ComputedRef<boolean>\n isFocused: Ref<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const VInputSymbol = 'VInput' as any as InjectionKey<ComputedRef<VInputSlot>>\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hint: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n persistentHint: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n }>\n}>()({\n name: 'VInput',\n\n props: {\n focused: Boolean,\n\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'click:prepend': (e: MouseEvent) => true,\n 'click:append': (e: MouseEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = toRef(props, 'focused')\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDisabled,\n isFocused,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n provide(VInputSymbol, slotProps)\n\n useRender(() => {\n const hasPrepend = (slots.prepend || props.prependIcon)\n const hasAppend = (slots.append || props.appendIcon)\n const hasHint = !!(slots.hint || props.hint)\n const hasMessages = !!(\n slots.messages ||\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || hasHint)\n )\n const showMessages = hasMessages || (\n hasHint &&\n (props.persistentHint || props.focused)\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n onClick={ e => emit('click:prepend', e) }\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon icon={ props.prependIcon } />\n ) }\n </div>\n ) }\n\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n onClick={ e => emit('click:append', e) }\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon icon={ props.appendIcon } />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ showMessages }\n color={ isValid.value === false ? 'error' : undefined }\n value={ errorMessages.value.length > 0\n ? errorMessages.value\n : (hasMessages ? props.messages : props.hint)\n }\n v-slots={{ default: slots.messages }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n isValid,\n validate,\n reset,\n resetValidation,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"file":"VInput.mjs"}
@@ -54,7 +54,6 @@
54
54
  font-weight: 500;
55
55
  line-height: 1.375rem;
56
56
  padding-inline-end: 16px;
57
- padding-inline-start: 16px;
58
57
  min-height: 48px;
59
58
  transition: 0.2s min-height cubic-bezier(0.4, 0, 0.2, 1);
60
59
  }
@@ -66,14 +65,17 @@
66
65
  }
67
66
  .v-list--density-default .v-list-subheader {
68
67
  min-height: 48px;
68
+ padding-inline-start: calc(16px + var(--indent-padding)) !important;
69
69
  }
70
70
 
71
71
  .v-list--density-comfortable .v-list-subheader {
72
72
  min-height: 44px;
73
+ padding-inline-start: calc(16px + var(--indent-padding)) !important;
73
74
  }
74
75
 
75
76
  .v-list--density-compact .v-list-subheader {
76
77
  min-height: 40px;
78
+ padding-inline-start: calc(16px + var(--indent-padding)) !important;
77
79
  }
78
80
 
79
81
  .v-list-subheader--inset {
@@ -82,7 +84,7 @@
82
84
  .v-list--nav .v-list-subheader {
83
85
  font-size: 0.75rem;
84
86
  }
85
- .v-list--subheader-sticky .v-list-subheader {
87
+ .v-list-subheader--sticky {
86
88
  background: inherit;
87
89
  left: 0;
88
90
  position: sticky;
@@ -2,7 +2,6 @@ import { createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VList.css"; // Components
4
4
 
5
- import { VListSubheader } from "./VListSubheader.mjs";
6
5
  import { VListChildren } from "./VListChildren.mjs"; // Composables
7
6
 
8
7
  import { makeBorderProps, useBorder } from "../../composables/border.mjs";
@@ -13,32 +12,41 @@ import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
13
12
  import { makeTagProps } from "../../composables/tag.mjs";
14
13
  import { useBackgroundColor } from "../../composables/color.mjs";
15
14
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
16
- import { makeNestedProps, useNested } from "../../composables/nested/nested.mjs"; // Utilities
15
+ import { makeNestedProps, useNested } from "../../composables/nested/nested.mjs";
16
+ import { createList } from "./list.mjs"; // Utilities
17
17
 
18
- import { inject, provide, ref, toRef } from 'vue';
18
+ import { computed, toRef } from 'vue';
19
19
  import { genericComponent, useRender } from "../../util/index.mjs"; // Types
20
20
 
21
- // Depth
22
- export const DepthKey = Symbol.for('vuetify:depth'); // List
23
-
24
- export const ListKey = Symbol.for('vuetify:list');
25
- export const createList = () => {
26
- const parent = inject(ListKey, {
27
- hasPrepend: ref(false),
28
- updateHasPrepend: () => null
21
+ const parseItems = items => {
22
+ if (!items) return undefined;
23
+ return items.map(item => {
24
+ if (typeof item === 'string') return {
25
+ type: 'item',
26
+ value: item,
27
+ title: item
28
+ };
29
+ const {
30
+ $type,
31
+ $children,
32
+ ...props
33
+ } = item;
34
+ if ($type === 'subheader') return {
35
+ type: 'subheader',
36
+ props
37
+ };
38
+ if ($type === 'divider') return {
39
+ type: 'divider',
40
+ props
41
+ };
42
+ return {
43
+ type: 'item',
44
+ props,
45
+ children: parseItems($children)
46
+ };
29
47
  });
30
- const data = {
31
- hasPrepend: ref(false),
32
- updateHasPrepend: value => {
33
- if (value) data.hasPrepend.value = value;
34
- }
35
- };
36
- provide(ListKey, data);
37
- return parent;
38
- };
39
- export const useList = () => {
40
- return inject(ListKey, null);
41
48
  };
49
+
42
50
  export const VList = genericComponent()({
43
51
  name: 'VList',
44
52
  props: {
@@ -49,10 +57,6 @@ export const VList = genericComponent()({
49
57
  default: 'one'
50
58
  },
51
59
  nav: Boolean,
52
- subheader: {
53
- type: [Boolean, String],
54
- default: false
55
- },
56
60
  items: Array,
57
61
  ...makeNestedProps({
58
62
  selectStrategy: 'leaf',
@@ -77,6 +81,7 @@ export const VList = genericComponent()({
77
81
  let {
78
82
  slots
79
83
  } = _ref;
84
+ const items = computed(() => parseItems(props.items));
80
85
  const {
81
86
  themeClasses
82
87
  } = provideTheme(props);
@@ -106,28 +111,22 @@ export const VList = genericComponent()({
106
111
  } = useNested(props);
107
112
  createList();
108
113
  useRender(() => {
109
- const hasHeader = typeof props.subheader === 'string' || slots.subheader;
110
114
  return _createVNode(props.tag, {
111
115
  "class": ['v-list', {
112
116
  'v-list--disabled': props.disabled,
113
117
  'v-list--nav': props.nav,
114
- 'v-list--subheader': props.subheader,
115
- 'v-list--subheader-sticky': props.subheader === 'sticky',
116
118
  [`v-list--${props.lines}-line`]: true
117
119
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
118
120
  "style": [backgroundColorStyles.value, dimensionStyles.value]
119
121
  }, {
120
- default: () => [hasHeader && (slots.subheader ? slots.subheader() : _createVNode(VListSubheader, null, {
121
- default: () => [props.subheader]
122
- })), _createVNode(VListChildren, {
123
- "items": props.items
122
+ default: () => [_createVNode(VListChildren, {
123
+ "items": items.value
124
124
  }, {
125
125
  default: slots.default,
126
126
  item: slots.item,
127
127
  externalHeader: slots.header,
128
128
  _: 1
129
- }, 8, ["items"])],
130
- _: 1
129
+ }, 8, ["items"])]
131
130
  }, 8, ["class", "style"]);
132
131
  });
133
132
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListSubheader","VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","inject","provide","ref","toRef","genericComponent","useRender","DepthKey","Symbol","for","ListKey","createList","parent","hasPrepend","updateHasPrepend","data","value","useList","VList","name","props","color","String","disabled","Boolean","lines","type","default","nav","subheader","items","Array","selectStrategy","openStrategy","activeStrategy","emits","val","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","activate","hasHeader","item","externalHeader","header"],"mappings":"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","sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListSubheader } from './VListSubheader'\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\n\n// Utilities\nimport { inject, provide, ref, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupHeaderSlot } from './VListGroup'\n\nexport type ListItem = {\n children?: ListItem[]\n value?: string\n}\n\n// Depth\nexport const DepthKey: InjectionKey<Ref<number>> = Symbol.for('vuetify:depth')\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref<boolean>\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport const createList = () => {\n const parent = inject(ListKey, { hasPrepend: ref(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: ref(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport const useList = () => {\n return inject(ListKey, null)\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupHeaderSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n color: String,\n disabled: Boolean,\n lines: {\n type: String,\n default: 'one',\n },\n nav: Boolean,\n subheader: {\n type: [Boolean, String],\n default: false,\n },\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'leaf' as const,\n openStrategy: 'multiple' as const,\n activeStrategy: 'single' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'update:active': (val: string[]) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { open, select, activate } = useNested(props)\n createList()\n\n useRender(() => {\n const hasHeader = typeof props.subheader === 'string' || slots.subheader\n\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--subheader': props.subheader,\n 'v-list--subheader-sticky': props.subheader === 'sticky',\n [`v-list--${props.lines}-line`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n { hasHeader && (\n slots.subheader\n ? slots.subheader()\n : <VListSubheader>{ props.subheader }</VListSubheader>\n ) }\n\n <VListChildren items={ props.items }>\n {{\n default: slots.default,\n item: slots.item,\n externalHeader: slots.header,\n }}\n </VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n activate,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"file":"VList.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","createList","computed","toRef","genericComponent","useRender","parseItems","items","undefined","map","item","type","value","title","$type","$children","props","children","VList","name","color","String","disabled","Boolean","lines","default","nav","Array","selectStrategy","openStrategy","activeStrategy","emits","val","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","activate","externalHeader","header"],"mappings":";AAAA;AACA,qB,CAEA;;SACSA,a,+BAET;;SACSC,e,EAAiBC,S;SACjBC,gB,EAAkBC,U;SAClBC,kB,EAAoBC,Y;SACpBC,kB,EAAoBC,Y;SACpBC,gB,EAAkBC,U;SAClBC,Y;SACAC,kB;SACAC,c,EAAgBC,Y;SAChBC,e,EAAiBC,S;SACjBC,U,sBAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,gB,EAAkBC,S,gCAE3B;;AAiBA,MAAMC,UAAU,GAAIC,KAAD,IAAmE;AACpF,MAAI,CAACA,KAAL,EAAY,OAAOC,SAAP;AAEZ,SAAOD,KAAK,CAACE,GAAN,CAAUC,IAAI,IAAI;AACvB,QAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B,OAAO;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,KAAK,EAAEF,IAAvB;AAA6BG,MAAAA,KAAK,EAAEH;AAApC,KAAP;AAE9B,UAAM;AAAEI,MAAAA,KAAF;AAASC,MAAAA,SAAT;AAAoB,SAAGC;AAAvB,QAAiCN,IAAvC;AAEA,QAAII,KAAK,KAAK,WAAd,EAA2B,OAAO;AAAEH,MAAAA,IAAI,EAAE,WAAR;AAAqBK,MAAAA;AAArB,KAAP;AAC3B,QAAIF,KAAK,KAAK,SAAd,EAAyB,OAAO;AAAEH,MAAAA,IAAI,EAAE,SAAR;AAAmBK,MAAAA;AAAnB,KAAP;AAEzB,WAAO;AAAEL,MAAAA,IAAI,EAAE,MAAR;AAAgBK,MAAAA,KAAhB;AAAuBC,MAAAA,QAAQ,EAAEX,UAAU,CAACS,SAAD;AAA3C,KAAP;AACD,GATM,CAAP;AAUD,CAbD;;AAeA,OAAO,MAAMG,KAAK,GAAGd,gBAAgB,GAShC;AACHe,EAAAA,IAAI,EAAE,OADH;AAGHH,EAAAA,KAAK,EAAE;AACLI,IAAAA,KAAK,EAAEC,MADF;AAELC,IAAAA,QAAQ,EAAEC,OAFL;AAGLC,IAAAA,KAAK,EAAE;AACLb,MAAAA,IAAI,EAAEU,MADD;AAELI,MAAAA,OAAO,EAAE;AAFJ,KAHF;AAOLC,IAAAA,GAAG,EAAEH,OAPA;AAQLhB,IAAAA,KAAK,EAAEoB,KARF;AAUL,OAAG5B,eAAe,CAAC;AACjB6B,MAAAA,cAAc,EAAE,MADC;AAEjBC,MAAAA,YAAY,EAAE,UAFG;AAGjBC,MAAAA,cAAc,EAAE;AAHC,KAAD,CAVb;AAeL,OAAG7C,eAAe,EAfb;AAgBL,OAAGE,gBAAgB,EAhBd;AAiBL,OAAGE,kBAAkB,EAjBhB;AAkBL,OAAGE,kBAAkB,EAlBhB;AAmBL,OAAGE,gBAAgB,EAnBd;AAoBL,OAAGE,YAAY,EApBV;AAqBL,OAAGE,cAAc;AArBZ,GAHJ;AA2BHkC,EAAAA,KAAK,EAAE;AACL,uBAAoBC,GAAD,IAAmB,IADjC;AAEL,qBAAkBA,GAAD,IAAmB,IAF/B;AAGL,qBAAkBA,GAAD,IAAmB;AAH/B,GA3BJ;;AAiCHC,EAAAA,KAAK,CAAEjB,KAAF,QAAoB;AAAA,QAAX;AAAEkB,MAAAA;AAAF,KAAW;AACvB,UAAM3B,KAAK,GAAGL,QAAQ,CAAC,MAAMI,UAAU,CAACU,KAAK,CAACT,KAAP,CAAjB,CAAtB;AACA,UAAM;AAAE4B,MAAAA;AAAF,QAAmBrC,YAAY,CAACkB,KAAD,CAArC;AACA,UAAM;AAAEoB,MAAAA,sBAAF;AAA0BC,MAAAA;AAA1B,QAAoDzC,kBAAkB,CAACO,KAAK,CAACa,KAAD,EAAQ,OAAR,CAAN,CAA5E;AACA,UAAM;AAAEsB,MAAAA;AAAF,QAAoBpD,SAAS,CAAC8B,KAAD,CAAnC;AACA,UAAM;AAAEuB,MAAAA;AAAF,QAAqBnD,UAAU,CAAC4B,KAAD,CAArC;AACA,UAAM;AAAEwB,MAAAA;AAAF,QAAsBlD,YAAY,CAAC0B,KAAD,CAAxC;AACA,UAAM;AAAEyB,MAAAA;AAAF,QAAuBjD,YAAY,CAACwB,KAAD,CAAzC;AACA,UAAM;AAAE0B,MAAAA;AAAF,QAAqBhD,UAAU,CAACsB,KAAD,CAArC;AACA,UAAM;AAAE2B,MAAAA,IAAF;AAAQC,MAAAA,MAAR;AAAgBC,MAAAA;AAAhB,QAA6B7C,SAAS,CAACgB,KAAD,CAA5C;AAEAf,IAAAA,UAAU;AAEVI,IAAAA,SAAS,CAAC,MAAM;AACd;AAAA,iBAEW,CACL,QADK,EAEL;AACE,8BAAoBW,KAAK,CAACM,QAD5B;AAEE,yBAAeN,KAAK,CAACU,GAFvB;AAGE,WAAE,WAAUV,KAAK,CAACQ,KAAM,OAAxB,GAAiC;AAHnC,SAFK,EAOLW,YAAY,CAACvB,KAPR,EAQLwB,sBAAsB,CAACxB,KARlB,EASL0B,aAAa,CAAC1B,KATT,EAUL2B,cAAc,CAAC3B,KAVV,EAWL6B,gBAAgB,CAAC7B,KAXZ,EAYL8B,cAAc,CAAC9B,KAZV,CAFX;AAAA,iBAgBW,CACLyB,qBAAqB,CAACzB,KADjB,EAEL4B,eAAe,CAAC5B,KAFX;AAhBX;AAAA;AAAA,mBAqB2BL,KAAK,CAACK;AArBjC;AAuBQa,UAAAA,OAAO,EAAES,KAAK,CAACT,OAvBvB;AAwBQf,UAAAA,IAAI,EAAEwB,KAAK,CAACxB,IAxBpB;AAyBQoC,UAAAA,cAAc,EAAEZ,KAAK,CAACa,MAzB9B;AAAA;AAAA;AAAA;AA8BD,KA/BQ,CAAT;AAiCA,WAAO;AACLJ,MAAAA,IADK;AAELC,MAAAA,MAFK;AAGLC,MAAAA;AAHK,KAAP;AAKD;;AApFE,CATgC,CAA9B","sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { createList } from './list'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupHeaderSlot } from './VListGroup'\n\nexport type ListItem = {\n [key: string]: any\n $type?: 'item' | 'subheader' | 'divider'\n $children?: (string | ListItem)[]\n}\n\nexport type InternalListItem = {\n type?: 'item' | 'subheader' | 'divider'\n props?: Record<string, any>\n children?: InternalListItem[]\n}\n\nconst parseItems = (items?: (string | ListItem)[]): InternalListItem[] | undefined => {\n if (!items) return undefined\n\n return items.map(item => {\n if (typeof item === 'string') return { type: 'item', value: item, title: item }\n\n const { $type, $children, ...props } = item\n\n if ($type === 'subheader') return { type: 'subheader', props }\n if ($type === 'divider') return { type: 'divider', props }\n\n return { type: 'item', props, children: parseItems($children) }\n })\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupHeaderSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n color: String,\n disabled: Boolean,\n lines: {\n type: String,\n default: 'one',\n },\n nav: Boolean,\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'leaf' as const,\n openStrategy: 'multiple' as const,\n activeStrategy: 'single' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'update:active': (val: string[]) => true,\n },\n\n setup (props, { slots }) {\n const items = computed(() => parseItems(props.items))\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { open, select, activate } = useNested(props)\n\n createList()\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n [`v-list--${props.lines}-line`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value }>\n {{\n default: slots.default,\n item: slots.item,\n externalHeader: slots.header,\n }}\n </VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n activate,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"file":"VList.mjs"}
@@ -1,4 +1,5 @@
1
1
  @forward './variables'
2
+ @use 'sass:list'
2
3
  @use '../../styles/tools'
3
4
  @use './variables' as *
4
5
 
@@ -47,7 +48,6 @@
47
48
  font-weight: $list-subheader-font-weight
48
49
  line-height: $list-subheader-line-height
49
50
  padding-inline-end: $list-subheader-padding-end
50
- padding-inline-start: $list-subheader-padding-start
51
51
  min-height: $list-subheader-min-height
52
52
  transition: $list-subheader-transition
53
53
 
@@ -59,8 +59,11 @@
59
59
 
60
60
  @at-root
61
61
  @include tools.density('v-list', $list-density) using ($modifier)
62
+ $base-padding: list.nth($list-item-padding, 2)
63
+
62
64
  #{$root}
63
65
  min-height: $list-subheader-min-height + ($modifier * $list-subheader-min-height-multiplier)
66
+ padding-inline-start: calc(#{$base-padding} + var(--indent-padding)) !important
64
67
 
65
68
  &--inset
66
69
  padding-inline-start: $list-subheader-inset-padding-start
@@ -68,7 +71,7 @@
68
71
  .v-list--nav &
69
72
  font-size: $list-nav-subheader-font-size
70
73
 
71
- .v-list--subheader-sticky &
74
+ &--sticky
72
75
  background: inherit
73
76
  left: 0
74
77
  position: sticky
@@ -1,9 +1,12 @@
1
- import { resolveDirective as _resolveDirective, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
2
2
  // Components
3
+ import { VDivider } from "../VDivider/index.mjs";
3
4
  import { VListGroup } from "./VListGroup.mjs";
4
- import { VListItem } from "./VListItem.mjs"; // Utilities
5
+ import { VListItem } from "./VListItem.mjs";
6
+ import { VListSubheader } from "./VListSubheader.mjs"; // Utilities
5
7
 
6
- import { genericComponent } from "../../util/index.mjs"; // Types
8
+ import { genericComponent } from "../../util/index.mjs";
9
+ import { createList } from "./list.mjs"; // Types
7
10
 
8
11
  export const VListChildren = genericComponent()({
9
12
  name: 'VListChildren',
@@ -15,27 +18,29 @@ export const VListChildren = genericComponent()({
15
18
  let {
16
19
  slots
17
20
  } = _ref;
21
+ createList();
18
22
  return () => {
19
23
  var _slots$default, _slots$default2, _props$items;
20
24
 
21
25
  return (_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : (_props$items = props.items) == null ? void 0 : _props$items.map(_ref2 => {
22
26
  let {
23
27
  children,
24
- ...item
28
+ props: itemProps,
29
+ type
25
30
  } = _ref2;
26
- const {
27
- value,
28
- ...rest
29
- } = item;
31
+ if (type === 'divider') return _createVNode(VDivider, itemProps, null, 16);
32
+ if (type === 'subheader') return _createVNode(VListSubheader, itemProps, slots, 16);
30
33
  return children ? _createVNode(VListGroup, {
31
- "value": value,
32
- "items": children
33
- }, { ...slots,
34
- header: headerProps => slots.externalHeader ? slots.externalHeader({ ...rest,
34
+ "value": itemProps == null ? void 0 : itemProps.value
35
+ }, {
36
+ items: () => _createVNode(VListChildren, {
37
+ "items": children
38
+ }, slots, 8, ["items"]),
39
+ header: headerProps => slots.externalHeader ? slots.externalHeader({ ...itemProps,
35
40
  ...headerProps
36
- }) : _createVNode(VListItem, _mergeProps(rest, headerProps), null, 16),
41
+ }) : _createVNode(VListItem, _mergeProps(itemProps, headerProps), null, 16),
37
42
  _: 2
38
- }, 8, ["value", "items"]) : slots.item ? slots.item(item) : _createVNode(VListItem, item, slots, 16);
43
+ }, 8, ["value"]) : slots.item ? slots.item(itemProps) : _createVNode(VListItem, itemProps, slots, 16);
39
44
  });
40
45
  };
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VListGroup","VListItem","genericComponent","VListChildren","name","props","items","Array","setup","slots","default","map","children","item","value","rest","header","headerProps","externalHeader"],"mappings":";AAAA;SACSA,U;SACAC,S,2BAET;;SACSC,gB,gCAET;;AAMA,OAAO,MAAMC,aAAa,GAAGD,gBAAgB,GASxC;AACHE,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvB,WAAO;AAAA;;AAAA,kDAAMA,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA2B;AAAA,YAA1B;AAAEC,UAAAA,QAAF;AAAY,aAAGC;AAAf,SAA0B;AAC5E,cAAM;AAAEC,UAAAA,KAAF;AAAS,aAAGC;AAAZ,YAAqBF,IAA3B;AACA,eAAOD,QAAQ;AAAA,mBAEJE,KAFI;AAAA,mBAGJF;AAHI,aAMT,GAAGH,KANM;AAOTO,UAAAA,MAAM,EAAEC,WAAW,IAAIR,KAAK,CAACS,cAAN,GACnBT,KAAK,CAACS,cAAN,CAAqB,EAAE,GAAGH,IAAL;AAAW,eAAGE;AAAd,WAArB,CADmB,uCAEJF,IAFI,EAEME,WAFN,YAPd;AAAA;AAAA,oCAabR,KAAK,CAACI,IAAN,GAAaJ,KAAK,CAACI,IAAN,CAAWA,IAAX,CAAb,2BAA+CA,IAA/C,EAA8DJ,KAA9D,KAbF;AAeD,OAjBiC,CAA3B;AAAA,KAAP;AAkBD;;AA1BE,CATwC,CAAtC","sourcesContent":["// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupHeaderSlot } from './VListGroup'\nimport type { ListItem } from './VList'\n\nexport const VListChildren = genericComponent<new <T extends ListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n externalHeader: [ListGroupHeaderSlot]\n item: [T]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<ListItem[]>,\n },\n\n setup (props, { slots }) {\n return () => slots.default?.() ?? props.items?.map(({ children, ...item }) => {\n const { value, ...rest } = item\n return children ? (\n <VListGroup\n value={value}\n items={children}\n >\n {{\n ...slots,\n header: headerProps => slots.externalHeader\n ? slots.externalHeader({ ...rest, ...headerProps })\n : <VListItem {...rest} {...headerProps} />,\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(item) : <VListItem {...item} v-slots={slots} />\n )\n })\n },\n})\n"],"file":"VListChildren.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VDivider","VListGroup","VListItem","VListSubheader","genericComponent","createList","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","value","header","headerProps","externalHeader","item"],"mappings":";AAAA;SACSA,Q;SACAC,U;SACAC,S;SACAC,c,gCAET;;SACSC,gB;SACAC,U,sBAET;;AAMA,OAAO,MAAMC,aAAa,GAAGF,gBAAgB,GASxC;AACHG,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvBP,IAAAA,UAAU;AAEV,WAAO;AAAA;;AAAA,kDAAMO,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA0C;AAAA,YAAzC;AAAEC,UAAAA,QAAF;AAAYP,UAAAA,KAAK,EAAEQ,SAAnB;AAA8BC,UAAAA;AAA9B,SAAyC;AAC3F,YAAIA,IAAI,KAAK,SAAb,EAAwB,8BAAqBD,SAArB;AAExB,YAAIC,IAAI,KAAK,WAAb,EAA0B,oCAA2BD,SAA3B,EAAgDJ,KAAhD;AAE1B,eAAOG,QAAQ;AAAA,mBAEHC,SAFG,oBAEHA,SAAS,CAAEE;AAFR;AAKTT,UAAAA,KAAK,EAAE;AAAA,qBACkBM;AADlB,aACuCH,KADvC,eALE;AAQTO,UAAAA,MAAM,EAAEC,WAAW,IAAIR,KAAK,CAACS,cAAN,GACnBT,KAAK,CAACS,cAAN,CAAqB,EAAE,GAAGL,SAAL;AAAgB,eAAGI;AAAnB,WAArB,CADmB,uCAEHJ,SAFG,EAEcI,WAFd,YARd;AAAA;AAAA,2BAcbR,KAAK,CAACU,IAAN,GAAaV,KAAK,CAACU,IAAN,CAAWN,SAAX,CAAb,2BAAqDA,SAArD,EAA2EJ,KAA3E,KAdF;AAgBD,OArBiC,CAA3B;AAAA,KAAP;AAsBD;;AAhCE,CATwC,CAAtC","sourcesContent":["// Components\nimport { VDivider } from '../VDivider'\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { createList } from './list'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListGroupHeaderSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n externalHeader: [ListGroupHeaderSlot]\n item: [T]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n >\n {{\n items: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n header: headerProps => slots.externalHeader\n ? slots.externalHeader({ ...itemProps, ...headerProps })\n : <VListItem { ...itemProps } { ...headerProps } />,\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : <VListItem { ...itemProps } v-slots={ slots } />\n )\n })\n },\n})\n"],"file":"VListChildren.mjs"}