[{"data":1,"prerenderedAt":3616},["ShallowReactive",2],{"navigation":3,"/blog/building-scalable-vue-component-libraries":22,"/blog/building-scalable-vue-component-libraries-surround":3612},[4],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Blog","/blog","blog",[9,13,17],{"title":10,"path":11,"stem":12},"🔥 Built from Real-World Needs – My Custom UI Package is Here!","/blog/building-scalable-vue-component-libraries","blog/building-scalable-vue-component-libraries",{"title":14,"path":15,"stem":16},"🔥 Cookie Authentication: How It Works & What Are the Risks?","/blog/cookie-authentication-security","blog/cookie-authentication-security",{"title":18,"path":19,"stem":20},"From Nuxt 2 to Vue 3: My Journey of Migration and Growth","/blog/mastering-nuxt-3-performance-optimization","blog/mastering-nuxt-3-performance-optimization",false,{"id":23,"title":10,"author":24,"body":28,"date":3597,"description":3598,"extension":3599,"image":3600,"meta":3601,"minRead":599,"navigation":602,"path":11,"seo":3610,"stem":12,"__hash__":3611},"blog/blog/building-scalable-vue-component-libraries.md",{"name":25,"avatar":26},"Mohamed Eslam",{"src":27,"alt":25},"/profile-img.jpg",{"type":29,"value":30,"toc":3556},"minimark",[31,35,38,43,47,52,55,59,62,73,77,80,84,87,91,94,126,130,134,160,164,168,171,175,178,182,185,199,203,229,233,271,275,318,322,325,338,342,346,360,364,396,400,403,429,433,437,3352,3356,3381,3385,3389,3399,3407,3411,3437,3441,3455,3459,3492,3496,3499,3503,3515,3519,3539,3542,3547,3552],[32,33,34],"p",{},"From real-world needs in my daily work, I decided to develop my own custom UI library! After spending a long time working on Nuxt 3 + Tailwind CSS projects, I often found myself needing components or composables that weren't available in existing libraries.",[32,36,37],{},"This led me to start building my own custom version based on Nuxt UI, and I've added everything I needed under the name:",[39,40,42],"h2",{"id":41},"eslamdevuiui-my-custom-nuxt-ui-package","🎉 @eslamdevui/ui – My Custom Nuxt UI Package!",[39,44,46],{"id":45},"what-ive-added","📦 What I've Added",[48,49,51],"h3",{"id":50},"complete-nuxt-ui-pro-integration","Complete Nuxt UI Pro Integration",[32,53,54],{},"I've successfully integrated all Nuxt UI Pro components into the package, giving you access to premium components without the subscription cost.",[48,56,58],{"id":57},"custom-utilities-composables","Custom Utilities & Composables",[32,60,61],{},"Added custom utilities and composables based on real project needs I encountered while working on projects like:",[63,64,65],"ul",{},[66,67,68,72],"li",{},[69,70,71],"strong",{},"EAPD Platform"," - Government portal with complex data visualization",[48,74,76],{"id":75},"continuous-updates","Continuous Updates",[32,78,79],{},"I regularly merge new releases from Nuxt UI to my branch, ensuring you're always up-to-date with the latest features and improvements.",[48,81,83],{"id":82},"quality-assurance-process","Quality Assurance Process",[32,85,86],{},"Every version starts as a beta release. Once thoroughly tested and stable, it becomes a main release. This ensures reliability for production use.",[39,88,90],{"id":89},"the-goal","💡 The Goal",[32,92,93],{},"To offer a UI kit that is:",[63,95,96,102,108,114,120],{},[66,97,98,101],{},[69,99,100],{},"✔️ Flexible"," - Adapts to your design requirements",[66,103,104,107],{},[69,105,106],{},"✔️ Themeable"," - Not tied to any fixed design system, but supports ready-made themes you can customize",[66,109,110,113],{},[69,111,112],{},"✔️ Modern"," - Works seamlessly with the latest Tailwind CSS",[66,115,116,119],{},[69,117,118],{},"✔️ Universal"," - Suitable for any Vue 3 or Nuxt 3 project",[66,121,122,125],{},[69,123,124],{},"✔️ Production-Ready"," - Built and tested on real-world applications",[39,127,129],{"id":128},"installation-usage","🚀 Installation & Usage",[48,131,133],{"id":132},"easy-installation","Easy Installation",[135,136,141],"pre",{"className":137,"code":138,"language":139,"meta":140,"style":140},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @eslamdevui/ui\n","bash","",[142,143,144],"code",{"__ignoreMap":140},[145,146,149,153,157],"span",{"class":147,"line":148},"line",1,[145,150,152],{"class":151},"sBMFI","npm",[145,154,156],{"class":155},"sfazB"," install",[145,158,159],{"class":155}," @eslamdevui/ui\n",[39,161,163],{"id":162},"development-process","🔧 Development Process",[48,165,167],{"id":166},"_1-real-world-problem-identification","1. Real-World Problem Identification",[32,169,170],{},"Every component starts with a real need from my daily development work. I don't build components just for the sake of it – they solve actual problems.",[48,172,174],{"id":173},"_2-nuxt-ui-foundation","2. Nuxt UI Foundation",[32,176,177],{},"Built on top of Nuxt UI, ensuring compatibility and leveraging the excellent work already done by the Nuxt team.",[48,179,181],{"id":180},"_3-custom-extensions","3. Custom Extensions",[32,183,184],{},"Added custom utilities that weren't available in the original library:",[63,186,187,190,193,196],{},[66,188,189],{},"Advanced form validation composables",[66,191,192],{},"Custom animation utilities",[66,194,195],{},"Enhanced accessibility features",[66,197,198],{},"Performance optimization helpers",[48,200,202],{"id":201},"_4-testing-quality","4. Testing & Quality",[63,204,205,211,217,223],{},[66,206,207,210],{},[69,208,209],{},"Unit Testing",": Every component has comprehensive tests",[66,212,213,216],{},[69,214,215],{},"Integration Testing",": Components work together seamlessly",[66,218,219,222],{},[69,220,221],{},"Accessibility Testing",": WCAG compliance from day one",[66,224,225,228],{},[69,226,227],{},"Performance Testing",": Bundle size and runtime performance",[39,230,232],{"id":231},"package-statistics","📊 Package Statistics",[63,234,235,241,247,253,259,265],{},[66,236,237,240],{},[69,238,239],{},"Components",": 50+ UI components",[66,242,243,246],{},[69,244,245],{},"Composables",": 20+ utility composables",[66,248,249,252],{},[69,250,251],{},"Bundle Size",": Optimized for tree-shaking",[66,254,255,258],{},[69,256,257],{},"TypeScript",": Full type support",[66,260,261,264],{},[69,262,263],{},"Accessibility",": WCAG 2.1 AA compliant",[66,266,267,270],{},[69,268,269],{},"Browser Support",": Modern browsers + IE11 (with polyfills)",[39,272,274],{"id":273},"resources-links","🔗 Resources & Links",[63,276,277,290,300,308],{},[66,278,279,282,283],{},[69,280,281],{},"📦 NPM Package",": ",[284,285,289],"a",{"href":286,"rel":287},"https://www.npmjs.com/package/@eslamdevui/ui",[288],"nofollow","@eslamdevui/ui",[66,291,292,282,295],{},[69,293,294],{},"🔧 GitHub Repository",[284,296,299],{"href":297,"rel":298},"https://github.com/MohamedEslam04/eslamdevui-ui",[288],"GitHub Repo",[66,301,302,282,305],{},[69,303,304],{},"📚 Documentation",[145,306,307],{},"Coming Soon",[66,309,310,282,313],{},[69,311,312],{},"🐛 Issues & Feedback",[284,314,317],{"href":315,"rel":316},"https://github.com/MohamedEslam04/eslamdevui-ui/issues",[288],"GitHub Issues",[39,319,321],{"id":320},"real-world-impact","🎯 Real-World Impact",[32,323,324],{},"The library has already been used in several production projects:",[63,326,327,332],{},[66,328,329,331],{},[69,330,71],{},": 40% reduction in development time for new UI components",[66,333,334,337],{},[69,335,336],{},"Personal Projects",": Faster development and consistent quality",[39,339,341],{"id":340},"whats-coming-next","🚀 What's Coming Next",[48,343,345],{"id":344},"immediate-improvements","Immediate Improvements",[63,347,348,351,354,357],{},[66,349,350],{},"Enhanced documentation with interactive examples",[66,352,353],{},"More theme variations",[66,355,356],{},"Additional utility composables",[66,358,359],{},"Performance optimizations",[48,361,363],{"id":362},"long-term-vision","Long-term Vision",[63,365,366,372,378,384,390],{},[66,367,368,371],{},[69,369,370],{},"Advanced Theming System",": CSS custom properties for dynamic themes",[66,373,374,377],{},[69,375,376],{},"Component Playground",": Interactive component testing environment",[66,379,380,383],{},[69,381,382],{},"Design Token System",": Consistent spacing, colors, and typography",[66,385,386,389],{},[69,387,388],{},"Internationalization",": RTL support and multi-language components",[66,391,392,395],{},[69,393,394],{},"Performance Monitoring",": Real-world performance metrics",[39,397,399],{"id":398},"community-collaboration","💪 Community & Collaboration",[32,401,402],{},"This isn't just my project – it's a community effort! I'm actively seeking:",[63,404,405,411,417,423],{},[66,406,407,410],{},[69,408,409],{},"Feedback",": What components do you need?",[66,412,413,416],{},[69,414,415],{},"Contributions",": Code, documentation, or ideas",[66,418,419,422],{},[69,420,421],{},"Testing",": Help test on different projects and environments",[66,424,425,428],{},[69,426,427],{},"Feature Requests",": Tell me what's missing",[39,430,432],{"id":431},"technical-architecture","🔍 Technical Architecture",[48,434,436],{"id":435},"component-structure","Component Structure",[135,438,442],{"className":439,"code":440,"language":441,"meta":140,"style":140},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript lang=\"ts\">\nimport type { AppConfig } from '@nuxt/schema'\nimport theme from '#build/ui/button'\nimport type { UseComponentIconsProps } from '../composables/useComponentIcons'\nimport type { LinkProps, AvatarProps } from '../types'\nimport type { ComponentConfig } from '../types/utils'\n\ntype Button = ComponentConfig\u003Ctypeof theme, AppConfig, 'button'>\n\nexport interface ButtonProps extends UseComponentIconsProps, Omit\u003CLinkProps, 'raw' | 'custom'> {\n  label?: string\n  /**\n   * @defaultValue 'primary'\n   */\n  color?: Button['variants']['color']\n  activeColor?: Button['variants']['color']\n  /**\n   * @defaultValue 'solid'\n   */\n  variant?: Button['variants']['variant']\n  activeVariant?: Button['variants']['variant']\n  /**\n   * @defaultValue 'md'\n   */\n  size?: Button['variants']['size']\n  /** Render the button with equal padding on all sides. */\n  square?: boolean\n  /** Render the button full width. */\n  block?: boolean\n  /** Set loading state automatically based on the `@click` promise state */\n  loadingAuto?: boolean\n  onClick?: ((event: MouseEvent) => void | Promise\u003Cvoid>) | Array\u003C((event: MouseEvent) => void | Promise\u003Cvoid>)>\n  class?: any\n  ui?: Button['slots']\n}\n\nexport interface ButtonSlots {\n  leading(props?: {}): any\n  default(props?: {}): any\n  trailing(props?: {}): any\n}\n\u003C/script>\n\n\u003Cscript setup lang=\"ts\">\nimport { computed, ref, inject } from 'vue'\nimport type { Ref } from 'vue'\nimport { defu } from 'defu'\nimport { useForwardProps } from 'reka-ui'\nimport { useAppConfig } from '#imports'\nimport { useComponentIcons } from '../composables/useComponentIcons'\nimport { useButtonGroup } from '../composables/useButtonGroup'\nimport { formLoadingInjectionKey } from '../composables/useFormField'\nimport { omit, mergeClasses } from '../utils'\nimport { tv } from '../utils/tv'\nimport { pickLinkProps } from '../utils/link'\nimport UIcon from './Icon.vue'\nimport UAvatar from './Avatar.vue'\nimport ULink from './Link.vue'\nimport ULinkBase from './LinkBase.vue'\n\nconst props = defineProps\u003CButtonProps>()\nconst slots = defineSlots\u003CButtonSlots>()\n\nconst appConfig = useAppConfig() as Button['AppConfig']\nconst { orientation, size: buttonSize } = useButtonGroup\u003CButtonProps>(props)\n\nconst linkProps = useForwardProps(pickLinkProps(props))\n\nconst loadingAutoState = ref(false)\nconst formLoading = inject\u003CRef\u003Cboolean> | undefined>(formLoadingInjectionKey, undefined)\n\nasync function onClickWrapper(event: MouseEvent) {\n  loadingAutoState.value = true\n  const callbacks = Array.isArray(props.onClick) ? props.onClick : [props.onClick]\n  try {\n    await Promise.all(callbacks.map(fn => fn?.(event)))\n  } finally {\n    loadingAutoState.value = false\n  }\n}\n\nconst isLoading = computed(() => {\n  return props.loading || (props.loadingAuto && (loadingAutoState.value || (formLoading?.value && props.type === 'submit')))\n})\n\nconst { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(\n  computed(() => ({ ...props, loading: isLoading.value }))\n)\n\nconst ui = computed(() => tv({\n  extend: tv(theme),\n  ...defu({\n    variants: {\n      active: {\n        true: {\n          base: mergeClasses(appConfig.ui?.button?.variants?.active?.true?.base, props.activeClass)\n        },\n        false: {\n          base: mergeClasses(appConfig.ui?.button?.variants?.active?.false?.base, props.inactiveClass)\n        }\n      }\n    }\n  }, appConfig.ui?.button || {})\n})({\n  color: props.color,\n  variant: props.variant,\n  size: buttonSize.value,\n  loading: isLoading.value,\n  block: props.block,\n  square: props.square || (!slots.default && !props.label),\n  leading: isLeading.value,\n  trailing: isTrailing.value,\n  buttonGroup: orientation.value\n}))\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CULink\n    v-slot=\"{ active, ...slotProps }\"\n    :type=\"type\"\n    :disabled=\"disabled || isLoading\"\n    v-bind=\"omit(linkProps, ['type', 'disabled', 'onClick'])\"\n    custom\n  >\n    \u003CULinkBase\n      v-bind=\"slotProps\"\n      :class=\"ui.base({\n        class: [props.ui?.base, props.class],\n        active,\n        ...(active && activeVariant ? { variant: activeVariant } : {}),\n        ...(active && activeColor ? { color: activeColor } : {})\n      })\"\n      @click=\"onClickWrapper\"\n    >\n      \u003Cslot name=\"leading\">\n        \u003CUIcon v-if=\"isLeading && leadingIconName\" :name=\"leadingIconName\" :class=\"ui.leadingIcon({ class: props.ui?.leadingIcon, active })\" />\n        \u003CUAvatar v-else-if=\"!!avatar\" :size=\"((props.ui?.leadingAvatarSize || ui.leadingAvatarSize()) as AvatarProps['size'])\" v-bind=\"avatar\" :class=\"ui.leadingAvatar({ class: props.ui?.leadingAvatar, active })\" />\n      \u003C/slot>\n\n      \u003Cslot>\n        \u003Cspan v-if=\"label !== undefined && label !== null\" :class=\"ui.label({ class: props.ui?.label, active })\">\n          {{ label }}\n        \u003C/span>\n      \u003C/slot>\n\n      \u003Cslot name=\"trailing\">\n        \u003CUIcon v-if=\"isTrailing && trailingIconName\" :name=\"trailingIconName\" :class=\"ui.trailingIcon({ class: props.ui?.trailingIcon, active })\" />\n      \u003C/slot>\n    \u003C/ULinkBase>\n  \u003C/ULink>\n\u003C/template>\n","vue",[142,443,444,472,504,522,545,574,597,604,640,645,697,709,716,732,738,771,799,804,816,821,850,878,883,895,900,929,935,946,952,962,968,978,1064,1075,1096,1102,1107,1119,1137,1153,1169,1174,1184,1189,1211,1241,1263,1284,1305,1326,1346,1367,1388,1414,1435,1456,1473,1490,1507,1524,1529,1554,1576,1581,1612,1648,1653,1673,1678,1699,1739,1744,1768,1785,1838,1846,1889,1900,1915,1921,1926,1931,1952,2020,2027,2032,2066,2108,2113,2118,2143,2159,2171,2181,2191,2201,2251,2257,2267,2311,2317,2323,2329,2355,2365,2380,2395,2411,2427,2443,2486,2501,2516,2531,2538,2547,2552,2562,2571,2597,2613,2635,2684,2690,2696,2705,2719,2741,2771,2779,2805,2828,2836,2854,2860,2883,2966,3090,3100,3105,3114,3180,3192,3202,3211,3216,3236,3312,3321,3332,3343],{"__ignoreMap":140},[145,445,446,450,454,458,461,464,467,469],{"class":147,"line":148},[145,447,449],{"class":448},"sMK4o","\u003C",[145,451,453],{"class":452},"swJcz","script",[145,455,457],{"class":456},"spNyl"," lang",[145,459,460],{"class":448},"=",[145,462,463],{"class":448},"\"",[145,465,466],{"class":155},"ts",[145,468,463],{"class":448},[145,470,471],{"class":448},">\n",[145,473,475,479,482,485,489,492,495,498,501],{"class":147,"line":474},2,[145,476,478],{"class":477},"s7zQu","import",[145,480,481],{"class":477}," type",[145,483,484],{"class":448}," {",[145,486,488],{"class":487},"sTEyZ"," AppConfig",[145,490,491],{"class":448}," }",[145,493,494],{"class":477}," from",[145,496,497],{"class":448}," '",[145,499,500],{"class":155},"@nuxt/schema",[145,502,503],{"class":448},"'\n",[145,505,507,509,512,515,517,520],{"class":147,"line":506},3,[145,508,478],{"class":477},[145,510,511],{"class":487}," theme ",[145,513,514],{"class":477},"from",[145,516,497],{"class":448},[145,518,519],{"class":155},"#build/ui/button",[145,521,503],{"class":448},[145,523,525,527,529,531,534,536,538,540,543],{"class":147,"line":524},4,[145,526,478],{"class":477},[145,528,481],{"class":477},[145,530,484],{"class":448},[145,532,533],{"class":487}," UseComponentIconsProps",[145,535,491],{"class":448},[145,537,494],{"class":477},[145,539,497],{"class":448},[145,541,542],{"class":155},"../composables/useComponentIcons",[145,544,503],{"class":448},[145,546,548,550,552,554,557,560,563,565,567,569,572],{"class":147,"line":547},5,[145,549,478],{"class":477},[145,551,481],{"class":477},[145,553,484],{"class":448},[145,555,556],{"class":487}," LinkProps",[145,558,559],{"class":448},",",[145,561,562],{"class":487}," AvatarProps",[145,564,491],{"class":448},[145,566,494],{"class":477},[145,568,497],{"class":448},[145,570,571],{"class":155},"../types",[145,573,503],{"class":448},[145,575,577,579,581,583,586,588,590,592,595],{"class":147,"line":576},6,[145,578,478],{"class":477},[145,580,481],{"class":477},[145,582,484],{"class":448},[145,584,585],{"class":487}," ComponentConfig",[145,587,491],{"class":448},[145,589,494],{"class":477},[145,591,497],{"class":448},[145,593,594],{"class":155},"../types/utils",[145,596,503],{"class":448},[145,598,600],{"class":147,"line":599},7,[145,601,603],{"emptyLinePlaceholder":602},true,"\n",[145,605,607,610,613,616,618,621,624,626,628,630,632,635,638],{"class":147,"line":606},8,[145,608,609],{"class":456},"type",[145,611,612],{"class":151}," Button",[145,614,615],{"class":448}," =",[145,617,585],{"class":151},[145,619,620],{"class":448},"\u003Ctypeof",[145,622,623],{"class":487}," theme",[145,625,559],{"class":448},[145,627,488],{"class":151},[145,629,559],{"class":448},[145,631,497],{"class":448},[145,633,634],{"class":155},"button",[145,636,637],{"class":448},"'",[145,639,471],{"class":448},[145,641,643],{"class":147,"line":642},9,[145,644,603],{"emptyLinePlaceholder":602},[145,646,648,651,654,657,660,662,664,667,669,672,674,676,679,681,684,686,689,691,694],{"class":147,"line":647},10,[145,649,650],{"class":477},"export",[145,652,653],{"class":456}," interface",[145,655,656],{"class":151}," ButtonProps",[145,658,659],{"class":456}," extends",[145,661,533],{"class":151},[145,663,559],{"class":448},[145,665,666],{"class":151}," Omit",[145,668,449],{"class":448},[145,670,671],{"class":151},"LinkProps",[145,673,559],{"class":448},[145,675,497],{"class":448},[145,677,678],{"class":155},"raw",[145,680,637],{"class":448},[145,682,683],{"class":448}," |",[145,685,497],{"class":448},[145,687,688],{"class":155},"custom",[145,690,637],{"class":448},[145,692,693],{"class":448},">",[145,695,696],{"class":448}," {\n",[145,698,700,703,706],{"class":147,"line":699},11,[145,701,702],{"class":452},"  label",[145,704,705],{"class":448},"?:",[145,707,708],{"class":151}," string\n",[145,710,712],{"class":147,"line":711},12,[145,713,715],{"class":714},"sHwdD","  /**\n",[145,717,719,722,725,729],{"class":147,"line":718},13,[145,720,721],{"class":714},"   * ",[145,723,724],{"class":477},"@",[145,726,728],{"class":727},"s6hCs","defaultValue",[145,730,731],{"class":714}," 'primary'\n",[145,733,735],{"class":147,"line":734},14,[145,736,737],{"class":714},"   */\n",[145,739,741,744,746,748,751,753,756,758,761,763,766,768],{"class":147,"line":740},15,[145,742,743],{"class":452},"  color",[145,745,705],{"class":448},[145,747,612],{"class":151},[145,749,750],{"class":487},"[",[145,752,637],{"class":448},[145,754,755],{"class":155},"variants",[145,757,637],{"class":448},[145,759,760],{"class":487},"][",[145,762,637],{"class":448},[145,764,765],{"class":155},"color",[145,767,637],{"class":448},[145,769,770],{"class":487},"]\n",[145,772,774,777,779,781,783,785,787,789,791,793,795,797],{"class":147,"line":773},16,[145,775,776],{"class":452},"  activeColor",[145,778,705],{"class":448},[145,780,612],{"class":151},[145,782,750],{"class":487},[145,784,637],{"class":448},[145,786,755],{"class":155},[145,788,637],{"class":448},[145,790,760],{"class":487},[145,792,637],{"class":448},[145,794,765],{"class":155},[145,796,637],{"class":448},[145,798,770],{"class":487},[145,800,802],{"class":147,"line":801},17,[145,803,715],{"class":714},[145,805,807,809,811,813],{"class":147,"line":806},18,[145,808,721],{"class":714},[145,810,724],{"class":477},[145,812,728],{"class":727},[145,814,815],{"class":714}," 'solid'\n",[145,817,819],{"class":147,"line":818},19,[145,820,737],{"class":714},[145,822,824,827,829,831,833,835,837,839,841,843,846,848],{"class":147,"line":823},20,[145,825,826],{"class":452},"  variant",[145,828,705],{"class":448},[145,830,612],{"class":151},[145,832,750],{"class":487},[145,834,637],{"class":448},[145,836,755],{"class":155},[145,838,637],{"class":448},[145,840,760],{"class":487},[145,842,637],{"class":448},[145,844,845],{"class":155},"variant",[145,847,637],{"class":448},[145,849,770],{"class":487},[145,851,853,856,858,860,862,864,866,868,870,872,874,876],{"class":147,"line":852},21,[145,854,855],{"class":452},"  activeVariant",[145,857,705],{"class":448},[145,859,612],{"class":151},[145,861,750],{"class":487},[145,863,637],{"class":448},[145,865,755],{"class":155},[145,867,637],{"class":448},[145,869,760],{"class":487},[145,871,637],{"class":448},[145,873,845],{"class":155},[145,875,637],{"class":448},[145,877,770],{"class":487},[145,879,881],{"class":147,"line":880},22,[145,882,715],{"class":714},[145,884,886,888,890,892],{"class":147,"line":885},23,[145,887,721],{"class":714},[145,889,724],{"class":477},[145,891,728],{"class":727},[145,893,894],{"class":714}," 'md'\n",[145,896,898],{"class":147,"line":897},24,[145,899,737],{"class":714},[145,901,903,906,908,910,912,914,916,918,920,922,925,927],{"class":147,"line":902},25,[145,904,905],{"class":452},"  size",[145,907,705],{"class":448},[145,909,612],{"class":151},[145,911,750],{"class":487},[145,913,637],{"class":448},[145,915,755],{"class":155},[145,917,637],{"class":448},[145,919,760],{"class":487},[145,921,637],{"class":448},[145,923,924],{"class":155},"size",[145,926,637],{"class":448},[145,928,770],{"class":487},[145,930,932],{"class":147,"line":931},26,[145,933,934],{"class":714},"  /** Render the button with equal padding on all sides. */\n",[145,936,938,941,943],{"class":147,"line":937},27,[145,939,940],{"class":452},"  square",[145,942,705],{"class":448},[145,944,945],{"class":151}," boolean\n",[145,947,949],{"class":147,"line":948},28,[145,950,951],{"class":714},"  /** Render the button full width. */\n",[145,953,955,958,960],{"class":147,"line":954},29,[145,956,957],{"class":452},"  block",[145,959,705],{"class":448},[145,961,945],{"class":151},[145,963,965],{"class":147,"line":964},30,[145,966,967],{"class":714},"  /** Set loading state automatically based on the `@click` promise state */\n",[145,969,971,974,976],{"class":147,"line":970},31,[145,972,973],{"class":452},"  loadingAuto",[145,975,705],{"class":448},[145,977,945],{"class":151},[145,979,981,984,986,989,992,996,999,1002,1005,1008,1011,1013,1016,1018,1021,1023,1026,1029,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062],{"class":147,"line":980},32,[145,982,983],{"class":452},"  onClick",[145,985,705],{"class":448},[145,987,988],{"class":487}," (",[145,990,991],{"class":448},"(",[145,993,995],{"class":994},"sHdIc","event",[145,997,998],{"class":448},":",[145,1000,1001],{"class":151}," MouseEvent",[145,1003,1004],{"class":448},")",[145,1006,1007],{"class":456}," =>",[145,1009,1010],{"class":151}," void",[145,1012,683],{"class":448},[145,1014,1015],{"class":151}," Promise",[145,1017,449],{"class":448},[145,1019,1020],{"class":151},"void",[145,1022,693],{"class":448},[145,1024,1025],{"class":487},") ",[145,1027,1028],{"class":448},"|",[145,1030,1031],{"class":151}," Array",[145,1033,449],{"class":448},[145,1035,991],{"class":487},[145,1037,991],{"class":448},[145,1039,995],{"class":994},[145,1041,998],{"class":448},[145,1043,1001],{"class":151},[145,1045,1004],{"class":448},[145,1047,1007],{"class":456},[145,1049,1010],{"class":151},[145,1051,683],{"class":448},[145,1053,1015],{"class":151},[145,1055,449],{"class":448},[145,1057,1020],{"class":151},[145,1059,693],{"class":448},[145,1061,1004],{"class":487},[145,1063,471],{"class":448},[145,1065,1067,1070,1072],{"class":147,"line":1066},33,[145,1068,1069],{"class":452},"  class",[145,1071,705],{"class":448},[145,1073,1074],{"class":151}," any\n",[145,1076,1078,1081,1083,1085,1087,1089,1092,1094],{"class":147,"line":1077},34,[145,1079,1080],{"class":452},"  ui",[145,1082,705],{"class":448},[145,1084,612],{"class":151},[145,1086,750],{"class":487},[145,1088,637],{"class":448},[145,1090,1091],{"class":155},"slots",[145,1093,637],{"class":448},[145,1095,770],{"class":487},[145,1097,1099],{"class":147,"line":1098},35,[145,1100,1101],{"class":448},"}\n",[145,1103,1105],{"class":147,"line":1104},36,[145,1106,603],{"emptyLinePlaceholder":602},[145,1108,1110,1112,1114,1117],{"class":147,"line":1109},37,[145,1111,650],{"class":477},[145,1113,653],{"class":456},[145,1115,1116],{"class":151}," ButtonSlots",[145,1118,696],{"class":448},[145,1120,1122,1125,1127,1130,1132,1135],{"class":147,"line":1121},38,[145,1123,1124],{"class":452},"  leading",[145,1126,991],{"class":448},[145,1128,1129],{"class":994},"props",[145,1131,705],{"class":448},[145,1133,1134],{"class":448}," {}):",[145,1136,1074],{"class":151},[145,1138,1140,1143,1145,1147,1149,1151],{"class":147,"line":1139},39,[145,1141,1142],{"class":452},"  default",[145,1144,991],{"class":448},[145,1146,1129],{"class":994},[145,1148,705],{"class":448},[145,1150,1134],{"class":448},[145,1152,1074],{"class":151},[145,1154,1156,1159,1161,1163,1165,1167],{"class":147,"line":1155},40,[145,1157,1158],{"class":452},"  trailing",[145,1160,991],{"class":448},[145,1162,1129],{"class":994},[145,1164,705],{"class":448},[145,1166,1134],{"class":448},[145,1168,1074],{"class":151},[145,1170,1172],{"class":147,"line":1171},41,[145,1173,1101],{"class":448},[145,1175,1177,1180,1182],{"class":147,"line":1176},42,[145,1178,1179],{"class":448},"\u003C/",[145,1181,453],{"class":452},[145,1183,471],{"class":448},[145,1185,1187],{"class":147,"line":1186},43,[145,1188,603],{"emptyLinePlaceholder":602},[145,1190,1192,1194,1196,1199,1201,1203,1205,1207,1209],{"class":147,"line":1191},44,[145,1193,449],{"class":448},[145,1195,453],{"class":452},[145,1197,1198],{"class":456}," setup",[145,1200,457],{"class":456},[145,1202,460],{"class":448},[145,1204,463],{"class":448},[145,1206,466],{"class":155},[145,1208,463],{"class":448},[145,1210,471],{"class":448},[145,1212,1214,1216,1218,1221,1223,1226,1228,1231,1233,1235,1237,1239],{"class":147,"line":1213},45,[145,1215,478],{"class":477},[145,1217,484],{"class":448},[145,1219,1220],{"class":487}," computed",[145,1222,559],{"class":448},[145,1224,1225],{"class":487}," ref",[145,1227,559],{"class":448},[145,1229,1230],{"class":487}," inject",[145,1232,491],{"class":448},[145,1234,494],{"class":477},[145,1236,497],{"class":448},[145,1238,441],{"class":155},[145,1240,503],{"class":448},[145,1242,1244,1246,1248,1250,1253,1255,1257,1259,1261],{"class":147,"line":1243},46,[145,1245,478],{"class":477},[145,1247,481],{"class":477},[145,1249,484],{"class":448},[145,1251,1252],{"class":487}," Ref",[145,1254,491],{"class":448},[145,1256,494],{"class":477},[145,1258,497],{"class":448},[145,1260,441],{"class":155},[145,1262,503],{"class":448},[145,1264,1266,1268,1270,1273,1275,1277,1279,1282],{"class":147,"line":1265},47,[145,1267,478],{"class":477},[145,1269,484],{"class":448},[145,1271,1272],{"class":487}," defu",[145,1274,491],{"class":448},[145,1276,494],{"class":477},[145,1278,497],{"class":448},[145,1280,1281],{"class":155},"defu",[145,1283,503],{"class":448},[145,1285,1287,1289,1291,1294,1296,1298,1300,1303],{"class":147,"line":1286},48,[145,1288,478],{"class":477},[145,1290,484],{"class":448},[145,1292,1293],{"class":487}," useForwardProps",[145,1295,491],{"class":448},[145,1297,494],{"class":477},[145,1299,497],{"class":448},[145,1301,1302],{"class":155},"reka-ui",[145,1304,503],{"class":448},[145,1306,1308,1310,1312,1315,1317,1319,1321,1324],{"class":147,"line":1307},49,[145,1309,478],{"class":477},[145,1311,484],{"class":448},[145,1313,1314],{"class":487}," useAppConfig",[145,1316,491],{"class":448},[145,1318,494],{"class":477},[145,1320,497],{"class":448},[145,1322,1323],{"class":155},"#imports",[145,1325,503],{"class":448},[145,1327,1329,1331,1333,1336,1338,1340,1342,1344],{"class":147,"line":1328},50,[145,1330,478],{"class":477},[145,1332,484],{"class":448},[145,1334,1335],{"class":487}," useComponentIcons",[145,1337,491],{"class":448},[145,1339,494],{"class":477},[145,1341,497],{"class":448},[145,1343,542],{"class":155},[145,1345,503],{"class":448},[145,1347,1349,1351,1353,1356,1358,1360,1362,1365],{"class":147,"line":1348},51,[145,1350,478],{"class":477},[145,1352,484],{"class":448},[145,1354,1355],{"class":487}," useButtonGroup",[145,1357,491],{"class":448},[145,1359,494],{"class":477},[145,1361,497],{"class":448},[145,1363,1364],{"class":155},"../composables/useButtonGroup",[145,1366,503],{"class":448},[145,1368,1370,1372,1374,1377,1379,1381,1383,1386],{"class":147,"line":1369},52,[145,1371,478],{"class":477},[145,1373,484],{"class":448},[145,1375,1376],{"class":487}," formLoadingInjectionKey",[145,1378,491],{"class":448},[145,1380,494],{"class":477},[145,1382,497],{"class":448},[145,1384,1385],{"class":155},"../composables/useFormField",[145,1387,503],{"class":448},[145,1389,1391,1393,1395,1398,1400,1403,1405,1407,1409,1412],{"class":147,"line":1390},53,[145,1392,478],{"class":477},[145,1394,484],{"class":448},[145,1396,1397],{"class":487}," omit",[145,1399,559],{"class":448},[145,1401,1402],{"class":487}," mergeClasses",[145,1404,491],{"class":448},[145,1406,494],{"class":477},[145,1408,497],{"class":448},[145,1410,1411],{"class":155},"../utils",[145,1413,503],{"class":448},[145,1415,1417,1419,1421,1424,1426,1428,1430,1433],{"class":147,"line":1416},54,[145,1418,478],{"class":477},[145,1420,484],{"class":448},[145,1422,1423],{"class":487}," tv",[145,1425,491],{"class":448},[145,1427,494],{"class":477},[145,1429,497],{"class":448},[145,1431,1432],{"class":155},"../utils/tv",[145,1434,503],{"class":448},[145,1436,1438,1440,1442,1445,1447,1449,1451,1454],{"class":147,"line":1437},55,[145,1439,478],{"class":477},[145,1441,484],{"class":448},[145,1443,1444],{"class":487}," pickLinkProps",[145,1446,491],{"class":448},[145,1448,494],{"class":477},[145,1450,497],{"class":448},[145,1452,1453],{"class":155},"../utils/link",[145,1455,503],{"class":448},[145,1457,1459,1461,1464,1466,1468,1471],{"class":147,"line":1458},56,[145,1460,478],{"class":477},[145,1462,1463],{"class":487}," UIcon ",[145,1465,514],{"class":477},[145,1467,497],{"class":448},[145,1469,1470],{"class":155},"./Icon.vue",[145,1472,503],{"class":448},[145,1474,1476,1478,1481,1483,1485,1488],{"class":147,"line":1475},57,[145,1477,478],{"class":477},[145,1479,1480],{"class":487}," UAvatar ",[145,1482,514],{"class":477},[145,1484,497],{"class":448},[145,1486,1487],{"class":155},"./Avatar.vue",[145,1489,503],{"class":448},[145,1491,1493,1495,1498,1500,1502,1505],{"class":147,"line":1492},58,[145,1494,478],{"class":477},[145,1496,1497],{"class":487}," ULink ",[145,1499,514],{"class":477},[145,1501,497],{"class":448},[145,1503,1504],{"class":155},"./Link.vue",[145,1506,503],{"class":448},[145,1508,1510,1512,1515,1517,1519,1522],{"class":147,"line":1509},59,[145,1511,478],{"class":477},[145,1513,1514],{"class":487}," ULinkBase ",[145,1516,514],{"class":477},[145,1518,497],{"class":448},[145,1520,1521],{"class":155},"./LinkBase.vue",[145,1523,503],{"class":448},[145,1525,1527],{"class":147,"line":1526},60,[145,1528,603],{"emptyLinePlaceholder":602},[145,1530,1532,1535,1538,1540,1544,1546,1549,1551],{"class":147,"line":1531},61,[145,1533,1534],{"class":456},"const",[145,1536,1537],{"class":487}," props ",[145,1539,460],{"class":448},[145,1541,1543],{"class":1542},"s2Zo4"," defineProps",[145,1545,449],{"class":448},[145,1547,1548],{"class":151},"ButtonProps",[145,1550,693],{"class":448},[145,1552,1553],{"class":487},"()\n",[145,1555,1557,1559,1562,1564,1567,1569,1572,1574],{"class":147,"line":1556},62,[145,1558,1534],{"class":456},[145,1560,1561],{"class":487}," slots ",[145,1563,460],{"class":448},[145,1565,1566],{"class":1542}," defineSlots",[145,1568,449],{"class":448},[145,1570,1571],{"class":151},"ButtonSlots",[145,1573,693],{"class":448},[145,1575,1553],{"class":487},[145,1577,1579],{"class":147,"line":1578},63,[145,1580,603],{"emptyLinePlaceholder":602},[145,1582,1584,1586,1589,1591,1593,1596,1599,1601,1603,1605,1608,1610],{"class":147,"line":1583},64,[145,1585,1534],{"class":456},[145,1587,1588],{"class":487}," appConfig ",[145,1590,460],{"class":448},[145,1592,1314],{"class":1542},[145,1594,1595],{"class":487},"() ",[145,1597,1598],{"class":477},"as",[145,1600,612],{"class":151},[145,1602,750],{"class":487},[145,1604,637],{"class":448},[145,1606,1607],{"class":155},"AppConfig",[145,1609,637],{"class":448},[145,1611,770],{"class":487},[145,1613,1615,1617,1619,1622,1624,1627,1629,1632,1635,1637,1639,1641,1643,1645],{"class":147,"line":1614},65,[145,1616,1534],{"class":456},[145,1618,484],{"class":448},[145,1620,1621],{"class":487}," orientation",[145,1623,559],{"class":448},[145,1625,1626],{"class":452}," size",[145,1628,998],{"class":448},[145,1630,1631],{"class":487}," buttonSize ",[145,1633,1634],{"class":448},"}",[145,1636,615],{"class":448},[145,1638,1355],{"class":1542},[145,1640,449],{"class":448},[145,1642,1548],{"class":151},[145,1644,693],{"class":448},[145,1646,1647],{"class":487},"(props)\n",[145,1649,1651],{"class":147,"line":1650},66,[145,1652,603],{"emptyLinePlaceholder":602},[145,1654,1656,1658,1661,1663,1665,1667,1670],{"class":147,"line":1655},67,[145,1657,1534],{"class":456},[145,1659,1660],{"class":487}," linkProps ",[145,1662,460],{"class":448},[145,1664,1293],{"class":1542},[145,1666,991],{"class":487},[145,1668,1669],{"class":1542},"pickLinkProps",[145,1671,1672],{"class":487},"(props))\n",[145,1674,1676],{"class":147,"line":1675},68,[145,1677,603],{"emptyLinePlaceholder":602},[145,1679,1681,1683,1686,1688,1690,1692,1696],{"class":147,"line":1680},69,[145,1682,1534],{"class":456},[145,1684,1685],{"class":487}," loadingAutoState ",[145,1687,460],{"class":448},[145,1689,1225],{"class":1542},[145,1691,991],{"class":487},[145,1693,1695],{"class":1694},"sfNiH","false",[145,1697,1698],{"class":487},")\n",[145,1700,1702,1704,1707,1709,1711,1713,1716,1718,1721,1723,1725,1728,1730,1733,1735,1737],{"class":147,"line":1701},70,[145,1703,1534],{"class":456},[145,1705,1706],{"class":487}," formLoading ",[145,1708,460],{"class":448},[145,1710,1230],{"class":1542},[145,1712,449],{"class":448},[145,1714,1715],{"class":151},"Ref",[145,1717,449],{"class":448},[145,1719,1720],{"class":151},"boolean",[145,1722,693],{"class":448},[145,1724,683],{"class":448},[145,1726,1727],{"class":151}," undefined",[145,1729,693],{"class":448},[145,1731,1732],{"class":487},"(formLoadingInjectionKey",[145,1734,559],{"class":448},[145,1736,1727],{"class":448},[145,1738,1698],{"class":487},[145,1740,1742],{"class":147,"line":1741},71,[145,1743,603],{"emptyLinePlaceholder":602},[145,1745,1747,1750,1753,1756,1758,1760,1762,1764,1766],{"class":147,"line":1746},72,[145,1748,1749],{"class":456},"async",[145,1751,1752],{"class":456}," function",[145,1754,1755],{"class":1542}," onClickWrapper",[145,1757,991],{"class":448},[145,1759,995],{"class":994},[145,1761,998],{"class":448},[145,1763,1001],{"class":151},[145,1765,1004],{"class":448},[145,1767,696],{"class":448},[145,1769,1771,1774,1777,1780,1782],{"class":147,"line":1770},73,[145,1772,1773],{"class":487},"  loadingAutoState",[145,1775,1776],{"class":448},".",[145,1778,1779],{"class":487},"value",[145,1781,615],{"class":448},[145,1783,1784],{"class":1694}," true\n",[145,1786,1788,1791,1794,1796,1798,1800,1803,1805,1807,1809,1812,1814,1817,1820,1822,1824,1827,1830,1832,1834,1836],{"class":147,"line":1787},74,[145,1789,1790],{"class":456},"  const",[145,1792,1793],{"class":487}," callbacks",[145,1795,615],{"class":448},[145,1797,1031],{"class":487},[145,1799,1776],{"class":448},[145,1801,1802],{"class":1542},"isArray",[145,1804,991],{"class":452},[145,1806,1129],{"class":487},[145,1808,1776],{"class":448},[145,1810,1811],{"class":487},"onClick",[145,1813,1025],{"class":452},[145,1815,1816],{"class":448},"?",[145,1818,1819],{"class":487}," props",[145,1821,1776],{"class":448},[145,1823,1811],{"class":487},[145,1825,1826],{"class":448}," :",[145,1828,1829],{"class":452}," [",[145,1831,1129],{"class":487},[145,1833,1776],{"class":448},[145,1835,1811],{"class":487},[145,1837,770],{"class":452},[145,1839,1841,1844],{"class":147,"line":1840},75,[145,1842,1843],{"class":477},"  try",[145,1845,696],{"class":448},[145,1847,1849,1852,1854,1856,1859,1861,1864,1866,1869,1871,1874,1876,1879,1882,1884,1886],{"class":147,"line":1848},76,[145,1850,1851],{"class":477},"    await",[145,1853,1015],{"class":151},[145,1855,1776],{"class":448},[145,1857,1858],{"class":1542},"all",[145,1860,991],{"class":452},[145,1862,1863],{"class":487},"callbacks",[145,1865,1776],{"class":448},[145,1867,1868],{"class":1542},"map",[145,1870,991],{"class":452},[145,1872,1873],{"class":994},"fn",[145,1875,1007],{"class":456},[145,1877,1878],{"class":1542}," fn",[145,1880,1881],{"class":448},"?.",[145,1883,991],{"class":452},[145,1885,995],{"class":487},[145,1887,1888],{"class":452},")))\n",[145,1890,1892,1895,1898],{"class":147,"line":1891},77,[145,1893,1894],{"class":448},"  }",[145,1896,1897],{"class":477}," finally",[145,1899,696],{"class":448},[145,1901,1903,1906,1908,1910,1912],{"class":147,"line":1902},78,[145,1904,1905],{"class":487},"    loadingAutoState",[145,1907,1776],{"class":448},[145,1909,1779],{"class":487},[145,1911,615],{"class":448},[145,1913,1914],{"class":1694}," false\n",[145,1916,1918],{"class":147,"line":1917},79,[145,1919,1920],{"class":448},"  }\n",[145,1922,1924],{"class":147,"line":1923},80,[145,1925,1101],{"class":448},[145,1927,1929],{"class":147,"line":1928},81,[145,1930,603],{"emptyLinePlaceholder":602},[145,1932,1934,1936,1939,1941,1943,1945,1948,1950],{"class":147,"line":1933},82,[145,1935,1534],{"class":456},[145,1937,1938],{"class":487}," isLoading ",[145,1940,460],{"class":448},[145,1942,1220],{"class":1542},[145,1944,991],{"class":487},[145,1946,1947],{"class":448},"()",[145,1949,1007],{"class":456},[145,1951,696],{"class":448},[145,1953,1955,1958,1960,1962,1965,1968,1970,1972,1974,1977,1980,1982,1985,1987,1989,1991,1993,1996,1998,2000,2002,2004,2006,2008,2011,2013,2016,2018],{"class":147,"line":1954},83,[145,1956,1957],{"class":477},"  return",[145,1959,1819],{"class":487},[145,1961,1776],{"class":448},[145,1963,1964],{"class":487},"loading",[145,1966,1967],{"class":448}," ||",[145,1969,988],{"class":452},[145,1971,1129],{"class":487},[145,1973,1776],{"class":448},[145,1975,1976],{"class":487},"loadingAuto",[145,1978,1979],{"class":448}," &&",[145,1981,988],{"class":452},[145,1983,1984],{"class":487},"loadingAutoState",[145,1986,1776],{"class":448},[145,1988,1779],{"class":487},[145,1990,1967],{"class":448},[145,1992,988],{"class":452},[145,1994,1995],{"class":487},"formLoading",[145,1997,1881],{"class":448},[145,1999,1779],{"class":487},[145,2001,1979],{"class":448},[145,2003,1819],{"class":487},[145,2005,1776],{"class":448},[145,2007,609],{"class":487},[145,2009,2010],{"class":448}," ===",[145,2012,497],{"class":448},[145,2014,2015],{"class":155},"submit",[145,2017,637],{"class":448},[145,2019,1888],{"class":452},[145,2021,2023,2025],{"class":147,"line":2022},84,[145,2024,1634],{"class":448},[145,2026,1698],{"class":487},[145,2028,2030],{"class":147,"line":2029},85,[145,2031,603],{"emptyLinePlaceholder":602},[145,2033,2035,2037,2039,2042,2044,2047,2049,2052,2054,2057,2059,2061,2063],{"class":147,"line":2034},86,[145,2036,1534],{"class":456},[145,2038,484],{"class":448},[145,2040,2041],{"class":487}," isLeading",[145,2043,559],{"class":448},[145,2045,2046],{"class":487}," isTrailing",[145,2048,559],{"class":448},[145,2050,2051],{"class":487}," leadingIconName",[145,2053,559],{"class":448},[145,2055,2056],{"class":487}," trailingIconName ",[145,2058,1634],{"class":448},[145,2060,615],{"class":448},[145,2062,1335],{"class":1542},[145,2064,2065],{"class":487},"(\n",[145,2067,2069,2072,2074,2076,2078,2080,2083,2086,2088,2090,2093,2095,2098,2100,2103,2105],{"class":147,"line":2068},87,[145,2070,2071],{"class":1542},"  computed",[145,2073,991],{"class":487},[145,2075,1947],{"class":448},[145,2077,1007],{"class":456},[145,2079,988],{"class":487},[145,2081,2082],{"class":448},"{",[145,2084,2085],{"class":448}," ...",[145,2087,1129],{"class":487},[145,2089,559],{"class":448},[145,2091,2092],{"class":452}," loading",[145,2094,998],{"class":448},[145,2096,2097],{"class":487}," isLoading",[145,2099,1776],{"class":448},[145,2101,2102],{"class":487},"value ",[145,2104,1634],{"class":448},[145,2106,2107],{"class":487},"))\n",[145,2109,2111],{"class":147,"line":2110},88,[145,2112,1698],{"class":487},[145,2114,2116],{"class":147,"line":2115},89,[145,2117,603],{"emptyLinePlaceholder":602},[145,2119,2121,2123,2126,2128,2130,2132,2134,2136,2138,2140],{"class":147,"line":2120},90,[145,2122,1534],{"class":456},[145,2124,2125],{"class":487}," ui ",[145,2127,460],{"class":448},[145,2129,1220],{"class":1542},[145,2131,991],{"class":487},[145,2133,1947],{"class":448},[145,2135,1007],{"class":456},[145,2137,1423],{"class":1542},[145,2139,991],{"class":487},[145,2141,2142],{"class":448},"{\n",[145,2144,2146,2149,2151,2153,2156],{"class":147,"line":2145},91,[145,2147,2148],{"class":452},"  extend",[145,2150,998],{"class":448},[145,2152,1423],{"class":1542},[145,2154,2155],{"class":487},"(theme)",[145,2157,2158],{"class":448},",\n",[145,2160,2162,2165,2167,2169],{"class":147,"line":2161},92,[145,2163,2164],{"class":448},"  ...",[145,2166,1281],{"class":1542},[145,2168,991],{"class":487},[145,2170,2142],{"class":448},[145,2172,2174,2177,2179],{"class":147,"line":2173},93,[145,2175,2176],{"class":452},"    variants",[145,2178,998],{"class":448},[145,2180,696],{"class":448},[145,2182,2184,2187,2189],{"class":147,"line":2183},94,[145,2185,2186],{"class":452},"      active",[145,2188,998],{"class":448},[145,2190,696],{"class":448},[145,2192,2194,2197,2199],{"class":147,"line":2193},95,[145,2195,2196],{"class":452},"        true",[145,2198,998],{"class":448},[145,2200,696],{"class":448},[145,2202,2204,2207,2209,2211,2214,2216,2219,2221,2223,2225,2227,2229,2232,2234,2237,2239,2242,2244,2246,2248],{"class":147,"line":2203},96,[145,2205,2206],{"class":452},"          base",[145,2208,998],{"class":448},[145,2210,1402],{"class":1542},[145,2212,2213],{"class":487},"(appConfig",[145,2215,1776],{"class":448},[145,2217,2218],{"class":487},"ui",[145,2220,1881],{"class":448},[145,2222,634],{"class":487},[145,2224,1881],{"class":448},[145,2226,755],{"class":487},[145,2228,1881],{"class":448},[145,2230,2231],{"class":487},"active",[145,2233,1881],{"class":448},[145,2235,2236],{"class":487},"true",[145,2238,1881],{"class":448},[145,2240,2241],{"class":487},"base",[145,2243,559],{"class":448},[145,2245,1819],{"class":487},[145,2247,1776],{"class":448},[145,2249,2250],{"class":487},"activeClass)\n",[145,2252,2254],{"class":147,"line":2253},97,[145,2255,2256],{"class":448},"        },\n",[145,2258,2260,2263,2265],{"class":147,"line":2259},98,[145,2261,2262],{"class":452},"        false",[145,2264,998],{"class":448},[145,2266,696],{"class":448},[145,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308],{"class":147,"line":2269},99,[145,2271,2206],{"class":452},[145,2273,998],{"class":448},[145,2275,1402],{"class":1542},[145,2277,2213],{"class":487},[145,2279,1776],{"class":448},[145,2281,2218],{"class":487},[145,2283,1881],{"class":448},[145,2285,634],{"class":487},[145,2287,1881],{"class":448},[145,2289,755],{"class":487},[145,2291,1881],{"class":448},[145,2293,2231],{"class":487},[145,2295,1881],{"class":448},[145,2297,1695],{"class":487},[145,2299,1881],{"class":448},[145,2301,2241],{"class":487},[145,2303,559],{"class":448},[145,2305,1819],{"class":487},[145,2307,1776],{"class":448},[145,2309,2310],{"class":487},"inactiveClass)\n",[145,2312,2314],{"class":147,"line":2313},100,[145,2315,2316],{"class":448},"        }\n",[145,2318,2320],{"class":147,"line":2319},101,[145,2321,2322],{"class":448},"      }\n",[145,2324,2326],{"class":147,"line":2325},102,[145,2327,2328],{"class":448},"    }\n",[145,2330,2332,2335,2338,2340,2342,2344,2347,2350,2353],{"class":147,"line":2331},103,[145,2333,2334],{"class":448},"  },",[145,2336,2337],{"class":487}," appConfig",[145,2339,1776],{"class":448},[145,2341,2218],{"class":487},[145,2343,1881],{"class":448},[145,2345,2346],{"class":487},"button ",[145,2348,2349],{"class":448},"||",[145,2351,2352],{"class":448}," {}",[145,2354,1698],{"class":487},[145,2356,2358,2360,2363],{"class":147,"line":2357},104,[145,2359,1634],{"class":448},[145,2361,2362],{"class":487},")(",[145,2364,2142],{"class":448},[145,2366,2368,2370,2372,2374,2376,2378],{"class":147,"line":2367},105,[145,2369,743],{"class":452},[145,2371,998],{"class":448},[145,2373,1819],{"class":487},[145,2375,1776],{"class":448},[145,2377,765],{"class":487},[145,2379,2158],{"class":448},[145,2381,2383,2385,2387,2389,2391,2393],{"class":147,"line":2382},106,[145,2384,826],{"class":452},[145,2386,998],{"class":448},[145,2388,1819],{"class":487},[145,2390,1776],{"class":448},[145,2392,845],{"class":487},[145,2394,2158],{"class":448},[145,2396,2398,2400,2402,2405,2407,2409],{"class":147,"line":2397},107,[145,2399,905],{"class":452},[145,2401,998],{"class":448},[145,2403,2404],{"class":487}," buttonSize",[145,2406,1776],{"class":448},[145,2408,1779],{"class":487},[145,2410,2158],{"class":448},[145,2412,2414,2417,2419,2421,2423,2425],{"class":147,"line":2413},108,[145,2415,2416],{"class":452},"  loading",[145,2418,998],{"class":448},[145,2420,2097],{"class":487},[145,2422,1776],{"class":448},[145,2424,1779],{"class":487},[145,2426,2158],{"class":448},[145,2428,2430,2432,2434,2436,2438,2441],{"class":147,"line":2429},109,[145,2431,957],{"class":452},[145,2433,998],{"class":448},[145,2435,1819],{"class":487},[145,2437,1776],{"class":448},[145,2439,2440],{"class":487},"block",[145,2442,2158],{"class":448},[145,2444,2446,2448,2450,2452,2454,2457,2459,2461,2464,2466,2468,2471,2474,2477,2479,2481,2484],{"class":147,"line":2445},110,[145,2447,940],{"class":452},[145,2449,998],{"class":448},[145,2451,1819],{"class":487},[145,2453,1776],{"class":448},[145,2455,2456],{"class":487},"square ",[145,2458,2349],{"class":448},[145,2460,988],{"class":487},[145,2462,2463],{"class":448},"!",[145,2465,1091],{"class":487},[145,2467,1776],{"class":448},[145,2469,2470],{"class":487},"default ",[145,2472,2473],{"class":448},"&&",[145,2475,2476],{"class":448}," !",[145,2478,1129],{"class":487},[145,2480,1776],{"class":448},[145,2482,2483],{"class":487},"label)",[145,2485,2158],{"class":448},[145,2487,2489,2491,2493,2495,2497,2499],{"class":147,"line":2488},111,[145,2490,1124],{"class":452},[145,2492,998],{"class":448},[145,2494,2041],{"class":487},[145,2496,1776],{"class":448},[145,2498,1779],{"class":487},[145,2500,2158],{"class":448},[145,2502,2504,2506,2508,2510,2512,2514],{"class":147,"line":2503},112,[145,2505,1158],{"class":452},[145,2507,998],{"class":448},[145,2509,2046],{"class":487},[145,2511,1776],{"class":448},[145,2513,1779],{"class":487},[145,2515,2158],{"class":448},[145,2517,2519,2522,2524,2526,2528],{"class":147,"line":2518},113,[145,2520,2521],{"class":452},"  buttonGroup",[145,2523,998],{"class":448},[145,2525,1621],{"class":487},[145,2527,1776],{"class":448},[145,2529,2530],{"class":487},"value\n",[145,2532,2534,2536],{"class":147,"line":2533},114,[145,2535,1634],{"class":448},[145,2537,2107],{"class":487},[145,2539,2541,2543,2545],{"class":147,"line":2540},115,[145,2542,1179],{"class":448},[145,2544,453],{"class":452},[145,2546,471],{"class":448},[145,2548,2550],{"class":147,"line":2549},116,[145,2551,603],{"emptyLinePlaceholder":602},[145,2553,2555,2557,2560],{"class":147,"line":2554},117,[145,2556,449],{"class":448},[145,2558,2559],{"class":452},"template",[145,2561,471],{"class":448},[145,2563,2565,2568],{"class":147,"line":2564},118,[145,2566,2567],{"class":448},"  \u003C",[145,2569,2570],{"class":452},"ULink\n",[145,2572,2574,2577,2579,2581,2584,2586,2589,2592,2594],{"class":147,"line":2573},119,[145,2575,2576],{"class":456},"    v-slot",[145,2578,460],{"class":448},[145,2580,463],{"class":448},[145,2582,2583],{"class":448},"{ ",[145,2585,2231],{"class":487},[145,2587,2588],{"class":448},", ...",[145,2590,2591],{"class":487},"slotProps",[145,2593,491],{"class":448},[145,2595,2596],{"class":448},"\"\n",[145,2598,2600,2603,2605,2607,2609,2611],{"class":147,"line":2599},120,[145,2601,2602],{"class":448},"    :",[145,2604,609],{"class":456},[145,2606,460],{"class":448},[145,2608,463],{"class":448},[145,2610,609],{"class":487},[145,2612,2596],{"class":448},[145,2614,2616,2618,2621,2623,2625,2627,2630,2633],{"class":147,"line":2615},121,[145,2617,2602],{"class":448},[145,2619,2620],{"class":456},"disabled",[145,2622,460],{"class":448},[145,2624,463],{"class":448},[145,2626,2620],{"class":487},[145,2628,2629],{"class":448}," || ",[145,2631,2632],{"class":487},"isLoading",[145,2634,2596],{"class":448},[145,2636,2638,2641,2643,2645,2648,2650,2653,2656,2658,2660,2662,2665,2667,2669,2671,2673,2675,2677,2679,2682],{"class":147,"line":2637},122,[145,2639,2640],{"class":456},"    v-bind",[145,2642,460],{"class":448},[145,2644,463],{"class":448},[145,2646,2647],{"class":1542},"omit",[145,2649,991],{"class":448},[145,2651,2652],{"class":487},"linkProps",[145,2654,2655],{"class":448},", [",[145,2657,637],{"class":448},[145,2659,609],{"class":155},[145,2661,637],{"class":448},[145,2663,2664],{"class":448},", ",[145,2666,637],{"class":448},[145,2668,2620],{"class":155},[145,2670,637],{"class":448},[145,2672,2664],{"class":448},[145,2674,637],{"class":448},[145,2676,1811],{"class":155},[145,2678,637],{"class":448},[145,2680,2681],{"class":448},"])",[145,2683,2596],{"class":448},[145,2685,2687],{"class":147,"line":2686},123,[145,2688,2689],{"class":456},"    custom\n",[145,2691,2693],{"class":147,"line":2692},124,[145,2694,2695],{"class":448},"  >\n",[145,2697,2699,2702],{"class":147,"line":2698},125,[145,2700,2701],{"class":448},"    \u003C",[145,2703,2704],{"class":452},"ULinkBase\n",[145,2706,2708,2711,2713,2715,2717],{"class":147,"line":2707},126,[145,2709,2710],{"class":456},"      v-bind",[145,2712,460],{"class":448},[145,2714,463],{"class":448},[145,2716,2591],{"class":487},[145,2718,2596],{"class":448},[145,2720,2722,2725,2728,2730,2732,2734,2736,2738],{"class":147,"line":2721},127,[145,2723,2724],{"class":448},"      :",[145,2726,2727],{"class":456},"class",[145,2729,460],{"class":448},[145,2731,463],{"class":448},[145,2733,2218],{"class":487},[145,2735,1776],{"class":448},[145,2737,2241],{"class":1542},[145,2739,2740],{"class":448},"({\n",[145,2742,2744,2747,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768],{"class":147,"line":2743},128,[145,2745,2746],{"class":452},"        class",[145,2748,2749],{"class":448},": [",[145,2751,1129],{"class":487},[145,2753,1776],{"class":448},[145,2755,2218],{"class":487},[145,2757,1881],{"class":448},[145,2759,2241],{"class":487},[145,2761,2664],{"class":448},[145,2763,1129],{"class":487},[145,2765,1776],{"class":448},[145,2767,2727],{"class":487},[145,2769,2770],{"class":448},"],\n",[145,2772,2774,2777],{"class":147,"line":2773},129,[145,2775,2776],{"class":487},"        active",[145,2778,2158],{"class":448},[145,2780,2782,2785,2787,2790,2793,2796,2798,2800,2802],{"class":147,"line":2781},130,[145,2783,2784],{"class":448},"        ...(",[145,2786,2231],{"class":487},[145,2788,2789],{"class":448}," && ",[145,2791,2792],{"class":487},"activeVariant",[145,2794,2795],{"class":448}," ? { ",[145,2797,845],{"class":452},[145,2799,282],{"class":448},[145,2801,2792],{"class":487},[145,2803,2804],{"class":448}," } : {}),\n",[145,2806,2808,2810,2812,2814,2817,2819,2821,2823,2825],{"class":147,"line":2807},131,[145,2809,2784],{"class":448},[145,2811,2231],{"class":487},[145,2813,2789],{"class":448},[145,2815,2816],{"class":487},"activeColor",[145,2818,2795],{"class":448},[145,2820,765],{"class":452},[145,2822,282],{"class":448},[145,2824,2816],{"class":487},[145,2826,2827],{"class":448}," } : {})\n",[145,2829,2831,2834],{"class":147,"line":2830},132,[145,2832,2833],{"class":448},"      })",[145,2835,2596],{"class":448},[145,2837,2839,2842,2845,2847,2849,2852],{"class":147,"line":2838},133,[145,2840,2841],{"class":448},"      @",[145,2843,2844],{"class":456},"click",[145,2846,460],{"class":448},[145,2848,463],{"class":448},[145,2850,2851],{"class":487},"onClickWrapper",[145,2853,2596],{"class":448},[145,2855,2857],{"class":147,"line":2856},134,[145,2858,2859],{"class":448},"    >\n",[145,2861,2863,2866,2869,2872,2874,2876,2879,2881],{"class":147,"line":2862},135,[145,2864,2865],{"class":448},"      \u003C",[145,2867,2868],{"class":452},"slot",[145,2870,2871],{"class":456}," name",[145,2873,460],{"class":448},[145,2875,463],{"class":448},[145,2877,2878],{"class":155},"leading",[145,2880,463],{"class":448},[145,2882,471],{"class":448},[145,2884,2886,2889,2892,2895,2897,2899,2902,2904,2907,2909,2911,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2937,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2961,2963],{"class":147,"line":2885},136,[145,2887,2888],{"class":448},"        \u003C",[145,2890,2891],{"class":452},"UIcon",[145,2893,2894],{"class":477}," v-if",[145,2896,460],{"class":448},[145,2898,463],{"class":448},[145,2900,2901],{"class":487},"isLeading",[145,2903,2789],{"class":448},[145,2905,2906],{"class":487},"leadingIconName",[145,2908,463],{"class":448},[145,2910,1826],{"class":448},[145,2912,2913],{"class":456},"name",[145,2915,460],{"class":448},[145,2917,463],{"class":448},[145,2919,2906],{"class":487},[145,2921,463],{"class":448},[145,2923,1826],{"class":448},[145,2925,2727],{"class":456},[145,2927,460],{"class":448},[145,2929,463],{"class":448},[145,2931,2218],{"class":487},[145,2933,1776],{"class":448},[145,2935,2936],{"class":1542},"leadingIcon",[145,2938,2939],{"class":448},"({ ",[145,2941,2727],{"class":452},[145,2943,282],{"class":448},[145,2945,1129],{"class":487},[145,2947,1776],{"class":448},[145,2949,2218],{"class":487},[145,2951,1881],{"class":448},[145,2953,2936],{"class":487},[145,2955,2664],{"class":448},[145,2957,2231],{"class":487},[145,2959,2960],{"class":448}," })",[145,2962,463],{"class":448},[145,2964,2965],{"class":448}," />\n",[145,2967,2969,2971,2974,2977,2979,2981,2984,2987,2989,2991,2993,2995,2997,3000,3002,3004,3006,3008,3011,3013,3015,3017,3019,3022,3024,3026,3028,3030,3032,3034,3036,3038,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088],{"class":147,"line":2968},137,[145,2970,2888],{"class":448},[145,2972,2973],{"class":452},"UAvatar",[145,2975,2976],{"class":477}," v-else-if",[145,2978,460],{"class":448},[145,2980,463],{"class":448},[145,2982,2983],{"class":448},"!!",[145,2985,2986],{"class":487},"avatar",[145,2988,463],{"class":448},[145,2990,1826],{"class":448},[145,2992,924],{"class":456},[145,2994,460],{"class":448},[145,2996,463],{"class":448},[145,2998,2999],{"class":448},"((",[145,3001,1129],{"class":487},[145,3003,1776],{"class":448},[145,3005,2218],{"class":487},[145,3007,1881],{"class":448},[145,3009,3010],{"class":487},"leadingAvatarSize",[145,3012,2629],{"class":448},[145,3014,2218],{"class":487},[145,3016,1776],{"class":448},[145,3018,3010],{"class":1542},[145,3020,3021],{"class":448},"()) ",[145,3023,1598],{"class":477},[145,3025,562],{"class":151},[145,3027,750],{"class":448},[145,3029,637],{"class":448},[145,3031,924],{"class":155},[145,3033,637],{"class":448},[145,3035,2681],{"class":448},[145,3037,463],{"class":448},[145,3039,3040],{"class":456}," v-bind",[145,3042,460],{"class":448},[145,3044,463],{"class":448},[145,3046,2986],{"class":487},[145,3048,463],{"class":448},[145,3050,1826],{"class":448},[145,3052,2727],{"class":456},[145,3054,460],{"class":448},[145,3056,463],{"class":448},[145,3058,2218],{"class":487},[145,3060,1776],{"class":448},[145,3062,3063],{"class":1542},"leadingAvatar",[145,3065,2939],{"class":448},[145,3067,2727],{"class":452},[145,3069,282],{"class":448},[145,3071,1129],{"class":487},[145,3073,1776],{"class":448},[145,3075,2218],{"class":487},[145,3077,1881],{"class":448},[145,3079,3063],{"class":487},[145,3081,2664],{"class":448},[145,3083,2231],{"class":487},[145,3085,2960],{"class":448},[145,3087,463],{"class":448},[145,3089,2965],{"class":448},[145,3091,3093,3096,3098],{"class":147,"line":3092},138,[145,3094,3095],{"class":448},"      \u003C/",[145,3097,2868],{"class":452},[145,3099,471],{"class":448},[145,3101,3103],{"class":147,"line":3102},139,[145,3104,603],{"emptyLinePlaceholder":602},[145,3106,3108,3110,3112],{"class":147,"line":3107},140,[145,3109,2865],{"class":448},[145,3111,2868],{"class":452},[145,3113,471],{"class":448},[145,3115,3117,3119,3121,3123,3125,3127,3130,3133,3135,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178],{"class":147,"line":3116},141,[145,3118,2888],{"class":448},[145,3120,145],{"class":452},[145,3122,2894],{"class":477},[145,3124,460],{"class":448},[145,3126,463],{"class":448},[145,3128,3129],{"class":487},"label",[145,3131,3132],{"class":448}," !== undefined && ",[145,3134,3129],{"class":487},[145,3136,3137],{"class":448}," !== null",[145,3139,463],{"class":448},[145,3141,1826],{"class":448},[145,3143,2727],{"class":456},[145,3145,460],{"class":448},[145,3147,463],{"class":448},[145,3149,2218],{"class":487},[145,3151,1776],{"class":448},[145,3153,3129],{"class":1542},[145,3155,2939],{"class":448},[145,3157,2727],{"class":452},[145,3159,282],{"class":448},[145,3161,1129],{"class":487},[145,3163,1776],{"class":448},[145,3165,2218],{"class":487},[145,3167,1881],{"class":448},[145,3169,3129],{"class":487},[145,3171,2664],{"class":448},[145,3173,2231],{"class":487},[145,3175,2960],{"class":448},[145,3177,463],{"class":448},[145,3179,471],{"class":448},[145,3181,3183,3186,3189],{"class":147,"line":3182},142,[145,3184,3185],{"class":448},"          {{",[145,3187,3188],{"class":487}," label ",[145,3190,3191],{"class":448},"}}\n",[145,3193,3195,3198,3200],{"class":147,"line":3194},143,[145,3196,3197],{"class":448},"        \u003C/",[145,3199,145],{"class":452},[145,3201,471],{"class":448},[145,3203,3205,3207,3209],{"class":147,"line":3204},144,[145,3206,3095],{"class":448},[145,3208,2868],{"class":452},[145,3210,471],{"class":448},[145,3212,3214],{"class":147,"line":3213},145,[145,3215,603],{"emptyLinePlaceholder":602},[145,3217,3219,3221,3223,3225,3227,3229,3232,3234],{"class":147,"line":3218},146,[145,3220,2865],{"class":448},[145,3222,2868],{"class":452},[145,3224,2871],{"class":456},[145,3226,460],{"class":448},[145,3228,463],{"class":448},[145,3230,3231],{"class":155},"trailing",[145,3233,463],{"class":448},[145,3235,471],{"class":448},[145,3237,3239,3241,3243,3245,3247,3249,3252,3254,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310],{"class":147,"line":3238},147,[145,3240,2888],{"class":448},[145,3242,2891],{"class":452},[145,3244,2894],{"class":477},[145,3246,460],{"class":448},[145,3248,463],{"class":448},[145,3250,3251],{"class":487},"isTrailing",[145,3253,2789],{"class":448},[145,3255,3256],{"class":487},"trailingIconName",[145,3258,463],{"class":448},[145,3260,1826],{"class":448},[145,3262,2913],{"class":456},[145,3264,460],{"class":448},[145,3266,463],{"class":448},[145,3268,3256],{"class":487},[145,3270,463],{"class":448},[145,3272,1826],{"class":448},[145,3274,2727],{"class":456},[145,3276,460],{"class":448},[145,3278,463],{"class":448},[145,3280,2218],{"class":487},[145,3282,1776],{"class":448},[145,3284,3285],{"class":1542},"trailingIcon",[145,3287,2939],{"class":448},[145,3289,2727],{"class":452},[145,3291,282],{"class":448},[145,3293,1129],{"class":487},[145,3295,1776],{"class":448},[145,3297,2218],{"class":487},[145,3299,1881],{"class":448},[145,3301,3285],{"class":487},[145,3303,2664],{"class":448},[145,3305,2231],{"class":487},[145,3307,2960],{"class":448},[145,3309,463],{"class":448},[145,3311,2965],{"class":448},[145,3313,3315,3317,3319],{"class":147,"line":3314},148,[145,3316,3095],{"class":448},[145,3318,2868],{"class":452},[145,3320,471],{"class":448},[145,3322,3324,3327,3330],{"class":147,"line":3323},149,[145,3325,3326],{"class":448},"    \u003C/",[145,3328,3329],{"class":452},"ULinkBase",[145,3331,471],{"class":448},[145,3333,3335,3338,3341],{"class":147,"line":3334},150,[145,3336,3337],{"class":448},"  \u003C/",[145,3339,3340],{"class":452},"ULink",[145,3342,471],{"class":448},[145,3344,3346,3348,3350],{"class":147,"line":3345},151,[145,3347,1179],{"class":448},[145,3349,2559],{"class":452},[145,3351,471],{"class":448},[48,3353,3355],{"id":3354},"build-system","Build System",[63,3357,3358,3364,3370,3375],{},[66,3359,3360,3363],{},[69,3361,3362],{},"Vite",": Fast development and building",[66,3365,3366,3369],{},[69,3367,3368],{},"Rollup",": Optimized library bundling",[66,3371,3372,3374],{},[69,3373,257],{},": Full type safety",[66,3376,3377,3380],{},[69,3378,3379],{},"Tree Shaking",": Only import what you use",[39,3382,3384],{"id":3383},"success-stories","🎉 Success Stories",[48,3386,3388],{"id":3387},"developer-feedback","Developer Feedback",[3390,3391,3392],"blockquote",{},[32,3393,3394,3395],{},"\"This library saved me hours of development time. The components are exactly what I needed for my e-commerce project.\" - ",[3396,3397,3398],"em",{},"Ahmed, Full-Stack Developer",[3390,3400,3401],{},[32,3402,3403,3404],{},"\"The accessibility features are top-notch. My client was impressed with the screen reader support.\" - ",[3396,3405,3406],{},"Sarah, UI/UX Developer",[48,3408,3410],{"id":3409},"project-metrics","Project Metrics",[63,3412,3413,3419,3425,3431],{},[66,3414,3415,3418],{},[69,3416,3417],{},"Installations",": Growing steadily",[66,3420,3421,3424],{},[69,3422,3423],{},"GitHub Stars",": Community recognition",[66,3426,3427,3430],{},[69,3428,3429],{},"Issue Resolution",": Quick response times",[66,3432,3433,3436],{},[69,3434,3435],{},"Update Frequency",": Regular releases",[39,3438,3440],{"id":3439},"questions-for-you","🤔 Questions for You",[63,3442,3443,3446,3449,3452],{},[66,3444,3445],{},"What components are you missing in your current UI libraries?",[66,3447,3448],{},"Have you tried building your own component library?",[66,3450,3451],{},"What's your experience with Nuxt UI or similar libraries?",[66,3453,3454],{},"How do you handle theming and customization in your projects?",[39,3456,3458],{"id":3457},"lessons-learned","💡 Lessons Learned",[3460,3461,3462,3468,3474,3480,3486],"ol",{},[66,3463,3464,3467],{},[69,3465,3466],{},"Start with Real Problems",": Don't build solutions looking for problems",[66,3469,3470,3473],{},[69,3471,3472],{},"Leverage Existing Work",": Build on top of proven foundations",[66,3475,3476,3479],{},[69,3477,3478],{},"Quality Over Quantity",": Better to have fewer, well-tested components",[66,3481,3482,3485],{},[69,3483,3484],{},"Community First",": Listen to users and iterate based on feedback",[66,3487,3488,3491],{},[69,3489,3490],{},"Documentation Matters",": Good docs are as important as good code",[39,3493,3495],{"id":3494},"lets-build-together","🚀 Let's Build Together!",[32,3497,3498],{},"This journey started from my daily development needs, but it doesn't have to end there. Whether you're a developer looking for better UI components, someone wanting to contribute to open source, or just curious about the process – you're welcome to join!",[48,3500,3502],{"id":3501},"get-started-today","Get Started Today",[135,3504,3505],{"className":137,"code":138,"language":139,"meta":140,"style":140},[142,3506,3507],{"__ignoreMap":140},[145,3508,3509,3511,3513],{"class":147,"line":148},[145,3510,152],{"class":151},[145,3512,156],{"class":155},[145,3514,159],{"class":155},[48,3516,3518],{"id":3517},"join-the-community","Join the Community",[63,3520,3521,3527,3533],{},[66,3522,3523,3526],{},[69,3524,3525],{},"GitHub",": Star the repo, open issues, submit PRs",[66,3528,3529,3532],{},[69,3530,3531],{},"Discussions",": Share ideas and get help",[66,3534,3535,3538],{},[69,3536,3537],{},"Contributing",": Every contribution is valuable",[3540,3541],"hr",{},[32,3543,3544],{},[3396,3545,3546],{},"This package was built from real-world needs and is actively maintained. More improvements are coming very soon insha'Allah. If you've got ideas, suggestions, or want to contribute — you're more than welcome! ❤️ Let's grow this together!",[32,3548,3549],{},[3396,3550,3551],{},"Follow me for more insights on Vue development, component libraries, and open source projects!",[3553,3554,3555],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s6hCs, html code.shiki .s6hCs{--shiki-light:#9C3EDA;--shiki-light-font-style:italic;--shiki-default:#C792EA;--shiki-default-font-style:italic;--shiki-dark:#C792EA;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":140,"searchDepth":474,"depth":474,"links":3557},[3558,3559,3565,3566,3569,3575,3576,3577,3578,3582,3583,3587,3591,3592,3593],{"id":41,"depth":474,"text":42},{"id":45,"depth":474,"text":46,"children":3560},[3561,3562,3563,3564],{"id":50,"depth":506,"text":51},{"id":57,"depth":506,"text":58},{"id":75,"depth":506,"text":76},{"id":82,"depth":506,"text":83},{"id":89,"depth":474,"text":90},{"id":128,"depth":474,"text":129,"children":3567},[3568],{"id":132,"depth":506,"text":133},{"id":162,"depth":474,"text":163,"children":3570},[3571,3572,3573,3574],{"id":166,"depth":506,"text":167},{"id":173,"depth":506,"text":174},{"id":180,"depth":506,"text":181},{"id":201,"depth":506,"text":202},{"id":231,"depth":474,"text":232},{"id":273,"depth":474,"text":274},{"id":320,"depth":474,"text":321},{"id":340,"depth":474,"text":341,"children":3579},[3580,3581],{"id":344,"depth":506,"text":345},{"id":362,"depth":506,"text":363},{"id":398,"depth":474,"text":399},{"id":431,"depth":474,"text":432,"children":3584},[3585,3586],{"id":435,"depth":506,"text":436},{"id":3354,"depth":506,"text":3355},{"id":3383,"depth":474,"text":3384,"children":3588},[3589,3590],{"id":3387,"depth":506,"text":3388},{"id":3409,"depth":506,"text":3410},{"id":3439,"depth":474,"text":3440},{"id":3457,"depth":474,"text":3458},{"id":3494,"depth":474,"text":3495,"children":3594},[3595,3596],{"id":3501,"depth":506,"text":3502},{"id":3517,"depth":506,"text":3518},"2025-07-25T00:00:00.000Z","A detailed journey of building @eslamdevui/ui, a custom Nuxt UI package born from actual project requirements and daily development challenges.","md","https://nuxt.com/assets/blog/nuxt-ui-v3.png",{"tags":3602},[3603,3604,3605,3606,3607,3608,3609],"Vue 3","Nuxt 3","Tailwind CSS","Nuxt UI","Component Library","Open Source","Web Development",{"title":10,"description":3598},"pTBwyI_FU915_MYwFCNq5KtE1VvYl8cv--M_8iHK8wI",[3613,3614],null,{"title":14,"path":15,"stem":16,"description":3615,"children":-1},"A comprehensive guide to cookie-based authentication systems, how they work, security risks, and how to avoid them. Includes advanced penetration testing insights and real-world attack scenarios.",1782857531467]