@powerhousedao/design-system 1.4.2 → 1.5.0

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 (214) hide show
  1. package/dist/assets/icon-components/ArrowFilledRight.js.map +1 -1
  2. package/dist/assets/icon-components/ArrowLeft.js.map +1 -1
  3. package/dist/assets/icon-components/ArrowUp.js.map +1 -1
  4. package/dist/assets/icon-components/BarChart.js.map +1 -1
  5. package/dist/assets/icon-components/BaseArrowLeft.js.map +1 -1
  6. package/dist/assets/icon-components/BaseArrowRight.js.map +1 -1
  7. package/dist/assets/icon-components/Braces.js.map +1 -1
  8. package/dist/assets/icon-components/Branch.js.map +1 -1
  9. package/dist/assets/icon-components/BrickGlobe.js.map +1 -1
  10. package/dist/assets/icon-components/Briefcase.js.map +1 -1
  11. package/dist/assets/icon-components/Calendar.js.map +1 -1
  12. package/dist/assets/icon-components/Caret.js.map +1 -1
  13. package/dist/assets/icon-components/CaretDown.js.map +1 -1
  14. package/dist/assets/icon-components/Check.js.map +1 -1
  15. package/dist/assets/icon-components/CheckCircle.js.map +1 -1
  16. package/dist/assets/icon-components/CheckCircleFill.js.map +1 -1
  17. package/dist/assets/icon-components/ChevronDown.js.map +1 -1
  18. package/dist/assets/icon-components/Circle.js.map +1 -1
  19. package/dist/assets/icon-components/ClockFill.js.map +1 -1
  20. package/dist/assets/icon-components/CloudSlash.js.map +1 -1
  21. package/dist/assets/icon-components/Collapse.js.map +1 -1
  22. package/dist/assets/icon-components/Connect.js.map +1 -1
  23. package/dist/assets/icon-components/Drive.js.map +1 -1
  24. package/dist/assets/icon-components/Ellipsis.js.map +1 -1
  25. package/dist/assets/icon-components/Error.js.map +1 -1
  26. package/dist/assets/icon-components/Exclamation.js.map +1 -1
  27. package/dist/assets/icon-components/FilesEarmark.js.map +1 -1
  28. package/dist/assets/icon-components/FolderClose.js.map +1 -1
  29. package/dist/assets/icon-components/FolderOpen.js.map +1 -1
  30. package/dist/assets/icon-components/FolderPlus.js.map +1 -1
  31. package/dist/assets/icon-components/Gear.js.map +1 -1
  32. package/dist/assets/icon-components/Globe.js.map +1 -1
  33. package/dist/assets/icon-components/Hdd.js.map +1 -1
  34. package/dist/assets/icon-components/History.js.map +1 -1
  35. package/dist/assets/icon-components/InfoSquare.js.map +1 -1
  36. package/dist/assets/icon-components/Link.js.map +1 -1
  37. package/dist/assets/icon-components/Lock.js.map +1 -1
  38. package/dist/assets/icon-components/M.js.map +1 -1
  39. package/dist/assets/icon-components/Pencil.js.map +1 -1
  40. package/dist/assets/icon-components/People.js.map +1 -1
  41. package/dist/assets/icon-components/Person.js.map +1 -1
  42. package/dist/assets/icon-components/Plus.js.map +1 -1
  43. package/dist/assets/icon-components/PlusCircle.js.map +1 -1
  44. package/dist/assets/icon-components/PowerhouseLogoSmall.js.map +1 -1
  45. package/dist/assets/icon-components/Project.js.map +1 -1
  46. package/dist/assets/icon-components/RedoArrow.js.map +1 -1
  47. package/dist/assets/icon-components/Renown.js.map +1 -1
  48. package/dist/assets/icon-components/RenownHover.js.map +1 -1
  49. package/dist/assets/icon-components/Ring.js.map +1 -1
  50. package/dist/assets/icon-components/Save.js.map +1 -1
  51. package/dist/assets/icon-components/Search.js.map +1 -1
  52. package/dist/assets/icon-components/Server.js.map +1 -1
  53. package/dist/assets/icon-components/Settings.js.map +1 -1
  54. package/dist/assets/icon-components/Synced.js.map +1 -1
  55. package/dist/assets/icon-components/Syncing.js.map +1 -1
  56. package/dist/assets/icon-components/Trash.js.map +1 -1
  57. package/dist/assets/icon-components/TrashFill.js.map +1 -1
  58. package/dist/assets/icon-components/VariantArrowLeft.js.map +1 -1
  59. package/dist/assets/icon-components/VerticalDots.js.map +1 -1
  60. package/dist/assets/icon-components/WarningFill.js.map +1 -1
  61. package/dist/assets/icon-components/Xmark.js.map +1 -1
  62. package/dist/assets/icon-components/XmarkLight.js.map +1 -1
  63. package/dist/connect/components/animated-loader/animated-loader.js.map +1 -1
  64. package/dist/connect/components/breadcrumbs/breadcrumbs.js.map +1 -1
  65. package/dist/connect/components/combobox/combobox.js.map +1 -1
  66. package/dist/connect/components/cookie-banner/cookie-banner.js.map +1 -1
  67. package/dist/connect/components/date-time-input/date-time-local-input.js.map +1 -1
  68. package/dist/connect/components/default-editor-loader/default-editor-loader.js.map +1 -1
  69. package/dist/connect/components/disclosure/disclosure.js.map +1 -1
  70. package/dist/connect/components/divider/divider.js.map +1 -1
  71. package/dist/connect/components/document-toolbar/document-toolbar.js.map +1 -1
  72. package/dist/connect/components/drive-view/drive-view.js.map +1 -1
  73. package/dist/connect/components/dropdown-menu/dropdown-menu.js.map +1 -1
  74. package/dist/connect/components/editor-action-buttons/editor-action-buttons.js.map +1 -1
  75. package/dist/connect/components/editor-undo-redo-buttons/editor-undo-redo-buttons.js.map +1 -1
  76. package/dist/connect/components/ens-avatar/ens-avatar.js.map +1 -1
  77. package/dist/connect/components/file-item/file-item.js +7 -7
  78. package/dist/connect/components/file-item/file-item.js.map +1 -1
  79. package/dist/connect/components/folder-item/folder-item.js.map +1 -1
  80. package/dist/connect/components/footer/footer-link.js.map +1 -1
  81. package/dist/connect/components/footer/footer.js.map +1 -1
  82. package/dist/connect/components/form/add-local-drive-form.js.map +1 -1
  83. package/dist/connect/components/form/add-remote-drive-form.js.map +1 -1
  84. package/dist/connect/components/form/drive-settings-form.js.map +1 -1
  85. package/dist/connect/components/form/inputs/available-offline-toggle.js.map +1 -1
  86. package/dist/connect/components/form/inputs/delete-drive.js.map +1 -1
  87. package/dist/connect/components/form/inputs/drive-name-input.js.map +1 -1
  88. package/dist/connect/components/form/inputs/drive-name.js.map +1 -1
  89. package/dist/connect/components/form/inputs/label.js.map +1 -1
  90. package/dist/connect/components/form/inputs/location-info.js.map +1 -1
  91. package/dist/connect/components/form/inputs/sharing-type-form-input.js.map +1 -1
  92. package/dist/connect/components/form-input/form-input.js.map +1 -1
  93. package/dist/connect/components/loading-screen/loading-screen.js.map +1 -1
  94. package/dist/connect/components/modal/add-local-drive-modal.js.map +1 -1
  95. package/dist/connect/components/modal/add-remote-drive-modal.js.map +1 -1
  96. package/dist/connect/components/modal/confirmation-modal.js.map +1 -1
  97. package/dist/connect/components/modal/create-document-modal.js +28 -24
  98. package/dist/connect/components/modal/create-document-modal.js.map +1 -1
  99. package/dist/connect/components/modal/delete-drive-modal.js.map +1 -1
  100. package/dist/connect/components/modal/delete-item-modal.js.map +1 -1
  101. package/dist/connect/components/modal/drive-settings-modal.js.map +1 -1
  102. package/dist/connect/components/modal/read-required-modal.js.map +1 -1
  103. package/dist/connect/components/modal/settings-modal/clear-storage-row.js.map +1 -1
  104. package/dist/connect/components/modal/settings-modal/dependency-versions/dependency-versions.js.map +1 -1
  105. package/dist/connect/components/modal/settings-modal/document-select-row.js.map +1 -1
  106. package/dist/connect/components/modal/settings-modal/row.js.map +1 -1
  107. package/dist/connect/components/modal/settings-modal/settings-modal.js.map +1 -1
  108. package/dist/connect/components/modal/upgrade-drive-modal.js.map +1 -1
  109. package/dist/connect/components/node-input/node-input.js.map +1 -1
  110. package/dist/connect/components/revision-history/header/branch.js.map +1 -1
  111. package/dist/connect/components/revision-history/header/doc-id.js.map +1 -1
  112. package/dist/connect/components/revision-history/header/header.js.map +1 -1
  113. package/dist/connect/components/revision-history/header/scope.js.map +1 -1
  114. package/dist/connect/components/revision-history/revision/address.js.map +1 -1
  115. package/dist/connect/components/revision-history/revision/errors.js.map +1 -1
  116. package/dist/connect/components/revision-history/revision/operation.js.map +1 -1
  117. package/dist/connect/components/revision-history/revision/revision-number.js.map +1 -1
  118. package/dist/connect/components/revision-history/revision/revision.js.map +1 -1
  119. package/dist/connect/components/revision-history/revision/signature.js.map +1 -1
  120. package/dist/connect/components/revision-history/revision/timestamp.js.map +1 -1
  121. package/dist/connect/components/revision-history/revision-history.js.map +1 -1
  122. package/dist/connect/components/revision-history/skip/skip.js.map +1 -1
  123. package/dist/connect/components/revision-history/timeline/day.js.map +1 -1
  124. package/dist/connect/components/revision-history/timeline/timeline.js.map +1 -1
  125. package/dist/connect/components/revision-history/utils.js.map +1 -1
  126. package/dist/connect/components/search-bar/filter-item.js.map +1 -1
  127. package/dist/connect/components/search-bar/search-bar.js.map +1 -1
  128. package/dist/connect/components/select/select.js.map +1 -1
  129. package/dist/connect/components/sidebar/sidebar-footer.js.map +1 -1
  130. package/dist/connect/components/sidebar/sidebar-header.js.map +1 -1
  131. package/dist/connect/components/sidebar/sidebar-login.js.map +1 -1
  132. package/dist/connect/components/sidebar/sidebar-user.js.map +1 -1
  133. package/dist/connect/components/sidebar/sidebar.js.map +1 -1
  134. package/dist/connect/components/status-icon/sync-status-icon.js.map +1 -1
  135. package/dist/connect/components/toast/toast.js.map +1 -1
  136. package/dist/connect/components/toggle/toggle.js.map +1 -1
  137. package/dist/connect/components/tooltip/tooltip.js.map +1 -1
  138. package/dist/connect/components/tree-view/drop-indicator.js.map +1 -1
  139. package/dist/connect/components/tree-view/tree-view.js.map +1 -1
  140. package/dist/connect/constants/options.js.map +1 -1
  141. package/dist/connect/context/UiNodesContext.js.map +1 -1
  142. package/dist/connect/context/WagmiContext.js.map +1 -1
  143. package/dist/connect/hooks/drag-and-drop/use-drag.js.map +1 -1
  144. package/dist/connect/hooks/drag-and-drop/use-drop.js.map +1 -1
  145. package/dist/connect/utils/get-folder-status.js.map +1 -1
  146. package/dist/powerhouse/components/button/button.js.map +1 -1
  147. package/dist/powerhouse/components/dropdown-menu/dropdown-menu.js.map +1 -1
  148. package/dist/powerhouse/components/icon/icon.js.map +1 -1
  149. package/dist/powerhouse/components/legacy/editorToolbar.js.map +1 -1
  150. package/dist/powerhouse/components/legacy/editorWorksheet.js.map +1 -1
  151. package/dist/powerhouse/components/legacy/styles.js.map +1 -1
  152. package/dist/powerhouse/components/legacy/stylesVariant.js.map +1 -1
  153. package/dist/powerhouse/components/legacy/textInput.js.map +1 -1
  154. package/dist/powerhouse/components/legacy/textInputVariant.js.map +1 -1
  155. package/dist/powerhouse/components/legacy/toolbarButton.js.map +1 -1
  156. package/dist/powerhouse/components/modal/modal.js.map +1 -1
  157. package/dist/powerhouse/components/pagination/pagination-button.js.map +1 -1
  158. package/dist/powerhouse/components/pagination/pagination.js.map +1 -1
  159. package/dist/powerhouse/components/sidebar/sidebar-panel.js.map +1 -1
  160. package/dist/powerhouse/components/sidebar/sidebar.js.map +1 -1
  161. package/dist/powerhouse/hooks/animation.js.map +1 -1
  162. package/dist/powerhouse/hooks/reducer.js.map +1 -1
  163. package/dist/powerhouse/hooks/usePagination.js.map +1 -1
  164. package/dist/powerhouse/utils/getDimensions.js.map +1 -1
  165. package/dist/powerhouse/utils/mergeClassNameProps.js.map +1 -1
  166. package/dist/rwa/components/button/button.js.map +1 -1
  167. package/dist/rwa/components/editor/editor.js.map +1 -1
  168. package/dist/rwa/components/inputs/form-inputs.js.map +1 -1
  169. package/dist/rwa/components/inputs/form-row.js.map +1 -1
  170. package/dist/rwa/components/inputs/number-input.js.map +1 -1
  171. package/dist/rwa/components/inputs/select.js.map +1 -1
  172. package/dist/rwa/components/inputs/text-input.js.map +1 -1
  173. package/dist/rwa/components/modal/create-item-modal.js.map +1 -1
  174. package/dist/rwa/components/modal/delete-item-modal.js.map +1 -1
  175. package/dist/rwa/components/modal/modal-form-inputs.js.map +1 -1
  176. package/dist/rwa/components/modal/modal-manager.js.map +1 -1
  177. package/dist/rwa/components/table/accounts/accounts-table.js.map +1 -1
  178. package/dist/rwa/components/table/assets/assets-table.js.map +1 -1
  179. package/dist/rwa/components/table/base/formatted-number.js.map +1 -1
  180. package/dist/rwa/components/table/base/header-label.js.map +1 -1
  181. package/dist/rwa/components/table/base/item-details.js.map +1 -1
  182. package/dist/rwa/components/table/base/table-base.js.map +1 -1
  183. package/dist/rwa/components/table/base/table-cell.js.map +1 -1
  184. package/dist/rwa/components/table/base/table-row.js.map +1 -1
  185. package/dist/rwa/components/table/base/table-with-form.js.map +1 -1
  186. package/dist/rwa/components/table/base/table.js.map +1 -1
  187. package/dist/rwa/components/table/transactions/cash-balance-change.js.map +1 -1
  188. package/dist/rwa/components/table/transactions/fee-transactions-table.js.map +1 -1
  189. package/dist/rwa/components/table/transactions/group-transactions-table.js.map +1 -1
  190. package/dist/rwa/components/table/transactions/transaction-reference.js.map +1 -1
  191. package/dist/rwa/components/table/transactions/unit-price.js.map +1 -1
  192. package/dist/rwa/components/tabs/other-tab.js.map +1 -1
  193. package/dist/rwa/components/tabs/portfolio-tab.js.map +1 -1
  194. package/dist/rwa/components/tabs/tab-content.js.map +1 -1
  195. package/dist/rwa/components/tabs/tabs.js.map +1 -1
  196. package/dist/rwa/components/tabs/transactions-tab.js.map +1 -1
  197. package/dist/rwa/constants/columns.js.map +1 -1
  198. package/dist/rwa/constants/dependent-items.js.map +1 -1
  199. package/dist/rwa/constants/table.js.map +1 -1
  200. package/dist/rwa/context/editor-context.js.map +1 -1
  201. package/dist/rwa/hooks/useColumnPriority.js.map +1 -1
  202. package/dist/rwa/hooks/useDefaultFormValues.js.map +1 -1
  203. package/dist/rwa/hooks/useFormInputs.js.map +1 -1
  204. package/dist/rwa/hooks/useSortTableItems.js.map +1 -1
  205. package/dist/rwa/hooks/useSubmit.js.map +1 -1
  206. package/dist/rwa/hooks/useTableData.js.map +1 -1
  207. package/dist/rwa/hooks/useTableForm.js.map +1 -1
  208. package/dist/rwa/hooks/useTableHeight.js.map +1 -1
  209. package/dist/rwa/utils/calculations.js.map +1 -1
  210. package/dist/rwa/utils/date.js.map +1 -1
  211. package/dist/rwa/utils/table.js.map +1 -1
  212. package/dist/services/wagmi.js.map +1 -1
  213. package/dist/shared-tailwind.config.js.map +1 -1
  214. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"folder-item.js","sources":["../../../../src/connect/components/folder-item/folder-item.tsx"],"sourcesContent":["import {\n ADD_INVALID_TRIGGER,\n ADD_TRIGGER,\n ConnectDropdownMenu,\n DELETE,\n DropdownMenuHandlers,\n DUPLICATE,\n FOLDER,\n NodeInput,\n NodeOption,\n nodeOptionsMap,\n NodeProps,\n READ,\n REMOVE_TRIGGER,\n RENAME,\n SyncStatusIcon,\n TUiNodesContext,\n UiFolderNode,\n useDrag,\n useDrop,\n WRITE,\n} from \"@/connect\";\nimport { Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type FolderItemProps = TUiNodesContext &\n NodeProps & {\n readonly uiNode: UiFolderNode;\n readonly className?: string;\n };\n\nexport function FolderItem(props: FolderItemProps) {\n const {\n uiNode,\n isAllowedToCreateDocuments,\n nodeOptions,\n isRemoteDrive,\n className,\n setSelectedNode,\n onRenameNode,\n onDuplicateNode,\n onDeleteNode,\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n } = props;\n const [mode, setMode] = useState<typeof READ | typeof WRITE>(READ);\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const { dragProps } = useDrag(props);\n const { isDropTarget, dropProps } = useDrop(props);\n\n const isReadMode = mode === READ;\n\n function onCancel() {\n setMode(READ);\n }\n\n function onSubmit(name: string) {\n onRenameNode(name, uiNode);\n }\n\n function onClick() {\n setSelectedNode(uiNode);\n }\n\n const dropdownMenuHandlers: DropdownMenuHandlers = {\n [DUPLICATE]: () => onDuplicateNode(uiNode),\n [RENAME]: () => setMode(WRITE),\n [DELETE]: () => onDeleteNode(uiNode),\n [ADD_TRIGGER]: () => onAddTrigger(uiNode.driveId),\n [REMOVE_TRIGGER]: () => onRemoveTrigger(uiNode.driveId),\n [ADD_INVALID_TRIGGER]: () => onAddInvalidTrigger(uiNode.driveId),\n } as const;\n\n const nodeOptionsForKind = nodeOptions[uiNode.sharingType][FOLDER];\n\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id as NodeOption,\n }))\n .filter((option) => nodeOptionsForKind.includes(option.id));\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 {uiNode.name}\n </div>\n ) : (\n <NodeInput\n className=\"ml-3 font-medium\"\n defaultValue={uiNode.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 className=\"relative w-64\" onClick={onClick}>\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 {isReadMode && isRemoteDrive && uiNode.syncStatus ? (\n <div className=\"absolute bottom-[-3px] right-[-2px] size-3 rounded-full bg-white\">\n <div className=\"absolute left-[-2px] top-[-2px]\">\n <SyncStatusIcon\n overrideSyncIcons={{\n SUCCESS: \"CheckCircleFill\",\n }}\n syncStatus={uiNode.syncStatus}\n />\n </div>\n </div>\n ) : null}\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"],"names":["FolderItem","props","uiNode","isAllowedToCreateDocuments","nodeOptions","isRemoteDrive","className","setSelectedNode","onRenameNode","onDuplicateNode","onDeleteNode","onAddTrigger","onRemoveTrigger","onAddInvalidTrigger","mode","setMode","useState","READ","isDropdownMenuOpen","setIsDropdownMenuOpen","dragProps","useDrag","isDropTarget","dropProps","useDrop","isReadMode","onCancel","onSubmit","name","onClick","dropdownMenuHandlers","DUPLICATE","RENAME","WRITE","DELETE","ADD_TRIGGER","REMOVE_TRIGGER","ADD_INVALID_TRIGGER","nodeOptionsForKind","FOLDER","dropdownMenuOptions","nodeOptionsMap","id","option","onDropdownMenuOptionClick","itemId","handler","content","jsx","NodeInput","containerStyles","twMerge","jsxs","Icon","SyncStatusIcon","ConnectDropdownMenu","e"],"mappings":"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"}
