@vuetify/nightly 3.1.8-master-20230307.0 → 3.1.8

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 (105) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/dist/json/attributes.json +0 -528
  3. package/dist/json/importMap.json +90 -90
  4. package/dist/json/tags.json +2 -136
  5. package/dist/json/web-types.json +20 -1210
  6. package/dist/vuetify-labs.css +242 -99
  7. package/dist/vuetify-labs.esm.js +33 -32
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +33 -32
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +261 -118
  12. package/dist/vuetify.d.ts +27 -27
  13. package/dist/vuetify.esm.js +33 -32
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +33 -32
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +209 -210
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/VAlert.css +1 -1
  21. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  22. package/lib/components/VAlert/_variables.scss +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  25. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  26. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  27. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  28. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  29. package/lib/components/VCard/VCard.mjs.map +1 -1
  30. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  31. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  32. package/lib/components/VChip/VChip.mjs.map +1 -1
  33. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  34. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  35. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  36. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  37. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  38. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  39. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  40. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  41. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  42. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  43. package/lib/components/VField/VField.mjs.map +1 -1
  44. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  45. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  46. package/lib/components/VInput/VInput.mjs.map +1 -1
  47. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  48. package/lib/components/VList/VListGroup.mjs.map +1 -1
  49. package/lib/components/VList/VListItem.mjs.map +1 -1
  50. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  51. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  52. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  53. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  54. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  55. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  56. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  57. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  58. package/lib/components/VRating/VRating.mjs.map +1 -1
  59. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  60. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  61. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  62. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  63. package/lib/components/VSnackbar/VSnackbar.css +0 -2
  64. package/lib/components/VSnackbar/VSnackbar.mjs +6 -8
  65. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  66. package/lib/components/VSnackbar/VSnackbar.sass +0 -2
  67. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  68. package/lib/components/VTable/VTable.mjs.map +1 -1
  69. package/lib/components/VTabs/VTab.mjs.map +1 -1
  70. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  71. package/lib/components/VTextField/VTextField.mjs +1 -0
  72. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  73. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  74. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  75. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  76. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  77. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  78. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  79. package/lib/components/transitions/createTransition.mjs +1 -1
  80. package/lib/components/transitions/createTransition.mjs.map +1 -1
  81. package/lib/composables/display.mjs +13 -10
  82. package/lib/composables/display.mjs.map +1 -1
  83. package/lib/composables/loader.mjs.map +1 -1
  84. package/lib/composables/theme.mjs +7 -10
  85. package/lib/composables/theme.mjs.map +1 -1
  86. package/lib/composables/variant.mjs.map +1 -1
  87. package/lib/entry-bundler.mjs +1 -1
  88. package/lib/entry-bundler.mjs.map +1 -1
  89. package/lib/framework.mjs +1 -1
  90. package/lib/framework.mjs.map +1 -1
  91. package/lib/index.d.ts +27 -27
  92. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  93. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  94. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  95. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  96. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  97. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  98. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  99. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  100. package/lib/locale/index.mjs +1 -1
  101. package/lib/locale/index.mjs.map +1 -1
  102. package/lib/styles/elements/_global.sass +0 -4
  103. package/lib/styles/generic/_transitions.scss +111 -9
  104. package/lib/styles/main.css +212 -67
  105. package/package.json +16 -3
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","Ripple","IconValue","useBackgroundColor","computed","inject","genericComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","undefined","toggle","actions"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: [ExpansionPanelTitleSlot]\n actions: [ExpansionPanelTitleSlot]\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n}, 'v-expansion-panel-title')\n\nexport const VExpansionPanelTitle = genericComponent<VExpansionPanelTitleSlots>()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":";AAAA;AAAA,SACSA,qBAAqB;AAAA,SACrBC,KAAK,8BAEd;AAAA,SACSC,MAAM,6CAEf;AAAA,SACSC,SAAS;AAAA,SACTC,kBAAkB,uCAE3B;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAelD,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CAAC;EACxDG,KAAK,EAAEC,MAAM;EACbC,UAAU,EAAE;IACVC,IAAI,EAAEX,SAAS;IACfY,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAEX,SAAS;IACfY,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAEC,OAAO;EACpBC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACI,OAAO,EAAEE,MAAM,CAAC;IACvBL,OAAO,EAAE;EACX,CAAC;EACDM,QAAQ,EAAEH;AACZ,CAAC,EAAE,yBAAyB,CAAC;AAE7B,OAAO,MAAMI,oBAAoB,GAAGf,gBAAgB,EAA6B,CAAC;EAChFgB,IAAI,EAAE,sBAAsB;EAE5BC,UAAU,EAAE;IAAEtB;EAAO,CAAC;EAEtBuB,KAAK,EAAE;IACL,GAAGf,6BAA6B;EAClC,CAAC;EAEDgB,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAMC,cAAc,GAAGtB,MAAM,CAACN,qBAAqB,CAAC;IAEpD,IAAI,CAAC4B,cAAc,EAAE,MAAM,IAAIC,KAAK,CAAC,+EAA+E,CAAC;IAErH,MAAM;MAAEC,sBAAsB;MAAEC;IAAsB,CAAC,GAAG3B,kBAAkB,CAACqB,KAAK,EAAE,OAAO,CAAC;IAE5F,MAAMO,SAAS,GAAG3B,QAAQ,CAAC,OAAO;MAChCW,YAAY,EAAES,KAAK,CAACT,YAAY;MAChCiB,QAAQ,EAAEL,cAAc,CAACK,QAAQ,CAACC,KAAK;MACvCC,QAAQ,EAAEP,cAAc,CAACQ,UAAU,CAACF,KAAK;MACzCrB,UAAU,EAAEY,KAAK,CAACZ,UAAU;MAC5BQ,QAAQ,EAAEI,KAAK,CAACJ;IAClB,CAAC,CAAC,CAAC;IAEHZ,SAAS,CAAC;MAAA,SAEC,CACL,yBAAyB,EACzB;QACE,iCAAiC,EAAEmB,cAAc,CAACQ,UAAU,CAACF;MAC/D,CAAC,EACDJ,sBAAsB,CAACI,KAAK,CAC7B;MAAA,SACOH,qBAAqB,CAACG,KAAK;MAAA,QAC9B,QAAQ;MAAA,YACFN,cAAc,CAACK,QAAQ,CAACC,KAAK,GAAG,CAAC,CAAC,GAAGG,SAAS;MAAA,YAC9CT,cAAc,CAACK,QAAQ,CAACC,KAAK;MAAA,iBACxBN,cAAc,CAACQ,UAAU,CAACF,KAAK;MAAA,WACrC,CAACT,KAAK,CAACJ,QAAQ,GAAGO,cAAc,CAACU,MAAM,GAAGD;IAAS;MAAA,SAGjD;IAAkC,UAE5CV,KAAK,CAACZ,OAAO,GAAGiB,SAAS,CAACE,KAAK,CAAC,EAEhC,CAACT,KAAK,CAACR,WAAW;MAAA,SACN;IAA+B,IAEvCU,KAAK,CAACY,OAAO,GAAGZ,KAAK,CAACY,OAAO,CAACP,SAAS,CAACE,KAAK,CAAC;MAAA,QAC9BN,cAAc,CAACQ,UAAU,CAACF,KAAK,GAAGT,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACZ;IAAU,QAAK,EAGjG,mCAbUY,KAAK,CAACN,MAAM,GAe1B,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","Ripple","IconValue","useBackgroundColor","computed","inject","genericComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","undefined","toggle","actions"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: [ExpansionPanelTitleSlot]\n actions: [ExpansionPanelTitleSlot]\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n}, 'v-expansion-panel-title')\n\nexport const VExpansionPanelTitle = genericComponent<VExpansionPanelTitleSlots>()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n )}\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":";AAAA;AAAA,SACSA,qBAAqB;AAAA,SACrBC,KAAK,8BAEd;AAAA,SACSC,MAAM,6CAEf;AAAA,SACSC,SAAS;AAAA,SACTC,kBAAkB,uCAE3B;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAelD,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CAAC;EACxDG,KAAK,EAAEC,MAAM;EACbC,UAAU,EAAE;IACVC,IAAI,EAAEX,SAAS;IACfY,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAEX,SAAS;IACfY,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAEC,OAAO;EACpBC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACI,OAAO,EAAEE,MAAM,CAAC;IACvBL,OAAO,EAAE;EACX,CAAC;EACDM,QAAQ,EAAEH;AACZ,CAAC,EAAE,yBAAyB,CAAC;AAE7B,OAAO,MAAMI,oBAAoB,GAAGf,gBAAgB,EAA6B,CAAC;EAChFgB,IAAI,EAAE,sBAAsB;EAE5BC,UAAU,EAAE;IAAEtB;EAAO,CAAC;EAEtBuB,KAAK,EAAE;IACL,GAAGf,6BAA6B;EAClC,CAAC;EAEDgB,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAMC,cAAc,GAAGtB,MAAM,CAACN,qBAAqB,CAAC;IAEpD,IAAI,CAAC4B,cAAc,EAAE,MAAM,IAAIC,KAAK,CAAC,+EAA+E,CAAC;IAErH,MAAM;MAAEC,sBAAsB;MAAEC;IAAsB,CAAC,GAAG3B,kBAAkB,CAACqB,KAAK,EAAE,OAAO,CAAC;IAE5F,MAAMO,SAAS,GAAG3B,QAAQ,CAAC,OAAO;MAChCW,YAAY,EAAES,KAAK,CAACT,YAAY;MAChCiB,QAAQ,EAAEL,cAAc,CAACK,QAAQ,CAACC,KAAK;MACvCC,QAAQ,EAAEP,cAAc,CAACQ,UAAU,CAACF,KAAK;MACzCrB,UAAU,EAAEY,KAAK,CAACZ,UAAU;MAC5BQ,QAAQ,EAAEI,KAAK,CAACJ;IAClB,CAAC,CAAC,CAAC;IAEHZ,SAAS,CAAC;MAAA,SAEC,CACL,yBAAyB,EACzB;QACE,iCAAiC,EAAEmB,cAAc,CAACQ,UAAU,CAACF;MAC/D,CAAC,EACDJ,sBAAsB,CAACI,KAAK,CAC7B;MAAA,SACOH,qBAAqB,CAACG,KAAK;MAAA,QAC9B,QAAQ;MAAA,YACFN,cAAc,CAACK,QAAQ,CAACC,KAAK,GAAG,CAAC,CAAC,GAAGG,SAAS;MAAA,YAC9CT,cAAc,CAACK,QAAQ,CAACC,KAAK;MAAA,iBACxBN,cAAc,CAACQ,UAAU,CAACF,KAAK;MAAA,WACrC,CAACT,KAAK,CAACJ,QAAQ,GAAGO,cAAc,CAACU,MAAM,GAAGD;IAAS;MAAA,SAGjD;IAAkC,UAE5CV,KAAK,CAACZ,OAAO,GAAGiB,SAAS,CAACE,KAAK,CAAC,EAEhC,CAACT,KAAK,CAACR,WAAW;MAAA,SACN;IAA+B,IAEvCU,KAAK,CAACY,OAAO,GAAGZ,KAAK,CAACY,OAAO,CAACP,SAAS,CAACE,KAAK,CAAC;MAAA,QAC9BN,cAAc,CAACQ,UAAU,CAACF,KAAK,GAAGT,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACZ;IAAU,QAAK,EAGjG,mCAbUY,KAAK,CAACN,MAAM,GAe1B,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VField.mjs","names":["VExpandXTransition","useInputIcon","VFieldLabel","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeFocusProps","useFocus","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","isActive","hasLabel","uid","messagesId","value","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","undefined","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","loading","loader","class","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType, Ref } from 'vue'\nimport type { VInputSlot } from '@/components/VInput/VInput'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp,\n 'onClick:appendInner': EventProp,\n 'onClick:prependInner': EventProp,\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n 'prepend-inner': [DefaultInputSlot & VInputSlot]\n 'append-inner': [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n } & SlotsToProps<VFieldSlots>\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n ) }\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n >\n { label }\n </VFieldLabel>\n ) }\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : <InputIcon name=\"clear\" />\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n ) }\n </div>\n ) }\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n ) }\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k))\n return pick(attrs, keys)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VField.mjs","names":["VExpandXTransition","useInputIcon","VFieldLabel","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeFocusProps","useFocus","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","isActive","hasLabel","uid","messagesId","value","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","undefined","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","loading","loader","class","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType, Ref } from 'vue'\nimport type { VInputSlot } from '@/components/VInput/VInput'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp,\n 'onClick:appendInner': EventProp,\n 'onClick:prependInner': EventProp,\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n 'prepend-inner': [DefaultInputSlot & VInputSlot]\n 'append-inner': [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n } & SlotsToProps<VFieldSlots>\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n >\n { label }\n </VFieldLabel>\n )}\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : <InputIcon name=\"clear\" />\n }\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n )}\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n {['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k))\n return pick(attrs, keys)\n}\n"],"mappings":"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"}
@@ -167,6 +167,7 @@ export const VFileInput = genericComponent()({
167
167
  "id": id.value,
168
168
  "active": isDirty.value || isFocused.value,
169
169
  "dirty": isDirty.value,
170
+ "disabled": isDisabled.value,
170
171
  "focused": isFocused.value,
171
172
  "error": isValid.value === false
172
173
  }), {
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VChip","VCounter","VField","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","useRender","wrapInArray","VFileInput","name","inheritAttrs","props","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","hint","persistentHint","placeholder","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","emits","e","files","setup","attrs","emit","slots","t","model","base","undefined","totalBytes","value","reduce","bytes","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","isFocused","inputRef","messages","onFocus","document","activeElement","focus","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","fieldProps","id","isDisabled","isDirty","isReadonly","isValid","class","fieldClass","slotProps","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & MakeSlots<{\n counter: []\n}>\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: {\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n hint: String,\n persistentHint: Boolean,\n placeholder: String,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) {\n isFocused.value = true\n }\n }\n function onClickPrepend (e: MouseEvent) {\n callEvent(props['onClick:prepend'], e)\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class=\"v-file-input\"\n onClick:prepend={ onClickPrepend }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isDirty.value || isFocused.value }\n dirty={ isDirty.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n } }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n } }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VFileInput.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VChip","VCounter","VField","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","useRender","wrapInArray","VFileInput","name","inheritAttrs","props","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","hint","persistentHint","placeholder","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","emits","e","files","setup","attrs","emit","slots","t","model","base","undefined","totalBytes","value","reduce","bytes","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","isFocused","inputRef","messages","onFocus","document","activeElement","focus","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","fieldProps","id","isDisabled","isDirty","isReadonly","isValid","class","fieldClass","slotProps","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & MakeSlots<{\n counter: []\n}>\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: {\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n hint: String,\n persistentHint: Boolean,\n placeholder: String,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) {\n isFocused.value = true\n }\n }\n function onClickPrepend (e: MouseEvent) {\n callEvent(props['onClick:prepend'], e)\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class=\"v-file-input\"\n onClick:prepend={ onClickPrepend }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isDirty.value || isFocused.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.mjs","names":["VMessages","IconValue","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","isOn","pick","propsFactory","useRender","useInputIcon","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","InputIcon","uid","messagesId","value","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","hasDetails","details","message","filterInputProps","keys","Object","filter","k"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, isOn, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<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 makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp,\n 'onClick:append': EventProp,\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'v-input')\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<VInputSlots>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\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 key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n ) }\n\n { slots.append?.(slotProps.value) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: Record<string, unknown>) {\n const keys = Object.keys(VInput.props).filter(k => !isOn(k))\n return pick(props, keys)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VInput.mjs","names":["VMessages","IconValue","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","isOn","pick","propsFactory","useRender","useInputIcon","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","InputIcon","uid","messagesId","value","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","hasDetails","details","message","filterInputProps","keys","Object","filter","k"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, isOn, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<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 makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp,\n 'onClick:append': EventProp,\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'v-input')\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<VInputSlots>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\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 key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n )}\n </div>\n )}\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n )}\n\n { slots.append?.(slotProps.value) }\n </div>\n )}\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n )}\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: Record<string, unknown>) {\n const keys = Object.keys(VInput.props).filter(k => !isOn(k))\n return pick(props, keys)\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VItemGroup.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","genericComponent","VItemGroupSymbol","Symbol","for","VItemGroup","name","props","selectedClass","emits","value","setup","slots","themeClasses","isSelected","select","next","prev","selected","default"],"sources":["../../../src/components/VItemGroup/VItemGroup.tsx"],"sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const VItemGroup = genericComponent()({\n name: 'VItemGroup',\n\n props: {\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,UAAU,GAAGJ,gBAAgB,EAAE,CAAC;EAC3CK,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAE;IACL,GAAGX,cAAc,CAAC;MAChBY,aAAa,EAAE;IACjB,CAAC,CAAC;IACF,GAAGV,YAAY,EAAE;IACjB,GAAGC,cAAc;EACnB,CAAC;EAEDU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAK,CAAEJ,KAAK,QAAa;IAAA,IAAX;MAAEK;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGb,YAAY,CAACO,KAAK,CAAC;IAC5C,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGrB,QAAQ,CAACU,KAAK,EAAEL,gBAAgB,CAAC;IAEtF,OAAO;MAAA,SAEI,CACL,cAAc,EACdW,YAAY,CAACH,KAAK;IACnB;MAAA,gBAECE,KAAK,CAACO,OAAO,GAAG;QAChBL,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACR;MACrB,CAAC,CAAC;IAAA,EAEL;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VItemGroup.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","genericComponent","VItemGroupSymbol","Symbol","for","VItemGroup","name","props","selectedClass","emits","value","setup","slots","themeClasses","isSelected","select","next","prev","selected","default"],"sources":["../../../src/components/VItemGroup/VItemGroup.tsx"],"sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const VItemGroup = genericComponent()({\n name: 'VItemGroup',\n\n props: {\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,UAAU,GAAGJ,gBAAgB,EAAE,CAAC;EAC3CK,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAE;IACL,GAAGX,cAAc,CAAC;MAChBY,aAAa,EAAE;IACjB,CAAC,CAAC;IACF,GAAGV,YAAY,EAAE;IACjB,GAAGC,cAAc;EACnB,CAAC;EAEDU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAK,CAAEJ,KAAK,QAAa;IAAA,IAAX;MAAEK;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGb,YAAY,CAACO,KAAK,CAAC;IAC5C,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGrB,QAAQ,CAACU,KAAK,EAAEL,gBAAgB,CAAC;IAEtF,OAAO;MAAA,SAEI,CACL,cAAc,EACdW,YAAY,CAACH,KAAK;IACnB;MAAA,gBAECE,KAAK,CAACO,OAAO,GAAG;QAChBL,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACR;MACrB,CAAC,CAAC;IAAA,EAEL;EACH;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VListGroup.mjs","names":["VDefaultsProvider","VExpandTransition","useList","IconValue","makeTagProps","useNestedGroupActivator","useNestedItem","computed","toRef","defineComponent","genericComponent","pick","propsFactory","useRender","VListGroupActivator","name","setup","_","slots","default","makeVListGroupProps","activeColor","String","color","collapseIcon","type","expandIcon","prependIcon","appendIcon","fluid","Boolean","subgroup","value","VListGroup","props","title","isOpen","open","id","_id","list","onClick","e","activatorProps","class","toggleIcon","hasPrepend","activator","VListItem","active","filterListGroupProps","Object","keys"],"sources":["../../../src/components/VList/VListGroup.tsx"],"sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { IconValue } from '@/composables/icons'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport type VListGroupSlots = {\n default: []\n activator: [{ isOpen: boolean, props: Record<string, unknown> }]\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n activeColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n value: null,\n\n ...makeTagProps(),\n}, 'v-list-group')\n\nexport const VListGroup = genericComponent<VListGroupSlots>()({\n name: 'VListGroup',\n\n props: {\n title: String,\n\n ...makeVListGroupProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n\n function onClick (e: Event) {\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n\n <VExpandTransition>\n <div class=\"v-list-group__items\" role=\"group\" aria-labelledby={ id.value } v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VListGroup = InstanceType<typeof VListGroup>\n\nexport function filterListGroupProps (props: ExtractPropTypes<ReturnType<typeof makeVListGroupProps>>) {\n return pick(props, Object.keys(VListGroup.props) as any)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VListGroup.mjs","names":["VDefaultsProvider","VExpandTransition","useList","IconValue","makeTagProps","useNestedGroupActivator","useNestedItem","computed","toRef","defineComponent","genericComponent","pick","propsFactory","useRender","VListGroupActivator","name","setup","_","slots","default","makeVListGroupProps","activeColor","String","color","collapseIcon","type","expandIcon","prependIcon","appendIcon","fluid","Boolean","subgroup","value","VListGroup","props","title","isOpen","open","id","_id","list","onClick","e","activatorProps","class","toggleIcon","hasPrepend","activator","VListItem","active","filterListGroupProps","Object","keys"],"sources":["../../../src/components/VList/VListGroup.tsx"],"sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { IconValue } from '@/composables/icons'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport type VListGroupSlots = {\n default: []\n activator: [{ isOpen: boolean, props: Record<string, unknown> }]\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n activeColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n value: null,\n\n ...makeTagProps(),\n}, 'v-list-group')\n\nexport const VListGroup = genericComponent<VListGroupSlots>()({\n name: 'VListGroup',\n\n props: {\n title: String,\n\n ...makeVListGroupProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n\n function onClick (e: Event) {\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n )}\n\n <VExpandTransition>\n <div class=\"v-list-group__items\" role=\"group\" aria-labelledby={ id.value } v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VListGroup = InstanceType<typeof VListGroup>\n\nexport function filterListGroupProps (props: ExtractPropTypes<ReturnType<typeof makeVListGroupProps>>) {\n return pick(props, Object.keys(VListGroup.props) as any)\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VListItem.mjs","names":["VAvatar","VDefaultsProvider","VIcon","VListItemSubtitle","VListItemTitle","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","useList","useNestedItem","computed","watch","EventProp","genericComponent","useRender","VListItem","name","directives","props","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","subtitle","Number","title","value","onClick","onClickOnce","variant","emits","click","e","setup","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","variantProps","color","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasColor","hasTitle","hasSubtitle","hasAppend","append","hasPrepend","prepend","updateHasPrepend","density","image","icon","VListItemAction","start","end"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\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 { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useList } from './list'\nimport { useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { EventProp, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\ntype ListItemSlot = {\n isActive: boolean\n activate: (value: boolean) => void\n isSelected: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string\n}\n\ntype VListItemSlots = {\n prepend: [ListItemSlot]\n append: [ListItemSlot]\n default: [ListItemSlot]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n}\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: {\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp,\n onClickOnce: EventProp,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const variantProps = computed(() => ({\n color: isActive.value ? props.activeColor ?? props.color : props.color,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasColor = !list || isSelected.value || isActive.value\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n\n list?.updateHasPrepend(hasPrepend)\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { props.prependAvatar && (\n <VAvatar key=\"prepend-avatar\" density={ props.density } image={ props.prependAvatar } />\n ) }\n\n { props.prependIcon && (\n <VIcon key=\"prepend-icon\" density={ props.density } icon={ props.prependIcon } />\n ) }\n\n { slots.prepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend(slotProps.value) }\n </VDefaultsProvider>\n ) }\n </div>\n ) }\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title}\n </VListItemTitle>\n ) }\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n ) }\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { slots.append && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n { props.appendIcon && (\n <VIcon key=\"append-icon\" density={ props.density } icon={ props.appendIcon } />\n )}\n\n { props.appendAvatar && (\n <VAvatar key=\"append-avatar\" density={ props.density } image={ props.appendAvatar } />\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VListItem.mjs","names":["VAvatar","VDefaultsProvider","VIcon","VListItemSubtitle","VListItemTitle","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","useList","useNestedItem","computed","watch","EventProp","genericComponent","useRender","VListItem","name","directives","props","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","subtitle","Number","title","value","onClick","onClickOnce","variant","emits","click","e","setup","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","variantProps","color","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasColor","hasTitle","hasSubtitle","hasAppend","append","hasPrepend","prepend","updateHasPrepend","density","image","icon","VListItemAction","start","end"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\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 { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useList } from './list'\nimport { useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { EventProp, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\ntype ListItemSlot = {\n isActive: boolean\n activate: (value: boolean) => void\n isSelected: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string\n}\n\ntype VListItemSlots = {\n prepend: [ListItemSlot]\n append: [ListItemSlot]\n default: [ListItemSlot]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n}\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: {\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp,\n onClickOnce: EventProp,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const variantProps = computed(() => ({\n color: isActive.value ? props.activeColor ?? props.color : props.color,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasColor = !list || isSelected.value || isActive.value\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n\n list?.updateHasPrepend(hasPrepend)\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { props.prependAvatar && (\n <VAvatar key=\"prepend-avatar\" density={ props.density } image={ props.prependAvatar } />\n )}\n\n { props.prependIcon && (\n <VIcon key=\"prepend-icon\" density={ props.density } icon={ props.prependIcon } />\n )}\n\n { slots.prepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { slots.append && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n { props.appendIcon && (\n <VIcon key=\"append-icon\" density={ props.density } icon={ props.appendIcon } />\n )}\n\n { props.appendAvatar && (\n <VAvatar key=\"append-avatar\" density={ props.density } image={ props.appendAvatar } />\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,OAAO;AAAA,SACPC,iBAAiB;AAAA,SACjBC,KAAK;AAAA,SACLC,iBAAiB;AAAA,SACjBC,cAAc,gCAEvB;AAAA,SACSC,MAAM,6CAEf;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,SAAS;AAAA,SACTC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,eAAe,EAAEC,OAAO;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,OAAO;AAAA,SACPC,aAAa,+CAEtB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,SAAS,EAAEC,gBAAgB,EAAEC,SAAS,gCAE/C;AA0BA,OAAO,MAAMC,SAAS,GAAGF,gBAAgB,EAAkB,CAAC;EAC1DG,IAAI,EAAE,WAAW;EAEjBC,UAAU,EAAE;IAAE7B;EAAO,CAAC;EAEtB8B,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,IAAI,EAAEC,OAAO;MACbC,OAAO,EAAEC;IACX,CAAC;IACDC,WAAW,EAAEC,MAAM;IACnBC,WAAW,EAAED,MAAM;IACnBE,YAAY,EAAEF,MAAM;IACpBG,UAAU,EAAEpC,SAAS;IACrBqC,QAAQ,EAAER,OAAO;IACjBS,KAAK,EAAEL,MAA2C;IAClDM,IAAI,EAAE;MACJX,IAAI,EAAEC,OAAO;MACbC,OAAO,EAAEC;IACX,CAAC;IACDS,GAAG,EAAEX,OAAO;IACZY,aAAa,EAAER,MAAM;IACrBS,WAAW,EAAE1C,SAAS;IACtB2C,MAAM,EAAE;MACNf,IAAI,EAAEC,OAAO;MACbC,OAAO,EAAE;IACX,CAAC;IACDc,QAAQ,EAAE,CAACX,MAAM,EAAEY,MAAM,EAAEhB,OAAO,CAAC;IACnCiB,KAAK,EAAE,CAACb,MAAM,EAAEY,MAAM,EAAEhB,OAAO,CAAC;IAChCkB,KAAK,EAAE,IAAI;IAEXC,OAAO,EAAE5B,SAAS;IAClB6B,WAAW,EAAE7B,SAAS;IAEtB,GAAGnB,eAAe,EAAE;IACpB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,eAAe,EAAE;IACpB,GAAGE,YAAY,EAAE;IACjB,GAAGC,cAAc,EAAE;IACnB,GAAGhB,gBAAgB,CAAC;MAAEoD,OAAO,EAAE;IAAO,CAAC;EACzC,CAAC;EAEDC,KAAK,EAAE;IACLC,KAAK,EAAGC,CAA6B,IAAK;EAC5C,CAAC;EAEDC,KAAK,CAAE5B,KAAK,QAA0B;IAAA,IAAxB;MAAE6B,KAAK;MAAEC,KAAK;MAAEC;IAAK,CAAC;IAClC,MAAMlB,IAAI,GAAG3B,OAAO,CAACc,KAAK,EAAE6B,KAAK,CAAC;IAClC,MAAMG,EAAE,GAAGxC,QAAQ,CAAC,MAAMQ,KAAK,CAACqB,KAAK,IAAIR,IAAI,CAACoB,IAAI,CAACZ,KAAK,CAAC;IACzD,MAAM;MAAEa,MAAM;MAAEC,UAAU;MAAEC,eAAe;MAAEC,gBAAgB;MAAEC,IAAI;MAAEC,MAAM;MAAEC;IAAa,CAAC,GAAGjD,aAAa,CAACyC,EAAE,EAAE,KAAK,CAAC;IACtH,MAAMS,IAAI,GAAGnD,OAAO,EAAE;IACtB,MAAMoD,QAAQ,GAAGlD,QAAQ,CAAC,MACxBQ,KAAK,CAACC,MAAM,KAAK,KAAK,KACrBD,KAAK,CAACC,MAAM,IAAIY,IAAI,CAAC6B,QAAQ,EAAErB,KAAK,IAAIc,UAAU,CAACd,KAAK,CAAC,CAC3D;IACD,MAAMsB,MAAM,GAAGnD,QAAQ,CAAC,MAAMQ,KAAK,CAACa,IAAI,KAAK,KAAK,IAAIA,IAAI,CAAC8B,MAAM,CAACtB,KAAK,CAAC;IACxE,MAAMuB,WAAW,GAAGpD,QAAQ,CAAC,MAC3B,CAACQ,KAAK,CAACW,QAAQ,IACfX,KAAK,CAACa,IAAI,KAAK,KAAK,KACnBb,KAAK,CAACa,IAAI,IAAIA,IAAI,CAAC+B,WAAW,CAACvB,KAAK,IAAKrB,KAAK,CAACqB,KAAK,IAAI,IAAI,IAAI,CAAC,CAACoB,IAAK,CAAC,CAC1E;IAED,MAAMI,YAAY,GAAGrD,QAAQ,CAAC,MAAMQ,KAAK,CAAC8C,OAAO,IAAI9C,KAAK,CAACc,GAAG,CAAC;IAC/D,MAAMiC,YAAY,GAAGvD,QAAQ,CAAC,OAAO;MACnCwD,KAAK,EAAEN,QAAQ,CAACrB,KAAK,GAAGrB,KAAK,CAACQ,WAAW,IAAIR,KAAK,CAACgD,KAAK,GAAGhD,KAAK,CAACgD,KAAK;MACtExB,OAAO,EAAExB,KAAK,CAACwB;IACjB,CAAC,CAAC,CAAC;IAEH/B,KAAK,CAAC,MAAMoB,IAAI,CAAC6B,QAAQ,EAAErB,KAAK,EAAE4B,GAAG,IAAI;MACvC,IAAIA,GAAG,IAAIV,MAAM,CAAClB,KAAK,IAAI,IAAI,EAAE;QAC/BiB,IAAI,CAACY,IAAI,CAACX,MAAM,CAAClB,KAAK,EAAE,IAAI,CAAC;MAC/B;MAEA,IAAI4B,GAAG,EAAE;QACPT,YAAY,CAACS,GAAG,CAAC;MACnB;IACF,CAAC,EAAE;MAAEE,SAAS,EAAE;IAAK,CAAC,CAAC;IAEvB,MAAM;MAAEC;IAAa,CAAC,GAAG/D,YAAY,CAACW,KAAK,CAAC;IAC5C,MAAM;MAAEqD;IAAc,CAAC,GAAG7E,SAAS,CAACwB,KAAK,CAAC;IAC1C,MAAM;MAAEsD,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAGnF,UAAU,CAAC0E,YAAY,CAAC;IAC9E,MAAM;MAAEU;IAAe,CAAC,GAAG/E,UAAU,CAACsB,KAAK,CAAC;IAC5C,MAAM;MAAE0D;IAAgB,CAAC,GAAG9E,YAAY,CAACoB,KAAK,CAAC;IAC/C,MAAM;MAAE2D;IAAiB,CAAC,GAAG7E,YAAY,CAACkB,KAAK,CAAC;IAChD,MAAM;MAAE4D;IAAe,CAAC,GAAG5E,UAAU,CAAC6D,YAAY,CAAC;IACnD,MAAMgB,WAAW,GAAGrE,QAAQ,CAAC,MAAMQ,KAAK,CAACY,KAAK,GAAI,gBAAeZ,KAAK,CAACY,KAAM,OAAM,GAAGP,SAAS,CAAC;IAEhG,MAAMyD,SAAS,GAAGtE,QAAQ,CAAC,OAAO;MAChCkD,QAAQ,EAAEA,QAAQ,CAACrB,KAAK;MACxBa,MAAM;MACNC,UAAU,EAAEA,UAAU,CAACd,KAAK;MAC5Be,eAAe,EAAEA,eAAe,CAACf;IACnC,CAAC,CAAC,CAAC;IAEH,SAASC,OAAO,CAAEK,CAAa,EAAE;MAC/BI,IAAI,CAAC,OAAO,EAAEJ,CAAC,CAAC;MAEhB,IAAIU,gBAAgB,IAAI,CAACO,WAAW,CAACvB,KAAK,EAAE;MAE5CR,IAAI,CAACkD,QAAQ,GAAGpC,CAAC,CAAC;MAClB3B,KAAK,CAACqB,KAAK,IAAI,IAAI,IAAIa,MAAM,CAAC,CAACC,UAAU,CAACd,KAAK,EAAEM,CAAC,CAAC;IACrD;IAEA,SAASqC,SAAS,CAAErC,CAAgB,EAAE;MACpC,IAAIA,CAAC,CAACsC,GAAG,KAAK,OAAO,IAAItC,CAAC,CAACsC,GAAG,KAAK,GAAG,EAAE;QACtCtC,CAAC,CAACuC,cAAc,EAAE;QAClB5C,OAAO,CAACK,CAAC,CAAsB;MACjC;IACF;IAEA/B,SAAS,CAAC,MAAM;MACd,MAAMuE,GAAG,GAAGxB,MAAM,CAACtB,KAAK,GAAG,GAAG,GAAGrB,KAAK,CAACoE,GAAG;MAC1C,MAAMC,QAAQ,GAAG,CAAC5B,IAAI,IAAIN,UAAU,CAACd,KAAK,IAAIqB,QAAQ,CAACrB,KAAK;MAC5D,MAAMiD,QAAQ,GAAIxC,KAAK,CAACV,KAAK,IAAIpB,KAAK,CAACoB,KAAM;MAC7C,MAAMmD,WAAW,GAAIzC,KAAK,CAACZ,QAAQ,IAAIlB,KAAK,CAACkB,QAAS;MACtD,MAAMsD,SAAS,GAAG,CAAC,EAAE1C,KAAK,CAAC2C,MAAM,IAAIzE,KAAK,CAACS,YAAY,IAAIT,KAAK,CAACU,UAAU,CAAC;MAC5E,MAAMgE,UAAU,GAAG,CAAC,EAAE5C,KAAK,CAAC6C,OAAO,IAAI3E,KAAK,CAACe,aAAa,IAAIf,KAAK,CAACgB,WAAW,CAAC;MAEhFyB,IAAI,EAAEmC,gBAAgB,CAACF,UAAU,CAAC;MAElC;QAAA,SAEW,CACL,aAAa,EACb;UACE,qBAAqB,EAAEhC,QAAQ,CAACrB,KAAK;UACrC,uBAAuB,EAAErB,KAAK,CAACW,QAAQ;UACvC,mBAAmB,EAAEiC,WAAW,CAACvB,KAAK;UACtC,kBAAkB,EAAErB,KAAK,CAACc,GAAG;UAC7B,sBAAsB,EAAE,CAAC4D,UAAU,IAAIjC,IAAI,EAAEiC,UAAU,CAACrD,KAAK;UAC7D,CAAE,GAAErB,KAAK,CAACM,WAAY,EAAC,GAAGN,KAAK,CAACM,WAAW,IAAIoC,QAAQ,CAACrB;QAC1D,CAAC,EACD+B,YAAY,CAAC/B,KAAK,EAClBgC,aAAa,CAAChC,KAAK,EACnBgD,QAAQ,GAAGf,YAAY,CAACjC,KAAK,GAAGhB,SAAS,EACzCoD,cAAc,CAACpC,KAAK,EACpBsC,gBAAgB,CAACtC,KAAK,EACtBwC,WAAW,CAACxC,KAAK,EACjBuC,cAAc,CAACvC,KAAK,EACpBmC,cAAc,CAACnC,KAAK,CACrB;QAAA,SACM,CACLgD,QAAQ,GAAGd,WAAW,CAAClC,KAAK,GAAGhB,SAAS,EACxCqD,eAAe,CAACrC,KAAK,CACtB;QAAA,QACMR,IAAI,CAACoB,IAAI,CAACZ,KAAK;QAAA,YACXuB,WAAW,CAACvB,KAAK,GAAG,CAAC,GAAGhB,SAAS;QAAA,WAClCiB,OAAO;QAAA,aACLsB,WAAW,CAACvB,KAAK,IAAI,CAACsB,MAAM,CAACtB,KAAK,IAAI2C;MAAS;QAAA,gBAGzD7F,WAAW,CAACyE,WAAW,CAACvB,KAAK,IAAIqB,QAAQ,CAACrB,KAAK,EAAE,aAAa,CAAC,EAE/DqD,UAAU;UAAA,OACD,SAAS;UAAA,SAAO;QAAsB,IAC3C1E,KAAK,CAACe,aAAa;UAAA,OACN,gBAAgB;UAAA,WAAWf,KAAK,CAAC6E,OAAO;UAAA,SAAW7E,KAAK,CAACe;QAAa,QACpF,EAECf,KAAK,CAACgB,WAAW;UAAA,OACN,cAAc;UAAA,WAAWhB,KAAK,CAAC6E,OAAO;UAAA,QAAU7E,KAAK,CAACgB;QAAW,QAC7E,EAECc,KAAK,CAAC6C,OAAO;UAAA,OAEP,SAAS;UAAA,YACH;YACR9G,OAAO,EAAE;cACPgH,OAAO,EAAE7E,KAAK,CAAC6E,OAAO;cACtBC,KAAK,EAAE9E,KAAK,CAACe;YACf,CAAC;YACDhD,KAAK,EAAE;cACL8G,OAAO,EAAE7E,KAAK,CAAC6E,OAAO;cACtBE,IAAI,EAAE/E,KAAK,CAACgB;YACd,CAAC;YACDgE,eAAe,EAAE;cACfC,KAAK,EAAE;YACT;UACF;QAAC;UAAA,gBAECnD,KAAK,CAAC6C,OAAO,CAACb,SAAS,CAACzC,KAAK,CAAC;QAAA,EAEnC,EAEJ;UAAA,SAEU,sBAAsB;UAAA,qBAAmB;QAAE,IAClDiD,QAAQ;UAAA,OACY;QAAO;UAAA,gBACvBxC,KAAK,CAACV,KAAK,GAAG;YAAEA,KAAK,EAAEpB,KAAK,CAACoB;UAAM,CAAC,CAAC,IAAIpB,KAAK,CAACoB,KAAK;QAAA,EAEzD,EAECmD,WAAW;UAAA,OACY;QAAU;UAAA,gBAC7BzC,KAAK,CAACZ,QAAQ,GAAG;YAAEA,QAAQ,EAAElB,KAAK,CAACkB;UAAS,CAAC,CAAC,IAAIlB,KAAK,CAACkB,QAAQ;QAAA,EAErE,EAECY,KAAK,CAAC1B,OAAO,GAAG0D,SAAS,CAACzC,KAAK,CAAC,IAGlCmD,SAAS;UAAA,OACA,QAAQ;UAAA,SAAO;QAAqB,IACzC1C,KAAK,CAAC2C,MAAM;UAAA,OAEN,QAAQ;UAAA,YACF;YACR5G,OAAO,EAAE;cACPgH,OAAO,EAAE7E,KAAK,CAAC6E,OAAO;cACtBC,KAAK,EAAE9E,KAAK,CAACS;YACf,CAAC;YACD1C,KAAK,EAAE;cACL8G,OAAO,EAAE7E,KAAK,CAAC6E,OAAO;cACtBE,IAAI,EAAE/E,KAAK,CAACU;YACd,CAAC;YACDsE,eAAe,EAAE;cACfE,GAAG,EAAE;YACP;UACF;QAAC;UAAA,gBAECpD,KAAK,CAAC2C,MAAM,CAACX,SAAS,CAACzC,KAAK,CAAC;QAAA,EAElC,EAECrB,KAAK,CAACU,UAAU;UAAA,OACL,aAAa;UAAA,WAAWV,KAAK,CAAC6E,OAAO;UAAA,QAAU7E,KAAK,CAACU;QAAU,QAC3E,EAECV,KAAK,CAACS,YAAY;UAAA,OACL,eAAe;UAAA,WAAWT,KAAK,CAAC6E,OAAO;UAAA,SAAW7E,KAAK,CAACS;QAAY,QAClF,EAEJ;MAAA,mCApFUmC,WAAW,CAACvB,KAAK,IAAIrB,KAAK,CAACiB,MAAM;IAuFlD,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VListSubheader.mjs","names":["makeTagProps","useTextColor","toRef","genericComponent","useRender","VListSubheader","name","props","color","String","inset","Boolean","sticky","title","setup","slots","textColorClasses","textColorStyles","hasText","default","value"],"sources":["../../../src/components/VList/VListSubheader.tsx"],"sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n\n props: {\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n <props.tag\n class={[\n 'v-list-subheader',\n {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky,\n },\n textColorClasses.value,\n ]}\n style={{ textColorStyles }}\n >\n { hasText && (\n <div class=\"v-list-subheader__text\">\n { slots.default?.() ?? props.title }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListSubheader = InstanceType<typeof VListSubheader>\n"],"mappings":";AAAA;AAAA,SACSA,YAAY;AAAA,SACZC,YAAY,uCAErB;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,gBAAgB,EAAEC,SAAS;AAEpC,OAAO,MAAMC,cAAc,GAAGF,gBAAgB,EAAE,CAAC;EAC/CG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAAM;IACbC,KAAK,EAAEC,OAAO;IACdC,MAAM,EAAED,OAAO;IACfE,KAAK,EAAEJ,MAAM;IAEb,GAAGT,YAAY;EACjB,CAAC;EAEDc,KAAK,CAAEP,KAAK,QAAa;IAAA,IAAX;MAAEQ;IAAM,CAAC;IACrB,MAAM;MAAEC,gBAAgB;MAAEC;IAAgB,CAAC,GAAGhB,YAAY,CAACC,KAAK,CAACK,KAAK,EAAE,OAAO,CAAC,CAAC;IAEjFH,SAAS,CAAC,MAAM;MACd,MAAMc,OAAO,GAAG,CAAC,EAAEH,KAAK,CAACI,OAAO,IAAIZ,KAAK,CAACM,KAAK,CAAC;MAEhD;QAAA,SAEW,CACL,kBAAkB,EAClB;UACE,yBAAyB,EAAEN,KAAK,CAACG,KAAK;UACtC,0BAA0B,EAAEH,KAAK,CAACK;QACpC,CAAC,EACDI,gBAAgB,CAACI,KAAK,CACvB;QAAA,SACM;UAAEH;QAAgB;MAAC;QAAA,gBAExBC,OAAO;UAAA,SACI;QAAwB,IAC/BH,KAAK,CAACI,OAAO,IAAI,IAAIZ,KAAK,CAACM,KAAK,EAErC;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VListSubheader.mjs","names":["makeTagProps","useTextColor","toRef","genericComponent","useRender","VListSubheader","name","props","color","String","inset","Boolean","sticky","title","setup","slots","textColorClasses","textColorStyles","hasText","default","value"],"sources":["../../../src/components/VList/VListSubheader.tsx"],"sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n\n props: {\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n <props.tag\n class={[\n 'v-list-subheader',\n {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky,\n },\n textColorClasses.value,\n ]}\n style={{ textColorStyles }}\n >\n { hasText && (\n <div class=\"v-list-subheader__text\">\n { slots.default?.() ?? props.title }\n </div>\n )}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListSubheader = InstanceType<typeof VListSubheader>\n"],"mappings":";AAAA;AAAA,SACSA,YAAY;AAAA,SACZC,YAAY,uCAErB;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,gBAAgB,EAAEC,SAAS;AAEpC,OAAO,MAAMC,cAAc,GAAGF,gBAAgB,EAAE,CAAC;EAC/CG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAAM;IACbC,KAAK,EAAEC,OAAO;IACdC,MAAM,EAAED,OAAO;IACfE,KAAK,EAAEJ,MAAM;IAEb,GAAGT,YAAY;EACjB,CAAC;EAEDc,KAAK,CAAEP,KAAK,QAAa;IAAA,IAAX;MAAEQ;IAAM,CAAC;IACrB,MAAM;MAAEC,gBAAgB;MAAEC;IAAgB,CAAC,GAAGhB,YAAY,CAACC,KAAK,CAACK,KAAK,EAAE,OAAO,CAAC,CAAC;IAEjFH,SAAS,CAAC,MAAM;MACd,MAAMc,OAAO,GAAG,CAAC,EAAEH,KAAK,CAACI,OAAO,IAAIZ,KAAK,CAACM,KAAK,CAAC;MAEhD;QAAA,SAEW,CACL,kBAAkB,EAClB;UACE,yBAAyB,EAAEN,KAAK,CAACG,KAAK;UACtC,0BAA0B,EAAEH,KAAK,CAACK;QACpC,CAAC,EACDI,gBAAgB,CAACI,KAAK,CACvB;QAAA,SACM;UAAEH;QAAgB;MAAC;QAAA,gBAExBC,OAAO;UAAA,SACI;QAAwB,IAC/BH,KAAK,CAACI,OAAO,IAAI,IAAIZ,KAAK,CAACM,KAAK,EAErC;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VMessages.mjs","names":["VSlideYTransition","makeTransitionProps","MaybeTransition","useTextColor","computed","genericComponent","useRender","wrapInArray","VMessages","name","props","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","setup","slots","textColorClasses","textColorStyles","value","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: [VMessageSlot]\n}\n\nexport const VMessages = genericComponent<VMessagesSlots>()({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n role=\"alert\"\n aria-live=\"polite\"\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n ) }\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType<typeof VMessages>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,oCAE1B;AAAA,SACSC,mBAAmB,EAAEC,eAAe;AAAA,SACpCC,YAAY,uCAErB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,SAAS,EAAEC,WAAW,gCAEjD;AAWA,OAAO,MAAMC,SAAS,GAAGH,gBAAgB,EAAkB,CAAC;EAC1DI,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,MAAM,EAAEC,OAAO;IACfC,KAAK,EAAEC,MAAM;IACbC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAK,EAAEH,MAAM,CAAgC;MACpDI,OAAO,EAAE,MAAO;IAClB,CAAC;IAED,GAAGjB,mBAAmB,CAAC;MACrBkB,UAAU,EAAE;QACVC,SAAS,EAAEpB,iBAAiB;QAC5BqB,aAAa,EAAE,IAAI;QACnBC,KAAK,EAAE;MACT;IACF,CAAC;EACH,CAAC;EAEDC,KAAK,CAAEb,KAAK,QAAa;IAAA,IAAX;MAAEc;IAAM,CAAC;IACrB,MAAMT,QAAQ,GAAGX,QAAQ,CAAC,MAAMG,WAAW,CAACG,KAAK,CAACK,QAAQ,CAAC,CAAC;IAC5D,MAAM;MAAEU,gBAAgB;MAAEC;IAAgB,CAAC,GAAGvB,YAAY,CAACC,QAAQ,CAAC,MAAMM,KAAK,CAACG,KAAK,CAAC,CAAC;IAEvFP,SAAS,CAAC;MAAA,cAEOI,KAAK,CAACS,UAAU;MAAA,OACzB,KAAK;MAAA,SACF,CACL,YAAY,EACZM,gBAAgB,CAACE,KAAK,CACvB;MAAA,SACOD,eAAe,CAACC,KAAK;MAAA,QACxB,OAAO;MAAA,aACF;IAAQ;MAAA,gBAEhBjB,KAAK,CAACC,MAAM,IACZI,QAAQ,CAACY,KAAK,CAACC,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC;QAAA,SAEpB,qBAAqB;QAAA,OACpB,GAAEA,CAAE,IAAGf,QAAQ,CAACY,KAAM;MAAC,IAE5BH,KAAK,CAACK,OAAO,GAAGL,KAAK,CAACK,OAAO,CAAC;QAAEA;MAAQ,CAAC,CAAC,GAAGA,OAAO,EAEzD,CACF;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VMessages.mjs","names":["VSlideYTransition","makeTransitionProps","MaybeTransition","useTextColor","computed","genericComponent","useRender","wrapInArray","VMessages","name","props","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","setup","slots","textColorClasses","textColorStyles","value","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: [VMessageSlot]\n}\n\nexport const VMessages = genericComponent<VMessagesSlots>()({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n role=\"alert\"\n aria-live=\"polite\"\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n )}\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType<typeof VMessages>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,oCAE1B;AAAA,SACSC,mBAAmB,EAAEC,eAAe;AAAA,SACpCC,YAAY,uCAErB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,SAAS,EAAEC,WAAW,gCAEjD;AAWA,OAAO,MAAMC,SAAS,GAAGH,gBAAgB,EAAkB,CAAC;EAC1DI,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,MAAM,EAAEC,OAAO;IACfC,KAAK,EAAEC,MAAM;IACbC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAK,EAAEH,MAAM,CAAgC;MACpDI,OAAO,EAAE,MAAO;IAClB,CAAC;IAED,GAAGjB,mBAAmB,CAAC;MACrBkB,UAAU,EAAE;QACVC,SAAS,EAAEpB,iBAAiB;QAC5BqB,aAAa,EAAE,IAAI;QACnBC,KAAK,EAAE;MACT;IACF,CAAC;EACH,CAAC;EAEDC,KAAK,CAAEb,KAAK,QAAa;IAAA,IAAX;MAAEc;IAAM,CAAC;IACrB,MAAMT,QAAQ,GAAGX,QAAQ,CAAC,MAAMG,WAAW,CAACG,KAAK,CAACK,QAAQ,CAAC,CAAC;IAC5D,MAAM;MAAEU,gBAAgB;MAAEC;IAAgB,CAAC,GAAGvB,YAAY,CAACC,QAAQ,CAAC,MAAMM,KAAK,CAACG,KAAK,CAAC,CAAC;IAEvFP,SAAS,CAAC;MAAA,cAEOI,KAAK,CAACS,UAAU;MAAA,OACzB,KAAK;MAAA,SACF,CACL,YAAY,EACZM,gBAAgB,CAACE,KAAK,CACvB;MAAA,SACOD,eAAe,CAACC,KAAK;MAAA,QACxB,OAAO;MAAA,aACF;IAAQ;MAAA,gBAEhBjB,KAAK,CAACC,MAAM,IACZI,QAAQ,CAACY,KAAK,CAACC,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC;QAAA,SAEpB,qBAAqB;QAAA,OACpB,GAAEA,CAAE,IAAGf,QAAQ,CAACY,KAAM;MAAC,IAE5BH,KAAK,CAACK,OAAO,GAAGL,KAAK,CAACK,OAAO,CAAC;QAAEA;MAAQ,CAAC,CAAC,GAAGA,OAAO,EAEzD,CACF;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}