@vendure/dashboard 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +13 -0
  2. package/dist/plugin/.vendure-dashboard-temp/dev-config.js +227 -0
  3. package/dist/plugin/.vendure-dashboard-temp/dev-config.js.map +1 -0
  4. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/api/api-extensions.js +33 -0
  5. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/api/api-extensions.js.map +1 -0
  6. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/api/mv.resolver.js +69 -0
  7. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/api/mv.resolver.js.map +1 -0
  8. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-order-process.js +110 -0
  9. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-order-process.js.map +1 -0
  10. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-order-seller-strategy.js +134 -0
  11. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-order-seller-strategy.js.map +1 -0
  12. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-payment-handler.js +86 -0
  13. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-payment-handler.js.map +1 -0
  14. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-shipping-eligibility-checker.js +49 -0
  15. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-shipping-eligibility-checker.js.map +1 -0
  16. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-shipping-line-assignment-strategy.js +57 -0
  17. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/config/mv-shipping-line-assignment-strategy.js.map +1 -0
  18. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/constants.js +20 -0
  19. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/constants.js.map +1 -0
  20. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/multivendor.plugin.js +151 -0
  21. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/multivendor.plugin.js.map +1 -0
  22. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/payment/mv-connect-sdk.js +47 -0
  23. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/payment/mv-connect-sdk.js.map +1 -0
  24. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/service/mv.service.js +222 -0
  25. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/service/mv.service.js.map +1 -0
  26. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/types.js +4 -0
  27. package/dist/plugin/.vendure-dashboard-temp/example-plugins/multivendor-plugin/types.js.map +1 -0
  28. package/dist/plugin/.vendure-dashboard-temp/package.json +3 -0
  29. package/dist/plugin/.vendure-dashboard-temp/schema.graphql +6378 -0
  30. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/api-extensions.js +103 -0
  31. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/api-extensions.js.map +1 -0
  32. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-entity.resolver.js +105 -0
  33. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-entity.resolver.js.map +1 -0
  34. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-admin.resolver.js +183 -0
  35. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-admin.resolver.js.map +1 -0
  36. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-entity.resolver.js +113 -0
  37. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-entity.resolver.js.map +1 -0
  38. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-shop.resolver.js +112 -0
  39. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/api/product-review-shop.resolver.js.map +1 -0
  40. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/entities/product-review.entity.js +111 -0
  41. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/entities/product-review.entity.js.map +1 -0
  42. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/generated-admin-types.js +616 -0
  43. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/generated-admin-types.js.map +1 -0
  44. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/generated-shop-types.js +563 -0
  45. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/generated-shop-types.js.map +1 -0
  46. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/reviews-plugin.js +135 -0
  47. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/reviews-plugin.js.map +1 -0
  48. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/types.js +4 -0
  49. package/dist/plugin/.vendure-dashboard-temp/test-plugins/reviews/types.js.map +1 -0
  50. package/dist/plugin/.vendure-dashboard-temp/tsconfig.json +10 -0
  51. package/dist/plugin/config-loader.d.ts +27 -0
  52. package/dist/plugin/config-loader.js +141 -0
  53. package/dist/plugin/constants.d.ts +5 -0
  54. package/dist/plugin/constants.js +277 -0
  55. package/dist/plugin/index.d.ts +1 -0
  56. package/dist/plugin/index.js +1 -0
  57. package/dist/plugin/schema-generator.d.ts +5 -0
  58. package/dist/plugin/schema-generator.js +24 -0
  59. package/dist/plugin/ui-config.d.ts +3 -0
  60. package/dist/plugin/ui-config.js +35 -0
  61. package/dist/plugin/vite-plugin-admin-api-schema.d.ts +24 -0
  62. package/dist/plugin/vite-plugin-admin-api-schema.js +82 -0
  63. package/dist/plugin/vite-plugin-config-loader.d.ts +17 -0
  64. package/dist/plugin/vite-plugin-config-loader.js +56 -0
  65. package/dist/plugin/vite-plugin-config.d.ts +4 -0
  66. package/dist/plugin/vite-plugin-config.js +38 -0
  67. package/dist/plugin/vite-plugin-dashboard-metadata.d.ts +9 -0
  68. package/dist/plugin/vite-plugin-dashboard-metadata.js +52 -0
  69. package/dist/plugin/vite-plugin-gql-tada.d.ts +6 -0
  70. package/dist/plugin/vite-plugin-gql-tada.js +51 -0
  71. package/dist/plugin/vite-plugin-set-root.d.ts +4 -0
  72. package/dist/plugin/vite-plugin-set-root.js +15 -0
  73. package/dist/plugin/vite-plugin-ui-config.d.ts +15 -0
  74. package/dist/plugin/vite-plugin-ui-config.js +43 -0
  75. package/dist/plugin/vite-plugin-vendure-dashboard.d.ts +35 -0
  76. package/dist/plugin/vite-plugin-vendure-dashboard.js +81 -0
  77. package/index.html +15 -0
  78. package/lingui.config.js +12 -0
  79. package/package.json +118 -0
  80. package/src/app/app-providers.tsx +30 -0
  81. package/src/app/main.tsx +97 -0
  82. package/src/app/routeTree.gen.ts +1372 -0
  83. package/src/app/routes/__root.tsx +24 -0
  84. package/src/app/routes/_authenticated/_administrators/administrators.graphql.ts +79 -0
  85. package/src/app/routes/_authenticated/_administrators/administrators.tsx +86 -0
  86. package/src/app/routes/_authenticated/_administrators/administrators_.$id.tsx +155 -0
  87. package/src/app/routes/_authenticated/_administrators/components/role-permissions-display.tsx +133 -0
  88. package/src/app/routes/_authenticated/_assets/assets.tsx +19 -0
  89. package/src/app/routes/_authenticated/_channels/channels.graphql.ts +93 -0
  90. package/src/app/routes/_authenticated/_channels/channels.tsx +60 -0
  91. package/src/app/routes/_authenticated/_channels/channels_.$id.tsx +248 -0
  92. package/src/app/routes/_authenticated/_collections/collections.graphql.ts +133 -0
  93. package/src/app/routes/_authenticated/_collections/collections.tsx +195 -0
  94. package/src/app/routes/_authenticated/_collections/collections_.$id.tsx +224 -0
  95. package/src/app/routes/_authenticated/_collections/components/collection-contents-preview-table.tsx +127 -0
  96. package/src/app/routes/_authenticated/_collections/components/collection-contents-sheet.tsx +46 -0
  97. package/src/app/routes/_authenticated/_collections/components/collection-contents-table.tsx +82 -0
  98. package/src/app/routes/_authenticated/_collections/components/collection-filters-selector.tsx +91 -0
  99. package/src/app/routes/_authenticated/_countries/countries.graphql.ts +69 -0
  100. package/src/app/routes/_authenticated/_countries/countries.tsx +67 -0
  101. package/src/app/routes/_authenticated/_countries/countries_.$id.tsx +122 -0
  102. package/src/app/routes/_authenticated/_customer-groups/components/customer-group-members-sheet.tsx +44 -0
  103. package/src/app/routes/_authenticated/_customer-groups/components/customer-group-members-table.tsx +129 -0
  104. package/src/app/routes/_authenticated/_customer-groups/customer-groups.graphql.ts +71 -0
  105. package/src/app/routes/_authenticated/_customer-groups/customer-groups.tsx +68 -0
  106. package/src/app/routes/_authenticated/_customer-groups/customer-groups_.$id.tsx +111 -0
  107. package/src/app/routes/_authenticated/_customers/components/customer-address-card.tsx +155 -0
  108. package/src/app/routes/_authenticated/_customers/components/customer-address-form.tsx +344 -0
  109. package/src/app/routes/_authenticated/_customers/components/customer-group-controls.tsx +4 -0
  110. package/src/app/routes/_authenticated/_customers/components/customer-history/customer-history-container.tsx +78 -0
  111. package/src/app/routes/_authenticated/_customers/components/customer-history/customer-history.tsx +77 -0
  112. package/src/app/routes/_authenticated/_customers/components/customer-history/index.ts +3 -0
  113. package/src/app/routes/_authenticated/_customers/components/customer-history/use-customer-history.ts +169 -0
  114. package/src/app/routes/_authenticated/_customers/components/customer-order-table.tsx +88 -0
  115. package/src/app/routes/_authenticated/_customers/components/customer-status-badge.tsx +33 -0
  116. package/src/app/routes/_authenticated/_customers/customers.graphql.ts +204 -0
  117. package/src/app/routes/_authenticated/_customers/customers.tsx +82 -0
  118. package/src/app/routes/_authenticated/_customers/customers_.$id.tsx +274 -0
  119. package/src/app/routes/_authenticated/_facets/components/edit-facet-value.tsx +129 -0
  120. package/src/app/routes/_authenticated/_facets/components/facet-values-sheet.tsx +46 -0
  121. package/src/app/routes/_authenticated/_facets/components/facet-values-table.tsx +97 -0
  122. package/src/app/routes/_authenticated/_facets/facets.graphql.ts +104 -0
  123. package/src/app/routes/_authenticated/_facets/facets.tsx +97 -0
  124. package/src/app/routes/_authenticated/_facets/facets_.$id.tsx +139 -0
  125. package/src/app/routes/_authenticated/_global-settings/global-settings.graphql.ts +28 -0
  126. package/src/app/routes/_authenticated/_global-settings/global-settings.tsx +161 -0
  127. package/src/app/routes/_authenticated/_orders/components/order-address.tsx +58 -0
  128. package/src/app/routes/_authenticated/_orders/components/order-history/index.ts +3 -0
  129. package/src/app/routes/_authenticated/_orders/components/order-history/order-history-container.tsx +73 -0
  130. package/src/app/routes/_authenticated/_orders/components/order-history/order-history.tsx +96 -0
  131. package/src/app/routes/_authenticated/_orders/components/order-history/use-order-history.ts +171 -0
  132. package/src/app/routes/_authenticated/_orders/components/order-table.tsx +169 -0
  133. package/src/app/routes/_authenticated/_orders/components/order-tax-summary.tsx +39 -0
  134. package/src/app/routes/_authenticated/_orders/components/payment-details.tsx +61 -0
  135. package/src/app/routes/_authenticated/_orders/orders.graphql.ts +325 -0
  136. package/src/app/routes/_authenticated/_orders/orders.tsx +120 -0
  137. package/src/app/routes/_authenticated/_orders/orders_.$id.tsx +133 -0
  138. package/src/app/routes/_authenticated/_payment-methods/components/payment-eligibility-checker-selector.tsx +104 -0
  139. package/src/app/routes/_authenticated/_payment-methods/components/payment-handler-selector.tsx +100 -0
  140. package/src/app/routes/_authenticated/_payment-methods/payment-methods.graphql.ts +83 -0
  141. package/src/app/routes/_authenticated/_payment-methods/payment-methods.tsx +64 -0
  142. package/src/app/routes/_authenticated/_payment-methods/payment-methods_.$id.tsx +183 -0
  143. package/src/app/routes/_authenticated/_product-variants/components/variant-price-detail.tsx +87 -0
  144. package/src/app/routes/_authenticated/_product-variants/product-variants.graphql.ts +123 -0
  145. package/src/app/routes/_authenticated/_product-variants/product-variants.tsx +78 -0
  146. package/src/app/routes/_authenticated/_product-variants/product-variants_.$id.tsx +331 -0
  147. package/src/app/routes/_authenticated/_products/components/create-product-variants-dialog.tsx +228 -0
  148. package/src/app/routes/_authenticated/_products/components/create-product-variants.tsx +462 -0
  149. package/src/app/routes/_authenticated/_products/components/option-value-input.tsx +96 -0
  150. package/src/app/routes/_authenticated/_products/components/product-variants-table.tsx +87 -0
  151. package/src/app/routes/_authenticated/_products/products.graphql.ts +116 -0
  152. package/src/app/routes/_authenticated/_products/products.tsx +48 -0
  153. package/src/app/routes/_authenticated/_products/products_.$id.tsx +196 -0
  154. package/src/app/routes/_authenticated/_profile/profile.graphql.ts +23 -0
  155. package/src/app/routes/_authenticated/_profile/profile.tsx +122 -0
  156. package/src/app/routes/_authenticated/_promotions/components/promotion-actions-selector.tsx +107 -0
  157. package/src/app/routes/_authenticated/_promotions/components/promotion-conditions-selector.tsx +107 -0
  158. package/src/app/routes/_authenticated/_promotions/promotions.graphql.ts +96 -0
  159. package/src/app/routes/_authenticated/_promotions/promotions.tsx +61 -0
  160. package/src/app/routes/_authenticated/_promotions/promotions_.$id.tsx +235 -0
  161. package/src/app/routes/_authenticated/_roles/components/expandable-permissions.tsx +54 -0
  162. package/src/app/routes/_authenticated/_roles/components/permissions-grid.tsx +116 -0
  163. package/src/app/routes/_authenticated/_roles/roles.graphql.ts +67 -0
  164. package/src/app/routes/_authenticated/_roles/roles.tsx +96 -0
  165. package/src/app/routes/_authenticated/_roles/roles_.$id.tsx +142 -0
  166. package/src/app/routes/_authenticated/_sellers/sellers.graphql.ts +61 -0
  167. package/src/app/routes/_authenticated/_sellers/sellers.tsx +51 -0
  168. package/src/app/routes/_authenticated/_sellers/sellers_.$id.tsx +111 -0
  169. package/src/app/routes/_authenticated/_shipping-methods/components/fulfillment-handler-selector.tsx +56 -0
  170. package/src/app/routes/_authenticated/_shipping-methods/components/shipping-calculator-selector.tsx +101 -0
  171. package/src/app/routes/_authenticated/_shipping-methods/components/shipping-eligibility-checker-selector.tsx +101 -0
  172. package/src/app/routes/_authenticated/_shipping-methods/components/test-shipping-method-dialog.tsx +32 -0
  173. package/src/app/routes/_authenticated/_shipping-methods/shipping-methods.graphql.ts +83 -0
  174. package/src/app/routes/_authenticated/_shipping-methods/shipping-methods.tsx +55 -0
  175. package/src/app/routes/_authenticated/_shipping-methods/shipping-methods_.$id.tsx +171 -0
  176. package/src/app/routes/_authenticated/_stock-locations/stock-locations.graphql.ts +62 -0
  177. package/src/app/routes/_authenticated/_stock-locations/stock-locations.tsx +48 -0
  178. package/src/app/routes/_authenticated/_stock-locations/stock-locations_.$id.tsx +115 -0
  179. package/src/app/routes/_authenticated/_system/components/payload-dialog.tsx +34 -0
  180. package/src/app/routes/_authenticated/_system/healthchecks.tsx +93 -0
  181. package/src/app/routes/_authenticated/_system/job-queue.graphql.ts +43 -0
  182. package/src/app/routes/_authenticated/_system/job-queue.tsx +161 -0
  183. package/src/app/routes/_authenticated/_tax-categories/tax-categories.graphql.ts +63 -0
  184. package/src/app/routes/_authenticated/_tax-categories/tax-categories.tsx +65 -0
  185. package/src/app/routes/_authenticated/_tax-categories/tax-categories_.$id.tsx +115 -0
  186. package/src/app/routes/_authenticated/_tax-rates/tax-rates.graphql.ts +75 -0
  187. package/src/app/routes/_authenticated/_tax-rates/tax-rates.tsx +108 -0
  188. package/src/app/routes/_authenticated/_tax-rates/tax-rates_.$id.tsx +148 -0
  189. package/src/app/routes/_authenticated/_zones/components/zone-countries-add.tsx +0 -0
  190. package/src/app/routes/_authenticated/_zones/components/zone-countries-sheet.tsx +31 -0
  191. package/src/app/routes/_authenticated/_zones/components/zone-countries-table.tsx +79 -0
  192. package/src/app/routes/_authenticated/_zones/zones.graphql.ts +96 -0
  193. package/src/app/routes/_authenticated/_zones/zones.tsx +57 -0
  194. package/src/app/routes/_authenticated/_zones/zones_.$id.tsx +103 -0
  195. package/src/app/routes/_authenticated/index.tsx +194 -0
  196. package/src/app/routes/_authenticated.tsx +25 -0
  197. package/src/app/routes/login.tsx +48 -0
  198. package/src/app/styles.css +82 -0
  199. package/src/app/tailwindcss-animate.css +275 -0
  200. package/src/i18n/locales/de.po +1579 -0
  201. package/src/i18n/locales/en.po +1579 -0
  202. package/src/lib/components/data-display/boolean.tsx +23 -0
  203. package/src/lib/components/data-display/date-time.tsx +13 -0
  204. package/src/lib/components/data-display/json.tsx +5 -0
  205. package/src/lib/components/data-display/money.tsx +15 -0
  206. package/src/lib/components/data-input/affixed-input.tsx +49 -0
  207. package/src/lib/components/data-input/customer-group-input.tsx +72 -0
  208. package/src/lib/components/data-input/datetime-input.tsx +150 -0
  209. package/src/lib/components/data-input/facet-value-input.tsx +68 -0
  210. package/src/lib/components/data-input/money-input.tsx +112 -0
  211. package/src/lib/components/data-input/richt-text-input.tsx +99 -0
  212. package/src/lib/components/data-table/data-table-column-header.tsx +73 -0
  213. package/src/lib/components/data-table/data-table-faceted-filter.tsx +172 -0
  214. package/src/lib/components/data-table/data-table-filter-dialog.tsx +73 -0
  215. package/src/lib/components/data-table/data-table-pagination.tsx +87 -0
  216. package/src/lib/components/data-table/data-table-view-options.tsx +53 -0
  217. package/src/lib/components/data-table/data-table.tsx +218 -0
  218. package/src/lib/components/layout/app-layout.tsx +42 -0
  219. package/src/lib/components/layout/app-sidebar.tsx +34 -0
  220. package/src/lib/components/layout/channel-switcher.tsx +87 -0
  221. package/src/lib/components/layout/content-language-selector.tsx +41 -0
  222. package/src/lib/components/layout/generated-breadcrumbs.tsx +82 -0
  223. package/src/lib/components/layout/language-dialog.tsx +104 -0
  224. package/src/lib/components/layout/nav-main.tsx +178 -0
  225. package/src/lib/components/layout/nav-projects.tsx +81 -0
  226. package/src/lib/components/layout/nav-user.tsx +176 -0
  227. package/src/lib/components/layout/prerelease-popup.tsx +38 -0
  228. package/src/lib/components/login/login-form.tsx +173 -0
  229. package/src/lib/components/shared/alerts.tsx +20 -0
  230. package/src/lib/components/shared/animated-number.tsx +49 -0
  231. package/src/lib/components/shared/asset-gallery.tsx +433 -0
  232. package/src/lib/components/shared/asset-picker-dialog.tsx +72 -0
  233. package/src/lib/components/shared/asset-preview-dialog.tsx +48 -0
  234. package/src/lib/components/shared/asset-preview.tsx +345 -0
  235. package/src/lib/components/shared/assigned-facet-values.tsx +68 -0
  236. package/src/lib/components/shared/channel-code-label.tsx +7 -0
  237. package/src/lib/components/shared/channel-selector.tsx +51 -0
  238. package/src/lib/components/shared/configurable-operation-arg-input.tsx +51 -0
  239. package/src/lib/components/shared/configurable-operation-input.tsx +133 -0
  240. package/src/lib/components/shared/confirmation-dialog.tsx +58 -0
  241. package/src/lib/components/shared/copyable-text.tsx +31 -0
  242. package/src/lib/components/shared/country-selector.tsx +105 -0
  243. package/src/lib/components/shared/currency-selector.tsx +33 -0
  244. package/src/lib/components/shared/custom-fields-form.tsx +86 -0
  245. package/src/lib/components/shared/customer-address-form.tsx +330 -0
  246. package/src/lib/components/shared/customer-group-chip.tsx +30 -0
  247. package/src/lib/components/shared/customer-group-selector.tsx +62 -0
  248. package/src/lib/components/shared/customer-selector.tsx +107 -0
  249. package/src/lib/components/shared/detail-page-button.tsx +22 -0
  250. package/src/lib/components/shared/entity-assets.tsx +340 -0
  251. package/src/lib/components/shared/error-page.tsx +31 -0
  252. package/src/lib/components/shared/facet-value-chip.tsx +45 -0
  253. package/src/lib/components/shared/facet-value-selector.tsx +306 -0
  254. package/src/lib/components/shared/focal-point-control.tsx +65 -0
  255. package/src/lib/components/shared/form-field-wrapper.tsx +37 -0
  256. package/src/lib/components/shared/history-timeline/history-entry.tsx +112 -0
  257. package/src/lib/components/shared/history-timeline/history-note-checkbox.tsx +28 -0
  258. package/src/lib/components/shared/history-timeline/history-note-editor.tsx +60 -0
  259. package/src/lib/components/shared/history-timeline/history-note-input.tsx +39 -0
  260. package/src/lib/components/shared/history-timeline/history-timeline.tsx +56 -0
  261. package/src/lib/components/shared/icon-mark.tsx +18 -0
  262. package/src/lib/components/shared/language-selector.tsx +48 -0
  263. package/src/lib/components/shared/logo-mark.tsx +24 -0
  264. package/src/lib/components/shared/multi-select.tsx +159 -0
  265. package/src/lib/components/shared/option-value-input.tsx +95 -0
  266. package/src/lib/components/shared/paginated-list-data-table.tsx +520 -0
  267. package/src/lib/components/shared/permission-guard.tsx +21 -0
  268. package/src/lib/components/shared/rich-text-editor.tsx +0 -0
  269. package/src/lib/components/shared/role-code-label.tsx +8 -0
  270. package/src/lib/components/shared/role-selector.tsx +56 -0
  271. package/src/lib/components/shared/seller-selector.tsx +107 -0
  272. package/src/lib/components/shared/tax-category-selector.tsx +65 -0
  273. package/src/lib/components/shared/translatable-form-field.tsx +74 -0
  274. package/src/lib/components/shared/vendure-image.tsx +159 -0
  275. package/src/lib/components/shared/zone-selector.tsx +66 -0
  276. package/src/lib/components/ui/accordion.tsx +59 -0
  277. package/src/lib/components/ui/alert-dialog.tsx +128 -0
  278. package/src/lib/components/ui/alert.tsx +60 -0
  279. package/src/lib/components/ui/avatar.tsx +38 -0
  280. package/src/lib/components/ui/badge.tsx +38 -0
  281. package/src/lib/components/ui/breadcrumb.tsx +102 -0
  282. package/src/lib/components/ui/button.tsx +51 -0
  283. package/src/lib/components/ui/calendar.tsx +69 -0
  284. package/src/lib/components/ui/card.tsx +47 -0
  285. package/src/lib/components/ui/checkbox.tsx +27 -0
  286. package/src/lib/components/ui/collapsible.tsx +33 -0
  287. package/src/lib/components/ui/command.tsx +133 -0
  288. package/src/lib/components/ui/dialog.tsx +116 -0
  289. package/src/lib/components/ui/dropdown-menu.tsx +220 -0
  290. package/src/lib/components/ui/form.tsx +141 -0
  291. package/src/lib/components/ui/hover-card.tsx +36 -0
  292. package/src/lib/components/ui/input.tsx +19 -0
  293. package/src/lib/components/ui/label.tsx +21 -0
  294. package/src/lib/components/ui/pagination.tsx +127 -0
  295. package/src/lib/components/ui/popover.tsx +40 -0
  296. package/src/lib/components/ui/scroll-area.tsx +50 -0
  297. package/src/lib/components/ui/select.tsx +161 -0
  298. package/src/lib/components/ui/separator.tsx +26 -0
  299. package/src/lib/components/ui/sheet.tsx +118 -0
  300. package/src/lib/components/ui/sidebar.tsx +696 -0
  301. package/src/lib/components/ui/skeleton.tsx +13 -0
  302. package/src/lib/components/ui/sonner.tsx +27 -0
  303. package/src/lib/components/ui/switch.tsx +26 -0
  304. package/src/lib/components/ui/table.tsx +82 -0
  305. package/src/lib/components/ui/tabs.tsx +48 -0
  306. package/src/lib/components/ui/textarea.tsx +18 -0
  307. package/src/lib/components/ui/tooltip.tsx +51 -0
  308. package/src/lib/constants.ts +326 -0
  309. package/src/lib/framework/component-registry/component-registry.tsx +70 -0
  310. package/src/lib/framework/component-registry/dynamic-component.tsx +58 -0
  311. package/src/lib/framework/dashboard-widget/base-widget.tsx +97 -0
  312. package/src/lib/framework/dashboard-widget/latest-orders-widget/index.tsx +96 -0
  313. package/src/lib/framework/dashboard-widget/latest-orders-widget/latest-orders-widget.graphql.ts +35 -0
  314. package/src/lib/framework/dashboard-widget/metrics-widget/chart.tsx +24 -0
  315. package/src/lib/framework/dashboard-widget/metrics-widget/index.tsx +82 -0
  316. package/src/lib/framework/dashboard-widget/metrics-widget/metrics-widget.graphql.ts +14 -0
  317. package/src/lib/framework/dashboard-widget/orders-summary/index.tsx +167 -0
  318. package/src/lib/framework/dashboard-widget/orders-summary/order-summary-widget.graphql.ts +14 -0
  319. package/src/lib/framework/dashboard-widget/types.ts +22 -0
  320. package/src/lib/framework/dashboard-widget/widget-extensions.tsx +19 -0
  321. package/src/lib/framework/defaults.ts +219 -0
  322. package/src/lib/framework/document-introspection/add-custom-fields.spec.ts +242 -0
  323. package/src/lib/framework/document-introspection/add-custom-fields.ts +246 -0
  324. package/src/lib/framework/document-introspection/get-document-structure.spec.ts +310 -0
  325. package/src/lib/framework/document-introspection/get-document-structure.ts +460 -0
  326. package/src/lib/framework/document-introspection/hooks.ts +10 -0
  327. package/src/lib/framework/extension-api/define-dashboard-extension.ts +66 -0
  328. package/src/lib/framework/extension-api/extension-api-types.ts +58 -0
  329. package/src/lib/framework/extension-api/use-dashboard-extensions.ts +26 -0
  330. package/src/lib/framework/form-engine/form-schema-tools.ts +98 -0
  331. package/src/lib/framework/form-engine/use-generated-form.tsx +116 -0
  332. package/src/lib/framework/layout-engine/layout-extensions.ts +30 -0
  333. package/src/lib/framework/layout-engine/location-wrapper.tsx +96 -0
  334. package/src/lib/framework/layout-engine/page-layout.tsx +272 -0
  335. package/src/lib/framework/nav-menu/nav-menu-extensions.ts +66 -0
  336. package/src/lib/framework/page/detail-page-route-loader.tsx +48 -0
  337. package/src/lib/framework/page/detail-page.tsx +131 -0
  338. package/src/lib/framework/page/list-page.tsx +166 -0
  339. package/src/lib/framework/page/page-api.ts +9 -0
  340. package/src/lib/framework/page/page-types.ts +51 -0
  341. package/src/lib/framework/page/use-detail-page.ts +217 -0
  342. package/src/lib/framework/page/use-extended-router.tsx +69 -0
  343. package/src/lib/framework/registry/global-registry.ts +46 -0
  344. package/src/lib/framework/registry/registry-types.ts +15 -0
  345. package/src/lib/graphql/api.ts +61 -0
  346. package/src/lib/graphql/fragments.tsx +54 -0
  347. package/src/lib/graphql/graphql-env.d.ts +499 -0
  348. package/src/lib/graphql/graphql.ts +15 -0
  349. package/src/lib/hooks/use-auth.tsx +11 -0
  350. package/src/lib/hooks/use-channel.ts +12 -0
  351. package/src/lib/hooks/use-custom-field-config.ts +10 -0
  352. package/src/lib/hooks/use-grouped-permissions.ts +54 -0
  353. package/src/lib/hooks/use-local-format.ts +119 -0
  354. package/src/lib/hooks/use-mobile.ts +19 -0
  355. package/src/lib/hooks/use-page.tsx +11 -0
  356. package/src/lib/hooks/use-permissions.ts +22 -0
  357. package/src/lib/hooks/use-server-config.ts +4 -0
  358. package/src/lib/hooks/use-theme.ts +10 -0
  359. package/src/lib/hooks/use-user-settings.tsx +12 -0
  360. package/src/lib/index.ts +149 -0
  361. package/src/lib/lib/trans.tsx +16 -0
  362. package/src/lib/lib/utils.ts +60 -0
  363. package/src/lib/providers/auth.tsx +152 -0
  364. package/src/lib/providers/channel-provider.tsx +121 -0
  365. package/src/lib/providers/i18n-provider.tsx +28 -0
  366. package/src/lib/providers/server-config.tsx +279 -0
  367. package/src/lib/providers/theme-provider.tsx +54 -0
  368. package/src/lib/providers/user-settings.tsx +89 -0
  369. package/src/lib/virtual.d.ts +12 -0
  370. package/vite/config-loader.ts +181 -0
  371. package/vite/constants.ts +280 -0
  372. package/vite/index.ts +1 -0
  373. package/vite/schema-generator.ts +40 -0
  374. package/vite/ui-config.ts +60 -0
  375. package/vite/vite-plugin-admin-api-schema.ts +141 -0
  376. package/vite/vite-plugin-config-loader.ts +64 -0
  377. package/vite/vite-plugin-config.ts +42 -0
  378. package/vite/vite-plugin-dashboard-metadata.ts +58 -0
  379. package/vite/vite-plugin-gql-tada.ts +62 -0
  380. package/vite/vite-plugin-theme.ts +195 -0
  381. package/vite/vite-plugin-ui-config.ts +60 -0
  382. package/vite/vite-plugin-vendure-dashboard.ts +118 -0
