@aotearoan/neon 21.0.1 → 21.0.3

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 (38) hide show
  1. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.cjs.js +1 -1
  2. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.cjs.js.map +1 -1
  3. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.es.js +30 -31
  4. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.es.js.map +1 -1
  5. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.cjs.js +1 -1
  6. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.cjs.js.map +1 -1
  7. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.es.js +23 -23
  8. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.es.js.map +1 -1
  9. package/dist/components/navigation/link/NeonLink.vue.cjs.js +1 -1
  10. package/dist/components/navigation/link/NeonLink.vue.cjs.js.map +1 -1
  11. package/dist/components/navigation/link/NeonLink.vue.es.js +27 -33
  12. package/dist/components/navigation/link/NeonLink.vue.es.js.map +1 -1
  13. package/dist/components/navigation/menu/NeonMenu.cjs.js +1 -1
  14. package/dist/components/navigation/menu/NeonMenu.cjs.js.map +1 -1
  15. package/dist/components/navigation/menu/NeonMenu.es.js +57 -55
  16. package/dist/components/navigation/menu/NeonMenu.es.js.map +1 -1
  17. package/dist/components/navigation/menu/NeonMenu.vue.cjs.js +1 -1
  18. package/dist/components/navigation/menu/NeonMenu.vue.cjs.js.map +1 -1
  19. package/dist/components/navigation/menu/NeonMenu.vue.es.js +23 -24
  20. package/dist/components/navigation/menu/NeonMenu.vue.es.js.map +1 -1
  21. package/dist/components/presentation/dropdown/NeonDropdown.cjs.js +1 -1
  22. package/dist/components/presentation/dropdown/NeonDropdown.cjs.js.map +1 -1
  23. package/dist/components/presentation/dropdown/NeonDropdown.es.js +38 -47
  24. package/dist/components/presentation/dropdown/NeonDropdown.es.js.map +1 -1
  25. package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +134 -83
  26. package/dist/src/components/navigation/menu/NeonMenu.d.ts +38 -18
  27. package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.d.ts +14 -11
  28. package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +34 -27
  29. package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +5 -18
  30. package/dist/src/components/user-input/search/NeonSearch.d.ts +9 -26
  31. package/dist/src/components/user-input/select/NeonSelect.d.ts +21 -110
  32. package/package.json +1 -1
  33. package/src/sass/components/_action-menu.scss +2 -7
  34. package/src/sass/components/_button.scss +0 -6
  35. package/src/sass/components/_card-list.scss +1 -6
  36. package/src/sass/components/_link.scss +3 -5
  37. package/src/sass/components/_search.scss +12 -0
  38. package/src/sass/components/_tree-menu.scss +1 -0
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("vue"),q=require("../../../common/enums/NeonSize.cjs.js"),D=require("../../../common/enums/NeonFunctionalColor.cjs.js"),S=require("../../presentation/dropdown/NeonDropdown.vue.cjs.js"),s=require("../../../common/enums/NeonDropdownPlacement.cjs.js"),P=require("../../../common/utils/NeonScrollUtils.cjs.js"),B=require("../../presentation/icon/NeonIcon.vue.cjs.js"),C=require("../link/NeonLink.vue.cjs.js"),I=n.defineComponent({name:"NeonDropdownMenu",components:{NeonDropdown:S,NeonIcon:B,NeonLink:C},props:{model:{type:Array,required:!0},size:{type:String,default:q.NeonSize.Medium},color:{type:String,default:D.NeonFunctionalColor.LowContrast},disabled:{type:Boolean,default:!1},openOnHover:{type:Boolean,default:!1}},emits:["click","button-ref"],setup(t,{emit:d}){const h=n.useAttrs(),f=n.ref(null),m=n.ref(null),v=n.ref([]),r=n.ref(!1),c=n.ref(null),l=n.ref(-1),y=e=>{c.value=e,l.value=t.model.findIndex(o=>o.key===e)},g=e=>{m.value=e},p=()=>{switch(m.value){case s.NeonDropdownPlacement.TopLeft:case s.NeonDropdownPlacement.TopRight:case s.NeonDropdownPlacement.LeftBottom:case s.NeonDropdownPlacement.RightBottom:return!0}return!1},N=()=>{var o,a;const e=(a=(o=f.value)==null?void 0:o.dropdownContent)==null?void 0:a.querySelector(".neon-dropdown-menu__item--highlighted");e&&(e.focus(),P.NeonScrollUtils.scrollIntoView(e))},u=(e,o)=>{const a=l.value+e;a>=0&&a<=t.model.length-1&&(l.value=a,c.value=t.model[l.value].key,o.preventDefault(),setTimeout(N))},i=e=>{if(!t.disabled&&r.value)switch(e.code){case"ArrowUp":case"ArrowDown":{const o=p()?-1:1;e.code==="ArrowUp"?u(-1*o,e):u(1*o,e)}break;case"Enter":case"Space":t.model[l.value]&&!t.model[l.value].disabled&&(w(t.model[l.value]),e.preventDefault());break;case"Tab":!e.ctrlKey&&!e.metaKey&&!e.altKey&&(r.value=!1);break;case"Escape":r.value=!1;break}},w=e=>{var o;if(!e.disabled){if(e.href){const a=(o=v.value[l.value])==null?void 0:o.firstElementChild;a&&a.click()}else d("click",e);r.value=!1}},k=()=>{t.openOnHover&&(r.value=!0)},b=()=>{t.openOnHover&&(r.value=!1)};return n.onMounted(()=>{document.addEventListener("keydown",i)}),n.onUnmounted(()=>{document.removeEventListener("keydown",i)}),n.watch(()=>r.value,e=>{e&&(c.value=t.model[0].key,l.value=0)}),{dropdown:f,items:v,open:r,highlightedKey:c,highlightedIndex:l,attrs:h,emit:d,changeHighlighted:y,keyboardHandler:i,onBlur:b,onFocus:k,clickItem:w,navigateBy:u,onPlacement:g}}});module.exports=I;
1
+ "use strict";const n=require("vue"),b=require("../../../common/enums/NeonSize.cjs.js"),q=require("../../../common/enums/NeonFunctionalColor.cjs.js"),S=require("../../presentation/dropdown/NeonDropdown.vue.cjs.js"),c=require("../../../common/enums/NeonDropdownPlacement.cjs.js"),P=require("../../../common/utils/NeonScrollUtils.cjs.js"),B=require("../../presentation/icon/NeonIcon.vue.cjs.js"),L=require("../link/NeonLink.vue.cjs.js"),C=n.defineComponent({name:"NeonDropdownMenu",components:{NeonDropdown:S,NeonIcon:B,NeonLink:L},props:{model:{type:Array,required:!0},size:{type:String,default:b.NeonSize.Medium},color:{type:String,default:q.NeonFunctionalColor.LowContrast},disabled:{type:Boolean,default:!1},placement:{type:String,default:c.NeonDropdownPlacement.BottomLeft},openOnHover:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:d}){const h=n.useAttrs(),f=n.ref(null),m=n.ref(null),v=n.ref([]),r=n.ref(!1),s=n.ref(null),l=n.ref(-1),p=e=>{s.value=e,l.value=t.model.findIndex(o=>o.key===e)},y=e=>{m.value=e},g=()=>{switch(m.value){case c.NeonDropdownPlacement.TopLeft:case c.NeonDropdownPlacement.TopRight:case c.NeonDropdownPlacement.LeftBottom:case c.NeonDropdownPlacement.RightBottom:return!0}return!1},N=()=>{var o,a;const e=(a=(o=f.value)==null?void 0:o.dropdownContent)==null?void 0:a.querySelector(".neon-dropdown-menu__item--highlighted");e&&(e.focus(),P.NeonScrollUtils.scrollIntoView(e))},i=(e,o)=>{const a=l.value+e;a>=0&&a<=t.model.length-1&&(l.value=a,s.value=t.model[l.value].key,o.preventDefault(),setTimeout(N))},u=e=>{if(!t.disabled&&r.value)switch(e.code){case"ArrowUp":case"ArrowDown":{const o=g()?-1:1;e.code==="ArrowUp"?i(-1*o,e):i(1*o,e)}break;case"Enter":case"Space":t.model[l.value]&&!t.model[l.value].disabled&&(w(t.model[l.value]),e.preventDefault());break;case"Tab":!e.ctrlKey&&!e.metaKey&&!e.altKey&&(r.value=!1);break;case"Escape":r.value=!1;break}},w=e=>{var o;if(!e.disabled){if(e.href){const a=(o=v.value[l.value])==null?void 0:o.firstElementChild;a&&a.click()}else d("click",e);r.value=!1}},k=()=>{t.openOnHover&&(r.value=!0)},D=()=>{t.openOnHover&&(r.value=!1)};return n.onMounted(()=>{document.addEventListener("keydown",u)}),n.onUnmounted(()=>{document.removeEventListener("keydown",u)}),n.watch(()=>r.value,e=>{e&&(s.value=t.model[0].key,l.value=0)}),{dropdown:f,items:v,open:r,highlightedKey:s,highlightedIndex:l,attrs:h,emit:d,changeHighlighted:p,keyboardHandler:u,onBlur:D,onFocus:k,clickItem:w,navigateBy:i,onPlacement:y}}});module.exports=C;
2
2
  //# sourceMappingURL=NeonDropdownMenu.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDropdownMenu.cjs.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref, useAttrs, watch } from 'vue';\nimport type { NeonDropdownMenuItem } from '@/common/models/NeonDropdownMenuItem';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\nimport { NeonScrollUtils } from '@/common/utils/NeonScrollUtils';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\n\n/**\n * <p>A dropdown menu consisting of a button to open the menu and a list of menu items. Clicking on a menu item will\n * result in navigating to the provided URL or notifying the parent component via the @click event.</p>\n * <p><strong>Note:</strong> As well as the options described below, pass through attributes supported by\n * <a href=\"/presentation/dropdown\">NeonDropdown</a> to change the style of the dropdown button.</p>\n */\nexport default defineComponent({\n name: 'NeonDropdownMenu',\n components: {\n NeonDropdown,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * A list of menu items to render in the dropdown menu.\n */\n model: { type: Array as () => Array<NeonDropdownMenuItem>, required: true },\n /**\n * The size of the dropdown - Small, Medium or Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * The dropdown color.\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Whether the dropdown button is disabled or not.\n */\n disabled: { type: Boolean, default: false },\n /**\n * Instead of opening on click (default), open on hover.\n */\n openOnHover: { type: Boolean, default: false },\n },\n emits: [\n /**\n * emitted when the user clicks on a menu item.\n * @type {NeonDropdownMenuItem} the menu item the user clicked on.\n */\n 'click',\n /**\n * emitted on initialisation\n * @type {HTMLElement} the reference to the HTMLElement for the dropdown menu button.\n */\n 'button-ref',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const dropdown = ref<InstanceType<typeof NeonDropdown> | null>(null);\n const dropdownPlacement = ref<NeonDropdownPlacement | null>(null);\n const items = ref<Array<HTMLLIElement>>([]);\n const open = ref(false);\n const highlightedKey = ref<string | null>(null);\n const highlightedIndex = ref(-1);\n\n const changeHighlighted = (key: string) => {\n highlightedKey.value = key;\n highlightedIndex.value = props.model.findIndex((item) => item.key === key);\n };\n\n const onPlacement = (placement: NeonDropdownPlacement) => {\n dropdownPlacement.value = placement;\n };\n\n const isReverse = () => {\n switch (dropdownPlacement.value) {\n case NeonDropdownPlacement.TopLeft:\n case NeonDropdownPlacement.TopRight:\n case NeonDropdownPlacement.LeftBottom:\n case NeonDropdownPlacement.RightBottom:\n return true;\n }\n\n return false;\n };\n\n const onNavigate = () => {\n const element: HTMLElement | null = dropdown.value?.dropdownContent?.querySelector(\n '.neon-dropdown-menu__item--highlighted',\n ) as HTMLElement;\n\n if (element) {\n element.focus();\n NeonScrollUtils.scrollIntoView(element);\n }\n };\n\n const navigateBy = (offset: number, $event: KeyboardEvent) => {\n const newIndex = highlightedIndex.value + offset;\n if (newIndex >= 0 && newIndex <= props.model.length - 1) {\n highlightedIndex.value = newIndex;\n highlightedKey.value = props.model[highlightedIndex.value].key;\n $event.preventDefault();\n setTimeout(onNavigate);\n }\n };\n\n const keyboardHandler = ($event: KeyboardEvent) => {\n if (!props.disabled) {\n if (open.value) {\n switch ($event.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const reverseOffset = isReverse() ? -1 : 1;\n if ($event.code === 'ArrowUp') {\n navigateBy(-1 * reverseOffset, $event);\n } else {\n navigateBy(1 * reverseOffset, $event);\n }\n }\n break;\n case 'Enter':\n case 'Space':\n if (props.model[highlightedIndex.value] && !props.model[highlightedIndex.value].disabled) {\n clickItem(props.model[highlightedIndex.value]);\n $event.preventDefault();\n }\n break;\n case 'Tab':\n if (!$event.ctrlKey && !$event.metaKey && !$event.altKey) {\n open.value = false;\n }\n break;\n case 'Escape':\n open.value = false;\n break;\n }\n }\n }\n };\n\n const clickItem = (item: NeonDropdownMenuItem) => {\n if (!item.disabled) {\n if (item.href) {\n const anchor = items.value[highlightedIndex.value]?.firstElementChild as HTMLAnchorElement;\n anchor && anchor.click();\n } else {\n emit('click', item);\n }\n open.value = false;\n }\n };\n\n const onFocus = () => {\n if (props.openOnHover) {\n open.value = true;\n }\n };\n\n const onBlur = () => {\n if (props.openOnHover) {\n open.value = false;\n }\n };\n\n onMounted(() => {\n document.addEventListener('keydown', keyboardHandler);\n });\n\n onUnmounted(() => {\n document.removeEventListener('keydown', keyboardHandler);\n });\n\n watch(\n () => open.value,\n (open: boolean) => {\n if (open) {\n highlightedKey.value = props.model[0].key;\n highlightedIndex.value = 0;\n }\n },\n );\n\n return {\n dropdown,\n items,\n open,\n highlightedKey,\n highlightedIndex,\n attrs,\n emit,\n changeHighlighted,\n keyboardHandler,\n onBlur,\n onFocus,\n clickItem,\n navigateBy,\n onPlacement,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonDropdown","NeonIcon","NeonLink","NeonSize","NeonFunctionalColor","props","emit","attrs","useAttrs","dropdown","ref","dropdownPlacement","items","open","highlightedKey","highlightedIndex","changeHighlighted","key","item","onPlacement","placement","isReverse","NeonDropdownPlacement","onNavigate","element","_b","_a","NeonScrollUtils","navigateBy","offset","$event","newIndex","keyboardHandler","reverseOffset","clickItem","anchor","onFocus","onBlur","onMounted","onUnmounted","watch"],"mappings":"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"}