1
+ {"version":3,"file":"folder-item.js","sources":["../../../../src/connect/components/folder-item/folder-item.tsx"],"sourcesContent":["import {\n ADD_INVALID_TRIGGER,\n ADD_TRIGGER,\n ConnectDropdownMenu,\n DELETE,\n DropdownMenuHandlers,\n DUPLICATE,\n FOLDER,\n NodeInput,\n NodeOption,\n nodeOptionsMap,\n NodeProps,\n READ,\n REMOVE_TRIGGER,\n RENAME,\n SyncStatusIcon,\n TUiNodesContext,\n UiFolderNode,\n useDrag,\n useDrop,\n WRITE,\n} from \"@/connect\";\nimport { Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type FolderItemProps = TUiNodesContext &\n NodeProps & {\n readonly uiNode: UiFolderNode;\n readonly className?: string;\n };\n\nexport function FolderItem(props: FolderItemProps) {\n const {\n uiNode,\n isAllowedToCreateDocuments,\n nodeOptions,\n isRemoteDrive,\n className,\n setSelectedNode,\n onRenameNode,\n onDuplicateNode,\n onDeleteNode,\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n } = props;\n const [mode, setMode] = useState<typeof READ | typeof WRITE>(READ);\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const { dragProps } = useDrag(props);\n const { isDropTarget, dropProps } = useDrop(props);\n\n const isReadMode = mode === READ;\n\n function onCancel() {\n setMode(READ);\n }\n\n function onSubmit(name: string) {\n onRenameNode(name, uiNode);\n }\n\n function onClick() {\n setSelectedNode(uiNode);\n }\n\n const dropdownMenuHandlers: DropdownMenuHandlers = {\n [DUPLICATE]: () => onDuplicateNode(uiNode),\n [RENAME]: () => setMode(WRITE),\n [DELETE]: () => onDeleteNode(uiNode),\n [ADD_TRIGGER]: () => onAddTrigger(uiNode.driveId),\n [REMOVE_TRIGGER]: () => onRemoveTrigger(uiNode.driveId),\n [ADD_INVALID_TRIGGER]: () => onAddInvalidTrigger(uiNode.driveId),\n } as const;\n\n const nodeOptionsForKind = nodeOptions[uiNode.sharingType][FOLDER];\n\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id as NodeOption,\n }))\n .filter((option) => nodeOptionsForKind.includes(option.id));\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 {uiNode.name}\n </div>\n ) : (\n <NodeInput\n className=\"ml-3 font-medium\"\n defaultValue={uiNode.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 className=\"relative w-64\" onClick={onClick}>\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 {isReadMode && isRemoteDrive && uiNode.syncStatus ? (\n <div className=\"absolute bottom-[-3px] right-[-2px] size-3 rounded-full bg-white\">\n <div className=\"absolute left-[-2px] top-[-2px]\">\n <SyncStatusIcon\n overrideSyncIcons={{\n SUCCESS: \"CheckCircleFill\",\n }}\n syncStatus={uiNode.syncStatus}\n />\n </div>\n </div>\n ) : null}\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"],"names":["FolderItem","props","uiNode","isAllowedToCreateDocuments","nodeOptions","isRemoteDrive","className","setSelectedNode","onRenameNode","onDuplicateNode","onDeleteNode","onAddTrigger","onRemoveTrigger","onAddInvalidTrigger","mode","setMode","useState","READ","isDropdownMenuOpen","setIsDropdownMenuOpen","dragProps","useDrag","isDropTarget","dropProps","useDrop","isReadMode","onCancel","onSubmit","name","onClick","dropdownMenuHandlers","DUPLICATE","RENAME","WRITE","DELETE","ADD_TRIGGER","REMOVE_TRIGGER","ADD_INVALID_TRIGGER","nodeOptionsForKind","FOLDER","dropdownMenuOptions","nodeOptionsMap","id","option","onDropdownMenuOptionClick","itemId","handler","content","jsx","NodeInput","containerStyles","twMerge","jsxs","Icon","SyncStatusIcon","ConnectDropdownMenu","e"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"footer-link.js","sources":["../../../../src/connect/components/footer/footer-link.tsx"],"sourcesContent":["import { mergeClassNameProps } from \"@/powerhouse\";\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"],"names":["FooterLink","props","Component","restProps","jsx","mergeClassNameProps"],"mappings":";;AAMO,SAASA,EACdC,GACA;AACA,QAAM,EAAE,IAAIC,IAAY,KAAK,GAAGC,EAAc,IAAAF;AAG5C,SAAA,gBAAAG;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAGG;AAAA,QACFF;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"footer-link.js","sources":["../../../../src/connect/components/footer/footer-link.tsx"],"sourcesContent":["import { mergeClassNameProps } from \"@/powerhouse\";\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"],"names":["FooterLink","props","Component","restProps","jsx","mergeClassNameProps"],"mappings":";;AAMO,SAASA,EACdC,GACA;AACA,QAAM,EAAE,IAAIC,IAAY,KAAK,GAAGC,EAAc,IAAAF;AAG5C,SAAA,gBAAAG;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAGG;AAAA,QACFF;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"footer.js","sources":["../../../../src/connect/components/footer/footer.tsx"],"sourcesContent":["import { mergeClassNameProps } from \"@/powerhouse\";\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"],"names":["Footer","children","props","jsx","mergeClassNameProps"],"mappings":";;AAEO,MAAMA,IAAsD,CAAC;AAAA,EAClE,UAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAGC;AAAA,MACFF;AAAA,MACA;AAAA,IACF;AAAA,IAEC,UAAAD;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"footer.js","sources":["../../../../src/connect/components/footer/footer.tsx"],"sourcesContent":["import { mergeClassNameProps } from \"@/powerhouse\";\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"],"names":["Footer","children","props","jsx","mergeClassNameProps"],"mappings":";;AAEO,MAAMA,IAAsD,CAAC;AAAA,EAClE,UAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAGC;AAAA,MACFF;AAAA,MACA;AAAA,IACF;AAAA,IAEC,UAAAD;AAAA,EAAA;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-local-drive-form.js","sources":["../../../../src/connect/components/form/add-local-drive-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n Disclosure,\n Divider,\n FormInput,\n Label,\n LOCAL,\n LocationInfo,\n SharingType,\n SharingTypeFormInput,\n SWITCHBOARD,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\n\nexport type AddLocalDriveInput = {\n name: string;\n sharingType: SharingType;\n availableOffline: boolean;\n};\n\ntype AddLocalDriveFormProps = {\n readonly onSubmit: CreateDriveFormSubmitHandler;\n readonly onCancel: () => void;\n};\n\ntype CreateDriveFormSubmitHandler = SubmitHandler<AddLocalDriveInput>;\n\nexport function AddLocalDriveForm(props: AddLocalDriveFormProps) {\n const [showLocationSettings, setShowLocationSettings] = useState(false);\n const [showUpload, setShowUpload] = useState(false);\n const {\n register,\n handleSubmit,\n control,\n formState: { errors },\n } = useForm<AddLocalDriveInput>({\n defaultValues: {\n name: \"\",\n sharingType: LOCAL,\n availableOffline: false,\n },\n });\n\n return (\n <form onSubmit={handleSubmit(props.onSubmit)}>\n <Label htmlFor=\"driveName\">Drive Name</Label>\n <FormInput\n {...register(\"name\", {\n required: \"Drive name is required\",\n })}\n errorMessage={errors.name?.message}\n icon={<Icon name=\"Drive\" />}\n placeholder=\"Drive name\"\n />\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={showUpload}\n onOpenChange={() => setShowUpload(!showUpload)}\n title=\"Upload from device\"\n >\n <div className=\"mt-3 grid h-[117px] w-full place-items-center rounded-xl bg-gray-200\">\n <div className=\"rounded-xl bg-white p-3 text-xs\">\n <Icon className=\"mr-2 inline-block\" name=\"ArrowUp\" size={20} />\n Click or drop folder\n </div>\n </div>\n </Disclosure>\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 <Divider className=\"my-3\" />\n <Button className=\"mb-4 w-full\" type=\"submit\">\n Create new drive\n </Button>\n </form>\n );\n}\n"],"names":["AddLocalDriveForm","props","showLocationSettings","setShowLocationSettings","useState","showUpload","setShowUpload","register","handleSubmit","control","errors","useForm","LOCAL","jsx","Label","FormInput","_a","Icon","Divider","SharingTypeFormInput","Disclosure","jsxs","LocationInfo","SWITCHBOARD","AvailableOfflineToggle","Button"],"mappings":";;;;;;;;;;;;;AA6BO,SAASA,EAAkBC,GAA+B;;AAC/D,QAAM,CAACC,GAAsBC,CAAuB,IAAIC,EAAS,EAAK,GAChE,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAK,GAC5C;AAAA,IACJ,UAAAG;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAO;AAAA,MAClBC,EAA4B;AAAA,IAC9B,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAaC;AAAA,MACb,kBAAkB;AAAA,IACpB;AAAA,EAAA,CACD;AAED,2BACG,QAAK,EAAA,UAAUJ,EAAaP,EAAM,QAAQ,GACzC,UAAA;AAAA,IAAC,gBAAAY,EAAAC,GAAA,EAAM,SAAQ,aAAY,UAAU,cAAA;AAAA,IACrC,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACE,GAAGR,EAAS,QAAQ;AAAA,UACnB,UAAU;AAAA,QAAA,CACX;AAAA,QACD,eAAcS,IAAAN,EAAO,SAAP,gBAAAM,EAAa;AAAA,QAC3B,MAAM,gBAAAH,EAACI,GAAK,EAAA,MAAK,QAAQ,CAAA;AAAA,QACzB,aAAY;AAAA,MAAA;AAAA,IACd;AAAA,IACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IACzB,gBAAAL,EAAAC,GAAA,EAAM,SAAQ,eAAc,UAAgB,oBAAA;AAAA,IAC7C,gBAAAD,EAACM,KAAqB,SAAAV,GAAkB;AAAA,IACxC,gBAAAI,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAL;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,QAAQf;AAAA,QACR,cAAc,MAAMC,EAAc,CAACD,CAAU;AAAA,QAC7C,OAAM;AAAA,QAEN,4BAAC,OAAI,EAAA,WAAU,wEACb,UAAC,gBAAAgB,EAAA,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,UAAA,gBAAAR,EAACI,KAAK,WAAU,qBAAoB,MAAK,WAAU,MAAM,IAAI;AAAA,UAAE;AAAA,QAAA,EAAA,CAEjE,EACF,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAG;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAQlB;AAAA,QACR,cAAc,MAAMC,EAAwB,CAACD,CAAoB;AAAA,QACjE,OAAM;AAAA,QAEN,UAAA;AAAA,UAAC,gBAAAW,EAAAS,GAAA,EAAa,UAAUC,EAAa,CAAA;AAAA,UACpC,gBAAAV,EAAAW,GAAA,EAAwB,GAAGjB,EAAS,kBAAkB,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D;AAAA,IACA,gBAAAM,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,sBACzBO,GAAO,EAAA,WAAU,eAAc,MAAK,UAAS,UAE9C,oBAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"add-local-drive-form.js","sources":["../../../../src/connect/components/form/add-local-drive-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n Disclosure,\n Divider,\n FormInput,\n Label,\n LOCAL,\n LocationInfo,\n SharingType,\n SharingTypeFormInput,\n SWITCHBOARD,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\n\nexport type AddLocalDriveInput = {\n name: string;\n sharingType: SharingType;\n availableOffline: boolean;\n};\n\ntype AddLocalDriveFormProps = {\n readonly onSubmit: CreateDriveFormSubmitHandler;\n readonly onCancel: () => void;\n};\n\ntype CreateDriveFormSubmitHandler = SubmitHandler<AddLocalDriveInput>;\n\nexport function AddLocalDriveForm(props: AddLocalDriveFormProps) {\n const [showLocationSettings, setShowLocationSettings] = useState(false);\n const [showUpload, setShowUpload] = useState(false);\n const {\n register,\n handleSubmit,\n control,\n formState: { errors },\n } = useForm<AddLocalDriveInput>({\n defaultValues: {\n name: \"\",\n sharingType: LOCAL,\n availableOffline: false,\n },\n });\n\n return (\n <form onSubmit={handleSubmit(props.onSubmit)}>\n <Label htmlFor=\"driveName\">Drive Name</Label>\n <FormInput\n {...register(\"name\", {\n required: \"Drive name is required\",\n })}\n errorMessage={errors.name?.message}\n icon={<Icon name=\"Drive\" />}\n placeholder=\"Drive name\"\n />\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={showUpload}\n onOpenChange={() => setShowUpload(!showUpload)}\n title=\"Upload from device\"\n >\n <div className=\"mt-3 grid h-[117px] w-full place-items-center rounded-xl bg-gray-200\">\n <div className=\"rounded-xl bg-white p-3 text-xs\">\n <Icon className=\"mr-2 inline-block\" name=\"ArrowUp\" size={20} />\n Click or drop folder\n </div>\n </div>\n </Disclosure>\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 <Divider className=\"my-3\" />\n <Button className=\"mb-4 w-full\" type=\"submit\">\n Create new drive\n </Button>\n </form>\n );\n}\n"],"names":["AddLocalDriveForm","props","showLocationSettings","setShowLocationSettings","useState","showUpload","setShowUpload","register","handleSubmit","control","errors","useForm","LOCAL","jsx","Label","FormInput","_a","Icon","Divider","SharingTypeFormInput","Disclosure","jsxs","LocationInfo","SWITCHBOARD","AvailableOfflineToggle","Button"],"mappings":";;;;;;;;;;;;;AA6BO,SAASA,EAAkBC,GAA+B;;AAC/D,QAAM,CAACC,GAAsBC,CAAuB,IAAIC,EAAS,EAAK,GAChE,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAK,GAC5C;AAAA,IACJ,UAAAG;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAO;AAAA,MAClBC,EAA4B;AAAA,IAC9B,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAaC;AAAA,MACb,kBAAkB;AAAA,IAAA;AAAA,EACpB,CACD;AAED,2BACG,QAAK,EAAA,UAAUJ,EAAaP,EAAM,QAAQ,GACzC,UAAA;AAAA,IAAC,gBAAAY,EAAAC,GAAA,EAAM,SAAQ,aAAY,UAAU,cAAA;AAAA,IACrC,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACE,GAAGR,EAAS,QAAQ;AAAA,UACnB,UAAU;AAAA,QAAA,CACX;AAAA,QACD,eAAcS,IAAAN,EAAO,SAAP,gBAAAM,EAAa;AAAA,QAC3B,MAAM,gBAAAH,EAACI,GAAK,EAAA,MAAK,QAAQ,CAAA;AAAA,QACzB,aAAY;AAAA,MAAA;AAAA,IACd;AAAA,IACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IACzB,gBAAAL,EAAAC,GAAA,EAAM,SAAQ,eAAc,UAAgB,oBAAA;AAAA,IAC7C,gBAAAD,EAACM,KAAqB,SAAAV,GAAkB;AAAA,IACxC,gBAAAI,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAL;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,QAAQf;AAAA,QACR,cAAc,MAAMC,EAAc,CAACD,CAAU;AAAA,QAC7C,OAAM;AAAA,QAEN,4BAAC,OAAI,EAAA,WAAU,wEACb,UAAC,gBAAAgB,EAAA,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,UAAA,gBAAAR,EAACI,KAAK,WAAU,qBAAoB,MAAK,WAAU,MAAM,IAAI;AAAA,UAAE;AAAA,QAAA,EAAA,CAEjE,EACF,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAG;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAQlB;AAAA,QACR,cAAc,MAAMC,EAAwB,CAACD,CAAoB;AAAA,QACjE,OAAM;AAAA,QAEN,UAAA;AAAA,UAAC,gBAAAW,EAAAS,GAAA,EAAa,UAAUC,EAAa,CAAA;AAAA,UACpC,gBAAAV,EAAAW,GAAA,EAAwB,GAAGjB,EAAS,kBAAkB,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D;AAAA,IACA,gBAAAM,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,sBACzBO,GAAO,EAAA,WAAU,eAAc,MAAK,UAAS,UAE9C,mBAAA,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-remote-drive-form.js","sources":["../../../../src/connect/components/form/add-remote-drive-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n Disclosure,\n Divider,\n DriveName,\n FormInput,\n Label,\n LocationInfo,\n PUBLIC,\n SharingType,\n SWITCHBOARD,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useDebounceValue } from \"usehooks-ts\";\n\ntype RemoteDriveDetails = {\n id: string;\n name: string;\n sharingType: SharingType;\n location: typeof 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 <Label htmlFor=\"url\">Add existing drive</Label>\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 <Divider className=\"my-3\" />\n <Button className=\"mt-4 w-full\" color=\"dark\" type=\"submit\">\n Add drive\n </Button>\n </>\n ) : (\n <>\n <FormInput\n errorMessage={errorMessage}\n icon={<Icon name=\"BrickGlobe\" />}\n onChange={(e) => setUrl(e.target.value)}\n placeholder=\"Drive URL\"\n required\n type=\"url\"\n value={url}\n />\n <Divider className=\"mb-3\" />\n <Button\n className=\"mt-4 w-full\"\n color=\"light\"\n disabled={!isUrlValid || url === \"\"}\n onClick={(e) => {\n e.preventDefault();\n setHasConfirmedUrl(true);\n }}\n type=\"button\"\n >\n Confirm URL\n </Button>\n </>\n )}\n </form>\n );\n}\n"],"names":["AddRemoteDriveForm","props","sharingType","PUBLIC","requestPublicDrive","remoteDriveDetails","setPublicDriveDetails","useState","showLocationSettings","setShowLocationSettings","isUrlValid","setIsUrlValid","hasConfirmedUrl","setHasConfirmedUrl","errorMessage","setErrorMessage","url","setUrl","debouncedUrl","setDebouncedUrl","useDebounceValue","register","handleSubmit","setValue","useForm","useEffect","fetchPublicDrive","id","name","SWITCHBOARD","error","onSubmit","availableOffline","jsxs","jsx","Label","Fragment","DriveName","Divider","Disclosure","LocationInfo","AvailableOfflineToggle","Button","FormInput","Icon","e"],"mappings":"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"}
1
+ {"version":3,"file":"add-remote-drive-form.js","sources":["../../../../src/connect/components/form/add-remote-drive-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n Disclosure,\n Divider,\n DriveName,\n FormInput,\n Label,\n LocationInfo,\n PUBLIC,\n SharingType,\n SWITCHBOARD,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useDebounceValue } from \"usehooks-ts\";\n\ntype RemoteDriveDetails = {\n id: string;\n name: string;\n sharingType: SharingType;\n location: typeof 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 <Label htmlFor=\"url\">Add existing drive</Label>\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 <Divider className=\"my-3\" />\n <Button className=\"mt-4 w-full\" color=\"dark\" type=\"submit\">\n Add drive\n </Button>\n </>\n ) : (\n <>\n <FormInput\n errorMessage={errorMessage}\n icon={<Icon name=\"BrickGlobe\" />}\n onChange={(e) => setUrl(e.target.value)}\n placeholder=\"Drive URL\"\n required\n type=\"url\"\n value={url}\n />\n <Divider className=\"mb-3\" />\n <Button\n className=\"mt-4 w-full\"\n color=\"light\"\n disabled={!isUrlValid || url === \"\"}\n onClick={(e) => {\n e.preventDefault();\n setHasConfirmedUrl(true);\n }}\n type=\"button\"\n >\n Confirm URL\n </Button>\n </>\n )}\n </form>\n );\n}\n"],"names":["AddRemoteDriveForm","props","sharingType","PUBLIC","requestPublicDrive","remoteDriveDetails","setPublicDriveDetails","useState","showLocationSettings","setShowLocationSettings","isUrlValid","setIsUrlValid","hasConfirmedUrl","setHasConfirmedUrl","errorMessage","setErrorMessage","url","setUrl","debouncedUrl","setDebouncedUrl","useDebounceValue","register","handleSubmit","setValue","useForm","useEffect","fetchPublicDrive","id","name","SWITCHBOARD","error","onSubmit","availableOffline","jsxs","jsx","Label","Fragment","DriveName","Divider","Disclosure","LocationInfo","AvailableOfflineToggle","Button","FormInput","Icon","e"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drive-settings-form.js","sources":["../../../../src/connect/components/form/drive-settings-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n DeleteDrive,\n Disclosure,\n Divider,\n DriveNameInput,\n Label,\n LocationInfo,\n PUBLIC,\n SharingType,\n SharingTypeFormInput,\n SWITCHBOARD,\n UiDriveNode,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\n\ntype Inputs = {\n name: string;\n sharingType: SharingType;\n availableOffline: boolean;\n};\n\ntype DriveSettingsFormProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly onSubmit: DriveSettingsFormSubmitHandler;\n readonly handleCancel: () => void;\n readonly handleDeleteDrive: () => void;\n};\n\nexport type DriveSettingsFormSubmitHandler = SubmitHandler<Inputs>;\n\nexport function DriveSettingsForm(props: DriveSettingsFormProps) {\n const { uiDriveNode, onSubmit } = props;\n const { name, sharingType, availableOffline } = uiDriveNode;\n\n const [showLocationSettings, setShowLocationSettings] = 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={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 {...props} onCancel={() => setShowDeleteDrive(false)} />\n ) : (\n <>\n <Divider className=\"my-3\" />\n <Button className=\"mb-4 w-full\" type=\"submit\">\n Confirm\n </Button>\n </>\n )}\n </form>\n );\n}\n"],"names":["DriveSettingsForm","props","uiDriveNode","onSubmit","name","sharingType","availableOffline","showLocationSettings","setShowLocationSettings","useState","showDangerZone","setShowDangerZone","showDeleteDrive","setShowDeleteDrive","register","handleSubmit","control","useForm","location","PUBLIC","SWITCHBOARD","jsxs","jsx","DriveNameInput","Divider","Label","SharingTypeFormInput","Disclosure","LocationInfo","AvailableOfflineToggle","Icon","DeleteDrive","Fragment","Button"],"mappings":";;;;;;;;;;;;;;AAiCO,SAASA,EAAkBC,GAA+B;AACzD,QAAA,EAAE,aAAAC,GAAa,UAAAC,EAAa,IAAAF,GAC5B,EAAE,MAAAG,GAAM,aAAAC,GAAa,kBAAAC,EAAA,IAAqBJ,GAE1C,CAACK,GAAsBC,CAAuB,IAAIC,EAAS,EAAK,GAChE,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpD,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,EAAK,GAEtD,EAAE,UAAAK,GAAU,cAAAC,GAAc,SAAAC,EAAA,IAAYC,EAAgB;AAAA,IAC1D,MAAM;AAAA,IACN,eAAe;AAAA,MACb,MAAAb;AAAA,MACA,aAAAC;AAAA,MACA,kBAAAC;AAAA,IACF;AAAA,EAAA,CACD,GAEKY,IAAWb,MAAgBc,IAASC,IAAcf;AAExD,SACG,gBAAAgB,EAAA,QAAA,EAAK,UAAUN,EAAaZ,CAAQ,GACnC,UAAA;AAAA,IAAA,gBAAAmB,EAACC,GAAgB,EAAA,GAAGT,EAAS,MAAM,EAAG,CAAA;AAAA,IACtC,gBAAAQ,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IACzB,gBAAAF,EAAAG,GAAA,EAAM,SAAQ,eAAc,UAAgB,oBAAA;AAAA,IAC7C,gBAAAH,EAACI,KAAqB,SAAAV,GAAkB;AAAA,IACxC,gBAAAM,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAH;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,QAAQpB;AAAA,QACR,cAAc,MAAMC,EAAwB,CAACD,CAAoB;AAAA,QACjE,OAAM;AAAA,QAEN,UAAA;AAAA,UAAA,gBAAAe,EAACM,KAAa,UAAAV,GAAoB;AAAA,UACjC,gBAAAI,EAAAO,GAAA,EAAwB,GAAGf,EAAS,kBAAkB,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D;AAAA,IACA,gBAAAQ,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAF;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,QAAQjB;AAAA,QACR,cAAc,MAAMC,EAAkB,CAACD,CAAc;AAAA,QACrD,OAAM;AAAA,QAEN,UAAA,gBAAAW;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,MAAMR,EAAmB,EAAI;AAAA,YACtC,MAAK;AAAA,YAEL,UAAA;AAAA,cAAC,gBAAAS,EAAAQ,GAAA,EAAK,MAAK,QAAQ,CAAA;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAEvB;AAAA,MAAA;AAAA,IACF;AAAA,IACClB,KAAmBF,IACjB,gBAAAY,EAAAS,GAAA,EAAa,GAAG9B,GAAO,UAAU,MAAMY,EAAmB,EAAK,EAAG,CAAA,IAGjE,gBAAAQ,EAAAW,GAAA,EAAA,UAAA;AAAA,MAAC,gBAAAV,EAAAE,GAAA,EAAQ,WAAU,OAAO,CAAA;AAAA,wBACzBS,GAAO,EAAA,WAAU,eAAc,MAAK,UAAS,UAE9C,WAAA;AAAA,IAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"drive-settings-form.js","sources":["../../../../src/connect/components/form/drive-settings-form.tsx"],"sourcesContent":["import {\n AvailableOfflineToggle,\n DeleteDrive,\n Disclosure,\n Divider,\n DriveNameInput,\n Label,\n LocationInfo,\n PUBLIC,\n SharingType,\n SharingTypeFormInput,\n SWITCHBOARD,\n UiDriveNode,\n} from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\n\ntype Inputs = {\n name: string;\n sharingType: SharingType;\n availableOffline: boolean;\n};\n\ntype DriveSettingsFormProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly onSubmit: DriveSettingsFormSubmitHandler;\n readonly handleCancel: () => void;\n readonly handleDeleteDrive: () => void;\n};\n\nexport type DriveSettingsFormSubmitHandler = SubmitHandler<Inputs>;\n\nexport function DriveSettingsForm(props: DriveSettingsFormProps) {\n const { uiDriveNode, onSubmit } = props;\n const { name, sharingType, availableOffline } = uiDriveNode;\n\n const [showLocationSettings, setShowLocationSettings] = 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={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 {...props} onCancel={() => setShowDeleteDrive(false)} />\n ) : (\n <>\n <Divider className=\"my-3\" />\n <Button className=\"mb-4 w-full\" type=\"submit\">\n Confirm\n </Button>\n </>\n )}\n </form>\n );\n}\n"],"names":["DriveSettingsForm","props","uiDriveNode","onSubmit","name","sharingType","availableOffline","showLocationSettings","setShowLocationSettings","useState","showDangerZone","setShowDangerZone","showDeleteDrive","setShowDeleteDrive","register","handleSubmit","control","useForm","location","PUBLIC","SWITCHBOARD","jsxs","jsx","DriveNameInput","Divider","Label","SharingTypeFormInput","Disclosure","LocationInfo","AvailableOfflineToggle","Icon","DeleteDrive","Fragment","Button"],"mappings":";;;;;;;;;;;;;;AAiCO,SAASA,EAAkBC,GAA+B;AACzD,QAAA,EAAE,aAAAC,GAAa,UAAAC,EAAA,IAAaF,GAC5B,EAAE,MAAAG,GAAM,aAAAC,GAAa,kBAAAC,EAAqB,IAAAJ,GAE1C,CAACK,GAAsBC,CAAuB,IAAIC,EAAS,EAAK,GAChE,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpD,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,EAAK,GAEtD,EAAE,UAAAK,GAAU,cAAAC,GAAc,SAAAC,EAAA,IAAYC,EAAgB;AAAA,IAC1D,MAAM;AAAA,IACN,eAAe;AAAA,MACb,MAAAb;AAAA,MACA,aAAAC;AAAA,MACA,kBAAAC;AAAA,IAAA;AAAA,EACF,CACD,GAEKY,IAAWb,MAAgBc,IAASC,IAAcf;AAExD,SACG,gBAAAgB,EAAA,QAAA,EAAK,UAAUN,EAAaZ,CAAQ,GACnC,UAAA;AAAA,IAAA,gBAAAmB,EAACC,GAAgB,EAAA,GAAGT,EAAS,MAAM,EAAG,CAAA;AAAA,IACtC,gBAAAQ,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IACzB,gBAAAF,EAAAG,GAAA,EAAM,SAAQ,eAAc,UAAgB,oBAAA;AAAA,IAC7C,gBAAAH,EAACI,KAAqB,SAAAV,GAAkB;AAAA,IACxC,gBAAAM,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAH;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,QAAQpB;AAAA,QACR,cAAc,MAAMC,EAAwB,CAACD,CAAoB;AAAA,QACjE,OAAM;AAAA,QAEN,UAAA;AAAA,UAAA,gBAAAe,EAACM,KAAa,UAAAV,GAAoB;AAAA,UACjC,gBAAAI,EAAAO,GAAA,EAAwB,GAAGf,EAAS,kBAAkB,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D;AAAA,IACA,gBAAAQ,EAACE,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,IAC1B,gBAAAF;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,QAAQjB;AAAA,QACR,cAAc,MAAMC,EAAkB,CAACD,CAAc;AAAA,QACrD,OAAM;AAAA,QAEN,UAAA,gBAAAW;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,MAAMR,EAAmB,EAAI;AAAA,YACtC,MAAK;AAAA,YAEL,UAAA;AAAA,cAAC,gBAAAS,EAAAQ,GAAA,EAAK,MAAK,QAAQ,CAAA;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEvB;AAAA,IACF;AAAA,IACClB,KAAmBF,IACjB,gBAAAY,EAAAS,GAAA,EAAa,GAAG9B,GAAO,UAAU,MAAMY,EAAmB,EAAK,EAAG,CAAA,IAGjE,gBAAAQ,EAAAW,GAAA,EAAA,UAAA;AAAA,MAAC,gBAAAV,EAAAE,GAAA,EAAQ,WAAU,OAAO,CAAA;AAAA,wBACzBS,GAAO,EAAA,WAAU,eAAc,MAAK,UAAS,UAE9C,UAAA,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"available-offline-toggle.js","sources":["../../../../../src/connect/components/form/inputs/available-offline-toggle.tsx"],"sourcesContent":["import { Toggle } from \"@/connect\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\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-xl bg-gray-100 p-3 text-slate-200\">\n <div className=\"flex-1\">\n <label className=\"font-semibold\" htmlFor=\"availableOffline\">\n Make available offline\n </label>\n <p className=\"text-xs text-gray-500\">\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"],"names":["AvailableOfflineToggle","forwardRef","props","ref","jsxs","jsx","Toggle"],"mappings":";;;AAQO,MAAMA,IAAyBC;AAAA,EACpC,SACEC,GACAC,GACA;AAEE,WAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,+DACb,UAAA;AAAA,MAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAM,EAAA,WAAU,iBAAgB,SAAQ,oBAAmB,UAE5D,0BAAA;AAAA,QACA,gBAAAD,EAAC,KAAE,EAAA,WAAU,yBAAwB,UAAA;AAAA,UAAA;AAAA,4BAElC,MAAG,EAAA;AAAA,UAAE;AAAA,QAAA,GAER;AAAA,MAAA,GACF;AAAA,wBACCE,GAAO,EAAA,IAAG,oBAAmB,KAAAH,GAAW,GAAGD,GAAO;AAAA,IACrD,EAAA,CAAA;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"available-offline-toggle.js","sources":["../../../../../src/connect/components/form/inputs/available-offline-toggle.tsx"],"sourcesContent":["import { Toggle } from \"@/connect\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\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-xl bg-gray-100 p-3 text-slate-200\">\n <div className=\"flex-1\">\n <label className=\"font-semibold\" htmlFor=\"availableOffline\">\n Make available offline\n </label>\n <p className=\"text-xs text-gray-500\">\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"],"names":["AvailableOfflineToggle","forwardRef","props","ref","jsxs","jsx","Toggle"],"mappings":";;;AAQO,MAAMA,IAAyBC;AAAA,EACpC,SACEC,GACAC,GACA;AAEE,WAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,+DACb,UAAA;AAAA,MAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAM,EAAA,WAAU,iBAAgB,SAAQ,oBAAmB,UAE5D,0BAAA;AAAA,QACA,gBAAAD,EAAC,KAAE,EAAA,WAAU,yBAAwB,UAAA;AAAA,UAAA;AAAA,4BAElC,MAAG,EAAA;AAAA,UAAE;AAAA,QAAA,EAER,CAAA;AAAA,MAAA,GACF;AAAA,wBACCE,GAAO,EAAA,IAAG,oBAAmB,KAAAH,GAAW,GAAGD,EAAO,CAAA;AAAA,IAAA,GACrD;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-drive.js","sources":["../../../../../src/connect/components/form/inputs/delete-drive.tsx"],"sourcesContent":["import { DriveNameInput, UiDriveNode } from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\n\nexport type DeleteDriveProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly handleDeleteDrive: () => void;\n readonly onCancel: () => void;\n};\n\nexport function DeleteDrive(props: DeleteDriveProps) {\n const { uiDriveNode, handleDeleteDrive, onCancel } = props;\n const [driveNameInput, setDriveNameInput] = useState(\"\");\n\n const isAllowedToDelete = driveNameInput === uiDriveNode.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 <Button className=\"w-full\" color=\"light\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n className=\"w-full\"\n color=\"red\"\n disabled={!isAllowedToDelete}\n onClick={deleteDrive}\n >\n Delete\n </Button>\n </div>\n </div>\n );\n}\n"],"names":["DeleteDrive","props","uiDriveNode","handleDeleteDrive","onCancel","driveNameInput","setDriveNameInput","useState","isAllowedToDelete","deleteDrive","jsx","DriveNameInput","Icon","event","jsxs","Button"],"mappings":";;;;;AAUO,SAASA,EAAYC,GAAyB;AACnD,QAAM,EAAE,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAA,IAAaH,GAC/C,CAACI,GAAgBC,CAAiB,IAAIC,EAAS,EAAE,GAEjDC,IAAoBH,MAAmBH,EAAY;AAEzD,WAASO,IAAc;AACrB,IAAID,KACgBL;EAEtB;AAEA,2BACG,OACC,EAAA,UAAA;AAAA,IAAC,gBAAAO,EAAA,KAAA,EAAE,WAAU,8DAA6D,UAG1E,2HAAA;AAAA,IACA,gBAAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM,gBAAAD,EAACE,GAAK,EAAA,MAAK,OAAO,CAAA;AAAA,QACxB,UAAU,CAACC,MAAUP,EAAkBO,EAAM,OAAO,KAAK;AAAA,QACzD,aAAY;AAAA,QACZ,OAAOR;AAAA,MAAA;AAAA,IACT;AAAA,IACA,gBAAAS,EAAC,OAAI,EAAA,WAAU,cACb,UAAA;AAAA,MAAA,gBAAAJ,EAACK,KAAO,WAAU,UAAS,OAAM,SAAQ,SAASX,GAAU,UAE5D,SAAA,CAAA;AAAA,MACA,gBAAAM;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,UAAU,CAACP;AAAA,UACX,SAASC;AAAA,UACV,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"delete-drive.js","sources":["../../../../../src/connect/components/form/inputs/delete-drive.tsx"],"sourcesContent":["import { DriveNameInput, UiDriveNode } from \"@/connect\";\nimport { Button, Icon } from \"@/powerhouse\";\nimport { useState } from \"react\";\n\nexport type DeleteDriveProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly handleDeleteDrive: () => void;\n readonly onCancel: () => void;\n};\n\nexport function DeleteDrive(props: DeleteDriveProps) {\n const { uiDriveNode, handleDeleteDrive, onCancel } = props;\n const [driveNameInput, setDriveNameInput] = useState(\"\");\n\n const isAllowedToDelete = driveNameInput === uiDriveNode.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 <Button className=\"w-full\" color=\"light\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n className=\"w-full\"\n color=\"red\"\n disabled={!isAllowedToDelete}\n onClick={deleteDrive}\n >\n Delete\n </Button>\n </div>\n </div>\n );\n}\n"],"names":["DeleteDrive","props","uiDriveNode","handleDeleteDrive","onCancel","driveNameInput","setDriveNameInput","useState","isAllowedToDelete","deleteDrive","jsx","DriveNameInput","Icon","event","jsxs","Button"],"mappings":";;;;;AAUO,SAASA,EAAYC,GAAyB;AACnD,QAAM,EAAE,aAAAC,GAAa,mBAAAC,GAAmB,UAAAC,EAAa,IAAAH,GAC/C,CAACI,GAAgBC,CAAiB,IAAIC,EAAS,EAAE,GAEjDC,IAAoBH,MAAmBH,EAAY;AAEzD,WAASO,IAAc;AACrB,IAAID,KACgBL,EAAA;AAAA,EACpB;AAGF,2BACG,OACC,EAAA,UAAA;AAAA,IAAC,gBAAAO,EAAA,KAAA,EAAE,WAAU,8DAA6D,UAG1E,2HAAA;AAAA,IACA,gBAAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM,gBAAAD,EAACE,GAAK,EAAA,MAAK,OAAO,CAAA;AAAA,QACxB,UAAU,CAACC,MAAUP,EAAkBO,EAAM,OAAO,KAAK;AAAA,QACzD,aAAY;AAAA,QACZ,OAAOR;AAAA,MAAA;AAAA,IACT;AAAA,IACA,gBAAAS,EAAC,OAAI,EAAA,WAAU,cACb,UAAA;AAAA,MAAA,gBAAAJ,EAACK,KAAO,WAAU,UAAS,OAAM,SAAQ,SAASX,GAAU,UAE5D,SAAA,CAAA;AAAA,MACA,gBAAAM;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,UAAU,CAACP;AAAA,UACX,SAASC;AAAA,UACV,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"drive-name-input.js","sources":["../../../../../src/connect/components/form/inputs/drive-name-input.tsx"],"sourcesContent":["import { FormInput } from \"@/connect\";\nimport { Icon } from \"@/powerhouse\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\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"],"names":["DriveNameInput","forwardRef","props","ref","jsx","FormInput","Icon"],"mappings":";;;;AAWO,MAAMA,IAAiBC,EAAW,SACvCC,GACAC,GACA;AAEE,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,MAAMA,EAAM,QAAS,gBAAAE,EAAAE,GAAA,EAAK,MAAK,SAAQ;AAAA,MACvC,IAAG;AAAA,MACH,aAAY;AAAA,MACZ,KAAAH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
1
+ {"version":3,"file":"drive-name-input.js","sources":["../../../../../src/connect/components/form/inputs/drive-name-input.tsx"],"sourcesContent":["import { FormInput } from \"@/connect\";\nimport { Icon } from \"@/powerhouse\";\nimport { ComponentPropsWithRef, ForwardedRef, forwardRef } from \"react\";\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"],"names":["DriveNameInput","forwardRef","props","ref","jsx","FormInput","Icon"],"mappings":";;;;AAWO,MAAMA,IAAiBC,EAAW,SACvCC,GACAC,GACA;AAEE,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,MAAMA,EAAM,QAAS,gBAAAE,EAAAE,GAAA,EAAK,MAAK,SAAQ;AAAA,MACvC,IAAG;AAAA,MACH,aAAY;AAAA,MACZ,KAAAH;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"drive-name.js","sources":["../../../../../src/connect/components/form/inputs/drive-name.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\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"],"names":["DriveName","props","jsxs","jsx","Icon"],"mappings":";;AAKO,SAASA,EAAUC,GAAuB;AAE7C,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,qEACb,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAK,EAAA,WAAU,iBAAgB,MAAK,SAAQ;AAAA,IAC5CH,EAAM;AAAA,EACT,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"drive-name.js","sources":["../../../../../src/connect/components/form/inputs/drive-name.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\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"],"names":["DriveName","props","jsxs","jsx","Icon"],"mappings":";;AAKO,SAASA,EAAUC,GAAuB;AAE7C,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,qEACb,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAK,EAAA,WAAU,iBAAgB,MAAK,SAAQ;AAAA,IAC5CH,EAAM;AAAA,EAAA,GACT;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sources":["../../../../../src/connect/components/form/inputs/label.tsx"],"sourcesContent":["import { 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(\"mb-3 block font-semibold text-gray-500\", className)}\n >\n {children}\n </label>\n );\n}\n"],"names":["Label","props","children","className","labelProps","jsx","twMerge"],"mappings":";;AAKO,SAASA,EAAMC,GAAmB;AACvC,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,MAAeH;AAE7C,SAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGD;AAAA,MACJ,WAAWE,EAAQ,0CAA0CH,CAAS;AAAA,MAErE,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"label.js","sources":["../../../../../src/connect/components/form/inputs/label.tsx"],"sourcesContent":["import { 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(\"mb-3 block font-semibold text-gray-500\", className)}\n >\n {children}\n </label>\n );\n}\n"],"names":["Label","props","children","className","labelProps","jsx","twMerge"],"mappings":";;AAKO,SAASA,EAAMC,GAAmB;AACvC,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAe,IAAAH;AAE7C,SAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGD;AAAA,MACJ,WAAWE,EAAQ,0CAA0CH,CAAS;AAAA,MAErE,UAAAD;AAAA,IAAA;AAAA,EACH;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"location-info.js","sources":["../../../../../src/connect/components/form/inputs/location-info.tsx"],"sourcesContent":["import { DriveLocation, locationInfoByLocation } from \"@/connect\";\nimport { DivProps } from \"@/powerhouse\";\nimport { twMerge } from \"tailwind-merge\";\n\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"],"names":["LocationInfo","props","location","className","divProps","locationInfo","locationInfoByLocation","jsxs","twMerge","jsx"],"mappings":";;;AAQO,SAASA,EAAaC,GAA0B;AACrD,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,MAAaH,GAEvCI,IAAeC,EAAuBJ,CAAQ;AAElD,SAAA,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWI;AAAA,QACT;AAAA,QACAL;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAaE,EAAA;AAAA,0BACb,OACC,EAAA,UAAA;AAAA,UAAC,gBAAAI,EAAA,KAAA,EAAG,YAAa,MAAM,CAAA;AAAA,UACtB,gBAAAA,EAAA,KAAA,EAAE,WAAU,0BAA0B,YAAa,aAAY;AAAA,QAAA,GAClE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"location-info.js","sources":["../../../../../src/connect/components/form/inputs/location-info.tsx"],"sourcesContent":["import { DriveLocation, locationInfoByLocation } from \"@/connect\";\nimport { DivProps } from \"@/powerhouse\";\nimport { twMerge } from \"tailwind-merge\";\n\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"],"names":["LocationInfo","props","location","className","divProps","locationInfo","locationInfoByLocation","jsxs","twMerge","jsx"],"mappings":";;;AAQO,SAASA,EAAaC,GAA0B;AACrD,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAa,IAAAH,GAEvCI,IAAeC,EAAuBJ,CAAQ;AAElD,SAAA,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWI;AAAA,QACT;AAAA,QACAL;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAaE,EAAA;AAAA,0BACb,OACC,EAAA,UAAA;AAAA,UAAC,gBAAAI,EAAA,KAAA,EAAG,YAAa,MAAM,CAAA;AAAA,UACtB,gBAAAA,EAAA,KAAA,EAAE,WAAU,0BAA0B,YAAa,YAAY,CAAA;AAAA,QAAA,EAClE,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sharing-type-form-input.js","sources":["../../../../../src/connect/components/form/inputs/sharing-type-form-input.tsx"],"sourcesContent":["import { Select, SharingType, sharingTypeOptions } from \"@/connect\";\nimport { ComponentPropsWithRef } from \"react\";\nimport { Control, Controller, Path } from \"react-hook-form\";\n\ntype SharingTypeFormInputProps<T extends { sharingType: SharingType }> = Omit<\n ComponentPropsWithRef<typeof Select>,\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 <Select\n {...delegatedProps}\n {...field}\n id=\"sharingType\"\n items={sharingTypeOptions}\n />\n )}\n />\n );\n}\n"],"names":["SharingTypeFormInput","props","control","delegatedProps","jsx","Controller","field","Select","sharingTypeOptions"],"mappings":";;;;AAUO,SAASA,EACdC,GACA;AACA,QAAM,EAAE,SAAAC,GAAS,GAAGC,EAAA,IAAmBF;AAGrC,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAH;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,OAAAI,EAAA,MACT,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGJ;AAAA,UACH,GAAGG;AAAA,UACJ,IAAG;AAAA,UACH,OAAOE;AAAA,QAAA;AAAA,MACT;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"sharing-type-form-input.js","sources":["../../../../../src/connect/components/form/inputs/sharing-type-form-input.tsx"],"sourcesContent":["import { Select, SharingType, sharingTypeOptions } from \"@/connect\";\nimport { ComponentPropsWithRef } from \"react\";\nimport { Control, Controller, Path } from \"react-hook-form\";\n\ntype SharingTypeFormInputProps<T extends { sharingType: SharingType }> = Omit<\n ComponentPropsWithRef<typeof Select>,\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 <Select\n {...delegatedProps}\n {...field}\n id=\"sharingType\"\n items={sharingTypeOptions}\n />\n )}\n />\n );\n}\n"],"names":["SharingTypeFormInput","props","control","delegatedProps","jsx","Controller","field","Select","sharingTypeOptions"],"mappings":";;;;AAUO,SAASA,EACdC,GACA;AACA,QAAM,EAAE,SAAAC,GAAS,GAAGC,EAAA,IAAmBF;AAGrC,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAH;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,OAAAI,EAAA,MACT,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGJ;AAAA,UACH,GAAGG;AAAA,UACJ,IAAG;AAAA,UACH,OAAOE;AAAA,QAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-input.js","sources":["../../../../src/connect/components/form-input/form-input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ForwardedRef, 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-xl border border-transparent bg-gray-100 p-3 text-gray-800 placeholder:text-gray-500\",\n isError && \"border-red-900\",\n containerClassName,\n )}\n >\n <span className={twJoin((!isDirty || isError) && \"text-slate-200\")}>\n {icon}\n </span>\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"],"names":["FormInput","forwardRef","props","ref","icon","errorMessage","isDirty","containerClassName","inputClassName","errorMessageClassName","hideErrors","delegatedProps","type","isError","jsxs","twMerge","jsx","twJoin"],"mappings":";;;AAeO,MAAMA,IAAYC,EAAW,SAClCC,GACAC,GACA;AACM,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,GAAGC;AAAA,EACD,IAAAT,GACEU,IAAOV,EAAM,QAAQ,QACrBW,IAAU,CAAC,CAACR;AAClB,2BACG,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC;AAAA,UACT;AAAA,UACAF,KAAW;AAAA,UACXN;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAC,gBAAAS,EAAA,QAAA,EAAK,WAAWC,GAAQ,CAACX,KAAWO,MAAY,gBAAgB,GAC9D,UACHT,EAAA,CAAA;AAAA,UACA,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAGL;AAAA,cACJ,WAAWI;AAAA,gBACT;AAAA,gBACAP;AAAA,cACF;AAAA,cACA,KAAAL;AAAA,cACA,MAAAS;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACAF,KAAW;AAAA,UACXH,KAAc;AAAA,UACdD;AAAA,QACF;AAAA,QAEC,UAAAJ;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"form-input.js","sources":["../../../../src/connect/components/form-input/form-input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ForwardedRef, 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-xl border border-transparent bg-gray-100 p-3 text-gray-800 placeholder:text-gray-500\",\n isError && \"border-red-900\",\n containerClassName,\n )}\n >\n <span className={twJoin((!isDirty || isError) && \"text-slate-200\")}>\n {icon}\n </span>\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"],"names":["FormInput","forwardRef","props","ref","icon","errorMessage","isDirty","containerClassName","inputClassName","errorMessageClassName","hideErrors","delegatedProps","type","isError","jsxs","twMerge","jsx","twJoin"],"mappings":";;;AAeO,MAAMA,IAAYC,EAAW,SAClCC,GACAC,GACA;AACM,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,GAAGC;AAAA,EAAA,IACDT,GACEU,IAAOV,EAAM,QAAQ,QACrBW,IAAU,CAAC,CAACR;AAClB,2BACG,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC;AAAA,UACT;AAAA,UACAF,KAAW;AAAA,UACXN;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAC,gBAAAS,EAAA,QAAA,EAAK,WAAWC,GAAQ,CAACX,KAAWO,MAAY,gBAAgB,GAC9D,UACHT,EAAA,CAAA;AAAA,UACA,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAGL;AAAA,cACJ,WAAWI;AAAA,gBACT;AAAA,gBACAP;AAAA,cACF;AAAA,cACA,KAAAL;AAAA,cACA,MAAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACAF,KAAW;AAAA,UACXH,KAAc;AAAA,UACdD;AAAA,QACF;AAAA,QAEC,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading-screen.js","sources":["../../../../src/connect/components/loading-screen/loading-screen.tsx"],"sourcesContent":["import { Size } from \"@/powerhouse\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { AnimatedLoader } from \"../animated-loader\";\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"],"names":["LoadingScreen","props","showLoadingScreen","loadingComponent","size","className","jsx","twMerge","AnimatedLoader"],"mappings":";;;AAYa,MAAAA,IAA8C,CAACC,MAAU;AACpE,QAAM,EAAE,mBAAAC,GAAmB,kBAAAC,GAAkB,MAAAC,GAAM,WAAAC,MAAcJ;AAEjE,SAAIE,KAAoBD,IACfC,IAIP,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA,CAACL,KAAqB;AAAA,QACtBG;AAAA,MACF;AAAA,MAEA,UAAA,gBAAAC,EAACE,KAAe,MAAAJ,EAAY,CAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;"}
1
+ {"version":3,"file":"loading-screen.js","sources":["../../../../src/connect/components/loading-screen/loading-screen.tsx"],"sourcesContent":["import { Size } from \"@/powerhouse\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { AnimatedLoader } from \"../animated-loader\";\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"],"names":["LoadingScreen","props","showLoadingScreen","loadingComponent","size","className","jsx","twMerge","AnimatedLoader"],"mappings":";;;AAYa,MAAAA,IAA8C,CAACC,MAAU;AACpE,QAAM,EAAE,mBAAAC,GAAmB,kBAAAC,GAAkB,MAAAC,GAAM,WAAAC,EAAc,IAAAJ;AAEjE,SAAIE,KAAoBD,IACfC,IAIP,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA,CAACL,KAAqB;AAAA,QACtBG;AAAA,MACF;AAAA,MAEA,UAAA,gBAAAC,EAACE,KAAe,MAAAJ,EAAY,CAAA;AAAA,IAAA;AAAA,EAC9B;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-local-drive-modal.js","sources":["../../../../src/connect/components/modal/add-local-drive-modal.tsx"],"sourcesContent":["import { AddLocalDriveForm, AddLocalDriveInput, Divider } from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\nexport type AddLocalDriveModal = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onSubmit: (data: AddLocalDriveInput) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n};\nexport function AddLocalDriveModal(props: AddLocalDriveModal) {\n const { open, onOpenChange, onSubmit, modalProps, containerProps } = 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 onCancel={handleCancel} onSubmit={onSubmit} />\n </div>\n </Modal>\n );\n}\n"],"names":["AddLocalDriveModal","props","open","onOpenChange","onSubmit","modalProps","containerProps","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","AddLocalDriveForm"],"mappings":";;;;;;AAaO,SAASA,EAAmBC,GAA2B;AAC5D,QAAM,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,GAAU,YAAAC,GAAY,gBAAAC,EAAmB,IAAAL;AACrE,WAASM,IAAe;AACtB,IAAAJ,EAAa,EAAK;AAAA,EACpB;AAEE,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGJ;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAF;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAQ;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGJ;AAAA,UACJ,WAAWK;AAAA,YACT;AAAA,YACAL,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAI,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAiB,qBAAA;AAAA,cACnD,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,IAAI;AAAA,gBAAA;AAAA,cACpC;AAAA,YAAA,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YACzB,gBAAAL,EAAAM,GAAA,EAAkB,UAAUP,GAAc,UAAAH,EAAoB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACjE;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"add-local-drive-modal.js","sources":["../../../../src/connect/components/modal/add-local-drive-modal.tsx"],"sourcesContent":["import { AddLocalDriveForm, AddLocalDriveInput, Divider } from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\nexport type AddLocalDriveModal = {\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onSubmit: (data: AddLocalDriveInput) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n};\nexport function AddLocalDriveModal(props: AddLocalDriveModal) {\n const { open, onOpenChange, onSubmit, modalProps, containerProps } = 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 onCancel={handleCancel} onSubmit={onSubmit} />\n </div>\n </Modal>\n );\n}\n"],"names":["AddLocalDriveModal","props","open","onOpenChange","onSubmit","modalProps","containerProps","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","AddLocalDriveForm"],"mappings":";;;;;;AAaO,SAASA,EAAmBC,GAA2B;AAC5D,QAAM,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,GAAU,YAAAC,GAAY,gBAAAC,MAAmBL;AACrE,WAASM,IAAe;AACtB,IAAAJ,EAAa,EAAK;AAAA,EAAA;AAGlB,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGJ;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAF;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAQ;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGJ;AAAA,UACJ,WAAWK;AAAA,YACT;AAAA,YACAL,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAI,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAiB,qBAAA;AAAA,cACnD,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,GAAI,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACpC,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YACzB,gBAAAL,EAAAM,GAAA,EAAkB,UAAUP,GAAc,UAAAH,EAAoB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjE;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-remote-drive-modal.js","sources":["../../../../src/connect/components/modal/add-remote-drive-modal.tsx"],"sourcesContent":["import {\n AddPublicDriveFormProps,\n AddRemoteDriveForm,\n AddRemoteDriveInput,\n Divider,\n SharingType,\n} from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\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"],"names":["AddRemoteDriveModal","props","open","onOpenChange","onSubmit","sharingType","modalProps","containerProps","requestPublicDrive","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","AddRemoteDriveForm"],"mappings":";;;;;;AAoBO,SAASA,EAAoBC,GAA4B;AACxD,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAP;AACJ,WAASQ,IAAe;AACtB,IAAAN,EAAa,EAAK;AAAA,EACpB;AAEE,SAAA,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGL;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAH;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAU;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGL;AAAA,UACJ,WAAWM;AAAA,YACT;AAAA,YACAN,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAK,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAS,aAAA;AAAA,cAC3C,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,IAAI;AAAA,gBAAA;AAAA,cACpC;AAAA,YAAA,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YAC1B,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,UAAUP;AAAA,gBACV,UAAAL;AAAA,gBACA,oBAAAI;AAAA,gBACA,aAAAH;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"add-remote-drive-modal.js","sources":["../../../../src/connect/components/modal/add-remote-drive-modal.tsx"],"sourcesContent":["import {\n AddPublicDriveFormProps,\n AddRemoteDriveForm,\n AddRemoteDriveInput,\n Divider,\n SharingType,\n} from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\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"],"names":["AddRemoteDriveModal","props","open","onOpenChange","onSubmit","sharingType","modalProps","containerProps","requestPublicDrive","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","AddRemoteDriveForm"],"mappings":";;;;;;AAoBO,SAASA,EAAoBC,GAA4B;AACxD,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEP;AACJ,WAASQ,IAAe;AACtB,IAAAN,EAAa,EAAK;AAAA,EAAA;AAGlB,SAAA,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGL;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAH;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAU;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGL;AAAA,UACJ,WAAWM;AAAA,YACT;AAAA,YACAN,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAK,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAS,aAAA;AAAA,cAC3C,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,GAAI,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACpC,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YAC1B,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,UAAUP;AAAA,gBACV,UAAAL;AAAA,gBACA,oBAAAI;AAAA,gBACA,aAAAH;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"confirmation-modal.js","sources":["../../../../src/connect/components/modal/confirmation-modal.tsx"],"sourcesContent":["import { DivProps, Modal, mergeClassNameProps } from \"@/powerhouse\";\nimport React, { 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 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 text-slate-200\",\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"],"names":["buttonStyles","ConnectConfirmationModal","props","body","header","children","onCancel","onOpenChange","onContinue","cancelLabel","continueLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","cancelButtonProps","continueButtonProps","buttonContainerProps","restProps","jsx","Modal","twMerge","jsxs","mergeClassNameProps"],"mappings":";;;;AAIA,MAAMA,IACJ;AAmBK,SAASC,EAAyBC,GAA+B;AAChE,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC,IAAY,CAAC;AAAA,IACb,aAAAC,IAAc,CAAC;AAAA,IACf,gBAAAC,IAAiB,CAAC;AAAA,IAClB,mBAAAC,IAAoB,CAAC;AAAA,IACrB,qBAAAC,IAAsB,CAAC;AAAA,IACvB,sBAAAC,IAAuB,CAAC;AAAA,IACxB,GAAGC;AAAA,EACD,IAAAjB;AAGF,SAAA,gBAAAkB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGT;AAAA,QACH,WAAWU,EAAQ,eAAeV,KAAA,gBAAAA,EAAc,SAAS;AAAA,MAC3D;AAAA,MACA,cAAAL;AAAA,MACA,cAAc;AAAA,QACZ,GAAGI;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGQ;AAAA,MAEJ,UAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGC,EAAoBT,GAAgB,8BAA8B;AAAA,UAEtE,UAAA;AAAA,YAAA,gBAAAK;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFV;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAAV;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAmB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGC;AAAA,kBACFX;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAA;AAAA,kBAAAV;AAAA,kBACAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAkB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGC;AAAA,kBACFN;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEA,UAAA;AAAA,kBAAA,gBAAAE;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,SAASd;AAAA,sBACR,GAAGkB;AAAA,wBACFR;AAAA,wBACAM,EAAQtB,GAAc,mCAAmC;AAAA,sBAC3D;AAAA,sBAEC,UAAAS;AAAA,oBAAA;AAAA,kBACH;AAAA,kBACA,gBAAAW;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,SAASZ;AAAA,sBACR,GAAGgB;AAAA,wBACFP;AAAA,wBACAK,EAAQtB,GAAc,iCAAiC;AAAA,sBACzD;AAAA,sBAEC,UAAAU;AAAA,oBAAA;AAAA,kBACH;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"confirmation-modal.js","sources":["../../../../src/connect/components/modal/confirmation-modal.tsx"],"sourcesContent":["import { DivProps, Modal, mergeClassNameProps } from \"@/powerhouse\";\nimport React, { 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 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 text-slate-200\",\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"],"names":["buttonStyles","ConnectConfirmationModal","props","body","header","children","onCancel","onOpenChange","onContinue","cancelLabel","continueLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","cancelButtonProps","continueButtonProps","buttonContainerProps","restProps","jsx","Modal","twMerge","jsxs","mergeClassNameProps"],"mappings":";;;;AAIA,MAAMA,IACJ;AAmBK,SAASC,EAAyBC,GAA+B;AAChE,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC,IAAY,CAAC;AAAA,IACb,aAAAC,IAAc,CAAC;AAAA,IACf,gBAAAC,IAAiB,CAAC;AAAA,IAClB,mBAAAC,IAAoB,CAAC;AAAA,IACrB,qBAAAC,IAAsB,CAAC;AAAA,IACvB,sBAAAC,IAAuB,CAAC;AAAA,IACxB,GAAGC;AAAA,EAAA,IACDjB;AAGF,SAAA,gBAAAkB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGT;AAAA,QACH,WAAWU,EAAQ,eAAeV,KAAA,gBAAAA,EAAc,SAAS;AAAA,MAC3D;AAAA,MACA,cAAAL;AAAA,MACA,cAAc;AAAA,QACZ,GAAGI;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGQ;AAAA,MAEJ,UAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGC,EAAoBT,GAAgB,8BAA8B;AAAA,UAEtE,UAAA;AAAA,YAAA,gBAAAK;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFV;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAAV;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAmB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGC;AAAA,kBACFX;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAA;AAAA,kBAAAV;AAAA,kBACAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAkB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGC;AAAA,kBACFN;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEA,UAAA;AAAA,kBAAA,gBAAAE;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,SAASd;AAAA,sBACR,GAAGkB;AAAA,wBACFR;AAAA,wBACAM,EAAQtB,GAAc,mCAAmC;AAAA,sBAC3D;AAAA,sBAEC,UAAAS;AAAA,oBAAA;AAAA,kBACH;AAAA,kBACA,gBAAAW;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,SAASZ;AAAA,sBACR,GAAGgB;AAAA,wBACFP;AAAA,wBACAK,EAAQtB,GAAc,iCAAiC;AAAA,sBACzD;AAAA,sBAEC,UAAAU;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1,55 +1,59 @@
1
- import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
- import { useState as u } from "react";
3
- import { twMerge as r } from "tailwind-merge";
4
- import { Modal as x } from "../../../powerhouse/components/modal/modal.js";
5
- import { FormInput as f } from "../form-input/form-input.js";
6
- import { Icon as b } from "../../../powerhouse/components/icon/icon.js";
7
- import { Button as N } from "../../../powerhouse/components/button/button.js";
8
- const s = "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";
9
- function k(m) {
10
- const { onOpenChange: t, onContinue: c, overlayProps: o, contentProps: a, ...i } = m, [l, d] = u("");
1
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
+ import { useState as N } from "react";
3
+ import { twMerge as n } from "tailwind-merge";
4
+ import { Modal as b } from "../../../powerhouse/components/modal/modal.js";
5
+ import { FormInput as h } from "../form-input/form-input.js";
6
+ import { Icon as C } from "../../../powerhouse/components/icon/icon.js";
7
+ import { Button as g } from "../../../powerhouse/components/button/button.js";
8
+ const m = "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", c = 300;
9
+ function k(i) {
10
+ const { onOpenChange: t, onContinue: d, overlayProps: o, contentProps: a, ...u } = i, [l, r] = N(""), p = () => {
11
+ t == null || t(!1), setTimeout(() => r(""), c);
12
+ }, x = () => {
13
+ d(l), setTimeout(() => r(""), c);
14
+ };
11
15
  return /* @__PURE__ */ e(
12
- x,
16
+ b,
13
17
  {
14
18
  contentProps: {
15
19
  ...a,
16
- className: r("rounded-3xl", a == null ? void 0 : a.className)
20
+ className: n("rounded-3xl", a == null ? void 0 : a.className)
17
21
  },
18
22
  onOpenChange: t,
19
23
  overlayProps: {
20
24
  ...o,
21
25
  className: o == null ? void 0 : o.className
22
26
  },
23
- ...i,
24
- children: /* @__PURE__ */ n("div", { className: "w-[400px] p-6 text-slate-300", children: [
27
+ ...u,
28
+ children: /* @__PURE__ */ s("div", { className: "w-[400px] p-6 text-slate-300", children: [
25
29
  /* @__PURE__ */ e("div", { className: "border-b border-slate-50 pb-2 text-2xl font-bold text-gray-800", children: "Create a new document" }),
26
30
  /* @__PURE__ */ e("div", { className: "my-6", children: /* @__PURE__ */ e(
27
- f,
31
+ h,
28
32
  {
29
- icon: /* @__PURE__ */ e(b, { name: "BrickGlobe" }),
30
- onChange: (p) => d(p.target.value),
33
+ icon: /* @__PURE__ */ e(C, { name: "BrickGlobe" }),
34
+ onChange: (f) => r(f.target.value),
31
35
  placeholder: "Document name",
32
36
  required: !0,
33
37
  value: l
34
38
  }
35
39
  ) }),
36
- /* @__PURE__ */ n("div", { className: "mt-8 flex justify-between gap-3", children: [
40
+ /* @__PURE__ */ s("div", { className: "mt-8 flex justify-between gap-3", children: [
37
41
  /* @__PURE__ */ e(
38
42
  "button",
39
43
  {
40
- className: r(
41
- s,
44
+ className: n(
45
+ m,
42
46
  "flex-1 bg-slate-50 text-slate-800"
43
47
  ),
44
- onClick: () => t == null ? void 0 : t(!1),
48
+ onClick: p,
45
49
  children: "Cancel"
46
50
  }
47
51
  ),
48
52
  /* @__PURE__ */ e(
49
- N,
53
+ g,
50
54
  {
51
- className: r(s, "flex-1 bg-gray-800 text-gray-50"),
52
- onClick: () => c(l),
55
+ className: n(m, "flex-1 bg-gray-800 text-gray-50"),
56
+ onClick: x,
53
57
  children: "Create"
54
58
  }
55
59
  )
@@ -1 +1 @@
1
- {"version":3,"file":"create-document-modal.js","sources":["../../../../src/connect/components/modal/create-document-modal.tsx"],"sourcesContent":["import { FormInput } from \"@/connect\";\nimport { Button, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef, 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\nexport type CreateDocumentModalProps = ComponentPropsWithoutRef<\n typeof Modal\n> & {\n readonly onContinue: (nodeName: string) => void;\n};\n\nexport function CreateDocumentModal(props: CreateDocumentModalProps) {\n const { onOpenChange, onContinue, overlayProps, contentProps, ...restProps } =\n props;\n\n const [nodeName, setNodeName] = useState(\"\");\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 Create a new document\n </div>\n <div className=\"my-6\">\n <FormInput\n icon={<Icon name=\"BrickGlobe\" />}\n onChange={(e) => setNodeName(e.target.value)}\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 className={twMerge(\n buttonStyles,\n \"flex-1 bg-slate-50 text-slate-800\",\n )}\n onClick={() => onOpenChange?.(false)}\n >\n Cancel\n </button>\n <Button\n className={twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\")}\n onClick={() => onContinue(nodeName)}\n >\n Create\n </Button>\n </div>\n </div>\n </Modal>\n );\n}\n"],"names":["buttonStyles","CreateDocumentModal","props","onOpenChange","onContinue","overlayProps","contentProps","restProps","nodeName","setNodeName","useState","jsx","Modal","twMerge","jsxs","FormInput","Icon","e","Button"],"mappings":";;;;;;;AAKA,MAAMA,IACJ;AAQK,SAASC,EAAoBC,GAAiC;AACnE,QAAM,EAAE,cAAAC,GAAc,YAAAC,GAAY,cAAAC,GAAc,cAAAC,GAAc,GAAGC,EAC/D,IAAAL,GAEI,CAACM,GAAUC,CAAW,IAAIC,EAAS,EAAE;AAGzC,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGN;AAAA,QACH,WAAWO,EAAQ,eAAeP,KAAA,gBAAAA,EAAc,SAAS;AAAA,MAC3D;AAAA,MACA,cAAAH;AAAA,MACA,cAAc;AAAA,QACZ,GAAGE;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGE;AAAA,MAEJ,UAAA,gBAAAO,EAAC,OAAI,EAAA,WAAU,gCACb,UAAA;AAAA,QAAC,gBAAAH,EAAA,OAAA,EAAI,WAAU,kEAAiE,UAEhF,yBAAA;AAAA,QACA,gBAAAA,EAAC,OAAI,EAAA,WAAU,QACb,UAAA,gBAAAA;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAM,gBAAAJ,EAACK,GAAK,EAAA,MAAK,aAAa,CAAA;AAAA,YAC9B,UAAU,CAACC,MAAMR,EAAYQ,EAAE,OAAO,KAAK;AAAA,YAC3C,aAAY;AAAA,YACZ,UAAQ;AAAA,YACR,OAAOT;AAAA,UAAA;AAAA,QAAA,GAEX;AAAA,QACA,gBAAAM,EAAC,OAAI,EAAA,WAAU,mCACb,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACTb;AAAA,gBACA;AAAA,cACF;AAAA,cACA,SAAS,MAAMG,KAAA,gBAAAA,EAAe;AAAA,cAC/B,UAAA;AAAA,YAAA;AAAA,UAED;AAAA,UACA,gBAAAQ;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAWL,EAAQb,GAAc,iCAAiC;AAAA,cAClE,SAAS,MAAMI,EAAWI,CAAQ;AAAA,cACnC,UAAA;AAAA,YAAA;AAAA,UAED;AAAA,QAAA,GACF;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"create-document-modal.js","sources":["../../../../src/connect/components/modal/create-document-modal.tsx"],"sourcesContent":["import { FormInput } from \"@/connect\";\nimport { Button, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef, 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\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\n const handleCancel = () => {\n onOpenChange?.(false);\n setTimeout(() => setNodeName(\"\"), CLOSE_ANIMATION_DURATION);\n };\n\n const handleCreate = () => {\n onContinue(nodeName);\n setTimeout(() => setNodeName(\"\"), CLOSE_ANIMATION_DURATION);\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 <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 Create a new document\n </div>\n <div className=\"my-6\">\n <FormInput\n icon={<Icon name=\"BrickGlobe\" />}\n onChange={(e) => setNodeName(e.target.value)}\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 className={twMerge(\n buttonStyles,\n \"flex-1 bg-slate-50 text-slate-800\",\n )}\n onClick={handleCancel}\n >\n Cancel\n </button>\n <Button\n className={twMerge(buttonStyles, \"flex-1 bg-gray-800 text-gray-50\")}\n onClick={handleCreate}\n >\n Create\n </Button>\n </div>\n </div>\n </Modal>\n );\n}\n"],"names":["buttonStyles","CLOSE_ANIMATION_DURATION","CreateDocumentModal","props","onOpenChange","onContinue","overlayProps","contentProps","restProps","nodeName","setNodeName","useState","handleCancel","handleCreate","jsx","Modal","twMerge","jsxs","FormInput","Icon","e","Button"],"mappings":";;;;;;;AAKA,MAAMA,IACJ,mJAQIC,IAA2B;AAE1B,SAASC,EAAoBC,GAAiC;AACnE,QAAM,EAAE,cAAAC,GAAc,YAAAC,GAAY,cAAAC,GAAc,cAAAC,GAAc,GAAGC,MAC/DL,GAEI,CAACM,GAAUC,CAAW,IAAIC,EAAS,EAAE,GAErCC,IAAe,MAAM;AACzB,IAAAR,KAAA,QAAAA,EAAe,KACf,WAAW,MAAMM,EAAY,EAAE,GAAGT,CAAwB;AAAA,EAC5D,GAEMY,IAAe,MAAM;AACzB,IAAAR,EAAWI,CAAQ,GACnB,WAAW,MAAMC,EAAY,EAAE,GAAGT,CAAwB;AAAA,EAC5D;AAGE,SAAA,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGR;AAAA,QACH,WAAWS,EAAQ,eAAeT,KAAA,gBAAAA,EAAc,SAAS;AAAA,MAC3D;AAAA,MACA,cAAAH;AAAA,MACA,cAAc;AAAA,QACZ,GAAGE;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGE;AAAA,MAEJ,UAAA,gBAAAS,EAAC,OAAI,EAAA,WAAU,gCACb,UAAA;AAAA,QAAC,gBAAAH,EAAA,OAAA,EAAI,WAAU,kEAAiE,UAEhF,yBAAA;AAAA,QACA,gBAAAA,EAAC,OAAI,EAAA,WAAU,QACb,UAAA,gBAAAA;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAM,gBAAAJ,EAACK,GAAK,EAAA,MAAK,aAAa,CAAA;AAAA,YAC9B,UAAU,CAACC,MAAMV,EAAYU,EAAE,OAAO,KAAK;AAAA,YAC3C,aAAY;AAAA,YACZ,UAAQ;AAAA,YACR,OAAOX;AAAA,UAAA;AAAA,QAAA,GAEX;AAAA,QACA,gBAAAQ,EAAC,OAAI,EAAA,WAAU,mCACb,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACThB;AAAA,gBACA;AAAA,cACF;AAAA,cACA,SAASY;AAAA,cACV,UAAA;AAAA,YAAA;AAAA,UAED;AAAA,UACA,gBAAAE;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAWL,EAAQhB,GAAc,iCAAiC;AAAA,cAClE,SAASa;AAAA,cACV,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EACF,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-drive-modal.js","sources":["../../../../src/connect/components/modal/delete-drive-modal.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport React, { useState } from \"react\";\nimport { FormInput } from \"../form-input\";\nimport {\n ConfirmationModalProps,\n ConnectConfirmationModal,\n} from \"./confirmation-modal\";\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 text-slate-200\">\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"],"names":["ConnectDeleteDriveModal","props","inputPlaceholder","body","driveName","confirmationModalProps","inputName","setInputName","useState","jsx","ConnectConfirmationModal","FormInput","Icon","e"],"mappings":";;;;;AAaa,MAAAA,IAAkE,CAC7EC,MACG;AACH,QAAM,EAAE,kBAAAC,GAAkB,MAAAC,GAAM,WAAAC,GAAW,GAAGC,EAC5C,IAAAJ,GAEI,CAACK,GAAWC,CAAY,IAAIC,EAAS,EAAE;AAG3C,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAW,EAAE,WAAW,oBAAoB;AAAA,MAC5C,gBAAgB,EAAE,WAAW,YAAY;AAAA,MACzC,qBAAqB;AAAA,QACnB,UAAUJ,MAAcF;AAAA,QACxB,WACEE,MAAcF,IACV,qEACA;AAAA,MACR;AAAA,MACC,GAAGC;AAAA,MAEJ,4BAAC,OACC,EAAA,UAAA;AAAA,QAAC,gBAAAI,EAAA,OAAA,EAAI,WAAU,8DACZ,UACHN,GAAA;AAAA,0BACC,OACC,EAAA,UAAA,gBAAAM;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,YAAU;AAAA,YACV,MAAM,gBAAAF,EAACG,GAAK,EAAA,MAAK,OAAO,CAAA;AAAA,YACxB,UAAU,CAACC,MAAMN,EAAaM,EAAE,OAAO,KAAK;AAAA,YAC5C,aAAaX;AAAA,YACb,OAAOI;AAAA,UAAA;AAAA,QAAA,GAEX;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"delete-drive-modal.js","sources":["../../../../src/connect/components/modal/delete-drive-modal.tsx"],"sourcesContent":["import { Icon } from \"@/powerhouse\";\nimport React, { useState } from \"react\";\nimport { FormInput } from \"../form-input\";\nimport {\n ConfirmationModalProps,\n ConnectConfirmationModal,\n} from \"./confirmation-modal\";\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 text-slate-200\">\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"],"names":["ConnectDeleteDriveModal","props","inputPlaceholder","body","driveName","confirmationModalProps","inputName","setInputName","useState","jsx","ConnectConfirmationModal","FormInput","Icon","e"],"mappings":";;;;;AAaa,MAAAA,IAAkE,CAC7EC,MACG;AACH,QAAM,EAAE,kBAAAC,GAAkB,MAAAC,GAAM,WAAAC,GAAW,GAAGC,EAC5C,IAAAJ,GAEI,CAACK,GAAWC,CAAY,IAAIC,EAAS,EAAE;AAG3C,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAW,EAAE,WAAW,oBAAoB;AAAA,MAC5C,gBAAgB,EAAE,WAAW,YAAY;AAAA,MACzC,qBAAqB;AAAA,QACnB,UAAUJ,MAAcF;AAAA,QACxB,WACEE,MAAcF,IACV,qEACA;AAAA,MACR;AAAA,MACC,GAAGC;AAAA,MAEJ,4BAAC,OACC,EAAA,UAAA;AAAA,QAAC,gBAAAI,EAAA,OAAA,EAAI,WAAU,8DACZ,UACHN,GAAA;AAAA,0BACC,OACC,EAAA,UAAA,gBAAAM;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,YAAU;AAAA,YACV,MAAM,gBAAAF,EAACG,GAAK,EAAA,MAAK,OAAO,CAAA;AAAA,YACxB,UAAU,CAACC,MAAMN,EAAaM,EAAE,OAAO,KAAK;AAAA,YAC5C,aAAaX;AAAA,YACb,OAAOI;AAAA,UAAA;AAAA,QAAA,EAEX,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-item-modal.js","sources":["../../../../src/connect/components/modal/delete-item-modal.tsx"],"sourcesContent":["import {\n ConfirmationModalProps,\n ConnectConfirmationModal,\n} from \"./confirmation-modal\";\n\nexport interface ConnectDeleteItemModalProps\n extends Omit<ConfirmationModalProps, \"onContinue\" | \"continueLabel\"> {\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"],"names":["ConnectDeleteItemModal","props","onDelete","deleteLabel","restProps","jsx","ConnectConfirmationModal"],"mappings":";;AAWO,SAASA,EAAuBC,GAAoC;AACzE,QAAM,EAAE,UAAAC,GAAU,aAAAC,GAAa,GAAGC,MAAcH;AAG9C,SAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,gBAAgB,EAAE,WAAW,YAAY;AAAA,MACzC,qBAAqB;AAAA,QACnB,WAAW;AAAA,MACb;AAAA,MACA,eAAeD;AAAA,MACf,YAAYD;AAAA,IAAA;AAAA,EAAA;AAGlB;"}
1
+ {"version":3,"file":"delete-item-modal.js","sources":["../../../../src/connect/components/modal/delete-item-modal.tsx"],"sourcesContent":["import {\n ConfirmationModalProps,\n ConnectConfirmationModal,\n} from \"./confirmation-modal\";\n\nexport interface ConnectDeleteItemModalProps\n extends Omit<ConfirmationModalProps, \"onContinue\" | \"continueLabel\"> {\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"],"names":["ConnectDeleteItemModal","props","onDelete","deleteLabel","restProps","jsx","ConnectConfirmationModal"],"mappings":";;AAWO,SAASA,EAAuBC,GAAoC;AACzE,QAAM,EAAE,UAAAC,GAAU,aAAAC,GAAa,GAAGC,EAAc,IAAAH;AAG9C,SAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,gBAAgB,EAAE,WAAW,YAAY;AAAA,MACzC,qBAAqB;AAAA,QACnB,WAAW;AAAA,MACb;AAAA,MACA,eAAeD;AAAA,MACf,YAAYD;AAAA,IAAA;AAAA,EACd;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"drive-settings-modal.js","sources":["../../../../src/connect/components/modal/drive-settings-modal.tsx"],"sourcesContent":["import {\n Divider,\n DriveSettingsForm,\n DriveSettingsFormSubmitHandler,\n SharingType,\n UiDriveNode,\n} from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\n\nexport type DriveSettingsModalProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onRenameDrive: (uiDriveNode: UiDriveNode, newName: string) => void;\n readonly onDeleteDrive: (uiDriveNode: UiDriveNode) => void;\n readonly onChangeSharingType: (\n uiDriveNode: UiDriveNode,\n newSharingType: SharingType,\n ) => void;\n readonly onChangeAvailableOffline: (\n uiDriveNode: UiDriveNode,\n newAvailableOffline: boolean,\n ) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n};\nexport function DriveSettingsModal(props: DriveSettingsModalProps) {\n const {\n uiDriveNode,\n open,\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 !== uiDriveNode.name) {\n onRenameDrive(uiDriveNode, data.name);\n }\n if (data.sharingType !== uiDriveNode.sharingType) {\n onChangeSharingType(uiDriveNode, data.sharingType);\n }\n if (data.availableOffline !== uiDriveNode.availableOffline) {\n onChangeAvailableOffline(uiDriveNode, data.availableOffline);\n }\n onOpenChange(false);\n };\n\n function handleDeleteDrive() {\n onDeleteDrive(uiDriveNode);\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 uiDriveNode={uiDriveNode}\n />\n </div>\n </Modal>\n );\n}\n"],"names":["DriveSettingsModal","props","uiDriveNode","open","onOpenChange","onDeleteDrive","onRenameDrive","onChangeSharingType","onChangeAvailableOffline","modalProps","containerProps","onSubmit","data","handleDeleteDrive","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","DriveSettingsForm"],"mappings":";;;;;;AA8BO,SAASA,EAAmBC,GAAgC;AAC3D,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EACE,IAAAT,GAEEU,IAA2C,CAACC,MAAS;AACrD,IAAAA,EAAK,SAASV,EAAY,QACdI,EAAAJ,GAAaU,EAAK,IAAI,GAElCA,EAAK,gBAAgBV,EAAY,eACfK,EAAAL,GAAaU,EAAK,WAAW,GAE/CA,EAAK,qBAAqBV,EAAY,oBACfM,EAAAN,GAAaU,EAAK,gBAAgB,GAE7DR,EAAa,EAAK;AAAA,EAAA;AAGpB,WAASS,IAAoB;AAC3B,IAAAR,EAAcH,CAAW,GACzBE,EAAa,EAAK;AAAA,EACpB;AAEA,WAASU,IAAe;AACtB,IAAAV,EAAa,EAAK;AAAA,EACpB;AAGE,SAAA,gBAAAW;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGP;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAL;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGP;AAAA,UACJ,WAAWQ;AAAA,YACT;AAAA,YACAR,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAO,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAc,kBAAA;AAAA,cAChD,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,IAAI;AAAA,gBAAA;AAAA,cACpC;AAAA,YAAA,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YAC1B,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,cAAAP;AAAA,gBACA,mBAAAD;AAAA,gBACA,UAAAF;AAAA,gBACA,aAAAT;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"drive-settings-modal.js","sources":["../../../../src/connect/components/modal/drive-settings-modal.tsx"],"sourcesContent":["import {\n Divider,\n DriveSettingsForm,\n DriveSettingsFormSubmitHandler,\n SharingType,\n UiDriveNode,\n} from \"@/connect\";\nimport { DivProps, Icon, Modal } from \"@/powerhouse\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype ModalProps = ComponentPropsWithoutRef<typeof Modal>;\n\nexport type DriveSettingsModalProps = {\n readonly uiDriveNode: UiDriveNode;\n readonly open: boolean;\n readonly onOpenChange: (open: boolean) => void;\n readonly onRenameDrive: (uiDriveNode: UiDriveNode, newName: string) => void;\n readonly onDeleteDrive: (uiDriveNode: UiDriveNode) => void;\n readonly onChangeSharingType: (\n uiDriveNode: UiDriveNode,\n newSharingType: SharingType,\n ) => void;\n readonly onChangeAvailableOffline: (\n uiDriveNode: UiDriveNode,\n newAvailableOffline: boolean,\n ) => void;\n readonly modalProps?: ModalProps;\n readonly containerProps?: DivProps;\n};\nexport function DriveSettingsModal(props: DriveSettingsModalProps) {\n const {\n uiDriveNode,\n open,\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 !== uiDriveNode.name) {\n onRenameDrive(uiDriveNode, data.name);\n }\n if (data.sharingType !== uiDriveNode.sharingType) {\n onChangeSharingType(uiDriveNode, data.sharingType);\n }\n if (data.availableOffline !== uiDriveNode.availableOffline) {\n onChangeAvailableOffline(uiDriveNode, data.availableOffline);\n }\n onOpenChange(false);\n };\n\n function handleDeleteDrive() {\n onDeleteDrive(uiDriveNode);\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 uiDriveNode={uiDriveNode}\n />\n </div>\n </Modal>\n );\n}\n"],"names":["DriveSettingsModal","props","uiDriveNode","open","onOpenChange","onDeleteDrive","onRenameDrive","onChangeSharingType","onChangeAvailableOffline","modalProps","containerProps","onSubmit","data","handleDeleteDrive","handleCancel","jsx","Modal","jsxs","twMerge","Icon","Divider","DriveSettingsForm"],"mappings":";;;;;;AA8BO,SAASA,EAAmBC,GAAgC;AAC3D,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACET,GAEEU,IAA2C,CAACC,MAAS;AACrD,IAAAA,EAAK,SAASV,EAAY,QACdI,EAAAJ,GAAaU,EAAK,IAAI,GAElCA,EAAK,gBAAgBV,EAAY,eACfK,EAAAL,GAAaU,EAAK,WAAW,GAE/CA,EAAK,qBAAqBV,EAAY,oBACfM,EAAAN,GAAaU,EAAK,gBAAgB,GAE7DR,EAAa,EAAK;AAAA,EACpB;AAEA,WAASS,IAAoB;AAC3B,IAAAR,EAAcH,CAAW,GACzBE,EAAa,EAAK;AAAA,EAAA;AAGpB,WAASU,IAAe;AACtB,IAAAV,EAAa,EAAK;AAAA,EAAA;AAIlB,SAAA,gBAAAW;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGP;AAAA,MACJ,cAAc;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,cAAAL;AAAA,MACA,MAAAD;AAAA,MAEA,UAAA,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGP;AAAA,UACJ,WAAWQ;AAAA,YACT;AAAA,YACAR,KAAA,gBAAAA,EAAgB;AAAA,UAClB;AAAA,UAEA,UAAA;AAAA,YAAC,gBAAAO,EAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,cAAC,gBAAAF,EAAA,MAAA,EAAG,WAAU,qBAAoB,UAAc,kBAAA;AAAA,cAChD,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAASD;AAAA,kBACT,UAAU;AAAA,kBAEV,UAAC,gBAAAC,EAAAI,GAAA,EAAK,MAAK,cAAa,MAAM,GAAI,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACpC,GACF;AAAA,YACA,gBAAAJ,EAACK,GAAQ,EAAA,WAAU,OAAO,CAAA;AAAA,YAC1B,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,cAAAP;AAAA,gBACA,mBAAAD;AAAA,gBACA,UAAAF;AAAA,gBACA,aAAAT;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-required-modal.js","sources":["../../../../src/connect/components/modal/read-required-modal.tsx"],"sourcesContent":["import { DivProps, Modal, mergeClassNameProps } from \"@/powerhouse\";\nimport React, {\n ComponentPropsWithoutRef,\n useEffect,\n useRef,\n useState,\n} 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 text-slate-200\",\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"],"names":["buttonStyles","ReadRequiredModal","props","body","header","children","onOpenChange","onContinue","closeLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","continueButtonProps","buttonContainerProps","restProps","disableClose","setDisableClose","useState","contentRef","useRef","useEffect","checkScroll","element","handleScroll","jsx","Modal","twMerge","jsxs","mergeClassNameProps"],"mappings":";;;;;AASA,MAAMA,IACJ;AAgBK,SAASC,EAAkBC,GAA+B;AACzD,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC,IAAY,CAAC;AAAA,IACb,aAAAC,IAAc,CAAC;AAAA,IACf,gBAAAC,IAAiB,CAAC;AAAA,IAClB,qBAAAC,IAAsB,CAAC;AAAA,IACvB,sBAAAC,IAAuB,CAAC;AAAA,IACxB,GAAGC;AAAA,EACD,IAAAd,GAEE,CAACe,GAAcC,CAAe,IAAIC,EAAS,EAAI,GAC/CC,IAAaC,EAAuB,IAAI;AAE9C,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAc,MAAM;AACxB,YAAMC,IAAUJ,EAAW;AAC3B,MAAII,MACEA,EAAQ,eAAeA,EAAQ,gBACjCN,EAAgB,EAAI,GACZM,EAAA,iBAAiB,UAAUC,CAAY,KAE/CP,EAAgB,EAAK;AAAA,IAEzB,GAGIO,IAAe,MAAM;AACzB,YAAMD,IAAUJ,EAAW;AAEzB,MAAAI,KACAA,EAAQ,eAAe,KAAK,KAAKA,EAAQ,SAAS,MAChDA,EAAQ,gBAEVN,EAAgB,EAAK;AAAA,IACvB;AAGF,iCAAsBK,CAAW,GAE1B,MAAM;AACX,YAAMC,IAAUJ,EAAW;AAE3B,MAAII,KACMA,EAAA,oBAAoB,UAAUC,CAAY;AAAA,IACpD;AAAA,EAEJ,GAAG,CAAE,CAAA,GAGH,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGjB;AAAA,QACH,WAAWkB,EAAQ,4BAA4BlB,KAAA,gBAAAA,EAAc,SAAS;AAAA,MACxE;AAAA,MACA,cAAAJ;AAAA,MACA,cAAc;AAAA,QACZ,GAAGG;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGO;AAAA,MAEJ,UAAA,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGC,EAAoBjB,GAAgB,8BAA8B;AAAA,UAEtE,UAAA;AAAA,YAAA,gBAAAa;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFlB;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAAR;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAyB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAKT;AAAA,gBACJ,GAAGU;AAAA,kBACFnB;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAA;AAAA,kBAAAR;AAAA,kBACAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAqB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFf;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEA,UAAA,gBAAAW;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAUT;AAAA,oBACV,SAASV;AAAA,oBACR,GAAGuB;AAAA,sBACFhB;AAAA,sBACAc;AAAA,wBACE5B;AAAA,wBACA;AAAA,wBACAiB,KACE;AAAA,sBACJ;AAAA,oBACF;AAAA,oBAEC,UAAAT;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"read-required-modal.js","sources":["../../../../src/connect/components/modal/read-required-modal.tsx"],"sourcesContent":["import { DivProps, Modal, mergeClassNameProps } from \"@/powerhouse\";\nimport React, {\n ComponentPropsWithoutRef,\n useEffect,\n useRef,\n useState,\n} 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 text-slate-200\",\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"],"names":["buttonStyles","ReadRequiredModal","props","body","header","children","onOpenChange","onContinue","closeLabel","overlayProps","contentProps","bodyProps","headerProps","containerProps","continueButtonProps","buttonContainerProps","restProps","disableClose","setDisableClose","useState","contentRef","useRef","useEffect","checkScroll","element","handleScroll","jsx","Modal","twMerge","jsxs","mergeClassNameProps"],"mappings":";;;;;AASA,MAAMA,IACJ;AAgBK,SAASC,EAAkBC,GAA+B;AACzD,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC,IAAY,CAAC;AAAA,IACb,aAAAC,IAAc,CAAC;AAAA,IACf,gBAAAC,IAAiB,CAAC;AAAA,IAClB,qBAAAC,IAAsB,CAAC;AAAA,IACvB,sBAAAC,IAAuB,CAAC;AAAA,IACxB,GAAGC;AAAA,EAAA,IACDd,GAEE,CAACe,GAAcC,CAAe,IAAIC,EAAS,EAAI,GAC/CC,IAAaC,EAAuB,IAAI;AAE9C,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAc,MAAM;AACxB,YAAMC,IAAUJ,EAAW;AAC3B,MAAII,MACEA,EAAQ,eAAeA,EAAQ,gBACjCN,EAAgB,EAAI,GACZM,EAAA,iBAAiB,UAAUC,CAAY,KAE/CP,EAAgB,EAAK;AAAA,IAG3B,GAEMO,IAAe,MAAM;AACzB,YAAMD,IAAUJ,EAAW;AAEzB,MAAAI,KACAA,EAAQ,eAAe,KAAK,KAAKA,EAAQ,SAAS,MAChDA,EAAQ,gBAEVN,EAAgB,EAAK;AAAA,IAEzB;AAEA,iCAAsBK,CAAW,GAE1B,MAAM;AACX,YAAMC,IAAUJ,EAAW;AAE3B,MAAII,KACMA,EAAA,oBAAoB,UAAUC,CAAY;AAAA,IAEtD;AAAA,EACF,GAAG,EAAE,GAGH,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAc;AAAA,QACZ,GAAGjB;AAAA,QACH,WAAWkB,EAAQ,4BAA4BlB,KAAA,gBAAAA,EAAc,SAAS;AAAA,MACxE;AAAA,MACA,cAAAJ;AAAA,MACA,cAAc;AAAA,QACZ,GAAGG;AAAA,QACH,WAAWA,KAAA,gBAAAA,EAAc;AAAA,MAC3B;AAAA,MACC,GAAGO;AAAA,MAEJ,UAAA,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGC,EAAoBjB,GAAgB,8BAA8B;AAAA,UAEtE,UAAA;AAAA,YAAA,gBAAAa;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFlB;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAAR;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAyB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAKT;AAAA,gBACJ,GAAGU;AAAA,kBACFnB;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEC,UAAA;AAAA,kBAAAR;AAAA,kBACAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,YACA,gBAAAqB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGI;AAAA,kBACFf;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEA,UAAA,gBAAAW;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAUT;AAAA,oBACV,SAASV;AAAA,oBACR,GAAGuB;AAAA,sBACFhB;AAAA,sBACAc;AAAA,wBACE5B;AAAA,wBACA;AAAA,wBACAiB,KACE;AAAA,sBAAA;AAAA,oBAEN;AAAA,oBAEC,UAAAT;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"clear-storage-row.js","sources":["../../../../../src/connect/components/modal/settings-modal/clear-storage-row.tsx"],"sourcesContent":["import { Button, Icon } from \"@/powerhouse\";\nimport { SettingsRow, SettingsRowProps } from \"./row\";\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 <Button\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 </Button>\n </SettingsRow>\n );\n};\n"],"names":["ClearStorageSettingsRow","props","onClearStorage","buttonLabel","restProps","jsx","SettingsRow","Button","Icon"],"mappings":";;;;AAQa,MAAAA,IAAkE,CAC7EC,MACG;AACH,QAAM,EAAE,gBAAAC,GAAgB,aAAAC,GAAa,GAAGC,MAAcH;AAGpD,SAAA,gBAAAI,EAACC,GAAa,EAAA,GAAGF,GACf,UAAA,gBAAAC;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAO,gBAAAF,EAAAG,GAAA,EAAK,MAAK,SAAQ,MAAM,IAAI;AAAA,MACnC,cAAa;AAAA,MACb,SAASN;AAAA,MAER,UAAAC;AAAA,IAAA;AAAA,EAEL,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"clear-storage-row.js","sources":["../../../../../src/connect/components/modal/settings-modal/clear-storage-row.tsx"],"sourcesContent":["import { Button, Icon } from \"@/powerhouse\";\nimport { SettingsRow, SettingsRowProps } from \"./row\";\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 <Button\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 </Button>\n </SettingsRow>\n );\n};\n"],"names":["ClearStorageSettingsRow","props","onClearStorage","buttonLabel","restProps","jsx","SettingsRow","Button","Icon"],"mappings":";;;;AAQa,MAAAA,IAAkE,CAC7EC,MACG;AACH,QAAM,EAAE,gBAAAC,GAAgB,aAAAC,GAAa,GAAGC,EAAc,IAAAH;AAGpD,SAAA,gBAAAI,EAACC,GAAa,EAAA,GAAGF,GACf,UAAA,gBAAAC;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAO,gBAAAF,EAAAG,GAAA,EAAK,MAAK,SAAQ,MAAM,IAAI;AAAA,MACnC,cAAa;AAAA,MACb,SAASN;AAAA,MAER,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}