@@ -0,0 +1,13 @@
1
+ import { cn } from '@/lib/utils.js';
2
+
3
+ function Skeleton({ className, ...props }: React.ComponentProps<'div'>) {
4
+ return (
5
+ <div
6
+ data-slot="skeleton"
7
+ className={cn('bg-primary/10 animate-pulse rounded-md', className)}
8
+ {...props}
9
+ />
10
+ );
11
+ }
12
+
13
+ export { Skeleton };
@@ -0,0 +1,27 @@
1
+ import { useTheme } from "next-themes"
2
+ import { Toaster as Sonner, ToasterProps } from "sonner"
3
+
4
+ const Toaster = ({ ...props }: ToasterProps) => {
5
+ const { theme = "system" } = useTheme()
6
+
7
+ return (
8
+ <Sonner
9
+ theme={theme as ToasterProps["theme"]}
10
+ className="toaster group"
11
+ toastOptions={{
12
+ classNames: {
13
+ toast:
14
+ "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
15
+ description: "group-[.toast]:text-muted-foreground",
16
+ actionButton:
17
+ "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground font-medium",
18
+ cancelButton:
19
+ "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground font-medium",
20
+ },
21
+ }}
22
+ {...props}
23
+ />
24
+ )
25
+ }
26
+
27
+ export { Toaster }
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
3
+
4
+ import { cn } from '@/lib/utils.js';
5
+
6
+ function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {
7
+ return (
8
+ <SwitchPrimitive.Root
9
+ data-slot="switch"
10
+ className={cn(
11
+ 'peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',
12
+ className,
13
+ )}
14
+ {...props}
15
+ >
16
+ <SwitchPrimitive.Thumb
17
+ data-slot="switch-thumb"
18
+ className={cn(
19
+ 'bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',
20
+ )}
21
+ />
22
+ </SwitchPrimitive.Root>
23
+ );
24
+ }
25
+
26
+ export { Switch };
@@ -0,0 +1,82 @@
1
+ import * as React from 'react';
2
+
3
+ import { cn } from '@/lib/utils.js';
4
+
5
+ function Table({ className, ...props }: React.ComponentProps<'table'>) {
6
+ return (
7
+ <div className="relative w-full overflow-auto">
8
+ <table data-slot="table" className={cn('w-full caption-bottom text-sm', className)} {...props} />
9
+ </div>
10
+ );
11
+ }
12
+
13
+ function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {
14
+ return <thead data-slot="table-header" className={cn('[&_tr]:border-b', className)} {...props} />;
15
+ }
16
+
17
+ function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {
18
+ return (
19
+ <tbody data-slot="table-body" className={cn('[&_tr:last-child]:border-0', className)} {...props} />
20
+ );
21
+ }
22
+
23
+ function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {
24
+ return (
25
+ <tfoot
26
+ data-slot="table-footer"
27
+ className={cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className)}
28
+ {...props}
29
+ />
30
+ );
31
+ }
32
+
33
+ function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
34
+ return (
35
+ <tr
36
+ data-slot="table-row"
37
+ className={cn(
38
+ 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',
39
+ className,
40
+ )}
41
+ {...props}
42
+ />
43
+ );
44
+ }
45
+
46
+ function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
47
+ return (
48
+ <th
49
+ data-slot="table-head"
50
+ className={cn(
51
+ 'text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
52
+ className,
53
+ )}
54
+ {...props}
55
+ />
56
+ );
57
+ }
58
+
59
+ function TableCell({ className, ...props }: React.ComponentProps<'td'>) {
60
+ return (
61
+ <td
62
+ data-slot="table-cell"
63
+ className={cn(
64
+ 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
65
+ className,
66
+ )}
67
+ {...props}
68
+ />
69
+ );
70
+ }
71
+
72
+ function TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {
73
+ return (
74
+ <caption
75
+ data-slot="table-caption"
76
+ className={cn('text-muted-foreground mt-4 text-sm', className)}
77
+ {...props}
78
+ />
79
+ );
80
+ }
81
+
82
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
3
+
4
+ import { cn } from '@/lib/utils.js';
5
+
6
+ function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {
7
+ return (
8
+ <TabsPrimitive.Root data-slot="tabs" className={cn('flex flex-col gap-2', className)} {...props} />
9
+ );
10
+ }
11
+
12
+ function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {
13
+ return (
14
+ <TabsPrimitive.List
15
+ data-slot="tabs-list"
16
+ className={cn(
17
+ 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',
18
+ className,
19
+ )}
20
+ {...props}
21
+ />
22
+ );
23
+ }
24
+
25
+ function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {
26
+ return (
27
+ <TabsPrimitive.Trigger
28
+ data-slot="tabs-trigger"
29
+ className={cn(
30
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
31
+ className,
32
+ )}
33
+ {...props}
34
+ />
35
+ );
36
+ }
37
+
38
+ function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {
39
+ return (
40
+ <TabsPrimitive.Content
41
+ data-slot="tabs-content"
42
+ className={cn('flex-1 outline-none', className)}
43
+ {...props}
44
+ />
45
+ );
46
+ }
47
+
48
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+
3
+ import { cn } from '@/lib/utils.js';
4
+
5
+ function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {
6
+ return (
7
+ <textarea
8
+ data-slot="textarea"
9
+ className={cn(
10
+ 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
11
+ className,
12
+ )}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ export { Textarea };
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
+
4
+ import { cn } from '@/lib/utils.js';
5
+
6
+ function TooltipProvider({
7
+ delayDuration = 0,
8
+ ...props
9
+ }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
10
+ return (
11
+ <TooltipPrimitive.Provider data-slot="tooltip-provider" delayDuration={delayDuration} {...props} />
12
+ );
13
+ }
14
+
15
+ function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
16
+ return (
17
+ <TooltipProvider>
18
+ <TooltipPrimitive.Root data-slot="tooltip" {...props} />
19
+ </TooltipProvider>
20
+ );
21
+ }
22
+
23
+ function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
24
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
25
+ }
26
+
27
+ function TooltipContent({
28
+ className,
29
+ sideOffset = 4,
30
+ children,
31
+ ...props
32
+ }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
33
+ return (
34
+ <TooltipPrimitive.Portal>
35
+ <TooltipPrimitive.Content
36
+ data-slot="tooltip-content"
37
+ sideOffset={sideOffset}
38
+ className={cn(
39
+ 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs',
40
+ className,
41
+ )}
42
+ {...props}
43
+ >
44
+ {children}
45
+ <TooltipPrimitive.Arrow className="bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" />
46
+ </TooltipPrimitive.Content>
47
+ </TooltipPrimitive.Portal>
48
+ );
49
+ }
50
+
51
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,326 @@
1
+ export const NEW_ENTITY_PATH = 'new';
2
+ export const AUTHENTICATED_ROUTE_PREFIX = '/_authenticated';
3
+ export const DEFAULT_CHANNEL_CODE = '__default_channel__';
4
+ export const SUPER_ADMIN_ROLE_CODE = '__super_admin_role__';
5
+ export const CUSTOMER_ROLE_CODE = '__customer_role__';
6
+ /**
7
+ * This is copied from the generated types from @vendure/common/lib/generated-types.d.ts
8
+ * It is used to provide a list of available currency codes for the user to select from.
9
+ * esbuild currently does not support import enums.
10
+ */
11
+ export const CurrencyCode = {
12
+ /** United Arab Emirates dirham */
13
+ AED: 'AED',
14
+ /** Afghan afghani */
15
+ AFN: 'AFN',
16
+ /** Albanian lek */
17
+ ALL: 'ALL',
18
+ /** Armenian dram */
19
+ AMD: 'AMD',
20
+ /** Netherlands Antillean guilder */
21
+ ANG: 'ANG',
22
+ /** Angolan kwanza */
23
+ AOA: 'AOA',
24
+ /** Argentine peso */
25
+ ARS: 'ARS',
26
+ /** Australian dollar */
27
+ AUD: 'AUD',
28
+ /** Aruban florin */
29
+ AWG: 'AWG',
30
+ /** Azerbaijani manat */
31
+ AZN: 'AZN',
32
+ /** Bosnia and Herzegovina convertible mark */
33
+ BAM: 'BAM',
34
+ /** Barbados dollar */
35
+ BBD: 'BBD',
36
+ /** Bangladeshi taka */
37
+ BDT: 'BDT',
38
+ /** Bulgarian lev */
39
+ BGN: 'BGN',
40
+ /** Bahraini dinar */
41
+ BHD: 'BHD',
42
+ /** Burundian franc */
43
+ BIF: 'BIF',
44
+ /** Bermudian dollar */
45
+ BMD: 'BMD',
46
+ /** Brunei dollar */
47
+ BND: 'BND',
48
+ /** Boliviano */
49
+ BOB: 'BOB',
50
+ /** Brazilian real */
51
+ BRL: 'BRL',
52
+ /** Bahamian dollar */
53
+ BSD: 'BSD',
54
+ /** Bhutanese ngultrum */
55
+ BTN: 'BTN',
56
+ /** Botswana pula */
57
+ BWP: 'BWP',
58
+ /** Belarusian ruble */
59
+ BYN: 'BYN',
60
+ /** Belize dollar */
61
+ BZD: 'BZD',
62
+ /** Canadian dollar */
63
+ CAD: 'CAD',
64
+ /** Congolese franc */
65
+ CDF: 'CDF',
66
+ /** Swiss franc */
67
+ CHF: 'CHF',
68
+ /** Chilean peso */
69
+ CLP: 'CLP',
70
+ /** Renminbi (Chinese) yuan */
71
+ CNY: 'CNY',
72
+ /** Colombian peso */
73
+ COP: 'COP',
74
+ /** Costa Rican colon */
75
+ CRC: 'CRC',
76
+ /** Cuban convertible peso */
77
+ CUC: 'CUC',
78
+ /** Cuban peso */
79
+ CUP: 'CUP',
80
+ /** Cape Verde escudo */
81
+ CVE: 'CVE',
82
+ /** Czech koruna */
83
+ CZK: 'CZK',
84
+ /** Djiboutian franc */
85
+ DJF: 'DJF',
86
+ /** Danish krone */
87
+ DKK: 'DKK',
88
+ /** Dominican peso */
89
+ DOP: 'DOP',
90
+ /** Algerian dinar */
91
+ DZD: 'DZD',
92
+ /** Egyptian pound */
93
+ EGP: 'EGP',
94
+ /** Eritrean nakfa */
95
+ ERN: 'ERN',
96
+ /** Ethiopian birr */
97
+ ETB: 'ETB',
98
+ /** Euro */
99
+ EUR: 'EUR',
100
+ /** Fiji dollar */
101
+ FJD: 'FJD',
102
+ /** Falkland Islands pound */
103
+ FKP: 'FKP',
104
+ /** Pound sterling */
105
+ GBP: 'GBP',
106
+ /** Georgian lari */
107
+ GEL: 'GEL',
108
+ /** Ghanaian cedi */
109
+ GHS: 'GHS',
110
+ /** Gibraltar pound */
111
+ GIP: 'GIP',
112
+ /** Gambian dalasi */
113
+ GMD: 'GMD',
114
+ /** Guinean franc */
115
+ GNF: 'GNF',
116
+ /** Guatemalan quetzal */
117
+ GTQ: 'GTQ',
118
+ /** Guyanese dollar */
119
+ GYD: 'GYD',
120
+ /** Hong Kong dollar */
121
+ HKD: 'HKD',
122
+ /** Honduran lempira */
123
+ HNL: 'HNL',
124
+ /** Croatian kuna */
125
+ HRK: 'HRK',
126
+ /** Haitian gourde */
127
+ HTG: 'HTG',
128
+ /** Hungarian forint */
129
+ HUF: 'HUF',
130
+ /** Indonesian rupiah */
131
+ IDR: 'IDR',
132
+ /** Israeli new shekel */
133
+ ILS: 'ILS',
134
+ /** Indian rupee */
135
+ INR: 'INR',
136
+ /** Iraqi dinar */
137
+ IQD: 'IQD',
138
+ /** Iranian rial */
139
+ IRR: 'IRR',
140
+ /** Icelandic króna */
141
+ ISK: 'ISK',
142
+ /** Jamaican dollar */
143
+ JMD: 'JMD',
144
+ /** Jordanian dinar */
145
+ JOD: 'JOD',
146
+ /** Japanese yen */
147
+ JPY: 'JPY',
148
+ /** Kenyan shilling */
149
+ KES: 'KES',
150
+ /** Kyrgyzstani som */
151
+ KGS: 'KGS',
152
+ /** Cambodian riel */
153
+ KHR: 'KHR',
154
+ /** Comoro franc */
155
+ KMF: 'KMF',
156
+ /** North Korean won */
157
+ KPW: 'KPW',
158
+ /** South Korean won */
159
+ KRW: 'KRW',
160
+ /** Kuwaiti dinar */
161
+ KWD: 'KWD',
162
+ /** Cayman Islands dollar */
163
+ KYD: 'KYD',
164
+ /** Kazakhstani tenge */
165
+ KZT: 'KZT',
166
+ /** Lao kip */
167
+ LAK: 'LAK',
168
+ /** Lebanese pound */
169
+ LBP: 'LBP',
170
+ /** Sri Lankan rupee */
171
+ LKR: 'LKR',
172
+ /** Liberian dollar */
173
+ LRD: 'LRD',
174
+ /** Lesotho loti */
175
+ LSL: 'LSL',
176
+ /** Libyan dinar */
177
+ LYD: 'LYD',
178
+ /** Moroccan dirham */
179
+ MAD: 'MAD',
180
+ /** Moldovan leu */
181
+ MDL: 'MDL',
182
+ /** Malagasy ariary */
183
+ MGA: 'MGA',
184
+ /** Macedonian denar */
185
+ MKD: 'MKD',
186
+ /** Myanmar kyat */
187
+ MMK: 'MMK',
188
+ /** Mongolian tögrög */
189
+ MNT: 'MNT',
190
+ /** Macanese pataca */
191
+ MOP: 'MOP',
192
+ /** Mauritanian ouguiya */
193
+ MRU: 'MRU',
194
+ /** Mauritian rupee */
195
+ MUR: 'MUR',
196
+ /** Maldivian rufiyaa */
197
+ MVR: 'MVR',
198
+ /** Malawian kwacha */
199
+ MWK: 'MWK',
200
+ /** Mexican peso */
201
+ MXN: 'MXN',
202
+ /** Malaysian ringgit */
203
+ MYR: 'MYR',
204
+ /** Mozambican metical */
205
+ MZN: 'MZN',
206
+ /** Namibian dollar */
207
+ NAD: 'NAD',
208
+ /** Nigerian naira */
209
+ NGN: 'NGN',
210
+ /** Nicaraguan córdoba */
211
+ NIO: 'NIO',
212
+ /** Norwegian krone */
213
+ NOK: 'NOK',
214
+ /** Nepalese rupee */
215
+ NPR: 'NPR',
216
+ /** New Zealand dollar */
217
+ NZD: 'NZD',
218
+ /** Omani rial */
219
+ OMR: 'OMR',
220
+ /** Panamanian balboa */
221
+ PAB: 'PAB',
222
+ /** Peruvian sol */
223
+ PEN: 'PEN',
224
+ /** Papua New Guinean kina */
225
+ PGK: 'PGK',
226
+ /** Philippine peso */
227
+ PHP: 'PHP',
228
+ /** Pakistani rupee */
229
+ PKR: 'PKR',
230
+ /** Polish złoty */
231
+ PLN: 'PLN',
232
+ /** Paraguayan guaraní */
233
+ PYG: 'PYG',
234
+ /** Qatari riyal */
235
+ QAR: 'QAR',
236
+ /** Romanian leu */
237
+ RON: 'RON',
238
+ /** Serbian dinar */
239
+ RSD: 'RSD',
240
+ /** Russian ruble */
241
+ RUB: 'RUB',
242
+ /** Rwandan franc */
243
+ RWF: 'RWF',
244
+ /** Saudi riyal */
245
+ SAR: 'SAR',
246
+ /** Solomon Islands dollar */
247
+ SBD: 'SBD',
248
+ /** Seychelles rupee */
249
+ SCR: 'SCR',
250
+ /** Sudanese pound */
251
+ SDG: 'SDG',
252
+ /** Swedish krona/kronor */
253
+ SEK: 'SEK',
254
+ /** Singapore dollar */
255
+ SGD: 'SGD',
256
+ /** Saint Helena pound */
257
+ SHP: 'SHP',
258
+ /** Sierra Leonean leone */
259
+ SLL: 'SLL',
260
+ /** Somali shilling */
261
+ SOS: 'SOS',
262
+ /** Surinamese dollar */
263
+ SRD: 'SRD',
264
+ /** South Sudanese pound */
265
+ SSP: 'SSP',
266
+ /** São Tomé and Príncipe dobra */
267
+ STN: 'STN',
268
+ /** Salvadoran colón */
269
+ SVC: 'SVC',
270
+ /** Syrian pound */
271
+ SYP: 'SYP',
272
+ /** Swazi lilangeni */
273
+ SZL: 'SZL',
274
+ /** Thai baht */
275
+ THB: 'THB',
276
+ /** Tajikistani somoni */
277
+ TJS: 'TJS',
278
+ /** Turkmenistan manat */
279
+ TMT: 'TMT',
280
+ /** Tunisian dinar */
281
+ TND: 'TND',
282
+ /** Tongan paʻanga */
283
+ TOP: 'TOP',
284
+ /** Turkish lira */
285
+ TRY: 'TRY',
286
+ /** Trinidad and Tobago dollar */
287
+ TTD: 'TTD',
288
+ /** New Taiwan dollar */
289
+ TWD: 'TWD',
290
+ /** Tanzanian shilling */
291
+ TZS: 'TZS',
292
+ /** Ukrainian hryvnia */
293
+ UAH: 'UAH',
294
+ /** Ugandan shilling */
295
+ UGX: 'UGX',
296
+ /** United States dollar */
297
+ USD: 'USD',
298
+ /** Uruguayan peso */
299
+ UYU: 'UYU',
300
+ /** Uzbekistan som */
301
+ UZS: 'UZS',
302
+ /** Venezuelan bolívar soberano */
303
+ VES: 'VES',
304
+ /** Vietnamese đồng */
305
+ VND: 'VND',
306
+ /** Vanuatu vatu */
307
+ VUV: 'VUV',
308
+ /** Samoan tala */
309
+ WST: 'WST',
310
+ /** CFA franc BEAC */
311
+ XAF: 'XAF',
312
+ /** East Caribbean dollar */
313
+ XCD: 'XCD',
314
+ /** CFA franc BCEAO */
315
+ XOF: 'XOF',
316
+ /** CFP franc (franc Pacifique) */
317
+ XPF: 'XPF',
318
+ /** Yemeni rial */
319
+ YER: 'YER',
320
+ /** South African rand */
321
+ ZAR: 'ZAR',
322
+ /** Zambian kwacha */
323
+ ZMW: 'ZMW',
324
+ /** Zimbabwean dollar */
325
+ ZWL: 'ZWL',
326
+ };
@@ -0,0 +1,70 @@
1
+ import { BooleanDisplayBadge, BooleanDisplayCheckbox } from '@/components/data-display/boolean.js';
2
+ import { DateTime } from '@/components/data-display/date-time.js';
3
+ import { Money } from '@/components/data-display/money.js';
4
+ import { DateTimeInput } from '@/components/data-input/datetime-input.js';
5
+ import { FacetValueInput } from '@/components/data-input/facet-value-input.js';
6
+ import { MoneyInput } from '@/components/data-input/money-input.js';
7
+ import { VendureImage } from '@/components/shared/vendure-image.js';
8
+ import { Checkbox } from '@/components/ui/checkbox.js';
9
+ import { Input } from '@/components/ui/input.js';
10
+ import * as React from 'react';
11
+
12
+ export interface ComponentRegistryEntry<Props extends Record<string, any>> {
13
+ component: React.ComponentType<Props>;
14
+ }
15
+
16
+ // Basic component types
17
+ export type DataDisplayComponent = React.ComponentType<{ value: any; [key: string]: any }>;
18
+ export type DataInputComponent = React.ComponentType<{ value: any; onChange: (value: any) => void; [key: string]: any }>;
19
+
20
+ // Simple component registry
21
+ interface ComponentRegistry {
22
+ dataDisplay: Record<string, DataDisplayComponent>;
23
+ dataInput: Record<string, DataInputComponent>;
24
+ }
25
+
26
+ export const COMPONENT_REGISTRY: ComponentRegistry = {
27
+ dataDisplay: {
28
+ 'vendure:booleanCheckbox': BooleanDisplayCheckbox,
29
+ 'vendure:booleanBadge': BooleanDisplayBadge,
30
+ 'vendure:dateTime': DateTime,
31
+ 'vendure:asset': ({value}) => <VendureImage asset={value} preset="tiny" />,
32
+ 'vendure:money': Money,
33
+ },
34
+ dataInput: {
35
+ 'vendure:moneyInput': MoneyInput,
36
+ 'vendure:textInput': (props) => <Input {...props} onChange={e => props.onChange(e.target.value)} />,
37
+ 'vendure:numberInput': (props) => <Input {...props} onChange={e => props.onChange(e.target.value)} type="number" />,
38
+ 'vendure:dateTimeInput': DateTimeInput,
39
+ 'vendure:checkboxInput': (props) => <Checkbox {...props} checked={props.value === 'true' || props.value === true} onCheckedChange={value => props.onChange(value)} />,
40
+ 'vendure:facetValueInput': FacetValueInput,
41
+ }
42
+ };
43
+
44
+ // Simplified implementation - replace with actual implementation
45
+ export function useComponentRegistry() {
46
+ return {
47
+ getDisplayComponent: (id: string): DataDisplayComponent | undefined => {
48
+ // This is a placeholder implementation
49
+ return COMPONENT_REGISTRY.dataDisplay[id];
50
+ },
51
+ getInputComponent: (id: string): DataInputComponent | undefined => {
52
+ // This is a placeholder implementation
53
+ return COMPONENT_REGISTRY.dataInput[id];
54
+ },
55
+ };
56
+ }
57
+
58
+ export function registerInputComponent(id: string, component: DataInputComponent) {
59
+ if (COMPONENT_REGISTRY.dataInput[id]) {
60
+ throw new Error(`Input component with id ${id} already registered`);
61
+ }
62
+ COMPONENT_REGISTRY.dataInput[id] = component;
63
+ }
64
+
65
+ export function registerDisplayComponent(id: string, component: DataDisplayComponent) {
66
+ if (COMPONENT_REGISTRY.dataDisplay[id]) {
67
+ throw new Error(`Display component with id ${id} already registered`);
68
+ }
69
+ COMPONENT_REGISTRY.dataDisplay[id] = component;
70
+ }