@burdenoff/microfe-devportal 2026.713.3 → 2026.713.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/AdminDevportalRoutes.js.map +1 -1
- package/dist/devportal/hooks/useGraphQL.js +5 -5
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/pages/AdminOrganizationVerificationPage.js +5 -1
- package/dist/devportal/pages/AdminOrganizationVerificationPage.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +73 -59
- package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +9 -9
- package/dist/devportal/pages/AppLogsPage.js +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +444 -404
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +1 -1
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +9 -9
- package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +254 -206
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/devportal/utils/cn.js +2 -2
- package/dist/generated/global-operations.js +1 -0
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/ServerError.js +17 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/ServerError.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/utils.js +16 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/errors/utils.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/core/ApolloLink.js +52 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/subscriptions/index.js +41 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/utils/createOperation.js +34 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/graphql/print.js +16 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/caches.js +19 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/checkDocument.js +21 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +17 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +9 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +9 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js +8 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/global.js +9 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js +10 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +8 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +10 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/memoize.js +23 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +10 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/invariant/index.js +57 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js +6 -0
- package/dist/node_modules/.bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo/client/version.js.map +1 -0
- package/dist/node_modules/.bun/@wry_caches@1.0.1/node_modules/@wry/caches/lib/weak.js +67 -0
- package/dist/node_modules/.bun/@wry_caches@1.0.1/node_modules/@wry/caches/lib/weak.js.map +1 -0
- package/dist/node_modules/.bun/@wry_trie@0.5.0/node_modules/@wry/trie/lib/index.js +53 -0
- package/dist/node_modules/.bun/@wry_trie@0.5.0/node_modules/@wry/trie/lib/index.js.map +1 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/ascending.js +8 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/ascending.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/bisect.js +10 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/bisect.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/bisector.js +43 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/bisector.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/descending.js +8 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/descending.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/max.js +14 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/max.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/min.js +14 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/min.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/number.js +15 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/number.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/quantile.js +25 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/quantile.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/quickselect.js +26 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/quickselect.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/range.js +10 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/range.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/sort.js +17 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/sort.js.map +1 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/ticks.js +34 -0
- package/dist/node_modules/.bun/d3-array@3.2.4/node_modules/d3-array/src/ticks.js.map +1 -0
- package/dist/node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/color.js +291 -0
- package/dist/node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/color.js.map +1 -0
- package/dist/node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/define.js +13 -0
- package/dist/node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/define.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js +15 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/exponent.js +9 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/exponent.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js +13 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js +11 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js +12 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js +12 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js +29 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js +20 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js +23 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/identity.js +8 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/identity.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/locale.js +86 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/locale.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js +9 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js +9 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js +9 -0
- package/dist/node_modules/.bun/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js +15 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js +16 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js +13 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js +25 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js +6 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js +11 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js +10 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js +16 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js +14 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/piecewise.js +14 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/piecewise.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js +19 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js +10 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js +28 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js.map +1 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js +18 -0
- package/dist/node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js.map +1 -0
- package/dist/node_modules/.bun/d3-path@3.1.0/node_modules/d3-path/src/path.js +65 -0
- package/dist/node_modules/.bun/d3-path@3.1.0/node_modules/d3-path/src/path.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/band.js +52 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/band.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js +10 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js +73 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/diverging.js +82 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/diverging.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/identity.js +20 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/identity.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/init.js +29 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/init.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js +36 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/log.js +77 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/log.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js +10 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/number.js +8 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/number.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js +31 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/pow.js +37 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/pow.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/quantile.js +37 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/quantile.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/quantize.js +33 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/quantize.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/radial.js +39 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/radial.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/sequential.js +67 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/sequential.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/sequentialQuantile.js +30 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js +30 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/threshold.js +25 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/threshold.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js +31 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/time.js +47 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/time.js.map +1 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js +19 -0
- package/dist/node_modules/.bun/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/area.js +55 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/area.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/array.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js +49 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js +50 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js +46 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js +40 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js +36 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js +94 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js +39 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js +47 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/line.js +30 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/line.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/math.js +8 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/math.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js +6 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js +15 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js +8 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js +15 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js +21 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js +9 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/path.js +19 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/path.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/point.js +11 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/point.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/stack.js +34 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/stack.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/circle.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/circle.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/cross.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/cross.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/diamond.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/diamond.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/square.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/square.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/star.js +15 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/star.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/triangle.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/triangle.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/wye.js +10 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/wye.js.map +1 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol.js +23 -0
- package/dist/node_modules/.bun/d3-shape@3.2.0/node_modules/d3-shape/src/symbol.js.map +1 -0
- package/dist/node_modules/.bun/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js +62 -0
- package/dist/node_modules/.bun/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/.bun/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js +490 -0
- package/dist/node_modules/.bun/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/day.js +21 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/day.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/duration.js +6 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/duration.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/hour.js +19 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/hour.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/interval.js +28 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/interval.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js +14 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/minute.js +19 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/minute.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/month.js +18 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/month.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/second.js +13 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/second.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/ticks.js +125 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/ticks.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/week.js +25 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/week.js.map +1 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/year.js +26 -0
- package/dist/node_modules/.bun/d3-time@3.1.0/node_modules/d3-time/src/year.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/addLeadingZeros.js +8 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/defaultOptions.js +9 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/defaultOptions.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/formatters.js +384 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/formatters.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/lightFormatters.js +45 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/longFormatters.js +42 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +10 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/protectedTokens.js +25 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/protectedTokens.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constants.js +7 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constants.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructFrom.js +8 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructFrom.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceInCalendarDays.js +12 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceInCalendarDays.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.js +61 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getDayOfYear.js +12 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getDayOfYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getISOWeek.js +13 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getISOWeek.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getISOWeekYear.js +16 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getISOWeekYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getWeek.js +13 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getWeek.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getWeekYear.js +17 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getWeekYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isDate.js +8 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isDate.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isValid.js +12 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isValid.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +11 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +19 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +24 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +20 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +71 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US.js +22 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/en-US.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfDay.js +10 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfDay.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfISOWeek.js +9 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfISOWeek.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfISOWeekYear.js +12 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfISOWeekYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfWeek.js +11 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfWeek.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfWeekYear.js +13 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfWeekYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfYear.js +11 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startOfYear.js.map +1 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/toDate.js +9 -0
- package/dist/node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/toDate.js.map +1 -0
- package/dist/node_modules/.bun/decimal.js-light@2.5.1/node_modules/decimal.js-light/decimal.js +378 -0
- package/dist/node_modules/.bun/decimal.js-light@2.5.1/node_modules/decimal.js-light/decimal.js.map +1 -0
- package/dist/node_modules/.bun/eventemitter3@4.0.7/node_modules/eventemitter3/index.js +95 -0
- package/dist/node_modules/.bun/eventemitter3@4.0.7/node_modules/eventemitter3/index.js.map +1 -0
- package/dist/node_modules/.bun/fast-equals@5.4.0/node_modules/fast-equals/dist/es/index.js +267 -0
- package/dist/node_modules/.bun/fast-equals@5.4.0/node_modules/fast-equals/dist/es/index.js.map +1 -0
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/client.js +272 -0
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/client.js.map +1 -0
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/common-CGW11Fyb.js +62 -0
- package/dist/node_modules/.bun/graphql-ws@6.0.8_796ebe57c2b0ffe0/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -0
- package/dist/node_modules/.bun/internmap@2.0.3/node_modules/internmap/src/index.js +40 -0
- package/dist/node_modules/.bun/internmap@2.0.3/node_modules/internmap/src/index.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_DataView.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_DataView.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Hash.js +23 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Hash.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_ListCache.js +23 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_ListCache.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Map.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Map.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_MapCache.js +23 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_MapCache.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Promise.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Promise.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Set.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Set.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_SetCache.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_SetCache.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Stack.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Stack.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Symbol.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Symbol.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Uint8Array.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_WeakMap.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_WeakMap.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_apply.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_apply.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayEvery.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayEvery.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayFilter.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayIncludes.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayIncludesWith.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayLikeKeys.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayMap.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayMap.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayPush.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arrayPush.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arraySome.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_arraySome.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_asciiToArray.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_asciiToArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseAssignValue.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseEach.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseEach.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseEvery.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseEvery.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseExtremum.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFindIndex.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFlatten.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFor.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseFor.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseForOwn.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGet.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetAllKeys.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetTag.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGt.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseGt.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseHasIn.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIndexOf.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsArguments.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsEqual.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsEqualDeep.js +37 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsMatch.js +33 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNaN.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNative.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsTypedArray.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIteratee.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseKeys.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseKeys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseLt.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseLt.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMap.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMap.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMatches.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMatches.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMatchesProperty.js +24 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseOrderBy.js +39 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseProperty.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseProperty.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_basePropertyDeep.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseRange.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseRange.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseRest.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseRest.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSetToString.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSlice.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSlice.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSome.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSome.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSortBy.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseTimes.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseTimes.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseToString.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseToString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseTrim.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseTrim.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseUnary.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseUnary.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseUniq.js +34 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_baseUniq.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_cacheHas.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_cacheHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_castPath.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_castPath.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_castSlice.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_castSlice.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_compareAscending.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_compareAscending.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_compareMultiple.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_coreJsData.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_coreJsData.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createBaseEach.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createBaseFor.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createCaseFirst.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createCaseFirst.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createFind.js +27 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createFind.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createRange.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createRange.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createSet.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_createSet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_defineProperty.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_defineProperty.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalArrays.js +42 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalArrays.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalByTag.js +42 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalByTag.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalObjects.js +39 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_equalObjects.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_freeGlobal.js +10 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getAllKeys.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMapData.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMapData.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMatchData.js +24 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getMatchData.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getNative.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getNative.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getPrototype.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getPrototype.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getRawTag.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getRawTag.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getSymbols.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getSymbols.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getTag.js +28 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getTag.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getValue.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_getValue.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hasPath.js +26 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hasPath.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hasUnicode.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashClear.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashClear.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashDelete.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashDelete.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashGet.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashGet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashHas.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashSet.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_hashSet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isFlattenable.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isIndex.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isIndex.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isIterateeCall.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKey.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKey.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKeyable.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isKeyable.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isMasked.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isMasked.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isPrototype.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isPrototype.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isStrictComparable.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheClear.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheGet.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheHas.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheSet.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapToArray.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_mapToArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_matchesStrictComparable.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_memoizeCapped.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeCreate.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeKeys.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nodeUtil.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_objectToString.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_objectToString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_overArg.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_overArg.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_overRest.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_overRest.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_root.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_root.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setCacheAdd.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setCacheHas.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setToArray.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setToArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setToString.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_setToString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_shortOut.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_shortOut.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackClear.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackClear.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackDelete.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackDelete.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackGet.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackGet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackHas.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackHas.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackSet.js +23 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stackSet.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_strictIndexOf.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stringToArray.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stringToArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stringToPath.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_stringToPath.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toKey.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toKey.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toSource.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_toSource.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_trimmedEndIndex.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_unicodeToArray.js +24 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/_unicodeToArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/constant.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/constant.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/debounce.js +57 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/debounce.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/eq.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/eq.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/every.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/every.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/find.js +12 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/find.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/findIndex.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/findIndex.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/flatMap.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/flatMap.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/get.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/get.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/hasIn.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/hasIn.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/identity.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/identity.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArguments.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArguments.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArray.js +10 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArrayLike.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isArrayLike.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isBoolean.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isBoolean.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isBuffer.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isBuffer.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isEqual.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isEqual.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isFunction.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isFunction.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isLength.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isLength.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNaN.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNaN.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNil.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNil.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNumber.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isNumber.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObject.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObject.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObjectLike.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isObjectLike.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isPlainObject.js +21 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isPlainObject.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isString.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isSymbol.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isSymbol.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isTypedArray.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/isTypedArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/keys.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/keys.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/last.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/last.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/map.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/map.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/mapValues.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/mapValues.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/max.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/max.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/memoize.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/memoize.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/min.js +17 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/min.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/noop.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/noop.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/now.js +14 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/now.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/property.js +18 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/property.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/range.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/range.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/some.js +20 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/some.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/sortBy.js +19 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/sortBy.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/stubArray.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/stubArray.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/stubFalse.js +13 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/stubFalse.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/throttle.js +22 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/throttle.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toFinite.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toFinite.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toInteger.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toInteger.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toNumber.js +26 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toNumber.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toString.js +15 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/toString.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/uniqBy.js +16 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/uniqBy.js.map +1 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/upperFirst.js +11 -0
- package/dist/node_modules/.bun/lodash@4.18.1/node_modules/lodash/upperFirst.js.map +1 -0
- package/dist/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/index.js +41 -0
- package/dist/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js +46 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js +49 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js +272 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/index.js +16 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/lib/has.js +10 -0
- package/dist/node_modules/.bun/prop-types@15.8.1/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js +84 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js +64 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/.bun/react-is@16.13.1/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/cjs/react-is.development.js +87 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js +65 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/.bun/react-is@18.3.1/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/Animate.js +374 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/Animate.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/AnimateManager.js +73 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/AnimateManager.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/configUpdate.js +173 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/configUpdate.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/easing.js +152 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/easing.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/index.js +9 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/index.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/setRafTimeout.js +14 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/util.js +92 -0
- package/dist/node_modules/.bun/react-smooth@4.0.4_21ccd8898788a04d/node_modules/react-smooth/es6/util.js.map +1 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/getNiceTickValues.js +132 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/arithmetic.js +32 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/utils.js +79 -0
- package/dist/node_modules/.bun/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/utils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Bar.js +387 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Bar.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Brush.js +499 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Brush.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/CartesianAxis.js +338 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/CartesianGrid.js +305 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ErrorBar.js +243 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Line.js +473 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Line.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceArea.js +173 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceDot.js +178 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceLine.js +254 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/XAxis.js +144 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/YAxis.js +143 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +18 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/getTicks.js +121 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/AccessibilityManager.js +101 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/BarChart.js +24 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/BarChart.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/LineChart.js +22 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/LineChart.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/generateCategoricalChart.js +1245 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Cell.js +9 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Cell.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Cursor.js +93 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Cursor.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/DefaultLegendContent.js +237 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/DefaultTooltipContent.js +171 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Label.js +353 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Label.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/LabelList.js +166 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/LabelList.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Legend.js +234 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Legend.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/ResponsiveContainer.js +187 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Text.js +225 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Text.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Tooltip.js +182 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Tooltip.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/TooltipBoundingBox.js +198 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/container/Layer.js +40 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/container/Layer.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/container/Surface.js +60 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/container/Surface.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/context/chartLayoutContext.js +57 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Cross.js +112 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Cross.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Curve.js +136 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Curve.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Dot.js +27 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Dot.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Rectangle.js +205 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Rectangle.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Sector.js +192 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Sector.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Symbols.js +143 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Symbols.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Trapezoid.js +175 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ActiveShapeUtils.js +181 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/BarUtils.js +112 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/BarUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/CartesianUtils.js +234 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ChartUtils.js +562 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ChartUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/CssPrefixUtils.js +70 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DOMUtils.js +108 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DOMUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DataUtils.js +57 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DataUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +58 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/Events.js +7 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/Events.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/Global.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/IfOverflowMatches.js +9 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/LogUtils.js +15 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/LogUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/PolarUtils.js +116 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/PolarUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ReactUtils.js +137 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ReactUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ReduceCSSCalc.js +181 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ShallowEqual.js +10 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/TickUtils.js +31 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/TickUtils.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/calculateViewBox.js +25 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getCursorPoints.js +23 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +16 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +17 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/getEveryNthWithCondition.js +12 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/getLegendProps.js +88 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/getLegendProps.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +13 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/payload/getUniqPayload.js +12 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/tooltip/translate.js +87 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/types.js +43 -0
- package/dist/node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/util/types.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +21 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js +78 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js +117 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js +93 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js +12 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js +9 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +16 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +8 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +13 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +11 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +11 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +22 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js +8 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +8 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js +6 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js +13 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +14 -0
- package/dist/node_modules/.bun/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -0
- package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
- package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/.bun/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +13 -0
- package/dist/node_modules/.bun/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
- package/dist/node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.js +52 -0
- package/dist/node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/.bun/victory-vendor@36.9.2/node_modules/victory-vendor/es/d3-scale.js +53 -0
- package/dist/node_modules/.bun/victory-vendor@36.9.2/node_modules/victory-vendor/es/d3-scale.js.map +1 -0
- package/package.json +1 -1
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +0 -24
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/ServerError.js +0 -17
- package/dist/node_modules/@apollo/client/errors/ServerError.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/utils.js +0 -16
- package/dist/node_modules/@apollo/client/errors/utils.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +0 -52
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/subscriptions/index.js +0 -41
- package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js +0 -34
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js +0 -16
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js +0 -19
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +0 -21
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +0 -17
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +0 -9
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +0 -9
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +0 -8
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +0 -9
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +0 -10
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +0 -8
- package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +0 -10
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +0 -23
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +0 -10
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js +0 -57
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +0 -1
- package/dist/node_modules/@apollo/client/version.js +0 -6
- package/dist/node_modules/@apollo/client/version.js.map +0 -1
- package/dist/node_modules/@wry/caches/lib/weak.js +0 -67
- package/dist/node_modules/@wry/caches/lib/weak.js.map +0 -1
- package/dist/node_modules/@wry/trie/lib/index.js +0 -53
- package/dist/node_modules/@wry/trie/lib/index.js.map +0 -1
- package/dist/node_modules/clsx/dist/clsx.js +0 -18
- package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
- package/dist/node_modules/d3-array/src/ascending.js +0 -8
- package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisect.js +0 -10
- package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisector.js +0 -43
- package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
- package/dist/node_modules/d3-array/src/descending.js +0 -8
- package/dist/node_modules/d3-array/src/descending.js.map +0 -1
- package/dist/node_modules/d3-array/src/max.js +0 -14
- package/dist/node_modules/d3-array/src/max.js.map +0 -1
- package/dist/node_modules/d3-array/src/min.js +0 -14
- package/dist/node_modules/d3-array/src/min.js.map +0 -1
- package/dist/node_modules/d3-array/src/number.js +0 -15
- package/dist/node_modules/d3-array/src/number.js.map +0 -1
- package/dist/node_modules/d3-array/src/quantile.js +0 -25
- package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-array/src/quickselect.js +0 -26
- package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
- package/dist/node_modules/d3-array/src/range.js +0 -10
- package/dist/node_modules/d3-array/src/range.js.map +0 -1
- package/dist/node_modules/d3-array/src/sort.js +0 -17
- package/dist/node_modules/d3-array/src/sort.js.map +0 -1
- package/dist/node_modules/d3-array/src/ticks.js +0 -34
- package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-color/src/color.js +0 -291
- package/dist/node_modules/d3-color/src/color.js.map +0 -1
- package/dist/node_modules/d3-color/src/define.js +0 -13
- package/dist/node_modules/d3-color/src/define.js.map +0 -1
- package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-format/src/exponent.js +0 -9
- package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
- package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
- package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
- package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
- package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
- package/dist/node_modules/d3-format/src/identity.js +0 -8
- package/dist/node_modules/d3-format/src/identity.js.map +0 -1
- package/dist/node_modules/d3-format/src/locale.js +0 -86
- package/dist/node_modules/d3-format/src/locale.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
- package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/array.js +0 -15
- package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
- package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/color.js +0 -25
- package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
- package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/date.js +0 -11
- package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/number.js +0 -10
- package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/object.js +0 -14
- package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/round.js +0 -10
- package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/string.js +0 -28
- package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/value.js +0 -18
- package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
- package/dist/node_modules/d3-path/src/path.js +0 -65
- package/dist/node_modules/d3-path/src/path.js.map +0 -1
- package/dist/node_modules/d3-scale/src/band.js +0 -52
- package/dist/node_modules/d3-scale/src/band.js.map +0 -1
- package/dist/node_modules/d3-scale/src/constant.js +0 -10
- package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
- package/dist/node_modules/d3-scale/src/continuous.js +0 -73
- package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
- package/dist/node_modules/d3-scale/src/diverging.js +0 -82
- package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
- package/dist/node_modules/d3-scale/src/identity.js +0 -20
- package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
- package/dist/node_modules/d3-scale/src/init.js +0 -29
- package/dist/node_modules/d3-scale/src/init.js.map +0 -1
- package/dist/node_modules/d3-scale/src/linear.js +0 -36
- package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
- package/dist/node_modules/d3-scale/src/log.js +0 -77
- package/dist/node_modules/d3-scale/src/log.js.map +0 -1
- package/dist/node_modules/d3-scale/src/nice.js +0 -10
- package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
- package/dist/node_modules/d3-scale/src/number.js +0 -8
- package/dist/node_modules/d3-scale/src/number.js.map +0 -1
- package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
- package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
- package/dist/node_modules/d3-scale/src/pow.js +0 -37
- package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantile.js +0 -37
- package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantize.js +0 -33
- package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
- package/dist/node_modules/d3-scale/src/radial.js +0 -39
- package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequential.js +0 -67
- package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/symlog.js +0 -30
- package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
- package/dist/node_modules/d3-scale/src/threshold.js +0 -25
- package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
- package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
- package/dist/node_modules/d3-scale/src/time.js +0 -47
- package/dist/node_modules/d3-scale/src/time.js.map +0 -1
- package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
- package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
- package/dist/node_modules/d3-shape/src/area.js +0 -55
- package/dist/node_modules/d3-shape/src/area.js.map +0 -1
- package/dist/node_modules/d3-shape/src/array.js.map +0 -1
- package/dist/node_modules/d3-shape/src/constant.js +0 -10
- package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
- package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
- package/dist/node_modules/d3-shape/src/line.js +0 -30
- package/dist/node_modules/d3-shape/src/line.js.map +0 -1
- package/dist/node_modules/d3-shape/src/math.js +0 -8
- package/dist/node_modules/d3-shape/src/math.js.map +0 -1
- package/dist/node_modules/d3-shape/src/noop.js +0 -6
- package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
- package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/order/none.js +0 -9
- package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/path.js +0 -19
- package/dist/node_modules/d3-shape/src/path.js.map +0 -1
- package/dist/node_modules/d3-shape/src/point.js +0 -11
- package/dist/node_modules/d3-shape/src/point.js.map +0 -1
- package/dist/node_modules/d3-shape/src/stack.js +0 -34
- package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol.js +0 -23
- package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
- package/dist/node_modules/d3-time/src/day.js +0 -21
- package/dist/node_modules/d3-time/src/day.js.map +0 -1
- package/dist/node_modules/d3-time/src/duration.js +0 -6
- package/dist/node_modules/d3-time/src/duration.js.map +0 -1
- package/dist/node_modules/d3-time/src/hour.js +0 -19
- package/dist/node_modules/d3-time/src/hour.js.map +0 -1
- package/dist/node_modules/d3-time/src/interval.js +0 -28
- package/dist/node_modules/d3-time/src/interval.js.map +0 -1
- package/dist/node_modules/d3-time/src/millisecond.js +0 -14
- package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
- package/dist/node_modules/d3-time/src/minute.js +0 -19
- package/dist/node_modules/d3-time/src/minute.js.map +0 -1
- package/dist/node_modules/d3-time/src/month.js +0 -18
- package/dist/node_modules/d3-time/src/month.js.map +0 -1
- package/dist/node_modules/d3-time/src/second.js +0 -13
- package/dist/node_modules/d3-time/src/second.js.map +0 -1
- package/dist/node_modules/d3-time/src/ticks.js +0 -125
- package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-time/src/week.js +0 -25
- package/dist/node_modules/d3-time/src/week.js.map +0 -1
- package/dist/node_modules/d3-time/src/year.js +0 -26
- package/dist/node_modules/d3-time/src/year.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/locale.js +0 -490
- package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +0 -8
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +0 -9
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js +0 -384
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +0 -45
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +0 -42
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +0 -10
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +0 -25
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +0 -1
- package/dist/node_modules/date-fns/constants.js +0 -7
- package/dist/node_modules/date-fns/constants.js.map +0 -1
- package/dist/node_modules/date-fns/constructFrom.js +0 -8
- package/dist/node_modules/date-fns/constructFrom.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +0 -12
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +0 -1
- package/dist/node_modules/date-fns/format.js +0 -61
- package/dist/node_modules/date-fns/format.js.map +0 -1
- package/dist/node_modules/date-fns/getDayOfYear.js +0 -12
- package/dist/node_modules/date-fns/getDayOfYear.js.map +0 -1
- package/dist/node_modules/date-fns/getISOWeek.js +0 -13
- package/dist/node_modules/date-fns/getISOWeek.js.map +0 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js +0 -16
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/getWeek.js +0 -13
- package/dist/node_modules/date-fns/getWeek.js.map +0 -1
- package/dist/node_modules/date-fns/getWeekYear.js +0 -17
- package/dist/node_modules/date-fns/getWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/isDate.js +0 -8
- package/dist/node_modules/date-fns/isDate.js.map +0 -1
- package/dist/node_modules/date-fns/isValid.js +0 -12
- package/dist/node_modules/date-fns/isValid.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +0 -11
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +0 -19
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +0 -24
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +0 -20
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +0 -71
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +0 -13
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US.js +0 -22
- package/dist/node_modules/date-fns/locale/en-US.js.map +0 -1
- package/dist/node_modules/date-fns/startOfDay.js +0 -10
- package/dist/node_modules/date-fns/startOfDay.js.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js +0 -9
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +0 -12
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/startOfWeek.js +0 -11
- package/dist/node_modules/date-fns/startOfWeek.js.map +0 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js +0 -13
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/startOfYear.js +0 -11
- package/dist/node_modules/date-fns/startOfYear.js.map +0 -1
- package/dist/node_modules/date-fns/toDate.js +0 -9
- package/dist/node_modules/date-fns/toDate.js.map +0 -1
- package/dist/node_modules/decimal.js-light/decimal.js +0 -378
- package/dist/node_modules/decimal.js-light/decimal.js.map +0 -1
- package/dist/node_modules/eventemitter3/index.js +0 -95
- package/dist/node_modules/eventemitter3/index.js.map +0 -1
- package/dist/node_modules/fast-equals/dist/es/index.js +0 -267
- package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
- package/dist/node_modules/graphql-ws/dist/client.js +0 -272
- package/dist/node_modules/graphql-ws/dist/client.js.map +0 -1
- package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js +0 -62
- package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +0 -1
- package/dist/node_modules/internmap/src/index.js +0 -40
- package/dist/node_modules/internmap/src/index.js.map +0 -1
- package/dist/node_modules/lodash/_DataView.js +0 -12
- package/dist/node_modules/lodash/_DataView.js.map +0 -1
- package/dist/node_modules/lodash/_Hash.js +0 -23
- package/dist/node_modules/lodash/_Hash.js.map +0 -1
- package/dist/node_modules/lodash/_ListCache.js +0 -23
- package/dist/node_modules/lodash/_ListCache.js.map +0 -1
- package/dist/node_modules/lodash/_Map.js +0 -12
- package/dist/node_modules/lodash/_Map.js.map +0 -1
- package/dist/node_modules/lodash/_MapCache.js +0 -23
- package/dist/node_modules/lodash/_MapCache.js.map +0 -1
- package/dist/node_modules/lodash/_Promise.js +0 -12
- package/dist/node_modules/lodash/_Promise.js.map +0 -1
- package/dist/node_modules/lodash/_Set.js +0 -12
- package/dist/node_modules/lodash/_Set.js.map +0 -1
- package/dist/node_modules/lodash/_SetCache.js +0 -18
- package/dist/node_modules/lodash/_SetCache.js.map +0 -1
- package/dist/node_modules/lodash/_Stack.js +0 -20
- package/dist/node_modules/lodash/_Stack.js.map +0 -1
- package/dist/node_modules/lodash/_Symbol.js +0 -11
- package/dist/node_modules/lodash/_Symbol.js.map +0 -1
- package/dist/node_modules/lodash/_Uint8Array.js +0 -11
- package/dist/node_modules/lodash/_Uint8Array.js.map +0 -1
- package/dist/node_modules/lodash/_WeakMap.js +0 -12
- package/dist/node_modules/lodash/_WeakMap.js.map +0 -1
- package/dist/node_modules/lodash/_apply.js +0 -19
- package/dist/node_modules/lodash/_apply.js.map +0 -1
- package/dist/node_modules/lodash/_arrayEvery.js +0 -14
- package/dist/node_modules/lodash/_arrayEvery.js.map +0 -1
- package/dist/node_modules/lodash/_arrayFilter.js +0 -17
- package/dist/node_modules/lodash/_arrayFilter.js.map +0 -1
- package/dist/node_modules/lodash/_arrayIncludes.js +0 -15
- package/dist/node_modules/lodash/_arrayIncludes.js.map +0 -1
- package/dist/node_modules/lodash/_arrayIncludesWith.js +0 -14
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
- package/dist/node_modules/lodash/_arrayLikeKeys.js +0 -22
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
- package/dist/node_modules/lodash/_arrayMap.js +0 -14
- package/dist/node_modules/lodash/_arrayMap.js.map +0 -1
- package/dist/node_modules/lodash/_arrayPush.js +0 -14
- package/dist/node_modules/lodash/_arrayPush.js.map +0 -1
- package/dist/node_modules/lodash/_arraySome.js +0 -14
- package/dist/node_modules/lodash/_arraySome.js.map +0 -1
- package/dist/node_modules/lodash/_asciiToArray.js +0 -13
- package/dist/node_modules/lodash/_asciiToArray.js.map +0 -1
- package/dist/node_modules/lodash/_assocIndexOf.js +0 -16
- package/dist/node_modules/lodash/_assocIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_baseAssignValue.js +0 -20
- package/dist/node_modules/lodash/_baseAssignValue.js.map +0 -1
- package/dist/node_modules/lodash/_baseEach.js +0 -13
- package/dist/node_modules/lodash/_baseEach.js.map +0 -1
- package/dist/node_modules/lodash/_baseEvery.js +0 -18
- package/dist/node_modules/lodash/_baseEvery.js.map +0 -1
- package/dist/node_modules/lodash/_baseExtremum.js +0 -19
- package/dist/node_modules/lodash/_baseExtremum.js.map +0 -1
- package/dist/node_modules/lodash/_baseFindIndex.js +0 -14
- package/dist/node_modules/lodash/_baseFindIndex.js.map +0 -1
- package/dist/node_modules/lodash/_baseFlatten.js +0 -21
- package/dist/node_modules/lodash/_baseFlatten.js.map +0 -1
- package/dist/node_modules/lodash/_baseFor.js +0 -11
- package/dist/node_modules/lodash/_baseFor.js.map +0 -1
- package/dist/node_modules/lodash/_baseForOwn.js +0 -16
- package/dist/node_modules/lodash/_baseForOwn.js.map +0 -1
- package/dist/node_modules/lodash/_baseGet.js +0 -18
- package/dist/node_modules/lodash/_baseGet.js.map +0 -1
- package/dist/node_modules/lodash/_baseGetAllKeys.js +0 -17
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
- package/dist/node_modules/lodash/_baseGetTag.js +0 -17
- package/dist/node_modules/lodash/_baseGetTag.js.map +0 -1
- package/dist/node_modules/lodash/_baseGt.js +0 -13
- package/dist/node_modules/lodash/_baseGt.js.map +0 -1
- package/dist/node_modules/lodash/_baseHasIn.js +0 -13
- package/dist/node_modules/lodash/_baseHasIn.js.map +0 -1
- package/dist/node_modules/lodash/_baseIndexOf.js +0 -17
- package/dist/node_modules/lodash/_baseIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsArguments.js +0 -16
- package/dist/node_modules/lodash/_baseIsArguments.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsEqual.js +0 -16
- package/dist/node_modules/lodash/_baseIsEqual.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +0 -37
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsMatch.js +0 -33
- package/dist/node_modules/lodash/_baseIsMatch.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsNaN.js +0 -13
- package/dist/node_modules/lodash/_baseIsNaN.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsNative.js +0 -18
- package/dist/node_modules/lodash/_baseIsNative.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsTypedArray.js +0 -18
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
- package/dist/node_modules/lodash/_baseIteratee.js +0 -19
- package/dist/node_modules/lodash/_baseIteratee.js.map +0 -1
- package/dist/node_modules/lodash/_baseKeys.js +0 -19
- package/dist/node_modules/lodash/_baseKeys.js.map +0 -1
- package/dist/node_modules/lodash/_baseLt.js +0 -13
- package/dist/node_modules/lodash/_baseLt.js.map +0 -1
- package/dist/node_modules/lodash/_baseMap.js +0 -19
- package/dist/node_modules/lodash/_baseMap.js.map +0 -1
- package/dist/node_modules/lodash/_baseMatches.js +0 -20
- package/dist/node_modules/lodash/_baseMatches.js.map +0 -1
- package/dist/node_modules/lodash/_baseMatchesProperty.js +0 -24
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
- package/dist/node_modules/lodash/_baseOrderBy.js +0 -39
- package/dist/node_modules/lodash/_baseOrderBy.js.map +0 -1
- package/dist/node_modules/lodash/_baseProperty.js +0 -15
- package/dist/node_modules/lodash/_baseProperty.js.map +0 -1
- package/dist/node_modules/lodash/_basePropertyDeep.js +0 -17
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +0 -1
- package/dist/node_modules/lodash/_baseRange.js +0 -15
- package/dist/node_modules/lodash/_baseRange.js.map +0 -1
- package/dist/node_modules/lodash/_baseRest.js +0 -17
- package/dist/node_modules/lodash/_baseRest.js.map +0 -1
- package/dist/node_modules/lodash/_baseSetToString.js +0 -21
- package/dist/node_modules/lodash/_baseSetToString.js.map +0 -1
- package/dist/node_modules/lodash/_baseSlice.js +0 -16
- package/dist/node_modules/lodash/_baseSlice.js.map +0 -1
- package/dist/node_modules/lodash/_baseSome.js +0 -18
- package/dist/node_modules/lodash/_baseSome.js.map +0 -1
- package/dist/node_modules/lodash/_baseSortBy.js +0 -15
- package/dist/node_modules/lodash/_baseSortBy.js.map +0 -1
- package/dist/node_modules/lodash/_baseTimes.js +0 -14
- package/dist/node_modules/lodash/_baseTimes.js.map +0 -1
- package/dist/node_modules/lodash/_baseToString.js +0 -22
- package/dist/node_modules/lodash/_baseToString.js.map +0 -1
- package/dist/node_modules/lodash/_baseTrim.js +0 -15
- package/dist/node_modules/lodash/_baseTrim.js.map +0 -1
- package/dist/node_modules/lodash/_baseUnary.js +0 -15
- package/dist/node_modules/lodash/_baseUnary.js.map +0 -1
- package/dist/node_modules/lodash/_baseUniq.js +0 -34
- package/dist/node_modules/lodash/_baseUniq.js.map +0 -1
- package/dist/node_modules/lodash/_cacheHas.js +0 -13
- package/dist/node_modules/lodash/_cacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_castPath.js +0 -18
- package/dist/node_modules/lodash/_castPath.js.map +0 -1
- package/dist/node_modules/lodash/_castSlice.js +0 -16
- package/dist/node_modules/lodash/_castSlice.js.map +0 -1
- package/dist/node_modules/lodash/_compareAscending.js +0 -20
- package/dist/node_modules/lodash/_compareAscending.js.map +0 -1
- package/dist/node_modules/lodash/_compareMultiple.js +0 -19
- package/dist/node_modules/lodash/_compareMultiple.js.map +0 -1
- package/dist/node_modules/lodash/_coreJsData.js +0 -11
- package/dist/node_modules/lodash/_coreJsData.js.map +0 -1
- package/dist/node_modules/lodash/_createBaseEach.js +0 -20
- package/dist/node_modules/lodash/_createBaseEach.js.map +0 -1
- package/dist/node_modules/lodash/_createBaseFor.js +0 -19
- package/dist/node_modules/lodash/_createBaseFor.js.map +0 -1
- package/dist/node_modules/lodash/_createCaseFirst.js +0 -22
- package/dist/node_modules/lodash/_createCaseFirst.js.map +0 -1
- package/dist/node_modules/lodash/_createFind.js +0 -27
- package/dist/node_modules/lodash/_createFind.js.map +0 -1
- package/dist/node_modules/lodash/_createRange.js +0 -19
- package/dist/node_modules/lodash/_createRange.js.map +0 -1
- package/dist/node_modules/lodash/_createSet.js +0 -16
- package/dist/node_modules/lodash/_createSet.js.map +0 -1
- package/dist/node_modules/lodash/_defineProperty.js +0 -17
- package/dist/node_modules/lodash/_defineProperty.js.map +0 -1
- package/dist/node_modules/lodash/_equalArrays.js +0 -42
- package/dist/node_modules/lodash/_equalArrays.js.map +0 -1
- package/dist/node_modules/lodash/_equalByTag.js +0 -42
- package/dist/node_modules/lodash/_equalByTag.js.map +0 -1
- package/dist/node_modules/lodash/_equalObjects.js +0 -39
- package/dist/node_modules/lodash/_equalObjects.js.map +0 -1
- package/dist/node_modules/lodash/_freeGlobal.js +0 -10
- package/dist/node_modules/lodash/_freeGlobal.js.map +0 -1
- package/dist/node_modules/lodash/_getAllKeys.js +0 -17
- package/dist/node_modules/lodash/_getAllKeys.js.map +0 -1
- package/dist/node_modules/lodash/_getMapData.js +0 -16
- package/dist/node_modules/lodash/_getMapData.js.map +0 -1
- package/dist/node_modules/lodash/_getMatchData.js +0 -24
- package/dist/node_modules/lodash/_getMatchData.js.map +0 -1
- package/dist/node_modules/lodash/_getNative.js +0 -17
- package/dist/node_modules/lodash/_getNative.js.map +0 -1
- package/dist/node_modules/lodash/_getPrototype.js +0 -11
- package/dist/node_modules/lodash/_getPrototype.js.map +0 -1
- package/dist/node_modules/lodash/_getRawTag.js +0 -21
- package/dist/node_modules/lodash/_getRawTag.js.map +0 -1
- package/dist/node_modules/lodash/_getSymbols.js +0 -17
- package/dist/node_modules/lodash/_getSymbols.js.map +0 -1
- package/dist/node_modules/lodash/_getTag.js +0 -28
- package/dist/node_modules/lodash/_getTag.js.map +0 -1
- package/dist/node_modules/lodash/_getValue.js +0 -13
- package/dist/node_modules/lodash/_getValue.js.map +0 -1
- package/dist/node_modules/lodash/_hasPath.js +0 -26
- package/dist/node_modules/lodash/_hasPath.js.map +0 -1
- package/dist/node_modules/lodash/_hasUnicode.js +0 -14
- package/dist/node_modules/lodash/_hasUnicode.js.map +0 -1
- package/dist/node_modules/lodash/_hashClear.js +0 -15
- package/dist/node_modules/lodash/_hashClear.js.map +0 -1
- package/dist/node_modules/lodash/_hashDelete.js +0 -14
- package/dist/node_modules/lodash/_hashDelete.js.map +0 -1
- package/dist/node_modules/lodash/_hashGet.js +0 -20
- package/dist/node_modules/lodash/_hashGet.js.map +0 -1
- package/dist/node_modules/lodash/_hashHas.js +0 -16
- package/dist/node_modules/lodash/_hashHas.js.map +0 -1
- package/dist/node_modules/lodash/_hashSet.js +0 -16
- package/dist/node_modules/lodash/_hashSet.js.map +0 -1
- package/dist/node_modules/lodash/_isFlattenable.js +0 -17
- package/dist/node_modules/lodash/_isFlattenable.js.map +0 -1
- package/dist/node_modules/lodash/_isIndex.js +0 -15
- package/dist/node_modules/lodash/_isIndex.js.map +0 -1
- package/dist/node_modules/lodash/_isIterateeCall.js +0 -20
- package/dist/node_modules/lodash/_isIterateeCall.js.map +0 -1
- package/dist/node_modules/lodash/_isKey.js +0 -18
- package/dist/node_modules/lodash/_isKey.js.map +0 -1
- package/dist/node_modules/lodash/_isKeyable.js +0 -14
- package/dist/node_modules/lodash/_isKeyable.js.map +0 -1
- package/dist/node_modules/lodash/_isMasked.js +0 -18
- package/dist/node_modules/lodash/_isMasked.js.map +0 -1
- package/dist/node_modules/lodash/_isPrototype.js +0 -15
- package/dist/node_modules/lodash/_isPrototype.js.map +0 -1
- package/dist/node_modules/lodash/_isStrictComparable.js +0 -15
- package/dist/node_modules/lodash/_isStrictComparable.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheClear.js +0 -13
- package/dist/node_modules/lodash/_listCacheClear.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheDelete.js +0 -16
- package/dist/node_modules/lodash/_listCacheDelete.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheGet.js +0 -16
- package/dist/node_modules/lodash/_listCacheGet.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheHas.js +0 -15
- package/dist/node_modules/lodash/_listCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheSet.js +0 -16
- package/dist/node_modules/lodash/_listCacheSet.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheClear.js +0 -21
- package/dist/node_modules/lodash/_mapCacheClear.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheDelete.js +0 -16
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheGet.js +0 -15
- package/dist/node_modules/lodash/_mapCacheGet.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheHas.js +0 -15
- package/dist/node_modules/lodash/_mapCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheSet.js +0 -16
- package/dist/node_modules/lodash/_mapCacheSet.js.map +0 -1
- package/dist/node_modules/lodash/_mapToArray.js +0 -16
- package/dist/node_modules/lodash/_mapToArray.js.map +0 -1
- package/dist/node_modules/lodash/_matchesStrictComparable.js +0 -15
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
- package/dist/node_modules/lodash/_memoizeCapped.js +0 -18
- package/dist/node_modules/lodash/_memoizeCapped.js.map +0 -1
- package/dist/node_modules/lodash/_nativeCreate.js +0 -11
- package/dist/node_modules/lodash/_nativeCreate.js.map +0 -1
- package/dist/node_modules/lodash/_nativeKeys.js +0 -11
- package/dist/node_modules/lodash/_nativeKeys.js.map +0 -1
- package/dist/node_modules/lodash/_nodeUtil.js +0 -16
- package/dist/node_modules/lodash/_nodeUtil.js.map +0 -1
- package/dist/node_modules/lodash/_objectToString.js +0 -14
- package/dist/node_modules/lodash/_objectToString.js.map +0 -1
- package/dist/node_modules/lodash/_overArg.js +0 -15
- package/dist/node_modules/lodash/_overArg.js.map +0 -1
- package/dist/node_modules/lodash/_overRest.js +0 -20
- package/dist/node_modules/lodash/_overRest.js.map +0 -1
- package/dist/node_modules/lodash/_root.js +0 -12
- package/dist/node_modules/lodash/_root.js.map +0 -1
- package/dist/node_modules/lodash/_setCacheAdd.js +0 -14
- package/dist/node_modules/lodash/_setCacheAdd.js.map +0 -1
- package/dist/node_modules/lodash/_setCacheHas.js +0 -13
- package/dist/node_modules/lodash/_setCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_setToArray.js +0 -16
- package/dist/node_modules/lodash/_setToArray.js.map +0 -1
- package/dist/node_modules/lodash/_setToString.js +0 -13
- package/dist/node_modules/lodash/_setToString.js.map +0 -1
- package/dist/node_modules/lodash/_shortOut.js +0 -21
- package/dist/node_modules/lodash/_shortOut.js.map +0 -1
- package/dist/node_modules/lodash/_stackClear.js +0 -15
- package/dist/node_modules/lodash/_stackClear.js.map +0 -1
- package/dist/node_modules/lodash/_stackDelete.js +0 -14
- package/dist/node_modules/lodash/_stackDelete.js.map +0 -1
- package/dist/node_modules/lodash/_stackGet.js +0 -13
- package/dist/node_modules/lodash/_stackGet.js.map +0 -1
- package/dist/node_modules/lodash/_stackHas.js +0 -13
- package/dist/node_modules/lodash/_stackHas.js.map +0 -1
- package/dist/node_modules/lodash/_stackSet.js +0 -23
- package/dist/node_modules/lodash/_stackSet.js.map +0 -1
- package/dist/node_modules/lodash/_strictIndexOf.js +0 -14
- package/dist/node_modules/lodash/_strictIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_stringToArray.js +0 -17
- package/dist/node_modules/lodash/_stringToArray.js.map +0 -1
- package/dist/node_modules/lodash/_stringToPath.js +0 -17
- package/dist/node_modules/lodash/_stringToPath.js.map +0 -1
- package/dist/node_modules/lodash/_toKey.js +0 -17
- package/dist/node_modules/lodash/_toKey.js.map +0 -1
- package/dist/node_modules/lodash/_toSource.js +0 -22
- package/dist/node_modules/lodash/_toSource.js.map +0 -1
- package/dist/node_modules/lodash/_trimmedEndIndex.js +0 -15
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
- package/dist/node_modules/lodash/_unicodeToArray.js +0 -24
- package/dist/node_modules/lodash/_unicodeToArray.js.map +0 -1
- package/dist/node_modules/lodash/constant.js +0 -15
- package/dist/node_modules/lodash/constant.js.map +0 -1
- package/dist/node_modules/lodash/debounce.js +0 -57
- package/dist/node_modules/lodash/debounce.js.map +0 -1
- package/dist/node_modules/lodash/eq.js +0 -13
- package/dist/node_modules/lodash/eq.js.map +0 -1
- package/dist/node_modules/lodash/every.js +0 -20
- package/dist/node_modules/lodash/every.js.map +0 -1
- package/dist/node_modules/lodash/find.js +0 -12
- package/dist/node_modules/lodash/find.js.map +0 -1
- package/dist/node_modules/lodash/findIndex.js +0 -20
- package/dist/node_modules/lodash/findIndex.js.map +0 -1
- package/dist/node_modules/lodash/flatMap.js +0 -16
- package/dist/node_modules/lodash/flatMap.js.map +0 -1
- package/dist/node_modules/lodash/get.js +0 -16
- package/dist/node_modules/lodash/get.js.map +0 -1
- package/dist/node_modules/lodash/hasIn.js +0 -16
- package/dist/node_modules/lodash/hasIn.js.map +0 -1
- package/dist/node_modules/lodash/identity.js +0 -13
- package/dist/node_modules/lodash/identity.js.map +0 -1
- package/dist/node_modules/lodash/isArguments.js +0 -17
- package/dist/node_modules/lodash/isArguments.js.map +0 -1
- package/dist/node_modules/lodash/isArray.js +0 -10
- package/dist/node_modules/lodash/isArray.js.map +0 -1
- package/dist/node_modules/lodash/isArrayLike.js +0 -16
- package/dist/node_modules/lodash/isArrayLike.js.map +0 -1
- package/dist/node_modules/lodash/isBoolean.js +0 -16
- package/dist/node_modules/lodash/isBoolean.js.map +0 -1
- package/dist/node_modules/lodash/isBuffer.js +0 -13
- package/dist/node_modules/lodash/isBuffer.js.map +0 -1
- package/dist/node_modules/lodash/isEqual.js +0 -15
- package/dist/node_modules/lodash/isEqual.js.map +0 -1
- package/dist/node_modules/lodash/isFunction.js +0 -18
- package/dist/node_modules/lodash/isFunction.js.map +0 -1
- package/dist/node_modules/lodash/isLength.js +0 -14
- package/dist/node_modules/lodash/isLength.js.map +0 -1
- package/dist/node_modules/lodash/isNaN.js +0 -15
- package/dist/node_modules/lodash/isNaN.js.map +0 -1
- package/dist/node_modules/lodash/isNil.js +0 -13
- package/dist/node_modules/lodash/isNil.js.map +0 -1
- package/dist/node_modules/lodash/isNumber.js +0 -16
- package/dist/node_modules/lodash/isNumber.js.map +0 -1
- package/dist/node_modules/lodash/isObject.js +0 -14
- package/dist/node_modules/lodash/isObject.js.map +0 -1
- package/dist/node_modules/lodash/isObjectLike.js +0 -13
- package/dist/node_modules/lodash/isObjectLike.js.map +0 -1
- package/dist/node_modules/lodash/isPlainObject.js +0 -21
- package/dist/node_modules/lodash/isPlainObject.js.map +0 -1
- package/dist/node_modules/lodash/isString.js +0 -17
- package/dist/node_modules/lodash/isString.js.map +0 -1
- package/dist/node_modules/lodash/isSymbol.js +0 -16
- package/dist/node_modules/lodash/isSymbol.js.map +0 -1
- package/dist/node_modules/lodash/isTypedArray.js +0 -14
- package/dist/node_modules/lodash/isTypedArray.js.map +0 -1
- package/dist/node_modules/lodash/keys.js +0 -17
- package/dist/node_modules/lodash/keys.js.map +0 -1
- package/dist/node_modules/lodash/last.js +0 -14
- package/dist/node_modules/lodash/last.js.map +0 -1
- package/dist/node_modules/lodash/map.js +0 -18
- package/dist/node_modules/lodash/map.js.map +0 -1
- package/dist/node_modules/lodash/mapValues.js +0 -20
- package/dist/node_modules/lodash/mapValues.js.map +0 -1
- package/dist/node_modules/lodash/max.js +0 -17
- package/dist/node_modules/lodash/max.js.map +0 -1
- package/dist/node_modules/lodash/memoize.js +0 -22
- package/dist/node_modules/lodash/memoize.js.map +0 -1
- package/dist/node_modules/lodash/min.js +0 -17
- package/dist/node_modules/lodash/min.js.map +0 -1
- package/dist/node_modules/lodash/noop.js +0 -11
- package/dist/node_modules/lodash/noop.js.map +0 -1
- package/dist/node_modules/lodash/now.js +0 -14
- package/dist/node_modules/lodash/now.js.map +0 -1
- package/dist/node_modules/lodash/property.js +0 -18
- package/dist/node_modules/lodash/property.js.map +0 -1
- package/dist/node_modules/lodash/range.js +0 -11
- package/dist/node_modules/lodash/range.js.map +0 -1
- package/dist/node_modules/lodash/some.js +0 -20
- package/dist/node_modules/lodash/some.js.map +0 -1
- package/dist/node_modules/lodash/sortBy.js +0 -19
- package/dist/node_modules/lodash/sortBy.js.map +0 -1
- package/dist/node_modules/lodash/stubArray.js +0 -13
- package/dist/node_modules/lodash/stubArray.js.map +0 -1
- package/dist/node_modules/lodash/stubFalse.js +0 -13
- package/dist/node_modules/lodash/stubFalse.js.map +0 -1
- package/dist/node_modules/lodash/throttle.js +0 -22
- package/dist/node_modules/lodash/throttle.js.map +0 -1
- package/dist/node_modules/lodash/toFinite.js +0 -15
- package/dist/node_modules/lodash/toFinite.js.map +0 -1
- package/dist/node_modules/lodash/toInteger.js +0 -16
- package/dist/node_modules/lodash/toInteger.js.map +0 -1
- package/dist/node_modules/lodash/toNumber.js +0 -26
- package/dist/node_modules/lodash/toNumber.js.map +0 -1
- package/dist/node_modules/lodash/toString.js +0 -15
- package/dist/node_modules/lodash/toString.js.map +0 -1
- package/dist/node_modules/lodash/uniqBy.js +0 -16
- package/dist/node_modules/lodash/uniqBy.js.map +0 -1
- package/dist/node_modules/lodash/upperFirst.js +0 -11
- package/dist/node_modules/lodash/upperFirst.js.map +0 -1
- package/dist/node_modules/object-assign/index.js +0 -41
- package/dist/node_modules/object-assign/index.js.map +0 -1
- package/dist/node_modules/prop-types/checkPropTypes.js +0 -46
- package/dist/node_modules/prop-types/checkPropTypes.js.map +0 -1
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -49
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -272
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
- package/dist/node_modules/prop-types/index.js +0 -16
- package/dist/node_modules/prop-types/index.js.map +0 -1
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -10
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
- package/dist/node_modules/prop-types/lib/has.js +0 -10
- package/dist/node_modules/prop-types/lib/has.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -84
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -64
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -12
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js +0 -87
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +0 -65
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
- package/dist/node_modules/react-is/index.js +0 -12
- package/dist/node_modules/react-is/index.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/Animate.js +0 -374
- package/dist/node_modules/react-smooth/es6/Animate.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +0 -73
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/configUpdate.js +0 -173
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/easing.js +0 -152
- package/dist/node_modules/react-smooth/es6/easing.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/index.js +0 -9
- package/dist/node_modules/react-smooth/es6/index.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +0 -14
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/util.js +0 -92
- package/dist/node_modules/react-smooth/es6/util.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +0 -387
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +0 -499
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +0 -338
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +0 -305
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +0 -243
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Line.js +0 -473
- package/dist/node_modules/recharts/es6/cartesian/Line.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +0 -173
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +0 -178
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +0 -254
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +0 -144
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +0 -143
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +0 -18
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +0 -121
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +0 -101
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/BarChart.js +0 -24
- package/dist/node_modules/recharts/es6/chart/BarChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/LineChart.js +0 -22
- package/dist/node_modules/recharts/es6/chart/LineChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +0 -1245
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Cell.js +0 -9
- package/dist/node_modules/recharts/es6/component/Cell.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Cursor.js +0 -93
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +0 -237
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +0 -171
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Label.js +0 -353
- package/dist/node_modules/recharts/es6/component/Label.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/LabelList.js +0 -166
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Legend.js +0 -234
- package/dist/node_modules/recharts/es6/component/Legend.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +0 -187
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Text.js +0 -225
- package/dist/node_modules/recharts/es6/component/Text.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Tooltip.js +0 -182
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +0 -198
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +0 -1
- package/dist/node_modules/recharts/es6/container/Layer.js +0 -40
- package/dist/node_modules/recharts/es6/container/Layer.js.map +0 -1
- package/dist/node_modules/recharts/es6/container/Surface.js +0 -60
- package/dist/node_modules/recharts/es6/container/Surface.js.map +0 -1
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +0 -57
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Cross.js +0 -112
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Curve.js +0 -136
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Dot.js +0 -27
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +0 -205
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Sector.js +0 -192
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Symbols.js +0 -143
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +0 -175
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +0 -181
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/BarUtils.js +0 -112
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +0 -234
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +0 -562
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +0 -70
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +0 -108
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DataUtils.js +0 -57
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +0 -58
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/Events.js +0 -7
- package/dist/node_modules/recharts/es6/util/Events.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/Global.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +0 -9
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/LogUtils.js +0 -15
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +0 -116
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +0 -137
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +0 -181
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +0 -10
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/TickUtils.js +0 -31
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -25
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +0 -23
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +0 -16
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +0 -17
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +0 -12
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +0 -88
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +0 -13
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +0 -12
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +0 -87
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/types.js +0 -43
- package/dist/node_modules/recharts/es6/util/types.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +0 -132
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +0 -32
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/util/utils.js +0 -79
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +0 -21
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +0 -78
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +0 -117
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +0 -93
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js +0 -12
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +0 -9
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -16
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +0 -8
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -13
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -11
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -11
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +0 -22
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -8
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -8
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -6
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +0 -13
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -14
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js +0 -52
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -1716
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +0 -13
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +0 -1
- package/dist/node_modules/victory-vendor/es/d3-scale.js +0 -53
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +0 -1
- /package/dist/node_modules/{@apollo → .bun/@apollo_client@4.1.9_e571b0b00fd00a97/node_modules/@apollo}/client/utilities/caching/sizes.js +0 -0
- /package/dist/node_modules/{d3-shape → .bun/d3-shape@3.2.0/node_modules/d3-shape}/src/array.js +0 -0
- /package/dist/node_modules/{date-fns → .bun/date-fns@3.6.0/node_modules/date-fns}/locale/en-US/_lib/formatLong.js +0 -0
- /package/dist/node_modules/{date-fns → .bun/date-fns@3.6.0/node_modules/date-fns}/locale/en-US/_lib/localize.js +0 -0
- /package/dist/node_modules/{date-fns → .bun/date-fns@3.6.0/node_modules/date-fns}/locale/en-US/_lib/match.js +0 -0
- /package/dist/node_modules/{recharts-scale → .bun/recharts-scale@0.4.5/node_modules/recharts-scale}/es6/index.js +0 -0
- /package/dist/node_modules/{recharts → .bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts}/es6/util/Global.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishPage.js","names":[],"sources":["../../../src/devportal/pages/PublishPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n CheckCircle,\n XCircle,\n AlertTriangle,\n Send,\n FileText,\n Shield,\n Image,\n Globe,\n Loader2,\n Eye,\n ArrowRight,\n PartyPopper,\n Link,\n Webhook,\n KeyRound,\n} from \"lucide-react\";\nimport { gql } from \"@apollo/client\";\nimport { useQuery } from \"@apollo/client/react\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { Alert } from \"../components/ConfirmDialog\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport {\n useGetApplicationQuery,\n useSubmitApplicationMutation,\n useSubmitApplicationForReviewMutation,\n} from \"../../generated/global-operations\";\nimport { useDevportalPermission } from \"../hooks\";\n\nconst MY_PUBLISHER_QUERY = gql`\n query PublishPagePublisher {\n myPublisher {\n id\n }\n }\n`;\nconst PUBLISHER_PRODUCTS_QUERY = gql`\n query PublishPageProducts($publisherId: String!) {\n products(filter: { publisherId: $publisherId }) {\n id\n productId\n }\n }\n`;\nconst APP_WEBHOOKS_QUERY = gql`\n query PublishPageWebhooks($applicationId: ID!) {\n webhooks(applicationId: $applicationId) {\n id\n }\n }\n`;\n\ninterface ChecklistItem {\n id: string;\n label: string;\n description: string;\n status: \"passed\" | \"failed\" | \"warning\" | \"pending\";\n icon: React.ReactNode;\n actionLabel?: string;\n actionPath?: string;\n}\n\nconst ALREADY_SUBMITTED_STATUSES = [\n \"SUBMITTED\",\n \"IN_REVIEW\",\n \"APPROVED\",\n \"PUBLISHED\",\n];\n\nexport const PublishPage: FC = () => {\n const { appId } = useParams<{ appId: string }>();\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [submitting, setSubmitting] = useState(false);\n const [submitError, setSubmitError] = useState<string | null>(null);\n const [submitted, setSubmitted] = useState(false);\n const [notes, setNotes] = useState(\"\");\n const submitPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_SUBMIT);\n\n const {\n data,\n loading,\n error: queryError,\n } = useGetApplicationQuery({\n variables: { id: appId! },\n skip: !appId,\n fetchPolicy: \"network-only\",\n });\n\n const [submitApplication] = useSubmitApplicationMutation();\n const [submitApplicationForReview] = useSubmitApplicationForReviewMutation();\n\n // Two-step publisher lookup to find linked StoreProduct\n const { data: publisherData } = useQuery<{\n myPublisher: { id: string } | null;\n }>(MY_PUBLISHER_QUERY, { fetchPolicy: \"cache-first\" });\n const publisherId = publisherData?.myPublisher?.id ?? null;\n const { data: productsData } = useQuery<{\n products: { id: string; productId?: string | null }[];\n }>(PUBLISHER_PRODUCTS_QUERY, {\n variables: { publisherId: publisherId ?? \"\" },\n skip: !publisherId,\n fetchPolicy: \"cache-first\",\n });\n const linkedStoreProductId =\n productsData?.products?.find(\n (p: { id: string; productId?: string | null }) => p.productId === appId,\n )?.id ?? null;\n\n const isApiIntegration = data?.application?.appType === \"API_INTEGRATION\";\n const appManifest = data?.application?.manifest as\n | Record<string, unknown>\n | null\n | undefined;\n const appOauth = appManifest?.[\"oauth\"] as\n | Record<string, unknown>\n | undefined;\n const hasOAuthUrl = !!(\n appOauth?.[\"authorizationUrl\"] &&\n appOauth?.[\"tokenUrl\"] &&\n appOauth?.[\"clientId\"]\n );\n\n const { data: webhooksData } = useQuery<{ webhooks: { id: string }[] }>(\n APP_WEBHOOKS_QUERY,\n {\n variables: { applicationId: appId! },\n skip: !appId || !isApiIntegration,\n fetchPolicy: \"network-only\",\n },\n );\n const webhookCount = webhooksData?.webhooks?.length ?? 0;\n\n const app = data?.application;\n\n useEffect(() => {\n const name = app?.name;\n if (!appId || !name) return;\n const reg = (\n window as unknown as {\n __breadcrumbRegistry?: {\n register: (id: string, name: string) => void;\n unregister: (id: string) => void;\n };\n }\n ).__breadcrumbRegistry;\n reg?.register(appId, name);\n return () => reg?.unregister(appId);\n }, [appId, app?.name]);\n\n const isAlreadySubmitted = ALREADY_SUBMITTED_STATUSES.includes(\n app?.status ?? \"\",\n );\n\n const isPackageType = app?.appType === \"NODE\" || app?.appType === \"WORKFLOW\";\n const publishedVersionCount = app?.versions?.totalCount ?? 0;\n\n const checklist = useMemo((): ChecklistItem[] => {\n if (!app) return [];\n\n const screenshotCount = app.screenshots?.length ?? 0;\n\n const storeListingPath = `/apps/${appId}?tab=store-listing`;\n const versionsPath = `/apps/${appId}/versions`;\n const editPath = `/apps/${appId}/edit#oauth-config`;\n const webhooksPath = `/apps/${appId}/webhooks`;\n\n const items: ChecklistItem[] = [\n {\n id: \"name\",\n label: tr(\"devportal.checklistNameLabel\", \"Name & Short Description\"),\n description: tr(\n \"devportal.checklistNameDesc\",\n \"Name and short description are required for the store card\",\n ),\n status: app.name && app.shortDescription ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"category\",\n label: tr(\"devportal.checklistCategoryLabel\", \"Category\"),\n description: tr(\n \"devportal.checklistCategoryDesc\",\n \"A category helps users find your item in the marketplace\",\n ),\n status: app.category ? \"passed\" : \"failed\",\n icon: <Globe size={20} />,\n actionLabel: \"Edit app info →\",\n actionPath: `/apps/${appId}/edit`,\n },\n {\n id: \"privacy\",\n label: tr(\"devportal.checklistPrivacyLabel\", \"Privacy Policy\"),\n description: tr(\n \"devportal.checklistPrivacyDesc\",\n \"Privacy policy URL is required for store submission\",\n ),\n status: app.privacyPolicyUrl ? \"passed\" : \"failed\",\n icon: <Shield size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"terms\",\n label: tr(\"devportal.checklistTermsLabel\", \"Terms of Service\"),\n description: tr(\n \"devportal.checklistTermsDesc\",\n \"Terms of service URL is required for store submission\",\n ),\n status: app.termsOfServiceUrl ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"icon\",\n label: tr(\"devportal.checklistIconLabel\", \"App Icon\"),\n description: tr(\n \"devportal.checklistIconDesc\",\n \"An icon makes your listing stand out in the marketplace\",\n ),\n status: app.iconUrl ? \"passed\" : \"warning\",\n icon: <Image size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"screenshots\",\n label: tr(\"devportal.checklistScreenshotsLabel\", \"Screenshots\"),\n description: tr(\n \"devportal.checklistScreenshotsDesc\",\n \"At least 3 screenshots are recommended\",\n ),\n status:\n screenshotCount >= 3\n ? \"passed\"\n : screenshotCount > 0\n ? \"warning\"\n : \"warning\",\n icon: <Image size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n ];\n\n if (isPackageType) {\n items.push({\n id: \"version\",\n label: tr(\"devportal.checklistVersionLabel\", \"Published Version\"),\n description: tr(\n \"devportal.checklistVersionDesc\",\n app?.appType === \"WORKFLOW\"\n ? \"At least one published version (manifest JSON) is required before submitting to the store\"\n : \"At least one published version (ZIP + manifest) is required before submitting to the store\",\n ),\n status: publishedVersionCount > 0 ? \"passed\" : \"failed\",\n icon: <CheckCircle size={20} />,\n actionLabel: \"Create a version →\",\n actionPath: versionsPath,\n });\n }\n\n if (app.appType === \"API_INTEGRATION\") {\n items.push({\n id: \"oauth\",\n label: tr(\"devportal.checklistOAuthLabel\", \"OAuth Configuration\"),\n description: tr(\n \"devportal.checklistOAuthDesc\",\n \"Authorization URL, Token URL and Client ID are required so users can connect their accounts. Without these the Connect button does not work.\",\n ),\n status: hasOAuthUrl ? \"passed\" : \"failed\",\n icon: <KeyRound size={20} />,\n actionLabel: \"Configure in Edit App →\",\n actionPath: editPath,\n });\n\n items.push({\n id: \"webhook\",\n label: tr(\"devportal.checklistWebhookLabel\", \"Webhook Endpoint\"),\n description: tr(\n \"devportal.checklistWebhookDesc\",\n \"At least one webhook endpoint must be configured so your server receives platform events after users connect. Without this the integration does nothing.\",\n ),\n status: webhookCount > 0 ? \"passed\" : \"failed\",\n icon: <Webhook size={20} />,\n actionLabel: \"Add a webhook →\",\n actionPath: webhooksPath,\n });\n\n items.push({\n id: \"documentation\",\n label: tr(\"devportal.checklistDocsLabel\", \"Documentation URL\"),\n description: tr(\n \"devportal.checklistDocsDesc\",\n \"Users need to know how to use and configure this integration. A documentation link is required for API integrations.\",\n ),\n status: app.documentationUrl ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Add documentation URL →\",\n actionPath: editPath,\n });\n\n items.push({\n id: \"website\",\n label: tr(\"devportal.checklistWebsiteLabel\", \"Website URL\"),\n description: tr(\n \"devportal.checklistWebsiteDesc\",\n \"Users need to verify who built this integration. A website URL is required so users know where to get support.\",\n ),\n status: app.websiteUrl ? \"passed\" : \"failed\",\n icon: <Link size={20} />,\n actionLabel: \"Add website URL →\",\n actionPath: editPath,\n });\n }\n\n items.push({\n id: \"status\",\n label: tr(\"devportal.checklistStatusLabel\", \"App Status\"),\n description: tr(\n \"devportal.checklistStatusDesc\",\n \"App must be in DRAFT or REJECTED state to submit\",\n ),\n status: [\"DRAFT\", \"REJECTED\"].includes(app.status ?? \"\")\n ? \"passed\"\n : \"warning\",\n icon: <CheckCircle size={20} />,\n });\n\n return items;\n }, [\n app,\n isPackageType,\n publishedVersionCount,\n webhookCount,\n hasOAuthUrl,\n appId,\n ]);\n\n const passedCount = checklist.filter((i) => i.status === \"passed\").length;\n const failedCount = checklist.filter((i) => i.status === \"failed\").length;\n const warningCount = checklist.filter((i) => i.status === \"warning\").length;\n const isSubmittableStatus = [\"DRAFT\", \"REJECTED\"].includes(app?.status ?? \"\");\n const canSubmit =\n !loading &&\n !queryError &&\n failedCount === 0 &&\n !!app &&\n !isAlreadySubmitted &&\n isSubmittableStatus;\n\n const getStatusIcon = (status: ChecklistItem[\"status\"]) => {\n switch (status) {\n case \"passed\":\n return <CheckCircle size={20} className=\"text-status-success-text\" />;\n case \"failed\":\n return <XCircle size={20} className=\"text-status-error-text\" />;\n case \"warning\":\n return <AlertTriangle size={20} className=\"text-status-warning-text\" />;\n default:\n return (\n <div className=\"h-5 w-5 rounded-full border-2 border-border-default\" />\n );\n }\n };\n\n const getStatusBg = (status: ChecklistItem[\"status\"]) => {\n switch (status) {\n case \"passed\":\n return \"bg-status-success-bg-subtle border-border-subtle\";\n case \"failed\":\n return \"bg-status-error-bg-subtle border-border-subtle\";\n case \"warning\":\n return \"bg-status-warning-bg-subtle border-border-subtle\";\n default:\n return \"bg-bg-canvas border-border-subtle\";\n }\n };\n\n const handleSubmit = async () => {\n if (!appId) return;\n setSubmitting(true);\n setSubmitError(null);\n try {\n // Submit Application for devportal review (sets Application.status = SUBMITTED)\n const result = await submitApplication({\n variables: { id: appId, notes: notes.trim() || undefined },\n });\n if (result.error) throw result.error;\n\n // Also submit ApplicationForReview to set StoreProduct.status = PENDING_REVIEW\n // so it appears in the store admin review queue at /store/dashboard/submissions\n await submitApplicationForReview({\n variables: { id: appId, notes: notes.trim() || undefined },\n });\n\n setSubmitted(true);\n } catch (err) {\n setSubmitError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.submitFailedDefault\", \"Failed to submit for review\"),\n );\n } finally {\n setSubmitting(false);\n }\n };\n\n if (loading) {\n return (\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={tr(\n \"devportal.loadingApplicationDetails\",\n \"Loading application details...\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"animate-spin h-8 w-8 text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (queryError || !app) {\n return (\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={tr(\n \"devportal.couldNotLoadApplication\",\n \"Could not load application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <Alert\n variant=\"error\"\n title={tr(\n \"devportal.failedToLoadApplication\",\n \"Failed to load application\",\n )}\n >\n {queryError?.message ??\n tr(\"devportal.applicationNotFound\", \"Application not found\")}\n </Alert>\n </PageLayout>\n );\n }\n\n if (submitted) {\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_SUBMIT}>\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex flex-col items-center justify-center py-16 gap-6 text-center\">\n <div className=\"rounded-full bg-status-success-bg p-4\">\n <PartyPopper size={40} className=\"text-status-success-text\" />\n </div>\n <div className=\"space-y-2\">\n <h2 className=\"text-2xl font-bold\">\n {tr(\"devportal.submittedSuccessTitle\", \"Submitted for Review!\")}\n </h2>\n <p className=\"text-muted-foreground max-w-md\">\n {tr(\n \"devportal.submittedSuccessMsg\",\n \"Your app has been submitted to the marketplace review queue. You'll receive email notifications as the review progresses — typically 3–5 business days.\",\n )}\n </p>\n </div>\n <div className=\"rounded-lg border bg-muted/40 px-6 py-4 text-sm text-left space-y-2 max-w-md w-full\">\n <p className=\"font-medium\">What happens next:</p>\n <ul className=\"space-y-1 text-muted-foreground list-none\">\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n Our team reviews your submission\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n You'll get an email on approval or if changes are needed\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n Once approved, your app goes live in the marketplace\n </li>\n </ul>\n </div>\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted\"\n >\n Back to App\n </button>\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n }\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_SUBMIT}>\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={`${tr(\"devportal.submitAppForReview\", \"Submit\")} \"${app.name}\" ${tr(\"devportal.forReviewAndPublication\", \"for review and publication\")}`}\n purpose={tr(\n \"devportal.publishPurpose\",\n \"Submitting sends your app to the review team, who check it against the marketplace guidelines before it goes live to users. Make sure the listing, screenshots, and permissions are final — preview the listing first, since changes after approval need another review.\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n actions={\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}/listing`)}\n className=\"inline-flex items-center gap-2 rounded-md border px-3 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n <Eye size={16} />\n {tr(\"devportal.previewListing\", \"Preview Listing\")}\n </button>\n }\n >\n {isAlreadySubmitted && (\n <Alert\n variant=\"warning\"\n title={tr(\"devportal.alreadySubmittedTitle\", \"Already Submitted\")}\n >\n {tr(\"devportal.alreadySubmittedMsg1\", \"This app is currently in\")}{\" \"}\n <strong>{app.status}</strong>{\" \"}\n {tr(\n \"devportal.alreadySubmittedMsg2\",\n \"state and cannot be re-submitted until the review process is complete or the app is rejected.\",\n )}\n </Alert>\n )}\n\n {/* Progress Summary */}\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <h2 className=\"text-lg font-semibold\">\n {tr(\"devportal.preSubmissionChecklist\", \"Pre-submission Checklist\")}\n </h2>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {tr(\n \"devportal.completeAllRequiredItems\",\n \"Complete all required items before submitting for review\",\n )}\n </p>\n <div className=\"mt-4 flex gap-6\">\n <div className=\"flex items-center gap-2\">\n <CheckCircle size={20} className=\"text-status-success-text\" />\n <span>\n {passedCount} {tr(\"devportal.passed\", \"Passed\")}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <XCircle size={20} className=\"text-status-error-text\" />\n <span>\n {failedCount} {tr(\"devportal.failed\", \"Failed\")}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <AlertTriangle size={20} className=\"text-status-warning-text\" />\n <span>\n {warningCount} {tr(\"devportal.warnings\", \"Warnings\")}\n </span>\n </div>\n </div>\n </div>\n\n {/* Checklist Items */}\n <PageSection>\n <div className=\"space-y-3\">\n {checklist.map((item) => (\n <div\n key={item.id}\n className={`flex items-center gap-4 rounded-lg border p-4 ${getStatusBg(item.status)}`}\n >\n <div className=\"rounded-lg bg-bg-surface p-2\">{item.icon}</div>\n <div className=\"flex-1\">\n <p className=\"font-medium\">{item.label}</p>\n <p className=\"text-sm text-text-secondary\">\n {item.description}\n </p>\n {item.status !== \"passed\" && item.actionPath && (\n <button\n type=\"button\"\n onClick={() =>\n navigate?.(`${basePath}${item.actionPath}`)\n }\n className=\"mt-1 inline-flex items-center gap-1 text-xs text-primary hover:underline\"\n >\n {item.actionLabel ?? \"Fix this\"} <ArrowRight size={11} />\n </button>\n )}\n </div>\n {getStatusIcon(item.status)}\n </div>\n ))}\n </div>\n </PageSection>\n\n {/* Submission Notes */}\n {!isAlreadySubmitted && (\n <PageSection\n title={tr(\"devportal.notesForReviewerTitle\", \"Notes for Reviewer\")}\n description={tr(\n \"devportal.notesForReviewerDesc\",\n \"Optional message to the review team\",\n )}\n >\n <textarea\n value={notes}\n onChange={(e) => setNotes(e.target.value)}\n placeholder={tr(\n \"devportal.notesForReviewerPlaceholder\",\n \"Describe what your app does, any special review considerations, or testing instructions...\",\n )}\n rows={4}\n maxLength={1000}\n className=\"w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n <p className=\"mt-1 text-xs text-text-secondary text-right\">\n {notes.length}/1000\n </p>\n </PageSection>\n )}\n\n {/* Alerts */}\n {submitError && (\n <Alert\n variant=\"error\"\n title={tr(\"devportal.submissionFailedTitle\", \"Submission Failed\")}\n >\n {submitError}\n </Alert>\n )}\n\n {failedCount > 0 && !isAlreadySubmitted && (\n <Alert\n variant=\"error\"\n title={tr(\"devportal.cannotSubmitTitle\", \"Cannot Submit Yet\")}\n >\n {tr(\"devportal.pleaseFixItems1\", \"Please fix\")} {failedCount}{\" \"}\n {tr(\n \"devportal.pleaseFixItems2\",\n \"required item(s) before submitting for review.\",\n )}\n <div className=\"mt-2 flex flex-wrap gap-3\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"text-sm underline hover:no-underline\"\n >\n {tr(\n \"devportal.goToMarketplaceListing\",\n \"Update marketplace listing →\",\n )}\n </button>\n {isPackageType && publishedVersionCount === 0 && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/versions`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n {tr(\"devportal.goToVersions\", \"Add a published version →\")}\n </button>\n )}\n {isApiIntegration && !hasOAuthUrl && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/edit#oauth-config`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n Configure OAuth endpoints →\n </button>\n )}\n {isApiIntegration && webhookCount === 0 && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/webhooks`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n Add a webhook →\n </button>\n )}\n </div>\n </Alert>\n )}\n\n {warningCount > 0 && failedCount === 0 && !isAlreadySubmitted && (\n <Alert\n variant=\"warning\"\n title={tr(\"devportal.warningsTitle\", \"Warnings\")}\n >\n {tr(\"devportal.warningsMsg1\", \"You have\")} {warningCount}{\" \"}\n {tr(\n \"devportal.warningsMsg2\",\n \"warning(s). While you can submit, addressing these may improve your app's chances of approval.\",\n )}\n </Alert>\n )}\n\n {/* Review Process Info */}\n <PageSection\n title={tr(\"devportal.reviewProcessTitle\", \"Review Process\")}\n >\n <div className=\"rounded-lg border bg-bg-sunken/50 p-4\">\n <ul className=\"space-y-2 text-sm\">\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo1\",\n \"Review typically takes 3-5 business days\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo2\",\n \"You'll receive notifications about review status changes\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo3\",\n \"If changes are requested, you can resubmit without losing your place in the queue\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo4\",\n \"Once approved and published, your app will be visible in the marketplace\",\n )}\n </span>\n </li>\n </ul>\n </div>\n </PageSection>\n\n {/* Actions */}\n <div className=\"flex gap-3\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n {tr(\"devportal.cancelButton\", \"Cancel\")}\n </button>\n <button\n onClick={handleSubmit}\n disabled={!canSubmit || submitting || !submitPerm.allowed}\n aria-disabled={!canSubmit || submitting || !submitPerm.allowed}\n title={\n !submitPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {submitting ? (\n <>\n <Loader2 size={16} className=\"animate-spin\" />\n {tr(\"devportal.submittingButton\", \"Submitting...\")}\n </>\n ) : (\n <>\n <Send size={16} />\n {tr(\"devportal.submitForReviewButton\", \"Submit for Review\")}\n </>\n )}\n </button>\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PublishPage.js","names":[],"sources":["../../../src/devportal/pages/PublishPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n CheckCircle,\n XCircle,\n AlertTriangle,\n Send,\n FileText,\n Shield,\n Image,\n Globe,\n Loader2,\n Eye,\n ArrowRight,\n PartyPopper,\n Link,\n Webhook,\n KeyRound,\n} from \"lucide-react\";\nimport { gql } from \"@apollo/client\";\nimport { useQuery } from \"@apollo/client/react\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { Alert } from \"../components/ConfirmDialog\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport {\n useGetApplicationQuery,\n useSubmitApplicationMutation,\n useSubmitApplicationForReviewMutation,\n} from \"../../generated/global-operations\";\nimport { useDevportalPermission } from \"../hooks\";\n\nconst MY_PUBLISHER_QUERY = gql`\n query PublishPagePublisher {\n myPublisher {\n id\n }\n }\n`;\nconst PUBLISHER_PRODUCTS_QUERY = gql`\n query PublishPageProducts($publisherId: String!) {\n products(filter: { publisherId: $publisherId }) {\n id\n productId\n }\n }\n`;\nconst APP_WEBHOOKS_QUERY = gql`\n query PublishPageWebhooks($applicationId: ID!) {\n webhooks(applicationId: $applicationId) {\n id\n }\n }\n`;\n\ninterface ChecklistItem {\n id: string;\n label: string;\n description: string;\n status: \"passed\" | \"failed\" | \"warning\" | \"pending\";\n icon: React.ReactNode;\n actionLabel?: string;\n actionPath?: string;\n}\n\nconst ALREADY_SUBMITTED_STATUSES = [\n \"SUBMITTED\",\n \"IN_REVIEW\",\n \"APPROVED\",\n \"PUBLISHED\",\n];\n\nexport const PublishPage: FC = () => {\n const { appId } = useParams<{ appId: string }>();\n const { navigate, basePath } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const [submitting, setSubmitting] = useState(false);\n const [submitError, setSubmitError] = useState<string | null>(null);\n const [submitted, setSubmitted] = useState(false);\n const [notes, setNotes] = useState(\"\");\n const submitPerm = useDevportalPermission(DEVPORTAL_PERMISSIONS.APP_SUBMIT);\n\n const {\n data,\n loading,\n error: queryError,\n } = useGetApplicationQuery({\n variables: { id: appId! },\n skip: !appId,\n fetchPolicy: \"network-only\",\n });\n\n const [submitApplication] = useSubmitApplicationMutation();\n const [submitApplicationForReview] = useSubmitApplicationForReviewMutation();\n\n // Two-step publisher lookup to find linked StoreProduct\n const { data: publisherData } = useQuery<{\n myPublisher: { id: string } | null;\n }>(MY_PUBLISHER_QUERY, { fetchPolicy: \"cache-first\" });\n const publisherId = publisherData?.myPublisher?.id ?? null;\n const { data: productsData } = useQuery<{\n products: { id: string; productId?: string | null }[];\n }>(PUBLISHER_PRODUCTS_QUERY, {\n variables: { publisherId: publisherId ?? \"\" },\n skip: !publisherId,\n fetchPolicy: \"cache-first\",\n });\n const linkedStoreProductId =\n productsData?.products?.find(\n (p: { id: string; productId?: string | null }) => p.productId === appId,\n )?.id ?? null;\n\n const isApiIntegration = data?.application?.appType === \"API_INTEGRATION\";\n const appManifest = data?.application?.manifest as\n Record<string, unknown> | null | undefined;\n const appOauth = appManifest?.[\"oauth\"] as\n Record<string, unknown> | undefined;\n const hasOAuthUrl = !!(\n appOauth?.[\"authorizationUrl\"] &&\n appOauth?.[\"tokenUrl\"] &&\n appOauth?.[\"clientId\"]\n );\n\n const { data: webhooksData } = useQuery<{ webhooks: { id: string }[] }>(\n APP_WEBHOOKS_QUERY,\n {\n variables: { applicationId: appId! },\n skip: !appId || !isApiIntegration,\n fetchPolicy: \"network-only\",\n },\n );\n const webhookCount = webhooksData?.webhooks?.length ?? 0;\n\n const app = data?.application;\n\n useEffect(() => {\n const name = app?.name;\n if (!appId || !name) return;\n const reg = (\n window as unknown as {\n __breadcrumbRegistry?: {\n register: (id: string, name: string) => void;\n unregister: (id: string) => void;\n };\n }\n ).__breadcrumbRegistry;\n reg?.register(appId, name);\n return () => reg?.unregister(appId);\n }, [appId, app?.name]);\n\n const isAlreadySubmitted = ALREADY_SUBMITTED_STATUSES.includes(\n app?.status ?? \"\",\n );\n\n const isPackageType = app?.appType === \"NODE\" || app?.appType === \"WORKFLOW\";\n const publishedVersionCount = app?.versions?.totalCount ?? 0;\n\n const checklist = useMemo((): ChecklistItem[] => {\n if (!app) return [];\n\n const screenshotCount = app.screenshots?.length ?? 0;\n\n const storeListingPath = `/apps/${appId}?tab=store-listing`;\n const versionsPath = `/apps/${appId}/versions`;\n const editPath = `/apps/${appId}/edit#oauth-config`;\n const webhooksPath = `/apps/${appId}/webhooks`;\n\n const items: ChecklistItem[] = [\n {\n id: \"name\",\n label: tr(\"devportal.checklistNameLabel\", \"Name & Short Description\"),\n description: tr(\n \"devportal.checklistNameDesc\",\n \"Name and short description are required for the store card\",\n ),\n status: app.name && app.shortDescription ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"category\",\n label: tr(\"devportal.checklistCategoryLabel\", \"Category\"),\n description: tr(\n \"devportal.checklistCategoryDesc\",\n \"A category helps users find your item in the marketplace\",\n ),\n status: app.category ? \"passed\" : \"failed\",\n icon: <Globe size={20} />,\n actionLabel: \"Edit app info →\",\n actionPath: `/apps/${appId}/edit`,\n },\n {\n id: \"privacy\",\n label: tr(\"devportal.checklistPrivacyLabel\", \"Privacy Policy\"),\n description: tr(\n \"devportal.checklistPrivacyDesc\",\n \"Privacy policy URL is required for store submission\",\n ),\n status: app.privacyPolicyUrl ? \"passed\" : \"failed\",\n icon: <Shield size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"terms\",\n label: tr(\"devportal.checklistTermsLabel\", \"Terms of Service\"),\n description: tr(\n \"devportal.checklistTermsDesc\",\n \"Terms of service URL is required for store submission\",\n ),\n status: app.termsOfServiceUrl ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"icon\",\n label: tr(\"devportal.checklistIconLabel\", \"App Icon\"),\n description: tr(\n \"devportal.checklistIconDesc\",\n \"An icon makes your listing stand out in the marketplace\",\n ),\n status: app.iconUrl ? \"passed\" : \"warning\",\n icon: <Image size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n {\n id: \"screenshots\",\n label: tr(\"devportal.checklistScreenshotsLabel\", \"Screenshots\"),\n description: tr(\n \"devportal.checklistScreenshotsDesc\",\n \"At least 3 screenshots are recommended\",\n ),\n status:\n screenshotCount >= 3\n ? \"passed\"\n : screenshotCount > 0\n ? \"warning\"\n : \"warning\",\n icon: <Image size={20} />,\n actionLabel: \"Edit store listing →\",\n actionPath: storeListingPath,\n },\n ];\n\n if (isPackageType) {\n items.push({\n id: \"version\",\n label: tr(\"devportal.checklistVersionLabel\", \"Published Version\"),\n description: tr(\n \"devportal.checklistVersionDesc\",\n app?.appType === \"WORKFLOW\"\n ? \"At least one published version (manifest JSON) is required before submitting to the store\"\n : \"At least one published version (ZIP + manifest) is required before submitting to the store\",\n ),\n status: publishedVersionCount > 0 ? \"passed\" : \"failed\",\n icon: <CheckCircle size={20} />,\n actionLabel: \"Create a version →\",\n actionPath: versionsPath,\n });\n }\n\n if (app.appType === \"API_INTEGRATION\") {\n items.push({\n id: \"oauth\",\n label: tr(\"devportal.checklistOAuthLabel\", \"OAuth Configuration\"),\n description: tr(\n \"devportal.checklistOAuthDesc\",\n \"Authorization URL, Token URL and Client ID are required so users can connect their accounts. Without these the Connect button does not work.\",\n ),\n status: hasOAuthUrl ? \"passed\" : \"failed\",\n icon: <KeyRound size={20} />,\n actionLabel: \"Configure in Edit App →\",\n actionPath: editPath,\n });\n\n items.push({\n id: \"webhook\",\n label: tr(\"devportal.checklistWebhookLabel\", \"Webhook Endpoint\"),\n description: tr(\n \"devportal.checklistWebhookDesc\",\n \"At least one webhook endpoint must be configured so your server receives platform events after users connect. Without this the integration does nothing.\",\n ),\n status: webhookCount > 0 ? \"passed\" : \"failed\",\n icon: <Webhook size={20} />,\n actionLabel: \"Add a webhook →\",\n actionPath: webhooksPath,\n });\n\n items.push({\n id: \"documentation\",\n label: tr(\"devportal.checklistDocsLabel\", \"Documentation URL\"),\n description: tr(\n \"devportal.checklistDocsDesc\",\n \"Users need to know how to use and configure this integration. A documentation link is required for API integrations.\",\n ),\n status: app.documentationUrl ? \"passed\" : \"failed\",\n icon: <FileText size={20} />,\n actionLabel: \"Add documentation URL →\",\n actionPath: editPath,\n });\n\n items.push({\n id: \"website\",\n label: tr(\"devportal.checklistWebsiteLabel\", \"Website URL\"),\n description: tr(\n \"devportal.checklistWebsiteDesc\",\n \"Users need to verify who built this integration. A website URL is required so users know where to get support.\",\n ),\n status: app.websiteUrl ? \"passed\" : \"failed\",\n icon: <Link size={20} />,\n actionLabel: \"Add website URL →\",\n actionPath: editPath,\n });\n }\n\n items.push({\n id: \"status\",\n label: tr(\"devportal.checklistStatusLabel\", \"App Status\"),\n description: tr(\n \"devportal.checklistStatusDesc\",\n \"App must be in DRAFT or REJECTED state to submit\",\n ),\n status: [\"DRAFT\", \"REJECTED\"].includes(app.status ?? \"\")\n ? \"passed\"\n : \"warning\",\n icon: <CheckCircle size={20} />,\n });\n\n return items;\n }, [\n app,\n isPackageType,\n publishedVersionCount,\n webhookCount,\n hasOAuthUrl,\n appId,\n ]);\n\n const passedCount = checklist.filter((i) => i.status === \"passed\").length;\n const failedCount = checklist.filter((i) => i.status === \"failed\").length;\n const warningCount = checklist.filter((i) => i.status === \"warning\").length;\n const isSubmittableStatus = [\"DRAFT\", \"REJECTED\"].includes(app?.status ?? \"\");\n const canSubmit =\n !loading &&\n !queryError &&\n failedCount === 0 &&\n !!app &&\n !isAlreadySubmitted &&\n isSubmittableStatus;\n\n const getStatusIcon = (status: ChecklistItem[\"status\"]) => {\n switch (status) {\n case \"passed\":\n return <CheckCircle size={20} className=\"text-status-success-text\" />;\n case \"failed\":\n return <XCircle size={20} className=\"text-status-error-text\" />;\n case \"warning\":\n return <AlertTriangle size={20} className=\"text-status-warning-text\" />;\n default:\n return (\n <div className=\"h-5 w-5 rounded-full border-2 border-border-default\" />\n );\n }\n };\n\n const getStatusBg = (status: ChecklistItem[\"status\"]) => {\n switch (status) {\n case \"passed\":\n return \"bg-status-success-bg-subtle border-border-subtle\";\n case \"failed\":\n return \"bg-status-error-bg-subtle border-border-subtle\";\n case \"warning\":\n return \"bg-status-warning-bg-subtle border-border-subtle\";\n default:\n return \"bg-bg-canvas border-border-subtle\";\n }\n };\n\n const handleSubmit = async () => {\n if (!appId) return;\n setSubmitting(true);\n setSubmitError(null);\n try {\n // Submit Application for devportal review (sets Application.status = SUBMITTED)\n const result = await submitApplication({\n variables: { id: appId, notes: notes.trim() || undefined },\n });\n if (result.error) throw result.error;\n\n // Also submit ApplicationForReview to set StoreProduct.status = PENDING_REVIEW\n // so it appears in the store admin review queue at /store/dashboard/submissions\n await submitApplicationForReview({\n variables: { id: appId, notes: notes.trim() || undefined },\n });\n\n setSubmitted(true);\n } catch (err) {\n setSubmitError(\n err instanceof Error\n ? err.message\n : tr(\"devportal.submitFailedDefault\", \"Failed to submit for review\"),\n );\n } finally {\n setSubmitting(false);\n }\n };\n\n if (loading) {\n return (\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={tr(\n \"devportal.loadingApplicationDetails\",\n \"Loading application details...\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"animate-spin h-8 w-8 text-text-secondary\" />\n </div>\n </PageLayout>\n );\n }\n\n if (queryError || !app) {\n return (\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={tr(\n \"devportal.couldNotLoadApplication\",\n \"Could not load application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <Alert\n variant=\"error\"\n title={tr(\n \"devportal.failedToLoadApplication\",\n \"Failed to load application\",\n )}\n >\n {queryError?.message ??\n tr(\"devportal.applicationNotFound\", \"Application not found\")}\n </Alert>\n </PageLayout>\n );\n }\n\n if (submitted) {\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_SUBMIT}>\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex flex-col items-center justify-center py-16 gap-6 text-center\">\n <div className=\"rounded-full bg-status-success-bg p-4\">\n <PartyPopper size={40} className=\"text-status-success-text\" />\n </div>\n <div className=\"space-y-2\">\n <h2 className=\"text-2xl font-bold\">\n {tr(\"devportal.submittedSuccessTitle\", \"Submitted for Review!\")}\n </h2>\n <p className=\"text-muted-foreground max-w-md\">\n {tr(\n \"devportal.submittedSuccessMsg\",\n \"Your app has been submitted to the marketplace review queue. You'll receive email notifications as the review progresses — typically 3–5 business days.\",\n )}\n </p>\n </div>\n <div className=\"rounded-lg border bg-muted/40 px-6 py-4 text-sm text-left space-y-2 max-w-md w-full\">\n <p className=\"font-medium\">What happens next:</p>\n <ul className=\"space-y-1 text-muted-foreground list-none\">\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n Our team reviews your submission\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n You'll get an email on approval or if changes are needed\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle\n size={14}\n className=\"mt-0.5 text-status-success-text shrink-0\"\n />{\" \"}\n Once approved, your app goes live in the marketplace\n </li>\n </ul>\n </div>\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted\"\n >\n Back to App\n </button>\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n }\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_SUBMIT}>\n <PageLayout\n title={tr(\"devportal.publishToStoreTitle\", \"Publish to Store\")}\n description={`${tr(\"devportal.submitAppForReview\", \"Submit\")} \"${app.name}\" ${tr(\"devportal.forReviewAndPublication\", \"for review and publication\")}`}\n purpose={tr(\n \"devportal.publishPurpose\",\n \"Submitting sends your app to the review team, who check it against the marketplace guidelines before it goes live to users. Make sure the listing, screenshots, and permissions are final — preview the listing first, since changes after approval need another review.\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n actions={\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}/listing`)}\n className=\"inline-flex items-center gap-2 rounded-md border px-3 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n <Eye size={16} />\n {tr(\"devportal.previewListing\", \"Preview Listing\")}\n </button>\n }\n >\n {isAlreadySubmitted && (\n <Alert\n variant=\"warning\"\n title={tr(\"devportal.alreadySubmittedTitle\", \"Already Submitted\")}\n >\n {tr(\"devportal.alreadySubmittedMsg1\", \"This app is currently in\")}{\" \"}\n <strong>{app.status}</strong>{\" \"}\n {tr(\n \"devportal.alreadySubmittedMsg2\",\n \"state and cannot be re-submitted until the review process is complete or the app is rejected.\",\n )}\n </Alert>\n )}\n\n {/* Progress Summary */}\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-6\">\n <h2 className=\"text-lg font-semibold\">\n {tr(\"devportal.preSubmissionChecklist\", \"Pre-submission Checklist\")}\n </h2>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {tr(\n \"devportal.completeAllRequiredItems\",\n \"Complete all required items before submitting for review\",\n )}\n </p>\n <div className=\"mt-4 flex gap-6\">\n <div className=\"flex items-center gap-2\">\n <CheckCircle size={20} className=\"text-status-success-text\" />\n <span>\n {passedCount} {tr(\"devportal.passed\", \"Passed\")}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <XCircle size={20} className=\"text-status-error-text\" />\n <span>\n {failedCount} {tr(\"devportal.failed\", \"Failed\")}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <AlertTriangle size={20} className=\"text-status-warning-text\" />\n <span>\n {warningCount} {tr(\"devportal.warnings\", \"Warnings\")}\n </span>\n </div>\n </div>\n </div>\n\n {/* Checklist Items */}\n <PageSection>\n <div className=\"space-y-3\">\n {checklist.map((item) => (\n <div\n key={item.id}\n className={`flex items-center gap-4 rounded-lg border p-4 ${getStatusBg(item.status)}`}\n >\n <div className=\"rounded-lg bg-bg-surface p-2\">{item.icon}</div>\n <div className=\"flex-1\">\n <p className=\"font-medium\">{item.label}</p>\n <p className=\"text-sm text-text-secondary\">\n {item.description}\n </p>\n {item.status !== \"passed\" && item.actionPath && (\n <button\n type=\"button\"\n onClick={() =>\n navigate?.(`${basePath}${item.actionPath}`)\n }\n className=\"mt-1 inline-flex items-center gap-1 text-xs text-primary hover:underline\"\n >\n {item.actionLabel ?? \"Fix this\"} <ArrowRight size={11} />\n </button>\n )}\n </div>\n {getStatusIcon(item.status)}\n </div>\n ))}\n </div>\n </PageSection>\n\n {/* Submission Notes */}\n {!isAlreadySubmitted && (\n <PageSection\n title={tr(\"devportal.notesForReviewerTitle\", \"Notes for Reviewer\")}\n description={tr(\n \"devportal.notesForReviewerDesc\",\n \"Optional message to the review team\",\n )}\n >\n <textarea\n value={notes}\n onChange={(e) => setNotes(e.target.value)}\n placeholder={tr(\n \"devportal.notesForReviewerPlaceholder\",\n \"Describe what your app does, any special review considerations, or testing instructions...\",\n )}\n rows={4}\n maxLength={1000}\n className=\"w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none\"\n />\n <p className=\"mt-1 text-xs text-text-secondary text-right\">\n {notes.length}/1000\n </p>\n </PageSection>\n )}\n\n {/* Alerts */}\n {submitError && (\n <Alert\n variant=\"error\"\n title={tr(\"devportal.submissionFailedTitle\", \"Submission Failed\")}\n >\n {submitError}\n </Alert>\n )}\n\n {failedCount > 0 && !isAlreadySubmitted && (\n <Alert\n variant=\"error\"\n title={tr(\"devportal.cannotSubmitTitle\", \"Cannot Submit Yet\")}\n >\n {tr(\"devportal.pleaseFixItems1\", \"Please fix\")} {failedCount}{\" \"}\n {tr(\n \"devportal.pleaseFixItems2\",\n \"required item(s) before submitting for review.\",\n )}\n <div className=\"mt-2 flex flex-wrap gap-3\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"text-sm underline hover:no-underline\"\n >\n {tr(\n \"devportal.goToMarketplaceListing\",\n \"Update marketplace listing →\",\n )}\n </button>\n {isPackageType && publishedVersionCount === 0 && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/versions`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n {tr(\"devportal.goToVersions\", \"Add a published version →\")}\n </button>\n )}\n {isApiIntegration && !hasOAuthUrl && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/edit#oauth-config`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n Configure OAuth endpoints →\n </button>\n )}\n {isApiIntegration && webhookCount === 0 && (\n <button\n onClick={() =>\n navigate?.(`${basePath}/apps/${appId}/webhooks`)\n }\n className=\"text-sm underline hover:no-underline\"\n >\n Add a webhook →\n </button>\n )}\n </div>\n </Alert>\n )}\n\n {warningCount > 0 && failedCount === 0 && !isAlreadySubmitted && (\n <Alert\n variant=\"warning\"\n title={tr(\"devportal.warningsTitle\", \"Warnings\")}\n >\n {tr(\"devportal.warningsMsg1\", \"You have\")} {warningCount}{\" \"}\n {tr(\n \"devportal.warningsMsg2\",\n \"warning(s). While you can submit, addressing these may improve your app's chances of approval.\",\n )}\n </Alert>\n )}\n\n {/* Review Process Info */}\n <PageSection\n title={tr(\"devportal.reviewProcessTitle\", \"Review Process\")}\n >\n <div className=\"rounded-lg border bg-bg-sunken/50 p-4\">\n <ul className=\"space-y-2 text-sm\">\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo1\",\n \"Review typically takes 3-5 business days\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo2\",\n \"You'll receive notifications about review status changes\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo3\",\n \"If changes are requested, you can resubmit without losing your place in the queue\",\n )}\n </span>\n </li>\n <li className=\"flex items-start gap-2\">\n <CheckCircle size={16} className=\"mt-0.5 text-primary\" />\n <span>\n {tr(\n \"devportal.reviewProcessInfo4\",\n \"Once approved and published, your app will be visible in the marketplace\",\n )}\n </span>\n </li>\n </ul>\n </div>\n </PageSection>\n\n {/* Actions */}\n <div className=\"flex gap-3\">\n <button\n onClick={() => navigate?.(`${basePath}/apps/${appId}`)}\n className=\"rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken\"\n >\n {tr(\"devportal.cancelButton\", \"Cancel\")}\n </button>\n <button\n onClick={handleSubmit}\n disabled={!canSubmit || submitting || !submitPerm.allowed}\n aria-disabled={!canSubmit || submitting || !submitPerm.allowed}\n title={\n !submitPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n {submitting ? (\n <>\n <Loader2 size={16} className=\"animate-spin\" />\n {tr(\"devportal.submittingButton\", \"Submitting...\")}\n </>\n ) : (\n <>\n <Send size={16} />\n {tr(\"devportal.submitForReviewButton\", \"Submit for Review\")}\n </>\n )}\n </button>\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n};\n"],"mappings":"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"}
|
|
@@ -8,15 +8,15 @@ import { StatusBadge as o } from "../components/StatusBadge.js";
|
|
|
8
8
|
import { StatCard as s, StatCardGrid as ie } from "../components/StatCard.js";
|
|
9
9
|
import { DataTable as c } from "../components/DataTable.js";
|
|
10
10
|
import "../hooks/index.js";
|
|
11
|
-
import { Tooltip as l } from "../../node_modules/recharts/es6/component/Tooltip.js";
|
|
12
|
-
import { ResponsiveContainer as u } from "../../node_modules/recharts/es6/component/ResponsiveContainer.js";
|
|
13
|
-
import { Bar as ae } from "../../node_modules/recharts/es6/cartesian/Bar.js";
|
|
14
|
-
import { CartesianGrid as d } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
|
|
15
|
-
import { Line as f } from "../../node_modules/recharts/es6/cartesian/Line.js";
|
|
16
|
-
import { XAxis as p } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
|
|
17
|
-
import { YAxis as m } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
|
|
18
|
-
import { LineChart as h } from "../../node_modules/recharts/es6/chart/LineChart.js";
|
|
19
|
-
import { BarChart as oe } from "../../node_modules/recharts/es6/chart/BarChart.js";
|
|
11
|
+
import { Tooltip as l } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/Tooltip.js";
|
|
12
|
+
import { ResponsiveContainer as u } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/component/ResponsiveContainer.js";
|
|
13
|
+
import { Bar as ae } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Bar.js";
|
|
14
|
+
import { CartesianGrid as d } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/CartesianGrid.js";
|
|
15
|
+
import { Line as f } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/Line.js";
|
|
16
|
+
import { XAxis as p } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/XAxis.js";
|
|
17
|
+
import { YAxis as m } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/cartesian/YAxis.js";
|
|
18
|
+
import { LineChart as h } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/LineChart.js";
|
|
19
|
+
import { BarChart as oe } from "../../node_modules/.bun/recharts@2.15.4_21ccd8898788a04d/node_modules/recharts/es6/chart/BarChart.js";
|
|
20
20
|
import { useTr as se } from "../utils/i18n.js";
|
|
21
21
|
import { useMemo as g, useState as _ } from "react";
|
|
22
22
|
import { AlertCircle as v, ArrowDownToLine as ce, Building2 as y, Check as b, CreditCard as x, DollarSign as S, Link2 as C, Loader2 as w, Wallet as le } from "lucide-react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SellerDashboardPage.js","names":[],"sources":["../../../src/devportal/pages/SellerDashboardPage.tsx"],"sourcesContent":["import type { FC, ReactNode } from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Package,\n Building2,\n Plus,\n ArrowRight,\n Loader2,\n Download,\n DollarSign,\n Clock,\n CheckCircle2,\n} from \"lucide-react\";\nimport { GlassCard, GradientText } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\n\n// ---------------------------------------------------------------------------\n// Local types\n// ---------------------------------------------------------------------------\n\ntype ProductStatus =\n | \"DRAFT\"\n | \"PENDING_REVIEW\"\n | \"PUBLISHED\"\n | \"REJECTED\"\n | \"INACTIVE\";\n\ninterface PhysicalProduct {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: ProductStatus;\n price: number;\n currency: string;\n stockQuantity: number;\n icon?: string | null;\n}\n\ninterface OrgSummary {\n id: string;\n name: string;\n slug: string;\n logoUrl?: string | null;\n isVerified: boolean;\n publishedApps?: number | null;\n totalInstalls?: number | null;\n totalRevenue?: number | null;\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst STATUS_BADGE_STYLES: Record<\n ProductStatus,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatPrice(price: number, currency: string): string {\n const curr = currency || \"USD\";\n const formatted = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(price);\n return `${formatted} ${curr}`;\n}\n\n// ---------------------------------------------------------------------------\n// GraphQL query strings\n// ---------------------------------------------------------------------------\n\nconst BOOTSTRAP_QUERY = `\n query SellerDashboardBootstrap {\n myDeveloperOrganizations {\n id\n name\n slug\n logoUrl\n isVerified\n publishedApps\n totalInstalls\n totalRevenue\n }\n myPublisher {\n id\n }\n }\n`;\n\nconst SELLER_PRODUCTS_QUERY = `\n query SellerDashboardProducts($publisherId: String!) {\n products(filter: { publisherId: $publisherId, nature: PHYSICAL }, limit: 3, offset: 0) {\n id\n name\n slug\n type\n status\n price\n currency\n stockQuantity\n icon\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Page component\n// ---------------------------------------------------------------------------\n\nexport const SellerDashboardPage: FC = () => {\n const { navigate, basePath, apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const gqlUrl = apiGatewayUrl ?? \"/global/graphql\";\n\n const [bootstrapLoading, setBootstrapLoading] = useState(true);\n const [productsLoading, setProductsLoading] = useState(false);\n const [orgs, setOrgs] = useState<OrgSummary[]>([]);\n const [publisherId, setPublisherId] = useState<string | null>(null);\n const [products, setProducts] = useState<PhysicalProduct[]>([]);\n\n // Fetch orgs + publisher in one round-trip\n useEffect(() => {\n let cancelled = false;\n setBootstrapLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({ query: BOOTSTRAP_QUERY }),\n });\n if (cancelled) return;\n const json = (await res.json()) as {\n data?: {\n myDeveloperOrganizations?: OrgSummary[];\n myPublisher?: { id: string } | null;\n };\n };\n if (cancelled) return;\n setOrgs(json.data?.myDeveloperOrganizations ?? []);\n setPublisherId(json.data?.myPublisher?.id ?? null);\n } finally {\n if (!cancelled) setBootstrapLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, authToken]);\n\n // Fetch recent physical products once publisher is known\n useEffect(() => {\n if (!publisherId) return;\n let cancelled = false;\n setProductsLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({\n query: SELLER_PRODUCTS_QUERY,\n variables: { publisherId },\n }),\n });\n if (cancelled) return;\n const json = (await res.json()) as {\n data?: {\n products?: Array<\n Omit<PhysicalProduct, \"status\"> & { status: string }\n >;\n };\n };\n if (cancelled) return;\n const DIGITAL_TYPES = new Set([\"APP\", \"NODE\", \"WORKFLOW\"]);\n setProducts(\n (json.data?.products ?? [])\n .filter((p) => !DIGITAL_TYPES.has(p.type))\n .map((p) => ({\n ...p,\n status: p.status as ProductStatus,\n })),\n );\n } finally {\n if (!cancelled) setProductsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [publisherId, gqlUrl, authToken]);\n\n const isLoading = bootstrapLoading;\n const statsLoading = bootstrapLoading || productsLoading;\n const hasOrgs = !isLoading && orgs.length > 0;\n const hasPublisher = !isLoading && publisherId !== null;\n\n const totalItems = products.length;\n const pendingCount = products.filter(\n (p) => p.status === \"PENDING_REVIEW\",\n ).length;\n const publishedCount = products.filter(\n (p) => p.status === \"PUBLISHED\",\n ).length;\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_READ}>\n <PageLayout\n title={\n <>\n {tr(\"devportal.seller\", \"Seller\")}{\" \"}\n <GradientText>{tr(\"devportal.dashboard\", \"Dashboard\")}</GradientText>\n </>\n }\n actions={\n hasOrgs ? (\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n ) : !isLoading ? (\n <button\n onClick={() => handleNavigate(\"/organizations/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Plus size={16} />\n {tr(\"devportal.createOrganization\", \"Create Organization\")}\n </button>\n ) : null\n }\n >\n <div className=\"flex flex-col gap-8\">\n {/* Compact inline stats */}\n <div className=\"flex items-center gap-6 border-b border-border-seam pb-6\">\n {statsLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-text-secondary\" />\n ) : (\n <>\n <StatPill\n icon={<Package size={14} />}\n value={totalItems}\n label={tr(\"devportal.items\", \"Items\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<Clock size={14} />}\n value={pendingCount}\n label={tr(\"devportal.pendingReview\", \"Pending Review\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<CheckCircle2 size={14} />}\n value={publishedCount}\n label={tr(\"devportal.published\", \"Published\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<Building2 size={14} />}\n value={orgs.length}\n label={tr(\"devportal.organizations\", \"Organizations\")}\n />\n </>\n )}\n </div>\n\n {/* Recent Listings */}\n <DashSection\n title={tr(\"devportal.recentListings\", \"Recent Listings\")}\n action={\n products.length > 0 ? (\n <button\n onClick={() => handleNavigate(\"/seller/items\")}\n className=\"inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline\"\n >\n {tr(\"devportal.viewAll\", \"View all\")}\n <ArrowRight size={14} />\n </button>\n ) : undefined\n }\n >\n {isLoading || productsLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : products.length > 0 ? (\n <div className=\"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\">\n {products.slice(0, 3).map((product) => (\n <ProductCard\n key={product.id}\n product={product}\n onClick={() => handleNavigate(\"/seller/items\")}\n />\n ))}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n title={\n !hasPublisher\n ? tr(\n \"devportal.registerAsPublisherFirst\",\n \"Register as publisher first\",\n )\n : tr(\n \"devportal.listYourFirstItem\",\n \"List your first item\",\n )\n }\n description={\n !hasPublisher\n ? tr(\n \"devportal.createOrgToStartSelling\",\n \"Create an organization to start selling physical products\",\n )\n : tr(\n \"devportal.addPhysicalProductsToYourStore\",\n \"Add physical products to your store and they will appear here\",\n )\n }\n action={\n !hasOrgs ? (\n <button\n onClick={() => handleNavigate(\"/organizations/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\n \"devportal.createOrganization\",\n \"Create Organization\",\n )}\n </button>\n ) : (\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n )\n }\n />\n )}\n </DashSection>\n\n {/* Organizations */}\n {(isLoading || orgs.length > 0) && (\n <DashSection\n title={tr(\"devportal.yourOrganizations\", \"Your Organizations\")}\n action={\n orgs.length > 0 ? (\n <button\n onClick={() => handleNavigate(\"/organizations\")}\n className=\"inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline\"\n >\n {tr(\"devportal.viewAll\", \"View all\")}\n <ArrowRight size={14} />\n </button>\n ) : undefined\n }\n >\n {isLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : (\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {orgs.slice(0, 3).map((org) => (\n <OrgCard\n key={org.id}\n org={org}\n onClick={() =>\n handleNavigate(`/organizations/${org.id}`)\n }\n />\n ))}\n </div>\n )}\n </DashSection>\n )}\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n};\n\n// ---------------------------------------------------------------------------\n// Sub-components\n// ---------------------------------------------------------------------------\n\nconst StatPill: FC<{ icon: ReactNode; value: number; label: string }> = ({\n icon,\n value,\n label,\n}) => (\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"text-sm font-semibold tabular-nums\">{value}</span>\n <span className=\"text-sm text-text-secondary\">{label}</span>\n </div>\n);\n\nconst DashSection: FC<{\n title: string;\n action?: ReactNode;\n children: ReactNode;\n}> = ({ title, action, children }) => (\n <section className=\"flex flex-col gap-4\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-sm font-semibold uppercase tracking-wider text-text-secondary\">\n {title}\n </h2>\n {action}\n </div>\n {children}\n </section>\n);\n\nconst ProductCard: FC<{\n product: PhysicalProduct;\n onClick: () => void;\n}> = ({ product, onClick }) => {\n const badge =\n STATUS_BADGE_STYLES[product.status] ?? STATUS_BADGE_STYLES.DRAFT;\n\n return (\n <GlassCard\n treatment=\"insight\"\n role=\"button\"\n tabIndex={0}\n className=\"cursor-pointer p-5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }}\n >\n <div className=\"flex items-center gap-3 mb-4\">\n {product.icon ? (\n <img\n src={product.icon}\n alt={product.name}\n className=\"h-10 w-10 rounded-xl object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-action-primary-bg/15 text-primary shrink-0\">\n <Package size={20} />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold truncate text-text-primary\">\n {product.name}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {formatPrice(product.price, product.currency)}\n </p>\n </div>\n <span\n className={`shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n </div>\n <div className=\"flex items-center gap-2 text-sm\">\n <Package size={12} className=\"text-text-muted shrink-0\" />\n <span\n className={\n product.stockQuantity === 0\n ? \"text-status-error-text\"\n : \"text-text-secondary\"\n }\n >\n {product.stockQuantity === 0\n ? \"Out of stock\"\n : `${product.stockQuantity} in stock`}\n </span>\n </div>\n </GlassCard>\n );\n};\n\nconst OrgCard: FC<{ org: OrgSummary; onClick: () => void }> = ({\n org,\n onClick,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const initials = org.name\n .split(\" \")\n .map((w: string) => w[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n\n return (\n <GlassCard\n treatment=\"insight\"\n role=\"button\"\n tabIndex={0}\n className=\"cursor-pointer p-5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }}\n >\n <div className=\"flex items-center gap-3 mb-4\">\n {org.logoUrl ? (\n <img\n src={org.logoUrl}\n alt={org.name}\n className=\"h-10 w-10 rounded-xl object-cover\"\n />\n ) : (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-action-primary-bg/15 text-primary text-sm font-bold\">\n {initials}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold truncate text-text-primary\">{org.name}</p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {org.publishedApps ?? 0}{\" \"}\n {tr(\"devportal.appsPublished\", \"apps published\")}\n </p>\n </div>\n <ArrowRight size={15} className=\"text-text-muted shrink-0\" />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"flex items-center gap-2 rounded-lg bg-bg-muted px-3 py-2\">\n <Download size={12} className=\"text-text-muted shrink-0\" />\n <div>\n <p className=\"text-[11px] text-text-secondary leading-none mb-0.5\">\n {tr(\"devportal.installs\", \"Installs\")}\n </p>\n <p className=\"text-sm font-semibold tabular-nums\">\n {(org.totalInstalls ?? 0).toLocaleString()}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2 rounded-lg bg-bg-muted px-3 py-2\">\n <DollarSign size={12} className=\"text-text-muted shrink-0\" />\n <div>\n <p className=\"text-[11px] text-text-secondary leading-none mb-0.5\">\n {tr(\"devportal.revenue\", \"Revenue\")}\n </p>\n <p className=\"text-sm font-semibold tabular-nums\">\n ${(org.totalRevenue ?? 0).toLocaleString()}\n </p>\n </div>\n </div>\n </div>\n </GlassCard>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SellerDashboardPage.js","names":[],"sources":["../../../src/devportal/pages/SellerDashboardPage.tsx"],"sourcesContent":["import type { FC, ReactNode } from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Package,\n Building2,\n Plus,\n ArrowRight,\n Loader2,\n Download,\n DollarSign,\n Clock,\n CheckCircle2,\n} from \"lucide-react\";\nimport { GlassCard, GradientText } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\n\n// ---------------------------------------------------------------------------\n// Local types\n// ---------------------------------------------------------------------------\n\ntype ProductStatus =\n \"DRAFT\" | \"PENDING_REVIEW\" | \"PUBLISHED\" | \"REJECTED\" | \"INACTIVE\";\n\ninterface PhysicalProduct {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: ProductStatus;\n price: number;\n currency: string;\n stockQuantity: number;\n icon?: string | null;\n}\n\ninterface OrgSummary {\n id: string;\n name: string;\n slug: string;\n logoUrl?: string | null;\n isVerified: boolean;\n publishedApps?: number | null;\n totalInstalls?: number | null;\n totalRevenue?: number | null;\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst STATUS_BADGE_STYLES: Record<\n ProductStatus,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatPrice(price: number, currency: string): string {\n const curr = currency || \"USD\";\n const formatted = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(price);\n return `${formatted} ${curr}`;\n}\n\n// ---------------------------------------------------------------------------\n// GraphQL query strings\n// ---------------------------------------------------------------------------\n\nconst BOOTSTRAP_QUERY = `\n query SellerDashboardBootstrap {\n myDeveloperOrganizations {\n id\n name\n slug\n logoUrl\n isVerified\n publishedApps\n totalInstalls\n totalRevenue\n }\n myPublisher {\n id\n }\n }\n`;\n\nconst SELLER_PRODUCTS_QUERY = `\n query SellerDashboardProducts($publisherId: String!) {\n products(filter: { publisherId: $publisherId, nature: PHYSICAL }, limit: 3, offset: 0) {\n id\n name\n slug\n type\n status\n price\n currency\n stockQuantity\n icon\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Page component\n// ---------------------------------------------------------------------------\n\nexport const SellerDashboardPage: FC = () => {\n const { navigate, basePath, apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const gqlUrl = apiGatewayUrl ?? \"/global/graphql\";\n\n const [bootstrapLoading, setBootstrapLoading] = useState(true);\n const [productsLoading, setProductsLoading] = useState(false);\n const [orgs, setOrgs] = useState<OrgSummary[]>([]);\n const [publisherId, setPublisherId] = useState<string | null>(null);\n const [products, setProducts] = useState<PhysicalProduct[]>([]);\n\n // Fetch orgs + publisher in one round-trip\n useEffect(() => {\n let cancelled = false;\n setBootstrapLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({ query: BOOTSTRAP_QUERY }),\n });\n if (cancelled) return;\n const json = (await res.json()) as {\n data?: {\n myDeveloperOrganizations?: OrgSummary[];\n myPublisher?: { id: string } | null;\n };\n };\n if (cancelled) return;\n setOrgs(json.data?.myDeveloperOrganizations ?? []);\n setPublisherId(json.data?.myPublisher?.id ?? null);\n } finally {\n if (!cancelled) setBootstrapLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, authToken]);\n\n // Fetch recent physical products once publisher is known\n useEffect(() => {\n if (!publisherId) return;\n let cancelled = false;\n setProductsLoading(true);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({\n query: SELLER_PRODUCTS_QUERY,\n variables: { publisherId },\n }),\n });\n if (cancelled) return;\n const json = (await res.json()) as {\n data?: {\n products?: Array<\n Omit<PhysicalProduct, \"status\"> & { status: string }\n >;\n };\n };\n if (cancelled) return;\n const DIGITAL_TYPES = new Set([\"APP\", \"NODE\", \"WORKFLOW\"]);\n setProducts(\n (json.data?.products ?? [])\n .filter((p) => !DIGITAL_TYPES.has(p.type))\n .map((p) => ({\n ...p,\n status: p.status as ProductStatus,\n })),\n );\n } finally {\n if (!cancelled) setProductsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [publisherId, gqlUrl, authToken]);\n\n const isLoading = bootstrapLoading;\n const statsLoading = bootstrapLoading || productsLoading;\n const hasOrgs = !isLoading && orgs.length > 0;\n const hasPublisher = !isLoading && publisherId !== null;\n\n const totalItems = products.length;\n const pendingCount = products.filter(\n (p) => p.status === \"PENDING_REVIEW\",\n ).length;\n const publishedCount = products.filter(\n (p) => p.status === \"PUBLISHED\",\n ).length;\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_READ}>\n <PageLayout\n title={\n <>\n {tr(\"devportal.seller\", \"Seller\")}{\" \"}\n <GradientText>\n {tr(\"devportal.dashboard\", \"Dashboard\")}\n </GradientText>\n </>\n }\n actions={\n hasOrgs ? (\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n ) : !isLoading ? (\n <button\n onClick={() => handleNavigate(\"/organizations/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Plus size={16} />\n {tr(\"devportal.createOrganization\", \"Create Organization\")}\n </button>\n ) : null\n }\n >\n <div className=\"flex flex-col gap-8\">\n {/* Compact inline stats */}\n <div className=\"flex items-center gap-6 border-b border-border-seam pb-6\">\n {statsLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-text-secondary\" />\n ) : (\n <>\n <StatPill\n icon={<Package size={14} />}\n value={totalItems}\n label={tr(\"devportal.items\", \"Items\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<Clock size={14} />}\n value={pendingCount}\n label={tr(\"devportal.pendingReview\", \"Pending Review\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<CheckCircle2 size={14} />}\n value={publishedCount}\n label={tr(\"devportal.published\", \"Published\")}\n />\n <div className=\"h-4 w-px bg-border-seam\" />\n <StatPill\n icon={<Building2 size={14} />}\n value={orgs.length}\n label={tr(\"devportal.organizations\", \"Organizations\")}\n />\n </>\n )}\n </div>\n\n {/* Recent Listings */}\n <DashSection\n title={tr(\"devportal.recentListings\", \"Recent Listings\")}\n action={\n products.length > 0 ? (\n <button\n onClick={() => handleNavigate(\"/seller/items\")}\n className=\"inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline\"\n >\n {tr(\"devportal.viewAll\", \"View all\")}\n <ArrowRight size={14} />\n </button>\n ) : undefined\n }\n >\n {isLoading || productsLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : products.length > 0 ? (\n <div className=\"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\">\n {products.slice(0, 3).map((product) => (\n <ProductCard\n key={product.id}\n product={product}\n onClick={() => handleNavigate(\"/seller/items\")}\n />\n ))}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n title={\n !hasPublisher\n ? tr(\n \"devportal.registerAsPublisherFirst\",\n \"Register as publisher first\",\n )\n : tr(\"devportal.listYourFirstItem\", \"List your first item\")\n }\n description={\n !hasPublisher\n ? tr(\n \"devportal.createOrgToStartSelling\",\n \"Create an organization to start selling physical products\",\n )\n : tr(\n \"devportal.addPhysicalProductsToYourStore\",\n \"Add physical products to your store and they will appear here\",\n )\n }\n action={\n !hasOrgs ? (\n <button\n onClick={() => handleNavigate(\"/organizations/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\n \"devportal.createOrganization\",\n \"Create Organization\",\n )}\n </button>\n ) : (\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n )\n }\n />\n )}\n </DashSection>\n\n {/* Organizations */}\n {(isLoading || orgs.length > 0) && (\n <DashSection\n title={tr(\"devportal.yourOrganizations\", \"Your Organizations\")}\n action={\n orgs.length > 0 ? (\n <button\n onClick={() => handleNavigate(\"/organizations\")}\n className=\"inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline\"\n >\n {tr(\"devportal.viewAll\", \"View all\")}\n <ArrowRight size={14} />\n </button>\n ) : undefined\n }\n >\n {isLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : (\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {orgs.slice(0, 3).map((org) => (\n <OrgCard\n key={org.id}\n org={org}\n onClick={() => handleNavigate(`/organizations/${org.id}`)}\n />\n ))}\n </div>\n )}\n </DashSection>\n )}\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n};\n\n// ---------------------------------------------------------------------------\n// Sub-components\n// ---------------------------------------------------------------------------\n\nconst StatPill: FC<{ icon: ReactNode; value: number; label: string }> = ({\n icon,\n value,\n label,\n}) => (\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"text-sm font-semibold tabular-nums\">{value}</span>\n <span className=\"text-sm text-text-secondary\">{label}</span>\n </div>\n);\n\nconst DashSection: FC<{\n title: string;\n action?: ReactNode;\n children: ReactNode;\n}> = ({ title, action, children }) => (\n <section className=\"flex flex-col gap-4\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-sm font-semibold uppercase tracking-wider text-text-secondary\">\n {title}\n </h2>\n {action}\n </div>\n {children}\n </section>\n);\n\nconst ProductCard: FC<{\n product: PhysicalProduct;\n onClick: () => void;\n}> = ({ product, onClick }) => {\n const badge =\n STATUS_BADGE_STYLES[product.status] ?? STATUS_BADGE_STYLES.DRAFT;\n\n return (\n <GlassCard\n treatment=\"insight\"\n role=\"button\"\n tabIndex={0}\n className=\"cursor-pointer p-5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }}\n >\n <div className=\"flex items-center gap-3 mb-4\">\n {product.icon ? (\n <img\n src={product.icon}\n alt={product.name}\n className=\"h-10 w-10 rounded-xl object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-action-primary-bg/15 text-primary shrink-0\">\n <Package size={20} />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold truncate text-text-primary\">\n {product.name}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {formatPrice(product.price, product.currency)}\n </p>\n </div>\n <span\n className={`shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n </div>\n <div className=\"flex items-center gap-2 text-sm\">\n <Package size={12} className=\"text-text-muted shrink-0\" />\n <span\n className={\n product.stockQuantity === 0\n ? \"text-status-error-text\"\n : \"text-text-secondary\"\n }\n >\n {product.stockQuantity === 0\n ? \"Out of stock\"\n : `${product.stockQuantity} in stock`}\n </span>\n </div>\n </GlassCard>\n );\n};\n\nconst OrgCard: FC<{ org: OrgSummary; onClick: () => void }> = ({\n org,\n onClick,\n}) => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const initials = org.name\n .split(\" \")\n .map((w: string) => w[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n\n return (\n <GlassCard\n treatment=\"insight\"\n role=\"button\"\n tabIndex={0}\n className=\"cursor-pointer p-5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }}\n >\n <div className=\"flex items-center gap-3 mb-4\">\n {org.logoUrl ? (\n <img\n src={org.logoUrl}\n alt={org.name}\n className=\"h-10 w-10 rounded-xl object-cover\"\n />\n ) : (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-action-primary-bg/15 text-primary text-sm font-bold\">\n {initials}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold truncate text-text-primary\">{org.name}</p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {org.publishedApps ?? 0}{\" \"}\n {tr(\"devportal.appsPublished\", \"apps published\")}\n </p>\n </div>\n <ArrowRight size={15} className=\"text-text-muted shrink-0\" />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"flex items-center gap-2 rounded-lg bg-bg-muted px-3 py-2\">\n <Download size={12} className=\"text-text-muted shrink-0\" />\n <div>\n <p className=\"text-[11px] text-text-secondary leading-none mb-0.5\">\n {tr(\"devportal.installs\", \"Installs\")}\n </p>\n <p className=\"text-sm font-semibold tabular-nums\">\n {(org.totalInstalls ?? 0).toLocaleString()}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2 rounded-lg bg-bg-muted px-3 py-2\">\n <DollarSign size={12} className=\"text-text-muted shrink-0\" />\n <div>\n <p className=\"text-[11px] text-text-secondary leading-none mb-0.5\">\n {tr(\"devportal.revenue\", \"Revenue\")}\n </p>\n <p className=\"text-sm font-semibold tabular-nums\">\n ${(org.totalRevenue ?? 0).toLocaleString()}\n </p>\n </div>\n </div>\n </div>\n </GlassCard>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SellerItemsPage.js","names":[],"sources":["../../../src/devportal/pages/SellerItemsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Plus,\n Search,\n Grid,\n List,\n Package,\n Loader2,\n AlertCircle,\n Edit,\n Tag,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\n\n// ---------------------------------------------------------------------------\n// Local types\n// ---------------------------------------------------------------------------\n\ntype ProductStatus =\n | \"DRAFT\"\n | \"PENDING_REVIEW\"\n | \"PUBLISHED\"\n | \"REJECTED\"\n | \"INACTIVE\";\n\ntype PhysicalProductType =\n | \"MERCHANDISE\"\n | \"HARDWARE\"\n | \"ACCESSORY\"\n | \"BOOK\"\n | \"EQUIPMENT\"\n | \"APPAREL\"\n | \"COLLECTIBLE\"\n | \"CONSUMABLE\";\n\ninterface PhysicalProductDetail {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: ProductStatus;\n price: number;\n currency: string;\n stockQuantity: number;\n sku?: string | null;\n brand?: string | null;\n icon?: string | null;\n createdAt: string;\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/**\n * Digital product types to exclude even if `nature: PHYSICAL` is set wrong.\n */\nconst DIGITAL_TYPES = new Set([\"APP\", \"NODE\", \"WORKFLOW\"]);\n\nconst PRODUCT_TYPE_LABELS: Record<PhysicalProductType, string> = {\n MERCHANDISE: \"Merchandise\",\n HARDWARE: \"Hardware\",\n ACCESSORY: \"Accessory\",\n BOOK: \"Book\",\n EQUIPMENT: \"Equipment\",\n APPAREL: \"Apparel\",\n COLLECTIBLE: \"Collectible\",\n CONSUMABLE: \"Consumable\",\n};\n\nconst STATUS_BADGE_STYLES: Record<\n ProductStatus,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\nconst STATUS_OPTIONS: { value: ProductStatus | \"\"; label: string }[] = [\n { value: \"\", label: \"All Status\" },\n { value: \"DRAFT\", label: \"Draft\" },\n { value: \"PENDING_REVIEW\", label: \"Pending Review\" },\n { value: \"PUBLISHED\", label: \"Published\" },\n { value: \"REJECTED\", label: \"Rejected\" },\n { value: \"INACTIVE\", label: \"Inactive\" },\n];\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatPrice(price: number, currency: string): string {\n const curr = currency || \"USD\";\n const formatted = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(price);\n return `${formatted} ${curr}`;\n}\n\nfunction resolveTypeLabel(type: string): string {\n return (\n PRODUCT_TYPE_LABELS[type as PhysicalProductType] ??\n type.replace(/_/g, \" \")\n );\n}\n\n// ---------------------------------------------------------------------------\n// GraphQL query strings\n// ---------------------------------------------------------------------------\n\nconst SELLER_PUBLISHER_QUERY = `\n query SellerMyPublisher {\n myPublisher {\n id\n }\n }\n`;\n\nconst SELLER_ITEMS_QUERY = `\n query SellerItems($publisherId: String!) {\n products(filter: { publisherId: $publisherId, nature: PHYSICAL }, limit: 100, offset: 0) {\n id\n name\n slug\n type\n status\n price\n currency\n stockQuantity\n sku\n brand\n icon\n createdAt\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Page component\n// ---------------------------------------------------------------------------\n\nexport const SellerItemsPage: FC = () => {\n const { navigate, basePath, apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const gqlUrl = apiGatewayUrl ?? \"/global/graphql\";\n\n const [publisherLoading, setPublisherLoading] = useState(true);\n const [productsLoading, setProductsLoading] = useState(false);\n const [publisherId, setPublisherId] = useState<string | null>(null);\n const [products, setProducts] = useState<PhysicalProductDetail[]>([]);\n const [error, setError] = useState<string | null>(null);\n const [retryToken, setRetryToken] = useState(0);\n\n const [viewMode, setViewMode] = useState<\"grid\" | \"list\">(\"grid\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [statusFilter, setStatusFilter] = useState<ProductStatus | \"\">(\"\");\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n // Fetch publisher first\n useEffect(() => {\n let cancelled = false;\n setPublisherLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({ query: SELLER_PUBLISHER_QUERY }),\n });\n if (cancelled) return;\n if (!res.ok) {\n throw new Error(`Request failed with status ${res.status}`);\n }\n const json = (await res.json()) as {\n data?: { myPublisher?: { id: string } | null };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"Unknown GraphQL error\");\n }\n setPublisherId(json.data?.myPublisher?.id ?? null);\n } catch (err) {\n if (!cancelled) {\n setError(\n err instanceof Error ? err.message : \"Failed to load publisher\",\n );\n }\n } finally {\n if (!cancelled) setPublisherLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, authToken, retryToken]);\n\n // Fetch products once publisher is resolved\n useEffect(() => {\n if (!publisherId) return;\n let cancelled = false;\n setProductsLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({\n query: SELLER_ITEMS_QUERY,\n variables: { publisherId },\n }),\n });\n if (cancelled) return;\n if (!res.ok) {\n throw new Error(`Request failed with status ${res.status}`);\n }\n const json = (await res.json()) as {\n data?: {\n products?: Array<\n Omit<PhysicalProductDetail, \"status\"> & { status: string }\n >;\n };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"Unknown GraphQL error\");\n }\n setProducts(\n (json.data?.products ?? []).map((p) => ({\n ...p,\n status: p.status as ProductStatus,\n })),\n );\n } catch (err) {\n if (!cancelled) {\n setError(\n err instanceof Error ? err.message : \"Failed to load items\",\n );\n }\n } finally {\n if (!cancelled) setProductsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [publisherId, gqlUrl, authToken, retryToken]);\n\n // Exclude digital types defensively, then apply client-side filters\n const physicalItems = useMemo(\n () => products.filter((p) => !DIGITAL_TYPES.has(p.type)),\n [products],\n );\n\n const filteredItems = useMemo(\n () =>\n physicalItems.filter((item) => {\n const matchesSearch =\n !searchQuery ||\n item.name.toLowerCase().includes(searchQuery.toLowerCase());\n const matchesStatus = !statusFilter || item.status === statusFilter;\n return matchesSearch && matchesStatus;\n }),\n [physicalItems, searchQuery, statusFilter],\n );\n\n const stats = useMemo(\n () => ({\n total: physicalItems.length,\n published: physicalItems.filter((i) => i.status === \"PUBLISHED\").length,\n pendingReview: physicalItems.filter(\n (i) => i.status === \"PENDING_REVIEW\",\n ).length,\n outOfStock: physicalItems.filter((i) => i.stockQuantity === 0).length,\n }),\n [physicalItems],\n );\n\n const isInitialLoading =\n publisherLoading && products.length === 0 && !error;\n\n // Full-page loading state\n if (isInitialLoading) {\n return (\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingItems\", \"Loading items...\")}\n </span>\n </div>\n </PageLayout>\n );\n }\n\n // Full-page error state\n if (error && products.length === 0) {\n return (\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n {tr(\"devportal.failedToLoadItems\", \"Failed to load items\")}\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">{error}</p>\n <button\n onClick={() => setRetryToken((n) => n + 1)}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n {tr(\"devportal.tryAgain\", \"Try Again\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n const hasActiveFilters = Boolean(searchQuery || statusFilter);\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_READ}>\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n actions={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Plus size={16} aria-hidden=\"true\" />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n >\n {/* Summary stats */}\n <EmphasisPanel className=\"mb-4\">\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.totalItems\", \"Total Items\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.total\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-success-text\">\n {tr(\"devportal.published\", \"Published\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.published\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-warning-text\">\n {tr(\"devportal.pendingReview\", \"Pending Review\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.pendingReview\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-error-text\">\n {tr(\"devportal.outOfStock\", \"Out of Stock\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.outOfStock\n )}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Filters + view toggle */}\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex flex-1 items-center gap-3\">\n {/* Search */}\n <div className=\"relative flex-1 max-w-md\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder={tr(\"devportal.searchItems\", \"Search items...\")}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border border-border-seam bg-bg-surface pl-9 pr-4 py-2 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n\n {/* Status filter */}\n <select\n value={statusFilter}\n onChange={(e) =>\n setStatusFilter(e.target.value as ProductStatus | \"\")\n }\n className=\"rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary\"\n >\n {STATUS_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n\n {/* View toggle */}\n <div className=\"flex items-center gap-1 rounded-md border border-border-seam p-1\">\n <button\n onClick={() => setViewMode(\"grid\")}\n className={`rounded p-1.5 transition-colors ${\n viewMode === \"grid\"\n ? \"bg-bg-sunken text-text-primary\"\n : \"text-text-secondary hover:bg-bg-sunken/50\"\n }`}\n title={tr(\"devportal.gridView\", \"Grid view\")}\n >\n <Grid size={16} />\n </button>\n <button\n onClick={() => setViewMode(\"list\")}\n className={`rounded p-1.5 transition-colors ${\n viewMode === \"list\"\n ? \"bg-bg-sunken text-text-primary\"\n : \"text-text-secondary hover:bg-bg-sunken/50\"\n }`}\n title={tr(\"devportal.listView\", \"List view\")}\n >\n <List size={16} />\n </button>\n </div>\n </div>\n\n {/* Results count */}\n {physicalItems.length > 0 && (\n <p className=\"text-sm text-text-secondary\">\n {filteredItems.length} item\n {filteredItems.length !== 1 ? \"s\" : \"\"} found\n </p>\n )}\n\n {/* Content */}\n {!publisherId && !publisherLoading ? (\n <EmptyState\n illustration=\"empty-generic\"\n icon={<Package size={32} />}\n title={tr(\n \"devportal.noPublisherProfileYet\",\n \"No publisher profile yet\",\n )}\n description={tr(\n \"devportal.listAnItemToGetStarted\",\n \"List an item to get started. Your publisher profile will be created automatically.\",\n )}\n action={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n />\n ) : productsLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingItems\", \"Loading items...\")}\n </span>\n </div>\n ) : filteredItems.length > 0 ? (\n viewMode === \"grid\" ? (\n <div className=\"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\">\n {filteredItems.map((item) => (\n <ProductItemCard\n key={item.id}\n item={item}\n onEdit={() =>\n handleNavigate(`/seller/items/${item.id}`)\n }\n />\n ))}\n </div>\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-seam\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-seam bg-bg-sunken\">\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Item\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Type\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Price\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Stock\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Status\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Actions\n </th>\n </tr>\n </thead>\n <tbody>\n {filteredItems.map((item) => {\n const badge =\n STATUS_BADGE_STYLES[item.status] ??\n STATUS_BADGE_STYLES.DRAFT;\n return (\n <tr\n key={item.id}\n className=\"border-b border-border-subtle last:border-0 hover:bg-bg-sunken/50 transition-colors\"\n >\n <td className=\"px-4 py-3\">\n <div className=\"flex items-center gap-3\">\n {item.icon ? (\n <img\n src={item.icon}\n alt={item.name}\n className=\"h-8 w-8 rounded-lg object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-lg bg-bg-sunken shrink-0\">\n <Package\n size={14}\n className=\"text-text-muted\"\n />\n </div>\n )}\n <div className=\"min-w-0\">\n <p className=\"font-medium text-text-primary truncate\">\n {item.name}\n </p>\n {item.sku && (\n <p className=\"text-xs text-text-muted\">\n SKU: {item.sku}\n </p>\n )}\n </div>\n </div>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n {resolveTypeLabel(item.type)}\n </td>\n <td className=\"px-4 py-3 text-text-primary tabular-nums\">\n {formatPrice(item.price, item.currency)}\n </td>\n <td className=\"px-4 py-3\">\n {item.stockQuantity === 0 ? (\n <span className=\"text-status-error-text\">\n Out of stock\n </span>\n ) : (\n <span className=\"text-text-primary tabular-nums\">\n {item.stockQuantity}\n </span>\n )}\n </td>\n <td className=\"px-4 py-3\">\n <span\n className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n </td>\n <td className=\"px-4 py-3 text-right\">\n <button\n onClick={() =>\n handleNavigate(`/seller/items/${item.id}`)\n }\n className=\"inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n <Edit size={12} />\n {tr(\"devportal.edit\", \"Edit\")}\n </button>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )\n ) : physicalItems.length > 0 && hasActiveFilters ? (\n <EmptyState\n illustration=\"empty-search\"\n title={tr(\n \"devportal.noItemsMatchYourSearch\",\n \"No items match your search\",\n )}\n description={tr(\n \"devportal.tryAdjustingFilters\",\n \"Try adjusting your search or filters\",\n )}\n />\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Package size={32} />}\n title={tr(\"devportal.noItemsYet\", \"No items yet\")}\n description={tr(\n \"devportal.addYourFirstPhysicalProduct\",\n \"Add your first physical product listing to start selling\",\n )}\n action={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n />\n )}\n </PageLayout>\n </PermissionGuard>\n );\n};\n\n// ---------------------------------------------------------------------------\n// Sub-components\n// ---------------------------------------------------------------------------\n\nconst ProductItemCard: FC<{\n item: PhysicalProductDetail;\n onEdit: () => void;\n}> = ({ item, onEdit }) => {\n const badge =\n STATUS_BADGE_STYLES[item.status] ?? STATUS_BADGE_STYLES.DRAFT;\n\n return (\n <GlassCard treatment=\"insight\" className=\"flex flex-col gap-3 p-4\">\n <div className=\"flex items-start gap-3\">\n {item.icon ? (\n <img\n src={item.icon}\n alt={item.name}\n className=\"h-20 w-20 rounded-xl object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-20 w-20 items-center justify-center rounded-xl bg-bg-sunken shrink-0\">\n <Package size={32} className=\"text-text-muted\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold text-text-primary truncate\">{item.name}</p>\n {item.brand && (\n <p className=\"text-xs text-text-muted mt-0.5\">{item.brand}</p>\n )}\n <p className=\"text-sm text-text-secondary mt-1\">\n {formatPrice(item.price, item.currency)}\n </p>\n <div className=\"flex items-center gap-2 mt-2 flex-wrap\">\n <span\n className={`rounded-full px-2 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n <span className=\"rounded-full px-2 py-0.5 text-xs font-medium bg-bg-muted text-text-secondary\">\n {resolveTypeLabel(item.type)}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center justify-between pt-2 border-t border-border-subtle\">\n <div className=\"flex items-center gap-1.5 text-sm\">\n <Tag size={12} className=\"text-text-muted shrink-0\" />\n {item.stockQuantity === 0 ? (\n <span className=\"text-status-error-text\">Out of stock</span>\n ) : (\n <span className=\"text-text-secondary\">\n {item.stockQuantity} in stock\n </span>\n )}\n </div>\n <button\n onClick={onEdit}\n className=\"inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n <Edit size={12} />\n Edit\n </button>\n </div>\n </GlassCard>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SellerItemsPage.js","names":[],"sources":["../../../src/devportal/pages/SellerItemsPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Plus,\n Search,\n Grid,\n List,\n Package,\n Loader2,\n AlertCircle,\n Edit,\n Tag,\n} from \"lucide-react\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { PermissionGuard } from \"../components\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\n\n// ---------------------------------------------------------------------------\n// Local types\n// ---------------------------------------------------------------------------\n\ntype ProductStatus =\n \"DRAFT\" | \"PENDING_REVIEW\" | \"PUBLISHED\" | \"REJECTED\" | \"INACTIVE\";\n\ntype PhysicalProductType =\n | \"MERCHANDISE\"\n | \"HARDWARE\"\n | \"ACCESSORY\"\n | \"BOOK\"\n | \"EQUIPMENT\"\n | \"APPAREL\"\n | \"COLLECTIBLE\"\n | \"CONSUMABLE\";\n\ninterface PhysicalProductDetail {\n id: string;\n name: string;\n slug: string;\n type: string;\n status: ProductStatus;\n price: number;\n currency: string;\n stockQuantity: number;\n sku?: string | null;\n brand?: string | null;\n icon?: string | null;\n createdAt: string;\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/**\n * Digital product types to exclude even if `nature: PHYSICAL` is set wrong.\n */\nconst DIGITAL_TYPES = new Set([\"APP\", \"NODE\", \"WORKFLOW\"]);\n\nconst PRODUCT_TYPE_LABELS: Record<PhysicalProductType, string> = {\n MERCHANDISE: \"Merchandise\",\n HARDWARE: \"Hardware\",\n ACCESSORY: \"Accessory\",\n BOOK: \"Book\",\n EQUIPMENT: \"Equipment\",\n APPAREL: \"Apparel\",\n COLLECTIBLE: \"Collectible\",\n CONSUMABLE: \"Consumable\",\n};\n\nconst STATUS_BADGE_STYLES: Record<\n ProductStatus,\n { label: string; className: string }\n> = {\n PUBLISHED: {\n label: \"Published\",\n className: \"text-status-success-text bg-status-success-bg-subtle\",\n },\n PENDING_REVIEW: {\n label: \"Pending Review\",\n className: \"text-status-warning-text bg-status-warning-bg-subtle\",\n },\n DRAFT: {\n label: \"Draft\",\n className: \"text-text-muted bg-bg-muted\",\n },\n REJECTED: {\n label: \"Rejected\",\n className: \"text-status-error-text bg-status-error-bg/10\",\n },\n INACTIVE: {\n label: \"Inactive\",\n className: \"text-text-muted bg-bg-muted\",\n },\n};\n\nconst STATUS_OPTIONS: { value: ProductStatus | \"\"; label: string }[] = [\n { value: \"\", label: \"All Status\" },\n { value: \"DRAFT\", label: \"Draft\" },\n { value: \"PENDING_REVIEW\", label: \"Pending Review\" },\n { value: \"PUBLISHED\", label: \"Published\" },\n { value: \"REJECTED\", label: \"Rejected\" },\n { value: \"INACTIVE\", label: \"Inactive\" },\n];\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatPrice(price: number, currency: string): string {\n const curr = currency || \"USD\";\n const formatted = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(price);\n return `${formatted} ${curr}`;\n}\n\nfunction resolveTypeLabel(type: string): string {\n return (\n PRODUCT_TYPE_LABELS[type as PhysicalProductType] ?? type.replace(/_/g, \" \")\n );\n}\n\n// ---------------------------------------------------------------------------\n// GraphQL query strings\n// ---------------------------------------------------------------------------\n\nconst SELLER_PUBLISHER_QUERY = `\n query SellerMyPublisher {\n myPublisher {\n id\n }\n }\n`;\n\nconst SELLER_ITEMS_QUERY = `\n query SellerItems($publisherId: String!) {\n products(filter: { publisherId: $publisherId, nature: PHYSICAL }, limit: 100, offset: 0) {\n id\n name\n slug\n type\n status\n price\n currency\n stockQuantity\n sku\n brand\n icon\n createdAt\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Page component\n// ---------------------------------------------------------------------------\n\nexport const SellerItemsPage: FC = () => {\n const { navigate, basePath, apiGatewayUrl, authToken } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n\n const gqlUrl = apiGatewayUrl ?? \"/global/graphql\";\n\n const [publisherLoading, setPublisherLoading] = useState(true);\n const [productsLoading, setProductsLoading] = useState(false);\n const [publisherId, setPublisherId] = useState<string | null>(null);\n const [products, setProducts] = useState<PhysicalProductDetail[]>([]);\n const [error, setError] = useState<string | null>(null);\n const [retryToken, setRetryToken] = useState(0);\n\n const [viewMode, setViewMode] = useState<\"grid\" | \"list\">(\"grid\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [statusFilter, setStatusFilter] = useState<ProductStatus | \"\">(\"\");\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n // Fetch publisher first\n useEffect(() => {\n let cancelled = false;\n setPublisherLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({ query: SELLER_PUBLISHER_QUERY }),\n });\n if (cancelled) return;\n if (!res.ok) {\n throw new Error(`Request failed with status ${res.status}`);\n }\n const json = (await res.json()) as {\n data?: { myPublisher?: { id: string } | null };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"Unknown GraphQL error\");\n }\n setPublisherId(json.data?.myPublisher?.id ?? null);\n } catch (err) {\n if (!cancelled) {\n setError(\n err instanceof Error ? err.message : \"Failed to load publisher\",\n );\n }\n } finally {\n if (!cancelled) setPublisherLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [gqlUrl, authToken, retryToken]);\n\n // Fetch products once publisher is resolved\n useEffect(() => {\n if (!publisherId) return;\n let cancelled = false;\n setProductsLoading(true);\n setError(null);\n\n const run = async () => {\n try {\n const res = await fetch(gqlUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authToken ?? \"\"}`,\n },\n body: JSON.stringify({\n query: SELLER_ITEMS_QUERY,\n variables: { publisherId },\n }),\n });\n if (cancelled) return;\n if (!res.ok) {\n throw new Error(`Request failed with status ${res.status}`);\n }\n const json = (await res.json()) as {\n data?: {\n products?: Array<\n Omit<PhysicalProductDetail, \"status\"> & { status: string }\n >;\n };\n errors?: { message: string }[];\n };\n if (cancelled) return;\n if (json.errors?.length) {\n throw new Error(json.errors[0]?.message ?? \"Unknown GraphQL error\");\n }\n setProducts(\n (json.data?.products ?? []).map((p) => ({\n ...p,\n status: p.status as ProductStatus,\n })),\n );\n } catch (err) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : \"Failed to load items\");\n }\n } finally {\n if (!cancelled) setProductsLoading(false);\n }\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [publisherId, gqlUrl, authToken, retryToken]);\n\n // Exclude digital types defensively, then apply client-side filters\n const physicalItems = useMemo(\n () => products.filter((p) => !DIGITAL_TYPES.has(p.type)),\n [products],\n );\n\n const filteredItems = useMemo(\n () =>\n physicalItems.filter((item) => {\n const matchesSearch =\n !searchQuery ||\n item.name.toLowerCase().includes(searchQuery.toLowerCase());\n const matchesStatus = !statusFilter || item.status === statusFilter;\n return matchesSearch && matchesStatus;\n }),\n [physicalItems, searchQuery, statusFilter],\n );\n\n const stats = useMemo(\n () => ({\n total: physicalItems.length,\n published: physicalItems.filter((i) => i.status === \"PUBLISHED\").length,\n pendingReview: physicalItems.filter((i) => i.status === \"PENDING_REVIEW\")\n .length,\n outOfStock: physicalItems.filter((i) => i.stockQuantity === 0).length,\n }),\n [physicalItems],\n );\n\n const isInitialLoading = publisherLoading && products.length === 0 && !error;\n\n // Full-page loading state\n if (isInitialLoading) {\n return (\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingItems\", \"Loading items...\")}\n </span>\n </div>\n </PageLayout>\n );\n }\n\n // Full-page error state\n if (error && products.length === 0) {\n return (\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n {tr(\"devportal.failedToLoadItems\", \"Failed to load items\")}\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">{error}</p>\n <button\n onClick={() => setRetryToken((n) => n + 1)}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n {tr(\"devportal.tryAgain\", \"Try Again\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n const hasActiveFilters = Boolean(searchQuery || statusFilter);\n\n return (\n <PermissionGuard permission={DEVPORTAL_PERMISSIONS.APP_READ}>\n <PageLayout\n title={tr(\"devportal.myItems\", \"My Items\")}\n description={tr(\n \"devportal.manageYourPhysicalProductListings\",\n \"Manage your physical product listings.\",\n )}\n actions={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Plus size={16} aria-hidden=\"true\" />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n >\n {/* Summary stats */}\n <EmphasisPanel className=\"mb-4\">\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-text-secondary\">\n {tr(\"devportal.totalItems\", \"Total Items\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.total\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-success-text\">\n {tr(\"devportal.published\", \"Published\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.published\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-warning-text\">\n {tr(\"devportal.pendingReview\", \"Pending Review\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.pendingReview\n )}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <p className=\"text-sm text-status-error-text\">\n {tr(\"devportal.outOfStock\", \"Out of Stock\")}\n </p>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {productsLoading ? (\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n ) : (\n stats.outOfStock\n )}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Filters + view toggle */}\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex flex-1 items-center gap-3\">\n {/* Search */}\n <div className=\"relative flex-1 max-w-md\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder={tr(\"devportal.searchItems\", \"Search items...\")}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border border-border-seam bg-bg-surface pl-9 pr-4 py-2 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n\n {/* Status filter */}\n <select\n value={statusFilter}\n onChange={(e) =>\n setStatusFilter(e.target.value as ProductStatus | \"\")\n }\n className=\"rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-primary\"\n >\n {STATUS_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n\n {/* View toggle */}\n <div className=\"flex items-center gap-1 rounded-md border border-border-seam p-1\">\n <button\n onClick={() => setViewMode(\"grid\")}\n className={`rounded p-1.5 transition-colors ${\n viewMode === \"grid\"\n ? \"bg-bg-sunken text-text-primary\"\n : \"text-text-secondary hover:bg-bg-sunken/50\"\n }`}\n title={tr(\"devportal.gridView\", \"Grid view\")}\n >\n <Grid size={16} />\n </button>\n <button\n onClick={() => setViewMode(\"list\")}\n className={`rounded p-1.5 transition-colors ${\n viewMode === \"list\"\n ? \"bg-bg-sunken text-text-primary\"\n : \"text-text-secondary hover:bg-bg-sunken/50\"\n }`}\n title={tr(\"devportal.listView\", \"List view\")}\n >\n <List size={16} />\n </button>\n </div>\n </div>\n\n {/* Results count */}\n {physicalItems.length > 0 && (\n <p className=\"text-sm text-text-secondary\">\n {filteredItems.length} item\n {filteredItems.length !== 1 ? \"s\" : \"\"} found\n </p>\n )}\n\n {/* Content */}\n {!publisherId && !publisherLoading ? (\n <EmptyState\n illustration=\"empty-generic\"\n icon={<Package size={32} />}\n title={tr(\n \"devportal.noPublisherProfileYet\",\n \"No publisher profile yet\",\n )}\n description={tr(\n \"devportal.listAnItemToGetStarted\",\n \"List an item to get started. Your publisher profile will be created automatically.\",\n )}\n action={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n />\n ) : productsLoading ? (\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingItems\", \"Loading items...\")}\n </span>\n </div>\n ) : filteredItems.length > 0 ? (\n viewMode === \"grid\" ? (\n <div className=\"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\">\n {filteredItems.map((item) => (\n <ProductItemCard\n key={item.id}\n item={item}\n onEdit={() => handleNavigate(`/seller/items/${item.id}`)}\n />\n ))}\n </div>\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-seam\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-seam bg-bg-sunken\">\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Item\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Type\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Price\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Stock\n </th>\n <th className=\"px-4 py-3 text-left font-medium text-text-secondary\">\n Status\n </th>\n <th className=\"px-4 py-3 text-right font-medium text-text-secondary\">\n Actions\n </th>\n </tr>\n </thead>\n <tbody>\n {filteredItems.map((item) => {\n const badge =\n STATUS_BADGE_STYLES[item.status] ??\n STATUS_BADGE_STYLES.DRAFT;\n return (\n <tr\n key={item.id}\n className=\"border-b border-border-subtle last:border-0 hover:bg-bg-sunken/50 transition-colors\"\n >\n <td className=\"px-4 py-3\">\n <div className=\"flex items-center gap-3\">\n {item.icon ? (\n <img\n src={item.icon}\n alt={item.name}\n className=\"h-8 w-8 rounded-lg object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-lg bg-bg-sunken shrink-0\">\n <Package\n size={14}\n className=\"text-text-muted\"\n />\n </div>\n )}\n <div className=\"min-w-0\">\n <p className=\"font-medium text-text-primary truncate\">\n {item.name}\n </p>\n {item.sku && (\n <p className=\"text-xs text-text-muted\">\n SKU: {item.sku}\n </p>\n )}\n </div>\n </div>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n {resolveTypeLabel(item.type)}\n </td>\n <td className=\"px-4 py-3 text-text-primary tabular-nums\">\n {formatPrice(item.price, item.currency)}\n </td>\n <td className=\"px-4 py-3\">\n {item.stockQuantity === 0 ? (\n <span className=\"text-status-error-text\">\n Out of stock\n </span>\n ) : (\n <span className=\"text-text-primary tabular-nums\">\n {item.stockQuantity}\n </span>\n )}\n </td>\n <td className=\"px-4 py-3\">\n <span\n className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n </td>\n <td className=\"px-4 py-3 text-right\">\n <button\n onClick={() =>\n handleNavigate(`/seller/items/${item.id}`)\n }\n className=\"inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n <Edit size={12} />\n {tr(\"devportal.edit\", \"Edit\")}\n </button>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )\n ) : physicalItems.length > 0 && hasActiveFilters ? (\n <EmptyState\n illustration=\"empty-search\"\n title={tr(\n \"devportal.noItemsMatchYourSearch\",\n \"No items match your search\",\n )}\n description={tr(\n \"devportal.tryAdjustingFilters\",\n \"Try adjusting your search or filters\",\n )}\n />\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Package size={32} />}\n title={tr(\"devportal.noItemsYet\", \"No items yet\")}\n description={tr(\n \"devportal.addYourFirstPhysicalProduct\",\n \"Add your first physical product listing to start selling\",\n )}\n action={\n <button\n onClick={() => handleNavigate(\"/seller/items/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.listAnItem\", \"List an Item\")}\n </button>\n }\n />\n )}\n </PageLayout>\n </PermissionGuard>\n );\n};\n\n// ---------------------------------------------------------------------------\n// Sub-components\n// ---------------------------------------------------------------------------\n\nconst ProductItemCard: FC<{\n item: PhysicalProductDetail;\n onEdit: () => void;\n}> = ({ item, onEdit }) => {\n const badge = STATUS_BADGE_STYLES[item.status] ?? STATUS_BADGE_STYLES.DRAFT;\n\n return (\n <GlassCard treatment=\"insight\" className=\"flex flex-col gap-3 p-4\">\n <div className=\"flex items-start gap-3\">\n {item.icon ? (\n <img\n src={item.icon}\n alt={item.name}\n className=\"h-20 w-20 rounded-xl object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex h-20 w-20 items-center justify-center rounded-xl bg-bg-sunken shrink-0\">\n <Package size={32} className=\"text-text-muted\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold text-text-primary truncate\">\n {item.name}\n </p>\n {item.brand && (\n <p className=\"text-xs text-text-muted mt-0.5\">{item.brand}</p>\n )}\n <p className=\"text-sm text-text-secondary mt-1\">\n {formatPrice(item.price, item.currency)}\n </p>\n <div className=\"flex items-center gap-2 mt-2 flex-wrap\">\n <span\n className={`rounded-full px-2 py-0.5 text-xs font-medium ${badge.className}`}\n >\n {badge.label}\n </span>\n <span className=\"rounded-full px-2 py-0.5 text-xs font-medium bg-bg-muted text-text-secondary\">\n {resolveTypeLabel(item.type)}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center justify-between pt-2 border-t border-border-subtle\">\n <div className=\"flex items-center gap-1.5 text-sm\">\n <Tag size={12} className=\"text-text-muted shrink-0\" />\n {item.stockQuantity === 0 ? (\n <span className=\"text-status-error-text\">Out of stock</span>\n ) : (\n <span className=\"text-text-secondary\">\n {item.stockQuantity} in stock\n </span>\n )}\n </div>\n <button\n onClick={onEdit}\n className=\"inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n <Edit size={12} />\n Edit\n </button>\n </div>\n </GlassCard>\n );\n};\n"],"mappings":"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"}
|