@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.
Files changed (303) hide show
  1. package/package.json +211 -7
  2. package/cli/.gitlab-ci.yml +0 -14
  3. package/cli/.husky/commit-msg +0 -1
  4. package/cli/.husky/pre-commit +0 -1
  5. package/cli/README.md +0 -101
  6. package/cli/bin/index.ts +0 -358
  7. package/cli/drizzle.config.ts +0 -12
  8. package/cli/global-setup.ts +0 -25
  9. package/cli/npm-commands/gen-meta/index.ts +0 -3
  10. package/cli/npm-commands/gen-schema/index.ts +0 -5
  11. package/cli/npm-commands/migrate-db/index.ts +0 -5
  12. package/cli/npm-commands/migrate-db/migrate-db.ts +0 -15
  13. package/cli/npm-commands/seed-db/index.ts +0 -5
  14. package/cli/npm-commands/seed-db/seed-db.ts +0 -15
  15. package/cli/playwright.config.ts +0 -34
  16. package/cli/postcss.config.mjs +0 -9
  17. package/cli/server.ts +0 -41
  18. package/cli/src/app/api/v1/[resourceName]/[id]/route.ts/route.ts +0 -11
  19. package/cli/src/app/api/v1/[resourceName]/route.ts/route.ts +0 -14
  20. package/cli/src/app/api/v1/[resourceName]/upsert/route.ts/route.ts +0 -3
  21. package/cli/src/app/api/v1/log/route.ts/route.ts +0 -7
  22. package/cli/src/app/api/v1/otheruser/[id]/route.ts/route.ts +0 -14
  23. package/cli/src/app/api/v1/otheruser/route.ts/route.ts +0 -7
  24. package/cli/src/app/api/v1/password/forgotpassword/route.ts/route.ts +0 -3
  25. package/cli/src/app/api/v1/password/resetpassword/route.ts/route.ts +0 -3
  26. package/cli/src/app/api/v1/payment/method/route.ts/route.ts +0 -4
  27. package/cli/src/app/api/v1/payment/route.ts/route.ts +0 -3
  28. package/cli/src/app/api/v1/payment/verify-fail/route.ts/route.ts +0 -3
  29. package/cli/src/app/api/v1/payment/verify-success/route.ts/route.ts +0 -3
  30. package/cli/src/app/api/v1/preload/route.ts/route.ts +0 -3
  31. package/cli/src/app/api/v1/searchable-resources/route.ts/route.ts +0 -11
  32. package/cli/src/app/api/v1/searchresult/route.ts/route.ts +0 -35
  33. package/cli/src/app/api/v1/sign-in/route.ts/route.ts +0 -3
  34. package/cli/src/app/api/v1/sign-out/route.ts/route.ts +0 -3
  35. package/cli/src/app/api/v1/sign-up/route.ts/route.ts +0 -3
  36. package/cli/src/app/api/v1/subscription/cancel/route.ts/route.ts +0 -3
  37. package/cli/src/app/api/v1/subscription/create/route.ts/route.ts +0 -3
  38. package/cli/src/app/api/v1/subscription/update/route.ts/route.ts +0 -3
  39. package/cli/src/app/api/v1/uimeta/route.ts/route.ts +0 -3
  40. package/cli/src/app/api/v1/uimetas/route.ts/route.ts +0 -3
  41. package/cli/src/app/api/v1/userpermission/route.ts/route.ts +0 -3
  42. package/cli/src/app/api/v1/visible-workspace/route.ts/route.ts +0 -5
  43. package/cli/src/app/api/v1/workspace/change/route.ts/route.ts +0 -5
  44. package/cli/src/app/favicon.ico +0 -0
  45. package/cli/src/app/layout.tsx +0 -42
  46. package/cli/src/app/page.tsx +0 -9
  47. package/cli/tailwind.config.ts +0 -13
  48. package/packages/base-repo/tools/git/commit-msg-script.ts +0 -42
  49. package/packages/base-repo/tools/git/pre-commit-script.ts +0 -431
  50. package/packages/level2/client/components/error-fallback/FdErrorFallback.jsx +0 -14
  51. package/packages/level2/client/components/feed/FdFeed.funcs.jsx +0 -65
  52. package/packages/level2/client/components/feed/FdFeed.jsx +0 -34
  53. package/packages/level2/client/components/feed/FdFeedActions.jsx +0 -15
  54. package/packages/level2/client/components/feed/FdFeedComments.jsx +0 -6
  55. package/packages/level2/client/components/feed/FdFeedEntry.jsx +0 -36
  56. package/packages/level2/client/components/feed/FdFeedHeader.jsx +0 -23
  57. package/packages/level2/client/components/feed/FdFeedReactionsSummary.jsx +0 -16
  58. package/packages/level2/client/components/providers/FdProviders.jsx +0 -28
  59. package/packages/level2/client/components/subscription-plan/FdSubscriptionPlan.jsx +0 -163
  60. package/packages/level2/client/components/wizard/FdWizard.jsx +0 -45
  61. package/packages/level2/client/components/wizard/FdWizardStepper.jsx +0 -55
  62. package/packages/level2/client/pages/dashboard-page/DashbordPage.jsx +0 -46
  63. package/packages/level2/client/pages/dynamic-layout-page/DynamicLayoutPage.jsx +0 -22
  64. package/packages/level2/client/pages/edit-password-page/EditPasswordPage.jsx +0 -8
  65. package/packages/level2/client/pages/edit-user-by-id-page/EditUserByIdPage.jsx +0 -14
  66. package/packages/level2/client/pages/edit-user-page/EditUserPage.jsx +0 -6
  67. package/packages/level2/client/pages/feed-page/FeedPage.jsx +0 -8
  68. package/packages/level2/client/pages/file-upload-page/FileUploadPage.jsx +0 -7
  69. package/packages/level2/client/pages/forgot-password-page/ForgotPasswordPage.jsx +0 -8
  70. package/packages/level2/client/pages/leads-viw-page/LeadsViewPage.jsx +0 -6
  71. package/packages/level2/client/pages/microsoft-page/MicrosoftPage.jsx +0 -16
  72. package/packages/level2/client/pages/payment-plan-page/PaymentPlanPage.jsx +0 -18
  73. package/packages/level2/client/pages/preload-page/PreloadPage.jsx +0 -25
  74. package/packages/level2/client/pages/reset-password-page/ResetPasswordPage.jsx +0 -8
  75. package/packages/level2/client/pages/screenshot-page/TestScreenshotPage.jsx +0 -23
  76. package/packages/level2/client/pages/sign-in-page/SignInPage.jsx +0 -24
  77. package/packages/level2/client/pages/sign-up-page/SignUpPage.jsx +0 -9
  78. package/packages/level2/client/pages/status-board-page/StatusBoardPage.jsx +0 -6
  79. package/packages/level2/client/pages/test-layout/TestLayout.jsx +0 -11
  80. package/packages/level2/client/pages/test-page/TestPage.jsx +0 -12
  81. package/packages/level2/client/pages/user-list-page/UserListPage.jsx +0 -4
  82. package/packages/level2/client/pages/view-page/ViewPage.jsx +0 -21
  83. package/packages/level2/client/payments/change-payment-method-field/ChangePaymentMethodField.jsx +0 -48
  84. package/packages/level2/client/payments/checkout-form/CheckoutForm.jsx +0 -95
  85. package/packages/level2/client/payments/checkout-form/CheckoutFormSubmit.jsx +0 -11
  86. package/packages/level2/client/payments/checkout-form/checkout-form-fields.jsx +0 -68
  87. package/packages/level2/client/website-scan/FdWebsiteScanResult.funcs.jsx +0 -12
  88. package/packages/level2/client/website-scan/FdWebsiteScanResult.jsx +0 -33
  89. package/packages/level2/client/website-scan/website-scan-data.jsx +0 -28
  90. package/packages/level2/client/website-scan/website-scan-icons/FacebookIcon.jsx +0 -6
  91. package/packages/level2/client/website-scan/website-scan-icons/FacebookPixelIcon.jsx +0 -49
  92. package/packages/level2/client/website-scan/website-scan-icons/GoogleAnalyticsIcon.jsx +0 -7
  93. package/packages/level2/client/website-scan/website-scan-icons/InstagramIcon.jsx +0 -32
  94. package/packages/level2/client/website-scan/website-scan-icons/LinkedinIcon.jsx +0 -6
  95. package/packages/level2/client/website-scan/website-scan-icons/OtherPlatformIcon.jsx +0 -110
  96. package/packages/level2/client/website-scan/website-scan-icons/ShopifyIcon.jsx +0 -46
  97. package/packages/level2/client/website-scan/website-scan-icons/SquarespaceIcon.jsx +0 -57
  98. package/packages/level2/client/website-scan/website-scan-icons/TiktokIcon.jsx +0 -15
  99. package/packages/level2/client/website-scan/website-scan-icons/WixIcon.jsx +0 -62
  100. package/packages/level2/client/website-scan/website-scan-icons/WordpressIcon.jsx +0 -53
  101. package/packages/level2/client/website-scan/website-scan-icons/XIcon.jsx +0 -6
  102. package/packages/level2/fd-app-toolbox/edit-other-user/EditOtherUser.jsx +0 -7
  103. package/packages/level2/fd-app-toolbox/edit-password-form/EditPasswordForm.jsx +0 -68
  104. package/packages/level2/fd-app-toolbox/edit-user-form/EditUserForm.jsx +0 -122
  105. package/packages/level2/fd-app-toolbox/edit-user-sheet/EditUserSheet.jsx +0 -35
  106. package/packages/level2/fd-app-toolbox/forgot-password-form/ForgotPasswordForm.jsx +0 -87
  107. package/packages/level2/fd-app-toolbox/layout/client-layout/ClientLayout.jsx +0 -19
  108. package/packages/level2/fd-app-toolbox/layout/client-root/ClientRoot.jsx +0 -32
  109. package/packages/level2/fd-app-toolbox/layout/hamburger-menu/FdHamburgerMenu.jsx +0 -47
  110. package/packages/level2/fd-app-toolbox/layout/navbar/FdNarrowNavbar.jsx +0 -40
  111. package/packages/level2/fd-app-toolbox/layout/sidebar/FdSidebar.jsx +0 -48
  112. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdDropdownMenuItemTitle.jsx +0 -12
  113. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-dropdown-menu/FdSidebarDropdownMenu.jsx +0 -81
  114. package/packages/level2/fd-app-toolbox/layout/sidebar/sidebar-resources-provider.jsx +0 -30
  115. package/packages/level2/fd-app-toolbox/layout/toolbar/FdToolbar.jsx +0 -89
  116. package/packages/level2/fd-app-toolbox/layout/toolbar/FdTopNav.jsx +0 -42
  117. package/packages/level2/fd-app-toolbox/layout/toolbar/title-provider/ToolbarTitleProvider.jsx +0 -10
  118. package/packages/level2/fd-app-toolbox/login-form/LoginForm.jsx +0 -165
  119. package/packages/level2/fd-app-toolbox/menu/notifications-menu/FdNotificationMenu.jsx +0 -43
  120. package/packages/level2/fd-app-toolbox/menu/notifications-menu/notification-list/FdNotificationList.jsx +0 -53
  121. package/packages/level2/fd-app-toolbox/menu/top-menu/FdTopMenu.jsx +0 -28
  122. package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-group/FdTopMenuGroup.jsx +0 -35
  123. package/packages/level2/fd-app-toolbox/menu/top-menu/top-menu-item/FdTopMenuItem.jsx +0 -47
  124. package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/FdUserDropdownMenu.jsx +0 -122
  125. package/packages/level2/fd-app-toolbox/menu/user-dropdown-menu/user-dropdown-menu-item/FdUserDropdownMenuItem.jsx +0 -56
  126. package/packages/level2/fd-app-toolbox/menu/visible-workspace-picker/FdVisibleWorkspacePicker.jsx +0 -36
  127. package/packages/level2/fd-app-toolbox/menu/workspace-picker/FdWorkspacePicker.jsx +0 -47
  128. package/packages/level2/fd-app-toolbox/providers/ThemeProvider/ThemeProvider.jsx +0 -27
  129. package/packages/level2/fd-app-toolbox/providers/auth-provider/AuthProvider.jsx +0 -38
  130. package/packages/level2/fd-app-toolbox/providers/sidebar-provider/FdSidebarContext.jsx +0 -17
  131. package/packages/level2/fd-app-toolbox/register-form/RegisterForm.jsx +0 -119
  132. package/packages/level2/fd-app-toolbox/report/FdChart.jsx +0 -120
  133. package/packages/level2/fd-app-toolbox/report/ReportChart.jsx +0 -29
  134. package/packages/level2/fd-app-toolbox/reset-password-form/ResetPasswordForm.jsx +0 -81
  135. package/packages/level2/fd-app-toolbox/search/FdSearch.jsx +0 -56
  136. package/packages/level2/fd-app-toolbox/search/search-dialog/FdSearchDialog.jsx +0 -72
  137. package/packages/level2/fd-app-toolbox/search/search-dialog-provider.jsx +0 -16
  138. package/packages/level2/fd-app-toolbox/search/search-input/FdSearchInput.jsx +0 -49
  139. package/packages/level2/fd-app-toolbox/search/search-resource-results/FdSearchResourcesResults.jsx +0 -36
  140. package/packages/level2/fd-app-toolbox/search/search-result/FdSearchResult.jsx +0 -46
  141. package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResult.jsx +0 -43
  142. package/packages/level2/fd-app-toolbox/search/search-searchable-resource-results/FdSearchSearchableResourceResults.jsx +0 -22
  143. package/packages/level2/fd-app-toolbox/server/layout/private-layout/PrivateLayout.jsx +0 -32
  144. package/packages/level2/fd-app-toolbox/status-board/FdStatusBoard.jsx +0 -49
  145. package/packages/level2/fd-app-toolbox/status-board/status-board-item/FdStatusBoardItem.jsx +0 -17
  146. package/packages/level2/fd-app-toolbox/status-board/status-board-status/FdStatusBoardStatus.jsx +0 -27
  147. package/packages/level2/fd-app-toolbox/user-list/UserList.jsx +0 -58
  148. package/packages/level2/fd-component-toolbox/animation/FdLabelAnimation.jsx +0 -55
  149. package/packages/level2/fd-component-toolbox/avatar/FdAvatar.jsx +0 -50
  150. package/packages/level2/fd-component-toolbox/back-button/FdBackButton.jsx +0 -21
  151. package/packages/level2/fd-component-toolbox/badge/FdBadge.jsx +0 -19
  152. package/packages/level2/fd-component-toolbox/badge-toggle-list/FdBadgeToggleList.jsx +0 -47
  153. package/packages/level2/fd-component-toolbox/button/FdButton.jsx +0 -64
  154. package/packages/level2/fd-component-toolbox/calendar/FdCalendar.jsx +0 -68
  155. package/packages/level2/fd-component-toolbox/card/FdCard.jsx +0 -56
  156. package/packages/level2/fd-component-toolbox/card/FdCardBigDigits.jsx +0 -25
  157. package/packages/level2/fd-component-toolbox/chart/FdChart.jsx +0 -269
  158. package/packages/level2/fd-component-toolbox/checkbox/FdCheckbox.jsx +0 -39
  159. package/packages/level2/fd-component-toolbox/command/FdCommand.jsx +0 -123
  160. package/packages/level2/fd-component-toolbox/datepicker/FdDatePicker.jsx +0 -155
  161. package/packages/level2/fd-component-toolbox/dialog/FdDialog.jsx +0 -106
  162. package/packages/level2/fd-component-toolbox/dialog/YesOrNoDialog.jsx +0 -57
  163. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDragDropContext.jsx +0 -19
  164. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDraggable.jsx +0 -27
  165. package/packages/level2/fd-component-toolbox/drag-and-drop/FdDroppable.jsx +0 -22
  166. package/packages/level2/fd-component-toolbox/dropdown-menu/FdDropdownMenu.jsx +0 -198
  167. package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicComponent.jsx +0 -27
  168. package/packages/level2/fd-component-toolbox/dynamic-layout/FdDynamicLayoutDragAndDrop.jsx +0 -78
  169. package/packages/level2/fd-component-toolbox/fade-out-text/FdFadeOutText.jsx +0 -52
  170. package/packages/level2/fd-component-toolbox/form/FdForm.jsx +0 -146
  171. package/packages/level2/fd-component-toolbox/icon/FdIcon.jsx +0 -192
  172. package/packages/level2/fd-component-toolbox/icon/custom-icons/FdFilterIcon.jsx +0 -11
  173. package/packages/level2/fd-component-toolbox/image/FdImage.jsx +0 -15
  174. package/packages/level2/fd-component-toolbox/input/FdInput.jsx +0 -94
  175. package/packages/level2/fd-component-toolbox/label/FdLabel.jsx +0 -19
  176. package/packages/level2/fd-component-toolbox/link/FdLink.jsx +0 -23
  177. package/packages/level2/fd-component-toolbox/list/FdList.jsx +0 -20
  178. package/packages/level2/fd-component-toolbox/list/list-item/FdListItem.jsx +0 -46
  179. package/packages/level2/fd-component-toolbox/loading/FdLoadingIndicator.jsx +0 -7
  180. package/packages/level2/fd-component-toolbox/logos/FacebookLogo.jsx +0 -11
  181. package/packages/level2/fd-component-toolbox/logos/GoogleLogo.jsx +0 -12
  182. package/packages/level2/fd-component-toolbox/logos/MicrosoftLogo.jsx +0 -11
  183. package/packages/level2/fd-component-toolbox/markdown/FdMarkdown.jsx +0 -105
  184. package/packages/level2/fd-component-toolbox/markdown/markdown-parser.jsx +0 -72
  185. package/packages/level2/fd-component-toolbox/multiselect/FdMultiselect.jsx +0 -240
  186. package/packages/level2/fd-component-toolbox/navigation/FdNavigation.jsx +0 -43
  187. package/packages/level2/fd-component-toolbox/navigation/navigation-item/FdNavigationItem.jsx +0 -23
  188. package/packages/level2/fd-component-toolbox/radio-group/FdRadioGroup.jsx +0 -46
  189. package/packages/level2/fd-component-toolbox/rich-text/FdRichText.jsx +0 -58
  190. package/packages/level2/fd-component-toolbox/save-status/FdSaveStatus.jsx +0 -40
  191. package/packages/level2/fd-component-toolbox/select/FdSelect.jsx +0 -173
  192. package/packages/level2/fd-component-toolbox/separator/FdSeparator.jsx +0 -19
  193. package/packages/level2/fd-component-toolbox/sheet/FdSheet.jsx +0 -121
  194. package/packages/level2/fd-component-toolbox/slide-toggle/FdSlideToggle.jsx +0 -57
  195. package/packages/level2/fd-component-toolbox/spinner/Spinner.jsx +0 -36
  196. package/packages/level2/fd-component-toolbox/subheading/FdSubHeading.jsx +0 -12
  197. package/packages/level2/fd-component-toolbox/switch/FdSwitch.jsx +0 -55
  198. package/packages/level2/fd-component-toolbox/tabs/FdTabs.jsx +0 -53
  199. package/packages/level2/fd-component-toolbox/textarea/FdTextArea.jsx +0 -42
  200. package/packages/level2/fd-component-toolbox/toaster/FdToaster.jsx +0 -20
  201. package/packages/level2/fd-component-toolbox/tooltip/FdTooltip.jsx +0 -80
  202. package/packages/level2/meta/browsers/base-multi-browser/FdBaseMultiBrowser.jsx +0 -72
  203. package/packages/level2/meta/browsers/base-multi-browser/base-multi-browser-dialog/FdBaseMultiBrowserDialog.jsx +0 -159
  204. package/packages/level2/meta/browsers/browser/FdBrowser.jsx +0 -58
  205. package/packages/level2/meta/browsers/browser/browser-dialog/FdBrowserDialog.jsx +0 -89
  206. package/packages/level2/meta/browsers/many-to-many-browser/FdManyToManyBrowser.jsx +0 -33
  207. package/packages/level2/meta/browsers/multi-browser/FdMultiBrowser.jsx +0 -32
  208. package/packages/level2/meta/card-list/FdCardList.jsx +0 -40
  209. package/packages/level2/meta/card-list/card/FdCard.jsx +0 -44
  210. package/packages/level2/meta/card-list/card/action-block/FdCardActionBlock.jsx +0 -70
  211. package/packages/level2/meta/card-list/card/content-block/FdCardContentBlock.jsx +0 -64
  212. package/packages/level2/meta/card-list/card/image-block/FdCardImage.jsx +0 -10
  213. package/packages/level2/meta/client/framework/hooks.jsx +0 -39
  214. package/packages/level2/meta/comment/FdComment.jsx +0 -16
  215. package/packages/level2/meta/comment/FdCommentList.jsx +0 -32
  216. package/packages/level2/meta/components/edit-image/FdEditImage.jsx +0 -42
  217. package/packages/level2/meta/components/edit-image/FdEditImageActionMenu.jsx +0 -31
  218. package/packages/level2/meta/components/edit-image/FdEditImageDropdownMenu.jsx +0 -42
  219. package/packages/level2/meta/components/file-upload/FileUpload.jsx +0 -103
  220. package/packages/level2/meta/components/file-upload/PreviewMedia.jsx +0 -36
  221. package/packages/level2/meta/components/multi-list/FdMultiList.jsx +0 -65
  222. package/packages/level2/meta/components/multi-list/FdMultiListEditResource.jsx +0 -31
  223. package/packages/level2/meta/edit-resource/FdEditResource.jsx +0 -135
  224. package/packages/level2/meta/edit-resource/FdEditResourceFormBody.jsx +0 -8
  225. package/packages/level2/meta/edit-resource/FdEditResourceHeader.jsx +0 -43
  226. package/packages/level2/meta/edit-resource/FdEditResourceSheet.jsx +0 -70
  227. package/packages/level2/meta/edit-resource/SaveCompleteProvider.jsx +0 -16
  228. package/packages/level2/meta/edit-resource/edit-link/FdEditLink.jsx +0 -48
  229. package/packages/level2/meta/edit-resource/edit-link/FdEditLinkResource.jsx +0 -18
  230. package/packages/level2/meta/edit-resource/edit-resource-dialog/FdEditResourceDialog.jsx +0 -34
  231. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceBlobField.jsx +0 -15
  232. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceEnumField.jsx +0 -35
  233. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceFlagsEnumField.jsx +0 -23
  234. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceImageField.jsx +0 -7
  235. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourcePropertyBlock.jsx +0 -38
  236. package/packages/level2/meta/edit-resource/edit-resource-property-block/FdEditResourceRichTextField.jsx +0 -16
  237. package/packages/level2/meta/edit-resource/edit-resource-property-block/edit-resource-fields.jsx +0 -53
  238. package/packages/level2/meta/edit-resource/edit-resource-property-field/FdEditResourcePropertyField.jsx +0 -105
  239. package/packages/level2/meta/filtering/filter/FdEnumFlagFilter.jsx +0 -40
  240. package/packages/level2/meta/filtering/filter/FdFilter.jsx +0 -123
  241. package/packages/level2/meta/filtering/filter/filters/BooleanFilter.jsx +0 -25
  242. package/packages/level2/meta/filtering/filter/filters/DateFilter.jsx +0 -10
  243. package/packages/level2/meta/filtering/filter/filters/EnumFilter.jsx +0 -44
  244. package/packages/level2/meta/filtering/filter/filters/GuidFilter.jsx +0 -28
  245. package/packages/level2/meta/filtering/filter/filters/IntegerFilter.jsx +0 -28
  246. package/packages/level2/meta/filtering/filter/filters/TextFilter.jsx +0 -11
  247. package/packages/level2/meta/filtering/resource-filter-list/FdResourceFilterList.jsx +0 -120
  248. package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.funcs.jsx +0 -4
  249. package/packages/level2/meta/filtering/resource-filter-list/resource-list-dropdown-menu/ResourceListDropdownMenu.jsx +0 -43
  250. package/packages/level2/meta/providers/global-provider/FdGlobalContext.jsx +0 -17
  251. package/packages/level2/meta/resource-list/ResourceList.jsx +0 -63
  252. package/packages/level2/meta/resource-list/resource-add-button.jsx +0 -11
  253. package/packages/level2/meta/resource-list/resource-list-card/FdResourceListCard.jsx +0 -7
  254. package/packages/level2/meta/resource-list/resource-list-filter/FdResourceListFilter.jsx +0 -11
  255. package/packages/level2/meta/resource-list/resource-table-list/FdResourceTableList.jsx +0 -14
  256. package/packages/level2/meta/table/FdTable.jsx +0 -147
  257. package/packages/level2/meta/table/body/FdTableBody.jsx +0 -9
  258. package/packages/level2/meta/table/body-cell/FdActionBodyCell.jsx +0 -145
  259. package/packages/level2/meta/table/body-cell/FdBlobBodyCell.jsx +0 -27
  260. package/packages/level2/meta/table/body-cell/FdBodyCell.jsx +0 -133
  261. package/packages/level2/meta/table/body-cell/FdBodyCellValue.jsx +0 -59
  262. package/packages/level2/meta/table/body-cell/FdBodyExpandCell.jsx +0 -6
  263. package/packages/level2/meta/table/body-cell/FdBodyExpandPropertyCell.jsx +0 -22
  264. package/packages/level2/meta/table/body-cell/FdCustomActionLink.jsx +0 -16
  265. package/packages/level2/meta/table/body-cell/FdMultiselectCellTemplate.jsx +0 -39
  266. package/packages/level2/meta/table/body-cell/FdViewCell.jsx +0 -12
  267. package/packages/level2/meta/table/body-row/FdTableBodyRow.jsx +0 -49
  268. package/packages/level2/meta/table/header/FdTableHeader.jsx +0 -54
  269. package/packages/level2/meta/table/header-cell/FdResizable.jsx +0 -18
  270. package/packages/level2/meta/table/header-cell/FdResizableEdgeHandle.jsx +0 -4
  271. package/packages/level2/meta/table/header-cell/FdTableHeaderActionCell.jsx +0 -49
  272. package/packages/level2/meta/table/header-cell/FdTableHeaderCell.jsx +0 -89
  273. package/packages/level2/meta/table/header-cell/FdTableHeaderCellActionButton.jsx +0 -23
  274. package/packages/level2/meta/table/pager/FdPager.jsx +0 -72
  275. package/packages/level2/meta/table/table-custom-action/TableCustomAction.jsx +0 -26
  276. package/packages/level2/meta/view/FdView.jsx +0 -31
  277. package/packages/level2/meta/view/FdViewSheet.jsx +0 -103
  278. package/packages/level2/meta/view/view-resource/FdViewResource.jsx +0 -108
  279. package/packages/level2/meta/view/view-resource/templates/ManyToOneTableHeaderCellTemplate.jsx +0 -13
  280. package/src/app/error.jsx +0 -5
  281. package/src/app/global-error.jsx +0 -5
  282. package/src/app/loading.jsx +0 -11
  283. package/src/hd/footer/HdFooter.jsx +0 -27
  284. package/src/hd/footer/hd-footer-item/HdFooterItem.jsx +0 -14
  285. package/src/lm/ai-scan/AiScanAction.jsx +0 -21
  286. package/src/lm/ai-scan/cell-templates/AiScanWebsiteResultCellTemplate.jsx +0 -31
  287. package/src/lm/components/LmCardReport.jsx +0 -12
  288. package/src/lm/configs/lm-list-configs.jsx +0 -72
  289. package/src/lm/google-place/action-dropdown/GooglePlaceActionDropdown.jsx +0 -42
  290. package/src/lm/google-place/actions/GooglePlaceSaveToGroupAction.jsx +0 -22
  291. package/src/lm/google-place/cell-templates/GooglePlaceBusinessInfoCellTemplate.jsx +0 -59
  292. package/src/lm/google-place/cell-templates/GooglePlaceEmailsCellTemplate.jsx +0 -34
  293. package/src/lm/google-place/cell-templates/GooglePlaceScanAction.jsx +0 -15
  294. package/src/lm/lead/action-dropdown/LeadActionDropdown.jsx +0 -39
  295. package/src/lm/lead/actions/move-to-group-action/LeadMoveToGroupAction.jsx +0 -28
  296. package/src/lm/lead/cell-templates/LeadBusinessInfoCellTemplate.jsx +0 -64
  297. package/src/lm/lead/cell-templates/LeadScanAction.jsx +0 -15
  298. package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicator.jsx +0 -8
  299. package/src/lm/lead/lead-google-place/LeadGooglePlaceIndicators.jsx +0 -17
  300. package/src/lm/lead/lead-google-place/LeadGooglePlaceInfo.jsx +0 -15
  301. package/src/lm/lead/view/LeadsView.jsx +0 -8
  302. package/src/lm/pages/HomePage.jsx +0 -53
  303. package/types-output/tsconfig.tsbuildinfo +0 -1
