@fernir2/saas-kit-cli 0.1.4 → 0.1.6
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.
- package/package.json +211 -7
- package/cli/.gitlab-ci.yml +0 -14
- package/cli/.husky/commit-msg +0 -1
- package/cli/.husky/pre-commit +0 -1
- package/cli/README.md +0 -101
- package/cli/bin/index.ts +0 -358
- package/cli/drizzle.config.ts +0 -12
- package/cli/global-setup.ts +0 -25
- package/cli/npm-commands/gen-meta/index.ts +0 -3
- package/cli/npm-commands/gen-schema/index.ts +0 -5
- package/cli/npm-commands/migrate-db/index.ts +0 -5
- package/cli/npm-commands/migrate-db/migrate-db.ts +0 -15
- package/cli/npm-commands/seed-db/index.ts +0 -5
- package/cli/npm-commands/seed-db/seed-db.ts +0 -15
- package/cli/playwright.config.ts +0 -34
- package/cli/postcss.config.mjs +0 -9
- package/cli/server.ts +0 -41
- package/cli/src/app/api/v1/[resourceName]/[id]/route.ts/route.ts +0 -11
- package/cli/src/app/api/v1/[resourceName]/route.ts/route.ts +0 -14
- package/cli/src/app/api/v1/[resourceName]/upsert/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/log/route.ts/route.ts +0 -7
- package/cli/src/app/api/v1/otheruser/[id]/route.ts/route.ts +0 -14
- package/cli/src/app/api/v1/otheruser/route.ts/route.ts +0 -7
- package/cli/src/app/api/v1/password/forgotpassword/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/password/resetpassword/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/method/route.ts/route.ts +0 -4
- package/cli/src/app/api/v1/payment/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/verify-fail/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/payment/verify-success/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/preload/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/searchable-resources/route.ts/route.ts +0 -11
- package/cli/src/app/api/v1/searchresult/route.ts/route.ts +0 -35
- package/cli/src/app/api/v1/sign-in/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/sign-out/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/sign-up/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/cancel/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/create/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/subscription/update/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/uimeta/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/uimetas/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/userpermission/route.ts/route.ts +0 -3
- package/cli/src/app/api/v1/visible-workspace/route.ts/route.ts +0 -5
- package/cli/src/app/api/v1/workspace/change/route.ts/route.ts +0 -5
- package/cli/src/app/favicon.ico +0 -0
- package/cli/src/app/layout.tsx +0 -42
- package/cli/src/app/page.tsx +0 -9
- package/cli/tailwind.config.ts +0 -13
- package/packages/base-repo/tools/git/commit-msg-script.ts +0 -42
- package/packages/base-repo/tools/git/pre-commit-script.ts +0 -431
- package/packages/level2/client/components/error-fallback/FdErrorFallback.jsx +0 -14
- package/packages/level2/client/components/feed/FdFeed.funcs.jsx +0 -65
- package/packages/level2/client/components/feed/FdFeed.jsx +0 -34
- package/packages/level2/client/components/feed/FdFeedActions.jsx +0 -15
- package/packages/level2/client/components/feed/FdFeedComments.jsx +0 -6
- package/packages/level2/client/components/feed/FdFeedEntry.jsx +0 -36
- package/packages/level2/client/components/feed/FdFeedHeader.jsx +0 -23
- package/packages/level2/client/components/feed/FdFeedReactionsSummary.jsx +0 -16
- package/packages/level2/client/components/providers/FdProviders.jsx +0 -28
- package/packages/level2/client/components/subscription-plan/FdSubscriptionPlan.jsx +0 -163
- package/packages/level2/client/components/wizard/FdWizard.jsx +0 -45
- package/packages/level2/client/components/wizard/FdWizardStepper.jsx +0 -55
- package/packages/level2/client/pages/dashboard-page/DashbordPage.jsx +0 -46
- package/packages/level2/client/pages/dynamic-layout-page/DynamicLayoutPage.jsx +0 -22
- package/packages/level2/client/pages/edit-password-page/EditPasswordPage.jsx +0 -8
- package/packages/level2/client/pages/edit-user-by-id-page/EditUserByIdPage.jsx +0 -14
- package/packages/level2/client/pages/edit-user-page/EditUserPage.jsx +0 -6
- package/packages/level2/client/pages/feed-page/FeedPage.jsx +0 -8
- package/packages/level2/client/pages/file-upload-page/FileUploadPage.jsx +0 -7
- package/packages/level2/client/pages/forgot-password-page/ForgotPasswordPage.jsx +0 -8
- package/packages/level2/client/pages/leads-viw-page/LeadsViewPage.jsx +0 -6
- package/packages/level2/client/pages/microsoft-page/MicrosoftPage.jsx +0 -16
- package/packages/level2/client/pages/payment-plan-page/PaymentPlanPage.jsx +0 -18
- package/packages/level2/client/pages/preload-page/PreloadPage.jsx +0 -25
- package/packages/level2/client/pages/reset-password-page/ResetPasswordPage.jsx +0 -8
- package/packages/level2/client/pages/screenshot-page/TestScreenshotPage.jsx +0 -23
- package/packages/level2/client/pages/sign-in-page/SignInPage.jsx +0 -24
- package/packages/level2/client/pages/sign-up-page/SignUpPage.jsx +0 -9
- package/packages/level2/client/pages/status-board-page/StatusBoardPage.jsx +0 -6
- package/packages/level2/client/pages/test-layout/TestLayout.jsx +0 -11
- package/packages/level2/client/pages/test-page/TestPage.jsx +0 -12
- package/packages/level2/client/pages/user-list-page/UserListPage.jsx +0 -4
- package/packages/level2/client/pages/view-page/ViewPage.jsx +0 -21
- package/packages/level2/client/payments/change-payment-method-field/ChangePaymentMethodField.jsx +0 -48
- package/packages/level2/client/payments/checkout-form/CheckoutForm.jsx +0 -95
- package/packages/level2/client/payments/checkout-form/CheckoutFormSubmit.jsx +0 -11
- package/packages/level2/client/payments/checkout-form/checkout-form-fields.jsx +0 -68
- package/packages/level2/client/website-scan/FdWebsiteScanResult.funcs.jsx +0 -12
- package/packages/level2/client/website-scan/FdWebsiteScanResult.jsx +0 -33
- package/packages/level2/client/website-scan/website-scan-data.jsx +0 -28
- package/packages/level2/client/website-scan/website-scan-icons/FacebookIcon.jsx +0 -6
- package/packages/level2/client/website-scan/website-scan-icons/FacebookPixelIcon.jsx +0 -49
- package/packages/level2/client/website-scan/website-scan-icons/GoogleAnalyticsIcon.jsx +0 -7
- package/packages/level2/client/website-scan/website-scan-icons/InstagramIcon.jsx +0 -32
- package/packages/level2/client/website-scan/website-scan-icons/LinkedinIcon.jsx +0 -6
- package/packages/level2/client/website-scan/website-scan-icons/OtherPlatformIcon.jsx +0 -110
- package/packages/level2/client/website-scan/website-scan-icons/ShopifyIcon.jsx +0 -46
- package/packages/level2/client/website-scan/website-scan-icons/SquarespaceIcon.jsx +0 -57
- package/packages/level2/client/website-scan/website-scan-icons/TiktokIcon.jsx +0 -15
- package/packages/level2/client/website-scan/website-scan-icons/WixIcon.jsx +0 -62
- package/packages/level2/client/website-scan/website-scan-icons/WordpressIcon.jsx +0 -53
- package/packages/level2/client/website-scan/website-scan-icons/XIcon.jsx +0 -6
- package/packages/level2/fd-app-toolbox/edit-other-user/EditOtherUser.jsx +0 -7
- package/packages/level2/fd-app-toolbox/edit-password-form/EditPasswordForm.jsx +0 -68
- package/packages/level2/fd-app-toolbox/edit-user-form/EditUserForm.jsx +0 -122
- package/packages/level2/fd-app-toolbox/edit-user-sheet/EditUserSheet.jsx +0 -35
- package/packages/level2/fd-app-toolbox/forgot-password-form/ForgotPasswordForm.jsx +0 -87
- package/packages/level2/fd-app-toolbox/layout/client-layout/ClientLayout.jsx +0 -19
- package/packages/level2/fd-app-toolbox/layout/client-root/ClientRoot.jsx +0 -32
- package/packages/level2/fd-app-toolbox/layout/hamburger-menu/FdHamburgerMenu.jsx +0 -47
- package/packages/level2/fd-app-toolbox/layout/navbar/FdNarrowNavbar.jsx +0 -40
- package/packages/level2/fd-app-toolbox/layout/sidebar/FdSidebar.jsx +0 -48
- package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdDropdownMenuItemTitle.jsx +0 -12
- package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdSidebarDropdownMenu.jsx +0 -81
- package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-resources-provider.jsx +0 -30
- package/packages/level2/fd-app-toolbox/layout/toolbar/FdToolbar.jsx +0 -89
- package/packages/level2/fd-app-toolbox/layout/toolbar/FdTopNav.jsx +0 -42
- package/packages/level2/fd-app-toolbox/layout/toolbar/title-provider/ToolbarTitleProvider.jsx +0 -10
- package/packages/level2/fd-app-toolbox/login-form/LoginForm.jsx +0 -165
- package/packages/level2/fd-app-toolbox/menu/notifications-menu/FdNotificationMenu.jsx +0 -43
- package/packages/level2/fd-app-toolbox/menu/notifications-menu/notification-list/FdNotificationList.jsx +0 -53
- package/packages/level2/fd-app-toolbox/menu/top-menu/FdTopMenu.jsx +0 -28
- package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-group/FdTopMenuGroup.jsx +0 -35
- package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-item/FdTopMenuItem.jsx +0 -47
- package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/FdUserDropdownMenu.jsx +0 -122
- package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/user-dropdown-menu-item/FdUserDropdownMenuItem.jsx +0 -56
- package/packages/level2/fd-app-toolbox/menu/visible-workspace-picker/FdVisibleWorkspacePicker.jsx +0 -36
- package/packages/level2/fd-app-toolbox/menu/workspace-picker/FdWorkspacePicker.jsx +0 -47
- package/packages/level2/fd-app-toolbox/providers/ThemeProvider/ThemeProvider.jsx +0 -27
- package/packages/level2/fd-app-toolbox/providers/auth-provider/AuthProvider.jsx +0 -38
- package/packages/level2/fd-app-toolbox/providers/sidebar-provider/FdSidebarContext.jsx +0 -17
- package/packages/level2/fd-app-toolbox/register-form/RegisterForm.jsx +0 -119
- package/packages/level2/fd-app-toolbox/report/FdChart.jsx +0 -120
- package/packages/level2/fd-app-toolbox/report/ReportChart.jsx +0 -29
- package/packages/level2/fd-app-toolbox/reset-password-form/ResetPasswordForm.jsx +0 -81
- package/packages/level2/fd-app-toolbox/search/FdSearch.jsx +0 -56
- package/packages/level2/fd-app-toolbox/search/search-dialog/FdSearchDialog.jsx +0 -72
- package/packages/level2/fd-app-toolbox/search/search-dialog-provider.jsx +0 -16
- package/packages/level2/fd-app-toolbox/search/search-input/FdSearchInput.jsx +0 -49
- package/packages/level2/fd-app-toolbox/search/search-resource-results/FdSearchResourcesResults.jsx +0 -36
- package/packages/level2/fd-app-toolbox/search/search-result/FdSearchResult.jsx +0 -46
- package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResult.jsx +0 -43
- package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResults.jsx +0 -22
- package/packages/level2/fd-app-toolbox/server/layout/private-layout/PrivateLayout.jsx +0 -32
- package/packages/level2/fd-app-toolbox/status-board/FdStatusBoard.jsx +0 -49
- package/packages/level2/fd-app-toolbox/status-board/status-board-item/FdStatusBoardItem.jsx +0 -17
- package/packages/level2/fd-app-toolbox/status-board/status-board-status/FdStatusBoardStatus.jsx +0 -27
- package/packages/level2/fd-app-toolbox/user-list/UserList.jsx +0 -58
- package/packages/level2/fd-component-toolbox/animation/FdLabelAnimation.jsx +0 -55
- package/packages/level2/fd-component-toolbox/avatar/FdAvatar.jsx +0 -50
- package/packages/level2/fd-component-toolbox/back-button/FdBackButton.jsx +0 -21
- package/packages/level2/fd-component-toolbox/badge/FdBadge.jsx +0 -19
- package/packages/level2/fd-component-toolbox/badge-toggle-list/FdBadgeToggleList.jsx +0 -47
- package/packages/level2/fd-component-toolbox/button/FdButton.jsx +0 -64
- package/packages/level2/fd-component-toolbox/calendar/FdCalendar.jsx +0 -68
- package/packages/level2/fd-component-toolbox/card/FdCard.jsx +0 -56
- package/packages/level2/fd-component-toolbox/card/FdCardBigDigits.jsx +0 -25
- package/packages/level2/fd-component-toolbox/chart/FdChart.jsx +0 -269
- package/packages/level2/fd-component-toolbox/checkbox/FdCheckbox.jsx +0 -39
- package/packages/level2/fd-component-toolbox/command/FdCommand.jsx +0 -123
- package/packages/level2/fd-component-toolbox/datepicker/FdDatePicker.jsx +0 -155
- package/packages/level2/fd-component-toolbox/dialog/FdDialog.jsx +0 -106
- package/packages/level2/fd-component-toolbox/dialog/YesOrNoDialog.jsx +0 -57
- package/packages/level2/fd-component-toolbox/drag-and-drop/FdDragDropContext.jsx +0 -19
- package/packages/level2/fd-component-toolbox/drag-and-drop/FdDraggable.jsx +0 -27
- package/packages/level2/fd-component-toolbox/drag-and-drop/FdDroppable.jsx +0 -22
- package/packages/level2/fd-component-toolbox/dropdown-menu/FdDropdownMenu.jsx +0 -198
- package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicComponent.jsx +0 -27
- package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicLayoutDragAndDrop.jsx +0 -78
- package/packages/level2/fd-component-toolbox/fade-out-text/FdFadeOutText.jsx +0 -52
- package/packages/level2/fd-component-toolbox/form/FdForm.jsx +0 -146
- package/packages/level2/fd-component-toolbox/icon/FdIcon.jsx +0 -192
- package/packages/level2/fd-component-toolbox/icon/custom-icons/FdFilterIcon.jsx +0 -11
- package/packages/level2/fd-component-toolbox/image/FdImage.jsx +0 -15
- package/packages/level2/fd-component-toolbox/input/FdInput.jsx +0 -94
- package/packages/level2/fd-component-toolbox/label/FdLabel.jsx +0 -19
- package/packages/level2/fd-component-toolbox/link/FdLink.jsx +0 -23
- package/packages/level2/fd-component-toolbox/list/FdList.jsx +0 -20
- package/packages/level2/fd-component-toolbox/list/list-item/FdListItem.jsx +0 -46
- package/packages/level2/fd-component-toolbox/loading/FdLoadingIndicator.jsx +0 -7
- package/packages/level2/fd-component-toolbox/logos/FacebookLogo.jsx +0 -11
- package/packages/level2/fd-component-toolbox/logos/GoogleLogo.jsx +0 -12
- package/packages/level2/fd-component-toolbox/logos/MicrosoftLogo.jsx +0 -11
- package/packages/level2/fd-component-toolbox/markdown/FdMarkdown.jsx +0 -105
- package/packages/level2/fd-component-toolbox/markdown/markdown-parser.jsx +0 -72
- package/packages/level2/fd-component-toolbox/multiselect/FdMultiselect.jsx +0 -240
- package/packages/level2/fd-component-toolbox/navigation/FdNavigation.jsx +0 -43
- package/packages/level2/fd-component-toolbox/navigation/navigation-item/FdNavigationItem.jsx +0 -23
- package/packages/level2/fd-component-toolbox/radio-group/FdRadioGroup.jsx +0 -46
- package/packages/level2/fd-component-toolbox/rich-text/FdRichText.jsx +0 -58
- package/packages/level2/fd-component-toolbox/save-status/FdSaveStatus.jsx +0 -40
- package/packages/level2/fd-component-toolbox/select/FdSelect.jsx +0 -173
- package/packages/level2/fd-component-toolbox/separator/FdSeparator.jsx +0 -19
- package/packages/level2/fd-component-toolbox/sheet/FdSheet.jsx +0 -121
- package/packages/level2/fd-component-toolbox/slide-toggle/FdSlideToggle.jsx +0 -57
- package/packages/level2/fd-component-toolbox/spinner/Spinner.jsx +0 -36
- package/packages/level2/fd-component-toolbox/subheading/FdSubHeading.jsx +0 -12
- package/packages/level2/fd-component-toolbox/switch/FdSwitch.jsx +0 -55
- package/packages/level2/fd-component-toolbox/tabs/FdTabs.jsx +0 -53
- package/packages/level2/fd-component-toolbox/textarea/FdTextArea.jsx +0 -42
- package/packages/level2/fd-component-toolbox/toaster/FdToaster.jsx +0 -20
- package/packages/level2/fd-component-toolbox/tooltip/FdTooltip.jsx +0 -80
- package/packages/level2/meta/browsers/base-multi-browser/FdBaseMultiBrowser.jsx +0 -72
- package/packages/level2/meta/browsers/base-multi-browser/base-multi-browser-dialog/FdBaseMultiBrowserDialog.jsx +0 -159
- package/packages/level2/meta/browsers/browser/FdBrowser.jsx +0 -58
- package/packages/level2/meta/browsers/browser/browser-dialog/FdBrowserDialog.jsx +0 -89
- package/packages/level2/meta/browsers/many-to-many-browser/FdManyToManyBrowser.jsx +0 -33
- package/packages/level2/meta/browsers/multi-browser/FdMultiBrowser.jsx +0 -32
- package/packages/level2/meta/card-list/FdCardList.jsx +0 -40
- package/packages/level2/meta/card-list/card/FdCard.jsx +0 -44
- package/packages/level2/meta/card-list/card/action-block/FdCardActionBlock.jsx +0 -70
- package/packages/level2/meta/card-list/card/content-block/FdCardContentBlock.jsx +0 -64
- package/packages/level2/meta/card-list/card/image-block/FdCardImage.jsx +0 -10
- package/packages/level2/meta/client/framework/hooks.jsx +0 -39
- package/packages/level2/meta/comment/FdComment.jsx +0 -16
- package/packages/level2/meta/comment/FdCommentList.jsx +0 -32
- package/packages/level2/meta/components/edit-image/FdEditImage.jsx +0 -42
- package/packages/level2/meta/components/edit-image/FdEditImageActionMenu.jsx +0 -31
- package/packages/level2/meta/components/edit-image/FdEditImageDropdownMenu.jsx +0 -42
- package/packages/level2/meta/components/file-upload/FileUpload.jsx +0 -103
- package/packages/level2/meta/components/file-upload/PreviewMedia.jsx +0 -36
- package/packages/level2/meta/components/multi-list/FdMultiList.jsx +0 -65
- package/packages/level2/meta/components/multi-list/FdMultiListEditResource.jsx +0 -31
- package/packages/level2/meta/edit-resource/FdEditResource.jsx +0 -135
- package/packages/level2/meta/edit-resource/FdEditResourceFormBody.jsx +0 -8
- package/packages/level2/meta/edit-resource/FdEditResourceHeader.jsx +0 -43
- package/packages/level2/meta/edit-resource/FdEditResourceSheet.jsx +0 -70
- package/packages/level2/meta/edit-resource/SaveCompleteProvider.jsx +0 -16
- package/packages/level2/meta/edit-resource/edit-link/FdEditLink.jsx +0 -48
- package/packages/level2/meta/edit-resource/edit-link/FdEditLinkResource.jsx +0 -18
- package/packages/level2/meta/edit-resource/edit-resource-dialog/FdEditResourceDialog.jsx +0 -34
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceBlobField.jsx +0 -15
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceEnumField.jsx +0 -35
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceFlagsEnumField.jsx +0 -23
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceImageField.jsx +0 -7
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourcePropertyBlock.jsx +0 -38
- package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceRichTextField.jsx +0 -16
- package/packages/level2/meta/edit-resource/edit-resource-property-block/edit-resource-fields.jsx +0 -53
- package/packages/level2/meta/edit-resource/edit-resource-property-field/FdEditResourcePropertyField.jsx +0 -105
- package/packages/level2/meta/filtering/filter/FdEnumFlagFilter.jsx +0 -40
- package/packages/level2/meta/filtering/filter/FdFilter.jsx +0 -123
- package/packages/level2/meta/filtering/filter/filters/BooleanFilter.jsx +0 -25
- package/packages/level2/meta/filtering/filter/filters/DateFilter.jsx +0 -10
- package/packages/level2/meta/filtering/filter/filters/EnumFilter.jsx +0 -44
- package/packages/level2/meta/filtering/filter/filters/GuidFilter.jsx +0 -28
- package/packages/level2/meta/filtering/filter/filters/IntegerFilter.jsx +0 -28
- package/packages/level2/meta/filtering/filter/filters/TextFilter.jsx +0 -11
- package/packages/level2/meta/filtering/resource-filter-list/FdResourceFilterList.jsx +0 -120
- package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.funcs.jsx +0 -4
- package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.jsx +0 -43
- package/packages/level2/meta/providers/global-provider/FdGlobalContext.jsx +0 -17
- package/packages/level2/meta/resource-list/ResourceList.jsx +0 -63
- package/packages/level2/meta/resource-list/resource-add-button.jsx +0 -11
- package/packages/level2/meta/resource-list/resource-list-card/FdResourceListCard.jsx +0 -7
- package/packages/level2/meta/resource-list/resource-list-filter/FdResourceListFilter.jsx +0 -11
- package/packages/level2/meta/resource-list/resource-table-list/FdResourceTableList.jsx +0 -14
- package/packages/level2/meta/table/FdTable.jsx +0 -147
- package/packages/level2/meta/table/body/FdTableBody.jsx +0 -9
- package/packages/level2/meta/table/body-cell/FdActionBodyCell.jsx +0 -145
- package/packages/level2/meta/table/body-cell/FdBlobBodyCell.jsx +0 -27
- package/packages/level2/meta/table/body-cell/FdBodyCell.jsx +0 -133
- package/packages/level2/meta/table/body-cell/FdBodyCellValue.jsx +0 -59
- package/packages/level2/meta/table/body-cell/FdBodyExpandCell.jsx +0 -6
- package/packages/level2/meta/table/body-cell/FdBodyExpandPropertyCell.jsx +0 -22
- package/packages/level2/meta/table/body-cell/FdCustomActionLink.jsx +0 -16
- package/packages/level2/meta/table/body-cell/FdMultiselectCellTemplate.jsx +0 -39
- package/packages/level2/meta/table/body-cell/FdViewCell.jsx +0 -12
- package/packages/level2/meta/table/body-row/FdTableBodyRow.jsx +0 -49
- package/packages/level2/meta/table/header/FdTableHeader.jsx +0 -54
- package/packages/level2/meta/table/header-cell/FdResizable.jsx +0 -18
- package/packages/level2/meta/table/header-cell/FdResizableEdgeHandle.jsx +0 -4
- package/packages/level2/meta/table/header-cell/FdTableHeaderActionCell.jsx +0 -49
- package/packages/level2/meta/table/header-cell/FdTableHeaderCell.jsx +0 -89
- package/packages/level2/meta/table/header-cell/FdTableHeaderCellActionButton.jsx +0 -23
- package/packages/level2/meta/table/pager/FdPager.jsx +0 -72
- package/packages/level2/meta/table/table-custom-action/TableCustomAction.jsx +0 -26
- package/packages/level2/meta/view/FdView.jsx +0 -31
- package/packages/level2/meta/view/FdViewSheet.jsx +0 -103
- package/packages/level2/meta/view/view-resource/FdViewResource.jsx +0 -108
- package/packages/level2/meta/view/view-resource/templates/ManyToOneTableHeaderCellTemplate.jsx +0 -13
- package/src/app/error.jsx +0 -5
- package/src/app/global-error.jsx +0 -5
- package/src/app/loading.jsx +0 -11
- package/src/hd/footer/HdFooter.jsx +0 -27
- package/src/hd/footer/hd-footer-item/HdFooterItem.jsx +0 -14
- package/src/lm/ai-scan/AiScanAction.jsx +0 -21
- package/src/lm/ai-scan/cell-templates/AiScanWebsiteResultCellTemplate.jsx +0 -31
- package/src/lm/components/LmCardReport.jsx +0 -12
- package/src/lm/configs/lm-list-configs.jsx +0 -72
- package/src/lm/google-place/action-dropdown/GooglePlaceActionDropdown.jsx +0 -42
- package/src/lm/google-place/actions/GooglePlaceSaveToGroupAction.jsx +0 -22
- package/src/lm/google-place/cell-templates/GooglePlaceBusinessInfoCellTemplate.jsx +0 -59
- package/src/lm/google-place/cell-templates/GooglePlaceEmailsCellTemplate.jsx +0 -34
- package/src/lm/google-place/cell-templates/GooglePlaceScanAction.jsx +0 -15
- package/src/lm/lead/action-dropdown/LeadActionDropdown.jsx +0 -39
- package/src/lm/lead/actions/move-to-group-action/LeadMoveToGroupAction.jsx +0 -28
- package/src/lm/lead/cell-templates/LeadBusinessInfoCellTemplate.jsx +0 -64
- package/src/lm/lead/cell-templates/LeadScanAction.jsx +0 -15
- package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicator.jsx +0 -8
- package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicators.jsx +0 -17
- package/src/lm/lead/lead-google-place/LeadGooglePlaceInfo.jsx +0 -15
- package/src/lm/lead/view/LeadsView.jsx +0 -8
- package/src/lm/pages/HomePage.jsx +0 -53
- package/types-output/tsconfig.tsbuildinfo +0 -1
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import React, { useCallback, useEffect, useState, useRef, useImperativeHandle } from "react";
|
|
3
|
-
import { Tooltip as FdTooltip, TooltipProvider, TooltipContent, TooltipTrigger, } from "@radix-ui/react-tooltip";
|
|
4
|
-
import * as Popover from "@radix-ui/react-popover";
|
|
5
|
-
import { FdInput } from "@fd-component-toolbox/input/FdInput";
|
|
6
|
-
import { FdButton } from "@fd-component-toolbox/button/FdButton";
|
|
7
|
-
import { FdCalendar } from "@fd-component-toolbox/calendar/FdCalendar";
|
|
8
|
-
import { FdIcon, iconNames, iconSizes } from "@fd-component-toolbox/icon/FdIcon";
|
|
9
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
10
|
-
import { localizedFormat, updateHours, updateMinutes, onDateChangeHandler, onDateResetHandler, setDatePickerState, handleDatePickerOpenChange, } from "@fd-component-toolbox/datepicker/FdDatePicker.funcs";
|
|
11
|
-
import FdLabelAnimation from "@fd-component-toolbox/animation/FdLabelAnimation";
|
|
12
|
-
import { shortenWithEllipsis } from "@fd-toolbox/strings/strings";
|
|
13
|
-
import { useAsyncEffect } from "@fd-toolbox/hooks/use-async-effect";
|
|
14
|
-
import { parseUtcStringToDate } from "@fd-toolbox/dates/date-times";
|
|
15
|
-
/**
|
|
16
|
-
* Date and time picker component with optional time selection and form integration
|
|
17
|
-
*
|
|
18
|
-
* Using {@link FdDatePickerProps}
|
|
19
|
-
*
|
|
20
|
-
* Based on [DatePicker](https://ui.shadcn.com/docs/components/date-picker)
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```tsx
|
|
24
|
-
* function MyComponent() {
|
|
25
|
-
* const form = useForm({...});
|
|
26
|
-
*
|
|
27
|
-
* return (
|
|
28
|
-
* <FdDatePicker
|
|
29
|
-
* label="Meeting Date"
|
|
30
|
-
* enableTime={true}
|
|
31
|
-
* onDateValueChange={...}
|
|
32
|
-
* variant="float"
|
|
33
|
-
* form={form}
|
|
34
|
-
* name="meetingDate"
|
|
35
|
-
* />
|
|
36
|
-
* );
|
|
37
|
-
* }
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export function FdDatePicker({ className, enableTime, inputId, label: labelProp, onDateValueChange: onDateValueChangeProp, onTimeValueChange: onTimeValueChangeProp, date, shouldLabelAnimate, disabled, readOnly, skipAnimationOnce, form, name, variant, onOpenChange, ref, }) {
|
|
41
|
-
const [dateValue, setDateValue] = useState();
|
|
42
|
-
const [timeValue, setTimeValue] = useState({ hours: 0, minutes: 0 });
|
|
43
|
-
const [label, setLabel] = useState(labelProp ?? "");
|
|
44
|
-
const [showFullLabel, setShowFullLabel] = useState(true);
|
|
45
|
-
const [isHovered, setIsHovered] = useState(false);
|
|
46
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
47
|
-
const prevIsoString = useRef(undefined);
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
if (date && date !== "") {
|
|
50
|
-
const parseData = parseUtcStringToDate(date);
|
|
51
|
-
setDateValue(parseData);
|
|
52
|
-
setTimeValue({ hours: parseData.getHours(), minutes: parseData.getMinutes() });
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
setDateValue(undefined);
|
|
56
|
-
setTimeValue({ hours: 0, minutes: 0 });
|
|
57
|
-
}
|
|
58
|
-
}, [date]);
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (label.length > 20) {
|
|
61
|
-
setLabel(shortenWithEllipsis(label, 20));
|
|
62
|
-
setShowFullLabel(false);
|
|
63
|
-
}
|
|
64
|
-
}, [label]);
|
|
65
|
-
useAsyncEffect(async () => {
|
|
66
|
-
setDatePickerState(timeValue, setPrevIsoString, setFormValue, isFormReadyToUpdate(), prevIsoString?.current ?? undefined, dateValue ?? undefined, name, onDateValueChangeProp);
|
|
67
|
-
}, [timeValue, dateValue, form, name]);
|
|
68
|
-
const isFormReadyToUpdate = useCallback(() => {
|
|
69
|
-
return !!(form && name);
|
|
70
|
-
}, [form, name]);
|
|
71
|
-
const setPrevIsoString = useCallback((isoString) => {
|
|
72
|
-
prevIsoString.current = isoString;
|
|
73
|
-
}, []);
|
|
74
|
-
const setFormValue = useCallback((datePickerName, isoString) => {
|
|
75
|
-
form?.setValue(datePickerName, isoString);
|
|
76
|
-
}, [form]);
|
|
77
|
-
useAsyncEffect(async () => {
|
|
78
|
-
onTimeValueChangeProp?.(timeValue);
|
|
79
|
-
}, [timeValue]);
|
|
80
|
-
const onDateValueChange = useCallback((newDate) => {
|
|
81
|
-
setDateValue(newDate);
|
|
82
|
-
}, []);
|
|
83
|
-
const onTimeValueChange = useCallback((operation, value) => {
|
|
84
|
-
if (operation === "hours") {
|
|
85
|
-
setTimeValue((prevTimeValue) => ({ ...prevTimeValue, hours: value }));
|
|
86
|
-
}
|
|
87
|
-
else if (operation === "minutes") {
|
|
88
|
-
setTimeValue((prevTimeValue) => ({ ...prevTimeValue, minutes: value }));
|
|
89
|
-
}
|
|
90
|
-
}, [setTimeValue]);
|
|
91
|
-
const onDateChange = useCallback((newDate) => onDateChangeHandler(timeValue, onDateValueChange, enableTime, newDate, onDateValueChangeProp), [enableTime, onDateValueChange, timeValue, onDateValueChangeProp]);
|
|
92
|
-
const onDateReset = useCallback((event) => {
|
|
93
|
-
onDateResetHandler(event, onDateValueChange, setTimeValue, onDateValueChangeProp);
|
|
94
|
-
}, [onDateValueChange, setTimeValue, onDateValueChangeProp]);
|
|
95
|
-
const onHoursChange = useCallback((v) => {
|
|
96
|
-
updateHours(parseInt(v), timeValue, onTimeValueChange, onDateValueChange, dateValue ?? undefined);
|
|
97
|
-
}, [timeValue, dateValue, onTimeValueChange, onDateValueChange]);
|
|
98
|
-
const onMinutesChange = useCallback((v) => {
|
|
99
|
-
updateMinutes(parseInt(v), timeValue, onTimeValueChange, onDateValueChange, dateValue ?? undefined);
|
|
100
|
-
}, [timeValue, dateValue, onTimeValueChange, onDateValueChange]);
|
|
101
|
-
const onOpenChangeCallback = useCallback((open) => {
|
|
102
|
-
handleDatePickerOpenChange(open, setIsOpen, onOpenChange);
|
|
103
|
-
}, [onOpenChange]);
|
|
104
|
-
useImperativeHandle(ref, () => ({
|
|
105
|
-
open: () => onOpenChangeCallback(true),
|
|
106
|
-
}), [onOpenChangeCallback]);
|
|
107
|
-
const onMouseEnter = useCallback(() => setIsHovered(true), []);
|
|
108
|
-
const onMouseLeave = useCallback(() => setIsHovered(false), []);
|
|
109
|
-
return (<div className={cn("relative flex w-full gap-1 text-secondary", className)}>
|
|
110
|
-
<Popover.Root modal={true} open={isOpen && !disabled && !readOnly} onOpenChange={onOpenChangeCallback}>
|
|
111
|
-
<Popover.Trigger asChild>
|
|
112
|
-
<div className="w-full">
|
|
113
|
-
{label && (<div key={Number(skipAnimationOnce)} className={cn("relative z-10 transition-opacity duration-300", dateValue ? "opacity-100" : "opacity-0")}>
|
|
114
|
-
<FdLabelAnimation label={label} shouldAnimate={shouldLabelAnimate ?? true} skipAnimationOnce={skipAnimationOnce}/>
|
|
115
|
-
</div>)}
|
|
116
|
-
<TooltipProvider>
|
|
117
|
-
<FdTooltip>
|
|
118
|
-
<TooltipTrigger asChild className="w-full">
|
|
119
|
-
<div className="relative w-full border-input hover:bg-background" onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} style={{ cursor: disabled ? "not-allowed" : "default" }}>
|
|
120
|
-
<FdButton onClick={onDateReset} variant="icon" className={cn("peer absolute right-2.5 top-1/2 size-4 -translate-y-1/2 p-0", !!dateValue && isHovered && !disabled && !readOnly
|
|
121
|
-
? "animate-fade-in"
|
|
122
|
-
: "animate-fade-out")} onMouseEnter={onMouseEnter}>
|
|
123
|
-
<FdIcon name={iconNames.cross1} size={iconSizes.extraSmall}/>
|
|
124
|
-
</FdButton>
|
|
125
|
-
<FdButton variant={variant ?? "float"} className="w-full justify-start gap-2 hover:disabled:cursor-not-allowed peer-hover:bg-accent peer-hover:text-accent-foreground" disabled={disabled}>
|
|
126
|
-
<FdIcon name={iconNames.calendar} className="mr-2"/>
|
|
127
|
-
|
|
128
|
-
<span className="mr-1 text-muted-foreground">
|
|
129
|
-
{localizedFormat(label, dateValue ?? undefined)}
|
|
130
|
-
</span>
|
|
131
|
-
</FdButton>
|
|
132
|
-
</div>
|
|
133
|
-
</TooltipTrigger>
|
|
134
|
-
<TooltipContent hidden={showFullLabel}>
|
|
135
|
-
<p className="mb-1.5 rounded-md border bg-popover px-3 py-1.5 text-sm shadow-md">
|
|
136
|
-
{labelProp ?? ""}
|
|
137
|
-
</p>
|
|
138
|
-
</TooltipContent>
|
|
139
|
-
</FdTooltip>
|
|
140
|
-
</TooltipProvider>
|
|
141
|
-
</div>
|
|
142
|
-
</Popover.Trigger>
|
|
143
|
-
<Popover.Portal>
|
|
144
|
-
<Popover.Content className={"z-50 mt-1 w-auto rounded-md border bg-background p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"} align="center">
|
|
145
|
-
<FdCalendar id={inputId} mode="single" selected={dateValue ?? undefined} onSelect={onDateChange} autoFocus className="text-secondary"/>
|
|
146
|
-
</Popover.Content>
|
|
147
|
-
</Popover.Portal>
|
|
148
|
-
</Popover.Root>
|
|
149
|
-
{enableTime && (<div className="flex text-primary">
|
|
150
|
-
<FdInput showClearIcon={false} min="0" max="23" type="number" className="w-14" value={timeValue.hours.toString() ?? ""} onChange={onHoursChange} disabled={disabled} readOnly={readOnly}/>
|
|
151
|
-
<span className={cn("text-lg")}>:</span>
|
|
152
|
-
<FdInput showClearIcon={false} min="0" max="59" type="number" className="w-14" value={timeValue.minutes.toString() ?? ""} onChange={onMinutesChange} disabled={disabled} readOnly={readOnly}/>
|
|
153
|
-
</div>)}
|
|
154
|
-
</div>);
|
|
155
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
4
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
5
|
-
import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
|
|
6
|
-
/**
|
|
7
|
-
* Modal dialog root component
|
|
8
|
-
*
|
|
9
|
-
* Based on [Dialog](https://ui.shadcn.com/docs/components/dialog)
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```tsx
|
|
13
|
-
* function MyComponent() {
|
|
14
|
-
* const [isOpen, setIsOpen] = useState(false);
|
|
15
|
-
*
|
|
16
|
-
* return (
|
|
17
|
-
* <FdDialog open={isOpen} onOpenChange={setIsOpen}>
|
|
18
|
-
* ...
|
|
19
|
-
* </FdDialog>
|
|
20
|
-
* );
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
const FdDialog = DialogPrimitive.Root;
|
|
25
|
-
/**
|
|
26
|
-
* Dialog trigger component
|
|
27
|
-
*
|
|
28
|
-
* Based on [Dialog.Trigger](https://ui.shadcn.com/docs/components/dialog)
|
|
29
|
-
*/
|
|
30
|
-
const FdDialogTrigger = DialogPrimitive.Trigger;
|
|
31
|
-
/**
|
|
32
|
-
* Dialog portal component
|
|
33
|
-
*
|
|
34
|
-
* Based on [Dialog.Portal](https://ui.shadcn.com/docs/components/dialog)
|
|
35
|
-
*/
|
|
36
|
-
const FdDialogPortal = DialogPrimitive.Portal;
|
|
37
|
-
/**
|
|
38
|
-
* Close button component
|
|
39
|
-
*
|
|
40
|
-
* Based on [Dialog.Close](https://ui.shadcn.com/docs/components/dialog)
|
|
41
|
-
*/
|
|
42
|
-
const FdDialogClose = DialogPrimitive.Close;
|
|
43
|
-
/**
|
|
44
|
-
* Semi-transparent backdrop
|
|
45
|
-
*
|
|
46
|
-
* Based on [Dialog.Overlay](https://ui.shadcn.com/docs/components/dialog)
|
|
47
|
-
*/
|
|
48
|
-
function FdDialogOverlay({ className, ref, ...props }) {
|
|
49
|
-
return (<DialogPrimitive.Overlay ref={ref} className={cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className)} {...props}/>);
|
|
50
|
-
}
|
|
51
|
-
FdDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
52
|
-
/**
|
|
53
|
-
* Main content container for the dialog
|
|
54
|
-
*
|
|
55
|
-
* Based on [Dialog.Content](https://ui.shadcn.com/docs/components/dialog)
|
|
56
|
-
*/
|
|
57
|
-
function FdDialogContent({ className, children, isCloseButtonShown, ref, ...props }) {
|
|
58
|
-
return (<FdDialogPortal>
|
|
59
|
-
<FdDialogOverlay />
|
|
60
|
-
<DialogPrimitive.Content ref={ref} className={cn("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2", "data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 sm:rounded-lg", className)} {...props}>
|
|
61
|
-
{children}
|
|
62
|
-
{(isCloseButtonShown ?? true) && (<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
63
|
-
<FdIcon name={iconNames.cross2}/>
|
|
64
|
-
<span className="sr-only">Close</span>
|
|
65
|
-
</DialogPrimitive.Close>)}
|
|
66
|
-
</DialogPrimitive.Content>
|
|
67
|
-
</FdDialogPortal>);
|
|
68
|
-
}
|
|
69
|
-
FdDialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
70
|
-
/**
|
|
71
|
-
* Dialog header
|
|
72
|
-
*
|
|
73
|
-
* Based on [Dialog](https://ui.shadcn.com/docs/components/dialog)
|
|
74
|
-
*/
|
|
75
|
-
function FdDialogHeader({ className, ...props }) {
|
|
76
|
-
return <div className={cn("flex flex-col space-y-1.5 text-center sm:text-left", className)} {...props}/>;
|
|
77
|
-
}
|
|
78
|
-
FdDialogHeader.displayName = "DialogHeader";
|
|
79
|
-
/**
|
|
80
|
-
* Dialog footer
|
|
81
|
-
*
|
|
82
|
-
* Based on [Dialog](https://ui.shadcn.com/docs/components/dialog)
|
|
83
|
-
*/
|
|
84
|
-
function FdDialogFooter({ className, ...props }) {
|
|
85
|
-
return <div className={cn("flex flex-row items-end justify-end space-x-2", className)} {...props}/>;
|
|
86
|
-
}
|
|
87
|
-
FdDialogFooter.displayName = "DialogFooter";
|
|
88
|
-
/**
|
|
89
|
-
* Title component for the dialog header
|
|
90
|
-
*
|
|
91
|
-
* Based on [Dialog.Title](https://ui.shadcn.com/docs/components/dialog)
|
|
92
|
-
*/
|
|
93
|
-
function FdDialogTitle({ className, ref, ...props }) {
|
|
94
|
-
return (<DialogPrimitive.Title ref={ref} className={cn("text-lg font-semibold leading-none tracking-tight", className)} {...props}/>);
|
|
95
|
-
}
|
|
96
|
-
FdDialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
97
|
-
/**
|
|
98
|
-
* Description text component for the dialog
|
|
99
|
-
*
|
|
100
|
-
* Based on [Dialog.Description](https://ui.shadcn.com/docs/components/dialog)
|
|
101
|
-
*/
|
|
102
|
-
function FdDialogDescription({ className, ref, ...props }) {
|
|
103
|
-
return (<DialogPrimitive.Description ref={ref} className={cn("text-sm text-muted-foreground", className)} {...props}/>);
|
|
104
|
-
}
|
|
105
|
-
FdDialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
106
|
-
export { FdDialog, FdDialogPortal, FdDialogOverlay, FdDialogTrigger, FdDialogClose, FdDialogContent, FdDialogHeader, FdDialogFooter, FdDialogTitle, FdDialogDescription, };
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
3
|
-
import { FdButton } from "@fd-component-toolbox/button/FdButton";
|
|
4
|
-
import * as Dialog from "@radix-ui/react-dialog";
|
|
5
|
-
import { useCallback } from "react";
|
|
6
|
-
import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
|
|
7
|
-
import { onYesClick } from "@fd-component-toolbox/dialog/YesOrNoDialog.funcs";
|
|
8
|
-
import { elements } from "@fd-toolbox/constants/elements";
|
|
9
|
-
/**
|
|
10
|
-
* Confirmation dialog with Yes/No or OK buttons
|
|
11
|
-
*
|
|
12
|
-
* @param props - {@link YesOrNoDialogProps}
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```tsx
|
|
16
|
-
* <YesOrNoDialog title="Confirm deletion" onResponse={...} onCloseClick={...} trigger={...}/>
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function YesOrNoDialog({ title, className, trigger, asTriggerChild, onResponse, onCloseClick, showNoButton, triggerCssClass, isDisabled, }) {
|
|
20
|
-
const isShowNoButton = showNoButton ?? true;
|
|
21
|
-
const onYesClickCallback = useCallback(() => {
|
|
22
|
-
onYesClick(onResponse, onCloseClick);
|
|
23
|
-
}, [onResponse, onCloseClick]);
|
|
24
|
-
const handleOnNoClick = useCallback(() => {
|
|
25
|
-
onResponse?.(false);
|
|
26
|
-
}, [onResponse]);
|
|
27
|
-
return (<Dialog.Root>
|
|
28
|
-
<Dialog.Trigger className={triggerCssClass} asChild={asTriggerChild} disabled={isDisabled}>
|
|
29
|
-
{trigger}
|
|
30
|
-
</Dialog.Trigger>
|
|
31
|
-
<Dialog.Portal>
|
|
32
|
-
<Dialog.Overlay className={"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}/>
|
|
33
|
-
<Dialog.Content onOpenAutoFocus={(e) => e.preventDefault()} className={cn("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border", "bg-background p-6 pt-11 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2", "data-[state=open]:slide-in-from-top-1/2 sm:rounded", className)}>
|
|
34
|
-
<div tabIndex={1}>
|
|
35
|
-
<Dialog.Title>{title}</Dialog.Title>
|
|
36
|
-
<Dialog.Description></Dialog.Description>
|
|
37
|
-
<Dialog.Close className={"absolute right-4 top-4 rounded opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"}>
|
|
38
|
-
<FdIcon name={iconNames.cross2}/>
|
|
39
|
-
<span className="sr-only">Close</span>
|
|
40
|
-
</Dialog.Close>
|
|
41
|
-
</div>
|
|
42
|
-
<div className="flex flex-row justify-end gap-2">
|
|
43
|
-
<Dialog.Close asChild>
|
|
44
|
-
<FdButton id={elements.dialogButton.yes} className="rounded" onClick={onYesClickCallback} variant="outline">
|
|
45
|
-
{isShowNoButton ? "Yes" : "Ok"}
|
|
46
|
-
</FdButton>
|
|
47
|
-
</Dialog.Close>
|
|
48
|
-
{isShowNoButton && (<Dialog.Close asChild>
|
|
49
|
-
<FdButton id={elements.dialogButton.no} onClick={handleOnNoClick}>
|
|
50
|
-
No
|
|
51
|
-
</FdButton>
|
|
52
|
-
</Dialog.Close>)}
|
|
53
|
-
</div>
|
|
54
|
-
</Dialog.Content>
|
|
55
|
-
</Dialog.Portal>
|
|
56
|
-
</Dialog.Root>);
|
|
57
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DndContext } from "@dnd-kit/core";
|
|
2
|
-
/**
|
|
3
|
-
* Drag and drop context wrapper component that provides drag and drop functionality to its children
|
|
4
|
-
*
|
|
5
|
-
* Using [@dnd-kit/core](https://docs.dndkit.com/)
|
|
6
|
-
*
|
|
7
|
-
* @param props - {@link FdDragDropContextProps}
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```tsx
|
|
11
|
-
* <FdDragDropContext onDragEnd={...}>
|
|
12
|
-
* ...
|
|
13
|
-
* </FdDragDropContext>
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
function FdDragDropContext({ children, ...props }) {
|
|
17
|
-
return <DndContext {...props}>{children}</DndContext>;
|
|
18
|
-
}
|
|
19
|
-
export default FdDragDropContext;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { useDraggable } from "@dnd-kit/core";
|
|
2
|
-
/**
|
|
3
|
-
* Draggable wrapper component that makes its children draggable
|
|
4
|
-
*
|
|
5
|
-
* Using [@dnd-kit/core](https://docs.dndkit.com/)
|
|
6
|
-
*
|
|
7
|
-
* @param props - {@link FdDraggableProps}
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```tsx
|
|
11
|
-
* <FdDraggable draggableId="item-1">
|
|
12
|
-
* <div>Drag me!</div>
|
|
13
|
-
* </FdDraggable>
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
function FdDraggable({ draggableId, children }) {
|
|
17
|
-
const { setNodeRef, listeners, attributes, transform, isDragging } = useDraggable({ id: draggableId });
|
|
18
|
-
const style = {
|
|
19
|
-
transform: transform ? `translate(${transform.x}px, ${transform.y}px)` : undefined,
|
|
20
|
-
position: isDragging ? "fixed" : "static",
|
|
21
|
-
zIndex: isDragging ? 9999 : "auto",
|
|
22
|
-
};
|
|
23
|
-
return (<div ref={setNodeRef} {...listeners} {...attributes} style={style}>
|
|
24
|
-
{children}
|
|
25
|
-
</div>);
|
|
26
|
-
}
|
|
27
|
-
export default FdDraggable;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useDroppable } from "@dnd-kit/core";
|
|
2
|
-
/**
|
|
3
|
-
* Droppable zone component that can receive draggable items
|
|
4
|
-
*
|
|
5
|
-
* Using [@dnd-kit/core](https://docs.dndkit.com/)
|
|
6
|
-
*
|
|
7
|
-
* @param props - {@link FdDroppableProps}
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```tsx
|
|
11
|
-
* <FdDroppable droppableId="drop-zone-1">
|
|
12
|
-
* ...
|
|
13
|
-
* </FdDroppable>
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
function FdDroppable({ droppableId, children }) {
|
|
17
|
-
const { setNodeRef } = useDroppable({
|
|
18
|
-
id: droppableId,
|
|
19
|
-
});
|
|
20
|
-
return <div ref={setNodeRef}>{children}</div>;
|
|
21
|
-
}
|
|
22
|
-
export default FdDroppable;
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import * as FdDropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
4
|
-
import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
|
|
5
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
6
|
-
/**
|
|
7
|
-
* Dropdown menu root container
|
|
8
|
-
*
|
|
9
|
-
* Based on [DropdownMenu](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```tsx
|
|
13
|
-
* function MyComponent() {
|
|
14
|
-
const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<FdDropdownMenu open={isDropdownMenuOpen} onOpenChange={setIsDropdownMenuOpen}>
|
|
18
|
-
...
|
|
19
|
-
</FdDropdownMenu>
|
|
20
|
-
* );
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
const FdDropdownMenu = FdDropdownMenuPrimitive.Root;
|
|
25
|
-
/**
|
|
26
|
-
* Dropdown menu trigger
|
|
27
|
-
*
|
|
28
|
-
* Based on [DropdownMenu.Trigger](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
29
|
-
*/
|
|
30
|
-
const FdDropdownMenuTrigger = FdDropdownMenuPrimitive.Trigger;
|
|
31
|
-
/**
|
|
32
|
-
* Dropdown menu group container
|
|
33
|
-
*
|
|
34
|
-
* Based on [DropdownMenu.Group](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
35
|
-
*/
|
|
36
|
-
const FdDropdownMenuGroup = FdDropdownMenuPrimitive.Group;
|
|
37
|
-
/**
|
|
38
|
-
* Dropdown menu portal
|
|
39
|
-
*
|
|
40
|
-
* Based on [DropdownMenu.Portal](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
41
|
-
*/
|
|
42
|
-
const FdDropdownMenuPortal = FdDropdownMenuPrimitive.Portal;
|
|
43
|
-
/**
|
|
44
|
-
* Dropdown menu submenu root container
|
|
45
|
-
*
|
|
46
|
-
* Based on [DropdownMenu.Sub](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
47
|
-
*/
|
|
48
|
-
const FdDropdownMenuSub = FdDropdownMenuPrimitive.Sub;
|
|
49
|
-
/**
|
|
50
|
-
* Based on [DropdownMenu.RadioGroup](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```tsx
|
|
54
|
-
* function MyComponent() {
|
|
55
|
-
const [radioValue, setRadioValue] = React.useState("defaultValue")
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<DropdownMenuRadioGroup value={radioValue} onValueChange={setRadioValue}>
|
|
59
|
-
...
|
|
60
|
-
</DropdownMenuRadioGroup>
|
|
61
|
-
* );
|
|
62
|
-
* }
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
const FdDropdownMenuRadioGroup = FdDropdownMenuPrimitive.RadioGroup;
|
|
66
|
-
/**
|
|
67
|
-
* Dropdown menu submenu trigger
|
|
68
|
-
*
|
|
69
|
-
* Based on [DropdownMenu.SubTrigger](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
70
|
-
*/
|
|
71
|
-
function FdDropdownMenuSubTrigger({ className, inset, ref, children, ...props }) {
|
|
72
|
-
return (<FdDropdownMenuPrimitive.SubTrigger ref={ref} className={cn("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent", inset && "pl-8", className)} {...props}>
|
|
73
|
-
{children}
|
|
74
|
-
<FdIcon name={iconNames.chevronRight} className="ml-auto size-4"/>
|
|
75
|
-
</FdDropdownMenuPrimitive.SubTrigger>);
|
|
76
|
-
}
|
|
77
|
-
FdDropdownMenuSubTrigger.displayName = FdDropdownMenuPrimitive.SubTrigger.displayName;
|
|
78
|
-
/**
|
|
79
|
-
* Dropdown menu submenu content container
|
|
80
|
-
*
|
|
81
|
-
* Based on [DropdownMenu.SubContent](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
82
|
-
*/
|
|
83
|
-
function FdDropdownMenuSubContent({ className, ref, ...props }) {
|
|
84
|
-
return (<FdDropdownMenuPrimitive.SubContent ref={ref} className={cn("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)} {...props}/>);
|
|
85
|
-
}
|
|
86
|
-
FdDropdownMenuSubContent.displayName = FdDropdownMenuPrimitive.SubContent.displayName;
|
|
87
|
-
/**
|
|
88
|
-
* Dropdown menu content container
|
|
89
|
-
*
|
|
90
|
-
* Based on [DropdownMenu.Content](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```tsx
|
|
94
|
-
* <FdDropdownMenuContent align="start" side="right" sideOffset={17} onMouseLeave={...}>
|
|
95
|
-
* ...
|
|
96
|
-
* <FdDropdownMenuContent/>
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
|
-
function FdDropdownMenuContent({ className, ref, ...props }) {
|
|
100
|
-
return (<FdDropdownMenuPrimitive.Portal>
|
|
101
|
-
<FdDropdownMenuPrimitive.Content ref={ref} className={cn("z-50 mt-1 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)} {...props}/>
|
|
102
|
-
</FdDropdownMenuPrimitive.Portal>);
|
|
103
|
-
}
|
|
104
|
-
FdDropdownMenuContent.displayName = FdDropdownMenuPrimitive.Content.displayName;
|
|
105
|
-
/**
|
|
106
|
-
* Dropdown menu item
|
|
107
|
-
*
|
|
108
|
-
* Based on [DropdownMenu.Item](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```tsx
|
|
112
|
-
* <FdDropdownMenuItem onSelect={...} onClick={...}>
|
|
113
|
-
* ...
|
|
114
|
-
* <FdDropdownMenuItem/>
|
|
115
|
-
* ```
|
|
116
|
-
*/
|
|
117
|
-
function FdDropdownMenuItem({ className, inset, ref, ...props }) {
|
|
118
|
-
return (<FdDropdownMenuPrimitive.Item ref={ref} className={cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-muted/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50", inset && "pl-8", className)} {...props}/>);
|
|
119
|
-
}
|
|
120
|
-
FdDropdownMenuItem.displayName = FdDropdownMenuPrimitive.Item.displayName;
|
|
121
|
-
/**
|
|
122
|
-
* Dropdown menu checkbox item
|
|
123
|
-
*
|
|
124
|
-
* Based on [DropdownMenu.CheckboxItem](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
* ```tsx
|
|
128
|
-
* function MyComponent() {
|
|
129
|
-
const [isCheckboxChecked, setIsCheckboxChecked] = useState(false);
|
|
130
|
-
|
|
131
|
-
return (
|
|
132
|
-
<DropdownMenuCheckboxItem checked={isCheckboxChecked} onCheckedChange={setIsCheckboxChecked}>
|
|
133
|
-
...
|
|
134
|
-
</DropdownMenuCheckboxItem>
|
|
135
|
-
* );
|
|
136
|
-
* }
|
|
137
|
-
* ```
|
|
138
|
-
*/
|
|
139
|
-
function FdDropdownMenuCheckboxItem({ className, children, checked, ref, ...props }) {
|
|
140
|
-
return (<FdDropdownMenuPrimitive.CheckboxItem ref={ref} className={cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-muted/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className)} checked={checked} {...props}>
|
|
141
|
-
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
142
|
-
<FdDropdownMenuPrimitive.ItemIndicator>
|
|
143
|
-
<FdIcon name={iconNames.check} className="size-4"/>
|
|
144
|
-
</FdDropdownMenuPrimitive.ItemIndicator>
|
|
145
|
-
</span>
|
|
146
|
-
{children}
|
|
147
|
-
</FdDropdownMenuPrimitive.CheckboxItem>);
|
|
148
|
-
}
|
|
149
|
-
FdDropdownMenuCheckboxItem.displayName = FdDropdownMenuPrimitive.CheckboxItem.displayName;
|
|
150
|
-
/**
|
|
151
|
-
* Dropdown menu radio item
|
|
152
|
-
*
|
|
153
|
-
* Based on [DropdownMenu.RadioItem](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
* ```tsx
|
|
157
|
-
<DropdownMenuRadioItem value="top">Top</DropdownMenuRadioItem>
|
|
158
|
-
* ```
|
|
159
|
-
*/
|
|
160
|
-
function FdDropdownMenuRadioItem({ className, children, ref, ...props }) {
|
|
161
|
-
return (<FdDropdownMenuPrimitive.RadioItem ref={ref} className={cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-muted/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className)} {...props}>
|
|
162
|
-
<span className="absolute left-2 flex size-3.5 items-center justify-center">
|
|
163
|
-
<FdDropdownMenuPrimitive.ItemIndicator>
|
|
164
|
-
<FdIcon name={iconNames.dotFilled} className="size-4 fill-current"/>
|
|
165
|
-
</FdDropdownMenuPrimitive.ItemIndicator>
|
|
166
|
-
</span>
|
|
167
|
-
{children}
|
|
168
|
-
</FdDropdownMenuPrimitive.RadioItem>);
|
|
169
|
-
}
|
|
170
|
-
FdDropdownMenuRadioItem.displayName = FdDropdownMenuPrimitive.RadioItem.displayName;
|
|
171
|
-
/**
|
|
172
|
-
* Dropdown menu label
|
|
173
|
-
*
|
|
174
|
-
* Based on [DropdownMenu.Label](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
175
|
-
*/
|
|
176
|
-
function FdDropdownMenuLabel({ className, inset, ref, ...props }) {
|
|
177
|
-
return (<FdDropdownMenuPrimitive.Label ref={ref} className={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)} {...props}/>);
|
|
178
|
-
}
|
|
179
|
-
FdDropdownMenuLabel.displayName = FdDropdownMenuPrimitive.Label.displayName;
|
|
180
|
-
/**
|
|
181
|
-
* Dropdown menu separator
|
|
182
|
-
*
|
|
183
|
-
* Based on [DropdownMenu.Separator](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
184
|
-
*/
|
|
185
|
-
function FdDropdownMenuSeparator({ className, ref, ...props }) {
|
|
186
|
-
return (<FdDropdownMenuPrimitive.Separator ref={ref} className={cn("-mx-1 my-1 h-px bg-muted", className)} {...props}/>);
|
|
187
|
-
}
|
|
188
|
-
FdDropdownMenuSeparator.displayName = FdDropdownMenuPrimitive.Separator.displayName;
|
|
189
|
-
/**
|
|
190
|
-
* Dropdown menu shortcut
|
|
191
|
-
*
|
|
192
|
-
* Based on [DropdownMenu](https://ui.shadcn.com/docs/components/dropdown-menu)
|
|
193
|
-
*/
|
|
194
|
-
function FdDropdownMenuShortcut({ className, ...props }) {
|
|
195
|
-
return <span className={cn("ml-auto text-xs tracking-widest opacity-60", className)} {...props}/>;
|
|
196
|
-
}
|
|
197
|
-
FdDropdownMenuShortcut.displayName = "FdDropdownMenuShortcut";
|
|
198
|
-
export { FdDropdownMenu, FdDropdownMenuTrigger, FdDropdownMenuContent, FdDropdownMenuItem, FdDropdownMenuCheckboxItem, FdDropdownMenuRadioItem, FdDropdownMenuLabel, FdDropdownMenuSeparator, FdDropdownMenuShortcut, FdDropdownMenuGroup, FdDropdownMenuPortal, FdDropdownMenuSub, FdDropdownMenuSubContent, FdDropdownMenuSubTrigger, FdDropdownMenuRadioGroup, };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrapper component for dynamic grid layout elements with configurable positioning and sizing.
|
|
3
|
-
* Does not use its own props, but allows its parent FdDynamicLayoutDragAndDrop to extract props
|
|
4
|
-
*
|
|
5
|
-
* Using {@link FdDynamicComponentProps}
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* <FdDynamicComponent
|
|
9
|
-
* defaultX={0}
|
|
10
|
-
* defaultY={0}
|
|
11
|
-
* defaultWidth={6}
|
|
12
|
-
* defaultHeight={4}
|
|
13
|
-
* minWidth={2}
|
|
14
|
-
* maxWidth={12}
|
|
15
|
-
* minHeight={2}
|
|
16
|
-
* maxHeight={8}
|
|
17
|
-
* static={false}
|
|
18
|
-
* isDraggable={true}
|
|
19
|
-
* isResizable={true}
|
|
20
|
-
* >
|
|
21
|
-
...
|
|
22
|
-
* </FdDynamicComponent>
|
|
23
|
-
*/
|
|
24
|
-
function FdDynamicComponent({ children }) {
|
|
25
|
-
return children;
|
|
26
|
-
}
|
|
27
|
-
export default FdDynamicComponent;
|