@fernir2/saas-kit-cli 0.1.4 → 0.1.5
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,78 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useCallback, useEffect, useLayoutEffect, useMemo, useState } from "react";
|
|
3
|
-
import { Responsive, WidthProvider as widthProvider } from "react-grid-layout";
|
|
4
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
5
|
-
import { generateLayout, onLayoutChange, setupRowHeightListener, } from "@fd-component-toolbox/dynamic-layout/FdDynamicLayoutDragAndDrop.funcs";
|
|
6
|
-
/**
|
|
7
|
-
* Based on [WidthProvider](https://www.npmjs.com/package/react-grid-layout)
|
|
8
|
-
*/
|
|
9
|
-
export const ResponsiveReactGridLayout = widthProvider(Responsive);
|
|
10
|
-
/**
|
|
11
|
-
* A responsive grid layout component enabling dynamic drag-and-drop and resizing of elements
|
|
12
|
-
*
|
|
13
|
-
* @param props - {@link FdDynamicLayoutDragAndDropProps}
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```tsx
|
|
17
|
-
<FdDynamicLayoutDragAndDrop componentClassName="..." columns={15}>
|
|
18
|
-
...
|
|
19
|
-
</FdDynamicLayoutDragAndDrop
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
function FdDynamicLayoutDragAndDrop({ className, componentClassName, columns, containerPadding, containerMargin, children, }) {
|
|
23
|
-
const [layout, setLayout] = useState([]);
|
|
24
|
-
const [rowHeight, setRowHeight] = useState(60);
|
|
25
|
-
const margin = useMemo(() => containerMargin ?? [14, 14], [containerMargin]);
|
|
26
|
-
const effectiveColumns = useMemo(() => columns ?? 6, [columns]);
|
|
27
|
-
useLayoutEffect(() => {
|
|
28
|
-
generateLayout(effectiveColumns, setLayout, children);
|
|
29
|
-
}, [effectiveColumns, children]);
|
|
30
|
-
const onLayoutChangeCallback = useCallback((_, newLayouts) => {
|
|
31
|
-
onLayoutChange(newLayouts, setLayout);
|
|
32
|
-
}, []);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
setupRowHeightListener(effectiveColumns, setRowHeight, margin);
|
|
35
|
-
}, [effectiveColumns, margin]);
|
|
36
|
-
return (<div className="select-none" style={{ paddingBottom: rowHeight }}>
|
|
37
|
-
<ResponsiveReactGridLayout rowHeight={rowHeight} className={cn(
|
|
38
|
-
//https://github.com/react-grid-layout/react-grid-layout/blob/master/css/styles.css
|
|
39
|
-
//https://github.com/react-grid-layout/react-resizable/blob/master/css/styles.css
|
|
40
|
-
//combined and modified accordingly to hubspot
|
|
41
|
-
"relative " +
|
|
42
|
-
"[&_.react-grid-item]:transition-all" +
|
|
43
|
-
"[&_.cssTransforms]:transition-[transform,_width,_height]" +
|
|
44
|
-
"[&_img]:pointer-events-none" +
|
|
45
|
-
"[&_img]:select-none" +
|
|
46
|
-
"[&_.resizing]:transition-none" +
|
|
47
|
-
"[&_.resizing]:z-[1]" +
|
|
48
|
-
"[&_.resizing]:will-change-[width,_height]" +
|
|
49
|
-
"[&_.react-grid-item.react-draggable-dragging]:transition-none" +
|
|
50
|
-
"[&_.react-grid-item.react-draggable-dragging]:z-[3]" +
|
|
51
|
-
"[&_.react-grid-item.react-draggable-dragging]:will-change-transform" +
|
|
52
|
-
"[&_.dropping]:invisible" +
|
|
53
|
-
"[&_.react-grid-placeholder]:border-fd-accent" +
|
|
54
|
-
"[&_.react-grid-placeholder]:border" +
|
|
55
|
-
"[&_.react-grid-placeholder]:border-dashed" +
|
|
56
|
-
"[&_.react-grid-placeholder]:border-2" +
|
|
57
|
-
"[&_.react-grid-placeholder]:rounded" +
|
|
58
|
-
"[&_.react-grid-placeholder]:z-[2]" +
|
|
59
|
-
"[&_.react-grid-placeholder]:select-none" +
|
|
60
|
-
"[&_.placeholder-resizing]:transition-none" +
|
|
61
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:absolute" +
|
|
62
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:size-0.9" +
|
|
63
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:bottom-0" +
|
|
64
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:right-0" +
|
|
65
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:cursor-se-resize" +
|
|
66
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:after:content-[url(/handle.svg)]" +
|
|
67
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:after:absolute" +
|
|
68
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:after:size-0.9" +
|
|
69
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:after:right-2" +
|
|
70
|
-
"[&_.react-grid-item_>_.react-resizable-handle]:after:bottom-0" +
|
|
71
|
-
"[&_.react-resizable-hide_>_.react-resizable-handle]:hidden", className)} margin={margin} cols={{ xxs: effectiveColumns }} breakpoints={{ xxs: 0 }} containerPadding={containerPadding ?? [0, 0]} layouts={{ xxs: layout }} measureBeforeMount={false} useCSSTransforms={true} preventCollision={false} onLayoutChange={onLayoutChangeCallback}>
|
|
72
|
-
{layout.map((item) => (<div key={item.i} className={cn("cursor-grab overflow-hidden", componentClassName ?? "bg-background shadow")}>
|
|
73
|
-
{item.element}
|
|
74
|
-
</div>))}
|
|
75
|
-
</ResponsiveReactGridLayout>
|
|
76
|
-
</div>);
|
|
77
|
-
}
|
|
78
|
-
export default FdDynamicLayoutDragAndDrop;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { useRef, useMemo, useState, useEffect } from "react";
|
|
2
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
3
|
-
import { FdTooltip, FdTooltipContent, FdTooltipProvider, FdTooltipTrigger, } from "@fd-component-toolbox/tooltip/FdTooltip";
|
|
4
|
-
import { checkFadeoutVisibility } from "@fd-component-toolbox/fade-out-text/FdFadeOutText.funcs";
|
|
5
|
-
/**
|
|
6
|
-
* @param FdFadeOutTextProps {@link FdFadeOutTextProps}
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```tsx
|
|
10
|
-
* function MyComponent({ isHovered }) {
|
|
11
|
-
* return (
|
|
12
|
-
* <FdFadeOutText
|
|
13
|
-
* bgColor="bg-transparent"
|
|
14
|
-
* isRightAlign={true}
|
|
15
|
-
* isHovered={isHovered}
|
|
16
|
-
* tooltipContent="This is the full content that appears in the tooltip"
|
|
17
|
-
* onTooltipClick={...}
|
|
18
|
-
* >
|
|
19
|
-
* This is a very long text that will be truncated with fade effect when it reaches the container width
|
|
20
|
-
* </FdFadeOutText>
|
|
21
|
-
* );
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export function FdFadeOutText({ children, className, isRightAlign, shouldHideTooltip, onTooltipClick, tooltipContent, ref, ...props }) {
|
|
26
|
-
const valueBlockRef = useRef(null);
|
|
27
|
-
const [fadeoutVisible, setFadeoutVisible] = useState();
|
|
28
|
-
const { isHovered, ...restProps } = props;
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
checkFadeoutVisibility(setFadeoutVisible, valueBlockRef?.current ?? undefined);
|
|
31
|
-
}, [children]);
|
|
32
|
-
const textAlignmentClass = useMemo(() => {
|
|
33
|
-
return isRightAlign ? "flex-row-reverse" : "";
|
|
34
|
-
}, [isRightAlign]);
|
|
35
|
-
return (<div ref={ref} className="relative min-w-0 flex-1">
|
|
36
|
-
<FdTooltipProvider>
|
|
37
|
-
<FdTooltip>
|
|
38
|
-
<FdTooltipTrigger asChild disabled={shouldHideTooltip} onClick={onTooltipClick}>
|
|
39
|
-
<div ref={valueBlockRef} className={cn("flex w-full flex-row overflow-x-hidden text-nowrap", className, textAlignmentClass, fadeoutVisible
|
|
40
|
-
? "[mask-image:linear-gradient(to_right,currentColor_87%,transparent_100%)]"
|
|
41
|
-
: "", isHovered ? "hovered" : "")} {...restProps}>
|
|
42
|
-
{children}
|
|
43
|
-
</div>
|
|
44
|
-
</FdTooltipTrigger>
|
|
45
|
-
<FdTooltipContent hidden={shouldHideTooltip} className={!fadeoutVisible ? "hidden" : ""}>
|
|
46
|
-
{tooltipContent ?? children}
|
|
47
|
-
</FdTooltipContent>
|
|
48
|
-
</FdTooltip>
|
|
49
|
-
</FdTooltipProvider>
|
|
50
|
-
</div>);
|
|
51
|
-
}
|
|
52
|
-
FdFadeOutText.displayName = "FdFadeOutText";
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
-
import { Controller, FormProvider, useFormContext, } from "react-hook-form";
|
|
5
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
6
|
-
import { FdLabel } from "@fd-component-toolbox/label/FdLabel";
|
|
7
|
-
import { createError } from "@fd-toolbox/errors/errors";
|
|
8
|
-
/**
|
|
9
|
-
* Main form component that serves as a wrapper for react-hook-form's FormProvider
|
|
10
|
-
*
|
|
11
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* function MyComponent() {
|
|
16
|
-
* const form = useForm({...});
|
|
17
|
-
*
|
|
18
|
-
* return (
|
|
19
|
-
* <FdForm {...form}>
|
|
20
|
-
* ...
|
|
21
|
-
* </FdForm>
|
|
22
|
-
* );
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
const FdForm = FormProvider;
|
|
27
|
-
/**
|
|
28
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
29
|
-
*/
|
|
30
|
-
const FdFormFieldContext = React.createContext(null);
|
|
31
|
-
/**
|
|
32
|
-
* Component that wraps Controller and provides field name context to connect form elements with react-hook-form
|
|
33
|
-
*
|
|
34
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```tsx
|
|
38
|
-
* function MyComponent() {
|
|
39
|
-
* const form = useForm({...});
|
|
40
|
-
*
|
|
41
|
-
* return (
|
|
42
|
-
* <FdFormField control={form.control} name="email" render={...}/>
|
|
43
|
-
* );
|
|
44
|
-
* }
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
function FdFormField({ ...props }) {
|
|
48
|
-
const contextValue = React.useMemo(() => ({ name: props.name }), [props.name]);
|
|
49
|
-
return (<FdFormFieldContext.Provider value={contextValue}>
|
|
50
|
-
<Controller {...props}/>
|
|
51
|
-
</FdFormFieldContext.Provider>);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
55
|
-
*/
|
|
56
|
-
const useFormField = () => {
|
|
57
|
-
const fieldContext = React.useContext(FdFormFieldContext);
|
|
58
|
-
const itemContext = React.useContext(FdFormItemContext);
|
|
59
|
-
const { getFieldState, formState } = useFormContext();
|
|
60
|
-
if (!fieldContext) {
|
|
61
|
-
throw createError("useFormField should be used within <FormField>");
|
|
62
|
-
}
|
|
63
|
-
if (!itemContext) {
|
|
64
|
-
throw createError("useFormField should be used within <FormItem>");
|
|
65
|
-
}
|
|
66
|
-
const fieldState = getFieldState(fieldContext.name, formState);
|
|
67
|
-
const { id } = itemContext;
|
|
68
|
-
return {
|
|
69
|
-
id,
|
|
70
|
-
name: fieldContext.name,
|
|
71
|
-
formItemId: `${id}-form-item`,
|
|
72
|
-
formDescriptionId: `${id}-form-item-description`,
|
|
73
|
-
formMessageId: `${id}-form-item-message`,
|
|
74
|
-
...fieldState,
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
79
|
-
*/
|
|
80
|
-
export const FdFormItemContext = React.createContext(null);
|
|
81
|
-
/**
|
|
82
|
-
* UI container that generates and shares unique ID for label-input connections and accessibility
|
|
83
|
-
*
|
|
84
|
-
* {@link FdFormItem}
|
|
85
|
-
*
|
|
86
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
87
|
-
*/
|
|
88
|
-
function FdFormItem({ className, ref, ...props }) {
|
|
89
|
-
const id = React.useId();
|
|
90
|
-
const contextValue = React.useMemo(() => ({ id }), [id]);
|
|
91
|
-
return (<FdFormItemContext.Provider value={contextValue}>
|
|
92
|
-
<div ref={ref} className={cn("space-y-2", className)} {...props}/>
|
|
93
|
-
</FdFormItemContext.Provider>);
|
|
94
|
-
}
|
|
95
|
-
FdFormItem.displayName = "FdFormItem";
|
|
96
|
-
/**
|
|
97
|
-
* Label component that automatically connects to form inputs using IDs from FdFormItem context
|
|
98
|
-
*
|
|
99
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
100
|
-
*/
|
|
101
|
-
function FdFormLabel({ className, ref, ...props }) {
|
|
102
|
-
const { error, formItemId } = useFormField();
|
|
103
|
-
return (<FdLabel ref={ref} className={cn(error && "text-destructive", className)} htmlFor={formItemId} {...props}/>);
|
|
104
|
-
}
|
|
105
|
-
FdFormLabel.displayName = "FdFormLabel";
|
|
106
|
-
/**
|
|
107
|
-
* Control component that applies accessibility attributes to child elements using context IDs
|
|
108
|
-
*
|
|
109
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
110
|
-
*/
|
|
111
|
-
function FdFormControl({ ref, ...props }) {
|
|
112
|
-
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
113
|
-
return (<Slot ref={ref} id={formItemId} aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`} aria-invalid={!!error} {...props}/>);
|
|
114
|
-
}
|
|
115
|
-
FdFormControl.displayName = "FdFormControl";
|
|
116
|
-
/**
|
|
117
|
-
* Description component that uses a shared ID from context
|
|
118
|
-
*
|
|
119
|
-
* {@link FdFormDescription}
|
|
120
|
-
*
|
|
121
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
122
|
-
*/
|
|
123
|
-
function FdFormDescription({ className, ref, ...props }) {
|
|
124
|
-
const { formDescriptionId } = useFormField();
|
|
125
|
-
return (<p ref={ref} id={formDescriptionId} className={cn("text-sm text-muted-foreground", className)} {...props}/>);
|
|
126
|
-
}
|
|
127
|
-
FdFormDescription.displayName = "FdFormDescription";
|
|
128
|
-
/**
|
|
129
|
-
* Error message component that displays validation errors or custom messages
|
|
130
|
-
*
|
|
131
|
-
* {@link FdFormMessage}
|
|
132
|
-
*
|
|
133
|
-
* Based on {@link https://ui.shadcn.com/docs/components/form Form}
|
|
134
|
-
*/
|
|
135
|
-
function FdFormMessage({ className, children, ref, ...props }) {
|
|
136
|
-
const { error, formMessageId } = useFormField();
|
|
137
|
-
const body = error?.message ?? children;
|
|
138
|
-
if (!body) {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
return (<p ref={ref} id={formMessageId} className={cn("text-sm font-medium text-destructive", className)} {...props}>
|
|
142
|
-
{body}
|
|
143
|
-
</p>);
|
|
144
|
-
}
|
|
145
|
-
FdFormMessage.displayName = "FdFormMessage";
|
|
146
|
-
export { useFormField, FdForm, FdFormItem, FdFormLabel, FdFormControl, FdFormDescription, FdFormMessage, FdFormField, };
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CalendarIcon, CaretDownIcon, CaretSortIcon, CaretUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Cross1Icon, Cross2Icon, DotsHorizontalIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon, DragHandleDots2Icon, EyeNoneIcon, EyeOpenIcon, Link1Icon, MagnifyingGlassIcon, Pencil1Icon, PlusIcon, TrashIcon, GearIcon, GlobeIcon, ExitIcon, HamburgerMenuIcon, PersonIcon, BackpackIcon, EnvelopeClosedIcon, FileTextIcon, Pencil2Icon, MixerHorizontalIcon, BellIcon, DotFilledIcon, DotsVerticalIcon, SymbolIcon, EraserIcon, LinkBreak1Icon, QuestionMarkCircledIcon, CaretLeftIcon, ResetIcon, ChatBubbleIcon, Share1Icon, DashboardIcon, CounterClockwiseClockIcon, ListBulletIcon, EnterIcon, LayersIcon, MoonIcon, SunIcon, DesktopIcon, CubeIcon, ClockIcon, ImageIcon, CameraIcon, MixIcon, ArchiveIcon, UploadIcon, BookmarkIcon, BookmarkFilledIcon, GroupIcon, PlayIcon, } from "@radix-ui/react-icons";
|
|
2
|
-
import { BrickWall, MessageSquareTextIcon } from "lucide-react";
|
|
3
|
-
import FilterIcon from "@fd-component-toolbox/icon/custom-icons/FdFilterIcon";
|
|
4
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
5
|
-
import FacebookLogo from "@fd-component-toolbox/logos/FacebookLogo";
|
|
6
|
-
import MicrosoftLogo from "@fd-component-toolbox/logos/MicrosoftLogo";
|
|
7
|
-
import GoogleLogo from "@fd-component-toolbox/logos/GoogleLogo";
|
|
8
|
-
/**
|
|
9
|
-
* {@link iconSizes}
|
|
10
|
-
*/
|
|
11
|
-
export const iconSizes = {
|
|
12
|
-
extraSmall: "size-3",
|
|
13
|
-
small: "size-4",
|
|
14
|
-
medium: "size-5",
|
|
15
|
-
large: "size-6",
|
|
16
|
-
extralarge: "size-7",
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* {@link iconNames}
|
|
20
|
-
*/
|
|
21
|
-
export const iconNames = {
|
|
22
|
-
visibility: "visibility",
|
|
23
|
-
visibilityOff: "visibilityOff",
|
|
24
|
-
chevronRight: "chevronRight",
|
|
25
|
-
chevronLeft: "chevronLeft",
|
|
26
|
-
chevronDown: "chevronDown",
|
|
27
|
-
chevronUp: "chevronUp",
|
|
28
|
-
trash: "trash",
|
|
29
|
-
edit: "edit",
|
|
30
|
-
cross1: "cross1",
|
|
31
|
-
cross2: "cross2",
|
|
32
|
-
bell: "bell",
|
|
33
|
-
dotsHorizontal: "dotsHorizontal",
|
|
34
|
-
magnifyingGlass: "magnifyingGlass",
|
|
35
|
-
plus: "plus",
|
|
36
|
-
check: "check",
|
|
37
|
-
caretSort: "caretSort",
|
|
38
|
-
caretDown: "caretDown",
|
|
39
|
-
caretUp: "caretUp",
|
|
40
|
-
arrowLeft: "arrowLeft",
|
|
41
|
-
arrowRight: "arrowRight",
|
|
42
|
-
doubleArrowLeft: "doubleArrowLeft",
|
|
43
|
-
doubleArrowRight: "doubleArrowRight",
|
|
44
|
-
arrowDown: "arrowDown",
|
|
45
|
-
arrowUp: "arrowUp",
|
|
46
|
-
link: "link",
|
|
47
|
-
dragHandleDots2: "dragHandleDots2",
|
|
48
|
-
calendar: "calendar",
|
|
49
|
-
globe: "globe",
|
|
50
|
-
gear: "gear",
|
|
51
|
-
exit: "exit",
|
|
52
|
-
person: "person",
|
|
53
|
-
fileText: "fileText",
|
|
54
|
-
envelopeClosed: "envelopeClosed",
|
|
55
|
-
backpack: "backpack",
|
|
56
|
-
pencil2: "pencil2",
|
|
57
|
-
mixerHorizontal: "mixerHorizontal",
|
|
58
|
-
hamburgerMenu: "hamburgerMenu",
|
|
59
|
-
dotFilled: "dotFilled",
|
|
60
|
-
refresh: "refresh",
|
|
61
|
-
eraser: "eraser",
|
|
62
|
-
facebookLogo: "facebookLogo",
|
|
63
|
-
microsoftLogo: "microsoftLogo",
|
|
64
|
-
googleLogo: "googleLogo",
|
|
65
|
-
filter: "filter",
|
|
66
|
-
reset: "reset",
|
|
67
|
-
dotsVerticalIcon: "dotsVerticalIcon",
|
|
68
|
-
questionMarkCircledIcon: "questionMarkCircledIcon",
|
|
69
|
-
caretLeftIcon: "caretLeftIcon",
|
|
70
|
-
chatBubbleIcon: "chatBubbleIcon",
|
|
71
|
-
share1Icon: "share1Icon",
|
|
72
|
-
linkBreak1Icon: "linkBreak1Icon",
|
|
73
|
-
dashboard: "dashboard",
|
|
74
|
-
listBulletIcon: "listBulletIcon",
|
|
75
|
-
eyeNoneIcon: "eyeNoneIcon",
|
|
76
|
-
eyeOpenIcon: "eyeOpenIcon",
|
|
77
|
-
counterClockwiseClockIcon: "counterClockwiseClockIcon",
|
|
78
|
-
enter: "enter",
|
|
79
|
-
layers: "layers",
|
|
80
|
-
desktop: "desktop",
|
|
81
|
-
sun: "sun",
|
|
82
|
-
moon: "moon",
|
|
83
|
-
cube: "cubeIcon",
|
|
84
|
-
clock: "clock",
|
|
85
|
-
image: "image",
|
|
86
|
-
camera: "camera",
|
|
87
|
-
mix: "mix",
|
|
88
|
-
archive: "archive",
|
|
89
|
-
upload: "upload",
|
|
90
|
-
bookmark: "bookmark",
|
|
91
|
-
bookmarkFilled: "bookmarkFilled",
|
|
92
|
-
group: "group",
|
|
93
|
-
playIcon: "playIcon",
|
|
94
|
-
brickWall: "brickWall",
|
|
95
|
-
messageIcon: "messageIcon",
|
|
96
|
-
};
|
|
97
|
-
const iconMap = {
|
|
98
|
-
visibility: EyeOpenIcon,
|
|
99
|
-
visibilityOff: EyeNoneIcon,
|
|
100
|
-
chevronRight: ChevronRightIcon,
|
|
101
|
-
chevronLeft: ChevronLeftIcon,
|
|
102
|
-
chevronDown: ChevronDownIcon,
|
|
103
|
-
chevronUp: ChevronUpIcon,
|
|
104
|
-
trash: TrashIcon,
|
|
105
|
-
cross1: Cross1Icon,
|
|
106
|
-
cross2: Cross2Icon,
|
|
107
|
-
dotsHorizontal: DotsHorizontalIcon,
|
|
108
|
-
magnifyingGlass: MagnifyingGlassIcon,
|
|
109
|
-
plus: PlusIcon,
|
|
110
|
-
check: CheckIcon,
|
|
111
|
-
caretSort: CaretSortIcon,
|
|
112
|
-
caretDown: CaretDownIcon,
|
|
113
|
-
caretUp: CaretUpIcon,
|
|
114
|
-
arrowLeft: ArrowLeftIcon,
|
|
115
|
-
arrowRight: ArrowRightIcon,
|
|
116
|
-
doubleArrowLeft: DoubleArrowLeftIcon,
|
|
117
|
-
doubleArrowRight: DoubleArrowRightIcon,
|
|
118
|
-
arrowDown: ArrowDownIcon,
|
|
119
|
-
arrowUp: ArrowUpIcon,
|
|
120
|
-
link: Link1Icon,
|
|
121
|
-
dragHandleDots2: DragHandleDots2Icon,
|
|
122
|
-
edit: Pencil1Icon,
|
|
123
|
-
calendar: CalendarIcon,
|
|
124
|
-
gear: GearIcon,
|
|
125
|
-
globe: GlobeIcon,
|
|
126
|
-
exit: ExitIcon,
|
|
127
|
-
hamburgerMenu: HamburgerMenuIcon,
|
|
128
|
-
person: PersonIcon,
|
|
129
|
-
fileText: FileTextIcon,
|
|
130
|
-
envelopeClosed: EnvelopeClosedIcon,
|
|
131
|
-
backpack: BackpackIcon,
|
|
132
|
-
pencil2: Pencil2Icon,
|
|
133
|
-
mixerHorizontal: MixerHorizontalIcon,
|
|
134
|
-
bell: BellIcon,
|
|
135
|
-
dotFilled: DotFilledIcon,
|
|
136
|
-
refresh: SymbolIcon,
|
|
137
|
-
eraser: EraserIcon,
|
|
138
|
-
facebookLogo: FacebookLogo,
|
|
139
|
-
microsoftLogo: MicrosoftLogo,
|
|
140
|
-
googleLogo: GoogleLogo,
|
|
141
|
-
filter: FilterIcon,
|
|
142
|
-
reset: ResetIcon,
|
|
143
|
-
dotsVerticalIcon: DotsVerticalIcon,
|
|
144
|
-
questionMarkCircledIcon: QuestionMarkCircledIcon,
|
|
145
|
-
caretLeftIcon: CaretLeftIcon,
|
|
146
|
-
chatBubbleIcon: ChatBubbleIcon,
|
|
147
|
-
share1Icon: Share1Icon,
|
|
148
|
-
linkBreak1Icon: LinkBreak1Icon,
|
|
149
|
-
dashboard: DashboardIcon,
|
|
150
|
-
listBulletIcon: ListBulletIcon,
|
|
151
|
-
eyeNone: EyeNoneIcon,
|
|
152
|
-
EyeOpen: EyeOpenIcon,
|
|
153
|
-
counterClockwiseClockIcon: CounterClockwiseClockIcon,
|
|
154
|
-
enter: EnterIcon,
|
|
155
|
-
layers: LayersIcon,
|
|
156
|
-
desktop: DesktopIcon,
|
|
157
|
-
sun: SunIcon,
|
|
158
|
-
moon: MoonIcon,
|
|
159
|
-
cubeIcon: CubeIcon,
|
|
160
|
-
clock: ClockIcon,
|
|
161
|
-
image: ImageIcon,
|
|
162
|
-
camera: CameraIcon,
|
|
163
|
-
mix: MixIcon,
|
|
164
|
-
archive: ArchiveIcon,
|
|
165
|
-
upload: UploadIcon,
|
|
166
|
-
bookmark: BookmarkIcon,
|
|
167
|
-
bookmarkFilled: BookmarkFilledIcon,
|
|
168
|
-
group: GroupIcon,
|
|
169
|
-
playIcon: PlayIcon,
|
|
170
|
-
brickWall: BrickWall,
|
|
171
|
-
messageIcon: MessageSquareTextIcon,
|
|
172
|
-
};
|
|
173
|
-
export const defaultSidebarIconName = iconNames.mixerHorizontal;
|
|
174
|
-
/**
|
|
175
|
-
* Icon component that provides access to Radix UI icons with standardized sizing and styling options
|
|
176
|
-
*
|
|
177
|
-
* @param FdIconProps {@link FdIconProps}
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* ```tsx
|
|
181
|
-
<FdIcon name="chevronDown" size="size-5" color="text-primary" onClick={...}/>
|
|
182
|
-
* ```
|
|
183
|
-
*/
|
|
184
|
-
export function FdIcon({ name, size, color, className, id, onClick }) {
|
|
185
|
-
if (name in iconMap) {
|
|
186
|
-
const IconComponent = iconMap[name];
|
|
187
|
-
return (<IconComponent id={id ?? ""} className={cn("stroke-[1.2]", size ?? iconSizes.small, color ?? "text-muted-foreground", className ?? "")} onClick={onClick}/>);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
function FilterIcon({ className, color, ref, ...props }) {
|
|
3
|
-
return (<svg ref={ref} width="20px" height="20px" xmlns="http://www.w3.org/2000/svg" className={className} viewBox="0 0 22 25" {...props}>
|
|
4
|
-
<g fill="none">
|
|
5
|
-
<path d="M0 0h24v24H0z"/>
|
|
6
|
-
<path color={color ?? "currentColor"} className="fill-current" fillRule="evenodd" clipRule="evenodd" d="M14 17a1 1 0 0 1 .117 1.993L14 19h-4a1 1 0 0 1-.117-1.993L10 17zm3-6a1 1 0 1 1 0 2H7a1 1 0 1 1 0-2zm3-6a1 1 0 1 1 0 2H4a1 1 0 0 1 0-2z"/>
|
|
7
|
-
</g>
|
|
8
|
-
</svg>);
|
|
9
|
-
}
|
|
10
|
-
FilterIcon.displayName = "FilterIcon";
|
|
11
|
-
export default FilterIcon;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { FdFrameworkImage } from "@fd-component-toolbox/client/framework";
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper component for Next.js Image
|
|
5
|
-
*
|
|
6
|
-
* @param FdImageProps {@link FdImageProps}
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```tsx
|
|
10
|
-
* <FdImage src="/images/logo.png" width={200} height={100} alt="Company logo"/>
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
export function FdImage(props) {
|
|
14
|
-
return <FdFrameworkImage {...props} alt={props.alt}/>;
|
|
15
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import React, { useCallback, useMemo, useRef, useState, useEffect } from "react";
|
|
3
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
4
|
-
import { FdButton } from "@fd-component-toolbox/button/FdButton";
|
|
5
|
-
import { FdIcon } from "@fd-component-toolbox/icon/FdIcon";
|
|
6
|
-
import FdLabelAnimation from "@fd-component-toolbox/animation/FdLabelAnimation";
|
|
7
|
-
import { useHover } from "@fd-toolbox/hooks/use-hover";
|
|
8
|
-
import { cva } from "class-variance-authority";
|
|
9
|
-
import { onInputBlur, onClearInput, onInputChange, onInputFocus, } from "@fd-component-toolbox/input/FdInput.funcs";
|
|
10
|
-
import { elementSuffixes } from "@fd-toolbox/constants/element-suffixes";
|
|
11
|
-
/**
|
|
12
|
-
* Using {@link https://cva.style/docs/getting-started/variants class-variance-authority}
|
|
13
|
-
*/
|
|
14
|
-
export const inputVariants = cva("relative flex h-8 w-full border-transparent transition", {
|
|
15
|
-
variants: {
|
|
16
|
-
variant: {
|
|
17
|
-
bordered: "rounded-md border border-input align-middle shadow-sm focus-within:border-ring",
|
|
18
|
-
float: "border-b border-border transition",
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
defaultVariants: {
|
|
22
|
-
variant: "float",
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
/**
|
|
26
|
-
* Customizable input component with floating label, clear functionality, and support for additional action buttons
|
|
27
|
-
*
|
|
28
|
-
* @param FdInputProps {@link FdInputProps}
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```tsx
|
|
32
|
-
* <FdFormField render={({ field }) => (
|
|
33
|
-
* ...
|
|
34
|
-
* <FdInput {...field} type="text" label="Label" placeholder="Placeholder" showClearIcon={true}/>
|
|
35
|
-
* ...
|
|
36
|
-
* )}
|
|
37
|
-
* />
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export function FdInput({ className, inputId, showClearIcon, value, onChange, onClear, onBlur, label, skipAnimationOnce, variant, children: icons, isDisableFocus, ref, ...props }) {
|
|
41
|
-
const isError = props["aria-invalid"] && props["aria-invalid"] !== "false";
|
|
42
|
-
const [isInFocus, setIsInFocus] = useState(false);
|
|
43
|
-
const [isHovered, setIsHovered] = useState(false);
|
|
44
|
-
const [isInputHovered, hoverHandlers] = useHover();
|
|
45
|
-
const [inputValue, setInputValue] = useState("");
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (value) {
|
|
48
|
-
setInputValue(value);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
setInputValue("");
|
|
52
|
-
}
|
|
53
|
-
}, [value]);
|
|
54
|
-
const isClearIconVisible = useMemo(() => value && (isHovered || isInFocus), [isHovered, value, isInFocus]);
|
|
55
|
-
const onChangeCallback = useCallback((e) => {
|
|
56
|
-
onInputChange(e, setInputValue, onChange);
|
|
57
|
-
}, [onChange]);
|
|
58
|
-
const onBlurCallback = useCallback((e) => {
|
|
59
|
-
onBlur?.(e.target.value);
|
|
60
|
-
}, [onBlur]);
|
|
61
|
-
const onClearCallback = useCallback(() => {
|
|
62
|
-
onClearInput(setInputValue, setIsInFocus, onChange, onClear);
|
|
63
|
-
}, [onChange, onClear]);
|
|
64
|
-
const onMouseEnter = useCallback(() => {
|
|
65
|
-
setIsHovered(true);
|
|
66
|
-
}, []);
|
|
67
|
-
const onMouseLeave = useCallback(() => {
|
|
68
|
-
setIsHovered(false);
|
|
69
|
-
}, []);
|
|
70
|
-
const shouldLabelAnimate = useMemo(() => !!value || !!props.defaultValue || isInFocus, [value, props.defaultValue, isInFocus]);
|
|
71
|
-
const iconsBlockRef = useRef(null);
|
|
72
|
-
const handleFocus = useCallback(() => {
|
|
73
|
-
onInputFocus(setIsInFocus, isDisableFocus);
|
|
74
|
-
}, [isDisableFocus, setIsInFocus]);
|
|
75
|
-
const onInputBlurCallback = useCallback((e) => {
|
|
76
|
-
onInputBlur(e, setIsInFocus, onBlurCallback);
|
|
77
|
-
}, [onBlurCallback]);
|
|
78
|
-
return (<div className={cn(inputVariants({ variant }), (variant ?? "float") === "float" && (isInFocus || isHovered) && "border-fd-accent")} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>
|
|
79
|
-
<input ref={ref} value={inputValue} onChange={onChangeCallback} className={cn("mt-1 flex w-full bg-background pl-2 pr-1 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed", className, isError && "border border-destructive focus-visible:outline-none")} {...props} id={inputId} tabIndex={isDisableFocus ? -1 : 0} onFocus={handleFocus} onBlur={onInputBlurCallback} {...hoverHandlers}/>
|
|
80
|
-
|
|
81
|
-
<div className="z-10 flex items-center justify-end bg-background">
|
|
82
|
-
{!props.disabled && showClearIcon && (<FdButton variant="icon" size="icon" type="button" onClick={onClearCallback} tabIndex={-1} className={cn("w-4 transition-[transform,opacity]", icons ? "mx-2 translate-y-0" : "absolute right-2 top-1/2 -translate-y-1/2", !isClearIconVisible
|
|
83
|
-
? cn("pointer-events-none w-0 animate-fade-out", (variant ?? "float") === "float" && "-translate-y-0 opacity-0")
|
|
84
|
-
: "animate-fade-in")}>
|
|
85
|
-
<FdIcon name="eraser" size="extraSmall"/>
|
|
86
|
-
</FdButton>)}
|
|
87
|
-
{label && (<FdLabelAnimation className="max-w-fit" label={label} shouldAnimate={shouldLabelAnimate} isParentHovered={isInputHovered} isErrorStyle={isError} skipAnimationOnce={skipAnimationOnce} variant={variant ?? "float"}/>)}
|
|
88
|
-
{icons && (<div id={props.id + elementSuffixes.edit} ref={iconsBlockRef} className="z-10 flex h-2/3 items-center bg-background pr-2">
|
|
89
|
-
{icons}
|
|
90
|
-
</div>)}
|
|
91
|
-
</div>
|
|
92
|
-
</div>);
|
|
93
|
-
}
|
|
94
|
-
FdInput.displayName = "FdInput";
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
4
|
-
import { cva } from "class-variance-authority";
|
|
5
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
6
|
-
/**
|
|
7
|
-
* Using {@link https://cva.style/docs/getting-started/variants class-variance-authority}
|
|
8
|
-
*/
|
|
9
|
-
const labelVariants = cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
10
|
-
/**
|
|
11
|
-
* Сustomizable label component
|
|
12
|
-
*
|
|
13
|
-
* Based on {@link https://ui.shadcn.com/docs/components/label Label}
|
|
14
|
-
*/
|
|
15
|
-
function FdLabel({ className, ref, ...props }) {
|
|
16
|
-
return <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props}/>;
|
|
17
|
-
}
|
|
18
|
-
FdLabel.displayName = LabelPrimitive.Root.displayName;
|
|
19
|
-
export { FdLabel };
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { FdFrameworkLink } from "@fd-component-toolbox/client/framework";
|
|
2
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
3
|
-
/**
|
|
4
|
-
* Сustomizable Next.js Link component
|
|
5
|
-
*
|
|
6
|
-
* @param FdLinkProps {@link FdLinkProps}
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```tsx
|
|
10
|
-
* <FdLink href="https://example.com" openInNewTab={true} onClick={...}>
|
|
11
|
-
* External Link
|
|
12
|
-
* </FdLink>
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export function FdLink({ href, className, children, onClick, openInNewTab, id }) {
|
|
16
|
-
return (<FdFrameworkLink id={id} href={href} className={cn("outline-none focus-visible:ring-1 focus-visible:ring-primary", className)} onClick={onClick} {...(openInNewTab && {
|
|
17
|
-
target: "_blank",
|
|
18
|
-
rel: "noopener noreferrer",
|
|
19
|
-
})}>
|
|
20
|
-
{children}
|
|
21
|
-
</FdFrameworkLink>);
|
|
22
|
-
}
|
|
23
|
-
export default FdLink;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from "@fd-toolbox/lib/utils";
|
|
3
|
-
/**
|
|
4
|
-
* List component that automatically adds scrolling when containing more than 8 items
|
|
5
|
-
*
|
|
6
|
-
* @param IFdListProps {@link IFdListProps}
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```tsx
|
|
10
|
-
* <FdList itemCount={10}>
|
|
11
|
-
* ...
|
|
12
|
-
* </FdList>
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export function FdList({ className, children, itemCount }) {
|
|
16
|
-
const shouldShowScroll = (itemCount ?? 0) > 8;
|
|
17
|
-
return (<ul className={cn("px-1", shouldShowScroll ? "max-h-96 overflow-y-scroll" : "max-h-full", className)}>
|
|
18
|
-
{children}
|
|
19
|
-
</ul>);
|
|
20
|
-
}
|