@camstack/addon-admin-ui 1.2.527 → 1.2.529

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/assets/{AddonAssetIcon-BZ0hQcho.js → AddonAssetIcon-B1rn0DLw.js} +1 -1
  3. package/dist/assets/Addons-CZ_5JUVc.js +5 -0
  4. package/dist/assets/{AdminPage-7avIuDBh.js → AdminPage-DmkuRREx.js} +1 -1
  5. package/dist/assets/{AdminSectionedPage-Bd2owMGm.js → AdminSectionedPage-B_tSbkIV.js} +1 -1
  6. package/dist/assets/{AiProfiles-aCDtxD2T.js → AiProfiles-W2ByefcY.js} +2 -2
  7. package/dist/assets/{Build-SObpGxas.js → Build-BesaIcQt.js} +3 -3
  8. package/dist/assets/Calendars-PHb_rEbJ.js +1 -0
  9. package/dist/assets/Cluster-CnMcgkaB.js +1 -0
  10. package/dist/assets/{ComposedDeviceEditDialog-BiIiBFG-.js → ComposedDeviceEditDialog-DlxMQhZP.js} +1 -1
  11. package/dist/assets/{CompositionBlockEditor-BXYXXUEU.js → CompositionBlockEditor-Ctx6d-qx.js} +2 -2
  12. package/dist/assets/CompositionEditorPage-CVp1OM-C.js +1 -0
  13. package/dist/assets/Data-OpXlBhEa.js +2 -0
  14. package/dist/assets/DeviceDetail-CUzPIb4E.js +2 -0
  15. package/dist/assets/DeviceDoActionFields-D1rhgn3I.js +1 -0
  16. package/dist/assets/Devices-DFfVPHVt.js +1 -0
  17. package/dist/assets/{EmbedPlayerPage-B7MIw7cv.js → EmbedPlayerPage-D0lVyXps.js} +1 -1
  18. package/dist/assets/FormBuilder-BvQZWKCS.js +1 -0
  19. package/dist/assets/History-BLJJzgUt.js +1 -0
  20. package/dist/assets/Identity-B_TiHuO-.js +1 -0
  21. package/dist/assets/IntegrationDetail-DtTxTigM.js +1 -0
  22. package/dist/assets/IntegrationHub-BvDB6bjh.js +1 -0
  23. package/dist/assets/Integrations-CK3qys8g.js +1 -0
  24. package/dist/assets/Integrations-Xub2OY5T.js +1 -0
  25. package/dist/assets/Library-CO10lVu2.js +1 -0
  26. package/dist/assets/Locations-CaL7Y2a3.js +3 -0
  27. package/dist/assets/{Logs-CrxQn3Uq.js → Logs-Bu40SOPP.js} +1 -1
  28. package/dist/assets/{MaskShapeCanvas-tJyuoOTy.js → MaskShapeCanvas-HJuLPIJP.js} +1 -1
  29. package/dist/assets/{MotionZonesSettings-DaGyceJa.js → MotionZonesSettings-COMPKhfx.js} +1 -1
  30. package/dist/assets/MyAccess-CNQzuYsW.js +2 -0
  31. package/dist/assets/Network-BBm6sZIX.js +1 -0
  32. package/dist/assets/NodeAddonsSettingsPanel-DZwxKBXw.js +1 -0
  33. package/dist/assets/Notifications-BS4cbFH2.js +1 -0
  34. package/dist/assets/Pipeline-BhNYn1U-.js +1 -0
  35. package/dist/assets/{PrivacyMaskSettings-zzQcpeb0.js → PrivacyMaskSettings-C88JqmdE.js} +1 -1
  36. package/dist/assets/Recordings-B8VQL_Ik.js +1 -0
  37. package/dist/assets/{RemoteGrid-Bz_u9tq6.js → RemoteGrid-CF92aN64.js} +1 -1
  38. package/dist/assets/ScanNetworkModal-SyHjZF2T.js +1 -0
  39. package/dist/assets/{SceneMonitorEditor-B0ICySEi.js → SceneMonitorEditor-mE7W6emU.js} +1 -1
  40. package/dist/assets/SessionsList-BD87Vhfu.js +2 -0
  41. package/dist/assets/Showroom-BS88iBLb.js +1 -0
  42. package/dist/assets/System-D-Xj3jc0.js +1 -0
  43. package/dist/assets/{Templates-uAAxbV9V.js → Templates-D0V7IdcS.js} +1 -1
  44. package/dist/assets/{Terminal-D1fhPY66.js → Terminal-DhbVA89N.js} +5 -5
  45. package/dist/assets/Trans-Bsz5Pghy.js +1 -0
  46. package/dist/assets/{Viewer-BWN8qfBa.js → Viewer-BTxcZ-BR.js} +1 -1
  47. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-sshFQYnL.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CmowmspB.js} +1 -1
  48. package/dist/assets/{addon-icons-context-BHF-RdY-.js → addon-icons-context-DZZCjo9x.js} +1 -1
  49. package/dist/assets/{archive-2V-x_y9T.js → archive-Bu9T4BL0.js} +1 -1
  50. package/dist/assets/{assignment-candidates-BpC51VXR.js → assignment-candidates-DWivr3bV.js} +1 -1
  51. package/dist/assets/{authed-media-CdbbdgDZ.js → authed-media-yW7W_8pm.js} +1 -1
  52. package/dist/assets/{bell-off-DDQ8FbF1.js → bell-off-E0Abr7jJ.js} +1 -1
  53. package/dist/assets/{board-model-D3wYwuI4.js → board-model-CCD7fB3T.js} +1 -1
  54. package/dist/assets/{boxes-BwEV9Act.js → boxes-BkzsIUkw.js} +1 -1
  55. package/dist/assets/circle-slash-pdaivo-U.js +1 -0
  56. package/dist/assets/{client-r4i0EpF6.js → client-BvflqtP1.js} +1 -1
  57. package/dist/assets/{cloud-upload-BII8r4p9.js → cloud-upload-BIjzjy_K.js} +1 -1
  58. package/dist/assets/crop-CZJDrMcX.js +1 -0
  59. package/dist/assets/device-integration-icon-D-OosuOg.js +1 -0
  60. package/dist/assets/device-picker-model-2dkiqOI6.js +1 -0
  61. package/dist/assets/{dist-B0LFF94V.js → dist-DoqhrZoo.js} +1 -1
  62. package/dist/assets/{dist-BOdjk8IV.js → dist-Gm_hHBN2.js} +1 -1
  63. package/dist/assets/{file-up-Bizrs9Ca.js → file-up-Cyg6A2qN.js} +1 -1
  64. package/dist/assets/{format-Bqo-j708.js → format-ChSVChsY.js} +1 -1
  65. package/dist/assets/{grip-vertical-C-qhB3oM.js → grip-vertical-CLVyc1HC.js} +1 -1
  66. package/dist/assets/{hard-drive-download-Dym9jihx.js → hard-drive-download-Cd122TYb.js} +1 -1
  67. package/dist/assets/{hostInit-bmlgmSTk.js → hostInit-DR1ykbVx.js} +1 -1
  68. package/dist/assets/i18n-Bg2ooh3q.js +1 -0
  69. package/dist/assets/icons-BSJCF6qM.js +1 -0
  70. package/dist/assets/index-CyqhCHax.css +2 -0
  71. package/dist/assets/index-DMMw81r0.js +4 -0
  72. package/dist/assets/{key-DddJ6bil.js → key-D_zqd1r-.js} +1 -1
  73. package/dist/assets/{key-round-CbCqycf3.js → key-round-pNw827HU.js} +1 -1
  74. package/dist/assets/{layers-C-ZqYk3U.js → layers-CFNXRt4j.js} +1 -1
  75. package/dist/assets/{linked-devices-model-BPUD1khJ.js → linked-devices-model-D9m6pafu.js} +1 -1
  76. package/dist/assets/{list-ordered-Cxznlat2.js → list-ordered-Dy6tCUD8.js} +1 -1
  77. package/dist/assets/location-owned-usage-DasgH3RR.js +1 -0
  78. package/dist/assets/{memory-stick-CLL3KiND.js → memory-stick-Bt2KoB-0.js} +1 -1
  79. package/dist/assets/{message-square-plus-C2nVnMG1.js → message-square-plus-rkd_X0vs.js} +1 -1
  80. package/dist/assets/{mf-entry-bootstrap-0-edf9b20a.js → mf-entry-bootstrap-0-dd19d57d.js} +2 -2
  81. package/dist/assets/{mic-off-CcHQBwDt.js → mic-off-DWb36TX2.js} +1 -1
  82. package/dist/assets/{monitor-off-DUE1gt1S.js → monitor-off-B2GWMMt_.js} +1 -1
  83. package/dist/assets/{monitor-smartphone-CwOoXB0L.js → monitor-smartphone-DJzvbVtx.js} +1 -1
  84. package/dist/assets/mount-2dkiqOI6.js +1 -0
  85. package/dist/assets/notification-schedule-field-B7FdiF_t.js +1 -0
  86. package/dist/assets/{player-overlays-Cw_gjG75.js → player-overlays-DpZIxQHp.js} +1 -1
  87. package/dist/assets/{recycle-hW2Os1lc.js → recycle-BWLoavmg.js} +1 -1
  88. package/dist/assets/remoteEntry-CD4F7fE2.js +1 -0
  89. package/dist/assets/{ruler-SYjqj9n_.js → ruler-C1SbVRl3.js} +1 -1
  90. package/dist/assets/{scan-eye-BZlKp5Ev.js → scan-eye-Bv4PGTFl.js} +1 -1
  91. package/dist/assets/{scissors-Prn6Kbb7.js → scissors-BsEkbrx_.js} +1 -1
  92. package/dist/assets/{search-x-CCA8373c.js → search-x-DE4DxdsF.js} +1 -1
  93. package/dist/assets/{send-C5rCH5_0.js → send-Dd0BBamd.js} +1 -1
  94. package/dist/assets/{settings-2-wlw_-rxi.js → settings-2-z3X6U2eo.js} +1 -1
  95. package/dist/assets/{shapes-Kj0bK1D8.js → shapes-D-IaC6en.js} +1 -1
  96. package/dist/assets/{sigma-NPxR3lj1.js → sigma-CxBVWJ85.js} +1 -1
  97. package/dist/assets/{speaker-CIKbprnA.js → speaker-Dy79a571.js} +1 -1
  98. package/dist/assets/src-KDhMZ5Ob.js +67 -0
  99. package/dist/assets/sso-popup-BjTl8T6g.js +1 -0
  100. package/dist/assets/{step-inspector-model-BKKc_lkM.js → step-inspector-model-DINPtCNq.js} +1 -1
  101. package/dist/assets/{table-2-Sw__YAPa.js → table-2-IUuOvuT8.js} +1 -1
  102. package/dist/assets/{timer-reset-BhPZYoCT.js → timer-reset-D1H0hoMf.js} +1 -1
  103. package/dist/assets/{unlink-DNy8sNAV.js → unlink-DTu1e00O.js} +1 -1
  104. package/dist/assets/{usb-CyQsTtlO.js → usb-CFK8z-TS.js} +1 -1
  105. package/dist/assets/{use-device-bound-caps-BQo_OD1O.js → use-device-bound-caps-DS4FtJtN.js} +1 -1
  106. package/dist/assets/{use-scenes-feed-BCDAv1nN.js → use-scenes-feed-CE-KFGxN.js} +1 -1
  107. package/dist/assets/{use-stationary-objects-BnIfyZw5.js → use-stationary-objects-CFLRkxjx.js} +1 -1
  108. package/dist/assets/useEventInvalidation-2dkiqOI6.js +1 -0
  109. package/dist/assets/useNodeUrlSelection-A-NDcCsx.js +1 -0
  110. package/dist/assets/user-round-BSVSJsjB.js +1 -0
  111. package/dist/assets/{user-x-CUkBojXx.js → user-x-KWsBR0tG.js} +1 -1
  112. package/dist/assets/{variable-CpgCMY_Q.js → variable-BG_qKWYf.js} +1 -1
  113. package/dist/assets/{video-DXegVNA2.js → video-D0guHpd1.js} +1 -1
  114. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-2LL0aB_0.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-FCSZ5q7m.js} +2 -2
  115. package/dist/index.html +14 -10
  116. package/dist/server/addon.js +9 -1
  117. package/package.json +1 -1
  118. package/dist/assets/Addons-BAqAfY0r.js +0 -5
  119. package/dist/assets/BrokerEditorDialog-Cp7neyJC.js +0 -1
  120. package/dist/assets/Calendars-B2TORAnq.js +0 -1
  121. package/dist/assets/Cluster-CD4DYic_.js +0 -1
  122. package/dist/assets/CompositionEditorPage-Cm4C-7Z-.js +0 -1
  123. package/dist/assets/Data-CRPVPhFT.js +0 -2
  124. package/dist/assets/DeviceDetail-DNsWQGiy.js +0 -2
  125. package/dist/assets/DeviceDoActionFields-BEhy6_KW.js +0 -1
  126. package/dist/assets/Devices-CS5P4d9n.js +0 -1
  127. package/dist/assets/History-BbOfWf-p.js +0 -1
  128. package/dist/assets/Identity-Df140-fX.js +0 -1
  129. package/dist/assets/IntegrationDetail-B7sqZ94w.js +0 -1
  130. package/dist/assets/IntegrationHub-DndCuqMe.js +0 -1
  131. package/dist/assets/Integrations-BJh_WZAT.js +0 -1
  132. package/dist/assets/Integrations-DRCpstaG.js +0 -1
  133. package/dist/assets/Library-Cx17_SRL.js +0 -1
  134. package/dist/assets/Locations-Dt9LOu5v.js +0 -3
  135. package/dist/assets/MyAccess-Bp2dsON4.js +0 -2
  136. package/dist/assets/Network-DftlNAIH.js +0 -1
  137. package/dist/assets/NodeAddonsSettingsPanel-JIXh-CLX.js +0 -1
  138. package/dist/assets/Notifications-2tj0VaIS.js +0 -1
  139. package/dist/assets/Pipeline-CqZqLWQZ.js +0 -1
  140. package/dist/assets/Recordings-DoAJqZqc.js +0 -1
  141. package/dist/assets/ScanNetworkModal-DL-mWRtG.js +0 -1
  142. package/dist/assets/SessionsList-QvqpXCDN.js +0 -2
  143. package/dist/assets/Showroom-B6CDELO1.js +0 -1
  144. package/dist/assets/System-C0KUcOaJ.js +0 -1
  145. package/dist/assets/circle-slash-BjzSCz4-.js +0 -1
  146. package/dist/assets/crop-D9cpl5_W.js +0 -1
  147. package/dist/assets/device-integration-icon-Cf2JTj5q.js +0 -1
  148. package/dist/assets/device-picker-model-B_Zjyqyk.js +0 -1
  149. package/dist/assets/i18n-BE1bPZOs.js +0 -1
  150. package/dist/assets/icons-BZ8D05w2.js +0 -1
  151. package/dist/assets/index-DimGtYV1.css +0 -2
  152. package/dist/assets/index-Ohn-2iW_.js +0 -4
  153. package/dist/assets/location-owned-usage-DOmOvdiG.js +0 -1
  154. package/dist/assets/log-in-9Uirjetj.js +0 -1
  155. package/dist/assets/mount-B_Zjyqyk.js +0 -1
  156. package/dist/assets/remoteEntry-CHuAXwj-.js +0 -1
  157. package/dist/assets/src-nnHXOip7.js +0 -67
  158. package/dist/assets/useEventInvalidation-B_Zjyqyk.js +0 -1
  159. package/dist/assets/useNodeUrlSelection-CR_BnlEg.js +0 -1
  160. package/dist/assets/user-round-BY4YxbLZ.js +0 -1
