@camstack/addon-admin-ui 1.2.507 → 1.2.508

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 (119) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/{AddonAssetIcon-BP6wggBn.js → AddonAssetIcon-BI2lRuoS.js} +1 -1
  3. package/dist/assets/{Addons-BByydqJ9.js → Addons-TpOqhnVb.js} +1 -1
  4. package/dist/assets/{AdminPage-C24QbcFs.js → AdminPage-CoK_jJGS.js} +1 -1
  5. package/dist/assets/{AdminSectionedPage-Dj6jU_7A.js → AdminSectionedPage-DSGzoNMN.js} +1 -1
  6. package/dist/assets/{AiProfiles-CAdvqX3L.js → AiProfiles-BAjucqPT.js} +1 -1
  7. package/dist/assets/{BrokerEditorDialog-DvynfPt_.js → BrokerEditorDialog-B89FOzdO.js} +1 -1
  8. package/dist/assets/{Build-BwIB30Ez.js → Build-CFHVjKTp.js} +1 -1
  9. package/dist/assets/{Calendars-Bi6uaUyD.js → Calendars-B_klJh9f.js} +1 -1
  10. package/dist/assets/{Cluster-BvMk0ecH.js → Cluster-D4aPF2Mc.js} +1 -1
  11. package/dist/assets/{CompositionBlockEditor-CtDesZ-k.js → CompositionBlockEditor--2eeDknC.js} +1 -1
  12. package/dist/assets/{CompositionEditorPage-B_Bz_uet.js → CompositionEditorPage-CdQhA7kv.js} +1 -1
  13. package/dist/assets/{Data-Bi2TJqdc.js → Data-CZwL53Hx.js} +1 -1
  14. package/dist/assets/{DeviceDetail-trFE_wrk.js → DeviceDetail-SKPy4rTC.js} +1 -1
  15. package/dist/assets/{DeviceDoActionFields-CTwsKNgQ.js → DeviceDoActionFields-B33Gsegz.js} +1 -1
  16. package/dist/assets/{Devices-Cpj1qi1_.js → Devices-Rkjf5xy8.js} +1 -1
  17. package/dist/assets/{EmbedPlayerPage-DQXbWoop.js → EmbedPlayerPage-CIhSpElZ.js} +1 -1
  18. package/dist/assets/{HelperWizard-BPQAjrEW.js → HelperWizard-CbDck6HU.js} +1 -1
  19. package/dist/assets/{History-DHBf_F9r.js → History-DDDOyHZ5.js} +1 -1
  20. package/dist/assets/{Identity-R0UVdCby.js → Identity-r8ch-lOQ.js} +1 -1
  21. package/dist/assets/{IntegrationDetail-5PqYttVA.js → IntegrationDetail-DtLleJdm.js} +1 -1
  22. package/dist/assets/{IntegrationHub-2FGWiuhL.js → IntegrationHub-CySfaOMq.js} +1 -1
  23. package/dist/assets/{Integrations-sFzMeZSP.js → Integrations-DfhZYAU6.js} +1 -1
  24. package/dist/assets/{Integrations-Bapm_dQX.js → Integrations-DgKqVXik.js} +1 -1
  25. package/dist/assets/{Library-C13RH4-r.js → Library-DS1N1jEN.js} +1 -1
  26. package/dist/assets/{Locations-D06IW9NQ.js → Locations-DeBnLLF-.js} +1 -1
  27. package/dist/assets/{Logs-DDnRy0yw.js → Logs-CHh39x1m.js} +1 -1
  28. package/dist/assets/{MaskShapeCanvas-B-mYS6nx.js → MaskShapeCanvas-Bc_okYTu.js} +1 -1
  29. package/dist/assets/{MotionZonesSettings-Aeho9WQB.js → MotionZonesSettings-C-3oW42G.js} +1 -1
  30. package/dist/assets/{MyAccess-BjUjf7mc.js → MyAccess-C3LJW2D-.js} +1 -1
  31. package/dist/assets/{Network-CGq3kfd1.js → Network-DUpU_-CN.js} +1 -1
  32. package/dist/assets/{NodeAddonsSettingsPanel-nr3AtHjM.js → NodeAddonsSettingsPanel-DtuYEwYa.js} +1 -1
  33. package/dist/assets/{Notifications-BBwZ6mAQ.js → Notifications-Co9i2XjT.js} +1 -1
  34. package/dist/assets/{Pipeline-CQaYioeF.js → Pipeline-q5F5QN1u.js} +1 -1
  35. package/dist/assets/{PrivacyMaskSettings-D7Qd8kqz.js → PrivacyMaskSettings-BOI5MbOP.js} +1 -1
  36. package/dist/assets/{Recordings-CDtBM0sR.js → Recordings-Ce7zfDAZ.js} +1 -1
  37. package/dist/assets/{ScanNetworkModal-2DJqoErA.js → ScanNetworkModal-B6Qw9qG5.js} +1 -1
  38. package/dist/assets/{SceneMonitorEditor-swVXSp84.js → SceneMonitorEditor-BP10OuX_.js} +1 -1
  39. package/dist/assets/{SessionsList-C2DE6o9h.js → SessionsList-LaUTUXTI.js} +1 -1
  40. package/dist/assets/{Showroom-CiNnUFnm.js → Showroom-Dq8K9w28.js} +1 -1
  41. package/dist/assets/{System-DUagyEFx.js → System-BXnin0ZR.js} +1 -1
  42. package/dist/assets/{Terminal-DOi0WVnX.js → Terminal-B-yYnFAl.js} +1 -1
  43. package/dist/assets/{Viewer-CWHOfvCC.js → Viewer-CDe6m77J.js} +1 -1
  44. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-BIxGxCUM.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DmDesblz.js} +1 -1
  45. package/dist/assets/{addon-icons-context-DTBXQew3.js → addon-icons-context-C1MOrZ0k.js} +1 -1
  46. package/dist/assets/{archive-BSo6LE4j.js → archive-DfRpKbmd.js} +1 -1
  47. package/dist/assets/{assignment-candidates-ssCj0u1L.js → assignment-candidates-XVSaMNWE.js} +1 -1
  48. package/dist/assets/{authed-media-DcEPr23B.js → authed-media-acRzkBVq.js} +1 -1
  49. package/dist/assets/{bell-off-DMeS_hlL.js → bell-off-BDtTHYf7.js} +1 -1
  50. package/dist/assets/{board-model-C-MbLK-9.js → board-model-D3K1Oad0.js} +1 -1
  51. package/dist/assets/{boxes-BTvNvGv0.js → boxes-Dg0SsuKi.js} +1 -1
  52. package/dist/assets/circle-slash-vr6zT4n3.js +1 -0
  53. package/dist/assets/client-BRyxs6lT.js +674 -0
  54. package/dist/assets/{cloud-upload-DTtO2M5N.js → cloud-upload-D5gzNxtI.js} +1 -1
  55. package/dist/assets/crop-CGtgnf44.js +1 -0
  56. package/dist/assets/{device-integration-icon-JsR0CLjC.js → device-integration-icon-DMlXMoep.js} +1 -1
  57. package/dist/assets/device-picker-model-D0GfTZgv.js +1 -0
  58. package/dist/assets/dist-CPWJTJFO.js +674 -0
  59. package/dist/assets/{dist-D-rENHS9.js → dist-DU6BvfF_.js} +1 -1
  60. package/dist/assets/{eraser-Uty9NVHm.js → eraser-DatAKBqr.js} +1 -1
  61. package/dist/assets/{format-CNIP6R5z.js → format-C5OjHr2B.js} +1 -1
  62. package/dist/assets/{hard-drive-download-DLDeO7fX.js → hard-drive-download-BMn4pcLF.js} +1 -1
  63. package/dist/assets/{hostInit-FnGO3hOX.js → hostInit-SgUIaQcR.js} +1 -1
  64. package/dist/assets/i18n-DH8y-VcL.js +1 -0
  65. package/dist/assets/{icons-Dczhpsut.js → icons-CfQXaR2o.js} +1 -1
  66. package/dist/assets/{index-pdmtHrdH.js → index-BCZXKpVN.js} +3 -3
  67. package/dist/assets/{key-By6EbR0p.js → key-0qodB2RW.js} +1 -1
  68. package/dist/assets/{key-round-iLs-jOxg.js → key-round-EDiKxWDb.js} +1 -1
  69. package/dist/assets/{layers-BtBDzlwx.js → layers-BuqS0QUs.js} +1 -1
  70. package/dist/assets/{linked-devices-model-BeSuCS67.js → linked-devices-model-EpVtXJ1y.js} +1 -1
  71. package/dist/assets/{list-ordered-c42OqqHj.js → list-ordered-5xX0c-4M.js} +1 -1
  72. package/dist/assets/{location-owned-usage-ge-GKuvo.js → location-owned-usage-DYyj5DnK.js} +1 -1
  73. package/dist/assets/{log-in-Ct1VkFa-.js → log-in-DfGAqbts.js} +1 -1
  74. package/dist/assets/{memory-stick-Dl2x1-yz.js → memory-stick-Cw-HmXQN.js} +1 -1
  75. package/dist/assets/{message-square-plus-CKYpcVyW.js → message-square-plus-Cimd4hIM.js} +1 -1
  76. package/dist/assets/{mf-entry-bootstrap-0-a877a78a.js → mf-entry-bootstrap-0-f0aece97.js} +2 -2
  77. package/dist/assets/{mic-off-BXQiquS1.js → mic-off-BaeJlMpU.js} +1 -1
  78. package/dist/assets/{monitor-off-vUbCNV5T.js → monitor-off-B5ZegpCN.js} +1 -1
  79. package/dist/assets/{monitor-smartphone-DBSJpBW_.js → monitor-smartphone-GrRvroYr.js} +1 -1
  80. package/dist/assets/mount-D0GfTZgv.js +1 -0
  81. package/dist/assets/{player-overlays-CBiSRAea.js → player-overlays-CzZYPO2s.js} +1 -1
  82. package/dist/assets/{recycle-BZmGhg7x.js → recycle-C0Za7XIk.js} +1 -1
  83. package/dist/assets/remoteEntry-BNJLevTL.js +1 -0
  84. package/dist/assets/{scan-eye-BoLgRLC0.js → scan-eye-DBcVKkv9.js} +1 -1
  85. package/dist/assets/{scissors-DGLihVCk.js → scissors-ClBtIo8F.js} +1 -1
  86. package/dist/assets/{search-x-sFaeXhxz.js → search-x-vzCWLMzU.js} +1 -1
  87. package/dist/assets/{send-Bg3Ccdt2.js → send-C2xLiGxd.js} +1 -1
  88. package/dist/assets/{settings-2-CwllFEZ8.js → settings-2-CE18osa2.js} +1 -1
  89. package/dist/assets/{sigma-CdYqmDXM.js → sigma-BzZ_sr1s.js} +1 -1
  90. package/dist/assets/{speaker-BrOcLiaC.js → speaker-DPhQgEkP.js} +1 -1
  91. package/dist/assets/src-DytYtgEw.js +67 -0
  92. package/dist/assets/{step-inspector-model-Dm3OtX4n.js → step-inspector-model-CjRD_PYM.js} +1 -1
  93. package/dist/assets/{table-2-Dy55Hbv-.js → table-2-Ca1maW_p.js} +1 -1
  94. package/dist/assets/{timer-reset-CW-sk1hO.js → timer-reset-DLwEAlTU.js} +1 -1
  95. package/dist/assets/{unlink-CP1a9eIg.js → unlink-Bdb8-xwF.js} +1 -1
  96. package/dist/assets/{usb-CZ6MXIrF.js → usb-DxqbvFPc.js} +1 -1
  97. package/dist/assets/{use-scenes-feed-BgoS7G9m.js → use-scenes-feed-YVkY4_qr.js} +1 -1
  98. package/dist/assets/{use-stationary-objects-CZz2fTb8.js → use-stationary-objects-FD4-OqJN.js} +1 -1
  99. package/dist/assets/useEventInvalidation-D0GfTZgv.js +1 -0
  100. package/dist/assets/{useNodeUrlSelection-BqU7uE66.js → useNodeUrlSelection-D8YOlTNk.js} +1 -1
  101. package/dist/assets/user-round-D5DJkFym.js +1 -0
  102. package/dist/assets/{user-x-BHGXDb0d.js → user-x-BQ6msuOU.js} +1 -1
  103. package/dist/assets/{variable-BspSKoPT.js → variable-mkIJuabT.js} +1 -1
  104. package/dist/assets/{video-DcplYxeY.js → video-O02NyJP7.js} +1 -1
  105. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DarJ7yW1.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-CVBjsL5d.js} +2 -2
  106. package/dist/index.html +9 -9
  107. package/dist/server/addon.js +115 -6
  108. package/package.json +1 -1
  109. package/dist/assets/circle-slash-HrJDRa4V.js +0 -1
  110. package/dist/assets/client-BfSvmYES.js +0 -674
  111. package/dist/assets/crop-CjhqWNNc.js +0 -1
  112. package/dist/assets/device-picker-model-Ddc4zMvm.js +0 -1
  113. package/dist/assets/dist-jcYq2P8G.js +0 -674
  114. package/dist/assets/i18n-DSyzqlc8.js +0 -1
  115. package/dist/assets/mount-Ddc4zMvm.js +0 -1
  116. package/dist/assets/remoteEntry-74d4RYnC.js +0 -1
  117. package/dist/assets/src-m4PqxQbt.js +0 -67
  118. package/dist/assets/useEventInvalidation-Ddc4zMvm.js +0 -1
  119. package/dist/assets/user-round-DK8xHLhd.js +0 -1
