{"context":{"domain":"babi-hera-demos"},"layers":{"ApplicationLayer":{"reference":"ApplicationLayer","availableInstances":[{"reference":"ComponentsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"SystemsDataSet","params":{"filter":{"domain":"data2"},"pagination":{"size":1},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSource"}}}},{"reference":"ExternalComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"SystemsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5e3b796d6228227ca637d0f4","name":"data2","domain":"data2","organization":"62292184611f480b3191c37c","visibility":"public","updatedAt":"2022-03-09T02:01:26.213Z"}]}},{"reference":"OrganizationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"DataComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"OneFileComponentInstancesDataSet","params":{"pagination":{"size":1},"master":{"dataset":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSet"}},"localField":"system","masterField":"_id"},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"FileComponentInstancesDataSource"}}}},{"reference":"ApplicationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ServiceComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@Data2TableDataSource","reference":"FileComponentInstancesDataSource","params":{"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}}]}},{"component":"data2-core@MemoryDataSource","reference":"EmptyDataSource","params":{"initialData":[]}},{"reference":"ComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"UserComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"DataComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ServiceComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ExternalComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ApplicationsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}}],"processesParams":{}},"HostApplicationLayer":{"reference":"HostApplicationLayer","availableInstances":[{"_id":"5f15ff190528b92601890f71","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"SystemsTableDataSource"}},"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"domain"}}},"pk":"_id","fields":[{"component":"data2-core-types@FieldReference","params":{"key":"_id"}},{"component":"data2-core-types@FieldReference","params":{"key":"name"}},{"component":"data2-core-types@FieldReference","params":{"key":"domain"}},{"component":"data2-core-types@FieldReference","params":{"key":"visibility"}},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization._id"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.name"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.billingStatus"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.publicTrial.active"}}},"break":true}],"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"staticPagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"policies":[{"component":"data2-core-auth@Policy","params":{"allow":{"params":{"actions":[{"params":{"components":[{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"_id"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"domain"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@Series"}}}]},"reference":"SystemsDataSet","updatedAt":"2025-11-05T19:23:47.135Z","createdAt":"2020-07-20T20:31:21.838Z"},{"_id":"5f1601ce0528b92601890f7c","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":1000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"sort":{"params.package":1,"params.component":1},"pk":"_id","autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"staticFilter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"filter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"reference":"ComponentsDataSet","updatedAt":"2025-11-05T19:37:01.935Z","createdAt":"2020-07-20T20:42:54.898Z"},{"_id":"5f9041dbc8da12be8b94aea4","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":2000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"UserComponentsDataSet","updatedAt":"2025-11-06T21:06:58.095Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"65d8c4fabc9dbb8f94de8d53","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ExternalComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ExternalComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:23.742Z","createdAt":"2024-02-23T16:17:01.816Z"},{"reference":"SystemsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"66476aae8c3737df2e4efc38","name":"Hera Demos","domain":"babi-hera-demos","visibility":"public","updatedAt":"2024-05-17T14:33:18.477Z","createdAt":"2024-05-17T14:33:18.477Z"}]}},{"reference":"ComponentsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5f52a278a575399a45d239b4","component":"data2-core-types@Component","params":{"package":"data2-core-primitives","component":"Router","interactions":{"component":"data2-core-types@FieldSet","params":{"fields":{"goBack":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.goBack","args":[]}}}},"icon":{"component":"data2-core-primitives@String","params":{"content":"arrow-left"}},"visibility":"public"}},"goTo":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"component":"data2-core-types@Reference","params":{"reference":"url"}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}}}]}},"parameters":[{"component":"data2-core-primitives@String","params":{"content":"url"}},{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}]},"break":true},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Path to route"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Path to redirect user"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Boolean"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Preserve Query"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Preserve query string parameters  preserve query parameters on navigating."}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"}]}},"open":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"pathname":{"component":"data2-core-types@Reference","params":{"reference":"value"}}}]}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}]}},"close":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":"close"}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"times"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}],"description":{"component":"data2-core-primitives@String","params":{"content":"Closes a window that was opened via router.open."}}}}}}}}},{"_id":"620d28658271aa4129919d89","component":"data2-core-types@Component","params":{"package":"data2-interface-services","component":"DeviceController","interactions":{"params":{"fields":{"postMessage":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@String","title":{"component":"data2-core-primitives@String","params":{"content":"data"}}}}]},"component":"data2-core-types@ComponentParameter"},"print":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"zoom":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Number"}},"title":{"component":"data2-core-primitives@String","params":{"content":"zoom"}},"visibility":"public"}}},"visibility":"public"},"component":"data2-core-types@ComponentParameter"}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"share":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}}},"component":"data2-core-types@ComponentParameter"},"clipboard.copy":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"clipboard.paste":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"download":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}]},"component":"data2-core-types@ComponentParameter"},"downloadUrl":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Url"}}}}]},"component":"data2-core-types@ComponentParameter"},"promptFiles":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"params":{"fields":{"multiple":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Multiple"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Whether or not to allow selecting multiple files"}},"component":"data2-core-primitives@Boolean"}},"acceptedFormats":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Accepted Formats"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Accepted file formats"}},"component":"data2-core-primitives@String","list":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},"timeout":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Timeout"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Max milliseconds to wait for file upload"}},"component":"data2-core-primitives@Number"}}}},"component":"data2-core-types@FieldSet"}}}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"meetingRecord":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","definition":{"params":{"actions":[{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"meeting"}},"script":{"component":"data2-core-primitives@String","params":{"content":"(function() {\n  let mediaRecorder;\n  let audioChunks = [];\n  let combinedStream;\n  let audioContext;\n  \n  window.meetingCapture = async function() {\n    try {\n      // Solicitar acesso ao áudio da guia (e vídeo, que será ignorado depois)\n      const tabStream = await navigator.mediaDevices.getDisplayMedia({ \n        video: true, // Necessário para alguns navegadores\n        audio: true\n      });\n      \n      // Remover a trilha de vídeo\n      const tabAudioTrack = tabStream.getAudioTracks()[0];\n      \n      // Solicitar acesso ao microfone\n      const micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n      const micAudioTrack = micStream.getAudioTracks()[0];\n      \n      // Criar um novo MediaStream com ambas as trilhas de áudio\n      combinedStream = new MediaStream([tabAudioTrack, micAudioTrack]);\n      \n      // Criar um contexto de áudio para misturar os streams\n      audioContext = new AudioContext();\n      const destination = audioContext.createMediaStreamDestination();\n      \n      // Conectar a trilha de áudio da guia\n      const tabSource = audioContext.createMediaStreamSource(new MediaStream([tabAudioTrack]));\n      tabSource.connect(destination);\n      \n      // Conectar a trilha de áudio do microfone\n      const micSource = audioContext.createMediaStreamSource(new MediaStream([micAudioTrack]));\n      micSource.connect(destination);\n      \n      // Iniciar gravação com o stream misturado\n      mediaRecorder = new MediaRecorder(destination.stream);\n      audioChunks = [];\n      mediaRecorder.ondataavailable = (e) => audioChunks.push(e.data);\n      mediaRecorder.start();\n      \n      console.log('Gravação iniciada. Chame meetingCaptureStop() para finalizar.');\n    } catch (error) {\n      console.error('Erro ao iniciar a captura:', error);\n    }\n  };\n  \n  window.meetingCaptureStop = function() {\n    return new Promise((resolve, reject) => {\n      if (!mediaRecorder) {\n        reject('Nenhuma gravação em andamento.');\n        return;\n      }\n      \n      mediaRecorder.onstop = () => {\n        const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });\n        combinedStream.getTracks().forEach(track => track.stop());\n        audioContext.close();\n        \n        resolve(audioBlob);\n        console.log('Gravação finalizada. O arquivo de áudio está pronto para upload.');\n      };\n      \n      mediaRecorder.stop();\n    });\n  };\n})();"}}},"component":"data2-core-web@Script"},{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCapture"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"meetingRecordStop":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}],"definition":{"params":{"actions":[{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCaptureStop"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"notify":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"private","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","parameters":{"title":{"params":{"component":"data2-core-primitives@String","index":{"component":"data2-core-primitives@Number","params":{"content":0}},"title":{"component":"data2-core-primitives@String","params":{"content":"title"}}},"component":"data2-core-types@ComponentParameter"},"sound":{"params":{"component":"data2-core-types@FileComponentUrlReference","index":{"component":"data2-core-primitives@Number","params":{"content":1}},"title":{"component":"data2-core-primitives@String","params":{"content":"sound"}}},"component":"data2-core-types@ComponentParameter"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}]},"component":"data2-core-types@ComponentParameter"}}},"component":"data2-core-types@FieldSet"}}},{"_id":"6a4a71ff648b62c072168f48","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"blogFeatured","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .hero{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;padding:56px 40px;background:#FFFEFB;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box;min-height:520px}\n    .left{display:flex;flex-direction:column;justify-content:center;gap:16px}\n    .pill{display:inline-block;padding:6px 14px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#FFFEFB;width:fit-content}\n    .title{font-size:46px;font-weight:700;line-height:1.12;margin:0;cursor:pointer;transition:color .2s}\n    .title:hover{color:#636E49}\n    .excerpt{font-size:17px;line-height:1.6;color:#4A4A4A;margin:0;max-width:560px}\n    .meta{display:flex;align-items:center;gap:10px;font-size:14px;color:#636E49;margin-top:8px;flex-wrap:wrap}\n    .avatar{width:36px;height:36px;border-radius:999px;background:#EBEBDE;display:flex;align-items:center;justify-content:center;font-weight:600;color:#636E49;font-size:13px}\n    .dot{width:3px;height:3px;background:#AFAFAF;border-radius:999px}\n    .cta{margin-top:12px;padding:12px 22px;background:#1C1C1C;color:#FFFEFB;border:0;border-radius:999px;font-weight:500;cursor:pointer;width:fit-content;font-size:15px;transition:background .15s}\n    .cta:hover{background:#636E49}\n    .cover{width:100%;height:100%;min-height:400px;border-radius:20px;background-size:cover;background-position:center;background-color:#EBEBDE}\n    .empty{padding:60px;color:#888;text-align:center}\n    @media (max-width:900px){.hero{grid-template-columns:1fr;padding:32px 20px}.title{font-size:32px}.cover{min-height:220px;order:-1}}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const authors = d2.data('blogauthorsDataSet')\n    if (posts.loading || cats.loading || authors.loading) return `<div class=\"empty\">Carregando…</div>`\n    const published = posts.records().filter(p => p.status === 'published').sort((a,b)=>new Date(b.publishedAt||0)-new Date(a.publishedAt||0))\n    const p = published[0]\n    if (!p) return `<div class=\"empty\">Nenhum post publicado ainda.</div>`\n    const cat = cats.records().find(c => c._id === p.categoryId) || {name:'Sem categoria', color:'#636E49'}\n    const author = authors.records().find(a => a._id === p.authorId) || {name:'—'}\n    const initials = (author.name||'').split(' ').map(s=>s[0]||'').slice(0,2).join('').toUpperCase() || '?'\n    const cover = p.coverImageUrl ? `background-image:url(${p.coverImageUrl})` : ''\n    return `<div class=\"hero\">\n      <div class=\"left\">\n        <span class=\"pill\" style=\"background:${cat.color||'#636E49'}\">${cat.name}</span>\n        <h1 class=\"title\" data-slug=\"${p.slug}\">${(p.title||'').replace(/</g,'&lt;')}</h1>\n        <p class=\"excerpt\">${(p.excerpt||'').replace(/</g,'&lt;')}</p>\n        <div class=\"meta\">\n          <div class=\"avatar\">${initials}</div>\n          <span>${(author.name||'').replace(/</g,'&lt;')}</span>\n          <span class=\"dot\"></span>\n          <span>${p.publishedAt ? d2.fmt.date(new Date(p.publishedAt)) : ''}</span>\n          <span class=\"dot\"></span>\n          <span>${p.readingMinutes||3} min</span>\n        </div>\n        <button class=\"cta\" data-slug=\"${p.slug}\">Ler artigo →</button>\n      </div>\n      <div class=\"cover\" style=\"${cover}\"></div>\n    </div>`\n  },\n  mounted(d2){\n    const go = (slug) => d2.router().goTo(`/post/${slug}`)\n    d2.on('.cta','click',(e,el)=>go(el.dataset.slug))\n    d2.on('.title','click',(e,el)=>go(el.dataset.slug))\n  },\n}"}}}}}}}},{"_id":"6a4a721b74078e31396f5c5a","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"blogGrid","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .wrap{padding:56px 40px 72px;background:#FFFEFB;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box}\n    .head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}\n    .head h2{font-size:32px;font-weight:700;margin:0;letter-spacing:-.01em}\n    .chips{display:flex;gap:8px;flex-wrap:wrap}\n    .chip{padding:8px 16px;border-radius:999px;background:#EBEBDE;color:#636E49;font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;font-family:inherit}\n    .chip:hover{background:#DCDCC7}\n    .chip[data-active]{background:#1C1C1C;color:#FFFEFB}\n    .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\n    @media (max-width:1080px){.grid{grid-template-columns:repeat(2,1fr)}}\n    @media (max-width:680px){.grid{grid-template-columns:1fr}.wrap{padding:32px 20px}.head h2{font-size:24px}}\n    .card{background:#FFFEFB;border:1px solid #EBEBDE;border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}\n    .card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(28,28,28,.08)}\n    .card .cover{height:200px;background-size:cover;background-position:center;background-color:#EBEBDE}\n    .card .body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}\n    .card .pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#FFFEFB;width:fit-content}\n    .card .title{font-size:19px;font-weight:600;line-height:1.3;margin:0;color:#1C1C1C}\n    .card .excerpt{font-size:14px;line-height:1.5;color:#5A5A5A;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n    .card .meta{display:flex;align-items:center;gap:6px;font-size:12px;color:#636E49;margin-top:6px}\n    .empty{padding:60px;text-align:center;color:#888;grid-column:1/-1}\n    .pager{display:flex;justify-content:center;gap:8px;margin-top:36px}\n    .pager button{padding:8px 14px;border:1px solid #EBEBDE;background:#FFFEFB;border-radius:8px;cursor:pointer;font:500 14px Inter,sans-serif;color:#1C1C1C}\n    .pager button[disabled]{opacity:.4;cursor:default}\n    .pager button[data-active]{background:#1C1C1C;color:#FFFEFB;border-color:#1C1C1C}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const authors = d2.data('blogauthorsDataSet')\n    if (posts.loading || cats.loading) return `<div class=\"wrap\"><div class=\"empty\">Carregando…</div></div>`\n    const active = d2.state.cat || 'all'\n    const page = d2.state.page || 0\n    const perPage = 6\n    const published = posts.records().filter(p => p.status === 'published').sort((a,b)=>new Date(b.publishedAt||0)-new Date(a.publishedAt||0))\n    const skipFirst = published.slice(1)\n    const filtered = active === 'all' ? skipFirst : skipFirst.filter(p => p.categoryId === active)\n    const total = filtered.length\n    const pageCount = Math.max(1, Math.ceil(total / perPage))\n    const shown = filtered.slice(page*perPage, (page+1)*perPage)\n    const catList = cats.records()\n    const authMap = Object.fromEntries(authors.records().map(a=>[a._id,a]))\n    const catMap = Object.fromEntries(catList.map(c=>[c._id,c]))\n    const chips = [`<div class=\"chip\" data-cat=\"all\" ${active==='all'?'data-active':''}>Todos</div>`]\n      .concat(catList.map(c => `<div class=\"chip\" data-cat=\"${c._id}\" ${active===c._id?'data-active':''}>${(c.name||'').replace(/</g,'&lt;')}</div>`))\n      .join('')\n    const cards = shown.length ? shown.map(p => {\n      const c = catMap[p.categoryId] || {name:'',color:'#636E49'}\n      const a = authMap[p.authorId] || {name:'—'}\n      const cover = p.coverImageUrl ? `background-image:url(${p.coverImageUrl})` : ''\n      return `<div class=\"card\" data-key=\"${p._id}\" data-slug=\"${p.slug}\">\n        <div class=\"cover\" style=\"${cover}\"></div>\n        <div class=\"body\">\n          <span class=\"pill\" style=\"background:${c.color||'#636E49'}\">${c.name}</span>\n          <h3 class=\"title\">${(p.title||'').replace(/</g,'&lt;')}</h3>\n          <p class=\"excerpt\">${(p.excerpt||'').replace(/</g,'&lt;')}</p>\n          <div class=\"meta\"><span>${(a.name||'').replace(/</g,'&lt;')}</span><span>·</span><span>${p.publishedAt?d2.fmt.date(new Date(p.publishedAt)):''}</span></div>\n        </div>\n      </div>`\n    }).join('') : `<div class=\"empty\">Nenhum post nessa categoria.</div>`\n    const pager = pageCount > 1 ? `<div class=\"pager\">\n      <button class=\"prev\" ${page===0?'disabled':''}>‹</button>\n      ${Array.from({length:pageCount},(_,i)=>`<button class=\"pg\" data-p=\"${i}\" ${i===page?'data-active':''}>${i+1}</button>`).join('')}\n      <button class=\"next\" ${page>=pageCount-1?'disabled':''}>›</button>\n    </div>` : ''\n    return `<div class=\"wrap\">\n      <div class=\"head\">\n        <h2>Últimas publicações</h2>\n        <div class=\"chips\">${chips}</div>\n      </div>\n      <div class=\"grid\">${cards}</div>\n      ${pager}\n    </div>`\n  },\n  mounted(d2){\n    d2.on('.chip','click',(e,el)=>{d2.state.cat = el.dataset.cat; d2.state.page = 0})\n    d2.on('.card','click',(e,el)=>d2.router().goTo(`/post/${el.dataset.slug}`))\n    d2.on('.pg','click',(e,el)=>{d2.state.page = +el.dataset.p})\n    d2.on('.prev','click',()=>{d2.state.page = Math.max(0,(d2.state.page||0)-1)})\n    d2.on('.next','click',()=>{d2.state.page = (d2.state.page||0)+1})\n  },\n}"}}}}}}}},{"_id":"6a4a722b15abd4cf55564fec","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"blogMentions","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .wrap{padding:64px 40px;background:#EBEBDE;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box}\n    .head{max-width:1200px;margin:0 auto 28px;text-align:center}\n    .kick{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#636E49;margin-bottom:8px}\n    .head h2{font-size:28px;font-weight:600;margin:0;letter-spacing:-.01em}\n    .row{display:flex;gap:20px;overflow-x:auto;padding:8px 4px 24px;scroll-behavior:smooth;max-width:1200px;margin:0 auto}\n    .row::-webkit-scrollbar{height:6px}\n    .row::-webkit-scrollbar-thumb{background:#C7C7B4;border-radius:6px}\n    .m{flex:0 0 280px;background:#FFFEFB;border-radius:14px;padding:22px;cursor:pointer;border:1px solid transparent;transition:border-color .15s,transform .2s;text-decoration:none;color:inherit;display:block}\n    .m:hover{border-color:#636E49;transform:translateY(-2px)}\n    .m .logo{width:80px;height:36px;background-size:contain;background-repeat:no-repeat;background-position:left center;margin-bottom:14px;filter:grayscale(1) contrast(.9);opacity:.85}\n    .m .outlet{font-size:11px;font-weight:600;color:#636E49;text-transform:uppercase;letter-spacing:.08em}\n    .m .title{font-size:15px;font-weight:500;line-height:1.4;margin:8px 0 0;color:#1C1C1C;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n    .empty{text-align:center;color:#888;padding:20px}\n    @media (max-width:680px){.wrap{padding:44px 20px}.head h2{font-size:22px}}\n  `,\n  render(d2){\n    const ds = d2.data('blogmentionsDataSet')\n    if (ds.loading) return `<div class=\"wrap\"><div class=\"empty\">Carregando…</div></div>`\n    const items = ds.records().slice().sort((a,b)=>new Date(b.publishedAt||0)-new Date(a.publishedAt||0))\n    const bodyCards = items.length ? items.map(m => `<a class=\"m\" data-key=\"${m._id}\" href=\"${m.url||'#'}\" target=\"_blank\" rel=\"noopener\">\n      <div class=\"logo\" style=\"background-image:url(${m.logoUrl||''})\"></div>\n      <div class=\"outlet\">${(m.outlet||'').replace(/</g,'&lt;')}</div>\n      <div class=\"title\">${(m.title||'').replace(/</g,'&lt;')}</div>\n    </a>`).join('') : `<div class=\"empty\" style=\"width:100%\">Nenhuma menção cadastrada.</div>`\n    return `<div class=\"wrap\">\n      <div class=\"head\"><div class=\"kick\">Na Mídia</div><h2>Onde já falaram da gente</h2></div>\n      <div class=\"row\">${bodyCards}</div>\n    </div>`\n  },\n}"}}}}}}}},{"_id":"6a4a728ab3d7277b0f2018be","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"blogPostRenderer","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .article{font-family:Inter,sans-serif;color:#1C1C1C;background:#FFFEFB;box-sizing:border-box;padding:0}\n    .hero{padding:60px 24px 40px;max-width:820px;margin:0 auto}\n    .pill{display:inline-block;padding:6px 14px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#FFFEFB}\n    .h1{font-size:44px;font-weight:700;line-height:1.15;margin:16px 0 12px;letter-spacing:-.01em}\n    .lead{font-size:19px;color:#5A5A5A;line-height:1.55;margin:0 0 24px}\n    .meta{display:flex;align-items:center;gap:12px;font-size:14px;color:#636E49;padding-bottom:24px;border-bottom:1px solid #EBEBDE}\n    .avatar{width:40px;height:40px;border-radius:999px;background:#EBEBDE;display:flex;align-items:center;justify-content:center;font-weight:600;color:#636E49;font-size:13px}\n    .dot{width:3px;height:3px;background:#AFAFAF;border-radius:999px}\n    .cover{width:100%;height:420px;background-size:cover;background-position:center;background-color:#EBEBDE;border-radius:16px;margin:8px 0 32px}\n    .md{max-width:720px;margin:0 auto;padding:16px 24px 80px;font-size:18px;line-height:1.75}\n    .md h1{font-size:34px;font-weight:700;margin:1.5em 0 .5em;line-height:1.2}\n    .md h2{font-size:26px;font-weight:700;margin:1.4em 0 .4em;letter-spacing:-.005em}\n    .md h3{font-size:20px;font-weight:600;margin:1.3em 0 .3em}\n    .md p{margin:0 0 1em}\n    .md a{color:#636E49;text-decoration:underline;text-underline-offset:3px}\n    .md strong{font-weight:700}\n    .md em{font-style:italic}\n    .md ul,.md ol{margin:0 0 1em;padding-left:1.5em}\n    .md li{margin:.3em 0}\n    .md code{background:#EBEBDE;padding:2px 6px;border-radius:4px;font-size:.9em;font-family:'JetBrains Mono',ui-monospace,monospace}\n    .md pre{background:#1C1C1C;color:#FFFEFB;padding:18px 20px;border-radius:10px;overflow:auto;margin:1.2em 0;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:14px;line-height:1.55}\n    .md pre code{background:transparent;color:inherit;padding:0}\n    .md blockquote{border-left:4px solid #636E49;padding:10px 22px;color:#5A5A5A;margin:1.4em 0;background:#FDFBF3;border-radius:0 8px 8px 0;font-style:italic}\n    .md img{max-width:100%;border-radius:10px;margin:1.2em 0}\n    .md hr{border:0;border-top:1px solid #EBEBDE;margin:2em 0}\n    .empty{padding:80px;color:#888;text-align:center}\n    .back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:0;color:#636E49;font-size:14px;cursor:pointer;font-family:inherit;margin-bottom:8px}\n    .back:hover{color:#1C1C1C}\n    @media (max-width:680px){.hero{padding:32px 20px 24px}.h1{font-size:30px}.lead{font-size:17px}.cover{height:220px;border-radius:10px}.md{padding:12px 20px 60px;font-size:16px}}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const authors = d2.data('blogauthorsDataSet')\n    if (posts.loading || cats.loading || authors.loading) return `<div class=\"empty\">Carregando…</div>`\n    const slug = d2.router().params?.slug\n    const p = posts.records().find(r => r.slug === slug && r.status === 'published')\n    if (!p) return `<div class=\"empty\">Post não encontrado.<br/><br/><button class=\"back\">← Voltar para o blog</button></div>`\n    const cat = cats.records().find(c => c._id === p.categoryId) || {name:'', color:'#636E49'}\n    const author = authors.records().find(a => a._id === p.authorId) || {name:'—'}\n    const initials = (author.name||'').split(' ').map(s=>s[0]||'').slice(0,2).join('').toUpperCase() || '?'\n    const cover = p.coverImageUrl ? `background-image:url(${p.coverImageUrl})` : ''\n    // markdown to html\n    const md = p.body || ''\n    const esc = s => s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')\n    const inl = t => t.replace(/`([^`]+)`/g,(m,c)=>`<code>${esc(c)}</code>`).replace(/\\*\\*([^*]+)\\*\\*/g,'<strong>$1</strong>').replace(/\\*([^*]+)\\*/g,'<em>$1</em>').replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g,'<a href=\"$2\" target=\"_blank\" rel=\"noopener\">$1</a>')\n    let html='', inList=null, inCode=false, buf=[]\n    const flush=()=>{ if(!buf.length) return; html+=`<p>${inl(buf.join(' '))}</p>`; buf=[] }\n    const closeList=()=>{ if(inList){html+=`</${inList}>`; inList=null} }\n    for (const line of md.split(/\\r?\\n/)) {\n      if (inCode) { if (line.trim().startsWith('```')){ html+='</code></pre>'; inCode=false } else html+=esc(line)+'\\n'; continue }\n      if (line.trim().startsWith('```')){ flush(); closeList(); html+='<pre><code>'; inCode=true; continue }\n      const h=line.match(/^(#{1,3})\\s+(.+)$/)\n      if (h){ flush(); closeList(); html+=`<h${h[1].length}>${esc(h[2])}</h${h[1].length}>`; continue }\n      const ul=line.match(/^\\s*[-*]\\s+(.+)$/), ol=line.match(/^\\s*\\d+\\.\\s+(.+)$/)\n      if (ul||ol){ flush(); const k=ul?'ul':'ol'; if(inList!==k){closeList(); html+=`<${k}>`; inList=k}\n        html+=`<li>${inl(esc(ul?ul[1]:ol[1]).replace(/&lt;code&gt;/g,'<code>').replace(/&lt;\\/code&gt;/g,'</code>'))}</li>`; continue }\n      const bq=line.match(/^>\\s?(.*)$/)\n      if (bq){ flush(); closeList(); html+=`<blockquote>${inl(esc(bq[1]))}</blockquote>`; continue }\n      if (line.trim()==='---'){ flush(); closeList(); html+='<hr/>'; continue }\n      if (!line.trim()){ flush(); closeList(); continue }\n      buf.push(esc(line))\n    }\n    flush(); closeList(); if (inCode) html+='</code></pre>'\n    return `<article class=\"article\">\n      <div class=\"hero\">\n        <button class=\"back\">← Voltar</button>\n        <span class=\"pill\" style=\"background:${cat.color||'#636E49'}\">${cat.name}</span>\n        <h1 class=\"h1\">${(p.title||'').replace(/</g,'&lt;')}</h1>\n        <p class=\"lead\">${(p.excerpt||'').replace(/</g,'&lt;')}</p>\n        <div class=\"meta\">\n          <div class=\"avatar\">${initials}</div>\n          <span><strong style=\"color:#1C1C1C\">${(author.name||'').replace(/</g,'&lt;')}</strong>${author.role?' — '+author.role.replace(/</g,'&lt;'):''}</span>\n          <span class=\"dot\"></span>\n          <span>${p.publishedAt?d2.fmt.date(new Date(p.publishedAt)):''}</span>\n          <span class=\"dot\"></span>\n          <span>${p.readingMinutes||3} min de leitura</span>\n        </div>\n      </div>\n      ${p.coverImageUrl ? `<div style=\"max-width:1080px;margin:0 auto;padding:0 24px\"><div class=\"cover\" style=\"${cover}\"></div></div>` : ''}\n      <div class=\"md\">${html}</div>\n    </article>`\n  },\n  mounted(d2){\n    d2.on('.back','click',()=>d2.router().goTo('/'))\n  },\n}"}}}}}}}},{"_id":"6a4a729bb3d7277b0f201926","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"blogRelated","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .wrap{padding:60px 40px 80px;background:#FDFBF3;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box}\n    .inner{max-width:1200px;margin:0 auto}\n    .head{margin-bottom:24px}\n    .kick{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#636E49;margin-bottom:6px}\n    .head h2{font-size:26px;font-weight:600;margin:0;letter-spacing:-.005em}\n    .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}\n    @media (max-width:900px){.grid{grid-template-columns:1fr}.wrap{padding:44px 20px}}\n    .card{background:#FFFEFB;border:1px solid #EBEBDE;border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s;display:flex;flex-direction:column}\n    .card:hover{transform:translateY(-3px)}\n    .cover{height:150px;background-size:cover;background-position:center;background-color:#EBEBDE}\n    .body{padding:16px;display:flex;flex-direction:column;gap:8px}\n    .pill{display:inline-block;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#FFFEFB;width:fit-content}\n    .title{font-size:16px;font-weight:600;line-height:1.3;margin:0}\n    .meta{font-size:12px;color:#636E49;margin-top:4px}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    if (posts.loading || cats.loading) return ``\n    const slug = d2.router().params?.slug\n    const current = posts.records().find(p => p.slug === slug)\n    if (!current) return ``\n    const related = posts.records().filter(p => p.status === 'published' && p.categoryId === current.categoryId && p.slug !== slug).slice(0,3)\n    if (!related.length) return ``\n    const catMap = Object.fromEntries(cats.records().map(c=>[c._id,c]))\n    const cards = related.map(p => {\n      const c = catMap[p.categoryId] || {name:'',color:'#636E49'}\n      const cover = p.coverImageUrl ? `background-image:url(${p.coverImageUrl})` : ''\n      return `<div class=\"card\" data-key=\"${p._id}\" data-slug=\"${p.slug}\">\n        <div class=\"cover\" style=\"${cover}\"></div>\n        <div class=\"body\">\n          <span class=\"pill\" style=\"background:${c.color||'#636E49'}\">${c.name}</span>\n          <h3 class=\"title\">${(p.title||'').replace(/</g,'&lt;')}</h3>\n          <div class=\"meta\">${p.publishedAt?d2.fmt.date(new Date(p.publishedAt)):''} · ${p.readingMinutes||3} min</div>\n        </div>\n      </div>`\n    }).join('')\n    return `<div class=\"wrap\"><div class=\"inner\">\n      <div class=\"head\"><div class=\"kick\">Continue lendo</div><h2>Também pode te interessar</h2></div>\n      <div class=\"grid\">${cards}</div>\n    </div></div>`\n  },\n  mounted(d2){\n    d2.on('.card','click',(e,el)=>d2.router().goTo(`/post/${el.dataset.slug}`))\n  },\n}"}}}}}}}},{"_id":"6a4a72bb56fff83c3be62171","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"cmsPostsTable","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .wrap{padding:32px;background:#FFFEFB;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box;min-height:100%}\n    .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap}\n    .head h1{font-size:28px;font-weight:700;margin:0}\n    .actions{display:flex;gap:8px}\n    .btn{padding:10px 18px;border-radius:8px;border:1px solid #EBEBDE;background:#FFFEFB;font:500 14px Inter,sans-serif;cursor:pointer;color:#1C1C1C}\n    .btn:hover{background:#EBEBDE}\n    .btn.primary{background:#1C1C1C;color:#FFFEFB;border-color:#1C1C1C}\n    .btn.primary:hover{background:#636E49;border-color:#636E49}\n    .filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}\n    .search{flex:1;min-width:200px;padding:10px 14px;border:1px solid #EBEBDE;border-radius:8px;font:400 14px Inter,sans-serif;background:#FFFEFB;color:#1C1C1C}\n    .search:focus{outline:none;border-color:#636E49}\n    .chip{padding:8px 14px;border-radius:999px;background:#EBEBDE;color:#636E49;font-size:13px;cursor:pointer;border:1px solid transparent}\n    .chip[data-active]{background:#1C1C1C;color:#FFFEFB}\n    table{width:100%;border-collapse:collapse;background:#FFFEFB;border:1px solid #EBEBDE;border-radius:12px;overflow:hidden}\n    th{text-align:left;padding:14px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#636E49;background:#FDFBF3;border-bottom:1px solid #EBEBDE}\n    td{padding:14px 16px;border-bottom:1px solid #EBEBDE;font-size:14px;vertical-align:middle}\n    tr:last-child td{border-bottom:0}\n    tr:hover td{background:#FDFBF3}\n    .stat{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}\n    .stat.published{background:#DFE7CE;color:#3F5029}\n    .stat.draft{background:#F4E6C1;color:#7B5A15}\n    .row-actions{display:flex;gap:6px;justify-content:flex-end}\n    .row-actions button{padding:6px 12px;font-size:12px;border:1px solid #EBEBDE;background:#fff;border-radius:6px;cursor:pointer;color:#1C1C1C}\n    .row-actions button:hover{background:#EBEBDE}\n    .row-actions button.danger{color:#B32020;border-color:#F4CFCF}\n    .row-actions button.danger:hover{background:#F9E1E1}\n    .empty{padding:60px;text-align:center;color:#888}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const authors = d2.data('blogauthorsDataSet')\n    if (posts.loading) return `<div class=\"wrap\"><div class=\"empty\">Carregando…</div></div>`\n    const q = (d2.state.q || '').toLowerCase()\n    const stat = d2.state.stat || 'all'\n    const catMap = Object.fromEntries(cats.records().map(c=>[c._id,c]))\n    const authMap = Object.fromEntries(authors.records().map(a=>[a._id,a]))\n    let rows = posts.records().slice().sort((a,b)=>new Date(b.publishedAt||0)-new Date(a.publishedAt||0))\n    if (stat !== 'all') rows = rows.filter(r => (r.status||'draft') === stat)\n    if (q) rows = rows.filter(r => (r.title||'').toLowerCase().includes(q))\n    const trs = rows.length ? rows.map(r => {\n      const c = catMap[r.categoryId] || {name:'—'}\n      const a = authMap[r.authorId] || {name:'—'}\n      const s = r.status || 'draft'\n      return `<tr data-key=\"${r._id}\">\n        <td><strong>${(r.title||'(sem título)').replace(/</g,'&lt;')}</strong><div style=\"font-size:12px;color:#888;margin-top:2px\">/${(r.slug||'').replace(/</g,'&lt;')}</div></td>\n        <td><span class=\"stat ${s}\">${s==='published'?'Publicado':'Rascunho'}</span></td>\n        <td>${(c.name||'').replace(/</g,'&lt;')}</td>\n        <td>${(a.name||'').replace(/</g,'&lt;')}</td>\n        <td>${r.publishedAt ? d2.fmt.date(new Date(r.publishedAt)) : '—'}</td>\n        <td><div class=\"row-actions\">\n          <button class=\"edit\" data-id=\"${r._id}\">Editar</button>\n          <button class=\"toggle\" data-id=\"${r._id}\">${s==='published'?'Despublicar':'Publicar'}</button>\n          <button class=\"danger del\" data-id=\"${r._id}\">Excluir</button>\n        </div></td>\n      </tr>`\n    }).join('') : `<tr><td colspan=\"6\"><div class=\"empty\">Nenhum post encontrado.</div></td></tr>`\n    return `<div class=\"wrap\">\n      <div class=\"head\">\n        <h1>Posts</h1>\n        <div class=\"actions\">\n          <button class=\"btn settings\">Configurações</button>\n          <button class=\"btn logout\">Sair</button>\n          <button class=\"btn primary new\">+ Novo post</button>\n        </div>\n      </div>\n      <div class=\"filters\">\n        <input class=\"search\" placeholder=\"Buscar por título…\" value=\"${(d2.state.q||'').replace(/\"/g,'&quot;')}\"/>\n        <div class=\"chip\" data-stat=\"all\" ${stat==='all'?'data-active':''}>Todos</div>\n        <div class=\"chip\" data-stat=\"published\" ${stat==='published'?'data-active':''}>Publicados</div>\n        <div class=\"chip\" data-stat=\"draft\" ${stat==='draft'?'data-active':''}>Rascunhos</div>\n      </div>\n      <table>\n        <thead><tr><th>Título</th><th>Status</th><th>Categoria</th><th>Autor</th><th>Publicado</th><th></th></tr></thead>\n        <tbody>${trs}</tbody>\n      </table>\n    </div>`\n  },\n  mounted(d2){\n    d2.on('.new','click',()=>d2.router().goTo('/editor'))\n    d2.on('.edit','click',(e,el)=>d2.router().goTo(`/editor/${el.dataset.id}`))\n    d2.on('.settings','click',()=>d2.router().goTo('/settings'))\n    d2.on('.search','input',(e,el)=>{d2.state.q = el.value})\n    d2.on('.chip','click',(e,el)=>{d2.state.stat = el.dataset.stat})\n    d2.on('.logout','click',async()=>{ try{ await d2.auth('blogAuth').logout() }catch(e){} d2.router().goTo('/login') })\n    d2.on('.toggle','click',async(e,el)=>{\n      const ds = d2.data('blogpostsDataSet')\n      const rec = ds.records().find(r=>r._id===el.dataset.id); if(!rec) return\n      const next = rec.status === 'published' ? 'draft' : 'published'\n      await ds.update({...rec, status: next, publishedAt: next==='published' && !rec.publishedAt ? new Date().toISOString() : rec.publishedAt})\n    })\n    d2.on('.del','click',async(e,el)=>{\n      const ok = await d2.dialog.confirm('Excluir este post?'); if(!ok) return\n      await d2.data('blogpostsDataSet').remove(el.dataset.id)\n    })\n  },\n}"}}}}}}}},{"_id":"6a4a72ff07dd4a652caae40c","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"cmsPostEditor","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .ed{display:grid;grid-template-columns:1fr 1fr;height:100%;font-family:Inter,sans-serif;color:#1C1C1C;background:#FFFEFB;box-sizing:border-box}\n    .form{padding:32px;overflow-y:auto;border-right:1px solid #EBEBDE;background:#FDFBF3}\n    .preview{padding:32px;overflow-y:auto;background:#FFFEFB}\n    .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:8px;flex-wrap:wrap}\n    .toolbar h1{font-size:22px;font-weight:700;margin:0;display:flex;align-items:center;gap:10px}\n    .toolbar .grp{display:flex;gap:8px}\n    .btn{padding:9px 15px;border-radius:8px;border:1px solid #EBEBDE;background:#FFFEFB;font:500 13px Inter,sans-serif;cursor:pointer;color:#1C1C1C}\n    .btn:hover{background:#EBEBDE}\n    .btn.primary{background:#1C1C1C;color:#FFFEFB;border-color:#1C1C1C}\n    .btn.primary:hover{background:#636E49;border-color:#636E49}\n    .btn.danger{color:#B32020;border-color:#F4CFCF}\n    .btn.danger:hover{background:#F9E1E1}\n    .field{margin-bottom:18px}\n    .field label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#636E49;margin-bottom:6px}\n    .field input,.field textarea,.field select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #EBEBDE;border-radius:8px;font:400 14px Inter,sans-serif;background:#FFFEFB;color:#1C1C1C}\n    .field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:#636E49}\n    .field textarea.body{min-height:340px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:14px;resize:vertical;line-height:1.55}\n    .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n    .drop{border:2px dashed #C7C7B4;border-radius:10px;padding:24px;text-align:center;color:#888;font-size:13px;cursor:pointer;transition:all .15s;background:#FFFEFB;position:relative}\n    .drop:hover,.drop[data-over]{border-color:#636E49;color:#636E49;background:#FDFBF3}\n    .drop.has{padding:0;height:150px;background-size:cover;background-position:center;border-style:solid;border-color:#EBEBDE;overflow:hidden}\n    .drop .clear{position:absolute;top:8px;right:8px;background:rgba(28,28,28,.8);color:#fff;border:0;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:11px;font-family:inherit}\n    .drop .fi{display:none}\n    .stat{display:inline-block;padding:3px 10px;border-radius:999px;font-size:10px;font-weight:600;text-transform:uppercase}\n    .stat.published{background:#DFE7CE;color:#3F5029}\n    .stat.draft{background:#F4E6C1;color:#7B5A15}\n    .previewLabel{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#636E49;margin-bottom:16px}\n    .previewCard{background:#FFFEFB;border-radius:14px;border:1px solid #EBEBDE;padding:28px;min-height:400px}\n    .previewCard .cover{width:100%;height:200px;background-size:cover;background-position:center;background-color:#EBEBDE;border-radius:10px;margin-bottom:20px}\n    .previewCard .pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:600;text-transform:uppercase;color:#FFFEFB}\n    .previewCard h1{font-size:30px;font-weight:700;margin:12px 0 8px;line-height:1.2;letter-spacing:-.005em}\n    .previewCard .pmeta{font-size:12px;color:#636E49;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #EBEBDE}\n    .md{font-size:15px;line-height:1.7;color:#1C1C1C}\n    .md h1{font-size:24px;margin:1.2em 0 .5em;font-weight:700}\n    .md h2{font-size:20px;margin:1.1em 0 .4em;font-weight:700}\n    .md h3{font-size:17px;margin:1em 0 .3em;font-weight:600}\n    .md p{margin:0 0 .9em}\n    .md ul,.md ol{margin:0 0 .9em;padding-left:1.4em}\n    .md li{margin:.25em 0}\n    .md code{background:#EBEBDE;padding:2px 6px;border-radius:4px;font-size:.9em}\n    .md pre{background:#1C1C1C;color:#FFFEFB;padding:12px;border-radius:8px;overflow:auto;font-size:13px}\n    .md pre code{background:transparent;padding:0;color:inherit}\n    .md a{color:#636E49}\n    .md blockquote{border-left:3px solid #636E49;padding:6px 16px;color:#5A5A5A;margin:1em 0;background:#FDFBF3}\n    @media (max-width:1000px){.ed{grid-template-columns:1fr}.preview{border-top:1px solid #EBEBDE;border-right:0}}\n  `,\n  render(d2){\n    const posts = d2.data('blogpostsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const authors = d2.data('blogauthorsDataSet')\n    if (posts.loading || cats.loading || authors.loading) return `<div style=\"padding:32px;color:#888;font-family:Inter,sans-serif\">Carregando…</div>`\n    const rid = d2.router().params?.id || null\n    if (d2.state.loadedId !== rid || !d2.state.form) {\n      d2.state.loadedId = rid\n      if (rid) {\n        const rec = posts.records().find(p => p._id === rid) || {}\n        d2.state.form = {\n          _id: rec._id || null,\n          title: rec.title || '', slug: rec.slug || '', excerpt: rec.excerpt || '',\n          body: rec.body || '', coverImageUrl: rec.coverImageUrl || '',\n          categoryId: rec.categoryId || (cats.records()[0]?._id || ''),\n          authorId: rec.authorId || (authors.records()[0]?._id || ''),\n          status: rec.status || 'draft', publishedAt: rec.publishedAt || null,\n          tags: rec.tags || [], readingMinutes: rec.readingMinutes || 0,\n        }\n        d2.state.slugTouched = !!rec.slug\n        d2.state.rmTouched = !!rec.readingMinutes\n      } else {\n        d2.state.form = {\n          _id: null, title:'', slug:'', excerpt:'', body:'', coverImageUrl:'',\n          categoryId: cats.records()[0]?._id || '',\n          authorId: authors.records()[0]?._id || '',\n          status:'draft', publishedAt:null, tags:[], readingMinutes:0,\n        }\n        d2.state.slugTouched = false\n        d2.state.rmTouched = false\n      }\n    }\n    const f = d2.state.form\n    const catOpts = cats.records().map(c => `<option value=\"${c._id}\" ${c._id===f.categoryId?'selected':''}>${(c.name||'').replace(/</g,'&lt;')}</option>`).join('')\n    const authOpts = authors.records().map(a => `<option value=\"${a._id}\" ${a._id===f.authorId?'selected':''}>${(a.name||'').replace(/</g,'&lt;')}</option>`).join('')\n    const cat = cats.records().find(c=>c._id===f.categoryId) || {name:'',color:'#636E49'}\n    const author = authors.records().find(a=>a._id===f.authorId) || {name:'—'}\n    // markdown preview\n    const md = f.body || ''\n    const esc = s => s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')\n    const inl = t => t.replace(/`([^`]+)`/g,(m,c)=>`<code>${esc(c)}</code>`).replace(/\\*\\*([^*]+)\\*\\*/g,'<strong>$1</strong>').replace(/\\*([^*]+)\\*/g,'<em>$1</em>').replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g,'<a href=\"$2\">$1</a>')\n    let html='', inList=null, inCode=false, buf=[]\n    const flush=()=>{ if(!buf.length) return; html+=`<p>${inl(buf.join(' '))}</p>`; buf=[] }\n    const closeList=()=>{ if(inList){html+=`</${inList}>`; inList=null} }\n    for (const line of md.split(/\\r?\\n/)) {\n      if (inCode) { if (line.trim().startsWith('```')){ html+='</code></pre>'; inCode=false } else html+=esc(line)+'\\n'; continue }\n      if (line.trim().startsWith('```')){ flush(); closeList(); html+='<pre><code>'; inCode=true; continue }\n      const h=line.match(/^(#{1,3})\\s+(.+)$/)\n      if (h){ flush(); closeList(); html+=`<h${h[1].length}>${esc(h[2])}</h${h[1].length}>`; continue }\n      const ul=line.match(/^\\s*[-*]\\s+(.+)$/), ol=line.match(/^\\s*\\d+\\.\\s+(.+)$/)\n      if (ul||ol){ flush(); const k=ul?'ul':'ol'; if(inList!==k){closeList(); html+=`<${k}>`; inList=k}\n        html+=`<li>${inl(esc(ul?ul[1]:ol[1]))}</li>`; continue }\n      const bq=line.match(/^>\\s?(.*)$/)\n      if (bq){ flush(); closeList(); html+=`<blockquote>${inl(esc(bq[1]))}</blockquote>`; continue }\n      if (!line.trim()){ flush(); closeList(); continue }\n      buf.push(esc(line))\n    }\n    flush(); closeList(); if (inCode) html+='</code></pre>'\n    return `<div class=\"ed\">\n      <div class=\"form\">\n        <div class=\"toolbar\">\n          <h1>${f._id ? 'Editar post' : 'Novo post'} <span class=\"stat ${f.status||'draft'}\">${(f.status||'draft')==='published'?'Publicado':'Rascunho'}</span></h1>\n          <div class=\"grp\">\n            <button class=\"btn back\">← Voltar</button>\n            <button class=\"btn save\">Salvar rascunho</button>\n            <button class=\"btn primary publish\">${(f.status)==='published'?'Atualizar':'Publicar'}</button>\n            ${f._id ? `<button class=\"btn danger del\">Excluir</button>`:''}\n          </div>\n        </div>\n        <div class=\"field\"><label>Título</label><input class=\"i\" data-k=\"title\" value=\"${(f.title||'').replace(/\"/g,'&quot;')}\" placeholder=\"Título do post\"/></div>\n        <div class=\"row\">\n          <div class=\"field\"><label>Slug (URL)</label><input class=\"i\" data-k=\"slug\" value=\"${(f.slug||'').replace(/\"/g,'&quot;')}\" placeholder=\"auto do título\"/></div>\n          <div class=\"field\"><label>Leitura (min)</label><input class=\"i\" type=\"number\" data-k=\"readingMinutes\" value=\"${f.readingMinutes||0}\"/></div>\n        </div>\n        <div class=\"field\"><label>Resumo</label><textarea class=\"i\" data-k=\"excerpt\" rows=\"3\" placeholder=\"1–2 linhas que aparecem nos cards\">${(f.excerpt||'').replace(/</g,'&lt;')}</textarea></div>\n        <div class=\"row\">\n          <div class=\"field\"><label>Categoria</label><select class=\"i\" data-k=\"categoryId\">${catOpts}</select></div>\n          <div class=\"field\"><label>Autor</label><select class=\"i\" data-k=\"authorId\">${authOpts}</select></div>\n        </div>\n        <div class=\"field\">\n          <label>Imagem de capa</label>\n          ${f.coverImageUrl\n            ? `<div class=\"drop has\" style=\"background-image:url(${f.coverImageUrl})\"><button class=\"clear\">Remover</button></div>`\n            : `<div class=\"drop\">Clique ou arraste uma imagem<input type=\"file\" accept=\"image/*\" class=\"fi\"/></div>`}\n        </div>\n        <div class=\"field\"><label>Conteúdo (Markdown)</label><textarea class=\"i body\" data-k=\"body\" placeholder=\"# Título&#10;&#10;Escreva em markdown…\">${(f.body||'').replace(/</g,'&lt;')}</textarea></div>\n      </div>\n      <div class=\"preview\">\n        <div class=\"previewLabel\">Prévia</div>\n        <div class=\"previewCard\">\n          ${f.coverImageUrl ? `<div class=\"cover\" style=\"background-image:url(${f.coverImageUrl})\"></div>` : ''}\n          <span class=\"pill\" style=\"background:${cat.color||'#636E49'}\">${(cat.name||'').replace(/</g,'&lt;')}</span>\n          <h1>${(f.title||'(sem título)').replace(/</g,'&lt;')}</h1>\n          <div class=\"pmeta\">${(author.name||'').replace(/</g,'&lt;')} · ${d2.fmt.date(new Date())} · ${f.readingMinutes||0} min</div>\n          <div class=\"md\">${html || '<p style=\"color:#888\">Prévia do conteúdo aparece aqui…</p>'}</div>\n        </div>\n      </div>\n    </div>`\n  },\n  mounted(d2){\n    const slugify = s => (s||'').toString().toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g,'').replace(/[^a-z0-9]+/g,'-').replace(/^-+|-+$/g,'').slice(0,80)\n    const setForm = (k,v) => { d2.state.form = {...d2.state.form, [k]: v} }\n    d2.on('.i','input',(e,el)=>{\n      const k = el.dataset.k\n      let v = el.value\n      if (k === 'readingMinutes') v = +v || 0\n      setForm(k, v)\n      if (k === 'title' && !d2.state.slugTouched) setForm('slug', slugify(v))\n      if (k === 'body' && !d2.state.rmTouched) {\n        const words = (v||'').split(/\\s+/).filter(Boolean).length\n        setForm('readingMinutes', Math.max(1, Math.ceil(words/200)))\n      }\n      if (k === 'slug') d2.state.slugTouched = true\n      if (k === 'readingMinutes') d2.state.rmTouched = true\n    })\n    d2.on('.i','change',(e,el)=>{ setForm(el.dataset.k, el.value) })\n    d2.on('.back','click',()=>d2.router().goTo('/'))\n    d2.on('.save','click',async()=>{\n      const f = d2.state.form\n      if(!f.title){ await d2.dialog.alert('Informe um título'); return }\n      const ds = d2.data('blogpostsDataSet')\n      const payload = {...f, slug: f.slug || slugify(f.title), status: 'draft'}\n      try {\n        if (f._id) {\n          await ds.update(payload)\n          await d2.dialog.alert('Rascunho salvo!')\n        } else {\n          const rec = await ds.create({...payload, _id: undefined})\n          d2.state.form = {...d2.state.form, _id: rec?._id || null, status:'draft'}\n          await d2.dialog.alert('Rascunho criado!')\n        }\n      } catch(err) { await d2.dialog.alert('Erro ao salvar: ' + (err?.message||err)) }\n    })\n    d2.on('.publish','click',async()=>{\n      const f = d2.state.form\n      if(!f.title){ await d2.dialog.alert('Informe um título'); return }\n      const ds = d2.data('blogpostsDataSet')\n      const payload = {...f, slug: f.slug || slugify(f.title), status:'published', publishedAt: f.publishedAt || new Date().toISOString()}\n      try {\n        if (f._id) await ds.update(payload)\n        else await ds.create({...payload, _id: undefined})\n        d2.router().goTo('/')\n      } catch(err) { await d2.dialog.alert('Erro ao publicar: ' + (err?.message||err)) }\n    })\n    d2.on('.del','click',async()=>{\n      if(!await d2.dialog.confirm('Excluir este post?')) return\n      try { await d2.data('blogpostsDataSet').remove(d2.state.form._id); d2.router().goTo('/') }\n      catch(err) { await d2.dialog.alert('Erro ao excluir: ' + (err?.message||err)) }\n    })\n    d2.on('.clear','click',()=>setForm('coverImageUrl',''))\n    const doUpload = async (files) => {\n      if (!files || !files.length) return\n      try {\n        const out = await d2.drive('blogDrive').uploadFromFiles(files)\n        const url = out?.[0]?.fileUrl\n        if (url) setForm('coverImageUrl', url)\n      } catch(err) { await d2.dialog.alert('Erro no upload: ' + (err?.message||err)) }\n    }\n    d2.on('.drop','click',(e,el)=>{ const inp = el.querySelector('.fi'); if(inp) inp.click() })\n    d2.on('.fi','change',(e,el)=>doUpload(el.files))\n    d2.on('.drop','dragover',(e,el)=>{ e.preventDefault(); el.setAttribute('data-over','') })\n    d2.on('.drop','dragleave',(e,el)=>{ el.removeAttribute('data-over') })\n    d2.on('.drop','drop',(e,el)=>{ e.preventDefault(); el.removeAttribute('data-over'); doUpload(e.dataTransfer?.files) })\n  },\n}"}}}}}}}},{"_id":"6a4a73296e519b36a6521bef","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"cmsSettings","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .wrap{padding:32px;background:#FFFEFB;font-family:Inter,sans-serif;color:#1C1C1C;box-sizing:border-box;min-height:100%}\n    .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}\n    .head h1{font-size:28px;font-weight:700;margin:0}\n    .btn{padding:9px 15px;border-radius:8px;border:1px solid #EBEBDE;background:#FFFEFB;font:500 13px Inter,sans-serif;cursor:pointer;color:#1C1C1C}\n    .btn:hover{background:#EBEBDE}\n    .btn.primary{background:#1C1C1C;color:#FFFEFB;border-color:#1C1C1C}\n    .btn.primary:hover{background:#636E49;border-color:#636E49}\n    .tabs{display:flex;gap:4px;border-bottom:1px solid #EBEBDE;margin-bottom:24px}\n    .tab{padding:12px 20px;font-size:14px;font-weight:500;color:#636E49;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}\n    .tab[data-active]{color:#1C1C1C;border-bottom-color:#1C1C1C}\n    .add{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:8px;padding:16px;background:#FDFBF3;border:1px solid #EBEBDE;border-radius:12px;margin-bottom:20px;align-items:center}\n    .add input{padding:9px 12px;border:1px solid #EBEBDE;border-radius:8px;font:400 13px Inter,sans-serif;background:#FFFEFB;color:#1C1C1C}\n    .add input:focus{outline:none;border-color:#636E49}\n    table{width:100%;border-collapse:collapse;border:1px solid #EBEBDE;border-radius:12px;overflow:hidden;background:#FFFEFB}\n    th{text-align:left;padding:12px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#636E49;background:#FDFBF3;border-bottom:1px solid #EBEBDE}\n    td{padding:12px 14px;border-bottom:1px solid #EBEBDE;font-size:14px;vertical-align:middle}\n    tr:last-child td{border-bottom:0}\n    tr:hover td{background:#FDFBF3}\n    .swatch{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;margin-right:8px}\n    .row-actions{display:flex;gap:6px;justify-content:flex-end}\n    .row-actions button{padding:5px 10px;font-size:12px;border:1px solid #EBEBDE;background:#fff;border-radius:6px;cursor:pointer;color:#1C1C1C}\n    .row-actions button:hover{background:#EBEBDE}\n    .row-actions button.danger{color:#B32020;border-color:#F4CFCF}\n    .row-actions button.danger:hover{background:#F9E1E1}\n    .empty{padding:40px;text-align:center;color:#888}\n    @media (max-width:900px){.add{grid-template-columns:1fr}}\n  `,\n  render(d2){\n    const authors = d2.data('blogauthorsDataSet')\n    const cats = d2.data('blogcategoriesDataSet')\n    const mentions = d2.data('blogmentionsDataSet')\n    if (authors.loading || cats.loading || mentions.loading) return `<div class=\"wrap\"><div class=\"empty\">Carregando…</div></div>`\n    const tab = d2.state.tab || 'authors'\n    let body = ''\n    if (tab === 'authors') {\n      const rows = authors.records()\n      const trs = rows.length ? rows.map(a => `<tr data-key=\"${a._id}\">\n        <td><strong>${(a.name||'').replace(/</g,'&lt;')}</strong></td>\n        <td>${(a.role||'').replace(/</g,'&lt;')}</td>\n        <td style=\"color:#5A5A5A;font-size:13px\">${(a.bio||'').replace(/</g,'&lt;')}</td>\n        <td><div class=\"row-actions\"><button class=\"danger delA\" data-id=\"${a._id}\">Excluir</button></div></td>\n      </tr>`).join('') : `<tr><td colspan=\"4\"><div class=\"empty\">Nenhum autor cadastrado.</div></td></tr>`\n      body = `<div class=\"add\">\n        <input class=\"a-name\" placeholder=\"Nome\"/>\n        <input class=\"a-role\" placeholder=\"Cargo\"/>\n        <input class=\"a-bio\" placeholder=\"Bio curta\"/>\n        <input class=\"a-avatar\" placeholder=\"URL avatar (opcional)\"/>\n        <button class=\"btn primary addA\">+ Adicionar</button>\n      </div>\n      <table><thead><tr><th>Nome</th><th>Cargo</th><th>Bio</th><th></th></tr></thead><tbody>${trs}</tbody></table>`\n    } else if (tab === 'categories') {\n      const rows = cats.records()\n      const trs = rows.length ? rows.map(c => `<tr data-key=\"${c._id}\">\n        <td><span class=\"swatch\" style=\"background:${c.color||'#636E49'}\"></span><strong>${(c.name||'').replace(/</g,'&lt;')}</strong></td>\n        <td><code style=\"background:#EBEBDE;padding:2px 6px;border-radius:4px;font-size:12px\">${(c.slug||'').replace(/</g,'&lt;')}</code></td>\n        <td style=\"color:#5A5A5A;font-size:13px\">${(c.description||'').replace(/</g,'&lt;')}</td>\n        <td><div class=\"row-actions\"><button class=\"danger delC\" data-id=\"${c._id}\">Excluir</button></div></td>\n      </tr>`).join('') : `<tr><td colspan=\"4\"><div class=\"empty\">Nenhuma categoria.</div></td></tr>`\n      body = `<div class=\"add\">\n        <input class=\"c-name\" placeholder=\"Nome (ex.: Artigo)\"/>\n        <input class=\"c-slug\" placeholder=\"slug-url\"/>\n        <input class=\"c-color\" placeholder=\"#636E49\" value=\"#636E49\"/>\n        <input class=\"c-desc\" placeholder=\"Descrição\"/>\n        <button class=\"btn primary addC\">+ Adicionar</button>\n      </div>\n      <table><thead><tr><th>Nome</th><th>Slug</th><th>Descrição</th><th></th></tr></thead><tbody>${trs}</tbody></table>`\n    } else {\n      const rows = mentions.records().slice().sort((a,b)=>new Date(b.publishedAt||0)-new Date(a.publishedAt||0))\n      const trs = rows.length ? rows.map(m => `<tr data-key=\"${m._id}\">\n        <td>${m.logoUrl ? `<img src=\"${m.logoUrl}\" alt=\"\" style=\"height:18px;vertical-align:middle;margin-right:8px;filter:grayscale(1)\"/>`:''}<strong>${(m.outlet||'').replace(/</g,'&lt;')}</strong></td>\n        <td style=\"color:#5A5A5A;font-size:13px\">${(m.title||'').replace(/</g,'&lt;')}</td>\n        <td>${m.publishedAt ? d2.fmt.date(new Date(m.publishedAt)) : '—'}</td>\n        <td><a href=\"${m.url||'#'}\" target=\"_blank\" rel=\"noopener\" style=\"color:#636E49;font-size:13px\">Abrir ↗</a></td>\n        <td><div class=\"row-actions\"><button class=\"danger delM\" data-id=\"${m._id}\">Excluir</button></div></td>\n      </tr>`).join('') : `<tr><td colspan=\"5\"><div class=\"empty\">Nenhuma menção.</div></td></tr>`\n      body = `<div class=\"add\">\n        <input class=\"m-outlet\" placeholder=\"Veículo (ex.: Exame)\"/>\n        <input class=\"m-title\" placeholder=\"Título da matéria\"/>\n        <input class=\"m-url\" placeholder=\"https://…\"/>\n        <input class=\"m-logo\" placeholder=\"URL do logo\"/>\n        <button class=\"btn primary addM\">+ Adicionar</button>\n      </div>\n      <table><thead><tr><th>Veículo</th><th>Título</th><th>Data</th><th>Link</th><th></th></tr></thead><tbody>${trs}</tbody></table>`\n    }\n    return `<div class=\"wrap\">\n      <div class=\"head\"><h1>Configurações</h1><button class=\"btn back\">← Voltar</button></div>\n      <div class=\"tabs\">\n        <div class=\"tab\" data-t=\"authors\" ${tab==='authors'?'data-active':''}>Autores</div>\n        <div class=\"tab\" data-t=\"categories\" ${tab==='categories'?'data-active':''}>Categorias</div>\n        <div class=\"tab\" data-t=\"mentions\" ${tab==='mentions'?'data-active':''}>Menções</div>\n      </div>\n      ${body}\n    </div>`\n  },\n  mounted(d2){\n    const $ = (s) => d2.$(s)\n    const val = (s) => ($(s)?.value || '').trim()\n    const slugify = s => (s||'').toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g,'').replace(/[^a-z0-9]+/g,'-').replace(/^-+|-+$/g,'')\n    d2.on('.tab','click',(e,el)=>{ d2.state.tab = el.dataset.t })\n    d2.on('.back','click',()=>d2.router().goTo('/'))\n    d2.on('.addA','click',async()=>{\n      const name = val('.a-name'); if(!name) return\n      await d2.data('blogauthorsDataSet').create({name, role: val('.a-role'), bio: val('.a-bio'), avatarUrl: val('.a-avatar')})\n      ;['.a-name','.a-role','.a-bio','.a-avatar'].forEach(s=>{ const el=$(s); if(el) el.value='' })\n    })\n    d2.on('.delA','click',async(e,el)=>{ if(!await d2.dialog.confirm('Excluir autor?')) return; await d2.data('blogauthorsDataSet').remove(el.dataset.id) })\n    d2.on('.addC','click',async()=>{\n      const name = val('.c-name'); if(!name) return\n      await d2.data('blogcategoriesDataSet').create({name, slug: val('.c-slug')||slugify(name), color: val('.c-color')||'#636E49', description: val('.c-desc')})\n      ;['.c-name','.c-slug','.c-desc'].forEach(s=>{ const el=$(s); if(el) el.value='' })\n      const co = $('.c-color'); if(co) co.value = '#636E49'\n    })\n    d2.on('.delC','click',async(e,el)=>{ if(!await d2.dialog.confirm('Excluir categoria?')) return; await d2.data('blogcategoriesDataSet').remove(el.dataset.id) })\n    d2.on('.addM','click',async()=>{\n      const outlet = val('.m-outlet'); if(!outlet) return\n      await d2.data('blogmentionsDataSet').create({outlet, title: val('.m-title'), url: val('.m-url'), logoUrl: val('.m-logo'), publishedAt: new Date().toISOString()})\n      ;['.m-outlet','.m-title','.m-url','.m-logo'].forEach(s=>{ const el=$(s); if(el) el.value='' })\n    })\n    d2.on('.delM','click',async(e,el)=>{ if(!await d2.dialog.confirm('Excluir menção?')) return; await d2.data('blogmentionsDataSet').remove(el.dataset.id) })\n  },\n}"}}}}}}}},{"_id":"6a4a734b89d66fea33a02d23","component":"data2-core-types@Component","system":"66476aae8c3737df2e4efc38","params":{"extends":"data2-core-primitives@Block","component":"cmsLogin","package":"babi-hera-demos","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    .page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(180deg,#EBEBDE 0%,#FFFEFB 100%);font-family:Inter,sans-serif;color:#1C1C1C;padding:32px;box-sizing:border-box}\n    .card{width:100%;max-width:420px;background:#FFFEFB;border-radius:20px;border:1px solid #EBEBDE;padding:40px 36px;box-shadow:0 20px 80px rgba(28,28,28,.08)}\n    .logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}\n    .logo .dot{width:34px;height:34px;background:#636E49;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#FFBF04;font-weight:800;font-size:18px}\n    .logo .name{font-size:18px;font-weight:700}\n    h1{font-size:26px;font-weight:700;margin:0 0 6px;letter-spacing:-.005em}\n    .sub{font-size:14px;color:#5A5A5A;margin:0 0 28px}\n    .field{margin-bottom:14px}\n    .field label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#636E49;margin-bottom:6px}\n    .field input{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #EBEBDE;border-radius:10px;font:400 15px Inter,sans-serif;background:#FFFEFB;color:#1C1C1C}\n    .field input:focus{outline:none;border-color:#636E49}\n    .btn{width:100%;padding:13px;border-radius:10px;border:0;background:#1C1C1C;color:#FFFEFB;font:500 15px Inter,sans-serif;cursor:pointer;margin-top:8px;transition:background .15s}\n    .btn:hover{background:#636E49}\n    .btn[disabled]{opacity:.5;cursor:default}\n    .btn.ghost{background:transparent;color:#636E49;margin-top:12px;border:1px solid #EBEBDE}\n    .btn.ghost:hover{background:#EBEBDE}\n    .err{background:#FCEDED;border:1px solid #F4CFCF;color:#B32020;padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:14px}\n    .toggle{margin-top:20px;text-align:center;font-size:13px;color:#5A5A5A}\n    .toggle a{color:#636E49;font-weight:600;text-decoration:none;cursor:pointer}\n    .toggle a:hover{text-decoration:underline}\n  `,\n  render(d2){\n    const mode = d2.state.mode || 'login'\n    const err = d2.state.err || ''\n    const busy = !!d2.state.busy\n    return `<div class=\"page\">\n      <div class=\"card\">\n        <div class=\"logo\"><div class=\"dot\">H</div><div class=\"name\">Hera CMS</div></div>\n        <h1>${mode==='login'?'Entrar no CMS':'Criar conta'}</h1>\n        <p class=\"sub\">${mode==='login'?'Acesso do time de marketing.':'Primeiro acesso? Cadastre seu email.'}</p>\n        ${err?`<div class=\"err\">${err.replace(/</g,'&lt;')}</div>`:''}\n        ${mode==='register'?`<div class=\"field\"><label>Nome</label><input class=\"i\" data-k=\"name\" placeholder=\"Seu nome\"/></div>`:''}\n        <div class=\"field\"><label>Email</label><input class=\"i\" data-k=\"email\" type=\"email\" placeholder=\"voce@empresa.com\" autocomplete=\"email\"/></div>\n        <div class=\"field\"><label>Senha</label><input class=\"i\" data-k=\"password\" type=\"password\" placeholder=\"••••••••\" autocomplete=\"${mode==='login'?'current-password':'new-password'}\"/></div>\n        <button class=\"btn primary submit\" ${busy?'disabled':''}>${busy?'…':(mode==='login'?'Entrar':'Cadastrar')}</button>\n        <div class=\"toggle\">\n          ${mode==='login'\n            ? `Primeiro acesso? <a class=\"switch\" data-m=\"register\">Criar conta</a>`\n            : `Já tem conta? <a class=\"switch\" data-m=\"login\">Entrar</a>`}\n        </div>\n      </div>\n    </div>`\n  },\n  mounted(d2){\n    if (!d2.state.form) d2.state.form = {email:'', password:'', name:''}\n    d2.on('.i','input',(e,el)=>{ d2.state.form = {...d2.state.form, [el.dataset.k]: el.value} })\n    d2.on('.switch','click',(e,el)=>{ d2.state.mode = el.dataset.m; d2.state.err = '' })\n    const submit = async () => {\n      const f = d2.state.form || {}\n      if (!f.email || !f.password) { d2.state.err = 'Preencha email e senha.'; return }\n      d2.state.err = ''; d2.state.busy = true\n      try {\n        const auth = d2.auth('blogAuth')\n        if ((d2.state.mode || 'login') === 'login') {\n          await auth.login({email: f.email, password: f.password})\n        } else {\n          await auth.register({email: f.email, password: f.password, name: f.name || ''})\n        }\n        d2.state.busy = false\n        d2.router().goTo('/')\n      } catch(err) {\n        d2.state.busy = false\n        d2.state.err = err?.message || 'Falha ao autenticar. Verifique email e senha.'\n      }\n    }\n    d2.on('.submit','click',submit)\n    d2.on('.i','keydown',(e)=>{ if(e.key==='Enter') submit() })\n  },\n}"}}}}}}}},{"_id":"5ed9bed7b9e0891ce913e884","component":"data2-core-types@Component","params":{"package":"data2-core","component":"DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"5f472ae463c680de4ff296e9","component":"data2-core-types@Component","params":{"package":"data2-core","component":"Data2TableDataSource","extends":"data2-core@DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}}]}},{"reference":"ExternalComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_id":"5f060d9b1ca96def42f3c40a","displayName":"Builder AuthStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"credentials":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"verifier":{"component":"data2-core-types@DataSetReference","params":{"reference":"UsersDataSet"}},"sessionShared":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"nR6Q9d7qdaPtZhJ28Q8Dy"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yPCJBTKo8q1Mw0B_3Kpwl"},"component":"data2-core-types@ArtboardReference"}}},"session":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"name"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"sessionMetadata":{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},{"params":{"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"active"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.status"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is active user"}]},"component":"data2-core-logical-operators@And","displayName":"is active and has _id"}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $user"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-primitives@String","params":{"content":"@data2.app"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}},"component":"data2-core-functions@Includes","displayName":"isData2User"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}},"component":"data2-core-flow@Step"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.d2_app"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"management"}}]},"component":"data2-core-functions@Includes","displayName":"isData2App Exception"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}},"component":"data2-core-flow@Step"},{"params":{"resultName":{"component":"data2-core-primitives@String","params":{"content":"has_access"}},"action":{"params":{"compare":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"actions":[{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $metadata.system"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":"filter","args":[{"_id":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records.length"}}}}},"component":"data2-core-logical-operators@Not","displayName":"systems not found"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check system found"},{"params":{"actions":[{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"organization":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"cursor.current.organization._id"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"}]},"component":"data2-core-flow@Parallel"}]},"component":"data2-core-flow@Series","displayName":"common setup"},{"params":{"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"compare":{"params":{"components":{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"mapper":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"system"}}],"body":{"params":{"expression":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.visibility"}}}},"defaultCase":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"public"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"billing-owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}},{"component":"data2-core-primitives@String","params":{"content":"member"}}]},"component":"data2-core-functions@Includes","displayName":"has role with access"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"collaborator"}}},"component":"data2-core-comparison-operators@Equal","displayName":"is collaborator"}]},"component":"data2-core-logical-operators@And","displayName":"is org member and collaborator"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is collaborator"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is collaborator and has system access"}]},"component":"data2-core-logical-operators@Or"}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"private"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}}]},"component":"data2-core-functions@Includes","displayName":"is owner/admin"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is owner/admin"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is member and has system access"}]},"component":"data2-core-logical-operators@Or","displayName":"is owner/admin or has system access"}}}]},"component":"data2-core-flow@Switch"}}}},"component":"data2-core-functions@ArrayMap"}},"component":"data2-core-logical-operators@And","displayName":"has org member for all systems in request"}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-flow@If"}},"component":"data2-core-flow@Step"},{"params":{"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"has_access"}}}}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"sessionExpiresIn":{"component":"data2-core-primitives@Number","params":{"content":604800}},"sessionRenewal":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"reference":"Data2BuilderAuthentication","updatedAt":"2025-10-28T02:48:49.233Z"},{"_id":"5f060ee51ca96def42f3fbd1","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"UsersTableDataSource"}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}}},"reference":"UsersDataSet","updatedAt":"2026-03-04T21:16:40.291Z"},{"_id":"68f938cf5fb002e33752a43d","displayName":"InternalApplicationsAuthenticationStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"InternalApplicationsVerifierDataSet"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"secret"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}],"session":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}]},"reference":"InternalApplicationsAuthenticationStrategy","updatedAt":"2025-10-22T20:08:54.442Z","createdAt":"2025-10-22T20:04:31.198Z"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"_id":"5f1600b70528b92601890f75","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ServiceComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ServiceComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:20.208Z","createdAt":"2020-07-20T20:38:15.436Z"},{"_id":"5f1602190528b92601890f7d","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":40000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentInstancesTableDataSource"}},"sort":{"_id":1},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:07.089Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"5f16017f0528b92601890f7a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"FileComponentInstancesDataSet","updatedAt":"2023-08-03T16:08:18.193Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"5f1601990528b92601890f7b","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ApplicationsTableDataSource"}},"pk":"_id","autoEdit":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"params":{"column":"_id"},"component":"data2-core-types@DataSetColumnReference"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"ApplicationsDataSet","updatedAt":"2022-12-13T21:51:13.995Z","createdAt":"2020-07-20T20:42:01.657Z"},{"_id":"5f16172a0528b92601890f85","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":10000}}},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"DataComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"DataComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:12.831Z","createdAt":"2020-07-20T22:14:02.097Z"},{"_id":"60ddc1bbda3861ca65407c5a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"pagination":{"size":1},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"}},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2022-02-09T19:44:38.036Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"63ee3d38b8c9838c62fb05fb","displayName":"DriveFileComponentInstancesDataSet","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core@Drive"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2025-12-04T21:58:32.367Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a4a750307dd4a652caae90b","component":"data2-core-primitives@Router","system":"66476aae8c3737df2e4efc38","displayName":"Public Blog Router","params":{"routerType":{"component":"data2-core-primitives@String","params":{"content":"browser"}},"routes":[{"component":"data2-core-primitives@Route","params":{"content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"e1mQV0-FInSDKMcF0b8xo"}},"path":{"component":"data2-core-primitives@String","params":{"content":"/"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/post/:slug","name":"Post","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"r8MeWt5FwKpB71CEvanIe"}}}}],"initialPath":{"component":"data2-core-primitives@String","params":{"content":"/"}}},"reference":"publicBlogRouter"},{"_id":"6a4a7386a0abd1615d7d2d15","component":"data2-core-primitives@Artboard","system":"66476aae8c3737df2e4efc38","displayName":"Blog - Post","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Blog - Post"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":2600}}},"reference":"r8MeWt5FwKpB71CEvanIe"},{"_id":"6a4a73816e519b36a6521c80","component":"data2-core-primitives@Artboard","system":"66476aae8c3737df2e4efc38","displayName":"Blog - Home","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Blog - Home"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":2600}}},"reference":"e1mQV0-FInSDKMcF0b8xo"},{"_id":"6bc43cd3a7d3b6234349c928","parent":"6a4a7386a0abd1615d7d2d15","component":"babi-hera-demos@blogRelated","system":"66476aae8c3737df2e4efc38","displayName":"RelatedPosts","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":1880,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":440}}}},"reference":"4EgWWTdvkclpyDWdQ_wYz"},{"_id":"6ef73d5c510afd64f4f92c69","parent":"6a4a7386a0abd1615d7d2d15","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Header","params":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":80}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}}}}]}}},"reference":"TN7ZBFrH14ki8nCa_SJKT"},{"_id":"79f5018c9fe597cc0efa13a0","parent":"6a4a7386a0abd1615d7d2d15","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Footer","params":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":2320,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":280}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}}}}]}}},"reference":"-PXy6DBjrDcDIjCdFunfO"},{"_id":"c862f874709515da82c01023","parent":"6a4a7386a0abd1615d7d2d15","component":"babi-hera-demos@blogPostRenderer","system":"66476aae8c3737df2e4efc38","displayName":"PostRenderer","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":80,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":1800}}}},"reference":"JRhaSIHnRynletZSqhzEO"},{"_id":"37a6699455bafdbf400c270c","parent":"6a4a73816e519b36a6521c80","component":"babi-hera-demos@blogFeatured","system":"66476aae8c3737df2e4efc38","displayName":"FeaturedPost","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":80,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":560}}}},"reference":"SRdykS8_YDVd4bejrmCPw"},{"_id":"7a42464a5b65118dd9006ee6","parent":"6a4a73816e519b36a6521c80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Footer","params":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":2280,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":320}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}}}}]}}},"reference":"7ajH5vb9K8RHi0KCrM2cM"},{"_id":"c61e45926b42e70c4351855d","parent":"6a4a73816e519b36a6521c80","component":"babi-hera-demos@blogMentions","system":"66476aae8c3737df2e4efc38","displayName":"Mentions","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":1880,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":400}}}},"reference":"7aLbpos6AXy1JPPfFI19Y"},{"_id":"e492b4b4e44ad3512d00065c","parent":"6a4a73816e519b36a6521c80","component":"babi-hera-demos@blogGrid","system":"66476aae8c3737df2e4efc38","displayName":"PostGrid","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":640,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":1240}}}},"reference":"C3od-BHmZOSFJZJuLrIIN"},{"_id":"f4b62cd0e33fd308a3903e80","parent":"6a4a73816e519b36a6521c80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Header","params":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":80}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}}}}]}},"border":{"component":"data2-core-types@Border","params":{"width":0,"radius":0}}},"reference":"93Iej--hmb1VYD6pwbdQ1"},{"_id":"a172da910d6ebeaa89e173d1","parent":"6ef73d5c510afd64f4f92c69","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"LogoDot","params":{"position":{"component":"data2-core-types@Position","params":{"x":40,"y":22,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":36,"height":36}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#636E49"}}}}]}},"border":{"component":"data2-core-types@Border","params":{"radius":10}},"text":"H","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":18,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":800}},"textFormat":{"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","verticalAlignment":"middle"}}},"index":0,"reference":"pMpK5P0vbaE__brs8-MfG"},{"_id":"d5d87304ffdd49228e53a367","parent":"6ef73d5c510afd64f4f92c69","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Subscribe","params":{"position":{"component":"data2-core-types@Position","params":{"x":1250,"y":20,"freeTransform":true,"left":false,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":150,"height":40}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}}}}]}},"border":{"component":"data2-core-types@Border","params":{"radius":999}},"text":"Inscreva-se","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":500}},"textFormat":{"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","verticalAlignment":"middle"}}},"index":0,"reference":"Qxarpgf7bHTAOpdw77cp3"},{"_id":"a16be9231b287c048f0cb662","parent":"6ef73d5c510afd64f4f92c69","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"NavAbout","params":{"position":{"component":"data2-core-types@Position","params":{"x":1140,"y":30,"freeTransform":true,"left":false,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":80,"height":20}},"text":"Sobre","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#636E49"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":500}}},"index":1,"reference":"petcI45WtBhwB-L163Tzw"},{"_id":"d581700dcaf9b12da2526932","parent":"6ef73d5c510afd64f4f92c69","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"LogoName","params":{"position":{"component":"data2-core-types@Position","params":{"x":88,"y":28,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":140,"height":24}},"text":"Hera Blog","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}},"textSize":17,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":700}}},"index":1,"reference":"TM7_4fRWA3x8QdLGJD5Lg"},{"_id":"061c49426d9254c01798fc6c","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout3","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":122,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Trabalhe conosco","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"DRpo8KmUVrnr6Rrgb9uS6"},{"_id":"3b05d0a695e6106e70030d0d","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial1","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":70,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"LinkedIn","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"-EaCNLN_YgUuIz7d2JfPC"},{"_id":"ba2744ac3ae7cffe708b8dc8","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial2","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":96,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Instagram","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"OU7NCjGhG0MGPfMcJEKv3"},{"_id":"d87beea69bc2f19645d13cfc","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes3","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":122,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Código de conduta","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"_7mzbtbEygz5saiKNAleu"},{"_id":"d9f6ffab2c57e457107157e3","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocialH","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":40,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"SIGA A GENTE","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":0,"reference":"SIb80B1yMOuLx9zQo_yNf"},{"_id":"ed51181b32e82fedc34f51be","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterTagline","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":84,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":400,"height":60}},"text":"Reflexões sobre gente, mercado e tecnologia — pelo time da Hera.","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#A6A88A"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"MthiIklhKkfEdO0QCc05U"},{"_id":"f9451e717a9a0c35beca6762","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout1","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":70,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Quem somos","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"KuW-OMiz-cUaDAi6QZ2Sa"},{"_id":"094ac0f0f71b7b856a175fc7","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterLogo","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":40,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":40}},"text":"Hera Blog","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}},"textSize":20,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":700}}},"index":1,"reference":"-xxmppKLINBsGD1KORGKC"},{"_id":"35598acf6caa55c23cdaa558","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterCopy","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":222,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":600,"height":20}},"text":"© 2026 Hera. Todos os direitos reservados.","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#A6A88A"}},"textSize":12,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"-q_-xhO71iVn-BIhyYJaF"},{"_id":"9032a4c09ea2372dabf35a92","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterResH","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":40,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"RECURSOS","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":1,"reference":"kPcJXHu70U6UYv_CHOJYX"},{"_id":"938435c77763f47d781ba464","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial3","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":122,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"YouTube","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"MEWUZReVT3iFqKOcpY1Vh"},{"_id":"b81ae9aef1d07b5fc32a41e8","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout2","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":96,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Manifesto","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"z7D2QZoN5cwHrwb6PSf4D"},{"_id":"c1ffeb0f4b51269437c3c54e","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAboutH","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":40,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"SOBRE NÓS","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":1,"reference":"53MK76cTgy1Jemjy8_5qO"},{"_id":"e48bd6085410fc6144c99945","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterDivider","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":200,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1320,"height":1}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#3A3A3A"}}}}]}}},"index":1,"reference":"By07XtXjADozcIRfBHpWP"},{"_id":"f84d64f0bfe3bce4e4c52fe9","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes1","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":70,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Privacidade","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"j1lIlZwQwDbcdO_Q3fK4B"},{"_id":"cc2169ae1bdd9246a13b4879","parent":"79f5018c9fe597cc0efa13a0","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes2","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":96,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Termos","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":2,"reference":"ZM1up_CB-AABPIm5F-dSY"},{"_id":"dc7ab717f7df076975e12152","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial3","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":142,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"YouTube","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":0,"reference":"DRci7GTUm4zo_YchGQexf"},{"_id":"0bfae78d4f0646e1d0966e32","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocialH","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":60,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"SIGA A GENTE","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":1,"reference":"snZkEnKET82dECYzf_8KV"},{"_id":"3e177d702f87bcf18a2a2c5d","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes2","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":116,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Termos","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"EDDnn3t2xBLzDyfxWfoxL"},{"_id":"4178dc4f952601ed174502e4","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout2","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":116,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Manifesto","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"eSNwyqi3EpnK20ibQ0EWL"},{"_id":"768c68312d7f0eabb19e6b4e","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes1","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":90,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Privacidade","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"UXJT1jLCTuXQpQdRXHQkp"},{"_id":"81492f7b90c7699e57eb4f0f","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout1","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":90,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Quem somos","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"x23gSf8_-cZFkRclsTB_z"},{"_id":"9c82c9ea8ded80089d675c01","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAbout3","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":142,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Trabalhe conosco","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"4bSfyy5yacCvK5swI05DV"},{"_id":"a1e33abc36ed5d051437ab80","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterLogo","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":60,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":40}},"text":"Hera Blog","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}},"textSize":20,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":700}}},"index":1,"reference":"9bfNNhvSocefLkSMNRcOl"},{"_id":"c7e03535608a652cdee368ee","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterResH","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":60,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"RECURSOS","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":1,"reference":"-pKBwVMPwRJOgyaMXGUnv"},{"_id":"cca0179412e7da7904ed0ba5","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterRes3","params":{"position":{"component":"data2-core-types@Position","params":{"x":900,"y":142,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Código de conduta","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"yzDqXLrau_lMmqyuY6y2Q"},{"_id":"cfaa9d22e51c20fa98c9b724","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterCopy","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":262,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":600,"height":20}},"text":"© 2026 Hera. Todos os direitos reservados.","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#A6A88A"}},"textSize":12,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"iRl6pyrKWS-i9qoEtIp7Z"},{"_id":"e1a38870628c7321bc5c88e0","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial1","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":90,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"LinkedIn","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"f3ou2QQPxQ3pN_jd6ZFsq"},{"_id":"e371011e0092e7e988cd7cef","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterDivider","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":240,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1320,"height":1}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#3A3A3A"}}}}]}}},"index":1,"reference":"fb92wmwmgIdkO1nxmH4QT"},{"_id":"e566d2d3ce2d0fe07c5676be","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterSocial2","params":{"position":{"component":"data2-core-types@Position","params":{"x":1100,"y":116,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":180,"height":20}},"text":"Instagram","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#EBEBDE"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":1,"reference":"0XD_1nSsXIQpuIUD_yj6S"},{"_id":"0fa467c63afc98450c6586bb","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterTagline","params":{"position":{"component":"data2-core-types@Position","params":{"x":60,"y":108,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":400,"height":60}},"text":"Reflexões sobre gente, mercado e tecnologia — pelo time da Hera.","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#A6A88A"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":400}}},"index":2,"reference":"KboHK366kiJEQMBvznili"},{"_id":"ec4969ccf41698231cc25ecc","parent":"7a42464a5b65118dd9006ee6","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"FooterAboutH","params":{"position":{"component":"data2-core-types@Position","params":{"x":700,"y":60,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":200,"height":20}},"text":"SOBRE NÓS","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textSize":11,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":600}}},"index":2,"reference":"TfcYR539KJdKo4rphGpux"},{"_id":"1e9015045b1b0eb243a5978f","parent":"f4b62cd0e33fd308a3903e80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"LogoName","params":{"position":{"component":"data2-core-types@Position","params":{"x":88,"y":28,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":140,"height":24}},"text":"Hera Blog","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}},"textSize":17,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":700}}},"index":1,"reference":"OYnYV7chKmY6tvpkJdCAP"},{"_id":"5931f6e9640d896096a4086d","parent":"f4b62cd0e33fd308a3903e80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"NavAbout","params":{"position":{"component":"data2-core-types@Position","params":{"x":1140,"y":30,"freeTransform":true,"left":false,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":80,"height":20}},"text":"Sobre","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#636E49"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":500}}},"index":1,"reference":"4nygehWQoWJ038lOCOcY6"},{"_id":"e02c01481b65df9745f54c19","parent":"f4b62cd0e33fd308a3903e80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"Subscribe","params":{"position":{"component":"data2-core-types@Position","params":{"x":1250,"y":20,"freeTransform":true,"left":false,"right":true,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":150,"height":40}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#1C1C1C"}}}}]}},"border":{"component":"data2-core-types@Border","params":{"radius":999}},"text":"Inscreva-se","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFFEFB"}},"textSize":14,"font":{"component":"data2-core-web@GoogleFont","params":{"family":"Inter","weight":500}},"textFormat":{"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","verticalAlignment":"middle"}}},"index":1,"reference":"pj3NciATZgDOMGh1kRc99"},{"_id":"3598ca99a29f8cf41bc78bba","parent":"f4b62cd0e33fd308a3903e80","component":"data2-core-primitives@Block","system":"66476aae8c3737df2e4efc38","displayName":"LogoDot","params":{"position":{"component":"data2-core-types@Position","params":{"x":40,"y":22,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":36,"height":36}},"fill":{"component":"data2-core-types@Fill","params":{"backgrounds":[{"component":"data2-core-types@Background","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"#636E49"}}}}]}},"border":{"component":"data2-core-types@Border","params":{"radius":10}},"text":"H","textColor":{"component":"data2-core-types@Color","params":{"rgba":"#FFBF04"}},"textFormat":{"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","verticalAlignment":"middle"}},"textSize":18,"font":{"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Inter"}}},"reference":"0nTV5JVo4DJKWFcy3tVX3"}]}},{"_id":"5fc4faeec8da12be8bf3d08a","component":"data2-core@Data2TableDataSource","system":"5e3b796d6228227ca637d0f4","params":{"paginate":{"default":1000},"super":{},"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"fileId"}},"title":"File ID","component":"data2-core-primitives@ObjectId"},"break":true}],"hooks":{"before":{"all":[{"hook":"softDelete"}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"timestamp","options":{"fields":["createdAt","updatedAt"]}}],"update":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}],"patch":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}]},"after":{"all":[{"hook":"fileUrl","options":{"downloadField":"params.fileUrl","uploadField":"params.uploadFileUrl","enhanceSchema":false}}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"update":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"patch":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"remove":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}]}},"multi":["create"],"useEstimatedDocumentCount":true},"reference":"FileComponentInstancesTableDataSource","updatedAt":"2022-12-19T20:42:51.837Z","createdAt":"2020-11-30T13:59:52.294Z"},{"reference":"ApplicationsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a4a751156fff83c3be62694","displayName":"Hera Blog","reference":"URPpdOgxnfyXVrzIxA628","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"hera-blog"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Router","reference":"publicBlogRouter"}}},"system":"66476aae8c3737df2e4efc38","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a4a706008850cd753ebe2d6","component":"data2-core@DataSet","system":"66476aae8c3737df2e4efc38","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"blogposts"}}},"reference":"blogpostsDataSet"},{"_id":"6a4a706f803c84e091197ede","component":"data2-core@DataSet","system":"66476aae8c3737df2e4efc38","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"blogcategories"}}},"reference":"blogcategoriesDataSet"},{"_id":"6a4a706707dd4a652caade5a","component":"data2-core@DataSet","system":"66476aae8c3737df2e4efc38","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"blogauthors"}}},"reference":"blogauthorsDataSet"},{"_id":"6a4a7077648b62c072168bab","component":"data2-core@DataSet","system":"66476aae8c3737df2e4efc38","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"blogmentions"}}},"reference":"blogmentionsDataSet"},{"_id":"6a4a70cd803c84e091197f7c","component":"data2-core@AuthenticationStrategy","system":"66476aae8c3737df2e4efc38","params":{"credentials":[{"key":"email"},{"key":"password"}]},"reference":"blogAuth"},{"_id":"6a4a706056fff83c3be61bce","component":"data2-core@Data2TableDataSource","system":"66476aae8c3737df2e4efc38","params":{"table":"blogposts","schema":[{"component":"data2-core-types@Field","params":{"key":"title","title":"Title","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"slug","title":"Slug","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"excerpt","title":"Excerpt","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"body","title":"Body (Markdown)","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"coverImageUrl","title":"Cover image URL","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"categoryId","title":"Category ID","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"authorId","title":"Author ID","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"status","title":"Status","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"publishedAt","title":"Published at","component":"data2-core-primitives@Date"}},{"component":"data2-core-types@Field","params":{"key":"readingMinutes","title":"Reading minutes","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"tags","title":"Tags","component":"data2-core-primitives@Array"}}]},"reference":"blogposts"},{"_id":"6a4a706f803c84e091197ed9","component":"data2-core@Data2TableDataSource","system":"66476aae8c3737df2e4efc38","params":{"table":"blogcategories","schema":[{"component":"data2-core-types@Field","params":{"key":"name","title":"Name","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"slug","title":"Slug","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"color","title":"Color (hex)","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"description","title":"Description","component":"data2-core-primitives@String"}}]},"reference":"blogcategories"},{"_id":"6a4a706708850cd753ebe2e3","component":"data2-core@Data2TableDataSource","system":"66476aae8c3737df2e4efc38","params":{"table":"blogauthors","schema":[{"component":"data2-core-types@Field","params":{"key":"name","title":"Name","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"role","title":"Role","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"avatarUrl","title":"Avatar URL","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"bio","title":"Bio","component":"data2-core-primitives@String"}}]},"reference":"blogauthors"},{"_id":"6a4a7077803c84e091197eed","component":"data2-core@Data2TableDataSource","system":"66476aae8c3737df2e4efc38","params":{"table":"blogmentions","schema":[{"component":"data2-core-types@Field","params":{"key":"outlet","title":"Outlet","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"title","title":"Title","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"url","title":"URL","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"logoUrl","title":"Logo URL","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"publishedAt","title":"Published at","component":"data2-core-primitives@Date"}}]},"reference":"blogmentions"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}