@@ -1,46 +0,0 @@
1
- "use client";
2
- import { cn } from "@fd-toolbox/lib/utils";
3
- import { scrollListItemIntoView, setListItemTextOverflowing, } from "@fd-component-toolbox/list/list-item/FdListItem.funcs";
4
- import * as Tooltip from "@radix-ui/react-tooltip";
5
- import React, { useEffect, useLayoutEffect, useRef, useState } from "react";
6
- import { FdTooltip, FdTooltipContent, FdTooltipProvider, FdTooltipTrigger, } from "@fd-component-toolbox/tooltip/FdTooltip";
7
- /**
8
- * List item component with built-in tooltip
9
- *
10
- * @param IFdListItemProps {@link IFdListItemProps}
11
- *
12
- * @example
13
- * ```tsx
14
- * <FdListItem showTooltip={true} isActive={...} onNavigate={...}>
15
- * itemName
16
- * </FdListItem>
17
- * ```
18
- */
19
- export function FdListItem({ className, showTooltip, children, onNavigate, isActive }) {
20
- const [isTextOverflowing, setIsTextOverflowing] = useState(false);
21
- const textRef = useRef(null);
22
- const containerRef = useRef(null);
23
- useEffect(() => {
24
- if (containerRef?.current && isActive)
25
- scrollListItemIntoView(containerRef?.current);
26
- }, [isActive]);
27
- useLayoutEffect(() => {
28
- if (textRef.current && containerRef.current) {
29
- setListItemTextOverflowing(textRef.current.scrollWidth, containerRef.current.clientWidth, setIsTextOverflowing, showTooltip);
30
- }
31
- }, [showTooltip, textRef, containerRef]);
32
- return (<FdTooltipProvider>
33
- <FdTooltip>
34
- <FdTooltipTrigger asChild>
35
- <li className={cn("z-1 relative w-full rounded-md p-2 hover:bg-muted-foreground", className, isActive && "bg-fd-tertiary-700 text-white")} ref={containerRef} onClick={onNavigate ?? undefined}>
36
- <span ref={textRef}>{children}</span>
37
- {isTextOverflowing && (<span className={"absolute right-0 top-1/2 z-0 h-full w-10 -translate-y-1/2"}></span>)}
38
- </li>
39
- </FdTooltipTrigger>
40
- {isTextOverflowing && (<FdTooltipContent side={"right"} className="ml-2 max-w-60 text-pretty rounded p-2 text-popover shadow">
41
- {children}
42
- <Tooltip.Arrow />
43
- </FdTooltipContent>)}
44
- </FdTooltip>
45
- </FdTooltipProvider>);
46
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Simple loading indicator component that displays loading text
3
- */
4
- function FdLoadingIndicator() {
5
- return <div>Loading ...</div>;
6
- }
7
- export default FdLoadingIndicator;
@@ -1,11 +0,0 @@
1
- /**
2
- * Facebook logo SVG icon component that uses currentColor for styling
3
- *
4
- * {@link FacebookLogo}
5
- */
6
- function FacebookLogo() {
7
- return (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="20px" height="20px" fill="currentColor" className="text-foreground">
8
- <path d="M25,3C12.85,3,3,12.85,3,25c0,11.03,8.125,20.137,18.712,21.728V30.831h-5.443v-5.783h5.443v-3.848 c0-6.371,3.104-9.168,8.399-9.168c2.536,0,3.877,0.188,4.512,0.274v5.048h-3.612c-2.248,0-3.033,2.131-3.033,4.533v3.161h6.588 l-0.894,5.783h-5.694v15.944C38.716,45.318,47,36.137,47,25C47,12.85,37.15,3,25,3z"/>
9
- </svg>);
10
- }
11
- export default FacebookLogo;
@@ -1,12 +0,0 @@
1
- /**
2
- * Google logo SVG icon component that uses currentColor for styling
3
- *
4
- * {@link GoogleLogo}
5
- */
6
- function GoogleLogo() {
7
- return (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="20px" height="20px" fill="currentColor" className="text-foreground">
8
- <path d="M 32.521484 6 C 18.158484 6 6.515625 17.642 6.515625 32 C 6.515625 46.358 18.158484 58 32.521484 58 C 54.209484 58 59.098453
9
- 37.865969 57.064453 27.667969 L 51.181641 27.667969 L 49.269531 27.667969 L 32.515625 27.667969 L 32.515625 36.333984 L 49.279297 36.333984 C 47.351759 43.804816 40.588119 49.332031 32.515625 49.332031 C 22.943625 49.332031 15.181641 41.572 15.181641 32 C 15.181641 22.428 22.943625 14.667969 32.515625 14.667969 C 36.868625 14.667969 40.834906 16.283594 43.878906 18.933594 L 50.033203 12.779297 C 45.410203 8.5672969 39.266484 6 32.521484 6 z"/>
10
- </svg>);
11
- }
12
- export default GoogleLogo;
@@ -1,11 +0,0 @@
1
- /**
2
- * Microsoft logo SVG icon component that uses currentColor for styling
3
- *
4
- * {@link MicrosoftLogo}
5
- */
6
- function MicrosoftLogo() {
7
- return (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="20px" height="20px" fill="currentColor" className="text-foreground">
8
- <path d="M 5 4 C 4.448 4 4 4.447 4 5 L 4 24 L 24 24 L 24 4 L 5 4 z M 26 4 L 26 24 L 46 24 L 46 5 C 46 4.447 45.552 4 45 4 L 26 4 z M 4 26 L 4 45 C 4 45.553 4.448 46 5 46 L 24 46 L 24 26 L 4 26 z M 26 26 L 26 46 L 45 46 C 45.552 46 46 45.553 46 45 L 46 26 L 26 26 z"/>
9
- </svg>);
10
- }
11
- export default MicrosoftLogo;
@@ -1,105 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useState, useEffect, useCallback, useMemo } from "react";
4
- import { cn } from "@fd-toolbox/lib/utils";
5
- import { getPreviewContentId, onValueChange } from "@fd-component-toolbox/markdown/FdMarkdown.funcs";
6
- import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
7
- import { FdFormControl, FdFormField, FdFormItem, FdFormMessage } from "@fd-component-toolbox/form/FdForm";
8
- import FdLabelAnimation from "@fd-component-toolbox/animation/FdLabelAnimation";
9
- import { cva } from "class-variance-authority";
10
- import { parseMarkdown } from "@fd-component-toolbox/markdown/markdown-parser";
11
- import { markdownSuffixes } from "@fd-toolbox/constants/element-suffixes";
12
- import { onTextAreaBlur } from "@fd-component-toolbox/textarea/FdTextArea.funcs";
13
- import debounce from "lodash.debounce";
14
- /**
15
- * Using {@link https://cva.style/docs/getting-started/variants class-variance-authority}
16
- */
17
- export const markdownVariants = cva("relative z-0 border-b", {
18
- variants: {
19
- variant: {
20
- bordered: "",
21
- float: "border-background transition-colors focus-within:border-fd-accent hover:border-fd-accent",
22
- },
23
- },
24
- defaultVariants: {
25
- variant: "float",
26
- },
27
- });
28
- /**
29
- * Markdown input component with preview functionality and form integration
30
- *
31
- * @param IFdMarkdownProps {@link IFdMarkdownProps}
32
- *
33
- * @example
34
- * ```tsx
35
- function MyComponent() {
36
- const form = useForm({...});
37
-
38
- return (
39
- <FdMarkdown
40
- label="Description"
41
- name="description"
42
- form={form}
43
- showContentPreview={true}
44
- onChange={...}
45
- onBlur={...}
46
- variant="float"
47
- />
48
- );
49
- }
50
- * ```
51
- */
52
- export function FdMarkdown({ elementId, label, showContentPreview, value: defaultValue, form, name, disabled, readOnly, skipAnimationOnce, variant, onChange, onBlur, }) {
53
- const [value, setValue] = useState(defaultValue ?? "");
54
- const [previewContent, setPreviewContent] = useState([]);
55
- const [isPreview, setIsPreview] = useState(showContentPreview ?? false);
56
- const [isInFocus, setIsInFocus] = useState(false);
57
- const debouncedParseMarkdown = useMemo(() => debounce(async (val) => {
58
- const result = await parseMarkdown(val);
59
- setPreviewContent(result);
60
- }, 500), []);
61
- useEffect(() => {
62
- if (value) {
63
- debouncedParseMarkdown(value);
64
- }
65
- }, [value, debouncedParseMarkdown]);
66
- useEffect(() => {
67
- setValue(defaultValue ?? "");
68
- }, [defaultValue]);
69
- const onChangeCallback = useCallback((e) => {
70
- onValueChange(e.target.value, setValue, onChange);
71
- }, [onChange]);
72
- const onTextAreaBlurCallback = useCallback((e) => {
73
- onTextAreaBlur(e, setIsInFocus, onBlur);
74
- }, [onBlur]);
75
- useEffect(() => {
76
- return () => {
77
- debouncedParseMarkdown.cancel();
78
- };
79
- }, [debouncedParseMarkdown]);
80
- return (<FdFormField control={form.control} name={name} render={({ field, fieldState }) => (<FdFormItem>
81
- <FdFormControl>
82
- <div>
83
- {isPreview && (<>
84
- <p className="mb-2">{label} Preview:</p>
85
- <div className="mb-5 w-full overflow-auto">
86
- <div id={getPreviewContentId(elementId)}>{previewContent}</div>
87
- </div>
88
- </>)}
89
- <div className={cn(markdownVariants({ variant }))}>
90
- <textarea id={elementId} rows={5} placeholder="" {...field} disabled={disabled} readOnly={readOnly} value={value} onChange={onChangeCallback} onFocus={() => setIsInFocus(true)} onBlur={onTextAreaBlurCallback} className={cn("peer block w-full appearance-none border-0 bg-transparent px-0 py-2.5 text-sm text-muted-foreground focus:outline-none focus:ring-0 disabled:cursor-not-allowed", disabled || readOnly ? "resize-none" : "")}/>
91
- <FdLabelAnimation label={label} shouldAnimate={!!field.value || isInFocus} skipAnimationOnce={skipAnimationOnce} className={cn("left-0 top-4 max-w-full truncate px-0 transition-transform", variant === "bordered"
92
- ? (!!field.value || isInFocus) && "!-translate-y-6"
93
- : "top-2")} variant={variant ?? "float"}/>
94
- <div className="absolute right-0 top-2" onClick={() => setIsPreview((prev) => !prev)}>
95
- {isPreview ? (<FdIcon id={elementId + markdownSuffixes.previewIcon} name={iconNames.visibility}/>) : (<FdIcon id={elementId + markdownSuffixes.previewIcon} name={iconNames.visibilityOff}/>)}
96
- </div>
97
- <div className={cn("w-full pt-2", fieldState.invalid
98
- ? "border-destructive focus:border-destructive"
99
- : "")}></div>
100
- </div>
101
- </div>
102
- </FdFormControl>
103
- <FdFormMessage />
104
- </FdFormItem>)}/>);
105
- }
@@ -1,72 +0,0 @@
1
- import React from "react";
2
- import { apiPost } from "@fd-toolbox/api/api-client";
3
- import { apiPathNames } from "@fd-toolbox/api/api-path-names";
4
- import { logStringError } from "@fd-toolbox/logging/loggers";
5
- import { isNullOrUndefined } from "@fd-toolbox/functions/value-checking-functions";
6
- import { apiErrorMessages } from "@fd-toolbox/constants/api-error-constants";
7
- export async function markdownToHtml(markdown) {
8
- const response = await apiPost(apiPathNames.markdown, {
9
- markdown: markdown,
10
- });
11
- const responseIsSuccessful = !isNullOrUndefined(response.data?.html);
12
- if (responseIsSuccessful) {
13
- return response.data?.html;
14
- }
15
- else {
16
- logStringError(response.message ?? apiErrorMessages.invalidResponseFromApi);
17
- return undefined;
18
- }
19
- }
20
- export async function parseMarkdown(md) {
21
- const htmlOutput = await markdownToHtml(md);
22
- return parseText(htmlOutput);
23
- }
24
- const allowedTags = new Set([
25
- "p",
26
- "strong",
27
- "em",
28
- "del",
29
- "code",
30
- "h1",
31
- "h2",
32
- "h3",
33
- "h4",
34
- "h5",
35
- "h6",
36
- "li",
37
- "ol",
38
- "ul",
39
- "a",
40
- "blockquote",
41
- "pre",
42
- "code",
43
- "hr",
44
- ]);
45
- export function parseText(htmlString) {
46
- const doc = new DOMParser().parseFromString(htmlString ?? "", "text/html");
47
- return validateHtml(doc.body.childNodes);
48
- }
49
- function validateHtml(nodes) {
50
- const result = [];
51
- for (const node of Array.from(nodes)) {
52
- if (node instanceof Text)
53
- result.push(node.wholeText);
54
- else if (node instanceof HTMLElement && allowedTags.has(node.tagName.toLowerCase())) {
55
- const AllowedTag = node.tagName.toLowerCase();
56
- if (node.childNodes.length > 0) {
57
- const childNodes = validateHtml(node.childNodes);
58
- if (childNodes.length) {
59
- result.push(React.createElement(AllowedTag, { key: result.length }, ...childNodes));
60
- }
61
- }
62
- else
63
- result.push(<AllowedTag></AllowedTag>);
64
- }
65
- else if (node instanceof HTMLElement) {
66
- const dummy = document.createElement("div");
67
- dummy.appendChild(node);
68
- result.push(dummy.textContent);
69
- }
70
- }
71
- return result;
72
- }
@@ -1,240 +0,0 @@
1
- "use client";
2
- import React, { useCallback, useState, useLayoutEffect, useEffect, useMemo, useImperativeHandle, useRef, } from "react";
3
- import { FdCommand, FdCommandItem, FdCommandEmpty, FdCommandList, } from "@fd-component-toolbox/command/FdCommand";
4
- import { Command as CommandPrimitive } from "cmdk";
5
- import { Check } from "lucide-react";
6
- import { cn } from "@fd-toolbox/lib/utils";
7
- import { onMultiSelectKeyDown, onMultiSelectValueChange, getMultiSelectStatusesById, resetOnClick, inputOnClick, mousePreventDefault, onItemSelect, handleOpenChange, registerClickOutsideMultiselectHandler, multiSelectVariants, } from "@fd-component-toolbox/multiselect/FdMultiselect.funcs";
8
- import FdLabelAnimation from "@fd-component-toolbox/animation/FdLabelAnimation";
9
- import { FdButton } from "@fd-component-toolbox/button/FdButton";
10
- import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
11
- import { selectAllValue, selectAllDescription, } from "@fd-component-toolbox/multiselect/fd-multi-select-constants";
12
- import { FdFadeOutText } from "@fd-component-toolbox/fade-out-text/FdFadeOutText";
13
- import { FdMultiselectContext, useFdMultiselect, } from "@fd-component-toolbox/multiselect/hooks/use-multi-select";
14
- /**
15
- * Root container component for the multiselect dropdown functionality
16
- *
17
- * @param FdMultiselectProps {@link FdMultiselectProps}
18
- *
19
- * @example
20
- * ```tsx
21
- * function MyComponent() {
22
- * const [selectedValues, setSelectedValues] = useState<string[]>([]);
23
- *
24
- * return (
25
- * <FdMultiselect
26
- * values={selectedValues}
27
- * onValuesChange={setSelectedValues}
28
- * displayValues={new Map([["option1", "Option 1"], ["option2", "Option 2"]])}
29
- * disabled={false}
30
- * withSelectAll
31
- * variant="float"
32
- * >
33
- * ...
34
- * </FdMultiselect>
35
- * );
36
- * }
37
- * ```
38
- */
39
- function FdMultiselect({ values: value, onValuesChange: onValueChange, displayValues, loop, className, children, dir, disabled, variant, withSelectAll, onOpenChange, ref, ...props }) {
40
- const [inputValue, setInputValue] = useState("");
41
- const [open, setOpen] = useState(false);
42
- const [activeIndex, setActiveIndex] = useState(-1);
43
- const [description, setDescription] = useState("");
44
- const [isHovered, setIsHovered] = useState(false);
45
- const containerRef = useRef(null);
46
- const isAllSelected = value.length === displayValues?.size;
47
- const onOpenChangeCallback = useCallback((isOpen) => {
48
- handleOpenChange(isOpen, setOpen, onOpenChange);
49
- }, [onOpenChange]);
50
- useImperativeHandle(ref, () => ({
51
- open: () => {
52
- onOpenChangeCallback(true);
53
- },
54
- }), [onOpenChangeCallback]);
55
- const onValueChangeCallback = useCallback((val) => {
56
- onMultiSelectValueChange(val, value, onValueChange, setDescription, withSelectAll, isAllSelected, displayValues);
57
- }, [value, onValueChange, withSelectAll, isAllSelected, displayValues]);
58
- const onFilterReset = useCallback(() => {
59
- onValueChange([]);
60
- }, [onValueChange]);
61
- const contextValue = useMemo(() => ({
62
- value,
63
- onValueChange: onValueChangeCallback,
64
- description,
65
- open,
66
- onOpenChangeCallback,
67
- inputValue,
68
- setInputValue,
69
- activeIndex,
70
- setActiveIndex,
71
- disabled,
72
- onReset: onFilterReset,
73
- isHovered,
74
- setIsHovered,
75
- variant: variant ?? "float",
76
- withSelectAll,
77
- isAllSelected,
78
- }), [
79
- value,
80
- onValueChangeCallback,
81
- description,
82
- open,
83
- onOpenChangeCallback,
84
- inputValue,
85
- setInputValue,
86
- activeIndex,
87
- setActiveIndex,
88
- disabled,
89
- onFilterReset,
90
- isHovered,
91
- setIsHovered,
92
- variant,
93
- withSelectAll,
94
- isAllSelected,
95
- ]);
96
- useLayoutEffect(() => {
97
- if (!value || value.length === 0) {
98
- setDescription("");
99
- }
100
- }, [value]);
101
- useEffect(() => {
102
- if (withSelectAll && isAllSelected) {
103
- setDescription(selectAllDescription);
104
- }
105
- else if (value && displayValues) {
106
- const statuses = getMultiSelectStatusesById(value, displayValues);
107
- setDescription(statuses);
108
- }
109
- }, [value, displayValues, withSelectAll, isAllSelected]);
110
- useEffect(() => {
111
- if (!open)
112
- return undefined;
113
- return registerClickOutsideMultiselectHandler(containerRef, onOpenChangeCallback);
114
- }, [open, onOpenChangeCallback, containerRef]);
115
- const onKeyDownCallback = useCallback((e) => {
116
- onMultiSelectKeyDown(value, e.key, inputValue, activeIndex, setActiveIndex, onValueChange, setOpen, loop, dir);
117
- }, [loop, value, inputValue, activeIndex, onValueChange, dir]);
118
- return (<FdMultiselectContext.Provider value={contextValue}>
119
- <FdCommand ref={containerRef} onKeyDown={onKeyDownCallback} className={cn("flex flex-col overflow-visible bg-transparent", className)} dir={dir} {...props}>
120
- {children}
121
- </FdCommand>
122
- </FdMultiselectContext.Provider>);
123
- }
124
- /**
125
- * Container component for the multiselect trigger
126
- *
127
- * {@link FdMultiselectTrigger}
128
- */
129
- function FdMultiselectTrigger({ className, children, ref, ...props }) {
130
- const { disabled, setIsHovered, variant } = useFdMultiselect();
131
- return (<div ref={ref} className={cn(multiSelectVariants({ variant }), disabled && "cursor-not-allowed opacity-50", className)} onMouseOver={() => setIsHovered(true)} onMouseOut={() => setIsHovered(false)} {...props}>
132
- {children}
133
- </div>);
134
- }
135
- FdMultiselectTrigger.displayName = "MultiselectTrigger";
136
- /**
137
- * Button component that clears all currently selected values
138
- *
139
- * {@link FdMultiselectReset}
140
- */
141
- function FdMultiselectReset() {
142
- const { onReset, onOpenChangeCallback } = useFdMultiselect();
143
- const onResetCallback = useCallback((e) => {
144
- resetOnClick(e, onReset, onOpenChangeCallback);
145
- }, [onReset, onOpenChangeCallback]);
146
- return (<div className="flex items-center">
147
- <FdButton variant="icon" size="icon" onClick={onResetCallback} className="size-2.5">
148
- <FdIcon name={iconNames.cross1} className="bg-background"/>
149
- </FdButton>
150
- </div>);
151
- }
152
- FdMultiselectReset.displayName = "MultiselectReset";
153
- /**
154
- * Input component that displays selected values and handles user text input for filtering options
155
- *
156
- * Based on {@link https://ui.shadcn.com/docs/components/command Command.Input}
157
- *
158
- * @example
159
- * ```tsx
160
- * <FdMultiselectInput placeholder="Select options" animatedPlaceholder="Status"
161
- * />
162
- * ```
163
- */
164
- function FdMultiselectInput({ className, placeholder, animatedPlaceholder, ref, ...props }) {
165
- const { onOpenChangeCallback, description, open, inputValue, setInputValue, activeIndex, setActiveIndex, disabled, isHovered, variant, } = useFdMultiselect();
166
- const onInputClickCallback = useCallback(() => {
167
- inputOnClick(setActiveIndex, open, onOpenChangeCallback);
168
- }, [setActiveIndex, open, onOpenChangeCallback]);
169
- return (<div className="flex w-full cursor-pointer items-center justify-between" onClick={onInputClickCallback} tabIndex={0}>
170
- <div className="relative w-full">
171
- <FdFadeOutText>
172
- <CommandPrimitive.Input {...props} ref={ref} placeholder={description || (placeholder ?? "")} value={inputValue} onValueChange={activeIndex === -1 ? setInputValue : undefined} disabled={disabled} className={cn("w-full flex-1 bg-transparent pl-2 caret-transparent outline-none", description ? "placeholder:text-primary" : "placeholder:text-muted-foreground", className)}/>
173
- </FdFadeOutText>
174
- {animatedPlaceholder && (<FdLabelAnimation label={animatedPlaceholder} shouldAnimate={!!description} className="top-0 max-w-full" variant={variant}/>)}
175
- </div>
176
- <div className="flex size-4 shrink-0 items-center justify-center">
177
- {description ? (<div className={cn(isHovered ? "animate-fade-in" : "animate-fade-out")}>
178
- <FdMultiselectReset />
179
- </div>) : (<div className="focus:outline-none">
180
- <FdIcon name="caretSort" className="pointer-events-none text-foreground opacity-50"/>
181
- </div>)}
182
- </div>
183
- </div>);
184
- }
185
- FdMultiselectInput.displayName = "MultiselectInput";
186
- /**
187
- * Container component that wraps the dropdown content when the multiselect is open
188
- *
189
- * {@link FdMultiselectContent}
190
- */
191
- function FdMultiselectContent({ children, className, ref, ...props }) {
192
- const { open } = useFdMultiselect();
193
- return (<div ref={ref} className={cn("relative top-1", className)} {...props}>
194
- {open && children}
195
- </div>);
196
- }
197
- FdMultiselectContent.displayName = "MultiselectContent";
198
- /**
199
- * Component that displays the list of selectable options in the dropdown
200
- *
201
- * Based on {@link https://ui.shadcn.com/docs/components/command Command.List}
202
- */
203
- function FdMultiselectList({ className, children, ref, ...props }) {
204
- const { withSelectAll } = useFdMultiselect();
205
- return (<FdCommandList ref={ref} className={cn("absolute top-0 z-10 flex w-auto min-w-full flex-col gap-2 rounded-md border bg-background p-2 shadow-md transition-colors", className)} {...props}>
206
- {withSelectAll && (<FdMultiselectItem value={selectAllValue} isSelectAll={false}>
207
- {selectAllDescription}
208
- </FdMultiselectItem>)}
209
- {children}
210
- <FdCommandEmpty>
211
- <span className="text-muted-foreground">No results found</span>
212
- </FdCommandEmpty>
213
- </FdCommandList>);
214
- }
215
- FdMultiselectList.displayName = "MultiselectList";
216
- /**
217
- * Individual selectable option within the multiselect dropdown list
218
- *
219
- * Based on {@link https://ui.shadcn.com/docs/components/command Command.Item}
220
- *
221
- * @example
222
- * ```tsx
223
- * <FdMultiselectItem value="selectAll" isSelectAll>
224
- * All
225
- * </FdMultiselectItem>
226
- * ```
227
- */
228
- function FdMultiselectItem({ className, value, children, isSelectAll, ref, ...props }) {
229
- const { value: Options, onValueChange, setInputValue, isAllSelected } = useFdMultiselect();
230
- const isIncluded = isSelectAll ? isAllSelected : Options.includes(value);
231
- const onSelect = useCallback(() => {
232
- onItemSelect(value, onValueChange, setInputValue);
233
- }, [value, onValueChange, setInputValue]);
234
- return (<FdCommandItem ref={ref} {...props} onSelect={onSelect} className={cn("flex cursor-pointer justify-between rounded-md px-2 py-1 transition-colors", className, isIncluded && "cursor-default bg-accent text-accent-foreground", props.disabled && "cursor-not-allowed opacity-50")} onMouseDown={mousePreventDefault}>
235
- {children}
236
- <Check className={cn("ml-2 size-4 opacity-0", isIncluded && "opacity-50")}/>
237
- </FdCommandItem>);
238
- }
239
- FdMultiselectItem.displayName = "MultiselectItem";
240
- export { FdMultiselect, FdMultiselectTrigger, FdMultiselectInput, FdMultiselectContent, FdMultiselectList, FdMultiselectItem, multiSelectVariants, };
@@ -1,43 +0,0 @@
1
- import FdNavigationItemComponent from "@fd-component-toolbox/navigation/navigation-item/FdNavigationItem";
2
- import { FdList } from "@fd-component-toolbox/list/FdList";
3
- import { FdButton } from "@fd-component-toolbox/button/FdButton";
4
- import { FdIcon, iconNames } from "@fd-component-toolbox/icon/FdIcon";
5
- /**
6
- * In-page navigation component that scrolls to target elements when items are clicked
7
- *
8
- * @param FdNavigationProps {@link FdNavigationProps}
9
- *
10
- * @example
11
- * ```tsx
12
- function MyComponent() {
13
- const [isOpen, setIsOpen] = useState(true);
14
-
15
- return (
16
- <FdNavigation
17
- config={{
18
- name: "Page Sections",
19
- items: [
20
- { name: "Introduction", targetHtmlElementId: "intro-section" },
21
- { name: "Features", targetHtmlElementId: "features-section" },
22
- ],
23
- }}
24
- isOpen={isOpen}
25
- onOpenClick={() => setIsOpen(!isOpen)}
26
- />;
27
- );
28
- }
29
- * ```
30
- */
31
- function FdNavigation({ config, isOpen, onOpenClick }) {
32
- return (<FdList className={`w-48 bg-background text-sm transition duration-300 ease-in-out ${isOpen ? "translate-x-0" : "-translate-x-56"}`}>
33
- <div className="flex items-center justify-start">
34
- {onOpenClick && (<FdButton variant={"icon"} onClick={onOpenClick} className="absolute -left-2">
35
- <FdIcon name={iconNames.caretLeftIcon}/>
36
- </FdButton>)}
37
- {config.name !== "" && (<p className="m-2 cursor-pointer p-2 font-bold text-muted-foreground">{config.name}</p>)}
38
- </div>
39
-
40
- {config.items.map((item) => (<FdNavigationItemComponent item={item} key={item.targetHtmlElementId}/>))}
41
- </FdList>);
42
- }
43
- export default FdNavigation;
@@ -1,23 +0,0 @@
1
- import { useCallback } from "react";
2
- import { scrollIntoView } from "@fd-component-toolbox/navigation/navigation-item/FdNavigationItem.funcs";
3
- /**
4
- * Individual navigation item that scrolls to a target element when clicked
5
- *
6
- * @param FdNavigationItemComponentProps {@link FdNavigationItemComponentProps}
7
- *
8
- * @example
9
- * ```tsx
10
- * <FdNavigationItemComponent item={{ name: "Features", targetHtmlElementId: "features-section"}}/>
11
- * ```
12
- */
13
- function FdNavigationItemComponent({ item }) {
14
- const onClick = useCallback(() => {
15
- if (item.targetHtmlElementId) {
16
- scrollIntoView(item.targetHtmlElementId);
17
- }
18
- }, [item.targetHtmlElementId]);
19
- return (<li className="m-2 cursor-pointer px-4 py-2 text-fd-accent hover:rounded-md hover:bg-muted/50" onClick={onClick}>
20
- {item.name}
21
- </li>);
22
- }
23
- export default FdNavigationItemComponent;
@@ -1,46 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4
- import { Circle } from "lucide-react";
5
- import { cn } from "@fd-toolbox/lib/utils";
6
- /**
7
- * Container component for grouping radio button inputs
8
- *
9
- * Based on [Radio Group](https://ui.shadcn.com/docs/components/radio-group)
10
- *
11
- * @example
12
- * ```tsx
13
- * function MyComponent() {
14
- * const [value, setValue] = useState("option1");
15
- *
16
- * return (
17
- * <FdRadioGroup value={value} onValueChange={setValue}>
18
- * ...
19
- * </FdRadioGroup>
20
- * );
21
- * }
22
- * ```
23
- */
24
- function FdRadioGroup({ className, ref, ...props }) {
25
- return <RadioGroupPrimitive.Root className={cn("grid gap-2", className)} {...props} ref={ref}/>;
26
- }
27
- FdRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
28
- /**
29
- * Individual radio button input with circle indicator
30
- *
31
- * Based on [Radio Group](https://ui.shadcn.com/docs/components/radio-group)
32
- *
33
- * @example
34
- * ```tsx
35
- * <FdRadioGroupItem value="option"/>
36
- * ```
37
- */
38
- function FdRadioGroupItem({ className, ref, ...props }) {
39
- return (<RadioGroupPrimitive.Item ref={ref} className={cn("aspect-square size-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:cursor-not-allowed disabled:opacity-50", className)} {...props}>
40
- <RadioGroupPrimitive.Indicator className="flex items-center justify-center">
41
- <Circle className="size-3.5 fill-primary"/>
42
- </RadioGroupPrimitive.Indicator>
43
- </RadioGroupPrimitive.Item>);
44
- }
45
- FdRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
46
- export { FdRadioGroup, FdRadioGroupItem };