@@ -1 +1 @@
1
- import{C as e,J as t,K as n,R as r,S as i,V as a,Y as o,et as s,o as c,x as l}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{Hn as u,Ht as d,In as f,aa as p,ai as m,ia as h,ot as g,ra as _,st as v,ta as y,vn as b}from"./player-overlays-Cw_gjG75.js";import{Dr as x,Or as S,Sr as C,ar as w,br as ee,ir as T,kr as E,rr as D,xr as O,yi as te,yr as ne}from"./client-r4i0EpF6.js";import{l as re}from"./video-DXegVNA2.js";import{t as k}from"./shapes-Kj0bK1D8.js";import{t as ie}from"./unlink-DNy8sNAV.js";import{An as ae,Bd as oe,Cr as se,Et as A,Ir as j,Nd as M,Nr as ce,Pr as le,Qu as ue,Rd as N,Tr as de,Xu as fe,Yu as pe,Zn as me,Zu as he,an as P,br as ge,di as _e,jn as ve,mu as ye,oi as be,ri as F,wr as xe,wt as Se,xr as Ce,yr as we,zd as I}from"./src-nnHXOip7.js";import{t as L}from"./useTranslation-BJr-n0es.js";import{t as Te}from"./AdminPage-7avIuDBh.js";import{C as Ee,S as R,T as z,_ as De,a as Oe,b as ke,c as Ae,d as je,f as Me,g as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as B,s as V,t as Ve,u as He,v as Ue,w as We,x as Ge,y as Ke}from"./RemoteGrid-Bz_u9tq6.js";s();var H=12,U=4,W=3,G=(e,t,n,r,i,a={})=>({id:e,role:t,row:n,col:r,colSpan:i,...a}),K=e=>`custom:${e}`;function q(e,t,n=[]){return t.map((t,r)=>G(`r${e}c${r}`,t,e,r*U,U,{...n[r]===void 0?{}:{label:n[r]}}))}function J(e){return[G(`up`,`up`,e,U,U),G(`left`,`left`,e+1,0,U),G(`ok`,`ok`,e+1,U,U),G(`right`,`right`,e+1,2*U,U),G(`down`,`down`,e+2,U,U)]}function Y(e,t){return t.map((t,n)=>G(`app_${t}`,K(`app_${t}`),e,n*W,W,{icon:B(t)}))}var X=(e,t)=>({id:`core:section-divider`,row:e,col:0,options:{scale:{cols:H},title:t}});function qe(e,t,n){let r=V(H,e,t);for(let e of n){let t=w(r,D(e.id),{row:e.row,col:e.col},e.options);if(!t.ok)throw Error(`preset component ${e.id} at ${e.row}:${e.col}: ${t.reason}`);r=t.layout}return r}var Z={scale:{cols:U}},Je={scale:{rows:2,cols:U}},Ye=(e,t,n,r)=>({idSuffix:e,row:3,col:t,rowSpan:1,colSpan:1,role:n,label:r}),Xe=qe(23,[G(`input`,`input`,0,2*U,U),G(`mute`,`mute`,7,U,U),G(`ch_list`,K(`ch_list`),8,U,U,{label:`CH LIST`}),G(`settings`,K(`settings`),9,U,U,{label:`Settings`}),G(`home`,`home`,10,U,U),G(`guide`,`guide`,12,0,U),G(`e_manual`,K(`e_manual`),12,U,U,{label:`e-Manual`}),G(`info`,`info`,12,2*U,U),G(`back`,`back`,17,0,U),G(`exit`,`exit`,17,2*U,U),G(`color_a`,K(`color_a`),19,0,W,{label:`A`}),G(`color_b`,K(`color_b`),19,W,W,{label:`B`}),G(`color_c`,K(`color_c`),19,2*W,W,{label:`C`}),G(`color_d`,K(`color_d`),19,3*W,W,{label:`D`}),G(`pic_size`,K(`pic_size`),20,0,U,{label:`P.SIZE`}),G(`picture`,K(`picture`),20,U,U,{label:`Picture`}),G(`ad_subt`,K(`ad_subt`),20,2*U,U,{label:`AD/SUBT`})],[{id:`core:power`,row:0,col:0,options:{scale:{cols:2}}},X(1,`Numbers`),{id:`core:keypad`,row:2,col:0,options:{scale:Z.scale,extras:[Ye(`ttx`,0,K(`ttx_mix`),`TTX/MIX`),Ye(`prech`,2,K(`pre_ch`),`PRE-CH`)]}},X(6,`Volume and channels`),{id:`core:rocker-volume-v`,row:7,col:0,options:Je},{id:`core:rocker-channel-v`,row:7,col:2*U,options:Je},X(11,`Menus`),X(13,`Navigation`),{id:`core:dpad`,row:14,col:0,options:Z},X(18,`Colour and picture`),X(21,`Playback`),{id:`core:media-transport`,row:22,col:1,options:{scale:{cols:2}}}]),Ze=[`netflix`,`youtube`,`primevideo`,`disneyplus`,`dazn`,`raiplay`],Qe=qe(20,[G(`input`,`input`,0,2*U,U),...q(4,[`menu`,`home`,`exit`]),G(`guide`,`guide`,6,0,U),G(`info`,`info`,6,2*U,U),G(`back`,`back`,10,0,U),G(`play_pause`,`play_pause`,10,2*U,U),G(`mute`,`mute`,12,U,U),G(`ch_list`,K(`ch_list`),13,U,U,{label:`CH.LIST`}),G(`subtitle`,K(`subtitle`),14,0,6,{label:`Subtitle`}),G(`text`,K(`text`),14,6,6,{label:`Text`})],[{id:`core:power`,row:0,col:0,options:{scale:{cols:2}}},{id:`core:panel`,row:1,col:0,options:{scale:Z.scale,title:`Apps`,extras:Ze.map((e,t)=>({idSuffix:e,row:Math.floor(t/3),col:t%3,rowSpan:1,colSpan:1,role:K(`app_${e}`),icon:B(e)}))}},{id:`core:colour-keys`,row:3,col:0,options:{scale:{cols:W}}},X(5,`Navigation`),{id:`core:dpad`,row:7,col:0,options:Z},X(11,`Volume and channels`),{id:`core:rocker-volume-v`,row:12,col:0,options:Z},{id:`core:rocker-channel-v`,row:12,col:2*U,options:Z},X(15,`Numbers`),{id:`core:keypad`,row:16,col:0,options:Z}]),$e=V(H,8,[G(`power`,`power`,0,0,U),G(`input`,`input`,0,2*U,U),...J(1),...q(4,[`back`,`home`,`play_pause`]),G(`vol_up`,`volume_up`,5,0,U),G(`mute`,`mute`,5,U,U,{rowSpan:2}),G(`ch_up`,`channel_up`,5,2*U,U),G(`vol_down`,`volume_down`,6,0,U),G(`ch_down`,`channel_down`,6,2*U,U),...Y(7,[`netflix`,`primevideo`,`disneyplus`,`youtube`])]),et=V(H,9,[G(`power`,`power`,0,0,U),G(`input`,`input`,0,2*U,U),G(`settings`,K(`settings`),1,0,U,{label:`Settings`}),G(`up`,`up`,1,U,U),G(`guide`,`guide`,1,2*U,U),G(`left`,`left`,2,0,U),G(`ok`,`ok`,2,U,U),G(`right`,`right`,2,2*U,U),G(`back`,`back`,3,0,U),G(`down`,`down`,3,U,U),G(`home`,`home`,3,2*U,U),G(`vol_up`,`volume_up`,4,0,U,{rowSpan:2}),G(`vol_down`,`volume_down`,6,0,U,{rowSpan:2}),G(`mute`,`mute`,4,U,U),G(`info`,`info`,5,U,U),G(`menu`,`menu`,6,U,U),G(`exit`,`exit`,7,U,U),G(`ch_up`,`channel_up`,4,2*U,U,{rowSpan:2}),G(`ch_down`,`channel_down`,6,2*U,U,{rowSpan:2}),...Y(8,[`netflix`,`primevideo`,`disneyplus`,`youtube`])]),tt=V(H,8,[G(`assistant`,K(`assistant`),0,0,U,{label:`Assistant`}),G(`input`,`input`,0,U,U),G(`power`,`power`,0,2*U,U),...J(1),...q(4,[`back`,`home`,`guide`]),G(`vol_up`,`volume_up`,5,0,U),G(`mute`,`mute`,5,U,U),G(`ch_up`,`channel_up`,5,2*U,U),G(`vol_down`,`volume_down`,6,0,U),G(`play_pause`,`play_pause`,6,U,U),G(`ch_down`,`channel_down`,6,2*U,U),...Y(7,[`youtube`,`netflix`,`primevideo`,`disneyplus`])]),nt=V(H,7,[G(`siri`,K(`siri`),0,0,U,{label:`Siri`}),G(`power`,`power`,0,2*U,U),...J(1),...q(4,[`back`,`play_pause`,`home`]),G(`vol_up`,`volume_up`,5,0,6),G(`vol_down`,`volume_down`,5,6,6),G(`mute`,`mute`,6,U,U)]),rt=[{id:`samsung-classic`,layout:Xe},{id:`hisense-vidaa`,layout:Qe},{id:`samsung-smart`,layout:$e},{id:`lg-magic`,layout:et},{id:`google-tv`,layout:tt},{id:`apple-tv`,layout:nt}];function it(e){let t=rt.find(t=>t.id===e);return t===void 0?null:{...t.layout,buttons:t.layout.buttons.map(e=>({...e}))}}function at(e){let t=new Map;for(let n of e)for(let e of n)t.has(e.id)||t.set(e.id,e);let n=[...t.values()];return[...n.filter(e=>e.id.startsWith(`core:`)),...n.filter(e=>!e.id.startsWith(`core:`))]}function ot(e,t){let n=e.nameI18n;return n===void 0?e.name:t.startsWith(`it`)?n.it:n.en}function st(e){let t=w({columns:e.size.cols,rows:e.size.rows,buttons:[]},e,{row:0,col:0});return t.ok?t.layout:null}function ct(e,t,n,r){let i=t.trim().toLowerCase();return i===``?[...e]:e.filter(e=>ot(e,n).toLowerCase().includes(i)||r(e.category).toLowerCase().includes(i))}function lt(e,t){let n=T(e,t);return n!==null&&n>1}function ut(e,t,n={}){let r=n.fillWidth===!0?T(e,t):null,i=r===null||r<2?{}:{scale:{cols:r}};if(n.at!==void 0)return w(e,t,n.at,i);let a=w(e,t,{row:0,col:0},i);if(a.ok||a.reason===`outside`||a.reason===`too-many`)return a;for(let n=0;n<e.rows;n+=1)for(let r=0;r<e.columns;r+=1){let a=w(e,t,{row:n,col:r},i);if(a.ok)return a}return a}function dt({open:t,grid:n,onOpenChange:r,onPick:a}){let{t:o,i18n:s}=L();return i(we,{open:t,onOpenChange:r,children:e(Ce,{width:`lg`,placement:`sheet-on-mobile`,scroll:`body`,children:[i(xe,{children:i(de,{children:o(`remote.palette.title`)})}),i(ge,{children:t&&i(ft,{grid:n,language:s.language,onPick:(e,t)=>{a(e,t),r(!1)}})})]})})}function ft({grid:t,language:r,onPick:a}){let{t:s}=L(),c=ye({}),[l,u]=o(``),[d,f]=o(!1),p=e=>s(`remote.palette.category.${e}`,e),m=ct(n(()=>at(c.data===void 0?[]:[c.data]),[c.data]),l,r,p),h=m.some(e=>lt(t,e));return c.isError?i(ce,{title:s(`remote.palette.errorTitle`),message:c.error.message,onRetry:()=>void c.refetch()}):c.data===void 0?e(`div`,{className:`grid gap-2 sm:grid-cols-2`,"data-testid":`palette-loading`,children:[i(j,{className:`h-24`}),i(j,{className:`h-24`}),i(j,{className:`h-24`}),i(j,{className:`h-24`})]}):e(`div`,{className:`space-y-3`,children:[e(`div`,{className:`relative`,children:[i(b,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-foreground-subtle`,"aria-hidden":!0}),i(N,{value:l,className:`pl-8`,placeholder:s(`remote.palette.search`),"aria-label":s(`remote.palette.search`),onChange:e=>u(e.target.value),"data-testid":`palette-search`})]}),h&&e(`label`,{className:`flex items-center gap-2 text-xs text-foreground-muted`,children:[i(me,{checked:d,onChange:e=>f(e.target.checked),"data-testid":`palette-fill-width`}),s(`remote.palette.fillWidth`)]}),m.length===0?i(le,{icon:k,title:s(`remote.palette.emptyTitle`),description:s(`remote.palette.emptyDescription`)}):i(`ul`,{className:`grid gap-2 sm:grid-cols-2`,"data-testid":`palette-list`,children:m.map(e=>i(`li`,{children:i(pt,{component:e,language:r,category:p(e.category),onPick:()=>a(e,{fillWidth:d})})},e.id))})]})}function pt({component:t,language:r,category:a,onPick:o}){let{t:s}=L(),c=n(()=>st(t),[t]),l=ot(t,r);return e(`button`,{type:`button`,className:`flex h-full w-full items-center gap-3 rounded-lg border border-border bg-surface p-2 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,"data-testid":`palette-item-${t.id}`,onClick:o,children:[i(`span`,{className:`w-20 shrink-0`,children:c!==null&&i(Ve,{grid:c,label:l,compact:!0})}),e(`span`,{className:`min-w-0`,children:[i(`span`,{className:`block truncate text-sm font-medium text-foreground`,children:l}),e(`span`,{className:`block truncate text-xs text-foreground-muted`,children:[a,` ·`,` `,s(`remote.palette.size`,{cols:t.size.cols,rows:t.size.rows})]})]})]})}function Q(e,t){let n=t.kind===`group`?je(e,t.id):e.buttons.find(e=>e.id===t.id);return n===void 0?void 0:{row:n.row,col:n.col,rowSpan:n.rowSpan,colSpan:n.colSpan}}function mt(e,t,n,r){return e.width<=0||e.height<=0?{row:0,col:0}:{col:Math.floor((n-e.left)/e.width*t.columns),row:Math.floor((r-e.top)/e.height*t.rows)}}function ht(e,t,n){return{row:n.row-(t.row-e.row),col:n.col-(t.col-e.col)}}function gt(e,t,n){return t.kind===`group`?Ue(e,t.id,n.row,n.col):De(e,t.id,n.row,n.col)}function _t(e,t,n){let r=Q(e,t);if(r===void 0)return null;let i=gt(e,t,n);return{rect:{...r,row:n.row,col:n.col},valid:i.status===`ok`,reason:i.status===`ok`?null:i.reason}}function vt(e){switch(e){case`ArrowUp`:return{dRow:-1,dCol:0};case`ArrowDown`:return{dRow:1,dCol:0};case`ArrowLeft`:return{dRow:0,dCol:-1};case`ArrowRight`:return{dRow:0,dCol:1};default:return null}}function yt(e,t,n,r){let i=Q(e,t);return i===void 0?{status:`refused`,reason:`unknown-button`}:gt(e,t,{row:i.row+n,col:i.col+r})}s();var bt=4;function xt(e,n,i){let[s,c]=o(null),l=t({grid:e,onDrop:i});l.current={grid:e,onDrop:i};let u=t(null),d=t(!1);return a(()=>()=>u.current?.(),[]),{drag:s,onItemPointerDown:r((e,t)=>{let r=n.current;if(r===null||t.button!==0)return;let i=r.getBoundingClientRect();if(Q(l.current.grid,e)===void 0)return;let a={item:e,startX:t.clientX,startY:t.clientY,grabbed:mt(i,l.current.grid,t.clientX,t.clientY),active:!1,target:null},o=e=>{if(!a.active){if(Math.hypot(e.clientX-a.startX,e.clientY-a.startY)<bt)return;a.active=!0}let t=l.current.grid,n=mt(r.getBoundingClientRect(),t,e.clientX,e.clientY),i=Q(t,a.item);i!==void 0&&(a.target=ht(i,a.grabbed,n),c({item:a.item,preview:_t(t,a.item,a.target)}))},s=e=>{window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,f),window.removeEventListener(`pointercancel`,p),window.removeEventListener(`keydown`,m),u.current=null,c(null),a.active&&(d.current=!0,window.setTimeout(()=>{d.current=!1},0),e&&a.target!==null&&l.current.onDrop(gt(l.current.grid,a.item,a.target)))},f=()=>s(!0),p=()=>s(!1),m=e=>{e.key===`Escape`&&s(!1)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,f),window.addEventListener(`pointercancel`,p),window.addEventListener(`keydown`,m),u.current=()=>s(!1)},[n]),consumeDragClick:r(()=>{let e=d.current;return d.current=!1,e},[])}}s();var St=`__custom__`;function Ct({value:n,onChange:r}){let{t:a}=L(),[s,c]=o(null),[l,u]=o(null),[d,p]=o(!1),m=t(null),h=s?.kind===`button`?s.id:null,g=s?.kind===`group`?s.id:null,_=n.buttons.find(e=>e.id===h)??null,v=g===null?void 0:je(n,g),y=(e,t)=>{if(e.status===`ok`){u(null),r(e.grid),t?.(e.grid);return}u(a(`remote.layout.refusal.${e.reason}`))},b=xt(n,m,e=>y(e));return e(`div`,{className:`grid gap-4 md:grid-cols-[minmax(0,18rem)_minmax(0,1fr)]`,children:[e(`div`,{className:`space-y-3`,children:[e(`div`,{className:`grid grid-cols-2 gap-2`,children:[i(A,{label:a(`remote.layout.columns`),children:i(P,{value:n.columns,onDelta:e=>y(Ge(n,n.columns+e,n.rows))})}),i(A,{label:a(`remote.layout.rows`),children:i(P,{value:n.rows,onDelta:e=>y(Ge(n,n.columns,n.rows+e))})})]}),i(Ve,{grid:n,label:a(`remote.layout.previewLabel`),selectedId:h,selectedGroupId:g,onSelect:e=>{b.consumeDragClick()||c({kind:`button`,id:e})},onSelectGroup:e=>{b.consumeDragClick()||c({kind:`group`,id:e})},showEmptyCells:!0,gridRef:m,drag:b.drag,onItemPointerDown:b.onItemPointerDown,onItemKeyDown:(e,t)=>{let r=vt(t.key);r!==null&&(t.preventDefault(),y(yt(n,e,r.dRow,r.dCol)))}}),i(`p`,{className:`text-xs text-foreground-subtle`,children:a(`remote.layout.dragHint`)}),e(`div`,{className:`flex flex-wrap gap-2`,children:[e(F,{variant:`outline`,size:`sm`,onClick:()=>p(!0),"data-testid":`remote-add-component`,children:[i(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),a(`remote.layout.addComponent`)]}),e(F,{variant:`outline`,size:`sm`,onClick:()=>y(ze(n,`ok`),e=>{let t=e.buttons.at(-1);c(t===void 0?null:{kind:`button`,id:t.id})}),"data-testid":`remote-add-button`,children:[i(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),a(`remote.layout.addButton`)]})]}),l!==null&&i(`p`,{role:`alert`,className:`text-xs text-warning`,"data-testid":`remote-layout-refusal`,children:l})]}),i(`div`,{className:`min-w-0`,children:_===null?v===void 0?i(`p`,{className:`text-xs text-foreground-subtle`,children:a(`remote.layout.selectHint`)}):i(Et,{grid:n,groupId:v.id,apply:y,onGone:()=>c(null)}):i(Tt,{grid:n,buttonId:_.id,apply:y,onRemove:()=>{r(Ke(n,_.id)),c(null),u(null)}})}),i(dt,{open:d,grid:n,onOpenChange:p,onPick:(e,t)=>{let i=ut(n,e,t);if(!i.ok){u(a(`remote.layout.refusal.${i.reason}`));return}u(null),r(i.layout);let o=i.buttonIds[0];c(i.groupId===null?o===void 0?null:{kind:`button`,id:o}:{kind:`group`,id:i.groupId})}})]})}function wt(e){return[...Oe.flatMap(t=>Le(t).map(n=>({value:n,label:e(`remote.role.${n}`,Me(n)),group:e(`remote.roleGroup.${t}`)}))),{value:St,label:e(`remote.layout.customRole`),group:e(`remote.roleGroup.custom`)}]}function Tt({grid:t,buttonId:n,apply:r,onRemove:a}){let{t:s}=L(),c=t.buttons.find(e=>e.id===n),l=c===void 0?null:x(c.role),[u,f]=o(null);if(c===void 0)return null;let m=Be(c.role)||u!==null,g=u??l??``,v=E(g),b={trigger:s(`remote.layout.pickIcon`),panel:s(`remote.layout.iconPanel`),searchPlaceholder:s(`deviceDisplay.iconSearchPlaceholder`),clear:s(`remote.layout.noIcon`),noMatches:s(`deviceDisplay.iconNoMatches`)},w=e=>s(`deviceDisplay.iconCategory.${e}`,{defaultValue:te(e)});return e(`div`,{className:`space-y-3 rounded-lg border border-border bg-surface p-3`,"data-testid":`remote-inspector`,children:[i(be,{mode:`single`,singleDisplay:`field`,label:s(`remote.layout.role`),options:wt((e,t)=>s(e,t??e)),value:m?St:c.role,onChange:e=>{if(e===St){f(l??``);return}f(null),r(R(t,c.id,{role:e}))}}),m&&i(A,{label:s(`remote.layout.customKey`),...g!==``&&!v?{error:s(`remote.layout.customKeyInvalid`)}:{},children:i(N,{value:g,placeholder:`hdmi_1`,onChange:e=>{let n=e.target.value;f(n),E(n)&&r(R(t,c.id,{role:S(n)}))}})}),e(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)] items-end gap-2`,children:[i(A,{label:s(`remote.layout.icon`),children:i(oe,{value:c.icon??null,onPick:e=>r(R(t,c.id,{icon:e})),fallbackGlyph:k,categoryLabel:w,labels:b})}),i(A,{label:s(`remote.layout.label`),children:i(N,{value:c.label??``,maxLength:40,onChange:e=>r(R(t,c.id,{label:e.target.value}))})})]}),i(A,{label:s(`remote.layout.appIcon`),children:i(M,{value:Fe(c.icon)?.key??``,options:[{value:``,label:s(`remote.layout.noApp`)},...Re.map(e=>({value:e.key,label:e.label}))],onChange:e=>{let n=e.target.value;n===``?Fe(c.icon)!==void 0&&r(R(t,c.id,{icon:null})):r(R(t,c.id,{icon:B(n)}))},"data-testid":`remote-app-icon`})}),e(`div`,{className:`grid grid-cols-2 gap-3`,children:[i(A,{label:s(`remote.layout.shape`),children:i(M,{value:c.shape??``,options:[{value:``,label:s(`remote.layout.lookDefault`)},...O.map(e=>({value:e,label:s(`remote.layout.shapes.${e}`)}))],onChange:e=>{let n=O.find(t=>t===e.target.value);r(Ee(t,c.id,{shape:n??null}))},"data-testid":`remote-shape`})}),i(A,{label:s(`remote.layout.tone`),children:i(M,{value:c.tone??``,options:[{value:``,label:s(`remote.layout.lookDefault`)},...C.map(e=>({value:e,label:s(`remote.layout.tones.${e}`)}))],onChange:e=>{let n=C.find(t=>t===e.target.value);r(Ee(t,c.id,{tone:n??null}))},"data-testid":`remote-tone`})})]}),e(`div`,{className:`grid grid-cols-2 gap-3`,children:[i(A,{label:s(`remote.layout.move`),children:e(`div`,{className:`flex items-center gap-1`,children:[i(I,{icon:h,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveLeft`),onClick:()=>r(z(t,c.id,0,-1))}),i(I,{icon:y,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveUp`),onClick:()=>r(z(t,c.id,-1,0))}),i(I,{icon:p,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveDown`),onClick:()=>r(z(t,c.id,1,0))}),i(I,{icon:_,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveRight`),onClick:()=>r(z(t,c.id,0,1))})]})}),i(A,{label:s(`remote.layout.position`),children:i(`p`,{className:`text-xs text-foreground-muted`,"data-testid":`remote-position`,children:s(`remote.layout.positionValue`,{row:c.row+1,col:c.col+1})})}),i(A,{label:s(`remote.layout.height`),children:i(P,{value:c.rowSpan,onDelta:e=>r(ke(t,c.id,c.rowSpan+e,c.colSpan))})}),i(A,{label:s(`remote.layout.width`),children:i(P,{value:c.colSpan,onDelta:e=>r(ke(t,c.id,c.rowSpan,c.colSpan+e))})})]}),e(F,{variant:`danger`,size:`sm`,onClick:a,children:[i(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),s(`remote.layout.removeButton`)]})]})}function Et({grid:t,groupId:n,apply:r,onGone:a}){let{t:o}=L(),s=je(t,n);if(s===void 0)return null;let c=Ne(t,n).length;return e(`div`,{className:`space-y-3 rounded-lg border border-border bg-surface p-3`,"data-testid":`remote-group-inspector`,children:[i(`p`,{className:`text-xs text-foreground-muted`,children:o(`remote.layout.groupSummary`,{frame:o(`remote.layout.frames.${s.frame}`,s.frame),count:c,row:s.row+1,col:s.col+1})}),i(A,{label:o(`remote.layout.groupTitle`),children:i(N,{value:s.title??``,maxLength:40,onChange:e=>r(We(t,s.id,e.target.value)),"data-testid":`remote-group-title`})}),e(`div`,{className:`flex flex-wrap gap-2`,children:[e(F,{variant:`outline`,size:`sm`,"data-testid":`remote-group-ungroup`,onClick:()=>{r(Ie(t,s.id,!0)),a()},children:[i(ie,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),o(`remote.layout.ungroup`)]}),e(F,{variant:`danger`,size:`sm`,"data-testid":`remote-group-delete`,onClick:()=>{r(Ie(t,s.id,!1)),a()},children:[i(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),o(`remote.layout.deleteGroup`)]})]})]})}var Dt={remote:{label:e=>e(`remote.templates.kind.remote`),emptyPayload:He,summary:(e,t)=>{let n=Pe(e);return t(`remote.templates.layoutSummary`,{columns:n.columns,rows:n.rows,count:n.buttons.length})},renderEditor:(e,t)=>i(Ct,{value:Pe(e),onChange:t}),isSavable:e=>Ae(Pe(e))!==null,presets:e=>rt.map(t=>({id:t.id,label:e(`remote.templates.preset.${t.id}`),payload:()=>it(t.id)}))}};function $(e){return Dt[e]}var Ot=ne;function kt(e,t){let n=ee(e,t);return n.ok?n.payload:null}s();function At({draft:e,saving:t,error:n,onSave:r,onClose:a}){return i(we,{open:e!==null,onOpenChange:e=>!e&&a(),children:i(Ce,{width:`xl`,placement:`sheet-on-mobile`,scroll:`body`,children:e!==null&&i(jt,{draft:e,saving:t,error:n,onSave:r,onClose:a},e.id??`new`)})})}function jt({draft:t,saving:n,error:r,onSave:a,onClose:s}){let{t:c}=L(),[u,d]=o(t.kind),[f,p]=o(t.name),[m,h]=o(t.payload),[g,_]=o(``),v=$(u),y=v.presets(c),b=kt(u,m),x=f.trim()!==``&&b!==null&&v.isSavable(m)&&!n;return e(l,{children:[i(xe,{children:i(de,{children:t.id===null?c(`remote.templates.newTitle`):c(`remote.templates.editTitle`)})}),e(ge,{className:`space-y-4`,children:[e(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[i(A,{label:c(`remote.templates.name`),children:i(N,{value:f,maxLength:120,onChange:e=>p(e.target.value),"data-testid":`template-name`})}),t.id===null&&Ot.length>1&&i(A,{label:c(`remote.templates.kind.label`),children:i(M,{value:u,options:Ot.map(e=>({value:e,label:$(e).label(c)})),onChange:e=>{let t=Ot.find(t=>t===e.target.value);t!==void 0&&(d(t),h($(t).emptyPayload()),_(``))}})}),t.id===null&&y.length>0&&i(A,{label:c(`remote.templates.startFrom`),children:i(M,{value:g,options:[{value:``,label:c(`remote.templates.startBlank`)},...y.map(e=>({value:e.id,label:e.label}))],onChange:e=>{let t=y.find(t=>t.id===e.target.value);_(t?.id??``),h(t===void 0?v.emptyPayload():t.payload()),t!==void 0&&f.trim()===``&&p(t.label)},"data-testid":`template-preset`})})]}),v.renderEditor(m,h),r!==null&&i(`p`,{role:`alert`,className:`text-xs text-danger`,children:r})]}),e(se,{children:[i(F,{variant:`ghost`,onClick:s,children:c(`common.cancel`)}),i(F,{disabled:!x,onClick:()=>a({id:t.id,kind:u,name:f.trim(),payload:b}),"data-testid":`template-save`,children:c(`common.save`)})]})]})}s();var Mt=ne[0];function Nt(){let{t}=L(),r=c(),a=he({}),s=pe(),l=ue(),p=fe(),h=v(),_=g(),[y,b]=o(null),[x,S]=o(null),C=()=>void r.invalidateQueries({queryKey:[[`template`]]}),w=async e=>{S(null);try{let t=e.id===null?await s.mutateAsync({kind:e.kind,name:e.name,payload:e.payload}):await l.mutateAsync({id:e.id,name:e.name,payload:e.payload});if(t.status===`refused`){S(t.detail);return}C(),b(null)}catch(e){S(e instanceof Error?e.message:String(e))}},ee=async e=>{try{await s.mutateAsync({kind:e.kind,name:t(`remote.templates.copyName`,{name:e.name}),payload:e.payload}),C()}catch(e){await _({title:t(`remote.templates.duplicateFailed`),message:e instanceof Error?e.message:String(e),variant:`danger`})}},T=async e=>{if(await h({title:t(`remote.templates.deleteTitle`,{name:e.name}),message:t(`remote.templates.deleteMessage`),confirmLabel:t(`common.delete`),variant:`danger`}))try{let n=await p.mutateAsync({id:e.id});if(n.status===`in-use`){await _({title:t(`remote.templates.inUseTitle`,{name:e.name}),message:t(`remote.templates.inUseMessage`,{devices:n.devices.map(e=>e.name).join(`, `)}),variant:`warning`});return}C()}catch(e){await _({title:t(`remote.templates.deleteFailed`),message:e instanceof Error?e.message:String(e),variant:`danger`})}},E=n(()=>[{key:`name`,header:t(`remote.templates.name`),sortValue:e=>e.name.toLowerCase(),render:e=>i(`span`,{className:`font-medium text-foreground`,children:e.name})},{key:`kind`,header:t(`remote.templates.kind.label`),sortValue:e=>e.kind,render:e=>i(_e,{variant:`neutral`,children:$(e.kind).label(t)})},{key:`summary`,header:t(`remote.templates.summary`),notSortableReason:`A sentence built from the payload.`,render:e=>i(`span`,{className:`text-foreground-muted`,children:$(e.kind).summary(e.payload,t)})},{key:`updated`,header:t(`remote.templates.updated`),sortValue:e=>e.updatedAt,render:e=>i(`span`,{className:`text-foreground-muted`,children:new Date(e.updatedAt).toLocaleDateString()})},{key:`actions`,align:`right`,notSortableReason:`Row actions.`,render:e=>i(Se,{title:t(`remote.templates.actionsFor`,{name:e.name}),items:[{id:`edit`,label:t(`common.edit`),icon:u,onClick:()=>{S(null),b({id:e.id,kind:e.kind,name:e.name,payload:e.payload})}},{id:`duplicate`,label:t(`remote.templates.duplicate`),icon:m,onClick:()=>void ee(e)},{id:`delete`,label:t(`common.delete`),icon:d,danger:!0,onClick:()=>void T(e)}]})}],[t]),D=a.data??[],O=()=>{S(null),b({id:null,kind:Mt,name:``,payload:$(Mt).emptyPayload()})};return e(Te,{icon:re,title:t(`remote.templates.title`),subtitle:t(`remote.templates.subtitle`),actions:e(F,{size:`sm`,onClick:O,"data-testid":`template-new`,children:[i(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),t(`remote.templates.new`)]}),children:[a.status===`error`?i(ce,{title:t(`remote.templates.loadFailed`),message:a.error.message,onRetry:()=>void a.refetch()}):a.data===void 0?i(j,{className:`h-32 w-full`}):D.length===0?i(le,{icon:re,title:t(`remote.templates.emptyTitle`),description:t(`remote.templates.emptyDescription`),action:i(F,{size:`sm`,onClick:O,children:t(`remote.templates.new`)})}):i(ae,{columns:E,rows:D,rowKey:e=>e.id,maxBodyHeight:ve,defaultSort:{columnKey:`name`,dir:`asc`},onRowClick:e=>{S(null),b({id:e.id,kind:e.kind,name:e.name,payload:e.payload})}}),i(At,{draft:y,saving:s.isPending||l.isPending,error:x,onSave:e=>void w(e),onClose:()=>b(null)})]})}export{Nt as TemplatesPage};
1
+ import{C as e,J as t,K as n,R as r,S as i,V as a,Y as o,et as s,o as c,x as l}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{Hn as u,Ht as d,In as f,aa as p,ai as m,ia as h,ot as g,ra as _,st as v,ta as y,vn as b}from"./player-overlays-DpZIxQHp.js";import{Dr as x,Or as S,Sr as C,ar as w,br as ee,ir as T,kr as E,rr as D,xr as O,yi as te,yr as ne}from"./client-BvflqtP1.js";import{u as re}from"./video-D0guHpd1.js";import{t as k}from"./shapes-D-IaC6en.js";import{t as ie}from"./unlink-DTu1e00O.js";import{$u as ae,An as oe,Bd as A,Er as se,Et as j,Fr as ce,Lr as M,Pd as N,Pr as le,Qu as ue,Sr as de,Tr as fe,Vd as pe,Xn as me,Xu as he,Zu as ge,an as P,br as _e,fi as ve,hu as ye,ii as F,kn as be,si as xe,wr as Se,wt as Ce,xr as we,zd as I}from"./src-KDhMZ5Ob.js";import{t as L}from"./useTranslation-BJr-n0es.js";import{t as Te}from"./AdminPage-DmkuRREx.js";import{C as Ee,S as R,T as z,_ as De,a as Oe,b as ke,c as Ae,d as je,f as Me,g as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as B,s as V,t as Ve,u as He,v as Ue,w as We,x as Ge,y as Ke}from"./RemoteGrid-CF92aN64.js";s();var H=12,U=4,W=3,G=(e,t,n,r,i,a={})=>({id:e,role:t,row:n,col:r,colSpan:i,...a}),K=e=>`custom:${e}`;function q(e,t,n=[]){return t.map((t,r)=>G(`r${e}c${r}`,t,e,r*U,U,{...n[r]===void 0?{}:{label:n[r]}}))}function J(e){return[G(`up`,`up`,e,U,U),G(`left`,`left`,e+1,0,U),G(`ok`,`ok`,e+1,U,U),G(`right`,`right`,e+1,2*U,U),G(`down`,`down`,e+2,U,U)]}function Y(e,t){return t.map((t,n)=>G(`app_${t}`,K(`app_${t}`),e,n*W,W,{icon:B(t)}))}var X=(e,t)=>({id:`core:section-divider`,row:e,col:0,options:{scale:{cols:H},title:t}});function qe(e,t,n){let r=V(H,e,t);for(let e of n){let t=w(r,D(e.id),{row:e.row,col:e.col},e.options);if(!t.ok)throw Error(`preset component ${e.id} at ${e.row}:${e.col}: ${t.reason}`);r=t.layout}return r}var Z={scale:{cols:U}},Je={scale:{rows:2,cols:U}},Ye=(e,t,n,r)=>({idSuffix:e,row:3,col:t,rowSpan:1,colSpan:1,role:n,label:r}),Xe=qe(23,[G(`input`,`input`,0,2*U,U),G(`mute`,`mute`,7,U,U),G(`ch_list`,K(`ch_list`),8,U,U,{label:`CH LIST`}),G(`settings`,K(`settings`),9,U,U,{label:`Settings`}),G(`home`,`home`,10,U,U),G(`guide`,`guide`,12,0,U),G(`e_manual`,K(`e_manual`),12,U,U,{label:`e-Manual`}),G(`info`,`info`,12,2*U,U),G(`back`,`back`,17,0,U),G(`exit`,`exit`,17,2*U,U),G(`color_a`,K(`color_a`),19,0,W,{label:`A`}),G(`color_b`,K(`color_b`),19,W,W,{label:`B`}),G(`color_c`,K(`color_c`),19,2*W,W,{label:`C`}),G(`color_d`,K(`color_d`),19,3*W,W,{label:`D`}),G(`pic_size`,K(`pic_size`),20,0,U,{label:`P.SIZE`}),G(`picture`,K(`picture`),20,U,U,{label:`Picture`}),G(`ad_subt`,K(`ad_subt`),20,2*U,U,{label:`AD/SUBT`})],[{id:`core:power`,row:0,col:0,options:{scale:{cols:2}}},X(1,`Numbers`),{id:`core:keypad`,row:2,col:0,options:{scale:Z.scale,extras:[Ye(`ttx`,0,K(`ttx_mix`),`TTX/MIX`),Ye(`prech`,2,K(`pre_ch`),`PRE-CH`)]}},X(6,`Volume and channels`),{id:`core:rocker-volume-v`,row:7,col:0,options:Je},{id:`core:rocker-channel-v`,row:7,col:2*U,options:Je},X(11,`Menus`),X(13,`Navigation`),{id:`core:dpad`,row:14,col:0,options:Z},X(18,`Colour and picture`),X(21,`Playback`),{id:`core:media-transport`,row:22,col:1,options:{scale:{cols:2}}}]),Ze=[`netflix`,`youtube`,`primevideo`,`disneyplus`,`dazn`,`raiplay`],Qe=qe(20,[G(`input`,`input`,0,2*U,U),...q(4,[`menu`,`home`,`exit`]),G(`guide`,`guide`,6,0,U),G(`info`,`info`,6,2*U,U),G(`back`,`back`,10,0,U),G(`play_pause`,`play_pause`,10,2*U,U),G(`mute`,`mute`,12,U,U),G(`ch_list`,K(`ch_list`),13,U,U,{label:`CH.LIST`}),G(`subtitle`,K(`subtitle`),14,0,6,{label:`Subtitle`}),G(`text`,K(`text`),14,6,6,{label:`Text`})],[{id:`core:power`,row:0,col:0,options:{scale:{cols:2}}},{id:`core:panel`,row:1,col:0,options:{scale:Z.scale,title:`Apps`,extras:Ze.map((e,t)=>({idSuffix:e,row:Math.floor(t/3),col:t%3,rowSpan:1,colSpan:1,role:K(`app_${e}`),icon:B(e)}))}},{id:`core:colour-keys`,row:3,col:0,options:{scale:{cols:W}}},X(5,`Navigation`),{id:`core:dpad`,row:7,col:0,options:Z},X(11,`Volume and channels`),{id:`core:rocker-volume-v`,row:12,col:0,options:Z},{id:`core:rocker-channel-v`,row:12,col:2*U,options:Z},X(15,`Numbers`),{id:`core:keypad`,row:16,col:0,options:Z}]),$e=V(H,8,[G(`power`,`power`,0,0,U),G(`input`,`input`,0,2*U,U),...J(1),...q(4,[`back`,`home`,`play_pause`]),G(`vol_up`,`volume_up`,5,0,U),G(`mute`,`mute`,5,U,U,{rowSpan:2}),G(`ch_up`,`channel_up`,5,2*U,U),G(`vol_down`,`volume_down`,6,0,U),G(`ch_down`,`channel_down`,6,2*U,U),...Y(7,[`netflix`,`primevideo`,`disneyplus`,`youtube`])]),et=V(H,9,[G(`power`,`power`,0,0,U),G(`input`,`input`,0,2*U,U),G(`settings`,K(`settings`),1,0,U,{label:`Settings`}),G(`up`,`up`,1,U,U),G(`guide`,`guide`,1,2*U,U),G(`left`,`left`,2,0,U),G(`ok`,`ok`,2,U,U),G(`right`,`right`,2,2*U,U),G(`back`,`back`,3,0,U),G(`down`,`down`,3,U,U),G(`home`,`home`,3,2*U,U),G(`vol_up`,`volume_up`,4,0,U,{rowSpan:2}),G(`vol_down`,`volume_down`,6,0,U,{rowSpan:2}),G(`mute`,`mute`,4,U,U),G(`info`,`info`,5,U,U),G(`menu`,`menu`,6,U,U),G(`exit`,`exit`,7,U,U),G(`ch_up`,`channel_up`,4,2*U,U,{rowSpan:2}),G(`ch_down`,`channel_down`,6,2*U,U,{rowSpan:2}),...Y(8,[`netflix`,`primevideo`,`disneyplus`,`youtube`])]),tt=V(H,8,[G(`assistant`,K(`assistant`),0,0,U,{label:`Assistant`}),G(`input`,`input`,0,U,U),G(`power`,`power`,0,2*U,U),...J(1),...q(4,[`back`,`home`,`guide`]),G(`vol_up`,`volume_up`,5,0,U),G(`mute`,`mute`,5,U,U),G(`ch_up`,`channel_up`,5,2*U,U),G(`vol_down`,`volume_down`,6,0,U),G(`play_pause`,`play_pause`,6,U,U),G(`ch_down`,`channel_down`,6,2*U,U),...Y(7,[`youtube`,`netflix`,`primevideo`,`disneyplus`])]),nt=V(H,7,[G(`siri`,K(`siri`),0,0,U,{label:`Siri`}),G(`power`,`power`,0,2*U,U),...J(1),...q(4,[`back`,`play_pause`,`home`]),G(`vol_up`,`volume_up`,5,0,6),G(`vol_down`,`volume_down`,5,6,6),G(`mute`,`mute`,6,U,U)]),rt=[{id:`samsung-classic`,layout:Xe},{id:`hisense-vidaa`,layout:Qe},{id:`samsung-smart`,layout:$e},{id:`lg-magic`,layout:et},{id:`google-tv`,layout:tt},{id:`apple-tv`,layout:nt}];function it(e){let t=rt.find(t=>t.id===e);return t===void 0?null:{...t.layout,buttons:t.layout.buttons.map(e=>({...e}))}}function at(e){let t=new Map;for(let n of e)for(let e of n)t.has(e.id)||t.set(e.id,e);let n=[...t.values()];return[...n.filter(e=>e.id.startsWith(`core:`)),...n.filter(e=>!e.id.startsWith(`core:`))]}function ot(e,t){let n=e.nameI18n;return n===void 0?e.name:t.startsWith(`it`)?n.it:n.en}function st(e){let t=w({columns:e.size.cols,rows:e.size.rows,buttons:[]},e,{row:0,col:0});return t.ok?t.layout:null}function ct(e,t,n,r){let i=t.trim().toLowerCase();return i===``?[...e]:e.filter(e=>ot(e,n).toLowerCase().includes(i)||r(e.category).toLowerCase().includes(i))}function lt(e,t){let n=T(e,t);return n!==null&&n>1}function ut(e,t,n={}){let r=n.fillWidth===!0?T(e,t):null,i=r===null||r<2?{}:{scale:{cols:r}};if(n.at!==void 0)return w(e,t,n.at,i);let a=w(e,t,{row:0,col:0},i);if(a.ok||a.reason===`outside`||a.reason===`too-many`)return a;for(let n=0;n<e.rows;n+=1)for(let r=0;r<e.columns;r+=1){let a=w(e,t,{row:n,col:r},i);if(a.ok)return a}return a}function dt({open:t,grid:n,onOpenChange:r,onPick:a}){let{t:o,i18n:s}=L();return i(_e,{open:t,onOpenChange:r,children:e(de,{width:`lg`,placement:`sheet-on-mobile`,scroll:`body`,children:[i(fe,{children:i(se,{children:o(`remote.palette.title`)})}),i(we,{children:t&&i(ft,{grid:n,language:s.language,onPick:(e,t)=>{a(e,t),r(!1)}})})]})})}function ft({grid:t,language:r,onPick:a}){let{t:s}=L(),c=ye({}),[l,u]=o(``),[d,f]=o(!1),p=e=>s(`remote.palette.category.${e}`,e),m=ct(n(()=>at(c.data===void 0?[]:[c.data]),[c.data]),l,r,p),h=m.some(e=>lt(t,e));return c.isError?i(le,{title:s(`remote.palette.errorTitle`),message:c.error.message,onRetry:()=>void c.refetch()}):c.data===void 0?e(`div`,{className:`grid gap-2 sm:grid-cols-2`,"data-testid":`palette-loading`,children:[i(M,{className:`h-24`}),i(M,{className:`h-24`}),i(M,{className:`h-24`}),i(M,{className:`h-24`})]}):e(`div`,{className:`space-y-3`,children:[e(`div`,{className:`relative`,children:[i(b,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-foreground-subtle`,"aria-hidden":!0}),i(I,{value:l,className:`pl-8`,placeholder:s(`remote.palette.search`),"aria-label":s(`remote.palette.search`),onChange:e=>u(e.target.value),"data-testid":`palette-search`})]}),h&&e(`label`,{className:`flex items-center gap-2 text-xs text-foreground-muted`,children:[i(me,{checked:d,onChange:e=>f(e.target.checked),"data-testid":`palette-fill-width`}),s(`remote.palette.fillWidth`)]}),m.length===0?i(ce,{icon:k,title:s(`remote.palette.emptyTitle`),description:s(`remote.palette.emptyDescription`)}):i(`ul`,{className:`grid gap-2 sm:grid-cols-2`,"data-testid":`palette-list`,children:m.map(e=>i(`li`,{children:i(pt,{component:e,language:r,category:p(e.category),onPick:()=>a(e,{fillWidth:d})})},e.id))})]})}function pt({component:t,language:r,category:a,onPick:o}){let{t:s}=L(),c=n(()=>st(t),[t]),l=ot(t,r);return e(`button`,{type:`button`,className:`flex h-full w-full items-center gap-3 rounded-lg border border-border bg-surface p-2 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,"data-testid":`palette-item-${t.id}`,onClick:o,children:[i(`span`,{className:`w-20 shrink-0`,children:c!==null&&i(Ve,{grid:c,label:l,compact:!0})}),e(`span`,{className:`min-w-0`,children:[i(`span`,{className:`block truncate text-sm font-medium text-foreground`,children:l}),e(`span`,{className:`block truncate text-xs text-foreground-muted`,children:[a,` ·`,` `,s(`remote.palette.size`,{cols:t.size.cols,rows:t.size.rows})]})]})]})}function Q(e,t){let n=t.kind===`group`?je(e,t.id):e.buttons.find(e=>e.id===t.id);return n===void 0?void 0:{row:n.row,col:n.col,rowSpan:n.rowSpan,colSpan:n.colSpan}}function mt(e,t,n,r){return e.width<=0||e.height<=0?{row:0,col:0}:{col:Math.floor((n-e.left)/e.width*t.columns),row:Math.floor((r-e.top)/e.height*t.rows)}}function ht(e,t,n){return{row:n.row-(t.row-e.row),col:n.col-(t.col-e.col)}}function gt(e,t,n){return t.kind===`group`?Ue(e,t.id,n.row,n.col):De(e,t.id,n.row,n.col)}function _t(e,t,n){let r=Q(e,t);if(r===void 0)return null;let i=gt(e,t,n);return{rect:{...r,row:n.row,col:n.col},valid:i.status===`ok`,reason:i.status===`ok`?null:i.reason}}function vt(e){switch(e){case`ArrowUp`:return{dRow:-1,dCol:0};case`ArrowDown`:return{dRow:1,dCol:0};case`ArrowLeft`:return{dRow:0,dCol:-1};case`ArrowRight`:return{dRow:0,dCol:1};default:return null}}function yt(e,t,n,r){let i=Q(e,t);return i===void 0?{status:`refused`,reason:`unknown-button`}:gt(e,t,{row:i.row+n,col:i.col+r})}s();var bt=4;function xt(e,n,i){let[s,c]=o(null),l=t({grid:e,onDrop:i});l.current={grid:e,onDrop:i};let u=t(null),d=t(!1);return a(()=>()=>u.current?.(),[]),{drag:s,onItemPointerDown:r((e,t)=>{let r=n.current;if(r===null||t.button!==0)return;let i=r.getBoundingClientRect();if(Q(l.current.grid,e)===void 0)return;let a={item:e,startX:t.clientX,startY:t.clientY,grabbed:mt(i,l.current.grid,t.clientX,t.clientY),active:!1,target:null},o=e=>{if(!a.active){if(Math.hypot(e.clientX-a.startX,e.clientY-a.startY)<bt)return;a.active=!0}let t=l.current.grid,n=mt(r.getBoundingClientRect(),t,e.clientX,e.clientY),i=Q(t,a.item);i!==void 0&&(a.target=ht(i,a.grabbed,n),c({item:a.item,preview:_t(t,a.item,a.target)}))},s=e=>{window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,f),window.removeEventListener(`pointercancel`,p),window.removeEventListener(`keydown`,m),u.current=null,c(null),a.active&&(d.current=!0,window.setTimeout(()=>{d.current=!1},0),e&&a.target!==null&&l.current.onDrop(gt(l.current.grid,a.item,a.target)))},f=()=>s(!0),p=()=>s(!1),m=e=>{e.key===`Escape`&&s(!1)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,f),window.addEventListener(`pointercancel`,p),window.addEventListener(`keydown`,m),u.current=()=>s(!1)},[n]),consumeDragClick:r(()=>{let e=d.current;return d.current=!1,e},[])}}s();var St=`__custom__`;function Ct({value:n,onChange:r}){let{t:a}=L(),[s,c]=o(null),[l,u]=o(null),[d,p]=o(!1),m=t(null),h=s?.kind===`button`?s.id:null,g=s?.kind===`group`?s.id:null,_=n.buttons.find(e=>e.id===h)??null,v=g===null?void 0:je(n,g),y=(e,t)=>{if(e.status===`ok`){u(null),r(e.grid),t?.(e.grid);return}u(a(`remote.layout.refusal.${e.reason}`))},b=xt(n,m,e=>y(e));return e(`div`,{className:`grid gap-4 md:grid-cols-[minmax(0,18rem)_minmax(0,1fr)]`,children:[e(`div`,{className:`space-y-3`,children:[e(`div`,{className:`grid grid-cols-2 gap-2`,children:[i(j,{label:a(`remote.layout.columns`),children:i(P,{value:n.columns,onDelta:e=>y(Ge(n,n.columns+e,n.rows))})}),i(j,{label:a(`remote.layout.rows`),children:i(P,{value:n.rows,onDelta:e=>y(Ge(n,n.columns,n.rows+e))})})]}),i(Ve,{grid:n,label:a(`remote.layout.previewLabel`),selectedId:h,selectedGroupId:g,onSelect:e=>{b.consumeDragClick()||c({kind:`button`,id:e})},onSelectGroup:e=>{b.consumeDragClick()||c({kind:`group`,id:e})},showEmptyCells:!0,gridRef:m,drag:b.drag,onItemPointerDown:b.onItemPointerDown,onItemKeyDown:(e,t)=>{let r=vt(t.key);r!==null&&(t.preventDefault(),y(yt(n,e,r.dRow,r.dCol)))}}),i(`p`,{className:`text-xs text-foreground-subtle`,children:a(`remote.layout.dragHint`)}),e(`div`,{className:`flex flex-wrap gap-2`,children:[e(F,{variant:`outline`,size:`sm`,onClick:()=>p(!0),"data-testid":`remote-add-component`,children:[i(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),a(`remote.layout.addComponent`)]}),e(F,{variant:`outline`,size:`sm`,onClick:()=>y(ze(n,`ok`),e=>{let t=e.buttons.at(-1);c(t===void 0?null:{kind:`button`,id:t.id})}),"data-testid":`remote-add-button`,children:[i(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),a(`remote.layout.addButton`)]})]}),l!==null&&i(`p`,{role:`alert`,className:`text-xs text-warning`,"data-testid":`remote-layout-refusal`,children:l})]}),i(`div`,{className:`min-w-0`,children:_===null?v===void 0?i(`p`,{className:`text-xs text-foreground-subtle`,children:a(`remote.layout.selectHint`)}):i(Et,{grid:n,groupId:v.id,apply:y,onGone:()=>c(null)}):i(Tt,{grid:n,buttonId:_.id,apply:y,onRemove:()=>{r(Ke(n,_.id)),c(null),u(null)}})}),i(dt,{open:d,grid:n,onOpenChange:p,onPick:(e,t)=>{let i=ut(n,e,t);if(!i.ok){u(a(`remote.layout.refusal.${i.reason}`));return}u(null),r(i.layout);let o=i.buttonIds[0];c(i.groupId===null?o===void 0?null:{kind:`button`,id:o}:{kind:`group`,id:i.groupId})}})]})}function wt(e){return[...Oe.flatMap(t=>Le(t).map(n=>({value:n,label:e(`remote.role.${n}`,Me(n)),group:e(`remote.roleGroup.${t}`)}))),{value:St,label:e(`remote.layout.customRole`),group:e(`remote.roleGroup.custom`)}]}function Tt({grid:t,buttonId:n,apply:r,onRemove:a}){let{t:s}=L(),c=t.buttons.find(e=>e.id===n),l=c===void 0?null:x(c.role),[u,f]=o(null);if(c===void 0)return null;let m=Be(c.role)||u!==null,g=u??l??``,v=E(g),b={trigger:s(`remote.layout.pickIcon`),panel:s(`remote.layout.iconPanel`),searchPlaceholder:s(`deviceDisplay.iconSearchPlaceholder`),clear:s(`remote.layout.noIcon`),noMatches:s(`deviceDisplay.iconNoMatches`)},w=e=>s(`deviceDisplay.iconCategory.${e}`,{defaultValue:te(e)});return e(`div`,{className:`space-y-3 rounded-lg border border-border bg-surface p-3`,"data-testid":`remote-inspector`,children:[i(xe,{mode:`single`,singleDisplay:`field`,label:s(`remote.layout.role`),options:wt((e,t)=>s(e,t??e)),value:m?St:c.role,onChange:e=>{if(e===St){f(l??``);return}f(null),r(R(t,c.id,{role:e}))}}),m&&i(j,{label:s(`remote.layout.customKey`),...g!==``&&!v?{error:s(`remote.layout.customKeyInvalid`)}:{},children:i(I,{value:g,placeholder:`hdmi_1`,onChange:e=>{let n=e.target.value;f(n),E(n)&&r(R(t,c.id,{role:S(n)}))}})}),e(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)] items-end gap-2`,children:[i(j,{label:s(`remote.layout.icon`),children:i(pe,{value:c.icon??null,onPick:e=>r(R(t,c.id,{icon:e})),fallbackGlyph:k,categoryLabel:w,labels:b})}),i(j,{label:s(`remote.layout.label`),children:i(I,{value:c.label??``,maxLength:40,onChange:e=>r(R(t,c.id,{label:e.target.value}))})})]}),i(j,{label:s(`remote.layout.appIcon`),children:i(N,{value:Fe(c.icon)?.key??``,options:[{value:``,label:s(`remote.layout.noApp`)},...Re.map(e=>({value:e.key,label:e.label}))],onChange:e=>{let n=e.target.value;n===``?Fe(c.icon)!==void 0&&r(R(t,c.id,{icon:null})):r(R(t,c.id,{icon:B(n)}))},"data-testid":`remote-app-icon`})}),e(`div`,{className:`grid grid-cols-2 gap-3`,children:[i(j,{label:s(`remote.layout.shape`),children:i(N,{value:c.shape??``,options:[{value:``,label:s(`remote.layout.lookDefault`)},...O.map(e=>({value:e,label:s(`remote.layout.shapes.${e}`)}))],onChange:e=>{let n=O.find(t=>t===e.target.value);r(Ee(t,c.id,{shape:n??null}))},"data-testid":`remote-shape`})}),i(j,{label:s(`remote.layout.tone`),children:i(N,{value:c.tone??``,options:[{value:``,label:s(`remote.layout.lookDefault`)},...C.map(e=>({value:e,label:s(`remote.layout.tones.${e}`)}))],onChange:e=>{let n=C.find(t=>t===e.target.value);r(Ee(t,c.id,{tone:n??null}))},"data-testid":`remote-tone`})})]}),e(`div`,{className:`grid grid-cols-2 gap-3`,children:[i(j,{label:s(`remote.layout.move`),children:e(`div`,{className:`flex items-center gap-1`,children:[i(A,{icon:h,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveLeft`),onClick:()=>r(z(t,c.id,0,-1))}),i(A,{icon:y,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveUp`),onClick:()=>r(z(t,c.id,-1,0))}),i(A,{icon:p,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveDown`),onClick:()=>r(z(t,c.id,1,0))}),i(A,{icon:_,size:`sm`,variant:`secondary`,"aria-label":s(`remote.layout.moveRight`),onClick:()=>r(z(t,c.id,0,1))})]})}),i(j,{label:s(`remote.layout.position`),children:i(`p`,{className:`text-xs text-foreground-muted`,"data-testid":`remote-position`,children:s(`remote.layout.positionValue`,{row:c.row+1,col:c.col+1})})}),i(j,{label:s(`remote.layout.height`),children:i(P,{value:c.rowSpan,onDelta:e=>r(ke(t,c.id,c.rowSpan+e,c.colSpan))})}),i(j,{label:s(`remote.layout.width`),children:i(P,{value:c.colSpan,onDelta:e=>r(ke(t,c.id,c.rowSpan,c.colSpan+e))})})]}),e(F,{variant:`danger`,size:`sm`,onClick:a,children:[i(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),s(`remote.layout.removeButton`)]})]})}function Et({grid:t,groupId:n,apply:r,onGone:a}){let{t:o}=L(),s=je(t,n);if(s===void 0)return null;let c=Ne(t,n).length;return e(`div`,{className:`space-y-3 rounded-lg border border-border bg-surface p-3`,"data-testid":`remote-group-inspector`,children:[i(`p`,{className:`text-xs text-foreground-muted`,children:o(`remote.layout.groupSummary`,{frame:o(`remote.layout.frames.${s.frame}`,s.frame),count:c,row:s.row+1,col:s.col+1})}),i(j,{label:o(`remote.layout.groupTitle`),children:i(I,{value:s.title??``,maxLength:40,onChange:e=>r(We(t,s.id,e.target.value)),"data-testid":`remote-group-title`})}),e(`div`,{className:`flex flex-wrap gap-2`,children:[e(F,{variant:`outline`,size:`sm`,"data-testid":`remote-group-ungroup`,onClick:()=>{r(Ie(t,s.id,!0)),a()},children:[i(ie,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),o(`remote.layout.ungroup`)]}),e(F,{variant:`danger`,size:`sm`,"data-testid":`remote-group-delete`,onClick:()=>{r(Ie(t,s.id,!1)),a()},children:[i(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),o(`remote.layout.deleteGroup`)]})]})]})}var Dt={remote:{label:e=>e(`remote.templates.kind.remote`),emptyPayload:He,summary:(e,t)=>{let n=Pe(e);return t(`remote.templates.layoutSummary`,{columns:n.columns,rows:n.rows,count:n.buttons.length})},renderEditor:(e,t)=>i(Ct,{value:Pe(e),onChange:t}),isSavable:e=>Ae(Pe(e))!==null,presets:e=>rt.map(t=>({id:t.id,label:e(`remote.templates.preset.${t.id}`),payload:()=>it(t.id)}))}};function $(e){return Dt[e]}var Ot=ne;function kt(e,t){let n=ee(e,t);return n.ok?n.payload:null}s();function At({draft:e,saving:t,error:n,onSave:r,onClose:a}){return i(_e,{open:e!==null,onOpenChange:e=>!e&&a(),children:i(de,{width:`xl`,placement:`sheet-on-mobile`,scroll:`body`,children:e!==null&&i(jt,{draft:e,saving:t,error:n,onSave:r,onClose:a},e.id??`new`)})})}function jt({draft:t,saving:n,error:r,onSave:a,onClose:s}){let{t:c}=L(),[u,d]=o(t.kind),[f,p]=o(t.name),[m,h]=o(t.payload),[g,_]=o(``),v=$(u),y=v.presets(c),b=kt(u,m),x=f.trim()!==``&&b!==null&&v.isSavable(m)&&!n;return e(l,{children:[i(fe,{children:i(se,{children:t.id===null?c(`remote.templates.newTitle`):c(`remote.templates.editTitle`)})}),e(we,{className:`space-y-4`,children:[e(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[i(j,{label:c(`remote.templates.name`),children:i(I,{value:f,maxLength:120,onChange:e=>p(e.target.value),"data-testid":`template-name`})}),t.id===null&&Ot.length>1&&i(j,{label:c(`remote.templates.kind.label`),children:i(N,{value:u,options:Ot.map(e=>({value:e,label:$(e).label(c)})),onChange:e=>{let t=Ot.find(t=>t===e.target.value);t!==void 0&&(d(t),h($(t).emptyPayload()),_(``))}})}),t.id===null&&y.length>0&&i(j,{label:c(`remote.templates.startFrom`),children:i(N,{value:g,options:[{value:``,label:c(`remote.templates.startBlank`)},...y.map(e=>({value:e.id,label:e.label}))],onChange:e=>{let t=y.find(t=>t.id===e.target.value);_(t?.id??``),h(t===void 0?v.emptyPayload():t.payload()),t!==void 0&&f.trim()===``&&p(t.label)},"data-testid":`template-preset`})})]}),v.renderEditor(m,h),r!==null&&i(`p`,{role:`alert`,className:`text-xs text-danger`,children:r})]}),e(Se,{children:[i(F,{variant:`ghost`,onClick:s,children:c(`common.cancel`)}),i(F,{disabled:!x,onClick:()=>a({id:t.id,kind:u,name:f.trim(),payload:b}),"data-testid":`template-save`,children:c(`common.save`)})]})]})}s();var Mt=ne[0];function Nt(){let{t}=L(),r=c(),a=ue({}),s=he(),l=ae(),p=ge(),h=v(),_=g(),[y,b]=o(null),[x,S]=o(null),C=()=>void r.invalidateQueries({queryKey:[[`template`]]}),w=async e=>{S(null);try{let t=e.id===null?await s.mutateAsync({kind:e.kind,name:e.name,payload:e.payload}):await l.mutateAsync({id:e.id,name:e.name,payload:e.payload});if(t.status===`refused`){S(t.detail);return}C(),b(null)}catch(e){S(e instanceof Error?e.message:String(e))}},ee=async e=>{try{await s.mutateAsync({kind:e.kind,name:t(`remote.templates.copyName`,{name:e.name}),payload:e.payload}),C()}catch(e){await _({title:t(`remote.templates.duplicateFailed`),message:e instanceof Error?e.message:String(e),variant:`danger`})}},T=async e=>{if(await h({title:t(`remote.templates.deleteTitle`,{name:e.name}),message:t(`remote.templates.deleteMessage`),confirmLabel:t(`common.delete`),variant:`danger`}))try{let n=await p.mutateAsync({id:e.id});if(n.status===`in-use`){await _({title:t(`remote.templates.inUseTitle`,{name:e.name}),message:t(`remote.templates.inUseMessage`,{devices:n.devices.map(e=>e.name).join(`, `)}),variant:`warning`});return}C()}catch(e){await _({title:t(`remote.templates.deleteFailed`),message:e instanceof Error?e.message:String(e),variant:`danger`})}},E=n(()=>[{key:`name`,header:t(`remote.templates.name`),sortValue:e=>e.name.toLowerCase(),render:e=>i(`span`,{className:`font-medium text-foreground`,children:e.name})},{key:`kind`,header:t(`remote.templates.kind.label`),sortValue:e=>e.kind,render:e=>i(ve,{variant:`neutral`,children:$(e.kind).label(t)})},{key:`summary`,header:t(`remote.templates.summary`),notSortableReason:`A sentence built from the payload.`,render:e=>i(`span`,{className:`text-foreground-muted`,children:$(e.kind).summary(e.payload,t)})},{key:`updated`,header:t(`remote.templates.updated`),sortValue:e=>e.updatedAt,render:e=>i(`span`,{className:`text-foreground-muted`,children:new Date(e.updatedAt).toLocaleDateString()})},{key:`actions`,align:`right`,notSortableReason:`Row actions.`,render:e=>i(Ce,{title:t(`remote.templates.actionsFor`,{name:e.name}),items:[{id:`edit`,label:t(`common.edit`),icon:u,onClick:()=>{S(null),b({id:e.id,kind:e.kind,name:e.name,payload:e.payload})}},{id:`duplicate`,label:t(`remote.templates.duplicate`),icon:m,onClick:()=>void ee(e)},{id:`delete`,label:t(`common.delete`),icon:d,danger:!0,onClick:()=>void T(e)}]})}],[t]),D=a.data??[],O=()=>{S(null),b({id:null,kind:Mt,name:``,payload:$(Mt).emptyPayload()})};return e(Te,{icon:re,title:t(`remote.templates.title`),subtitle:t(`remote.templates.subtitle`),actions:e(F,{size:`sm`,onClick:O,"data-testid":`template-new`,children:[i(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),t(`remote.templates.new`)]}),children:[a.status===`error`?i(le,{title:t(`remote.templates.loadFailed`),message:a.error.message,onRetry:()=>void a.refetch()}):a.data===void 0?i(M,{className:`h-32 w-full`}):D.length===0?i(ce,{icon:re,title:t(`remote.templates.emptyTitle`),description:t(`remote.templates.emptyDescription`),action:i(F,{size:`sm`,onClick:O,children:t(`remote.templates.new`)})}):i(be,{columns:E,rows:D,rowKey:e=>e.id,maxBodyHeight:oe,defaultSort:{columnKey:`name`,dir:`asc`},onRowClick:e=>{S(null),b({id:e.id,kind:e.kind,name:e.name,payload:e.payload})}}),i(At,{draft:y,saving:s.isPending||l.isPending,error:x,onSave:e=>void w(e),onClose:()=>b(null)})]})}export{Nt as TemplatesPage};