@powerhousedao/design-system 6.0.0-dev.235 → 6.0.0-dev.236

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/{button-C8doazjv.d.ts → button-DIE3LLBZ.d.ts} +1 -1
  2. package/dist/{button-C8doazjv.d.ts.map → button-DIE3LLBZ.d.ts.map} +1 -1
  3. package/dist/{character-counter-BWoglM2P.d.ts → character-counter-BZ-4xC7Q.d.ts} +1 -1
  4. package/dist/{character-counter-BWoglM2P.d.ts.map → character-counter-BZ-4xC7Q.d.ts.map} +1 -1
  5. package/dist/{checkbox-D9rmZ1dJ.d.ts → checkbox-BgS8z46p.d.ts} +3 -3
  6. package/dist/{checkbox-D9rmZ1dJ.d.ts.map → checkbox-BgS8z46p.d.ts.map} +1 -1
  7. package/dist/{checkbox-base-CZo-4eL0.d.ts → checkbox-base-Bh08IVG2.d.ts} +1 -1
  8. package/dist/{checkbox-base-CZo-4eL0.d.ts.map → checkbox-base-Bh08IVG2.d.ts.map} +1 -1
  9. package/dist/{command-DrrnJuvu.d.ts → command-EVLVv94t.d.ts} +8 -8
  10. package/dist/{command-DrrnJuvu.d.ts.map → command-EVLVv94t.d.ts.map} +1 -1
  11. package/dist/connect/index.d.ts +1266 -3
  12. package/dist/connect/index.d.ts.map +1 -0
  13. package/dist/connect/index.js +8193 -2
  14. package/dist/connect/index.js.map +1 -0
  15. package/dist/{content-DJVuhrPq.d.ts → content-ZWaCzypo.d.ts} +2 -2
  16. package/dist/{content-DJVuhrPq.d.ts.map → content-ZWaCzypo.d.ts.map} +1 -1
  17. package/dist/{enum-field-C-HqOUUb.d.ts → enum-field-CU6jo1T9.d.ts} +4 -4
  18. package/dist/{enum-field-C-HqOUUb.d.ts.map → enum-field-CU6jo1T9.d.ts.map} +1 -1
  19. package/dist/{form-CKRKn0TQ.d.ts → form-6Lmx7pU_.d.ts} +1 -1
  20. package/dist/{form-CKRKn0TQ.d.ts.map → form-6Lmx7pU_.d.ts.map} +1 -1
  21. package/dist/{form-description-CYkcMEzm.d.ts → form-description-Bsurk7mm.d.ts} +1 -1
  22. package/dist/{form-description-CYkcMEzm.d.ts.map → form-description-Bsurk7mm.d.ts.map} +1 -1
  23. package/dist/{form-group-C8kL6pdZ.d.ts → form-group-B092xF-f.d.ts} +1 -1
  24. package/dist/form-group-B092xF-f.d.ts.map +1 -0
  25. package/dist/{form-label-b6nQi0XO.d.ts → form-label-CURXUfpb.d.ts} +1 -1
  26. package/dist/{form-label-b6nQi0XO.d.ts.map → form-label-CURXUfpb.d.ts.map} +1 -1
  27. package/dist/{form-message-Dq72nBXz.d.ts → form-message-BeAVBzjc.d.ts} +1 -1
  28. package/dist/{form-message-Dq72nBXz.d.ts.map → form-message-BeAVBzjc.d.ts.map} +1 -1
  29. package/dist/{form-server-error-message-DXbaiTfF.d.ts → form-server-error-message-CbKMtocn.d.ts} +1 -1
  30. package/dist/{form-server-error-message-DXbaiTfF.d.ts.map → form-server-error-message-CbKMtocn.d.ts.map} +1 -1
  31. package/dist/{id-autocomplete-D_0Y3vO6.d.ts → id-autocomplete-DGTfhFRw.d.ts} +2 -2
  32. package/dist/{id-autocomplete-D_0Y3vO6.d.ts.map → id-autocomplete-DGTfhFRw.d.ts.map} +1 -1
  33. package/dist/{id-autocomplete-input-container-BBPnEQKE.d.ts → id-autocomplete-input-container-DefHskQg.d.ts} +2 -2
  34. package/dist/{id-autocomplete-input-container-BBPnEQKE.d.ts.map → id-autocomplete-input-container-DefHskQg.d.ts.map} +1 -1
  35. package/dist/{id-autocomplete-list-yagWAecF.d.ts → id-autocomplete-list-C5uiH5nJ.d.ts} +2 -2
  36. package/dist/{id-autocomplete-list-yagWAecF.d.ts.map → id-autocomplete-list-C5uiH5nJ.d.ts.map} +1 -1
  37. package/dist/{id-autocomplete-list-option-BtGmT-PL.d.ts → id-autocomplete-list-option-CyF3v8IB.d.ts} +2 -2
  38. package/dist/{id-autocomplete-list-option-BtGmT-PL.d.ts.map → id-autocomplete-list-option-CyF3v8IB.d.ts.map} +1 -1
  39. package/dist/{index-C8XGTcEE.d.ts → index-DoFR9kRM.d.ts} +4 -67
  40. package/dist/index-DoFR9kRM.d.ts.map +1 -0
  41. package/dist/index.d.ts +3 -3
  42. package/dist/{input-BpEQjaWV.d.ts → input-BMf1G8BP.d.ts} +1 -1
  43. package/dist/{input-BpEQjaWV.d.ts.map → input-BMf1G8BP.d.ts.map} +1 -1
  44. package/dist/{json-viewer-DaTgmzkS.d.ts → json-viewer-DD7b-PP2.d.ts} +1 -1
  45. package/dist/{json-viewer-DaTgmzkS.d.ts.map → json-viewer-DD7b-PP2.d.ts.map} +1 -1
  46. package/dist/{message-list-C4mPpBBa.d.ts → message-list-DDi6OrSM.d.ts} +2 -2
  47. package/dist/{message-list-C4mPpBBa.d.ts.map → message-list-DDi6OrSM.d.ts.map} +1 -1
  48. package/dist/{popover-XSBOuSih.d.ts → popover-BXlVJZZW.d.ts} +1 -1
  49. package/dist/{popover-XSBOuSih.d.ts.map → popover-BXlVJZZW.d.ts.map} +1 -1
  50. package/dist/{radio-eL0Oy86J.d.ts → radio-YzIhzpRk.d.ts} +1 -1
  51. package/dist/{radio-eL0Oy86J.d.ts.map → radio-YzIhzpRk.d.ts.map} +1 -1
  52. package/dist/{radio-group-Bkli6nUz.d.ts → radio-group-D2NSfihe.d.ts} +1 -1
  53. package/dist/{radio-group-Bkli6nUz.d.ts.map → radio-group-D2NSfihe.d.ts.map} +1 -1
  54. package/dist/{radio-group-field-CvEiKxgz.d.ts → radio-group-field-maxYxQ6A.d.ts} +2 -2
  55. package/dist/{radio-group-field-CvEiKxgz.d.ts.map → radio-group-field-maxYxQ6A.d.ts.map} +1 -1
  56. package/dist/{search-autocomplete-BJJkrZ1i.d.ts → search-autocomplete-CfSjqceY.d.ts} +2 -2
  57. package/dist/{search-autocomplete-BJJkrZ1i.d.ts.map → search-autocomplete-CfSjqceY.d.ts.map} +1 -1
  58. package/dist/{select-field-DTnErvyf.d.ts → select-field-U8KSDxbg.d.ts} +2 -2
  59. package/dist/{select-field-DTnErvyf.d.ts.map → select-field-U8KSDxbg.d.ts.map} +1 -1
  60. package/dist/{selected-content-BFFMrHZW.d.ts → selected-content-iwV6vmSI.d.ts} +2 -2
  61. package/dist/{selected-content-BFFMrHZW.d.ts.map → selected-content-iwV6vmSI.d.ts.map} +1 -1
  62. package/dist/{splitted-input-diff-BuvB5vhe.d.ts → splitted-input-diff-DSME-KaQ.d.ts} +2 -2
  63. package/dist/{splitted-input-diff-BuvB5vhe.d.ts.map → splitted-input-diff-DSME-KaQ.d.ts.map} +1 -1
  64. package/dist/style.css +3 -133
  65. package/dist/{text-field-DQ89eiZL.d.ts → text-field-Cxpz1D2u.d.ts} +3 -3
  66. package/dist/{text-field-DQ89eiZL.d.ts.map → text-field-Cxpz1D2u.d.ts.map} +1 -1
  67. package/dist/{text-input-diff-K3kzOkxj.d.ts → text-input-diff-bO84di00.d.ts} +2 -2
  68. package/dist/{text-input-diff-K3kzOkxj.d.ts.map → text-input-diff-bO84di00.d.ts.map} +1 -1
  69. package/dist/{text-input-C_Dl2L8-.d.ts → text-input-t0uGOMAO.d.ts} +3 -3
  70. package/dist/{text-input-C_Dl2L8-.d.ts.map → text-input-t0uGOMAO.d.ts.map} +1 -1
  71. package/dist/{tooltip-CsucyiCV.d.ts → tooltip-Db1dLIxg.d.ts} +1 -1
  72. package/dist/{tooltip-CsucyiCV.d.ts.map → tooltip-Db1dLIxg.d.ts.map} +1 -1
  73. package/dist/{types-C04Q_Fan.d.ts → types-BDeBOEOj.d.ts} +1 -1
  74. package/dist/{types-C04Q_Fan.d.ts.map → types-BDeBOEOj.d.ts.map} +1 -1
  75. package/dist/{types-BTq-St7H.d.ts → types-BLss8ZBX.d.ts} +1 -1
  76. package/dist/{types-BTq-St7H.d.ts.map → types-BLss8ZBX.d.ts.map} +1 -1
  77. package/dist/{types-Bsn62tJB.d.ts → types-BzoMu6VB.d.ts} +1 -1
  78. package/dist/{types-Bsn62tJB.d.ts.map → types-BzoMu6VB.d.ts.map} +1 -1
  79. package/dist/ui/components/button/button.d.ts +1 -1
  80. package/dist/ui/components/character-counter/character-counter.d.ts +1 -1
  81. package/dist/ui/components/checkbox/checkbox-base.d.ts +1 -1
  82. package/dist/ui/components/checkbox/checkbox.d.ts +1 -1
  83. package/dist/ui/components/command/command.d.ts +1 -1
  84. package/dist/ui/components/enum-field/enum-field.d.ts +1 -1
  85. package/dist/ui/components/enum-field/types.d.ts +1 -1
  86. package/dist/ui/components/form/form.d.ts +1 -1
  87. package/dist/ui/components/form-description/form-description.d.ts +1 -1
  88. package/dist/ui/components/form-group/form-group.d.ts +1 -1
  89. package/dist/ui/components/form-label/form-label.d.ts +1 -1
  90. package/dist/ui/components/form-message/form-message.d.ts +1 -1
  91. package/dist/ui/components/form-message/form-server-error-message.d.ts +1 -1
  92. package/dist/ui/components/form-message/message-list.d.ts +1 -1
  93. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.d.ts +1 -1
  94. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.d.ts +1 -1
  95. package/dist/ui/components/id-autocomplete/id-autocomplete-list.d.ts +1 -1
  96. package/dist/ui/components/id-autocomplete/id-autocomplete.d.ts +1 -1
  97. package/dist/ui/components/id-autocomplete/types.d.ts +1 -1
  98. package/dist/ui/components/id-autocomplete/use-id-autocomplete.d.ts +1 -1
  99. package/dist/ui/components/index.d.ts +36 -36
  100. package/dist/ui/components/input/input.d.ts +1 -1
  101. package/dist/ui/components/input/splitted-input-diff.d.ts +1 -1
  102. package/dist/ui/components/input/subcomponent/text-diff.d.ts +1 -1
  103. package/dist/ui/components/json-viewer/json-viewer.d.ts +1 -1
  104. package/dist/ui/components/popover/popover.d.ts +1 -1
  105. package/dist/ui/components/radio-group-field/radio-group-field.d.ts +1 -1
  106. package/dist/ui/components/radio-group-field/radio-group.d.ts +1 -1
  107. package/dist/ui/components/radio-group-field/radio.d.ts +1 -1
  108. package/dist/ui/components/search-autocomplete/index.d.ts +3 -3
  109. package/dist/ui/components/search-autocomplete/search-autocomplete.d.ts +1 -1
  110. package/dist/ui/components/search-autocomplete/types.d.ts +1 -1
  111. package/dist/ui/components/search-autocomplete/use-search-autocomplete.d.ts +1 -1
  112. package/dist/ui/components/select-field/content.d.ts +1 -1
  113. package/dist/ui/components/select-field/select-field.d.ts +1 -1
  114. package/dist/ui/components/select-field/selected-content.d.ts +1 -1
  115. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts +1 -1
  116. package/dist/ui/components/select-field/use-select-field.d.ts +1 -1
  117. package/dist/ui/components/text-field/text-field.d.ts +1 -1
  118. package/dist/ui/components/text-input/text-input-diff.d.ts +1 -1
  119. package/dist/ui/components/text-input/text-input.d.ts +1 -1
  120. package/dist/ui/components/text-input/types.d.ts +1 -1
  121. package/dist/ui/components/tooltip/tooltip.d.ts +1 -1
  122. package/dist/ui/components/types.d.ts +1 -1
  123. package/dist/ui/components/value-transformer/value-transformer.d.ts +1 -1
  124. package/dist/ui/components/with-field-validation/with-field-validation.d.ts +1 -1
  125. package/dist/ui/index.d.ts +38 -38
  126. package/dist/ui/lib/date-picker.d.ts +1 -1
  127. package/dist/ui/lib/shared-value-transformers.d.ts +1 -1
  128. package/dist/ui/lib/types.d.ts +1 -1
  129. package/dist/ui/types.d.ts +2 -2
  130. package/dist/{use-id-autocomplete-DrTVtqMy.d.ts → use-id-autocomplete-BRzpIF4U.d.ts} +2 -2
  131. package/dist/{use-id-autocomplete-DrTVtqMy.d.ts.map → use-id-autocomplete-BRzpIF4U.d.ts.map} +1 -1
  132. package/dist/{use-search-autocomplete-IfcQ_gKh.d.ts → use-search-autocomplete-ZLxfAC6X.d.ts} +2 -2
  133. package/dist/{use-search-autocomplete-IfcQ_gKh.d.ts.map → use-search-autocomplete-ZLxfAC6X.d.ts.map} +1 -1
  134. package/dist/{value-transformer-2yvrA5Rp.d.ts → value-transformer-MGhQTCdM.d.ts} +2 -2
  135. package/dist/{value-transformer-2yvrA5Rp.d.ts.map → value-transformer-MGhQTCdM.d.ts.map} +1 -1
  136. package/dist/{with-field-validation-Bd0Nq4k-.d.ts → with-field-validation-DWMigXJz.d.ts} +2 -2
  137. package/dist/{with-field-validation-Bd0Nq4k-.d.ts.map → with-field-validation-DWMigXJz.d.ts.map} +1 -1
  138. package/package.json +4 -13
  139. package/dist/connect-BSkeWkEI.js +0 -8340
  140. package/dist/connect-BSkeWkEI.js.map +0 -1
  141. package/dist/form-group-C8kL6pdZ.d.ts.map +0 -1
  142. package/dist/index-C8XGTcEE.d.ts.map +0 -1
  143. package/dist/index-VqN1Wx2S.d.ts +0 -1201
  144. package/dist/index-VqN1Wx2S.d.ts.map +0 -1
  145. package/dist/rwa/index.d.ts +0 -791
  146. package/dist/rwa/index.d.ts.map +0 -1
  147. package/dist/rwa/index.js +0 -2686
  148. package/dist/rwa/index.js.map +0 -1
  149. /package/dist/{index--okzibnx.d.ts → index-BN8Gwmlj.d.ts} +0 -0
  150. /package/dist/{index-E7Wvm5uX.d.ts → index-Dw5cCt-A.d.ts} +0 -0
  151. /package/dist/{index-J3R2mDFQ.d.ts → index-qM4PwHTs.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect-BSkeWkEI.js","names":["Popover","PopoverContent","PopoverTrigger","AccountPopover","children","content","ConnectLoaderVideo","getDimensions","AnimatedLoader","props","style","size","delegatedProps","dimensions","_style","objectFit","pointerEvents","width","replace","height","useLayoutEffect","useRef","useState","twMerge","useEventListener","useOnClickOutside","NodeInput","props","onSubmit","onCancel","defaultValue","className","minLength","inputProps","value","setValue","ref","handleSubmit","e","key","setTimeout","current","focus","select","scroll","left","length","target","Icon","addFolder","setSelectedDrive","setSelectedNode","useSelectedDriveId","useSelectedDriveSafe","useSelectedNodePath","useUserPermissions","Fragment","useState","NodeInput","Breadcrumbs","isAllowedToCreateDocuments","selectedDrive","selectedDriveId","selectedNodePath","isCreating","setIsCreating","onAddNew","onSubmit","name","at","id","then","node","catch","error","console","finally","onCancel","hasSelectedDrive","hasNodePath","length","undefined","state","global","header","map","Breadcrumb","props","onClick","Icon","Select","components","DropdownIndicator","props","ClearIndicator","MenuList","label","onClick","rest","hasAddItemButton","children","Combobox","invalid","addItemButtonProps","menuListProps","dropdownIndicator","display","transition","color","padding","boxSizing","clearIndicator","baseStyles","container","borderColor","fontSize","placeholder","control","alignItems","cursor","flexWrap","justifyContent","minHeight","outline","position","backgroundColor","borderStyle","borderWidth","borderRadius","option","state","isSelected","menuList","theme","colors","primary","primary25","primary50","primary75","danger","dangerLight","neutral0","neutral5","neutral10","neutral20","neutral30","neutral40","neutral50","neutral60","neutral70","neutral80","neutral90","mergeClassNameProps","PowerhouseButton","useState","CookieBanner","props","children","cookies","submitLabel","rejectLabel","onSubmit","onReject","divProps","cookiesValue","setCookiesValue","handleOnChange","event","id","checked","target","prevState","map","cookie","value","buttonStyles","i","label","mergeClassNameProps","Modal","twMerge","buttonStyles","ConnectConfirmationModal","props","body","header","children","onCancel","onOpenChange","onContinue","cancelLabel","continueLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","cancelButtonProps","continueButtonProps","buttonContainerProps","restProps","className","Icon","useState","twMerge","INDENT_PX","TreeItem","label","depth","expanded","selected","hasChildren","icon","onToggle","onClick","children","handleChevronClick","e","stopPropagation","paddingLeft","ColumnItem","column","typeLabel","dataType","length","slice","name","SchemaTreeSidebar","schema","tables","selectedTable","onSelectTable","onRefresh","loading","expandedNodes","setExpandedNodes","toggleNode","nodeId","prev","handleTableClick","tableName","isSchemaExpanded","handleRefreshClick","undefined","map","table","isTableExpanded","isSelected","columns","col","Icon","forwardRef","useState","twJoin","twMerge","fixedForwardRef","render","ConnectSelect","Select","props","ref","items","value","id","onChange","containerClassName","menuClassName","itemClassName","absolutePositionMenu","borderRadius","showItems","setShowItems","selectedItem","getItemByValue","onItemClick","item","disabled","find","itemsToShow","filter","map","ItemContainer","className","icon","displayValue","description","toLowerCase","Icon","useCallback","useMemo","useState","twMerge","ConnectSelect","getAvailableOperators","column","baseOperators","dataType","toLowerCase","includes","getInputType","operator","FilterClauseComponent","clause","columns","onUpdate","onRemove","showConnector","connector","onConnectorChange","find","c","name","availableOperators","inputType","showValueInput","columnItems","map","col","value","displayValue","operatorItems","op","connectorItems","handleColumnChange","columnName","newColumn","newAvailableOperators","newOperator","handleOperatorChange","handleValueChange","id","e","target","FilterBar","filters","onFiltersChange","isExpanded","setIsExpanded","handleAddFilter","newClause","Date","now","Math","random","clauses","connectors","length","handleUpdateClause","index","newClauses","handleRemoveClause","filter","_","i","newConnectors","undefined","handleConnectorChange","hasFilters","updatedClause","Icon","useState","twMerge","FilterBar","formatCellValue","value","undefined","JSON","stringify","toString","String","escapeCsvValue","includes","replace","rowToCsv","row","columns","map","column","name","join","rowsToCsv","rows","header","col","dataRows","copyToClipboard","text","navigator","clipboard","writeText","SortIcon","direction","active","TableView","pagination","onPageChange","onSort","currentSort","loading","filters","onFiltersChange","onCopyAll","offset","limit","total","currentPage","Math","floor","totalPages","ceil","startItem","endItem","min","length","goToPage","page","handleSort","columnName","newDirection","getVisiblePages","maxVisible","Array","from","_","i","start","max","end","pages","push","visiblePages","copying","setCopying","copiedRowIndex","setCopiedRowIndex","handleCopyAll","csv","setTimeout","err","console","error","handleCopyRow","rowIndex","toLocaleString","index","isActive","sortDirection","colIndex","useCallback","useEffect","useRef","useState","ConnectConfirmationModal","SchemaTreeSidebar","TableView","rowsToCsv","DEFAULT_PAGE_SIZE","DBExplorer","schema","getTables","getTableRows","getDefaultSort","pageSize","onImportDb","onExportDb","pgVersionControl","fileInputRef","tables","setTables","tablesLoading","setTablesLoading","selectedTable","setSelectedTable","tableData","setTableData","pagination","setPagination","offset","limit","total","sort","setSort","filters","setFilters","loading","setLoading","pendingImport","setPendingImport","pendingResetMajor","setPendingResetMajor","resetting","setResetting","columns","find","t","name","loadTableData","data","prev","handleCopyAll","rows","loadTables","handleRefresh","newTables","some","undefined","handleSelectTable","table","handlePageChange","handleSort","newSort","handleImportClick","current","click","handleFileChange","e","file","target","files","text","then","content","value","handleImportConfirm","handleImportCancel","handleExportClick","resetTargetMajor","supportedPgVersions","m","currentPgVersion","handleResetConfirm","onResetToPgVersion","open","className","newFilters","useState","DebugInspector","supportedPgVersions","currentPgVersion","onResetToPgVersion","status","setStatus","pendingMajor","setPendingMajor","confirmMajor","setConfirmMajor","error","setError","handleReset","major","err","Error","message","String","running","map","isPending","AnimatedLoader","DefaultEditorLoader","props","message","divProps","Icon","twJoin","twMerge","Disclosure","props","title","isOpen","onOpenChange","children","containerClassName","toggleClassName","contentClassName","twMerge","Divider","props","className","TabContent","props","label","children","Content","List","Root","Trigger","React","Tabs","children","defaultValue","Children","map","child","i","isValidElement","label","disabled","props","JsonViewer","useMemo","twMerge","TabContent","Tabs","formatScopeLabel","text","charAt","toUpperCase","slice","toLowerCase","DocumentStateViewer","state","ignoredScopes","defaultScope","className","scopes","Object","keys","filter","scope","includes","initialScope","at","length","map","useDocumentById","redo","undo","useDocumentUndoRedo","documentId","document","dispatch","globalRevisionNumber","header","revision","global","localRevisionNumber","local","canUndo","canRedo","clipboard","length","handleUndo","handleRedo","Icon","exportDocument","setSelectedNode","setSelectedTimelineItem","showRevisionHistory","useGetSwitchboardLink","useNodeActions","useNodeParentFolderById","useSelectedDocumentSafe","Suspense","lazy","useEffect","useState","twMerge","NodeInput","useDocumentUndoRedo","DocumentTimeline","then","m","default","useDocumentTimeline","documentId","DocumentToolbar","props","onClose","children","onExport","className","document","_document","onSwitchboardLinkClick","enabledControls","defaultTimelineVisible","disableRevisionHistory","initialTimelineVisible","containerProps","selectedDocument","onRenameNode","onRenameDriveNodes","documentName","header","name","undefined","isEditingName","setIsEditingName","parentFolder","id","handleClose","handleExport","doc","documentUndoRedo","isUndoDisabled","canUndo","isRedoDisabled","canRedo","timelineItemsData","showTimeline","setShowTimeline","getSwitchboardLink","handleDefaultSwitchboardClick","url","window","open","error","console","resolvedSwitchboardHandler","isExportDisabled","isSwitchboardLinkDisabled","isTimelineDisabled","length","handleTimelineToggle","includes","undo","redo","newName","node","Promise","all","catch","useNodeActions","useCallback","useMemo","useRef","useState","useDrop","props","target","onAddFileOverride","trackNestedDrag","acceptedFileExtensions","isDropTarget","setIsDropTarget","dragDepthRef","onMoveNode","onCopyNode","onAddFile","defaultOnAddFile","isValidDropContent","dataTransfer","length","types","includes","items","Array","from","some","item","kind","type","onDragOver","event","preventDefault","stopPropagation","isValid","dropEffect","onDragEnter","current","onDragLeaveDepth","Math","max","onDragLeaveSimple","onDrop","dropTarget","closestDropZone","closest","dropZoneId","id","closestDropZoneId","getAttribute","droppedFiles","getDroppedFiles","filter","Boolean","file","fileName","name","toLowerCase","ext","endsWith","altOrOptionKeyPressed","getModifierState","data","getData","droppedNode","JSON","parse","error","console","baseProps","onDragLeave","dropProps","map","getAsFile","Icon","mergeClassNameProps","Modal","twMerge","buttonStyles","ConnectReplaceDuplicateModal","props","title","fileName","message","children","onReplace","onOpenChange","onDuplicate","replaceLabel","duplicateLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","replaceButtonProps","duplicateButtonProps","buttonContainerProps","restProps","defaultMessage","className","UploadFileItemErrorDetails","props","status","errorDetails","Icon","getDocumentIcon","documentType","UploadFileItemHeader","props","fileName","fileSize","onClose","delegatedProps","UploadFileItemProgressBar","props","status","progress","clamped","Math","min","max","width","twMerge","getStatusText","status","getStatusColor","shouldShowCTA","onOpenDocument","onFindResolution","Boolean","getCTAText","UploadFileItemStatusRow","props","progress","handleCTAClick","Math","round","forwardRef","twMerge","UploadFileItemErrorDetails","UploadFileItemHeader","UploadFileItemProgressBar","UploadFileItemStatusRow","UploadFileItem","props","ref","fileName","fileSize","status","documentType","progress","errorDetails","onClose","onOpenDocument","onFindResolution","className","delegatedProps","getUploadListTitle","count","explicitTitle","Icon","useMemo","useState","twMerge","UploadFileItem","getUploadListTitle","UploadFileList","props","items","title","defaultCollapsed","onClose","className","delegatedProps","isCollapsed","setIsCollapsed","computedTitle","length","v","map","item","idx","fileName","generateId","Date","now","Math","random","toString","substring","formatFileSize","bytes","k","sizes","i","floor","log","parseFloat","pow","toFixed","mapProgressStageToStatus","stage","mapUploadsToFileItems","uploadsArray","removeUpload","setSelectedNodeFn","onConflictResolution","filter","upload","undefined","map","fileName","fileSize","status","progress","errorDetails","documentType","onClose","id","onOpenDocument","fileNode","console","error","onFindResolution","twMerge","UploadFileList","mapUploadsToFileItems","UploadFileListContainer","props","uploadsArray","uploadsCount","removeUpload","clearAllUploads","setSelectedNode","onClose","onConflictResolution","className","delegatedProps","items","handleClose","useCallback","useEffect","useReducer","formatFileSize","generateId","mapProgressStageToStatus","uploadsReducer","state","action","type","payload","id","fileName","fileSize","status","progress","fileNode","undefined","currentUpload","stage","errorDetails","error","documentType","duplicateType","uploadToUpdate","failedUpload","removed","rest","conflictUpload","file","parentNode","filteredUploads","upload","Object","entries","useUploadTracker","useLocalStorage","driveId","getInitialState","stored","localStorage","getItem","parsed","JSON","parse","console","uploads","dispatch","setItem","stringify","createUploadHandler","onAddFile","parent","fileId","name","size","progressCallback","Error","message","removeUpload","uploadId","clearAllUploads","clearConflictedUploads","getUploadsArray","values","getUploadsCount","keys","length","resolveConflict","resolution","result","Promise","resolve","then","catch","uploadsArray","uploadsCount","Icon","setSelectedNode","useEffect","useState","twMerge","useDrop","ConnectReplaceDuplicateModal","UploadFileListContainer","useUploadTracker","DropZone","props","title","subtitle","node","enable","children","onAddFile","useLocalStorage","driveId","acceptedFileExtensions","className","delegatedProps","modalOpen","setModalOpen","conflictUploadId","setConflictUploadId","uploadsArray","uploadsCount","createUploadHandler","clearAllUploads","clearConflictedUploads","removeUpload","resolveConflict","handleAddFile","handleConflictResolution","uploadId","handleReplace","handleDuplicate","handleModalClose","isDropTarget","dropProps","target","onAddFileOverride","trackNestedDrag","find","u","id","fileName","undefined","useIsDragAndDropEnabled","useOnDropFile","useSelectedDriveId","DropZone","DropZoneWrapper","children","props","isDragAndDropEnabled","selectedDriveId","onDropFile","onAddFile","file","parent","onProgress","resolveConflict","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuTrigger","twMerge","ConnectDropdownMenu","props","children","items","open","onItemClick","onOpenChange","menuClassName","map","id","label","icon","className","e","stopPropagation","Icon","EditorActionButtons","props","onSwitchboardLinkClick","onExport","onClose","onShowRevisionHistory","onShowTimeline","Icon","twMerge","EditorUndoRedoButtons","props","canUndo","canRedo","undo","redo","buttonStyles","ImgPowerhouse","ENSAvatar","props","avatarUrl","size","style","width","height","Icon","defaultDriveOptions","defaultNodeOptions","normalNodeOptions","debugNodeOptions","nodeOptions","sharingTypeOptions","value","icon","description","disabled","locationInfoByLocation","CLOUD","title","LOCAL","SWITCHBOARD","debugNodeOptionsMap","label","normalNodeOptionsMap","DUPLICATE","RENAME","DELETE","className","SETTINGS","nodeOptionsMap","useCallback","useMemo","useState","useDrag","props","node","isDragging","setIsDragging","onDragStart","event","dataTransfer","setData","JSON","stringify","onDragEnd","dragProps","draggable","SYNCING","SUCCESS","CONFLICT","MISSING","ERROR","INITIAL_SYNC","syncStatuses","Icon","twMerge","CONFLICT","ERROR","INITIAL_SYNC","MISSING","SUCCESS","SYNCING","syncIcons","SyncStatusIcon","props","syncStatus","className","overrideSyncIcons","iconProps","icons","syncStatusIcons","DefaultImg","Icon","getSyncStatusSync","setSelectedNode","showDeleteNodeModal","useNodeActions","useSelectedDriveSafe","useUserPermissions","useState","twMerge","defaultNodeOptions","nodeOptionsMap","useDrag","ConnectDropdownMenu","NodeInput","SyncStatusIcon","getDriveSharingType","drive","isReadDrive","sharingType","_sharingType","state","local","__sharingType","toUpperCase","validTypes","includes","FileItem","props","fileNode","className","customDocumentIconSrc","mode","setMode","isDropdownMenuOpen","setIsDropdownMenuOpen","selectedDrive","dragProps","node","isAllowedToCreateDocuments","onRenameNode","onRenameDriveNodes","onDuplicateNode","isReadMode","syncStatus","id","dropdownMenuHandlers","DUPLICATE","RENAME","DELETE","dropdownMenuOptions","Object","entries","map","option","filter","onSubmit","name","Promise","all","catch","error","console","finally","onCancel","onDropdownMenuOptionClick","itemId","handler","iconSrc","iconNode","SUCCESS","containerStyles","content","documentType","e","stopPropagation","undefined","Icon","setSelectedNode","showDeleteNodeModal","useNodeActions","useUserPermissions","useState","twMerge","defaultNodeOptions","nodeOptionsMap","useDrag","useDrop","ConnectDropdownMenu","NodeInput","FolderItem","props","folderNode","className","isAllowedToCreateDocuments","mode","setMode","isDropdownMenuOpen","setIsDropdownMenuOpen","dragProps","node","onRenameNode","onRenameDriveNodes","onDuplicateNode","isDropTarget","dropProps","target","isReadMode","onCancel","onSubmit","name","Promise","all","id","catch","error","console","finally","dropdownMenuHandlers","DUPLICATE","RENAME","DELETE","dropdownMenuOptions","Object","entries","map","option","filter","includes","onDropdownMenuOptionClick","itemId","handler","content","containerStyles","undefined","e","stopPropagation","mergeClassNameProps","FooterLink","props","as","Component","restProps","mergeClassNameProps","Footer","children","props","forwardRef","twJoin","twMerge","FormInput","props","ref","icon","errorMessage","isDirty","containerClassName","inputClassName","errorMessageClassName","hideErrors","delegatedProps","type","isError","Icon","Controller","ConnectSelect","appToInputOption","app","value","id","displayValue","name","icon","description","AppFormInput","props","control","appOptions","delegatedProps","items","map","field","forwardRef","Toggle","props","ref","id","forwardRef","Toggle","AvailableOfflineToggle","props","ref","twMerge","Label","props","children","className","labelProps","Controller","ConnectSelect","sharingTypeOptions","SharingTypeFormInput","props","control","delegatedProps","field","PowerhouseButton","useForm","FormInput","AppFormInput","AvailableOfflineToggle","Label","SharingTypeFormInput","AddLocalDriveForm","props","register","handleSubmit","control","formState","errors","defaultValues","name","sharingType","availableOffline","id","appOptions","onSubmit","required","message","Icon","DriveName","props","driveName","twMerge","locationInfoByLocation","LocationInfo","props","location","className","divProps","locationInfo","icon","title","description","PowerhouseButton","useEffect","useState","useForm","useDebounceValue","Disclosure","Divider","FormInput","AvailableOfflineToggle","DriveName","LocationInfo","AddRemoteDriveForm","props","sharingType","requestPublicDrive","remoteDriveDetails","setPublicDriveDetails","showLocationSettings","setShowLocationSettings","isUrlValid","setIsUrlValid","hasConfirmedUrl","setHasConfirmedUrl","errorMessage","setErrorMessage","url","setUrl","debouncedUrl","setDebouncedUrl","register","handleSubmit","setValue","mode","defaultValues","availableOffline","fetchPublicDrive","catch","console","error","id","name","location","undefined","message","onSubmit","e","target","value","preventDefault","JsonView","isStrictEqual","isString","Icon","FormattedJsonViewer","props","onClick","children","rest","value","keyName","maxLength","length","maxWidth","toString","HomeBgAvif","HomeBgPng","HomeBackgroundImage","Icon","twMerge","HomeScreenItem","props","icon","title","description","containerClassName","shareable","onClick","slice","toUpperCase","Icon","showPHModal","HomeScreenItem","HomeScreenAddDriveItem","props","containerClassName","type","twMerge","HomeBackgroundImage","HomeScreen","props","children","containerClassName","Icon","useCallback","useState","twMerge","IntegrityInspector","onValidate","onRebuildKeyframes","onRebuildSnapshots","documentId","setDocumentId","branch","setBranch","status","setStatus","validationResult","setValidationResult","rebuildResult","setRebuildResult","error","setError","confirmAction","setConfirmAction","clearResults","handleValidate","trim","result","undefined","err","Error","message","String","handleRebuildKeyframes","handleRebuildSnapshots","e","target","value","ValidationResultView","totalIssues","keyframeIssues","length","snapshotIssues","isConsistent","map","issue","i","scope","revision","keyframeHash","replayedHash","snapshotHash","RebuildResultView","keyframesDeleted","scopesInvalidated","twMerge","AnimatedLoader","LoadingScreen","props","showLoadingScreen","loadingComponent","size","className","Modal","twMerge","AddLocalDriveForm","AddRemoteDriveForm","TabContent","Tabs","AddDriveModal","props","handleCancel","onOpenChange","open","onAddRemoteDrive","onAddLocalDrive","requestPublicDrive","modalProps","containerProps","className","appOptions","Icon","Modal","twMerge","Divider","AddLocalDriveForm","AddLocalDriveModal","props","open","onOpenChange","onSubmit","modalProps","containerProps","appOptions","handleCancel","className","Icon","Modal","twMerge","Divider","AddRemoteDriveForm","AddRemoteDriveModal","props","open","onOpenChange","onSubmit","sharingType","modalProps","containerProps","requestPublicDrive","handleCancel","className","Icon","Modal","PowerhouseButton","isValidName","useCallback","useState","twMerge","FormInput","buttonStyles","CLOSE_ANIMATION_DURATION","CreateDocumentModal","props","onOpenChange","onContinue","overlayProps","contentProps","restProps","nodeName","setNodeName","isValid","setIsValid","handleCancel","setTimeout","handleCreate","handleSubmit","e","preventDefault","className","name","target","value","Icon","useState","FormInput","ConnectConfirmationModal","ConnectDeleteDriveModal","props","inputPlaceholder","body","driveName","confirmationModalProps","inputName","setInputName","className","disabled","e","target","value","ConnectConfirmationModal","ConnectDeleteItemModal","props","onDelete","deleteLabel","restProps","className","Icon","forwardRef","FormInput","DriveNameInput","props","ref","icon","Icon","PowerhouseButton","useState","DriveNameInput","DeleteDrive","props","drive","handleDeleteDrive","onCancel","driveNameInput","setDriveNameInput","isAllowedToDelete","header","name","deleteDrive","event","target","value","Icon","PowerhouseButton","useState","useForm","Disclosure","Divider","AvailableOfflineToggle","DeleteDrive","DriveNameInput","Label","LocationInfo","SharingTypeFormInput","DriveSettingsForm","props","drive","sharingType","availableOffline","systemInfo","onSubmit","handleDeleteDrive","name","header","showLocationSettings","setShowLocationSettings","showAbout","setShowAbout","showDangerZone","setShowDangerZone","showDeleteDrive","setShowDeleteDrive","register","handleSubmit","control","mode","defaultValues","location","status","version","gitHash","Icon","Modal","twMerge","Divider","DriveSettingsForm","DriveSettingsModal","props","drive","open","sharingType","availableOffline","systemInfo","onOpenChange","onDeleteDrive","onRenameDrive","onChangeSharingType","onChangeAvailableOffline","modalProps","containerProps","onSubmit","data","name","header","handleDeleteDrive","handleCancel","className","Icon","Modal","JsonViewer","toSerializableObject","obj","JSON","parse","stringify","_key","value","Error","name","message","ObjectInspectorModal","open","onOpenChange","title","object","serializableObject","className","style","height","width","maxWidth","Icon","useCallback","useEffect","useState","twMerge","ObjectInspectorModal","VIEW_COLUMN","key","label","width","COLUMNS","truncateId","id","maxLength","length","slice","sortProcessors","processors","sort","a","b","comparison","column","status","localeCompare","processorId","factoryId","driveId","processorIndex","lastOrdinal","lastError","lastErrorTimestamp","getTime","direction","SortIcon","active","undefined","ProcessorsInspector","getProcessors","onRetry","setProcessors","loading","setLoading","setSort","retryingId","setRetryingId","selectedProcessor","setSelectedProcessor","error","setError","loadProcessors","result","e","Error","message","String","interval","setInterval","clearInterval","handleRefresh","handleRetry","handleSort","columnKey","newDirection","sortedProcessors","activeCount","filter","p","erroredCount","map","index","isActive","sortDirection","processor","toISOString","toLocaleString","open","Icon","useCallback","useEffect","useState","twMerge","ObjectInspectorModal","VIEW_COLUMN","key","label","width","COLUMNS","truncateId","id","maxLength","length","slice","formatDate","dateStr","date","Date","toLocaleString","sortJobs","jobs","sort","a","b","comparison","column","localeCompare","kind","documentId","scope","branch","createdAt","retryCount","status","direction","SortIcon","active","undefined","QueueInspector","getQueueState","onPause","onResume","state","setState","isPaused","pendingJobs","executingJobs","totalPending","totalExecuting","loading","setLoading","setSort","actionInProgress","setActionInProgress","selectedJob","setSelectedJob","loadState","newState","interval","setInterval","clearInterval","handleRefresh","handlePauseResume","handleSort","columnKey","newDirection","allJobs","map","job","sortedJobs","index","isActive","sortDirection","open","twMerge","stateStyles","connected","connecting","reconnecting","error","disconnected","ConnectionStateBadge","state","failureCount","style","truncateId","id","maxLength","length","slice","Icon","SortIcon","direction","active","undefined","Icon","SyncOperationStatus","useState","twMerge","ObjectInspectorModal","truncateId","SortIcon","VIEW_COLUMN","key","label","width","COLUMNS","DEAD_LETTER_COLUMNS","toSerializableObject","obj","JSON","parse","stringify","_key","value","Error","name","message","getStatusLabel","status","Unknown","TransportPending","ExecutionPending","Applied","getStatusIcon","getErrorMessage","error","sortOperations","operations","sort","ops","a","b","comparison","column","documentId","localeCompare","branch","scopes","join","length","direction","MailboxTable","title","mailboxType","onSort","collapsed","onToggleCollapse","selectedOperation","setSelectedOperation","columns","sortedOps","handleSort","columnKey","handleCopyAll","serializable","json","navigator","clipboard","writeText","map","index","isActive","sortDirection","op","id","open","Icon","useCallback","useState","ConnectionStateBadge","MailboxTable","formatTimestamp","ms","Date","toLocaleTimeString","ChannelInspector","remoteName","channel","onBack","onRefresh","connectionState","sorts","setSorts","inbox","undefined","outbox","deadLetter","collapsed","setCollapsed","handleToggleCollapse","mailbox","prev","handleSort","columnKey","currentSort","newDirection","column","direction","getPollerControls","poller","pollerControls","pollerState","setPollerState","isPaused","isRunning","intervalMs","setIntervalMs","getIntervalMs","mailboxStates","setMailboxStates","handlePause","pause","handleResume","resume","handlePollNow","triggerNow","handleApplyInterval","handleMailboxPause","mailboxInstance","handleMailboxResume","handleMailboxFlush","flush","failureCount","state","lastSuccessUtcMs","lastFailureUtcMs","pushBlocked","pushFailureCount","e","Number","target","value","key","ackOrdinal","latestOrdinal","items","Icon","useCallback","useEffect","useMemo","useState","twMerge","ChannelInspector","ConnectionStateBadge","SortIcon","truncateId","BASE_COLUMNS","key","label","width","ACTIONS_COLUMN","formatFilter","filter","parts","branch","push","documentId","length","scope","join","sortRemotes","remotes","sort","a","b","aValue","bValue","column","id","name","collectionId","comparison","localeCompare","direction","RemotesInspector","getRemotes","removeRemote","addRemoteManual","triggerPull","connectionStates","setRemotes","loading","setLoading","setSort","selectedRemote","setSelectedRemote","manualUrl","setManualUrl","adding","setAdding","addError","setAddError","hasRowActions","columns","loadRemotes","data","handleRefresh","updated","find","r","handleSort","columnKey","newDirection","handleViewChannel","remote","handleRemove","undefined","handleBack","handleAddManual","url","trim","error","Error","message","String","handlePull","channel","get","sortedRemotes","e","target","value","map","index","isActive","sortDirection","isSortable","failureCount","state","Icon","Modal","twMerge","DBExplorer","IntegrityInspector","ProcessorsInspector","QueueInspector","RemotesInspector","TabContent","Tabs","InspectorModal","open","onOpenChange","modalProps","containerProps","dbExplorerProps","remotesInspectorProps","queueInspectorProps","processorsInspectorProps","integrityInspectorProps","defaultTab","className","style","height","width","maxWidth","useState","Modal","twMerge","buttonStyles","groupByPackage","installations","groups","Map","item","existing","get","packageName","push","documentType","set","Array","from","entries","map","documentTypes","PackageInstallModal","props","pendingInstallations","onInstall","onDismiss","open","onOpenChange","overlayProps","contentProps","restProps","installingPackages","setInstallingPackages","Set","grouped","handleInstall","prev","add","next","delete","length","isOpen","className","installing","has","join","mergeClassNameProps","Modal","useEffect","useRef","useState","twMerge","buttonStyles","ReadRequiredModal","props","body","header","children","onOpenChange","onContinue","closeLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","continueButtonProps","buttonContainerProps","restProps","disableClose","setDisableClose","contentRef","checkScroll","element","current","scrollHeight","clientHeight","addEventListener","handleScroll","Math","ceil","scrollTop","requestAnimationFrame","removeEventListener","className","useState","Disclosure","PH_DEPENDENCIES","verifyPackageJsonFields","packageJson","parsed","version","dependencies","Object","fromEntries","entries","devDependencies","peerDependencies","filter","key","some","regexOrName","test","error","console","DependencyVersions","props","isOpen","setIsOpen","phCliVersion","validatedData","map","dep","replace","DependencyVersions","About","props","packageJson","phCliVersion","cn","Icon","capitalCase","getDriveSharingType","drive","isReadDrive","sharingType","_sharingType","state","local","__sharingType","toUpperCase","validTypes","includes","useState","ConnectDropdownMenu","DangerZone","props","className","rest","ModifyDrives","DriveList","drives","map","header","id","Drive","onDeleteDrive","isDropdownMenuOpen","setIsDropdownMenuOpen","localDriveIcon","cloudDriveIcon","publicDriveIcon","global","icon","getNodeIcon","name","label","e","stopPropagation","LocalStorage","onClearStorage","SelectFieldRaw","twMerge","DefaultEditor","props","className","rest","DefaultEditorSelect","documentModelEditor","setDocumentModelEditor","documentModelEditorOptions","value","parsePackageSpec","spec","trimmed","trim","length","name","tag","undefined","splitAt","startsWith","lastIndexOf","indexOf","slice","buildPackageSpec","cn","Icon","Input","Popover","PopoverContent","PopoverTrigger","useMemo","useState","resolveDefaultVersionSelection","options","distTags","versions","version","preferredTag","kind","value","latest","firstTag","Object","keys","undefined","length","VersionPicker","props","selected","onChange","disabled","className","open","setOpen","query","setQuery","tagEntries","entries","filteredTags","needle","trim","toLowerCase","filter","tag","ver","includes","filteredVersions","all","slice","reverse","v","hasAnyPickable","triggerLabel","next","e","preventDefault","target","map","isSelected","PackageAnimation","SearchAutocomplete","useCallback","useEffect","useState","buildPackageSpec","parsePackageSpec","VersionPicker","resolveDefaultVersionSelection","NPM_NAME_RE","isPlausiblePackageName","name","length","test","PackageResultCard","props","option","ctx","typedTag","selectingValue","selectLabel","selectingContent","handleSelect","baseName","label","split","value","hasVersionMetadata","distTags","Object","keys","versions","selected","setSelected","version","preferredTag","kind","includes","installSpec","isSelecting","isDisabled","disabled","description","meta","disabledLabel","PackageManagerInput","registryPackageList","onInstall","className","setTypedTag","undefined","fetchOptions","query","namePart","tag","needle","toLowerCase","localOptions","filter","pkg","manifest","map","isInstalled","status","publisher","Promise","resolve","fallbackSpec","fallbackLabel","fallbackOption","renderRow","Icon","useCallback","useEffect","useLayoutEffect","useState","twMerge","ConnectDropdownMenu","buildPackageSpec","resolveDefaultVersionSelection","VersionPicker","PackageDetail","label","value","PackageManagerListItem","props","registryPackage","onInstall","onUninstall","className","isDropdownMenuOpen","setIsDropdownMenuOpen","canPickVersion","status","hasVersionMetadata","distTags","Object","keys","length","versions","selected","setSelected","version","installDropdownItem","id","icon","uninstallDropdownItem","getDropdownItems","undefined","filter","item","dropdownItems","name","manifest","description","category","publisher","hasAnyField","url","spec","catch","console","error","e","stopPropagation","PackageManagerList","registryPackageList","maxHeight","setMaxHeight","locallyInstalledPackages","p","registryInstalledPackages","availablePackages","dismissedPackages","calculateMaxHeight","viewportHeight","window","innerHeight","availableHeight","Math","max","addEventListener","removeEventListener","hasLocallyInstalled","hasRegistryInstalled","hasAnyInstalled","hasAvailable","hasDismissed","installedCount","STORAGE_KEY","loadCollapsedSections","raw","localStorage","getItem","JSON","parse","useCollapsedSection","sectionId","collapsed","setCollapsed","current","setItem","stringify","toggle","prev","PackageSection","title","count","isEmpty","emptyText","children","contentId","PackageSubSection","PackageList","packages","map","pkg","twMerge","PackageManagerInput","PackageManagerList","PackageManager","props","registryPackageList","onInstall","onUninstall","mutable","disabled","className","Icon","Modal","useState","twMerge","SettingsModal","props","title","overlayProps","contentProps","onOpenChange","tabs","defaultTab","restProps","selectedTab","setSelectedTab","at","id","tabsContent","map","tab","icon","label","selectedTabContent","find","content","SelectedTabComponent","className","style","boxShadow","SettingsRow","props","title","children","description","restProps","Icon","PowerhouseButton","SettingsRow","ClearStorageSettingsRow","props","onClearStorage","buttonLabel","restProps","Icon","Modal","PowerhouseButton","twMerge","SettingsModalOld","props","body","title","onSave","children","saveLabel","cancelLabel","overlayProps","contentProps","onOpenChange","restProps","className","Modal","twMerge","buttonStyles","ConnectUpgradeDriveModal","props","body","header","onOpenChange","onContinue","cancelLabel","continueLabel","overlayProps","contentProps","restProps","className","Icon","Branch","props","branch","Icon","useCopyToClipboard","DocId","props","docId","onCopy","copy","handleCopy","text","then","catch","error","console","Icon","useCopyToClipboard","DocumentState","props","documentState","onCopyState","copy","handleCopy","jsonState","JSON","stringify","then","catch","error","console","ConnectSelect","Scope","props","value","onChange","items","displayValue","Icon","twMerge","Branch","DocId","DocumentState","Scope","Header","props","title","docId","scope","onChangeScope","onClose","className","documentState","onCopyState","onCopyDocId","divProps","useEffect","useState","ensCache","Map","fetchEns","address","cached","get","promise","fetch","then","res","ok","Error","status","json","catch","err","delete","set","useEns","data","setData","isLoading","setIsLoading","error","setError","undefined","cancelled","finally","formatEthAddress","address","slice","Anchor","Content","Portal","Root","Trigger","useState","funnel","CodePopover","props","content","trigger","anchor","isOpen","setIsOpen","opener","triggerAt","minQuietPeriodMs","closer","open","cancel","call","close","changedIsOpen","e","preventDefault","top","right","bottom","left","useEns","formatEthAddress","CodePopover","ENSAvatar","FormattedJsonViewer","Address","props","address","chainId","data","ensData","shortenedAddress","avatar_url","undefined","Icon","twMerge","CodePopover","FormattedJsonViewer","Errors","props","errors","hasErrors","length","color","icon","text","content","Icon","CodePopover","FormattedJsonViewer","Operation","props","operationType","operationInput","Icon","CodePopover","FormattedJsonViewer","RevisionNumber","props","operationIndex","eventId","stateHash","revisionNumber","Icon","CodePopover","FormattedJsonViewer","Signature","props","signatures","length","VerificationStatus","signatureCount","verifiedSignaturesCount","filter","signature","isVerified","signatureText","verificationStatusText","color","format","CodePopover","FormattedJsonViewer","Timestamp","props","timestampUtcMs","timestamp","timestampNumber","includes","parseInt","date","Date","shortDate","longDate","timestampFormatted","memo","Address","Errors","Operation","RevisionNumber","Signature","Timestamp","_Revision","props","Revision","Skip","props","operationIndex","skipCount","revisionNumber","skippedRevisions","makeRows","operations","revisionsAndSkips","seenDays","Set","operation","timestampUtcMs","day","split","has","add","push","type","height","operationIndex","index","eventId","id","stateHash","hash","operationType","action","operationInput","input","address","context","signer","user","chainId","signatures","makeSignatures","errors","error","undefined","skip","skipCount","getUniqueDatesInOrder","dates","date","Array","from","sort","a","b","Date","getTime","makeSignatureFromSignatureArray","signatureArray","signerAddress","prevStateHash","signatureBytes","isVerified","signaturesArray","map","Icon","format","Day","props","timestampUtcMs","timestamp","formattedDate","useVirtualizer","useEffect","useMemo","useRef","useState","Revision","Skip","makeRows","Day","Timeline","props","localOperations","globalOperations","scope","operations","initialNumRowsToShow","allRows","scrollAmount","setScrollAmount","numRowsToShow","setNumRowsToShow","rows","setRows","slice","parentRef","hasNextPage","length","rowVirtualizer","count","getScrollElement","current","estimateSize","i","height","gap","ratio","Math","floor","newNumRevisions","prev","handleScroll","e","n","deltaY","window","addEventListener","removeEventListener","getTotalSize","width","position","getVirtualItems","map","virtualRow","row","index","top","left","size","transform","start","type","key","Pagination","usePagination","garbageCollect","sortOperations","useMemo","useState","ConnectTooltipProvider","Header","Timeline","RevisionHistory","props","documentTitle","documentId","globalOperations","localOperations","onClose","itemsPerPage","documentState","onCopyState","onCopyDocId","scope","setScope","visibleOperations","operations","sort","a","b","index","pageItems","pages","goToPage","goToNextPage","goToPreviousPage","goToFirstPage","goToLastPage","hiddenNextPages","isNextPageAvailable","isPreviousPageAvailable","onChangeScope","showPagination","length","PaginationComponent","mergeClassNameProps","FilterItem","props","item","containerProps","icon","label","cn","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuTrigger","Icon","useMemo","twMerge","FilterItem","ConnectSearchBar","props","value","onChange","placeholder","filterLabel","filterItems","selectedFilter","onFilterSelect","className","items","map","item","id","content","selectedItemFilter","find","filterLabelContent","handleChange","event","target","twMerge","ConnectTooltip","SidebarItem","props","icon","title","description","containerClassName","active","onClick","slice","toUpperCase","Icon","SidebarItem","SidebarAddDriveItem","props","containerClassName","onClick","Icon","useState","twMerge","AccountPopoverLogin","onLogin","loading","setLoading","allowLogin","content","handleLogin","undefined","renownShortHover","renownShort","twMerge","AccountPopoverLogin","AccountPopover","SidebarLogin","onLogin","content","Icon","PowerhouseButton","useCallback","useState","twMerge","shortAddress","address","slice","AccountPopoverUser","onDisconnect","etherscanUrl","username","isCopied","setIsCopied","copyToClipboard","text","navigator","clipboard","writeText","setTimeout","err","console","error","bind","AccountPopoverUser","AccountPopover","ENSAvatar","SidebarUser","address","ensName","avatarUrl","etherscanUrl","onDisconnect","content","Icon","SidebarFooter","twMerge","SidebarLogin","SidebarUser","ConnectSidebarFooter","address","ensName","avatarUrl","className","onLogin","onClickSettings","onDisconnect","onHomeClick","showDebug","onDebugClick","etherscanUrl","props","SidebarHeader","twMerge","ConnectSidebarHeader","className","children","props","Sidebar","SidebarPanel","ConnectSidebarFooter","ConnectSidebarHeader","ConnectSidebar","onClick","address","ensName","avatarUrl","headerContent","onClickSettings","maxWidth","minWidth","onLogin","onDisconnect","etherscanUrl","showDebug","onDebugClick","props","children","getFolderStatus","folderPath","sortedFiles","file","path","startsWith","status","sortFilesByStatus","files","sort","a","b","statusOrder","indexOf","removeSuccessFiles","filter"],"sources":["../src/connect/components/account-popover/account-popover.tsx","../assets/connect-loader.mp4","../src/connect/components/animated-loader/animated-loader.tsx","../src/connect/components/node-input/node-input.tsx","../src/connect/components/breadcrumbs/breadcrumbs.tsx","../src/connect/components/combobox/combobox.tsx","../src/connect/components/cookie-banner/cookie-banner.tsx","../src/connect/components/modal/confirmation-modal.tsx","../src/connect/components/db-explorer/components/schema-tree-sidebar.tsx","../src/connect/components/select/select.tsx","../src/connect/components/db-explorer/components/filter-bar.tsx","../src/connect/components/db-explorer/components/table-view.tsx","../src/connect/components/db-explorer/db-explorer.tsx","../src/connect/components/debug-inspector/debug-inspector.tsx","../src/connect/components/default-editor-loader/default-editor-loader.tsx","../src/connect/components/disclosure/disclosure.tsx","../src/connect/components/divider/divider.tsx","../src/connect/components/tabs/tab-content.tsx","../src/connect/components/tabs/tabs.tsx","../src/connect/components/document-state-viewer/document-state-viewer.tsx","../src/connect/components/document-toolbar/utils/use-document-undo-redo.ts","../src/connect/components/document-toolbar/document-toolbar.tsx","../src/connect/hooks/use-drop.ts","../src/connect/components/modal/replace-duplicate-modal.tsx","../src/connect/components/upload-file-item/components/error-details.tsx","../src/connect/components/upload-file-item/components/header.tsx","../src/connect/components/upload-file-item/components/progress-bar.tsx","../src/connect/components/upload-file-item/components/status-row.tsx","../src/connect/components/upload-file-item/upload-file-item.tsx","../src/connect/components/upload-file-list/utils.ts","../src/connect/components/upload-file-list/upload-file-list.tsx","../src/connect/components/drop-zone/utils.ts","../src/connect/components/drop-zone/upload-file-list-container.tsx","../src/connect/components/drop-zone/use-upload-tracker.ts","../src/connect/components/drop-zone/drop-zone.tsx","../src/connect/components/drop-zone/drop-zone-wrapper.tsx","../src/connect/components/dropdown-menu/dropdown-menu.tsx","../src/connect/components/editor-action-buttons/editor-action-buttons.tsx","../src/connect/components/editor-undo-redo-buttons/editor-undo-redo-buttons.tsx","../assets/powerhouse-rounded.png","../src/connect/components/ens-avatar/ens-avatar.tsx","../assets/icons/template.png","../src/connect/constants/options.tsx","../src/connect/hooks/use-drag.ts","../src/connect/constants/syncing.ts","../src/connect/components/status-icon/sync-status-icon.tsx","../src/connect/components/file-item/file-item.tsx","../src/connect/components/folder-item/folder-item.tsx","../src/connect/components/footer/footer-link.tsx","../src/connect/components/footer/footer.tsx","../src/connect/components/form-input/form-input.tsx","../src/connect/components/form/inputs/app-form-input.tsx","../src/connect/components/toggle/toggle.tsx","../src/connect/components/form/inputs/available-offline-toggle.tsx","../src/connect/components/form/inputs/label.tsx","../src/connect/components/form/inputs/sharing-type-form-input.tsx","../src/connect/components/form/add-local-drive-form.tsx","../src/connect/components/form/inputs/drive-name.tsx","../src/connect/components/form/inputs/location-info.tsx","../src/connect/components/form/add-remote-drive-form.tsx","../src/connect/components/formatted-json-viewer.tsx","../assets/home-bg.avif","../assets/home-bg.png","../src/connect/components/home-screen/home-background-image.tsx","../src/connect/components/home-screen/home-screen-item.tsx","../src/connect/components/home-screen/home-screen-add-drive-item.tsx","../src/connect/components/home-screen/home-screen.tsx","../src/connect/components/integrity-inspector/integrity-inspector.tsx","../src/connect/components/loading-screen/loading-screen.tsx","../src/connect/components/modal/add-drive-modal/add-drive-modal.tsx","../src/connect/components/modal/add-local-drive-modal.tsx","../src/connect/components/modal/add-remote-drive-modal.tsx","../src/connect/components/modal/create-document-modal.tsx","../src/connect/components/modal/delete-drive-modal.tsx","../src/connect/components/modal/delete-item-modal.tsx","../src/connect/components/form/inputs/drive-name-input.tsx","../src/connect/components/form/inputs/delete-drive.tsx","../src/connect/components/form/drive-settings-form.tsx","../src/connect/components/modal/drive-settings-modal.tsx","../src/connect/components/object-inspector-modal/object-inspector-modal.tsx","../src/connect/components/processors-inspector/processors-inspector.tsx","../src/connect/components/queue-inspector/queue-inspector.tsx","../src/connect/components/remotes-inspector/components/connection-state-badge.tsx","../src/connect/components/remotes-inspector/utils.ts","../src/connect/components/remotes-inspector/components/sort-icon.tsx","../src/connect/components/remotes-inspector/components/mailbox-table.tsx","../src/connect/components/remotes-inspector/components/channel-inspector.tsx","../src/connect/components/remotes-inspector/remotes-inspector.tsx","../src/connect/components/modal/inspector-modal/inspector-modal.tsx","../src/connect/components/modal/missing-package-modal.tsx","../src/connect/components/modal/read-required-modal.tsx","../src/connect/components/modal/settings-modal/dependency-versions/dependency-versions.tsx","../src/connect/components/modal/settings-modal-v2/about.tsx","../src/connect/components/modal/settings-modal-v2/danger-zone.tsx","../src/connect/components/modal/settings-modal-v2/default-editor.tsx","../src/connect/components/modal/settings-modal-v2/package-manager/parse-package-spec.ts","../src/connect/components/modal/settings-modal-v2/package-manager/version-picker.tsx","../src/connect/components/modal/settings-modal-v2/package-manager/package-manager-input.tsx","../src/connect/components/modal/settings-modal-v2/package-manager/package-manager-list.tsx","../src/connect/components/modal/settings-modal-v2/package-manager/package-manager.tsx","../src/connect/components/modal/settings-modal-v2/settings-modal.tsx","../src/connect/components/modal/settings-modal/row.tsx","../src/connect/components/modal/settings-modal/clear-storage-row.tsx","../src/connect/components/modal/settings-modal/settings-modal.tsx","../src/connect/components/modal/upgrade-drive-modal.tsx","../src/connect/components/revision-history/header/branch.tsx","../src/connect/components/revision-history/header/doc-id.tsx","../src/connect/components/revision-history/header/document-state.tsx","../src/connect/components/revision-history/header/scope.tsx","../src/connect/components/revision-history/header/header.tsx","../src/connect/hooks/use-ens.ts","../src/connect/utils/address.ts","../src/connect/components/code-popover.tsx","../src/connect/components/revision-history/revision/address.tsx","../src/connect/components/revision-history/revision/errors.tsx","../src/connect/components/revision-history/revision/operation.tsx","../src/connect/components/revision-history/revision/revision-number.tsx","../src/connect/components/revision-history/revision/signature.tsx","../src/connect/components/revision-history/revision/timestamp.tsx","../src/connect/components/revision-history/revision/revision.tsx","../src/connect/components/revision-history/skip/skip.tsx","../src/connect/components/revision-history/utils.ts","../src/connect/components/revision-history/timeline/day.tsx","../src/connect/components/revision-history/timeline/timeline.tsx","../src/connect/components/revision-history/revision-history.tsx","../src/connect/components/search-bar/filter-item.tsx","../src/connect/components/search-bar/search-bar.tsx","../src/connect/components/sidebar/sidebar-item.tsx","../src/connect/components/sidebar/sidebar-add-drive-item.tsx","../assets/renown-short-hover.png","../assets/renown-short.png","../src/connect/components/account-popover/account-popover-login.tsx","../src/connect/components/sidebar/sidebar-login.tsx","../src/connect/components/account-popover/account-popover-user.tsx","../src/connect/components/sidebar/sidebar-user.tsx","../src/connect/components/sidebar/sidebar-footer.tsx","../src/connect/components/sidebar/sidebar-header.tsx","../src/connect/components/sidebar/sidebar.tsx","../src/connect/utils/get-folder-status.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"#design-system/ui\";\n\nexport interface AccountPopoverProps {\n children: ReactNode;\n content: ReactNode;\n}\n\nexport const AccountPopover = ({ children, content }: AccountPopoverProps) => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label=\"Open Account\"\n className=\"cursor-pointer\"\n >\n {children}\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-52 p-0\" align=\"start\">\n {content}\n </PopoverContent>\n </Popover>\n );\n};\n","\"data:video/mp4;base64,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\"","import ConnectLoaderVideo from \"#assets/connect-loader.mp4\";\nimport type { Size } from \"#design-system\";\nimport { getDimensions } from \"#design-system\";\nimport type { ComponentPropsWithoutRef, CSSProperties } from \"react\";\n\ntype Props = ComponentPropsWithoutRef<\"video\"> & {\n readonly size?: Size;\n};\nexport function AnimatedLoader(props: Props) {\n const { style, size = 100, ...delegatedProps } = props;\n\n const dimensions = getDimensions(size);\n\n const _style: CSSProperties = {\n objectFit: \"contain\",\n pointerEvents: \"none\",\n ...dimensions,\n ...style,\n };\n\n const width = dimensions.width?.replace(\"px\", \"\");\n const height = dimensions.height?.replace(\"px\", \"\");\n\n return (\n <video\n autoPlay\n height={height}\n loop\n muted\n playsInline\n width={width}\n {...delegatedProps}\n style={_style}\n >\n <source src={ConnectLoaderVideo} type=\"video/mp4\" />\n </video>\n );\n}\n","import { useLayoutEffect, useRef, useState, type RefObject } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useEventListener, useOnClickOutside } from \"usehooks-ts\";\n\ntype Props = {\n readonly name?: string;\n readonly defaultValue?: string;\n readonly placeholder?: string;\n readonly \"aria-label\"?: string;\n readonly className?: string;\n readonly minLength?: number;\n readonly onSubmit: (value: string) => void;\n readonly onCancel: () => void;\n};\nexport function NodeInput(props: Props) {\n const {\n onSubmit,\n onCancel,\n defaultValue,\n className,\n minLength = 1,\n ...inputProps\n } = props;\n const [value, setValue] = useState(defaultValue ?? \"\");\n\n const ref = useRef<HTMLInputElement>(null);\n\n useOnClickOutside(ref as RefObject<HTMLElement>, handleSubmit);\n\n useEventListener(\"keyup\", (e) => {\n if (e.key === \"Enter\") {\n handleSubmit();\n }\n if (e.key === \"Escape\") {\n onCancel();\n }\n });\n\n useLayoutEffect(() => {\n setTimeout(() => {\n ref.current?.focus();\n ref.current?.select();\n ref.current?.scroll({ left: 9999 });\n }, 100);\n }, []);\n\n function handleSubmit() {\n if (value.length >= minLength) {\n onSubmit(value);\n }\n }\n\n return (\n <input\n {...inputProps}\n autoFocus\n className={twMerge(\"bg-inherit text-inherit outline-none\", className)}\n minLength={minLength}\n onChange={(e) => setValue(e.target.value)}\n ref={ref}\n required\n type=\"text\"\n value={value}\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport {\n addFolder,\n setSelectedDrive,\n setSelectedNode,\n useSelectedDriveId,\n useSelectedDriveSafe,\n useSelectedNodePath,\n useUserPermissions,\n} from \"@powerhousedao/reactor-browser\";\nimport { Fragment, useState } from \"react\";\nimport { NodeInput } from \"../node-input/node-input.js\";\n\nexport function Breadcrumbs() {\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const [selectedDrive] = useSelectedDriveSafe();\n const selectedDriveId = useSelectedDriveId();\n const selectedNodePath = useSelectedNodePath();\n const [isCreating, setIsCreating] = useState(false);\n function onAddNew() {\n setIsCreating(true);\n }\n\n function onSubmit(name: string) {\n if (!isAllowedToCreateDocuments || !selectedDriveId) return;\n\n addFolder(selectedDriveId, name, selectedNodePath.at(-1)?.id)\n .then((node) => {\n setSelectedNode(node);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setIsCreating(false);\n });\n }\n\n function onCancel() {\n setIsCreating(false);\n }\n\n const hasSelectedDrive = !!selectedDrive;\n const hasNodePath = !!selectedNodePath.length;\n\n return (\n <div className=\"flex h-9 flex-row items-center gap-2 p-6 text-gray-500\">\n {hasSelectedDrive && (\n <>\n <button\n type=\"button\"\n aria-label=\"Back to home\"\n title=\"Back to home\"\n className=\"flex items-center justify-center rounded-md p-1 transition-colors hover:bg-gray-100 hover:text-gray-800\"\n onClick={() => setSelectedDrive(undefined)}\n >\n <Icon name=\"ArrowLeft\" size={14} />\n </button>\n <Breadcrumb\n name={selectedDrive.state.global.name || selectedDrive.header.name}\n onClick={() => setSelectedDrive(selectedDrive)}\n />\n <span>/</span>\n </>\n )}\n {hasNodePath &&\n selectedNodePath.map((node) => (\n <Fragment key={node.id}>\n <Breadcrumb\n name={node.name}\n onClick={() => setSelectedNode(node)}\n />\n <span>/</span>\n </Fragment>\n ))}\n {isAllowedToCreateDocuments &&\n (isCreating ? (\n <NodeInput\n className=\"text-gray-800\"\n defaultValue=\"New Folder\"\n onCancel={onCancel}\n onSubmit={onSubmit}\n placeholder=\"New Folder\"\n />\n ) : (\n <button\n type=\"button\"\n className=\"ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 transition-colors hover:bg-gray-200 hover:text-gray-800\"\n onClick={onAddNew}\n >\n <Icon name=\"Plus\" size={14} />\n Add new\n </button>\n ))}\n </div>\n );\n}\n\nexport type BreadcrumbProps = {\n name: string;\n onClick: () => void;\n};\n\nexport function Breadcrumb(props: BreadcrumbProps) {\n const { name, onClick } = props;\n\n return (\n <div\n className=\"cursor-pointer transition-colors last-of-type:text-gray-800 hover:text-gray-800\"\n onClick={onClick}\n role=\"button\"\n >\n {name}\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\nimport type {\n ClearIndicatorProps,\n DropdownIndicatorProps,\n MenuListProps,\n} from \"react-select\";\nimport Select, { components } from \"react-select\";\n\ntype SelectProps = ComponentPropsWithoutRef<typeof Select>;\n\ntype Props = Omit<SelectProps, \"components\" | \"styles\" | \"theme\"> & {\n readonly addItemButtonProps?: {\n label?: ReactNode;\n onClick?: () => void;\n };\n};\n\nfunction DropdownIndicator(props: DropdownIndicatorProps) {\n return (\n <components.DropdownIndicator {...props}>\n <Icon name=\"ChevronDown\" size={16} />\n </components.DropdownIndicator>\n );\n}\n\nfunction ClearIndicator(props: ClearIndicatorProps) {\n return (\n <components.ClearIndicator {...props}>\n <Icon name=\"Xmark\" size={16} />\n </components.ClearIndicator>\n );\n}\n\nfunction MenuList(\n props: MenuListProps & {\n readonly label?: ReactNode;\n readonly onClick?: () => void;\n },\n) {\n const { label, onClick, ...rest } = props;\n\n const hasAddItemButton = !!label && !!onClick;\n\n return (\n <components.MenuList {...rest}>\n {props.children}\n {hasAddItemButton ? (\n <button\n className=\"w-full px-2 py-3 hover:bg-slate-50\"\n onClick={onClick}\n >\n {label}\n </button>\n ) : null}\n </components.MenuList>\n );\n}\n\nexport function Combobox(props: Props) {\n const invalid = props[\"aria-invalid\"] === \"true\";\n const { addItemButtonProps, ...rest } = props;\n return (\n <Select\n {...rest}\n components={{\n DropdownIndicator,\n ClearIndicator,\n MenuList: (menuListProps) =>\n MenuList({ ...menuListProps, ...addItemButtonProps }),\n }}\n styles={{\n dropdownIndicator: () => {\n return {\n label: \"indicatorContainer\",\n display: \"flex\",\n transition: \"color 150ms\",\n color: \"var(color-gray-900)\",\n padding: 8,\n boxSizing: \"border-box\",\n };\n },\n clearIndicator: (baseStyles) => {\n return {\n ...baseStyles,\n color: \"var(color-gray-900)\",\n };\n },\n container: (baseStyles) => {\n return {\n ...baseStyles,\n borderColor: \"var(color-gray-200)\",\n fontSize: 12,\n };\n },\n placeholder: (baseStyles) => {\n return {\n ...baseStyles,\n color: invalid ? \"var(color-red-800)\" : \"var(color-gray-500)\",\n };\n },\n control: () => {\n return {\n label: \"control\",\n alignItems: \"center\",\n cursor: \"default\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n minHeight: 32,\n outline: \"0 !important\",\n position: \"relative\",\n transition: \"all 100ms\",\n backgroundColor: \"var(--color-white)\",\n borderColor: invalid\n ? \"var(--color-red-900)\"\n : \"var(--color-gray-200)\",\n borderStyle: \"solid\",\n borderWidth: 1,\n borderRadius: \"6px\",\n boxSizing: \"border-box\",\n };\n },\n option: (baseStyles, state) => {\n return {\n ...baseStyles,\n backgroundColor: state.isSelected\n ? \"var(--color-slate-50)\"\n : \"var(--color-white)\",\n color: \"var(--color-gray-800)\",\n \":hover\": {\n backgroundColor: \"var(--color-slate-50)\",\n },\n };\n },\n menuList: (baseStyles) => ({\n ...baseStyles,\n padding: 0,\n borderRadius: \"6px\",\n }),\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n primary: \"var(--color-slate-100)\",\n primary25: \"var(--color-slate-50)\",\n primary50: \"var(--color-slate-100)\",\n primary75: \"var(--color-slate-100)\",\n danger: \"var(--color-red-900)\",\n dangerLight: \"var(--color-red-100)\",\n neutral0: \"var(--color-white)\",\n neutral5: \"var(--color-gray-50)\",\n neutral10: \"var(--color-gray-100)\",\n neutral20: \"var(--color-gray-200)\",\n neutral30: \"var(--color-gray-300)\",\n neutral40: \"var(--color-gray-400)\",\n neutral50: \"var(--color-gray-500)\",\n neutral60: \"var(--color-gray-600)\",\n neutral70: \"var(--color-gray-700)\",\n neutral80: \"var(--color-gray-800)\",\n neutral90: \"var(--color-gray-900)\",\n },\n })}\n />\n );\n}\n","import { mergeClassNameProps, PowerhouseButton } from \"#design-system\";\nimport { useState } from \"react\";\n\nexport type CookieInput = {\n id: string;\n label: string;\n value: boolean;\n};\n\nexport interface CookieBannerProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onSubmit\"\n> {\n cookies: CookieInput[];\n submitLabel?: string;\n rejectLabel?: string;\n onSubmit?: (cookies: CookieInput[]) => void;\n onReject?: () => void;\n}\n\nexport const CookieBanner: React.FC<CookieBannerProps> = (props) => {\n const {\n children,\n cookies,\n submitLabel,\n rejectLabel,\n onSubmit = () => {},\n onReject = () => {},\n ...divProps\n } = props;\n\n const [cookiesValue, setCookiesValue] = useState(cookies);\n\n const handleOnChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { id, checked } = event.target;\n\n setCookiesValue((prevState) =>\n prevState.map((cookie) =>\n cookie.id === id ? { ...cookie, value: checked } : cookie,\n ),\n );\n };\n\n const buttonStyles = \"min-w-64 h-8 text-base\";\n\n return (\n <div {...mergeClassNameProps(divProps, \"flex flex-col items-center\")}>\n <div className=\"text-center\">{children}</div>\n <div className=\"my-8 flex gap-x-16 text-sm font-medium\">\n {cookiesValue.map((cookie, i) => (\n <div className=\"cursor-pointer\" key={i}>\n <input\n checked={cookie.value}\n className=\"mr-1 size-3 cursor-pointer rounded-sm border-2 border-gray-900 accent-gray-900 focus:outline-none\"\n id={cookie.id}\n onChange={handleOnChange}\n type=\"checkbox\"\n />\n <label className=\"cursor-pointer select-none\" htmlFor={cookie.id}>\n {cookie.label}\n </label>\n </div>\n ))}\n </div>\n <div className=\"flex gap-x-8\">\n <PowerhouseButton\n className={buttonStyles}\n color=\"light\"\n onClick={() => onReject()}\n size=\"small\"\n key={\"button-reject\"}\n >\n {rejectLabel}\n </PowerhouseButton>\n <PowerhouseButton\n className={buttonStyles}\n onClick={() => onSubmit(cookiesValue)}\n size=\"small\"\n key={\"button-submit\"}\n >\n {submitLabel}\n </PowerhouseButton>\n </div>\n </div>\n );\n};\n","import type { ComponentPropsWithoutRef } from \"react\";\n\nimport type { DivProps } from \"#design-system\";\nimport { mergeClassNameProps, Modal } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst buttonStyles =\n \"min-h-[48px] min-w-[142px] text-base font-semibold py-3 px-6 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\ntype ButtonProps = ComponentPropsWithoutRef<\"button\">;\n\nexport type ConfirmationModalProps = ComponentPropsWithoutRef<typeof Modal> & {\n readonly header: React.ReactNode;\n readonly body?: React.ReactNode;\n readonly onCancel: () => void;\n readonly onContinue: () => void;\n readonly cancelLabel: string;\n readonly continueLabel: string;\n readonly bodyProps?: DivProps;\n readonly cancelButtonProps?: ButtonProps;\n readonly continueButtonProps?: ButtonProps;\n readonly headerProps?: DivProps;\n readonly buttonContainerProps?: DivProps;\n readonly containerProps?: DivProps;\n};\n\nexport function ConnectConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n header,\n children,\n onCancel,\n onOpenChange,\n onContinue,\n cancelLabel,\n continueLabel,\n overlayProps,\n contentProps,\n bodyProps = {},\n headerProps = {},\n containerProps = {},\n cancelButtonProps = {},\n continueButtonProps = {},\n buttonContainerProps = {},\n ...restProps\n } = props;\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <div\n {...mergeClassNameProps(containerProps, \"w-[400px] p-6 text-slate-300\")}\n >\n <div\n {...mergeClassNameProps(\n headerProps,\n \"border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800\",\n )}\n >\n {header}\n </div>\n <div\n {...mergeClassNameProps(\n bodyProps,\n \"my-6 rounded-md bg-slate-50 p-4 text-center\",\n )}\n >\n {body}\n {children}\n </div>\n <div\n {...mergeClassNameProps(\n buttonContainerProps,\n \"mt-8 flex justify-between gap-3\",\n )}\n >\n <button\n onClick={onCancel}\n {...mergeClassNameProps(\n cancelButtonProps,\n twMerge(buttonStyles, \"flex-1 bg-slate-50 text-slate-800\"),\n )}\n >\n {cancelLabel}\n </button>\n <button\n onClick={onContinue}\n {...mergeClassNameProps(\n continueButtonProps,\n twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\"),\n )}\n >\n {continueLabel}\n </button>\n </div>\n </div>\n </Modal>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport type { ColumnInfo } from \"./table-view.js\";\n\nexport type TableInfo = {\n readonly name: string;\n readonly columns: ColumnInfo[];\n};\n\ntype TreeExpandedState = Record<string, boolean>;\n\nexport type SchemaTreeSidebarProps = {\n readonly schema: string;\n readonly tables: TableInfo[];\n readonly selectedTable?: string;\n readonly onSelectTable: (table: string) => void;\n readonly onRefresh?: () => void | Promise<void>;\n readonly loading?: boolean;\n};\n\ntype TreeItemProps = {\n readonly label: React.ReactNode;\n readonly depth: number;\n readonly expanded?: boolean;\n readonly selected?: boolean;\n readonly hasChildren?: boolean;\n readonly icon?: React.ReactNode;\n readonly onToggle?: () => void;\n readonly onClick?: () => void;\n readonly children?: React.ReactNode;\n};\n\nconst INDENT_PX = 16;\n\nfunction TreeItem({\n label,\n depth,\n expanded,\n selected,\n hasChildren,\n icon,\n onToggle,\n onClick,\n children,\n}: TreeItemProps) {\n const handleChevronClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n onToggle?.();\n };\n\n return (\n <div>\n <div\n className={twMerge(\n \"flex cursor-pointer items-center gap-1 py-1 pr-2 text-sm hover:bg-gray-100\",\n selected && \"bg-blue-50\",\n )}\n style={{ paddingLeft: depth * INDENT_PX + 4 }}\n onClick={onClick}\n >\n {hasChildren ? (\n <button\n className=\"flex h-4 w-4 shrink-0 items-center justify-center text-gray-500 hover:text-gray-700\"\n onClick={handleChevronClick}\n type=\"button\"\n >\n <Icon\n className={twMerge(\n \"transition-transform\",\n expanded && \"rotate-90\",\n )}\n name=\"CaretRight\"\n size={12}\n />\n </button>\n ) : (\n <span className=\"w-4 shrink-0\" />\n )}\n {icon && <span className=\"shrink-0 text-gray-500\">{icon}</span>}\n <span className=\"min-w-0 flex-1 truncate text-gray-700\">{label}</span>\n {selected && (\n <span className=\"ml-auto h-2 w-2 shrink-0 rounded-full bg-blue-500\" />\n )}\n </div>\n {expanded && children}\n </div>\n );\n}\n\nfunction ColumnItem({\n column,\n depth,\n}: {\n readonly column: ColumnInfo;\n readonly depth: number;\n}) {\n const typeLabel =\n column.dataType.length > 10\n ? column.dataType.slice(0, 10) + \"…\"\n : column.dataType;\n\n return (\n <div\n className=\"flex items-center gap-1 py-0.5 pr-2 text-xs text-gray-500\"\n style={{ paddingLeft: depth * INDENT_PX + 4 }}\n >\n <span className=\"w-4 shrink-0\" />\n <span className=\"truncate\">{column.name}</span>\n <span className=\"ml-auto shrink-0 text-gray-400\">({typeLabel})</span>\n </div>\n );\n}\n\nexport function SchemaTreeSidebar({\n schema,\n tables,\n selectedTable,\n onSelectTable,\n onRefresh,\n loading,\n}: SchemaTreeSidebarProps) {\n const [expandedNodes, setExpandedNodes] = useState<TreeExpandedState>({\n [schema]: true,\n });\n\n const toggleNode = (nodeId: string) => {\n setExpandedNodes((prev) => ({\n ...prev,\n [nodeId]: !prev[nodeId],\n }));\n };\n\n const handleTableClick = (tableName: string) => {\n onSelectTable(tableName);\n setExpandedNodes((prev) => ({\n ...prev,\n [tableName]: !prev[tableName],\n }));\n };\n\n const isSchemaExpanded = expandedNodes[schema] ?? false;\n\n const handleRefreshClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n void onRefresh?.();\n };\n\n return (\n <div className=\"flex flex-col overflow-auto pt-4 text-sm\">\n <TreeItem\n depth={0}\n expanded={isSchemaExpanded}\n hasChildren={tables.length > 0}\n icon={\n <Icon\n name={isSchemaExpanded ? \"FolderOpen\" : \"FolderClose\"}\n size={16}\n />\n }\n label={\n <div className=\"flex flex-1 items-center\">\n <span className=\"truncate\">{schema}</span>\n {onRefresh && (\n <button\n className=\"ml-auto p-0.5 text-gray-400 hover:text-gray-600\"\n onClick={handleRefreshClick}\n type=\"button\"\n disabled={loading}\n >\n <Icon\n name=\"Reload\"\n size={14}\n className={loading ? \"animate-spin\" : undefined}\n />\n </button>\n )}\n </div>\n }\n onClick={() => toggleNode(schema)}\n onToggle={() => toggleNode(schema)}\n >\n {tables.map((table) => {\n const isTableExpanded = expandedNodes[table.name] ?? false;\n const isSelected = selectedTable === table.name;\n\n return (\n <TreeItem\n key={table.name}\n depth={1}\n expanded={isTableExpanded}\n hasChildren={table.columns.length > 0}\n icon={<Icon name=\"TreeViewSlash\" size={16} />}\n label={table.name}\n selected={isSelected}\n onClick={() => handleTableClick(table.name)}\n onToggle={() => toggleNode(table.name)}\n >\n {table.columns.map((col) => (\n <ColumnItem key={col.name} column={col} depth={2} />\n ))}\n </TreeItem>\n );\n })}\n </TreeItem>\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type {\n CSSProperties,\n ForwardedRef,\n ReactNode,\n Ref,\n RefAttributes,\n} from \"react\";\nimport { forwardRef, useState } from \"react\";\nimport { twJoin, twMerge } from \"tailwind-merge\";\n\nexport type ConnectSelectItem<TValue extends string> = {\n readonly value: TValue;\n readonly displayValue?: React.ReactNode;\n readonly description?: React.ReactNode;\n readonly icon?: React.JSX.Element;\n readonly disabled?: boolean;\n};\n\nexport type ConnectSelectProps<TValue extends string> = {\n items: readonly ConnectSelectItem<TValue>[];\n value: TValue;\n id: string;\n onChange: (value: TValue) => void;\n containerClassName?: string;\n menuClassName?: string;\n itemClassName?: string;\n borderRadius?: CSSProperties[\"borderRadius\"];\n absolutePositionMenu?: boolean;\n};\n\nfunction fixedForwardRef<T, P = {}>(\n render: (props: P, ref: Ref<T>) => ReactNode,\n): (props: P & RefAttributes<T>) => ReactNode {\n // @ts-expect-error - This is a hack to make the types work\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return forwardRef(render) as any;\n}\n\nexport const ConnectSelect = /* @__PURE__ */ fixedForwardRef(function Select<\n TValue extends string,\n>(props: ConnectSelectProps<TValue>, ref: ForwardedRef<HTMLDivElement>) {\n const {\n items,\n value,\n id,\n onChange,\n containerClassName,\n menuClassName,\n itemClassName,\n absolutePositionMenu = false,\n borderRadius = \"6px\",\n } = props;\n const [showItems, setShowItems] = useState(false);\n const selectedItem = getItemByValue(value) ?? items[0];\n function onItemClick(item: ConnectSelectItem<TValue>) {\n if (item.disabled) return;\n onChange(item.value);\n setShowItems(false);\n }\n function getItemByValue(value: TValue) {\n return items.find((item) => item.value === value);\n }\n\n const itemsToShow = items.filter((item) => item.value !== value);\n\n return (\n <div\n className={twMerge(\n \"border border-gray-200 bg-gray-50 text-gray-800 transition-[border-radius]\",\n absolutePositionMenu && \"relative\",\n containerClassName,\n )}\n data-open={showItems}\n ref={ref}\n style={{\n borderRadius: borderRadius,\n }}\n >\n <div\n className={twMerge(\n \"flex min-w-[360px] cursor-pointer items-center justify-between pr-3 text-gray-800 outline-none\",\n menuClassName,\n )}\n id={id}\n onClick={() => setShowItems(!showItems)}\n >\n <ItemContainer {...selectedItem} className={itemClassName} />\n <Icon\n className={twJoin(\"transition\", showItems ? \"\" : \"-rotate-90\")}\n name=\"ChevronDown\"\n />\n </div>\n <div\n className={twMerge(\n \"max-h-0 w-full overflow-hidden bg-inherit transition-[max-height] ease-in-out\",\n showItems && \"max-h-screen\",\n absolutePositionMenu && \"absolute\",\n )}\n style={{\n borderRadius: `0 0 ${borderRadius} ${borderRadius}`,\n }}\n >\n {itemsToShow.map((item) => (\n <ItemContainer\n key={item.value}\n {...item}\n className={itemClassName}\n onItemClick={() => onItemClick(item)}\n />\n ))}\n </div>\n </div>\n );\n});\n\nfunction ItemContainer<TValue extends string>(\n props: ConnectSelectItem<TValue> & {\n readonly onItemClick?: () => void;\n readonly className?: string;\n },\n) {\n const {\n className,\n disabled,\n onItemClick,\n icon,\n displayValue,\n value,\n description,\n } = props;\n\n return (\n <div\n className={twMerge(\n disabled ? \"cursor-not-allowed text-gray-500\" : \"text-gray-800\",\n \"flex size-full cursor-pointer items-center gap-2 bg-inherit py-3 pl-3 text-start outline-none\",\n className,\n )}\n onClick={onItemClick}\n >\n {icon}\n <div>\n <p className=\"capitalize text-inherit\">\n {displayValue ?? value.toLowerCase()}\n </p>\n <p className=\"text-xs text-gray-600\">{description}</p>\n </div>\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ConnectSelect } from \"../../select/select.js\";\nimport type {\n ColumnInfo,\n FilterClause,\n FilterGroup,\n FilterOperator,\n} from \"./table-view.js\";\n\nexport type FilterBarProps = {\n readonly columns: ColumnInfo[];\n readonly filters: FilterGroup | undefined;\n readonly onFiltersChange: (filters: FilterGroup | undefined) => void;\n};\n\nfunction getAvailableOperators(column: ColumnInfo): FilterOperator[] {\n const baseOperators: FilterOperator[] = [\n \"=\",\n \"!=\",\n \">\",\n \"<\",\n \">=\",\n \"<=\",\n \"IS NULL\",\n \"IS NOT NULL\",\n ];\n\n const dataType = column.dataType.toLowerCase();\n\n // Text types get LIKE and ILIKE\n if (\n dataType.includes(\"varchar\") ||\n dataType.includes(\"text\") ||\n dataType.includes(\"char\")\n ) {\n return [...baseOperators, \"LIKE\", \"ILIKE\"];\n }\n\n // Numeric types don't get LIKE/ILIKE\n if (\n dataType.includes(\"int\") ||\n dataType.includes(\"decimal\") ||\n dataType.includes(\"numeric\") ||\n dataType.includes(\"real\") ||\n dataType.includes(\"double\") ||\n dataType.includes(\"float\") ||\n dataType.includes(\"bigint\") ||\n dataType.includes(\"smallint\")\n ) {\n return baseOperators;\n }\n\n // Default: all operators except LIKE/ILIKE\n return baseOperators;\n}\n\nfunction getInputType(\n column: ColumnInfo,\n operator: FilterOperator,\n): \"text\" | \"number\" | \"datetime-local\" {\n if (operator === \"IS NULL\" || operator === \"IS NOT NULL\") {\n return \"text\"; // Will be hidden anyway\n }\n\n const dataType = column.dataType.toLowerCase();\n\n if (\n dataType.includes(\"int\") ||\n dataType.includes(\"decimal\") ||\n dataType.includes(\"numeric\") ||\n dataType.includes(\"real\") ||\n dataType.includes(\"double\") ||\n dataType.includes(\"float\") ||\n dataType.includes(\"bigint\") ||\n dataType.includes(\"smallint\")\n ) {\n return \"number\";\n }\n\n if (\n dataType.includes(\"timestamp\") ||\n dataType.includes(\"date\") ||\n dataType.includes(\"time\")\n ) {\n return \"datetime-local\";\n }\n\n return \"text\";\n}\n\nfunction FilterClauseComponent({\n clause,\n columns,\n onUpdate,\n onRemove,\n showConnector,\n connector,\n onConnectorChange,\n}: {\n readonly clause: FilterClause;\n readonly columns: ColumnInfo[];\n readonly onUpdate: (clause: FilterClause) => void;\n readonly onRemove: () => void;\n readonly showConnector: boolean;\n readonly connector: \"AND\" | \"OR\";\n readonly onConnectorChange: (connector: \"AND\" | \"OR\") => void;\n}) {\n const column = columns.find((c) => c.name === clause.column);\n const availableOperators = column\n ? getAvailableOperators(column)\n : ([\"=\", \"!=\"] as FilterOperator[]);\n const inputType = column ? getInputType(column, clause.operator) : \"text\";\n const showValueInput =\n clause.operator !== \"IS NULL\" && clause.operator !== \"IS NOT NULL\";\n\n const columnItems = useMemo(\n (): Array<{ value: string; displayValue: string }> =>\n columns.map((col) => ({\n value: col.name,\n displayValue: col.name,\n })),\n [columns],\n );\n\n const operatorItems = useMemo(\n (): Array<{ value: FilterOperator; displayValue: string }> =>\n availableOperators.map((op) => ({\n value: op,\n displayValue: op,\n })),\n [availableOperators],\n );\n\n const connectorItems = useMemo(\n (): Array<{ value: \"AND\" | \"OR\"; displayValue: string }> => [\n { value: \"AND\", displayValue: \"AND\" },\n { value: \"OR\", displayValue: \"OR\" },\n ],\n [],\n );\n\n const handleColumnChange = useCallback(\n (columnName: string) => {\n const newColumn = columns.find((c) => c.name === columnName);\n if (!newColumn) return;\n\n const newAvailableOperators = getAvailableOperators(newColumn);\n const newOperator = newAvailableOperators.includes(clause.operator)\n ? clause.operator\n : newAvailableOperators[0];\n\n onUpdate({\n ...clause,\n column: columnName,\n operator: newOperator,\n value: \"\",\n });\n },\n [clause, columns, onUpdate],\n );\n\n const handleOperatorChange = useCallback(\n (operator: FilterOperator) => {\n onUpdate({\n ...clause,\n operator,\n value:\n operator === \"IS NULL\" || operator === \"IS NOT NULL\"\n ? \"\"\n : clause.value,\n });\n },\n [clause, onUpdate],\n );\n\n const handleValueChange = useCallback(\n (value: string) => {\n onUpdate({\n ...clause,\n value,\n });\n },\n [clause, onUpdate],\n );\n\n return (\n <div className=\"flex items-center gap-2\">\n {showConnector && (\n <ConnectSelect<\"AND\" | \"OR\">\n absolutePositionMenu\n borderRadius=\"4px\"\n containerClassName=\"min-w-[80px]\"\n id={`connector-${clause.id}`}\n items={connectorItems}\n itemClassName=\"px-2 py-1 text-xs\"\n menuClassName=\"px-2 py-1 text-xs min-w-[80px]\"\n value={connector}\n onChange={onConnectorChange}\n />\n )}\n <ConnectSelect<string>\n absolutePositionMenu\n borderRadius=\"4px\"\n containerClassName=\"min-w-[150px]\"\n id={`column-${clause.id}`}\n items={columnItems}\n itemClassName=\"px-2 py-1 text-xs\"\n menuClassName=\"px-2 py-1 text-xs min-w-[150px]\"\n value={clause.column}\n onChange={handleColumnChange}\n />\n <ConnectSelect<FilterOperator>\n absolutePositionMenu\n borderRadius=\"4px\"\n containerClassName=\"min-w-[100px]\"\n id={`operator-${clause.id}`}\n items={operatorItems}\n itemClassName=\"px-2 py-1 text-xs\"\n menuClassName=\"px-2 py-1 text-xs min-w-[100px]\"\n value={clause.operator}\n onChange={handleOperatorChange}\n />\n {showValueInput && (\n <input\n className=\"min-w-[150px] rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-900\"\n type={inputType}\n value={clause.value}\n onChange={(e) => handleValueChange(e.target.value)}\n />\n )}\n <button\n className=\"flex items-center justify-center rounded p-1 text-gray-500 hover:bg-gray-200 hover:text-gray-700\"\n onClick={onRemove}\n title=\"Remove filter\"\n type=\"button\"\n >\n <Icon name=\"Xmark\" size={14} />\n </button>\n </div>\n );\n}\n\nexport function FilterBar({\n columns,\n filters,\n onFiltersChange,\n}: FilterBarProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const handleAddFilter = useCallback(() => {\n const newClause: FilterClause = {\n id: `filter-${Date.now()}-${Math.random()}`,\n column: columns[0]?.name ?? \"\",\n operator: \"=\",\n value: \"\",\n };\n\n if (!filters) {\n onFiltersChange({\n clauses: [newClause],\n connectors: [],\n });\n } else {\n onFiltersChange({\n clauses: [...filters.clauses, newClause],\n connectors: [\n ...filters.connectors,\n filters.clauses.length > 0 ? \"AND\" : (\"AND\" as const),\n ],\n });\n }\n setIsExpanded(true);\n }, [columns, filters, onFiltersChange]);\n\n const handleUpdateClause = useCallback(\n (index: number, clause: FilterClause) => {\n if (!filters) return;\n\n const newClauses = [...filters.clauses];\n newClauses[index] = clause;\n\n onFiltersChange({\n ...filters,\n clauses: newClauses,\n });\n },\n [filters, onFiltersChange],\n );\n\n const handleRemoveClause = useCallback(\n (index: number) => {\n if (!filters) return;\n\n const newClauses = filters.clauses.filter((_, i) => i !== index);\n const newConnectors = filters.connectors.filter(\n (_, i) => i !== index - 1,\n );\n\n if (newClauses.length === 0) {\n onFiltersChange(undefined);\n } else {\n onFiltersChange({\n clauses: newClauses,\n connectors: newConnectors,\n });\n }\n },\n [filters, onFiltersChange],\n );\n\n const handleConnectorChange = useCallback(\n (index: number, connector: \"AND\" | \"OR\") => {\n if (!filters) return;\n\n const newConnectors = [...filters.connectors];\n newConnectors[index] = connector;\n\n onFiltersChange({\n ...filters,\n connectors: newConnectors,\n });\n },\n [filters, onFiltersChange],\n );\n\n const hasFilters = filters && filters.clauses.length > 0;\n\n return (\n <div className=\"flex shrink-0 flex-col gap-2 rounded-lg border border-gray-300 bg-white p-2\">\n <div className=\"flex items-center justify-between\">\n <button\n className=\"flex items-center gap-1 text-xs text-gray-700 hover:text-gray-900\"\n onClick={() => setIsExpanded(!isExpanded)}\n type=\"button\"\n >\n <Icon\n className={twMerge(\n \"transition-transform\",\n isExpanded && \"rotate-90\",\n )}\n name=\"ChevronDown\"\n size={12}\n />\n <span>Filters</span>\n {hasFilters && (\n <span className=\"rounded bg-blue-100 px-1.5 py-0.5 text-xs text-blue-700\">\n {filters.clauses.length}\n </span>\n )}\n </button>\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100\"\n onClick={handleAddFilter}\n type=\"button\"\n >\n <Icon name=\"Plus\" size={12} />\n Add Filter\n </button>\n </div>\n\n {isExpanded && hasFilters && (\n <div className=\"flex flex-col gap-2\">\n {filters.clauses.map((clause, index) => (\n <FilterClauseComponent\n key={clause.id}\n clause={clause}\n columns={columns}\n connector={\n index > 0 ? (filters.connectors[index - 1] ?? \"AND\") : \"AND\"\n }\n onConnectorChange={(connector) =>\n handleConnectorChange(index - 1, connector)\n }\n onRemove={() => handleRemoveClause(index)}\n onUpdate={(updatedClause) =>\n handleUpdateClause(index, updatedClause)\n }\n showConnector={index > 0}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { FilterBar } from \"./filter-bar.js\";\n\nexport type ColumnInfo = {\n readonly name: string;\n readonly dataType: string;\n readonly isNullable: boolean;\n};\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport type SortOptions = {\n readonly column: string;\n readonly direction: SortDirection;\n};\n\nexport type FilterOperator =\n | \"=\"\n | \"!=\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"LIKE\"\n | \"ILIKE\"\n | \"IS NULL\"\n | \"IS NOT NULL\";\n\nexport type FilterClause = {\n readonly id: string;\n readonly column: string;\n readonly operator: FilterOperator;\n readonly value: string;\n};\n\nexport type FilterGroup = {\n readonly clauses: FilterClause[];\n readonly connectors: (\"AND\" | \"OR\")[]; // connectors[i] connects clauses[i] and clauses[i+1]\n};\n\nexport type PaginationState = {\n readonly offset: number;\n readonly limit: number;\n readonly total: number | null;\n};\n\nexport type TableViewProps = {\n readonly columns: ColumnInfo[];\n readonly rows: Record<string, unknown>[];\n readonly pagination: PaginationState;\n readonly onPageChange: (offset: number) => void;\n readonly onSort?: (sort: SortOptions) => void;\n readonly currentSort?: SortOptions;\n readonly loading?: boolean;\n readonly filters?: FilterGroup;\n readonly onFiltersChange?: (filters: FilterGroup | undefined) => void;\n /** Callback to get all rows as CSV. If provided, \"Copy All\" copies all pages. */\n readonly onCopyAll?: () => Promise<string>;\n};\n\nfunction formatCellValue(value: unknown): string {\n if (value === null) return \"NULL\";\n if (value === undefined) return \"\";\n if (typeof value === \"object\") return JSON.stringify(value);\n if (typeof value === \"function\") return \"[function]\";\n if (typeof value === \"symbol\") return value.toString();\n return String(value as string | number | boolean | bigint);\n}\n\nfunction escapeCsvValue(value: string): string {\n // If the value contains comma, newline, or double quote, wrap it in quotes and escape quotes\n if (value.includes(\",\") || value.includes(\"\\n\") || value.includes('\"')) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\nfunction rowToCsv(row: Record<string, unknown>, columns: ColumnInfo[]): string {\n return columns\n .map((column) => {\n const value = formatCellValue(row[column.name]);\n return escapeCsvValue(value);\n })\n .join(\",\");\n}\n\nexport function rowsToCsv(\n rows: Record<string, unknown>[],\n columns: ColumnInfo[],\n): string {\n const header = columns.map((col) => escapeCsvValue(col.name)).join(\",\");\n const dataRows = rows.map((row) => rowToCsv(row, columns));\n return [header, ...dataRows].join(\"\\n\");\n}\n\nasync function copyToClipboard(text: string): Promise<void> {\n await navigator.clipboard.writeText(text);\n}\n\nfunction SortIcon({\n direction,\n active,\n}: {\n readonly direction: SortDirection;\n readonly active: boolean;\n}) {\n if (!active) {\n return (\n <Icon\n className=\"opacity-0 group-hover:opacity-50\"\n name=\"CaretSort\"\n size={12}\n />\n );\n }\n\n return (\n <Icon\n className={direction === \"asc\" ? \"rotate-180\" : undefined}\n name=\"TriangleDown\"\n size={12}\n />\n );\n}\n\nexport function TableView({\n columns,\n rows,\n pagination,\n onPageChange,\n onSort,\n currentSort,\n loading = false,\n filters,\n onFiltersChange,\n onCopyAll,\n}: TableViewProps) {\n const { offset, limit, total } = pagination;\n\n const currentPage = Math.floor(offset / limit);\n const totalPages = total !== null ? Math.ceil(total / limit) : 0;\n const startItem = total === 0 ? 0 : offset + 1;\n const endItem =\n total !== null ? Math.min(offset + limit, total) : offset + rows.length;\n\n const goToPage = (page: number) => {\n onPageChange(page * limit);\n };\n\n const handleSort = (columnName: string) => {\n if (!onSort) return;\n\n const newDirection: SortDirection =\n currentSort?.column === columnName && currentSort.direction === \"asc\"\n ? \"desc\"\n : \"asc\";\n\n onSort({ column: columnName, direction: newDirection });\n };\n\n const getVisiblePages = (): number[] => {\n const maxVisible = 3;\n\n if (totalPages <= maxVisible) {\n return Array.from({ length: totalPages }, (_, i) => i);\n }\n\n const start = Math.max(\n 0,\n Math.min(currentPage - 1, totalPages - maxVisible),\n );\n const end = Math.min(totalPages - 1, start + maxVisible - 1);\n\n const pages: number[] = [];\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n return pages;\n };\n\n const visiblePages = getVisiblePages();\n const [copying, setCopying] = useState(false);\n const [copiedRowIndex, setCopiedRowIndex] = useState<number | null>(null);\n\n const handleCopyAll = async () => {\n if (rows.length === 0) return;\n setCopying(true);\n try {\n // If onCopyAll is provided, use it to get all rows; otherwise copy visible rows\n const csv = onCopyAll ? await onCopyAll() : rowsToCsv(rows, columns);\n await copyToClipboard(csv);\n setTimeout(() => setCopying(false), 1000);\n } catch (err) {\n console.error(\"Failed to copy to clipboard:\", err);\n setCopying(false);\n }\n };\n\n const handleCopyRow = async (rowIndex: number) => {\n if (rowIndex < 0 || rowIndex >= rows.length) return;\n setCopiedRowIndex(rowIndex);\n try {\n const csv = rowToCsv(rows[rowIndex], columns);\n await copyToClipboard(csv);\n setTimeout(() => setCopiedRowIndex(null), 1000);\n } catch (err) {\n console.error(\"Failed to copy to clipboard:\", err);\n setCopiedRowIndex(null);\n }\n };\n\n return (\n <div className=\"flex h-full flex-col gap-2\">\n {onFiltersChange && (\n <FilterBar\n columns={columns}\n filters={filters}\n onFiltersChange={onFiltersChange}\n />\n )}\n <div className=\"flex shrink-0 items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-gray-600\">\n {loading\n ? \"Loading...\"\n : total !== null\n ? `Showing ${startItem.toLocaleString()}-${endItem.toLocaleString()} of ${total.toLocaleString()}`\n : `Showing ${rows.length.toLocaleString()} rows`}\n </span>\n {rows.length > 0 && (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={loading || copying}\n onClick={handleCopyAll}\n title=\"Copy all rows as CSV\"\n type=\"button\"\n >\n <Icon name={copying ? \"Check\" : \"Copy\"} size={14} />\n {copying ? \"Copied!\" : \"Copy All\"}\n </button>\n )}\n </div>\n\n {total !== null && total > limit && (\n <div className=\"flex gap-1\">\n <button\n className=\"rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={currentPage === 0}\n onClick={() => goToPage(0)}\n type=\"button\"\n >\n First\n </button>\n <button\n className=\"rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={currentPage === 0}\n onClick={() => goToPage(currentPage - 1)}\n type=\"button\"\n >\n <Icon className=\"rotate-90\" name=\"ChevronDown\" size={14} />\n </button>\n\n {visiblePages[0] > 0 && (\n <span className=\"flex items-center px-1 text-xs text-gray-500\">\n ...\n </span>\n )}\n\n {visiblePages.map((page) => (\n <button\n key={page}\n className={twMerge(\n \"min-w-8 rounded border px-2 py-1 text-xs\",\n page === currentPage\n ? \"border-blue-500 bg-blue-50 text-blue-700\"\n : \"border-gray-300 bg-white text-gray-700 hover:bg-gray-100\",\n )}\n onClick={() => goToPage(page)}\n type=\"button\"\n >\n {page + 1}\n </button>\n ))}\n\n {visiblePages[visiblePages.length - 1] < totalPages - 1 && (\n <span className=\"flex items-center px-1 text-xs text-gray-500\">\n ...\n </span>\n )}\n\n <button\n className=\"rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={currentPage >= totalPages - 1}\n onClick={() => goToPage(currentPage + 1)}\n type=\"button\"\n >\n <Icon className=\"-rotate-90\" name=\"ChevronDown\" size={14} />\n </button>\n <button\n className=\"rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={currentPage >= totalPages - 1}\n onClick={() => goToPage(totalPages - 1)}\n type=\"button\"\n >\n Last\n </button>\n </div>\n )}\n </div>\n\n <div\n className={twMerge(\n \"max-h-full overflow-auto rounded-lg border border-gray-300 transition-opacity\",\n loading && \"pointer-events-none opacity-50\",\n )}\n >\n <table className=\"w-full border-collapse\">\n <thead className=\"sticky top-0 bg-gray-100\">\n <tr>\n <th className=\"w-12 px-2 py-2 text-center text-xs font-medium text-gray-600\">\n <span className=\"sr-only\">Copy</span>\n </th>\n {columns.map((column, index) => {\n const isActive = currentSort?.column === column.name;\n const sortDirection = isActive ? currentSort.direction : \"asc\";\n\n return (\n <th\n key={column.name}\n className={twMerge(\n \"group px-3 py-2 text-left text-xs font-medium text-gray-600\",\n index > 0 && \"border-l border-gray-300\",\n onSort &&\n \"cursor-pointer hover:bg-gray-200 hover:text-gray-900\",\n )}\n onClick={() => onSort && handleSort(column.name)}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"truncate\">{column.name}</span>\n {onSort && (\n <SortIcon active={isActive} direction={sortDirection} />\n )}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={columns.length + 1}\n >\n No data\n </td>\n </tr>\n ) : (\n rows.map((row, rowIndex) => (\n <tr\n key={rowIndex}\n className=\"odd:bg-white even:bg-gray-50 hover:bg-blue-50\"\n >\n <td className=\"px-2 py-2 text-center\">\n <button\n className=\"flex items-center justify-center rounded p-1 text-gray-500 hover:bg-gray-200 hover:text-gray-700\"\n onClick={() => void handleCopyRow(rowIndex)}\n title=\"Copy row as CSV\"\n type=\"button\"\n >\n <Icon\n name={copiedRowIndex === rowIndex ? \"Check\" : \"Copy\"}\n size={14}\n />\n </button>\n </td>\n {columns.map((column, colIndex) => (\n <td\n key={column.name}\n className={twMerge(\n \"px-3 py-2 text-xs text-gray-900\",\n colIndex > 0 && \"border-l border-gray-300\",\n )}\n >\n <span\n className={twMerge(\n \"block truncate\",\n row[column.name] === null && \"italic text-gray-400\",\n )}\n title={formatCellValue(row[column.name])}\n >\n {formatCellValue(row[column.name])}\n </span>\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { ConnectConfirmationModal } from \"../modal/confirmation-modal.js\";\nimport {\n SchemaTreeSidebar,\n type TableInfo,\n} from \"./components/schema-tree-sidebar.js\";\nimport {\n TableView,\n rowsToCsv,\n type ColumnInfo,\n type FilterGroup,\n type FilterClause,\n type PaginationState,\n type SortOptions,\n} from \"./components/table-view.js\";\n\n// Re-export types\nexport type { TableInfo } from \"./components/schema-tree-sidebar.js\";\nexport type {\n ColumnInfo,\n SortOptions,\n FilterGroup,\n FilterClause,\n} from \"./components/table-view.js\";\n\nexport type GetTableRowsOptions = {\n readonly schema?: string;\n readonly limit: number;\n readonly offset: number;\n readonly sort?: SortOptions;\n readonly filters?: FilterGroup;\n};\n\nexport type TablePage = {\n readonly columns: string[];\n readonly rows: Record<string, unknown>[];\n readonly total: number | null;\n};\nexport interface DbClient {\n readonly kind: string;\n listTables(schema?: string): Promise<string[]>;\n getTableSchema(table: string, schema?: string): Promise<ColumnInfo[]>;\n getTableRows(table: string, options: GetTableRowsOptions): Promise<TablePage>;\n}\n\nexport type PgVersionControl = {\n readonly currentPgVersion: number | null;\n readonly supportedPgVersions: readonly number[];\n readonly onResetToPgVersion: (major: number) => void | Promise<void>;\n};\n\n/** Props for the main DBExplorer component */\nexport type DBExplorerProps = {\n readonly schema: string;\n readonly getTables: () => Promise<TableInfo[]>;\n readonly getTableRows: (\n table: string,\n options: GetTableRowsOptions,\n ) => Promise<TablePage>;\n readonly getDefaultSort?: (table: string) => SortOptions | undefined;\n readonly pageSize?: number;\n readonly onImportDb?: (sqlContent: string) => void | Promise<void>;\n readonly onExportDb?: () => void | Promise<void>;\n readonly pgVersionControl?: PgVersionControl;\n};\n\nconst DEFAULT_PAGE_SIZE = 50;\n\nexport function DBExplorer({\n schema,\n getTables,\n getTableRows,\n getDefaultSort,\n pageSize = DEFAULT_PAGE_SIZE,\n onImportDb,\n onExportDb,\n pgVersionControl,\n}: DBExplorerProps) {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [tables, setTables] = useState<TableInfo[]>([]);\n const [tablesLoading, setTablesLoading] = useState(true);\n const [selectedTable, setSelectedTable] = useState<string | undefined>();\n const [tableData, setTableData] = useState<TablePage | null>(null);\n const [pagination, setPagination] = useState<PaginationState>({\n offset: 0,\n limit: pageSize,\n total: null,\n });\n const [sort, setSort] = useState<SortOptions | undefined>();\n const [filters, setFilters] = useState<FilterGroup | undefined>();\n const [loading, setLoading] = useState(false);\n const [pendingImport, setPendingImport] = useState<string | null>(null);\n const [pendingResetMajor, setPendingResetMajor] = useState<number | null>(\n null,\n );\n const [resetting, setResetting] = useState(false);\n\n const columns = tables.find((t) => t.name === selectedTable)?.columns ?? [];\n\n const loadTableData = useCallback(async () => {\n if (!selectedTable) return;\n\n setLoading(true);\n const data = await getTableRows(selectedTable, {\n schema,\n limit: pagination.limit,\n offset: pagination.offset,\n sort,\n filters,\n });\n setTableData(data);\n setPagination((prev) => ({ ...prev, total: data.total }));\n setLoading(false);\n }, [\n selectedTable,\n schema,\n pagination.limit,\n pagination.offset,\n sort,\n filters,\n getTableRows,\n ]);\n\n const handleCopyAll = useCallback(async (): Promise<string> => {\n if (!selectedTable) return \"\";\n\n // Fetch all rows by using total as limit (or a large number if unknown)\n const limit = pagination.total ?? 1000000;\n const data = await getTableRows(selectedTable, {\n schema,\n limit,\n offset: 0,\n sort,\n filters,\n });\n\n return rowsToCsv(data.rows, columns);\n }, [\n selectedTable,\n schema,\n pagination.total,\n sort,\n filters,\n getTableRows,\n columns,\n ]);\n\n const loadTables = useCallback(async () => {\n setTablesLoading(true);\n const data = await getTables();\n setTables(data);\n setTablesLoading(false);\n return data;\n }, [getTables]);\n\n const handleRefresh = useCallback(async () => {\n const newTables = await loadTables();\n\n // Clear selection if selected table no longer exists\n if (selectedTable && !newTables.some((t) => t.name === selectedTable)) {\n setSelectedTable(undefined);\n setTableData(null);\n return;\n }\n\n // Reload current table data if a table is selected\n if (selectedTable) {\n await loadTableData();\n }\n }, [loadTables, selectedTable, loadTableData]);\n\n // Load tables on mount\n useEffect(() => {\n void loadTables();\n }, [loadTables]);\n\n useEffect(() => {\n if (selectedTable) {\n void loadTableData();\n }\n }, [selectedTable, pagination.offset, sort, filters, loadTableData]);\n\n const handleSelectTable = (table: string) => {\n if (table === selectedTable) return;\n\n setSelectedTable(table);\n setPagination((prev) => ({ ...prev, offset: 0, total: null }));\n setSort(getDefaultSort?.(table));\n setFilters(undefined);\n setTableData(null);\n };\n\n const handlePageChange = (offset: number) => {\n setPagination((prev) => ({ ...prev, offset }));\n };\n\n const handleSort = (newSort: SortOptions) => {\n setSort(newSort);\n setPagination((prev) => ({ ...prev, offset: 0 }));\n };\n\n const handleImportClick = () => {\n fileInputRef.current?.click();\n };\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n void file.text().then((content) => {\n setPendingImport(content);\n });\n\n e.target.value = \"\";\n };\n\n const handleImportConfirm = async () => {\n if (pendingImport) {\n // Clear selection before import to prevent stale queries\n setSelectedTable(undefined);\n setTableData(null);\n\n await onImportDb?.(pendingImport);\n setPendingImport(null);\n await loadTables();\n }\n };\n\n const handleImportCancel = () => {\n setPendingImport(null);\n };\n\n const handleExportClick = () => {\n void onExportDb?.();\n };\n\n const resetTargetMajor = pgVersionControl\n ? (pgVersionControl.supportedPgVersions.find(\n (m) => m !== pgVersionControl.currentPgVersion,\n ) ?? null)\n : null;\n\n const handleResetConfirm = async () => {\n if (pendingResetMajor === null || !pgVersionControl) return;\n setResetting(true);\n try {\n await pgVersionControl.onResetToPgVersion(pendingResetMajor);\n } finally {\n setResetting(false);\n setPendingResetMajor(null);\n }\n };\n\n return (\n <div className=\"flex h-full\">\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".sql,.txt,text/plain\"\n className=\"hidden\"\n onChange={handleFileChange}\n />\n\n <ConnectConfirmationModal\n open={!!pendingImport}\n onOpenChange={(open) => !open && setPendingImport(null)}\n header=\"Replace Database?\"\n body=\"This will delete all existing data and replace it with the imported file. This action cannot be undone.\"\n cancelLabel=\"Cancel\"\n continueLabel=\"Replace Data\"\n onCancel={handleImportCancel}\n onContinue={() => void handleImportConfirm()}\n continueButtonProps={{\n className: \"bg-red-900 text-white hover:bg-red-800\",\n }}\n />\n\n <ConnectConfirmationModal\n open={pendingResetMajor !== null}\n onOpenChange={(open) => !open && setPendingResetMajor(null)}\n header={`Reset to Postgres ${pendingResetMajor ?? \"\"}?`}\n body={`This will permanently delete all local reactor data and recreate an empty database under Postgres ${pendingResetMajor ?? \"\"}. The page will reload.`}\n cancelLabel=\"Cancel\"\n continueLabel={`Reset to PG${pendingResetMajor ?? \"\"}`}\n onCancel={() => setPendingResetMajor(null)}\n onContinue={() => void handleResetConfirm()}\n continueButtonProps={{\n className: \"bg-red-900 text-white hover:bg-red-800\",\n }}\n />\n\n <div className=\"flex w-64 shrink-0 flex-col border-r border-gray-200\">\n <div className=\"flex-1 overflow-auto\">\n <SchemaTreeSidebar\n schema={schema}\n tables={tables}\n selectedTable={selectedTable}\n onSelectTable={handleSelectTable}\n onRefresh={handleRefresh}\n loading={tablesLoading || loading}\n />\n </div>\n\n {(onImportDb || onExportDb || pgVersionControl) && (\n <div className=\"flex shrink-0 flex-col gap-2 border-t border-gray-200 p-2\">\n {onImportDb && (\n <button\n className=\"rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={handleImportClick}\n type=\"button\"\n >\n Import DB\n </button>\n )}\n {onExportDb && (\n <button\n className=\"rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={handleExportClick}\n type=\"button\"\n >\n Export DB\n </button>\n )}\n {pgVersionControl && (\n <div className=\"flex flex-col gap-1 border-t border-gray-200 pt-2\">\n <div className=\"flex items-center justify-between text-xs text-gray-600\">\n <span>Postgres version</span>\n <span className=\"font-semibold text-gray-900\">\n {pgVersionControl.currentPgVersion === null\n ? \"—\"\n : `PG${pgVersionControl.currentPgVersion}`}\n </span>\n </div>\n {resetTargetMajor !== null && (\n <button\n className=\"rounded border border-red-300 bg-red-50 px-3 py-1.5 text-sm text-red-700 hover:bg-red-100 disabled:opacity-50\"\n onClick={() => setPendingResetMajor(resetTargetMajor)}\n disabled={resetting}\n type=\"button\"\n >\n {resetting\n ? `Resetting to PG${resetTargetMajor}…`\n : `Reset to PG${resetTargetMajor}`}\n </button>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n\n <div className=\"flex-1 overflow-auto p-4\">\n {!selectedTable ? (\n <div className=\"text-sm text-gray-500\">\n Select a table to view data\n </div>\n ) : !tableData && loading ? (\n <div className=\"text-sm text-gray-500\">Loading...</div>\n ) : tableData ? (\n <TableView\n columns={columns}\n rows={tableData.rows}\n pagination={pagination}\n onPageChange={handlePageChange}\n onSort={handleSort}\n currentSort={sort}\n loading={loading}\n filters={filters}\n onFiltersChange={(newFilters) => {\n setFilters(newFilters);\n setPagination((prev) => ({ ...prev, offset: 0 }));\n }}\n onCopyAll={handleCopyAll}\n />\n ) : null}\n </div>\n </div>\n );\n}\n","import { useState } from \"react\";\n\nexport type DebugInspectorProps = {\n readonly supportedPgVersions: readonly number[];\n readonly currentPgVersion: number | null;\n readonly onResetToPgVersion: (major: number) => Promise<void>;\n};\n\ntype Status = \"idle\" | \"running\" | \"error\";\n\nexport function DebugInspector({\n supportedPgVersions,\n currentPgVersion,\n onResetToPgVersion,\n}: DebugInspectorProps) {\n const [status, setStatus] = useState<Status>(\"idle\");\n const [pendingMajor, setPendingMajor] = useState<number | null>(null);\n const [confirmMajor, setConfirmMajor] = useState<number | null>(null);\n const [error, setError] = useState<string | null>(null);\n\n const handleReset = async (major: number) => {\n setError(null);\n setConfirmMajor(null);\n setPendingMajor(major);\n setStatus(\"running\");\n try {\n await onResetToPgVersion(major);\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n setStatus(\"error\");\n setPendingMajor(null);\n }\n };\n\n const running = status === \"running\";\n\n return (\n <div className=\"flex h-full flex-col gap-4 overflow-auto p-4\">\n <div>\n <h2 className=\"text-lg font-semibold text-gray-900\">PGlite data dir</h2>\n <p className=\"mt-1 text-sm text-gray-600\">\n Kill the reactor, delete the local IndexedDB, initialize a fresh\n Postgres cluster at the chosen major version, then reload. Useful for\n testing version-detection and migration flows.\n </p>\n <div className=\"mt-2 inline-flex items-center gap-2 rounded bg-gray-100 px-3 py-1 text-sm\">\n <span className=\"text-gray-600\">Current version:</span>\n <span className=\"font-semibold text-gray-900\">\n {currentPgVersion === null\n ? \"None (no data dir)\"\n : `Postgres ${currentPgVersion}`}\n </span>\n </div>\n </div>\n\n <div className=\"flex flex-wrap gap-2\">\n {supportedPgVersions.map((major) => {\n const isPending = pendingMajor === major && running;\n return (\n <button\n key={major}\n type=\"button\"\n disabled={running}\n onClick={() => setConfirmMajor(major)}\n className=\"flex items-center gap-1 rounded border border-red-300 bg-red-50 px-3 py-1.5 text-sm text-red-700 hover:bg-red-100 disabled:opacity-50\"\n >\n {isPending ? `Resetting to PG${major}…` : `Reset to PG${major}`}\n </button>\n );\n })}\n </div>\n\n {confirmMajor !== null && (\n <div className=\"flex shrink-0 items-center gap-3 rounded border border-yellow-400 bg-yellow-50 px-3 py-2\">\n <span className=\"text-sm text-yellow-900\">\n This will permanently delete all local reactor data and recreate an\n empty database under Postgres {confirmMajor}. The page will reload.\n </span>\n <button\n type=\"button\"\n onClick={() => handleReset(confirmMajor)}\n className=\"rounded bg-yellow-600 px-3 py-1 text-sm text-white hover:bg-yellow-700\"\n >\n Confirm reset to PG{confirmMajor}\n </button>\n <button\n type=\"button\"\n onClick={() => setConfirmMajor(null)}\n className=\"rounded border border-gray-300 bg-white px-3 py-1 text-sm text-gray-600 hover:bg-gray-50\"\n >\n Cancel\n </button>\n </div>\n )}\n\n {error && (\n <div className=\"rounded border border-red-300 bg-red-50 px-3 py-2 text-sm text-red-800\">\n {error}\n </div>\n )}\n </div>\n );\n}\n","import type { DivProps } from \"#design-system\";\nimport { AnimatedLoader } from \"../animated-loader/animated-loader.js\";\n\ntype DefaultEditorLoaderProps = DivProps & {\n readonly message?: string;\n};\n\nexport function DefaultEditorLoader(props: DefaultEditorLoaderProps) {\n const { message = \"Loading editor\", ...divProps } = props;\n return (\n <div className=\"grid h-full place-items-center\" {...divProps}>\n <div className=\"-mt-20 grid place-items-center\">\n <h3 className=\"mb-4 text-xl\">{message}</h3>\n <AnimatedLoader />\n </div>\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { ReactNode } from \"react\";\nimport { twJoin, twMerge } from \"tailwind-merge\";\n\ntype DisclosureProps = {\n title: ReactNode;\n isOpen: boolean;\n onOpenChange: () => void;\n children: ReactNode;\n containerClassName?: string;\n toggleClassName?: string;\n contentClassName?: string;\n};\nexport function Disclosure(props: DisclosureProps) {\n const {\n title,\n isOpen,\n onOpenChange,\n children,\n containerClassName,\n toggleClassName,\n contentClassName,\n } = props;\n return (\n <div className={twMerge(containerClassName)}>\n <div\n className={twMerge(\n \"flex cursor-pointer justify-between text-gray-500\",\n toggleClassName,\n )}\n onClick={onOpenChange}\n >\n <h2 className=\"font-semibold text-inherit\">{title}</h2>\n <Icon\n className={twJoin(\"transition\", isOpen ? \"\" : \"-rotate-90\")}\n size={16}\n name=\"ChevronDown\"\n />\n </div>\n <div\n className={twMerge(\n \"max-h-0 overflow-hidden transition-[max-height] duration-300 ease-in-out\",\n isOpen && \"max-h-screen\",\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n );\n}\n","import type { DivProps } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function Divider(props: DivProps) {\n return (\n <div {...props} className={twMerge(\"h-px bg-gray-200\", props.className)} />\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport type TabContentProps = {\n readonly label: ReactNode;\n readonly description: ReactNode;\n readonly children: ReactNode;\n readonly disabled?: boolean;\n};\nexport function TabContent(props: TabContentProps) {\n const { label, children } = props;\n\n return <div className=\"h-full\">{children}</div>;\n}\n","import { Content, List, Root, Trigger } from \"@radix-ui/react-tabs\";\nimport React from \"react\";\nimport type { TabContentProps } from \"./tab-content.js\";\n\nexport function Tabs({\n children,\n defaultValue,\n}: {\n children: React.ReactNode;\n defaultValue: string;\n}) {\n return (\n <Root\n defaultValue={defaultValue}\n className=\"flex min-h-0 flex-1 flex-col gap-2\"\n >\n <div className=\"flex w-full shrink-0 justify-between\">\n {/* <EditorUndoRedoButtons {...props} /> */}\n <List className=\"flex w-full gap-x-2 rounded-xl bg-slate-50 p-1 text-sm font-semibold text-gray-600 outline-none\">\n {React.Children.map(children, (child, i) => {\n if (!React.isValidElement(child)) return;\n const { label, disabled } = child.props as TabContentProps;\n return (\n <Trigger\n className=\"data-[state='active']:tab-shadow ata-disabled:cursor-not-allowed data-disabled:text-gray-400 flex h-7 flex-1 items-center justify-center rounded-lg transition duration-300 data-[state='active']:bg-gray-50 data-[state='active']:text-gray-900\"\n key={label as string}\n value={label as string}\n disabled={disabled ?? false}\n >\n {label as string}\n </Trigger>\n );\n })}\n </List>\n </div>\n <div className=\"mt-3 min-h-0 flex-1 rounded-md bg-white\">\n {React.Children.map(children, (child, i) => {\n if (!React.isValidElement(child)) return;\n const { label } = child.props as TabContentProps;\n return (\n <Content className=\"h-full\" value={label as string} key={i}>\n {child}\n </Content>\n );\n })}\n </div>\n </Root>\n );\n}\n","import { JsonViewer } from \"#design-system/ui/components/json-viewer/json-viewer.js\";\nimport { useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { TabContent } from \"../tabs/tab-content.js\";\nimport { Tabs } from \"../tabs/tabs.js\";\n\ninterface DocumentStateViewerProps {\n state: Record<string, unknown>;\n ignoredScopes?: string[];\n defaultScope?: string;\n className?: string;\n}\n\nfunction formatScopeLabel(text: string) {\n if (!text) return \"\"; // Handle empty strings or null\n return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();\n}\n\nexport function DocumentStateViewer({\n state,\n ignoredScopes = [\"auth\", \"document\"],\n defaultScope,\n className,\n}: DocumentStateViewerProps) {\n const scopes = useMemo(\n () => Object.keys(state).filter((scope) => !ignoredScopes.includes(scope)),\n [state, ignoredScopes],\n );\n\n const initialScope = defaultScope || scopes.at(0) || \"global\";\n\n if (scopes.length === 0) {\n return <div className=\"text-sm text-gray-500\">No state data</div>;\n }\n\n return (\n <Tabs defaultValue={formatScopeLabel(initialScope)}>\n {scopes.map((scope) => (\n <TabContent\n key={scope}\n label={formatScopeLabel(scope)}\n description={scope}\n >\n <div\n className={twMerge(\n \"-mt-2 rounded-md border border-gray-300 bg-gray-50 p-3 font-mono text-sm\",\n className,\n )}\n >\n <JsonViewer data={state[scope] as object} />\n </div>\n </TabContent>\n ))}\n </Tabs>\n );\n}\n","import { useDocumentById } from \"@powerhousedao/reactor-browser\";\nimport { redo, undo } from \"@powerhousedao/shared/document-model\";\n\nexport function useDocumentUndoRedo(documentId?: string) {\n const [document, dispatch] = useDocumentById(documentId);\n\n const globalRevisionNumber = document?.header.revision.global ?? 0;\n const localRevisionNumber = document?.header.revision.local ?? 0;\n\n const canUndo = globalRevisionNumber > 0 || localRevisionNumber > 0;\n const canRedo = !!document?.clipboard.length;\n\n const handleUndo = () => {\n dispatch(undo());\n };\n const handleRedo = () => {\n dispatch(redo());\n };\n\n return {\n undo: handleUndo,\n redo: handleRedo,\n canUndo,\n canRedo,\n };\n}\n","import { Icon } from \"#design-system\";\nimport {\n exportDocument,\n setSelectedNode,\n setSelectedTimelineItem,\n showRevisionHistory,\n useGetSwitchboardLink,\n useNodeActions,\n useNodeParentFolderById,\n useSelectedDocumentSafe,\n} from \"@powerhousedao/reactor-browser\";\nimport type { Node } from \"@powerhousedao/shared/document-drive\";\nimport type { PHDocument } from \"@powerhousedao/shared/document-model\";\nimport {\n Suspense,\n lazy,\n useEffect,\n useState,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { NodeInput } from \"../node-input/node-input.js\";\nimport { useDocumentUndoRedo } from \"./utils/use-document-undo-redo.js\";\n\nconst DocumentTimeline = lazy(() =>\n import(\"../document-timeline/document-timeline.js\").then((m) => ({\n default: m.DocumentTimeline,\n })),\n);\n\n// TODO: Remove this when timeline analytics is available\n// import { useDocumentTimeline } from \"@powerhousedao/reactor-browser\";\nfunction useDocumentTimeline(documentId?: string) {\n return [];\n}\n\nexport type DocumentToolbarControl =\n | \"undo\"\n | \"redo\"\n | \"export\"\n | \"history\"\n | \"timeline\";\n\ntype DocumentToolbarBaseProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Additional CSS class names to apply to the toolbar container.\n */\n className?: string;\n /**\n * Array of controls to show in the toolbar.\n * @default [\"undo\", \"redo\", \"export\", \"switchboard\", \"history\", \"timeline\"]\n */\n enabledControls?: DocumentToolbarControl[];\n /**\n * Disables the revision history button when set to true.\n * @default false\n */\n disableRevisionHistory?: boolean;\n /**\n * Callback function triggered when the switchboard link button is clicked.\n * If not provided, will use the default behavior of opening the document in switchboard.\n * The button will only be shown for documents in remote drives.\n */\n onSwitchboardLinkClick?: () => void;\n /**\n * Custom export handler for the document.\n * If not provided, will use the default export functionality.\n */\n onExport?: (document: PHDocument) => void;\n /**\n * Controls whether the timeline is visible when the component first renders.\n * @default false\n */\n initialTimelineVisible?: boolean;\n /**\n * Controls whether the timeline toggle button is shown in the toolbar.\n * @default true\n */\n defaultTimelineVisible?: boolean;\n};\n\nexport type DocumentToolbarProps = DocumentToolbarBaseProps &\n (\n | {\n /**\n * The document object to display in the toolbar.\n * When provided, the onClose callback becomes required.\n */\n document: PHDocument;\n /**\n * Callback function triggered when the close button is clicked.\n * Required when a document is provided.\n */\n onClose: () => void;\n }\n | {\n /**\n * The document object to display in the toolbar.\n * When undefined, will fall back to the currently selected document.\n */\n document?: undefined;\n /**\n * Callback function triggered when the close button is clicked.\n * Optional when no document is provided - defaults to navigating back to the parent folder.\n */\n onClose?: () => void;\n }\n );\n\nexport const DocumentToolbar: React.FC<DocumentToolbarProps> = (props) => {\n const {\n onClose,\n children,\n onExport,\n className,\n document: _document,\n onSwitchboardLinkClick,\n enabledControls = [\"undo\", \"redo\", \"export\", \"history\"],\n defaultTimelineVisible = true,\n disableRevisionHistory = false,\n initialTimelineVisible = false,\n ...containerProps\n } = props;\n\n const [selectedDocument] = useSelectedDocumentSafe();\n const document = _document ?? selectedDocument;\n const { onRenameNode, onRenameDriveNodes } = useNodeActions();\n\n const documentName = document?.header.name || undefined;\n const [isEditingName, setIsEditingName] = useState(false);\n const parentFolder = useNodeParentFolderById(document?.header.id);\n const handleClose = onClose ?? (() => setSelectedNode(parentFolder));\n const handleExport = async (doc: PHDocument | undefined) => {\n if (!doc) return;\n if (onExport) {\n onExport(doc);\n } else {\n await exportDocument(doc);\n }\n };\n\n const documentUndoRedo = useDocumentUndoRedo(document?.header.id);\n const isUndoDisabled = !documentUndoRedo.canUndo;\n const isRedoDisabled = !documentUndoRedo.canRedo;\n\n const timelineItemsData = useDocumentTimeline(document?.header.id);\n\n const [showTimeline, setShowTimeline] = useState(initialTimelineVisible);\n\n const getSwitchboardLink = useGetSwitchboardLink(document);\n\n const handleDefaultSwitchboardClick = async () => {\n if (getSwitchboardLink) {\n try {\n const url = await getSwitchboardLink();\n window.open(url, \"_blank\");\n } catch (error) {\n console.error(\"Error opening switchboard link:\", error);\n }\n }\n };\n\n const resolvedSwitchboardHandler =\n onSwitchboardLinkClick ??\n (getSwitchboardLink ? handleDefaultSwitchboardClick : undefined);\n\n const isExportDisabled = !document;\n const isSwitchboardLinkDisabled = !resolvedSwitchboardHandler;\n const isTimelineDisabled = timelineItemsData.length === 0;\n\n useEffect(() => {\n if (typeof initialTimelineVisible === \"boolean\") {\n setShowTimeline(initialTimelineVisible);\n }\n }, [initialTimelineVisible]);\n\n const handleTimelineToggle = () => {\n if (isTimelineDisabled) return;\n setShowTimeline(!showTimeline);\n };\n\n return (\n <div className=\"flex w-full flex-col\" {...containerProps}>\n <div\n className={twMerge(\n \"flex h-12 w-full items-center justify-between rounded-xl border border-gray-200 bg-slate-50 px-4\",\n className,\n )}\n >\n <div className=\"flex items-center gap-x-2\">\n {enabledControls.includes(\"undo\") && (\n <button\n className={twMerge(\n \"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white\",\n isUndoDisabled\n ? \"cursor-not-allowed\"\n : \"cursor-pointer active:opacity-70\",\n )}\n onClick={documentUndoRedo.undo}\n disabled={isUndoDisabled}\n >\n <Icon\n name=\"ArrowCouterclockwise\"\n size={16}\n className={isUndoDisabled ? \"text-gray-500\" : \"text-gray-900\"}\n />\n </button>\n )}\n {enabledControls.includes(\"redo\") && (\n <button\n className={twMerge(\n \"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white\",\n isRedoDisabled\n ? \"cursor-not-allowed\"\n : \"cursor-pointer active:opacity-70\",\n )}\n onClick={documentUndoRedo.redo}\n disabled={isRedoDisabled}\n >\n <div className=\"-scale-x-100\">\n <Icon\n name=\"ArrowCouterclockwise\"\n size={16}\n className={isRedoDisabled ? \"text-gray-500\" : \"text-gray-900\"}\n />\n </div>\n </button>\n )}\n {enabledControls.includes(\"export\") && (\n <button\n className={twMerge(\n \"flex h-8 items-center rounded-lg border border-gray-200 bg-white px-3 text-sm\",\n isExportDisabled\n ? \"cursor-not-allowed\"\n : \"cursor-pointer active:opacity-70\",\n )}\n onClick={() => void handleExport(document)}\n disabled={isExportDisabled}\n >\n <span\n className={isExportDisabled ? \"text-gray-500\" : \"text-gray-900\"}\n >\n Export\n </span>\n </button>\n )}\n </div>\n\n <div className=\"flex items-center\">\n {isEditingName && document ? (\n <NodeInput\n defaultValue={documentName}\n className=\"text-center text-sm font-medium text-gray-500\"\n aria-label=\"Document name\"\n onCancel={() => setIsEditingName(false)}\n onSubmit={(newName) => {\n const node = { id: document.header.id } as Node;\n\n Promise.all([\n onRenameNode(newName, node),\n onRenameDriveNodes(newName, document.header.id),\n ])\n .then(() => setIsEditingName(false))\n .catch((error: unknown) => {\n console.error(\"Failed to rename document:\", error);\n setIsEditingName(false);\n });\n }}\n />\n ) : (\n <h1\n className={twMerge(\n \"text-sm font-medium text-gray-500\",\n document && \"cursor-pointer hover:text-gray-700\",\n )}\n onDoubleClick={\n document ? () => setIsEditingName(true) : undefined\n }\n title={document ? \"Double-click to edit\" : undefined}\n >\n {documentName}\n </h1>\n )}\n </div>\n\n <div className=\"flex items-center gap-x-2\">\n {!isSwitchboardLinkDisabled && (\n <button\n className={twMerge(\n \"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white\",\n \"cursor-pointer active:opacity-70\",\n )}\n onClick={resolvedSwitchboardHandler}\n disabled={isSwitchboardLinkDisabled}\n >\n <Icon name=\"Drive\" size={16} className=\"text-gray-900\" />\n </button>\n )}\n {enabledControls.includes(\"history\") && (\n <button\n className={twMerge(\n \"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white\",\n disableRevisionHistory\n ? \"cursor-not-allowed\"\n : \"cursor-pointer active:opacity-70\",\n )}\n onClick={showRevisionHistory}\n disabled={disableRevisionHistory}\n >\n <Icon\n name=\"History\"\n size={16}\n className={\n disableRevisionHistory ? \"text-gray-500\" : \"text-gray-900\"\n }\n />\n </button>\n )}\n {enabledControls.includes(\"timeline\") && defaultTimelineVisible && (\n <button\n className={twMerge(\n \"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white\",\n isTimelineDisabled\n ? \"cursor-not-allowed\"\n : \"cursor-pointer active:opacity-70\",\n )}\n onClick={handleTimelineToggle}\n disabled={isTimelineDisabled}\n aria-pressed={showTimeline}\n >\n <Icon\n name=\"Timeline\"\n size={16}\n className={twMerge(\n \"text-gray-900\",\n isTimelineDisabled && \"opacity-50\",\n showTimeline && \"text-blue-600\",\n )}\n />\n </button>\n )}\n <button\n id=\"close-document-button\"\n aria-label=\"Close document\"\n className=\"grid size-8 cursor-pointer place-items-center rounded-lg border border-gray-200 bg-white active:opacity-70\"\n onClick={handleClose}\n >\n <Icon name=\"XmarkLight\" size={16} className=\"text-gray-900\" />\n </button>\n </div>\n </div>\n\n {showTimeline && (\n <div className=\"mt-2 w-full\">\n <Suspense fallback={null}>\n <DocumentTimeline\n timeline={timelineItemsData}\n onItemClick={setSelectedTimelineItem}\n />\n </Suspense>\n </div>\n )}\n {children}\n </div>\n );\n};\n","import { useNodeActions } from \"@powerhousedao/reactor-browser\";\nimport type { Node } from \"@powerhousedao/shared/document-drive\";\nimport type { DragEvent } from \"react\";\nimport { useCallback, useMemo, useRef, useState } from \"react\";\n\ntype Props = {\n target?: Node | undefined;\n onAddFileOverride?: (file: File, parent: Node | undefined) => Promise<void>;\n /**\n * When true, uses drag depth tracking with onDragEnter/onDragLeave\n * to avoid flicker when moving across child elements.\n * Defaults to false to preserve legacy behavior.\n */\n trackNestedDrag?: boolean;\n /**\n * Array of accepted file extensions (e.g., ['.zip', '.phd', '.phdm'])\n * If not provided, all files are accepted\n */\n acceptedFileExtensions?: string[];\n};\nexport function useDrop(props?: Props) {\n const {\n target,\n onAddFileOverride,\n trackNestedDrag = false,\n acceptedFileExtensions,\n } = props ?? {};\n const [isDropTarget, setIsDropTarget] = useState(false);\n const dragDepthRef = useRef(0);\n const {\n onMoveNode,\n onCopyNode,\n onAddFile: defaultOnAddFile,\n } = useNodeActions();\n const onAddFile = onAddFileOverride ?? defaultOnAddFile;\n\n /**\n * Check if the dragged content is valid based on accepted file extensions\n */\n const isValidDropContent = useCallback(\n (dataTransfer: DataTransfer): boolean => {\n if (!acceptedFileExtensions || acceptedFileExtensions.length === 0) {\n return true;\n }\n\n // Always allow internal node dragging\n if (dataTransfer.types.includes(\"UI_NODE\")) {\n return true;\n }\n\n // Check if dragging files\n if (dataTransfer.types.includes(\"Files\")) {\n const items = Array.from(dataTransfer.items);\n\n if (items.length === 0) {\n return true;\n }\n\n return items.some((item) => {\n if (item.kind === \"file\") {\n // Check MIME types for zip files\n if (\n item.type === \"application/zip\" ||\n item.type === \"application/x-zip-compressed\"\n ) {\n return acceptedFileExtensions.includes(\".zip\");\n }\n\n // For custom extensions (.phd, .phdm), browsers might not report\n // a specific MIME type (they show as '' or 'application/octet-stream')\n // We allow these through and do stricter validation on drop\n if (item.type === \"\" || item.type === \"application/octet-stream\") {\n return true;\n }\n }\n return false;\n });\n }\n\n return false;\n },\n [acceptedFileExtensions],\n );\n\n const onDragOver = useCallback(\n (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n const isValid = isValidDropContent(event.dataTransfer);\n\n if (isValid) {\n setIsDropTarget(true);\n } else {\n // Visual feedback that dropping is not allowed\n event.dataTransfer.dropEffect = \"none\";\n }\n },\n [isValidDropContent],\n );\n\n const onDragEnter = useCallback(\n (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n const isValid = isValidDropContent(event.dataTransfer);\n\n if (isValid) {\n dragDepthRef.current += 1;\n setIsDropTarget(true);\n }\n },\n [isValidDropContent],\n );\n\n const onDragLeaveDepth = useCallback((event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);\n if (dragDepthRef.current === 0) {\n setIsDropTarget(false);\n }\n }, []);\n\n const onDragLeaveSimple = useCallback(() => {\n setIsDropTarget(false);\n }, []);\n\n const onDrop = useCallback(\n async (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n\n const dropTarget = event.target as HTMLElement;\n const closestDropZone = dropTarget.closest(\"[data-drop-zone]\");\n\n const dropZoneId = target?.id || \"root\";\n const closestDropZoneId =\n closestDropZone?.getAttribute(\"data-drop-zone\") || \"root\";\n\n if (closestDropZoneId !== dropZoneId) {\n setIsDropTarget(false);\n return;\n }\n\n try {\n let droppedFiles = getDroppedFiles(event.dataTransfer.items).filter(\n Boolean,\n );\n\n // Filter files by accepted extensions if specified\n if (acceptedFileExtensions && acceptedFileExtensions.length > 0) {\n droppedFiles = droppedFiles.filter((file) => {\n if (!file) return false;\n const fileName = file.name.toLowerCase();\n return acceptedFileExtensions.some((ext) =>\n fileName.endsWith(ext.toLowerCase()),\n );\n });\n }\n\n if (droppedFiles.length) {\n for (const file of droppedFiles) {\n if (file) {\n await onAddFile(file, target);\n }\n }\n return;\n }\n const altOrOptionKeyPressed = event.getModifierState(\"Alt\");\n const data = event.dataTransfer.getData(\"UI_NODE\");\n const droppedNode = JSON.parse(data) as Node;\n\n if (altOrOptionKeyPressed) {\n await onCopyNode(droppedNode, target);\n } else {\n await onMoveNode(droppedNode, target);\n }\n } catch (error) {\n console.error(error);\n } finally {\n if (trackNestedDrag) dragDepthRef.current = 0;\n setIsDropTarget(false);\n }\n },\n [onAddFile, onCopyNode, onMoveNode, target, trackNestedDrag],\n );\n\n return useMemo(() => {\n const baseProps: Record<string, unknown> = {\n onDragOver,\n onDrop,\n \"data-drop-zone\": target?.id || \"root\",\n };\n\n if (trackNestedDrag) {\n baseProps.onDragEnter = onDragEnter;\n baseProps.onDragLeave = onDragLeaveDepth;\n } else {\n baseProps.onDragLeave = onDragLeaveSimple;\n }\n\n return {\n isDropTarget,\n dropProps: baseProps,\n };\n }, [\n isDropTarget,\n target?.id,\n onDragEnter,\n onDragLeaveDepth,\n onDragLeaveSimple,\n onDragOver,\n onDrop,\n trackNestedDrag,\n ]);\n}\n\nfunction getDroppedFiles(items: DataTransferItemList) {\n const droppedFiles = Array.from(items)\n .map((item) => (item.kind === \"file\" ? item.getAsFile() : null))\n .filter(Boolean);\n\n return droppedFiles;\n}\n","import type { DivProps } from \"#design-system\";\nimport { Icon, mergeClassNameProps, Modal } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst buttonStyles =\n \"min-h-[48px] min-w-[142px] text-base font-semibold py-3 px-6 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\ntype ButtonProps = ComponentPropsWithoutRef<\"button\">;\n\nexport type ConnectReplaceDuplicateModalProps = ComponentPropsWithoutRef<\n typeof Modal\n> & {\n readonly title?: string;\n readonly fileName?: string;\n readonly message?: string;\n readonly onReplace: () => void;\n readonly onDuplicate: () => void;\n readonly replaceLabel?: string;\n readonly duplicateLabel?: string;\n readonly bodyProps?: DivProps;\n readonly replaceButtonProps?: ButtonProps;\n readonly duplicateButtonProps?: ButtonProps;\n readonly headerProps?: DivProps;\n readonly buttonContainerProps?: DivProps;\n readonly containerProps?: DivProps;\n};\n\nexport function ConnectReplaceDuplicateModal(\n props: ConnectReplaceDuplicateModalProps,\n) {\n const {\n title = \"Document Already Exists\",\n fileName,\n message,\n children,\n onReplace,\n onOpenChange,\n onDuplicate,\n replaceLabel = \"Replace\",\n duplicateLabel = \"Create Copy\",\n overlayProps,\n contentProps,\n bodyProps = {},\n headerProps = {},\n containerProps = {},\n replaceButtonProps = {},\n duplicateButtonProps = {},\n buttonContainerProps = {},\n ...restProps\n } = props;\n\n const defaultMessage = fileName\n ? `A document named \"${fileName}\" already exists in this location. Would you like to replace it or create a copy?`\n : \"A document with the same name already exists in this location. Would you like to replace it or create a copy?\";\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <div\n {...mergeClassNameProps(containerProps, \"w-[450px] p-6 text-slate-300\")}\n >\n <div className=\"flex items-center justify-between border-b border-slate-50 pb-2\">\n <div\n {...mergeClassNameProps(\n headerProps,\n \"text-2xl font-bold text-gray-800\",\n )}\n >\n {title}\n </div>\n <button\n type=\"button\"\n className=\"flex size-6 items-center justify-center rounded-md outline-none hover:bg-slate-100\"\n onClick={() => onOpenChange?.(false)}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <div\n {...mergeClassNameProps(\n bodyProps,\n \"my-6 rounded-md bg-slate-50 p-4 text-center\",\n )}\n >\n {message || defaultMessage}\n {children}\n </div>\n <div\n {...mergeClassNameProps(\n buttonContainerProps,\n \"mt-8 flex justify-between gap-3\",\n )}\n >\n <button\n onClick={onReplace}\n {...mergeClassNameProps(\n replaceButtonProps,\n twMerge(buttonStyles, \"flex-1 bg-slate-50 text-slate-800\"),\n )}\n >\n {replaceLabel}\n </button>\n <button\n onClick={onDuplicate}\n {...mergeClassNameProps(\n duplicateButtonProps,\n twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\"),\n )}\n >\n {duplicateLabel}\n </button>\n </div>\n </div>\n </Modal>\n );\n}\n","import type { UploadFileItemStatus } from \"../upload-file-item.js\";\n\ntype ErrorDetailsProps = {\n readonly status: UploadFileItemStatus;\n readonly errorDetails?: string;\n};\n\nexport function UploadFileItemErrorDetails(props: ErrorDetailsProps) {\n const { status, errorDetails } = props;\n\n if (\n !(\n (status === \"failed\" || status === \"unsupported-document-type\") &&\n errorDetails\n )\n )\n return null;\n\n return (\n <div className=\"break-words text-xs leading-[18px] text-gray-500\">\n {errorDetails}\n </div>\n );\n}\n","import type { IconName } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport type { DocumentTypeIcon } from \"@powerhousedao/reactor-browser\";\nimport type { ComponentPropsWithoutRef } from \"react\";\ntype HeaderProps = ComponentPropsWithoutRef<\"div\"> & {\n readonly fileName: string;\n readonly fileSize: string;\n readonly documentType?: DocumentTypeIcon;\n readonly onClose?: () => void;\n};\n\nfunction getDocumentIcon(documentType?: DocumentTypeIcon): IconName {\n switch (documentType) {\n case \"analytics-processor\":\n return \"AnalyticsProcessorModule\";\n case \"relational-processor\":\n return \"RelationalProcessorModule\";\n case \"codegen-processor\":\n return \"CodegenProcessorModule\";\n case \"app\":\n return \"AppModule\";\n case \"document-model\":\n return \"DocumentModelModule\";\n case \"editor\":\n return \"EditorModule\";\n case \"package\":\n return \"PackageModule\";\n case \"subgraph\":\n return \"SubgraphModule\";\n default:\n return \"PowerhouseDocumentModule\";\n }\n}\n\nexport function UploadFileItemHeader(props: HeaderProps) {\n const { fileName, fileSize, documentType, onClose, ...delegatedProps } =\n props;\n\n return (\n <div className=\"flex items-center gap-2\" {...delegatedProps}>\n <div className=\"flex h-9 w-7 flex-shrink-0 items-center justify-center\">\n <Icon\n name={getDocumentIcon(documentType)}\n size={48}\n className=\"text-gray-600\"\n />\n </div>\n\n <div className=\"flex flex-1 flex-col gap-0.5\">\n <div className=\"text-xs font-medium leading-[18px] text-gray-900\">\n {fileName}\n </div>\n <div className=\"text-xs font-medium leading-[18px] text-gray-500\">\n {fileSize}\n </div>\n </div>\n\n {onClose && (\n <div className=\"flex h-9 w-[18px] flex-shrink-0 items-start justify-center\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"flex h-[18px] w-[18px] items-center justify-center text-gray-600 hover:text-gray-800\"\n aria-label=\"Close\"\n >\n <Icon name=\"XmarkLight\" size={18} />\n </button>\n </div>\n )}\n </div>\n );\n}\n","import type { UploadFileItemStatus } from \"../upload-file-item.js\";\n\ntype ProgressBarProps = {\n readonly status: UploadFileItemStatus;\n readonly progress?: number;\n};\n\nexport function UploadFileItemProgressBar(props: ProgressBarProps) {\n const { status, progress = 0 } = props;\n\n if (status !== \"uploading\") return null;\n\n const clamped = Math.min(100, Math.max(0, progress));\n\n return (\n <div className=\"h-2 w-full overflow-hidden rounded-sm bg-gray-200\">\n <div\n className=\"h-full bg-blue-900 transition-all duration-300 ease-out\"\n style={{ width: `${clamped}%` }}\n />\n </div>\n );\n}\n","import { twMerge } from \"tailwind-merge\";\nimport type { UploadFileItemStatus } from \"../upload-file-item.js\";\n\ntype StatusRowProps = {\n readonly status: UploadFileItemStatus;\n readonly progress?: number;\n readonly onOpenDocument?: () => void;\n readonly onFindResolution?: () => void;\n};\n\nfunction getStatusText(status: UploadFileItemStatus): string {\n switch (status) {\n case \"success\":\n return \"Upload successful\";\n case \"failed\":\n return \"Upload failed\";\n case \"unsupported-document-type\":\n return \"Document not supported by this drive\";\n case \"pending\":\n return \"Pending resolution\";\n case \"conflict\":\n return \"Pending Resolution\";\n case \"uploading\":\n return \"Uploading...\";\n default:\n return \"\";\n }\n}\n\nfunction getStatusColor(status: UploadFileItemStatus): string {\n switch (status) {\n case \"success\":\n return \"text-green-700\";\n case \"failed\":\n case \"unsupported-document-type\":\n case \"pending\":\n case \"conflict\":\n return \"text-red-900\";\n case \"uploading\":\n return \"text-gray-900\";\n default:\n return \"text-gray-900\";\n }\n}\n\nfunction shouldShowCTA(\n status: UploadFileItemStatus,\n onOpenDocument?: () => void,\n onFindResolution?: () => void,\n): boolean {\n return (\n (status === \"success\" && Boolean(onOpenDocument)) ||\n (status === \"pending\" && Boolean(onFindResolution)) ||\n (status === \"conflict\" && Boolean(onFindResolution))\n );\n}\n\nfunction getCTAText(status: UploadFileItemStatus): string {\n if (status === \"success\") return \"Open Document\";\n if (status === \"pending\") return \"Find resolution\";\n if (status === \"conflict\") return \"Find resolution\";\n return \"\";\n}\n\nexport function UploadFileItemStatusRow(props: StatusRowProps) {\n const { status, progress = 0, onOpenDocument, onFindResolution } = props;\n\n const handleCTAClick = () => {\n if (status === \"success\" && onOpenDocument) onOpenDocument();\n else if (\n (status === \"pending\" || status === \"conflict\") &&\n onFindResolution\n )\n onFindResolution();\n };\n\n return (\n <div className=\"flex items-center justify-between gap-2\">\n <div\n className={twMerge(\"text-xs leading-[18px]\", getStatusColor(status))}\n >\n {getStatusText(status)}\n </div>\n\n {status === \"uploading\" && (\n <div className=\"text-xs font-medium leading-[18px] text-gray-900\">\n {Math.round(progress)}%\n </div>\n )}\n\n {shouldShowCTA(status, onOpenDocument, onFindResolution) && (\n <button\n type=\"button\"\n onClick={handleCTAClick}\n className=\"text-xs leading-[18px] text-blue-900 hover:opacity-80\"\n >\n {getCTAText(status)}\n </button>\n )}\n </div>\n );\n}\n","import type { DocumentTypeIcon } from \"@powerhousedao/reactor-browser\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { UploadFileItemErrorDetails } from \"./components/error-details.js\";\nimport { UploadFileItemHeader } from \"./components/header.js\";\nimport { UploadFileItemProgressBar } from \"./components/progress-bar.js\";\nimport { UploadFileItemStatusRow } from \"./components/status-row.js\";\n\nexport type UploadFileItemStatus =\n | \"success\"\n | \"failed\"\n | \"pending\"\n | \"uploading\"\n | \"conflict\"\n | \"unsupported-document-type\";\n\nexport type UploadFileItemProps = ComponentPropsWithoutRef<\"div\"> & {\n readonly fileName: string;\n readonly fileSize: string;\n readonly status: UploadFileItemStatus;\n readonly documentType?: DocumentTypeIcon;\n readonly progress?: number;\n readonly errorDetails?: string;\n readonly onClose?: () => void;\n readonly onOpenDocument?: () => void;\n readonly onFindResolution?: () => void;\n};\n\nexport const UploadFileItem = forwardRef<HTMLDivElement, UploadFileItemProps>(\n function UploadFileItem(props, ref) {\n const {\n fileName,\n fileSize,\n status,\n documentType,\n progress = 0,\n errorDetails,\n onClose,\n onOpenDocument,\n onFindResolution,\n className,\n ...delegatedProps\n } = props;\n\n return (\n <div\n ref={ref}\n className={twMerge(\n \"flex w-full flex-col gap-0.5 rounded-md border border-gray-100 bg-white p-2 shadow-[0_2px_12px_rgba(37,42,52,0.1)]\",\n className,\n )}\n {...delegatedProps}\n >\n <UploadFileItemHeader\n fileName={fileName}\n fileSize={fileSize}\n documentType={documentType}\n onClose={onClose}\n />\n\n <div className=\"flex flex-col gap-1\">\n <UploadFileItemStatusRow\n status={status}\n progress={progress}\n onOpenDocument={onOpenDocument}\n onFindResolution={onFindResolution}\n />\n <UploadFileItemProgressBar status={status} progress={progress} />\n <UploadFileItemErrorDetails\n status={status}\n errorDetails={errorDetails}\n />\n </div>\n </div>\n );\n },\n);\n","export function getUploadListTitle(\n count: number,\n explicitTitle?: string,\n): string {\n if (explicitTitle) return explicitTitle;\n return `Uploading ${count} document${count === 1 ? \"\" : \"s\"}`;\n}\n","import { Icon } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport {\n type UploadFileItemProps,\n UploadFileItem,\n} from \"../upload-file-item/upload-file-item.js\";\nimport { getUploadListTitle } from \"./utils.js\";\n\nexport type UploadFileListProps = ComponentPropsWithoutRef<\"div\"> & {\n readonly items: ReadonlyArray<UploadFileItemProps>;\n readonly title?: string;\n readonly defaultCollapsed?: boolean;\n readonly onClose?: () => void;\n};\n\nexport function UploadFileList(props: UploadFileListProps) {\n const {\n items,\n title,\n defaultCollapsed = false,\n onClose,\n className,\n ...delegatedProps\n } = props;\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(defaultCollapsed);\n\n const computedTitle = useMemo(\n () => getUploadListTitle(items.length, title),\n [items.length, title],\n );\n\n return (\n <div\n className={twMerge(\n \"w-[358px] rounded-md border border-gray-100 bg-gray-50 p-4 shadow-[1px_4px_15px_rgba(74,88,115,0.25)]\",\n className,\n )}\n {...delegatedProps}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <button\n type=\"button\"\n aria-expanded={!isCollapsed}\n aria-label={isCollapsed ? \"Expand list\" : \"Collapse list\"}\n onClick={() => setIsCollapsed((v) => !v)}\n className=\"min-w-0 flex-1 text-left text-sm font-medium leading-4 text-gray-900 hover:opacity-80\"\n >\n {computedTitle}\n </button>\n\n <div className=\"flex shrink-0 items-center gap-4\">\n {/* Collapse / Expand Toggle */}\n <button\n type=\"button\"\n aria-label={isCollapsed ? \"Expand\" : \"Collapse\"}\n onClick={() => setIsCollapsed((v) => !v)}\n className=\"text-gray-900 hover:opacity-80\"\n >\n <span\n className={twMerge(\n \"inline-block h-4 w-4 select-none transition-transform\",\n isCollapsed ? \"-rotate-90\" : \"rotate-0\",\n )}\n >\n <Icon name=\"CaretDown\" size={16} aria-hidden=\"true\" />\n </span>\n </button>\n\n {/* Close Button */}\n {onClose && (\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className=\"text-gray-900 hover:opacity-80\"\n >\n <span className=\"inline-block h-4 w-4 select-none\">\n <Icon name=\"XmarkLight\" size={16} aria-hidden=\"true\" />\n </span>\n </button>\n )}\n </div>\n </div>\n\n {/* Body (collapsible) */}\n {!isCollapsed && (\n <div className=\"mt-4 flex max-h-[404px] flex-col gap-4 overflow-y-auto overflow-x-visible px-2 py-2\">\n {items.map((item, idx) => (\n <UploadFileItem key={`${item.fileName}-${idx}`} {...item} />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import type {\n ConflictResolution,\n DocumentTypeIcon,\n FileUploadProgress,\n} from \"@powerhousedao/reactor-browser\";\nimport type { Node } from \"@powerhousedao/shared/document-drive\";\nimport type { UploadFileItemProps } from \"../upload-file-item/upload-file-item.js\";\n\n// Upload tracking types\nexport type UploadTracker = {\n id: string;\n fileName: string;\n fileSize: string;\n status:\n | \"pending\"\n | \"uploading\"\n | \"success\"\n | \"failed\"\n | \"conflict\"\n | \"unsupported-document-type\";\n progress: number;\n errorDetails?: string;\n fileNode?: Node;\n documentType?: DocumentTypeIcon;\n // Store upload context for re-processing conflicts\n file?: File;\n parentNode?: Node;\n duplicateType?: \"id\" | \"name\";\n};\n\nexport type OnAddFileWithProgress = (\n file: File,\n parent: Node | undefined,\n onProgress?: (progress: FileUploadProgress) => void,\n resolveConflict?: ConflictResolution,\n) => Promise<Node | undefined> | Node | undefined;\n\n// Utility functions\nexport function generateId(): string {\n return `upload_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;\n}\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;\n}\n\nexport function mapProgressStageToStatus(\n stage: FileUploadProgress[\"stage\"],\n): UploadTracker[\"status\"] {\n switch (stage) {\n case \"loading\":\n case \"initializing\":\n return \"pending\";\n case \"uploading\":\n return \"uploading\";\n case \"complete\":\n return \"success\";\n case \"failed\":\n return \"failed\";\n case \"conflict\":\n return \"conflict\";\n case \"unsupported-document-type\":\n return \"unsupported-document-type\";\n default:\n return \"pending\";\n }\n}\n\nexport function mapUploadsToFileItems(\n uploadsArray: (UploadTracker | undefined)[],\n removeUpload: (uploadId: string) => void,\n setSelectedNodeFn?: (nodeOrNodeSlug: Node | string | undefined) => void,\n onConflictResolution?: (uploadId: string) => void,\n): UploadFileItemProps[] {\n return uploadsArray\n .filter(\n (upload): upload is NonNullable<typeof upload> => upload !== undefined,\n )\n .map((upload) => ({\n fileName: upload.fileName,\n fileSize: upload.fileSize,\n status: upload.status,\n progress: upload.progress,\n errorDetails: upload.errorDetails,\n documentType: upload.documentType,\n onClose: () => {\n removeUpload(upload.id);\n },\n onOpenDocument:\n upload.status === \"success\"\n ? () => {\n if (upload.fileNode && setSelectedNodeFn) {\n setSelectedNodeFn(upload.fileNode);\n } else {\n console.error(\n \"Opening document for upload:\",\n upload.id,\n \"- fileNode not available or setSelectedNode not provided\",\n );\n }\n }\n : undefined,\n onFindResolution:\n upload.status === \"failed\"\n ? () => {\n console.log(\"Finding resolution for upload:\", upload.id);\n }\n : upload.status === \"conflict\"\n ? () => {\n console.log(\n \"Finding conflict resolution for upload:\",\n upload.id,\n );\n onConflictResolution?.(upload.id);\n }\n : undefined,\n }));\n}\n","import type { Node } from \"@powerhousedao/shared/document-drive\";\nimport { type ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { UploadFileList } from \"../upload-file-list/upload-file-list.js\";\nimport { mapUploadsToFileItems, type UploadTracker } from \"./utils.js\";\n\nexport type UploadFileListContainerProps = ComponentPropsWithoutRef<\"div\"> & {\n readonly uploadsArray: (UploadTracker | undefined)[];\n readonly uploadsCount: number;\n readonly removeUpload: (uploadId: string) => void;\n readonly clearAllUploads: () => void;\n readonly setSelectedNode?: (\n nodeOrNodeSlug: Node | string | undefined,\n ) => void;\n readonly onClose?: () => void;\n readonly onConflictResolution?: (uploadId: string) => void;\n};\n\nexport function UploadFileListContainer(props: UploadFileListContainerProps) {\n const {\n uploadsArray,\n uploadsCount,\n removeUpload,\n clearAllUploads,\n setSelectedNode,\n onClose,\n onConflictResolution,\n className,\n ...delegatedProps\n } = props;\n\n // Don't render if there are no uploads\n if (uploadsCount === 0) return null;\n\n const items = mapUploadsToFileItems(\n uploadsArray,\n removeUpload,\n setSelectedNode,\n onConflictResolution,\n );\n\n const handleClose = onClose ?? clearAllUploads;\n\n return (\n <div\n className={twMerge(\"fixed bottom-4 right-4 z-[1001]\", className)}\n {...delegatedProps}\n >\n <UploadFileList items={items} onClose={handleClose} />\n </div>\n );\n}\n","import type {\n ConflictResolution,\n FileUploadProgress,\n} from \"@powerhousedao/reactor-browser\";\nimport type { Node } from \"@powerhousedao/shared/document-drive\";\nimport { useCallback, useEffect, useReducer } from \"react\";\nimport {\n type OnAddFileWithProgress,\n type UploadTracker,\n formatFileSize,\n generateId,\n mapProgressStageToStatus,\n} from \"./utils.js\";\n\n// State type\ntype UploadsState = {\n [uploadId: string]: UploadTracker | undefined;\n};\n\n// Action types\ntype UploadAction =\n | {\n type: \"ADD_UPLOAD\";\n payload: {\n id: string;\n fileName: string;\n fileSize: string;\n };\n }\n | {\n type: \"UPDATE_PROGRESS\";\n payload: {\n id: string;\n progress: FileUploadProgress;\n };\n }\n | {\n type: \"SET_FILE_NODE\";\n payload: {\n id: string;\n fileNode?: Node;\n };\n }\n | {\n type: \"SET_ERROR\";\n payload: {\n id: string;\n error: string;\n };\n }\n | {\n type: \"REMOVE_UPLOAD\";\n payload: {\n id: string;\n };\n }\n | {\n type: \"CLEAR_ALL_UPLOADS\";\n }\n | {\n type: \"SET_CONFLICT_DATA\";\n payload: {\n id: string;\n file: File;\n parentNode?: Node;\n };\n }\n | {\n type: \"CLEAR_CONFLICTED_UPLOADS\";\n };\n\n// Reducer function\nfunction uploadsReducer(\n state: UploadsState,\n action: UploadAction,\n): UploadsState {\n switch (action.type) {\n case \"ADD_UPLOAD\":\n return {\n ...state,\n [action.payload.id]: {\n id: action.payload.id,\n fileName: action.payload.fileName,\n fileSize: action.payload.fileSize,\n status: \"pending\",\n progress: 0,\n fileNode: undefined,\n },\n };\n\n case \"UPDATE_PROGRESS\": {\n const currentUpload = state[action.payload.id];\n if (!currentUpload) return state;\n\n return {\n ...state,\n [action.payload.id]: {\n ...currentUpload,\n status: mapProgressStageToStatus(action.payload.progress.stage),\n progress: action.payload.progress.progress,\n errorDetails: action.payload.progress.error,\n // Update documentType if provided\n ...(action.payload.progress.documentType && {\n documentType: action.payload.progress.documentType,\n }),\n // Update duplicateType if provided (for conflicts)\n ...(action.payload.progress.duplicateType && {\n duplicateType: action.payload.progress.duplicateType,\n }),\n // Update fileNode if provided (for deferred uploads after discovery)\n ...(action.payload.progress.fileNode && {\n fileNode: action.payload.progress.fileNode,\n }),\n },\n };\n }\n\n case \"SET_FILE_NODE\": {\n const uploadToUpdate = state[action.payload.id];\n if (!uploadToUpdate) return state;\n\n return {\n ...state,\n [action.payload.id]: {\n ...uploadToUpdate,\n fileNode: action.payload.fileNode,\n },\n };\n }\n\n case \"SET_ERROR\": {\n const failedUpload = state[action.payload.id];\n if (!failedUpload) return state;\n\n return {\n ...state,\n [action.payload.id]: {\n ...failedUpload,\n status: failedUpload.status || \"failed\",\n errorDetails: action.payload.error,\n },\n };\n }\n\n case \"REMOVE_UPLOAD\": {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload.id]: removed, ...rest } = state;\n return rest;\n }\n\n case \"CLEAR_ALL_UPLOADS\": {\n return {};\n }\n\n case \"SET_CONFLICT_DATA\": {\n const conflictUpload = state[action.payload.id];\n if (!conflictUpload) return state;\n\n return {\n ...state,\n [action.payload.id]: {\n ...conflictUpload,\n file: action.payload.file,\n parentNode: action.payload.parentNode,\n },\n };\n }\n\n case \"CLEAR_CONFLICTED_UPLOADS\": {\n // Filter out all uploads with status \"conflict\"\n const filteredUploads: UploadsState = {};\n for (const [id, upload] of Object.entries(state)) {\n if (upload && upload.status !== \"conflict\") {\n filteredUploads[id] = upload;\n }\n }\n return filteredUploads;\n }\n\n default:\n return state;\n }\n}\n\n// Hook\nexport function useUploadTracker(useLocalStorage = false, driveId?: string) {\n const getInitialState = useCallback((): UploadsState => {\n if (useLocalStorage && driveId) {\n try {\n const stored = localStorage.getItem(`uploadTracker_${driveId}`);\n if (stored) {\n const parsed = JSON.parse(stored) as UploadsState;\n return parsed;\n }\n return {};\n } catch (error) {\n console.error(\n \"Failed to load upload tracker from localStorage:\",\n error,\n );\n return {};\n }\n }\n return {};\n }, [useLocalStorage, driveId]);\n\n const [uploads, dispatch] = useReducer(uploadsReducer, getInitialState());\n\n // Save to localStorage whenever uploads change\n useEffect(() => {\n if (useLocalStorage && driveId) {\n try {\n localStorage.setItem(\n `uploadTracker_${driveId}`,\n JSON.stringify(uploads),\n );\n } catch (error) {\n console.error(\"Failed to save upload tracker to localStorage:\", error);\n }\n }\n }, [uploads, useLocalStorage, driveId]);\n\n const createUploadHandler = useCallback(\n (onAddFile?: OnAddFileWithProgress) => {\n if (!onAddFile) return undefined;\n\n return async (file: File, parent: Node | undefined) => {\n const fileId = generateId();\n\n // Add upload to tracking\n dispatch({\n type: \"ADD_UPLOAD\",\n payload: {\n id: fileId,\n fileName: file.name,\n fileSize: formatFileSize(file.size),\n },\n });\n\n // Create progress callback for this specific file\n const progressCallback = (progress: FileUploadProgress) => {\n dispatch({\n type: \"UPDATE_PROGRESS\",\n payload: {\n id: fileId,\n progress,\n },\n });\n\n // Store file and parent data when conflict is detected\n if (progress.stage === \"conflict\") {\n dispatch({\n type: \"SET_CONFLICT_DATA\",\n payload: {\n id: fileId,\n file,\n parentNode: parent,\n },\n });\n }\n };\n\n try {\n // Call the original onAddFile with our progress callback\n const fileNode = await onAddFile(file, parent, progressCallback);\n\n // Store the FileNode\n dispatch({\n type: \"SET_FILE_NODE\",\n payload: {\n id: fileId,\n fileNode: fileNode || undefined,\n },\n });\n } catch (error) {\n dispatch({\n type: \"SET_ERROR\",\n payload: {\n id: fileId,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n });\n }\n };\n },\n [],\n );\n\n const removeUpload = useCallback((uploadId: string) => {\n dispatch({\n type: \"REMOVE_UPLOAD\",\n payload: {\n id: uploadId,\n },\n });\n }, []);\n\n const clearAllUploads = useCallback(() => {\n dispatch({\n type: \"CLEAR_ALL_UPLOADS\",\n });\n }, []);\n\n const clearConflictedUploads = useCallback(() => {\n dispatch({\n type: \"CLEAR_CONFLICTED_UPLOADS\",\n });\n }, []);\n\n const getUploadsArray = useCallback(() => {\n return Object.values(uploads);\n }, [uploads]);\n\n const getUploadsCount = useCallback(() => {\n return Object.keys(uploads).length;\n }, [uploads]);\n\n const resolveConflict = useCallback(\n (\n uploadId: string,\n resolution: ConflictResolution,\n onAddFile?: OnAddFileWithProgress,\n ) => {\n const upload = uploads[uploadId];\n if (!upload?.file || !onAddFile) {\n console.error(\n \"Cannot resolve conflict: missing upload data or onAddFile function\",\n );\n return;\n }\n\n // Re-call onAddFile with the conflict resolution\n const progressCallback = (progress: FileUploadProgress) => {\n dispatch({\n type: \"UPDATE_PROGRESS\",\n payload: {\n id: uploadId,\n progress,\n },\n });\n };\n\n const result = onAddFile(\n upload.file,\n upload.parentNode,\n progressCallback,\n resolution,\n );\n\n // Handle both Promise and direct return values\n Promise.resolve(result)\n .then((fileNode: Node | undefined) => {\n if (fileNode) {\n dispatch({\n type: \"SET_FILE_NODE\",\n payload: {\n id: uploadId,\n fileNode,\n },\n });\n }\n })\n .catch((error: unknown) => {\n dispatch({\n type: \"SET_ERROR\",\n payload: {\n id: uploadId,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n });\n });\n },\n [uploads],\n );\n\n return {\n uploads,\n uploadsArray: getUploadsArray(),\n uploadsCount: getUploadsCount(),\n createUploadHandler,\n removeUpload,\n clearAllUploads,\n clearConflictedUploads,\n resolveConflict,\n };\n}\n","import { Icon } from \"#design-system\";\nimport { setSelectedNode } from \"@powerhousedao/reactor-browser\";\nimport type { Node } from \"@powerhousedao/shared/document-drive\";\nimport {\n type ComponentPropsWithoutRef,\n type ReactNode,\n useEffect,\n useState,\n} from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useDrop } from \"../../hooks/use-drop.js\";\nimport { ConnectReplaceDuplicateModal } from \"../modal/replace-duplicate-modal.js\";\nimport { UploadFileListContainer } from \"./upload-file-list-container.js\";\nimport { useUploadTracker } from \"./use-upload-tracker.js\";\nimport { type OnAddFileWithProgress } from \"./utils.js\";\n\nexport type DropZoneProps = ComponentPropsWithoutRef<\"div\"> & {\n readonly title?: string;\n readonly subtitle?: string;\n readonly node?: Node;\n readonly enable?: boolean;\n readonly children?: ReactNode;\n readonly onAddFile?: OnAddFileWithProgress;\n readonly useLocalStorage?: boolean;\n readonly driveId?: string;\n readonly acceptedFileExtensions?: string[];\n};\n\nexport function DropZone(props: DropZoneProps) {\n const {\n title = \"Drag your documents\",\n subtitle = \"to drop them in the currently selected folder.\",\n node,\n enable = true,\n children,\n onAddFile,\n useLocalStorage = false,\n driveId,\n acceptedFileExtensions = [\".zip\", \".phd\", \".phdm\"],\n className,\n ...delegatedProps\n } = props;\n\n // Modal state for conflict resolution\n const [modalOpen, setModalOpen] = useState(false);\n const [conflictUploadId, setConflictUploadId] = useState<string | null>(null);\n\n // Upload tracking with the new hook\n const {\n uploadsArray,\n uploadsCount,\n createUploadHandler,\n clearAllUploads,\n clearConflictedUploads,\n removeUpload,\n resolveConflict,\n } = useUploadTracker(useLocalStorage, driveId);\n\n // Clear conflicted uploads on mount\n useEffect(() => {\n clearConflictedUploads();\n }, []);\n\n // Create the upload handler from the hook\n const handleAddFile = createUploadHandler(onAddFile) ?? (async () => {});\n\n // Handle conflict resolution modal\n const handleConflictResolution = (uploadId: string) => {\n setConflictUploadId(uploadId);\n setModalOpen(true);\n };\n\n const handleReplace = () => {\n if (conflictUploadId && onAddFile) {\n resolveConflict(conflictUploadId, \"replace\", onAddFile);\n }\n setModalOpen(false);\n setConflictUploadId(null);\n };\n\n const handleDuplicate = () => {\n if (conflictUploadId && onAddFile) {\n resolveConflict(conflictUploadId, \"duplicate\", onAddFile);\n }\n setModalOpen(false);\n setConflictUploadId(null);\n };\n\n const handleModalClose = () => {\n setModalOpen(false);\n setConflictUploadId(null);\n };\n\n const { isDropTarget, dropProps } = useDrop({\n target: node,\n onAddFileOverride: handleAddFile,\n trackNestedDrag: true,\n acceptedFileExtensions,\n });\n\n return (\n <div\n className={twMerge(\"relative\", className)}\n {...(enable ? dropProps : {})}\n {...delegatedProps}\n >\n {children}\n\n {enable && isDropTarget && (\n <div className=\"fixed inset-0 z-[1000] flex min-h-screen w-screen items-center justify-center bg-black/50\">\n <div className=\"rounded-[24px] bg-white p-6 shadow-[1px_4px_15px_rgba(74,88,115,0.25)]\">\n <div className=\"relative flex h-[130px] w-[400px] flex-col items-center justify-start overflow-visible rounded-lg border border-dashed border-black px-4 py-6\">\n <div className=\"text-center text-base leading-5 text-zinc-500\">\n {title}\n </div>\n <div className=\"text-center text-base leading-5 text-zinc-500\">\n {subtitle}\n </div>\n\n <span className=\"pointer-events-none absolute -bottom-16 left-1/2 z-10 -translate-x-1/2\">\n <Icon name=\"DocumentIcons\" size={144} aria-hidden=\"true\" />\n </span>\n </div>\n </div>\n </div>\n )}\n\n {/* Upload File List - positioned at bottom right */}\n <UploadFileListContainer\n uploadsArray={uploadsArray}\n uploadsCount={uploadsCount}\n removeUpload={removeUpload}\n clearAllUploads={clearAllUploads}\n setSelectedNode={setSelectedNode}\n onConflictResolution={handleConflictResolution}\n />\n\n {/* Conflict Resolution Modal */}\n <ConnectReplaceDuplicateModal\n open={modalOpen}\n onOpenChange={handleModalClose}\n fileName={\n conflictUploadId\n ? uploadsArray.find((u) => u?.id === conflictUploadId)?.fileName\n : undefined\n }\n onReplace={handleReplace}\n onDuplicate={handleDuplicate}\n />\n </div>\n );\n}\n","import {\n useIsDragAndDropEnabled,\n useOnDropFile,\n useSelectedDriveId,\n} from \"@powerhousedao/reactor-browser\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { DropZone } from \"./drop-zone.js\";\nimport type { OnAddFileWithProgress } from \"./utils.js\";\n\nexport function DropZoneWrapper({\n children,\n ...props\n}: { children: React.ReactNode } & ComponentPropsWithoutRef<\"div\">) {\n const isDragAndDropEnabled = useIsDragAndDropEnabled();\n const selectedDriveId = useSelectedDriveId();\n\n const onDropFile = useOnDropFile();\n\n const onAddFile: OnAddFileWithProgress = async (\n file,\n parent,\n onProgress,\n resolveConflict,\n ) => {\n return await onDropFile(file, onProgress, resolveConflict);\n };\n\n if (!isDragAndDropEnabled || !selectedDriveId) {\n return <>{children}</>;\n }\n\n return (\n <DropZone\n onAddFile={onAddFile}\n driveId={selectedDriveId}\n useLocalStorage={true}\n {...props}\n >\n {children}\n </DropZone>\n );\n}\n","import {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"#design-system\";\nimport type { ReactNode } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type ConnectDropdownMenuItem<TItemId extends string> = {\n id: TItemId;\n label: ReactNode;\n icon?: React.JSX.Element;\n className?: string;\n};\n\nexport interface ConnectDropdownMenuProps<TItemId extends string> {\n readonly children: ReactNode;\n readonly items: ConnectDropdownMenuItem<TItemId>[];\n readonly open?: boolean;\n readonly onItemClick: (id: TItemId) => void;\n readonly onOpenChange?: (open: boolean) => void;\n readonly menuClassName?: string;\n}\n\nexport function ConnectDropdownMenu<TItemId extends string>(\n props: ConnectDropdownMenuProps<TItemId>,\n) {\n const { children, items, open, onItemClick, onOpenChange, menuClassName } =\n props;\n\n return (\n <DropdownMenu onOpenChange={onOpenChange} open={open}>\n <DropdownMenuTrigger asChild className=\"outline-none\">\n {children}\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={twMerge(\n \"cursor-pointer rounded-2xl border border-gray-200 bg-white text-sm font-medium text-slate-500 shadow-lg\",\n menuClassName,\n )}\n >\n {items.map(({ id, label, icon, className }) => (\n <DropdownMenuItem\n className={twMerge(\n \"flex items-center px-5 py-2 outline-none first-of-type:rounded-t-2xl first-of-type:pt-3 last-of-type:rounded-b-2xl last-of-type:pb-3 hover:bg-slate-50\",\n className,\n )}\n key={id}\n onClick={(e) => e.stopPropagation()}\n onSelect={() => onItemClick(id)}\n >\n {icon ? <span className=\"mr-2 inline-block\">{icon}</span> : null}\n {label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import { Icon } from \"#design-system\";\n\nexport type EditorActionButtonsProps = {\n readonly onSwitchboardLinkClick?: (() => void) | undefined;\n readonly onExport?: (() => void) | undefined;\n readonly onClose: () => void;\n readonly onShowRevisionHistory?: (() => void) | undefined;\n readonly onShowTimeline?: (() => void) | undefined;\n};\n\nexport function EditorActionButtons(props: EditorActionButtonsProps) {\n const {\n onSwitchboardLinkClick,\n onExport,\n onClose,\n onShowRevisionHistory,\n onShowTimeline,\n } = props;\n\n return (\n <div className=\"flex items-center gap-x-2\">\n {onSwitchboardLinkClick && (\n <button\n className=\"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500\"\n onClick={onSwitchboardLinkClick}\n disabled={!onSwitchboardLinkClick}\n >\n <Icon name=\"Drive\" size={16} />\n </button>\n )}\n {onShowRevisionHistory && (\n <button\n className=\"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500\"\n onClick={onShowRevisionHistory}\n disabled={!onShowRevisionHistory}\n >\n <Icon name=\"History\" size={16} />\n </button>\n )}\n {onShowTimeline && (\n <button\n className=\"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500\"\n onClick={onShowTimeline}\n disabled={!onShowTimeline}\n >\n <Icon name=\"Timeline\" size={16} />\n </button>\n )}\n <button\n className=\"grid size-8 place-items-center rounded-lg border border-gray-200 bg-white text-gray-900\"\n onClick={onClose}\n >\n <Icon name=\"XmarkLight\" size={16} />\n </button>\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type EditorUndoRedoButtonsProps = {\n readonly canUndo: boolean;\n readonly canRedo: boolean;\n readonly undo: () => void;\n readonly redo: () => void;\n};\nexport function EditorUndoRedoButtons(props: EditorUndoRedoButtonsProps) {\n const { canUndo, canRedo, undo, redo } = props;\n const buttonStyles =\n \"w-8 h-8 rounded-lg flex justify-center items-center rounded border border-gray-200\";\n return (\n <div className=\"flex gap-x-2 text-gray-500\">\n <button className={buttonStyles} disabled={!canUndo} onClick={undo}>\n <Icon\n className={twMerge(\n \"-scale-x-100\",\n canUndo ? \"text-gray-900 active:opacity-50\" : \"text-gray-500\",\n )}\n name=\"RedoArrow\"\n size={18}\n />\n </button>\n <button className={buttonStyles} disabled={!canRedo} onClick={redo}>\n <Icon\n className={twMerge(\n canRedo ? \"text-gray-900 active:opacity-50\" : \"text-gray-500\",\n )}\n name=\"RedoArrow\"\n size={18}\n />\n </button>\n </div>\n );\n}\n","\"data:image/png;base64,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\"","import ImgPowerhouse from \"#assets/powerhouse-rounded.png\";\nimport type { CSSProperties } from \"react\";\n\ntype Props = {\n readonly address: `0x${string}`;\n readonly chainId?: number;\n readonly avatarUrl?: string;\n readonly size?: CSSProperties[\"width\"];\n};\nexport function ENSAvatar(props: Props) {\n const { avatarUrl = ImgPowerhouse, size = \"14px\" } = props;\n const style = {\n width: size,\n height: size,\n };\n\n return (\n <img\n alt=\"ENS Avatar\"\n className=\"flex-none rounded-full object-contain\"\n src={avatarUrl}\n style={style}\n />\n );\n}\n","\"data:image/png;base64,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\"","import type {\n DebugNodeOption,\n NodeOption,\n NormalNodeOption,\n OptionMetadata,\n} from \"#design-system\";\nimport { Icon } from \"../../powerhouse/components/icon/icon.js\";\n\nexport const defaultDriveOptions = [\n \"NEW_FOLDER\",\n \"RENAME\",\n \"SETTINGS\",\n] as const;\n\nexport const defaultNodeOptions = [\"RENAME\", \"DELETE\", \"DUPLICATE\"] as const;\n\nexport const normalNodeOptions = [\n \"DUPLICATE\",\n \"RENAME\",\n \"DELETE\",\n \"SETTINGS\",\n] as const;\n\nexport const debugNodeOptions = [\n \"ADD_TRIGGER\",\n \"REMOVE_TRIGGER\",\n \"ADD_INVALID_TRIGGER\",\n] as const;\n\nexport const nodeOptions = [...normalNodeOptions, ...debugNodeOptions] as const;\n\nexport const sharingTypeOptions = [\n {\n value: \"LOCAL\",\n icon: <Icon name=\"Lock\" size={16} />,\n description: \"Only available to you\",\n },\n {\n value: \"CLOUD\",\n icon: <Icon name=\"People\" size={16} />,\n description: \"Only available to people in this drive\",\n },\n {\n value: \"PUBLIC\",\n icon: <Icon name=\"Globe\" size={16} />,\n description: \"Available to everyone\",\n disabled: true,\n },\n] as const;\n\nexport const locationInfoByLocation = {\n CLOUD: {\n title: \"Secure cloud\",\n description: \"End to end encryption between members.\",\n icon: <Icon name=\"Lock\" size={16} />,\n },\n LOCAL: {\n title: \"Local\",\n description: \"Private and only available to you.\",\n icon: <Icon name=\"Hdd\" size={16} />,\n },\n SWITCHBOARD: {\n title: \"Switchboard\",\n description: \"Public and available to everyone.\",\n icon: <Icon name=\"Drive\" size={16} />,\n },\n} as const;\n\nexport const debugNodeOptionsMap: Record<DebugNodeOption, OptionMetadata> = {\n [\"ADD_TRIGGER\"]: {\n label: \"Add Trigger\",\n icon: <Icon className=\"text-orange-900\" name=\"Plus\" size={16} />,\n },\n [\"REMOVE_TRIGGER\"]: {\n label: \"Remove Trigger\",\n icon: <Icon className=\"text-orange-900\" name=\"Xmark\" size={16} />,\n },\n [\"ADD_INVALID_TRIGGER\"]: {\n label: \"Add Trigger\",\n icon: <Icon className=\"text-orange-900\" name=\"Exclamation\" size={16} />,\n },\n} as const;\n\nexport const normalNodeOptionsMap: Record<NormalNodeOption, OptionMetadata> = {\n DUPLICATE: {\n label: \"Duplicate\",\n icon: <Icon name=\"FilesEarmark\" size={16} />,\n },\n RENAME: {\n label: \"Rename\",\n icon: <Icon name=\"Pencil\" size={16} />,\n },\n DELETE: {\n label: \"Delete\",\n icon: <Icon name=\"Trash\" size={16} />,\n className: \"text-red-900\",\n },\n SETTINGS: {\n label: \"Settings\",\n icon: <Icon name=\"Gear\" size={16} />,\n },\n} as const;\n\nexport const nodeOptionsMap: Record<NodeOption, OptionMetadata> = {\n ...debugNodeOptionsMap,\n ...normalNodeOptionsMap,\n} as const;\n","import type { Node } from \"@powerhousedao/shared/document-drive\";\nimport type { DragEvent } from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\n\ntype Props = {\n node: Node;\n};\nexport function useDrag(props: Props) {\n const { node } = props;\n const [isDragging, setIsDragging] = useState(false);\n\n const onDragStart = useCallback(\n (event: DragEvent<HTMLDivElement>) => {\n event.dataTransfer.setData(\"UI_NODE\", JSON.stringify(node));\n },\n [node],\n );\n\n const onDragEnd = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n return useMemo(() => {\n return {\n isDragging,\n dragProps: {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n };\n }, [isDragging, onDragEnd, onDragStart]);\n}\n","export const SYNCING = \"SYNCING\";\nexport const SUCCESS = \"SUCCESS\";\nexport const CONFLICT = \"CONFLICT\";\nexport const MISSING = \"MISSING\";\nexport const ERROR = \"ERROR\";\nexport const INITIAL_SYNC = \"INITIAL_SYNC\";\n\nexport const syncStatuses = [\n INITIAL_SYNC,\n SYNCING,\n SUCCESS,\n CONFLICT,\n MISSING,\n ERROR,\n] as const;\n","import type { IconName, SyncStatus } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport {\n CONFLICT,\n ERROR,\n INITIAL_SYNC,\n MISSING,\n SUCCESS,\n SYNCING,\n} from \"../../constants/syncing.js\";\n\nconst syncIcons: Record<SyncStatus, IconName> = {\n SYNCING: \"Syncing\",\n SUCCESS: \"Synced\",\n CONFLICT: \"Error\",\n MISSING: \"Circle\",\n ERROR: \"Error\",\n INITIAL_SYNC: \"Syncing\",\n};\n\nexport type SyncStatusIconProps = Omit<\n ComponentPropsWithoutRef<typeof Icon>,\n \"name\"\n> & {\n syncStatus: SyncStatus;\n overrideSyncIcons?: Partial<Record<SyncStatus, IconName>>;\n};\nexport function SyncStatusIcon(props: SyncStatusIconProps) {\n const { syncStatus, className, overrideSyncIcons = {}, ...iconProps } = props;\n\n const icons = { ...syncIcons, ...overrideSyncIcons };\n\n const syncStatusIcons = {\n [INITIAL_SYNC]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-blue-900\", className)}\n name={icons[INITIAL_SYNC]}\n />\n ),\n [SYNCING]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-blue-900\", className)}\n name={icons[SYNCING]}\n />\n ),\n [SUCCESS]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-green-900\", className)}\n name={icons[SUCCESS]}\n />\n ),\n [CONFLICT]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-orange-900\", className)}\n name={icons[CONFLICT]}\n />\n ),\n [MISSING]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-red-900\", className)}\n name={icons[MISSING]}\n />\n ),\n [ERROR]: (\n <Icon\n size={16}\n {...iconProps}\n className={twMerge(\"text-red-900\", className)}\n name={icons[ERROR]}\n />\n ),\n } as const;\n\n return syncStatusIcons[syncStatus];\n}\n","import DefaultImg from \"#assets/icons/template.png\";\nimport type { NodeOption } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport {\n getSyncStatusSync,\n setSelectedNode,\n showDeleteNodeModal,\n useNodeActions,\n useSelectedDriveSafe,\n useUserPermissions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n DocumentDriveDocument,\n FileNode,\n SharingType,\n} from \"@powerhousedao/shared/document-drive\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { defaultNodeOptions, nodeOptionsMap } from \"../../constants/options.js\";\nimport { useDrag } from \"../../hooks/use-drag.js\";\nimport { ConnectDropdownMenu } from \"../dropdown-menu/dropdown-menu.js\";\nimport { NodeInput } from \"../node-input/node-input.js\";\nimport { SyncStatusIcon } from \"../status-icon/sync-status-icon.js\";\n\nfunction getDriveSharingType(drive: DocumentDriveDocument): SharingType {\n if (typeof drive !== \"object\") return \"LOCAL\";\n const isReadDrive = \"readContext\" in drive;\n const { sharingType: _sharingType } = !isReadDrive\n ? drive.state.local\n : { sharingType: \"PUBLIC\" };\n const __sharingType = _sharingType?.toUpperCase();\n const validTypes: string[] = [\"LOCAL\", \"CLOUD\", \"PUBLIC\"];\n return !__sharingType ||\n __sharingType === \"PRIVATE\" ||\n !validTypes.includes(__sharingType)\n ? \"LOCAL\"\n : (__sharingType as SharingType);\n}\n\ntype Props = {\n fileNode: FileNode;\n className?: string;\n customDocumentIconSrc?: string;\n};\n\nexport function FileItem(props: Props) {\n const { fileNode, className, customDocumentIconSrc } = props;\n const [mode, setMode] = useState<\"READ\" | \"WRITE\">(\"READ\");\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const [selectedDrive] = useSelectedDriveSafe();\n const sharingType = selectedDrive\n ? getDriveSharingType(selectedDrive)\n : \"LOCAL\";\n const { dragProps } = useDrag({ node: fileNode });\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const { onRenameNode, onRenameDriveNodes, onDuplicateNode } =\n useNodeActions();\n const isReadMode = mode === \"READ\";\n const syncStatus = getSyncStatusSync(fileNode.id, sharingType);\n\n const dropdownMenuHandlers = {\n DUPLICATE: () => onDuplicateNode(fileNode),\n RENAME: () => setMode(\"WRITE\"),\n DELETE: () => showDeleteNodeModal(fileNode),\n } as const;\n\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id as NodeOption,\n }))\n .filter((option) =>\n defaultNodeOptions.includes(\n option.id as (typeof defaultNodeOptions)[number],\n ),\n );\n\n function onSubmit(name: string) {\n Promise.all([\n onRenameNode(name, fileNode),\n onRenameDriveNodes(name, fileNode.id),\n ])\n .catch((error: unknown) => {\n console.error(error);\n })\n .finally(() => {\n setMode(\"READ\");\n });\n }\n\n function onCancel() {\n setMode(\"READ\");\n }\n\n function onDropdownMenuOptionClick(itemId: NodeOption) {\n const handler =\n dropdownMenuHandlers[itemId as keyof typeof dropdownMenuHandlers];\n if (!handler) {\n console.error(`No handler found for dropdown menu item: ${itemId}`);\n return;\n }\n handler();\n setIsDropdownMenuOpen(false);\n }\n\n const iconSrc = customDocumentIconSrc || DefaultImg;\n\n const iconNode = (\n <div className=\"relative\">\n <img\n alt=\"file icon\"\n className=\"max-w-none\"\n height={34}\n src={iconSrc}\n width={32}\n />\n {isReadMode && syncStatus && (\n <div className=\"absolute bottom-[-2px] right-0 size-3 rounded-full bg-white\">\n <div className=\"absolute left-[-2px] top-[-2px]\">\n <SyncStatusIcon\n overrideSyncIcons={{ SUCCESS: \"CheckCircleFill\" }}\n syncStatus={syncStatus}\n />\n </div>\n </div>\n )}\n </div>\n );\n\n const containerStyles = twMerge(\n \"group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2 text-gray-600 hover:text-gray-800\",\n className,\n );\n\n const content = isReadMode ? (\n <div className=\"flex w-52 items-center justify-between\">\n <div className=\"mr-2 truncate group-hover:mr-0\">\n <div className=\"max-h-6 truncate text-sm font-medium group-hover:text-gray-800\">\n {fileNode.name}\n </div>\n <div className=\"max-h-6 truncate text-xs font-medium text-gray-600 group-hover:text-gray-800\">\n {fileNode.documentType}\n </div>\n </div>\n {isAllowedToCreateDocuments ? (\n <ConnectDropdownMenu\n items={dropdownMenuOptions}\n onItemClick={onDropdownMenuOptionClick}\n onOpenChange={setIsDropdownMenuOpen}\n open={isDropdownMenuOpen}\n >\n <button\n className={twMerge(\n \"hidden group-hover:block\",\n isDropdownMenuOpen && \"block\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }}\n >\n <Icon className=\"text-gray-600\" name=\"VerticalDots\" />\n </button>\n </ConnectDropdownMenu>\n ) : null}\n </div>\n ) : (\n <NodeInput\n className=\"ml-3 flex-1 font-medium\"\n defaultValue={fileNode.name}\n onCancel={onCancel}\n onSubmit={onSubmit}\n />\n );\n\n return (\n <div\n className=\"relative w-64\"\n onClick={isReadMode ? () => setSelectedNode(fileNode) : undefined}\n >\n <div {...dragProps} className={containerStyles}>\n <div className=\"flex items-center\">\n <div className=\"mr-1.5\">{iconNode}</div>\n {content}\n </div>\n </div>\n </div>\n );\n}\n","import type { NodeOption } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport {\n setSelectedNode,\n showDeleteNodeModal,\n useNodeActions,\n useUserPermissions,\n} from \"@powerhousedao/reactor-browser\";\nimport type { FolderNode } from \"@powerhousedao/shared/document-drive\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { defaultNodeOptions, nodeOptionsMap } from \"../../constants/options.js\";\nimport { useDrag } from \"../../hooks/use-drag.js\";\nimport { useDrop } from \"../../hooks/use-drop.js\";\nimport { ConnectDropdownMenu } from \"../dropdown-menu/dropdown-menu.js\";\nimport { NodeInput } from \"../node-input/node-input.js\";\n\nexport function FolderItem(props: {\n folderNode: FolderNode;\n className?: string;\n}) {\n const { folderNode, className } = props;\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const [mode, setMode] = useState<\"READ\" | \"WRITE\">(\"READ\");\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const { dragProps } = useDrag({ node: folderNode });\n const { onRenameNode, onRenameDriveNodes, onDuplicateNode } =\n useNodeActions();\n const { isDropTarget, dropProps } = useDrop({\n target: folderNode,\n });\n const isReadMode = mode === \"READ\";\n function onCancel() {\n setMode(\"READ\");\n }\n\n function onSubmit(name: string) {\n Promise.all([\n onRenameNode(name, folderNode),\n onRenameDriveNodes(name, folderNode.id),\n ])\n .catch((error: unknown) => {\n console.error(error);\n })\n .finally(() => {\n setMode(\"READ\");\n });\n }\n\n const dropdownMenuHandlers: Partial<Record<NodeOption, () => void>> = {\n DUPLICATE: () => onDuplicateNode(folderNode),\n RENAME: () => setMode(\"WRITE\"),\n DELETE: () => showDeleteNodeModal(folderNode),\n } as const;\n\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id as NodeOption,\n }))\n .filter((option) =>\n defaultNodeOptions.includes(\n option.id as (typeof defaultNodeOptions)[number],\n ),\n );\n\n function onDropdownMenuOptionClick(itemId: NodeOption) {\n const handler = dropdownMenuHandlers[itemId];\n if (!handler) {\n console.error(`No handler found for dropdown menu item: ${itemId}`);\n return;\n }\n handler();\n setIsDropdownMenuOpen(false);\n }\n\n const content =\n isReadMode || !isAllowedToCreateDocuments ? (\n <div className=\"ml-3 max-h-6 truncate font-medium text-gray-600 group-hover:text-gray-800\">\n {folderNode.name}\n </div>\n ) : (\n <NodeInput\n className=\"ml-3 font-medium\"\n defaultValue={folderNode.name}\n onCancel={onCancel}\n onSubmit={onSubmit}\n />\n );\n\n const containerStyles = twMerge(\n \"group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2\",\n className,\n isDropTarget && \"bg-blue-100\",\n );\n\n return (\n <div\n className=\"relative w-64\"\n onClick={isReadMode ? () => setSelectedNode(folderNode) : undefined}\n >\n <div {...dragProps} {...dropProps} className={containerStyles}>\n <div className=\"flex items-center overflow-hidden\">\n <div className=\"p-1\">\n <div className=\"relative\">\n <Icon name=\"FolderClose\" size={24} />\n </div>\n </div>\n {content}\n </div>\n {isReadMode && isAllowedToCreateDocuments ? (\n <ConnectDropdownMenu\n items={dropdownMenuOptions}\n onItemClick={onDropdownMenuOptionClick}\n onOpenChange={setIsDropdownMenuOpen}\n open={isDropdownMenuOpen}\n >\n <button\n className={twMerge(\n \"ml-auto hidden group-hover:block\",\n isDropdownMenuOpen && \"block\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }}\n >\n <Icon className=\"text-gray-600\" name=\"VerticalDots\" />\n </button>\n </ConnectDropdownMenu>\n ) : null}\n </div>\n </div>\n );\n}\n","import { mergeClassNameProps } from \"#design-system\";\n\ntype FooterLinkProps<E extends React.ElementType> = {\n readonly as?: E;\n} & React.ComponentPropsWithRef<E>;\n\nexport function FooterLink<E extends React.ElementType = \"a\">(\n props: FooterLinkProps<E>,\n) {\n const { as: Component = \"a\", ...restProps } = props;\n\n return (\n <Component\n {...mergeClassNameProps(\n restProps,\n \"flex cursor-pointer items-center hover:underline\",\n )}\n />\n );\n}\n","import { mergeClassNameProps } from \"#design-system\";\n\nexport const Footer: React.FC<React.HTMLAttributes<HTMLElement>> = ({\n children,\n ...props\n}) => {\n return (\n <footer\n {...mergeClassNameProps(\n props,\n \"flex items-center gap-x-6 text-xs font-medium text-[#9DA6B9]\",\n )}\n >\n {children}\n </footer>\n );\n};\n","import type { ComponentPropsWithRef, ForwardedRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport { twJoin, twMerge } from \"tailwind-merge\";\n\ntype InputProps = ComponentPropsWithRef<\"input\">;\ntype FormInputProps = Omit<InputProps, \"className\"> & {\n readonly icon?: React.JSX.Element;\n readonly errorMessage?: string;\n readonly isTouched?: boolean;\n readonly isDirty?: boolean;\n readonly type?: \"text\" | \"password\" | \"email\" | \"url\";\n readonly inputClassName?: string;\n readonly containerClassName?: string;\n readonly errorMessageClassName?: string;\n readonly hideErrors?: boolean;\n};\nexport const FormInput = forwardRef(function FormInput(\n props: FormInputProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const {\n icon,\n errorMessage,\n isDirty,\n containerClassName,\n inputClassName,\n errorMessageClassName,\n hideErrors = false,\n ...delegatedProps\n } = props;\n const type = props.type ?? \"text\";\n const isError = !!errorMessage;\n return (\n <div>\n <div\n className={twMerge(\n \"mb-1 flex gap-2 rounded-md border border-gray-200 bg-gray-50 p-3 text-black placeholder:text-gray-50\",\n isError && \"border-red-900\",\n containerClassName,\n )}\n >\n {icon && (\n <span className={twJoin((!isDirty || isError) && \"text-slate-200\")}>\n {icon}\n </span>\n )}\n\n <input\n {...delegatedProps}\n className={twMerge(\n \"w-full bg-transparent font-semibold outline-none\",\n inputClassName,\n )}\n ref={ref}\n type={type}\n />\n </div>\n <p\n className={twMerge(\n \"hidden min-h-4 text-xs text-red-900\",\n isError && \"block\",\n hideErrors && \"hidden\",\n errorMessageClassName,\n )}\n >\n {errorMessage}\n </p>\n </div>\n );\n});\n","import { Icon, type AppOptions } from \"#design-system\";\nimport type { ComponentPropsWithRef } from \"react\";\nimport type { Control, Path } from \"react-hook-form\";\nimport { Controller } from \"react-hook-form\";\nimport type { ConnectSelectItem } from \"../../select/select.js\";\nimport { ConnectSelect } from \"../../select/select.js\";\n\nexport function appToInputOption(app: AppOptions): ConnectSelectItem<string> {\n return {\n value: app.id,\n displayValue: app.name,\n icon: <Icon name=\"PowerhouseLogoSmall\" />,\n description: \"Built by Powerhouse\",\n };\n}\ntype AppFormInputProps<T extends AppOptions> = Omit<\n ComponentPropsWithRef<typeof ConnectSelect>,\n \"id\" | \"items\" | \"value\" | \"onChange\"\n> & {\n readonly control: Control<T>;\n readonly appOptions: T[];\n};\n\nexport function AppFormInput<T extends AppOptions>(\n props: AppFormInputProps<T>,\n) {\n const { control, appOptions, ...delegatedProps } = props;\n const items = appOptions.map(appToInputOption);\n\n return (\n <Controller\n control={control}\n name={\"id\" as Path<T>}\n render={({ field }) => (\n <ConnectSelect {...delegatedProps} {...field} id=\"id\" items={items} />\n )}\n />\n );\n}\n","import type { ComponentPropsWithRef, ForwardedRef } from \"react\";\nimport { forwardRef } from \"react\";\n\ntype ToggleProps = Omit<ComponentPropsWithRef<\"input\">, \"type\">;\n\nexport const Toggle = forwardRef(function Toggle(\n props: ToggleProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n return (\n <label className=\"relative cursor-pointer items-center\" htmlFor={props.id}>\n <input\n className=\"peer sr-only\"\n ref={ref}\n type=\"checkbox\"\n value=\"\"\n {...props}\n />\n <div className=\"peer h-6 w-11 rounded-full bg-gray-500 after:absolute after:start-0.5 after:top-0.5 after:size-5 after:rounded-full after:border after:border-none after:bg-gray-50 after:transition-all peer-checked:bg-blue-900 peer-checked:after:translate-x-full peer-focus:outline-none\" />\n </label>\n );\n});\n","import type { ComponentPropsWithRef, ForwardedRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Toggle } from \"../../toggle/toggle.js\";\n\ntype AvailableOfflineToggleProps = Omit<\n ComponentPropsWithRef<typeof Toggle>,\n \"id\"\n>;\n\nexport const AvailableOfflineToggle = forwardRef(\n function AvailableOfflineToggle(\n props: AvailableOfflineToggleProps,\n ref: ForwardedRef<HTMLInputElement>,\n ) {\n return (\n <div className=\"flex items-center rounded-md border border-gray-200 bg-gray-50 p-3 text-gray-900\">\n <div className=\"flex-1\">\n <label\n className=\"font-medium text-gray-900\"\n htmlFor=\"availableOffline\"\n >\n Make available offline\n </label>\n <p className=\"text-xs text-gray-600\">\n Check this options if you keep a local backup\n <br />\n available at all times.\n </p>\n </div>\n <Toggle id=\"availableOffline\" ref={ref} {...props} />\n </div>\n );\n },\n);\n","import type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype LabelProps = ComponentPropsWithoutRef<\"label\">;\n\nexport function Label(props: LabelProps) {\n const { children, className, ...labelProps } = props;\n return (\n <label\n {...labelProps}\n className={twMerge(\"block font-semibold text-gray-500\", className)}\n >\n {children}\n </label>\n );\n}\n","import type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport type { ComponentPropsWithRef } from \"react\";\nimport type { Control, Path } from \"react-hook-form\";\nimport { Controller } from \"react-hook-form\";\nimport { ConnectSelect } from \"../../select/select.js\";\nimport { sharingTypeOptions } from \"../../../constants/options.js\";\n\ntype SharingTypeFormInputProps<T extends { sharingType: SharingType }> = Omit<\n ComponentPropsWithRef<typeof ConnectSelect>,\n \"id\" | \"items\" | \"value\" | \"onChange\"\n> & {\n readonly control: Control<T>;\n};\nexport function SharingTypeFormInput<T extends { sharingType: SharingType }>(\n props: SharingTypeFormInputProps<T>,\n) {\n const { control, ...delegatedProps } = props;\n\n return (\n <Controller\n control={control}\n name={\"sharingType\" as Path<T>}\n render={({ field }) => (\n <ConnectSelect\n {...delegatedProps}\n {...field}\n id=\"sharingType\"\n items={sharingTypeOptions}\n />\n )}\n />\n );\n}\n","import { PowerhouseButton, type AppOptions } from \"#design-system\";\nimport type { SubmitHandler } from \"react-hook-form\";\nimport { useForm } from \"react-hook-form\";\nimport { FormInput } from \"../form-input/form-input.js\";\nimport { AppFormInput } from \"./inputs/app-form-input.js\";\nimport { AvailableOfflineToggle } from \"./inputs/available-offline-toggle.js\";\nimport { Label } from \"./inputs/label.js\";\nimport { SharingTypeFormInput } from \"./inputs/sharing-type-form-input.js\";\n\ntype AddLocalDriveFormProps = {\n readonly onSubmit: CreateDriveFormSubmitHandler;\n readonly onCancel: () => void;\n readonly appOptions: AppOptions[];\n};\n\ntype CreateDriveFormSubmitHandler = SubmitHandler<AppOptions>;\n\nexport function AddLocalDriveForm(props: AddLocalDriveFormProps) {\n const {\n register,\n handleSubmit,\n control,\n formState: { errors },\n } = useForm<AppOptions>({\n defaultValues: {\n name: \"\",\n sharingType: \"LOCAL\",\n availableOffline: false,\n id: props.appOptions[0].id,\n },\n });\n\n return (\n <form\n name=\"add-local-drive\"\n onSubmit={handleSubmit(props.onSubmit)}\n className=\"flex flex-col gap-4\"\n >\n <div className=\"flex flex-col gap-4\">\n <div>\n <Label htmlFor=\"name\" className=\"text-sm font-medium text-gray-800\">\n Drive Name\n </Label>\n <FormInput\n {...register(\"name\", {\n required: \"Drive name is required\",\n })}\n errorMessage={errors.name?.message}\n placeholder=\"Drive name\"\n />\n </div>\n <div>\n <Label\n htmlFor=\"driveApp\"\n className=\"text-sm font-medium text-gray-800\"\n >\n Drive App\n </Label>\n <AppFormInput control={control} appOptions={props.appOptions} />\n </div>\n <div>\n <Label\n htmlFor=\"sharingType\"\n className=\"text-sm font-medium text-gray-800\"\n >\n Location\n </Label>\n <SharingTypeFormInput control={control} />\n </div>\n <div>\n <AvailableOfflineToggle {...register(\"availableOffline\")} />\n </div>\n <PowerhouseButton className=\"mt-2 w-full\" type=\"submit\">\n Create new drive\n </PowerhouseButton>\n </div>\n </form>\n );\n}\n","import { Icon } from \"#design-system\";\n\ntype DriveNameProps = {\n readonly driveName: string;\n};\nexport function DriveName(props: DriveNameProps) {\n return (\n <div className=\"flex gap-2 rounded-xl bg-gray-100 p-3 font-semibold text-gray-500\">\n <Icon className=\"text-gray-600\" name=\"Drive\" />\n {props.driveName}\n </div>\n );\n}\n","import type { DivProps, DriveLocation } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { locationInfoByLocation } from \"../../../constants/options.js\";\ntype LocationInfoProps = DivProps & {\n readonly location: DriveLocation;\n};\n\nexport function LocationInfo(props: LocationInfoProps) {\n const { location, className, ...divProps } = props;\n\n const locationInfo = locationInfoByLocation[location];\n return (\n <div\n {...divProps}\n className={twMerge(\n \"my-3 flex items-center gap-2 rounded-xl border border-gray-100 p-3 text-gray-800 shadow\",\n className,\n )}\n >\n {locationInfo.icon}\n <div>\n <p>{locationInfo.title}</p>\n <p className=\"text-xs text-slate-200\">{locationInfo.description}</p>\n </div>\n </div>\n );\n}\n","import { PowerhouseButton } from \"#design-system\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useDebounceValue } from \"usehooks-ts\";\nimport { Disclosure } from \"../disclosure/disclosure.js\";\nimport { Divider } from \"../divider/divider.js\";\nimport { FormInput } from \"../form-input/form-input.js\";\nimport { AvailableOfflineToggle } from \"./inputs/available-offline-toggle.js\";\nimport { DriveName } from \"./inputs/drive-name.js\";\nimport { LocationInfo } from \"./inputs/location-info.js\";\n\ntype RemoteDriveDetails = {\n id: string;\n name: string;\n sharingType: SharingType;\n location: \"SWITCHBOARD\";\n availableOffline: boolean;\n};\n\ntype Inputs = {\n availableOffline: boolean;\n};\n\nexport type AddRemoteDriveInput = RemoteDriveDetails & { url: string };\n\nexport type AddPublicDriveFormProps = {\n readonly sharingType: SharingType;\n readonly onSubmit: (data: AddRemoteDriveInput) => void;\n readonly onCancel: () => void;\n readonly requestPublicDrive: (\n url: string,\n ) => Promise<{ id: string; name: string }>;\n};\n\nexport function AddRemoteDriveForm(props: AddPublicDriveFormProps) {\n const { sharingType = \"PUBLIC\", requestPublicDrive } = props;\n const [remoteDriveDetails, setPublicDriveDetails] =\n useState<RemoteDriveDetails>();\n const [showLocationSettings, setShowLocationSettings] = useState(false);\n const [isUrlValid, setIsUrlValid] = useState(true);\n const [hasConfirmedUrl, setHasConfirmedUrl] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [url, setUrl] = useState(\"\");\n const [debouncedUrl, setDebouncedUrl] = useDebounceValue(url, 500);\n\n const { register, handleSubmit, setValue } = useForm<Inputs>({\n mode: \"onBlur\",\n defaultValues: {\n availableOffline: remoteDriveDetails?.availableOffline ?? false,\n },\n });\n\n useEffect(() => {\n setDebouncedUrl(url);\n }, [url]);\n\n useEffect(() => {\n setHasConfirmedUrl(false);\n if (debouncedUrl === \"\") return;\n fetchPublicDrive().catch(console.error);\n\n async function fetchPublicDrive() {\n try {\n const { id, name } = await requestPublicDrive(debouncedUrl);\n setPublicDriveDetails({\n id,\n name,\n sharingType,\n location: \"SWITCHBOARD\",\n availableOffline: true,\n });\n setValue(\"availableOffline\", true);\n setIsUrlValid(true);\n setErrorMessage(\"\");\n } catch (error) {\n setPublicDriveDetails(undefined);\n setIsUrlValid(false);\n setErrorMessage((error as Error).message);\n }\n }\n }, [debouncedUrl, setValue, sharingType]);\n\n function onSubmit({ availableOffline }: Inputs) {\n if (!remoteDriveDetails) return;\n props.onSubmit({\n ...remoteDriveDetails,\n availableOffline,\n url: debouncedUrl,\n });\n }\n\n return (\n <form onSubmit={handleSubmit(onSubmit)}>\n {hasConfirmedUrl ? (\n <>\n <DriveName driveName={remoteDriveDetails?.name ?? \"New drive\"} />\n <Divider className=\"my-3\" />\n <Disclosure\n isOpen={showLocationSettings}\n onOpenChange={() => setShowLocationSettings(!showLocationSettings)}\n title=\"Location\"\n >\n <LocationInfo location=\"SWITCHBOARD\" />\n <AvailableOfflineToggle {...register(\"availableOffline\")} />\n </Disclosure>\n <PowerhouseButton className=\"mt-4 w-full\" color=\"dark\" type=\"submit\">\n Add new drive\n </PowerhouseButton>\n </>\n ) : (\n <>\n <FormInput\n errorMessage={errorMessage}\n onChange={(e) => setUrl(e.target.value)}\n placeholder=\"Drive URL\"\n required\n type=\"url\"\n value={url}\n />\n <PowerhouseButton\n className=\"mt-4 w-full py-2 text-base\"\n color=\"dark\"\n size=\"small\"\n disabled={!isUrlValid || url === \"\"}\n onClick={(e) => {\n e.preventDefault();\n setHasConfirmedUrl(true);\n }}\n type=\"button\"\n >\n Add drive\n </PowerhouseButton>\n </>\n )}\n </form>\n );\n}\n","import { JsonView, type JsonViewProps } from \"@uiw/react-json-view\";\nimport { isStrictEqual, isString } from \"remeda\";\nimport { Icon } from \"../../powerhouse/index.js\";\n\n/* Shows arbitrary JSON content in a nicely formatted viewer.\n * Takes all the same props as the JSON view React component.\n * Provides some quality of life improvements:\n *\n * allows expand and collapse of any / all of the rendered fields\n * Allows copy-paste of the whole object as well as individual fields, with a success indicator\n * Formats very long text fields so that they are first truncated, and then if expanded word wrap applies\n */\nexport function FormattedJsonViewer(props: JsonViewProps<object>) {\n return (\n <JsonView displayDataTypes={false} displayObjectSize={false} {...props}>\n <JsonView.Copied\n render={({ onClick, ...props }) => {\n if ((props as { \"data-copied\": boolean })[\"data-copied\"]) {\n return (\n <Icon\n {...props}\n className=\"inline-block text-green-800\"\n name=\"FilesEarmark\"\n size={16}\n />\n );\n }\n return (\n <Icon\n {...props}\n onClick={onClick}\n className=\"inline-block cursor-pointer text-gray-600\"\n name=\"FilesEarmark\"\n size={16}\n />\n );\n }}\n />\n <JsonView.String\n render={({ children, ...rest }, { value, keyName }) => {\n // strings are truncated with ellipsis at 30 chars in this component by default\n const maxLength = 30;\n if (\n // if the children are a plain string, we know this is a text node\n isString(children) &&\n // the value should therefore also be a string\n isString(value) &&\n // when the content is truncated, the children will be the truncated content\n // and the value will be the original content\n // we know that the content is not truncated if the value and the children are the same\n isStrictEqual(children, value) &&\n // if the string is long then apply word wrap to avoid letting the parent component put everything\n // on one line\n value.length > maxLength\n ) {\n return (\n /* use inline grid so that this text is still aligned with the field name */\n <span {...rest} className=\"inline-grid\">\n <span\n // We must wrap anywhere because data can be of any length\n // do not use hyphens, show the raw content\n // apply one character of left padding and negative indent because of the string quotation mark\n className=\"wrap-anywhere hyphens-none pl-[1ch] indent-[-1ch]\"\n style={{\n // calculate the line width from the width of the key in the json\n maxWidth: `${60 - keyName.toString().length}ch`,\n }}\n >\n \"{children}\"\n </span>\n </span>\n );\n }\n return <span {...rest}>\"{children}\"</span>;\n }}\n />\n </JsonView>\n );\n}\n","\"data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAABaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAsaWxvYwAAAABEAAACAAEAAAABAAAJPQAAPlgAAgAAAAEAAAGIAAAHtQAAADhpaW5mAAAAAAACAAAAFWluZmUCAAAAAAEAAGF2MDEAAAAAFWluZmUCAAAAAAIAAGF2MDEAAAAAGmlyZWYAAAAAAAAADmF1eGwAAgABAAEAAACvaXBycAAAAIppcGNvAAAAFGlzcGUAAAAAAAAHNgAABOgAAAAMYXYxQ4E/AAAAAAAQcGl4aQAAAAADCAgIAAAADGF2MUOBHxwAAAAADnBpeGkAAAAAAQgAAAA4YXV4QwAAAAB1cm46bXBlZzptcGVnQjpjaWNwOnN5c3RlbXM6YXV4aWxpYXJ5OmFscGhhAAAAAB1pcG1hAAAAAAAAAAIAAQMBggMAAgQBhAYFAABGFW1kYXQSAAoHH+q5rOchUDKnD2dBxZ9/8BAACAAAAAAAAAIIAQDpANjM3er78Dq01Fkg2gH1lc/jHuiild+jsAtSz0W9cBKVSIwKLiZJpq76pc6L0HZ/VldCWd71eZzvrPcmO57OLMett03UeJPm0vJRDgyLsg72RfEKZltYc9g4O3PtUr/BnbZ7fcrSWjkAvFFu/g/RGLErTkMDn2QHM6elhJpEEl8sn3xU6peTfCwAhA2/IdPBwsYnqWIPfV1GxE1PFcLX/yWpLYPFrcxTLVQXgAE4YLeTd1MB21bilGe9C9gkJQslXMbT5bK3qq7vU1heR8rkx4YHcDbp5yryg8Thg6pELGGn+ENxvbO/ZE1agFgB2Mzd6vvwOrTUWSDaAUCDhPkyJ13/nQT6/w/wDnYE6RAccismY5zIomPya9YJj0erdlcB0t9ycLkgRWRuE1T+bn91cgPXy256/Kz7XW5rIhyy5n7H4/1ngX9jrkz7awN+4Ow3tjIuXVL6BLBECYeAzX7smY5eMAlIMvnYxSNdWwgKj4BLul4jSoPXFlWZlD5HbPmBRpG+DPYgkWIlHkABBJclz+BzMauJGSSMLuFZEl6UsAO3D6SQJodPk8N5nF/fcYKoLgHKIPI2kdBmPCIohJS9aJTrrZ3U63Ll7IBuzDzocDr/RyOUrBFMvh7cmNn9McHhSpYLg07WlbgbQV/XpZ0yxY0iU7cP9gGokmJkbqpWt2Hu5VRKUhCq17cX9VnGw7qkpl5HB9dw/0zQ1DXJ3JaSKBhuNap6Nqdh1vKbTOojCNR6cN1i6C/ChF5PhU5q8gbDAnXRQYGAnADYzN3q+/A6tNRZINoB9ZXP4x7oopXfo7ALUs9FvXASlUiMCi4mSahQrAZunUSa+IxE0uHm4HokK/yiVyYVs7u+OPnaQGubcLi9uPXsKUmGuY3FdpQYJUdsQi8mSinvLX5UrtUjFQmN4pZcyBQZ6DMawhl70/VfBDeDMz8KDTU5OiQc7jmtBaKr4s90/CjArVcqtpAi2aA+cAwGwVuwSgDYzN3q+/A6tNRZINoB9ZXP4x7oopXfo6/mS/HHmLea7MXY4iox7Jq7etZv0mn2s/Q1VFbxYBkwEh2P76a3eRBO9nmU/RgHUOz2NzDGANjM3er78Dq01Fkg2gH1lb9+XFjOfjL1N0yx8yTujQOHMxkxKpAs6DRfMKlHjGszRy81iTexPCQT6S+u9VU/E2qwb+lW1u+0FOIEph2C7zGPjHx5lUTBFFcXXIoVX3oUko619KVHRy/3AJIV8mRygmHs77p4VR2hQ64jFvTgLZ5vqy6Xb6+gN8zBG7azKORTxj+Q9GG2XGhWf9hou7WOnD8RZaJsxvueFFDfuAsBGcN0yExT69KmYZfFOLMjbsKk1tnKaJTZ+OBiAdgDs3HSLCeRxKID5TRJ9jv+9FO171keXSepb1LIV6C04PpYvE0JWFceZzZkb4a9sQO0KFbqjxc6RgnGzLeAC18mBU1Oeg6To60Gv8SFOWJEXXTd0JOChN7rSL1H1EER0oXpTG315jA1L7/nDbKaCg/mk7qAk4iTmo17IAjUzB+nnvPpSNnNP9Pt4fI3fnAc2pPNegEy5UZjm3knbOqhGwPiHCGIRhifKKKrfEdc9ronUHO2RQ8I5BOEKd2p/wtZgX01r9gG1cjF8hFRFYqH5ZGw4N3rLpCvyR1rAmC4+8SC7sPfx275gTXKZiEuA/SDMQqh+K21zL1xmHFzb6DLUD8iF4d5D05OSWjXBRHSRLJGleKJLdph5JtY1aQ7fHLZsT1sfDlAwDZcHadYysVbuYdl2pxsVqz+uErfPoc/r2OMmdK1OOYJF6BP82f+eaqHZ+/+kjkxXf7iz/Z4s+CgDH23JPCUAdjM3fGAqj55B2D9LCYv27G+WE7zF16vKvpykbSfYFpmz7xXkNo/HJO+R9ROewJVdQ8dosgYQexLzW9h+K3FspIFziO4aXAh/ph3jkiGrPegnJU8f+slNDNPBHNVrXkWrzDFtTavb02kJODxceO04ti4P5NrRbxuLKjIRnyBptPcpAEChhCRI2QCsDU+irR+m9lcsVFjfA4cszjgJPypEUFzQbQi81QQ+cQ7HiOj24T15OUjA0t55tXEuFjrmzT6NGWYFo+dVr7Tpt1bWZYPvgTE/B+vo4l0ksD4xe+LibHjbst/gEY2nDc8k9qqSXbRddZnIq3cWaoZLll4nYdwkGsgi9VBd06OwLBMg8hRABOzoBA6hrjd8z8NDolVfydZB/x+ubXIy3wyf8vewK1ZQ/U6xy3IIkiyJRGzb6CVgOug3TW3ZUJBWIXn2R3FU5yECjTNS1La0A6HdjqptKks6oTYjtcjEt+K4sLf/HCUm1BnkR6BLC9zKDUGyyi8vSFGF94Fi4H0S3kSbSqByOaDfGxJ68cg9djM3erM7hwF3/xlEV9K/cBkSoJhjFBveRC9gbpKxq5vH9IiRmYEPW3uRohhudl0KX6YuOVKfqdFwkoerlq6/ueRQb1SdiWFOTgmQ6ZjHRlT55Xo8ty+WzGU0Mp4qqtrFP5BSzE3xNy0vnxd8w28wGl17y9R2CnXoEr9Q9utYcsAi/nxNh2Ls0d0ZJ8UkYL48MOy/pl8XWiPO9Yv/RIACgo/6rms5yEBDQbQMsd8Z0HTndBDSfo/6A/4BAwCEAAAAAAA////BAD9CtiLbTF6MGnA2g4ZTel5XASHWdpgkGsz9ipEztRr8bMss+GziHkVUF/Cq6mrK43OofgrD9BdOqGiHIS9nvcSq0HWEOWI4h5Ok74ZtZXt/rMCoc4H2rgqAaZ/pLmdeQ+IxTJgVKa7VX/f4RDONrYiSd5SmhHJNBp34sTt7N0L++A5YYN8E7f1hjoNpC3tVfEDGAuILmVBmGwPvNbvMFiv0F62Ew3XE8A72CKqzn0r2Hy8JXWolxQ9F/TknsglszEjf5ff5VqEjWMG9QezqEKVvP57s5leu+MSX5isCCoVSK0nyjsj6dvh/Jdyly5CP9IXPhpJhdjmqR87TZmSeKjmcNfqUsSJHku5EA0XbGRu1r+qvwx2BL94w5zI0dxK9JRxszSdNVifyWp6xMFrSz6evx6qil1bsopJNJGk1eapmaqwDNAqmMBrcDZBQJ8OMr/pEBmy8bpKl1M+/ptWyxyRCm0guh33Hux4XOwmhFhhU4/SVXFjMgAad+SkmNhgJE+R3DtDATy+c0lie4g2r4Dnu110rcCuX6KbNSRIJB7zz9eDCWq09P/UW2n02W60M1LcM6Nt5kgEU+xjiFmCDLSd/65ce1DeZ3+2lj7w6LJVKqsXUd63P2L458nxztfa1xvX9gKQsj6xCtbB7POWoSL4rVF/zmcLtZPKXcDWOn+C91acn5zLCyD72Qig0p9RZBclBjItGcs4phyKKBIBSPfari8hPQht9qYKfJh7BjgHQ6Q00q8Vy6EviTD8NNxcOUBssZL5YuwZ5v/ehgbV4WmRIQwoPP/D29Xs9Cb2b8c6lfZi0nX5fYHPjQhz7hrRKzrLPoE2A6pzujSX+lU7xFakCDPMKtMP1evrux1TPSOvogNfDo0y4C12RdORRh2KJ6rJBKEfm2qkUue13rtjOFcaHmNOk9IrqO7k3KTxBFhmHG//87XgUQZuLNexf29rCcvC2gZ3j4Y0OJvFZO7T31syiOI+H42kiylspHzQXhPAHc9pSLYG1knxh/kO1AuLeaZeUPesu3K/E9kp46+F1V9FR97Odsitb64gy8FP0juztrIIYHTiU+3zydlCKO19h0VuL5fPK5UMpvYx9/PM4/0lx/dPK02OOkUiMuTDH9YPbuFxGU4cLrf40nU0BHZPl9gZ0n/W4Zc22o4uvRbt+uuRP+QcG1pJMrKGyRDO9gyzn1b2KkJSlwKqw4ydzstNB0C8EcSnXrdptlU4GUmn/6YIUkcfOW8EvB1e0HSAnEtNibDOh3kC5y5+u1TFsYZDGwXe3CZ4g45eXTIr4MGasiT5nLpk3AceMtrzQXXct4q8Or4CHNYwse+wlx4778LGsT9FQrqYxOm5bJV7XzFfPmg4CR4ezAKRIIzX9b+SNZrDNtx9K2K9gACPgm2fkCsvbEDT+gTCrFXRO0RML/4De7l3IXBTXyQuxU82qMfnK0Z4RD1I3CCsRAAxocjD/eVS1SJWe+Le8g41uDR6/8R9IxsZS6ZCI5wjFteKez10q994j3rQ40Cbq6x4PHEGE/3DFKzOuBaYlnaLUSGcmEOSuwqH3UQIwbMi3aDurU27NGbjbGIdgyHr65SNozkd4rKqGQOvE/MeZXOQQuAZ6aDqderD3PvyF7uAHWjeuu5pR/7YyJQ0++3Wp2K4oNC/nDK7MkVcdwsPSzzSxvOS7/6KZHaIHCryHN1E0rx5DVuxJ/LSWdRvaXnkGcVFqq6JIgWPekveoSKfASZ4yPRiXfJWQkt3DJEehKSUWy54HxGlWTT8rx+VEzOVc2Zg1z39NTpBNvhjJaaCCqDlgnXmPvFl9gz/jIHPJ4XQemVh5tdvVUUWb1fPmrXtcdI6CiA472XHDraQ0YvJcTxb+F9TRyiFrc/uiwaHUnkKKq5jz5wXhUfP2gU4M1iSb4g2KKfxNEchos7CRNTihiXNfrnU+95AlMF/YoZWA6Z6XZaAaVowJXejv8+m6Ee2Vwf+KtTk5q7MWars00xA6F8uPZt+HfGXmGNfIYXkyXTh3FJiRlJJTfCP3KX0oYuxku7z1Bg5eE0P/YSZcyxoCBftxqQyBn2qKi93WlYl1UuNTL4aVRur8EVb4gYjyFhtvzIXZZRstEmyLzM4BbuwlD/+VRbdj6WPxaNiMOUmSpemG+pH56kN/tPZJTR4UyCr8y4cQ6sqsyH2uBY6GAouoO5kT2T72jUUt6De07aBWkbH6AIlZ9wWWAa9H+we5gjL+aAkgyzRp/dHzoX6ZAlvngDv27CbPdd+HpFc4SKVVuT6VLWZPWd4XJrqB5KNT8nSxgi0HVuOyxYQooEkL3GY3u40oCkS+leoiFNX+pxhlIsCD2pCWpUJQGafQV3Vq5+whGHh3rdTEDpRvMDsS+Wfb9qYXvy/RW4Xs9jR6kcsgIIb+f9FxWC1ZJlLEZYgVO5F5XNB2gnxlVmGdlayQQdcQZ2mWuFy6IJY8T2YPbWzDLU7esekWKYH9GPVt+F7zVTI7npRBhzWRuObbMhrcVXLWDT6cNSNHPLQnAJW7VpA9La0z75jKlz365qawpE0sMbcCt5M3I2gbALhXKqiq3GoZ7vQSLLgGk9u1oBsn4dq1AUz6E8fT1L0PhmSiIuy26KElOOz0hmYjXEsPpPlkohYQk7UUT3VL2wzBij4ro9ig2ZeGk67kXokFLeIrw3eS0h0aAYIWdOpPiG/0oI/5kBZUZw0mo41NmC8O5nxVVDEg1MmSmdiK9N9YyGVzjwggXqo0S8Hr/nAhp0/fPJl2yYHvOSmfEzUdO+/fHoCsJDqS5bJCMFl6CKbvoET+u9u0AOWYaMn67H9atL8V93OkbK9aPpFozcwMMmnorT2PwunFWD2M08415wX9z1Cry28Tm6Mr/P66J79/MokGOBEMivvmge/CRGhAIW0WiAJyGZjiLc443JGgpDlIQMydlexCD7UKY6R4EWUsvkA8Teh5dtQkJ1w8MOk31ObfXH7nZt+f/e42F7frhsVvVAEUdlGuM5IKUP+3P4w3pw5xz+71bGVIJMDSVCUsriB9K9QQk9rUHYpzWFBCa1Kso2zIwd53Q7O+lZz7a6ik+f9bLjDLy5p6so8j1ZNGEZnhJm7aEKUZVF8KM3889pK/r6bSmKnB+u55gU6sRKcO8yBoEAdfbaoQnE7M3gRSNKf14R001ATRXyaWgymok1tIWLyHQA0V08opIJ08ViT3EUA4mRRdr/YpGlhZk+sG5kFwIGGt6hvj3RfskQXGRI9BWVBSs2fO5WF+0JZwRs/RApIclJuRoUcO0pFJ5ffYWyXs2kBhUuInBBwsX8bNSzjfx6Ll4kgFmhChnyXdUf9RmctRFL6Wbun8exURz97iqb4xY1u5nFi+oPmZOAcokqzeWF9qoOg2vG1Xl6Oeyx9qLuYO6lapXDRVBKha+5MLhaBEYKDrD4GUUtP43FXUd6l2e/Kj7PBPhX0XF6hp/Y+HrEBCR/Ncpij9TdwCNF/itKF/5d5DkJ5PtKuKVeYjjQGPOKLpWyrvanDUnVAodjcupK2J8+1LwM4bSBYiMxK0vYRzcfVXR5iSURQitNtJbhYfbkX0sg5R3ssl3mCLucGQeaI8ickiG/HRa+rSXaEIckjiAP/5BgtdI+UsdhhLLqrHcnXhc1O/cEaAw5Mvcm19iBWU3OBoPDQC78LhfnZqr4PJZSKV3skHNnTgziwSgzy2BBunno0rkttMZwtYkKtrOZgbR4ii7deef13/Z24RSQcqXwXdWtBa9bjzxsF05YoCTadqQgG3U225QBzjkg6I2mJVEH7peSft6tKdHIaSZGLESg7H6yFKfGdoI3yobOgdG8ty9JMiIiB5sQIQnE6s+yEEvZ5O1MUhpmo7EpVqQk49BRpuuOoacpCHeok9kVyeG0wUxv9gLv536v6pDBw8vwOkRMHl/7oWsV/1PCkrNZr/oEgTIB1/XNitBrg4q+h/c18/cJqVu+dZV8ScYy+RQ+LLbqL0DC2C5nxrcBzZ9jfJY/OBgZ7oiGA6bxo6u/bk8i4Bs9TK5UHKldXiI9XSAsO5gfSHUCVGVchwh2YdJ6S7tcHi1JEocSRfREhrXldPR9RqVI2bvCBLfxF3e0U+WX9+Wa6csrFIr2OTAWW7wvGyQUAA1JXMexYExEzsHYLvPosHDRsoMDda0Ngh2DlbH0cDo9COL8aL286UN2WMoeWWGGrsgciovANJBbdumrGmY5Wjhdd1HmGfaYKxbmsNT4WaTHBQS9TwAwmTv/eL0hO/Lo2r+Vorvus+U4txYT7jH54hjxSpQGBYyPjQlTbr0AGGnoTG4WKsyjONb5iGjkBQbSVvBXFn9RCkQhVLMpmG7VAGzk78bFyFu0qFz9L5av8e9TTdLF4W2BWsKEjnoLLDxZ83IEs5Pe9OY9q6d1/2yC/KgA/ZPu1TJVGVL083cdgSd49NJDPgA3x8uqc9kahQrxYUEuR3vObmHhbZnkfVRtCAdW+43xnlq0VwBNd7YAH4+5tbCvAiCLDh9qEK4cavFV+ioZec7MkThvT0h8G1O2MLZ3vXvcQmOgV9rXgpS/5fozLjsdRwcvc0itDaLBngFj2P9v6Fs+amXEkT++YhMJbFVVVkw6KHRISnbjObsWW7DAm+V/PzEFv5XUgpROGdDaBntux5Td1/loxsEinJEld/WacR937i5hfXetWQAHMp40vGEeIcBZ8W8IGuvacoX/s4Sq2UqKU8VkIHFDnBOy06B37jfKklbyW9HCahq8tFT/0ldQvnAfAeXVNWfY76QGLKrO42jNvarEBakPiexsmPcWNxseWu7mkTSsOO6GCTPADYu6TkxXs2SNsMI/gpqQkOdPvfe2qBt0nPuuyDqoU5M1jFcPtyRRlDJBpoY3GtReKPc9i8F4V62QkLHqjH2KmQA9BAeLGdcnxiFNWvkvCwf1Pn890AlxlivTN5Ds8cARGrLv+3jIKNNY57osU9mvKJ6f5TanRSogEW9L3c8hZySmWvCjCWBxLihz2TQ0QOrNcnfa42+JWSB4OrfAexKT/aHhhIsGAlaDI1FxYYnmiMqYL79tvxXSR3R3EqVLONvNH355xn4HaqQxtKsB0ImSSGvHuoqHCnWUVslieG0x/2A7Mr5lJoB05qNQSQCLJX/KSFRpfzrN3lXI9UUQXjGeoBBvgDPS7mYL/o/dUINT+w5SQJYT9qrU2zGyhrNMLpetBNQS9KpU1gvoS6R1aG789FBNFAQx7wMmZ1oItJrrJkmh368a0jwJAu5wQt88kMYt5iSECzzojuZTxHqenFip29JgfyVURI6F+8TSPNdNz9TEOW6GOpeDCUaeNq+0CKofrINReSzGBiVby18p7oQRmmy0WODMcJn1UkX6YnMDL3zsFdd/uRt5il6yNfjK+LufknanhndlLFiIrnCAePHVtkn+cPzbX8tAfGk+w2H8SH8Dx+uKUW+bBwq6mO8FLzFz8Q/kJkbOHbV5kmxWebJ6h5eUOYc7t3Oz4Z3bQJsOxND2qLVm3dJ3E7FWzCTMAxAgrYHnFOW5XOHFQpMARau3S8djp3bCDGO2FfKw0kLpZ4biRxs7uYtHpU1PBlsTFYBWIPT0PSTovmUvFH+61bJj61VnWN5pTnj5SMXWqAeYGb3IHb4H/tFqYun/1Go1S6YJ1fP8ckvUaGw/7bauI+HQROKLS86zxUjS5azA49z0aa9U3+6WvnUh38uOyzMYwXEcFOnWKYSuy9yZ9cgDAJEyGwnYlR+bdoCvHGWwoyM4lnsDjgnGFpy3OZuuq4IIc1cMwahlBfzLyD19hMLbJAAZ3Wx+ZY4hzlC0K/jjJfm84NKki2H6ZV7x44azAJQrYi20xejBpwNoOGU3peVwEh1naYJBrM/YqRM7Ua/GzLLPhs4h5FS7RFX2UKMCnpQt/M02oefIHX0fzD4vpa0IXCH0/r55RFucHpFWVNXXfK+edD0nkxRPLuSTP+4c/9/eCyLsvsKukRAHK1Bb75cwvgxK+8cRBVERmdCWZ4tTwmB6EGdLF+GqP6iz1h/SsjK1oO49gJWOoPXM22D8+ufLlL6jchcRKlMMwMUeHiq+Kpu6sHrtD5ZixRvn2wgtyyyw3p2daRb0oL57zCOfLwf/urkDitYsF8pBqYASLg8suFHqxS2+74mpWpmp+eV2pjzgbLPalhHgM3c1Vl8/aIGr94cXetruBti4LzZFqQhL8wtqcXfBvB0Lkp3yaYuWiHMjrCYtbg7JwvToRmWXDejsWwB5WPjH9qdWomLgAv9Uragmud3deNQ10+jCVBv9XhOUBzqA3mRc8LGkKIpJewsBDAoWdpE+EFQnrs3zt8U2ex7BGhVlEQgwTV2VqSj1u43BmCK6JGnGoaQ1DrNbp0DTZKefvlPfUjb1i16a8RKsPTfeC5FX7NkFG5lRV8GvUbbjrLZY78NEP7gAmCagzEYB0j7TiOS+U72tU8wHIh6TqPjZp9V/ORCADZ4IyqvI6oOmAd5yZTwGuX0d36CEG4XTuNXFWn5hQ9IersGDK/lsxesrHEuwKW/gNPUnWMuzlrbNDYFcTWuRvF5Hj7XtB+1/yudquA05vH3FbxbfdAU/Gt1xUgYlSUWAS0YR5wWyR3lUaqcRpM9xsY1jucJStCzm+oTQRWcGYD0R4eb1W79qmQtfWw/5OCU6moLSnyfRkM8kzu3kIv1r/VGyuRkvHJEt09MFB/uqSB7FecCcBXyiKHFoFhvcMINiJJ+S1x684GCES2UnNQBtw2M4qEjSuZ5mLT7qqwzMNk/ElspUwQ5JJwX1OH2U0NGUIm0lZ72k9OsIR4h0abktZfeyTpXGxR48CsKWURh3L2qtlYwHOqoGuoTVuFjyt7dDj12/z8Ebzn0bEcg32V8M3J8I3F3yhAKk0+kBxNPMYNh69gkzAxf4mEjrCwJIcwrnqvYdUhPUUf5Lj9sn6yK7/o1+YpLodsy6E+OMfs9L9Qk8ax8k6sPOtXUx5SE6zvlxcVY6qgjruFWtjhEJrQbT86LB98SeZo0DDuPaxYG3PA1w45ubdVgKOr25bA/rSpToZ0R6TmlAk4caYNOLh1tj+HOUAtGLoVpL8cKKcODM3Uav8h0bRw5PRtboIXsY7tsIt2xd/MWs4wVE937laMdeQ8FLxNa1/mk7wj6fTEKQQQpOVkQfyt4AQ2Lk2rilIaz7eICjl0q45+npkkiGXvY4yE+D/MBIsQBbwy89Gz4iK75ThAf/zoNPC0fbQxdSaNAZIkgheIO6OjII4awmDay9Jm3QHG2c/4uG/sxhrwC1XGB+Q9zMD1zrVfO0EDeNQ2PEoygWG8PBz6yceztuLeBXYBZ78ChtDM/Psuxzg1LjP8Mk0hmxZ7aadphM9geVMfWiV+1cU41YF5xnyQn5+ZRUQ4GEtG6CPYE8UywjDCKgjlS79IvsvhlOaRqVOiFEQYZ7WSHBv80Gm4kDi+jECK9TQYc9Koh/m3DLN0vWoiaoponDOWfBtZ9NJQAOzO1DN59rwE+rkL5H9Vzgkx1cUgIUnPMIDnImDIY+QI1NMCO4F5mvMK62q4gVfL6A4SCLCoAv0KJUd/DjWzBKfyA67ZcLrBvTQTXcAAokni+3fevOIIvBTpFprOKAuD8zhUMUUcM680Vc9yjsuqhwavR7qtdFtacO5/UvmgPE9/nk5s12ibTHx6iIa6uS7npjnBMs4bIeHmHjQ4Qyn5918cIvt6L6zUU41RfTCwgTJlVDQ3PEO4v+dnP+nkyeTbPROedqugs/5wLohJW4cVtajTtY9vry5FexqWwcirEWLdxYDzwiW6a1y97COT9hDceCH2N28hJGfnckPVP9D6iO8rPUKER0A85BGwrXDE3pN7lNAa5jQ/F5TRReBhhpdAN5bqBxrBRdwfLX9v+jzLoj2tTPv4uhWfNkbZAaV5HsSe6dKZb9aqBU++LYV+iAUEA2SRFO4HQdrPObFb0lmaUge6YNIdUoxVUkCX0tY/srF5UwLfpIej7iOTTq+1BhJGtjYqPpTD4kOUlCuKwwwydSePG8oVlltMtFUpgPfSI1381jNnM+5TBTUb2pCpF3WjeC+rXZgjkB1LWspcOxRZZFtbJA6REDoTUKqJzTQYLdXSMUyLAnMEHsdgbytN5rjibsRTJtisI29Wu932IVNvFSLryOg0KbxjnKuPj4wfh+ZAjD9EVnUSH5uLl/g+qqca1wJWuB5oDlVq0CfCRyVKKGZ5DzTVcp6PAzTxb4Xgv7Mbx8Km8fl+w/OcacArCGiSewQv1LJ9A+am4vh/ErZBPT0tZHhKxI0YboOkOKoneXWxvB67mLid8z9yuQRmKVXpP27glarSu4/Nv5g5shiVyh9nEzqj6cBJlnDVJIaYdEXobg/gSD3zAc4FP4t7/1AqTQ1lNSPvKGoN3aR+yXTyxJdh6BKhlEY1COI59Hy0ZrKTkeYVtg5UpX5XqzbSnZoKUtyeSrOIG6xmMVeSR+HtbzZZsibJ7icgU18zvuogQQVf4jRSWrOQ+SFijshW8YutVfis7TjJGnB5Ltyj2qKnf+bS9A/6l2+R9RmKssvN3dZBRmy90NXz71i2r6BI2xmUUw87rbQn5bwyBBzkTqQBY7ri5/4RB45pMWnjb9qHfgv+wmVo+8S66Mg/65IaM17Sdm0dtE9/0vAhqeGQ/QfB0xsoHCXvxpJ+zHhQ4qQZ9aEitiqd47o0vYHxcNatWw8m73nku8HBp/CVJFcb/VSL3qHHwj+EVEaPjOOzHlQwCDOO1AAuMnR6k2yI5RJMGPx+G5pGVh5RaK8K/nK6zcN6uqW/axvEATjG4RmssgHWR4feEwCrGSQxkyMQJj4GtSCG9fNIx83txygH6+kBOdDX5v6DR8+KHpjbTDOxH5176YMQ3MpBTJ9xrbW1L/yc51cmeBb04Po+he6WoRIhUGCBtxJ59NdqmnrCj7g9NjfSTDZMLB09LYo2gV4awHoZYX9rsSCRxcHTY5oJhoYKZTv7oVzQh+Oni1bKHXwJZm6VaWV47KGW9JlbnvQmFgD6aP/ZNXgrg9nhjG6nSmK0SVvBcsFKL3QiCpgACMfoCtPRhg8HT42Felwyl24mdkJKdgawJOxzb8EYW0WvBQE7n9lIHQ8+7gi5sbIJeJPZNwgDXvFo2Ew+zLwBMd70yy4I4bepEL80bomqNO6mp0KrSFz6eQKCY2Mz81zdvYQgiMPnJbeFyA67ZDRp7qzV9IpApg+3hvglBZHcO0heL0aHyfaavsXzj9d5cm+g6mXjOfMOHF5WY465orr4qzauTC2zIDgPzOEmHGzyYG2qT2qhG1OlzPl7JqiCdh8BdiLbTF6MGnA2g4ZTel5XASHWdpgkGsz9ipEztRr8bMss9RDHLV7PJgUQeTSBBAxg5LL+Ynls2DD7tgzp7cyxj3GgyuoA1/SkZBiplmTq1RebPpr2hTeU05Rin63Ru25OUFlOVxlbSIlG1yjJHmd1qHvP47tTC+gTQjW1CzcKU95iGVk2TVTFPKM0p/TngrCIZCM0Bio0i5RljDncOPvC4KaXCYHAmOc/n8reEw5cvGUKzmY3tvrlaraC3wNxL1e7SAPU9HSKWGHQF/V82irP6g/UeQOvA54fKfSKYQUQhYlXxgywsIFu/SKZe/jZ6IESACUUEEJLZwBk6W63Wv8nRB/cy+SSSEW6ucSsy2PX+sqoXXJcJBRnxucW9/xOkM4JqRqcsNQcZOF2ZiRNvewHycTDh4PX04n1cmIoHn3/GjdYwJy5O+xCmIWzyoZWoEdaZ3PV26l3Q3Ory5VhR4sH6l8IKYIO87fyjfmVKjCpcQAA6Rljb0wakGHGxC7CmiXkEYUFd2INxTGKvwYL8jqi8Nvtnciv/ESbicyaffKpY1wYcLguzrMUJl7y8+77Aj8VRtk5MBMzcmoTqRXqWnXMYyQbBMVHha8vPoEUM1tHvLH26AWrXBfJNURPMepB4R7xdYhoJSyLZxjYMaX3296RD2rAGSE/h7UlbXYzpf6/yzwT0+X5inGcE8DuBmVlFz5NQ6y34gHJ1J7K72XOu/7g0PiLR4nE361OkE8GoROI1F1dcwo1Q2TTwKc+kVbaZ2BJ8ZX3OLSBsIhtlAp9z3CNvC7WKy5QfKWzvGRwv0q3W5p0Y+eWjR0pm2fXFYVkZ3/FHi11+pLe+nlKyVPPwv9WW1yW07LwWuXVNgROeg1FC1g7ep7iPU6+hlLj6toroRtQsURTf22z5Y383hAdjlP5ZYg9Umf0Z/3l9imA0ZYESDinsl9CDhplM2Dl8KFV0M2mzRQlXANtoxSOzzHG8vVl+7ErUTzjum7+14Fme13XRZrRffrv1SxbHzdTFtoqQKHmQEOTkzei8/vBK4i6rElCelRvy0KeMqWT9cu5zEPbK2h95PbQo3o0S5bk3tlekRK62fubAWMzSvPJoc8kXl7KPBsusv+fjWeRizRxNu7NsgPYjEAOfwhovldu/ow52TE+f4XRM3k8nd6Vi4C/bwRaxxHuN3gNPuxkJTFSCw6Ht1HmwlFY2mk4WXKdd6fqXG1MpxBdO8rRmGKdnmih0zbtA5S4PTjFdapSDZKjq7H6lOBqPGxZXzLcgyry6GQS/KQPVtUCThZ4mToAKx3vZ9U8BzpeRLIOGsCyEiTf5o3eH7YR69yc6M+UjG7AUyen3A8O+ISUqsEzw8QQlejuF5wPQSimBpBrWdkFqqjDnt4Jh0DycGj2RR1xd7TeSM+buuE8VXfuIwPZjzZtQEUrK8KGUUjxF7PdTh/M/eIO4pRMozaOFytz3ZsUozVZ8qSB7a+t2F6sqP25UT7fkB0GdS8cSpHmcHDfADRJLsgWoAF6iSQaUUB+ueHIWVw+Y7Db0tkWWUW5WXcQeDyCMh82k6FNkp2qYwNStgNDSgSnoQGevoqR8pyOrPpnZ/83nmPE36j7IEFAKlq/h0QsC8953wbMrgrziHWe9of8Phpnv0ke2btCp6jySNobs8rslqer2UBg20VmGs78OXasF6Y6o6IT12eT+JmIUjzb2HFPdACj3s9g2peoO1jnJcpjofAdUNvQLl3FSzr9v+xuILHrUN/kwrjlAs4/DX+1Q59JyHYD73sBeOBUBFmruggzcrsAh0kM+fj79DD1k7SuMsY/q4JIPHH5z1gCIQiN4wWaRmAcZ4UQnjnx8qAWqCgr5RDoLN6bodHFMfEnYhpY92C9PgxCNkeFGgjJYTtT7zCEF3EzTEcmH9GaSgW+Xe7cL9ayDPHJTo9+tONtFD6Ck04mo2gsk1lyRbwttSkphyd3+TuqP01YvymSy6ZUVqX+ds/yrYlGzHulD+jqwm3kIR1+E/T9N7kE7jk7EZYAqAevCWF2DsL1UBdRVM/3T5Aki19X+UMoBRGOzsvf/ZJMuAFfpKeBC5bhc2YzwBwCEQwYwFvtqO1NQgO6snU7sBSR3QgwIueJK2/srKc5MM0XiMDt8AY4rbNt/SOkqMfX5n0jbqFRzE8eUYvYGTLwdCmMt6JkWGSSYdJJxbn3JqxpDM5g/izOi/kIra8A3NCszwiIHBQMzKfb3uXkc3juSYc1lLfHri6DRTEW1qidGB5eikqF/V/dQcq3/HBo1oD4Qdqr4VSnRtxQJkH4+MU2iXTPBOXtpgu6CuoOFCMcF8UqIQxNLT3WrcEJ71s6csUNOVZd2GojvAhV1EXSchobSqjql4nUYg/XbGihTRv7vkjeStNcSKXBSWwNveQa6/fqm5vMWryIm+rgZuKgswnQbXSudK7+tPTrKPd2yk2NqFv9hsSjbUEGJgFPjY82CKiYrAo/OLaOJLdd857MkT43dvbnJfF2uqAeUF1wZ9Qj4K7AV2JBh9jqduq4cfB3/xoB1Drg44l+R1R2hyzUR+/GgFhLHS5mX3e0+vATGIXMwqidbFjhdqq5W7vHVONHgm4/eixS3o36UhVYne3+vj6qluckrav2lnCeNUSMp9snQtOHvpDyxqZVm7Yusr6njADIGOS0ijemEIURXimqv5QirpUFllrucy0OnEiDtZS5PJn9QZxcr65Qn9yC2hXPMX6V6S0r9u/60b7kv1kdWB/gPp9DR16Y2/sHAtdFuw1ymQ5m64o0Te2cDKZiUkgnONaQPjFVo4VMbZksH7EJcGqduXrzwSif6e87U95+36MCUlNiMoSsutyWwIeCXUW1djhYeeLGckTRNUwg2VYrXqWF62XIuWei+TRLadgiDTyEERxL6wjPZKBt81LWz190u0gGS8qe6yNIE1siGr+yQfylx7X8mzWMWH+C/qdaE4RZ4TqNYahh3ngPt4bBnmBMYbPtiBCSatb8lf7QMKimqmcKznTOOOhwVu1hatsyiWSkrcJQIJzYZNpuBs5L+EN3Bo5TFwloGUWWcOm08xJvDTp3SeUS0kKAVwuy+X3oj5RsUO6PpBs7UZMQYAGUXexQQMXvlclp1TMnkcQD+j4tegDDux9WjNqZbpg50Igr8ThsrDsOfFSi5d3jMmJfAcGtiBbWd+/h8ZkOjNxpRPSSa2zkl03NmDYymIjHUvdfnwxTIq3dpkjN0GDvDX6KqUpUZcTb7wapyx2LNdUGf0MX7VwzivsaKTLPDKVo0npicmag5MVieYd1f3ZUlt9WNvobjpLN9iWTSw0m1A5iOZN+1wTnrnluFbffwzDdDzIYvtDNzaAxNjUZzHOSKopIbnWKZrkz9K9970HDEuSIdLhUgn6l9WC00LucUAzoUZLUq/F8GxkY+36pbo1TI2QpiR6hi03DM7903vgM8aar0veRTW3FeVS7py/eTVcB9ujm2eU9SaQtMn9O+URnNeUtbJuwL/oWL4twOhuZS8kzE5rK7xORXNdJ810ha7FxVuUH2jRhLxw59CTYUUXzVIbFCa5C8RiWvNKSmzqgdSQvL4Nzq3jr6W88SDUJ1a7EGsa/6iXctJuhLxPoW/miv1iVqCGdijvjwvs35QILnLu9IP1GUCvTv1RWB5+lQ7eybe8p9c/jgAjo+EzFtyMb1jmE2FXoHPfLBt21PbAhrIBQwMdulFH5g8yMBuhaAbdku36yKWYyj8iNnVsJfjB4szbkAJsZrHLZqNPXrWcnrGmTctW3DTN+Rm9v3ativIW1pf4lQrk61vpJ73np4tHS35dLswgUK3n3K/2DzlKeXmNAS1JBfRGQmsgKi5nDxzwQKky9+qj2rAcPQblvWP2chunHlk7C0C56qSgc2WEXCu9doUIhBhuPTVpmo2+Juzr1h1GQmhfFsHhSXVFbHO1PV9egZw0J7es5jNaXMtfo07wwhsxWFO6Hw9cv0o9SQMhn7JuxpJYBCprsbLqIEi4zE5CRgTiZgHUL9V+tY8EouC3KKpNHjpPGVAGO9VX7/7JZRS2p4kBFXt//QoX0ULB8UHsQYPaapaGo0rsSqj5FcjoTLpnbRcwYlnkNYQRFo0oxOD2+yM/6N/xn1BkLWHi0iCQT6YdLHpmcnBm+Lrv/JofwOnOQAwwqtok9cmPYO5cun+hXmqUWGEWE2a6PNIB2YotjDELOD9yConuA3eZstUuQ8szaXjoWf0FywthmRVXgVLQSzzfjxSSfyox2wYtotLwe23wCLXP/487q3b65AspI9mLXTRN/pYmYSaeXllnj5VJ1Wv1MipZwkJEhinz7GdTg232PREFatr/aqfJ0rELGqMglEP9Gi5zAgEF0XggrmtZ+71xkBKA3ZSs3BT9bpVKkRQPTMpMBA4QL69d1i0ZET/q7S069DyNU/9dqeZxG299SzNTfGCOuUX+vl8xeGAEgXJw04rJOoe8fufv9145Dtwjwqg3Tk9MKCFX1e81NwMkitc7pvSiWAtydOP136F9az3l6jfymzz4cAvCRtqc2x1/O157xp1f/NJTH6gyfg0ArfAjy/URBXC7IGI4+E64YKSAoptE7WYr5J+tNzH1TSuQ67gykNka69KCBEJUSveaBmU9+sEGsma88OiPgzIlGqfLHhAthjSxXbWnclPD9eYsnB6qoDcFhsZQv49owRABBNiLcQj8bYwqR+JIZfZkqHvQI4uMXQF/Z8pIy1Et61IN4LoAiikx9ygxg1S9ct4J1/zhGFTAG7d8Y9h0UNzhpkPiruyBO8WnPyQsVE0nDfC1S1zET2chIrXF6z9CJQIhdD7cuJRN2nXclZmcQlPqVkBlKmbHWhP86S9pGSm3vqV29z926IgwShMF8e0VM/E+7ezawbwhq8Q7mzCuL5Qcjlc1IUlwiy6GqLFB78PNJUU4fpKtscbuQ8BA8hnEPlQcrQ6rVY7nZFcQNH4C9qggSYb7EWTaqOC8ok3tGtqq4jRmk7Jj2Tj7sFHME/r7nsX8nE9KbaOF2Qj284woICH8Htfh05Dh/MWYuH4bp6XIlkL7zxdijLaBHpP1430v0gBnSpz2a67vzLfHSKAdaXcS95tUP5cKxw1vGMbxGVwqxygvHM08TY+UDMXf92pbQjTIsaYqcxGscVuOQ2v2zVgbq/8xXJHfIPtpeAzL2NkrUd2JqK2MfL4fwzEqBd4Uy5mT5iyvOdW978M00emOmP3qgncMdmAXZ1dRsGxX9m9/4z9RFRZ0hjlZ6zLfyA7+Rr1OXmFYTO09rCxg+yLBTs/nj/VQSVzkkI7j0I5gj1L6n3h+ybxWZC+tZja9NJm7DZv1uKMqJe+gNMa5jvHG6i1UjYf+OJwKykC56PUHBaUIPWJMaE7NJb0BQXlK1r3jMfsXp7Z0HITDsQrpLEpo1PmhoUZma+N0edZuPyOFs0iRJ7Jou69cDkqmlkc6JXg6oijA8TnJXet4C7SYb+aJYdiwi1XeMa3wBSIczxQQAhnRt8hxbi9g6bzyhuy6ez3WgpJkM1kBPCn/HQxysZGpFtcTFFBI1cEM1xG63TbUN8Fo/ermyvaBhH9iDM+2fTE/RjcwTRjWmeLGdfpkLsQufWcR9qs5tySQ257fVypstJdqUE+QIJQyPLsICX3gxTHZZ/GrQHA9chKOgUKvoA52Xyvn6fo4yYE8A+x00C9oPbL5xvOHfByT/b67yCo39EB3J1sSgU5rv8CuX6Chop1Xb68FK+lJSweHWA5kRTPqMBcmFWyoips4YJvZCi8OUNVRpjkO6KnSAg619UWZhJxUnG+Dp6iWO47ySqYUjO1GZ6PeTsDU93pRgCXaKsjkPEj8k22ESujjYShOdVG0/E3PcrTh53yt81MM6STis/EA4Fd/gnRFvp01o+vluLVJFE3wdOApRUyqgCFeiJLQSrZ6paEWwNtRi9xqLbC03iwX/HsNbHozOOcr5WrD2sVGisDpKMGppCmlfEzMFTMv1oUKUot88I4+k0+haEn1Ccbmeud1cCpEujjT9TO3bAgZN7FJPmDH+w6VMy7N6wXUXyCht7gc4M8NGPkG2ItxCPxwTm2SkWLsKfAGeGndWmR6qZaWQq1AWrBzsp0xPYvWSS21poUNn3/PBwIDmkIbeQHT3gaMSr1WPEXzKM1Ziflg45+lL+2w05XIdK2WMC/hI3d7VjrW+8xXra8Sr6fSdYjaCYub2hsBMr7xuvAyMznv18e65Kj6n2S2TCd/KylcvPj52jIp6fXzeTow+Y+uHXtYcNlJZ7tpX4lEHX2fEIYQiEY/RFXbajNJeWrWw/m8UULRtug/gQ+UP5Ap5ew/Pmj8twxduHVKbMHYA2Dmy6qf/9dDmvOR0lcdjgLwhr56VNFCSJIGAG1XLWyedUvKJCLWYhJa7SWlUpOvfXURI+B+FZu/+hmjd+hsmuY0dVWDWxIpMK4MHpZ8qy2zTyIZh7HrNIU7qSjVlSJgVa4NKl1oQWXZkLe3AdBJsbpIqyvv7vu2J7IVqgW4xbQ+TbIjF6XgrC1fVDwsl8UeMbPTmuoWbDSPmEMcKK4oyeYH94LouO9XwMQZC0rD9vr1tI2Xi/pgxorUxIKH+F/k/nYrW6OF0cFAO/YPT+N/cHRbQZ0CbO8ZPUXusWFBXm8CfDb52ASVmx7V6Z030N+xY58Oxt/mzdEfiufgmchQE2Prgpzsva/coDw7Rb1GllYFxQQcU6wMImynQkcBXqkZxAoAtgaOS4CN/y56cm22qA2A/MlOBxYyeuTxvYw60Ouar8PWC0TL6jYcmvdZyJstTKbI75K/0mcWBsuh69G+cy5o85ND3os3QZybM3y5BWHX0rSRkk95GSi9SELZvR8YZWF07AOHFl/JBOJx6Y+QYWg1Z5RBmSoa+bnDhDfQlzUwFUhyxiswr4C2VshUsixnfkg9gQK3UQ4l+Apkk21eNs0nlssJ58r+iuUtOWJ0lN6oEUDxt6KnMmdn25cXUqDjagujCOmQ4VM8V4DwjgoMwtV4aN72PYjATMq3Lf49fmGyQB9HFynOa+j0nV/t9MT7V8ZhlhJ3r8yhyJkxKpUdO8pBVQHxAV4sf0RJWusw3r7zVjldr0ksQdcR21HM22w+MUDD1rhM80VYhuJnxQEjeqVwcMXDmqY0gPhTqsNkjt18FABbZ3WOIUzVEBiEYlHBKR7+kOQGuc1rz8c09FHr5kv1GzOmouHbqUQafnZpZVd6tUu3tc73gm/gPKjVSYLUMZX5S6WPVaiHXmzxUNbopygRwvO5BaKMWyf07abyCZuPcolfx/ol00CtyXphYBbF2g8bHHxZQxwSjyRg53e7PPqzLDxf1OeR31MiN1B9Bb65ccDS+nQckbgRMLn70Hlf8MItXPAKq3my/vDS+tDfmYwsetRFLf2EqvSoN9f1ioKwO1WtLBc3a0GNN7IcG/XnmsRIyZK9E58cKP5VtFXQD5kfqtNozj6gSLW2+m4v1I9o7adSGJWgLD4e5d5PtCtghFmuEYaC4A13D5w2E5/0sRSoV6/xeIDlspQosZF91Tl3BatLmsQ6C+fmEj6C/WizzlA3kHOzPm9IgtmdgzHaN/QAqo1kg6jpL44CRQypm8ucYBz6rkoqalA+1c8PqvubBOh+7lAeNX6RgoivOwofV7IUQD4IeBBpYO/FPKGfnJ4Rwm+ROgxrrnIDFMSKvGKemev3/6p1FfTl733MBW4N75AoLw7P2b0tPgwBMiOQF/PuE7/wJ5bRUFjU5GjpS24az/1OBCzFyH9do3ofs+bopZWBTuNeWBq75qjnQfbvy1ttjqrx5MvDwn+wf26de/5g4zg4uALx1lsakE9IJQfIkZQErlcFacLf5tGFysE1DGwvvANjHUmf3H7LhVH+6T3f0Ozo6jkxqVXMko+HdhtXo63M1ZovZKNmY3VwxKon/PFmrlVn5wQjT/QigPvMClWV8iAVyBWKggf0Eii1dcBHclYYNQwlG2rpb7V7km5vHkq3OxvU5MWhxqqxdifCVdGmpIro7WG3T1Ln41FTDCybNJwo9ShWZtH4uhFIuAFUa4skEQhKk8fN11WA3y8iqIACNTpOdqVdqvJZ3XSrO1fmNP/hlHwThfPIinT3MPhNM88RA4C+tkgAXVm/Na0B5Xu2It6A8JAGzkiNjDmXfVvunetIzoUorUUGXV0SatrblgqpuXDvs4HwkbygGPb/VnbNXW5Q9EUbMGVmXQN2qa6JAW+XQKRCrJwWrHUs66Vc8Vc9NLy1wb7pqdnDemLGEsXrGuO4HOPqBXmxwDLWGbNt+qENWK/rLEewlSNz7pvXE1LwjmV1azZG+8la0uDlS8x4XRvYhR3FPSsOfwA1dl0q5RY0ByBsW5HmohkC5IYTt6uPhRa4JfVgV+Wgnssvf9/skqrjeyME8rtSEvajM+XSQ0Kz59KawuJFxm5NaPJWoBeOBmxR7hum/GRnYNiLcNgASP1EOxya0OQ5FC15iC3bYUZ1QpMR46ztanOhfvfdDCVABSkfe90GcIShlcwTWoPcmfvdIo7BSpxMhHYTYzS+nd0Po+71l1lp1xlAnulTRzl+mNMr4SAkI7MO1ZsWpu84H1/8OU5j/ake8po1Bb3fNpX13N58m6htYMpH/NSuLZVYrIAFjHVGj2jVQCyWZS5LZ/jsf8xV4bz/ZDaRUVC2CUz46DztMzob4DGzgZrPeLQt77yuvoyevkATMJJ0bPvr6RcMWO32oAKzWPogTRCyfajyPzuk/NHHwKrFzGav72K5AtOmubDKyShnl0+XXqFGIr8mSLrAvFieGwqYSS0uX1i//UlU4FVCIQCkyVMrENlnW/tjuM6XhIWHf+aSgYunSOabTqsQEH43b0D5qEw2PCaPdNGBOYV8RrFTXe8uBh7gsKy9Dxu8njNUAmfc7ci24yu/8bi8gSDylsVl7CRUoGm5th6pdH2k6PhZ0Pnh4mWsl0D4hal50M+eCDEjuSgyO4JJa4yHD5WDFXA0e69NRBFzCU0nLjwc0ZIi71Z+taUkdgus2PaD/K2DOab3y+j7lRz+BsH3vx2pFrdeoTNN5CwlqBZ16QwOqzfqfqeXNz+x+xoMvVl0vakcj6S2ABBV0DnrwJ+2R7n7hqSau7Vz6u2LHI7AC/5rohyi9z8jRMQ3ZPuKGhCXmqfSs2gMAprQ6tOjI+WGWJ29vbDDe6niY/P+SQ6LoaYn8a9PcSI1fyn9jEaH719xTukrV1sTJrGc/9tXK8mNIOfO3me1ouzOzn3ALC3RTBa/8qkACYgBQZdoHjsFo3dJQvjLXBNrTaIW3jj8jas8SkqjDY8pwW6ivl6qbhs4xyFZIoGpr34hYl5RLaismENqHmsflsejb3i0RBdXIlvqDkAd+mLfgcMayGx7tFzk0gks7ECJHO5hnJRNXKBE2CUyCpBrOdyI9RFL7G0QOcbWCfoVWLGHpD4shzSnASDXVPHNnjXB/USsK/GL9xlOSgbqVbyk4KXuO8oDzgFE8SH/aY3KBJfZvfG+hmq5UrmRiAmWE8Rj4WcqPR/aJk3+CMdBgKyIxbswDr+IcbrnCArSugxSI31eKASlixj8GODIFMzTj6HdqqO61xvITj2cKsuQc0is1mFTMW0eX9cRwD5M36j9a45Hlxkr//qHwJltcHeyEjV4HOkKGRfGVFHJtBVlNbAwoiyoOPi+m64Xnoh9UXid8BD5vGsgIg1VhQ3pY6cpN+j+sZjJtHRqKsVw++DjpbSFjSU02CVYk+iOsIpnPaagClUmPiDuTsFtrHKQPMLXzryHSIJtT2s12ej8gZeNVhswp+gS2tm+URm5gS9bMOhwk6+QC3wyvaFCMMKSidcOUzIs5je3N3kvR7OaF/qD67ZoH06bVSVD1RFFtgR1nppbKKmbDxIx1QyyCqAk6W551hkMX4hQDjaG6N/kINOns7E664KpCgXXaj/pYQMkAgSWRO4sShYxPNfK8EAa+OGvpy1rtAEjVcs8yin2fYitVyC4wdWqeXB18K2ZJJkAXA+L8aPM1Jk9chzib67/Czo+QMJx9CcOmSIbJGUHT9gidymfRlot1LOGmPpuMqX+WxxwxnbUKA96KM2LOUUSKwt0yGDamGarMAnXvaOPc3X2uoRsxyJvkMQ7EVnleqRbLHNJ+5nv8l4nKo5jFf/iRBZVj5slGHZbje2o2BwtpdrS5tBy09czj3DKh/awINyLkWdxODNZOTP0GN2YcXyFYQdnN8sNo9XT9jdIncO8ui26ANtycig/FaE5dZIbxMEVBS7daO+E7yAwPwIEsUcx4LY1LZIJDht1ZqMhSGe9QRaMlMN/j7tlMcT4k5PvCrIl09OGrOjECmB5iYd/2ypSOprRbC4DaidfF2XiwF6ao2ldntREDC6BAPVu6tejxuYHaZaZNYZoAbEgXtfortB3sDHvh9Jpu2HT3TMLDNYe5NRjFNUrC+pZxPHcRbBej3RyKyopZ78R/81/PE1O5nR8u+IjeH4/QbPGZisYp1Mc38zfi/hvtrU5lxDkXguI/WwtHmEZi8kTVcG/nsGcVyjifGqYPrxs8DPOZHo71THJGwH/u/hnmPnf5EH99RiA5QxMAcGEn639GZlz9tGCGF5vCSC065HalCTVYEzPiqNv7Tp7UOOHWxIEmGdsYjASGm2TzA/59WDGkuwWwfoVUJaytHhcfHs//dwnlD2k92F9Oua9/jRFE9tMLE+9W28kQOqtXlnVn0hE15Evq+rFqaYQC0ACxEPbGoqYSolG1bLNvLB4ayC/SlDYM6WlP3POS4GySWdyn07VyCK0LM+ltPEFW/VHefzVfyrfJviUjS89islSCHp462WbdYbElWGWkVNFFcR/qUKBW/KTG3odLZoRl7utySpbSgbvBSn84ja+gqF+s05Ft3xHdLM7VQ/+fM9v7Mh3L8ZUWy1kpLkwBrHy1BbaIyV+26Yuly7RMFE8BugLVlxmJ+rsgFR8y+eExFoXvlbFszW8VcwkaeGv9c9voOjshtLVyWY6akL+8YfLu2MQIoPGtHFecxLmSyOo6MgbCd6Dsl1ZB4EqQygnWMq8jBjrvA6QNbzvasD01cynRoA7qdzQLwTWgKQj357ExK39wHlOmAj+RRPBM9t71palPyD2l7l/k/PaCmXhBUROgfamvCbQtI3n3FnqfJ53A+oc4ON5OF4LcNs6OlBsL5ZeHCwQgvBr5rUrWm/F63PftGJDGBypsgMWHHdmR7IqvUb1n6TzJbC5BKKeFi9B8PHESpl2I/nTKbwbOzfbpfeBMdlnpM71N6KMRBQ4jXA8EbuEfOsAzDx0OJ7cVUojNHwjrA/QiCUMGW1qjQjv+xoS7zny469PFiLKjMarkXaFKDUvIFRiPONMXoRKCoW3L7BFh1/hyu5RbX2pe6kzIDillleJ3WaJ0MpxXZqlNJvUumPNYgTIgmZh8e/nvV4sHa9Txze7FUZTqBasmN0KguMTqlcQfxsRmEqjn7E3rCqFX87DtHfEXv5WFdzygrckgwMYD+2KR4lf0Pw2pkAZ+9cn87x1hTcAhno7WptnQYSiskk/y6LiZqO/qq0CYvXoqYiKmYiV52pqNzaPF4YwVv/kwSqKhC4iUdrAvw8SnlPnqOLrXM66uLXAfdUT4IqifcyEeIt9Se9Ythdu3l3SJADD3h5wjaPHyS6wKX2LfC+KXdDl00GT5SqNqEsDfwQyyxaIvyae60N19sX7JsT8sOpVBGJOQ+xi5xe58nk20gX1xTLjyVhxKrpFj9+i+DKqiyZHtl+5YcCQ0T5LDmgS9YrmcguU+lADqfWQ3jPBvdLyYJzeOoj7ZjY15F8nbpiFmXCDEdTGBzF32gTbQh+qUq4nmGwCFt2AvLgp1A45P+hNAnIyviEbI48iZr4Vf4Q9Ln2qK0nU2kTQYD6ggPYCBDFq22UGwtfjR/S/SazNG+eiboYfugbmnjwmLX7BtCZtq1FPwKc4wTAm4K3WyvI8wA==\"","\"data:image/png;base64,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\"","import HomeBgAvif from \"#assets/home-bg.avif\";\nimport HomeBgPng from \"#assets/home-bg.png\";\n\nexport function HomeBackgroundImage() {\n return (\n <picture className=\"pointer-events-none absolute inset-8 z-0 size-[calc(100%-32px)] object-contain\">\n <source srcSet={HomeBgAvif} type=\"image/avif\" />\n <img src={HomeBgPng} alt=\"background\" className=\"object-contain\" />\n </picture>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype HomeScreenItemProps = {\n readonly icon?: React.JSX.Element;\n readonly title: string;\n readonly description?: string;\n readonly containerClassName?: string;\n readonly shareable?: boolean;\n readonly onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n};\nexport const HomeScreenItem = function HomeScreenItem(\n props: HomeScreenItemProps,\n) {\n const { icon, title, description, containerClassName, shareable, onClick } =\n props;\n return (\n <div\n className={twMerge(\n \"hover-bg-transparent relative flex h-24 w-40 cursor-pointer flex-col items-center justify-center overflow-hidden rounded-md p-2 text-center text-sm text-black\",\n containerClassName,\n onClick && \"cursor-pointer\",\n )}\n onClick={onClick}\n >\n <div className=\"mx-auto pb-2\">\n {icon || (\n <div className=\"size-8 items-center justify-center rounded-lg bg-black pt-1\">\n <span className=\"text-6 w-6 text-white\">\n {title.slice(0, 1).toUpperCase()}\n </span>\n </div>\n )}\n </div>\n <div className=\"w-full max-w-full\">\n <h3 className=\"w-full max-w-full truncate px-2\">{title}</h3>\n {description && <p className=\"text-gray-500\">{description}</p>}\n </div>\n {shareable && (\n <div className=\"absolute left-2 top-0 mb-2\">\n <Icon name=\"PeopleFill\" width={12} height={12} />\n </div>\n )}\n </div>\n );\n};\n","import { Icon } from \"#design-system\";\nimport { showPHModal } from \"@powerhousedao/reactor-browser\";\nimport { HomeScreenItem } from \"./home-screen-item.js\";\ntype HomeScreenAddDriveItemProps = {\n readonly containerClassName?: string;\n};\nexport const HomeScreenAddDriveItem = function HomeScreenAddDriveItem(\n props: HomeScreenAddDriveItemProps,\n) {\n const { containerClassName } = props;\n return (\n <HomeScreenItem\n title=\"Create New Drive\"\n icon={<Icon name=\"PlusSquare\" size={32} />}\n onClick={() => showPHModal({ type: \"addDrive\" })}\n containerClassName={containerClassName}\n />\n );\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { HomeBackgroundImage } from \"./home-background-image.js\";\n\ntype HomeScreenProps = {\n readonly children: React.ReactNode;\n readonly containerClassName?: string;\n};\n\nexport const HomeScreen = function HomeScreen(props: HomeScreenProps) {\n const { children, containerClassName } = props;\n return (\n <div\n className={twMerge(\n \"container relative mx-auto flex h-full flex-col\",\n containerClassName,\n )}\n >\n <div className=\"m-8 flex flex-wrap justify-center gap-4 pt-12\">\n <HomeBackgroundImage />\n {children}\n </div>\n </div>\n );\n};\n","import { Icon } from \"#design-system\";\nimport { useCallback, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport type {\n RebuildResult,\n ValidationResult,\n} from \"@powerhousedao/reactor-browser\";\n\nexport type IntegrityInspectorProps = {\n readonly onValidate: (\n documentId: string,\n branch?: string,\n ) => Promise<ValidationResult>;\n readonly onRebuildKeyframes: (\n documentId: string,\n branch?: string,\n ) => Promise<RebuildResult>;\n readonly onRebuildSnapshots: (\n documentId: string,\n branch?: string,\n ) => Promise<RebuildResult>;\n};\n\ntype ActionStatus = \"idle\" | \"running\" | \"done\" | \"error\";\ntype ConfirmAction = \"keyframes\" | \"snapshots\" | null;\n\nexport function IntegrityInspector({\n onValidate,\n onRebuildKeyframes,\n onRebuildSnapshots,\n}: IntegrityInspectorProps) {\n const [documentId, setDocumentId] = useState(\"\");\n const [branch, setBranch] = useState(\"\");\n const [status, setStatus] = useState<ActionStatus>(\"idle\");\n const [validationResult, setValidationResult] =\n useState<ValidationResult | null>(null);\n const [rebuildResult, setRebuildResult] = useState<RebuildResult | null>(\n null,\n );\n const [error, setError] = useState<string | null>(null);\n const [confirmAction, setConfirmAction] = useState<ConfirmAction>(null);\n\n const clearResults = useCallback(() => {\n setValidationResult(null);\n setRebuildResult(null);\n setError(null);\n setConfirmAction(null);\n }, []);\n\n const handleValidate = useCallback(async () => {\n if (!documentId.trim()) return;\n clearResults();\n setStatus(\"running\");\n try {\n const result = await onValidate(\n documentId.trim(),\n branch.trim() || undefined,\n );\n setValidationResult(result);\n setStatus(\"done\");\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n setStatus(\"error\");\n }\n }, [documentId, branch, onValidate, clearResults]);\n\n const handleRebuildKeyframes = useCallback(async () => {\n if (!documentId.trim()) return;\n clearResults();\n setStatus(\"running\");\n try {\n const result = await onRebuildKeyframes(\n documentId.trim(),\n branch.trim() || undefined,\n );\n setRebuildResult(result);\n setStatus(\"done\");\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n setStatus(\"error\");\n }\n }, [documentId, branch, onRebuildKeyframes, clearResults]);\n\n const handleRebuildSnapshots = useCallback(async () => {\n if (!documentId.trim()) return;\n clearResults();\n setStatus(\"running\");\n try {\n const result = await onRebuildSnapshots(\n documentId.trim(),\n branch.trim() || undefined,\n );\n setRebuildResult(result);\n setStatus(\"done\");\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n setStatus(\"error\");\n }\n }, [documentId, branch, onRebuildSnapshots, clearResults]);\n\n return (\n <div className=\"flex h-full flex-col gap-3\">\n <div className=\"flex shrink-0 items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-gray-900\">\n Integrity Inspector\n </h2>\n </div>\n\n <div className=\"flex shrink-0 items-end gap-3\">\n <div className=\"flex flex-1 flex-col gap-1\">\n <label className=\"text-xs font-medium text-gray-600\">\n Document ID\n </label>\n <input\n className=\"rounded border border-gray-300 px-3 py-1.5 text-sm outline-none focus:border-blue-400\"\n onChange={(e) => setDocumentId(e.target.value)}\n placeholder=\"Enter document ID\"\n type=\"text\"\n value={documentId}\n />\n </div>\n <div className=\"flex w-40 flex-col gap-1\">\n <label className=\"text-xs font-medium text-gray-600\">\n Branch (optional)\n </label>\n <input\n className=\"rounded border border-gray-300 px-3 py-1.5 text-sm outline-none focus:border-blue-400\"\n onChange={(e) => setBranch(e.target.value)}\n placeholder=\"main\"\n type=\"text\"\n value={branch}\n />\n </div>\n <div className=\"flex gap-2\">\n <button\n className=\"flex items-center gap-1 rounded border border-blue-300 bg-blue-50 px-3 py-1.5 text-sm text-blue-700 hover:bg-blue-100 disabled:opacity-50\"\n disabled={\n !documentId.trim() ||\n status === \"running\" ||\n confirmAction !== null\n }\n onClick={() => void handleValidate()}\n type=\"button\"\n >\n <Icon name=\"Checkmark\" size={14} />\n Validate\n </button>\n <button\n className=\"flex items-center gap-1 rounded border border-yellow-300 bg-yellow-50 px-3 py-1.5 text-sm text-yellow-700 hover:bg-yellow-100 disabled:opacity-50\"\n disabled={\n !documentId.trim() ||\n status === \"running\" ||\n confirmAction !== null\n }\n onClick={() => setConfirmAction(\"keyframes\")}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Rebuild Keyframes\n </button>\n <button\n className=\"flex items-center gap-1 rounded border border-yellow-300 bg-yellow-50 px-3 py-1.5 text-sm text-yellow-700 hover:bg-yellow-100 disabled:opacity-50\"\n disabled={\n !documentId.trim() ||\n status === \"running\" ||\n confirmAction !== null\n }\n onClick={() => setConfirmAction(\"snapshots\")}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Rebuild Snapshots\n </button>\n </div>\n </div>\n\n {confirmAction && (\n <div className=\"flex shrink-0 items-center gap-3 rounded border border-yellow-400 bg-yellow-50 px-3 py-2\">\n <span className=\"text-sm text-yellow-800\">\n {confirmAction === \"keyframes\"\n ? \"This will delete all keyframes for this document. Continue?\"\n : \"This will invalidate all cached snapshots for this document. Continue?\"}\n </span>\n <button\n className=\"rounded bg-yellow-600 px-3 py-1 text-sm text-white hover:bg-yellow-700\"\n onClick={() => {\n if (confirmAction === \"keyframes\") {\n void handleRebuildKeyframes();\n } else {\n void handleRebuildSnapshots();\n }\n }}\n type=\"button\"\n >\n Confirm\n </button>\n <button\n className=\"rounded border border-gray-300 bg-white px-3 py-1 text-sm text-gray-600 hover:bg-gray-50\"\n onClick={() => setConfirmAction(null)}\n type=\"button\"\n >\n Cancel\n </button>\n </div>\n )}\n\n <div className=\"min-h-0 flex-1 overflow-auto rounded-lg border border-gray-300 p-4\">\n {status === \"idle\" && (\n <div className=\"flex h-full items-center justify-center text-sm text-gray-400\">\n Enter a document ID and run an action\n </div>\n )}\n\n {status === \"running\" && (\n <div className=\"flex h-full items-center justify-center text-sm text-gray-500\">\n Running...\n </div>\n )}\n\n {status === \"error\" && error && (\n <div className=\"rounded bg-red-50 p-3 text-sm text-red-700\">\n {error}\n </div>\n )}\n\n {status === \"done\" && validationResult && (\n <ValidationResultView result={validationResult} />\n )}\n\n {status === \"done\" && rebuildResult && (\n <RebuildResultView result={rebuildResult} />\n )}\n </div>\n </div>\n );\n}\n\nfunction ValidationResultView({ result }: { result: ValidationResult }) {\n const totalIssues =\n result.keyframeIssues.length + result.snapshotIssues.length;\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-2\">\n <span\n className={twMerge(\n \"size-3 rounded-full\",\n result.isConsistent ? \"bg-green-500\" : \"bg-red-500\",\n )}\n />\n <span className=\"text-sm font-medium\">\n {result.isConsistent\n ? \"Document is consistent\"\n : `Found ${totalIssues} issue(s)`}\n </span>\n </div>\n\n <div className=\"text-xs text-gray-500\">Document: {result.documentId}</div>\n\n {result.keyframeIssues.length > 0 && (\n <div className=\"flex flex-col gap-1\">\n <h3 className=\"text-sm font-medium text-gray-700\">Keyframe Issues</h3>\n <table className=\"w-full border-collapse text-xs\">\n <thead>\n <tr className=\"bg-gray-100\">\n <th className=\"px-2 py-1 text-left font-medium text-gray-600\">\n Scope\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Branch\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Revision\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Keyframe Hash\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Replayed Hash\n </th>\n </tr>\n </thead>\n <tbody>\n {result.keyframeIssues.map((issue, i) => (\n <tr key={`kf-${i}`} className=\"odd:bg-white even:bg-gray-50\">\n <td className=\"px-2 py-1\">{issue.scope}</td>\n <td className=\"border-l border-gray-300 px-2 py-1\">\n {issue.branch}\n </td>\n <td className=\"border-l border-gray-300 px-2 py-1\">\n {issue.revision}\n </td>\n <td className=\"border-l border-gray-300 px-2 py-1 font-mono\">\n {issue.keyframeHash}\n </td>\n <td className=\"border-l border-gray-300 px-2 py-1 font-mono\">\n {issue.replayedHash}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n {result.snapshotIssues.length > 0 && (\n <div className=\"flex flex-col gap-1\">\n <h3 className=\"text-sm font-medium text-gray-700\">Snapshot Issues</h3>\n <table className=\"w-full border-collapse text-xs\">\n <thead>\n <tr className=\"bg-gray-100\">\n <th className=\"px-2 py-1 text-left font-medium text-gray-600\">\n Scope\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Branch\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Snapshot Hash\n </th>\n <th className=\"border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-600\">\n Replayed Hash\n </th>\n </tr>\n </thead>\n <tbody>\n {result.snapshotIssues.map((issue, i) => (\n <tr key={`snap-${i}`} className=\"odd:bg-white even:bg-gray-50\">\n <td className=\"px-2 py-1\">{issue.scope}</td>\n <td className=\"border-l border-gray-300 px-2 py-1\">\n {issue.branch}\n </td>\n <td className=\"border-l border-gray-300 px-2 py-1 font-mono\">\n {issue.snapshotHash}\n </td>\n <td className=\"border-l border-gray-300 px-2 py-1 font-mono\">\n {issue.replayedHash}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n );\n}\n\nfunction RebuildResultView({ result }: { result: RebuildResult }) {\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"size-3 rounded-full bg-green-500\" />\n <span className=\"text-sm font-medium\">Rebuild complete</span>\n </div>\n <div className=\"text-xs text-gray-500\">Document: {result.documentId}</div>\n {result.keyframesDeleted > 0 && (\n <div className=\"text-sm text-gray-700\">\n Keyframes deleted: {result.keyframesDeleted}\n </div>\n )}\n {result.scopesInvalidated > 0 && (\n <div className=\"text-sm text-gray-700\">\n Scopes invalidated: {result.scopesInvalidated}\n </div>\n )}\n </div>\n );\n}\n","import type { Size } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { AnimatedLoader } from \"../animated-loader/animated-loader.js\";\n\nexport interface LoadingScreenProps {\n showLoadingScreen: boolean;\n loadingComponent?: React.ReactNode;\n size?: Size;\n className?: string;\n}\n\nexport const LoadingScreen: React.FC<LoadingScreenProps> = (props) => {\n const { showLoadingScreen, loadingComponent, size, className } = props;\n\n if (loadingComponent && showLoadingScreen) {\n return loadingComponent;\n }\n\n return (\n <div\n className={twMerge(\n \"absolute inset-0 z-10 flex items-center justify-center bg-white\",\n !showLoadingScreen && \"hidden\",\n className,\n )}\n >\n <AnimatedLoader size={size} />\n </div>\n );\n};\n","import type { AppOptions, DivProps } from \"#design-system\";\nimport { Modal } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { AddLocalDriveForm } from \"../../form/add-local-drive-form.js\";\nimport {\n type AddRemoteDriveInput,\n AddRemoteDriveForm,\n} from \"../../form/add-remote-drive-form.js\";\nimport { TabContent } from \"../../tabs/tab-content.js\";\nimport { Tabs } from \"../../tabs/tabs.js\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\nexport type AddDriveModalProps = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onAddRemoteDrive: (data: AddRemoteDriveInput) => void;\n readonly onAddLocalDrive: (data: AppOptions) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n readonly requestPublicDrive: (\n url: string,\n ) => Promise<{ id: string; name: string }>;\n readonly appOptions: AppOptions[];\n};\nexport function AddDriveModal(props: AddDriveModalProps) {\n function handleCancel() {\n onOpenChange(false);\n }\n const {\n open,\n onOpenChange,\n onAddRemoteDrive,\n onAddLocalDrive,\n requestPublicDrive,\n modalProps,\n containerProps,\n } = props;\n return (\n <Modal\n {...modalProps}\n overlayProps={{\n className: \"items-start pt-[15vh]\",\n }}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n onOpenChange={onOpenChange}\n open={open}\n >\n <div\n {...containerProps}\n className={twMerge(\n \"w-[408px] rounded-2xl p-6\",\n containerProps?.className,\n )}\n >\n <Tabs defaultValue=\"Create Drive\">\n <TabContent label=\"Create Drive\" description=\"Create a new drive\">\n <AddLocalDriveForm\n onCancel={handleCancel}\n onSubmit={onAddLocalDrive}\n appOptions={props.appOptions}\n />\n </TabContent>\n <TabContent label=\"Add Drive\" description=\"Add a drive\">\n <AddRemoteDriveForm\n sharingType=\"PUBLIC\"\n onSubmit={onAddRemoteDrive}\n onCancel={handleCancel}\n requestPublicDrive={requestPublicDrive}\n />\n </TabContent>\n </Tabs>\n </div>\n </Modal>\n );\n}\n","import type { AppOptions, DivProps } from \"#design-system\";\nimport { Icon, Modal } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Divider } from \"../divider/divider.js\";\nimport { AddLocalDriveForm } from \"../form/add-local-drive-form.js\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\nexport type AddLocalDriveModal = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onSubmit: (data: AppOptions) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n readonly appOptions: AppOptions[];\n};\nexport function AddLocalDriveModal(props: AddLocalDriveModal) {\n const {\n open,\n onOpenChange,\n onSubmit,\n modalProps,\n containerProps,\n appOptions,\n } = props;\n function handleCancel() {\n onOpenChange(false);\n }\n return (\n <Modal\n {...modalProps}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n onOpenChange={onOpenChange}\n open={open}\n >\n <div\n {...containerProps}\n className={twMerge(\n \"max-w-[408px] rounded-2xl p-6\",\n containerProps?.className,\n )}\n >\n <div className=\"flex justify-between\">\n <h1 className=\"text-xl font-bold\">Create new drive </h1>\n <button\n className=\"flex size-8 items-center justify-center rounded-md bg-gray-100 text-gray-500 outline-none hover:text-gray-900\"\n onClick={handleCancel}\n tabIndex={-1}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <Divider className=\"my-4\" />\n <AddLocalDriveForm\n onCancel={handleCancel}\n onSubmit={onSubmit}\n appOptions={appOptions}\n />\n </div>\n </Modal>\n );\n}\n","import type { DivProps } from \"#design-system\";\nimport { Icon, Modal } from \"#design-system\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Divider } from \"../divider/divider.js\";\nimport {\n type AddPublicDriveFormProps,\n AddRemoteDriveForm,\n type AddRemoteDriveInput,\n} from \"../form/add-remote-drive-form.js\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\nexport type AddRemoteDriveModal = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onSubmit: (data: AddRemoteDriveInput) => void;\n readonly sharingType: SharingType;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n} & Pick<AddPublicDriveFormProps, \"requestPublicDrive\">;\nexport function AddRemoteDriveModal(props: AddRemoteDriveModal) {\n const {\n open,\n onOpenChange,\n onSubmit,\n sharingType,\n modalProps,\n containerProps,\n requestPublicDrive,\n } = props;\n function handleCancel() {\n onOpenChange(false);\n }\n return (\n <Modal\n {...modalProps}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n onOpenChange={onOpenChange}\n open={open}\n >\n <div\n {...containerProps}\n className={twMerge(\n \"min-w-[408px] max-w-[408px] rounded-2xl p-6\",\n containerProps?.className,\n )}\n >\n <div className=\"flex justify-between\">\n <h1 className=\"text-xl font-bold\">Add drive</h1>\n <button\n className=\"flex size-8 items-center justify-center rounded-md bg-gray-100 text-gray-500 outline-none hover:text-gray-900\"\n onClick={handleCancel}\n tabIndex={-1}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <Divider className=\"my-4\" />\n <AddRemoteDriveForm\n onCancel={handleCancel}\n onSubmit={onSubmit}\n requestPublicDrive={requestPublicDrive}\n sharingType={sharingType}\n />\n </div>\n </Modal>\n );\n}\n","import { Icon, Modal, PowerhouseButton } from \"#design-system\";\nimport { isValidName } from \"@powerhousedao/shared/document-drive\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { FormInput } from \"../form-input/form-input.js\";\n\nconst buttonStyles =\n \"min-h-[48px] min-w-[142px] text-base font-semibold py-3 px-6 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\nexport type CreateDocumentModalProps = ComponentPropsWithoutRef<\n typeof Modal\n> & {\n readonly onContinue: (nodeName: string) => void;\n};\n\nconst CLOSE_ANIMATION_DURATION = 300;\n\nexport function CreateDocumentModal(props: CreateDocumentModalProps) {\n const { onOpenChange, onContinue, overlayProps, contentProps, ...restProps } =\n props;\n\n const [nodeName, setNodeName] = useState(\"\");\n const [isValid, setIsValid] = useState(false);\n\n const handleCancel = () => {\n onOpenChange?.(false);\n setTimeout(() => setNodeName(\"\"), CLOSE_ANIMATION_DURATION);\n };\n\n const handleCreate = useCallback(() => {\n if (!isValid) {\n return;\n }\n\n onContinue(nodeName);\n setTimeout(() => setNodeName(\"\"), CLOSE_ANIMATION_DURATION);\n }, [isValid, nodeName, onContinue]);\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n handleCreate();\n },\n [handleCreate],\n );\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <form\n name=\"create-document\"\n className=\"w-[400px] p-6 text-slate-300\"\n onSubmit={handleSubmit}\n >\n <div className=\"border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800\">\n Create a new document\n </div>\n <div className=\"my-6\">\n {!isValid && nodeName && (\n <div className=\"mb-2 text-red-500\">\n Document name must be valid URL characters.\n </div>\n )}\n <FormInput\n icon={<Icon name=\"BrickGlobe\" />}\n onChange={(e) => {\n const name = e.target.value;\n setNodeName(name);\n setIsValid(isValidName(name));\n }}\n placeholder=\"Document name\"\n required\n value={nodeName}\n />\n </div>\n <div className=\"mt-8 flex justify-between gap-3\">\n <button\n type=\"button\"\n className={twMerge(\n buttonStyles,\n \"flex-1 bg-slate-50 text-slate-800\",\n )}\n onClick={handleCancel}\n >\n Cancel\n </button>\n <PowerhouseButton\n type=\"submit\"\n className={twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\")}\n disabled={!isValid}\n >\n Create\n </PowerhouseButton>\n </div>\n </form>\n </Modal>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useState } from \"react\";\nimport { FormInput } from \"../form-input/form-input.js\";\nimport type { ConfirmationModalProps } from \"./confirmation-modal.js\";\nimport { ConnectConfirmationModal } from \"./confirmation-modal.js\";\n\nexport interface ConnectDeleteDriveModalProps extends ConfirmationModalProps {\n readonly inputPlaceholder: string;\n readonly driveName: string;\n}\n\nexport const ConnectDeleteDriveModal: React.FC<ConnectDeleteDriveModalProps> = (\n props,\n) => {\n const { inputPlaceholder, body, driveName, ...confirmationModalProps } =\n props;\n\n const [inputName, setInputName] = useState(\"\");\n\n return (\n <ConnectConfirmationModal\n bodyProps={{ className: \"p-0 bg-white my-0\" }}\n containerProps={{ className: \"w-[450px]\" }}\n continueButtonProps={{\n disabled: inputName !== driveName,\n className:\n inputName !== driveName\n ? \"bg-red-600 hover:scale-100 cursor-not-allowed active:opacity-100\"\n : \"bg-red-900\",\n }}\n {...confirmationModalProps}\n >\n <div>\n <div className=\"my-6 rounded-md bg-slate-50 p-4 text-center\">\n {body}\n </div>\n <div>\n <FormInput\n hideErrors\n icon={<Icon name=\"Lock\" />}\n onChange={(e) => setInputName(e.target.value)}\n placeholder={inputPlaceholder}\n value={inputName}\n />\n </div>\n </div>\n </ConnectConfirmationModal>\n );\n};\n","import {\n type ConfirmationModalProps,\n ConnectConfirmationModal,\n} from \"./confirmation-modal.js\";\n\nexport interface ConnectDeleteItemModalProps extends Omit<\n ConfirmationModalProps,\n \"onContinue\" | \"continueLabel\"\n> {\n readonly onDelete: () => void;\n readonly deleteLabel: string;\n}\n\nexport function ConnectDeleteItemModal(props: ConnectDeleteItemModalProps) {\n const { onDelete, deleteLabel, ...restProps } = props;\n\n return (\n <ConnectConfirmationModal\n {...restProps}\n containerProps={{ className: \"w-[450px]\" }}\n continueButtonProps={{\n className: \"bg-red-900\",\n }}\n continueLabel={deleteLabel}\n onContinue={onDelete}\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { ComponentPropsWithRef, ForwardedRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport { FormInput } from \"../../form-input/form-input.js\";\n\ntype DriveNameInputProps = Omit<\n ComponentPropsWithRef<typeof FormInput>,\n \"icon\" | \"id\"\n> & {\n readonly icon?: React.JSX.Element;\n};\n\nexport const DriveNameInput = forwardRef(function DriveNameInput(\n props: DriveNameInputProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n return (\n <FormInput\n {...props}\n icon={props.icon ?? <Icon name=\"Drive\" />}\n id=\"driveName\"\n placeholder=\"Drive name\"\n ref={ref}\n />\n );\n});\n","import { Icon, PowerhouseButton } from \"#design-system\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport { useState } from \"react\";\nimport { DriveNameInput } from \"./drive-name-input.js\";\n\nexport type DeleteDriveProps = {\n drive: DocumentDriveDocument;\n handleDeleteDrive: () => void;\n onCancel: () => void;\n};\n\nexport function DeleteDrive(props: DeleteDriveProps) {\n const { drive, handleDeleteDrive, onCancel } = props;\n const [driveNameInput, setDriveNameInput] = useState(\"\");\n\n const isAllowedToDelete = driveNameInput === drive.header.name;\n\n function deleteDrive() {\n if (isAllowedToDelete) {\n handleDeleteDrive();\n }\n }\n\n return (\n <div>\n <p className=\"mb-2 rounded-md bg-slate-50 p-4 text-center text-slate-200\">\n Are you sure you want to delete this drive? All files and subfolders\n within it will be removed. Do you want to proceed?\n </p>\n <DriveNameInput\n icon={<Icon name=\"Lock\" />}\n onChange={(event) => setDriveNameInput(event.target.value)}\n placeholder=\"Enter drive name...\"\n value={driveNameInput}\n />\n <div className=\"flex gap-3\">\n <PowerhouseButton className=\"w-full\" color=\"light\" onClick={onCancel}>\n Cancel\n </PowerhouseButton>\n <PowerhouseButton\n className=\"w-full\"\n color=\"red\"\n disabled={!isAllowedToDelete}\n onClick={deleteDrive}\n >\n Delete\n </PowerhouseButton>\n </div>\n </div>\n );\n}\n","import { Icon, PowerhouseButton } from \"#design-system\";\nimport type { DriveSystemInfoState } from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport { useState } from \"react\";\nimport type { SubmitHandler } from \"react-hook-form\";\nimport { useForm } from \"react-hook-form\";\nimport { Disclosure } from \"../disclosure/disclosure.js\";\nimport { Divider } from \"../divider/divider.js\";\nimport { AvailableOfflineToggle } from \"./inputs/available-offline-toggle.js\";\nimport { DeleteDrive } from \"./inputs/delete-drive.js\";\nimport { DriveNameInput } from \"./inputs/drive-name-input.js\";\nimport { Label } from \"./inputs/label.js\";\nimport { LocationInfo } from \"./inputs/location-info.js\";\nimport { SharingTypeFormInput } from \"./inputs/sharing-type-form-input.js\";\n\ntype Inputs = {\n name: string;\n sharingType: SharingType;\n availableOffline: boolean;\n};\n\ntype DriveSettingsFormProps = {\n drive: DocumentDriveDocument;\n sharingType: SharingType;\n availableOffline: boolean;\n systemInfo: DriveSystemInfoState;\n onSubmit: DriveSettingsFormSubmitHandler;\n handleCancel: () => void;\n handleDeleteDrive: () => void;\n};\n\nexport type DriveSettingsFormSubmitHandler = SubmitHandler<Inputs>;\n\nexport function DriveSettingsForm(props: DriveSettingsFormProps) {\n const {\n drive,\n sharingType,\n availableOffline,\n systemInfo,\n onSubmit,\n handleDeleteDrive,\n } = props;\n const name = drive.header.name;\n\n const [showLocationSettings, setShowLocationSettings] = useState(false);\n const [showAbout, setShowAbout] = useState(false);\n const [showDangerZone, setShowDangerZone] = useState(false);\n const [showDeleteDrive, setShowDeleteDrive] = useState(false);\n\n const { register, handleSubmit, control } = useForm<Inputs>({\n mode: \"onBlur\",\n defaultValues: {\n name,\n sharingType,\n availableOffline,\n },\n });\n\n const location = sharingType === \"PUBLIC\" ? \"SWITCHBOARD\" : sharingType;\n\n return (\n <form onSubmit={handleSubmit(onSubmit)}>\n <DriveNameInput {...register(\"name\")} />\n <Divider className=\"my-4\" />\n <Label htmlFor=\"sharingType\">Sharing settings</Label>\n <SharingTypeFormInput control={control} />\n <Divider className=\"my-3\" />\n <Disclosure\n isOpen={showLocationSettings}\n onOpenChange={() => setShowLocationSettings(!showLocationSettings)}\n title=\"Location\"\n >\n <LocationInfo location={location} />\n <AvailableOfflineToggle {...register(\"availableOffline\")} />\n </Disclosure>\n <Divider className=\"my-3\" />\n <Disclosure\n isOpen={showAbout}\n onOpenChange={() => setShowAbout(!showAbout)}\n title=\"About this drive\"\n >\n {systemInfo.status === \"local\" && (\n <p className=\"py-2 text-sm text-gray-500\">Local drive — N/A</p>\n )}\n {systemInfo.status === \"loading\" && (\n <p className=\"py-2 text-sm text-gray-400\">Loading…</p>\n )}\n {systemInfo.status === \"error\" && (\n <p className=\"py-2 text-sm text-red-600\">\n Could not load system info\n </p>\n )}\n {systemInfo.status === \"ready\" && (\n <div className=\"py-2 text-sm text-gray-700\">\n <div>\n <span className=\"font-medium\">Version:</span> {systemInfo.version}\n </div>\n <div>\n <span className=\"font-medium\">Git hash:</span>{\" \"}\n {systemInfo.gitHash}\n </div>\n </div>\n )}\n </Disclosure>\n <Divider className=\"my-3\" />\n <Disclosure\n isOpen={showDangerZone}\n onOpenChange={() => setShowDangerZone(!showDangerZone)}\n title=\"Danger zone\"\n >\n <button\n className=\"flex gap-2 py-3 font-semibold text-red-900 transition hover:brightness-125\"\n onClick={() => setShowDeleteDrive(true)}\n type=\"button\"\n >\n <Icon name=\"Trash\" />\n Delete drive\n </button>\n </Disclosure>\n {showDeleteDrive && showDangerZone ? (\n <DeleteDrive\n drive={drive}\n handleDeleteDrive={handleDeleteDrive}\n onCancel={() => setShowDeleteDrive(false)}\n />\n ) : (\n <>\n <Divider className=\"my-3\" />\n <PowerhouseButton className=\"mb-4 w-full\" type=\"submit\">\n Confirm\n </PowerhouseButton>\n </>\n )}\n </form>\n );\n}\n","import type { DivProps } from \"#design-system\";\nimport { Icon, Modal } from \"#design-system\";\nimport type { DriveSystemInfoState } from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Divider } from \"../divider/divider.js\";\nimport {\n type DriveSettingsFormSubmitHandler,\n DriveSettingsForm,\n} from \"../form/drive-settings-form.js\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\n\nexport type DriveSettingsModalProps = {\n drive: DocumentDriveDocument;\n sharingType: SharingType;\n availableOffline: boolean;\n systemInfo: DriveSystemInfoState;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onRenameDrive: (drive: DocumentDriveDocument, newName: string) => void;\n onDeleteDrive: (drive: DocumentDriveDocument) => void;\n onChangeSharingType: (\n drive: DocumentDriveDocument,\n newSharingType: SharingType,\n ) => void;\n onChangeAvailableOffline: (\n drive: DocumentDriveDocument,\n newAvailableOffline: boolean,\n ) => void;\n modalProps?: ModalProps;\n containerProps?: DivProps;\n};\nexport function DriveSettingsModal(props: DriveSettingsModalProps) {\n const {\n drive,\n open,\n sharingType,\n availableOffline,\n systemInfo,\n onOpenChange,\n onDeleteDrive,\n onRenameDrive,\n onChangeSharingType,\n onChangeAvailableOffline,\n modalProps,\n containerProps,\n } = props;\n\n const onSubmit: DriveSettingsFormSubmitHandler = (data) => {\n if (data.name !== drive.header.name) {\n onRenameDrive(drive, data.name);\n }\n if (data.sharingType !== sharingType) {\n onChangeSharingType(drive, data.sharingType);\n }\n if (data.availableOffline !== availableOffline) {\n onChangeAvailableOffline(drive, data.availableOffline);\n }\n onOpenChange(false);\n };\n\n function handleDeleteDrive() {\n onDeleteDrive(drive);\n onOpenChange(false);\n }\n\n function handleCancel() {\n onOpenChange(false);\n }\n\n return (\n <Modal\n {...modalProps}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n onOpenChange={onOpenChange}\n open={open}\n >\n <div\n {...containerProps}\n className={twMerge(\n \"max-w-[408px] rounded-2xl p-6\",\n containerProps?.className,\n )}\n >\n <div className=\"flex justify-between\">\n <h1 className=\"text-xl font-bold\">Drive settings</h1>\n <button\n className=\"flex size-8 items-center justify-center rounded-md bg-gray-100 text-gray-500 outline-none hover:text-gray-900\"\n onClick={handleCancel}\n tabIndex={-1}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <Divider className=\"my-4\" />\n <DriveSettingsForm\n handleCancel={handleCancel}\n handleDeleteDrive={handleDeleteDrive}\n onSubmit={onSubmit}\n drive={drive}\n sharingType={sharingType}\n availableOffline={availableOffline}\n systemInfo={systemInfo}\n />\n </div>\n </Modal>\n );\n}\n","import { Icon, Modal } from \"#design-system\";\nimport { JsonViewer } from \"#design-system/ui\";\n\n/**\n * Converts an object to a JSON-serializable form by handling\n * non-serializable values like functions, symbols, and errors.\n */\nfunction toSerializableObject(obj: unknown): unknown {\n return JSON.parse(\n JSON.stringify(obj, (_key, value: unknown) => {\n if (typeof value === \"function\") return \"[Function]\";\n if (typeof value === \"symbol\") return \"[Symbol]\";\n if (value instanceof Error)\n return { name: value.name, message: value.message };\n return value;\n }),\n );\n}\n\nexport type ObjectInspectorModalProps = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly title: string;\n readonly object: unknown;\n};\n\nexport function ObjectInspectorModal({\n open,\n onOpenChange,\n title,\n object,\n}: ObjectInspectorModalProps) {\n const serializableObject = object ? toSerializableObject(object) : null;\n\n return (\n <Modal\n contentProps={{\n className: \"rounded-2xl\",\n style: { height: \"80vh\", width: \"80vw\", maxWidth: \"900px\" },\n }}\n onOpenChange={onOpenChange}\n open={open}\n title={title}\n >\n <div className=\"flex h-full w-full flex-col\">\n <div className=\"flex shrink-0 items-center justify-between border-b border-gray-200 px-4 py-3\">\n <h2 className=\"text-lg font-semibold text-gray-900\">{title}</h2>\n <button\n className=\"flex size-6 cursor-pointer items-center justify-center rounded-md text-gray-500 outline-none hover:text-gray-900\"\n onClick={() => onOpenChange(false)}\n type=\"button\"\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n\n <div className=\"flex-1 overflow-auto p-4\">\n {serializableObject ? (\n <JsonViewer data={serializableObject} />\n ) : (\n <p className=\"text-gray-500\">No data to display</p>\n )}\n </div>\n </div>\n </Modal>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ObjectInspectorModal } from \"../object-inspector-modal/index.js\";\n\nexport type ProcessorInfo = {\n processorId: string;\n factoryId: string;\n driveId: string;\n processorIndex: number;\n lastOrdinal: number;\n status: \"active\" | \"errored\";\n lastError: string | undefined;\n lastErrorTimestamp: Date | undefined;\n};\n\nexport type ProcessorsInspectorProps = {\n readonly getProcessors: () => Promise<ProcessorInfo[]>;\n readonly onRetry?: (processorId: string) => Promise<void>;\n};\n\ntype SortDirection = \"asc\" | \"desc\";\n\ntype SortOptions = {\n readonly column: string;\n readonly direction: SortDirection;\n};\n\ntype ColumnDef = {\n readonly key: string;\n readonly label: string;\n readonly width?: string;\n};\n\nconst VIEW_COLUMN: ColumnDef = { key: \"view\", label: \"\", width: \"60px\" };\n\nconst COLUMNS: ColumnDef[] = [\n VIEW_COLUMN,\n { key: \"status\", label: \"Status\", width: \"90px\" },\n { key: \"processorId\", label: \"Processor ID\", width: \"150px\" },\n { key: \"factoryId\", label: \"Factory ID\", width: \"150px\" },\n { key: \"driveId\", label: \"Drive ID\", width: \"150px\" },\n { key: \"processorIndex\", label: \"Index\", width: \"70px\" },\n { key: \"lastOrdinal\", label: \"Last Ordinal\", width: \"100px\" },\n { key: \"lastError\", label: \"Error\", width: \"180px\" },\n { key: \"lastErrorTimestamp\", label: \"Error At\", width: \"160px\" },\n { key: \"actions\", label: \"Actions\", width: \"80px\" },\n];\n\nfunction truncateId(id: string, maxLength: number = 12): string {\n if (id.length <= maxLength) return id;\n return id.slice(0, maxLength) + \"...\";\n}\n\nfunction sortProcessors(\n processors: ProcessorInfo[],\n sort: SortOptions | undefined,\n): ProcessorInfo[] {\n if (!sort) return processors;\n\n return [...processors].sort((a, b) => {\n let comparison = 0;\n\n switch (sort.column) {\n case \"status\":\n comparison = a.status.localeCompare(b.status);\n break;\n case \"processorId\":\n comparison = a.processorId.localeCompare(b.processorId);\n break;\n case \"factoryId\":\n comparison = a.factoryId.localeCompare(b.factoryId);\n break;\n case \"driveId\":\n comparison = a.driveId.localeCompare(b.driveId);\n break;\n case \"processorIndex\":\n comparison = a.processorIndex - b.processorIndex;\n break;\n case \"lastOrdinal\":\n comparison = a.lastOrdinal - b.lastOrdinal;\n break;\n case \"lastError\":\n comparison = (a.lastError ?? \"\").localeCompare(b.lastError ?? \"\");\n break;\n case \"lastErrorTimestamp\":\n comparison =\n (a.lastErrorTimestamp?.getTime() ?? 0) -\n (b.lastErrorTimestamp?.getTime() ?? 0);\n break;\n default:\n return 0;\n }\n\n return sort.direction === \"asc\" ? comparison : -comparison;\n });\n}\n\nfunction SortIcon({\n direction,\n active,\n}: {\n direction: SortDirection;\n active: boolean;\n}) {\n if (!active) {\n return (\n <Icon\n className=\"opacity-0 group-hover:opacity-50\"\n name=\"CaretSort\"\n size={12}\n />\n );\n }\n\n return (\n <Icon\n className={direction === \"asc\" ? \"rotate-180\" : undefined}\n name=\"TriangleDown\"\n size={12}\n />\n );\n}\n\nexport function ProcessorsInspector({\n getProcessors,\n onRetry,\n}: ProcessorsInspectorProps) {\n const [processors, setProcessors] = useState<ProcessorInfo[]>([]);\n const [loading, setLoading] = useState(true);\n const [sort, setSort] = useState<SortOptions | undefined>();\n const [retryingId, setRetryingId] = useState<string | null>(null);\n const [selectedProcessor, setSelectedProcessor] =\n useState<ProcessorInfo | null>(null);\n\n const [error, setError] = useState<string | null>(null);\n\n const loadProcessors = useCallback(async () => {\n try {\n const result = await getProcessors();\n setProcessors(result);\n setError(null);\n } catch (e) {\n setError(e instanceof Error ? e.message : String(e));\n } finally {\n setLoading(false);\n }\n }, [getProcessors]);\n\n useEffect(() => {\n void loadProcessors();\n\n const interval = setInterval(() => {\n void loadProcessors();\n }, 2000);\n\n return () => clearInterval(interval);\n }, [loadProcessors]);\n\n const handleRefresh = useCallback(async () => {\n setLoading(true);\n await loadProcessors();\n }, [loadProcessors]);\n\n const handleRetry = useCallback(\n async (processorId: string) => {\n if (!onRetry) return;\n setRetryingId(processorId);\n try {\n await onRetry(processorId);\n await loadProcessors();\n } finally {\n setRetryingId(null);\n }\n },\n [onRetry, loadProcessors],\n );\n\n const handleSort = (columnKey: string) => {\n const newDirection: SortDirection =\n sort?.column === columnKey && sort.direction === \"asc\" ? \"desc\" : \"asc\";\n\n setSort({ column: columnKey, direction: newDirection });\n };\n\n const sortedProcessors = sortProcessors(processors, sort);\n\n const activeCount = processors.filter((p) => p.status === \"active\").length;\n const erroredCount = processors.filter((p) => p.status === \"errored\").length;\n\n return (\n <div className=\"flex h-full flex-col gap-2\">\n <div className=\"flex shrink-0 items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-gray-900\">\n Processors Inspector\n </h2>\n <div className=\"flex items-center gap-2\">\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50\"\n disabled={loading}\n onClick={() => void handleRefresh()}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Refresh\n </button>\n </div>\n </div>\n\n <div className=\"flex shrink-0 items-center gap-4 rounded-lg bg-gray-100 px-4 py-2 text-sm\">\n <div className=\"text-gray-600\">\n Total: <span className=\"font-medium\">{processors.length}</span>\n </div>\n <div className=\"flex items-center gap-2 text-gray-600\">\n <span className=\"size-2 rounded-full bg-green-500\" />\n Active: <span className=\"font-medium\">{activeCount}</span>\n </div>\n <div className=\"flex items-center gap-2 text-gray-600\">\n <span className=\"size-2 rounded-full bg-red-500\" />\n Errored: <span className=\"font-medium\">{erroredCount}</span>\n </div>\n </div>\n\n {error && (\n <div className=\"shrink-0 rounded-lg border border-red-300 bg-red-50 px-4 py-2 text-sm text-red-700\">\n Failed to load processors: {error}\n </div>\n )}\n\n <div className=\"max-h-full overflow-auto rounded-lg border border-gray-300\">\n <table className=\"w-full border-collapse\">\n <thead className=\"sticky top-0 bg-gray-100\">\n <tr>\n {COLUMNS.map((column, index) => {\n const isActive = sort?.column === column.key;\n const sortDirection = isActive ? sort.direction : \"asc\";\n\n return (\n <th\n key={column.key}\n className={twMerge(\n \"group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-600 hover:bg-gray-200 hover:text-gray-900\",\n index > 0 && \"border-l border-gray-300\",\n )}\n onClick={() => handleSort(column.key)}\n style={{ width: column.width }}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"truncate\">{column.label}</span>\n <SortIcon active={isActive} direction={sortDirection} />\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {loading && sortedProcessors.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={COLUMNS.length}\n >\n Loading...\n </td>\n </tr>\n ) : sortedProcessors.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={COLUMNS.length}\n >\n No processors registered\n </td>\n </tr>\n ) : (\n sortedProcessors.map((processor) => (\n <tr\n key={processor.processorId}\n className={twMerge(\n \"hover:bg-blue-50\",\n processor.status === \"errored\"\n ? \"bg-red-50\"\n : \"odd:bg-white even:bg-gray-50\",\n )}\n >\n <td className=\"px-3 py-2 text-xs\">\n <button\n className=\"flex items-center gap-1 rounded bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100\"\n onClick={() => setSelectedProcessor(processor)}\n type=\"button\"\n >\n View\n </button>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs\">\n <span\n className={twMerge(\n \"inline-flex items-center gap-1 rounded px-1.5 py-0.5\",\n processor.status === \"active\"\n ? \"bg-green-100 text-green-700\"\n : \"bg-red-100 text-red-700\",\n )}\n >\n {processor.status === \"active\" && (\n <span className=\"inline-block size-1.5 rounded-full bg-green-500\" />\n )}\n {processor.status === \"errored\" && (\n <span className=\"inline-block size-1.5 rounded-full bg-red-500\" />\n )}\n {processor.status}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className=\"block truncate\"\n title={processor.processorId}\n >\n {truncateId(processor.processorId)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className=\"block truncate\"\n title={processor.factoryId}\n >\n {truncateId(processor.factoryId)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={processor.driveId}>\n {truncateId(processor.driveId)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {processor.processorIndex}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {processor.lastOrdinal}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {processor.lastError ? (\n <span\n className=\"block truncate text-red-600\"\n title={processor.lastError}\n >\n {processor.lastError}\n </span>\n ) : (\n <span className=\"text-gray-400\">-</span>\n )}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {processor.lastErrorTimestamp ? (\n <span\n className=\"block truncate\"\n title={processor.lastErrorTimestamp.toISOString()}\n >\n {processor.lastErrorTimestamp.toLocaleString()}\n </span>\n ) : (\n <span className=\"text-gray-400\">-</span>\n )}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs\">\n {processor.status === \"errored\" && onRetry && (\n <button\n className=\"flex items-center gap-1 rounded bg-yellow-50 px-2 py-1 text-xs text-yellow-700 hover:bg-yellow-100 disabled:opacity-50\"\n disabled={retryingId === processor.processorId}\n onClick={() => void handleRetry(processor.processorId)}\n type=\"button\"\n >\n Retry\n </button>\n )}\n </td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"shrink-0 text-sm text-gray-600\">\n Showing {sortedProcessors.length} processor(s)\n </div>\n\n <ObjectInspectorModal\n object={selectedProcessor}\n onOpenChange={(open) => !open && setSelectedProcessor(null)}\n open={selectedProcessor !== null}\n title=\"Processor\"\n />\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { Job } from \"@powerhousedao/reactor-browser\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ObjectInspectorModal } from \"../object-inspector-modal/index.js\";\n\nexport type QueueState = {\n readonly isPaused: boolean;\n readonly pendingJobs: Job[];\n readonly executingJobs: Job[];\n readonly totalPending: number;\n readonly totalExecuting: number;\n};\n\nexport type QueueInspectorProps = {\n readonly getQueueState: () => Promise<QueueState>;\n readonly onPause: () => Promise<void>;\n readonly onResume: () => Promise<void>;\n};\n\ntype SortDirection = \"asc\" | \"desc\";\n\ntype SortOptions = {\n readonly column: string;\n readonly direction: SortDirection;\n};\n\ntype ColumnDef = {\n readonly key: string;\n readonly label: string;\n readonly width?: string;\n};\n\nconst VIEW_COLUMN: ColumnDef = { key: \"view\", label: \"\", width: \"60px\" };\n\nconst COLUMNS: ColumnDef[] = [\n VIEW_COLUMN,\n { key: \"id\", label: \"ID\", width: \"120px\" },\n { key: \"kind\", label: \"Kind\", width: \"80px\" },\n { key: \"documentId\", label: \"Document ID\", width: \"150px\" },\n { key: \"scope\", label: \"Scope\", width: \"100px\" },\n { key: \"branch\", label: \"Branch\", width: \"100px\" },\n { key: \"createdAt\", label: \"Created At\", width: \"160px\" },\n { key: \"retryCount\", label: \"Retries\", width: \"70px\" },\n { key: \"status\", label: \"Status\", width: \"100px\" },\n];\n\nfunction truncateId(id: string, maxLength: number = 12): string {\n if (id.length <= maxLength) return id;\n return id.slice(0, maxLength) + \"...\";\n}\n\nfunction formatDate(dateStr: string): string {\n const date = new Date(dateStr);\n return date.toLocaleString();\n}\n\ntype JobWithStatus = Job & { status: \"pending\" | \"executing\" };\n\nfunction sortJobs(\n jobs: JobWithStatus[],\n sort: SortOptions | undefined,\n): JobWithStatus[] {\n if (!sort) return jobs;\n\n return [...jobs].sort((a, b) => {\n let comparison = 0;\n\n switch (sort.column) {\n case \"id\":\n comparison = a.id.localeCompare(b.id);\n break;\n case \"kind\":\n comparison = a.kind.localeCompare(b.kind);\n break;\n case \"documentId\":\n comparison = a.documentId.localeCompare(b.documentId);\n break;\n case \"scope\":\n comparison = a.scope.localeCompare(b.scope);\n break;\n case \"branch\":\n comparison = a.branch.localeCompare(b.branch);\n break;\n case \"createdAt\":\n comparison = a.createdAt.localeCompare(b.createdAt);\n break;\n case \"retryCount\":\n comparison = (a.retryCount ?? 0) - (b.retryCount ?? 0);\n break;\n case \"status\":\n comparison = a.status.localeCompare(b.status);\n break;\n default:\n return 0;\n }\n\n return sort.direction === \"asc\" ? comparison : -comparison;\n });\n}\n\nfunction SortIcon({\n direction,\n active,\n}: {\n direction: SortDirection;\n active: boolean;\n}) {\n if (!active) {\n return (\n <Icon\n className=\"opacity-0 group-hover:opacity-50\"\n name=\"CaretSort\"\n size={12}\n />\n );\n }\n\n return (\n <Icon\n className={direction === \"asc\" ? \"rotate-180\" : undefined}\n name=\"TriangleDown\"\n size={12}\n />\n );\n}\n\nexport function QueueInspector({\n getQueueState,\n onPause,\n onResume,\n}: QueueInspectorProps) {\n const [state, setState] = useState<QueueState>({\n isPaused: false,\n pendingJobs: [],\n executingJobs: [],\n totalPending: 0,\n totalExecuting: 0,\n });\n const [loading, setLoading] = useState(true);\n const [sort, setSort] = useState<SortOptions | undefined>();\n const [actionInProgress, setActionInProgress] = useState(false);\n const [selectedJob, setSelectedJob] = useState<JobWithStatus | null>(null);\n\n const loadState = useCallback(async () => {\n const newState = await getQueueState();\n setState(newState);\n setLoading(false);\n }, [getQueueState]);\n\n useEffect(() => {\n void loadState();\n\n const interval = setInterval(() => {\n void loadState();\n }, 2000);\n\n return () => clearInterval(interval);\n }, [loadState]);\n\n const handleRefresh = useCallback(async () => {\n setLoading(true);\n await loadState();\n }, [loadState]);\n\n const handlePauseResume = useCallback(async () => {\n setActionInProgress(true);\n if (state.isPaused) {\n await onResume();\n } else {\n await onPause();\n }\n await loadState();\n setActionInProgress(false);\n }, [state.isPaused, onPause, onResume, loadState]);\n\n const handleSort = (columnKey: string) => {\n const newDirection: SortDirection =\n sort?.column === columnKey && sort.direction === \"asc\" ? \"desc\" : \"asc\";\n\n setSort({ column: columnKey, direction: newDirection });\n };\n\n const allJobs: JobWithStatus[] = [\n ...state.executingJobs.map((job) => ({\n ...job,\n status: \"executing\" as const,\n })),\n ...state.pendingJobs.map((job) => ({ ...job, status: \"pending\" as const })),\n ];\n\n const sortedJobs = sortJobs(allJobs, sort);\n\n return (\n <div className=\"flex h-full flex-col gap-2\">\n <div className=\"flex shrink-0 items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-gray-900\">Queue Inspector</h2>\n <div className=\"flex items-center gap-2\">\n <button\n className={twMerge(\n \"flex items-center gap-1 rounded border px-3 py-1.5 text-sm disabled:opacity-50\",\n state.isPaused\n ? \"border-green-300 bg-green-50 text-green-700 hover:bg-green-100\"\n : \"border-yellow-300 bg-yellow-50 text-yellow-700 hover:bg-yellow-100\",\n )}\n disabled={actionInProgress}\n onClick={() => void handlePauseResume()}\n type=\"button\"\n >\n <Icon\n name={state.isPaused ? \"ArrowFilledRight\" : \"Ellipsis\"}\n size={14}\n />\n {state.isPaused ? \"Resume\" : \"Pause\"}\n </button>\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50\"\n disabled={loading}\n onClick={() => void handleRefresh()}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Refresh\n </button>\n </div>\n </div>\n\n <div className=\"flex shrink-0 items-center gap-4 rounded-lg bg-gray-100 px-4 py-2 text-sm\">\n <div className=\"flex items-center gap-2\">\n <span\n className={twMerge(\n \"size-2 rounded-full\",\n state.isPaused ? \"bg-yellow-500\" : \"bg-green-500\",\n )}\n />\n <span className=\"font-medium text-gray-700\">\n {state.isPaused ? \"Paused\" : \"Running\"}\n </span>\n </div>\n <div className=\"text-gray-600\">\n Pending: <span className=\"font-medium\">{state.totalPending}</span>\n </div>\n <div className=\"text-gray-600\">\n Executing: <span className=\"font-medium\">{state.totalExecuting}</span>\n </div>\n </div>\n\n <div className=\"max-h-full overflow-auto rounded-lg border border-gray-300\">\n <table className=\"w-full border-collapse\">\n <thead className=\"sticky top-0 bg-gray-100\">\n <tr>\n {COLUMNS.map((column, index) => {\n const isActive = sort?.column === column.key;\n const sortDirection = isActive ? sort.direction : \"asc\";\n\n return (\n <th\n key={column.key}\n className={twMerge(\n \"group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-600 hover:bg-gray-200 hover:text-gray-900\",\n index > 0 && \"border-l border-gray-300\",\n )}\n onClick={() => handleSort(column.key)}\n style={{ width: column.width }}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"truncate\">{column.label}</span>\n <SortIcon active={isActive} direction={sortDirection} />\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {loading && sortedJobs.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={COLUMNS.length}\n >\n Loading...\n </td>\n </tr>\n ) : sortedJobs.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={COLUMNS.length}\n >\n No jobs in queue\n </td>\n </tr>\n ) : (\n sortedJobs.map((job) => (\n <tr\n key={job.id}\n className=\"odd:bg-white even:bg-gray-50 hover:bg-blue-50\"\n >\n <td className=\"px-3 py-2 text-xs\">\n <button\n className=\"flex items-center gap-1 rounded bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100\"\n onClick={() => setSelectedJob(job)}\n type=\"button\"\n >\n View\n </button>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={job.id}>\n {truncateId(job.id)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className={twMerge(\n \"inline-block rounded px-1.5 py-0.5\",\n job.kind === \"mutation\"\n ? \"bg-purple-100 text-purple-700\"\n : \"bg-blue-100 text-blue-700\",\n )}\n >\n {job.kind}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={job.documentId}>\n {truncateId(job.documentId)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={job.scope}>\n {job.scope}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={job.branch}>\n {job.branch}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={job.createdAt}>\n {formatDate(job.createdAt)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {job.retryCount ?? 0}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs\">\n <span\n className={twMerge(\n \"inline-flex items-center gap-1 rounded px-1.5 py-0.5\",\n job.status === \"executing\"\n ? \"bg-green-100 text-green-700\"\n : \"bg-gray-100 text-gray-600\",\n )}\n >\n {job.status === \"executing\" && (\n <span className=\"inline-block size-1.5 animate-pulse rounded-full bg-green-500\" />\n )}\n {job.status}\n </span>\n </td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"shrink-0 text-sm text-gray-600\">\n Showing {sortedJobs.length} job(s)\n </div>\n\n <ObjectInspectorModal\n object={selectedJob}\n onOpenChange={(open) => !open && setSelectedJob(null)}\n open={selectedJob !== null}\n title=\"Job\"\n />\n </div>\n );\n}\n","import { twMerge } from \"tailwind-merge\";\n\nexport type ConnectionStateBadgeProps = {\n readonly state: string;\n readonly failureCount: number;\n};\n\nconst stateStyles: Record<string, string> = {\n connected: \"bg-green-100 text-green-800\",\n connecting: \"bg-blue-100 text-blue-800\",\n reconnecting: \"bg-yellow-100 text-yellow-800\",\n error: \"bg-red-100 text-red-800\",\n disconnected: \"bg-gray-100 text-gray-600\",\n};\n\nexport function ConnectionStateBadge({\n state,\n failureCount,\n}: ConnectionStateBadgeProps) {\n const style = stateStyles[state] ?? \"bg-gray-100 text-gray-600\";\n\n return (\n <span\n className={twMerge(\n \"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium\",\n style,\n )}\n >\n {state}\n {failureCount > 0 && (\n <span className=\"text-[10px] opacity-75\">({failureCount})</span>\n )}\n </span>\n );\n}\n","export type SortDirection = \"asc\" | \"desc\";\n\nexport type SortOptions = {\n readonly column: string;\n readonly direction: SortDirection;\n};\n\nexport type ColumnDef = {\n readonly key: string;\n readonly label: string;\n readonly width?: string;\n};\n\nexport function truncateId(id: string, maxLength: number = 12): string {\n if (id.length <= maxLength) return id;\n return id.slice(0, maxLength) + \"...\";\n}\n","import { Icon } from \"#design-system\";\nimport { type SortDirection } from \"../utils.js\";\n\nexport type SortIconProps = {\n readonly direction: SortDirection;\n readonly active: boolean;\n};\n\nexport function SortIcon({ direction, active }: SortIconProps) {\n if (!active) {\n return (\n <Icon\n className=\"opacity-0 group-hover:opacity-50\"\n name=\"CaretSort\"\n size={12}\n />\n );\n }\n\n return (\n <Icon\n className={direction === \"asc\" ? \"rotate-180\" : undefined}\n name=\"TriangleDown\"\n size={12}\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport {\n type SyncOperation,\n SyncOperationStatus,\n} from \"@powerhousedao/reactor-browser\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ObjectInspectorModal } from \"../../object-inspector-modal/index.js\";\nimport { type ColumnDef, type SortOptions, truncateId } from \"../utils.js\";\nimport { SortIcon } from \"./sort-icon.js\";\n\nexport type MailboxType = \"inbox\" | \"outbox\" | \"deadLetter\";\n\nconst VIEW_COLUMN: ColumnDef = { key: \"view\", label: \"\", width: \"60px\" };\n\nconst COLUMNS: ColumnDef[] = [\n VIEW_COLUMN,\n { key: \"documentId\", label: \"Document ID\", width: \"150px\" },\n { key: \"branch\", label: \"Branch\", width: \"100px\" },\n { key: \"scopes\", label: \"Scopes\", width: \"100px\" },\n { key: \"status\", label: \"Status\", width: \"150px\" },\n { key: \"opsCount\", label: \"Ops Count\", width: \"80px\" },\n];\n\nconst DEAD_LETTER_COLUMNS: ColumnDef[] = [\n VIEW_COLUMN,\n { key: \"documentId\", label: \"Document ID\", width: \"150px\" },\n { key: \"branch\", label: \"Branch\", width: \"100px\" },\n { key: \"scopes\", label: \"Scopes\", width: \"100px\" },\n { key: \"error\", label: \"Error\", width: \"200px\" },\n];\n\nfunction toSerializableObject(obj: unknown): unknown {\n return JSON.parse(\n JSON.stringify(obj, (_key, value: unknown) => {\n if (typeof value === \"function\") return \"[Function]\";\n if (typeof value === \"symbol\") return \"[Symbol]\";\n if (value instanceof Error)\n return { name: value.name, message: value.message };\n return value;\n }),\n );\n}\n\nfunction getStatusLabel(status: SyncOperationStatus): string {\n switch (status) {\n case SyncOperationStatus.Unknown:\n return \"Unknown\";\n case SyncOperationStatus.TransportPending:\n return \"Transport Pending\";\n case SyncOperationStatus.ExecutionPending:\n return \"Execution Pending\";\n case SyncOperationStatus.Applied:\n return \"Applied\";\n case SyncOperationStatus.Error:\n return \"Error\";\n default:\n return \"Unknown\";\n }\n}\n\nfunction getStatusIcon(status: SyncOperationStatus): React.ReactNode {\n switch (status) {\n case SyncOperationStatus.TransportPending:\n case SyncOperationStatus.ExecutionPending:\n return <span>⏳</span>;\n case SyncOperationStatus.Applied:\n return <span>✅</span>;\n case SyncOperationStatus.Error:\n return <span>❌</span>;\n default:\n return <span>❓</span>;\n }\n}\n\nfunction getErrorMessage(error: SyncOperation[\"error\"]): string {\n if (!error) return \"\";\n return error.error.message;\n}\n\nfunction sortOperations(\n operations: readonly SyncOperation[],\n sort: SortOptions | undefined,\n): SyncOperation[] {\n const ops = [...operations];\n if (!sort) return ops;\n\n return ops.sort((a, b) => {\n let comparison = 0;\n\n switch (sort.column) {\n case \"documentId\":\n comparison = a.documentId.localeCompare(b.documentId);\n break;\n case \"branch\":\n comparison = a.branch.localeCompare(b.branch);\n break;\n case \"scopes\":\n comparison = a.scopes.join(\",\").localeCompare(b.scopes.join(\",\"));\n break;\n case \"status\":\n comparison = a.status - b.status;\n break;\n case \"opsCount\":\n comparison = a.operations.length - b.operations.length;\n break;\n case \"error\":\n comparison = getErrorMessage(a.error).localeCompare(\n getErrorMessage(b.error),\n );\n break;\n default:\n return 0;\n }\n\n return sort.direction === \"asc\" ? comparison : -comparison;\n });\n}\n\nexport type MailboxTableProps = {\n readonly title: string;\n readonly mailboxType: MailboxType;\n readonly operations: readonly SyncOperation[];\n readonly sort: SortOptions | undefined;\n readonly onSort: (mailbox: MailboxType, column: string) => void;\n readonly collapsed: boolean;\n readonly onToggleCollapse: () => void;\n};\n\nexport function MailboxTable({\n title,\n mailboxType,\n operations,\n sort,\n onSort,\n collapsed,\n onToggleCollapse,\n}: MailboxTableProps) {\n const [selectedOperation, setSelectedOperation] =\n useState<SyncOperation | null>(null);\n const columns = mailboxType === \"deadLetter\" ? DEAD_LETTER_COLUMNS : COLUMNS;\n const sortedOps = sortOperations(operations, sort);\n\n const handleSort = (columnKey: string) => {\n onSort(mailboxType, columnKey);\n };\n\n const handleCopyAll = async () => {\n const serializable = toSerializableObject(operations);\n const json = JSON.stringify(serializable, null, 2);\n await navigator.clipboard.writeText(json);\n };\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <button\n className=\"flex items-center gap-2 text-left text-sm font-medium text-gray-700 hover:text-gray-900\"\n onClick={onToggleCollapse}\n type=\"button\"\n >\n <Icon\n className={twMerge(\n \"transition-transform\",\n collapsed && \"-rotate-90\",\n )}\n name=\"ChevronDown\"\n size={14}\n />\n {title} ({operations.length} item{operations.length !== 1 ? \"s\" : \"\"})\n </button>\n {operations.length > 0 && (\n <button\n className=\"flex items-center gap-1 rounded bg-gray-100 px-2 py-1 text-xs text-gray-700 hover:bg-gray-200\"\n onClick={() => void handleCopyAll()}\n type=\"button\"\n >\n <Icon name=\"Copy\" size={12} />\n Copy All\n </button>\n )}\n </div>\n\n {!collapsed && (\n <div className=\"overflow-hidden rounded-lg border border-gray-300\">\n <table className=\"w-full border-collapse\">\n <thead className=\"sticky top-0 bg-gray-100\">\n <tr>\n {columns.map((column, index) => {\n const isActive = sort?.column === column.key;\n const sortDirection = isActive ? sort.direction : \"asc\";\n\n return (\n <th\n key={column.key}\n className={twMerge(\n \"group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-600 hover:bg-gray-200 hover:text-gray-900\",\n index > 0 && \"border-l border-gray-300\",\n )}\n onClick={() => handleSort(column.key)}\n style={{ width: column.width }}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"truncate\">{column.label}</span>\n <SortIcon active={isActive} direction={sortDirection} />\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {sortedOps.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-4 text-center text-sm text-gray-500\"\n colSpan={columns.length}\n >\n No operations\n </td>\n </tr>\n ) : (\n sortedOps.map((op) => (\n <tr\n key={op.id}\n className=\"odd:bg-white even:bg-gray-50 hover:bg-blue-50\"\n >\n <td className=\"px-3 py-2 text-xs\">\n <button\n className=\"flex items-center gap-1 rounded bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100\"\n onClick={() => setSelectedOperation(op)}\n type=\"button\"\n >\n View\n </button>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={op.documentId}>\n {truncateId(op.documentId)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={op.branch}>\n {op.branch}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className=\"block truncate\"\n title={op.scopes.join(\", \")}\n >\n {op.scopes.join(\", \")}\n </span>\n </td>\n {mailboxType === \"deadLetter\" ? (\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs\">\n <span\n className=\"block truncate text-red-600\"\n title={getErrorMessage(op.error)}\n >\n {getErrorMessage(op.error) || \"Unknown error\"}\n </span>\n </td>\n ) : (\n <>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"flex items-center gap-1\">\n {getStatusIcon(op.status)}\n {getStatusLabel(op.status)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n {op.operations.length}\n </td>\n </>\n )}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n )}\n\n <ObjectInspectorModal\n object={selectedOperation}\n onOpenChange={(open) => !open && setSelectedOperation(null)}\n open={selectedOperation !== null}\n title=\"Sync Operation\"\n />\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type {\n IChannel,\n IntervalPollTimer,\n} from \"@powerhousedao/reactor-browser\";\nimport { useCallback, useState } from \"react\";\nimport type { ConnectionStateSummary } from \"../remotes-inspector.js\";\nimport { type SortDirection, type SortOptions } from \"../utils.js\";\nimport { ConnectionStateBadge } from \"./connection-state-badge.js\";\nimport { MailboxTable, type MailboxType } from \"./mailbox-table.js\";\n\nexport type ChannelInspectorProps = {\n readonly remoteName: string;\n readonly channel: IChannel;\n readonly onBack: () => void;\n readonly onRefresh?: () => void;\n readonly connectionState?: ConnectionStateSummary;\n};\n\nfunction formatTimestamp(ms: number): string {\n if (ms === 0) return \"-\";\n return new Date(ms).toLocaleTimeString();\n}\n\nexport function ChannelInspector({\n remoteName,\n channel,\n onBack,\n onRefresh,\n connectionState,\n}: ChannelInspectorProps) {\n const [sorts, setSorts] = useState<\n Record<MailboxType, SortOptions | undefined>\n >({\n inbox: undefined,\n outbox: undefined,\n deadLetter: undefined,\n });\n\n const [collapsed, setCollapsed] = useState<Record<MailboxType, boolean>>({\n inbox: false,\n outbox: false,\n deadLetter: false,\n });\n\n const handleToggleCollapse = (mailbox: MailboxType) => {\n setCollapsed((prev) => ({\n ...prev,\n [mailbox]: !prev[mailbox],\n }));\n };\n\n const handleSort = (mailbox: MailboxType, columnKey: string) => {\n setSorts((prev) => {\n const currentSort = prev[mailbox];\n const newDirection: SortDirection =\n currentSort?.column === columnKey && currentSort.direction === \"asc\"\n ? \"desc\"\n : \"asc\";\n\n return {\n ...prev,\n [mailbox]: { column: columnKey, direction: newDirection },\n };\n });\n };\n\n const getPollerControls = useCallback(() => {\n return \"poller\" in channel ? (channel.poller as IntervalPollTimer) : null;\n }, [channel]);\n\n const pollerControls = getPollerControls();\n const [pollerState, setPollerState] = useState(() => ({\n isPaused: pollerControls?.isPaused() ?? false,\n isRunning: pollerControls?.isRunning() ?? false,\n }));\n\n const [intervalMs, setIntervalMs] = useState(\n () => pollerControls?.getIntervalMs() ?? 2000,\n );\n\n const [mailboxStates, setMailboxStates] = useState(() => ({\n inbox: { isPaused: channel.inbox.isPaused() },\n outbox: { isPaused: channel.outbox.isPaused() },\n }));\n\n const handlePause = useCallback(() => {\n if (pollerControls) {\n pollerControls.pause();\n setPollerState({\n isPaused: pollerControls.isPaused(),\n isRunning: pollerControls.isRunning(),\n });\n }\n }, [pollerControls]);\n\n const handleResume = useCallback(() => {\n if (pollerControls) {\n pollerControls.resume();\n setPollerState({\n isPaused: pollerControls.isPaused(),\n isRunning: pollerControls.isRunning(),\n });\n }\n }, [pollerControls]);\n\n const handlePollNow = useCallback(() => {\n if (pollerControls) {\n pollerControls.triggerNow();\n }\n }, [pollerControls]);\n\n const handleApplyInterval = useCallback(() => {\n if (pollerControls) {\n pollerControls.setIntervalMs(intervalMs);\n }\n }, [pollerControls, intervalMs]);\n\n const handleMailboxPause = useCallback(\n (mailbox: \"inbox\" | \"outbox\") => {\n const mailboxInstance =\n mailbox === \"inbox\" ? channel.inbox : channel.outbox;\n mailboxInstance.pause();\n setMailboxStates((prev) => ({\n ...prev,\n [mailbox]: { isPaused: mailboxInstance.isPaused() },\n }));\n },\n [channel],\n );\n\n const handleMailboxResume = useCallback(\n (mailbox: \"inbox\" | \"outbox\") => {\n const mailboxInstance =\n mailbox === \"inbox\" ? channel.inbox : channel.outbox;\n mailboxInstance.resume();\n setMailboxStates((prev) => ({\n ...prev,\n [mailbox]: { isPaused: mailboxInstance.isPaused() },\n }));\n },\n [channel],\n );\n\n const handleMailboxFlush = useCallback(\n (mailbox: \"inbox\" | \"outbox\") => {\n const mailboxInstance =\n mailbox === \"inbox\" ? channel.inbox : channel.outbox;\n mailboxInstance.flush();\n onRefresh?.();\n },\n [channel, onRefresh],\n );\n\n return (\n <div className=\"flex h-full flex-col gap-3 overflow-auto\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-2 py-1 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={onBack}\n type=\"button\"\n >\n <Icon className=\"rotate-90\" name=\"ChevronDown\" size={14} />\n Back\n </button>\n <h2 className=\"text-lg font-semibold text-gray-900\">\n Channel: {remoteName}\n </h2>\n </div>\n {onRefresh && (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={onRefresh}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Refresh\n </button>\n )}\n </div>\n\n {connectionState && (\n <div className=\"rounded border border-gray-200 bg-white p-4\">\n <h3 className=\"mb-3 text-sm font-semibold text-gray-900\">\n Connection State\n </h3>\n <div className=\"flex flex-wrap items-center gap-4 text-sm text-gray-600\">\n <div className=\"flex items-center gap-2\">\n <span>State:</span>\n <ConnectionStateBadge\n failureCount={connectionState.failureCount}\n state={connectionState.state}\n />\n </div>\n <div>\n Last success: {formatTimestamp(connectionState.lastSuccessUtcMs)}\n </div>\n <div>\n Last failure: {formatTimestamp(connectionState.lastFailureUtcMs)}\n </div>\n <div>Failures: {connectionState.failureCount}</div>\n <div>\n Push:{\" \"}\n <span\n className={\n connectionState.pushBlocked\n ? \"text-red-600\"\n : \"text-green-600\"\n }\n >\n {connectionState.pushBlocked ? \"Blocked\" : \"OK\"}\n </span>\n {connectionState.pushFailureCount > 0 && (\n <span className=\"ml-1 text-red-600\">\n ({connectionState.pushFailureCount} failures)\n </span>\n )}\n </div>\n </div>\n </div>\n )}\n\n {pollerControls && (\n <div className=\"rounded border border-gray-200 bg-white p-4\">\n <h3 className=\"mb-3 text-sm font-semibold text-gray-900\">Poller</h3>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <div className=\"text-sm text-gray-600\">\n Status:{\" \"}\n <span\n className={\n pollerState.isPaused ? \"text-yellow-600\" : \"text-green-600\"\n }\n >\n {pollerState.isPaused ? \"Paused\" : \"Running\"}\n </span>\n </div>\n <div className=\"flex items-center gap-1\">\n <label\n className=\"text-sm text-gray-600\"\n htmlFor=\"poll-interval\"\n >\n Interval:\n </label>\n <input\n className=\"w-20 rounded border border-gray-300 px-2 py-1 text-sm\"\n id=\"poll-interval\"\n min={100}\n onChange={(e) => setIntervalMs(Number(e.target.value))}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleApplyInterval();\n }\n }}\n type=\"number\"\n value={intervalMs}\n />\n <span className=\"text-sm text-gray-500\">ms</span>\n <button\n className=\"ml-1 rounded border border-gray-300 bg-white px-2 py-1 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={handleApplyInterval}\n type=\"button\"\n >\n Apply\n </button>\n </div>\n </div>\n <div className=\"flex gap-2\">\n {pollerState.isPaused ? (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={handleResume}\n type=\"button\"\n >\n Resume\n </button>\n ) : (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={handlePause}\n type=\"button\"\n >\n Pause\n </button>\n )}\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={!pollerState.isPaused}\n onClick={handlePollNow}\n type=\"button\"\n >\n Poll Now\n </button>\n </div>\n </div>\n </div>\n )}\n\n <div className=\"rounded border border-gray-200 bg-white p-4\">\n <h3 className=\"mb-3 text-sm font-semibold text-gray-900\">\n Mailbox Processing\n </h3>\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3 text-sm text-gray-600\">\n <span>\n Inbox:{\" \"}\n <span\n className={\n mailboxStates.inbox.isPaused\n ? \"text-yellow-600\"\n : \"text-green-600\"\n }\n >\n {mailboxStates.inbox.isPaused ? \"Paused\" : \"Active\"}\n </span>\n </span>\n <span className=\"font-mono text-sm text-gray-500\">\n We ack'd (theirs): {channel.inbox.ackOrdinal} | Received:{\" \"}\n {channel.inbox.latestOrdinal}\n </span>\n </div>\n <div className=\"flex gap-2\">\n {mailboxStates.inbox.isPaused ? (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={() => handleMailboxResume(\"inbox\")}\n type=\"button\"\n >\n Resume\n </button>\n ) : (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={() => handleMailboxPause(\"inbox\")}\n type=\"button\"\n >\n Pause\n </button>\n )}\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={!mailboxStates.inbox.isPaused}\n onClick={() => handleMailboxFlush(\"inbox\")}\n type=\"button\"\n >\n Flush\n </button>\n </div>\n </div>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3 text-sm text-gray-600\">\n <span>\n Outbox:{\" \"}\n <span\n className={\n mailboxStates.outbox.isPaused\n ? \"text-yellow-600\"\n : \"text-green-600\"\n }\n >\n {mailboxStates.outbox.isPaused ? \"Paused\" : \"Active\"}\n </span>\n </span>\n <span className=\"font-mono text-sm text-gray-500\">\n They ack'd (ours): {channel.outbox.ackOrdinal} | Sent:{\" \"}\n {channel.outbox.latestOrdinal}\n </span>\n </div>\n <div className=\"flex gap-2\">\n {mailboxStates.outbox.isPaused ? (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={() => handleMailboxResume(\"outbox\")}\n type=\"button\"\n >\n Resume\n </button>\n ) : (\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100\"\n onClick={() => handleMailboxPause(\"outbox\")}\n type=\"button\"\n >\n Pause\n </button>\n )}\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={!mailboxStates.outbox.isPaused}\n onClick={() => handleMailboxFlush(\"outbox\")}\n type=\"button\"\n >\n Flush\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-6\">\n <MailboxTable\n collapsed={collapsed.inbox}\n mailboxType=\"inbox\"\n onSort={handleSort}\n onToggleCollapse={() => handleToggleCollapse(\"inbox\")}\n operations={channel.inbox.items}\n sort={sorts.inbox}\n title=\"Inbox\"\n />\n\n <MailboxTable\n collapsed={collapsed.outbox}\n mailboxType=\"outbox\"\n onSort={handleSort}\n onToggleCollapse={() => handleToggleCollapse(\"outbox\")}\n operations={channel.outbox.items}\n sort={sorts.outbox}\n title=\"Outbox\"\n />\n\n <MailboxTable\n collapsed={collapsed.deadLetter}\n mailboxType=\"deadLetter\"\n onSort={handleSort}\n onToggleCollapse={() => handleToggleCollapse(\"deadLetter\")}\n operations={channel.deadLetter.items}\n sort={sorts.deadLetter}\n title=\"Dead Letter\"\n />\n </div>\n </div>\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { Remote } from \"@powerhousedao/reactor-browser\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ChannelInspector } from \"./components/channel-inspector.js\";\nimport { ConnectionStateBadge } from \"./components/connection-state-badge.js\";\nimport { SortIcon } from \"./components/sort-icon.js\";\nimport {\n type ColumnDef,\n type SortDirection,\n type SortOptions,\n truncateId,\n} from \"./utils.js\";\n\nexport type ConnectionStateSummary = {\n state: string;\n failureCount: number;\n lastSuccessUtcMs: number;\n lastFailureUtcMs: number;\n pushBlocked: boolean;\n pushFailureCount: number;\n};\n\nexport type RemotesInspectorProps = {\n readonly getRemotes: () => Promise<Remote[]>;\n readonly removeRemote?: (name: string) => Promise<void>;\n readonly addRemoteManual?: (url: string) => Promise<void>;\n readonly triggerPull?: (name: string) => void;\n readonly connectionStates?: ReadonlyMap<string, ConnectionStateSummary>;\n};\n\nconst BASE_COLUMNS: ColumnDef[] = [\n { key: \"id\", label: \"ID\", width: \"120px\" },\n { key: \"name\", label: \"Name\", width: \"150px\" },\n { key: \"status\", label: \"Status\", width: \"120px\" },\n { key: \"collectionId\", label: \"Collection ID\", width: \"200px\" },\n { key: \"filter\", label: \"Filter\", width: \"200px\" },\n { key: \"channel\", label: \"Channel\", width: \"100px\" },\n];\n\nconst ACTIONS_COLUMN: ColumnDef = {\n key: \"actions\",\n label: \"Actions\",\n width: \"100px\",\n};\n\nfunction formatFilter(filter: Remote[\"filter\"]): string {\n const parts: string[] = [];\n\n if (filter.branch) {\n parts.push(`branch:${filter.branch}`);\n }\n\n if (filter.documentId.length > 0) {\n parts.push(`${filter.documentId.length} doc(s)`);\n }\n\n if (filter.scope.length > 0) {\n parts.push(`${filter.scope.length} scope(s)`);\n }\n\n return parts.length > 0 ? parts.join(\", \") : \"-\";\n}\n\nfunction sortRemotes(\n remotes: Remote[],\n sort: SortOptions | undefined,\n): Remote[] {\n if (!sort) return remotes;\n\n return [...remotes].sort((a, b) => {\n let aValue: string;\n let bValue: string;\n\n switch (sort.column) {\n case \"id\":\n aValue = a.id;\n bValue = b.id;\n break;\n case \"name\":\n aValue = a.name;\n bValue = b.name;\n break;\n case \"collectionId\":\n aValue = a.collectionId;\n bValue = b.collectionId;\n break;\n case \"filter\":\n aValue = formatFilter(a.filter);\n bValue = formatFilter(b.filter);\n break;\n default:\n return 0;\n }\n\n const comparison = aValue.localeCompare(bValue);\n return sort.direction === \"asc\" ? comparison : -comparison;\n });\n}\n\nexport function RemotesInspector({\n getRemotes,\n removeRemote,\n addRemoteManual,\n triggerPull,\n connectionStates,\n}: RemotesInspectorProps) {\n const [remotes, setRemotes] = useState<Remote[]>([]);\n const [loading, setLoading] = useState(true);\n const [sort, setSort] = useState<SortOptions | undefined>();\n const [selectedRemote, setSelectedRemote] = useState<Remote | undefined>();\n const [manualUrl, setManualUrl] = useState(\"\");\n const [adding, setAdding] = useState(false);\n const [addError, setAddError] = useState<string | undefined>();\n\n const hasRowActions = !!removeRemote || !!triggerPull;\n const columns = useMemo(\n () => (hasRowActions ? [...BASE_COLUMNS, ACTIONS_COLUMN] : BASE_COLUMNS),\n [hasRowActions],\n );\n\n const loadRemotes = useCallback(async () => {\n setLoading(true);\n const data = await getRemotes();\n setRemotes(data);\n setLoading(false);\n }, [getRemotes]);\n\n useEffect(() => {\n void loadRemotes();\n }, [loadRemotes]);\n\n const handleRefresh = useCallback(async () => {\n await loadRemotes();\n if (selectedRemote) {\n const updated = remotes.find((r) => r.id === selectedRemote.id);\n setSelectedRemote(updated);\n }\n }, [loadRemotes, selectedRemote, remotes]);\n\n const handleSort = (columnKey: string) => {\n if (\n columnKey === \"channel\" ||\n columnKey === \"actions\" ||\n columnKey === \"status\"\n )\n return;\n\n const newDirection: SortDirection =\n sort?.column === columnKey && sort.direction === \"asc\" ? \"desc\" : \"asc\";\n\n setSort({ column: columnKey, direction: newDirection });\n };\n\n const handleViewChannel = (remote: Remote) => {\n setSelectedRemote(remote);\n };\n\n const handleRemove = useCallback(\n async (remote: Remote) => {\n if (!removeRemote) return;\n await removeRemote(remote.name);\n await loadRemotes();\n if (selectedRemote?.id === remote.id) {\n setSelectedRemote(undefined);\n }\n },\n [removeRemote, loadRemotes, selectedRemote],\n );\n\n const handleBack = () => {\n setSelectedRemote(undefined);\n };\n\n const handleAddManual = useCallback(async () => {\n if (!addRemoteManual) return;\n const url = manualUrl.trim();\n if (!url) return;\n setAdding(true);\n setAddError(undefined);\n try {\n await addRemoteManual(url);\n setManualUrl(\"\");\n await loadRemotes();\n } catch (error) {\n setAddError(error instanceof Error ? error.message : String(error));\n } finally {\n setAdding(false);\n }\n }, [addRemoteManual, manualUrl, loadRemotes]);\n\n const handlePull = useCallback(\n (remote: Remote) => {\n triggerPull?.(remote.name);\n },\n [triggerPull],\n );\n\n if (selectedRemote) {\n return (\n <ChannelInspector\n channel={selectedRemote.channel}\n connectionState={connectionStates?.get(selectedRemote.name)}\n onBack={handleBack}\n onRefresh={() => void handleRefresh()}\n remoteName={selectedRemote.name}\n />\n );\n }\n\n const sortedRemotes = sortRemotes(remotes, sort);\n\n return (\n <div className=\"flex h-full flex-col gap-2\">\n <div className=\"flex shrink-0 items-center justify-between gap-2\">\n <h2 className=\"text-lg font-semibold text-gray-900\">\n Remotes Inspector\n </h2>\n <div className=\"flex items-center gap-2\">\n {addRemoteManual && (\n <div className=\"flex items-center gap-1\">\n <input\n className=\"w-[260px] rounded border border-gray-300 px-2 py-1.5 text-sm text-gray-900 placeholder:text-gray-400\"\n disabled={adding}\n onChange={(e) => setManualUrl(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") void handleAddManual();\n }}\n placeholder=\"https://reactor/d/drive-id\"\n type=\"text\"\n value={manualUrl}\n />\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50\"\n disabled={adding || !manualUrl.trim()}\n onClick={() => void handleAddManual()}\n title=\"Register a remote drive in manual poll mode (no background polling)\"\n type=\"button\"\n >\n Add (manual)\n </button>\n </div>\n )}\n <button\n className=\"flex items-center gap-1 rounded border border-gray-300 bg-white px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50\"\n disabled={loading}\n onClick={() => void handleRefresh()}\n type=\"button\"\n >\n <Icon name=\"Reload\" size={14} />\n Refresh\n </button>\n </div>\n </div>\n {addError && (\n <div className=\"shrink-0 rounded border border-red-300 bg-red-50 px-3 py-1.5 text-xs text-red-700\">\n {addError}\n </div>\n )}\n\n <div className=\"max-h-full overflow-auto rounded-lg border border-gray-300\">\n <table className=\"w-full border-collapse\">\n <thead className=\"sticky top-0 bg-gray-100\">\n <tr>\n {columns.map((column, index) => {\n const isActive = sort?.column === column.key;\n const sortDirection = isActive ? sort.direction : \"asc\";\n const isSortable =\n column.key !== \"channel\" &&\n column.key !== \"actions\" &&\n column.key !== \"status\";\n\n return (\n <th\n key={column.key}\n className={twMerge(\n \"group px-3 py-2 text-left text-xs font-medium text-gray-600\",\n index > 0 && \"border-l border-gray-300\",\n isSortable &&\n \"cursor-pointer hover:bg-gray-200 hover:text-gray-900\",\n )}\n onClick={() => isSortable && handleSort(column.key)}\n style={{ width: column.width }}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"truncate\">{column.label}</span>\n {isSortable && (\n <SortIcon active={isActive} direction={sortDirection} />\n )}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {loading && sortedRemotes.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={columns.length}\n >\n Loading...\n </td>\n </tr>\n ) : sortedRemotes.length === 0 ? (\n <tr>\n <td\n className=\"px-3 py-8 text-center text-sm text-gray-500\"\n colSpan={columns.length}\n >\n No remotes configured\n </td>\n </tr>\n ) : (\n sortedRemotes.map((remote) => (\n <tr\n key={remote.id}\n className=\"odd:bg-white even:bg-gray-50 hover:bg-blue-50\"\n >\n <td className=\"px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={remote.id}>\n {truncateId(remote.id)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span className=\"block truncate\" title={remote.name}>\n {remote.name}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2\">\n {connectionStates?.get(remote.name) ? (\n <ConnectionStateBadge\n failureCount={\n connectionStates.get(remote.name)!.failureCount\n }\n state={connectionStates.get(remote.name)!.state}\n />\n ) : (\n <span className=\"text-xs text-gray-400\">-</span>\n )}\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className=\"block truncate\"\n title={remote.collectionId}\n >\n {remote.collectionId}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2 text-xs text-gray-900\">\n <span\n className=\"block truncate\"\n title={formatFilter(remote.filter)}\n >\n {formatFilter(remote.filter)}\n </span>\n </td>\n <td className=\"border-l border-gray-300 px-3 py-2\">\n <button\n className=\"flex items-center gap-1 rounded bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100\"\n onClick={() => handleViewChannel(remote)}\n type=\"button\"\n >\n View\n <Icon name=\"CaretRight\" size={12} />\n </button>\n </td>\n {hasRowActions && (\n <td className=\"border-l border-gray-300 px-3 py-2\">\n <div className=\"flex items-center gap-1\">\n {triggerPull && (\n <button\n className=\"rounded bg-gray-100 px-2 py-1 text-xs text-gray-700 hover:bg-gray-200\"\n onClick={() => handlePull(remote)}\n title=\"Trigger a single pull cycle for this remote\"\n type=\"button\"\n >\n Pull\n </button>\n )}\n {removeRemote && (\n <button\n className=\"rounded bg-red-50 px-2 py-1 text-xs text-red-700 hover:bg-red-100\"\n onClick={() => void handleRemove(remote)}\n type=\"button\"\n >\n Remove\n </button>\n )}\n </div>\n </td>\n )}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"shrink-0 text-sm text-gray-600\">\n Showing {sortedRemotes.length} remote(s)\n </div>\n </div>\n );\n}\n","import type { DivProps } from \"#design-system\";\nimport { Icon, Modal } from \"#design-system\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { DBExplorer, type DBExplorerProps } from \"../../db-explorer/index.js\";\nimport {\n IntegrityInspector,\n type IntegrityInspectorProps,\n} from \"../../integrity-inspector/index.js\";\nimport {\n ProcessorsInspector,\n type ProcessorsInspectorProps,\n} from \"../../processors-inspector/index.js\";\nimport {\n QueueInspector,\n type QueueInspectorProps,\n} from \"../../queue-inspector/index.js\";\nimport {\n RemotesInspector,\n type RemotesInspectorProps,\n} from \"../../remotes-inspector/index.js\";\nimport { TabContent } from \"../../tabs/tab-content.js\";\nimport { Tabs } from \"../../tabs/tabs.js\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\n\nexport type InspectorModalProps = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n readonly dbExplorerProps: DBExplorerProps;\n readonly remotesInspectorProps: RemotesInspectorProps;\n readonly queueInspectorProps?: QueueInspectorProps;\n readonly processorsInspectorProps?: ProcessorsInspectorProps;\n readonly integrityInspectorProps?: IntegrityInspectorProps;\n readonly defaultTab?:\n | \"Database\"\n | \"Remotes\"\n | \"Queue\"\n | \"Processors\"\n | \"Integrity\";\n};\n\nexport function InspectorModal({\n open,\n onOpenChange,\n modalProps,\n containerProps,\n dbExplorerProps,\n remotesInspectorProps,\n queueInspectorProps,\n processorsInspectorProps,\n integrityInspectorProps,\n defaultTab = \"Database\",\n}: InspectorModalProps) {\n return (\n <Modal\n {...modalProps}\n contentProps={{\n className: \"rounded-2xl\",\n style: { height: \"90vh\", width: \"90vw\", maxWidth: \"1400px\" },\n }}\n onOpenChange={onOpenChange}\n open={open}\n >\n <div\n {...containerProps}\n className={twMerge(\n \"flex h-full w-full flex-col\",\n containerProps?.className,\n )}\n >\n <div className=\"flex shrink-0 items-center justify-end px-3 pt-3\">\n <button\n className=\"flex size-6 cursor-pointer items-center justify-center rounded-md text-gray-500 outline-none hover:text-gray-900\"\n onClick={() => onOpenChange(false)}\n type=\"button\"\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n\n <div className=\"flex min-h-0 flex-1 flex-col overflow-hidden px-3 pb-3\">\n <Tabs defaultValue={defaultTab}>\n <TabContent description=\"Database explorer\" label=\"Database\">\n <div className=\"h-full\">\n <DBExplorer {...dbExplorerProps} />\n </div>\n </TabContent>\n <TabContent description=\"Remotes inspector\" label=\"Remotes\">\n <div className=\"h-full\">\n <RemotesInspector {...remotesInspectorProps} />\n </div>\n </TabContent>\n {queueInspectorProps && (\n <TabContent description=\"Queue inspector\" label=\"Queue\">\n <div className=\"h-full\">\n <QueueInspector {...queueInspectorProps} />\n </div>\n </TabContent>\n )}\n {processorsInspectorProps && (\n <TabContent description=\"Processors inspector\" label=\"Processors\">\n <div className=\"h-full\">\n <ProcessorsInspector {...processorsInspectorProps} />\n </div>\n </TabContent>\n )}\n {integrityInspectorProps && (\n <TabContent description=\"Integrity inspector\" label=\"Integrity\">\n <div className=\"h-full\">\n <IntegrityInspector {...integrityInspectorProps} />\n </div>\n </TabContent>\n )}\n </Tabs>\n </div>\n </div>\n </Modal>\n );\n}\n","import type { ComponentPropsWithoutRef } from \"react\";\nimport { useState } from \"react\";\n\nimport { Modal } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst buttonStyles =\n \"min-h-[36px] text-sm font-semibold py-2 px-4 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\nexport interface PendingPackageInstallation {\n documentType: string;\n packageName: string;\n}\n\nexport type PackageInstallModalProps = ComponentPropsWithoutRef<\n typeof Modal\n> & {\n readonly pendingInstallations: PendingPackageInstallation[];\n readonly onInstall: (packageName: string) => Promise<void>;\n readonly onDismiss: (packageName: string) => void;\n};\n\ninterface GroupedInstallation {\n packageName: string;\n documentTypes: string[];\n}\n\nfunction groupByPackage(\n installations: PendingPackageInstallation[],\n): GroupedInstallation[] {\n const groups = new Map<string, string[]>();\n for (const item of installations) {\n const existing = groups.get(item.packageName) ?? [];\n existing.push(item.documentType);\n groups.set(item.packageName, existing);\n }\n return Array.from(groups.entries()).map(([packageName, documentTypes]) => ({\n packageName,\n documentTypes,\n }));\n}\n\nexport function PackageInstallModal(props: PackageInstallModalProps) {\n const {\n pendingInstallations,\n onInstall,\n onDismiss,\n open,\n onOpenChange,\n overlayProps,\n contentProps,\n ...restProps\n } = props;\n\n const [installingPackages, setInstallingPackages] = useState<Set<string>>(\n () => new Set(),\n );\n\n const grouped = groupByPackage(pendingInstallations);\n\n async function handleInstall(packageName: string) {\n setInstallingPackages((prev) => new Set(prev).add(packageName));\n try {\n await onInstall(packageName);\n } finally {\n setInstallingPackages((prev) => {\n const next = new Set(prev);\n next.delete(packageName);\n return next;\n });\n }\n }\n\n if (grouped.length === 0) return null;\n\n return (\n <Modal\n open={open ?? grouped.length > 0}\n onOpenChange={(isOpen) => {\n if (!isOpen) {\n for (const { packageName } of grouped) {\n onDismiss(packageName);\n }\n }\n onOpenChange?.(isOpen);\n }}\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl\", contentProps?.className),\n }}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <div className=\"w-[460px] p-6 text-slate-300\">\n <div className=\"border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800\">\n {grouped.length === 1 ? \"Package Required\" : \"Packages Required\"}\n </div>\n <div className=\"my-4 text-sm text-gray-600\">\n {grouped.length === 1\n ? \"A document requires a package that is not installed.\"\n : \"Documents require packages that are not installed.\"}\n </div>\n <div className=\"flex flex-col gap-3\">\n {grouped.map(({ packageName, documentTypes }) => {\n const installing = installingPackages.has(packageName);\n return (\n <div key={packageName} className=\"rounded-xl bg-slate-50 p-4\">\n <div className=\"mb-1 text-sm font-semibold text-gray-800\">\n {packageName}\n </div>\n <div className=\"mb-3 text-xs text-gray-500\">\n Required for document type\n {documentTypes.length > 1 ? \"s\" : \"\"}:{\" \"}\n {documentTypes.join(\", \")}\n </div>\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => onDismiss(packageName)}\n disabled={installing}\n className={twMerge(\n buttonStyles,\n \"border border-slate-200 bg-white text-slate-800\",\n installing && \"cursor-not-allowed opacity-50\",\n )}\n >\n Dismiss\n </button>\n <button\n type=\"button\"\n onClick={() => void handleInstall(packageName)}\n disabled={installing}\n className={twMerge(\n buttonStyles,\n \"bg-gray-800 text-gray-50\",\n installing && \"cursor-not-allowed opacity-50\",\n )}\n >\n {installing ? \"Installing...\" : \"Install\"}\n </button>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </Modal>\n );\n}\n","import type { ComponentPropsWithoutRef } from \"react\";\n\nimport type { DivProps } from \"#design-system\";\nimport { mergeClassNameProps, Modal } from \"#design-system\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst buttonStyles =\n \"min-h-[48px] min-w-[142px] text-base font-semibold py-3 px-6 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\ntype ButtonProps = ComponentPropsWithoutRef<\"button\">;\n\nexport type ReadRequiredModalProps = ComponentPropsWithoutRef<typeof Modal> & {\n readonly header: React.ReactNode;\n readonly body?: React.ReactNode;\n readonly onContinue: () => void;\n readonly closeLabel: string;\n readonly bodyProps?: DivProps;\n readonly continueButtonProps?: ButtonProps;\n readonly headerProps?: DivProps;\n readonly buttonContainerProps?: DivProps;\n readonly containerProps?: DivProps;\n};\n\nexport function ReadRequiredModal(props: ReadRequiredModalProps) {\n const {\n body,\n header,\n children,\n onOpenChange,\n onContinue,\n closeLabel,\n overlayProps,\n contentProps,\n bodyProps = {},\n headerProps = {},\n containerProps = {},\n continueButtonProps = {},\n buttonContainerProps = {},\n ...restProps\n } = props;\n\n const [disableClose, setDisableClose] = useState(true);\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const checkScroll = () => {\n const element = contentRef.current;\n if (element) {\n if (element.scrollHeight > element.clientHeight) {\n setDisableClose(true);\n element.addEventListener(\"scroll\", handleScroll);\n } else {\n setDisableClose(false);\n }\n }\n };\n\n const handleScroll = () => {\n const element = contentRef.current;\n if (\n element &&\n element.scrollHeight - Math.ceil(element.scrollTop) ===\n element.clientHeight\n ) {\n setDisableClose(false);\n }\n };\n\n requestAnimationFrame(checkScroll);\n\n return () => {\n const element = contentRef.current;\n\n if (element) {\n element.removeEventListener(\"scroll\", handleScroll);\n }\n };\n }, []);\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl outline-none\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <div\n {...mergeClassNameProps(containerProps, \"w-[500px] p-6 text-slate-300\")}\n >\n <div\n {...mergeClassNameProps(\n headerProps,\n \"border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800\",\n )}\n >\n {header}\n </div>\n <div\n ref={contentRef}\n {...mergeClassNameProps(\n bodyProps,\n \"my-6 max-h-[245px] overflow-scroll rounded-md bg-slate-50 p-4 text-center\",\n )}\n >\n {body}\n {children}\n </div>\n <div\n {...mergeClassNameProps(\n buttonContainerProps,\n \"mt-8 flex justify-between gap-3\",\n )}\n >\n <button\n disabled={disableClose}\n onClick={onContinue}\n {...mergeClassNameProps(\n continueButtonProps,\n twMerge(\n buttonStyles,\n \"flex-1 bg-gray-800 text-gray-50\",\n disableClose &&\n \"cursor-not-allowed bg-gray-300 hover:scale-100\",\n ),\n )}\n >\n {closeLabel}\n </button>\n </div>\n </div>\n </Modal>\n );\n}\n","import { useState } from \"react\";\nimport { Disclosure } from \"../../../disclosure/disclosure.js\";\n\nconst PH_DEPENDENCIES = [\n /^@powerhousedao\\/.+$/,\n \"document-drive\",\n \"document-model\",\n];\n\ntype ValidatedPackageJson = {\n version: string;\n dependencies: Record<string, string>;\n};\n\nexport function verifyPackageJsonFields(\n packageJson: unknown,\n): ValidatedPackageJson | false {\n try {\n const parsed = packageJson as {\n version?: string;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n };\n const version = parsed.version || \"Missing version field in package.json\";\n const dependencies = Object.fromEntries(\n Object.entries({\n ...parsed.dependencies,\n ...parsed.devDependencies,\n ...parsed.peerDependencies,\n }).filter(([key]) =>\n PH_DEPENDENCIES.some((regexOrName) =>\n typeof regexOrName === \"string\"\n ? regexOrName === key\n : regexOrName.test(key),\n ),\n ),\n );\n return { version, dependencies };\n } catch (error) {\n console.error(error);\n return false;\n }\n}\n\ntype Props = {\n readonly packageJson: unknown;\n readonly phCliVersion?: string;\n};\n\nexport function DependencyVersions(props: Props) {\n const [isOpen, setIsOpen] = useState(false);\n const { packageJson, phCliVersion } = props;\n\n const validatedData = verifyPackageJsonFields(packageJson);\n if (!validatedData) {\n console.error(\"Failed to validate package.json data\");\n return null;\n }\n\n return (\n <Disclosure\n isOpen={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n title={`App version: ${validatedData.version}`}\n toggleClassName=\"text-gray-900 text-sm\"\n >\n <ul className=\"text-sm text-gray-600\">\n {Object.entries(validatedData.dependencies).map(([dep, version]) => (\n <li key={dep} className=\"my-1 flex justify-between pr-1\">\n <span>{dep.replace(\"@powerhousedao/\", \"\")}:</span>\n <span className=\"font-normal\">{version}</span>\n </li>\n ))}\n {phCliVersion && (\n <li className=\"my-1 flex justify-between pr-1\" key=\"ph-cli\">\n <span>@powerhousedao/ph-cli:</span>\n <span className=\"font-normal\">{phCliVersion}</span>\n </li>\n )}\n </ul>\n </Disclosure>\n );\n}\n","import { DependencyVersions } from \"../settings-modal/dependency-versions/dependency-versions.js\";\n\ntype Props = {\n packageJson: unknown;\n phCliVersion?: string;\n};\nexport function About(props: Props) {\n const { packageJson, phCliVersion } = props;\n return (\n <div className=\"bg-white p-3\">\n <h2 className=\"font-semibold\">About</h2>\n <p className=\"text-sm font-normal text-gray-600\">\n Connect is the hub for your most important documents and processes\n translated into software. Easily capture data in a structured way with\n Connect.\n </p>\n <div className=\"my-4\">\n <DependencyVersions\n packageJson={packageJson}\n phCliVersion={phCliVersion}\n />\n </div>\n </div>\n );\n}\n","import { cn, Icon } from \"#design-system\";\nimport type {\n DocumentDriveDocument,\n SharingType,\n} from \"@powerhousedao/shared/document-drive\";\nimport { capitalCase } from \"change-case\";\n\nfunction getDriveSharingType(drive: DocumentDriveDocument): SharingType {\n if (typeof drive !== \"object\") return \"LOCAL\";\n const isReadDrive = \"readContext\" in drive;\n const { sharingType: _sharingType } = !isReadDrive\n ? drive.state.local\n : { sharingType: \"PUBLIC\" };\n const __sharingType = _sharingType?.toUpperCase();\n const validTypes: string[] = [\"LOCAL\", \"CLOUD\", \"PUBLIC\"];\n return !__sharingType ||\n __sharingType === \"PRIVATE\" ||\n !validTypes.includes(__sharingType)\n ? \"LOCAL\"\n : (__sharingType as SharingType);\n}\nimport { useState } from \"react\";\nimport { ConnectDropdownMenu } from \"../../dropdown-menu/dropdown-menu.js\";\n\ntype ModifyDrivesProps = {\n drives: DocumentDriveDocument[];\n onDeleteDrive: (drive: DocumentDriveDocument) => void;\n className?: string;\n};\n\ntype LocalStorageProps = {\n onClearStorage: () => void | Promise<void>;\n className?: string;\n};\n\ntype Props = ModifyDrivesProps & LocalStorageProps;\n\nexport function DangerZone(props: Props) {\n const { className, ...rest } = props;\n return (\n <div className={cn(\"h-full rounded-lg bg-white p-3\", className)}>\n <h2 className=\"mb-4 font-semibold\">Modify Drives</h2>\n <ModifyDrives {...rest} />\n <h2 className=\"my-4 font-semibold\">Local Storage</h2>\n <LocalStorage {...rest} />\n </div>\n );\n}\n\nfunction ModifyDrives(props: ModifyDrivesProps) {\n const { className, ...rest } = props;\n return (\n <div className={className}>\n <DriveList {...rest} />\n </div>\n );\n}\n\nfunction DriveList(props: ModifyDrivesProps) {\n const { className, ...rest } = props;\n return (\n <div className={className}>\n {props.drives.map((drive) => (\n <Drive key={drive.header.id} drive={drive} {...rest} />\n ))}\n </div>\n );\n}\n\nfunction Drive(props: ModifyDrivesProps & { drive: DocumentDriveDocument }) {\n const { drive, className, onDeleteDrive } = props;\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const localDriveIcon = <Icon name=\"Hdd\" size={16} className=\"flex-none\" />;\n\n const cloudDriveIcon = <Icon name=\"Server\" size={16} className=\"flex-none\" />;\n\n const publicDriveIcon = drive.state.global.icon ? (\n <img\n alt=\"drive icon\"\n className=\"size-4 flex-none object-contain\"\n src={drive.state.global.icon}\n />\n ) : (\n <Icon name=\"Server\" size={16} className=\"flex-none\" />\n );\n\n function getNodeIcon() {\n const sharingType = getDriveSharingType(drive);\n if (sharingType === \"PUBLIC\") {\n return publicDriveIcon;\n }\n if (sharingType === \"CLOUD\") {\n return cloudDriveIcon;\n }\n return localDriveIcon;\n }\n\n const icon = getNodeIcon();\n\n return (\n <div\n className={cn(\n \"mb-4 flex w-96 items-center gap-2 rounded-md border border-gray-200 bg-gray-50 px-3 py-2 shadow-sm last-of-type:mb-0\",\n className,\n )}\n >\n {icon}\n <div>\n <span className=\"block text-sm font-medium leading-[18px]\">\n {capitalCase(drive.header.name)}\n </span>\n <div className=\"flex items-baseline gap-x-2 leading-[18px]\">\n <span className=\"text-sm text-gray-600\">\n {capitalCase(getDriveSharingType(drive))} App\n </span>\n <a\n href=\"https://www.powerhouse.inc/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group flex items-center gap-x-2 text-sm text-slate-500 transition-colors hover:text-[#9896FF]\"\n >\n By Powerhouse\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12 12\"\n className=\"size-4 text-gray-400 transition-colors group-hover:text-inherit\"\n >\n <path\n d=\"M7.99365 11.9939C9.46632 11.9939 10.6603 10.7999 10.6603 9.32722V7.32722C10.6603 6.95922 10.3617 6.66056 9.99365 6.66056C9.62565 6.66056 9.32699 6.95922 9.32699 7.32722V9.32722C9.32699 10.0639 8.73032 10.6606 7.99365 10.6606H2.66032C1.92365 10.6606 1.32699 10.0639 1.32699 9.32722V3.99389C1.32699 3.25723 1.92365 2.66056 2.66032 2.66056H4.66032C5.02832 2.66056 5.32699 2.36189 5.32699 1.99389C5.32699 1.6259 5.02832 1.32723 4.66032 1.32723H2.66032C1.18765 1.32723 -0.00634766 2.52123 -0.00634766 3.99389V9.32722C-0.00634766 10.7999 1.18765 11.9939 2.66032 11.9939H7.99365ZM5.32699 7.32722C5.49765 7.32722 5.67565 7.26989 5.80632 7.13989L10.1396 2.80656L11.9937 4.66056V-0.00610352H7.32699L9.18099 1.8479L4.84766 6.18123C4.58766 6.4419 4.58766 6.87922 4.84766 7.13989C4.97832 7.26989 5.15632 7.32722 5.32699 7.32722Z\"\n fill=\"currentColor\"\n />\n </svg>\n </a>\n </div>\n </div>\n <ConnectDropdownMenu\n items={[\n {\n id: \"delete-drive\",\n label: \"Delete\",\n icon: <Icon name=\"Trash\" />,\n className: \"text-red-900\",\n },\n ]}\n onItemClick={(id) => {\n if (id === \"delete-drive\") {\n onDeleteDrive(drive);\n }\n }}\n onOpenChange={setIsDropdownMenuOpen}\n open={isDropdownMenuOpen}\n >\n <button\n className=\"group ml-auto flex-none\"\n onClick={(e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }}\n >\n <Icon\n className=\"text-gray-600 group-hover:text-gray-900\"\n name=\"VerticalDots\"\n size={16}\n />\n </button>\n </ConnectDropdownMenu>\n </div>\n );\n}\n\nfunction LocalStorage(props: LocalStorageProps) {\n const { onClearStorage } = props;\n return (\n <div>\n <button\n className=\"flex items-center gap-x-2 rounded-md border border-gray-300 bg-transparent px-3 py-1 text-sm font-medium text-red-900 transition-colors hover:bg-gray-100\"\n onClick={onClearStorage}\n >\n Clear Storage <Icon name=\"Trash\" size={16} />\n </button>\n </div>\n );\n}\n","import type { SelectOption } from \"#design-system/ui\";\nimport { SelectFieldRaw } from \"#design-system/ui\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = {\n documentModelEditor: string;\n setDocumentModelEditor: (value: string) => void;\n documentModelEditorOptions: SelectOption[];\n className?: string;\n};\n\nexport function DefaultEditor(props: Props) {\n const { className, ...rest } = props;\n return (\n <div className={twMerge(\"rounded-lg p-3\", className)}>\n <DefaultEditorSelect {...rest} />\n </div>\n );\n}\n\nexport function DefaultEditorSelect(props: Props) {\n const {\n documentModelEditor,\n setDocumentModelEditor,\n documentModelEditorOptions,\n className,\n } = props;\n\n return (\n <div>\n <h3 className=\"mb-4 font-semibold text-gray-900\">\n Default Editor Selection\n </h3>\n <SelectFieldRaw\n className={twMerge(\"min-w-36 max-w-fit\", className)}\n name=\"default-editor\"\n required\n value={documentModelEditor}\n options={documentModelEditorOptions}\n multiple={false}\n onChange={(value) => setDocumentModelEditor(value as string)}\n />\n </div>\n );\n}\n","/**\n * Parse a package specifier into a bare name and an optional tag/version.\n *\n * - Scoped names split on the LAST `@` (since the name itself starts with\n * `@scope/`): `@scope/pkg@dev` → `{ name: \"@scope/pkg\", tag: \"dev\" }`.\n * - Unscoped names split on the first `@`: `pkg@1.2.3` →\n * `{ name: \"pkg\", tag: \"1.2.3\" }`.\n * - A bare name (no separator) returns `{ name, tag: undefined }`.\n * - Trailing/leading whitespace is trimmed; an empty tag (e.g. \"pkg@\")\n * is treated as missing.\n */\nexport function parsePackageSpec(spec: string): {\n name: string;\n tag: string | undefined;\n} {\n const trimmed = spec.trim();\n if (trimmed.length === 0) return { name: \"\", tag: undefined };\n\n const splitAt = trimmed.startsWith(\"@\")\n ? trimmed.lastIndexOf(\"@\")\n : trimmed.indexOf(\"@\");\n\n if (splitAt > 0) {\n const name = trimmed.slice(0, splitAt);\n const tag = trimmed.slice(splitAt + 1);\n return { name, tag: tag.length > 0 ? tag : undefined };\n }\n\n return { name: trimmed, tag: undefined };\n}\n\n/**\n * Compose a spec string from a name and optional tag/version. Used by\n * callers that want to re-serialize what `parsePackageSpec` parsed.\n */\nexport function buildPackageSpec(name: string, tag?: string): string {\n return tag ? `${name}@${tag}` : name;\n}\n","import { cn, Icon } from \"#design-system\";\nimport {\n Input,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"#design-system/ui\";\nimport { useMemo, useState } from \"react\";\n\nexport type VersionSelection =\n | { kind: \"tag\"; value: string }\n | { kind: \"version\"; value: string };\n\nexport interface VersionPickerProps {\n distTags?: Record<string, string>;\n versions?: string[];\n selected: VersionSelection;\n onChange: (next: VersionSelection) => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport function resolveDefaultVersionSelection(options: {\n distTags?: Record<string, string>;\n versions?: string[];\n version?: string;\n preferredTag?: string;\n}): VersionSelection {\n const { distTags, versions, version, preferredTag } = options;\n\n if (preferredTag && distTags && preferredTag in distTags) {\n return { kind: \"tag\", value: preferredTag };\n }\n if (distTags?.latest) {\n return { kind: \"tag\", value: \"latest\" };\n }\n const firstTag = distTags ? Object.keys(distTags)[0] : undefined;\n if (firstTag) {\n return { kind: \"tag\", value: firstTag };\n }\n if (versions && versions.length > 0) {\n return { kind: \"version\", value: versions[versions.length - 1] };\n }\n return { kind: \"tag\", value: version ?? \"latest\" };\n}\n\nexport const VersionPicker: React.FC<VersionPickerProps> = (props) => {\n const { distTags, versions, selected, onChange, disabled, className } = props;\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n\n const tagEntries = useMemo(\n () => (distTags ? Object.entries(distTags) : []),\n [distTags],\n );\n\n const filteredTags = useMemo(() => {\n const needle = query.trim().toLowerCase();\n if (!needle) return tagEntries;\n return tagEntries.filter(\n ([tag, ver]) =>\n tag.toLowerCase().includes(needle) ||\n ver.toLowerCase().includes(needle),\n );\n }, [tagEntries, query]);\n\n const filteredVersions = useMemo(() => {\n const all = versions ?? [];\n const needle = query.trim().toLowerCase();\n if (!needle) return all.slice().reverse();\n return all.filter((v) => v.toLowerCase().includes(needle)).reverse();\n }, [versions, query]);\n\n const hasAnyPickable = tagEntries.length > 0 || (versions?.length ?? 0) > 0;\n\n const triggerLabel = selected.value;\n\n return (\n <Popover\n open={open && !disabled}\n onOpenChange={(next) => {\n setOpen(next);\n if (!next) setQuery(\"\");\n }}\n >\n <PopoverTrigger\n disabled={disabled || !hasAnyPickable}\n className={cn(\n \"flex items-center justify-between gap-2 rounded-md border border-gray-300 bg-white px-2.5 py-1 text-xs font-medium text-gray-800 transition-colors\",\n \"hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-gray-900/20\",\n \"disabled:cursor-not-allowed disabled:opacity-60\",\n className,\n )}\n data-version-picker-trigger\n >\n <span className=\"truncate\">{triggerLabel}</span>\n <Icon name=\"ChevronDown\" size={12} className=\"shrink-0 text-gray-500\" />\n </PopoverTrigger>\n <PopoverContent\n data-version-picker\n align=\"start\"\n sideOffset={4}\n className=\"w-56 p-0\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <div className=\"border-b border-gray-200 p-2\">\n <div className=\"relative\">\n <Icon\n name=\"Search\"\n size={14}\n className=\"absolute left-2 top-1/2 -translate-y-1/2 text-gray-400\"\n />\n <Input\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search versions...\"\n className=\"h-8 pl-7 text-xs\"\n />\n </div>\n </div>\n <div className=\"max-h-60 overflow-y-auto py-1\">\n {filteredTags.length === 0 && filteredVersions.length === 0 && (\n <p className=\"px-3 py-4 text-center text-xs text-gray-500\">\n No matches.\n </p>\n )}\n {filteredTags.length > 0 && (\n <div className=\"pb-1\">\n <p className=\"px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-gray-500\">\n Tags\n </p>\n {filteredTags.map(([tag, ver]) => {\n const isSelected =\n selected.kind === \"tag\" && selected.value === tag;\n return (\n <button\n key={`tag:${tag}`}\n type=\"button\"\n onClick={() => {\n onChange({ kind: \"tag\", value: tag });\n setOpen(false);\n setQuery(\"\");\n }}\n className={cn(\n \"flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs transition-colors\",\n \"hover:bg-gray-100\",\n isSelected && \"bg-gray-100 font-semibold\",\n )}\n >\n <span className=\"truncate text-gray-900\">{tag}</span>\n <span className=\"truncate text-gray-500\">{ver}</span>\n </button>\n );\n })}\n </div>\n )}\n {filteredVersions.length > 0 && (\n <div>\n <p className=\"px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-gray-500\">\n Versions\n </p>\n {filteredVersions.map((ver) => {\n const isSelected =\n selected.kind === \"version\" && selected.value === ver;\n return (\n <button\n key={`ver:${ver}`}\n type=\"button\"\n onClick={() => {\n onChange({ kind: \"version\", value: ver });\n setOpen(false);\n setQuery(\"\");\n }}\n className={cn(\n \"flex w-full items-center px-3 py-1.5 text-left text-xs transition-colors\",\n \"hover:bg-gray-100\",\n isSelected && \"bg-gray-100 font-semibold\",\n )}\n >\n <span className=\"truncate text-gray-900\">{ver}</span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import { PackageAnimation } from \"#design-system\";\nimport type {\n SearchAutocompleteOption,\n SearchAutocompleteRowContext,\n} from \"#design-system/ui\";\nimport { SearchAutocomplete } from \"#design-system/ui\";\nimport type { RegistryPackageList } from \"@powerhousedao/shared/registry\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { buildPackageSpec, parsePackageSpec } from \"./parse-package-spec.js\";\nimport type { VersionSelection } from \"./version-picker.js\";\nimport {\n VersionPicker,\n resolveDefaultVersionSelection,\n} from \"./version-picker.js\";\n\nexport type PackageManagerInputProps = {\n registryPackageList: RegistryPackageList;\n onInstall: (packageSpec: string) => Promise<void>;\n disabled?: boolean;\n className?: string;\n};\n\nconst NPM_NAME_RE =\n /^@[a-z0-9][a-z0-9._-]*\\/[a-z0-9][a-z0-9._-]*$|^[a-z0-9][a-z0-9._-]*$/i;\n\nfunction isPlausiblePackageName(name: string): boolean {\n return name.length >= 2 && NPM_NAME_RE.test(name);\n}\n\ntype PackageResultCardProps = {\n option: SearchAutocompleteOption;\n ctx: SearchAutocompleteRowContext;\n typedTag: string | undefined;\n};\n\nfunction PackageResultCard(props: PackageResultCardProps) {\n const { option, ctx, typedTag } = props;\n const { selectingValue, selectLabel, selectingContent, handleSelect } = ctx;\n\n const baseName = option.label.split(\" @ \")[0] ?? option.value;\n const hasVersionMetadata =\n (option.distTags && Object.keys(option.distTags).length > 0) ||\n (option.versions?.length ?? 0) > 0;\n\n const [selected, setSelected] = useState<VersionSelection>(() =>\n resolveDefaultVersionSelection({\n distTags: option.distTags,\n versions: option.versions,\n version: option.version,\n preferredTag: typedTag,\n }),\n );\n\n // Re-sync when the typed tag changes (e.g. user edits the search query).\n // We track `typedTag` so typing `pkg@dev` pre-selects the `dev` chip.\n useEffect(() => {\n if (!typedTag) return;\n if (option.distTags && typedTag in option.distTags) {\n setSelected({ kind: \"tag\", value: typedTag });\n } else if (option.versions?.includes(typedTag)) {\n setSelected({ kind: \"version\", value: typedTag });\n }\n }, [typedTag, option.distTags, option.versions]);\n\n // npm-fallback and other metadata-less rows: trust the option's prebuilt\n // spec (which already encodes any typed tag) and skip the picker entirely.\n const installSpec = hasVersionMetadata\n ? buildPackageSpec(baseName, selected.value)\n : option.value;\n const isSelecting = selectingValue === installSpec;\n const isDisabled = option.disabled === true;\n\n return (\n <div className=\"flex items-start justify-between gap-3 rounded-md px-2 py-2 hover:bg-gray-50\">\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-medium text-gray-900\">{baseName}</p>\n {option.description && (\n <p className=\"truncate text-xs text-gray-500\">{option.description}</p>\n )}\n {option.meta && (\n <p className=\"truncate text-xs text-gray-400\">{option.meta}</p>\n )}\n {hasVersionMetadata && (\n <div className=\"mt-2\">\n <VersionPicker\n distTags={option.distTags}\n versions={option.versions}\n selected={selected}\n onChange={setSelected}\n disabled={isDisabled}\n />\n </div>\n )}\n </div>\n <div className=\"shrink-0 self-center\">\n {isSelecting && selectingContent ? (\n <div className=\"flex items-center justify-center\">\n {selectingContent}\n </div>\n ) : isDisabled ? (\n <span className=\"rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500\">\n {option.disabledLabel ?? \"Unavailable\"}\n </span>\n ) : (\n <button\n onClick={() => handleSelect(installSpec)}\n disabled={isSelecting}\n className=\"rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50\"\n >\n {isSelecting ? \"...\" : selectLabel}\n </button>\n )}\n </div>\n </div>\n );\n}\n\nexport const PackageManagerInput: React.FC<PackageManagerInputProps> = (\n props,\n) => {\n const { registryPackageList, onInstall, disabled, className } = props;\n const [typedTag, setTypedTag] = useState<string | undefined>(undefined);\n\n const fetchOptions = async (\n query: string,\n ): Promise<SearchAutocompleteOption[]> => {\n const { name: namePart, tag } = parsePackageSpec(query);\n setTypedTag(tag);\n const needle = namePart.toLowerCase();\n\n const localOptions: SearchAutocompleteOption[] = registryPackageList\n .filter(\n (pkg) =>\n pkg.name.toLowerCase().includes(needle) ||\n pkg.manifest?.description?.toLowerCase().includes(needle),\n )\n .map((pkg) => {\n const isInstalled =\n pkg.status === \"local-install\" || pkg.status === \"registry-install\";\n return {\n // `value` carries the default install spec; the row overrides it\n // with the version picker's current selection at click time.\n value: pkg.name,\n label: pkg.name,\n version: pkg.version,\n description: pkg.manifest?.description,\n meta: pkg.manifest?.publisher?.name,\n disabled: isInstalled,\n disabledLabel: isInstalled ? \"Installed\" : undefined,\n distTags: pkg.distTags,\n versions: pkg.versions,\n };\n });\n\n if (!isPlausiblePackageName(namePart) || localOptions.length > 0) {\n return Promise.resolve(localOptions);\n }\n\n const fallbackSpec = buildPackageSpec(namePart, tag);\n const fallbackLabel = tag ? `${namePart} @ ${tag}` : namePart;\n const fallbackOption: SearchAutocompleteOption = {\n value: fallbackSpec,\n label: fallbackLabel,\n version: tag,\n description:\n \"Not published to this registry. Install via the npmjs.org uplink.\",\n meta: \"npm fallback\",\n };\n return Promise.resolve([fallbackOption]);\n };\n\n const handleSelect = useCallback(\n (value: string) => {\n return onInstall(value);\n },\n [onInstall],\n );\n\n const renderRow = useCallback(\n (option: SearchAutocompleteOption, ctx: SearchAutocompleteRowContext) => (\n <PackageResultCard option={option} ctx={ctx} typedTag={typedTag} />\n ),\n [typedTag],\n );\n\n return (\n <div className={className}>\n <h3 className=\"mb-4 font-semibold text-gray-900\">Install Package</h3>\n <SearchAutocomplete\n fetchOptions={fetchOptions}\n onSelect={handleSelect}\n selectLabel=\"Install\"\n selectingContent={\n <PackageAnimation animate loop color=\"#6b7280\" size={48} />\n }\n placeholder=\"Search packages (e.g. my-pkg, my-pkg@dev, my-pkg@1.2.3)...\"\n disabled={disabled}\n renderRow={renderRow}\n keepOpenSelector=\"[data-version-picker],[data-version-picker-trigger]\"\n />\n </div>\n );\n};\n","import { Icon } from \"#design-system\";\nimport type {\n RegistryPackage,\n RegistryPackageList,\n} from \"@powerhousedao/shared/registry\";\nimport type { ReactNode } from \"react\";\nimport { useCallback, useEffect, useLayoutEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ConnectDropdownMenu } from \"../../../dropdown-menu/dropdown-menu.js\";\nimport { buildPackageSpec } from \"./parse-package-spec.js\";\nimport type { VersionSelection } from \"./version-picker.js\";\nimport {\n resolveDefaultVersionSelection,\n VersionPicker,\n} from \"./version-picker.js\";\n\nconst PackageDetail: React.FC<{ label: string; value: ReactNode }> = ({\n label,\n value,\n}) => {\n return (\n <div className=\"flex items-start gap-2 text-sm\">\n <p className=\"text-gray-600\">{label}:</p>\n <p className=\"text-gray-600\">{value}</p>\n </div>\n );\n};\n\nexport const PackageManagerListItem = (props: {\n registryPackage: RegistryPackage;\n onInstall: (packageSpec: string) => Promise<void>;\n onUninstall: (packageName: string) => void;\n className?: string;\n}) => {\n const { registryPackage, onInstall, onUninstall, className } = props;\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n\n const canPickVersion =\n registryPackage.status === \"available\" ||\n registryPackage.status === \"dismissed\";\n const hasVersionMetadata =\n (registryPackage.distTags &&\n Object.keys(registryPackage.distTags).length > 0) ||\n (registryPackage.versions?.length ?? 0) > 0;\n\n const [selected, setSelected] = useState<VersionSelection>(() =>\n resolveDefaultVersionSelection({\n distTags: registryPackage.distTags,\n versions: registryPackage.versions,\n version: registryPackage.version,\n }),\n );\n\n const installDropdownItem = {\n id: \"install\",\n label: \"Install\",\n icon: <Icon name=\"DownloadFile\" />,\n className: \"text-gray-800\",\n } as const;\n\n const uninstallDropdownItem = {\n id: \"uninstall\",\n label: \"Uninstall\",\n icon: <Icon name=\"Trash\" />,\n className: \"text-red-900\",\n } as const;\n\n function getDropdownItems() {\n return [\n canPickVersion ? installDropdownItem : undefined,\n registryPackage.status === \"registry-install\"\n ? uninstallDropdownItem\n : undefined,\n ].filter((item) => item !== undefined);\n }\n\n const dropdownItems = getDropdownItems();\n return (\n <li\n className={twMerge(\n \"relative flex flex-col items-start rounded-md border border-gray-200 p-3 text-sm leading-5 shadow-sm\",\n className,\n )}\n >\n <div className=\"flex flex-wrap items-center gap-2 pr-8\">\n <h3 className=\"font-semibold text-gray-900\">{registryPackage.name}</h3>\n {canPickVersion && hasVersionMetadata ? (\n <VersionPicker\n distTags={registryPackage.distTags}\n versions={registryPackage.versions}\n selected={selected}\n onChange={setSelected}\n />\n ) : registryPackage.version ? (\n <span className=\"text-xs font-normal text-gray-500\">\n v{registryPackage.version}\n </span>\n ) : null}\n </div>\n {registryPackage.manifest !== null &&\n (() => {\n const { description, category, publisher } = registryPackage.manifest;\n const hasAnyField =\n description != null ||\n category != null ||\n publisher?.name != null ||\n publisher?.url != null;\n if (!hasAnyField) return null;\n return (\n <>\n {description != null && (\n <PackageDetail label=\"Description\" value={description} />\n )}\n {category != null && (\n <PackageDetail label=\"Category\" value={category} />\n )}\n {publisher?.name != null && (\n <PackageDetail label=\"Publisher\" value={publisher.name} />\n )}\n {publisher?.url != null && (\n <PackageDetail\n label=\"Publisher URL\"\n value={\n <a className=\"underline\" href={publisher.url}>\n {publisher.url}\n </a>\n }\n />\n )}\n </>\n );\n })()}\n <ConnectDropdownMenu\n items={dropdownItems}\n onItemClick={(id) => {\n if (id === \"install\") {\n const spec =\n canPickVersion && hasVersionMetadata\n ? buildPackageSpec(registryPackage.name, selected.value)\n : registryPackage.name;\n onInstall(spec).catch(console.error);\n return;\n }\n onUninstall(registryPackage.name);\n }}\n onOpenChange={setIsDropdownMenuOpen}\n open={isDropdownMenuOpen}\n >\n <button\n className=\"group absolute right-3 top-3\"\n onClick={(e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }}\n >\n <Icon\n className=\"text-gray-600 group-hover:text-gray-900\"\n name=\"VerticalDots\"\n />\n </button>\n </ConnectDropdownMenu>\n </li>\n );\n};\n\nexport const PackageManagerList = (props: {\n registryPackageList: RegistryPackageList;\n onInstall: (packageSpec: string) => Promise<void>;\n onUninstall: (packageName: string) => void;\n className?: string;\n}) => {\n const { className, registryPackageList, onInstall, onUninstall } = props;\n const [maxHeight, setMaxHeight] = useState<number | undefined>();\n\n const locallyInstalledPackages = registryPackageList.filter(\n (p) => p.status === \"local-install\",\n );\n const registryInstalledPackages = registryPackageList.filter(\n (p) => p.status === \"registry-install\",\n );\n const availablePackages = registryPackageList.filter(\n (p) => p.status === \"available\",\n );\n const dismissedPackages = registryPackageList.filter(\n (p) => p.status === \"dismissed\",\n );\n\n useLayoutEffect(() => {\n const calculateMaxHeight = () => {\n const viewportHeight = window.innerHeight;\n const availableHeight = viewportHeight - 516;\n setMaxHeight(Math.max(200, availableHeight));\n };\n\n calculateMaxHeight();\n\n window.addEventListener(\"resize\", calculateMaxHeight);\n return () => window.removeEventListener(\"resize\", calculateMaxHeight);\n }, []);\n\n const hasLocallyInstalled = locallyInstalledPackages.length > 0;\n const hasRegistryInstalled = registryInstalledPackages.length > 0;\n const hasAnyInstalled = hasLocallyInstalled || hasRegistryInstalled;\n const hasAvailable = availablePackages.length > 0;\n const hasDismissed = dismissedPackages.length > 0;\n const installedCount =\n locallyInstalledPackages.length + registryInstalledPackages.length;\n\n return (\n <div\n className={twMerge(\n \"flex flex-col items-stretch overflow-hidden\",\n className,\n )}\n style={{ maxHeight }}\n >\n <div className=\"flex-1 overflow-y-auto pr-2\">\n <PackageSection\n sectionId=\"installed\"\n title=\"Installed Packages\"\n count={installedCount}\n isEmpty={!hasAnyInstalled}\n emptyText=\"No packages installed.\"\n >\n {hasLocallyInstalled && (\n <PackageSubSection\n title=\"Locally installed\"\n count={locallyInstalledPackages.length}\n >\n <PackageList\n packages={locallyInstalledPackages}\n onInstall={onInstall}\n onUninstall={onUninstall}\n />\n </PackageSubSection>\n )}\n {hasRegistryInstalled && (\n <PackageSubSection\n title=\"Installed from registry\"\n count={registryInstalledPackages.length}\n >\n <PackageList\n packages={registryInstalledPackages}\n onInstall={onInstall}\n onUninstall={onUninstall}\n />\n </PackageSubSection>\n )}\n </PackageSection>\n\n <PackageSection\n sectionId=\"available\"\n title=\"Available Packages\"\n count={availablePackages.length}\n isEmpty={!hasAvailable}\n emptyText=\"No packages available to install.\"\n >\n <PackageList\n packages={availablePackages}\n onInstall={onInstall}\n onUninstall={onUninstall}\n />\n </PackageSection>\n\n {hasDismissed && (\n <PackageSection\n sectionId=\"dismissed\"\n title=\"Dismissed Packages\"\n count={dismissedPackages.length}\n >\n <PackageList\n packages={dismissedPackages}\n onInstall={onInstall}\n onUninstall={onUninstall}\n />\n </PackageSection>\n )}\n </div>\n </div>\n );\n};\n\nconst STORAGE_KEY = \"ph:package-manager:collapsed-sections\";\n\nfunction loadCollapsedSections(): Record<string, boolean> {\n if (typeof window === \"undefined\") return {};\n try {\n const raw = window.localStorage.getItem(STORAGE_KEY);\n return raw ? (JSON.parse(raw) as Record<string, boolean>) : {};\n } catch {\n return {};\n }\n}\n\nfunction useCollapsedSection(sectionId: string): [boolean, () => void] {\n const [collapsed, setCollapsed] = useState<boolean>(\n () => loadCollapsedSections()[sectionId] ?? true,\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n try {\n const current = loadCollapsedSections();\n current[sectionId] = collapsed;\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(current));\n } catch {\n // ignore persistence errors\n }\n }, [sectionId, collapsed]);\n\n const toggle = useCallback(() => setCollapsed((prev) => !prev), []);\n return [collapsed, toggle];\n}\n\nconst PackageSection: React.FC<{\n sectionId: string;\n title: string;\n count: number;\n isEmpty?: boolean;\n emptyText?: string;\n children?: ReactNode;\n}> = ({ sectionId, title, count, isEmpty, emptyText, children }) => {\n const [collapsed, toggle] = useCollapsedSection(sectionId);\n const contentId = `package-section-${sectionId}`;\n\n return (\n <section className=\"mb-6\">\n <h3 className=\"sticky top-0 z-10 mb-3 border-b border-gray-200 bg-white\">\n <button\n type=\"button\"\n onClick={toggle}\n aria-expanded={!collapsed}\n aria-controls={contentId}\n className=\"flex w-full items-center gap-2 pb-2 text-left text-base font-semibold text-gray-900 hover:text-gray-700\"\n >\n <Icon\n name=\"ChevronDown\"\n size={16}\n className={twMerge(\n \"shrink-0 text-gray-500 transition-transform\",\n collapsed && \"-rotate-90\",\n )}\n />\n <span>{title}</span>\n <span className=\"text-xs font-medium text-gray-500\">{count}</span>\n </button>\n </h3>\n {!collapsed && (\n <div id={contentId}>\n {isEmpty ? (\n <p className=\"text-sm text-gray-500\">{emptyText}</p>\n ) : (\n <div className=\"flex flex-col gap-4\">{children}</div>\n )}\n </div>\n )}\n </section>\n );\n};\n\nconst PackageSubSection: React.FC<{\n title: string;\n count: number;\n children: ReactNode;\n}> = ({ title, count, children }) => {\n return (\n <div>\n <h4 className=\"mb-2 flex items-baseline gap-2 text-xs font-semibold uppercase tracking-wide text-gray-500\">\n <span>{title}</span>\n <span className=\"font-medium normal-case tracking-normal text-gray-400\">\n ({count})\n </span>\n </h4>\n {children}\n </div>\n );\n};\n\nconst PackageList: React.FC<{\n packages: RegistryPackageList;\n onInstall: (packageSpec: string) => Promise<void>;\n onUninstall: (packageName: string) => void;\n}> = ({ packages, onInstall, onUninstall }) => {\n return (\n <ul className=\"flex flex-col items-stretch gap-4 pr-2\">\n {packages.map((pkg) => (\n <PackageManagerListItem\n key={pkg.name}\n registryPackage={pkg}\n onInstall={onInstall}\n onUninstall={onUninstall}\n />\n ))}\n </ul>\n );\n};\n","import type { RegistryPackageList } from \"@powerhousedao/shared/registry\";\nimport { twMerge } from \"tailwind-merge\";\nimport { PackageManagerInput } from \"./package-manager-input.js\";\nimport { PackageManagerList } from \"./package-manager-list.js\";\n\ntype Props = {\n registryPackageList: RegistryPackageList;\n mutable: boolean;\n /**\n * Install handler. The argument is the full spec the user chose — either\n * the bare package name, or `name@tag` / `name@version` when they typed\n * a suffix in the search input or picked one via the filter UI.\n */\n onInstall: (packageSpec: string) => Promise<void>;\n onUninstall: (packageName: string) => void;\n disabled?: boolean;\n className?: string;\n};\n\nexport const PackageManager: React.FC<Props> = (props) => {\n const {\n registryPackageList,\n onInstall,\n onUninstall,\n mutable,\n disabled,\n className,\n } = props;\n\n return (\n <div\n className={twMerge(\n \"flex h-full flex-1 flex-col rounded-lg p-3\",\n className,\n )}\n >\n {mutable && (\n <PackageManagerInput\n className=\"mb-4\"\n registryPackageList={registryPackageList}\n onInstall={onInstall}\n disabled={disabled}\n />\n )}\n <PackageManagerList\n registryPackageList={registryPackageList}\n onUninstall={onUninstall}\n onInstall={onInstall}\n />\n </div>\n );\n};\n","import type { ComponentProps } from \"react\";\n\nimport { Icon, Modal } from \"#design-system\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type SettingsTab = {\n id: string;\n icon?: React.ReactNode;\n label: React.ReactNode;\n content: React.ReactNode | React.ComponentType<any>;\n};\n\ntype Props = {\n readonly title: React.ReactNode;\n readonly tabs: SettingsTab[];\n defaultTab?: string;\n} & ComponentProps<typeof Modal>;\n\nexport function SettingsModal(props: Props) {\n const {\n title,\n overlayProps,\n contentProps,\n onOpenChange,\n tabs,\n defaultTab,\n ...restProps\n } = props;\n\n const [selectedTab, setSelectedTab] = useState(defaultTab ?? tabs.at(0)?.id);\n\n const tabsContent = tabs.map((tab) => (\n <button type=\"button\" onClick={() => setSelectedTab(tab.id)} key={tab.id}>\n <div\n className={twMerge(\n \"flex h-9 w-48 cursor-pointer items-center gap-x-2 rounded-md pl-3 hover:bg-slate-50\",\n selectedTab === tab.id ? \"bg-slate-50\" : \"bg-transparent\",\n )}\n >\n {tab.icon}\n <span>{tab.label}</span>\n </div>\n </button>\n ));\n\n const selectedTabContent = tabs.find(\n (tab) => tab.id === selectedTab,\n )?.content;\n\n const SelectedTabComponent = selectedTabContent;\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\n \"min-h-full w-full max-w-4xl rounded-xl\",\n contentProps?.className,\n ),\n style: {\n ...contentProps?.style,\n boxShadow:\n \"0px 0px 16px 4px rgba(0, 0, 0, 0.04), 0px 33px 32px -16px rgba(0, 0, 0, 0.10)\",\n },\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: twMerge(\"py-28\", overlayProps?.className),\n }}\n {...restProps}\n >\n <div className=\"flex justify-between border-b border-slate-50 p-4\">\n <h1 className=\"text-center text-xl font-semibold\">{title}</h1>\n <button\n type=\"button\"\n className=\"flex size-6 items-center justify-center rounded-md outline-none\"\n onClick={() => onOpenChange?.(false)}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <div className=\"flex flex-1\">\n <div className=\"flex flex-col gap-y-1 p-3 pt-6\">{tabsContent}</div>\n <div className=\"m-6 flex h-full flex-1 flex-col overflow-hidden rounded-lg border border-slate-50\">\n {typeof SelectedTabComponent === \"function\" ? (\n <SelectedTabComponent />\n ) : (\n SelectedTabComponent\n )}\n </div>\n </div>\n </Modal>\n );\n}\n","import type { DivProps } from \"#design-system\";\n\nexport interface SettingsRowProps extends Omit<DivProps, \"title\"> {\n readonly title?: React.ReactNode;\n readonly description: React.ReactNode;\n}\n\nexport const SettingsRow: React.FC<SettingsRowProps> = (props) => {\n const { title, children, description, ...restProps } = props;\n\n return (\n <div {...restProps}>\n {title ? <h2 className=\"font-semibold\">{title}</h2> : null}\n <div className=\"flex items-center justify-between gap-x-12 text-sm font-medium\">\n <p>{description}</p>\n <div>{children}</div>\n </div>\n </div>\n );\n};\n","import { Icon, PowerhouseButton } from \"#design-system\";\nimport type { SettingsRowProps } from \"./row.js\";\nimport { SettingsRow } from \"./row.js\";\n\nexport interface ClearStorageSettingsRowProps extends SettingsRowProps {\n onClearStorage: () => void;\n buttonLabel: string;\n}\n\nexport const ClearStorageSettingsRow: React.FC<ClearStorageSettingsRowProps> = (\n props,\n) => {\n const { onClearStorage, buttonLabel, ...restProps } = props;\n\n return (\n <SettingsRow {...restProps}>\n <PowerhouseButton\n className=\"h-auto min-h-9 rounded border border-solid border-gray-300 bg-white px-3 py-0 text-sm text-red-800 hover:border-gray-500 hover:bg-white hover:text-red-900\"\n icon={<Icon name=\"Trash\" size={18} />}\n iconPosition=\"right\"\n onClick={onClearStorage}\n >\n {buttonLabel}\n </PowerhouseButton>\n </SettingsRow>\n );\n};\n","import type { ComponentPropsWithoutRef } from \"react\";\n\nimport { Icon, Modal, PowerhouseButton } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type SettingsModalOldProps = ComponentPropsWithoutRef<typeof Modal> & {\n readonly title: React.ReactNode;\n readonly body: React.ReactNode;\n readonly cancelLabel: string;\n readonly saveLabel: string;\n readonly onSave: () => void;\n};\n\nexport const SettingsModalOld: React.FC<SettingsModalOldProps> = (props) => {\n const {\n body,\n title,\n onSave,\n children,\n saveLabel,\n cancelLabel,\n overlayProps,\n contentProps,\n onOpenChange,\n ...restProps\n } = props;\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-2xl\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: twMerge(\"top-10\", overlayProps?.className),\n }}\n {...restProps}\n >\n <div className=\"w-[432px] p-4 text-gray-900\">\n <div className=\"flex justify-between\">\n <h1 className=\"text-center text-xl font-bold\">{title}</h1>\n <button\n className=\"flex size-8 items-center justify-center rounded-md bg-gray-100 text-gray-500 outline-none hover:text-gray-900\"\n onClick={() => onOpenChange?.(false)}\n >\n <Icon name=\"XmarkLight\" size={24} />\n </button>\n </div>\n <div className=\"mt-8 flex min-h-[50px] items-center justify-center rounded-md bg-slate-50 p-3 text-xs font-medium text-gray-600\">\n {body}\n </div>\n <div className=\"mt-4 flex flex-col gap-y-4\">{children}</div>\n <div className=\"mt-4 flex justify-end gap-x-4\">\n <PowerhouseButton\n className=\"text-gray-900\"\n color=\"light\"\n onClick={() => onOpenChange?.(false)}\n >\n {cancelLabel}\n </PowerhouseButton>\n <PowerhouseButton onClick={onSave}>{saveLabel}</PowerhouseButton>\n </div>\n </div>\n </Modal>\n );\n};\n","import type { ComponentPropsWithoutRef } from \"react\";\n\nimport { Modal } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst buttonStyles =\n \"min-h-[48px] min-w-[142px] text-base font-semibold py-3 px-6 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all\";\n\nexport type ConnectUpgradeDriveModalProps = ComponentPropsWithoutRef<\n typeof Modal\n> & {\n readonly header: React.ReactNode;\n readonly body: React.ReactNode;\n readonly onContinue: () => void;\n readonly cancelLabel: string;\n readonly continueLabel: string;\n};\n\nexport function ConnectUpgradeDriveModal(props: ConnectUpgradeDriveModalProps) {\n const {\n body,\n header,\n onOpenChange,\n onContinue,\n cancelLabel,\n continueLabel,\n overlayProps,\n contentProps,\n ...restProps\n } = props;\n\n return (\n <Modal\n contentProps={{\n ...contentProps,\n className: twMerge(\"rounded-3xl\", contentProps?.className),\n }}\n onOpenChange={onOpenChange}\n overlayProps={{\n ...overlayProps,\n className: overlayProps?.className,\n }}\n {...restProps}\n >\n <div className=\"w-[400px] p-6 text-slate-300\">\n <div className=\"border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800\">\n {header}\n </div>\n <div className=\"my-6 rounded-md bg-slate-50 p-4 text-center\">\n {body}\n </div>\n <div className=\"mt-8 flex justify-between gap-3\">\n <button\n className={twMerge(\n buttonStyles,\n \"flex-1 bg-slate-50 text-slate-800\",\n )}\n onClick={() => onOpenChange?.(false)}\n >\n {cancelLabel}\n </button>\n <button\n className={twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\")}\n onClick={onContinue}\n >\n {continueLabel}\n </button>\n </div>\n </div>\n </Modal>\n );\n}\n","import { Icon } from \"#design-system\";\n\ntype Props = {\n readonly branch?: string;\n};\nexport function Branch(props: Props) {\n const { branch = \"main\" } = props;\n\n return (\n <button className=\"flex h-8 w-fit items-center gap-1 rounded-lg bg-slate-50 pl-1 pr-2 text-xs text-stone-300\">\n <Icon name=\"Branch\" />\n <span>BRANCH</span>\n <span className=\"text-gray-900\">{branch}</span>\n </button>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useCopyToClipboard } from \"usehooks-ts\";\n\ntype Props = {\n readonly docId: string;\n readonly onCopy?: () => void;\n};\nexport function DocId(props: Props) {\n const { docId, onCopy } = props;\n const [, copy] = useCopyToClipboard();\n\n function handleCopy(text: string) {\n return () => {\n copy(text)\n .then(() => {\n onCopy?.();\n })\n .catch((error) => {\n console.error(\"Failed to copy!\", error);\n });\n };\n }\n\n return (\n <button\n className=\"flex h-8 w-fit items-center gap-1 rounded-lg bg-slate-50 pl-1 pr-2 text-xs text-stone-300\"\n onClick={handleCopy(docId)}\n >\n <Icon name=\"Link\" />\n DOC ID\n <span className=\"text-gray-900\">{docId}</span>\n </button>\n );\n}\n","import { Icon } from \"#design-system\";\nimport { useCopyToClipboard } from \"usehooks-ts\";\n\nexport type DocumentStateProps = {\n readonly documentState: object;\n readonly onCopyState?: () => void;\n};\n\nexport const DocumentState = (props: DocumentStateProps) => {\n const { documentState, onCopyState } = props;\n const [, copy] = useCopyToClipboard();\n\n function handleCopy() {\n const jsonState = JSON.stringify(documentState, null, 2);\n copy(jsonState)\n .then(() => {\n onCopyState?.();\n })\n .catch((error) => {\n console.error(\"Failed to copy document state!\", error);\n });\n }\n\n return (\n <button\n className=\"rounded-lg bg-slate-50 p-1 text-stone-300\"\n onClick={handleCopy}\n >\n <Icon name=\"CurlyBrackets\" />\n </button>\n );\n};\n","import { ConnectSelect } from \"../../select/select.js\";\n\ntype Props = {\n readonly value: string;\n readonly onChange: (value: string) => void;\n};\nexport function Scope(props: Props) {\n const { value, onChange } = props;\n const items = [\n { displayValue: \"Global scope\", value: \"global\" },\n { displayValue: \"Local scope\", value: \"local\" },\n ] as const;\n\n return (\n <ConnectSelect\n absolutePositionMenu\n containerClassName=\"bg-slate-50 text-gray-500 rounded-lg w-fit text-xs z-10\"\n id=\"scope select\"\n itemClassName=\"py-2 text-gray-500 grid grid-cols-[auto,auto] gap-1\"\n items={items}\n menuClassName=\"min-w-0 text-gray-500\"\n onChange={onChange}\n value={value}\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport type { ReactNode } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Branch } from \"./branch.js\";\nimport { DocId } from \"./doc-id.js\";\nimport { DocumentState } from \"./document-state.js\";\nimport { Scope } from \"./scope.js\";\n\ninterface Props extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n readonly title: ReactNode;\n readonly docId: string;\n readonly scope: string;\n readonly onChangeScope: (scope: string) => void;\n readonly onClose: () => void;\n readonly documentState?: object;\n readonly onCopyState?: () => void;\n readonly onCopyDocId?: () => void;\n}\n\nexport function Header(props: Props) {\n const {\n title,\n docId,\n scope,\n onChangeScope,\n onClose,\n className,\n documentState,\n onCopyState,\n onCopyDocId,\n ...divProps\n } = props;\n return (\n <header\n className={twMerge(\n \"flex items-center justify-between bg-transparent\",\n className,\n )}\n {...divProps}\n >\n <div className=\"flex items-center gap-3\">\n <button\n name=\"close-revision-history\"\n className=\"shadow-button rounded-lg bg-gray-50 p-1 text-stone-300\"\n onClick={onClose}\n >\n <Icon name=\"VariantArrowLeft\" />\n </button>\n <h1 className=\"text-xs\">{title}</h1>\n </div>\n <div className=\"flex items-center gap-2\">\n <DocId docId={docId} onCopy={onCopyDocId} />\n {documentState && (\n <DocumentState\n documentState={documentState}\n onCopyState={onCopyState}\n />\n )}\n <Branch />\n <Scope onChange={onChangeScope} value={scope} />\n </div>\n </header>\n );\n}\n","import { useEffect, useState } from \"react\";\n\ntype EnsData = {\n ens: string;\n address: string;\n avatar: string | null;\n avatar_small: string | null;\n avatar_url: string | null;\n contentHash: string | null;\n header: string | null;\n header_url: string | null;\n ens_primary: string;\n resolverAddress: string;\n url: string | null;\n github: string | null;\n twitter: string | null;\n telegram: string | null;\n email: string | null;\n description: string | null;\n notice: string | null;\n keywords: string | null;\n discord: string | null;\n};\n\ntype UseEnsResult = {\n data: EnsData | undefined;\n isLoading: boolean;\n error: Error | undefined;\n};\n\nconst ensCache = new Map<`0x${string}`, Promise<EnsData | undefined>>();\n\nfunction fetchEns(address: `0x${string}`): Promise<EnsData | undefined> {\n const cached = ensCache.get(address);\n if (cached) return cached;\n\n const promise = fetch(`https://api.ensdata.net/${address}`)\n .then((res) => {\n if (!res.ok) throw new Error(`ENS lookup failed: ${res.status}`);\n return res.json() as Promise<EnsData>;\n })\n .catch((err: unknown) => {\n ensCache.delete(address);\n throw err instanceof Error ? err : new Error(\"ENS lookup failed\");\n });\n\n ensCache.set(address, promise);\n return promise;\n}\n\nexport function useEns(address: `0x${string}` | undefined): UseEnsResult {\n const [data, setData] = useState<EnsData>();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error>();\n\n useEffect(() => {\n if (!address) {\n setData(undefined);\n setError(undefined);\n return;\n }\n\n let cancelled = false;\n setIsLoading(true);\n setError(undefined);\n\n fetchEns(address)\n .then((json) => {\n if (cancelled) return;\n setData(json);\n })\n .catch((err: unknown) => {\n if (cancelled) return;\n setError(err instanceof Error ? err : new Error(\"ENS lookup failed\"));\n })\n .finally(() => {\n if (cancelled) return;\n setIsLoading(false);\n });\n\n return () => {\n cancelled = true;\n };\n }, [address]);\n\n return { data, isLoading, error };\n}\n","export function formatEthAddress(address: string) {\n return `${address.slice(0, 7)}...${address.slice(-5)}`;\n}\n","import {\n Anchor,\n Content,\n Portal,\n Root,\n Trigger,\n} from \"@radix-ui/react-popover\";\nimport { useState, type ReactNode } from \"react\";\nimport { funnel } from \"remeda\";\n\n/* A hybrid popover / tooltip component intended for showing data that needs\n to show / hide on hover, while also being able to stay open so that the user can\n interact with its contents.\n\n Uses these rules:\n\n When the user hover's the trigger, show the tooltip / popover.\n Immediately place the content under the user's cursor.\n Then let the responsibility of closing the tooltip / popover be transferred _to the content_.\n When the user leaves _the contents_ or interacts elsewhere, only then close.\n*/\nexport function CodePopover(props: {\n content: ReactNode;\n trigger: ReactNode;\n anchor?: ReactNode;\n}) {\n const { content, trigger, anchor } = props;\n const [isOpen, setIsOpen] = useState(false);\n\n /* debounce calls to open by 300ms */\n const opener = funnel(\n () => {\n setIsOpen(true);\n },\n {\n triggerAt: \"start\",\n minQuietPeriodMs: 300,\n },\n );\n\n /* debounce calls to close by 100ms */\n const closer = funnel(\n () => {\n setIsOpen(false);\n },\n {\n triggerAt: \"start\",\n minQuietPeriodMs: 100,\n },\n );\n\n /* If we are in the process of closing, cancel that operation.\n Then call the opener.\n */\n function open() {\n closer.cancel();\n opener.call();\n }\n\n /* If we are in the process of opening, cancel that operation.\n Then call the closer.\n */\n function close() {\n opener.cancel();\n closer.call();\n }\n\n return (\n <Root\n /* This component combines internal state with the existing accessibility behaviors from the radix popover */\n open={isOpen}\n onOpenChange={(changedIsOpen) => (changedIsOpen ? open() : close())}\n >\n {/* Trigger only manages opening */}\n <Trigger onMouseEnter={open}>{trigger}</Trigger>\n {!!anchor && <Anchor asChild>{anchor}</Anchor>}\n <Portal>\n <Content\n /* We need to force mount so that the events are fired as expected */\n forceMount\n /* content only manages closing */\n onMouseLeave={close}\n /* Offset the position to ensure that we open under the user's cursor */\n sideOffset={-28}\n /* Do not focus the trigger after closing since that item is not interactive */\n onCloseAutoFocus={(e) => e.preventDefault()}\n /* Set an arbitrarily large bottom collision detection padding so that very long content flows below the fold */\n collisionPadding={{\n top: 24,\n right: 24,\n bottom: -10_000,\n left: 24,\n }}\n className=\"shadow-tooltip z-50 rounded-lg border border-gray-200 bg-white p-2 text-xs outline-none\"\n >\n {content}\n </Content>\n </Portal>\n </Root>\n );\n}\n","import { useEns } from \"../../../hooks/use-ens.js\";\nimport { formatEthAddress } from \"../../../utils/address.js\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { ENSAvatar } from \"../../ens-avatar/ens-avatar.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\n\nexport type AddressProps = {\n readonly address: `0x${string}` | undefined;\n readonly chainId: number | undefined;\n};\n\nexport function Address(props: AddressProps) {\n const { address, chainId } = props;\n const { data: ensData } = useEns(address);\n\n if (!address) return null;\n\n const shortenedAddress = formatEthAddress(address);\n\n return (\n <CodePopover\n content={<FormattedJsonViewer value={{ address }} />}\n trigger={\n <span className=\"flex w-fit cursor-pointer items-center gap-1 rounded-lg bg-gray-100 p-1 text-xs text-slate-100\">\n <ENSAvatar\n address={address}\n chainId={chainId}\n avatarUrl={ensData?.avatar_url ?? undefined}\n />\n {shortenedAddress}\n </span>\n }\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\n\nexport type ErrorsProps = {\n readonly errors: string[] | undefined;\n};\n\nexport function Errors(props: ErrorsProps) {\n const { errors } = props;\n\n const hasErrors = !!errors?.length;\n\n const color = hasErrors ? \"text-red-800\" : \"text-green-700\";\n\n const icon = hasErrors ? (\n <Icon name=\"Exclamation\" size={16} />\n ) : (\n <Icon name=\"Check\" size={16} />\n );\n\n const text = hasErrors ? `Error: ${errors[0]}` : \"No errors\";\n\n const content = (\n <span\n className={twMerge(\n \"flex w-fit items-center rounded-lg border border-gray-200 px-2 py-1 text-xs\",\n color,\n hasErrors && \"cursor-pointer\",\n )}\n >\n {icon}\n <span className={twMerge(\"inline-block max-w-36 truncate\")}>{text}</span>\n </span>\n );\n\n if (hasErrors)\n return (\n <CodePopover\n content={<FormattedJsonViewer value={errors} />}\n trigger={content}\n />\n );\n\n return content;\n}\n","import { Icon } from \"#design-system\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\nexport type OperationProps = {\n readonly operationType: string;\n readonly operationInput: Record<string, any>;\n};\n\nexport function Operation(props: OperationProps) {\n const { operationType, operationInput } = props;\n return (\n <CodePopover\n content={<FormattedJsonViewer value={operationInput} />}\n trigger={\n <span className=\"flex cursor-pointer items-center gap-2 text-xs\">\n {operationType}\n <Icon className=\"text-gray-300\" name=\"Braces\" size={16} />\n </span>\n }\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\n\nexport type RevisionNumberProps = {\n readonly operationIndex: number;\n readonly eventId: string;\n readonly stateHash: string;\n};\nexport function RevisionNumber(props: RevisionNumberProps) {\n const { operationIndex, eventId, stateHash } = props;\n const revisionNumber = operationIndex + 1;\n\n return (\n <CodePopover\n content={\n <FormattedJsonViewer\n value={{\n revisionNumber,\n eventId,\n stateHash,\n }}\n />\n }\n trigger={\n <span className=\"flex cursor-pointer items-center gap-2 text-xs text-gray-600\">\n Revision {revisionNumber}.\n <a>\n <Icon\n className=\"cursor-pointer text-slate-100\"\n name=\"Ellipsis\"\n size={14}\n />\n </a>\n </span>\n }\n />\n );\n}\n","import { Icon } from \"#design-system\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\nimport type { Signature } from \"../types.js\";\n\nexport type SignatureProps = {\n readonly signatures: Signature[] | undefined;\n};\nexport function Signature(props: SignatureProps) {\n const { signatures } = props;\n\n if (!signatures?.length) return null;\n\n return (\n <CodePopover\n trigger={\n <span className=\"flex w-fit cursor-pointer items-center gap-1 rounded-lg border border-gray-200 px-2 py-1\">\n <VerificationStatus signatures={signatures} />{\" \"}\n <Icon className=\"text-gray-300\" name=\"InfoSquare\" size={16} />\n </span>\n }\n content={<FormattedJsonViewer value={signatures} collapsed={1} />}\n />\n );\n}\n\nfunction VerificationStatus(props: SignatureProps) {\n const { signatures } = props;\n\n if (!signatures?.length) return null;\n\n const signatureCount = signatures.length;\n\n const verifiedSignaturesCount = signatures.filter(\n (signature) => signature.isVerified,\n ).length;\n const signatureText = signatureCount === 1 ? \"signature\" : \"signatures\";\n const verificationStatusText = `${verifiedSignaturesCount}/${signatureCount} ${signatureText} verified`;\n const color =\n verifiedSignaturesCount === 0\n ? \"text-red-800\"\n : verifiedSignaturesCount === signatureCount\n ? \"text-green-700\"\n : \"text-orange-700\";\n\n return <span className={`text-xs ${color}`}>{verificationStatusText}</span>;\n}\n","import { format } from \"date-fns\";\nimport { CodePopover } from \"../../code-popover.js\";\nimport { FormattedJsonViewer } from \"../../formatted-json-viewer.js\";\n\nexport type TimestampProps = {\n readonly timestampUtcMs: number | string;\n};\n\nexport function Timestamp(props: TimestampProps) {\n const { timestampUtcMs: timestamp } = props;\n\n const timestampNumber =\n typeof timestamp === \"string\" && !timestamp.includes(\"-\")\n ? parseInt(timestamp)\n : timestamp;\n\n const date = new Date(timestampNumber);\n const shortDate = format(date, \"HH:mm 'UTC'\");\n const longDate = format(date, \"eee, dd MMM yyyy HH:mm:ss 'UTC'\");\n\n return (\n <CodePopover\n content={\n <FormattedJsonViewer\n value={{ timestampFormatted: longDate, timestampUtcMs: timestamp }}\n />\n }\n trigger={\n <span className=\"cursor-pointer text-xs\">committed at {shortDate}</span>\n }\n />\n );\n}\n","import { memo } from \"react\";\nimport type { Revision as RevisionProps } from \"../types.js\";\nimport { Address } from \"./address.js\";\nimport { Errors } from \"./errors.js\";\nimport { Operation } from \"./operation.js\";\nimport { RevisionNumber } from \"./revision-number.js\";\nimport { Signature } from \"./signature.js\";\nimport { Timestamp } from \"./timestamp.js\";\n\nexport function _Revision(props: RevisionProps) {\n return (\n <article className=\"flex items-center justify-between rounded-xl border border-gray-200 bg-white px-4 py-2\">\n <div className=\"flex items-center gap-2\">\n <RevisionNumber {...props} />\n <Operation {...props} />\n <Address {...props} />\n <Timestamp {...props} />\n </div>\n <div className=\"flex items-center gap-1\">\n <Signature {...props} />\n <Errors {...props} />\n </div>\n </article>\n );\n}\n\nexport const Revision = memo(_Revision);\n","export type SkipProps = {\n readonly operationIndex: number;\n readonly skipCount: number;\n};\n\nexport function Skip(props: SkipProps) {\n const { operationIndex, skipCount } = props;\n const revisionNumber = operationIndex;\n\n const skippedRevisions =\n skipCount === 1\n ? `${revisionNumber}`\n : `${revisionNumber} - ${revisionNumber + 1 - skipCount}`;\n\n return (\n <article className=\"grid grid-cols-[1fr,auto,1fr] items-center py-2\">\n <div className=\"h-px rounded-full bg-slate-100\" />\n <div className=\"mx-3 text-xs text-slate-100\">\n [Skipped Revision {skippedRevisions}]\n </div>\n <div className=\"h-px rounded-full bg-slate-100\" />\n </article>\n );\n}\n","import type { Operation } from \"@powerhousedao/shared/document-model\";\nimport type { Day, Revision, Signature, Skip } from \"./types.js\";\n\nexport function makeRows(operations: Operation[]) {\n const revisionsAndSkips: (Revision | Skip | Day)[] = [];\n const seenDays = new Set<string>();\n\n for (const operation of operations) {\n if (!operation.timestampUtcMs) continue;\n const day = operation.timestampUtcMs.split(\"T\")[0];\n\n if (!seenDays.has(day)) {\n seenDays.add(day);\n revisionsAndSkips.push({\n type: \"day\",\n height: 32,\n timestampUtcMs: day,\n });\n }\n\n revisionsAndSkips.push({\n type: \"revision\",\n height: 46,\n operationIndex: operation.index,\n eventId: operation.id ?? \"EVENT_ID_NOT_FOUND\",\n stateHash: operation.hash,\n operationType: operation.action.type,\n operationInput: operation.action.input ?? {},\n address: operation.action?.context?.signer?.user.address as\n | `0x${string}`\n | undefined,\n chainId: operation.action?.context?.signer?.user.chainId,\n timestampUtcMs: operation.timestampUtcMs,\n signatures: makeSignatures(\n (operation.action?.context?.signer?.signatures as\n | string[][]\n | undefined) ?? [],\n ),\n errors: operation.error ? [operation.error] : undefined,\n });\n\n if (operation.skip > 0) {\n revisionsAndSkips.push({\n type: \"skip\",\n height: 34,\n operationIndex: operation.index,\n skipCount: operation.skip,\n timestampUtcMs: operation.timestampUtcMs,\n });\n }\n }\n\n return revisionsAndSkips;\n}\n\nexport function getUniqueDatesInOrder(operations: Operation[]) {\n const dates = new Set<string>();\n\n for (const operation of operations) {\n if (!operation.timestampUtcMs) continue;\n const date = operation.timestampUtcMs.split(\"T\")[0];\n dates.add(date);\n }\n\n return Array.from(dates).sort(\n (a, b) => new Date(b).getTime() - new Date(a).getTime(),\n );\n}\n\nfunction makeSignatureFromSignatureArray(signatureArray: string[]): Signature {\n const [signerAddress, hash, prevStateHash, signatureBytes] = signatureArray;\n\n return {\n signerAddress,\n hash,\n prevStateHash,\n signatureBytes,\n isVerified: true,\n };\n}\n\nfunction makeSignatures(signaturesArray: string[][] | undefined) {\n return signaturesArray?.map(makeSignatureFromSignatureArray);\n}\n","import { Icon } from \"#design-system\";\nimport { format } from \"date-fns\";\n\nexport function Day(props: { readonly timestampUtcMs: string }) {\n const { timestampUtcMs: timestamp } = props;\n const formattedDate = format(timestamp, \"MMM dd, yyyy\");\n return (\n <h2 className=\"-ml-6 flex items-center gap-1 bg-slate-50 py-2 text-xs text-slate-100\">\n <Icon name=\"Ring\" size={16} /> Changes on {formattedDate}\n </h2>\n );\n}\n","import { useVirtualizer } from \"@tanstack/react-virtual\";\nimport type { Operation } from \"@powerhousedao/shared/document-model\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Revision } from \"../revision/revision.js\";\nimport { Skip } from \"../skip/skip.js\";\nimport { makeRows } from \"../utils.js\";\nimport { Day } from \"./day.js\";\n\nexport type TimelineProps = {\n readonly localOperations: Operation[];\n readonly globalOperations: Operation[];\n readonly scope: string;\n};\n\nexport function Timeline(props: TimelineProps) {\n const { localOperations, globalOperations, scope } = props;\n const operations = scope === \"local\" ? localOperations : globalOperations;\n const initialNumRowsToShow = 100;\n const allRows = useMemo(() => makeRows(operations), [operations]);\n const [scrollAmount, setScrollAmount] = useState(0);\n const [numRowsToShow, setNumRowsToShow] = useState(initialNumRowsToShow);\n const [rows, setRows] = useState(() => allRows.slice(0, numRowsToShow));\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const hasNextPage = rows.length < allRows.length;\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => parentRef.current,\n estimateSize: (i) => allRows[i].height,\n gap: 8,\n });\n\n useEffect(() => {\n if (!hasNextPage) return;\n const ratio = Math.floor(scrollAmount / 46);\n const newNumRevisions = initialNumRowsToShow + ratio;\n setNumRowsToShow((prev) =>\n newNumRevisions > prev ? newNumRevisions : prev,\n );\n }, [scrollAmount, hasNextPage]);\n\n useEffect(() => {\n setRows(allRows.slice(0, numRowsToShow));\n }, [allRows, numRowsToShow]);\n\n const handleScroll = (e: WheelEvent) => {\n setScrollAmount((prev) => {\n const n = prev + e.deltaY;\n if (n < 0) {\n return 0;\n }\n return n;\n });\n };\n\n useEffect(() => {\n window.addEventListener(\"wheel\", handleScroll);\n return () => {\n window.removeEventListener(\"wheel\", handleScroll);\n };\n }, []);\n\n return (\n <div\n className=\"border-l border-slate-100\"\n ref={parentRef}\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 16,\n width: \"100%\",\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {row.type === \"revision\" && (\n <Revision {...row} key={virtualRow.key} />\n )}\n {row.type === \"skip\" && <Skip key={virtualRow.key} {...row} />}\n {row.type === \"day\" && <Day key={virtualRow.key} {...row} />}\n </div>\n );\n })}\n </div>\n );\n}\n","import { Pagination, usePagination } from \"#design-system\";\nimport type { Operation } from \"@powerhousedao/shared/document-model\";\nimport {\n garbageCollect,\n sortOperations,\n} from \"@powerhousedao/shared/document-model\";\nimport { useMemo, useState } from \"react\";\nimport { ConnectTooltipProvider } from \"../tooltip/tooltip.js\";\nimport { Header } from \"./header/header.js\";\nimport { Timeline } from \"./timeline/timeline.js\";\n\ntype Props = {\n readonly documentTitle: string;\n readonly documentId: string;\n readonly globalOperations: Operation[];\n readonly localOperations: Operation[];\n readonly onClose: () => void;\n readonly itemsPerPage?: number;\n readonly documentState?: object;\n readonly onCopyState?: () => void;\n readonly onCopyDocId?: () => void;\n};\n\nexport function RevisionHistory(props: Props) {\n const {\n documentTitle,\n documentId,\n globalOperations,\n localOperations,\n onClose,\n itemsPerPage = 100,\n documentState,\n onCopyState,\n onCopyDocId,\n } = props;\n\n const [scope, setScope] = useState<string>(\"global\");\n\n const visibleOperations = useMemo(() => {\n const operations = scope === \"global\" ? globalOperations : localOperations;\n return garbageCollect(sortOperations(operations)).sort(\n (a, b) => b.index - a.index,\n );\n }, [globalOperations, localOperations, scope]);\n\n const {\n pageItems,\n pages,\n goToPage,\n goToNextPage,\n goToPreviousPage,\n goToFirstPage,\n goToLastPage,\n hiddenNextPages,\n isNextPageAvailable,\n isPreviousPageAvailable,\n } = usePagination(visibleOperations, {\n itemsPerPage,\n });\n\n function onChangeScope(scope: string) {\n goToFirstPage();\n setScope(scope);\n }\n\n const showPagination = visibleOperations.length > itemsPerPage;\n\n const PaginationComponent = showPagination ? (\n <div className=\"mt-4 flex w-full justify-end\">\n <Pagination\n firstPageLabel=\"First Page\"\n goToFirstPage={goToFirstPage}\n goToLastPage={goToLastPage}\n goToNextPage={goToNextPage}\n goToPage={goToPage}\n goToPreviousPage={goToPreviousPage}\n hiddenNextPages={hiddenNextPages}\n isNextPageAvailable={isNextPageAvailable}\n isPreviousPageAvailable={isPreviousPageAvailable}\n lastPageLabel=\"Last Page\"\n nextPageLabel=\"Next\"\n pages={pages}\n previousPageLabel=\"Previous\"\n />\n </div>\n ) : (\n <hr className=\"h-12 border-none\" />\n );\n\n return (\n <ConnectTooltipProvider>\n <div className=\"p-6\">\n <Header\n docId={documentId}\n onChangeScope={onChangeScope}\n onClose={onClose}\n scope={scope}\n title={documentTitle}\n documentState={documentState}\n onCopyState={onCopyState}\n onCopyDocId={onCopyDocId}\n />\n {PaginationComponent}\n <div className=\"mt-4 flex justify-center rounded-md bg-slate-50 p-4\">\n {visibleOperations.length > 0 ? (\n <div className=\"grid grid-cols-[minmax(min-content,1018px)]\">\n <Timeline\n globalOperations={scope === \"global\" ? pageItems : []}\n localOperations={scope === \"local\" ? pageItems : []}\n scope={scope}\n />\n </div>\n ) : (\n <h3 className=\"my-40 text-gray-600\">\n This document has no recorded operations yet.\n </h3>\n )}\n </div>\n {PaginationComponent}\n </div>\n </ConnectTooltipProvider>\n );\n}\n","import { mergeClassNameProps } from \"#design-system\";\n\nexport type FilterItemType = {\n id: string;\n label: string;\n icon?: React.JSX.Element;\n};\n\nexport interface FilterItemProps extends React.HTMLAttributes<HTMLDivElement> {\n item: FilterItemType;\n}\n\nexport const FilterItem: React.FC<FilterItemProps> = (props) => {\n const { item, ...containerProps } = props;\n\n return (\n <div\n {...mergeClassNameProps(\n containerProps,\n \"flex h-full flex-row items-center justify-between gap-x-4 px-2\",\n )}\n >\n {item.icon}\n <div className=\"text-sm font-semibold text-slate-200\">{item.label}</div>\n </div>\n );\n};\n","import {\n cn,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Icon,\n} from \"#design-system\";\nimport type { ChangeEvent } from \"react\";\nimport { useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport type { FilterItemType } from \"./filter-item.js\";\nimport { FilterItem } from \"./filter-item.js\";\n\nexport interface ConnectSearchBarProps {\n value?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n filterLabel?: string;\n filterItems?: Array<FilterItemType>;\n selectedFilter?: string;\n onFilterSelect?: (filterId: string) => void;\n className?: string;\n}\n\nexport const ConnectSearchBar: React.FC<ConnectSearchBarProps> = (props) => {\n const {\n value,\n onChange,\n placeholder,\n filterLabel,\n filterItems,\n selectedFilter,\n onFilterSelect = () => {},\n className,\n } = props;\n\n const items = useMemo(\n () =>\n filterItems?.map((item) => ({\n id: item.id,\n content: <FilterItem item={item} />,\n })) ?? [],\n [filterItems],\n );\n\n const selectedItemFilter = filterItems?.find(\n (item) => item.id === selectedFilter,\n );\n\n const filterLabelContent = selectedItemFilter ? (\n <FilterItem className=\"gap-x-1\" item={selectedItemFilter} />\n ) : (\n filterLabel && (\n <div className=\"mr-2 text-sm font-semibold text-slate-200\">\n {filterLabel}\n </div>\n )\n );\n\n function handleChange(event: ChangeEvent<HTMLInputElement>) {\n onChange?.(event.target.value);\n }\n\n return (\n <div className={cn(\"flex items-center\", className)}>\n <Icon className=\"mr-3\" name=\"Search\" />\n <input\n className={twMerge(\n \"flex h-[52px] min-w-0 flex-1 items-center rounded-xl border border-gray-200 bg-gray-50 px-4 text-sm text-slate-200 outline-none\",\n )}\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n />\n <DropdownMenu>\n <DropdownMenuTrigger className=\"ml-3 flex h-full flex-row items-center outline-none\">\n {filterLabelContent} <Icon name=\"ChevronDown\" />\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"rounded-xl border border-gray-100 bg-gray-50 p-2\">\n {items.map((item) => (\n <DropdownMenuItem\n className=\"h-10 cursor-pointer overflow-hidden rounded-lg hover:bg-gray-100\"\n id={item.id}\n key={item.id}\n onSelect={() => onFilterSelect(item.id)}\n >\n {item.content}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { ConnectTooltip } from \"../tooltip/tooltip.js\";\n\ntype SidebarItemProps = {\n readonly icon?: React.JSX.Element;\n readonly title: string;\n readonly description?: string;\n readonly containerClassName?: string;\n readonly active?: boolean;\n readonly onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n};\nexport const SidebarItem = function SidebarItem(props: SidebarItemProps) {\n const { icon, title, description, containerClassName, active, onClick } =\n props;\n return (\n <ConnectTooltip\n content={title}\n side=\"right\"\n sideOffset={12}\n className=\"border-none bg-gray-800 px-3 py-2 text-sm text-white\"\n >\n <div\n className={twMerge(\n \"group/sidebar-item relative flex cursor-pointer flex-col items-center justify-center text-center text-sm text-black\",\n containerClassName,\n active && \"bg-white\",\n onClick && \"cursor-pointer\",\n )}\n onClick={onClick}\n >\n {active ? (\n <div className=\"absolute left-0 top-1/2 h-10 w-1 -translate-y-1/2 rounded-r-sm bg-violet-400\" />\n ) : (\n <div className=\"absolute left-0 top-1/2 h-6 w-1 -translate-y-1/2 rounded-r-sm bg-zinc-300 opacity-0 transition-opacity group-hover/sidebar-item:opacity-100\" />\n )}\n <div className=\"mx-auto py-4\">\n {icon || (\n <div className=\"flex size-8 items-center justify-center rounded-lg bg-black\">\n <span className=\"text-sm font-medium text-white\">\n {title.slice(0, 1).toUpperCase()}\n </span>\n </div>\n )}\n </div>\n </div>\n </ConnectTooltip>\n );\n};\n","import { Icon } from \"#design-system\";\nimport { SidebarItem } from \"./sidebar-item.js\";\n\ntype SidebarAddDriveItemProps = {\n readonly containerClassName?: string;\n readonly onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n};\nexport const SidebarAddDriveItem = function SidebarAddDriveItem(\n props: SidebarAddDriveItemProps,\n) {\n const { containerClassName, onClick } = props;\n return (\n <SidebarItem\n title=\"Create New Drive\"\n icon={<Icon name=\"PlusSquare\" size={32} />}\n onClick={onClick}\n containerClassName={containerClassName}\n />\n );\n};\n","\"data:image/png;base64,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\"","\"data:image/png;base64,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\"","import { Icon } from \"#design-system\";\nimport type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport interface AccountPopoverLoginProps {\n onLogin: (() => void) | undefined;\n}\n\nexport const AccountPopoverLogin: FC<AccountPopoverLoginProps> = ({\n onLogin,\n}) => {\n const [loading, setLoading] = useState(false);\n\n const allowLogin = !loading && !!onLogin;\n\n const content = loading ? (\n <Icon name=\"Reload\" size={14} className=\"animate-spin\" />\n ) : (\n <span>Connect</span>\n );\n\n const handleLogin = () => {\n if (onLogin) {\n setLoading(true);\n onLogin();\n }\n };\n\n return (\n <div className=\"p-4\">\n <div className=\"mb-4 flex justify-center\">\n <div className=\"flex h-[22px] w-[83px] items-center justify-center overflow-hidden\">\n <Icon name=\"RenownLight\" size={83} />\n </div>\n </div>\n <button\n onClick={allowLogin ? handleLogin : undefined}\n className={twMerge(\n \"mt-4 flex h-7 w-full cursor-pointer items-center justify-center rounded-lg border border-gray-300 bg-transparent text-sm active:opacity-70\",\n allowLogin ? \"cursor-pointer\" : \"cursor-wait\",\n )}\n type=\"button\"\n >\n {content}\n </button>\n </div>\n );\n};\n","import renownShortHover from \"#assets/renown-short-hover.png\";\nimport renownShort from \"#assets/renown-short.png\";\nimport { twMerge } from \"tailwind-merge\";\nimport { AccountPopoverLogin } from \"../account-popover/account-popover-login.js\";\nimport { AccountPopover } from \"../account-popover/account-popover.js\";\n\nexport interface SidebarLoginProps {\n onLogin: (() => void) | undefined;\n}\n\nexport const SidebarLogin: React.FC<SidebarLoginProps> = ({ onLogin }) => {\n const content = <AccountPopoverLogin onLogin={onLogin} />;\n\n return (\n <AccountPopover content={content}>\n <div\n className={twMerge(\n \"group/sidebar-footer flex w-full items-baseline justify-start text-sm font-semibold leading-10 text-gray-600\",\n onLogin ? \"cursor-pointer\" : \"cursor-wait\",\n )}\n >\n <img\n width={42}\n height={42}\n loading=\"lazy\"\n className=\"group-hover/sidebar-footer:hidden\"\n src={renownShort}\n alt=\"Renown Login\"\n />\n <img\n width={42}\n height={42}\n loading=\"lazy\"\n className=\"hidden group-hover/sidebar-footer:block\"\n src={renownShortHover}\n alt=\"Renown Login Hover\"\n />\n </div>\n </AccountPopover>\n );\n};\n","import { Icon, PowerhouseButton } from \"#design-system\";\nimport type { FC } from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport interface AccountPopoverUserProps {\n address: `0x${string}`;\n onDisconnect: (() => void) | undefined;\n etherscanUrl?: string;\n username?: string;\n}\n\n// short eth address\nconst shortAddress = (address: `0x${string}`) =>\n `${address.slice(0, 7)}...${address.slice(-5)}`;\n\nexport const AccountPopoverUser: FC<AccountPopoverUserProps> = ({\n address,\n onDisconnect,\n etherscanUrl,\n username = \"\",\n}: AccountPopoverUserProps) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const copyToClipboard = useCallback(async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } catch (err) {\n console.error(\"Failed to copy address:\", err);\n }\n }, []);\n\n return (\n <div className=\"flex flex-col divide-y divide-gray-200 text-gray-900\">\n <div className=\"px-3 py-2\">\n {username && <div className=\"text-sm font-medium\">{username}</div>}\n <div className=\"mt-1 flex items-center gap-2\">\n <PowerhouseButton\n size=\"small\"\n color=\"light\"\n onClick={copyToClipboard.bind(null, address)}\n className=\"w-full cursor-pointer bg-transparent p-0 active:opacity-70\"\n type=\"button\"\n >\n <div className=\"relative flex w-full items-center gap-1\">\n <div\n className={`flex items-center gap-1 transition-opacity duration-150 ${isCopied ? \"opacity-0\" : \"opacity-100\"}`}\n >\n <span className=\"text-xs\">{shortAddress(address)}</span>\n <Icon name=\"FilesEarmark\" color=\"#9EA0A1\" size={14} />\n </div>\n <div\n className={`absolute left-0 text-xs transition-opacity duration-150 ${isCopied ? \"opacity-100\" : \"opacity-0\"}`}\n >\n Copied to clipboard!\n </div>\n </div>\n </PowerhouseButton>\n </div>\n </div>\n {etherscanUrl && (\n <div className=\"px-3 py-2\">\n <a\n href={etherscanUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 text-sm text-gray-900 hover:text-gray-600\"\n >\n <Icon name=\"Ethscan\" size={14} />\n View on Etherscan\n </a>\n </div>\n )}\n <div className=\"px-3 py-2\">\n <button\n onClick={onDisconnect}\n className={twMerge(\n \"flex w-full items-center gap-2 text-sm text-red-900\",\n onDisconnect\n ? \"cursor-pointer hover:text-red-700\"\n : \"pointer-events-none cursor-wait\",\n )}\n type=\"button\"\n >\n <Icon name=\"Disconnect\" size={14} color=\"#EA4335\" />\n Disconnect\n </button>\n </div>\n </div>\n );\n};\n","import { AccountPopoverUser } from \"../account-popover/account-popover-user.js\";\nimport { AccountPopover } from \"../account-popover/account-popover.js\";\nimport { ENSAvatar } from \"../ens-avatar/ens-avatar.js\";\n\nexport interface SidebarUserProps {\n address: `0x${string}`;\n ensName?: string;\n avatarUrl?: string;\n etherscanUrl: string;\n onDisconnect: (() => void) | undefined;\n}\n\nexport const SidebarUser: React.FC<SidebarUserProps> = ({\n address,\n ensName,\n avatarUrl,\n etherscanUrl,\n onDisconnect,\n}) => {\n const content = (\n <AccountPopoverUser\n address={address}\n username={ensName}\n onDisconnect={onDisconnect}\n etherscanUrl={etherscanUrl}\n />\n );\n\n return (\n <AccountPopover content={content}>\n <div className=\"flex items-center justify-center rounded-sm\">\n <ENSAvatar address={address} avatarUrl={avatarUrl} size=\"40px\" />\n </div>\n </AccountPopover>\n );\n};\n","import { Icon, SidebarFooter } from \"#design-system\";\nimport type { ComponentProps } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { SidebarLogin } from \"./sidebar-login.js\";\nimport { SidebarUser } from \"./sidebar-user.js\";\n\nexport interface ConnectSidebarFooterProps extends ComponentProps<\n typeof SidebarFooter\n> {\n address: `0x${string}` | undefined;\n ensName?: string;\n avatarUrl?: string;\n onClickSettings: (() => void) | undefined;\n onLogin: (() => void) | undefined;\n etherscanUrl?: string;\n onDisconnect: (() => void) | undefined;\n onHomeClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n showDebug?: boolean;\n onDebugClick?: () => void;\n}\n\nexport const ConnectSidebarFooter: React.FC<ConnectSidebarFooterProps> = ({\n address,\n ensName,\n avatarUrl,\n className,\n onLogin,\n onClickSettings,\n onDisconnect,\n onHomeClick,\n showDebug,\n onDebugClick,\n etherscanUrl = \"\",\n ...props\n}) => {\n return (\n <SidebarFooter\n {...props}\n className={twMerge(\n \"flex flex-col gap-2 border-t border-gray-300 px-2 py-4\",\n className,\n )}\n >\n {onHomeClick && (\n <button\n aria-label=\"Home\"\n type=\"button\"\n className=\"flex w-full cursor-pointer items-center justify-center outline-none\"\n onClick={onHomeClick}\n >\n <Icon className=\"text-gray-600\" name=\"ConnectSmall\" size={24} />\n </button>\n )}\n {showDebug && onDebugClick && (\n <button\n aria-label=\"Debug Settings\"\n type=\"button\"\n id=\"connect-debug-button\"\n className=\"mt-3 flex w-full cursor-pointer items-center justify-center outline-none\"\n onClick={onDebugClick}\n >\n <Icon className=\"text-gray-600\" name=\"Tube\" />\n </button>\n )}\n <div className={onHomeClick ? \"mt-3\" : \"\"}>\n {address ? (\n <SidebarUser\n address={address}\n ensName={ensName}\n avatarUrl={avatarUrl}\n onDisconnect={onDisconnect}\n etherscanUrl={etherscanUrl}\n />\n ) : (\n <SidebarLogin onLogin={onLogin} />\n )}\n </div>\n <button\n aria-label=\"Settings\"\n type=\"button\"\n className={twMerge(\n \"mt-3 flex w-full items-center justify-center outline-none\",\n onClickSettings ? \"cursor-pointer\" : \"cursor-wait\",\n )}\n onClick={onClickSettings}\n >\n <Icon className=\"text-gray-600\" name=\"Settings\" />\n <span className=\"hidden text-sm font-semibold leading-6 text-gray-800\">\n Settings\n </span>\n </button>\n </SidebarFooter>\n );\n};\n","import { SidebarHeader } from \"#design-system\";\nimport type { ComponentProps } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport interface ConnectSidebarHeaderProps extends ComponentProps<\n typeof SidebarHeader\n> {}\n\nexport const ConnectSidebarHeader: React.FC<ConnectSidebarHeaderProps> = ({\n className,\n children,\n ...props\n}) => {\n if (!children) {\n return null;\n }\n\n return (\n <SidebarHeader\n {...props}\n className={twMerge(\n \"flex justify-center gap-4 border-b border-gray-300 py-4\",\n className,\n )}\n >\n {children}\n </SidebarHeader>\n );\n};\n","import { Sidebar, SidebarPanel } from \"#design-system\";\nimport type { HTMLAttributes } from \"react\";\nimport type { ConnectSidebarFooterProps } from \"./sidebar-footer.js\";\nimport { ConnectSidebarFooter } from \"./sidebar-footer.js\";\nimport type { ConnectSidebarHeaderProps } from \"./sidebar-header.js\";\nimport { ConnectSidebarHeader } from \"./sidebar-header.js\";\n\nexport interface ConnectSidebarProps\n extends\n HTMLAttributes<HTMLElement>,\n ConnectSidebarHeaderProps,\n ConnectSidebarFooterProps {\n maxWidth?: string;\n minWidth?: string;\n headerContent?: React.ReactNode;\n loadingUser?: boolean;\n onLogin: (() => void) | undefined;\n onDisconnect: (() => void) | undefined;\n etherscanUrl?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const ConnectSidebar: React.FC<ConnectSidebarProps> = ({\n onClick,\n address,\n ensName,\n avatarUrl,\n headerContent,\n onClickSettings,\n maxWidth = \"304px\",\n minWidth = \"58px\",\n onLogin,\n onDisconnect,\n etherscanUrl,\n showDebug,\n onDebugClick,\n ...props\n}) => {\n return (\n <Sidebar {...props} maxWidth={maxWidth} minWidth={minWidth}>\n <SidebarPanel>\n <ConnectSidebarHeader>{headerContent}</ConnectSidebarHeader>\n <div className=\"flex flex-col\">{props.children}</div>\n </SidebarPanel>\n <ConnectSidebarFooter\n address={address}\n ensName={ensName}\n avatarUrl={avatarUrl}\n onClickSettings={onClickSettings}\n onLogin={onLogin}\n onDisconnect={onDisconnect}\n etherscanUrl={etherscanUrl}\n onHomeClick={onClick}\n showDebug={showDebug}\n onDebugClick={onDebugClick}\n />\n </Sidebar>\n );\n};\n","type SyncStatus =\n | \"INITIAL_SYNC\"\n | \"SYNCING\"\n | \"SUCCESS\"\n | \"CONFLICT\"\n | \"MISSING\"\n | \"ERROR\";\n\nexport type FileStatus = { path: string; status?: SyncStatus };\n\n/**\n * Retrieves the sync status of a folder based on its path and their children files.\n *\n * @param folderPath - The path of the folder.\n * @param sortedFiles - The sorted list of files.\n * @returns The sync status of the folder.\n */\nexport const getFolderStatus = (\n folderPath: string,\n sortedFiles: FileStatus[],\n): SyncStatus => {\n for (const file of sortedFiles) {\n if (file.path.startsWith(folderPath)) {\n return file.status || \"SUCCESS\";\n }\n }\n\n return \"SUCCESS\";\n};\n\n/**\n * Sorts an array of files by their status.\n * The order priority is:\n * - ERROR\n * - CONFLICT\n * - SYNCING\n * - MISSING\n * - SUCCESS\n *\n * @param files - The array of files to be sorted.\n * @returns The sorted array of files.\n */\nexport const sortFilesByStatus = (files: FileStatus[]) => {\n return files.sort((a, b) => {\n const statusOrder = [\n \"ERROR\",\n \"CONFLICT\",\n \"SYNCING\",\n \"MISSING\",\n \"SYNCING\",\n \"SUCCESS\",\n ];\n\n return (\n statusOrder.indexOf(a.status || \"SUCCESS\") -\n statusOrder.indexOf(b.status || \"SUCCESS\")\n );\n });\n};\n\n/**\n * Removes files with a status of 'SUCCESS' from the given array of FileStatus objects.\n * @param files - An array of FileStatus objects.\n * @returns A new array containing only the FileStatus objects with a status other than 'SUCCESS'.\n */\nexport const removeSuccessFiles = (files: FileStatus[]) => {\n return files.filter((file) => file.status !== \"SUCCESS\");\n};\n"],"mappings":"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"}