1
+ {"version":3,"file":"NeonDropdownMenu.cjs.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref, useAttrs, watch } from 'vue';\nimport type { NeonDropdownMenuItem } from '@/common/models/NeonDropdownMenuItem';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\nimport { NeonScrollUtils } from '@/common/utils/NeonScrollUtils';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\n\n/**\n * <p>A dropdown menu consisting of a button to open the menu and a list of menu items. Clicking on a menu item will\n * result in navigating to the provided URL or notifying the parent component via the @click event.</p>\n * <p><strong>Note:</strong> As well as the options described below, pass through attributes supported by\n * <a href=\"/presentation/dropdown\">NeonDropdown</a> to change the style of the dropdown button.</p>\n */\nexport default defineComponent({\n name: 'NeonDropdownMenu',\n components: {\n NeonDropdown,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * A list of menu items to render in the dropdown menu.\n */\n model: { type: Array as () => Array<NeonDropdownMenuItem>, required: true },\n /**\n * The size of the dropdown - Small, Medium or Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * The dropdown color.\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Whether the dropdown button is disabled or not.\n */\n disabled: { type: Boolean, default: false },\n /**\n * Placement of the dropdown contents.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Instead of opening on click (default), open on hover.\n */\n openOnHover: { type: Boolean, default: false },\n },\n emits: [\n /**\n * emitted when the user clicks on a menu item.\n * @type {NeonDropdownMenuItem} the menu item the user clicked on.\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const dropdown = ref<InstanceType<typeof NeonDropdown> | null>(null);\n const dropdownPlacement = ref<NeonDropdownPlacement | null>(null);\n const items = ref<Array<HTMLLIElement>>([]);\n const open = ref(false);\n const highlightedKey = ref<string | null>(null);\n const highlightedIndex = ref(-1);\n\n const changeHighlighted = (key: string) => {\n highlightedKey.value = key;\n highlightedIndex.value = props.model.findIndex((item) => item.key === key);\n };\n\n const onPlacement = (placement: NeonDropdownPlacement) => {\n dropdownPlacement.value = placement;\n };\n\n const isReverse = () => {\n switch (dropdownPlacement.value) {\n case NeonDropdownPlacement.TopLeft:\n case NeonDropdownPlacement.TopRight:\n case NeonDropdownPlacement.LeftBottom:\n case NeonDropdownPlacement.RightBottom:\n return true;\n }\n\n return false;\n };\n\n const onNavigate = () => {\n const element: HTMLElement | null = dropdown.value?.dropdownContent?.querySelector(\n '.neon-dropdown-menu__item--highlighted',\n ) as HTMLElement;\n\n if (element) {\n element.focus();\n NeonScrollUtils.scrollIntoView(element);\n }\n };\n\n const navigateBy = (offset: number, $event: KeyboardEvent) => {\n const newIndex = highlightedIndex.value + offset;\n if (newIndex >= 0 && newIndex <= props.model.length - 1) {\n highlightedIndex.value = newIndex;\n highlightedKey.value = props.model[highlightedIndex.value].key;\n $event.preventDefault();\n setTimeout(onNavigate);\n }\n };\n\n const keyboardHandler = ($event: KeyboardEvent) => {\n if (!props.disabled) {\n if (open.value) {\n switch ($event.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const reverseOffset = isReverse() ? -1 : 1;\n if ($event.code === 'ArrowUp') {\n navigateBy(-1 * reverseOffset, $event);\n } else {\n navigateBy(1 * reverseOffset, $event);\n }\n }\n break;\n case 'Enter':\n case 'Space':\n if (props.model[highlightedIndex.value] && !props.model[highlightedIndex.value].disabled) {\n clickItem(props.model[highlightedIndex.value]);\n $event.preventDefault();\n }\n break;\n case 'Tab':\n if (!$event.ctrlKey && !$event.metaKey && !$event.altKey) {\n open.value = false;\n }\n break;\n case 'Escape':\n open.value = false;\n break;\n }\n }\n }\n };\n\n const clickItem = (item: NeonDropdownMenuItem) => {\n if (!item.disabled) {\n if (item.href) {\n const anchor = items.value[highlightedIndex.value]?.firstElementChild as HTMLAnchorElement;\n anchor && anchor.click();\n } else {\n emit('click', item);\n }\n open.value = false;\n }\n };\n\n const onFocus = () => {\n if (props.openOnHover) {\n open.value = true;\n }\n };\n\n const onBlur = () => {\n if (props.openOnHover) {\n open.value = false;\n }\n };\n\n onMounted(() => {\n document.addEventListener('keydown', keyboardHandler);\n });\n\n onUnmounted(() => {\n document.removeEventListener('keydown', keyboardHandler);\n });\n\n watch(\n () => open.value,\n (open: boolean) => {\n if (open) {\n highlightedKey.value = props.model[0].key;\n highlightedIndex.value = 0;\n }\n },\n );\n\n return {\n dropdown,\n items,\n open,\n highlightedKey,\n highlightedIndex,\n attrs,\n emit,\n changeHighlighted,\n keyboardHandler,\n onBlur,\n onFocus,\n clickItem,\n navigateBy,\n onPlacement,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonDropdown","NeonIcon","NeonLink","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","dropdown","ref","dropdownPlacement","items","open","highlightedKey","highlightedIndex","changeHighlighted","key","item","onPlacement","placement","isReverse","onNavigate","element","_b","_a","NeonScrollUtils","navigateBy","offset","$event","newIndex","keyboardHandler","reverseOffset","clickItem","anchor","onFocus","onBlur","onMounted","onUnmounted","watch"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { defineComponent as B, useAttrs as D, ref as r, onMounted as I, onUnmounted as L, watch as S } from "vue";
1
+ import { defineComponent as B, useAttrs as L, ref as r, onMounted as S, onUnmounted as D, watch as I } from "vue";
2
2
  import { NeonSize as A } from "../../../common/enums/NeonSize.es.js";
3
3
  import { NeonFunctionalColor as C } from "../../../common/enums/NeonFunctionalColor.es.js";
4
4
  import E from "../../presentation/dropdown/NeonDropdown.vue.es.js";
5
- import { NeonDropdownPlacement as s } from "../../../common/enums/NeonDropdownPlacement.es.js";
5
+ import { NeonDropdownPlacement as c } from "../../../common/enums/NeonDropdownPlacement.es.js";
6
6
  import { NeonScrollUtils as H } from "../../../common/utils/NeonScrollUtils.es.js";
7
7
  import x from "../../presentation/icon/NeonIcon.vue.es.js";
8
8
  import K from "../link/NeonLink.vue.es.js";
@@ -30,6 +30,10 @@ const z = B({
30
30
  * Whether the dropdown button is disabled or not.
31
31
  */
32
32
  disabled: { type: Boolean, default: !1 },
33
+ /**
34
+ * Placement of the dropdown contents.
35
+ */
36
+ placement: { type: String, default: c.BottomLeft },
33
37
  /**
34
38
  * Instead of opening on click (default), open on hover.
35
39
  */
@@ -40,24 +44,19 @@ const z = B({
40
44
  * emitted when the user clicks on a menu item.
41
45
  * @type {NeonDropdownMenuItem} the menu item the user clicked on.
42
46
  */
43
- "click",
44
- /**
45
- * emitted on initialisation
46
- * @type {HTMLElement} the reference to the HTMLElement for the dropdown menu button.
47
- */
48
- "button-ref"
47
+ "click"
49
48
  ],
50
- setup(n, { emit: u }) {
51
- const p = D(), f = r(null), m = r(null), v = r([]), a = r(!1), c = r(null), t = r(-1), w = (e) => {
52
- c.value = e, t.value = n.model.findIndex((o) => o.key === e);
49
+ setup(t, { emit: u }) {
50
+ const h = L(), f = r(null), m = r(null), v = r([]), a = r(!1), s = r(null), n = r(-1), w = (e) => {
51
+ s.value = e, n.value = t.model.findIndex((o) => o.key === e);
53
52
  }, y = (e) => {
54
53
  m.value = e;
55
54
  }, g = () => {
56
55
  switch (m.value) {
57
- case s.TopLeft:
58
- case s.TopRight:
59
- case s.LeftBottom:
60
- case s.RightBottom:
56
+ case c.TopLeft:
57
+ case c.TopRight:
58
+ case c.LeftBottom:
59
+ case c.RightBottom:
61
60
  return !0;
62
61
  }
63
62
  return !1;
@@ -68,10 +67,10 @@ const z = B({
68
67
  );
69
68
  e && (e.focus(), H.scrollIntoView(e));
70
69
  }, i = (e, o) => {
71
- const l = t.value + e;
72
- l >= 0 && l <= n.model.length - 1 && (t.value = l, c.value = n.model[t.value].key, o.preventDefault(), setTimeout(k));
70
+ const l = n.value + e;
71
+ l >= 0 && l <= t.model.length - 1 && (n.value = l, s.value = t.model[n.value].key, o.preventDefault(), setTimeout(k));
73
72
  }, d = (e) => {
74
- if (!n.disabled && a.value)
73
+ if (!t.disabled && a.value)
75
74
  switch (e.code) {
76
75
  case "ArrowUp":
77
76
  case "ArrowDown":
@@ -82,7 +81,7 @@ const z = B({
82
81
  break;
83
82
  case "Enter":
84
83
  case "Space":
85
- n.model[t.value] && !n.model[t.value].disabled && (h(n.model[t.value]), e.preventDefault());
84
+ t.model[n.value] && !t.model[n.value].disabled && (p(t.model[n.value]), e.preventDefault());
86
85
  break;
87
86
  case "Tab":
88
87
  !e.ctrlKey && !e.metaKey && !e.altKey && (a.value = !1);
@@ -91,43 +90,43 @@ const z = B({
91
90
  a.value = !1;
92
91
  break;
93
92
  }
94
- }, h = (e) => {
93
+ }, p = (e) => {
95
94
  var o;
96
95
  if (!e.disabled) {
97
96
  if (e.href) {
98
- const l = (o = v.value[t.value]) == null ? void 0 : o.firstElementChild;
97
+ const l = (o = v.value[n.value]) == null ? void 0 : o.firstElementChild;
99
98
  l && l.click();
100
99
  } else
101
100
  u("click", e);
102
101
  a.value = !1;
103
102
  }
104
103
  }, b = () => {
105
- n.openOnHover && (a.value = !0);
104
+ t.openOnHover && (a.value = !0);
106
105
  }, N = () => {
107
- n.openOnHover && (a.value = !1);
106
+ t.openOnHover && (a.value = !1);
108
107
  };
109
- return I(() => {
108
+ return S(() => {
110
109
  document.addEventListener("keydown", d);
111
- }), L(() => {
110
+ }), D(() => {
112
111
  document.removeEventListener("keydown", d);
113
- }), S(
112
+ }), I(
114
113
  () => a.value,
115
114
  (e) => {
116
- e && (c.value = n.model[0].key, t.value = 0);
115
+ e && (s.value = t.model[0].key, n.value = 0);
117
116
  }
118
117
  ), {
119
118
  dropdown: f,
120
119
  items: v,
121
120
  open: a,
122
- highlightedKey: c,
123
- highlightedIndex: t,
124
- attrs: p,
121
+ highlightedKey: s,
122
+ highlightedIndex: n,
123
+ attrs: h,
125
124
  emit: u,
126
125
  changeHighlighted: w,
127
126
  keyboardHandler: d,
128
127
  onBlur: N,
129
128
  onFocus: b,
130
- clickItem: h,
129
+ clickItem: p,
131
130
  navigateBy: i,
132
131
  onPlacement: y
133
132
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDropdownMenu.es.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref, useAttrs, watch } from 'vue';\nimport type { NeonDropdownMenuItem } from '@/common/models/NeonDropdownMenuItem';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\nimport { NeonScrollUtils } from '@/common/utils/NeonScrollUtils';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\n\n/**\n * <p>A dropdown menu consisting of a button to open the menu and a list of menu items. Clicking on a menu item will\n * result in navigating to the provided URL or notifying the parent component via the @click event.</p>\n * <p><strong>Note:</strong> As well as the options described below, pass through attributes supported by\n * <a href=\"/presentation/dropdown\">NeonDropdown</a> to change the style of the dropdown button.</p>\n */\nexport default defineComponent({\n name: 'NeonDropdownMenu',\n components: {\n NeonDropdown,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * A list of menu items to render in the dropdown menu.\n */\n model: { type: Array as () => Array<NeonDropdownMenuItem>, required: true },\n /**\n * The size of the dropdown - Small, Medium or Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * The dropdown color.\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Whether the dropdown button is disabled or not.\n */\n disabled: { type: Boolean, default: false },\n /**\n * Instead of opening on click (default), open on hover.\n */\n openOnHover: { type: Boolean, default: false },\n },\n emits: [\n /**\n * emitted when the user clicks on a menu item.\n * @type {NeonDropdownMenuItem} the menu item the user clicked on.\n */\n 'click',\n /**\n * emitted on initialisation\n * @type {HTMLElement} the reference to the HTMLElement for the dropdown menu button.\n */\n 'button-ref',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const dropdown = ref<InstanceType<typeof NeonDropdown> | null>(null);\n const dropdownPlacement = ref<NeonDropdownPlacement | null>(null);\n const items = ref<Array<HTMLLIElement>>([]);\n const open = ref(false);\n const highlightedKey = ref<string | null>(null);\n const highlightedIndex = ref(-1);\n\n const changeHighlighted = (key: string) => {\n highlightedKey.value = key;\n highlightedIndex.value = props.model.findIndex((item) => item.key === key);\n };\n\n const onPlacement = (placement: NeonDropdownPlacement) => {\n dropdownPlacement.value = placement;\n };\n\n const isReverse = () => {\n switch (dropdownPlacement.value) {\n case NeonDropdownPlacement.TopLeft:\n case NeonDropdownPlacement.TopRight:\n case NeonDropdownPlacement.LeftBottom:\n case NeonDropdownPlacement.RightBottom:\n return true;\n }\n\n return false;\n };\n\n const onNavigate = () => {\n const element: HTMLElement | null = dropdown.value?.dropdownContent?.querySelector(\n '.neon-dropdown-menu__item--highlighted',\n ) as HTMLElement;\n\n if (element) {\n element.focus();\n NeonScrollUtils.scrollIntoView(element);\n }\n };\n\n const navigateBy = (offset: number, $event: KeyboardEvent) => {\n const newIndex = highlightedIndex.value + offset;\n if (newIndex >= 0 && newIndex <= props.model.length - 1) {\n highlightedIndex.value = newIndex;\n highlightedKey.value = props.model[highlightedIndex.value].key;\n $event.preventDefault();\n setTimeout(onNavigate);\n }\n };\n\n const keyboardHandler = ($event: KeyboardEvent) => {\n if (!props.disabled) {\n if (open.value) {\n switch ($event.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const reverseOffset = isReverse() ? -1 : 1;\n if ($event.code === 'ArrowUp') {\n navigateBy(-1 * reverseOffset, $event);\n } else {\n navigateBy(1 * reverseOffset, $event);\n }\n }\n break;\n case 'Enter':\n case 'Space':\n if (props.model[highlightedIndex.value] && !props.model[highlightedIndex.value].disabled) {\n clickItem(props.model[highlightedIndex.value]);\n $event.preventDefault();\n }\n break;\n case 'Tab':\n if (!$event.ctrlKey && !$event.metaKey && !$event.altKey) {\n open.value = false;\n }\n break;\n case 'Escape':\n open.value = false;\n break;\n }\n }\n }\n };\n\n const clickItem = (item: NeonDropdownMenuItem) => {\n if (!item.disabled) {\n if (item.href) {\n const anchor = items.value[highlightedIndex.value]?.firstElementChild as HTMLAnchorElement;\n anchor && anchor.click();\n } else {\n emit('click', item);\n }\n open.value = false;\n }\n };\n\n const onFocus = () => {\n if (props.openOnHover) {\n open.value = true;\n }\n };\n\n const onBlur = () => {\n if (props.openOnHover) {\n open.value = false;\n }\n };\n\n onMounted(() => {\n document.addEventListener('keydown', keyboardHandler);\n });\n\n onUnmounted(() => {\n document.removeEventListener('keydown', keyboardHandler);\n });\n\n watch(\n () => open.value,\n (open: boolean) => {\n if (open) {\n highlightedKey.value = props.model[0].key;\n highlightedIndex.value = 0;\n }\n },\n );\n\n return {\n dropdown,\n items,\n open,\n highlightedKey,\n highlightedIndex,\n attrs,\n emit,\n changeHighlighted,\n keyboardHandler,\n onBlur,\n onFocus,\n clickItem,\n navigateBy,\n onPlacement,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonDropdown","NeonIcon","NeonLink","NeonSize","NeonFunctionalColor","props","emit","attrs","useAttrs","dropdown","ref","dropdownPlacement","items","open","highlightedKey","highlightedIndex","changeHighlighted","key","item","onPlacement","placement","isReverse","NeonDropdownPlacement","onNavigate","element","_b","_a","NeonScrollUtils","navigateBy","offset","$event","newIndex","keyboardHandler","reverseOffset","clickItem","anchor","onFocus","onBlur","onMounted","onUnmounted","watch"],"mappings":"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"}
1
+ {"version":3,"file":"NeonDropdownMenu.es.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref, useAttrs, watch } from 'vue';\nimport type { NeonDropdownMenuItem } from '@/common/models/NeonDropdownMenuItem';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\nimport { NeonScrollUtils } from '@/common/utils/NeonScrollUtils';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\n\n/**\n * <p>A dropdown menu consisting of a button to open the menu and a list of menu items. Clicking on a menu item will\n * result in navigating to the provided URL or notifying the parent component via the @click event.</p>\n * <p><strong>Note:</strong> As well as the options described below, pass through attributes supported by\n * <a href=\"/presentation/dropdown\">NeonDropdown</a> to change the style of the dropdown button.</p>\n */\nexport default defineComponent({\n name: 'NeonDropdownMenu',\n components: {\n NeonDropdown,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * A list of menu items to render in the dropdown menu.\n */\n model: { type: Array as () => Array<NeonDropdownMenuItem>, required: true },\n /**\n * The size of the dropdown - Small, Medium or Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * The dropdown color.\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Whether the dropdown button is disabled or not.\n */\n disabled: { type: Boolean, default: false },\n /**\n * Placement of the dropdown contents.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Instead of opening on click (default), open on hover.\n */\n openOnHover: { type: Boolean, default: false },\n },\n emits: [\n /**\n * emitted when the user clicks on a menu item.\n * @type {NeonDropdownMenuItem} the menu item the user clicked on.\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const dropdown = ref<InstanceType<typeof NeonDropdown> | null>(null);\n const dropdownPlacement = ref<NeonDropdownPlacement | null>(null);\n const items = ref<Array<HTMLLIElement>>([]);\n const open = ref(false);\n const highlightedKey = ref<string | null>(null);\n const highlightedIndex = ref(-1);\n\n const changeHighlighted = (key: string) => {\n highlightedKey.value = key;\n highlightedIndex.value = props.model.findIndex((item) => item.key === key);\n };\n\n const onPlacement = (placement: NeonDropdownPlacement) => {\n dropdownPlacement.value = placement;\n };\n\n const isReverse = () => {\n switch (dropdownPlacement.value) {\n case NeonDropdownPlacement.TopLeft:\n case NeonDropdownPlacement.TopRight:\n case NeonDropdownPlacement.LeftBottom:\n case NeonDropdownPlacement.RightBottom:\n return true;\n }\n\n return false;\n };\n\n const onNavigate = () => {\n const element: HTMLElement | null = dropdown.value?.dropdownContent?.querySelector(\n '.neon-dropdown-menu__item--highlighted',\n ) as HTMLElement;\n\n if (element) {\n element.focus();\n NeonScrollUtils.scrollIntoView(element);\n }\n };\n\n const navigateBy = (offset: number, $event: KeyboardEvent) => {\n const newIndex = highlightedIndex.value + offset;\n if (newIndex >= 0 && newIndex <= props.model.length - 1) {\n highlightedIndex.value = newIndex;\n highlightedKey.value = props.model[highlightedIndex.value].key;\n $event.preventDefault();\n setTimeout(onNavigate);\n }\n };\n\n const keyboardHandler = ($event: KeyboardEvent) => {\n if (!props.disabled) {\n if (open.value) {\n switch ($event.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const reverseOffset = isReverse() ? -1 : 1;\n if ($event.code === 'ArrowUp') {\n navigateBy(-1 * reverseOffset, $event);\n } else {\n navigateBy(1 * reverseOffset, $event);\n }\n }\n break;\n case 'Enter':\n case 'Space':\n if (props.model[highlightedIndex.value] && !props.model[highlightedIndex.value].disabled) {\n clickItem(props.model[highlightedIndex.value]);\n $event.preventDefault();\n }\n break;\n case 'Tab':\n if (!$event.ctrlKey && !$event.metaKey && !$event.altKey) {\n open.value = false;\n }\n break;\n case 'Escape':\n open.value = false;\n break;\n }\n }\n }\n };\n\n const clickItem = (item: NeonDropdownMenuItem) => {\n if (!item.disabled) {\n if (item.href) {\n const anchor = items.value[highlightedIndex.value]?.firstElementChild as HTMLAnchorElement;\n anchor && anchor.click();\n } else {\n emit('click', item);\n }\n open.value = false;\n }\n };\n\n const onFocus = () => {\n if (props.openOnHover) {\n open.value = true;\n }\n };\n\n const onBlur = () => {\n if (props.openOnHover) {\n open.value = false;\n }\n };\n\n onMounted(() => {\n document.addEventListener('keydown', keyboardHandler);\n });\n\n onUnmounted(() => {\n document.removeEventListener('keydown', keyboardHandler);\n });\n\n watch(\n () => open.value,\n (open: boolean) => {\n if (open) {\n highlightedKey.value = props.model[0].key;\n highlightedIndex.value = 0;\n }\n },\n );\n\n return {\n dropdown,\n items,\n open,\n highlightedKey,\n highlightedIndex,\n attrs,\n emit,\n changeHighlighted,\n keyboardHandler,\n onBlur,\n onFocus,\n clickItem,\n navigateBy,\n onPlacement,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonDropdown","NeonIcon","NeonLink","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","dropdown","ref","dropdownPlacement","items","open","highlightedKey","highlightedIndex","changeHighlighted","key","item","onPlacement","placement","isReverse","onNavigate","element","_b","_a","NeonScrollUtils","navigateBy","offset","$event","newIndex","keyboardHandler","reverseOffset","clickItem","anchor","onFocus","onBlur","onMounted","onUnmounted","watch"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const a=require("./NeonDropdownMenu.cjs.js"),e=require("vue"),i=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),p={class:"no-style neon-dropdown-menu__items",role:"menu"},u=["onMouseover"],c={key:0,class:"neon-dropdown-menu__item-container"},m={class:"neon-dropdown-menu__item-label"},_={class:"neon-dropdown-menu__item-label"},k=["onClick"],w={class:"neon-dropdown-menu__item-label"};function b(n,l,y,g,v,f){const r=e.resolveComponent("neon-icon"),d=e.resolveComponent("neon-link"),s=e.resolveComponent("neon-dropdown");return e.openBlock(),e.createBlock(s,e.mergeProps({ref:"dropdown",modelValue:n.open,"onUpdate:modelValue":l[0]||(l[0]=o=>n.open=o),class:[`neon-dropdown-menu--${n.color}`,"neon-dropdown-menu"],color:n.color,disabled:n.disabled,openOnHover:n.openOnHover,size:n.size},n.attrs,{onBlur:l[1]||(l[1]=o=>n.onBlur()),onButton:l[2]||(l[2]=o=>n.emit("button-ref",o)),onFocus:l[3]||(l[3]=o=>n.onFocus()),"onUpdate:modelValue":l[4]||(l[4]=o=>n.open=o),onDropdownPlacement:n.onPlacement}),{default:e.withCtx(()=>[e.createElementVNode("ul",p,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.model,o=>(e.openBlock(),e.createElementBlock("li",{key:o.key,ref_for:!0,ref:"items",class:e.normalizeClass([[{"neon-dropdown-menu__item--disabled":o.disabled,"neon-dropdown-menu__item--separator-before":o.separatorBefore,"neon-dropdown-menu__item--group-title":o.isGroup,"neon-dropdown-menu__item--grouped":o.grouped,"neon-dropdown-menu__item--highlighted":o.key===n.highlightedKey},`neon-dropdown-menu__item--${n.size}`],"neon-dropdown-menu__item"]),tabindex:"0",onMouseover:t=>n.changeHighlighted(o.key)},[o.isGroup?(e.openBlock(),e.createElementBlock("div",c,[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",m,e.toDisplayString(o.label),1)])):o.href&&!o.disabled?(e.openBlock(),e.createBlock(d,{key:1,href:o.href,"no-style":!0,"outline-style":"none",role:"menuitem"},{default:e.withCtx(()=>[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",_,e.toDisplayString(o.label),1)]),_:2},1032,["href"])):(e.openBlock(),e.createElementBlock("div",{key:2,class:"neon-dropdown-menu__item-container",role:"menuitem",onClick:t=>n.clickItem(o)},[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",w,e.toDisplayString(o.label),1)],8,k))],42,u))),128))])]),_:1},16,["modelValue","class","color","disabled","openOnHover","size","onDropdownPlacement"])}const B=i(a,[["render",b]]);module.exports=B;
1
+ "use strict";const a=require("./NeonDropdownMenu.cjs.js"),e=require("vue"),p=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),i={class:"no-style neon-dropdown-menu__items",role:"menu"},c=["onMouseover"],u={key:0,class:"neon-dropdown-menu__item-container"},m={class:"neon-dropdown-menu__item-label"},_={class:"neon-dropdown-menu__item-label"},k=["onClick"],w={class:"neon-dropdown-menu__item-label"};function b(n,l,y,g,v,h){const r=e.resolveComponent("neon-icon"),d=e.resolveComponent("neon-link"),s=e.resolveComponent("neon-dropdown");return e.openBlock(),e.createBlock(s,e.mergeProps({ref:"dropdown",modelValue:n.open,"onUpdate:modelValue":l[0]||(l[0]=o=>n.open=o),class:[`neon-dropdown-menu--${n.color}`,"neon-dropdown-menu"],color:n.color,disabled:n.disabled,openOnHover:n.openOnHover,placement:n.placement,size:n.size},n.attrs,{onBlur:l[1]||(l[1]=o=>n.onBlur()),onFocus:l[2]||(l[2]=o=>n.onFocus()),"onUpdate:modelValue":l[3]||(l[3]=o=>n.open=o),onDropdownPlacement:n.onPlacement}),{default:e.withCtx(()=>[e.createElementVNode("ul",i,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.model,o=>(e.openBlock(),e.createElementBlock("li",{key:o.key,ref_for:!0,ref:"items",class:e.normalizeClass([[{"neon-dropdown-menu__item--disabled":o.disabled,"neon-dropdown-menu__item--separator-before":o.separatorBefore,"neon-dropdown-menu__item--group-title":o.isGroup,"neon-dropdown-menu__item--grouped":o.grouped,"neon-dropdown-menu__item--highlighted":o.key===n.highlightedKey},`neon-dropdown-menu__item--${n.size}`],"neon-dropdown-menu__item"]),tabindex:"0",onMouseover:t=>n.changeHighlighted(o.key)},[o.isGroup?(e.openBlock(),e.createElementBlock("div",u,[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",m,e.toDisplayString(o.label),1)])):o.href&&!o.disabled?(e.openBlock(),e.createBlock(d,{key:1,href:o.href,"no-style":!0,"outline-style":"none",role:"menuitem"},{default:e.withCtx(()=>[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",_,e.toDisplayString(o.label),1)]),_:2},1032,["href"])):(e.openBlock(),e.createElementBlock("div",{key:2,class:"neon-dropdown-menu__item-container",role:"menuitem",onClick:t=>n.clickItem(o)},[o.icon?(e.openBlock(),e.createBlock(r,{key:0,disabled:o.disabled,name:o.icon,class:"neon-dropdown-menu__item-icon"},null,8,["disabled","name"])):e.createCommentVNode("",!0),e.createElementVNode("span",w,e.toDisplayString(o.label),1)],8,k))],42,c))),128))])]),_:1},16,["modelValue","class","color","disabled","openOnHover","placement","size","onDropdownPlacement"])}const B=p(a,[["render",b]]);module.exports=B;
2
2
  //# sourceMappingURL=NeonDropdownMenu.vue.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDropdownMenu.vue.cjs.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.vue"],"sourcesContent":["<template>\n <neon-dropdown\n ref=\"dropdown\"\n v-model=\"open\"\n :class=\"`neon-dropdown-menu--${color}`\"\n :color=\"color\"\n :disabled=\"disabled\"\n :openOnHover=\"openOnHover\"\n :size=\"size\"\n class=\"neon-dropdown-menu\"\n v-bind=\"attrs\"\n @blur=\"onBlur()\"\n @button=\"emit('button-ref', $event)\"\n @focus=\"onFocus()\"\n @update:modelValue=\"open = $event\"\n @dropdown-placement=\"onPlacement\"\n >\n <ul class=\"no-style neon-dropdown-menu__items\" role=\"menu\">\n <li\n v-for=\"item in model\"\n :key=\"item.key\"\n ref=\"items\"\n :class=\"[\n {\n 'neon-dropdown-menu__item--disabled': item.disabled,\n 'neon-dropdown-menu__item--separator-before': item.separatorBefore,\n 'neon-dropdown-menu__item--group-title': item.isGroup,\n 'neon-dropdown-menu__item--grouped': item.grouped,\n 'neon-dropdown-menu__item--highlighted': item.key === highlightedKey,\n },\n `neon-dropdown-menu__item--${size}`,\n ]\"\n class=\"neon-dropdown-menu__item\"\n tabindex=\"0\"\n @mouseover=\"changeHighlighted(item.key)\"\n >\n <div v-if=\"item.isGroup\" class=\"neon-dropdown-menu__item-container\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n <neon-link\n v-else-if=\"item.href && !item.disabled\"\n :href=\"item.href\"\n :no-style=\"true\"\n outline-style=\"none\"\n role=\"menuitem\"\n >\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </neon-link>\n <div v-else class=\"neon-dropdown-menu__item-container\" role=\"menuitem\" @click=\"clickItem(item)\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n </li>\n </ul>\n </neon-dropdown>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDropdownMenu.ts\"></script>\n"],"names":["_hoisted_4","_hoisted_5","_hoisted_7","_openBlock","_createBlock","_component_neon_dropdown","_mergeProps","_ctx","$event","_cache","_createElementVNode","_hoisted_1","_createElementBlock","_Fragment","_renderList","item","_normalizeClass","_hoisted_3","_component_neon_icon","_toDisplayString","_component_neon_link"],"mappings":"8IAiBQ,MAAM,qCAAqC,KAAK,mCAmBvB,MAAM,sCAOvBA,EAAA,CAAA,MAAM,gCAAgC,EAetCC,EAAA,CAAA,MAAM,gCAAgC,gBAStCC,EAAA,CAAA,MAAM,gCAAgC,0IAlEpD,OAAAC,YAAA,EAAAC,cAsEgBC,EAtEhBC,EAAAA,WAsEgB,CArEd,IAAI,sBACKC,EAAA,0CAAAA,EAAA,KAAIC,GACZ,MAAK,CAAA,uBAAyBD,EAAA,KAAK,GAK9B,oBAAoB,EAJzB,MAAOA,EAAA,MACP,SAAUA,EAAA,SACV,YAAaA,EAAA,YACb,KAAMA,EAAA,MAECA,EAAA,MAAK,CACZ,sBAAMA,EAAA,OAAM,GACZ,SAAME,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAD,GAAED,EAAA,KAAI,aAAeC,CAAM,GACjC,uBAAOD,EAAA,QAAO,GACd,sBAAiBE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAD,GAAED,EAAA,KAAOC,GAC1B,oBAAoBD,EAAA,iCAErB,IAqDK,CArDLG,EAAAA,mBAqDK,KArDLC,EAqDK,kBApDHC,EAAAA,mBAmDKC,EAAAA,SAAA,KAAAC,EAAAA,WAlDYP,EAAA,MAARQ,kBADTH,EAAAA,mBAmDK,KAAA,CAjDF,IAAKG,EAAK,eACX,IAAI,QACH,MAAKC,EAAAA,eAAA,CAAA,EAAkE,qCAAAD,EAAK,SAAoE,6CAAAA,EAAK,gBAAsE,wCAAAA,EAAK,QAA0D,oCAAAA,EAAK,gDAA8DA,EAAK,MAAQR,EAAA,6CAAoEA,EAAA,IAAI,IAU7a,0BAA0B,CAAA,EAChC,SAAS,IACR,YAASC,GAAED,EAAA,kBAAkBQ,EAAK,GAAG,IAE3BA,EAAK,SAAhBZ,EAAAA,YAAAS,EAAAA,mBAQM,MARNK,EAQM,CANIF,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApEV,EAAoEmB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA,KAG/CA,EAAK,MAAI,CAAKA,EAAK,wBADhCX,EAAAA,YAcYgB,EAAA,OAZT,KAAML,EAAK,KACX,WAAU,GACX,gBAAc,OACd,KAAK,+BAEL,IAKE,CAJMA,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApET,EAAoEkB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA,wCAE5DH,EAAAA,mBAQM,MAAA,OARM,MAAM,qCAAqC,KAAK,WAAY,QAAKJ,GAAED,EAAA,UAAUQ,CAAI,IAEnFA,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApER,EAAoEiB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA"}
1
+ {"version":3,"file":"NeonDropdownMenu.vue.cjs.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.vue"],"sourcesContent":["<template>\n <neon-dropdown\n ref=\"dropdown\"\n v-model=\"open\"\n :class=\"`neon-dropdown-menu--${color}`\"\n :color=\"color\"\n :disabled=\"disabled\"\n :openOnHover=\"openOnHover\"\n :placement=\"placement\"\n :size=\"size\"\n class=\"neon-dropdown-menu\"\n v-bind=\"attrs\"\n @blur=\"onBlur()\"\n @focus=\"onFocus()\"\n @update:modelValue=\"open = $event\"\n @dropdown-placement=\"onPlacement\"\n >\n <ul class=\"no-style neon-dropdown-menu__items\" role=\"menu\">\n <li\n v-for=\"item in model\"\n :key=\"item.key\"\n ref=\"items\"\n :class=\"[\n {\n 'neon-dropdown-menu__item--disabled': item.disabled,\n 'neon-dropdown-menu__item--separator-before': item.separatorBefore,\n 'neon-dropdown-menu__item--group-title': item.isGroup,\n 'neon-dropdown-menu__item--grouped': item.grouped,\n 'neon-dropdown-menu__item--highlighted': item.key === highlightedKey,\n },\n `neon-dropdown-menu__item--${size}`,\n ]\"\n class=\"neon-dropdown-menu__item\"\n tabindex=\"0\"\n @mouseover=\"changeHighlighted(item.key)\"\n >\n <div v-if=\"item.isGroup\" class=\"neon-dropdown-menu__item-container\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n <neon-link\n v-else-if=\"item.href && !item.disabled\"\n :href=\"item.href\"\n :no-style=\"true\"\n outline-style=\"none\"\n role=\"menuitem\"\n >\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </neon-link>\n <div v-else class=\"neon-dropdown-menu__item-container\" role=\"menuitem\" @click=\"clickItem(item)\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n </li>\n </ul>\n </neon-dropdown>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDropdownMenu.ts\"></script>\n"],"names":["_hoisted_4","_hoisted_5","_hoisted_7","_openBlock","_createBlock","_component_neon_dropdown","_mergeProps","_ctx","$event","_cache","_createElementVNode","_hoisted_1","_createElementBlock","_Fragment","_renderList","item","_normalizeClass","_hoisted_3","_component_neon_icon","_toDisplayString","_component_neon_link"],"mappings":"8IAiBQ,MAAM,qCAAqC,KAAK,mCAmBvB,MAAM,sCAOvBA,EAAA,CAAA,MAAM,gCAAgC,EAetCC,EAAA,CAAA,MAAM,gCAAgC,gBAStCC,EAAA,CAAA,MAAM,gCAAgC,0IAlEpD,OAAAC,YAAA,EAAAC,cAsEgBC,EAtEhBC,EAAAA,WAsEgB,CArEd,IAAI,sBACKC,EAAA,0CAAAA,EAAA,KAAIC,GACZ,MAAK,CAAA,uBAAyBD,EAAA,KAAK,GAM9B,oBAAoB,EALzB,MAAOA,EAAA,MACP,SAAUA,EAAA,SACV,YAAaA,EAAA,YACb,UAAWA,EAAA,UACX,KAAMA,EAAA,MAECA,EAAA,MAAK,CACZ,sBAAMA,EAAA,OAAM,GACZ,uBAAOA,EAAA,QAAO,GACd,sBAAiBE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAD,GAAED,EAAA,KAAOC,GAC1B,oBAAoBD,EAAA,iCAErB,IAqDK,CArDLG,EAAAA,mBAqDK,KArDLC,EAqDK,kBApDHC,EAAAA,mBAmDKC,EAAAA,SAAA,KAAAC,EAAAA,WAlDYP,EAAA,MAARQ,kBADTH,EAAAA,mBAmDK,KAAA,CAjDF,IAAKG,EAAK,eACX,IAAI,QACH,MAAKC,EAAAA,eAAA,CAAA,EAAkE,qCAAAD,EAAK,SAAoE,6CAAAA,EAAK,gBAAsE,wCAAAA,EAAK,QAA0D,oCAAAA,EAAK,gDAA8DA,EAAK,MAAQR,EAAA,6CAAoEA,EAAA,IAAI,IAU7a,0BAA0B,CAAA,EAChC,SAAS,IACR,YAASC,GAAED,EAAA,kBAAkBQ,EAAK,GAAG,IAE3BA,EAAK,SAAhBZ,EAAAA,YAAAS,EAAAA,mBAQM,MARNK,EAQM,CANIF,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApEV,EAAoEmB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA,KAG/CA,EAAK,MAAI,CAAKA,EAAK,wBADhCX,EAAAA,YAcYgB,EAAA,OAZT,KAAML,EAAK,KACX,WAAU,GACX,gBAAc,OACd,KAAK,+BAEL,IAKE,CAJMA,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApET,EAAoEkB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA,wCAE5DH,EAAAA,mBAQM,MAAA,OARM,MAAM,qCAAqC,KAAK,WAAY,QAAKJ,GAAED,EAAA,UAAUQ,CAAI,IAEnFA,EAAK,oBADbX,EAAAA,YAKEc,EAAA,OAHC,SAAUH,EAAK,SACf,KAAMA,EAAK,KACZ,MAAM,0FAERL,EAAAA,mBAAoE,OAApER,EAAoEiB,EAAAA,gBAApBJ,EAAK,KAAK,EAAA,CAAA"}
@@ -1,34 +1,34 @@
1
1
  import w from "./NeonDropdownMenu.es.js";
2
- import { resolveComponent as i, openBlock as d, createBlock as r, mergeProps as b, withCtx as u, createElementVNode as l, createElementBlock as s, Fragment as f, renderList as k, normalizeClass as y, createCommentVNode as t, toDisplayString as p } from "vue";
3
- import g from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
- const h = {
2
+ import { resolveComponent as i, openBlock as o, createBlock as l, mergeProps as b, withCtx as u, createElementVNode as r, createElementBlock as s, Fragment as f, renderList as k, normalizeClass as y, createCommentVNode as t, toDisplayString as p } from "vue";
3
+ import h from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
+ const g = {
5
5
  class: "no-style neon-dropdown-menu__items",
6
6
  role: "menu"
7
7
  }, v = ["onMouseover"], $ = {
8
8
  key: 0,
9
9
  class: "neon-dropdown-menu__item-container"
10
10
  }, B = { class: "neon-dropdown-menu__item-label" }, C = { class: "neon-dropdown-menu__item-label" }, V = ["onClick"], z = { class: "neon-dropdown-menu__item-label" };
11
- function D(n, o, H, P, F, M) {
11
+ function D(n, d, H, P, F, M) {
12
12
  const a = i("neon-icon"), m = i("neon-link"), _ = i("neon-dropdown");
13
- return d(), r(_, b({
13
+ return o(), l(_, b({
14
14
  ref: "dropdown",
15
15
  modelValue: n.open,
16
- "onUpdate:modelValue": o[0] || (o[0] = (e) => n.open = e),
16
+ "onUpdate:modelValue": d[0] || (d[0] = (e) => n.open = e),
17
17
  class: [`neon-dropdown-menu--${n.color}`, "neon-dropdown-menu"],
18
18
  color: n.color,
19
19
  disabled: n.disabled,
20
20
  openOnHover: n.openOnHover,
21
+ placement: n.placement,
21
22
  size: n.size
22
23
  }, n.attrs, {
23
- onBlur: o[1] || (o[1] = (e) => n.onBlur()),
24
- onButton: o[2] || (o[2] = (e) => n.emit("button-ref", e)),
25
- onFocus: o[3] || (o[3] = (e) => n.onFocus()),
26
- "onUpdate:modelValue": o[4] || (o[4] = (e) => n.open = e),
24
+ onBlur: d[1] || (d[1] = (e) => n.onBlur()),
25
+ onFocus: d[2] || (d[2] = (e) => n.onFocus()),
26
+ "onUpdate:modelValue": d[3] || (d[3] = (e) => n.open = e),
27
27
  onDropdownPlacement: n.onPlacement
28
28
  }), {
29
29
  default: u(() => [
30
- l("ul", h, [
31
- (d(!0), s(f, null, k(n.model, (e) => (d(), s("li", {
30
+ r("ul", g, [
31
+ (o(!0), s(f, null, k(n.model, (e) => (o(), s("li", {
32
32
  key: e.key,
33
33
  ref_for: !0,
34
34
  ref: "items",
@@ -45,15 +45,15 @@ function D(n, o, H, P, F, M) {
45
45
  tabindex: "0",
46
46
  onMouseover: (c) => n.changeHighlighted(e.key)
47
47
  }, [
48
- e.isGroup ? (d(), s("div", $, [
49
- e.icon ? (d(), r(a, {
48
+ e.isGroup ? (o(), s("div", $, [
49
+ e.icon ? (o(), l(a, {
50
50
  key: 0,
51
51
  disabled: e.disabled,
52
52
  name: e.icon,
53
53
  class: "neon-dropdown-menu__item-icon"
54
54
  }, null, 8, ["disabled", "name"])) : t("", !0),
55
- l("span", B, p(e.label), 1)
56
- ])) : e.href && !e.disabled ? (d(), r(m, {
55
+ r("span", B, p(e.label), 1)
56
+ ])) : e.href && !e.disabled ? (o(), l(m, {
57
57
  key: 1,
58
58
  href: e.href,
59
59
  "no-style": !0,
@@ -61,36 +61,36 @@ function D(n, o, H, P, F, M) {
61
61
  role: "menuitem"
62
62
  }, {
63
63
  default: u(() => [
64
- e.icon ? (d(), r(a, {
64
+ e.icon ? (o(), l(a, {
65
65
  key: 0,
66
66
  disabled: e.disabled,
67
67
  name: e.icon,
68
68
  class: "neon-dropdown-menu__item-icon"
69
69
  }, null, 8, ["disabled", "name"])) : t("", !0),
70
- l("span", C, p(e.label), 1)
70
+ r("span", C, p(e.label), 1)
71
71
  ]),
72
72
  _: 2
73
- }, 1032, ["href"])) : (d(), s("div", {
73
+ }, 1032, ["href"])) : (o(), s("div", {
74
74
  key: 2,
75
75
  class: "neon-dropdown-menu__item-container",
76
76
  role: "menuitem",
77
77
  onClick: (c) => n.clickItem(e)
78
78
  }, [
79
- e.icon ? (d(), r(a, {
79
+ e.icon ? (o(), l(a, {
80
80
  key: 0,
81
81
  disabled: e.disabled,
82
82
  name: e.icon,
83
83
  class: "neon-dropdown-menu__item-icon"
84
84
  }, null, 8, ["disabled", "name"])) : t("", !0),
85
- l("span", z, p(e.label), 1)
85
+ r("span", z, p(e.label), 1)
86
86
  ], 8, V))
87
87
  ], 42, v))), 128))
88
88
  ])
89
89
  ]),
90
90
  _: 1
91
- }, 16, ["modelValue", "class", "color", "disabled", "openOnHover", "size", "onDropdownPlacement"]);
91
+ }, 16, ["modelValue", "class", "color", "disabled", "openOnHover", "placement", "size", "onDropdownPlacement"]);
92
92
  }
93
- const G = /* @__PURE__ */ g(w, [["render", D]]);
93
+ const G = /* @__PURE__ */ h(w, [["render", D]]);
94
94
  export {
95
95
  G as default
96
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDropdownMenu.vue.es.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.vue"],"sourcesContent":["<template>\n <neon-dropdown\n ref=\"dropdown\"\n v-model=\"open\"\n :class=\"`neon-dropdown-menu--${color}`\"\n :color=\"color\"\n :disabled=\"disabled\"\n :openOnHover=\"openOnHover\"\n :size=\"size\"\n class=\"neon-dropdown-menu\"\n v-bind=\"attrs\"\n @blur=\"onBlur()\"\n @button=\"emit('button-ref', $event)\"\n @focus=\"onFocus()\"\n @update:modelValue=\"open = $event\"\n @dropdown-placement=\"onPlacement\"\n >\n <ul class=\"no-style neon-dropdown-menu__items\" role=\"menu\">\n <li\n v-for=\"item in model\"\n :key=\"item.key\"\n ref=\"items\"\n :class=\"[\n {\n 'neon-dropdown-menu__item--disabled': item.disabled,\n 'neon-dropdown-menu__item--separator-before': item.separatorBefore,\n 'neon-dropdown-menu__item--group-title': item.isGroup,\n 'neon-dropdown-menu__item--grouped': item.grouped,\n 'neon-dropdown-menu__item--highlighted': item.key === highlightedKey,\n },\n `neon-dropdown-menu__item--${size}`,\n ]\"\n class=\"neon-dropdown-menu__item\"\n tabindex=\"0\"\n @mouseover=\"changeHighlighted(item.key)\"\n >\n <div v-if=\"item.isGroup\" class=\"neon-dropdown-menu__item-container\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n <neon-link\n v-else-if=\"item.href && !item.disabled\"\n :href=\"item.href\"\n :no-style=\"true\"\n outline-style=\"none\"\n role=\"menuitem\"\n >\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </neon-link>\n <div v-else class=\"neon-dropdown-menu__item-container\" role=\"menuitem\" @click=\"clickItem(item)\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n </li>\n </ul>\n </neon-dropdown>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDropdownMenu.ts\"></script>\n"],"names":["_hoisted_4","_hoisted_5","_hoisted_7","_openBlock","_createBlock","_component_neon_dropdown","_mergeProps","_ctx","$event","_cache","_createElementVNode","_hoisted_1","_createElementBlock","_Fragment","_renderList","item","_normalizeClass","_hoisted_3","_component_neon_icon","_toDisplayString","_component_neon_link"],"mappings":";;;;EAiBQ,OAAM;AAAA,EAAqC,MAAK;;;EAmBvB,OAAM;GAOvBA,IAAA,EAAA,OAAM,iCAAgC,GAetCC,IAAA,EAAA,OAAM,iCAAgC,oBAStCC,IAAA,EAAA,OAAM,iCAAgC;;;AAlEpD,SAAAC,EAAA,GAAAC,EAsEgBC,GAtEhBC,EAsEgB;AAAA,IArEd,KAAI;AAAA,gBACKC,EAAA;AAAA,kDAAAA,EAAA,OAAIC;AAAA,IACZ,OAAK,CAAA,uBAAyBD,EAAA,KAAK,IAK9B,oBAAoB;AAAA,IAJzB,OAAOA,EAAA;AAAA,IACP,UAAUA,EAAA;AAAA,IACV,aAAaA,EAAA;AAAA,IACb,MAAMA,EAAA;AAAA,KAECA,EAAA,OAAK;AAAA,IACZ,+BAAMA,EAAA,OAAM;AAAA,IACZ,UAAME,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAD,MAAED,EAAA,KAAI,cAAeC,CAAM;AAAA,IACjC,gCAAOD,EAAA,QAAO;AAAA,IACd,uBAAiBE,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAD,MAAED,EAAA,OAAOC;AAAA,IAC1B,qBAAoBD,EAAA;AAAA;eAErB,MAqDK;AAAA,MArDLG,EAqDK,MArDLC,GAqDK;AAAA,gBApDHC,EAmDKC,GAAA,MAAAC,EAlDYP,EAAA,OAAK,CAAbQ,YADTH,EAmDK,MAAA;AAAA,UAjDF,KAAKG,EAAK;AAAA;UACX,KAAI;AAAA,UACH,OAAKC,EAAA,CAAA;AAAA;cAAkE,sCAAAD,EAAK;AAAA,cAAoE,8CAAAA,EAAK;AAAA,cAAsE,yCAAAA,EAAK;AAAA,cAA0D,qCAAAA,EAAK;AAAA,uDAA8DA,EAAK,QAAQR,EAAA;AAAA;yCAAoEA,EAAA,IAAI;AAAA,aAU7a,0BAA0B,CAAA;AAAA,UAChC,UAAS;AAAA,UACR,aAAS,CAAAC,MAAED,EAAA,kBAAkBQ,EAAK,GAAG;AAAA;UAE3BA,EAAK,WAAhBZ,KAAAS,EAQM,OARNK,GAQM;AAAA,YANIF,EAAK,aADbX,EAKEc,GAAA;AAAA;cAHC,UAAUH,EAAK;AAAA,cACf,MAAMA,EAAK;AAAA,cACZ,OAAM;AAAA;YAERL,EAAoE,QAApEV,GAAoEmB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA,gBAG/CA,EAAK,QAAI,CAAKA,EAAK,iBADhCX,EAcYgB,GAAA;AAAA;YAZT,MAAML,EAAK;AAAA,YACX,YAAU;AAAA,YACX,iBAAc;AAAA,YACd,MAAK;AAAA;uBAEL,MAKE;AAAA,cAJMA,EAAK,aADbX,EAKEc,GAAA;AAAA;gBAHC,UAAUH,EAAK;AAAA,gBACf,MAAMA,EAAK;AAAA,gBACZ,OAAM;AAAA;cAERL,EAAoE,QAApET,GAAoEkB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA;;sCAE5DH,EAQM,OAAA;AAAA;YARM,OAAM;AAAA,YAAqC,MAAK;AAAA,YAAY,SAAK,CAAAJ,MAAED,EAAA,UAAUQ,CAAI;AAAA;YAEnFA,EAAK,aADbX,EAKEc,GAAA;AAAA;cAHC,UAAUH,EAAK;AAAA,cACf,MAAMA,EAAK;AAAA,cACZ,OAAM;AAAA;YAERL,EAAoE,QAApER,GAAoEiB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"NeonDropdownMenu.vue.es.js","sources":["../../../../src/components/navigation/dropdown-menu/NeonDropdownMenu.vue"],"sourcesContent":["<template>\n <neon-dropdown\n ref=\"dropdown\"\n v-model=\"open\"\n :class=\"`neon-dropdown-menu--${color}`\"\n :color=\"color\"\n :disabled=\"disabled\"\n :openOnHover=\"openOnHover\"\n :placement=\"placement\"\n :size=\"size\"\n class=\"neon-dropdown-menu\"\n v-bind=\"attrs\"\n @blur=\"onBlur()\"\n @focus=\"onFocus()\"\n @update:modelValue=\"open = $event\"\n @dropdown-placement=\"onPlacement\"\n >\n <ul class=\"no-style neon-dropdown-menu__items\" role=\"menu\">\n <li\n v-for=\"item in model\"\n :key=\"item.key\"\n ref=\"items\"\n :class=\"[\n {\n 'neon-dropdown-menu__item--disabled': item.disabled,\n 'neon-dropdown-menu__item--separator-before': item.separatorBefore,\n 'neon-dropdown-menu__item--group-title': item.isGroup,\n 'neon-dropdown-menu__item--grouped': item.grouped,\n 'neon-dropdown-menu__item--highlighted': item.key === highlightedKey,\n },\n `neon-dropdown-menu__item--${size}`,\n ]\"\n class=\"neon-dropdown-menu__item\"\n tabindex=\"0\"\n @mouseover=\"changeHighlighted(item.key)\"\n >\n <div v-if=\"item.isGroup\" class=\"neon-dropdown-menu__item-container\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n <neon-link\n v-else-if=\"item.href && !item.disabled\"\n :href=\"item.href\"\n :no-style=\"true\"\n outline-style=\"none\"\n role=\"menuitem\"\n >\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </neon-link>\n <div v-else class=\"neon-dropdown-menu__item-container\" role=\"menuitem\" @click=\"clickItem(item)\">\n <neon-icon\n v-if=\"item.icon\"\n :disabled=\"item.disabled\"\n :name=\"item.icon\"\n class=\"neon-dropdown-menu__item-icon\"\n />\n <span class=\"neon-dropdown-menu__item-label\">{{ item.label }}</span>\n </div>\n </li>\n </ul>\n </neon-dropdown>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDropdownMenu.ts\"></script>\n"],"names":["_hoisted_4","_hoisted_5","_hoisted_7","_openBlock","_createBlock","_component_neon_dropdown","_mergeProps","_ctx","$event","_cache","_createElementVNode","_hoisted_1","_createElementBlock","_Fragment","_renderList","item","_normalizeClass","_hoisted_3","_component_neon_icon","_toDisplayString","_component_neon_link"],"mappings":";;;;EAiBQ,OAAM;AAAA,EAAqC,MAAK;;;EAmBvB,OAAM;GAOvBA,IAAA,EAAA,OAAM,iCAAgC,GAetCC,IAAA,EAAA,OAAM,iCAAgC,oBAStCC,IAAA,EAAA,OAAM,iCAAgC;;;AAlEpD,SAAAC,EAAA,GAAAC,EAsEgBC,GAtEhBC,EAsEgB;AAAA,IArEd,KAAI;AAAA,gBACKC,EAAA;AAAA,kDAAAA,EAAA,OAAIC;AAAA,IACZ,OAAK,CAAA,uBAAyBD,EAAA,KAAK,IAM9B,oBAAoB;AAAA,IALzB,OAAOA,EAAA;AAAA,IACP,UAAUA,EAAA;AAAA,IACV,aAAaA,EAAA;AAAA,IACb,WAAWA,EAAA;AAAA,IACX,MAAMA,EAAA;AAAA,KAECA,EAAA,OAAK;AAAA,IACZ,+BAAMA,EAAA,OAAM;AAAA,IACZ,gCAAOA,EAAA,QAAO;AAAA,IACd,uBAAiBE,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAD,MAAED,EAAA,OAAOC;AAAA,IAC1B,qBAAoBD,EAAA;AAAA;eAErB,MAqDK;AAAA,MArDLG,EAqDK,MArDLC,GAqDK;AAAA,gBApDHC,EAmDKC,GAAA,MAAAC,EAlDYP,EAAA,OAAK,CAAbQ,YADTH,EAmDK,MAAA;AAAA,UAjDF,KAAKG,EAAK;AAAA;UACX,KAAI;AAAA,UACH,OAAKC,EAAA,CAAA;AAAA;cAAkE,sCAAAD,EAAK;AAAA,cAAoE,8CAAAA,EAAK;AAAA,cAAsE,yCAAAA,EAAK;AAAA,cAA0D,qCAAAA,EAAK;AAAA,uDAA8DA,EAAK,QAAQR,EAAA;AAAA;yCAAoEA,EAAA,IAAI;AAAA,aAU7a,0BAA0B,CAAA;AAAA,UAChC,UAAS;AAAA,UACR,aAAS,CAAAC,MAAED,EAAA,kBAAkBQ,EAAK,GAAG;AAAA;UAE3BA,EAAK,WAAhBZ,KAAAS,EAQM,OARNK,GAQM;AAAA,YANIF,EAAK,aADbX,EAKEc,GAAA;AAAA;cAHC,UAAUH,EAAK;AAAA,cACf,MAAMA,EAAK;AAAA,cACZ,OAAM;AAAA;YAERL,EAAoE,QAApEV,GAAoEmB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA,gBAG/CA,EAAK,QAAI,CAAKA,EAAK,iBADhCX,EAcYgB,GAAA;AAAA;YAZT,MAAML,EAAK;AAAA,YACX,YAAU;AAAA,YACX,iBAAc;AAAA,YACd,MAAK;AAAA;uBAEL,MAKE;AAAA,cAJMA,EAAK,aADbX,EAKEc,GAAA;AAAA;gBAHC,UAAUH,EAAK;AAAA,gBACf,MAAMA,EAAK;AAAA,gBACZ,OAAM;AAAA;cAERL,EAAoE,QAApET,GAAoEkB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA;;sCAE5DH,EAQM,OAAA;AAAA;YARM,OAAM;AAAA,YAAqC,MAAK;AAAA,YAAY,SAAK,CAAAJ,MAAED,EAAA,UAAUQ,CAAI;AAAA;YAEnFA,EAAK,aADbX,EAKEc,GAAA;AAAA;cAHC,UAAUH,EAAK;AAAA,cACf,MAAMA,EAAK;AAAA,cACZ,OAAM;AAAA;YAERL,EAAoE,QAApER,GAAoEiB,EAApBJ,EAAK,KAAK,GAAA,CAAA;AAAA;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("./NeonLink.cjs.js"),n=require("vue"),s=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),a={class:"neon-link__label"},k=["href"],p={class:"neon-link__label"},d={class:"neon-link__label"};function u(e,o,c,C,w,m){const i=n.resolveComponent("router-link"),t=n.resolveComponent("neon-icon");return e.routerUrl?(n.openBlock(),n.createBlock(i,n.mergeProps({key:0,class:[[{"neon-link--no-style":e.noStyle,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--router-link"],to:e.routerUrl,tabindex:"0"},e.sanitizedAttributes,{onClick:e.onClick,onKeydown:[n.withKeys(e.onClick,["enter"]),n.withKeys(n.withModifiers(e.onSpace,["prevent"]),["space"])]}),{default:n.withCtx(()=>[n.createElementVNode("span",a,[n.renderSlot(e.$slots,"default")])]),_:3},16,["class","to","onClick","onKeydown"])):e.href?(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:1,class:[[{"neon-link--no-style":e.noStyle,"neon-link--with-external-indicator":e.externalIndicator,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--external-link"],href:e.href,rel:"noopener",tabindex:"0"},e.sanitizedAttributes,{onClick:o[0]||(o[0]=(...l)=>e.onClick&&e.onClick(...l)),onKeydown:[o[1]||(o[1]=n.withKeys((...l)=>e.onClick&&e.onClick(...l),["enter"])),o[2]||(o[2]=n.withKeys(n.withModifiers((...l)=>e.onSpace&&e.onSpace(...l),["prevent"]),["space"]))]}),[n.createElementVNode("span",p,[n.renderSlot(e.$slots,"default"),e.externalIndicator?(n.openBlock(),n.createBlock(t,{key:0,class:"neon-link__external-indicator",color:"low-contrast",name:"link-external"})):n.createCommentVNode("",!0)])],16,k)):(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:2,class:[[{"neon-link--no-style":e.noStyle},`neon-link--outline-${e.outlineStyle}`],"neon-link"],tabindex:"0"},e.sanitizedAttributes,{onClick:o[3]||(o[3]=(...l)=>e.onClick&&e.onClick(...l)),onKeydown:[o[4]||(o[4]=n.withKeys((...l)=>e.onClick&&e.onClick(...l),["enter"])),o[5]||(o[5]=n.withKeys(n.withModifiers((...l)=>e.onSpace&&e.onSpace(...l),["prevent"]),["space"]))]}),[n.createElementVNode("span",d,[n.renderSlot(e.$slots,"default")])],16))}const y=s(r,[["render",u]]);module.exports=y;
1
+ "use strict";const r=require("./NeonLink.cjs.js"),n=require("vue"),s=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),k=["href"];function a(e,o,p,d,y,C){const l=n.resolveComponent("router-link"),t=n.resolveComponent("neon-icon");return e.routerUrl?(n.openBlock(),n.createBlock(l,n.mergeProps({key:0,class:[[{"neon-link--no-style":e.noStyle,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--router-link"],to:e.routerUrl,tabindex:"0"},e.sanitizedAttributes,{onClick:e.onClick,onKeydown:[n.withKeys(e.onClick,["enter"]),n.withKeys(n.withModifiers(e.onSpace,["prevent"]),["space"])]}),{default:n.withCtx(()=>[n.renderSlot(e.$slots,"default")]),_:3},16,["class","to","onClick","onKeydown"])):e.href?(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:1,class:[[{"neon-link--no-style":e.noStyle,"neon-link--with-external-indicator":e.externalIndicator,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--external-link"],href:e.href,rel:"noopener",tabindex:"0"},e.sanitizedAttributes,{onClick:o[0]||(o[0]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[1]||(o[1]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[2]||(o[2]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default"),e.externalIndicator?(n.openBlock(),n.createBlock(t,{key:0,class:"neon-link__external-indicator",color:"low-contrast",name:"share-external-link-1"})):n.createCommentVNode("",!0)],16,k)):(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:2,class:[[{"neon-link--no-style":e.noStyle},`neon-link--outline-${e.outlineStyle}`],"neon-link"],tabindex:"0"},e.sanitizedAttributes,{onClick:o[3]||(o[3]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[4]||(o[4]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[5]||(o[5]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default")],16))}const u=s(r,[["render",a]]);module.exports=u;
2
2
  //# sourceMappingURL=NeonLink.vue.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonLink.vue.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <span class=\"neon-link__label\">\n <!-- @slot the content of the link -->\n <slot></slot>\n </span>\n </router-link>\n <a\n v-else-if=\"href\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <span class=\"neon-link__label\">\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"link-external\"\n />\n </span>\n </a>\n <a\n v-else\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <span class=\"neon-link__label\">\n <!-- @slot the content of the link -->\n <slot></slot>\n </span>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_hoisted_1","_hoisted_3","_hoisted_4","_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_createElementVNode","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":"mIAeUA,EAAA,CAAA,MAAM,kBAAkB,aAyBxBC,EAAA,CAAA,MAAM,kBAAkB,EAqBxBC,EAAA,CAAA,MAAM,kBAAkB,6GA3DxBC,EAAA,WADRC,EAAAA,YAAAC,EAAAA,YAkBcC,EAlBdC,aAkBc,OAhBX,MAAK,CAAA,wBAAmCJ,EAAA,QAAO,oBAAuBA,EAAA,YAAW,0BAA6BA,EAAA,UAAU,wBAAgCA,EAAA,YAAY,IAK/J,kCAAkC,EADvC,GAAIA,EAAA,UAEL,SAAS,KACDA,EAAA,oBAAmB,CAC1B,QAAOA,EAAA,QACP,UAAO,YAAQA,EAAA,QAAO,CAAA,OAAA,CAAA,6BACCA,EAAA,QAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,wBAE/B,IAGO,CAHPK,EAAAA,mBAGO,OAHPR,EAGO,CADLS,aAAaN,EAAA,OAAA,SAAA,qDAIJA,EAAA,MADbC,EAAAA,YAAAM,EAAAA,mBA8BI,IA9BJH,aA8BI,OA5BD,MAAK,CAAA,wBAA2CJ,EAAA,6CAAuDA,EAAA,sCAAgDA,EAAA,sCAAgDA,EAAA,kCAAiDA,EAAA,YAAY,IAU/P,oCAAoC,EADzC,KAAMA,EAAA,KAEP,IAAI,WACJ,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,GACP,UAAO,gCAAQR,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCR,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAE/BH,EAAAA,mBASO,OATPP,EASO,CAPLQ,aAAaN,EAAA,OAAA,SAAA,EAELA,EAAA,iCADRE,EAAAA,YAKEO,EAAA,OAHA,MAAM,gCACN,MAAM,eACN,KAAK,0DAIXR,EAAAA,YAAAM,EAAAA,mBAcI,IAdJH,aAcI,OAZD,MAAK,CAAA,CAAA,CAAA,sBAA4BJ,EAAA,OAAO,EAAA,sBAA0BA,EAAA,YAAY,IACzE,WAAW,EACjB,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,GACP,UAAO,gCAAQR,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCR,EAAA,SAAAA,EAAA,QAAA,GAAAQ,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAE/BH,EAAAA,mBAGO,OAHPN,EAGO,CADLO,aAAaN,EAAA,OAAA,SAAA"}
1
+ {"version":3,"file":"NeonLink.vue.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </router-link>\n <a\n v-else-if=\"href\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"share-external-link-1\"\n />\n </a>\n <a\n v-else\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":"yPAEUA,EAAA,WADRC,EAAAA,YAAAC,EAAAA,YAgBcC,EAhBdC,aAgBc,OAdX,MAAK,CAAA,wBAAmCJ,EAAA,QAAO,oBAAuBA,EAAA,YAAW,0BAA6BA,EAAA,UAAU,wBAAgCA,EAAA,YAAY,IAK/J,kCAAkC,EADvC,GAAIA,EAAA,UAEL,SAAS,KACDA,EAAA,oBAAmB,CAC1B,QAAOA,EAAA,QACP,UAAO,YAAQA,EAAA,QAAO,CAAA,OAAA,CAAA,6BACCA,EAAA,QAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,wBAG/B,IAAa,CAAbK,aAAaL,EAAA,OAAA,SAAA,mDAGFA,EAAA,MADbC,EAAAA,YAAAK,EAAAA,mBA4BI,IA5BJF,aA4BI,OA1BD,MAAK,CAAA,wBAA2CJ,EAAA,6CAAuDA,EAAA,sCAAgDA,EAAA,sCAAgDA,EAAA,kCAAiDA,EAAA,YAAY,IAU/P,oCAAoC,EADzC,KAAMA,EAAA,KAEP,IAAI,WACJ,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA,EAELA,EAAA,iCADRE,EAAAA,YAKEM,EAAA,OAHA,MAAM,gCACN,MAAM,eACN,KAAK,gEAGTP,EAAAA,YAAAK,EAAAA,mBAYI,IAZJF,aAYI,OAVD,MAAK,CAAA,CAAA,CAAA,sBAA4BJ,EAAA,OAAO,EAAA,sBAA0BA,EAAA,YAAY,IACzE,WAAW,EACjB,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA"}
@@ -1,10 +1,10 @@
1
- import f from "./NeonLink.es.js";
2
- import { resolveComponent as k, openBlock as i, createBlock as d, mergeProps as t, withKeys as l, withModifiers as r, withCtx as C, createElementVNode as s, renderSlot as a, createElementBlock as p, createCommentVNode as m } from "vue";
3
- import S from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
- const c = { class: "neon-link__label" }, v = ["href"], $ = { class: "neon-link__label" }, b = { class: "neon-link__label" };
5
- function w(n, e, K, R, z, A) {
6
- const u = k("router-link"), y = k("neon-icon");
7
- return n.routerUrl ? (i(), d(u, t({
1
+ import y from "./NeonLink.es.js";
2
+ import { resolveComponent as a, openBlock as l, createBlock as k, mergeProps as t, withKeys as i, withModifiers as r, withCtx as f, renderSlot as s, createElementBlock as u, createCommentVNode as C } from "vue";
3
+ import m from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
+ const S = ["href"];
5
+ function v(n, e, $, w, b, K) {
6
+ const d = a("router-link"), p = a("neon-icon");
7
+ return n.routerUrl ? (l(), k(d, t({
8
8
  key: 0,
9
9
  class: [[
10
10
  { "neon-link--no-style": n.noStyle, "neon-link--active": n.activeRoute, "neon-link--exact-active": n.exactRoute },
@@ -15,17 +15,15 @@ function w(n, e, K, R, z, A) {
15
15
  }, n.sanitizedAttributes, {
16
16
  onClick: n.onClick,
17
17
  onKeydown: [
18
- l(n.onClick, ["enter"]),
19
- l(r(n.onSpace, ["prevent"]), ["space"])
18
+ i(n.onClick, ["enter"]),
19
+ i(r(n.onSpace, ["prevent"]), ["space"])
20
20
  ]
21
21
  }), {
22
- default: C(() => [
23
- s("span", c, [
24
- a(n.$slots, "default")
25
- ])
22
+ default: f(() => [
23
+ s(n.$slots, "default")
26
24
  ]),
27
25
  _: 3
28
- }, 16, ["class", "to", "onClick", "onKeydown"])) : n.href ? (i(), p("a", t({
26
+ }, 16, ["class", "to", "onClick", "onKeydown"])) : n.href ? (l(), u("a", t({
29
27
  key: 1,
30
28
  class: [[
31
29
  {
@@ -42,37 +40,33 @@ function w(n, e, K, R, z, A) {
42
40
  }, n.sanitizedAttributes, {
43
41
  onClick: e[0] || (e[0] = (...o) => n.onClick && n.onClick(...o)),
44
42
  onKeydown: [
45
- e[1] || (e[1] = l((...o) => n.onClick && n.onClick(...o), ["enter"])),
46
- e[2] || (e[2] = l(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
43
+ e[1] || (e[1] = i((...o) => n.onClick && n.onClick(...o), ["enter"])),
44
+ e[2] || (e[2] = i(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
47
45
  ]
48
46
  }), [
49
- s("span", $, [
50
- a(n.$slots, "default"),
51
- n.externalIndicator ? (i(), d(y, {
52
- key: 0,
53
- class: "neon-link__external-indicator",
54
- color: "low-contrast",
55
- name: "link-external"
56
- })) : m("", !0)
57
- ])
58
- ], 16, v)) : (i(), p("a", t({
47
+ s(n.$slots, "default"),
48
+ n.externalIndicator ? (l(), k(p, {
49
+ key: 0,
50
+ class: "neon-link__external-indicator",
51
+ color: "low-contrast",
52
+ name: "share-external-link-1"
53
+ })) : C("", !0)
54
+ ], 16, S)) : (l(), u("a", t({
59
55
  key: 2,
60
56
  class: [[{ "neon-link--no-style": n.noStyle }, `neon-link--outline-${n.outlineStyle}`], "neon-link"],
61
57
  tabindex: "0"
62
58
  }, n.sanitizedAttributes, {
63
59
  onClick: e[3] || (e[3] = (...o) => n.onClick && n.onClick(...o)),
64
60
  onKeydown: [
65
- e[4] || (e[4] = l((...o) => n.onClick && n.onClick(...o), ["enter"])),
66
- e[5] || (e[5] = l(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
61
+ e[4] || (e[4] = i((...o) => n.onClick && n.onClick(...o), ["enter"])),
62
+ e[5] || (e[5] = i(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
67
63
  ]
68
64
  }), [
69
- s("span", b, [
70
- a(n.$slots, "default")
71
- ])
65
+ s(n.$slots, "default")
72
66
  ], 16));
73
67
  }
74
- const I = /* @__PURE__ */ S(f, [["render", w]]);
68
+ const A = /* @__PURE__ */ m(y, [["render", v]]);
75
69
  export {
76
- I as default
70
+ A as default
77
71
  };
78
72
  //# sourceMappingURL=NeonLink.vue.es.js.map