@@ -5448,7 +5448,7 @@ var ZodIssueCode = {
5448
5448
  var ZodFirstPartyTypeKind;
5449
5449
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5450
5450
  //#endregion
5451
- //#region ../types/dist/sleep-Crlmu_tO.mjs
5451
+ //#region ../types/dist/sleep-BAvUCi_2.mjs
5452
5452
  /**
5453
5453
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5454
5454
  * window to float samples (D455).
@@ -8600,6 +8600,7 @@ var CAP_NAMES = Object.freeze([
8600
8600
  "image-settings",
8601
8601
  "integrations",
8602
8602
  "intercom",
8603
+ "ir-transmitter",
8603
8604
  "keychain",
8604
8605
  "keychain-admin",
8605
8606
  "lawn-mower-control",
@@ -9847,6 +9848,11 @@ Object.freeze({
9847
9848
  "path": "batteryPower",
9848
9849
  "valueType": "number"
9849
9850
  },
9851
+ {
9852
+ "path": "powerSource",
9853
+ "valueType": "enum",
9854
+ "enumValues": ["mains", "battery"]
9855
+ },
9850
9856
  {
9851
9857
  "path": "desiccantLeftDays",
9852
9858
  "valueType": "number"
@@ -10430,7 +10436,7 @@ object({
10430
10436
  params: record(string(), union([string(), number()])).optional()
10431
10437
  });
10432
10438
  //#endregion
10433
- //#region ../types/dist/err-msg-DIorGYeC.mjs
10439
+ //#region ../types/dist/err-msg-BCdlR2Li.mjs
10434
10440
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
10435
10441
  DeviceType["Camera"] = "camera";
10436
10442
  DeviceType["Hub"] = "hub";
@@ -10776,10 +10782,13 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
10776
10782
  /** Fallback when the notifier service name doesn't match a known
10777
10783
  * pattern. */
10778
10784
  DeviceRole["GenericNotifier"] = "generic-notifier";
10785
+ /** Emits a pulse train (infrared or RF) on request — the `ir-transmitter`
10786
+ * cap. A `DeviceType.Generic` device. */
10787
+ DeviceRole["IrTransmitter"] = "ir-transmitter";
10779
10788
  return DeviceRole;
10780
10789
  }({});
