[{"data":1,"prerenderedAt":3555},["ShallowReactive",2],{"i-lucide:menu":3,"blog-post-reusable-alert-dialog-vue-react":8,"i-lucide:folder-open":3541,"i-lucide:chevron-down":3543,"i-lucide:copy":3545,"i-vscode-icons:file-type-vue":3547,"i-vscode-icons:file-type-reactts":3549,"i-vscode-icons:file-type-typescript":3551,"i-vscode-icons:file-type-css":3553},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"id":9,"title":10,"body":11,"date":3533,"description":17,"extension":3534,"meta":3535,"navigation":156,"path":3536,"seo":3537,"slug":3538,"stem":3539,"__hash__":3540},"blog\u002Fblogs\u002F002.md","Reusable alert dialog in Vue and React",{"type":12,"value":13,"toc":3531},"minimark",[14,18,47,58,61,64,3528],[15,16,17],"p",{},"Every app eventually needs one of those \"Are you sure?\" dialogs. You click delete, and a little box pops up asking you to confirm. Simple enough, but if you've ever wired up that modal state by hand more than twice, you know how tedious it gets. A boolean to track visibility, a callback for confirm, another for cancel, and suddenly your component is drowning in dialog plumbing.",[15,19,20,21,25,26,30,31,34,35,38,39,42,43,46],{},"A better approach would be a ",[22,23,24],"strong",{},"Promise-based"," ",[27,28,29],"code",{},"useAlert"," composable (Vue) or hook (React) that you can call like a regular async function. Call ",[27,32,33],{},"show(...)",", ",[27,36,37],{},"await"," the result, and get back ",[27,40,41],{},"true"," or ",[27,44,45],{},"false",". No state management, no prop drilling, just a clean one-liner wherever you need confirmation.",[15,48,49,50,53,54,57],{},"The idea is simple. We create a single alert dialog component that lives at the root of our app. A shared piece of state holds the current dialog data and a ",[27,51,52],{},"resolve"," function. When you call ",[27,55,56],{},"useAlert().show(...)",", it sets that state and returns a Promise. The dialog appears, the user clicks OK or Cancel, and the Promise resolves. That's it.",[15,59,60],{},"The focus of this post is entirely on the logic — not the styling. We're using plain HTML and basic CSS here for clarity, but you could easily swap in any UI library (like Radix, Headless UI, shadcn\u002Fui, etc.) for the modal itself and the underlying logic would stay exactly the same.",[15,62,63],{},"Below is the full implementation in both Vue and React.",[65,66,67,1744],"tabs",{},[68,69,72],"tabs-item",{"icon":70,"label":71},"vscode-icons:file-type-vue","Vue",[73,74,76,1071,1396,1485],"code-tree",{"default-value":75,"expand-all":41},"components\u002FAlertDialog.vue",[77,78,83],"pre",{"className":79,"code":80,"filename":75,"language":81,"meta":82,"style":82},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { useAlert } from \"@\u002Fcomposables\u002FuseAlert\";\n\nconst { current } = useAlert();\n\nconst handleConfirm = () => {\n    current.value?.resolve(true);\n    current.value = undefined;\n}\n\nconst handleCancel = () => {\n    current.value?.resolve(false);\n    current.value = undefined;\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n    \u003Cdiv v-if=\"current !== undefined\" class=\"dialog-backdrop\">\n        \u003Cdiv class=\"dialog\">\n            \u003Ch3 v-if=\"current.data.title\">{{ current.data.title }}\u003C\u002Fh3>\n            \u003Cp>{{ current.data.message }}\u003C\u002Fp>\n            \u003Cdiv class=\"dialog-actions\">\n                \u003Cbutton class=\"dialog-btn\" @click=\"handleCancel\">\n                    {{ current.data.cancelText || 'Cancel' }}\n                \u003C\u002Fbutton>\n                \u003Cbutton class=\"dialog-btn dialog-btn-primary\" @click=\"handleConfirm\">\n                    {{ current.data.confirmText || 'OK' }}\n                \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\n\u003Cstyle scoped>\n.dialog-backdrop {\n    position: fixed;\n    inset: 0;\n    background: rgba(0, 0, 0, 0.4);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: 1000;\n}\n.dialog {\n    background: #fff;\n    border-radius: 8px;\n    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);\n    padding: 2rem;\n    min-width: 320px;\n    max-width: 90vw;\n}\n.dialog-actions {\n    display: flex;\n    gap: 1rem;\n    margin-top: 2rem;\n    justify-content: flex-end;\n}\n.dialog-btn {\n    padding: 0.5rem 1.5rem;\n    border-radius: 4px;\n    border: none;\n    background: #eee;\n    cursor: pointer;\n    font-size: 1rem;\n}\n.dialog-btn-primary {\n    background: #007bff;\n    color: #fff;\n}\n\u003C\u002Fstyle>\n","vue","",[27,84,85,120,151,158,183,188,207,235,249,255,260,276,297,310,315,325,330,340,375,396,428,446,466,500,505,515,546,552,561,571,581,591,600,605,618,628,643,657,690,703,716,728,741,746,755,770,783,820,833,846,859,864,873,884,897,909,921,926,935,950,962,975,989,1002,1014,1019,1029,1043,1057,1062],{"__ignoreMap":82},[86,87,90,94,98,102,105,108,111,115,117],"span",{"class":88,"line":89},"line",1,[86,91,93],{"class":92},"sMK4o","\u003C",[86,95,97],{"class":96},"swJcz","script",[86,99,101],{"class":100},"spNyl"," setup",[86,103,104],{"class":100}," lang",[86,106,107],{"class":92},"=",[86,109,110],{"class":92},"\"",[86,112,114],{"class":113},"sfazB","ts",[86,116,110],{"class":92},[86,118,119],{"class":92},">\n",[86,121,123,127,130,134,137,140,143,146,148],{"class":88,"line":122},2,[86,124,126],{"class":125},"s7zQu","import",[86,128,129],{"class":92}," {",[86,131,133],{"class":132},"sTEyZ"," useAlert",[86,135,136],{"class":92}," }",[86,138,139],{"class":125}," from",[86,141,142],{"class":92}," \"",[86,144,145],{"class":113},"@\u002Fcomposables\u002FuseAlert",[86,147,110],{"class":92},[86,149,150],{"class":92},";\n",[86,152,154],{"class":88,"line":153},3,[86,155,157],{"emptyLinePlaceholder":156},true,"\n",[86,159,161,164,166,169,172,175,178,181],{"class":88,"line":160},4,[86,162,163],{"class":100},"const",[86,165,129],{"class":92},[86,167,168],{"class":132}," current ",[86,170,171],{"class":92},"}",[86,173,174],{"class":92}," =",[86,176,133],{"class":177},"s2Zo4",[86,179,180],{"class":132},"()",[86,182,150],{"class":92},[86,184,186],{"class":88,"line":185},5,[86,187,157],{"emptyLinePlaceholder":156},[86,189,191,193,196,198,201,204],{"class":88,"line":190},6,[86,192,163],{"class":100},[86,194,195],{"class":132}," handleConfirm ",[86,197,107],{"class":92},[86,199,200],{"class":92}," ()",[86,202,203],{"class":100}," =>",[86,205,206],{"class":92}," {\n",[86,208,210,213,216,219,222,224,227,230,233],{"class":88,"line":209},7,[86,211,212],{"class":132},"    current",[86,214,215],{"class":92},".",[86,217,218],{"class":132},"value",[86,220,221],{"class":92},"?.",[86,223,52],{"class":177},[86,225,226],{"class":96},"(",[86,228,41],{"class":229},"sfNiH",[86,231,232],{"class":96},")",[86,234,150],{"class":92},[86,236,238,240,242,244,246],{"class":88,"line":237},8,[86,239,212],{"class":132},[86,241,215],{"class":92},[86,243,218],{"class":132},[86,245,174],{"class":92},[86,247,248],{"class":92}," undefined;\n",[86,250,252],{"class":88,"line":251},9,[86,253,254],{"class":92},"}\n",[86,256,258],{"class":88,"line":257},10,[86,259,157],{"emptyLinePlaceholder":156},[86,261,263,265,268,270,272,274],{"class":88,"line":262},11,[86,264,163],{"class":100},[86,266,267],{"class":132}," handleCancel ",[86,269,107],{"class":92},[86,271,200],{"class":92},[86,273,203],{"class":100},[86,275,206],{"class":92},[86,277,279,281,283,285,287,289,291,293,295],{"class":88,"line":278},12,[86,280,212],{"class":132},[86,282,215],{"class":92},[86,284,218],{"class":132},[86,286,221],{"class":92},[86,288,52],{"class":177},[86,290,226],{"class":96},[86,292,45],{"class":229},[86,294,232],{"class":96},[86,296,150],{"class":92},[86,298,300,302,304,306,308],{"class":88,"line":299},13,[86,301,212],{"class":132},[86,303,215],{"class":92},[86,305,218],{"class":132},[86,307,174],{"class":92},[86,309,248],{"class":92},[86,311,313],{"class":88,"line":312},14,[86,314,254],{"class":92},[86,316,318,321,323],{"class":88,"line":317},15,[86,319,320],{"class":92},"\u003C\u002F",[86,322,97],{"class":96},[86,324,119],{"class":92},[86,326,328],{"class":88,"line":327},16,[86,329,157],{"emptyLinePlaceholder":156},[86,331,333,335,338],{"class":88,"line":332},17,[86,334,93],{"class":92},[86,336,337],{"class":96},"template",[86,339,119],{"class":92},[86,341,343,346,349,352,354,356,359,361,364,366,368,371,373],{"class":88,"line":342},18,[86,344,345],{"class":92},"    \u003C",[86,347,348],{"class":96},"div",[86,350,351],{"class":100}," v-if",[86,353,107],{"class":92},[86,355,110],{"class":92},[86,357,358],{"class":113},"current !== undefined",[86,360,110],{"class":92},[86,362,363],{"class":100}," class",[86,365,107],{"class":92},[86,367,110],{"class":92},[86,369,370],{"class":113},"dialog-backdrop",[86,372,110],{"class":92},[86,374,119],{"class":92},[86,376,378,381,383,385,387,389,392,394],{"class":88,"line":377},19,[86,379,380],{"class":92},"        \u003C",[86,382,348],{"class":96},[86,384,363],{"class":100},[86,386,107],{"class":92},[86,388,110],{"class":92},[86,390,391],{"class":113},"dialog",[86,393,110],{"class":92},[86,395,119],{"class":92},[86,397,399,402,405,407,409,411,414,416,419,422,424,426],{"class":88,"line":398},20,[86,400,401],{"class":92},"            \u003C",[86,403,404],{"class":96},"h3",[86,406,351],{"class":100},[86,408,107],{"class":92},[86,410,110],{"class":92},[86,412,413],{"class":113},"current.data.title",[86,415,110],{"class":92},[86,417,418],{"class":92},">",[86,420,421],{"class":132},"{{ current.data.title }}",[86,423,320],{"class":92},[86,425,404],{"class":96},[86,427,119],{"class":92},[86,429,431,433,435,437,440,442,444],{"class":88,"line":430},21,[86,432,401],{"class":92},[86,434,15],{"class":96},[86,436,418],{"class":92},[86,438,439],{"class":132},"{{ current.data.message }}",[86,441,320],{"class":92},[86,443,15],{"class":96},[86,445,119],{"class":92},[86,447,449,451,453,455,457,459,462,464],{"class":88,"line":448},22,[86,450,401],{"class":92},[86,452,348],{"class":96},[86,454,363],{"class":100},[86,456,107],{"class":92},[86,458,110],{"class":92},[86,460,461],{"class":113},"dialog-actions",[86,463,110],{"class":92},[86,465,119],{"class":92},[86,467,469,472,475,477,479,481,484,486,489,491,493,496,498],{"class":88,"line":468},23,[86,470,471],{"class":92},"                \u003C",[86,473,474],{"class":96},"button",[86,476,363],{"class":100},[86,478,107],{"class":92},[86,480,110],{"class":92},[86,482,483],{"class":113},"dialog-btn",[86,485,110],{"class":92},[86,487,488],{"class":100}," @click",[86,490,107],{"class":92},[86,492,110],{"class":92},[86,494,495],{"class":113},"handleCancel",[86,497,110],{"class":92},[86,499,119],{"class":92},[86,501,502],{"class":88,"line":5},[86,503,504],{"class":132},"                    {{ current.data.cancelText || 'Cancel' }}\n",[86,506,508,511,513],{"class":88,"line":507},25,[86,509,510],{"class":92},"                \u003C\u002F",[86,512,474],{"class":96},[86,514,119],{"class":92},[86,516,518,520,522,524,526,528,531,533,535,537,539,542,544],{"class":88,"line":517},26,[86,519,471],{"class":92},[86,521,474],{"class":96},[86,523,363],{"class":100},[86,525,107],{"class":92},[86,527,110],{"class":92},[86,529,530],{"class":113},"dialog-btn dialog-btn-primary",[86,532,110],{"class":92},[86,534,488],{"class":100},[86,536,107],{"class":92},[86,538,110],{"class":92},[86,540,541],{"class":113},"handleConfirm",[86,543,110],{"class":92},[86,545,119],{"class":92},[86,547,549],{"class":88,"line":548},27,[86,550,551],{"class":132},"                    {{ current.data.confirmText || 'OK' }}\n",[86,553,555,557,559],{"class":88,"line":554},28,[86,556,510],{"class":92},[86,558,474],{"class":96},[86,560,119],{"class":92},[86,562,564,567,569],{"class":88,"line":563},29,[86,565,566],{"class":92},"            \u003C\u002F",[86,568,348],{"class":96},[86,570,119],{"class":92},[86,572,574,577,579],{"class":88,"line":573},30,[86,575,576],{"class":92},"        \u003C\u002F",[86,578,348],{"class":96},[86,580,119],{"class":92},[86,582,584,587,589],{"class":88,"line":583},31,[86,585,586],{"class":92},"    \u003C\u002F",[86,588,348],{"class":96},[86,590,119],{"class":92},[86,592,594,596,598],{"class":88,"line":593},32,[86,595,320],{"class":92},[86,597,337],{"class":96},[86,599,119],{"class":92},[86,601,603],{"class":88,"line":602},33,[86,604,157],{"emptyLinePlaceholder":156},[86,606,608,610,613,616],{"class":88,"line":607},34,[86,609,93],{"class":92},[86,611,612],{"class":96},"style",[86,614,615],{"class":100}," scoped",[86,617,119],{"class":92},[86,619,621,623,626],{"class":88,"line":620},35,[86,622,215],{"class":92},[86,624,370],{"class":625},"sBMFI",[86,627,206],{"class":92},[86,629,631,635,638,641],{"class":88,"line":630},36,[86,632,634],{"class":633},"sqsOY","    position",[86,636,637],{"class":92},":",[86,639,640],{"class":132}," fixed",[86,642,150],{"class":92},[86,644,646,649,651,655],{"class":88,"line":645},37,[86,647,648],{"class":633},"    inset",[86,650,637],{"class":92},[86,652,654],{"class":653},"sbssI"," 0",[86,656,150],{"class":92},[86,658,660,663,665,668,670,673,676,678,680,682,684,687],{"class":88,"line":659},38,[86,661,662],{"class":633},"    background",[86,664,637],{"class":92},[86,666,667],{"class":177}," rgba",[86,669,226],{"class":92},[86,671,672],{"class":653},"0",[86,674,675],{"class":92},",",[86,677,654],{"class":653},[86,679,675],{"class":92},[86,681,654],{"class":653},[86,683,675],{"class":92},[86,685,686],{"class":653}," 0.4",[86,688,689],{"class":92},");\n",[86,691,693,696,698,701],{"class":88,"line":692},39,[86,694,695],{"class":633},"    display",[86,697,637],{"class":92},[86,699,700],{"class":132}," flex",[86,702,150],{"class":92},[86,704,706,709,711,714],{"class":88,"line":705},40,[86,707,708],{"class":633},"    align-items",[86,710,637],{"class":92},[86,712,713],{"class":132}," center",[86,715,150],{"class":92},[86,717,719,722,724,726],{"class":88,"line":718},41,[86,720,721],{"class":633},"    justify-content",[86,723,637],{"class":92},[86,725,713],{"class":132},[86,727,150],{"class":92},[86,729,731,734,736,739],{"class":88,"line":730},42,[86,732,733],{"class":633},"    z-index",[86,735,637],{"class":92},[86,737,738],{"class":653}," 1000",[86,740,150],{"class":92},[86,742,744],{"class":88,"line":743},43,[86,745,254],{"class":92},[86,747,749,751,753],{"class":88,"line":748},44,[86,750,215],{"class":92},[86,752,391],{"class":625},[86,754,206],{"class":92},[86,756,758,760,762,765,768],{"class":88,"line":757},45,[86,759,662],{"class":633},[86,761,637],{"class":92},[86,763,764],{"class":92}," #",[86,766,767],{"class":132},"fff",[86,769,150],{"class":92},[86,771,773,776,778,781],{"class":88,"line":772},46,[86,774,775],{"class":633},"    border-radius",[86,777,637],{"class":92},[86,779,780],{"class":653}," 8px",[86,782,150],{"class":92},[86,784,786,789,791,793,796,799,801,803,805,807,809,811,813,815,818],{"class":88,"line":785},47,[86,787,788],{"class":633},"    box-shadow",[86,790,637],{"class":92},[86,792,654],{"class":653},[86,794,795],{"class":653}," 2px",[86,797,798],{"class":653}," 16px",[86,800,667],{"class":177},[86,802,226],{"class":92},[86,804,672],{"class":653},[86,806,675],{"class":92},[86,808,654],{"class":653},[86,810,675],{"class":92},[86,812,654],{"class":653},[86,814,675],{"class":92},[86,816,817],{"class":653}," 0.2",[86,819,689],{"class":92},[86,821,823,826,828,831],{"class":88,"line":822},48,[86,824,825],{"class":633},"    padding",[86,827,637],{"class":92},[86,829,830],{"class":653}," 2rem",[86,832,150],{"class":92},[86,834,836,839,841,844],{"class":88,"line":835},49,[86,837,838],{"class":633},"    min-width",[86,840,637],{"class":92},[86,842,843],{"class":653}," 320px",[86,845,150],{"class":92},[86,847,849,852,854,857],{"class":88,"line":848},50,[86,850,851],{"class":633},"    max-width",[86,853,637],{"class":92},[86,855,856],{"class":653}," 90vw",[86,858,150],{"class":92},[86,860,862],{"class":88,"line":861},51,[86,863,254],{"class":92},[86,865,867,869,871],{"class":88,"line":866},52,[86,868,215],{"class":92},[86,870,461],{"class":625},[86,872,206],{"class":92},[86,874,876,878,880,882],{"class":88,"line":875},53,[86,877,695],{"class":633},[86,879,637],{"class":92},[86,881,700],{"class":132},[86,883,150],{"class":92},[86,885,887,890,892,895],{"class":88,"line":886},54,[86,888,889],{"class":633},"    gap",[86,891,637],{"class":92},[86,893,894],{"class":653}," 1rem",[86,896,150],{"class":92},[86,898,900,903,905,907],{"class":88,"line":899},55,[86,901,902],{"class":633},"    margin-top",[86,904,637],{"class":92},[86,906,830],{"class":653},[86,908,150],{"class":92},[86,910,912,914,916,919],{"class":88,"line":911},56,[86,913,721],{"class":633},[86,915,637],{"class":92},[86,917,918],{"class":132}," flex-end",[86,920,150],{"class":92},[86,922,924],{"class":88,"line":923},57,[86,925,254],{"class":92},[86,927,929,931,933],{"class":88,"line":928},58,[86,930,215],{"class":92},[86,932,483],{"class":625},[86,934,206],{"class":92},[86,936,938,940,942,945,948],{"class":88,"line":937},59,[86,939,825],{"class":633},[86,941,637],{"class":92},[86,943,944],{"class":653}," 0.5rem",[86,946,947],{"class":653}," 1.5rem",[86,949,150],{"class":92},[86,951,953,955,957,960],{"class":88,"line":952},60,[86,954,775],{"class":633},[86,956,637],{"class":92},[86,958,959],{"class":653}," 4px",[86,961,150],{"class":92},[86,963,965,968,970,973],{"class":88,"line":964},61,[86,966,967],{"class":633},"    border",[86,969,637],{"class":92},[86,971,972],{"class":132}," none",[86,974,150],{"class":92},[86,976,978,980,982,984,987],{"class":88,"line":977},62,[86,979,662],{"class":633},[86,981,637],{"class":92},[86,983,764],{"class":92},[86,985,986],{"class":132},"eee",[86,988,150],{"class":92},[86,990,992,995,997,1000],{"class":88,"line":991},63,[86,993,994],{"class":633},"    cursor",[86,996,637],{"class":92},[86,998,999],{"class":132}," pointer",[86,1001,150],{"class":92},[86,1003,1005,1008,1010,1012],{"class":88,"line":1004},64,[86,1006,1007],{"class":633},"    font-size",[86,1009,637],{"class":92},[86,1011,894],{"class":653},[86,1013,150],{"class":92},[86,1015,1017],{"class":88,"line":1016},65,[86,1018,254],{"class":92},[86,1020,1022,1024,1027],{"class":88,"line":1021},66,[86,1023,215],{"class":92},[86,1025,1026],{"class":625},"dialog-btn-primary",[86,1028,206],{"class":92},[86,1030,1032,1034,1036,1038,1041],{"class":88,"line":1031},67,[86,1033,662],{"class":633},[86,1035,637],{"class":92},[86,1037,764],{"class":92},[86,1039,1040],{"class":132},"007bff",[86,1042,150],{"class":92},[86,1044,1046,1049,1051,1053,1055],{"class":88,"line":1045},68,[86,1047,1048],{"class":633},"    color",[86,1050,637],{"class":92},[86,1052,764],{"class":92},[86,1054,767],{"class":132},[86,1056,150],{"class":92},[86,1058,1060],{"class":88,"line":1059},69,[86,1061,254],{"class":92},[86,1063,1065,1067,1069],{"class":88,"line":1064},70,[86,1066,320],{"class":92},[86,1068,612],{"class":96},[86,1070,119],{"class":92},[77,1072,1076],{"className":1073,"code":1074,"filename":1075,"language":114,"meta":82,"style":82},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { ref } from \"vue\";\n\nexport type AlertDialogProps = {\n    data: {\n        title?: string;\n        message: string;\n        confirmText?: string;\n        cancelText?: string;\n    }\n    resolve: (value: boolean) => void;\n}\n\nconst current = ref\u003CAlertDialogProps>();\n\nconst show = (data: AlertDialogProps[\"data\"]): Promise\u003Cboolean> => {\n    return new Promise((resolve) => {\n        current.value = { data, resolve };\n    });\n}\n\nexport const useAlert = () => {\n    return {\n        current,\n        show,\n    };\n};\n\n","composables\u002FuseAlert.ts",[27,1077,1078,1099,1103,1118,1127,1140,1151,1162,1173,1178,1205,1209,1213,1234,1238,1285,1307,1331,1340,1344,1348,1366,1372,1379,1386,1391],{"__ignoreMap":82},[86,1079,1080,1082,1084,1087,1089,1091,1093,1095,1097],{"class":88,"line":89},[86,1081,126],{"class":125},[86,1083,129],{"class":92},[86,1085,1086],{"class":132}," ref",[86,1088,136],{"class":92},[86,1090,139],{"class":125},[86,1092,142],{"class":92},[86,1094,81],{"class":113},[86,1096,110],{"class":92},[86,1098,150],{"class":92},[86,1100,1101],{"class":88,"line":122},[86,1102,157],{"emptyLinePlaceholder":156},[86,1104,1105,1108,1111,1114,1116],{"class":88,"line":153},[86,1106,1107],{"class":125},"export",[86,1109,1110],{"class":100}," type",[86,1112,1113],{"class":625}," AlertDialogProps",[86,1115,174],{"class":92},[86,1117,206],{"class":92},[86,1119,1120,1123,1125],{"class":88,"line":160},[86,1121,1122],{"class":96},"    data",[86,1124,637],{"class":92},[86,1126,206],{"class":92},[86,1128,1129,1132,1135,1138],{"class":88,"line":185},[86,1130,1131],{"class":96},"        title",[86,1133,1134],{"class":92},"?:",[86,1136,1137],{"class":625}," string",[86,1139,150],{"class":92},[86,1141,1142,1145,1147,1149],{"class":88,"line":190},[86,1143,1144],{"class":96},"        message",[86,1146,637],{"class":92},[86,1148,1137],{"class":625},[86,1150,150],{"class":92},[86,1152,1153,1156,1158,1160],{"class":88,"line":209},[86,1154,1155],{"class":96},"        confirmText",[86,1157,1134],{"class":92},[86,1159,1137],{"class":625},[86,1161,150],{"class":92},[86,1163,1164,1167,1169,1171],{"class":88,"line":237},[86,1165,1166],{"class":96},"        cancelText",[86,1168,1134],{"class":92},[86,1170,1137],{"class":625},[86,1172,150],{"class":92},[86,1174,1175],{"class":88,"line":251},[86,1176,1177],{"class":92},"    }\n",[86,1179,1180,1183,1185,1188,1191,1193,1196,1198,1200,1203],{"class":88,"line":257},[86,1181,1182],{"class":96},"    resolve",[86,1184,637],{"class":92},[86,1186,1187],{"class":92}," (",[86,1189,218],{"class":1190},"sHdIc",[86,1192,637],{"class":92},[86,1194,1195],{"class":625}," boolean",[86,1197,232],{"class":92},[86,1199,203],{"class":100},[86,1201,1202],{"class":625}," void",[86,1204,150],{"class":92},[86,1206,1207],{"class":88,"line":262},[86,1208,254],{"class":92},[86,1210,1211],{"class":88,"line":278},[86,1212,157],{"emptyLinePlaceholder":156},[86,1214,1215,1217,1219,1221,1223,1225,1228,1230,1232],{"class":88,"line":299},[86,1216,163],{"class":100},[86,1218,168],{"class":132},[86,1220,107],{"class":92},[86,1222,1086],{"class":177},[86,1224,93],{"class":92},[86,1226,1227],{"class":625},"AlertDialogProps",[86,1229,418],{"class":92},[86,1231,180],{"class":132},[86,1233,150],{"class":92},[86,1235,1236],{"class":88,"line":312},[86,1237,157],{"emptyLinePlaceholder":156},[86,1239,1240,1242,1245,1247,1249,1252,1254,1256,1259,1261,1263,1265,1268,1271,1274,1276,1279,1281,1283],{"class":88,"line":317},[86,1241,163],{"class":100},[86,1243,1244],{"class":132}," show ",[86,1246,107],{"class":92},[86,1248,1187],{"class":92},[86,1250,1251],{"class":1190},"data",[86,1253,637],{"class":92},[86,1255,1113],{"class":625},[86,1257,1258],{"class":132},"[",[86,1260,110],{"class":92},[86,1262,1251],{"class":113},[86,1264,110],{"class":92},[86,1266,1267],{"class":132},"]",[86,1269,1270],{"class":92},"):",[86,1272,1273],{"class":625}," Promise",[86,1275,93],{"class":92},[86,1277,1278],{"class":625},"boolean",[86,1280,418],{"class":92},[86,1282,203],{"class":100},[86,1284,206],{"class":92},[86,1286,1287,1290,1293,1295,1297,1299,1301,1303,1305],{"class":88,"line":327},[86,1288,1289],{"class":125},"    return",[86,1291,1292],{"class":92}," new",[86,1294,1273],{"class":625},[86,1296,226],{"class":96},[86,1298,226],{"class":92},[86,1300,52],{"class":1190},[86,1302,232],{"class":92},[86,1304,203],{"class":100},[86,1306,206],{"class":92},[86,1308,1309,1312,1314,1316,1318,1320,1323,1325,1328],{"class":88,"line":332},[86,1310,1311],{"class":132},"        current",[86,1313,215],{"class":92},[86,1315,218],{"class":132},[86,1317,174],{"class":92},[86,1319,129],{"class":92},[86,1321,1322],{"class":132}," data",[86,1324,675],{"class":92},[86,1326,1327],{"class":132}," resolve",[86,1329,1330],{"class":92}," };\n",[86,1332,1333,1336,1338],{"class":88,"line":342},[86,1334,1335],{"class":92},"    }",[86,1337,232],{"class":96},[86,1339,150],{"class":92},[86,1341,1342],{"class":88,"line":377},[86,1343,254],{"class":92},[86,1345,1346],{"class":88,"line":398},[86,1347,157],{"emptyLinePlaceholder":156},[86,1349,1350,1352,1355,1358,1360,1362,1364],{"class":88,"line":430},[86,1351,1107],{"class":125},[86,1353,1354],{"class":100}," const",[86,1356,1357],{"class":132}," useAlert ",[86,1359,107],{"class":92},[86,1361,200],{"class":92},[86,1363,203],{"class":100},[86,1365,206],{"class":92},[86,1367,1368,1370],{"class":88,"line":448},[86,1369,1289],{"class":125},[86,1371,206],{"class":92},[86,1373,1374,1376],{"class":88,"line":468},[86,1375,1311],{"class":132},[86,1377,1378],{"class":92},",\n",[86,1380,1381,1384],{"class":88,"line":5},[86,1382,1383],{"class":132},"        show",[86,1385,1378],{"class":92},[86,1387,1388],{"class":88,"line":507},[86,1389,1390],{"class":92},"    };\n",[86,1392,1393],{"class":88,"line":517},[86,1394,1395],{"class":92},"};\n",[77,1397,1400],{"className":79,"code":1398,"filename":1399,"language":81,"meta":82,"style":82},"\u003Cscript setup lang=\"ts\">\nimport AlertDialog from \"@\u002Fcomponents\u002FAlertDialog.vue\";\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n    \u003C!-- Rest of your app -->\n    \u003CAlertDialog \u002F>\n\u003C\u002Ftemplate>\n","app.vue",[27,1401,1402,1422,1441,1449,1453,1461,1467,1477],{"__ignoreMap":82},[86,1403,1404,1406,1408,1410,1412,1414,1416,1418,1420],{"class":88,"line":89},[86,1405,93],{"class":92},[86,1407,97],{"class":96},[86,1409,101],{"class":100},[86,1411,104],{"class":100},[86,1413,107],{"class":92},[86,1415,110],{"class":92},[86,1417,114],{"class":113},[86,1419,110],{"class":92},[86,1421,119],{"class":92},[86,1423,1424,1426,1429,1432,1434,1437,1439],{"class":88,"line":122},[86,1425,126],{"class":125},[86,1427,1428],{"class":132}," AlertDialog ",[86,1430,1431],{"class":125},"from",[86,1433,142],{"class":92},[86,1435,1436],{"class":113},"@\u002Fcomponents\u002FAlertDialog.vue",[86,1438,110],{"class":92},[86,1440,150],{"class":92},[86,1442,1443,1445,1447],{"class":88,"line":153},[86,1444,320],{"class":92},[86,1446,97],{"class":96},[86,1448,119],{"class":92},[86,1450,1451],{"class":88,"line":160},[86,1452,157],{"emptyLinePlaceholder":156},[86,1454,1455,1457,1459],{"class":88,"line":185},[86,1456,93],{"class":92},[86,1458,337],{"class":96},[86,1460,119],{"class":92},[86,1462,1463],{"class":88,"line":190},[86,1464,1466],{"class":1465},"sHwdD","    \u003C!-- Rest of your app -->\n",[86,1468,1469,1471,1474],{"class":88,"line":209},[86,1470,345],{"class":92},[86,1472,1473],{"class":96},"AlertDialog",[86,1475,1476],{"class":92}," \u002F>\n",[86,1478,1479,1481,1483],{"class":88,"line":237},[86,1480,320],{"class":92},[86,1482,337],{"class":96},[86,1484,119],{"class":92},[77,1486,1489],{"className":79,"code":1487,"filename":1488,"language":81,"meta":82,"style":82},"\u003Cscript setup lang=\"ts\">\nimport { useAlert } from \"@\u002Fcomposables\u002FuseAlert\";\nconst { show } = useAlert();\n\nconst handleDelete = async () => {\n    const result = await show({\n        title: \"Confirm Deletion\",\n        message: \"Are you sure you want to delete this item?\",\n        confirmText: \"Delete\",\n        cancelText: \"Cancel\",\n    });\n    if (result) {\n        \u002F\u002F Perform deletion\n    }\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n    \u003Cbutton @click=\"handleDelete\">Delete Item\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n","components\u002FSomeComponent.vue",[27,1490,1491,1511,1531,1549,1553,1571,1592,1607,1622,1637,1652,1660,1675,1680,1684,1688,1696,1700,1708,1736],{"__ignoreMap":82},[86,1492,1493,1495,1497,1499,1501,1503,1505,1507,1509],{"class":88,"line":89},[86,1494,93],{"class":92},[86,1496,97],{"class":96},[86,1498,101],{"class":100},[86,1500,104],{"class":100},[86,1502,107],{"class":92},[86,1504,110],{"class":92},[86,1506,114],{"class":113},[86,1508,110],{"class":92},[86,1510,119],{"class":92},[86,1512,1513,1515,1517,1519,1521,1523,1525,1527,1529],{"class":88,"line":122},[86,1514,126],{"class":125},[86,1516,129],{"class":92},[86,1518,133],{"class":132},[86,1520,136],{"class":92},[86,1522,139],{"class":125},[86,1524,142],{"class":92},[86,1526,145],{"class":113},[86,1528,110],{"class":92},[86,1530,150],{"class":92},[86,1532,1533,1535,1537,1539,1541,1543,1545,1547],{"class":88,"line":153},[86,1534,163],{"class":100},[86,1536,129],{"class":92},[86,1538,1244],{"class":132},[86,1540,171],{"class":92},[86,1542,174],{"class":92},[86,1544,133],{"class":177},[86,1546,180],{"class":132},[86,1548,150],{"class":92},[86,1550,1551],{"class":88,"line":160},[86,1552,157],{"emptyLinePlaceholder":156},[86,1554,1555,1557,1560,1562,1565,1567,1569],{"class":88,"line":185},[86,1556,163],{"class":100},[86,1558,1559],{"class":132}," handleDelete ",[86,1561,107],{"class":92},[86,1563,1564],{"class":100}," async",[86,1566,200],{"class":92},[86,1568,203],{"class":100},[86,1570,206],{"class":92},[86,1572,1573,1576,1579,1581,1584,1587,1589],{"class":88,"line":190},[86,1574,1575],{"class":100},"    const",[86,1577,1578],{"class":132}," result",[86,1580,174],{"class":92},[86,1582,1583],{"class":125}," await",[86,1585,1586],{"class":177}," show",[86,1588,226],{"class":96},[86,1590,1591],{"class":92},"{\n",[86,1593,1594,1596,1598,1600,1603,1605],{"class":88,"line":209},[86,1595,1131],{"class":96},[86,1597,637],{"class":92},[86,1599,142],{"class":92},[86,1601,1602],{"class":113},"Confirm Deletion",[86,1604,110],{"class":92},[86,1606,1378],{"class":92},[86,1608,1609,1611,1613,1615,1618,1620],{"class":88,"line":237},[86,1610,1144],{"class":96},[86,1612,637],{"class":92},[86,1614,142],{"class":92},[86,1616,1617],{"class":113},"Are you sure you want to delete this item?",[86,1619,110],{"class":92},[86,1621,1378],{"class":92},[86,1623,1624,1626,1628,1630,1633,1635],{"class":88,"line":251},[86,1625,1155],{"class":96},[86,1627,637],{"class":92},[86,1629,142],{"class":92},[86,1631,1632],{"class":113},"Delete",[86,1634,110],{"class":92},[86,1636,1378],{"class":92},[86,1638,1639,1641,1643,1645,1648,1650],{"class":88,"line":257},[86,1640,1166],{"class":96},[86,1642,637],{"class":92},[86,1644,142],{"class":92},[86,1646,1647],{"class":113},"Cancel",[86,1649,110],{"class":92},[86,1651,1378],{"class":92},[86,1653,1654,1656,1658],{"class":88,"line":262},[86,1655,1335],{"class":92},[86,1657,232],{"class":96},[86,1659,150],{"class":92},[86,1661,1662,1665,1667,1670,1673],{"class":88,"line":278},[86,1663,1664],{"class":125},"    if",[86,1666,1187],{"class":96},[86,1668,1669],{"class":132},"result",[86,1671,1672],{"class":96},") ",[86,1674,1591],{"class":92},[86,1676,1677],{"class":88,"line":299},[86,1678,1679],{"class":1465},"        \u002F\u002F Perform deletion\n",[86,1681,1682],{"class":88,"line":312},[86,1683,1177],{"class":92},[86,1685,1686],{"class":88,"line":317},[86,1687,254],{"class":92},[86,1689,1690,1692,1694],{"class":88,"line":327},[86,1691,320],{"class":92},[86,1693,97],{"class":96},[86,1695,119],{"class":92},[86,1697,1698],{"class":88,"line":332},[86,1699,157],{"emptyLinePlaceholder":156},[86,1701,1702,1704,1706],{"class":88,"line":342},[86,1703,93],{"class":92},[86,1705,337],{"class":96},[86,1707,119],{"class":92},[86,1709,1710,1712,1714,1716,1718,1720,1723,1725,1727,1730,1732,1734],{"class":88,"line":377},[86,1711,345],{"class":92},[86,1713,474],{"class":96},[86,1715,488],{"class":100},[86,1717,107],{"class":92},[86,1719,110],{"class":92},[86,1721,1722],{"class":113},"handleDelete",[86,1724,110],{"class":92},[86,1726,418],{"class":92},[86,1728,1729],{"class":132},"Delete Item",[86,1731,320],{"class":92},[86,1733,474],{"class":96},[86,1735,119],{"class":92},[86,1737,1738,1740,1742],{"class":88,"line":398},[86,1739,320],{"class":92},[86,1741,337],{"class":96},[86,1743,119],{"class":92},[68,1745,1748],{"icon":1746,"label":1747},"vscode-icons:file-type-reactts","React",[73,1749,1751,2460,2844,3063,3207,3290],{"default-value":1750,"expand-all":41},"providers\u002FAlertProvider.tsx",[77,1752,1756],{"className":1753,"code":1754,"filename":1750,"language":1755,"meta":82,"style":82},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { AlertContext, type AlertDialogProps } from \"@\u002Fcontext\u002Falert\";\nimport { useState } from \"react\";\nimport \".\u002FAlertDialog.css\";\n\nexport const AlertProvider = ({ children }: { children: React.ReactNode }) => {\n  const [current, setCurrent] = useState\u003CAlertDialogProps | null>(null);\n\n  const show = (data: AlertDialogProps[\"data\"]) => {\n    return new Promise\u003Cboolean>((resolve) => {\n      setCurrent({ data, resolve });\n    });\n  };\n\n  const handleCancel = () => {\n    current?.resolve(false);\n    setCurrent(null);\n  };\n\n  const handleConfirm = () => {\n    current?.resolve(true);\n    setCurrent(null);\n  };\n\n  return (\n    \u003CAlertContext.Provider value={{ show }}>\n      {children}\n      {current && (\n        \u003Cdiv className=\"dialog-backdrop\">\n          \u003Cdiv className=\"dialog\">\n            {current.data.title && \u003Ch3>{current.data.title}\u003C\u002Fh3>}\n            \u003Cp>{current.data.message}\u003C\u002Fp>\n            \u003Cdiv className=\"dialog-actions\">\n              \u003Cbutton className=\"dialog-btn\" onClick={handleCancel}>\n                {current.data.cancelText || \"Cancel\"}\n              \u003C\u002Fbutton>\n              \u003Cbutton className=\"dialog-btn dialog-btn-primary\" onClick={handleConfirm}>\n                {current.data.confirmText || \"OK\"}\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n          \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      )}\n    \u003C\u002FAlertContext.Provider>\n  );\n};\n","tsx",[27,1757,1758,1786,1808,1821,1825,1866,1909,1913,1945,1971,1993,2001,2006,2010,2025,2041,2054,2058,2062,2077,2093,2105,2109,2113,2121,2139,2149,2161,2180,2199,2244,2269,2287,2315,2342,2351,2375,2401,2409,2417,2426,2434,2441,2449,2456],{"__ignoreMap":82},[86,1759,1760,1762,1764,1767,1769,1771,1773,1775,1777,1779,1782,1784],{"class":88,"line":89},[86,1761,126],{"class":125},[86,1763,129],{"class":92},[86,1765,1766],{"class":132}," AlertContext",[86,1768,675],{"class":92},[86,1770,1110],{"class":125},[86,1772,1113],{"class":132},[86,1774,136],{"class":92},[86,1776,139],{"class":125},[86,1778,142],{"class":92},[86,1780,1781],{"class":113},"@\u002Fcontext\u002Falert",[86,1783,110],{"class":92},[86,1785,150],{"class":92},[86,1787,1788,1790,1792,1795,1797,1799,1801,1804,1806],{"class":88,"line":122},[86,1789,126],{"class":125},[86,1791,129],{"class":92},[86,1793,1794],{"class":132}," useState",[86,1796,136],{"class":92},[86,1798,139],{"class":125},[86,1800,142],{"class":92},[86,1802,1803],{"class":113},"react",[86,1805,110],{"class":92},[86,1807,150],{"class":92},[86,1809,1810,1812,1814,1817,1819],{"class":88,"line":153},[86,1811,126],{"class":125},[86,1813,142],{"class":92},[86,1815,1816],{"class":113},".\u002FAlertDialog.css",[86,1818,110],{"class":92},[86,1820,150],{"class":92},[86,1822,1823],{"class":88,"line":160},[86,1824,157],{"emptyLinePlaceholder":156},[86,1826,1827,1829,1831,1834,1836,1839,1842,1845,1847,1849,1851,1854,1856,1859,1862,1864],{"class":88,"line":185},[86,1828,1107],{"class":125},[86,1830,1354],{"class":100},[86,1832,1833],{"class":132}," AlertProvider ",[86,1835,107],{"class":92},[86,1837,1838],{"class":92}," ({",[86,1840,1841],{"class":1190}," children",[86,1843,1844],{"class":92}," }:",[86,1846,129],{"class":92},[86,1848,1841],{"class":96},[86,1850,637],{"class":92},[86,1852,1853],{"class":625}," React",[86,1855,215],{"class":92},[86,1857,1858],{"class":625},"ReactNode",[86,1860,1861],{"class":92}," })",[86,1863,203],{"class":100},[86,1865,206],{"class":92},[86,1867,1868,1871,1874,1877,1879,1882,1884,1886,1888,1890,1892,1895,1898,1900,1902,1905,1907],{"class":88,"line":190},[86,1869,1870],{"class":100},"  const",[86,1872,1873],{"class":92}," [",[86,1875,1876],{"class":132},"current",[86,1878,675],{"class":92},[86,1880,1881],{"class":132}," setCurrent",[86,1883,1267],{"class":92},[86,1885,174],{"class":92},[86,1887,1794],{"class":177},[86,1889,93],{"class":92},[86,1891,1227],{"class":625},[86,1893,1894],{"class":92}," |",[86,1896,1897],{"class":625}," null",[86,1899,418],{"class":92},[86,1901,226],{"class":96},[86,1903,1904],{"class":92},"null",[86,1906,232],{"class":96},[86,1908,150],{"class":92},[86,1910,1911],{"class":88,"line":209},[86,1912,157],{"emptyLinePlaceholder":156},[86,1914,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943],{"class":88,"line":237},[86,1916,1870],{"class":100},[86,1918,1586],{"class":132},[86,1920,174],{"class":92},[86,1922,1187],{"class":92},[86,1924,1251],{"class":1190},[86,1926,637],{"class":92},[86,1928,1113],{"class":625},[86,1930,1258],{"class":96},[86,1932,110],{"class":92},[86,1934,1251],{"class":113},[86,1936,110],{"class":92},[86,1938,1267],{"class":96},[86,1940,232],{"class":92},[86,1942,203],{"class":100},[86,1944,206],{"class":92},[86,1946,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969],{"class":88,"line":251},[86,1948,1289],{"class":125},[86,1950,1292],{"class":92},[86,1952,1273],{"class":625},[86,1954,93],{"class":92},[86,1956,1278],{"class":625},[86,1958,418],{"class":92},[86,1960,226],{"class":96},[86,1962,226],{"class":92},[86,1964,52],{"class":1190},[86,1966,232],{"class":92},[86,1968,203],{"class":100},[86,1970,206],{"class":92},[86,1972,1973,1976,1978,1981,1983,1985,1987,1989,1991],{"class":88,"line":257},[86,1974,1975],{"class":177},"      setCurrent",[86,1977,226],{"class":96},[86,1979,1980],{"class":92},"{",[86,1982,1322],{"class":132},[86,1984,675],{"class":92},[86,1986,1327],{"class":132},[86,1988,136],{"class":92},[86,1990,232],{"class":96},[86,1992,150],{"class":92},[86,1994,1995,1997,1999],{"class":88,"line":262},[86,1996,1335],{"class":92},[86,1998,232],{"class":96},[86,2000,150],{"class":92},[86,2002,2003],{"class":88,"line":278},[86,2004,2005],{"class":92},"  };\n",[86,2007,2008],{"class":88,"line":299},[86,2009,157],{"emptyLinePlaceholder":156},[86,2011,2012,2014,2017,2019,2021,2023],{"class":88,"line":312},[86,2013,1870],{"class":100},[86,2015,2016],{"class":132}," handleCancel",[86,2018,174],{"class":92},[86,2020,200],{"class":92},[86,2022,203],{"class":100},[86,2024,206],{"class":92},[86,2026,2027,2029,2031,2033,2035,2037,2039],{"class":88,"line":317},[86,2028,212],{"class":132},[86,2030,221],{"class":92},[86,2032,52],{"class":177},[86,2034,226],{"class":96},[86,2036,45],{"class":229},[86,2038,232],{"class":96},[86,2040,150],{"class":92},[86,2042,2043,2046,2048,2050,2052],{"class":88,"line":327},[86,2044,2045],{"class":177},"    setCurrent",[86,2047,226],{"class":96},[86,2049,1904],{"class":92},[86,2051,232],{"class":96},[86,2053,150],{"class":92},[86,2055,2056],{"class":88,"line":332},[86,2057,2005],{"class":92},[86,2059,2060],{"class":88,"line":342},[86,2061,157],{"emptyLinePlaceholder":156},[86,2063,2064,2066,2069,2071,2073,2075],{"class":88,"line":377},[86,2065,1870],{"class":100},[86,2067,2068],{"class":132}," handleConfirm",[86,2070,174],{"class":92},[86,2072,200],{"class":92},[86,2074,203],{"class":100},[86,2076,206],{"class":92},[86,2078,2079,2081,2083,2085,2087,2089,2091],{"class":88,"line":398},[86,2080,212],{"class":132},[86,2082,221],{"class":92},[86,2084,52],{"class":177},[86,2086,226],{"class":96},[86,2088,41],{"class":229},[86,2090,232],{"class":96},[86,2092,150],{"class":92},[86,2094,2095,2097,2099,2101,2103],{"class":88,"line":430},[86,2096,2045],{"class":177},[86,2098,226],{"class":96},[86,2100,1904],{"class":92},[86,2102,232],{"class":96},[86,2104,150],{"class":92},[86,2106,2107],{"class":88,"line":448},[86,2108,2005],{"class":92},[86,2110,2111],{"class":88,"line":468},[86,2112,157],{"emptyLinePlaceholder":156},[86,2114,2115,2118],{"class":88,"line":5},[86,2116,2117],{"class":125},"  return",[86,2119,2120],{"class":96}," (\n",[86,2122,2123,2125,2128,2131,2134,2136],{"class":88,"line":507},[86,2124,345],{"class":92},[86,2126,2127],{"class":625},"AlertContext.Provider",[86,2129,2130],{"class":100}," value",[86,2132,2133],{"class":92},"={{",[86,2135,1244],{"class":132},[86,2137,2138],{"class":92},"}}>\n",[86,2140,2141,2144,2147],{"class":88,"line":517},[86,2142,2143],{"class":92},"      {",[86,2145,2146],{"class":132},"children",[86,2148,254],{"class":92},[86,2150,2151,2153,2156,2159],{"class":88,"line":548},[86,2152,2143],{"class":92},[86,2154,2155],{"class":132},"current ",[86,2157,2158],{"class":92},"&&",[86,2160,2120],{"class":132},[86,2162,2163,2165,2167,2170,2172,2174,2176,2178],{"class":88,"line":554},[86,2164,380],{"class":92},[86,2166,348],{"class":96},[86,2168,2169],{"class":100}," className",[86,2171,107],{"class":92},[86,2173,110],{"class":92},[86,2175,370],{"class":113},[86,2177,110],{"class":92},[86,2179,119],{"class":92},[86,2181,2182,2185,2187,2189,2191,2193,2195,2197],{"class":88,"line":563},[86,2183,2184],{"class":92},"          \u003C",[86,2186,348],{"class":96},[86,2188,2169],{"class":100},[86,2190,107],{"class":92},[86,2192,110],{"class":92},[86,2194,391],{"class":113},[86,2196,110],{"class":92},[86,2198,119],{"class":92},[86,2200,2201,2204,2206,2208,2210,2212,2215,2217,2220,2222,2225,2227,2229,2231,2233,2236,2239,2241],{"class":88,"line":573},[86,2202,2203],{"class":92},"            {",[86,2205,1876],{"class":132},[86,2207,215],{"class":92},[86,2209,1251],{"class":132},[86,2211,215],{"class":92},[86,2213,2214],{"class":132},"title ",[86,2216,2158],{"class":92},[86,2218,2219],{"class":92}," \u003C",[86,2221,404],{"class":96},[86,2223,2224],{"class":92},">{",[86,2226,1876],{"class":132},[86,2228,215],{"class":92},[86,2230,1251],{"class":132},[86,2232,215],{"class":92},[86,2234,2235],{"class":132},"title",[86,2237,2238],{"class":92},"}\u003C\u002F",[86,2240,404],{"class":96},[86,2242,2243],{"class":92},">}\n",[86,2245,2246,2248,2250,2252,2254,2256,2258,2260,2263,2265,2267],{"class":88,"line":583},[86,2247,401],{"class":92},[86,2249,15],{"class":96},[86,2251,2224],{"class":92},[86,2253,1876],{"class":132},[86,2255,215],{"class":92},[86,2257,1251],{"class":132},[86,2259,215],{"class":92},[86,2261,2262],{"class":132},"message",[86,2264,2238],{"class":92},[86,2266,15],{"class":96},[86,2268,119],{"class":92},[86,2270,2271,2273,2275,2277,2279,2281,2283,2285],{"class":88,"line":593},[86,2272,401],{"class":92},[86,2274,348],{"class":96},[86,2276,2169],{"class":100},[86,2278,107],{"class":92},[86,2280,110],{"class":92},[86,2282,461],{"class":113},[86,2284,110],{"class":92},[86,2286,119],{"class":92},[86,2288,2289,2292,2294,2296,2298,2300,2302,2304,2307,2310,2312],{"class":88,"line":602},[86,2290,2291],{"class":92},"              \u003C",[86,2293,474],{"class":96},[86,2295,2169],{"class":100},[86,2297,107],{"class":92},[86,2299,110],{"class":92},[86,2301,483],{"class":113},[86,2303,110],{"class":92},[86,2305,2306],{"class":100}," onClick",[86,2308,2309],{"class":92},"={",[86,2311,495],{"class":132},[86,2313,2314],{"class":92},"}>\n",[86,2316,2317,2320,2322,2324,2326,2328,2331,2334,2336,2338,2340],{"class":88,"line":607},[86,2318,2319],{"class":92},"                {",[86,2321,1876],{"class":132},[86,2323,215],{"class":92},[86,2325,1251],{"class":132},[86,2327,215],{"class":92},[86,2329,2330],{"class":132},"cancelText ",[86,2332,2333],{"class":92},"||",[86,2335,142],{"class":92},[86,2337,1647],{"class":113},[86,2339,110],{"class":92},[86,2341,254],{"class":92},[86,2343,2344,2347,2349],{"class":88,"line":620},[86,2345,2346],{"class":92},"              \u003C\u002F",[86,2348,474],{"class":96},[86,2350,119],{"class":92},[86,2352,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":88,"line":630},[86,2354,2291],{"class":92},[86,2356,474],{"class":96},[86,2358,2169],{"class":100},[86,2360,107],{"class":92},[86,2362,110],{"class":92},[86,2364,530],{"class":113},[86,2366,110],{"class":92},[86,2368,2306],{"class":100},[86,2370,2309],{"class":92},[86,2372,541],{"class":132},[86,2374,2314],{"class":92},[86,2376,2377,2379,2381,2383,2385,2387,2390,2392,2394,2397,2399],{"class":88,"line":645},[86,2378,2319],{"class":92},[86,2380,1876],{"class":132},[86,2382,215],{"class":92},[86,2384,1251],{"class":132},[86,2386,215],{"class":92},[86,2388,2389],{"class":132},"confirmText ",[86,2391,2333],{"class":92},[86,2393,142],{"class":92},[86,2395,2396],{"class":113},"OK",[86,2398,110],{"class":92},[86,2400,254],{"class":92},[86,2402,2403,2405,2407],{"class":88,"line":659},[86,2404,2346],{"class":92},[86,2406,474],{"class":96},[86,2408,119],{"class":92},[86,2410,2411,2413,2415],{"class":88,"line":692},[86,2412,566],{"class":92},[86,2414,348],{"class":96},[86,2416,119],{"class":92},[86,2418,2419,2422,2424],{"class":88,"line":705},[86,2420,2421],{"class":92},"          \u003C\u002F",[86,2423,348],{"class":96},[86,2425,119],{"class":92},[86,2427,2428,2430,2432],{"class":88,"line":718},[86,2429,576],{"class":92},[86,2431,348],{"class":96},[86,2433,119],{"class":92},[86,2435,2436,2439],{"class":88,"line":730},[86,2437,2438],{"class":132},"      )",[86,2440,254],{"class":92},[86,2442,2443,2445,2447],{"class":88,"line":743},[86,2444,586],{"class":92},[86,2446,2127],{"class":625},[86,2448,119],{"class":92},[86,2450,2451,2454],{"class":88,"line":748},[86,2452,2453],{"class":96},"  )",[86,2455,150],{"class":92},[86,2457,2458],{"class":88,"line":757},[86,2459,1395],{"class":92},[77,2461,2466],{"className":2462,"code":2463,"filename":2464,"language":2465,"meta":82,"style":82},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight",".dialog-backdrop {\n  position: fixed;\n  inset: 0;\n  background: rgba(0, 0, 0, 0.4);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 1000;\n}\n.dialog {\n  background: #fff;\n  border-radius: 8px;\n  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);\n  padding: 2rem;\n  min-width: 320px;\n  max-width: 90vw;\n}\n.dialog-actions {\n  display: flex;\n  gap: 1rem;\n  margin-top: 2rem;\n  justify-content: flex-end;\n}\n.dialog-btn {\n  padding: 0.5rem 1.5rem;\n  border-radius: 4px;\n  border: none;\n  background: #eee;\n  cursor: pointer;\n  font-size: 1rem;\n}\n.dialog-btn-primary {\n  background: #007bff;\n  color: #fff;\n}\n","providers\u002FAlertDialog.css","css",[27,2467,2468,2476,2487,2498,2525,2536,2547,2558,2569,2573,2581,2593,2604,2637,2648,2659,2670,2674,2682,2692,2703,2714,2724,2728,2736,2748,2758,2769,2781,2792,2803,2807,2815,2827,2840],{"__ignoreMap":82},[86,2469,2470,2472,2474],{"class":88,"line":89},[86,2471,215],{"class":92},[86,2473,370],{"class":625},[86,2475,206],{"class":92},[86,2477,2478,2481,2483,2485],{"class":88,"line":122},[86,2479,2480],{"class":633},"  position",[86,2482,637],{"class":92},[86,2484,640],{"class":132},[86,2486,150],{"class":92},[86,2488,2489,2492,2494,2496],{"class":88,"line":153},[86,2490,2491],{"class":633},"  inset",[86,2493,637],{"class":92},[86,2495,654],{"class":653},[86,2497,150],{"class":92},[86,2499,2500,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523],{"class":88,"line":160},[86,2501,2502],{"class":633},"  background",[86,2504,637],{"class":92},[86,2506,667],{"class":177},[86,2508,226],{"class":92},[86,2510,672],{"class":653},[86,2512,675],{"class":92},[86,2514,654],{"class":653},[86,2516,675],{"class":92},[86,2518,654],{"class":653},[86,2520,675],{"class":92},[86,2522,686],{"class":653},[86,2524,689],{"class":92},[86,2526,2527,2530,2532,2534],{"class":88,"line":185},[86,2528,2529],{"class":633},"  display",[86,2531,637],{"class":92},[86,2533,700],{"class":132},[86,2535,150],{"class":92},[86,2537,2538,2541,2543,2545],{"class":88,"line":190},[86,2539,2540],{"class":633},"  align-items",[86,2542,637],{"class":92},[86,2544,713],{"class":132},[86,2546,150],{"class":92},[86,2548,2549,2552,2554,2556],{"class":88,"line":209},[86,2550,2551],{"class":633},"  justify-content",[86,2553,637],{"class":92},[86,2555,713],{"class":132},[86,2557,150],{"class":92},[86,2559,2560,2563,2565,2567],{"class":88,"line":237},[86,2561,2562],{"class":633},"  z-index",[86,2564,637],{"class":92},[86,2566,738],{"class":653},[86,2568,150],{"class":92},[86,2570,2571],{"class":88,"line":251},[86,2572,254],{"class":92},[86,2574,2575,2577,2579],{"class":88,"line":257},[86,2576,215],{"class":92},[86,2578,391],{"class":625},[86,2580,206],{"class":92},[86,2582,2583,2585,2587,2589,2591],{"class":88,"line":262},[86,2584,2502],{"class":633},[86,2586,637],{"class":92},[86,2588,764],{"class":92},[86,2590,767],{"class":132},[86,2592,150],{"class":92},[86,2594,2595,2598,2600,2602],{"class":88,"line":278},[86,2596,2597],{"class":633},"  border-radius",[86,2599,637],{"class":92},[86,2601,780],{"class":653},[86,2603,150],{"class":92},[86,2605,2606,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635],{"class":88,"line":299},[86,2607,2608],{"class":633},"  box-shadow",[86,2610,637],{"class":92},[86,2612,654],{"class":653},[86,2614,795],{"class":653},[86,2616,798],{"class":653},[86,2618,667],{"class":177},[86,2620,226],{"class":92},[86,2622,672],{"class":653},[86,2624,675],{"class":92},[86,2626,654],{"class":653},[86,2628,675],{"class":92},[86,2630,654],{"class":653},[86,2632,675],{"class":92},[86,2634,817],{"class":653},[86,2636,689],{"class":92},[86,2638,2639,2642,2644,2646],{"class":88,"line":312},[86,2640,2641],{"class":633},"  padding",[86,2643,637],{"class":92},[86,2645,830],{"class":653},[86,2647,150],{"class":92},[86,2649,2650,2653,2655,2657],{"class":88,"line":317},[86,2651,2652],{"class":633},"  min-width",[86,2654,637],{"class":92},[86,2656,843],{"class":653},[86,2658,150],{"class":92},[86,2660,2661,2664,2666,2668],{"class":88,"line":327},[86,2662,2663],{"class":633},"  max-width",[86,2665,637],{"class":92},[86,2667,856],{"class":653},[86,2669,150],{"class":92},[86,2671,2672],{"class":88,"line":332},[86,2673,254],{"class":92},[86,2675,2676,2678,2680],{"class":88,"line":342},[86,2677,215],{"class":92},[86,2679,461],{"class":625},[86,2681,206],{"class":92},[86,2683,2684,2686,2688,2690],{"class":88,"line":377},[86,2685,2529],{"class":633},[86,2687,637],{"class":92},[86,2689,700],{"class":132},[86,2691,150],{"class":92},[86,2693,2694,2697,2699,2701],{"class":88,"line":398},[86,2695,2696],{"class":633},"  gap",[86,2698,637],{"class":92},[86,2700,894],{"class":653},[86,2702,150],{"class":92},[86,2704,2705,2708,2710,2712],{"class":88,"line":430},[86,2706,2707],{"class":633},"  margin-top",[86,2709,637],{"class":92},[86,2711,830],{"class":653},[86,2713,150],{"class":92},[86,2715,2716,2718,2720,2722],{"class":88,"line":448},[86,2717,2551],{"class":633},[86,2719,637],{"class":92},[86,2721,918],{"class":132},[86,2723,150],{"class":92},[86,2725,2726],{"class":88,"line":468},[86,2727,254],{"class":92},[86,2729,2730,2732,2734],{"class":88,"line":5},[86,2731,215],{"class":92},[86,2733,483],{"class":625},[86,2735,206],{"class":92},[86,2737,2738,2740,2742,2744,2746],{"class":88,"line":507},[86,2739,2641],{"class":633},[86,2741,637],{"class":92},[86,2743,944],{"class":653},[86,2745,947],{"class":653},[86,2747,150],{"class":92},[86,2749,2750,2752,2754,2756],{"class":88,"line":517},[86,2751,2597],{"class":633},[86,2753,637],{"class":92},[86,2755,959],{"class":653},[86,2757,150],{"class":92},[86,2759,2760,2763,2765,2767],{"class":88,"line":548},[86,2761,2762],{"class":633},"  border",[86,2764,637],{"class":92},[86,2766,972],{"class":132},[86,2768,150],{"class":92},[86,2770,2771,2773,2775,2777,2779],{"class":88,"line":554},[86,2772,2502],{"class":633},[86,2774,637],{"class":92},[86,2776,764],{"class":92},[86,2778,986],{"class":132},[86,2780,150],{"class":92},[86,2782,2783,2786,2788,2790],{"class":88,"line":563},[86,2784,2785],{"class":633},"  cursor",[86,2787,637],{"class":92},[86,2789,999],{"class":132},[86,2791,150],{"class":92},[86,2793,2794,2797,2799,2801],{"class":88,"line":573},[86,2795,2796],{"class":633},"  font-size",[86,2798,637],{"class":92},[86,2800,894],{"class":653},[86,2802,150],{"class":92},[86,2804,2805],{"class":88,"line":583},[86,2806,254],{"class":92},[86,2808,2809,2811,2813],{"class":88,"line":593},[86,2810,215],{"class":92},[86,2812,1026],{"class":625},[86,2814,206],{"class":92},[86,2816,2817,2819,2821,2823,2825],{"class":88,"line":602},[86,2818,2502],{"class":633},[86,2820,637],{"class":92},[86,2822,764],{"class":92},[86,2824,1040],{"class":132},[86,2826,150],{"class":92},[86,2828,2829,2832,2834,2836,2838],{"class":88,"line":607},[86,2830,2831],{"class":633},"  color",[86,2833,637],{"class":92},[86,2835,764],{"class":92},[86,2837,767],{"class":132},[86,2839,150],{"class":92},[86,2841,2842],{"class":88,"line":620},[86,2843,254],{"class":92},[77,2845,2848],{"className":1753,"code":2846,"filename":2847,"language":1755,"meta":82,"style":82},"import { createContext } from \"react\";\n\nexport type AlertDialogProps = {\n  data: {\n    title: string;\n    message: string;\n    confirmText?: string;\n    cancelText?: string;\n  };\n  resolve: (result: boolean) => void;\n};\n\nexport const AlertContext = createContext\u003C{\n  show: (data: AlertDialogProps[\"data\"]) => Promise\u003Cboolean>;\n}>({\n  show: async () => false,\n});\n","context\u002Falert.tsx",[27,2849,2850,2871,2875,2887,2896,2907,2918,2929,2940,2944,2967,2971,2975,2991,3029,3038,3055],{"__ignoreMap":82},[86,2851,2852,2854,2856,2859,2861,2863,2865,2867,2869],{"class":88,"line":89},[86,2853,126],{"class":125},[86,2855,129],{"class":92},[86,2857,2858],{"class":132}," createContext",[86,2860,136],{"class":92},[86,2862,139],{"class":125},[86,2864,142],{"class":92},[86,2866,1803],{"class":113},[86,2868,110],{"class":92},[86,2870,150],{"class":92},[86,2872,2873],{"class":88,"line":122},[86,2874,157],{"emptyLinePlaceholder":156},[86,2876,2877,2879,2881,2883,2885],{"class":88,"line":153},[86,2878,1107],{"class":125},[86,2880,1110],{"class":100},[86,2882,1113],{"class":625},[86,2884,174],{"class":92},[86,2886,206],{"class":92},[86,2888,2889,2892,2894],{"class":88,"line":160},[86,2890,2891],{"class":96},"  data",[86,2893,637],{"class":92},[86,2895,206],{"class":92},[86,2897,2898,2901,2903,2905],{"class":88,"line":185},[86,2899,2900],{"class":96},"    title",[86,2902,637],{"class":92},[86,2904,1137],{"class":625},[86,2906,150],{"class":92},[86,2908,2909,2912,2914,2916],{"class":88,"line":190},[86,2910,2911],{"class":96},"    message",[86,2913,637],{"class":92},[86,2915,1137],{"class":625},[86,2917,150],{"class":92},[86,2919,2920,2923,2925,2927],{"class":88,"line":209},[86,2921,2922],{"class":96},"    confirmText",[86,2924,1134],{"class":92},[86,2926,1137],{"class":625},[86,2928,150],{"class":92},[86,2930,2931,2934,2936,2938],{"class":88,"line":237},[86,2932,2933],{"class":96},"    cancelText",[86,2935,1134],{"class":92},[86,2937,1137],{"class":625},[86,2939,150],{"class":92},[86,2941,2942],{"class":88,"line":251},[86,2943,2005],{"class":92},[86,2945,2946,2949,2951,2953,2955,2957,2959,2961,2963,2965],{"class":88,"line":257},[86,2947,2948],{"class":96},"  resolve",[86,2950,637],{"class":92},[86,2952,1187],{"class":92},[86,2954,1669],{"class":1190},[86,2956,637],{"class":92},[86,2958,1195],{"class":625},[86,2960,232],{"class":92},[86,2962,203],{"class":100},[86,2964,1202],{"class":625},[86,2966,150],{"class":92},[86,2968,2969],{"class":88,"line":262},[86,2970,1395],{"class":92},[86,2972,2973],{"class":88,"line":278},[86,2974,157],{"emptyLinePlaceholder":156},[86,2976,2977,2979,2981,2984,2986,2988],{"class":88,"line":299},[86,2978,1107],{"class":125},[86,2980,1354],{"class":100},[86,2982,2983],{"class":132}," AlertContext ",[86,2985,107],{"class":92},[86,2987,2858],{"class":177},[86,2989,2990],{"class":92},"\u003C{\n",[86,2992,2993,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026],{"class":88,"line":312},[86,2994,2995],{"class":96},"  show",[86,2997,637],{"class":92},[86,2999,1187],{"class":92},[86,3001,1251],{"class":1190},[86,3003,637],{"class":92},[86,3005,1113],{"class":625},[86,3007,1258],{"class":132},[86,3009,110],{"class":92},[86,3011,1251],{"class":113},[86,3013,110],{"class":92},[86,3015,1267],{"class":132},[86,3017,232],{"class":92},[86,3019,203],{"class":100},[86,3021,1273],{"class":625},[86,3023,93],{"class":92},[86,3025,1278],{"class":625},[86,3027,3028],{"class":92},">;\n",[86,3030,3031,3034,3036],{"class":88,"line":317},[86,3032,3033],{"class":92},"}>",[86,3035,226],{"class":132},[86,3037,1591],{"class":92},[86,3039,3040,3042,3044,3046,3048,3050,3053],{"class":88,"line":327},[86,3041,2995],{"class":177},[86,3043,637],{"class":92},[86,3045,1564],{"class":100},[86,3047,200],{"class":92},[86,3049,203],{"class":100},[86,3051,3052],{"class":229}," false",[86,3054,1378],{"class":92},[86,3056,3057,3059,3061],{"class":88,"line":332},[86,3058,171],{"class":92},[86,3060,232],{"class":132},[86,3062,150],{"class":92},[77,3064,3067],{"className":1073,"code":3065,"filename":3066,"language":114,"meta":82,"style":82},"import { AlertContext } from \"@\u002Fcontext\u002Falert\";\nimport { useContext } from \"react\";\n\nexport const useAlert = () => {\n  const ctx = useContext(AlertContext);\n  if (!ctx) {\n    throw new Error(\"useAlert must be used within an AlertProvider\");\n  }\n  return ctx;\n};\n","hooks\u002FuseAlert.ts",[27,3068,3069,3089,3110,3114,3130,3150,3167,3190,3195,3203],{"__ignoreMap":82},[86,3070,3071,3073,3075,3077,3079,3081,3083,3085,3087],{"class":88,"line":89},[86,3072,126],{"class":125},[86,3074,129],{"class":92},[86,3076,1766],{"class":132},[86,3078,136],{"class":92},[86,3080,139],{"class":125},[86,3082,142],{"class":92},[86,3084,1781],{"class":113},[86,3086,110],{"class":92},[86,3088,150],{"class":92},[86,3090,3091,3093,3095,3098,3100,3102,3104,3106,3108],{"class":88,"line":122},[86,3092,126],{"class":125},[86,3094,129],{"class":92},[86,3096,3097],{"class":132}," useContext",[86,3099,136],{"class":92},[86,3101,139],{"class":125},[86,3103,142],{"class":92},[86,3105,1803],{"class":113},[86,3107,110],{"class":92},[86,3109,150],{"class":92},[86,3111,3112],{"class":88,"line":153},[86,3113,157],{"emptyLinePlaceholder":156},[86,3115,3116,3118,3120,3122,3124,3126,3128],{"class":88,"line":160},[86,3117,1107],{"class":125},[86,3119,1354],{"class":100},[86,3121,1357],{"class":132},[86,3123,107],{"class":92},[86,3125,200],{"class":92},[86,3127,203],{"class":100},[86,3129,206],{"class":92},[86,3131,3132,3134,3137,3139,3141,3143,3146,3148],{"class":88,"line":185},[86,3133,1870],{"class":100},[86,3135,3136],{"class":132}," ctx",[86,3138,174],{"class":92},[86,3140,3097],{"class":177},[86,3142,226],{"class":96},[86,3144,3145],{"class":132},"AlertContext",[86,3147,232],{"class":96},[86,3149,150],{"class":92},[86,3151,3152,3155,3157,3160,3163,3165],{"class":88,"line":190},[86,3153,3154],{"class":125},"  if",[86,3156,1187],{"class":96},[86,3158,3159],{"class":92},"!",[86,3161,3162],{"class":132},"ctx",[86,3164,1672],{"class":96},[86,3166,1591],{"class":92},[86,3168,3169,3172,3174,3177,3179,3181,3184,3186,3188],{"class":88,"line":209},[86,3170,3171],{"class":125},"    throw",[86,3173,1292],{"class":92},[86,3175,3176],{"class":177}," Error",[86,3178,226],{"class":96},[86,3180,110],{"class":92},[86,3182,3183],{"class":113},"useAlert must be used within an AlertProvider",[86,3185,110],{"class":92},[86,3187,232],{"class":96},[86,3189,150],{"class":92},[86,3191,3192],{"class":88,"line":237},[86,3193,3194],{"class":92},"  }\n",[86,3196,3197,3199,3201],{"class":88,"line":251},[86,3198,2117],{"class":125},[86,3200,3136],{"class":132},[86,3202,150],{"class":92},[86,3204,3205],{"class":88,"line":257},[86,3206,1395],{"class":92},[77,3208,3211],{"className":1753,"code":3209,"filename":3210,"language":1755,"meta":82,"style":82},"import { AlertProvider } from \"@\u002Fproviders\u002FAlertProvider\";\nfunction App() {\n    return (\n        \u003CAlertProvider>\n            {\u002F* Rest of your app *\u002F}\n        \u003C\u002FAlertProvider>\n    );\n}\n","app.tsx",[27,3212,3213,3235,3247,3253,3262,3271,3279,3286],{"__ignoreMap":82},[86,3214,3215,3217,3219,3222,3224,3226,3228,3231,3233],{"class":88,"line":89},[86,3216,126],{"class":125},[86,3218,129],{"class":92},[86,3220,3221],{"class":132}," AlertProvider",[86,3223,136],{"class":92},[86,3225,139],{"class":125},[86,3227,142],{"class":92},[86,3229,3230],{"class":113},"@\u002Fproviders\u002FAlertProvider",[86,3232,110],{"class":92},[86,3234,150],{"class":92},[86,3236,3237,3240,3243,3245],{"class":88,"line":122},[86,3238,3239],{"class":100},"function",[86,3241,3242],{"class":177}," App",[86,3244,180],{"class":92},[86,3246,206],{"class":92},[86,3248,3249,3251],{"class":88,"line":153},[86,3250,1289],{"class":125},[86,3252,2120],{"class":96},[86,3254,3255,3257,3260],{"class":88,"line":160},[86,3256,380],{"class":92},[86,3258,3259],{"class":625},"AlertProvider",[86,3261,119],{"class":92},[86,3263,3264,3266,3269],{"class":88,"line":185},[86,3265,2203],{"class":92},[86,3267,3268],{"class":1465},"\u002F* Rest of your app *\u002F",[86,3270,254],{"class":92},[86,3272,3273,3275,3277],{"class":88,"line":190},[86,3274,576],{"class":92},[86,3276,3259],{"class":625},[86,3278,119],{"class":92},[86,3280,3281,3284],{"class":88,"line":209},[86,3282,3283],{"class":96},"    )",[86,3285,150],{"class":92},[86,3287,3288],{"class":88,"line":237},[86,3289,254],{"class":92},[77,3291,3294],{"className":1753,"code":3292,"filename":3293,"language":1755,"meta":82,"style":82},"import { useAlert } from \"@\u002Fhooks\u002FuseAlert\";\nconst SomeComponent = () => {\n    const { show } = useAlert();\n\n    const handleDelete = async () => {\n        const result = await show({\n            title: \"Confirm Deletion\",\n            message: \"Are you sure you want to delete this item?\",\n            confirmText: \"Delete\",\n            cancelText: \"Cancel\",\n        });\n        if (result) {\n            \u002F\u002F Perform deletion\n        }\n    };\n\n    return \u003Cbutton onClick={handleDelete}>Delete Item\u003C\u002Fbutton>;\n};\nexport default SomeComponent;\n","components\u002FSomeComponent.tsx",[27,3295,3296,3317,3332,3350,3354,3371,3388,3403,3418,3433,3448,3457,3470,3475,3480,3484,3488,3512,3516],{"__ignoreMap":82},[86,3297,3298,3300,3302,3304,3306,3308,3310,3313,3315],{"class":88,"line":89},[86,3299,126],{"class":125},[86,3301,129],{"class":92},[86,3303,133],{"class":132},[86,3305,136],{"class":92},[86,3307,139],{"class":125},[86,3309,142],{"class":92},[86,3311,3312],{"class":113},"@\u002Fhooks\u002FuseAlert",[86,3314,110],{"class":92},[86,3316,150],{"class":92},[86,3318,3319,3321,3324,3326,3328,3330],{"class":88,"line":122},[86,3320,163],{"class":100},[86,3322,3323],{"class":132}," SomeComponent ",[86,3325,107],{"class":92},[86,3327,200],{"class":92},[86,3329,203],{"class":100},[86,3331,206],{"class":92},[86,3333,3334,3336,3338,3340,3342,3344,3346,3348],{"class":88,"line":153},[86,3335,1575],{"class":100},[86,3337,129],{"class":92},[86,3339,1586],{"class":132},[86,3341,136],{"class":92},[86,3343,174],{"class":92},[86,3345,133],{"class":177},[86,3347,180],{"class":96},[86,3349,150],{"class":92},[86,3351,3352],{"class":88,"line":160},[86,3353,157],{"emptyLinePlaceholder":156},[86,3355,3356,3358,3361,3363,3365,3367,3369],{"class":88,"line":185},[86,3357,1575],{"class":100},[86,3359,3360],{"class":132}," handleDelete",[86,3362,174],{"class":92},[86,3364,1564],{"class":100},[86,3366,200],{"class":92},[86,3368,203],{"class":100},[86,3370,206],{"class":92},[86,3372,3373,3376,3378,3380,3382,3384,3386],{"class":88,"line":190},[86,3374,3375],{"class":100},"        const",[86,3377,1578],{"class":132},[86,3379,174],{"class":92},[86,3381,1583],{"class":125},[86,3383,1586],{"class":177},[86,3385,226],{"class":96},[86,3387,1591],{"class":92},[86,3389,3390,3393,3395,3397,3399,3401],{"class":88,"line":209},[86,3391,3392],{"class":96},"            title",[86,3394,637],{"class":92},[86,3396,142],{"class":92},[86,3398,1602],{"class":113},[86,3400,110],{"class":92},[86,3402,1378],{"class":92},[86,3404,3405,3408,3410,3412,3414,3416],{"class":88,"line":237},[86,3406,3407],{"class":96},"            message",[86,3409,637],{"class":92},[86,3411,142],{"class":92},[86,3413,1617],{"class":113},[86,3415,110],{"class":92},[86,3417,1378],{"class":92},[86,3419,3420,3423,3425,3427,3429,3431],{"class":88,"line":251},[86,3421,3422],{"class":96},"            confirmText",[86,3424,637],{"class":92},[86,3426,142],{"class":92},[86,3428,1632],{"class":113},[86,3430,110],{"class":92},[86,3432,1378],{"class":92},[86,3434,3435,3438,3440,3442,3444,3446],{"class":88,"line":257},[86,3436,3437],{"class":96},"            cancelText",[86,3439,637],{"class":92},[86,3441,142],{"class":92},[86,3443,1647],{"class":113},[86,3445,110],{"class":92},[86,3447,1378],{"class":92},[86,3449,3450,3453,3455],{"class":88,"line":262},[86,3451,3452],{"class":92},"        }",[86,3454,232],{"class":96},[86,3456,150],{"class":92},[86,3458,3459,3462,3464,3466,3468],{"class":88,"line":278},[86,3460,3461],{"class":125},"        if",[86,3463,1187],{"class":96},[86,3465,1669],{"class":132},[86,3467,1672],{"class":96},[86,3469,1591],{"class":92},[86,3471,3472],{"class":88,"line":299},[86,3473,3474],{"class":1465},"            \u002F\u002F Perform deletion\n",[86,3476,3477],{"class":88,"line":312},[86,3478,3479],{"class":92},"        }\n",[86,3481,3482],{"class":88,"line":317},[86,3483,1390],{"class":92},[86,3485,3486],{"class":88,"line":327},[86,3487,157],{"emptyLinePlaceholder":156},[86,3489,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510],{"class":88,"line":332},[86,3491,1289],{"class":125},[86,3493,2219],{"class":92},[86,3495,474],{"class":96},[86,3497,2306],{"class":100},[86,3499,2309],{"class":92},[86,3501,1722],{"class":132},[86,3503,3033],{"class":92},[86,3505,1729],{"class":132},[86,3507,320],{"class":92},[86,3509,474],{"class":96},[86,3511,3028],{"class":92},[86,3513,3514],{"class":88,"line":342},[86,3515,1395],{"class":92},[86,3517,3518,3520,3523,3526],{"class":88,"line":377},[86,3519,1107],{"class":125},[86,3521,3522],{"class":125}," default",[86,3524,3525],{"class":132}," SomeComponent",[86,3527,150],{"class":92},[612,3529,3530],{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .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 .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}",{"title":82,"searchDepth":122,"depth":122,"links":3532},[],"2026-01-05","md",{},"\u002Fblogs\u002F002",{"title":10,"description":17},"reusable-alert-dialog-vue-react","blogs\u002F002","q5WON4mcJVdSQ9W2UalskYNrfVVm73tqAKnotXR8rBA",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":3542},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 14l1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":3544},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":3546},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":593,"height":593,"rotate":4,"vFlip":6,"hFlip":6,"body":3548},"\u003Cpath fill=\"#41b883\" d=\"M24.4 3.925H30l-14 24.15L2 3.925h10.71l3.29 5.6l3.22-5.6Z\"\u002F>\u003Cpath fill=\"#41b883\" d=\"m2 3.925l14 24.15l14-24.15h-5.6L16 18.415L7.53 3.925Z\"\u002F>\u003Cpath fill=\"#35495e\" d=\"M7.53 3.925L16 18.485l8.4-14.56h-5.18L16 9.525l-3.29-5.6Z\"\u002F>",{"left":4,"top":4,"width":593,"height":593,"rotate":4,"vFlip":6,"hFlip":6,"body":3550},"\u003Ccircle cx=\"16\" cy=\"15.974\" r=\"2.5\" fill=\"#007acc\"\u002F>\u003Cpath fill=\"#007acc\" d=\"M16 21.706a28.4 28.4 0 0 1-8.88-1.2a11.3 11.3 0 0 1-3.657-1.958A3.54 3.54 0 0 1 2 15.974c0-1.653 1.816-3.273 4.858-4.333A28.8 28.8 0 0 1 16 10.293a28.7 28.7 0 0 1 9.022 1.324a11.4 11.4 0 0 1 3.538 1.866A3.4 3.4 0 0 1 30 15.974c0 1.718-2.03 3.459-5.3 4.541a28.8 28.8 0 0 1-8.7 1.191m0-10.217a28 28 0 0 0-8.749 1.282c-2.8.977-4.055 2.313-4.055 3.2c0 .928 1.349 2.387 4.311 3.4A27.2 27.2 0 0 0 16 20.51a27.6 27.6 0 0 0 8.325-1.13C27.4 18.361 28.8 16.9 28.8 15.974a2.33 2.33 0 0 0-1.01-1.573a10.2 10.2 0 0 0-3.161-1.654A27.5 27.5 0 0 0 16 11.489\"\u002F>\u003Cpath fill=\"#007acc\" d=\"M10.32 28.443a2.64 2.64 0 0 1-1.336-.328c-1.432-.826-1.928-3.208-1.327-6.373a28.8 28.8 0 0 1 3.4-8.593a28.7 28.7 0 0 1 5.653-7.154a11.4 11.4 0 0 1 3.384-2.133a3.4 3.4 0 0 1 2.878 0c1.489.858 1.982 3.486 1.287 6.859a28.8 28.8 0 0 1-3.316 8.133a28.4 28.4 0 0 1-5.476 7.093a11.3 11.3 0 0 1-3.523 2.189a4.9 4.9 0 0 1-1.624.307m1.773-14.7a28 28 0 0 0-3.26 8.219c-.553 2.915-.022 4.668.75 5.114c.8.463 2.742.024 5.1-2.036a27.2 27.2 0 0 0 5.227-6.79a27.6 27.6 0 0 0 3.181-7.776c.654-3.175.089-5.119-.713-5.581a2.33 2.33 0 0 0-1.868.089A10.2 10.2 0 0 0 17.5 6.9a27.5 27.5 0 0 0-5.4 6.849Z\"\u002F>\u003Cpath fill=\"#007acc\" d=\"M21.677 28.456c-1.355 0-3.076-.82-4.868-2.361a28.8 28.8 0 0 1-5.747-7.237a28.7 28.7 0 0 1-3.374-8.471a11.4 11.4 0 0 1-.158-4A3.4 3.4 0 0 1 8.964 3.9c1.487-.861 4.01.024 6.585 2.31a28.8 28.8 0 0 1 5.39 6.934a28.4 28.4 0 0 1 3.41 8.287a11.3 11.3 0 0 1 .137 4.146a3.54 3.54 0 0 1-1.494 2.555a2.6 2.6 0 0 1-1.315.324m-9.58-10.2a28 28 0 0 0 5.492 6.929c2.249 1.935 4.033 2.351 4.8 1.9c.8-.465 1.39-2.363.782-5.434A27.2 27.2 0 0 0 19.9 13.74a27.6 27.6 0 0 0-5.145-6.64c-2.424-2.152-4.39-2.633-5.191-2.169a2.33 2.33 0 0 0-.855 1.662a10.2 10.2 0 0 0 .153 3.565a27.5 27.5 0 0 0 3.236 8.1Z\"\u002F>",{"left":4,"top":4,"width":593,"height":593,"rotate":4,"vFlip":6,"hFlip":6,"body":3552},"\u003Cpath fill=\"#007acc\" d=\"M23.827 8.243a4.4 4.4 0 0 1 2.223 1.281a6 6 0 0 1 .852 1.143c.011.045-1.534 1.083-2.471 1.662c-.034.023-.169-.124-.322-.35a2.01 2.01 0 0 0-1.67-1c-1.077-.074-1.771.49-1.766 1.433a1.3 1.3 0 0 0 .153.666c.237.49.677.784 2.059 1.383c2.544 1.095 3.636 1.817 4.31 2.843a5.16 5.16 0 0 1 .416 4.333a4.76 4.76 0 0 1-3.932 2.815a11 11 0 0 1-2.708-.028a6.53 6.53 0 0 1-3.616-1.884a6.3 6.3 0 0 1-.926-1.371a3 3 0 0 1 .327-.208c.158-.09.756-.434 1.32-.761l1.024-.6l.214.312a4.8 4.8 0 0 0 1.35 1.292a3.3 3.3 0 0 0 3.458-.175a1.545 1.545 0 0 0 .2-1.974c-.276-.395-.84-.727-2.443-1.422a8.8 8.8 0 0 1-3.349-2.055a4.7 4.7 0 0 1-.976-1.777a7.1 7.1 0 0 1-.062-2.268a4.33 4.33 0 0 1 3.644-3.374a9 9 0 0 1 2.691.084m-8.343 1.483l.011 1.454h-4.63v13.148H7.6V11.183H2.97V9.755a14 14 0 0 1 .04-1.466c.017-.023 2.832-.034 6.245-.028l6.211.017Z\"\u002F>",{"left":4,"top":4,"width":593,"height":593,"rotate":4,"vFlip":6,"hFlip":6,"body":3554},"\u003Cpath fill=\"#639\" d=\"M1.995 1.994h23.52a4.48 4.48 0 0 1 4.48 4.48v19.04a4.48 4.48 0 0 1-4.48 4.48H6.475a4.48 4.48 0 0 1-4.48-4.48Z\"\u002F>\u003Cpath fill=\"#fff\" d=\"M9.079 24.87v-4.704c0-1.876 1.204-2.884 3.024-2.884c1.792-.028 2.912 1.148 2.856 3.136h-2.072c.056-.756-.28-1.316-.84-1.288c-.7 0-.896.476-.896 1.372v4.088c0 .868.28 1.288.896 1.316c.644 0 .896-.644.84-1.372h2.072c.112 2.044-1.176 3.248-2.996 3.22c-1.764 0-2.884-.98-2.884-2.884m6.636-.336h1.932c.028.896.308 1.456.924 1.456s.84-.364.84-1.204c0-.7-.308-1.092-1.064-1.456l-.728-.336c-1.288-.616-1.82-1.372-1.82-2.884c0-1.68 1.064-2.856 2.8-2.856s2.66 1.204 2.688 3.164h-1.876c0-.812-.168-1.372-.784-1.372c-.56 0-.84.28-.84.98s.252.98.924 1.26l.672.308c1.428.672 2.044 1.54 2.044 3.164c0 1.932-1.092 2.996-2.884 2.996s-2.8-1.232-2.828-3.22m6.328 0h1.96c0 .896.308 1.456.896 1.456s.84-.364.84-1.204c0-.7-.28-1.092-1.064-1.456l-.728-.336c-1.288-.616-1.792-1.372-1.792-2.884c0-1.68 1.036-2.856 2.8-2.856s2.632 1.204 2.688 3.164h-1.876c-.028-.812-.196-1.372-.812-1.372c-.56 0-.812.28-.812.98s.224.98.896 1.26l.7.308c1.4.672 2.016 1.54 2.016 3.164c0 1.932-1.092 2.996-2.884 2.996s-2.8-1.232-2.828-3.22\"\u002F>",1775105718209]