10781
10790
  //#endregion
10782
- //#region ../types/dist/composition-DwA0uVW5.mjs
10791
+ //#region ../types/dist/composition-DpFv_J6D.mjs
10783
10792
  /**
10784
10793
  * The ffmpeg build every CamStack node downloads, per platform and arch.
10785
10794
  *
@@ -57347,6 +57356,56 @@ DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _v
57347
57356
  auth: "protected"
57348
57357
  });
57349
57358
  /**
57359
+ * A pulse train in signed microseconds: mark (+) first, then space (-), strictly
57360
+ * alternating, no zeros, 2..1024 entries.
57361
+ */
57362
+ var IrTimingsSchema = array(number().int()).min(2).max(1024).superRefine((timings, ctx) => {
57363
+ timings.forEach((value, index) => {
57364
+ const expectMark = index % 2 === 0;
57365
+ if (value === 0 || value > 0 !== expectMark) ctx.addIssue({
57366
+ code: "custom",
57367
+ message: `timing ${index} must be a non-zero ${expectMark ? "mark (positive)" : "space (negative)"}`,
57368
+ path: [index]
57369
+ });
57370
+ });
57371
+ });
57372
+ /** Per-command transmit options. Every key is optional; a transmitter applies what it can. */
57373
+ var TransmitSettingsSchema = object({
57374
+ carrierHz: number().int().positive().optional(),
57375
+ dutyCyclePercent: number().int().min(1).max(100).optional(),
57376
+ repeat: number().int().min(0).max(20).optional(),
57377
+ repeatDelayMs: number().int().min(0).optional()
57378
+ });
57379
+ /** The setting keys a transmitter may declare as settable (`getInfo.settable`). */
57380
+ var TransmitSettingKeySchema = _enum([
57381
+ "carrierHz",
57382
+ "dutyCyclePercent",
57383
+ "repeat",
57384
+ "repeatDelayMs"
57385
+ ]);
57386
+ var IrMediumSchema = _enum(["ir", "rf"]);
57387
+ var IrSendResultSchema = object({
57388
+ ok: literal(true),
57389
+ /** Settings the transmitter could not apply; the train was still sent. */
57390
+ ignoredSettings: array(string())
57391
+ });
57392
+ var IrTransmitterInfoSchema = object({
57393
+ media: array(IrMediumSchema),
57394
+ settable: array(TransmitSettingKeySchema),
57395
+ maxTimings: number().int().positive()
57396
+ });
57397
+ DeviceType.Generic, method(object({
57398
+ deviceId: number().int().nonnegative(),
57399
+ timings: IrTimingsSchema,
57400
+ settings: TransmitSettingsSchema.optional()
57401
+ }), IrSendResultSchema, {
57402
+ kind: "mutation",
57403
+ auth: "protected"
57404
+ }), method(object({ deviceId: number().int().nonnegative() }), IrTransmitterInfoSchema, {
57405
+ kind: "query",
57406
+ auth: "protected"
57407
+ });
57408
+ /**
57350
57409
  * `calendar-source` — collection cap exposing per-provider calendars and
57351
57410
  * their events. Every addon that contributes calendars (Home Assistant,
57352
57411
  * a future Google Calendar addon, …) registers a provider here. The hub
@@ -61449,9 +61508,14 @@ object({
61449
61508
  * (`device_class: problem`, on = low). True when the tank reports empty,
61450
61509
  * or, on a dual-hopper model, when EITHER hopper is empty. */
61451
61510
  lowFood: boolean(),
61452
- /** Battery charge 0..100 (%). Null on mains-powered models or when the
61453
- * device has no battery reading. */
61511
+ /** Battery charge 0..100 (%). On a feeder running on `mains` this is the
61512
+ * BACKUP battery's charge, not the power source. Null when the device has
61513
+ * no battery reading. */
61454
61514
  batteryPower: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
61515
+ /** What the feeder is powered from right now: `mains` (plugged in, the
61516
+ * battery is only a backup) or `battery`. Null when the device does not
61517
+ * report it. */
61518
+ powerSource: _enum(["mains", "battery"]).nullable(),
61455
61519
  /**
61456
61520
  * Desiccant life remaining, stored in seconds (duration base, D944).
61457
61521
  * Providers convert from the days the feeder reports. Null when the
@@ -69727,6 +69791,20 @@ Object.freeze({
69727
69791
  access: "create",
69728
69792
  role: "viewer"
69729
69793
  },
69794
+ "irTransmitter.getInfo": {
69795
+ capName: "ir-transmitter",
69796
+ capScope: "device",
69797
+ addonId: null,
69798
+ access: "view",
69799
+ role: "viewer"
69800
+ },
69801
+ "irTransmitter.send": {
69802
+ capName: "ir-transmitter",
69803
+ capScope: "device",
69804
+ addonId: null,
69805
+ access: "create",
69806
+ role: "viewer"
69807
+ },
69730
69808
  "keychain.delete": {
69731
69809
  capName: "keychain",
69732
69810
  capScope: "system",
@@ -77350,6 +77428,11 @@ var ACTUATOR_CAP_VOCABULARY = {
77350
77428
  icon: "circle-dot"
77351
77429
  }]
77352
77430
  },
77431
+ "ir-transmitter": {
77432
+ scope: "device",
77433
+ noun: t("IR / RF transmitter", "Trasmettitore IR / RF"),
77434
+ notOperatorFacing: { send: "a raw pulse train is not something an operator composes in an automation; the remote that owns the command table sends it" }
77435
+ },
77353
77436
  control: {
77354
77437
  scope: "device",
77355
77438
  noun: t("Control", "Controllo"),
@@ -81069,6 +81152,16 @@ Object.freeze({
81069
81152
  form: "single",
81070
81153
  optional: false
81071
81154
  }],
81155
+ "irTransmitter.getInfo": [{
81156
+ name: "deviceId",
81157
+ form: "single",
81158
+ optional: false
81159
+ }],
81160
+ "irTransmitter.send": [{
81161
+ name: "deviceId",
81162
+ form: "single",
81163
+ optional: false
81164
+ }],
81072
81165
  "keychain.deleteDeviceScope": [{
81073
81166
  name: "deviceId",
81074
81167
  form: "single",
@@ -84102,6 +84195,22 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
84102
84195
  String.raw`(?<=^|["'(\s>,\[{])`;
84103
84196
  var MB = 1024 * 1024;
84104
84197
  1024 * MB, 3072 * MB;
84198
+ discriminatedUnion("kind", [object({
84199
+ kind: literal("raw"),
84200
+ timings: array(number().int()),
84201
+ settings: TransmitSettingsSchema.optional()
84202
+ }), object({
84203
+ kind: literal("pronto"),
84204
+ code: string()
84205
+ })]);
84206
+ object({
84207
+ manufacturer: string().optional(),
84208
+ supportedModels: array(string()).optional(),
84209
+ supportedController: string().optional(),
84210
+ commandsEncoding: string(),
84211
+ delay: number().nonnegative().optional(),
84212
+ commands: record(string(), unknown())
84213
+ });
84105
84214
  //#endregion
84106
84215
  //#region src/server/addon.ts
84107
84216
  var __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -84121,7 +84230,7 @@ var AdminUIAddon = class extends BaseAddon {
84121
84230
  capability: adminUiCapability,
84122
84231
  provider: {
84123
84232
  getStaticDir: async () => ({ staticDir: resolveAdminUiDistDir() }),
84124
- getVersion: async () => ({ version: "1.2.507" })
84233
+ getVersion: async () => ({ version: "1.2.508" })
84125
84234
  }
84126
84235
  }];
84127
84236
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-admin-ui",
3
- "version": "1.2.507",
3
+ "version": "1.2.508",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Admin UI — Vite frontend build and server-side addon",
@@ -1 +0,0 @@
1
- import{ca as e}from"./player-overlays-CBiSRAea.js";var t=e(`circle-slash`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]]);export{t};