@supernova-studio/client 0.2.0 → 0.2.1
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/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +503 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +494 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +1 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../model/src/auth/plugin-oauth-request.ts","../../model/src/billing/card.ts","../../model/src/billing/checkoutSession.ts","../../model/src/billing/customer.ts","../../model/src/billing/features.ts","../../model/src/billing/invoice.ts","../../model/src/billing/portalSession.ts","../../model/src/billing/price.ts","../../model/src/billing/product.ts","../../model/src/billing/subscription.ts","../../model/src/dsm/assets/asset-reference.ts","../../model/src/dsm/assets/asset-value.ts","../../model/src/dsm/assets/asset.ts","../../model/src/dsm/data-sources/data-source.ts","../../model/src/dsm/data-sources/import-job.ts","../../model/src/common/entity.ts","../../model/src/common/object-meta.ts","../../model/src/dsm/data-sources/import-summary.ts","../../model/src/dsm/elements/data/base.ts","../../model/src/dsm/elements/data/blur.ts","../../model/src/dsm/elements/data/dimension.ts","../../model/src/dsm/elements/data/border-radius.ts","../../model/src/dsm/elements/data/border-width.ts","../../model/src/dsm/elements/data/border.ts","../../model/src/dsm/elements/data/color.ts","../../model/src/dsm/elements/data/opacity.ts","../../model/src/dsm/elements/data/component.ts","../../model/src/dsm/elements/data/documentation-block-v1.ts","../../model/src/dsm/elements/raw-element.ts","../../model/src/dsm/properties/property-definition.ts","../../model/src/dsm/properties/property-value.ts","../../model/src/dsm/elements/primitives/point.ts","../../model/src/dsm/elements/primitives/size.ts","../../model/src/helpers/db.ts","../../model/src/helpers/nullish-to-optional.ts","../../model/src/dsm/elements/data/documentation-block-v2.ts","../../model/src/dsm/elements/data/documentation-page-v1.ts","../../model/src/dsm/elements/data/documentation.ts","../../model/src/dsm/elements/data/documentation-page-v2.ts","../../model/src/dsm/elements/data/duration.ts","../../model/src/dsm/elements/data/figma-file-structure.ts","../../model/src/dsm/elements/data/figma-node-reference.ts","../../model/src/dsm/elements/data/font-family.ts","../../model/src/dsm/elements/data/font-size.ts","../../model/src/dsm/elements/data/font-weight.ts","../../model/src/dsm/elements/data/gradient.ts","../../model/src/dsm/elements/data/group.ts","../../model/src/dsm/elements/data/letter-spacing.ts","../../model/src/dsm/elements/data/line-height.ts","../../model/src/dsm/elements/data/paragraph-indent.ts","../../model/src/dsm/elements/data/paragraph-spacing.ts","../../model/src/dsm/elements/data/product-copy.ts","../../model/src/dsm/elements/data/shadow.ts","../../model/src/dsm/elements/data/size.ts","../../model/src/dsm/elements/data/space.ts","../../model/src/dsm/elements/data/string.ts","../../model/src/dsm/elements/data/text-case.ts","../../model/src/dsm/elements/data/text-decoration.ts","../../model/src/dsm/elements/data/typography.ts","../../model/src/dsm/elements/data/visibility.ts","../../model/src/dsm/elements/data/z-index.ts","../../model/src/dsm/elements/base.ts","../../model/src/dsm/elements/component.ts","../../model/src/dsm/elements/documentation-page-v1.ts","../../model/src/dsm/elements/documentation-page-v2.ts","../../model/src/dsm/elements/figma-file-structures.ts","../../model/src/dsm/elements/figma-node-reference.ts","../../model/src/dsm/elements/group.ts","../../model/src/dsm/elements/page-block-v2.ts","../../model/src/dsm/elements/theme.ts","../../model/src/dsm/elements/tokens.ts","../../model/src/dsm/import/support/figma-files.ts","../../model/src/dsm/import/support/import-context.ts","../../model/src/dsm/import/support/import-model-collections.ts","../../model/src/dsm/import/image.ts","../../model/src/dsm/import/component.ts","../../model/src/dsm/import/base.ts","../../model/src/dsm/import/theme.ts","../../model/src/dsm/import/tokens.ts","../../model/src/dsm/import/figma-frames.ts","../../model/src/dsm/import/data-source.ts","../../model/src/dsm/import/warning.ts","../../model/src/dsm/documentation/block-definitions/aux.ts","../../model/src/dsm/documentation/block-definitions/definition.ts","../../model/src/dsm/documentation/block-definitions/item.ts","../../model/src/dsm/documentation/block-definitions/variant.ts","../../model/src/dsm/documentation/group.ts","../../model/src/dsm/documentation/page.ts","../../model/src/dsm/design-system.ts","../../model/src/workspace/npm-registry-settings.ts","../../model/src/workspace/sso-provider.ts","../../model/src/workspace/user-invite.ts","../../model/src/workspace/workspace-role.ts","../../model/src/workspace/workspace-context.ts","../../model/src/workspace/workspace-create.ts","../../model/src/utils/validation.ts","../../model/src/workspace/workspace-invitations.ts","../../model/src/workspace/workspace-membership.ts","../../model/src/workspace/workspace.ts","../../model/src/dsm/desing-system-create.ts","../../model/src/dsm/desing-system-update.ts","../../model/src/dsm/published-doc.ts","../../model/src/codegen/export-jobs.ts","../../model/src/codegen/exporter-workspace-membership-role.ts","../../model/src/codegen/exporter-workspace-membership.ts","../../model/src/codegen/exporter.ts","../../model/src/codegen/git-providers.ts","../../model/src/codegen/pulsar.ts","../../model/src/custom-domains/custom-domains.ts","../../model/src/docs-server/session.ts","../../model/src/users/linked-integrations.ts","../../model/src/users/user-identity.ts","../../model/src/users/user-profile.ts","../../model/src/users/user.ts","../../model/src/feature-flags/feature-flags.ts","../../model/src/integrations/external-oauth-request.ts","../../model/src/integrations/oauth-providers.ts","../../model/src/integrations/oauth-token.ts","../../model/src/multiplayer/design-system-version-room.ts","../../model/src/multiplayer/documentation-page-room.ts","../../model/src/npm/npm-package.ts","../../model/src/npm/npm-proxy-token-payload.ts","../../model/src/tokens/personal-access-token.ts","../../model/src/utils/content-loader-instruction.ts","../src/api/responses/get-block-definitions.ts","../src/docs-editor/model/block.ts","../src/docs-editor/model/page.ts","../src/docs-editor/prosemirror/schema.ts","../src/docs-editor/utils.ts","../src/docs-editor/blocks-to-prosemirror.ts","../src/docs-editor/mock.ts","../src/docs-editor/prosemirror-to-blocks.ts"],"names":["z","zeroNumberByDefault","DS_NAME_MIN_LENGTH","DS_NAME_MAX_LENGTH","DS_DESC_MIN_LENGTH","DS_DESC_MAX_LENGTH","GitProviderNames","OAuthProviderNames","nonNullFilter"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nexport const PluginOAuthRequestSchema = z.object({\n id: z.string(),\n codeChallenge: z.string(),\n readKey: z.string(),\n writeKey: z.string(),\n readKeyConsumed: z.boolean(),\n writeKeyConsumed: z.boolean(),\n oAuthCode: z.string().optional(),\n createdAt: z.date(),\n});\n\nexport type PluginOAuthRequest = z.infer<typeof PluginOAuthRequestSchema>;\n","import { z } from \"zod\";\n\nexport const CardSchema = z.object({\n cardId: z.string().nullish(),\n last4: z.string().length(4).nullish(),\n expiryMonth: z.string().nullish(),\n expiryYear: z.string().nullish(),\n brand: z.string().nullish(),\n name: z.string().nullish(),\n});\n\nexport type Card = z.infer<typeof CardSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripeCheckoutBodyInputSchema = z.object({\n priceId: z.string(),\n successUrl: z.string().url(),\n cancelUrl: z.string().url(),\n quantity: z.number().int().min(1).optional(),\n});\n\nexport const PostStripeCheckoutOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripeCheckoutInput = z.infer<typeof PostStripeCheckoutBodyInputSchema>;\nexport type StripeCheckoutOutput = z.infer<typeof PostStripeCheckoutOutputSchema>;\n","import { z } from \"zod\";\n\nexport const Customer = z.object({\n id: z.string(),\n});\n\nexport const Address = z.object({\n street1: z.string().optional(),\n street2: z.string().optional(),\n city: z.string().optional(),\n postal: z.string().optional(),\n country: z.string().optional(),\n state: z.string().optional(),\n});\n\nexport const BillingDetails = z.object({\n address: Address.optional(),\n email: z.string().optional(),\n companyName: z.string().optional(),\n companyId: z.string().optional(),\n notes: z.string().optional(),\n vat: z.string().optional(),\n poNumber: z.string().optional(),\n});\n\nexport type Customer = z.infer<typeof Customer>;\nexport type Address = z.infer<typeof Address>;\nexport type BillingDetails = z.infer<typeof BillingDetails>;\n","import { z } from \"zod\";\n\nconst featureLimitedSchema = z.object({\n max: z.number(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureToggleSchema = z.object({\n enabled: z.boolean(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureWithImportJobsSchema = featureLimitedSchema.extend({\n noImportJobsErrorMessage: z.string(),\n noImportJobsErrorReason: z.string(),\n});\n\nexport const FeaturesSummary = z.object({\n designSystems: featureLimitedSchema,\n designSystemSources: featureWithImportJobsSchema,\n designSystemVersions: featureLimitedSchema,\n themes: featureLimitedSchema,\n brands: featureLimitedSchema,\n codegenSchedules: featureLimitedSchema,\n publicDocumentation: featureToggleSchema,\n customDocumentationUrl: featureToggleSchema,\n customDocumentationViewButton: featureToggleSchema,\n designSystemSourceAutoImport: featureToggleSchema,\n designSystemSlug: featureToggleSchema,\n ipWhitelisting: featureToggleSchema,\n npmRegistry: featureToggleSchema,\n sso: featureToggleSchema,\n workspacePaidSeats: featureLimitedSchema,\n workspaceViewers: featureLimitedSchema,\n customDocumentationExporter: featureToggleSchema,\n});\n\nexport type FeatureLimitedDetails = z.infer<typeof featureLimitedSchema>;\nexport type FeatureToggleDetails = z.infer<typeof featureToggleSchema>;\nexport type FeatureWithImportJobsDetails = z.infer<typeof featureWithImportJobsSchema>;\nexport type FeaturesSummary = z.infer<typeof FeaturesSummary>;\n","import { z } from \"zod\";\nimport { CardSchema } from \"./card\";\n\nexport const InvoiceSchema = z.object({\n id: z.string(),\n number: z.string(),\n amount_due: z.number(),\n date: z.date(),\n hostedUrl: z.string().url(),\n card: CardSchema.nullish(),\n});\n\nexport const PeriodSchema = z.object({\n start: z.date(),\n end: z.date(),\n});\n\nexport const InvoiceLineSchema = z.object({\n amount: z.number(),\n period: PeriodSchema,\n proration: z.boolean(),\n description: z.string(),\n type: z.string(),\n});\n\nexport const InvoiceCouponSchema = z.object({\n amount_off: z.number(),\n percent_off: z.number(),\n name: z.string(),\n});\n\nexport type Invoice = z.infer<typeof InvoiceSchema>;\nexport type InvoiceLine = z.infer<typeof InvoiceLineSchema>;\nexport type InvoiceCoupon = z.infer<typeof InvoiceCouponSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripePortalUpdateSessionBodyInputSchema = z.object({\n priceId: z.string(),\n numberOfSeats: z.number().int(),\n});\nexport const PostStripePortalSessionBodyInputSchema = z.object({\n returnUrl: z.string().url(),\n update: PostStripePortalUpdateSessionBodyInputSchema.optional(),\n cancel: z.boolean().optional(),\n});\n\nexport const PostStripePortalSessionOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripePortalSessionInput = z.infer<typeof PostStripePortalSessionBodyInputSchema>;\nexport type StripePortalSessionOutput = z.infer<typeof PostStripePortalSessionOutputSchema>;\n","import { z } from \"zod\";\n\nexport const BillingIntervalSchema = z.enum([\"daily\", \"monthly\", \"weekly\", \"yearly\"]);\n\nexport const PriceSchema = z.object({\n stripePriceId: z.string(),\n stripeProductId: z.string(),\n stripeProductName: z.string().optional(),\n stripeProductDescription: z.string().optional(),\n active: z.boolean(),\n amount: z.number(),\n interval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n isTrial: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n minimumSeats: z.number().optional(),\n legacyVersion: z.string().optional(),\n featuresSet: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n});\n\nexport type BillingInterval = z.infer<typeof BillingIntervalSchema>;\nexport type Price = z.infer<typeof PriceSchema>;\n","import { z } from \"zod\";\n\nexport const ProductCodeSchema = z.enum([\"free\", \"team\", \"team_test\", \"company\", \"enterprise\"]);\nexport type ProductCode = z.infer<typeof ProductCodeSchema>;\nexport const ProductCode = ProductCodeSchema.enum;\n","import { CardSchema } from \"./card\";\nimport { ProductCode, ProductCodeSchema } from \"./product\";\nimport { FeaturesSummary } from \"./features\";\nimport { BillingIntervalSchema } from \"./price\";\nimport { z } from \"zod\";\nexport const StripeSubscriptionStatusSchema = z.enum([\n \"trialing\",\n \"active\",\n \"past_due\",\n \"canceled\",\n \"unpaid\",\n \"incomplete_expired\",\n \"incomplete\",\n \"unknown\",\n]);\n\nexport const InternalStatusSchema = z.enum([\"active\", \"suspended\", \"gracePeriod\", \"cancelled\", \"downgraded_to_free\"]);\n\nexport const BillingTypeSchema = z.enum([\"Auto\", \"Invoice\"]);\n\nexport type StripeSubscriptionStatus = z.infer<typeof StripeSubscriptionStatusSchema>;\nexport type InternalStatus = z.infer<typeof InternalStatusSchema>;\nexport type BillingType = z.infer<typeof BillingTypeSchema>;\n\nexport const StripeSubscriptionStatus = StripeSubscriptionStatusSchema.enum;\nexport const InternalStatus = InternalStatusSchema.enum;\nexport const BillingType = BillingTypeSchema.enum;\n\nexport const Subscription = z.object({\n stripeSubscriptionId: z.string().nullish(),\n stripeCustomerId: z.string().nullish(),\n\n status: InternalStatusSchema.optional(),\n subscriptionStatus: StripeSubscriptionStatusSchema.optional(), // the stripe API official status\n internalStatus: InternalStatusSchema.optional(), // TODO: delete when create/get workspace will stop using it in the former API\n\n product: ProductCodeSchema,\n featuresSummary: FeaturesSummary.optional(),\n stripeProductDescription: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n stripeSubscriptionMainItemId: z.string().optional(),\n planPriceId: z.string(),\n planInterval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n legacyVersion: z.string().optional(),\n\n seats: z.number(),\n seatLimit: z.number(),\n\n currentPeriodStart: z.string().optional(),\n currentPeriodEnd: z.string().optional(),\n subscriptionStatusUpdatedAt: z.string().optional(),\n cancelAt: z.string().nullish(),\n\n card: CardSchema.optional(),\n\n // New\n amount: z.number().nullish(),\n isTrial: z.boolean().optional(),\n billingType: BillingTypeSchema.optional(),\n daysUntilDue: z.number().optional(),\n});\n\nexport type Subscription = z.infer<typeof Subscription>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../../helpers\";\n\nexport const AssetReference = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n assetId: z.string(),\n persistentId: z.string(),\n});\n\nexport type AssetReference = z.infer<typeof AssetReference>;\n\nexport type CreateAssetReference = DbCreateInputOmit<AssetReference>;\n\nexport type AssetReferenceDiff = {\n toCreate: CreateAssetReference[];\n toDelete: string[];\n};\n","import { z } from \"zod\";\n\nexport const AssetValue = z.object({});\n","import { z } from \"zod\";\nimport { OmitStrict } from \"../../helpers\";\n\nexport const AssetType = z.enum([\"Image\", \"Font\"]);\nexport const AssetScope = z.enum([\"DocumentationFrame\", \"ComponentThumbnail\", \"DesignSystem\", \"Documentation\"]);\n\nexport const AssetFontProperties = z.object({\n family: z.string(),\n subfamily: z.string(),\n});\n\nexport const AssetProperties = z.object({\n fontProperties: z.array(AssetFontProperties),\n});\n\nexport const AssetOrigin = z.object({\n originKey: z.string(),\n});\n\nexport const Asset = z.object({\n id: z.string(),\n designSystemId: z.string().nullish(),\n type: AssetType,\n originalFileName: z.string().nullish(),\n filePath: z.string(),\n scope: AssetScope,\n properties: AssetProperties.nullish(),\n origin: AssetOrigin.nullish(),\n});\n\nexport type AssetType = z.infer<typeof AssetType>;\nexport type AssetScope = z.infer<typeof AssetScope>;\nexport type AssetFontProperties = z.infer<typeof AssetFontProperties>;\nexport type AssetProperties = z.infer<typeof AssetProperties>;\nexport type AssetOrigin = z.infer<typeof AssetOrigin>;\nexport type Asset = z.infer<typeof Asset>;\n\nexport type ImportedAsset = OmitStrict<Asset, \"origin\"> & {\n origin: AssetOrigin;\n};\n\nexport type ResolvedAsset = OmitStrict<Asset, \"filePath\"> & {\n url: string;\n};\n\nexport function isImportedAsset(asset: Asset): asset is ImportedAsset {\n return !!asset.origin;\n}\n","import { z } from \"zod\";\nimport { SourceImportSummary } from \"./import-summary\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Enums\n//\n\nexport const DataSourceRemoteType = z.enum([\"Figma\", \"TokenStudio\", \"FigmaVariablesPlugin\"]);\nexport const DataSourceUploadRemoteSource = z.enum([\"TokenStudio\", \"FigmaVariablesPlugin\", \"Custom\"]);\nexport const DataSourceFigmaState = z.enum([\"Active\", \"MissingIntegration\", \"MissingFileAccess\", \"MissingFileOwner\"]);\nexport const DataSourceAutoImportMode = z.enum([\"Never\", \"Hourly\"]);\n\nexport type DataSourceRemoteType = z.infer<typeof DataSourceRemoteType>;\nexport type DataSourceUploadRemoteSource = z.infer<typeof DataSourceUploadRemoteSource>;\nexport type DataSourceFigmaState = z.infer<typeof DataSourceFigmaState>;\nexport type DataSourceAutoImportMode = z.infer<typeof DataSourceAutoImportMode>;\n\n//\n// Aux\n//\n\nexport const DataSourceStats = z.object({\n tokens: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n assets: zeroNumberByDefault(),\n frames: zeroNumberByDefault(),\n});\n\nexport type DataSourceStats = z.infer<typeof DataSourceStats>;\n\n//\n// Figma\n//\n\nexport const DataSourceFigmaFileData = z.object({\n lastUpdatedAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaFileVersionData = z.object({\n id: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n createdAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaScope = z.object({\n assets: z.boolean(),\n components: z.boolean(),\n documentationFrames: z.boolean(),\n tokens: z.boolean(),\n themePersistentId: z.string().optional(),\n});\n\nexport const DataSourceFigmaImportMetadata = z.object({\n fileData: DataSourceFigmaFileData.optional(),\n importedPublishedVersion: DataSourceFigmaFileVersionData.optional(),\n});\n\nexport const DataSourceFigmaRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.Figma),\n fileId: z.string(),\n ownerId: z.string(),\n ownerName: z.string(),\n scope: DataSourceFigmaScope,\n state: DataSourceFigmaState,\n lastImportMetadata: DataSourceFigmaImportMetadata.optional(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport type DataSourceFigmaFileData = z.infer<typeof DataSourceFigmaFileData>;\nexport type DataSourceFigmaFileVersionData = z.infer<typeof DataSourceFigmaFileVersionData>;\nexport type DataSourceFigmaScope = z.infer<typeof DataSourceFigmaScope>;\nexport type DataSourceFigmaImportMetadata = z.infer<typeof DataSourceFigmaImportMetadata>;\nexport type DataSourceFigmaRemote = z.infer<typeof DataSourceFigmaRemote>;\n\n//\n// Token Studio\n//\n\nexport const DataSourceTokenStudioRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.TokenStudio),\n});\n\nexport type DataSourceTokenStudioRemote = z.infer<typeof DataSourceTokenStudioRemote>;\n\n//\n// Figma Variables Plugin\n//\n\nexport const DataSourceUploadImportMetadata = z.record(z.any());\n\nexport const DataSourceUploadRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.FigmaVariablesPlugin),\n remoteId: z.string(),\n remoteSourceType: DataSourceUploadRemoteSource,\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n});\n\nexport type DataSourceUploadImportMetadata = z.infer<typeof DataSourceUploadImportMetadata>;\nexport type DataSourceUploadRemote = z.infer<typeof DataSourceUploadRemote>;\n\n//\n// Base\n//\n\nexport const DataSourceRemote = z.discriminatedUnion(\"type\", [\n DataSourceFigmaRemote,\n DataSourceUploadRemote,\n DataSourceTokenStudioRemote,\n]);\n\nexport type DataSource = {\n id: string;\n\n name: string;\n thumbnailUrl: string | undefined;\n\n // createdAt: Date;\n // updatedAt: Date;\n\n lastImportedAt: Date | undefined;\n lastImportSummary: SourceImportSummary | undefined;\n\n // lastImportJobId: Nullish<string>;\n // lastNonEmptyImportJobId: Nullish<string>;\n\n designSystemId: string;\n brandPersistentId: string;\n\n autoImportMode: DataSourceAutoImportMode;\n stats: DataSourceStats;\n\n remote: DataSourceRemote;\n\n sortOrder: number;\n};\n\nexport const DataSourceVersion = z.object({\n id: z.string(),\n createdAt: z.date(),\n label: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type DataSourceVersion = z.infer<typeof DataSourceVersion>;\n\nexport type DataSourceRemote = z.infer<typeof DataSourceRemote>;\n\nexport type CreateDataSource = OmitStrict<DbCreateInputOmit<DataSource>, \"sortOrder\">;\nexport type UpdateDataSource = OmitStrict<DbUpdate<DataSource>, \"brandPersistentId\" | \"designSystemId\">;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DataSourceRemoteType } from \"./data-source\";\nimport { Entity } from \"../../common\";\n\nexport const ImportJobState = z.enum([\"PendingInput\", \"Queued\", \"InProgress\", \"Failed\", \"Success\"]);\nexport const ImportJobOperation = z.enum([\"Check\", \"Import\"]);\n\nexport const ImportJob = Entity.extend({\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n sourceIds: z.array(z.string()),\n state: ImportJobState,\n createdByUserId: z.string().optional(),\n importContextId: z.string(),\n error: z.string().optional(),\n sourceType: DataSourceRemoteType,\n});\n\nexport type ImportJobState = z.infer<typeof ImportJobState>;\nexport type ImportJobOperation = z.infer<typeof ImportJobOperation>;\nexport type ImportJob = z.infer<typeof ImportJob>;\n\nexport type CreateImportJob = DbCreateInputOmit<ImportJob>;\nexport type UpdateImportJob = OmitStrict<\n DbUpdate<ImportJob>,\n \"designSystemId\" | \"createdByUserId\" | \"sourceIds\" | \"importContextId\"\n>;\n","import { z } from \"zod\";\n\nexport const Entity = z.object({\n id: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type Entity = z.infer<typeof Entity>;\n","import { z } from \"zod\";\n\nexport const ObjectMeta = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\nexport type ObjectMeta = z.infer<typeof ObjectMeta>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { nullishToOptional } from \"../../helpers\";\nimport { ImportWarning } from \"../import\";\n\nexport const FileStructureStats = z.object({\n frames: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n componentSets: zeroNumberByDefault(),\n});\n\nconst SourceImportSummaryByTokenTypeKey = DesignTokenType.or(\n // Backward compatibility\n z.enum([\"Measure\", \"Radius\", \"GenericToken\", \"Font\", \"Text\"])\n);\n\nexport const SourceImportSummaryByTokenType = z.record(SourceImportSummaryByTokenTypeKey, z.number());\n\nexport const SourceImportTokenSummary = z.object({\n tokensCreated: zeroNumberByDefault(),\n tokensUpdated: zeroNumberByDefault(),\n tokensDeleted: zeroNumberByDefault(),\n tokensCreatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensUpdatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensDeletedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n});\n\nexport const SourceImportComponentSummary = z.object({\n componentsCreated: zeroNumberByDefault(),\n componentsUpdated: zeroNumberByDefault(),\n componentsDeleted: zeroNumberByDefault(),\n componentAssetsCreated: zeroNumberByDefault(),\n componentAssetsUpdated: zeroNumberByDefault(),\n componentAssetsDeleted: zeroNumberByDefault(),\n});\n\nexport const SourceImportFrameSummary = z.object({\n assetsInFile: nullishToOptional(FileStructureStats.optional()),\n invalidReferencesCount: nullishToOptional(z.number().optional()),\n});\n\nexport const SourceImportSummary = z.object({\n sourceId: nullishToOptional(z.string()),\n brandId: nullishToOptional(z.string()),\n versionId: nullishToOptional(z.string()),\n error: nullishToOptional(z.any()),\n isFailed: z.boolean(),\n warnings: z\n .array(ImportWarning)\n .nullish()\n .transform(v => v ?? []),\n\n ...SourceImportTokenSummary.shape,\n ...SourceImportComponentSummary.shape,\n ...FileStructureStats.shape,\n});\n\nexport type FileStructureStats = z.infer<typeof FileStructureStats>;\nexport type SourceImportSummaryByTokenType = z.infer<typeof SourceImportSummaryByTokenType>;\nexport type SourceImportTokenSummary = z.infer<typeof SourceImportTokenSummary>;\nexport type SourceImportComponentSummary = z.infer<typeof SourceImportComponentSummary>;\nexport type SourceImportFrameSummary = z.infer<typeof SourceImportFrameSummary>;\nexport type SourceImportSummary = z.infer<typeof SourceImportSummary>;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { ZodSchema, z } from \"zod\";\n\nexport const TokenDataAliasSchema = z.object({\n aliasTo: z\n .string()\n .optional()\n .nullable()\n .transform(v => v ?? undefined),\n});\n\nexport function tokenAliasOrValue<T extends ZodSchema>(value: T) {\n return TokenDataAliasSchema.extend({\n value: value\n .optional()\n .nullable()\n .transform(v => (v ?? undefined) as z.output<T> | undefined),\n });\n}\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { DimensionTokenData } from \"./dimension\";\n\nexport const BlurType = z.enum([\"Layer\", \"Background\"]);\n\nexport const BlurValue = z.object({\n type: BlurType,\n radius: DimensionTokenData,\n});\n\nexport const BlurTokenData = tokenAliasOrValue(BlurValue);\n\nexport type BlurType = z.infer<typeof BlurType>;\nexport type BlurValue = z.infer<typeof BlurValue>;\nexport type BlurTokenData = z.infer<typeof BlurTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DimensionUnit = z.enum([\"Pixels\", \"Percent\", \"Rem\", \"Ms\", \"Raw\", \"Points\"]);\n\nexport const DimensionValue = z.object({\n unit: DimensionUnit,\n measure: z.number(),\n});\n\nexport const DimensionTokenData = tokenAliasOrValue(DimensionValue);\n\nexport type DimensionUnit = z.infer<typeof DimensionUnit>;\nexport type DimensionValue = z.infer<typeof DimensionValue>;\nexport type DimensionTokenData = z.infer<typeof DimensionTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderRadiusUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const BorderRadiusValue = z.object({\n unit: BorderRadiusUnit,\n measure: z.number(),\n});\n\nexport const BorderRadiusTokenData = tokenAliasOrValue(BorderRadiusValue);\n\nexport type BorderRadiusUnit = z.infer<typeof BorderRadiusUnit>;\nexport type BorderRadiusValue = z.infer<typeof BorderRadiusValue>;\nexport type BorderRadiusTokenData = z.infer<typeof BorderRadiusTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderWidthUnit = z.enum([\"Pixels\"]);\n\nexport const BorderWidthValue = z.object({\n unit: BorderWidthUnit,\n measure: z.number(),\n});\n\nexport const BorderWidthTokenData = tokenAliasOrValue(BorderWidthValue);\n\nexport type BorderWidthUnit = z.infer<typeof BorderWidthUnit>;\nexport type BorderWidthValue = z.infer<typeof BorderWidthValue>;\nexport type BorderWidthTokenData = z.infer<typeof BorderWidthTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { BorderWidthTokenData } from \"./border-width\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderPosition = z.enum([\"Inside\", \"Center\", \"Outside\"]);\nexport const BorderStyle = z.enum([\"Dashed\", \"Dotted\", \"Solid\", \"Groove\"]);\n\nexport const BorderValue = z.object({\n color: ColorTokenData,\n width: BorderWidthTokenData,\n position: BorderPosition,\n style: BorderStyle.optional(),\n});\n\nexport const BorderTokenData = tokenAliasOrValue(BorderValue);\n\nexport type BorderPosition = z.infer<typeof BorderPosition>;\nexport type BorderStyle = z.infer<typeof BorderStyle>;\nexport type BorderValue = z.infer<typeof BorderValue>;\nexport type BorderTokenData = z.infer<typeof BorderTokenData>;\n","import { z } from \"zod\";\nimport { TokenDataAliasSchema, tokenAliasOrValue } from \"./base\";\nimport { OpacityTokenData } from \"./opacity\";\n\nexport const ColorValue = z.object({\n opacity: OpacityTokenData,\n color: z.string().or(TokenDataAliasSchema),\n});\n\nexport const ColorTokenData = tokenAliasOrValue(ColorValue);\n\nexport type ColorValue = z.infer<typeof ColorValue>;\nexport type ColorTokenData = z.infer<typeof ColorTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const OpacityValue = z.object({\n unit: z.enum([\"Raw\", \"Pixels\"]),\n measure: z.number(),\n});\n\nexport const OpacityTokenData = tokenAliasOrValue(OpacityValue);\n\nexport type OpacityValue = z.infer<typeof OpacityValue>;\nexport type OpacityTokenData = z.infer<typeof OpacityTokenData>;\n","import { z } from \"zod\";\n\nexport const ComponentElementData = z.object({\n value: z.object({\n thumbnailImage: z.object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n }),\n\n svg: z\n .object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n })\n .optional(),\n }),\n});\n\nexport type ComponentElementData = z.infer<typeof ComponentElementData>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../raw-element\";\nimport { DimensionTokenData } from \"./dimension\";\nimport { ColorTokenInlineData } from \"../../properties\";\nimport { Size } from \"../primitives\";\nimport { nullishToOptional } from \"../../../helpers\";\n\n//\n// Enums\n//\n\nexport const PageBlockCalloutType = z.enum([\"Info\", \"Success\", \"Warning\", \"Error\"]);\n\nexport const PageBlockTypeV1 = z.enum([\n \"Text\",\n \"Heading\",\n \"Code\",\n \"UnorderedList\",\n \"OrderedList\",\n \"Quote\",\n \"Callout\",\n \"Divider\",\n \"Image\",\n \"Embed\",\n \"Link\",\n \"Shortcuts\",\n \"FigmaEmbed\",\n \"YoutubeEmbed\",\n \"StorybookEmbed\",\n \"Token\",\n \"TokenGroup\",\n \"TokenList\",\n \"Component\",\n \"ComponentGroup\",\n \"Theme\",\n \"ComponentSandbox\",\n \"Custom\",\n \"FigmaFrames\",\n \"ComponentAssets\",\n \"RenderCode\",\n \"Tabs\",\n \"TabItem\",\n \"Table\",\n \"TableRow\",\n \"TableCell\",\n]);\n\nexport const PageBlockCodeLanguage = z.enum([\n \"Angular\",\n \"Bash\",\n \"C\",\n \"Cpp\",\n \"Csharp\",\n \"CSS\",\n \"Dart\",\n \"Handlebars\",\n \"HTML\",\n \"Java\",\n \"Javascript\",\n \"JSON\",\n \"ReactJSX\",\n \"ReactTSX\",\n \"Kotlin\",\n \"Lua\",\n \"Markdown\",\n \"ObjectiveC\",\n \"PHP\",\n \"Plain\",\n \"Python\",\n \"Ruby\",\n \"Rust\",\n \"Sass\",\n \"SCSS\",\n \"Svetle\",\n \"Swift\",\n \"Twig\",\n \"Typescript\",\n \"Vue\",\n \"XML\",\n \"YAML\",\n]);\n\nexport const PageBlockAlignment = z.enum([\"Left\", \"Center\", \"Stretch\", \"Right\"]);\nexport const PageBlockThemeType = z.enum([\"Override\", \"Comparison\"]);\nexport const PageBlockAssetType = z.enum([\"image\", \"figmaFrame\"]);\n\nexport const PageBlockTilesAlignment = z.enum([\"Center\", \"FrameHeight\"]);\n\nexport const PageBlockTilesLayout = z.enum([\"C8\", \"C7\", \"C6\", \"C5\", \"C4\", \"C3\", \"C2\", \"C1\", \"C1_75\"]);\n\n//\n// Support types\n//\n\nexport const PageBlockTheme = z.object({\n themeIds: z.array(z.string()),\n type: PageBlockThemeType,\n});\n\nexport const PageBlockUrlPreview = z.object({\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n thumbnailUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockFrameOrigin = z.object({\n sourceFileName: nullishToOptional(z.string()),\n title: nullishToOptional(z.string()),\n previewUrl: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n referenceId: nullishToOptional(z.string()),\n assetId: nullishToOptional(z.string()),\n assetScale: nullishToOptional(z.number()),\n width: nullishToOptional(z.number()),\n height: nullishToOptional(z.number()),\n});\n\nexport const PageBlockFrame = z.object({\n persistentId: z.string(),\n sourceId: z.string(),\n sourceFrameId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n origin: nullishToOptional(PageBlockFrameOrigin),\n});\n\nexport const PageBlockAsset = z.object({\n type: PageBlockAssetType,\n id: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n figmaFrame: nullishToOptional(PageBlockFrame),\n});\n\nexport const PageBlockLinkPreview = z.object({\n title: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockShortcut = z.object({\n persistentId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n asset: nullishToOptional(PageBlockAsset),\n documentationItemId: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n documentationItemPreview: nullishToOptional(PageBlockLinkPreview),\n});\n\nexport const PageBlockCustomBlockPropertyImageValue = z.object({\n asset: nullishToOptional(PageBlockAsset),\n assetId: nullishToOptional(z.string()),\n assetUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockCustomBlockPropertyValue = z.object({\n key: z.string(),\n value: z.any(),\n\n // TODO Artem: for some reason there are cases when there's an array here in the DB\n // e.g. element id 67451 in the dev db\n\n // value: z\n // .boolean()\n // .or(z.number())\n // .or(z.string())\n // .or(ColorTokenData)\n // .or(TypographyTokenData)\n // .or(PageBlockCustomBlockPropertyImageValue),\n});\n\nexport const PageBlockFigmaFrameProperties = z.object({\n alignment: PageBlockTilesAlignment,\n layout: PageBlockTilesLayout,\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n showTitles: z.boolean(),\n});\n\nexport const PageBlockRenderCodeProperties = z.object({\n showCode: z.boolean(),\n});\n\nexport const PageBlockAssetComponent = z.object({\n persistentId: z.string(),\n componentAssetId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n});\n\nexport const PageBlockTableColumn = z.object({\n id: z.string(),\n width: DimensionTokenData,\n});\n\nexport const PageBlockTableProperties = z.object({\n showBorders: z.boolean(),\n showHeaderRow: z.boolean(),\n showHeaderColumn: z.boolean(),\n columns: z.array(PageBlockTableColumn),\n});\n\nexport const PageBlockTextSpanAttributeType = z.enum([\"Bold\", \"Italic\", \"Link\", \"Strikethrough\", \"Code\"]);\n\nexport const PageBlockTextSpanAttribute = z.object({\n type: PageBlockTextSpanAttributeType,\n link: nullishToOptional(z.string()),\n documentationItemId: nullishToOptional(z.string()),\n openInNewWindow: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockTextSpan = z.object({\n text: z.string(),\n attributes: z.array(PageBlockTextSpanAttribute),\n});\n\nexport const PageBlockText = z.object({\n spans: z.array(PageBlockTextSpan),\n});\n\nexport type PageBlockCalloutType = z.infer<typeof PageBlockCalloutType>;\nexport type PageBlockCodeLanguage = z.infer<typeof PageBlockCodeLanguage>;\nexport type PageBlockAlignment = z.infer<typeof PageBlockAlignment>;\nexport type PageBlockThemeType = z.infer<typeof PageBlockThemeType>;\nexport type PageBlockAssetType = z.infer<typeof PageBlockAssetType>;\nexport type PageBlockTilesAlignment = z.infer<typeof PageBlockTilesAlignment>;\nexport type PageBlockTilesLayout = z.infer<typeof PageBlockTilesLayout>;\nexport type PageBlockTextSpanAttributeType = z.infer<typeof PageBlockTextSpanAttributeType>;\n\nexport type PageBlockTypeV1 = z.infer<typeof PageBlockTypeV1>;\nexport type PageBlockTextSpanAttribute = z.infer<typeof PageBlockTextSpanAttribute>;\nexport type PageBlockTextSpan = z.infer<typeof PageBlockTextSpan>;\nexport type PageBlockText = z.infer<typeof PageBlockText>;\nexport type PageBlockFrame = z.infer<typeof PageBlockFrame>;\nexport type PageBlockFrameOrigin = z.infer<typeof PageBlockFrameOrigin>;\n\n//\n// Block\n//\n\nconst PageBlockBaseV1 = z.object({\n persistentId: z.string(),\n type: PageBlockTypeV1,\n\n // Element linking\n designObjectId: nullishToOptional(z.string()),\n designObjectIds: nullishToOptional(z.array(z.string())),\n tokenType: nullishToOptional(DesignTokenType.or(z.literal(\"Font\"))),\n showNestedGroups: nullishToOptional(z.boolean()),\n brandId: nullishToOptional(z.string()),\n\n // Rich text\n text: nullishToOptional(PageBlockText),\n caption: nullishToOptional(z.string()),\n headingType: nullishToOptional(z.number().min(1).max(3)),\n codeLanguage: nullishToOptional(PageBlockCodeLanguage),\n calloutType: nullishToOptional(PageBlockCalloutType),\n urlInput: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n\n // Image\n asset: nullishToOptional(PageBlockAsset),\n alignment: nullishToOptional(PageBlockAlignment),\n\n // Shortcuts block\n shortcuts: nullishToOptional(z.array(PageBlockShortcut)),\n\n // Custom blocks\n customBlockKey: nullishToOptional(z.string()),\n customBlockProperties: nullishToOptional(z.array(PageBlockCustomBlockPropertyValue)),\n variantKey: nullishToOptional(z.string()),\n\n // Figma frames\n figmaFrameProperties: nullishToOptional(PageBlockFigmaFrameProperties),\n figmaFrames: nullishToOptional(z.array(PageBlockFrame)),\n\n // Generic\n size: nullishToOptional(Size),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n\n // Render code\n renderCodeProperties: nullishToOptional(PageBlockRenderCodeProperties),\n\n // Component assets\n componentAssets: nullishToOptional(z.array(PageBlockAssetComponent)),\n\n // Tables\n tableProperties: nullishToOptional(PageBlockTableProperties),\n columnId: nullishToOptional(z.string()),\n\n // Token spreadsheet\n theme: nullishToOptional(PageBlockTheme),\n blacklistedElementProperties: nullishToOptional(z.array(z.string())),\n\n // Arbitrary\n userMetadata: nullishToOptional(z.string()),\n});\n\ntype PageBlockV1Input = z.input<typeof PageBlockBaseV1> & {\n children: PageBlockV1Input[] | null | undefined;\n};\n\nexport const PageBlockV1: z.ZodType<PageBlockV1, z.ZodTypeDef, PageBlockV1Input> = PageBlockBaseV1.extend({\n children: z.lazy(\n () =>\n PageBlockV1.array()\n .nullish()\n .transform(t => t ?? []) as z.ZodType<PageBlockV1[], z.ZodTypeDef, PageBlockV1Input[]>\n ),\n});\n\nexport type PageBlockV1 = z.infer<typeof PageBlockBaseV1> & {\n children: PageBlockV1[];\n};\n\n//\n// Utility methods\n//\n\nexport function traversePageBlocksV1(blocks: PageBlockV1[], action: (block: PageBlockV1) => void) {\n for (const block of blocks) {\n action(block);\n traversePageBlocksV1(block.children, action);\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { ObjectMeta } from \"../../common\";\n\nexport type CreateDesignElement = DbCreateInputOmit<DesignElement>;\nexport type UpdateDesignElement = OmitStrict<\n DbUpdate<DesignElement>,\n \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"shortPersistentId\" | \"type\"\n>;\n\n//\n// Token types\n//\n\nexport const DesignTokenType = z.enum([\n \"Color\",\n \"Border\",\n \"Gradient\",\n \"Shadow\",\n \"Dimension\",\n \"Duration\",\n \"Size\",\n \"Space\",\n \"Opacity\",\n \"FontSize\",\n \"LineHeight\",\n \"LetterSpacing\",\n \"ParagraphSpacing\",\n \"BorderWidth\",\n \"BorderRadius\",\n \"Duration\",\n \"ZIndex\",\n \"Image\",\n \"String\",\n \"ProductCopy\",\n \"FontFamily\",\n \"FontWeight\",\n \"TextDecoration\",\n \"TextCase\",\n \"Visibility\",\n \"Typography\",\n \"Blur\",\n \"Font\",\n]);\n\nexport const tokenElementTypes: ReadonlyArray<DesignTokenType> = [...DesignTokenType.options.filter(v => v !== \"Font\")];\n\nexport type DesignTokenType = z.infer<typeof DesignTokenType>;\n\n//\n// Non-token types\n//\n\nexport const DesignElementType = DesignTokenType.or(\n z.enum([\n \"Component\",\n \"Theme\",\n \"Documentation\",\n \"DocumentationPage\",\n \"DesignSystemComponent\",\n \"ElementGroup\",\n \"FigmaNodeStructure\",\n \"FigmaNodeReference\",\n \"PageBlock\",\n ])\n);\n\nexport type DesignElementType = z.infer<typeof DesignElementType>;\n\nexport function isTokenType(type: DesignElementType): type is DesignTokenType {\n return DesignTokenType.safeParse(type).success;\n}\n\n//\n// Element category\n//\n\nexport const DesignElementCategory = z.enum([\n \"Token\",\n \"Component\",\n \"DesignSystemComponent\",\n \"DocumentationPage\",\n \"Theme\",\n \"PageBlock\",\n]);\n\nexport type DesignElementCategory = z.infer<typeof DesignElementCategory>;\n\n// Elements\n\nexport const DesignSystemElementExportProps = z.object({\n isAsset: z\n .boolean()\n .nullish()\n .transform(v => v ?? false),\n\n codeName: z.string().nullish(),\n});\n\nexport type DesignSystemElementExportProps = z.infer<typeof DesignSystemElementExportProps>;\n\nexport const ShallowDesignElement = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n type: DesignElementType,\n brandPersistentId: z.string().optional(),\n parentPersistentId: z.string().optional(),\n shortPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElement = ShallowDesignElement.extend({\n meta: ObjectMeta,\n childType: DesignElementType.optional(),\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n exportProperties: DesignSystemElementExportProps.optional(),\n data: z.any(), // TODO this should be an object, not any.\n origin: z.any().optional(), // TODO object, not any.\n});\n\nexport type ShallowDesignElement = z.infer<typeof ShallowDesignElement>;\nexport type DesignElement = z.infer<typeof DesignElement>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\n\nexport const ElementPropertyType = z.enum([\"Text\", \"Number\", \"Boolean\", \"Select\", \"Generic\", \"Link\", \"URL\"]);\nexport const ElementPropertyTargetType = z.enum([\"Token\", \"Component\", \"DocumentationPage\"]);\nexport const ElementPropertyLinkType = z.enum([\"FigmaComponent\", \"DocumentationPage\"]);\n\nexport const ColorTokenInlineData = z.object({\n value: z.string(),\n});\n\nexport const ElementPropertyDefinitionOption = z.object({\n id: z.string(),\n name: z.string(),\n backgroundColor: ColorTokenInlineData.optional(),\n});\n\nexport const ElementPropertyDefinition = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n name: z.string(),\n codeName: z.string(),\n description: z.string(),\n type: ElementPropertyType,\n targetElementType: ElementPropertyTargetType,\n options: z.array(ElementPropertyDefinitionOption).nullish(),\n linkElementType: ElementPropertyLinkType.nullish(),\n});\n\nexport type ElementPropertyType = z.infer<typeof ElementPropertyType>;\nexport type ElementPropertyTargetType = z.infer<typeof ElementPropertyTargetType>;\nexport type ElementPropertyLinkType = z.infer<typeof ElementPropertyLinkType>;\nexport type ColorTokenInlineData = z.infer<typeof ColorTokenInlineData>;\nexport type ElementPropertyDefinitionOption = z.infer<typeof ElementPropertyDefinitionOption>;\nexport type ElementPropertyDefinition = z.infer<typeof ElementPropertyDefinition>;\n\nexport type CreateElementPropertyDefinition = DbCreateInputOmit<ElementPropertyDefinition>;\nexport type UpdateElementPropertyDefinition = DbUpdate<ElementPropertyDefinition>;\n\nexport type ElementPropertyDefinitionDiff = {\n toCreate: CreateElementPropertyDefinition[];\n toUpdate: UpdateElementPropertyDefinition[];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const ElementPropertyValue = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n targetElementPersistentId: z.string(),\n definitionPersistentId: z.string(),\n stringValue: z.string().nullish(),\n numberValue: z.number().nullish(),\n booleanValue: z.boolean().nullish(),\n referenceValue: z.string().nullish(),\n referenceValuePreview: z.string().nullish(),\n});\n\nexport type ElementPropertyValue = z.infer<typeof ElementPropertyValue>;\n\nexport type CreateElementPropertyValue = DbCreateInputOmit<ElementPropertyValue>;\nexport type UpdateElementPropertyValue = OmitStrict<\n DbUpdate<ElementPropertyValue>,\n \"designSystemVersionId\" | \"definitionPersistentId\" | \"targetElementPersistentId\"\n>;\n\nexport type ElementPropertyValueDiff = {\n toCreate: CreateElementPropertyValue[];\n toUpdate: UpdateElementPropertyValue[];\n};\n","import { z } from \"zod\";\n\nexport const Point2D = z.object({\n x: z.number(),\n y: z.number(),\n});\n\nexport type Point2D = z.infer<typeof Point2D>;\n","import { z } from \"zod\";\n\nconst nullSize = { height: -1, width: -1 };\n\nfunction isNullSize(size: Size): boolean {\n return size.height === nullSize.height && size.width === nullSize.width;\n}\n\nexport const Size = z.object({\n width: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.width),\n\n height: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.height),\n});\n\nexport const SizeOrUndefined = Size.optional().transform(v => {\n if (!v) return undefined;\n if (isNullSize(v)) return undefined;\n\n return v;\n});\n\nexport type Size = z.infer<typeof Size>;\n","export type DbCreateInputOmit<T> = Omit<T, \"id\" | \"createdAt\" | \"updatedAt\">;\n\nexport type DbUpdateInputOmit<T> = Omit<T, \"createdAt\" | \"updatedAt\" | \"persistentId\">;\n\nexport type DbUpdate<T extends { id: string }> = Partial<OptionalToNullable<DbUpdateInputOmit<Omit<T, \"id\">>>> &\n Pick<T, \"id\">;\n\ntype PickOptional<T> = {\n [P in keyof T as undefined extends T[P] ? P : never]: T[P];\n};\n\ntype PickNotOptional<T> = {\n [P in keyof T as undefined extends T[P] ? never : P]: T[P];\n};\n\nexport type OptionalToNullable<T> = {\n [K in keyof PickOptional<T>]-?: Exclude<T[K], undefined> | null;\n} & {\n [K in keyof PickNotOptional<T>]: T[K];\n};\n\nexport function zodCreateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n } as const;\n}\n\nexport function zodUpdateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n persistentId: true,\n } as const;\n}\n","import { ZodType, z } from \"zod\";\n\n/**\n * Allows both null and undefined as input values in addition to the actual value,\n * but coerces them both to undefined.\n */\nexport function nullishToOptional<T>(type: ZodType<T>) {\n return type.nullish().transform(t => t ?? undefined);\n}\n","import { z } from \"zod\";\nimport { ColorValue } from \"./color\";\nimport { PageBlockCalloutType, PageBlockText } from \"./documentation-block-v1\";\nimport { Size } from \"../primitives\";\n\n//\n// Enums\n//\n\nexport const PageBlockLinkType = z.enum([\"DocumentationItem\", \"PageHeading\", \"Url\"]);\nexport const PageBlockImageType = z.enum([\"Upload\", \"Asset\", \"FigmaFrame\"]);\nexport const PageBlockImageAlignment = z.enum([\"Left\", \"Center\", \"Stretch\"]);\n\nexport type PageBlockLinkType = z.infer<typeof PageBlockLinkType>;\nexport type PageBlockImageType = z.infer<typeof PageBlockImageType>;\nexport type PageBlockImageAlignment = z.infer<typeof PageBlockImageAlignment>;\n\n//\n// Definitions\n//\n\nexport const PageBlockAppearanceV2 = z.object({\n itemBackgroundColor: ColorValue,\n});\n\nexport const PageBlockItemUntypedPropertyValue = z\n .object({\n value: z.any(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockItemRichTextPropertyValue = z.object({\n value: PageBlockText,\n calloutType: PageBlockCalloutType.optional(),\n});\n\nexport const PageBlockItemEmbedPropertyValue = z.object({\n value: z.string().optional(),\n caption: z.string().optional(),\n height: z.number().optional(),\n});\n\nexport const PageBlockItemMultiRichTextPropertyValue = z.object({\n value: PageBlockText.array(),\n});\n\nexport const PageBlockItemTextPropertyValue = z.object({\n value: z.string(),\n calloutType: PageBlockCalloutType.optional(),\n});\n\nexport const PageBlockItemImageReference = z.object({\n type: PageBlockImageType,\n url: z.string(),\n assetId: z.string().optional(),\n size: Size.optional(),\n figmaFile: z\n .object({\n sourceId: z.string(),\n frameId: z.string(),\n })\n .optional(),\n});\n\nexport const PageBlockItemImageValue = z.object({\n alt: z.string().optional(),\n caption: z.string().optional(),\n alignment: PageBlockImageAlignment.optional(),\n value: PageBlockItemImageReference.optional(),\n});\n\nexport const PageBlockLinkV2 = z.object({\n type: PageBlockLinkType,\n documentationItemId: z.string().optional(),\n pageHeadingId: z.string().optional(),\n url: z.string().optional(),\n openInNewTab: z.boolean().optional(),\n});\n\nexport const PageBlockItemV2 = z.object({\n id: z.string(),\n linksTo: PageBlockLinkV2.optional(),\n props: z.record(PageBlockItemUntypedPropertyValue),\n});\n\nexport const PageBlockDataV2 = z.object({\n packageId: z.string(),\n variantId: z.string().optional(),\n indentLevel: z.number(),\n appearance: PageBlockAppearanceV2.optional(),\n items: z.array(PageBlockItemV2),\n});\n\nexport type PageBlockAppearanceV2 = z.infer<typeof PageBlockAppearanceV2>;\nexport type PageBlockItemUntypedPropertyValue = z.infer<typeof PageBlockItemUntypedPropertyValue>;\nexport type PageBlockItemRichTextPropertyValue = z.infer<typeof PageBlockItemRichTextPropertyValue>;\nexport type PageBlockItemMultiRichTextPropertyValue = z.infer<typeof PageBlockItemMultiRichTextPropertyValue>;\nexport type PageBlockItemTextPropertyValue = z.infer<typeof PageBlockItemTextPropertyValue>;\nexport type PageBlockItemEmbedPropertyValue = z.infer<typeof PageBlockItemEmbedPropertyValue>;\nexport type PageBlockItemImageValue = z.infer<typeof PageBlockItemImageValue>;\nexport type PageBlockItemImageReference = z.infer<typeof PageBlockItemImageReference>;\n\nexport type PageBlockLinkV2 = z.infer<typeof PageBlockLinkV2>;\nexport type PageBlockItemV2 = z.infer<typeof PageBlockItemV2>;\nexport type PageBlockDataV2 = z.infer<typeof PageBlockDataV2>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { PageBlockV1 } from \"./documentation-block-v1\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV1 = z.object({\n blocks: z.array(PageBlockV1),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV1 = z.object({\n value: DocumentationPageDataV1,\n});\n","import { z } from \"zod\";\n\nexport const DocumentationItemConfiguration = z.object({\n showSidebar: z.boolean(),\n header: z.any(),\n});\n\nexport type DocumentationItemConfiguration = z.infer<typeof DocumentationItemConfiguration>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV2 = z.object({\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV2 = z.object({\n value: DocumentationPageDataV2,\n});\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DurationUnit = z.enum([\"Ms\"]);\n\nexport const DurationValue = z.object({\n unit: DurationUnit,\n measure: z.number(),\n});\n\nexport const DurationTokenData = tokenAliasOrValue(DurationValue);\n\nexport type DurationUnit = z.infer<typeof DurationUnit>;\nexport type DurationValue = z.infer<typeof DurationValue>;\nexport type DurationTokenData = z.infer<typeof DurationTokenData>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { Size, SizeOrUndefined } from \"../primitives/size\";\n\nexport const FigmaFileStructureNodeType = z.enum([\"DOCUMENT\", \"CANVAS\", \"FRAME\", \"COMPONENT\", \"COMPONENT_SET\"]);\n\nexport const FigmaFileStructureNodeBase = z.object({\n id: z.string(),\n name: z.string(),\n type: FigmaFileStructureNodeType,\n size: SizeOrUndefined,\n parentComponentSetId: z.string().optional(),\n});\n\nexport const FigmaFileStructureNode: z.ZodType<FigmaFileStructureNode, ZodTypeDef, FigmaFileStructureNodeBaseInput> =\n FigmaFileStructureNodeBase.extend({\n children: z.lazy(() => FigmaFileStructureNode.array()),\n });\n\ntype FigmaFileStructureNodeBaseInput = z.input<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNodeBaseInput[];\n};\n\nexport const FigmaFileStructureStatistics = z.object({\n frames: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n components: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n componentSets: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n});\n\nexport const FigmaFileStructureElementData = z.object({\n value: z.object({\n structure: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport type FigmaFileStructureNodeBase = z.infer<typeof FigmaFileStructureNodeBase>;\nexport type FigmaFileStructureNodeType = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureNode = z.infer<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNode[];\n};\nexport type FigmaFileStructureStatistics = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureElementData = z.infer<typeof FigmaFileStructureElementData>;\n\nexport function figmaFileStructureToMap(root: FigmaFileStructureNode): Map<string, FigmaFileStructureNode> {\n const map = new Map<string, FigmaFileStructureNode>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(node: FigmaFileStructureNode, map: Map<string, FigmaFileStructureNode>) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const FigmaNodeReferenceData = z.object({\n structureElementId: z.string(),\n nodeId: z.string(),\n fileId: z.string().optional(),\n valid: z.boolean(),\n assetId: z.string().optional(),\n assetScale: z.number().optional(),\n assetWidth: z.number().optional(),\n assetHeight: z.number().optional(),\n assetUrl: z.string().optional(),\n});\n\nexport const FigmaNodeReferenceElementData = z.object({\n value: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReferenceData = z.infer<typeof FigmaNodeReferenceData>;\nexport type FigmaNodeReferenceElementData = z.infer<typeof FigmaNodeReferenceElementData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontFamilyValue = z.string();\nexport const FontFamilyTokenData = tokenAliasOrValue(FontFamilyValue);\n\nexport type FontFamilyValue = z.infer<typeof FontFamilyValue>;\nexport type FontFamilyTokenData = z.infer<typeof FontFamilyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontSizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const FontSizeValue = z.object({\n unit: FontSizeUnit,\n measure: z.number(),\n});\n\nexport const FontSizeTokenData = tokenAliasOrValue(FontSizeValue);\n\nexport type FontSizeUnit = z.infer<typeof FontSizeUnit>;\nexport type FontSizeValue = z.infer<typeof FontSizeValue>;\nexport type FontSizeTokenData = z.infer<typeof FontSizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontWeightValue = z.string();\nexport const FontWeightTokenData = tokenAliasOrValue(FontWeightValue);\n\nexport type FontWeightValue = z.infer<typeof FontWeightValue>;\nexport type FontWeightTokenData = z.infer<typeof FontWeightTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { Point2D } from \"../primitives\";\n\nexport const GradientType = z.enum([\"Linear\", \"Radial\", \"Angular\"]);\n\nexport const GradientStop = z.object({\n position: z.number(),\n color: ColorTokenData,\n});\n\nexport const GradientLayerValue = z.object({\n from: Point2D,\n to: Point2D,\n type: GradientType,\n aspectRatio: nullishToOptional(z.number()), // z.number(),\n stops: z.array(GradientStop).min(2),\n});\n\nexport const GradientLayerData = tokenAliasOrValue(GradientLayerValue);\n\nexport const GradientTokenValue = z.array(GradientLayerData);\nexport const GradientTokenData = tokenAliasOrValue(GradientTokenValue);\n\nexport type GradientType = z.infer<typeof GradientType>;\nexport type GradientStop = z.infer<typeof GradientStop>;\nexport type GradientLayerValue = z.infer<typeof GradientLayerValue>;\nexport type GradientLayerData = z.infer<typeof GradientLayerData>;\nexport type GradientTokenValue = z.infer<typeof GradientTokenValue>;\nexport type GradientTokenData = z.infer<typeof GradientTokenData>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\n\nexport const DocumentationGroupBehavior = z.enum([\"Group\", \"Tabs\"]);\n\nexport const ElementGroupData = z.object({\n behavior: nullishToOptional(DocumentationGroupBehavior.optional()),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const ElementGroupElementData = z.object({\n value: ElementGroupData.optional(),\n});\n\nexport type DocumentationGroupBehavior = z.infer<typeof DocumentationGroupBehavior>;\nexport type ElementGroupData = z.infer<typeof ElementGroupData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LetterSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const LetterSpacingValue = z.object({\n unit: LetterSpacingUnit,\n measure: z.number(),\n});\n\nexport const LetterSpacingTokenData = tokenAliasOrValue(LetterSpacingValue);\n\nexport type LetterSpacingUnit = z.infer<typeof LetterSpacingUnit>;\nexport type LetterSpacingValue = z.infer<typeof LetterSpacingValue>;\nexport type LetterSpacingTokenData = z.infer<typeof LetterSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LineHeightUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\", \"Raw\"]);\n\nexport const LineHeightValue = z.object({\n unit: LineHeightUnit,\n measure: z.number(),\n});\n\nexport const LineHeightTokenData = tokenAliasOrValue(LineHeightValue);\n\nexport type LineHeightUnit = z.infer<typeof LineHeightUnit>;\nexport type LineHeightValue = z.infer<typeof LineHeightValue>;\nexport type LineHeightTokenData = z.infer<typeof LineHeightTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphIndentUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphIndentValue = z.object({\n unit: ParagraphIndentUnit,\n measure: z.number(),\n});\n\nexport const ParagraphIndentTokenData = tokenAliasOrValue(ParagraphIndentValue);\n\nexport type ParagraphIndentUnit = z.infer<typeof ParagraphIndentUnit>;\nexport type ParagraphIndentValue = z.infer<typeof ParagraphIndentValue>;\nexport type ParagraphIndentTokenData = z.infer<typeof ParagraphIndentTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphSpacingValue = z.object({\n unit: ParagraphSpacingUnit,\n measure: z.number(),\n});\n\nexport const ParagraphSpacingTokenData = tokenAliasOrValue(ParagraphSpacingValue);\n\nexport type ParagraphSpacingUnit = z.infer<typeof ParagraphSpacingUnit>;\nexport type ParagraphSpacingValue = z.infer<typeof ParagraphSpacingValue>;\nexport type ParagraphSpacingTokenData = z.infer<typeof ParagraphSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ProductCopyValue = z.string();\nexport const ProductCopyTokenData = tokenAliasOrValue(ProductCopyValue);\n\nexport type ProductCopyValue = z.infer<typeof ProductCopyValue>;\nexport type ProductCopyTokenData = z.infer<typeof ProductCopyTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { OpacityTokenData } from \"./opacity\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ShadowType = z.enum([\"Drop\", \"Inner\"]);\n\nexport const ShadowLayerValue = z.object({\n color: ColorTokenData,\n x: z.number(),\n y: z.number(),\n radius: z.number(),\n spread: z.number(),\n opacity: OpacityTokenData,\n type: ShadowType,\n});\n\nconst ShadowTokenDataBase = tokenAliasOrValue(ShadowLayerValue);\nexport const ShadowTokenData = tokenAliasOrValue(z.array(ShadowTokenDataBase));\n\nexport type ShadowType = z.infer<typeof ShadowType>;\nexport type ShadowLayerValue = z.infer<typeof ShadowLayerValue>;\nexport type ShadowTokenData = z.infer<typeof ShadowTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SizeValue = z.object({\n unit: SizeUnit,\n measure: z.number(),\n});\n\nexport const SizeTokenData = tokenAliasOrValue(SizeValue);\n\nexport type SizeUnit = z.infer<typeof SizeUnit>;\nexport type SizeValue = z.infer<typeof SizeValue>;\nexport type SizeTokenData = z.infer<typeof SizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SpaceUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SpaceValue = z.object({\n unit: SpaceUnit,\n measure: z.number(),\n});\n\nexport const SpaceTokenData = tokenAliasOrValue(SpaceValue);\n\nexport type SpaceUnit = z.infer<typeof SpaceUnit>;\nexport type SpaceValue = z.infer<typeof SpaceValue>;\nexport type SpaceTokenData = z.infer<typeof SpaceTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const StringValue = z.string();\nexport const StringTokenData = tokenAliasOrValue(StringValue);\n\nexport type StringValue = z.infer<typeof StringValue>;\nexport type StringTokenData = z.infer<typeof StringTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextCase = z.enum([\"Original\", \"Upper\", \"Lower\", \"Camel\", \"SmallCaps\"]);\nexport const TextCaseValue = TextCase;\nexport const TextCaseTokenData = tokenAliasOrValue(TextCaseValue);\n\nexport type TextCase = z.infer<typeof TextCase>;\nexport type TextCaseValue = z.infer<typeof TextCaseValue>;\nexport type TextCaseTokenData = z.infer<typeof TextCaseTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextDecoration = z.enum([\"None\", \"Underline\", \"Strikethrough\"]);\nexport const TextDecorationValue = TextDecoration;\nexport const TextDecorationTokenData = tokenAliasOrValue(TextDecorationValue);\n\nexport type TextDecoration = z.infer<typeof TextDecoration>;\nexport type TextDecorationValue = z.infer<typeof TextDecorationValue>;\nexport type TextDecorationTokenData = z.infer<typeof TextDecorationTokenData>;\n","import { z } from \"zod\";\nimport { FontSizeTokenData } from \"./font-size\";\nimport { FontFamilyTokenData } from \"./font-family\";\nimport { FontWeightTokenData } from \"./font-weight\";\nimport { TextDecorationTokenData } from \"./text-decoration\";\nimport { TextCaseTokenData } from \"./text-case\";\nimport { LetterSpacingTokenData } from \"./letter-spacing\";\nimport { LineHeightTokenData } from \"./line-height\";\nimport { ParagraphIndentTokenData } from \"./paragraph-indent\";\nimport { ParagraphSpacingTokenData } from \"./paragraph-spacing\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TypographyValue = z.object({\n fontSize: FontSizeTokenData,\n fontFamily: FontFamilyTokenData,\n fontWeight: FontWeightTokenData,\n textDecoration: TextDecorationTokenData,\n textCase: TextCaseTokenData,\n letterSpacing: LetterSpacingTokenData.optional(),\n lineHeight: LineHeightTokenData.optional(),\n paragraphIndent: ParagraphIndentTokenData.optional(),\n paragraphSpacing: ParagraphSpacingTokenData.optional(),\n});\n\nexport const TypographyTokenData = tokenAliasOrValue(TypographyValue);\n\nexport type TypographyValue = z.infer<typeof TypographyValue>;\nexport type TypographyTokenData = z.infer<typeof TypographyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const Visibility = z.enum([\"Hidden\", \"Visible\"]);\nexport const VisibilityValue = Visibility;\nexport const VisibilityTokenData = tokenAliasOrValue(VisibilityValue);\n\nexport type Visibility = z.infer<typeof Visibility>;\nexport type VisibilityValue = z.infer<typeof VisibilityValue>;\nexport type VisibilityTokenData = z.infer<typeof VisibilityTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ZIndexUnit = z.enum([\"Raw\"]);\n\nexport const ZIndexValue = z.object({\n unit: ZIndexUnit,\n measure: z.number(),\n});\n\nexport const ZIndexTokenData = tokenAliasOrValue(ZIndexValue);\n\nexport type ZIndexUnit = z.infer<typeof ZIndexUnit>;\nexport type ZIndexValue = z.infer<typeof ZIndexValue>;\nexport type ZIndexTokenData = z.infer<typeof ZIndexTokenData>;\n","import { z } from \"zod\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const DesignElementOrigin = z.object({\n id: z.string(),\n sourceId: z.string(),\n name: z.string(),\n});\n\nexport const DesignElementBase = z.object({\n id: z.string(),\n persistentId: z.string(),\n meta: ObjectMeta,\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignElementImportedBase = DesignElementBase.extend({\n origin: DesignElementOrigin,\n});\n\nexport const DesignElementGroupablePart = z.object({\n parentPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElementGroupableBase = DesignElementBase.extend(DesignElementGroupablePart.shape);\n\nexport const DesignElementGroupableRequiredPart = DesignElementGroupablePart.extend({\n parentPersistentId: z.string(),\n});\n\nexport const DesignElementBrandedPart = z.object({\n brandPersistentId: z.string(),\n});\n\nexport const DesignElementSlugPart = z.object({\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n});\n\nexport type DesignElementOrigin = z.infer<typeof DesignElementOrigin>;\nexport type DesignElementBase = z.infer<typeof DesignElementBase>;\nexport type DesignElementGroupablePart = z.infer<typeof DesignElementGroupablePart>;\nexport type DesignElementGroupableBase = z.infer<typeof DesignElementGroupableBase>;\nexport type DesignElementGroupableRequiredPart = z.infer<typeof DesignElementGroupableRequiredPart>;\nexport type DesignElementBrandedPart = z.infer<typeof DesignElementBrandedPart>;\nexport type DesignElementSlugPart = z.infer<typeof DesignElementSlugPart>;\n","import { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\n\nexport const ComponentOriginPart = z.object({\n nodeId: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n});\n\nconst ComponentAsset = z.object({\n assetId: z.string(),\n assetPath: z.string(),\n});\n\nexport const ComponentOrigin = DesignElementOrigin.extend(ComponentOriginPart.shape);\n\nexport const Component = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: ComponentOrigin.optional(),\n thumbnail: ComponentAsset,\n svg: ComponentAsset.optional(),\n isAsset: z.boolean(),\n });\n\nexport type ComponentAsset = z.infer<typeof ComponentAsset>;\nexport type Component = z.infer<typeof Component>;\nexport type ComponentOrigin = z.infer<typeof ComponentOrigin>;\nexport type ImportedComponent = OmitStrict<Component, \"origin\"> & { origin: ComponentOrigin };\n\nexport function isImportedComponent(component: Component): component is ImportedComponent {\n return !!component.origin;\n}\n\nexport type CreateComponent = DbCreateInputOmit<Component>;\nexport type UpdateComponent = OmitStrict<DbUpdate<Component>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ComponentDiff = {\n toCreate: CreateComponent[];\n toUpdate: UpdateComponent[];\n toDelete: Component[\"id\"][];\n};\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DocumentationPageDataV1 } from \"./data\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const DocumentationPageV1 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV1,\n });\n\nexport type DocumentationPageV1 = z.infer<typeof DocumentationPageV1>;\n\nexport type CreateDocumentationPageV1 = DbCreateInputOmit<DocumentationPageV1>;\nexport type UpdateDocumentationPageV1 = OmitStrict<DbUpdate<DocumentationPageV1>, \"designSystemVersionId\">;\n\nexport const DocumentationPageDTOV1 = DocumentationPageV1.omit({\n data: true,\n meta: true,\n parentPersistentId: true,\n sortOrder: true,\n})\n .extend(DocumentationPageV1.shape.data.shape)\n .extend({\n title: z.string(),\n path: z.string(),\n });\n\nexport type DocumentationPageDTOV1 = z.infer<typeof DocumentationPageDTOV1>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DocumentationPageDataV2 } from \"./data/documentation-page-v2\";\n\nexport const DocumentationPageV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV2,\n });\n\nexport type DocumentationPageV2 = z.infer<typeof DocumentationPageV2>;\n\nexport type CreateDocumentationPageV2 = DbCreateInputOmit<DocumentationPageV2>;\nexport type UpdateDocumentationPageV2 = OmitStrict<DbUpdate<DocumentationPageV2>, \"designSystemVersionId\">;\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaFileStructureNode, FigmaFileStructureStatistics } from \"./data/figma-file-structure\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaFileStructureOrigin = z.object({\n sourceId: z.string(),\n fileId: z.string().optional(),\n});\n\nexport const FigmaFileStructureData = z.object({\n rootNode: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n});\n\nexport const FigmaFileStructure = DesignElementBase.extend({\n origin: FigmaFileStructureOrigin,\n data: FigmaFileStructureData,\n});\n\nexport type FigmaFileStructureOrigin = z.infer<typeof FigmaFileStructureOrigin>;\nexport type FigmaFileStructureData = z.infer<typeof FigmaFileStructureData>;\nexport type FigmaFileStructure = z.infer<typeof FigmaFileStructure>;\n\nexport type CreateFigmaFileStructure = DbCreateInputOmit<FigmaFileStructure>;\nexport type UpdateFigmaFileStructure = OmitStrict<DbUpdate<FigmaFileStructure>, \"designSystemVersionId\">;\n\nexport type FigmaFileStructureDiff = {\n toCreate: CreateFigmaFileStructure[];\n toUpdate: UpdateFigmaFileStructure[];\n};\n\nexport function traverseStructure(node: FigmaFileStructureNode, action: (node: FigmaFileStructureNode) => void) {\n action(node);\n\n for (const child of node.children) {\n traverseStructure(child, action);\n }\n}\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaNodeReferenceData } from \"./data/figma-node-reference\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaNodeReference = DesignElementBase.extend({\n data: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReference = z.infer<typeof FigmaNodeReference>;\n\nexport type CreateFigmaNodeReference = DbCreateInputOmit<FigmaNodeReference>;\nexport type UpdateFigmaNodeReference = OmitStrict<DbUpdate<FigmaNodeReference>, \"designSystemVersionId\">;\n\nexport type FigmaNodeReferenceDiff = {\n toUpdate: UpdateFigmaNodeReference[];\n};\n","import { DesignElementType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart, DesignElementGroupablePart, DesignElementSlugPart } from \"./base\";\nimport { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../helpers\";\nimport { DocumentationGroupBehavior, ElementGroupData } from \"./data\";\nimport { DocumentationItemConfiguration } from \"./data\";\nexport const ElementGroup = DesignElementBase.extend(DesignElementGroupablePart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend(DesignElementBrandedPart.partial().shape)\n .extend({\n shortPersistentId: z.string().optional(),\n childType: DesignElementType,\n data: ElementGroupData.optional(),\n });\n\nexport const BrandedElementGroup = ElementGroup.extend(DesignElementBrandedPart.shape);\n\nexport type ElementGroup = z.infer<typeof ElementGroup>;\nexport type BrandedElementGroup = z.infer<typeof BrandedElementGroup>;\n\nexport type CreateElementGroup = OmitStrict<DbCreateInputOmit<ElementGroup>, \"parentPersistentId\"> & {\n parentPersistentId: string;\n};\n\nexport type UpdateElementGroup = DbUpdate<\n OmitStrict<ElementGroup, \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"parentPersistentId\"> & {\n parentPersistentId: string;\n }\n>;\n\nexport type ElementGroupsDiff = {\n toCreate: CreateElementGroup[];\n toUpdate: UpdateElementGroup[];\n toDelete: ElementGroup[\"id\"][];\n};\n\n//\n// DTO\n//\n\nexport const DocumentationGroupDTO = ElementGroup.omit({\n sortOrder: true,\n parentPersistentId: true,\n brandPersistentId: true,\n meta: true,\n childType: true,\n data: true,\n shortPersistentId: true,\n}).extend({\n title: z.string(),\n isRoot: z.boolean(),\n childrenIds: z.array(z.string()),\n groupBehavior: DocumentationGroupBehavior,\n configuration: DocumentationItemConfiguration,\n shortPersistentId: z.string(),\n});\n\nexport type DocumentationGroupDTO = z.infer<typeof DocumentationGroupDTO>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart } from \"./base\";\nimport { PageBlockDataV2 } from \"./data\";\n\n//\n// Element\n//\n\nexport const PageBlockV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape).extend({\n data: PageBlockDataV2,\n});\n\nexport type PageBlockV2 = z.infer<typeof PageBlockV2>;\n\n//\n// Editor Model\n//\n\nexport const PageBlockEditorModelV2 = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModelV2 = z.infer<typeof PageBlockEditorModelV2>;\n","import { z } from \"zod\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"./tokens\";\nimport { DesignTokenType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideOriginPart = DesignTokenOriginPart;\nexport const ThemeOverrideOrigin = DesignTokenOrigin;\n\nexport const ThemeOverride = DesignTokenTypedData.and(\n z.object({\n tokenPersistentId: z.string(),\n origin: ThemeOverrideOrigin.optional()\n .nullable()\n .transform(v => v ?? undefined),\n })\n);\n\nexport type ThemeOverride = z.infer<typeof ThemeOverride>;\nexport type ThemeOverrideOfType<T extends DesignTokenType> = Extract<ThemeOverride, { type: T }>;\n\n//\n// Theme data\n//\n\nexport const ThemeElementData = z.object({\n value: z.object({\n overrides: z.array(ThemeOverride),\n }),\n});\n\nexport type ThemeElementData = z.infer<typeof ThemeElementData>;\n\n//\n// Theme\n//\n\nexport const ThemeOriginPart = z.object({});\n\nexport const ThemeOriginObject = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport const ThemeOriginSource = z.object({\n sourceId: z.string(),\n sourceObjects: z.array(ThemeOriginObject),\n});\n\nexport const ThemeOrigin = z.object({\n sources: z.array(ThemeOriginSource),\n});\n\nexport const Theme = DesignElementBase.extend(DesignElementBrandedPart.shape).extend({\n origin: ThemeOrigin.optional(),\n overrides: z.array(ThemeOverride),\n});\n\nexport type Theme = z.infer<typeof Theme>;\nexport type ThemeOrigin = z.infer<typeof ThemeOrigin>;\nexport type ThemeOriginSource = z.infer<typeof ThemeOriginSource>;\nexport type ThemeOriginObject = z.infer<typeof ThemeOriginObject>;\n\nexport type CreateTheme = DbCreateInputOmit<Theme>;\nexport type UpdateTheme = OmitStrict<DbUpdate<Theme>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ThemeDiff = {\n toCreate: CreateTheme[];\n toUpdate: UpdateTheme[];\n};\n","import { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\nimport { DbUpdate, OmitStrict, zodCreateInputOmit, zodUpdateInputOmit } from \"../../helpers\";\nimport { DesignTokenType } from \"./raw-element\";\nimport {\n TextCaseTokenData,\n FontWeightTokenData,\n LetterSpacingTokenData,\n LineHeightTokenData,\n ParagraphSpacingTokenData,\n StringTokenData,\n TextDecorationTokenData,\n BorderRadiusTokenData,\n BorderWidthTokenData,\n BorderTokenData,\n ProductCopyTokenData,\n FontFamilyTokenData,\n FontSizeTokenData,\n DimensionTokenData,\n TypographyTokenData,\n ShadowTokenData,\n OpacityTokenData,\n GradientTokenData,\n ColorTokenData,\n BlurTokenData,\n DurationTokenData,\n ZIndexTokenData,\n VisibilityTokenData,\n SpaceTokenData,\n SizeTokenData,\n} from \"./data\";\n\n//\n// Base\n//\n\nexport const DesignTokenOriginPart = z.object({\n referenceOriginId: z.string().optional(),\n referencePersistentId: z.string().optional(),\n});\n\nexport const DesignTokenOrigin = DesignElementOrigin.extend(DesignTokenOriginPart.shape);\n\nconst DesignTokenBase = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: DesignTokenOrigin.optional(),\n });\n\nconst CreateDesignTokenBase = DesignTokenBase.omit(zodCreateInputOmit());\nconst UpdateDesignTokenBase = DesignTokenBase.omit({\n ...zodUpdateInputOmit(),\n brandPersistentId: true,\n designSystemVersionId: true,\n});\n\n//\n// Per type\n//\n\nconst BlurTokenTypedData = z.object({\n type: z.literal(\"Blur\"),\n data: BlurTokenData,\n});\n\nconst ColorTokenTypedData = z.object({\n type: z.literal(\"Color\"),\n data: ColorTokenData,\n});\n\nconst GradientTokenTypedData = z.object({\n type: z.literal(\"Gradient\"),\n data: GradientTokenData,\n});\n\nconst OpacityTokenTypedData = z.object({\n type: z.literal(\"Opacity\"),\n data: OpacityTokenData,\n});\n\nconst ShadowTokenTypedData = z.object({\n type: z.literal(\"Shadow\"),\n data: ShadowTokenData,\n});\n\nconst TypographyTokenTypedData = z.object({\n type: z.literal(\"Typography\"),\n data: TypographyTokenData,\n});\n\nconst StringTokenTypedData = z.object({\n type: z.literal(\"String\"),\n data: StringTokenData,\n});\n\nconst DimensionTokenTypedData = z.object({\n type: z.literal(\"Dimension\"),\n data: DimensionTokenData,\n});\n\nconst FontSizeTokenTypedData = z.object({\n type: z.literal(\"FontSize\"),\n data: FontSizeTokenData,\n});\n\nconst FontFamilyTokenTypedData = z.object({\n type: z.literal(\"FontFamily\"),\n data: FontFamilyTokenData,\n});\n\nconst FontWeightTokenTypedData = z.object({\n type: z.literal(\"FontWeight\"),\n data: FontWeightTokenData,\n});\n\nconst LetterSpacingTokenTypedData = z.object({\n type: z.literal(\"LetterSpacing\"),\n data: LetterSpacingTokenData,\n});\n\nconst LineHeightTokenTypedData = z.object({\n type: z.literal(\"LineHeight\"),\n data: LineHeightTokenData,\n});\n\nconst ParagraphSpacingTokenTypedData = z.object({\n type: z.literal(\"ParagraphSpacing\"),\n data: ParagraphSpacingTokenData,\n});\n\nconst TextCaseTokenTypedData = z.object({\n type: z.literal(\"TextCase\"),\n data: TextCaseTokenData,\n});\n\nconst TextDecorationTokenTypedData = z.object({\n type: z.literal(\"TextDecoration\"),\n data: TextDecorationTokenData,\n});\n\nconst BorderRadiusTokenTypedData = z.object({\n type: z.literal(\"BorderRadius\"),\n data: BorderRadiusTokenData,\n});\n\nconst BorderWidthTokenTypedData = z.object({\n type: z.literal(\"BorderWidth\"),\n data: BorderWidthTokenData,\n});\n\nconst BorderTypedData = z.object({\n type: z.literal(\"Border\"),\n data: BorderTokenData,\n});\n\nconst ProductCopyTypedData = z.object({\n type: z.literal(\"ProductCopy\"),\n data: ProductCopyTokenData,\n});\n\nconst SizeTypedData = z.object({\n type: z.literal(\"Size\"),\n data: SizeTokenData,\n});\n\nconst SpaceTypedData = z.object({\n type: z.literal(\"Space\"),\n data: SpaceTokenData,\n});\n\nconst VisibilityTypedData = z.object({\n type: z.literal(\"Visibility\"),\n data: VisibilityTokenData,\n});\n\nconst ZIndexTypedData = z.object({\n type: z.literal(\"ZIndex\"),\n data: ZIndexTokenData,\n});\n\nconst DurationTypedData = z.object({\n type: z.literal(\"Duration\"),\n data: DurationTokenData,\n});\n\nconst FontTypedData = z.object({\n type: z.literal(\"Font\"),\n data: z.record(z.any()),\n});\n\n//\n// Global types\n//\n\nexport const DesignTokenTypedData = z.discriminatedUnion(\"type\", [\n BlurTokenTypedData,\n BorderRadiusTokenTypedData,\n BorderWidthTokenTypedData,\n BorderTypedData,\n ColorTokenTypedData,\n\n DimensionTokenTypedData,\n DurationTypedData,\n FontSizeTokenTypedData,\n FontFamilyTokenTypedData,\n FontWeightTokenTypedData,\n\n GradientTokenTypedData,\n LetterSpacingTokenTypedData,\n LineHeightTokenTypedData,\n OpacityTokenTypedData,\n ParagraphSpacingTokenTypedData,\n\n ProductCopyTypedData,\n ShadowTokenTypedData,\n SizeTypedData,\n SpaceTypedData,\n StringTokenTypedData,\n\n TextCaseTokenTypedData,\n TextDecorationTokenTypedData,\n TypographyTokenTypedData,\n VisibilityTypedData,\n ZIndexTypedData,\n FontTypedData,\n]);\n\nexport type DesignTokenOriginPart = z.infer<typeof DesignTokenOriginPart>;\nexport type DesignTokenOrigin = z.infer<typeof DesignTokenOrigin>;\n\nexport type DesignTokenBase = z.infer<typeof DesignTokenBase>;\n\nexport const DesignToken = DesignTokenTypedData.and(DesignTokenBase);\nexport const CreateDesignToken = DesignTokenTypedData.and(CreateDesignTokenBase);\n\nexport type DesignTokenTypedData = z.infer<typeof DesignTokenTypedData>;\nexport type DesignTokenTypedDataOfType<T extends DesignTokenType> = Extract<DesignTokenTypedData, { type: T }>;\n\nexport type DesignToken = z.infer<typeof DesignToken>;\nexport type ImportedDesignToken = OmitStrict<DesignToken, \"origin\"> & { origin: DesignTokenOrigin };\n\nexport type DesignTokenOfType<T extends DesignTokenType> = Extract<DesignToken, { type: T }>;\nexport type ImportedDesignTokenOfType<T extends DesignTokenType> = Extract<ImportedDesignToken, { type: T }>;\n\nexport type CreateDesignToken = z.infer<typeof CreateDesignToken>;\nexport type UpdateDesignToken = OmitStrict<DbUpdate<DesignToken>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type DesignTokensDiff = {\n toCreate: CreateDesignToken[];\n toUpdate: UpdateDesignToken[];\n};\n\n//\n// Utilities\n//\n\nexport function extractTokenTypedData<T extends DesignTokenType, I extends DesignTokenTypedDataOfType<T>>(\n source: I\n): DesignTokenTypedDataOfType<T> {\n return {\n type: source.type,\n data: source.data,\n } as DesignTokenTypedDataOfType<T>;\n}\n\nexport function isImportedDesignToken<T extends DesignTokenType>(\n designToken: DesignTokenOfType<T>\n): designToken is ImportedDesignTokenOfType<T> {\n return !!designToken.origin;\n}\n\nexport function isDesignTokenOfType<T extends DesignTokenType>(\n designToken: DesignToken,\n type: T\n): designToken is DesignTokenOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignToken) => designToken is DesignTokenOfType<T> {\n return (designToken): designToken is DesignTokenOfType<T> => isDesignTokenOfType(designToken, type);\n}\n","import { z } from \"zod\";\n\nexport const FigmaFileDownloadScope = z.object({\n styles: z.boolean(),\n components: z.boolean(),\n currentVersion: z.literal(\"__latest__\").nullable(),\n publishedVersion: z.string().nullable(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport const FigmaFileAccessData = z.object({\n accessToken: z.string(),\n});\n\nexport type FigmaFileDownloadScope = z.infer<typeof FigmaFileDownloadScope>;\nexport type FigmaFileAccessData = z.infer<typeof FigmaFileAccessData>;\n","import { z } from \"zod\";\nimport { DataSourceFigmaImportMetadata, DataSourceFigmaRemote } from \"../../data-sources\";\nimport { FigmaFileAccessData, FigmaFileDownloadScope } from \"./figma-files\";\n\n//\n// Importer payload\n//\n\nexport const ImportFunctionInput = z.object({\n importJobId: z.string(),\n importContextId: z.string(),\n designSystemId: z.string().optional(),\n});\n\nexport type ImportFunctionInput = z.infer<typeof ImportFunctionInput>;\n\n//\n// Base context\n//\n\nexport const ImportedFigmaSourceData = z.object({\n sourceId: z.string(),\n figmaRemote: DataSourceFigmaRemote,\n});\n\nexport const FigmaImportBaseContext = z.object({\n designSystemId: z.string(),\n\n /**\n * Data required for accessing Figma files. This should contain access data for all file ids\n * mentioned in the `importedSourceDataBySourceId`\n *\n * fileId: file data\n */\n fileAccessByFileId: z.record(FigmaFileAccessData),\n\n /**\n * Figma source data for which import was requested\n *\n * sourceId: source data\n */\n importedSourceDataBySourceId: z.record(ImportedFigmaSourceData),\n});\n\nexport type ImportedFigmaSourceData = z.infer<typeof ImportedFigmaSourceData>;\nexport type FigmaImportBaseContext = z.infer<typeof FigmaImportBaseContext>;\n\n//\n// Context with file download scope\n//\n\nexport const ChangedImportedFigmaSourceData = ImportedFigmaSourceData.extend({\n importMetadata: DataSourceFigmaImportMetadata,\n});\n\nexport const FigmaImportContextWithDownloadScopes = FigmaImportBaseContext.extend({\n /**\n * Describes what to download from each file, this should contain all file id mentioned in\n * importMetadataBySourceId.\n *\n * File id -> file download scope\n */\n fileDownloadScopesByFileId: z.record(FigmaFileDownloadScope),\n\n /**\n * Sources filtered down to the ones that have changed since last import and therefore need to be\n * imported again.\n *\n * Source id -> import metadata\n */\n changedImportedSourceDataBySourceId: z.record(ChangedImportedFigmaSourceData),\n});\n\nexport type ChangedImportedFigmaSourceData = z.infer<typeof ChangedImportedFigmaSourceData>;\nexport type FigmaImportContextWithDownloadScopes = z.infer<typeof FigmaImportContextWithDownloadScopes>;\n","import { z } from \"zod\";\nimport { AssetImportModelInput, ComponentImportModel, ComponentImportModelInput } from \"../component\";\nimport { ThemeImportModel, ThemeImportModelInput, ThemeUpdateImportModel, ThemeUpdateImportModelInput } from \"../theme\";\nimport { DesignTokenImportModel, DesignTokenImportModelInput } from \"../tokens\";\nimport { FigmaFileStructureImportModel, FigmaFileStructureImportModelInput } from \"../figma-frames\";\nimport { DataSourceImportModel } from \"../data-source\";\n\n//\n// Collections\n//\n\nexport const ImportModelInputCollection = z.object({\n source: DataSourceImportModel,\n tokens: z.array(DesignTokenImportModelInput).default([]),\n components: z.array(ComponentImportModelInput).default([]),\n assets: z.array(AssetImportModelInput).default([]),\n themeUpdates: z.array(ThemeUpdateImportModelInput).default([]),\n themes: z.array(ThemeImportModelInput).default([]),\n figmaFileStructure: FigmaFileStructureImportModelInput.optional(),\n});\n\nexport const ImportModelCollection = z.object({\n sources: z.array(DataSourceImportModel),\n tokens: z.array(DesignTokenImportModel).default([]),\n components: z.array(ComponentImportModel).default([]),\n themeUpdates: z.array(ThemeUpdateImportModel).default([]),\n themes: z.array(ThemeImportModel).default([]),\n figmaFileStructures: z.array(FigmaFileStructureImportModel),\n});\n\nexport type ImportModelCollection = z.infer<typeof ImportModelCollection>;\nexport type ImportModelInputCollection = z.infer<typeof ImportModelInputCollection>;\n\nexport function addImportModelCollections(\n lhs: ImportModelCollection,\n rhs: ImportModelCollection\n): ImportModelCollection {\n return {\n sources: [...lhs.sources, ...rhs.sources],\n tokens: [...lhs.tokens, ...rhs.tokens],\n components: [...lhs.components, ...rhs.components],\n themeUpdates: [...lhs.themeUpdates, ...rhs.themeUpdates],\n themes: [...lhs.themes, ...rhs.themes],\n figmaFileStructures: [...lhs.figmaFileStructures, ...rhs.figmaFileStructures],\n };\n}\n","import { z } from \"zod\";\nimport { AssetScope } from \"../assets\";\n\n//\n// Abstract\n//\n\nexport const ImageImportModelType = z.enum([\"Url\", \"FigmaRender\"]);\nexport type ImageImportModelType = z.infer<typeof ImageImportModelType>;\n\nconst ImageImportModelBase = z.object({\n scope: AssetScope,\n});\n\n//\n// Url\n//\n\nexport const UrlImageImportModel = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.Url),\n url: z.string(),\n originKey: z.string(),\n extension: z.enum([\"png\", \"svg\", \"jpg\"]),\n});\n\nexport type UrlImageImportModel = z.infer<typeof UrlImageImportModel>;\n\n//\n// Figma Render\n//\n\nexport const FigmaRenderFormat = z.enum([\"Svg\", \"Png\"]);\n\nconst FigmaRenderBase = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.FigmaRender),\n fileId: z.string(),\n fileVersionId: z.string().optional(),\n nodeId: z.string(),\n originKey: z.string(),\n});\n\nexport const FigmaPngRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Png),\n scale: z.number(),\n});\n\nexport const FigmaSvgRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Svg),\n});\n\nexport const FigmaRenderImportModel = z.discriminatedUnion(\"format\", [\n FigmaPngRenderImportModel,\n FigmaSvgRenderImportModel,\n]);\n\n//\n// Union\n//\n\n// Unfortunately discriminated union doesn't support inserting another discriminated union\nexport const ImageImportModel = z.union([UrlImageImportModel, FigmaRenderImportModel]);\n\n//\n// Types\n//\n\nexport type FigmaRenderFormat = z.infer<typeof FigmaRenderFormat>;\nexport type FigmaRenderBase = z.infer<typeof FigmaRenderBase>;\nexport type FigmaPngRenderImportModel = z.infer<typeof FigmaPngRenderImportModel>;\nexport type FigmaSvgRenderImportModel = z.infer<typeof FigmaSvgRenderImportModel>;\nexport type FigmaRenderImportModel = z.infer<typeof FigmaRenderImportModel>;\nexport type ImageImportModel = z.infer<typeof ImageImportModel>;\n","import { FigmaSvgRenderImportModel, ImageImportModel } from \"./image\";\nimport { ComponentOrigin, ComponentOriginPart } from \"../elements\";\nimport { z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Import model\n//\n\nconst ComponentImportModelPart = z.object({\n thumbnail: ImageImportModel,\n});\n\nexport const ComponentImportModel = ImportModelBase.extend(ComponentImportModelPart.shape).extend({\n isAsset: z.boolean(),\n svg: FigmaSvgRenderImportModel.optional(),\n origin: ComponentOrigin,\n});\n\nexport type ComponentImportModel = z.infer<typeof ComponentImportModel>;\n\n//\n// Import model input\n//\n\nexport const ComponentImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n originMetadata: ComponentOriginPart,\n});\n\nexport const AssetImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n svg: FigmaSvgRenderImportModel,\n originMetadata: ComponentOriginPart,\n});\n\nexport type ComponentImportModelInput = z.infer<typeof ComponentImportModelInput>;\nexport type AssetImportModelInput = z.infer<typeof AssetImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignElementOrigin } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const ImportModelBase = z.object({\n id: z.string(),\n meta: ObjectMeta,\n origin: DesignElementOrigin,\n brandPersistentId: z.string(),\n sortOrder: z.number(),\n});\n\nexport type ImportModelBase = z.infer<typeof ImportModelBase>;\n\nexport const ImportModelInputBase = ImportModelBase.omit({\n brandPersistentId: true,\n origin: true,\n sortOrder: true,\n}).extend({\n originId: z.string(),\n originMetadata: z.record(z.any()),\n});\n\nexport type ImportModelInputBase = z.infer<typeof ImportModelInputBase>;\n","import { z } from \"zod\";\nimport { DesignTokenTypedData } from \"../elements\";\nimport { DesignTokenType } from \"../elements\";\nimport { ThemeOriginObject, ThemeOriginSource, ThemeOverrideOrigin, ThemeOverrideOriginPart } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideImportModelBase = DesignTokenTypedData.and(\n z.object({\n id: z.string(),\n meta: ObjectMeta,\n })\n);\n\nexport const ThemeOverrideImportModel = ThemeOverrideImportModelBase.and(\n z.object({\n origin: ThemeOverrideOrigin,\n })\n);\n\nexport const ThemeOverrideImportModelInput = ThemeOverrideImportModelBase.and(\n z.object({\n originId: z.string(),\n originMetadata: ThemeOverrideOriginPart,\n })\n);\n\nexport type ThemeOverrideImportModel = z.infer<typeof ThemeOverrideImportModel>;\nexport type ThemeOverrideImportModelOfType<T extends DesignTokenType> = Extract<ThemeOverrideImportModel, { type: T }>;\n\nexport type ThemeOverrideImportModelInput = z.infer<typeof ThemeOverrideImportModelInput>;\nexport type ThemeOverrideImportModelInputOfType<T extends DesignTokenType> = Extract<\n ThemeOverrideImportModelInput,\n { type: T }\n>;\n\n//\n// Themes\n//\n\nexport const ThemeImportModel = z.object({\n meta: ObjectMeta,\n brandPersistentId: z.string(),\n originSource: ThemeOriginSource,\n overrides: z.array(ThemeOverrideImportModel),\n sortOrder: z.number(),\n});\n\nexport const ThemeImportModelInput = z.object({\n meta: ObjectMeta,\n originObjects: z.array(ThemeOriginObject),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeImportModel = z.infer<typeof ThemeImportModel>;\nexport type ThemeImportModelInput = z.infer<typeof ThemeImportModelInput>;\n\n//\n// Theme Update\n//\n\nexport const ThemeUpdateImportModel = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModel),\n});\n\nexport const ThemeUpdateImportModelInput = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeUpdateImportModel = z.infer<typeof ThemeUpdateImportModel>;\nexport type ThemeUpdateImportModelInput = z.infer<typeof ThemeUpdateImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"../elements\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Base\n//\n\nconst DesignTokenImportModelPart = z.object({\n collection: z.string().optional(),\n});\n\nexport const DesignTokenImportModelBase = ImportModelBase.extend(DesignTokenImportModelPart.shape).extend({\n origin: DesignTokenOrigin,\n});\n\nexport const DesignTokenImportModelInputBase = ImportModelInputBase.extend(DesignTokenImportModelPart.shape).extend({\n originMetadata: DesignTokenOriginPart,\n});\n\n//\n// Import models\n//\n\nexport const DesignTokenImportModel = DesignTokenTypedData.and(DesignTokenImportModelBase);\nexport const DesignTokenImportModelInput = DesignTokenTypedData.and(DesignTokenImportModelInputBase);\n\nexport type DesignTokenImportModelInputBase = z.infer<typeof DesignTokenImportModelInputBase>;\n\nexport type DesignTokenImportModel = z.infer<typeof DesignTokenImportModel>;\nexport type DesignTokenImportModelOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport type DesignTokenImportModelInput = z.infer<typeof DesignTokenImportModelInput>;\nexport type DesignTokenImportModelInputOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport function isDesignTokenImportModelOfType<T extends DesignTokenType>(\n designToken: DesignTokenImportModel,\n type: T\n): designToken is DesignTokenImportModelOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenImportModelTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignTokenImportModel) => designToken is DesignTokenImportModelOfType<T> {\n return (designToken): designToken is DesignTokenImportModelOfType<T> =>\n isDesignTokenImportModelOfType(designToken, type);\n}\n","import { ZodType, ZodTypeDef, z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\nimport { FigmaFileStructureOrigin } from \"../elements\";\nimport { FigmaFileStructureNodeBase, FigmaFileStructureStatistics } from \"../elements\";\nimport { FigmaPngRenderImportModel } from \"./image\";\n\n//\n// Nodes Import Model\n//\n\nconst FigmaFileStructureNodeImportModelBase = FigmaFileStructureNodeBase.extend({\n image: FigmaPngRenderImportModel,\n});\n\nexport const FigmaFileStructureNodeImportModel: z.ZodType<\n FigmaFileStructureNodeImportModel,\n ZodTypeDef,\n FigmaFileStructureNodeImportModelBaseInput\n> = FigmaFileStructureNodeImportModelBase.extend({\n children: z.lazy(() => FigmaFileStructureNodeImportModel.array()),\n});\n\ntype FigmaFileStructureNodeImportModelBaseInput = z.input<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModelBaseInput[];\n};\n\nexport type FigmaFileStructureNodeImportModel = z.infer<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModel[];\n};\n\n//\n// Structure Import Model\n//\n\nconst FigmaFileStructureImportModelPart = z.object({\n data: z.object({\n rootNode: FigmaFileStructureNodeImportModel,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport const FigmaFileStructureImportModel = ImportModelBase.extend(FigmaFileStructureImportModelPart.shape).extend({\n origin: FigmaFileStructureOrigin,\n});\n\nexport type FigmaFileStructureImportModel = z.infer<typeof FigmaFileStructureImportModel>;\n\n//\n// Import model input\n//\n\nexport const FigmaFileStructureImportModelInput = ImportModelInputBase.extend(\n FigmaFileStructureImportModelPart.shape\n).extend({\n fileVersionId: z.string(),\n});\n\nexport type FigmaFileStructureImportModelInput = z.infer<typeof FigmaFileStructureImportModelInput>;\n\nexport function figmaFileStructureImportModelToMap(\n root: FigmaFileStructureNodeImportModel\n): Map<string, FigmaFileStructureNodeImportModel> {\n const map = new Map<string, FigmaFileStructureNodeImportModel>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(\n node: FigmaFileStructureNodeImportModel,\n map: Map<string, FigmaFileStructureNodeImportModel>\n) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const DataSourceImportModel = z.object({\n id: z.string(),\n fileName: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n});\n\nexport type DataSourceImportModel = z.infer<typeof DataSourceImportModel>;\n","import { z } from \"zod\";\n\nexport const ImportWarningType = z.enum([\n \"NoVersionFound\",\n \"UnsupportedFill\",\n \"UnsupportedStroke\",\n \"UnsupportedEffect\",\n \"NoPublishedElements\",\n \"NoPublishedStyles\",\n \"NoPublishedComponents\",\n \"NoPublishedAssets\",\n \"StyleNotApplied\",\n \"ComponentHasNoThumbnail\",\n \"DuplicateImportedStyleId\",\n \"DuplicateImportedStylePath\",\n]);\n\nexport const ImportWarning = z.object({\n warningType: ImportWarningType,\n componentId: z.string().optional(),\n componentName: z.string().optional(),\n styleId: z.string().optional(),\n styleName: z.string().optional(),\n unsupportedStyleValueType: z.string().optional(),\n});\n\nexport type ImportWarningType = z.infer<typeof ImportWarningType>;\nexport type ImportWarning = z.infer<typeof ImportWarning>;\n","import { z } from \"zod\";\n\nexport const PageBlockDefinitionAppearance = z.object({\n isBordered: z.boolean().optional(),\n hasBackground: z.boolean().optional(),\n isEditorPresentationDifferent: z.boolean().optional(),\n});\n\nexport type PageBlockDefinitionAppearance = z.infer<typeof PageBlockDefinitionAppearance>;\n","import { z } from \"zod\";\nimport { AssetValue } from \"../../assets/asset-value\";\nimport { PageBlockDefinitionItem } from \"./item\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport const PageBlockCategory = z.enum([\n \"Text\",\n \"Layout\",\n \"Media\",\n \"Embed\",\n \"Figma\",\n \"Code\",\n \"Guidelines\",\n \"Tokens\",\n \"Components\",\n \"Assets\",\n \"Data\",\n \"Other\",\n]);\n\nexport const PageBlockBehaviorDataType = z.enum([\"Item\", \"Token\", \"Asset\", \"Component\", \"FigmaFrame\"]);\nexport const PageBlockBehaviorSelectionType = z.enum([\"Entity\", \"Group\", \"EntityAndGroup\"]);\n\nexport type PageBlockCategory = z.infer<typeof PageBlockCategory>;\nexport type PageBlockBehaviorDataType = z.infer<typeof PageBlockBehaviorDataType>;\nexport type PageBlockBehaviorSelectionType = z.infer<typeof PageBlockBehaviorSelectionType>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionBehavior = z.object({\n dataType: PageBlockBehaviorDataType,\n items: z\n .object({\n numberOfItems: z.number(),\n allowLinks: z.boolean(),\n })\n .optional(),\n entities: z\n .object({\n selectionType: PageBlockBehaviorSelectionType,\n maxSelected: z.number(),\n })\n .optional(),\n});\n\nexport const PageBlockDefinitionOnboarding = z.object({\n helpText: z.string(),\n documentationLink: z.string().optional(),\n});\n\nexport const PageBlockDefinition = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n category: PageBlockCategory,\n icon: AssetValue.optional(),\n documentationLink: z.string().optional(),\n searchKeywords: z.array(z.string()).optional(),\n item: PageBlockDefinitionItem,\n behavior: PageBlockDefinitionBehavior,\n editorOptions: z.object({\n onboarding: PageBlockDefinitionOnboarding.optional(),\n }),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionBehavior = z.infer<typeof PageBlockDefinitionBehavior>;\nexport type PageBlockDefinitionOnboarding = z.infer<typeof PageBlockDefinitionOnboarding>;\nexport type PageBlockDefinition = z.infer<typeof PageBlockDefinition>;\n","import { z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\nimport { PageBlockDefinitionVariant } from \"./variant\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionPropertyType = z.enum([\n \"RichText\",\n \"MultiRichText\",\n \"Text\",\n \"Boolean\",\n \"Number\",\n \"SingleSelect\",\n \"MultiSelect\",\n \"Image\",\n \"Token\",\n \"TokenType\",\n \"TokenProperty\",\n \"Component\",\n \"ComponentProperty\",\n \"Asset\",\n \"AssetProperty\",\n \"EmbedURL\",\n \"URL\",\n \"Markdown\",\n \"Code\",\n \"CodeSandbox\",\n \"Table\",\n \"Divider\",\n \"Storybook\",\n \"Color\",\n]);\n\nexport const PageBlockDefinitionRichTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Quote\",\n \"Callout\",\n \"Default\",\n]);\n\nexport const PageBlockDefinitionMultiRichTextPropertyStyle = z.enum([\"OL\", \"UL\", \"Default\"]);\n\nexport const PageBlockDefinitionTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Default\",\n \"DefaultBold\",\n \"DefaultSemibold\",\n \"Small\",\n \"SmallBold\",\n \"SmallSemibold\",\n]);\n\nexport const PageBlockDefinitionBooleanPropertyStyle = z.enum([\"SegmentedControl\", \"ToggleButton\", \"Checkbox\"]);\nexport const PageBlockDefinitionSingleSelectPropertyStyle = z.enum([\n \"SegmentedControl\",\n \"ToggleButton\",\n \"Select\",\n \"Checkbox\",\n]);\nexport const PageBlockDefinitionMultiSelectPropertyStyle = z.enum([\"SegmentedControl\", \"Select\", \"Checkbox\"]);\n\nexport type PageBlockDefinitionPropertyType = z.infer<typeof PageBlockDefinitionPropertyType>;\nexport type PageBlockDefinitionRichTextPropertyStyle = z.infer<typeof PageBlockDefinitionRichTextPropertyStyle>;\nexport type PageBlockDefinitionMultiRichTextPropertyStyle = z.infer<\n typeof PageBlockDefinitionMultiRichTextPropertyStyle\n>;\nexport type PageBlockDefinitionTextPropertyStyle = z.infer<typeof PageBlockDefinitionTextPropertyStyle>;\nexport type PageBlockDefinitionBooleanPropertyStyle = z.infer<typeof PageBlockDefinitionBooleanPropertyStyle>;\nexport type PageBlockDefinitionSingleSelectPropertyStyle = z.infer<typeof PageBlockDefinitionSingleSelectPropertyStyle>;\nexport type PageBlockDefinitionMultiSelectPropertyStyle = z.infer<typeof PageBlockDefinitionMultiSelectPropertyStyle>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionPropertyOptions = z\n .object({\n richTextStyle: PageBlockDefinitionRichTextPropertyStyle.optional(),\n multiRichTextStyle: PageBlockDefinitionMultiRichTextPropertyStyle.optional(),\n textStyle: PageBlockDefinitionTextPropertyStyle.optional(),\n placeholder: z.string().optional(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockDefinitionProperty = z.object({\n id: z.string(),\n name: z.string(),\n type: PageBlockDefinitionPropertyType,\n description: z.string().optional(),\n // TODO Docs\n options: PageBlockDefinitionPropertyOptions.optional(),\n variantOptions: z.record(PageBlockDefinitionPropertyOptions).optional(),\n});\n\nexport const PageBlockDefinitionItem = z.object({\n properties: z.array(PageBlockDefinitionProperty),\n appearance: PageBlockDefinitionAppearance.optional(),\n variants: z.array(PageBlockDefinitionVariant),\n defaultVariantKey: z.string(),\n});\n\nexport type PageBlockDefinitionPropertyOptions = z.infer<typeof PageBlockDefinitionPropertyOptions>;\nexport type PageBlockDefinitionProperty = z.infer<typeof PageBlockDefinitionProperty>;\nexport type PageBlockDefinitionItem = z.infer<typeof PageBlockDefinitionItem>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionLayoutType = z.enum([\"Column\", \"Row\"]);\nexport const PageBlockDefinitionLayoutGap = z.enum([\"Small\", \"Medium\", \"Large\", \"None\"]);\nexport const PageBlockDefinitionLayoutAlign = z.enum([\"Start\", \"Center\", \"End\"]);\nexport const PageBlockDefinitionLayoutResizing = z.enum([\"Fill\", \"Hug\"]);\n\nexport type PageBlockDefinitionLayoutType = z.infer<typeof PageBlockDefinitionLayoutType>;\nexport type PageBlockDefinitionLayoutGap = z.infer<typeof PageBlockDefinitionLayoutGap>;\nexport type PageBlockDefinitionLayoutAlign = z.infer<typeof PageBlockDefinitionLayoutAlign>;\nexport type PageBlockDefinitionLayoutResizing = z.infer<typeof PageBlockDefinitionLayoutResizing>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionLayoutBase = z.object({\n type: PageBlockDefinitionLayoutType,\n gap: PageBlockDefinitionLayoutGap.optional(),\n columnAlign: PageBlockDefinitionLayoutAlign.optional(),\n columnResizing: PageBlockDefinitionLayoutResizing.optional(),\n});\n\nexport const PageBlockDefinitionLayout: z.ZodType<PageBlockDefinitionLayout, ZodTypeDef, PageBlockDefinitionLayout> =\n PageBlockDefinitionLayoutBase.extend({\n children: z.lazy(() => z.array(PageBlockDefinitionLayout.or(z.string()))),\n });\n\nexport const PageBlockDefinitionVariant = z.object({\n id: z.string(),\n name: z.string(),\n image: z.string().optional(),\n description: z.string().optional(),\n documentationLink: z.string().optional(),\n layout: PageBlockDefinitionLayout,\n maxColumns: z.number().optional(),\n defaultColumns: z.number().optional(),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionVariant = z.infer<typeof PageBlockDefinitionVariant>;\nexport type PageBlockDefinitionLayout = z.infer<typeof PageBlockDefinitionLayoutBase> & {\n children: (PageBlockDefinitionLayout | string)[];\n};\n","import { z } from \"zod\";\n\nexport const DocumentationPageGroup = z.object({\n type: z.literal(\"ElementGroup\"),\n childType: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPageGroup = z.infer<typeof DocumentationPageGroup>;\n","import { z } from \"zod\";\n\nexport const DocumentationPage = z.object({\n type: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPage = z.infer<typeof DocumentationPage>;\n","import { z } from \"zod\";\nimport { Workspace } from \"../workspace\";\nexport const DesignSystemSwitcher = z.object({\n isEnabled: z.boolean(),\n designSystemIds: z.string(),\n});\n\nexport const DesignSystem = z.object({\n id: z.string(),\n workspaceId: z.string(),\n name: z.string(),\n description: z.string(),\n docExporterId: z.string().nullish(),\n docSlug: z.string(),\n docUserSlug: z.string().nullish(),\n docSlugDeprecated: z.string(),\n isPublic: z.boolean(),\n isMultibrand: z.boolean(),\n docViewUrl: z.string().nullish(),\n basePrefixes: z.array(z.string()),\n designSystemSwitcher: DesignSystemSwitcher.nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignSystemWithWorkspace = z.object({\n designSystem: DesignSystem,\n workspace: Workspace,\n});\n\nexport type DesignSystemSwitcher = z.infer<typeof DesignSystemSwitcher>;\nexport type DesignSystem = z.infer<typeof DesignSystem>;\nexport type DesignSystemWithWorkspace = z.infer<typeof DesignSystemWithWorkspace>;\n","import { z } from \"zod\";\n\nexport const NpmRegistryAuthType = z.enum([\"Basic\", \"Bearer\", \"None\", \"Custom\"]);\nexport const NpmRegistryType = z.enum([\"NPMJS\", \"GitHub\", \"AzureDevOps\", \"Artifactory\", \"Custom\"]);\n\nexport const NpmRegistryBasicAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Basic),\n username: z.string(),\n password: z.string(),\n});\n\nexport const NpmRegistryBearerAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Bearer),\n accessToken: z.string(),\n});\n\nexport const NpmRegistryNoAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.None),\n});\n\nexport const NpmRegistrCustomAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Custom),\n authHeaderName: z.string(),\n authHeaderValue: z.string(),\n});\n\nexport const NpmRegistryAuthConfig = z.discriminatedUnion(\"authType\", [\n NpmRegistryBasicAuthConfig,\n NpmRegistryBearerAuthConfig,\n NpmRegistryNoAuthConfig,\n NpmRegistrCustomAuthConfig,\n]);\n\nconst NpmRegistryConfigBase = z.object({\n registryType: NpmRegistryType,\n enabledScopes: z.array(z.string()),\n customRegistryUrl: z.string().optional(),\n bypassProxy: z.boolean().default(false),\n npmProxyRegistryConfigId: z.string().optional(),\n npmProxyVersion: z.number().optional(),\n});\n\nexport const NpmRegistryConfig = NpmRegistryConfigBase.and(NpmRegistryAuthConfig);\n\nexport type NpmRegistryConfig = z.infer<typeof NpmRegistryConfig>;\n","import { z } from \"zod\";\nexport const SsoProvider = z.object({\n providerId: z.string(),\n defaultAutoInviteValue: z.boolean(),\n autoInviteDomains: z.record(z.string(), z.boolean()),\n skipDocsSupernovaLogin: z.boolean(),\n areInvitesDisabled: z.boolean(),\n isTestMode: z.boolean(),\n emailDomains: z.array(z.string()),\n metadataXml: z.string().nullish(),\n});\n\nexport type SsoProvider = z.infer<typeof SsoProvider>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"./workspace-role\";\n\nexport const MAX_MEMBERS_COUNT = 100;\n\nexport const UserInvite = z.object({\n email: z\n .string()\n .email()\n .trim()\n .transform(value => value.toLowerCase()),\n role: WorkspaceRoleSchema,\n});\n\nexport const UserInvites = z.array(UserInvite).max(MAX_MEMBERS_COUNT);\n\nexport type UserInvite = z.infer<typeof UserInvite>;\nexport type UserInvites = z.infer<typeof UserInvites>;\n","import { z } from \"zod\";\n\nexport const WorkspaceRoleSchema = z.enum([\"Owner\", \"Admin\", \"Creator\", \"Viewer\", \"Billing\", \"Guest\"]);\n\nexport type WorkspaceRole = z.infer<typeof WorkspaceRoleSchema>;\nexport const WorkspaceRole = WorkspaceRoleSchema.enum;\n","import { ProductCodeSchema } from \"../billing\";\nimport { z } from \"zod\";\n\nexport const WorkspaceContext = z.object({\n workspaceId: z.string(),\n product: ProductCodeSchema,\n publicDesignSystem: z.boolean().optional(),\n});\n\nexport type WorkspaceContext = z.infer<typeof WorkspaceContext>;\n","import { z } from \"zod\";\nimport { UserInvites } from \"./user-invite\";\nimport { ProductCodeSchema } from \"../billing\";\nimport { slugRegex } from \"../utils/validation\";\n\nconst WORKSPACE_NAME_MIN_LENGTH: number = 2;\nconst WORKSPACE_NAME_MAX_LENGTH: number = 64;\nexport const HANDLE_MIN_LENGTH = 2;\nexport const HANDLE_MAX_LENGTH = 64;\n\nexport const CreateWorkspaceInput = z.object({\n name: z.string().min(WORKSPACE_NAME_MIN_LENGTH).max(WORKSPACE_NAME_MAX_LENGTH).trim(),\n product: ProductCodeSchema,\n priceId: z.string(),\n billingEmail: z.string().email().optional(),\n handle: z\n .string()\n .regex(slugRegex)\n .min(HANDLE_MIN_LENGTH)\n .max(HANDLE_MAX_LENGTH)\n .refine(value => value?.length > 0)\n .optional(),\n invites: UserInvites.optional(),\n promoCode: z.string().optional(),\n});\n\nexport type CreateWorkspaceInput = z.infer<typeof CreateWorkspaceInput>;\n","// Consists of lowercased letters, digits and hyphens.\n// Can not start or end with hyphen.\n// Warning: does not forbid consecutive hyphens\nexport const slugRegex = /^[a-z0-9][a-z0-9-]*[a-z0-9]$/;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceInvitation = z.object({\n id: z.string(),\n email: z.string().email(),\n createdAt: z.date(),\n resentAt: z.date().nullish(),\n role: z.nativeEnum(WorkspaceRole),\n workspaceId: z.string(),\n invitedBy: z.string(),\n});\n\nexport type WorkspaceInvitation = z.infer<typeof WorkspaceInvitation>;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceMembership = z.object({\n id: z.string(),\n userId: z.string(),\n workspaceId: z.string(),\n workspaceRole: z.nativeEnum(WorkspaceRole),\n});\n\nexport type WorkspaceMembership = z.infer<typeof WorkspaceMembership>;\n","import { z } from \"zod\";\nimport { Subscription } from \"../billing\";\nimport { SsoProvider } from \"./sso-provider\";\nimport { DesignSystem } from \"../dsm\";\nimport { BillingDetails } from \"../billing\";\n\nexport const WorkspaceIpWhitelistEntry = z.object({\n isEnabled: z.boolean(),\n name: z.string(),\n range: z.string(),\n});\n\nexport const WorkspaceIpSettings = z\n .object({\n isEnabledForCloud: z.boolean(),\n isEnabledForDocs: z.boolean(),\n entries: z.array(WorkspaceIpWhitelistEntry),\n })\n .nullish();\n\nexport const WorkspaceProfile = z.object({\n name: z.string(),\n handle: z.string(),\n color: z.string(),\n avatar: z.string().optional(),\n billingDetails: BillingDetails.optional(),\n});\n\nexport const Workspace = z.object({\n id: z.string(),\n profile: WorkspaceProfile,\n subscription: Subscription,\n ipWhitelist: WorkspaceIpSettings,\n sso: SsoProvider.nullish(),\n npmRegistrySettings: z.unknown().optional(),\n designSystems: z.array(DesignSystem).nullish(),\n});\n\nexport const WorkspaceWithDesignSystems = z.object({\n workspace: Workspace,\n designSystems: z.array(DesignSystem),\n});\n\nexport type WorkspaceIpWhitelistEntry = z.infer<typeof WorkspaceIpWhitelistEntry>;\nexport type WorkspaceIpSettings = z.infer<typeof WorkspaceIpSettings>;\nexport type WorkspaceProfile = z.infer<typeof WorkspaceProfile>;\nexport type Workspace = z.infer<typeof Workspace>;\nexport type WorkspaceWithDesignSystems = z.infer<typeof WorkspaceWithDesignSystems>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemCreateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim(),\n});\n\nexport const DesignSystemCreateInput = z.object({\n meta: DesignSystemCreateInputMetadata,\n workspaceId: z.string(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n});\n\nexport type DesignSystemCreateInput = z.infer<typeof DesignSystemCreateInput>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemUpdateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n});\n\nexport const DesignSystemUpdateInput = z.object({\n meta: DesignSystemUpdateInputMetadata.optional(),\n workspaceId: z.string().optional(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n docExporterId: z.string().optional(),\n});\n\nexport type DesignSystemUpdateInput = z.infer<typeof DesignSystemUpdateInput>;\n","import { z } from \"zod\";\n\nexport const publishedDocEnvironments = [\"Live\", \"Preview\"] as const;\nexport const PublishedDocEnvironment = z.enum(publishedDocEnvironments);\n\nexport const PublishedDocsChecksums = z.record(z.string());\n\nexport const PublishedDocRoutingVersion = z.enum([\"1\", \"2\"]);\n\nexport const PublishedDoc = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n lastPublishedAt: z.date(),\n isDefault: z.boolean(),\n isPublic: z.boolean(),\n environment: PublishedDocEnvironment,\n checksums: PublishedDocsChecksums,\n storagePath: z.string(),\n wasMigrated: z.boolean(),\n routingVersion: PublishedDocRoutingVersion,\n usesLocalizations: z.boolean(),\n wasPublishedWithLocalizations: z.boolean(),\n});\n\nexport type PublishedDocEnvironment = z.infer<typeof PublishedDocEnvironment>;\nexport type PublishedDocsChecksums = z.infer<typeof PublishedDocsChecksums>;\nexport type PublishedDocRoutingVersion = z.infer<typeof PublishedDocRoutingVersion>;\nexport type PublishedDoc = z.infer<typeof PublishedDoc>;\n","import { PublishedDocEnvironment } from \"../dsm\";\nimport { z } from \"zod\";\nexport const ExportJobStatus = z.union([\n z.literal(\"Success\"),\n z.literal(\"InProgress\"),\n z.literal(\"Timeout\"),\n z.literal(\"Failed\"),\n]);\n\nexport type ExportJobStatus = z.infer<typeof ExportJobStatus>;\n\nexport const ExportJob = z.object({\n id: z.string(),\n workspaceId: z.string(),\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n status: ExportJobStatus,\n docsUrl: z.string().nullish(),\n scheduleId: z.string().nullish(),\n exporterId: z.string().nullish(),\n createdAt: z.date(),\n environment: PublishedDocEnvironment,\n finishedAt: z.date().nullish(),\n});\n\nexport type ExportJob = z.infer<typeof ExportJob>;\n","import { z } from \"zod\";\n\nexport const ExporterWorkspaceMembershipRole = z.enum([\"Owner\", \"OwnerArchived\", \"User\"]);\nexport type ExporterWorkspaceMembershipRole = z.infer<typeof ExporterWorkspaceMembershipRole>;\n","import { z } from \"zod\";\nimport { ExporterWorkspaceMembershipRole } from \"./exporter-workspace-membership-role\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nexport const ExporterWorkspaceMembership = z.object({\n id: z.string(),\n workspaceId: z.string(),\n exporterId: z.string(),\n role: ExporterWorkspaceMembershipRole,\n});\n\nexport type ExporterWorkspaceMembership = z.infer<typeof ExporterWorkspaceMembership>;\n\nexport type CreateExporterMembership = DbCreateInputOmit<ExporterWorkspaceMembership>;\n","import { z } from \"zod\";\nimport { GitProvider } from \"./git-providers\";\nimport { PulsarContributionBlock, PulsarContributionConfigurationProperty, PulsarContributionVariant } from \"./pulsar\";\nimport { nullishToOptional } from \"../helpers\";\n\nexport const ExporterType = z.enum([\"code\", \"documentation\"]);\nexport const ExporterSource = z.enum([\"git\", \"upload\"]);\nexport const ExporterTag = z.string().regex(/^[0-9a-zA-Z]+(\\s[0-9a-zA-Z]+)*$/);\n\nexport const ExporterDetails = z.object({\n packageId: z.string().max(255),\n version: z.string(),\n description: z.string(),\n author: nullishToOptional(z.string()),\n organization: nullishToOptional(z.string()),\n homepage: nullishToOptional(z.string()),\n readme: nullishToOptional(z.string()),\n tags: z.array(ExporterTag).default([]),\n\n routingVersion: nullishToOptional(z.string()),\n\n iconURL: nullishToOptional(z.string()),\n configurationProperties: z.array(PulsarContributionConfigurationProperty).default([]),\n customBlocks: z.array(PulsarContributionBlock).default([]),\n blockVariants: z.record(z.string(), z.array(PulsarContributionVariant)).default({}),\n\n usesBrands: z.boolean().default(false),\n usesThemes: z.boolean().default(false),\n\n source: ExporterSource,\n\n gitProvider: nullishToOptional(GitProvider),\n gitUrl: nullishToOptional(z.string()),\n gitBranch: nullishToOptional(z.string()),\n gitDirectory: nullishToOptional(z.string()),\n});\n\nexport const Exporter = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n name: z.string(),\n isPrivate: z.boolean(),\n details: ExporterDetails,\n exporterType: ExporterType.default(\"code\"),\n storagePath: z.string().default(\"\"),\n});\n\nexport type ExporterType = z.infer<typeof ExporterType>;\nexport type ExporterSource = z.infer<typeof ExporterSource>;\nexport type ExporterTag = z.infer<typeof ExporterTag>;\nexport type ExporterDetails = z.infer<typeof ExporterDetails>;\nexport type Exporter = z.infer<typeof Exporter>;\n","import { z } from \"zod\";\n\nexport enum GitProviderNames {\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const GitProvider = z.nativeEnum(GitProviderNames);\nexport type GitProvider = z.infer<typeof GitProvider>;\n","import { z } from \"zod\";\n\nexport const PulsarContributionVariant = z.object({\n key: z.string(),\n name: z.string(),\n isDefault: z.boolean().optional(),\n description: z.string().optional(),\n thumbnailURL: z.string().optional(),\n});\nexport type PulsarContributionVariant = z.infer<typeof PulsarContributionVariant>;\n\nexport const PulsarPropertyType = z.enum([\n \"string\",\n \"number\",\n \"boolean\",\n \"image\",\n \"enum\",\n \"color\",\n \"typography\",\n \"component\",\n \"componentProperties\",\n \"tokenProperties\",\n \"tokenType\",\n]);\nexport type PulsarPropertyType = z.infer<typeof PulsarPropertyType>;\n\n// export type PulsarPropertyValueType =\n// | string\n// | number\n// | boolean\n// | PulsarPropertyImageValue\n// | ColorTokenData // TODO: Should we do smth here? Update Pulsar to get value?!\n// | TypographyTokenData;\n\nexport const BasePulsarProperty = z.object({\n label: z.string(),\n key: z.string(),\n description: z.string().optional(),\n type: PulsarPropertyType,\n values: z.array(z.string()).optional(),\n default: z.union([z.string(), z.boolean(), z.number()]).nullish(), // PulsarPropertyValueType //is optional?\n inputType: z.enum([\"code\", \"plain\"]).optional(), //is optional?\n isMultiline: z.boolean().optional(),\n});\nexport type BasePulsarProperty = z.infer<typeof BasePulsarProperty>;\n\nexport const PulsarContributionBlock = z.object({\n title: z.string(),\n key: z.string(),\n category: z.string(),\n description: z.string().optional(),\n iconURL: z.string(),\n mode: z.enum([\"array\", \"block\"]),\n properties: z.array(BasePulsarProperty),\n});\nexport type PulsarContributionBlock = z.infer<typeof PulsarContributionBlock>;\n\nexport const PulsarContributionConfigurationProperty = BasePulsarProperty.extend({ category: z.string() });\nexport type PulsarContributionConfigurationProperty = z.infer<typeof PulsarContributionConfigurationProperty>;\n","import { z } from \"zod\";\n\nexport type CustomDomainState =\n | \"Initial\"\n | \"DomainSetupInProgress\"\n | \"DomainSetupFailed\"\n | \"DomainSetupSuccess\"\n | \"SSLSetupInProgress\"\n | \"SSLSetupFailed\"\n | \"SSLSetupSuccess\";\n\nexport const CustomDomain = z.object({\n id: z.string(),\n designSystemId: z.string(),\n state: z.string(),\n\n supernovaDomain: z.string(),\n customerDomain: z.string().nullish(),\n\n error: z.string().nullish(),\n errorCode: z.string().nullish(),\n});\n\nexport type CustomDomain = z.infer<typeof CustomDomain>;\n","import { z } from \"zod\";\nimport { User } from \"../users\";\n\nexport const NpmProxyToken = z.object({\n access: z.string(),\n expiresAt: z.number(),\n});\n\nexport type NpmProxyToken = z.infer<typeof NpmProxyToken>;\n\nexport const SessionData = z.object({\n returnToUrl: z.string().optional(),\n npmProxyToken: NpmProxyToken.optional(),\n});\n\nexport type SessionData = z.infer<typeof SessionData>;\n\nexport const Session = z.object({\n id: z.string(),\n expiresAt: z.date(),\n userId: z.string().nullable(),\n data: SessionData,\n});\n\nexport type Session = z.infer<typeof Session>;\n\nexport const AuthTokens = z.object({\n access: z.string(),\n refresh: z.string(),\n});\n\nexport type AuthTokens = z.infer<typeof AuthTokens>;\n\nexport const UserSession = z.object({\n session: Session,\n user: User.nullable(),\n});\n\nexport type UserSession = z.infer<typeof UserSession>;\n","import { z } from \"zod\";\n\nexport const IntegrationAuthType = z.union([z.literal(\"OAuth2\"), z.literal(\"PAT\")]);\n\nexport type IntegrationAuthType = z.infer<typeof IntegrationAuthType>;\n\nexport const ExternalServiceType = z.union([\n z.literal(\"figma\"),\n z.literal(\"github\"),\n z.literal(\"azure\"),\n z.literal(\"gitlab\"),\n z.literal(\"bitbucket\"),\n]);\n\nexport type ExternalServiceType = z.infer<typeof ExternalServiceType>;\n\nexport const IntegrationUserInfo = z.object({\n id: z.string(),\n handle: z.string().optional(),\n avatarUrl: z.string().optional(),\n email: z.string().optional(),\n authType: IntegrationAuthType.optional(),\n customUrl: z.string().optional(),\n});\n\nexport type IntegrationUserInfo = z.infer<typeof IntegrationUserInfo>;\n\nexport const UserLinkedIntegrations = z.object({\n figma: IntegrationUserInfo.optional(),\n github: IntegrationUserInfo.array().optional(),\n azure: IntegrationUserInfo.array().optional(),\n gitlab: IntegrationUserInfo.array().optional(),\n bitbucket: IntegrationUserInfo.array().optional(),\n});\n\nexport type UserLinkedIntegrations = z.infer<typeof UserLinkedIntegrations>;\n","import { z } from \"zod\";\n\nexport const UserIdentity = z.object({\n id: z.string(),\n userId: z.string(),\n});\n\nexport type UserIdentity = z.infer<typeof UserIdentity>;\n","import { z } from \"zod\";\n\nexport const UserOnboardingDepartment = z.enum([\"Design\", \"Engineering\", \"Brand\", \"Other\"]);\n\nexport const UserOnboardingJobLevel = z.enum([\"Executive\", \"Manager\", \"IndividualContributor\", \"Other\"]);\n\nexport const UserOnboarding = z.object({\n companyName: z.string().optional(),\n numberOfPeopleInOrg: z.string().optional(),\n numberOfPeopleInDesignTeam: z.string().optional(),\n department: UserOnboardingDepartment.optional(),\n jobTitle: z.string().optional(),\n phase: z.string().optional(),\n jobLevel: UserOnboardingJobLevel.optional(),\n});\n\nexport type UserOnboarding = z.infer<typeof UserOnboarding>;\n\nexport const UserProfile = z.object({\n name: z.string(),\n avatar: z.string().optional(),\n nickname: z.string().optional(),\n onboarding: UserOnboarding.optional(),\n});\n\nexport type UserProfile = z.infer<typeof UserProfile>;\n","import { UserLinkedIntegrations } from \"./linked-integrations\";\nimport { UserProfile } from \"./user-profile\";\nimport { z } from \"zod\";\n\nexport const User = z.object({\n id: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n createdAt: z.date(),\n trialExpiresAt: z.date().optional(),\n profile: UserProfile,\n linkedIntegrations: UserLinkedIntegrations.optional(),\n loggedOutAt: z.date().optional(),\n isProtected: z.boolean(),\n});\n\nexport type User = z.infer<typeof User>;\n","import { z } from \"zod\";\n\nexport const FlaggedFeature = z.enum([\"FigmaImporterV2\"]);\nexport const FeatureFlagMap = z.record(FlaggedFeature, z.boolean());\nexport const FeatureFlag = z.object({\n id: z.string(),\n feature: FlaggedFeature,\n createdAt: z.date(),\n enabled: z.boolean(),\n});\n\nexport type FlaggedFeature = z.infer<typeof FlaggedFeature>;\nexport type FeatureFlagMap = z.infer<typeof FeatureFlagMap>;\nexport type FeatureFlag = z.infer<typeof FeatureFlag>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const ExternalOAuthRequest = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n userId: z.string(),\n state: z.string(),\n createdAt: z.date(),\n});\n\nexport type ExternalOAuthRequest = z.infer<typeof ExternalOAuthRequest>;\n","import { z } from \"zod\";\n\nexport enum OAuthProviderNames {\n Figma = \"figma\",\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const OAuthProviderSchema = z.nativeEnum(OAuthProviderNames);\nexport type OAuthProvider = z.infer<typeof OAuthProviderSchema>;\nexport const OAuthProvider = OAuthProviderSchema.enum;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const IntegrationTokenSchema = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n scope: z.string(),\n userId: z.string(),\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.date(),\n externalUserId: z.string().nullish(),\n});\n\nexport type IntegrationToken = z.infer<typeof IntegrationTokenSchema>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DesignSystemVersionRoom = Entity.extend({\n designSystemVersionId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DesignSystemVersionRoom = z.infer<typeof DesignSystemVersionRoom>;\n\nexport type CreateDesignSystemVersionRoom = DbCreateInputOmit<DesignSystemVersionRoom>;\nexport type UpdateDesignSystemVersionRoom = DbUpdate<DesignSystemVersionRoom>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DocumentationPageRoom = Entity.extend({\n designSystemVersionId: z.string(),\n documentationPageId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DocumentationPageRoom = z.infer<typeof DocumentationPageRoom>;\n\nexport type CreateDocumentationPageRoom = DbCreateInputOmit<DocumentationPageRoom>;\nexport type UpdateDocumentationPageRoom = DbUpdate<DocumentationPageRoom>;\n","import { z } from \"zod\";\n\nconst AnyRecord = z.record(z.any());\n\nconst NpmPackageVersionDist = AnyRecord.and(\n z.object({\n tarball: z.string(),\n })\n);\n\nconst NpmPackageVersion = AnyRecord.and(\n z.object({\n dist: NpmPackageVersionDist,\n })\n);\n\nexport const NpmPackage = AnyRecord.and(\n z.object({\n _id: z.string(),\n name: z.string(),\n\n // e.g. \"latest\": \"1.2.3\"\n \"dist-tags\": z.record(z.string(), z.string()),\n\n // \"1.2.3\": {...}\n versions: z.record(NpmPackageVersion),\n })\n);\n\nexport type NpmPackage = z.infer<typeof NpmPackage>;\n","import { z } from \"zod\";\n\nexport const NpmProxyTokenPayload = z.object({\n npmProxyRegistryConfigId: z.string(),\n});\n\nexport type NpmProxyTokenPayload = z.infer<typeof NpmProxyTokenPayload>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"../workspace\";\n\nexport const PersonalAccessToken = z.object({\n id: z.string(),\n userId: z.string(),\n name: z.string(),\n token: z.string(),\n createdAt: z.date(),\n hidden: z.boolean(),\n workspaceId: z.string().optional(),\n workspaceRole: WorkspaceRoleSchema.optional(),\n expireAt: z.date().optional(),\n scope: z.string().optional(),\n});\n\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessToken>;\n","import { z } from \"zod\";\n\nexport const ContentLoadInstruction = z.object({\n from: z.string(),\n to: z.string(),\n authorizationHeaderKvsId: z.string().optional(),\n timeout: z.number().optional(),\n});\n\nexport type ContentLoadInstruction = z.infer<typeof ContentLoadInstruction>;\n\nexport const ContentLoaderPayload = z\n .object({\n type: z.literal(\"Single\"),\n instruction: ContentLoadInstruction,\n })\n .or(\n z.object({\n type: z.literal(\"Multiple\"),\n loadingChunkSize: z.number().optional(),\n instructions: z.array(ContentLoadInstruction),\n })\n )\n .or(\n z.object({\n type: z.literal(\"S3\"),\n location: z.string(),\n })\n );\n\nexport type ContentLoaderPayload = z.infer<typeof ContentLoaderPayload>;\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const GetBlockDefinitionsResponse = z.object({\n definitions: z.array(PageBlockDefinition),\n});\n\nexport type GetBlockDefinitionsResponse = z.infer<typeof GetBlockDefinitionsResponse>;\n","import { PageBlockDataV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const PageBlockEditorModel = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModel = z.infer<typeof PageBlockEditorModel>;\n","import { z } from \"zod\";\nimport { PageBlockEditorModel } from \"./block\";\n\nexport const DocumentationPageEditorModel = z.object({\n blocks: z.array(PageBlockEditorModel),\n});\n\nexport type DocumentationPageEditorModel = z.infer<typeof DocumentationPageEditorModel>;\n","import { Schema } from \"prosemirror-model\";\n\nconst newSchema = {\n nodes: {\n paragraph: {\n name: \"paragraph\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"p\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.rich-text\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n reactComponent: {\n name: \"reactComponent\",\n spec: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n count: {\n default: 0,\n },\n },\n parseDOM: [\n {\n tag: \"react-component\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n count: {\n hasDefault: true,\n default: 0,\n },\n },\n defaultAttrs: {\n count: 0,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableRow: {\n name: \"tableRow\",\n spec: {\n tableRole: \"row\",\n content: \"(tableCell | tableHeader)*\",\n parseDOM: [\n {\n tag: \"tr\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n table: {\n name: \"table\",\n spec: {\n tableRole: \"table\",\n content: \"tableRow+\",\n group: \"defaultTable\",\n isolating: true,\n parseDOM: [\n {\n tag: \"table\",\n },\n ],\n },\n markSet: [],\n groups: [\"defaultTable\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableCell: {\n name: \"tableCell\",\n spec: {\n tableRole: \"cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"td\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableHeader: {\n name: \"tableHeader\",\n spec: {\n tableRole: \"header_cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"th\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableContainer: {\n name: \"tableContainer\",\n spec: {\n content: \"table\",\n group: \"block\",\n atom: true,\n draggable: false,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.table\",\n },\n variantId: {\n default: \"default\",\n },\n hasBorder: {\n default: true,\n },\n },\n parseDOM: [\n {\n tag: \"tableContainer\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.table\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n hasBorder: {\n hasDefault: true,\n default: true,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.table\",\n variantId: \"default\",\n hasBorder: true,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n image: {\n name: \"image\",\n spec: {\n group: \"block\",\n inline: false,\n draggable: true,\n attrs: {\n src: {\n default: null,\n },\n alt: {\n default: null,\n },\n title: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'img[src]:not([src^=\"data:\"])',\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n src: {\n hasDefault: true,\n default: null,\n },\n alt: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n src: null,\n alt: null,\n title: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n codeBlock: {\n name: \"codeBlock\",\n spec: {\n content: \"text*\",\n marks: \"\",\n group: \"block\",\n code: true,\n defining: true,\n attrs: {\n language: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"pre\",\n preserveWhitespace: \"full\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n language: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n language: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n hardBreak: {\n name: \"hardBreak\",\n spec: {\n group: \"inline\",\n inline: true,\n selectable: false,\n parseDOM: [\n {\n tag: \"br\",\n },\n ],\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: false,\n },\n text: {\n name: \"text\",\n spec: {\n group: \"inline\",\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: true,\n },\n heading: {\n name: \"heading\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n level: {\n default: 1,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"h1\",\n attrs: {\n level: 1,\n definitionId: \"io.supernova.block.title1\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h2\",\n attrs: {\n level: 2,\n definitionId: \"io.supernova.block.title2\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h3\",\n attrs: {\n level: 3,\n definitionId: \"io.supernova.block.title3\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h4\",\n attrs: {\n level: 4,\n definitionId: \"io.supernova.block.title4\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h5\",\n attrs: {\n level: 5,\n definitionId: \"io.supernova.block.title5\",\n variantId: \"default\",\n },\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n level: {\n hasDefault: true,\n default: 1,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n level: 1,\n definitionId: null,\n variantId: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n listItem: {\n name: \"listItem\",\n spec: {\n content: \"paragraph (paragraph | list)*\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"li\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n orderedList: {\n name: \"orderedList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n start: {\n default: 1,\n },\n },\n parseDOM: [\n {\n tag: \"ol\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n start: {\n hasDefault: true,\n default: 1,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.ordered-list\",\n variantId: \"default\",\n start: 1,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n bulletList: {\n name: \"bulletList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"ul\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.unordered-list\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n horizontalRule: {\n name: \"horizontalRule\",\n spec: {\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"div.node-horizontalRule\",\n },\n {\n tag: \"hr\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.divider\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n blockquote: {\n name: \"blockquote\",\n spec: {\n content: \"paragraph+\",\n group: \"block\",\n defining: true,\n attrs: {\n definitionId: {\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"blockquote\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n definitionId: \"io.supernova.block.blockquote\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n plainSection: {\n name: \"plainSection\",\n spec: {\n content: \"sectionItem\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section\",\n attrs: {\n \"data-section-type\": \"plain\",\n },\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tabsSection: {\n name: \"tabsSection\",\n spec: {\n content: \"sectionItem+\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"div\",\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItem: {\n name: \"sectionItem\",\n spec: {\n content: \"sectionItemColumn{1, 3}\",\n group: \"sectionItem\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n title: {\n default: \"\",\n },\n },\n parseDOM: [\n {\n tag: \"section-item\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItem\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: \"\",\n },\n },\n defaultAttrs: {\n id: null,\n title: \"\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItemColumn: {\n name: \"sectionItemColumn\",\n spec: {\n content: \"block+\",\n group: \"sectionItemColumn\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section-item-column\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItemColumn\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n doc: {\n name: \"doc\",\n spec: {\n content: \"(block|section)+\",\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n callout: {\n name: \"callout\",\n spec: {\n content: \"inline*\",\n group: \"block topLevel\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n default: \"default\",\n },\n type: {\n default: \"neutral\",\n },\n },\n parseDOM: [\n {\n tag: \"callout\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n type: {\n hasDefault: true,\n default: \"neutral\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.callout\",\n variantId: \"default\",\n type: \"neutral\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n blockNode: {\n name: \"blockNode\",\n spec: {\n group: \"block\",\n atom: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n columns: {\n default: 1,\n },\n items: {\n default: \"[]\",\n },\n },\n parseDOM: [\n {\n tag: \"block-node\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n columns: {\n hasDefault: true,\n default: 1,\n },\n items: {\n hasDefault: true,\n default: \"[]\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: null,\n variantId: null,\n columns: 1,\n items: \"[]\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n },\n marks: {\n link: {\n name: \"link\",\n rank: 0,\n spec: {\n inclusive: true,\n attrs: {\n href: {\n default: null,\n },\n target: {\n default: \"_blank\",\n },\n rel: {\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n default: null,\n },\n itemId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'a[href]:not([href *= \"javascript:\" i])',\n },\n ],\n },\n attrs: {\n href: {\n hasDefault: true,\n default: null,\n },\n target: {\n hasDefault: true,\n default: \"_blank\",\n },\n rel: {\n hasDefault: true,\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n hasDefault: true,\n default: null,\n },\n itemId: {\n hasDefault: true,\n default: null,\n },\n },\n instance: {\n type: \"link\",\n attrs: {\n href: null,\n target: \"_blank\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n itemId: null,\n },\n },\n },\n bold: {\n name: \"bold\",\n rank: 1,\n spec: {\n parseDOM: [\n {\n tag: \"strong\",\n },\n {\n tag: \"b\",\n },\n {\n style: \"font-weight\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"bold\",\n },\n },\n code: {\n name: \"code\",\n rank: 2,\n spec: {\n excludes: \"_\",\n code: true,\n parseDOM: [\n {\n tag: \"code\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"code\",\n },\n },\n italic: {\n name: \"italic\",\n rank: 3,\n spec: {\n parseDOM: [\n {\n tag: \"em\",\n },\n {\n tag: \"i\",\n },\n {\n style: \"font-style=italic\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"italic\",\n },\n },\n strike: {\n name: \"strike\",\n rank: 4,\n spec: {\n parseDOM: [\n {\n tag: \"s\",\n },\n {\n tag: \"del\",\n },\n {\n tag: \"strike\",\n },\n {\n style: \"text-decoration\",\n consuming: false,\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"strike\",\n },\n },\n },\n} as const;\n\nexport const pmSchema = new Schema(newSchema);\n","import { PageBlockEditorModel } from \"./model/block\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionPropertyType,\n PageBlockItemEmbedPropertyValue,\n PageBlockItemMultiRichTextPropertyValue,\n PageBlockItemRichTextPropertyValue,\n PageBlockItemUntypedPropertyValue,\n PageBlockItemV2,\n PageBlockText,\n} from \"@supernova-studio/model\";\n\nexport const BlockParsingUtils = {\n singleBlockItem(block: PageBlockEditorModel) {\n if (!block.data.items.length) throw new Error(`Block ${block.id} has no items`);\n if (block.data.items.length > 1) throw new Error(`Block ${block.id} has more than 1 item`);\n\n return block.data.items[0]!;\n },\n\n richTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemRichTextPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemRichTextPropertyValue.parse(objectValue);\n\n return richText;\n },\n\n multiRichTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemMultiRichTextPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemMultiRichTextPropertyValue.parse(objectValue);\n\n return richText;\n },\n\n embedPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemEmbedPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const embed = PageBlockItemEmbedPropertyValue.parse(objectValue);\n\n return embed;\n },\n\n objectPropertyValue(item: PageBlockItemV2, propertyKey: string) {\n const value = this.propertyValueOrThrow(item, propertyKey);\n\n if (typeof value !== \"object\") {\n throw new Error(`Value for property ${propertyKey} is expected to be an object, but instead is ${typeof value}`);\n }\n\n return value;\n },\n\n propertyValueOrThrow(item: PageBlockItemV2, propertyKey: string): PageBlockItemUntypedPropertyValue {\n const value = item.props[propertyKey];\n if (!value) throw new Error(`Property ${propertyKey} is not defined on block item`);\n\n return value;\n },\n};\n\nexport const BlockDefinitionUtils = {\n firstRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"RichText\");\n if (property) return property;\n return undefined;\n },\n\n firstMultiRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"MultiRichText\");\n if (property) return property;\n return undefined;\n },\n\n firstTableProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"RichText\");\n if (property) return property;\n return undefined;\n },\n\n firstEmbedProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"EmbedURL\");\n if (property) return property;\n return undefined;\n },\n\n richTextProperty(definition: PageBlockDefinition, propertyKey: string) {\n return this.property(definition, propertyKey, \"RichText\");\n },\n\n property(\n definition: PageBlockDefinition,\n propertyKey: string,\n expectedPropertyType?: PageBlockDefinitionPropertyType\n ) {\n const property = definition.item.properties.find(p => p.id === propertyKey);\n if (!property) {\n throw new Error(`Definition ${definition.id} doesn't contain property ${propertyKey}`);\n }\n\n if (expectedPropertyType && property.type !== expectedPropertyType) {\n throw new Error(\n `Property ${propertyKey} of definition ${definition.id} expected to be ${expectedPropertyType} but was ${property.type}`\n );\n }\n\n return property;\n },\n};\n","import * as Y from \"yjs\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionProperty,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockItemRichTextPropertyValue,\n PageBlockCalloutType,\n PageBlockItemMultiRichTextPropertyValue,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport { ProsemirrorNode, ProsemirrorMark } from \"./prosemirror/types\";\nimport { BlockDefinitionUtils, BlockParsingUtils } from \"./utils\";\nimport { DocumentationPageEditorModel } from \"./model\";\nimport { prosemirrorJSONToYXmlFragment } from \"y-prosemirror\";\nimport { pmSchema } from \"./prosemirror\";\n\n//\n// Types\n//\n\ntype BaseInput = {\n block: PageBlockEditorModel;\n definition: PageBlockDefinition;\n};\n\ntype InputWithProperty = BaseInput & {\n property: PageBlockDefinitionProperty;\n};\n\ntype RichTextInputWithValue = InputWithProperty & {\n richTextPropertyValue: PageBlockItemRichTextPropertyValue;\n};\n\ntype MultiRichTextInputWithValue = InputWithProperty & {\n multiRichTextPropertyValue: PageBlockItemMultiRichTextPropertyValue;\n};\n\n//\n// Implementation\n//\n\nexport function pageToYXmlFragment(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[],\n fragment: Y.XmlFragment\n): Y.XmlFragment {\n const doc = pageToProsemirrorDoc(page, definitions);\n return prosemirrorJSONToYXmlFragment(pmSchema, doc, fragment);\n}\n\nexport function pageToProsemirrorDoc(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[]\n): ProsemirrorNode {\n return {\n type: \"doc\",\n content: page.blocks\n .map(b => {\n const definition = blockDefinitionForBlock(b, definitions);\n return blockToProsemirrorNode(b, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function blockDefinitionForBlock(block: PageBlockEditorModel, definitions: PageBlockDefinition[]) {\n const definition = definitions.find(d => d.id === block.data.packageId);\n if (!definition) throw new Error(`Could not find definition for ${block.id} (${block.data.packageId})`);\n\n return definition;\n}\n\nexport function blockToProsemirrorNode(\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorNode | null {\n // Single rich text\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return serializeAsRichTextBlock({\n block: block,\n definition: definition,\n property: richTextProperty,\n });\n }\n\n // Multi rich text\n const multiRichTextProperty = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n if (multiRichTextProperty) {\n return serializeAsMultiRichTextBlock({\n block: block,\n definition: definition,\n property: multiRichTextProperty,\n });\n }\n\n // Embed\n const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);\n const embedType = serializeEmbedType(block.data.packageId);\n if (embedProperty && embedType) {\n return serializeAsEmbed(\n {\n block: block,\n definition: definition,\n property: embedProperty,\n },\n embedType\n );\n }\n\n // Divider\n if (block.data.packageId === \"io.supernova.block.divider\") {\n return serializeAsDivider({\n block: block,\n definition: definition,\n });\n }\n\n return serializeAsCustomBlock(block, definition);\n}\n\n//\n// Single rich text blocks\n//\n\nfunction serializeAsRichTextBlock(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: richTextProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = BlockParsingUtils.richTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: RichTextInputWithValue = { ...input, richTextPropertyValue: textPropertyValue };\n\n const style = richTextProperty.options?.richTextStyle ?? \"Default\";\n\n switch (style) {\n case \"Callout\":\n return serializeAsCallout(enrichedInput);\n case \"Default\":\n return serializeAsParagraph(enrichedInput);\n\n case \"Quote\":\n return serializeAsBlockquote(enrichedInput);\n\n case \"Title1\":\n case \"Title2\":\n case \"Title3\":\n case \"Title4\":\n case \"Title5\":\n return serializeAsHeading(enrichedInput);\n }\n}\n\nfunction serializeAsParagraph(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"paragraph\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsHeading(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"heading\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n level: richTextHeadingLevel(input.property),\n },\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsBlockquote(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"blockquote\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsCallout(input: RichTextInputWithValue): ProsemirrorNode {\n const calloutType = input.richTextPropertyValue.calloutType ?? \"Info\";\n\n return {\n type: \"callout\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n type: serializeCalloutType(calloutType),\n },\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\n//\n// Multi rich text blocks\n//\n\nfunction serializeAsMultiRichTextBlock(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: richTextProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = BlockParsingUtils.multiRichTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: MultiRichTextInputWithValue = { ...input, multiRichTextPropertyValue: textPropertyValue };\n\n const style = richTextProperty.options?.multiRichTextStyle ?? \"Default\";\n\n switch (style) {\n case \"Default\":\n return serializeAsMultiParagraph(enrichedInput);\n\n case \"OL\":\n return serializeAsOrderedList(enrichedInput);\n\n case \"UL\":\n return serializeAsUnorderedList(enrichedInput);\n }\n}\n\nfunction serializeAsMultiParagraph(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"bulletlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsOrderedList(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"orderedlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n start: \"1\",\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsUnorderedList(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"bulletlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsListItem(text: PageBlockText): ProsemirrorNode {\n return {\n type: \"listitem\",\n content: [\n {\n type: \"paragraph\",\n content: serializeRichText(text),\n },\n ],\n };\n}\n\n//\n// Embeds\n//\n\nfunction serializeAsEmbed(input: InputWithProperty, embedType: string): ProsemirrorNode {\n const { block, definition, property: embedProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const embedValue = BlockParsingUtils.embedPropertyValue(blockItem, embedProperty.id);\n\n return {\n type: \"embed\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n type: embedType,\n url: embedValue.value,\n height: embedValue.height,\n caption: embedValue.caption,\n },\n };\n}\n\nfunction serializeEmbedType(blockDefinitionId: string): string | undefined {\n switch (blockDefinitionId) {\n case \"io.supernova.block.embed\":\n return \"generic\";\n case \"io.supernova.block.embed-youtube\":\n return \"youtube\";\n case \"io.supernova.block.embed-figma\":\n return \"figma\";\n }\n\n return undefined;\n}\n\n//\n// Divider\n//\n\nfunction serializeAsDivider(input: BaseInput): ProsemirrorNode {\n return {\n type: \"horizontalrule\",\n attrs: serializeBlockNodeAttributes(input),\n };\n}\n\n//\n// Attributes\n//\n\nfunction serializeBlockNodeAttributes(input: BaseInput) {\n const { block } = input;\n\n return {\n id: block.id,\n definitionId: block.data.packageId,\n ...(block.data.variantId && { variantId: block.data.variantId }),\n };\n}\n\nfunction richTextHeadingLevel(property: PageBlockDefinitionProperty): number | undefined {\n const style = property.options?.richTextStyle;\n if (!style) return undefined;\n\n switch (style) {\n case \"Title1\":\n return 1;\n case \"Title2\":\n return 2;\n case \"Title3\":\n return 3;\n case \"Title4\":\n return 4;\n case \"Title5\":\n return 5;\n case \"Callout\":\n case \"Default\":\n case \"Quote\":\n return undefined;\n }\n}\n\nfunction serializeCalloutType(calloutType: PageBlockCalloutType) {\n switch (calloutType) {\n case \"Error\":\n return \"error\";\n case \"Info\":\n return \"neutral\";\n case \"Success\":\n return \"success\";\n case \"Warning\":\n return \"warning\";\n }\n}\n\n//\n// Rich text\n//\n\nfunction serializeRichText(richText: PageBlockText) {\n return richText.spans.map(serializeTextSpan).flat();\n}\n\nfunction serializeTextSpan(span: PageBlockTextSpan): ProsemirrorNode[] {\n const marks = span.attributes.map(serializeTextSpanAttribute);\n\n const textParts = span.text.split(\"\\n\");\n const interspersed: ProsemirrorNode[] = [\n {\n type: \"text\",\n text: textParts[0],\n marks: marks,\n },\n ];\n\n for (let i = 1; i < textParts.length; i++) {\n interspersed.push(\n {\n type: \"hardBreak\",\n },\n {\n type: \"text\",\n text: textParts[i],\n marks: marks,\n }\n );\n }\n\n return interspersed;\n}\n\nfunction serializeTextSpanAttribute(spanAttribute: PageBlockTextSpanAttribute): ProsemirrorMark {\n switch (spanAttribute.type) {\n case \"Bold\":\n return { type: \"bold\", attrs: {} };\n case \"Italic\":\n return { type: \"italic\", attrs: {} };\n case \"Strikethrough\":\n return { type: \"strikethrough\", attrs: {} };\n case \"Code\":\n return { type: \"code\", attrs: {} };\n case \"Link\":\n return {\n type: \"link\",\n attrs: {\n itemId: spanAttribute.documentationItemId,\n href: spanAttribute.link,\n target: spanAttribute.openInNewWindow ? \"_blank\" : \"_self\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n },\n };\n }\n}\n\nexport function serializeAsCustomBlock(block: PageBlockEditorModel, definition: PageBlockDefinition): ProsemirrorNode {\n const items = block.data.items.map(i => {\n return {\n id: i.id,\n props: i.props,\n linksTo: i.linksTo,\n };\n });\n\n return {\n type: \"blockNode\",\n attrs: {\n id: block.id,\n definitionId: block.data.packageId,\n variantId: block.data.variantId,\n items: JSON.stringify(items),\n },\n };\n}\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return !!item;\n}\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\n\nexport function getMockPageBlockDefinitions(): PageBlockDefinition[] {\n // TODO Blocks\n return blocks;\n}\n\nconst blocks: PageBlockDefinition[] = [\n {\n id: \"io.supernova.block.rich-text\",\n name: \"Text\",\n description: \"Plain text\",\n category: \"Text\",\n searchKeywords: [\"paragraph\", \"rich text\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: {\n placeholder: \"Start writing with plain text\",\n richTextStyle: \"Default\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use rich text block to write text and add additional formatting to it.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/text-HxZ9ssJR\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title1\",\n name: \"Title 1\",\n description: \"Main sections within the page\",\n category: \"Text\",\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: { placeholder: \"Title 1\", richTextStyle: \"Title1\" },\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for main sections within the page, introducing broad topics or themes.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title2\",\n name: \"Title 2\",\n description: \"Section subheadings\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 2\", richTextStyle: \"Title2\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for subheadings, indicating major subsections under the main sections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title3\",\n name: \"Title 3\",\n description: \"Further subsections\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 3\", richTextStyle: \"Title3\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for further subsections, detailing specific topics within the major subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title4\",\n name: \"Title 4\",\n description: \"Details in subsections\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 4\", richTextStyle: \"Title4\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for sub-divisions, elaborating on details within the subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title5\",\n name: \"Title 5\",\n description: \"Nuanced details or sub-points\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 5\", richTextStyle: \"Title5\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for nuanced details or specific sub-points within sub-divisions.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.ordered-list\",\n name: \"Ordered list\",\n description: \"A list with numbers\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"ol\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n description: undefined,\n options: { multiRichTextStyle: \"OL\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Display a sequence of numbers or letters to indicate order.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.unordered-list\",\n name: \"Unordered list\",\n description: \"A list with bullet points\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"ul\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n description: undefined,\n options: { multiRichTextStyle: \"UL\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"A list of items displayed with bullet points without a specific sequence.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.divider\",\n name: \"Divider\",\n description: \"A section divider\",\n category: \"Layout\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"hr\", \"line\", \"rule\", \"separator\"],\n item: {\n properties: [\n {\n id: \"divider\",\n name: \"Divider\",\n type: \"Divider\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"divider\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"A thematic break or horizontal rule, often used to separate content or define a change in topic.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/divider-tLuxooLH\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.blockquote\",\n name: \"Blockquote\",\n description: \"Display a quotation\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"cite\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Empty quote\", richTextStyle: \"Quote\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use a blockquote to set off a quotation or cited content from the main text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/blockquote-zYWAsb6X\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.callout\",\n name: \"Callout\",\n description: \"Highlight a section of text\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"banner\", \"alert\", \"note\", \"tip\", \"warning\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { richTextStyle: \"Callout\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to highlight a section of text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/callout-ZPlZObD1\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.image\",\n name: \"Image\",\n description: \"Display an image or Figma frame\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"image\", \"figma\", \"frame\", \"picture\", \"photo\"],\n item: {\n properties: [\n {\n id: \"image\",\n name: \"Image\",\n type: \"Image\",\n description: undefined,\n options: { allowCaption: true },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"image\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to display an image or Figma frame.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/image-Ue8VdT8B\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.shortcut-links\",\n name: \"Shortcut links\",\n description: \"Link to a page or external URL\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [],\n item: {\n properties: [\n {\n id: \"block.links.property.title\",\n name: \"Title\",\n type: \"Text\",\n description: undefined,\n options: { textStyle: \"Title5\" },\n variantOptions: undefined,\n },\n {\n id: \"block.links.property.description\",\n name: \"Short description\",\n type: \"Text\",\n description: undefined,\n options: { textStyle: \"Default\", color: \"NeutralFaded\" },\n variantOptions: undefined,\n },\n {\n id: \"block.links.property.image\",\n name: \"Image\",\n type: \"Image\",\n description: undefined,\n options: { width: \"Medium\", aspectRatio: \"Landscape\", allowCaption: false },\n variantOptions: {\n iconOnTop: { width: \"Icon\", aspectRatio: \"Square\" },\n iconOnLeft: { width: \"Icon\", aspectRatio: \"Square\" },\n },\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"imageOnTop\",\n name: \"Image on top\",\n image: \"assets/variant-image-on-top.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"imageOnLeft\",\n name: \"Image on left\",\n image: \"assets/variant-image-on-left.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n columnResizing: \"Hug\",\n children: [\"block.links.property.image\"],\n },\n {\n type: \"Column\",\n gap: \"Small\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n },\n ],\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"iconOnTop\",\n name: \"Icon on top\",\n image: \"assets/variant-icon-on-top.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"iconOnLeft\",\n name: \"Icon on left\",\n image: \"assets/variant-icon-on-left.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n columnResizing: \"Hug\",\n children: [\"block.links.property.image\"],\n },\n {\n type: \"Column\",\n gap: \"Small\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n },\n ],\n },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"imageOnTop\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: -1, allowLinks: true },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use link block to create single or multiple links to places in or out of your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/links/shortcuts/general-jVfNifo4\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.color-accessibility-grid\",\n name: \"Accessibility Color Grid\",\n description: \"Visualize accessibility of your color tokens.\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"accessibility\", \"grid\", \"contrast\", \"blind\", \"impairment\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: { allowedTypes: [\"Color\"], allowPropertySelection: false, allowThemeSelection: false },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Group\", maxSelected: 2 },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Visualize accessibility of your colors and compare token groups to one another.\",\n documentationLink: \"https://learn.supernova.io\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed\",\n name: \"Embed\",\n description: \"Embed a generic URL\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"url\", \"iframe\", \"site\", \"import\"],\n item: {\n properties: [\n {\n id: \"embedUrl\",\n name: \"Embed URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: true,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embedUrl\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed any page to your documentation as an iframe.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/embed/public-url-2ZeRQ332\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-youtube\",\n name: \"YouTube\",\n description: \"Embed a Youtube video\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"video\", \"player\", \"upload\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Youtube URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: false,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(youtube.com|youtu.?be)/.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a YouTube video to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/youtube-Gh8VUrSF\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-lottie\",\n name: \"Lottie animation\",\n description: \"Preview a Lottie animation\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"lottie\", \"animation\", \"rive\", \"json\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Lottie URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex:\n \"^(https?:\\\\/\\\\/)?([\\\\w\\\\d\\\\-\\\\.]+)\\\\.([\\\\w]+)(\\\\/[\\\\w\\\\d_\\\\-\\\\.\\\\/]*)?(\\\\.json|\\\\.lottie)$\\n\",\n },\n variantOptions: undefined,\n },\n {\n id: \"autoplay\",\n name: \"Autoplay\",\n type: \"Boolean\",\n description: undefined,\n options: { defaultValue: true },\n variantOptions: undefined,\n },\n {\n id: \"loop\",\n name: \"Loop\",\n type: \"Boolean\",\n description: undefined,\n options: { defaultValue: true },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\", \"autoplay\", \"loop\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Lottie animation to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/lottie-preview-7CqFdGv9\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.storybook\",\n name: \"Storybook\",\n description: \"Embed Storybook canvas\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"storybook\", \"story\", \"stories\", \"example\", \"preview\", \"code\", \"react\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Storybook URL\",\n type: \"Storybook\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Storybook story to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/storybook-1EGPhwBl\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-figma\",\n name: \"Figma embed\",\n description: \"Embed a Figma canvas or prototype\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"figma\", \"design\", \"prototype\", \"canvas\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Figma URl\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(figma.com)/.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Figma canvas or prototype to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/figma/embed-figma-GPNJsT8A\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.markdown\",\n name: \"Markdown\",\n description: \"Render Markdown URL\",\n category: \"Other\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"md\", \"embed\", \"api\", \"table\", \"mdx\"],\n item: {\n properties: [\n {\n id: \"markdownUrl\",\n name: \"Markdown URL\",\n type: \"Markdown\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"markdownUrl\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed and process markdown from URL.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/markdown/general-B8wQVOem\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.table\",\n name: \"Table\",\n description: \"Display a simple table\",\n category: \"Layout\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"grid\", \"data\", \"spreadsheet\", \"api\"],\n item: {\n properties: [\n {\n id: \"table\",\n name: \"Table\",\n type: \"Table\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"table\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for displaying data in a tabular format.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/layout/table-R8KGnxej\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-detail\",\n name: \"Token detail\",\n description: \"Show a single design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table Row\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid Item\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack item\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Entity\", maxSelected: 1 },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show a single design token.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-detail-04\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-list\",\n name: \"Token list\",\n description: \"Show a list of design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\", \"accessibility\", \"contrast\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-contrast-grid\",\n name: \"Color contrast grid\",\n image: \"assets/variant-color-contrast-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Entity\", maxSelected: 0 },\n },\n editorOptions: {\n onboarding: {\n helpText:\n \"Show a list of design tokens. You can use this block to create a list of colors, typography, spacing, grid, or any other token type.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-list-06\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-group\",\n name: \"Token group\",\n description: \"Show a group of design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\", \"accessibility\", \"contrast\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-contrast-grid\",\n name: \"Color contrast grid\",\n image: \"assets/variant-color-contrast-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Group\", maxSelected: 1 },\n },\n editorOptions: {\n onboarding: {\n helpText:\n \"Show a group of design tokens. You can use this block to create a list of colors, typography, spacing, grid, or any other token type.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-group-09\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n];\n","import * as Y from \"yjs\";\nimport { ProsemirrorNode, ProsemirrorMark } from \"./prosemirror/types\";\nimport {\n PageBlockDefinition,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockDefinitionProperty,\n PageBlockCalloutType,\n PageBlockItemRichTextPropertyValue,\n PageBlockItemMultiRichTextPropertyValue,\n PageBlockItemEmbedPropertyValue,\n PageBlockItemV2,\n PageBlockItemTextPropertyValue,\n PageBlockItemUntypedPropertyValue,\n PageBlockItemImageValue,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport { DocumentationPageEditorModel } from \"./model/page\";\nimport { BlockDefinitionUtils } from \"./utils\";\nimport { yXmlFragmentToProsemirrorJSON } from \"y-prosemirror\";\n\nexport function yXmlFragmetToPage(\n fragment: Y.XmlFragment,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const prosemirrorJson = yXmlFragmentToProsemirrorJSON(fragment) as ProsemirrorNode;\n return prosemirrorDocToPage(prosemirrorJson, definitions);\n}\n\nexport function prosemirrorDocToPage(\n prosemirrorDoc: ProsemirrorNode,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const definitionsById = mapByUnique(definitions, d => d.id);\n\n return {\n blocks: (prosemirrorDoc.content ?? [])\n .map(prosemirrorNode => {\n const definitionId = prosemirrorNode.attrs?.definitionId;\n if (!definitionId) throw new Error(`Node is missing defintion id`);\n if (typeof definitionId !== \"string\")\n throw new Error(`Definition id is ${typeof definitionId}, has to be string`);\n\n const definition = definitionsById.get(definitionId);\n if (!definition) throw new Error(`Definition by id ${definitionId} doesn't exist`);\n\n return prosemirrorNodeToBlock(prosemirrorNode, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function prosemirrorNodeToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return parseAsRichText(prosemirrorNode, definition, richTextProperty);\n }\n\n const multiRichTextProperty = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n if (multiRichTextProperty) {\n return parseAsMultiRichText(prosemirrorNode, definition, multiRichTextProperty);\n }\n\n const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);\n if (prosemirrorNode.type === \"embed\" && embedProperty) {\n return parseAsEmbed(prosemirrorNode, definition, embedProperty);\n }\n\n if (definition.id === \"io.supernova.block.divider\") {\n return parseAsDivider(prosemirrorNode, definition);\n }\n\n return parseAsCustomBlock(prosemirrorNode, definition);\n}\n\n//\n// Single rich text\n//\n\nfunction parseAsRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n const calloutType = parseCalloutType(parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"type\"));\n\n return {\n // TODO Artem: indent\n id: id,\n\n ...(variantId && { variantId: variantId }),\n\n data: {\n packageId: definition.id,\n indentLevel: 0,\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n // Required\n value: parseRichText(prosemirrorNode.content ?? []),\n\n // Optional\n ...(calloutType && { calloutType: calloutType }),\n } satisfies PageBlockItemRichTextPropertyValue,\n },\n },\n ],\n },\n };\n}\n\nfunction parseCalloutType(prosemirrorCalloutType: string | undefined): PageBlockCalloutType | undefined {\n if (!prosemirrorCalloutType) return undefined;\n\n switch (prosemirrorCalloutType) {\n case \"error\":\n return \"Error\";\n case \"neutral\":\n return \"Info\";\n case \"success\":\n return \"Success\";\n case \"warning\":\n return \"Warning\";\n }\n}\n\n//\n// Multi rich text\n//\n\nfunction parseAsMultiRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n) {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n return {\n // TODO Artem: indent\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n // Required\n value: (prosemirrorNode.content ?? [])\n .map(listItem => {\n if (listItem.type !== \"listitem\") return null;\n if (!listItem.content?.length) return parseRichText([]);\n\n const paragraph = listItem.content[0];\n if (paragraph.type !== \"paragraph\") return parseRichText([]);\n\n return parseRichText(paragraph.content ?? []);\n })\n .filter(nonNullFilter),\n } satisfies PageBlockItemMultiRichTextPropertyValue,\n },\n },\n ],\n },\n };\n}\n\n//\n// Rich text\n//\n\nfunction parseRichText(spans: ProsemirrorNode[]): PageBlockText {\n return {\n spans: spans.map(parseRichTextSpan).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextSpan(span: ProsemirrorNode): PageBlockTextSpan | null {\n if (span.type !== \"text\" || !span.text) return null;\n\n const marks = span.marks ?? [];\n\n return {\n text: span.text,\n attributes: marks.map(parseRichTextAttribute).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextAttribute(mark: ProsemirrorMark): PageBlockTextSpanAttribute | null {\n switch (mark.type) {\n case \"bold\":\n return { type: \"Bold\" };\n case \"italic\":\n return { type: \"Italic\" };\n case \"strikethrough\":\n return { type: \"Strikethrough\" };\n case \"code\":\n return { type: \"Code\" };\n case \"link\":\n const itemId = mark.attrs?.itemId;\n const href = mark.attrs?.href;\n\n return {\n type: \"Link\",\n openInNewWindow: mark.attrs?.target !== \"_self\",\n documentationItemId: itemId,\n link: href,\n };\n }\n\n return null;\n}\n\n//\n// Embed\n//\n\nfunction parseAsEmbed(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n const url = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"url\");\n const caption = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"caption\");\n const height = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"height\");\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n value: url,\n caption: caption,\n height: height,\n } as PageBlockItemEmbedPropertyValue,\n },\n },\n ],\n },\n };\n}\n\n//\n// Divider\n//\n\nfunction parseAsDivider(prosemirrorNode: ProsemirrorNode, definition: PageBlockDefinition): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [{ id: id, props: {} }],\n },\n };\n}\n\n//\n// Custom block\n//\n\nfunction parseAsCustomBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n const itemsString = parseProsemirrorBlockAttribute(prosemirrorNode, \"items\");\n const itemsJson = JSON.parse(itemsString);\n if (!Array.isArray(itemsJson)) {\n console.error(\"Block `items` property must be a json array\");\n return null;\n }\n\n const parsedItems = itemsJson.map(i => parseItem(i, definition));\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: parsedItems,\n },\n };\n}\n\nfunction parseItem(rawItem: unknown, definition: PageBlockDefinition): PageBlockItemV2 | null {\n const parsedItem = PageBlockItemV2.safeParse(rawItem);\n if (!parsedItem.success) {\n return null;\n }\n\n const sanitizedProps: Record<string, PageBlockItemUntypedPropertyValue> = {};\n\n for (const property of definition.item.properties) {\n const value = parsedItem.data.props[property.id];\n if (!value) {\n return null;\n }\n\n // Validate\n switch (property.type) {\n case \"Text\":\n PageBlockItemTextPropertyValue.parse(value);\n break;\n\n case \"EmbedURL\":\n PageBlockItemEmbedPropertyValue.parse(value);\n break;\n\n case \"Image\":\n PageBlockItemImageValue.parse(value);\n break;\n\n default:\n return null;\n }\n\n sanitizedProps[property.id] = value;\n }\n\n return {\n id: parsedItem.data.id,\n linksTo: parsedItem.data.linksTo,\n props: sanitizedProps,\n };\n}\n\n//\n// Attributes\n//\n\nfunction parseProsemirrorBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n const attributeValue = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, attributeName); //prosemirrorNode.attrs?.[attributeName];\n if (!attributeValue) {\n throw new Error(`Attribute ${attributeName} was not defined`);\n }\n\n return attributeValue;\n}\n\nfunction parseProsemirrorOptionalBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n return prosemirrorNode.attrs?.[attributeName] ?? undefined;\n}\n\n//\n// Utils\n//\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return item !== null;\n}\n\nfunction mapByUnique<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V> {\n const result = new Map<K, V>();\n for (const item of items) {\n result.set(keyFn(item), item);\n }\n return result;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../model/src/auth/plugin-oauth-request.ts","../../model/src/billing/card.ts","../../model/src/billing/checkoutSession.ts","../../model/src/billing/customer.ts","../../model/src/billing/features.ts","../../model/src/billing/invoice.ts","../../model/src/billing/portalSession.ts","../../model/src/billing/price.ts","../../model/src/billing/product.ts","../../model/src/billing/subscription.ts","../../model/src/dsm/assets/asset-reference.ts","../../model/src/dsm/assets/asset-value.ts","../../model/src/dsm/assets/asset.ts","../../model/src/dsm/data-sources/data-source.ts","../../model/src/dsm/data-sources/import-job.ts","../../model/src/common/entity.ts","../../model/src/common/object-meta.ts","../../model/src/dsm/data-sources/import-summary.ts","../../model/src/dsm/elements/data/base.ts","../../model/src/dsm/elements/data/blur.ts","../../model/src/dsm/elements/data/dimension.ts","../../model/src/dsm/elements/data/border-radius.ts","../../model/src/dsm/elements/data/border-width.ts","../../model/src/dsm/elements/data/border.ts","../../model/src/dsm/elements/data/color.ts","../../model/src/dsm/elements/data/opacity.ts","../../model/src/dsm/elements/data/component.ts","../../model/src/dsm/elements/data/documentation-block-v1.ts","../../model/src/dsm/elements/raw-element.ts","../../model/src/dsm/properties/property-definition.ts","../../model/src/dsm/properties/property-value.ts","../../model/src/dsm/elements/primitives/point.ts","../../model/src/dsm/elements/primitives/size.ts","../../model/src/helpers/db.ts","../../model/src/helpers/nullish-to-optional.ts","../../model/src/dsm/elements/data/documentation-block-v2.ts","../../model/src/dsm/elements/data/documentation-page-v1.ts","../../model/src/dsm/elements/data/documentation.ts","../../model/src/dsm/elements/data/documentation-page-v2.ts","../../model/src/dsm/elements/data/duration.ts","../../model/src/dsm/elements/data/figma-file-structure.ts","../../model/src/dsm/elements/data/figma-node-reference.ts","../../model/src/dsm/elements/data/font-family.ts","../../model/src/dsm/elements/data/font-size.ts","../../model/src/dsm/elements/data/font-weight.ts","../../model/src/dsm/elements/data/gradient.ts","../../model/src/dsm/elements/data/group.ts","../../model/src/dsm/elements/data/letter-spacing.ts","../../model/src/dsm/elements/data/line-height.ts","../../model/src/dsm/elements/data/paragraph-indent.ts","../../model/src/dsm/elements/data/paragraph-spacing.ts","../../model/src/dsm/elements/data/product-copy.ts","../../model/src/dsm/elements/data/shadow.ts","../../model/src/dsm/elements/data/size.ts","../../model/src/dsm/elements/data/space.ts","../../model/src/dsm/elements/data/string.ts","../../model/src/dsm/elements/data/text-case.ts","../../model/src/dsm/elements/data/text-decoration.ts","../../model/src/dsm/elements/data/typography.ts","../../model/src/dsm/elements/data/visibility.ts","../../model/src/dsm/elements/data/z-index.ts","../../model/src/dsm/elements/base.ts","../../model/src/dsm/elements/component.ts","../../model/src/dsm/elements/documentation-page-v1.ts","../../model/src/dsm/elements/documentation-page-v2.ts","../../model/src/dsm/elements/figma-file-structures.ts","../../model/src/dsm/elements/figma-node-reference.ts","../../model/src/dsm/elements/group.ts","../../model/src/dsm/elements/page-block-v2.ts","../../model/src/dsm/elements/theme.ts","../../model/src/dsm/elements/tokens.ts","../../model/src/dsm/import/support/figma-files.ts","../../model/src/dsm/import/support/import-context.ts","../../model/src/dsm/import/support/import-model-collections.ts","../../model/src/dsm/import/image.ts","../../model/src/dsm/import/component.ts","../../model/src/dsm/import/base.ts","../../model/src/dsm/import/theme.ts","../../model/src/dsm/import/tokens.ts","../../model/src/dsm/import/figma-frames.ts","../../model/src/dsm/import/data-source.ts","../../model/src/dsm/import/warning.ts","../../model/src/dsm/documentation/block-definitions/aux.ts","../../model/src/dsm/documentation/block-definitions/definition.ts","../../model/src/dsm/documentation/block-definitions/item.ts","../../model/src/dsm/documentation/block-definitions/variant.ts","../../model/src/dsm/documentation/group.ts","../../model/src/dsm/documentation/page.ts","../../model/src/dsm/design-system.ts","../../model/src/workspace/npm-registry-settings.ts","../../model/src/workspace/sso-provider.ts","../../model/src/workspace/user-invite.ts","../../model/src/workspace/workspace-role.ts","../../model/src/workspace/workspace-context.ts","../../model/src/workspace/workspace-create.ts","../../model/src/utils/validation.ts","../../model/src/workspace/workspace-invitations.ts","../../model/src/workspace/workspace-membership.ts","../../model/src/workspace/workspace.ts","../../model/src/dsm/desing-system-create.ts","../../model/src/dsm/desing-system-update.ts","../../model/src/dsm/published-doc-page.ts","../../model/src/dsm/published-doc.ts","../../model/src/codegen/export-jobs.ts","../../model/src/codegen/exporter-workspace-membership-role.ts","../../model/src/codegen/exporter-workspace-membership.ts","../../model/src/codegen/exporter.ts","../../model/src/codegen/git-providers.ts","../../model/src/codegen/pulsar.ts","../../model/src/custom-domains/custom-domains.ts","../../model/src/docs-server/session.ts","../../model/src/users/linked-integrations.ts","../../model/src/users/user-identity.ts","../../model/src/users/user-profile.ts","../../model/src/users/user.ts","../../model/src/feature-flags/feature-flags.ts","../../model/src/integrations/external-oauth-request.ts","../../model/src/integrations/oauth-providers.ts","../../model/src/integrations/oauth-token.ts","../../model/src/multiplayer/design-system-version-room.ts","../../model/src/multiplayer/documentation-page-room.ts","../../model/src/npm/npm-package.ts","../../model/src/npm/npm-proxy-token-payload.ts","../../model/src/tokens/personal-access-token.ts","../../model/src/utils/content-loader-instruction.ts","../src/api/responses/get-block-definitions.ts","../src/docs-editor/model/block.ts","../src/docs-editor/model/page.ts","../src/docs-editor/prosemirror/schema.ts","../src/docs-editor/utils.ts","../src/docs-editor/blocks-to-prosemirror.ts","../src/docs-editor/mock.ts","../src/docs-editor/prosemirror-to-blocks.ts"],"names":["z","blocks","recursiveFigmaFileStructureToMap","zeroNumberByDefault","DS_NAME_MIN_LENGTH","DS_NAME_MAX_LENGTH","DS_DESC_MIN_LENGTH","DS_DESC_MAX_LENGTH","GitProviderNames","OAuthProviderNames","nonNullFilter"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nexport const PluginOAuthRequestSchema = z.object({\n id: z.string(),\n codeChallenge: z.string(),\n readKey: z.string(),\n writeKey: z.string(),\n readKeyConsumed: z.boolean(),\n writeKeyConsumed: z.boolean(),\n oAuthCode: z.string().optional(),\n createdAt: z.date(),\n});\n\nexport type PluginOAuthRequest = z.infer<typeof PluginOAuthRequestSchema>;\n","import { z } from \"zod\";\n\nexport const CardSchema = z.object({\n cardId: z.string().nullish(),\n last4: z.string().length(4).nullish(),\n expiryMonth: z.string().nullish(),\n expiryYear: z.string().nullish(),\n brand: z.string().nullish(),\n name: z.string().nullish(),\n});\n\nexport type Card = z.infer<typeof CardSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripeCheckoutBodyInputSchema = z.object({\n priceId: z.string(),\n successUrl: z.string().url(),\n cancelUrl: z.string().url(),\n quantity: z.number().int().min(1).optional(),\n});\n\nexport const PostStripeCheckoutOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripeCheckoutInput = z.infer<typeof PostStripeCheckoutBodyInputSchema>;\nexport type StripeCheckoutOutput = z.infer<typeof PostStripeCheckoutOutputSchema>;\n","import { z } from \"zod\";\n\nexport const Customer = z.object({\n id: z.string(),\n});\n\nexport const Address = z.object({\n street1: z.string().optional(),\n street2: z.string().optional(),\n city: z.string().optional(),\n postal: z.string().optional(),\n country: z.string().optional(),\n state: z.string().optional(),\n});\n\nexport const BillingDetails = z.object({\n address: Address.optional(),\n email: z.string().optional(),\n companyName: z.string().optional(),\n companyId: z.string().optional(),\n notes: z.string().optional(),\n vat: z.string().optional(),\n poNumber: z.string().optional(),\n});\n\nexport type Customer = z.infer<typeof Customer>;\nexport type Address = z.infer<typeof Address>;\nexport type BillingDetails = z.infer<typeof BillingDetails>;\n","import { z } from \"zod\";\n\nconst featureLimitedSchema = z.object({\n max: z.number(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureToggleSchema = z.object({\n enabled: z.boolean(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureWithImportJobsSchema = featureLimitedSchema.extend({\n noImportJobsErrorMessage: z.string(),\n noImportJobsErrorReason: z.string(),\n});\n\nexport const FeaturesSummary = z.object({\n designSystems: featureLimitedSchema,\n designSystemSources: featureWithImportJobsSchema,\n designSystemVersions: featureLimitedSchema,\n themes: featureLimitedSchema,\n brands: featureLimitedSchema,\n codegenSchedules: featureLimitedSchema,\n publicDocumentation: featureToggleSchema,\n customDocumentationUrl: featureToggleSchema,\n customDocumentationViewButton: featureToggleSchema,\n designSystemSourceAutoImport: featureToggleSchema,\n designSystemSlug: featureToggleSchema,\n ipWhitelisting: featureToggleSchema,\n npmRegistry: featureToggleSchema,\n sso: featureToggleSchema,\n workspacePaidSeats: featureLimitedSchema,\n workspaceViewers: featureLimitedSchema,\n customDocumentationExporter: featureToggleSchema,\n});\n\nexport type FeatureLimitedDetails = z.infer<typeof featureLimitedSchema>;\nexport type FeatureToggleDetails = z.infer<typeof featureToggleSchema>;\nexport type FeatureWithImportJobsDetails = z.infer<typeof featureWithImportJobsSchema>;\nexport type FeaturesSummary = z.infer<typeof FeaturesSummary>;\n","import { z } from \"zod\";\nimport { CardSchema } from \"./card\";\n\nexport const InvoiceSchema = z.object({\n id: z.string(),\n number: z.string(),\n amount_due: z.number(),\n date: z.date(),\n hostedUrl: z.string().url(),\n card: CardSchema.nullish(),\n});\n\nexport const PeriodSchema = z.object({\n start: z.date(),\n end: z.date(),\n});\n\nexport const InvoiceLineSchema = z.object({\n amount: z.number(),\n period: PeriodSchema,\n proration: z.boolean(),\n description: z.string(),\n type: z.string(),\n});\n\nexport const InvoiceCouponSchema = z.object({\n amount_off: z.number(),\n percent_off: z.number(),\n name: z.string(),\n});\n\nexport type Invoice = z.infer<typeof InvoiceSchema>;\nexport type InvoiceLine = z.infer<typeof InvoiceLineSchema>;\nexport type InvoiceCoupon = z.infer<typeof InvoiceCouponSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripePortalUpdateSessionBodyInputSchema = z.object({\n priceId: z.string(),\n numberOfSeats: z.number().int(),\n});\nexport const PostStripePortalSessionBodyInputSchema = z.object({\n returnUrl: z.string().url(),\n update: PostStripePortalUpdateSessionBodyInputSchema.optional(),\n cancel: z.boolean().optional(),\n});\n\nexport const PostStripePortalSessionOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripePortalSessionInput = z.infer<typeof PostStripePortalSessionBodyInputSchema>;\nexport type StripePortalSessionOutput = z.infer<typeof PostStripePortalSessionOutputSchema>;\n","import { z } from \"zod\";\n\nexport const BillingIntervalSchema = z.enum([\"daily\", \"monthly\", \"weekly\", \"yearly\"]);\n\nexport const PriceSchema = z.object({\n stripePriceId: z.string(),\n stripeProductId: z.string(),\n stripeProductName: z.string().optional(),\n stripeProductDescription: z.string().optional(),\n active: z.boolean(),\n amount: z.number(),\n interval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n isTrial: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n minimumSeats: z.number().optional(),\n legacyVersion: z.string().optional(),\n featuresSet: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n});\n\nexport type BillingInterval = z.infer<typeof BillingIntervalSchema>;\nexport type Price = z.infer<typeof PriceSchema>;\n","import { z } from \"zod\";\n\nexport const ProductCodeSchema = z.enum([\"free\", \"team\", \"team_test\", \"company\", \"enterprise\"]);\nexport type ProductCode = z.infer<typeof ProductCodeSchema>;\nexport const ProductCode = ProductCodeSchema.enum;\n","import { CardSchema } from \"./card\";\nimport { ProductCode, ProductCodeSchema } from \"./product\";\nimport { FeaturesSummary } from \"./features\";\nimport { BillingIntervalSchema } from \"./price\";\nimport { z } from \"zod\";\nexport const StripeSubscriptionStatusSchema = z.enum([\n \"trialing\",\n \"active\",\n \"past_due\",\n \"canceled\",\n \"unpaid\",\n \"incomplete_expired\",\n \"incomplete\",\n \"unknown\",\n]);\n\nexport const InternalStatusSchema = z.enum([\"active\", \"suspended\", \"gracePeriod\", \"cancelled\", \"downgraded_to_free\"]);\n\nexport const BillingTypeSchema = z.enum([\"Auto\", \"Invoice\"]);\n\nexport type StripeSubscriptionStatus = z.infer<typeof StripeSubscriptionStatusSchema>;\nexport type InternalStatus = z.infer<typeof InternalStatusSchema>;\nexport type BillingType = z.infer<typeof BillingTypeSchema>;\n\nexport const StripeSubscriptionStatus = StripeSubscriptionStatusSchema.enum;\nexport const InternalStatus = InternalStatusSchema.enum;\nexport const BillingType = BillingTypeSchema.enum;\n\nexport const Subscription = z.object({\n stripeSubscriptionId: z.string().nullish(),\n stripeCustomerId: z.string().nullish(),\n\n status: InternalStatusSchema.optional(),\n subscriptionStatus: StripeSubscriptionStatusSchema.optional(), // the stripe API official status\n internalStatus: InternalStatusSchema.optional(), // TODO: delete when create/get workspace will stop using it in the former API\n\n product: ProductCodeSchema,\n featuresSummary: FeaturesSummary.optional(),\n stripeProductDescription: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n stripeSubscriptionMainItemId: z.string().optional(),\n planPriceId: z.string(),\n planInterval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n legacyVersion: z.string().optional(),\n\n seats: z.number(),\n seatLimit: z.number(),\n\n currentPeriodStart: z.string().optional(),\n currentPeriodEnd: z.string().optional(),\n subscriptionStatusUpdatedAt: z.string().optional(),\n cancelAt: z.string().nullish(),\n\n card: CardSchema.optional(),\n\n // New\n amount: z.number().nullish(),\n isTrial: z.boolean().optional(),\n billingType: BillingTypeSchema.optional(),\n daysUntilDue: z.number().optional(),\n});\n\nexport type Subscription = z.infer<typeof Subscription>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../../helpers\";\n\nexport const AssetReference = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n assetId: z.string(),\n persistentId: z.string(),\n});\n\nexport type AssetReference = z.infer<typeof AssetReference>;\n\nexport type CreateAssetReference = DbCreateInputOmit<AssetReference>;\n\nexport type AssetReferenceDiff = {\n toCreate: CreateAssetReference[];\n toDelete: string[];\n};\n","import { z } from \"zod\";\n\nexport const AssetValue = z.object({});\n","import { z } from \"zod\";\nimport { OmitStrict } from \"../../helpers\";\n\nexport const AssetType = z.enum([\"Image\", \"Font\"]);\nexport const AssetScope = z.enum([\"DocumentationFrame\", \"ComponentThumbnail\", \"DesignSystem\", \"Documentation\"]);\n\nexport const AssetFontProperties = z.object({\n family: z.string(),\n subfamily: z.string(),\n});\n\nexport const AssetProperties = z.object({\n fontProperties: z.array(AssetFontProperties),\n});\n\nexport const AssetOrigin = z.object({\n originKey: z.string(),\n});\n\nexport const Asset = z.object({\n id: z.string(),\n designSystemId: z.string().nullish(),\n type: AssetType,\n originalFileName: z.string().nullish(),\n filePath: z.string(),\n scope: AssetScope,\n properties: AssetProperties.nullish(),\n origin: AssetOrigin.nullish(),\n});\n\nexport type AssetType = z.infer<typeof AssetType>;\nexport type AssetScope = z.infer<typeof AssetScope>;\nexport type AssetFontProperties = z.infer<typeof AssetFontProperties>;\nexport type AssetProperties = z.infer<typeof AssetProperties>;\nexport type AssetOrigin = z.infer<typeof AssetOrigin>;\nexport type Asset = z.infer<typeof Asset>;\n\nexport type ImportedAsset = OmitStrict<Asset, \"origin\"> & {\n origin: AssetOrigin;\n};\n\nexport type ResolvedAsset = OmitStrict<Asset, \"filePath\"> & {\n url: string;\n};\n\nexport function isImportedAsset(asset: Asset): asset is ImportedAsset {\n return !!asset.origin;\n}\n","import { z } from \"zod\";\nimport { SourceImportSummary } from \"./import-summary\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Enums\n//\n\nexport const DataSourceRemoteType = z.enum([\"Figma\", \"TokenStudio\", \"FigmaVariablesPlugin\"]);\nexport const DataSourceUploadRemoteSource = z.enum([\"TokenStudio\", \"FigmaVariablesPlugin\", \"Custom\"]);\nexport const DataSourceFigmaState = z.enum([\"Active\", \"MissingIntegration\", \"MissingFileAccess\", \"MissingFileOwner\"]);\nexport const DataSourceAutoImportMode = z.enum([\"Never\", \"Hourly\"]);\n\nexport type DataSourceRemoteType = z.infer<typeof DataSourceRemoteType>;\nexport type DataSourceUploadRemoteSource = z.infer<typeof DataSourceUploadRemoteSource>;\nexport type DataSourceFigmaState = z.infer<typeof DataSourceFigmaState>;\nexport type DataSourceAutoImportMode = z.infer<typeof DataSourceAutoImportMode>;\n\n//\n// Aux\n//\n\nexport const DataSourceStats = z.object({\n tokens: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n assets: zeroNumberByDefault(),\n frames: zeroNumberByDefault(),\n});\n\nexport type DataSourceStats = z.infer<typeof DataSourceStats>;\n\n//\n// Figma\n//\n\nexport const DataSourceFigmaFileData = z.object({\n lastUpdatedAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaFileVersionData = z.object({\n id: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n createdAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaScope = z.object({\n assets: z.boolean(),\n components: z.boolean(),\n documentationFrames: z.boolean(),\n tokens: z.boolean(),\n themePersistentId: z.string().optional(),\n});\n\nexport const DataSourceFigmaImportMetadata = z.object({\n fileData: DataSourceFigmaFileData.optional(),\n importedPublishedVersion: DataSourceFigmaFileVersionData.optional(),\n});\n\nexport const DataSourceFigmaRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.Figma),\n fileId: z.string(),\n ownerId: z.string(),\n ownerName: z.string(),\n scope: DataSourceFigmaScope,\n state: DataSourceFigmaState,\n lastImportMetadata: DataSourceFigmaImportMetadata.optional(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport type DataSourceFigmaFileData = z.infer<typeof DataSourceFigmaFileData>;\nexport type DataSourceFigmaFileVersionData = z.infer<typeof DataSourceFigmaFileVersionData>;\nexport type DataSourceFigmaScope = z.infer<typeof DataSourceFigmaScope>;\nexport type DataSourceFigmaImportMetadata = z.infer<typeof DataSourceFigmaImportMetadata>;\nexport type DataSourceFigmaRemote = z.infer<typeof DataSourceFigmaRemote>;\n\n//\n// Token Studio\n//\n\nexport const DataSourceTokenStudioRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.TokenStudio),\n});\n\nexport type DataSourceTokenStudioRemote = z.infer<typeof DataSourceTokenStudioRemote>;\n\n//\n// Figma Variables Plugin\n//\n\nexport const DataSourceUploadImportMetadata = z.record(z.any());\n\nexport const DataSourceUploadRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.FigmaVariablesPlugin),\n remoteId: z.string(),\n remoteSourceType: DataSourceUploadRemoteSource,\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n});\n\nexport type DataSourceUploadImportMetadata = z.infer<typeof DataSourceUploadImportMetadata>;\nexport type DataSourceUploadRemote = z.infer<typeof DataSourceUploadRemote>;\n\n//\n// Base\n//\n\nexport const DataSourceRemote = z.discriminatedUnion(\"type\", [\n DataSourceFigmaRemote,\n DataSourceUploadRemote,\n DataSourceTokenStudioRemote,\n]);\n\nexport type DataSource = {\n id: string;\n\n name: string;\n thumbnailUrl: string | undefined;\n\n // createdAt: Date;\n // updatedAt: Date;\n\n lastImportedAt: Date | undefined;\n lastImportSummary: SourceImportSummary | undefined;\n\n // lastImportJobId: Nullish<string>;\n // lastNonEmptyImportJobId: Nullish<string>;\n\n designSystemId: string;\n brandPersistentId: string;\n\n autoImportMode: DataSourceAutoImportMode;\n stats: DataSourceStats;\n\n remote: DataSourceRemote;\n\n sortOrder: number;\n};\n\nexport const DataSourceVersion = z.object({\n id: z.string(),\n createdAt: z.date(),\n label: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type DataSourceVersion = z.infer<typeof DataSourceVersion>;\n\nexport type DataSourceRemote = z.infer<typeof DataSourceRemote>;\n\nexport type CreateDataSource = OmitStrict<DbCreateInputOmit<DataSource>, \"sortOrder\">;\nexport type UpdateDataSource = OmitStrict<DbUpdate<DataSource>, \"brandPersistentId\" | \"designSystemId\">;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DataSourceRemoteType } from \"./data-source\";\nimport { Entity } from \"../../common\";\n\nexport const ImportJobState = z.enum([\"PendingInput\", \"Queued\", \"InProgress\", \"Failed\", \"Success\"]);\nexport const ImportJobOperation = z.enum([\"Check\", \"Import\"]);\n\nexport const ImportJob = Entity.extend({\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n sourceIds: z.array(z.string()),\n state: ImportJobState,\n createdByUserId: z.string().optional(),\n importContextId: z.string(),\n error: z.string().optional(),\n sourceType: DataSourceRemoteType,\n});\n\nexport type ImportJobState = z.infer<typeof ImportJobState>;\nexport type ImportJobOperation = z.infer<typeof ImportJobOperation>;\nexport type ImportJob = z.infer<typeof ImportJob>;\n\nexport type CreateImportJob = DbCreateInputOmit<ImportJob>;\nexport type UpdateImportJob = OmitStrict<\n DbUpdate<ImportJob>,\n \"designSystemId\" | \"createdByUserId\" | \"sourceIds\" | \"importContextId\"\n>;\n","import { z } from \"zod\";\n\nexport const Entity = z.object({\n id: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type Entity = z.infer<typeof Entity>;\n","import { z } from \"zod\";\n\nexport const ObjectMeta = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\nexport type ObjectMeta = z.infer<typeof ObjectMeta>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { nullishToOptional } from \"../../helpers\";\nimport { ImportWarning } from \"../import\";\n\nexport const FileStructureStats = z.object({\n frames: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n componentSets: zeroNumberByDefault(),\n});\n\nconst SourceImportSummaryByTokenTypeKey = DesignTokenType.or(\n // Backward compatibility\n z.enum([\"Measure\", \"Radius\", \"GenericToken\", \"Font\", \"Text\"])\n);\n\nexport const SourceImportSummaryByTokenType = z.record(SourceImportSummaryByTokenTypeKey, z.number());\n\nexport const SourceImportTokenSummary = z.object({\n tokensCreated: zeroNumberByDefault(),\n tokensUpdated: zeroNumberByDefault(),\n tokensDeleted: zeroNumberByDefault(),\n tokensCreatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensUpdatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensDeletedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n});\n\nexport const SourceImportComponentSummary = z.object({\n componentsCreated: zeroNumberByDefault(),\n componentsUpdated: zeroNumberByDefault(),\n componentsDeleted: zeroNumberByDefault(),\n componentAssetsCreated: zeroNumberByDefault(),\n componentAssetsUpdated: zeroNumberByDefault(),\n componentAssetsDeleted: zeroNumberByDefault(),\n});\n\nexport const SourceImportFrameSummary = z.object({\n assetsInFile: nullishToOptional(FileStructureStats.optional()),\n invalidReferencesCount: nullishToOptional(z.number().optional()),\n});\n\nexport const SourceImportSummary = z.object({\n sourceId: nullishToOptional(z.string()),\n brandId: nullishToOptional(z.string()),\n versionId: nullishToOptional(z.string()),\n error: nullishToOptional(z.any()),\n isFailed: z.boolean(),\n warnings: z\n .array(ImportWarning)\n .nullish()\n .transform(v => v ?? []),\n\n ...SourceImportTokenSummary.shape,\n ...SourceImportComponentSummary.shape,\n ...FileStructureStats.shape,\n});\n\nexport type FileStructureStats = z.infer<typeof FileStructureStats>;\nexport type SourceImportSummaryByTokenType = z.infer<typeof SourceImportSummaryByTokenType>;\nexport type SourceImportTokenSummary = z.infer<typeof SourceImportTokenSummary>;\nexport type SourceImportComponentSummary = z.infer<typeof SourceImportComponentSummary>;\nexport type SourceImportFrameSummary = z.infer<typeof SourceImportFrameSummary>;\nexport type SourceImportSummary = z.infer<typeof SourceImportSummary>;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { ZodSchema, z } from \"zod\";\n\nexport const TokenDataAliasSchema = z.object({\n aliasTo: z\n .string()\n .optional()\n .nullable()\n .transform(v => v ?? undefined),\n});\n\nexport function tokenAliasOrValue<T extends ZodSchema>(value: T) {\n return TokenDataAliasSchema.extend({\n value: value\n .optional()\n .nullable()\n .transform(v => (v ?? undefined) as z.output<T> | undefined),\n });\n}\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { DimensionTokenData } from \"./dimension\";\n\nexport const BlurType = z.enum([\"Layer\", \"Background\"]);\n\nexport const BlurValue = z.object({\n type: BlurType,\n radius: DimensionTokenData,\n});\n\nexport const BlurTokenData = tokenAliasOrValue(BlurValue);\n\nexport type BlurType = z.infer<typeof BlurType>;\nexport type BlurValue = z.infer<typeof BlurValue>;\nexport type BlurTokenData = z.infer<typeof BlurTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DimensionUnit = z.enum([\"Pixels\", \"Percent\", \"Rem\", \"Ms\", \"Raw\", \"Points\"]);\n\nexport const DimensionValue = z.object({\n unit: DimensionUnit,\n measure: z.number(),\n});\n\nexport const DimensionTokenData = tokenAliasOrValue(DimensionValue);\n\nexport type DimensionUnit = z.infer<typeof DimensionUnit>;\nexport type DimensionValue = z.infer<typeof DimensionValue>;\nexport type DimensionTokenData = z.infer<typeof DimensionTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderRadiusUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const BorderRadiusValue = z.object({\n unit: BorderRadiusUnit,\n measure: z.number(),\n});\n\nexport const BorderRadiusTokenData = tokenAliasOrValue(BorderRadiusValue);\n\nexport type BorderRadiusUnit = z.infer<typeof BorderRadiusUnit>;\nexport type BorderRadiusValue = z.infer<typeof BorderRadiusValue>;\nexport type BorderRadiusTokenData = z.infer<typeof BorderRadiusTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderWidthUnit = z.enum([\"Pixels\"]);\n\nexport const BorderWidthValue = z.object({\n unit: BorderWidthUnit,\n measure: z.number(),\n});\n\nexport const BorderWidthTokenData = tokenAliasOrValue(BorderWidthValue);\n\nexport type BorderWidthUnit = z.infer<typeof BorderWidthUnit>;\nexport type BorderWidthValue = z.infer<typeof BorderWidthValue>;\nexport type BorderWidthTokenData = z.infer<typeof BorderWidthTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { BorderWidthTokenData } from \"./border-width\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderPosition = z.enum([\"Inside\", \"Center\", \"Outside\"]);\nexport const BorderStyle = z.enum([\"Dashed\", \"Dotted\", \"Solid\", \"Groove\"]);\n\nexport const BorderValue = z.object({\n color: ColorTokenData,\n width: BorderWidthTokenData,\n position: BorderPosition,\n style: BorderStyle.optional(),\n});\n\nexport const BorderTokenData = tokenAliasOrValue(BorderValue);\n\nexport type BorderPosition = z.infer<typeof BorderPosition>;\nexport type BorderStyle = z.infer<typeof BorderStyle>;\nexport type BorderValue = z.infer<typeof BorderValue>;\nexport type BorderTokenData = z.infer<typeof BorderTokenData>;\n","import { z } from \"zod\";\nimport { TokenDataAliasSchema, tokenAliasOrValue } from \"./base\";\nimport { OpacityTokenData } from \"./opacity\";\n\nexport const ColorValue = z.object({\n opacity: OpacityTokenData,\n color: z.string().or(TokenDataAliasSchema),\n});\n\nexport const ColorTokenData = tokenAliasOrValue(ColorValue);\n\nexport type ColorValue = z.infer<typeof ColorValue>;\nexport type ColorTokenData = z.infer<typeof ColorTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const OpacityValue = z.object({\n unit: z.enum([\"Raw\", \"Pixels\"]),\n measure: z.number(),\n});\n\nexport const OpacityTokenData = tokenAliasOrValue(OpacityValue);\n\nexport type OpacityValue = z.infer<typeof OpacityValue>;\nexport type OpacityTokenData = z.infer<typeof OpacityTokenData>;\n","import { z } from \"zod\";\n\nexport const ComponentElementData = z.object({\n value: z.object({\n thumbnailImage: z.object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n }),\n\n svg: z\n .object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n })\n .optional(),\n }),\n});\n\nexport type ComponentElementData = z.infer<typeof ComponentElementData>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../raw-element\";\nimport { DimensionTokenData } from \"./dimension\";\nimport { ColorTokenInlineData } from \"../../properties\";\nimport { Size } from \"../primitives\";\nimport { nullishToOptional } from \"../../../helpers\";\n\n//\n// Enums\n//\n\nexport const PageBlockCalloutType = z.enum([\"Info\", \"Success\", \"Warning\", \"Error\"]);\n\nexport const PageBlockTypeV1 = z.enum([\n \"Text\",\n \"Heading\",\n \"Code\",\n \"UnorderedList\",\n \"OrderedList\",\n \"Quote\",\n \"Callout\",\n \"Divider\",\n \"Image\",\n \"Embed\",\n \"Link\",\n \"Shortcuts\",\n \"FigmaEmbed\",\n \"YoutubeEmbed\",\n \"StorybookEmbed\",\n \"Token\",\n \"TokenGroup\",\n \"TokenList\",\n \"Component\",\n \"ComponentGroup\",\n \"Theme\",\n \"ComponentSandbox\",\n \"Custom\",\n \"FigmaFrames\",\n \"ComponentAssets\",\n \"RenderCode\",\n \"Tabs\",\n \"TabItem\",\n \"Table\",\n \"TableRow\",\n \"TableCell\",\n]);\n\nexport const PageBlockCodeLanguage = z.enum([\n \"Angular\",\n \"Bash\",\n \"C\",\n \"Cpp\",\n \"Csharp\",\n \"CSS\",\n \"Dart\",\n \"Handlebars\",\n \"HTML\",\n \"Java\",\n \"Javascript\",\n \"JSON\",\n \"ReactJSX\",\n \"ReactTSX\",\n \"Kotlin\",\n \"Lua\",\n \"Markdown\",\n \"ObjectiveC\",\n \"PHP\",\n \"Plain\",\n \"Python\",\n \"Ruby\",\n \"Rust\",\n \"Sass\",\n \"SCSS\",\n \"Svetle\",\n \"Swift\",\n \"Twig\",\n \"Typescript\",\n \"Vue\",\n \"XML\",\n \"YAML\",\n]);\n\nexport const PageBlockAlignment = z.enum([\"Left\", \"Center\", \"Stretch\", \"Right\"]);\nexport const PageBlockThemeType = z.enum([\"Override\", \"Comparison\"]);\nexport const PageBlockAssetType = z.enum([\"image\", \"figmaFrame\"]);\n\nexport const PageBlockTilesAlignment = z.enum([\"Center\", \"FrameHeight\"]);\n\nexport const PageBlockTilesLayout = z.enum([\"C8\", \"C7\", \"C6\", \"C5\", \"C4\", \"C3\", \"C2\", \"C1\", \"C1_75\"]);\n\n//\n// Support types\n//\n\nexport const PageBlockTheme = z.object({\n themeIds: z.array(z.string()),\n type: PageBlockThemeType,\n});\n\nexport const PageBlockUrlPreview = z.object({\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n thumbnailUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockFrameOrigin = z.object({\n sourceFileName: nullishToOptional(z.string()),\n title: nullishToOptional(z.string()),\n previewUrl: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n referenceId: nullishToOptional(z.string()),\n assetId: nullishToOptional(z.string()),\n assetScale: nullishToOptional(z.number()),\n width: nullishToOptional(z.number()),\n height: nullishToOptional(z.number()),\n});\n\nexport const PageBlockFrame = z.object({\n persistentId: z.string(),\n sourceId: z.string(),\n sourceFrameId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n origin: nullishToOptional(PageBlockFrameOrigin),\n});\n\nexport const PageBlockAsset = z.object({\n type: PageBlockAssetType,\n id: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n figmaFrame: nullishToOptional(PageBlockFrame),\n});\n\nexport const PageBlockLinkPreview = z.object({\n title: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockShortcut = z.object({\n persistentId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n asset: nullishToOptional(PageBlockAsset),\n documentationItemId: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n documentationItemPreview: nullishToOptional(PageBlockLinkPreview),\n});\n\nexport const PageBlockCustomBlockPropertyImageValue = z.object({\n asset: nullishToOptional(PageBlockAsset),\n assetId: nullishToOptional(z.string()),\n assetUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockCustomBlockPropertyValue = z.object({\n key: z.string(),\n value: z.any(),\n\n // TODO Artem: for some reason there are cases when there's an array here in the DB\n // e.g. element id 67451 in the dev db\n\n // value: z\n // .boolean()\n // .or(z.number())\n // .or(z.string())\n // .or(ColorTokenData)\n // .or(TypographyTokenData)\n // .or(PageBlockCustomBlockPropertyImageValue),\n});\n\nexport const PageBlockFigmaFrameProperties = z.object({\n alignment: PageBlockTilesAlignment,\n layout: PageBlockTilesLayout,\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n showTitles: z.boolean(),\n});\n\nexport const PageBlockRenderCodeProperties = z.object({\n showCode: z.boolean(),\n});\n\nexport const PageBlockAssetComponent = z.object({\n persistentId: z.string(),\n componentAssetId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n});\n\nexport const PageBlockTableColumn = z.object({\n id: z.string(),\n width: DimensionTokenData,\n});\n\nexport const PageBlockTableProperties = z.object({\n showBorders: z.boolean(),\n showHeaderRow: z.boolean(),\n showHeaderColumn: z.boolean(),\n columns: z.array(PageBlockTableColumn),\n});\n\nexport const PageBlockTextSpanAttributeType = z.enum([\"Bold\", \"Italic\", \"Link\", \"Strikethrough\", \"Code\"]);\n\nexport const PageBlockTextSpanAttribute = z.object({\n type: PageBlockTextSpanAttributeType,\n link: nullishToOptional(z.string()),\n documentationItemId: nullishToOptional(z.string()),\n openInNewWindow: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockTextSpan = z.object({\n text: z.string(),\n attributes: z.array(PageBlockTextSpanAttribute),\n});\n\nexport const PageBlockText = z.object({\n spans: z.array(PageBlockTextSpan),\n});\n\nexport type PageBlockCalloutType = z.infer<typeof PageBlockCalloutType>;\nexport type PageBlockCodeLanguage = z.infer<typeof PageBlockCodeLanguage>;\nexport type PageBlockAlignment = z.infer<typeof PageBlockAlignment>;\nexport type PageBlockThemeType = z.infer<typeof PageBlockThemeType>;\nexport type PageBlockAssetType = z.infer<typeof PageBlockAssetType>;\nexport type PageBlockTilesAlignment = z.infer<typeof PageBlockTilesAlignment>;\nexport type PageBlockTilesLayout = z.infer<typeof PageBlockTilesLayout>;\nexport type PageBlockTextSpanAttributeType = z.infer<typeof PageBlockTextSpanAttributeType>;\n\nexport type PageBlockTypeV1 = z.infer<typeof PageBlockTypeV1>;\nexport type PageBlockTextSpanAttribute = z.infer<typeof PageBlockTextSpanAttribute>;\nexport type PageBlockTextSpan = z.infer<typeof PageBlockTextSpan>;\nexport type PageBlockText = z.infer<typeof PageBlockText>;\nexport type PageBlockFrame = z.infer<typeof PageBlockFrame>;\nexport type PageBlockFrameOrigin = z.infer<typeof PageBlockFrameOrigin>;\n\n//\n// Block\n//\n\nconst PageBlockBaseV1 = z.object({\n persistentId: z.string(),\n type: PageBlockTypeV1,\n\n // Element linking\n designObjectId: nullishToOptional(z.string()),\n designObjectIds: nullishToOptional(z.array(z.string())),\n tokenType: nullishToOptional(DesignTokenType.or(z.literal(\"Font\"))),\n showNestedGroups: nullishToOptional(z.boolean()),\n brandId: nullishToOptional(z.string()),\n\n // Rich text\n text: nullishToOptional(PageBlockText),\n caption: nullishToOptional(z.string()),\n headingType: nullishToOptional(z.number().min(1).max(3)),\n codeLanguage: nullishToOptional(PageBlockCodeLanguage),\n calloutType: nullishToOptional(PageBlockCalloutType),\n urlInput: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n\n // Image\n asset: nullishToOptional(PageBlockAsset),\n alignment: nullishToOptional(PageBlockAlignment),\n\n // Shortcuts block\n shortcuts: nullishToOptional(z.array(PageBlockShortcut)),\n\n // Custom blocks\n customBlockKey: nullishToOptional(z.string()),\n customBlockProperties: nullishToOptional(z.array(PageBlockCustomBlockPropertyValue)),\n variantKey: nullishToOptional(z.string()),\n\n // Figma frames\n figmaFrameProperties: nullishToOptional(PageBlockFigmaFrameProperties),\n figmaFrames: nullishToOptional(z.array(PageBlockFrame)),\n\n // Generic\n size: nullishToOptional(Size),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n\n // Render code\n renderCodeProperties: nullishToOptional(PageBlockRenderCodeProperties),\n\n // Component assets\n componentAssets: nullishToOptional(z.array(PageBlockAssetComponent)),\n\n // Tables\n tableProperties: nullishToOptional(PageBlockTableProperties),\n columnId: nullishToOptional(z.string()),\n\n // Token spreadsheet\n theme: nullishToOptional(PageBlockTheme),\n blacklistedElementProperties: nullishToOptional(z.array(z.string())),\n\n // Arbitrary\n userMetadata: nullishToOptional(z.string()),\n});\n\ntype PageBlockV1Input = z.input<typeof PageBlockBaseV1> & {\n children: PageBlockV1Input[] | null | undefined;\n};\n\nexport const PageBlockV1: z.ZodType<PageBlockV1, z.ZodTypeDef, PageBlockV1Input> = PageBlockBaseV1.extend({\n children: z.lazy(\n () =>\n PageBlockV1.array()\n .nullish()\n .transform(t => t ?? []) as z.ZodType<PageBlockV1[], z.ZodTypeDef, PageBlockV1Input[]>\n ),\n});\n\nexport type PageBlockV1 = z.infer<typeof PageBlockBaseV1> & {\n children: PageBlockV1[];\n};\n\n//\n// Utility methods\n//\n\nexport function traversePageBlocksV1(blocks: PageBlockV1[], action: (block: PageBlockV1) => void) {\n for (const block of blocks) {\n action(block);\n traversePageBlocksV1(block.children, action);\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { ObjectMeta } from \"../../common\";\n\nexport type CreateDesignElement = DbCreateInputOmit<DesignElement>;\nexport type UpdateDesignElement = OmitStrict<\n DbUpdate<DesignElement>,\n \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"shortPersistentId\" | \"type\"\n>;\n\n//\n// Token types\n//\n\nexport const DesignTokenType = z.enum([\n \"Color\",\n \"Border\",\n \"Gradient\",\n \"Shadow\",\n \"Dimension\",\n \"Duration\",\n \"Size\",\n \"Space\",\n \"Opacity\",\n \"FontSize\",\n \"LineHeight\",\n \"LetterSpacing\",\n \"ParagraphSpacing\",\n \"BorderWidth\",\n \"BorderRadius\",\n \"Duration\",\n \"ZIndex\",\n \"Image\",\n \"String\",\n \"ProductCopy\",\n \"FontFamily\",\n \"FontWeight\",\n \"TextDecoration\",\n \"TextCase\",\n \"Visibility\",\n \"Typography\",\n \"Blur\",\n \"Font\",\n]);\n\nexport const tokenElementTypes: ReadonlyArray<DesignTokenType> = [...DesignTokenType.options.filter(v => v !== \"Font\")];\n\nexport type DesignTokenType = z.infer<typeof DesignTokenType>;\n\n//\n// Non-token types\n//\n\nexport const DesignElementType = DesignTokenType.or(\n z.enum([\n \"Component\",\n \"Theme\",\n \"Documentation\",\n \"DocumentationPage\",\n \"DesignSystemComponent\",\n \"ElementGroup\",\n \"FigmaNodeStructure\",\n \"FigmaNodeReference\",\n \"PageBlock\",\n ])\n);\n\nexport type DesignElementType = z.infer<typeof DesignElementType>;\n\nexport function isTokenType(type: DesignElementType): type is DesignTokenType {\n return DesignTokenType.safeParse(type).success;\n}\n\n//\n// Element category\n//\n\nexport const DesignElementCategory = z.enum([\n \"Token\",\n \"Component\",\n \"DesignSystemComponent\",\n \"DocumentationPage\",\n \"Theme\",\n \"PageBlock\",\n]);\n\nexport type DesignElementCategory = z.infer<typeof DesignElementCategory>;\n\n// Elements\n\nexport const DesignSystemElementExportProps = z.object({\n isAsset: z\n .boolean()\n .nullish()\n .transform(v => v ?? false),\n\n codeName: z.string().nullish(),\n});\n\nexport type DesignSystemElementExportProps = z.infer<typeof DesignSystemElementExportProps>;\n\nexport const ShallowDesignElement = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n type: DesignElementType,\n brandPersistentId: z.string().optional(),\n parentPersistentId: z.string().optional(),\n shortPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElement = ShallowDesignElement.extend({\n meta: ObjectMeta,\n childType: DesignElementType.optional(),\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n exportProperties: DesignSystemElementExportProps.optional(),\n data: z.any(), // TODO this should be an object, not any.\n origin: z.any().optional(), // TODO object, not any.\n});\n\nexport type ShallowDesignElement = z.infer<typeof ShallowDesignElement>;\nexport type DesignElement = z.infer<typeof DesignElement>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\n\nexport const ElementPropertyType = z.enum([\"Text\", \"Number\", \"Boolean\", \"Select\", \"Generic\", \"Link\", \"URL\"]);\nexport const ElementPropertyTargetType = z.enum([\"Token\", \"Component\", \"DocumentationPage\"]);\nexport const ElementPropertyLinkType = z.enum([\"FigmaComponent\", \"DocumentationPage\"]);\n\nexport const ColorTokenInlineData = z.object({\n value: z.string(),\n});\n\nexport const ElementPropertyDefinitionOption = z.object({\n id: z.string(),\n name: z.string(),\n backgroundColor: ColorTokenInlineData.optional(),\n});\n\nexport const ElementPropertyDefinition = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n name: z.string(),\n codeName: z.string(),\n description: z.string(),\n type: ElementPropertyType,\n targetElementType: ElementPropertyTargetType,\n options: z.array(ElementPropertyDefinitionOption).nullish(),\n linkElementType: ElementPropertyLinkType.nullish(),\n});\n\nexport type ElementPropertyType = z.infer<typeof ElementPropertyType>;\nexport type ElementPropertyTargetType = z.infer<typeof ElementPropertyTargetType>;\nexport type ElementPropertyLinkType = z.infer<typeof ElementPropertyLinkType>;\nexport type ColorTokenInlineData = z.infer<typeof ColorTokenInlineData>;\nexport type ElementPropertyDefinitionOption = z.infer<typeof ElementPropertyDefinitionOption>;\nexport type ElementPropertyDefinition = z.infer<typeof ElementPropertyDefinition>;\n\nexport type CreateElementPropertyDefinition = DbCreateInputOmit<ElementPropertyDefinition>;\nexport type UpdateElementPropertyDefinition = DbUpdate<ElementPropertyDefinition>;\n\nexport type ElementPropertyDefinitionDiff = {\n toCreate: CreateElementPropertyDefinition[];\n toUpdate: UpdateElementPropertyDefinition[];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const ElementPropertyValue = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n targetElementPersistentId: z.string(),\n definitionPersistentId: z.string(),\n stringValue: z.string().nullish(),\n numberValue: z.number().nullish(),\n booleanValue: z.boolean().nullish(),\n referenceValue: z.string().nullish(),\n referenceValuePreview: z.string().nullish(),\n});\n\nexport type ElementPropertyValue = z.infer<typeof ElementPropertyValue>;\n\nexport type CreateElementPropertyValue = DbCreateInputOmit<ElementPropertyValue>;\nexport type UpdateElementPropertyValue = OmitStrict<\n DbUpdate<ElementPropertyValue>,\n \"designSystemVersionId\" | \"definitionPersistentId\" | \"targetElementPersistentId\"\n>;\n\nexport type ElementPropertyValueDiff = {\n toCreate: CreateElementPropertyValue[];\n toUpdate: UpdateElementPropertyValue[];\n};\n","import { z } from \"zod\";\n\nexport const Point2D = z.object({\n x: z.number(),\n y: z.number(),\n});\n\nexport type Point2D = z.infer<typeof Point2D>;\n","import { z } from \"zod\";\n\nconst nullSize = { height: -1, width: -1 };\n\nfunction isNullSize(size: Size): boolean {\n return size.height === nullSize.height && size.width === nullSize.width;\n}\n\nexport const Size = z.object({\n width: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.width),\n\n height: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.height),\n});\n\nexport const SizeOrUndefined = Size.optional().transform(v => {\n if (!v) return undefined;\n if (isNullSize(v)) return undefined;\n\n return v;\n});\n\nexport type Size = z.infer<typeof Size>;\n","export type DbCreateInputOmit<T> = Omit<T, \"id\" | \"createdAt\" | \"updatedAt\">;\n\nexport type DbUpdateInputOmit<T> = Omit<T, \"createdAt\" | \"updatedAt\" | \"persistentId\">;\n\nexport type DbUpdate<T extends { id: string }> = Partial<OptionalToNullable<DbUpdateInputOmit<Omit<T, \"id\">>>> &\n Pick<T, \"id\">;\n\ntype PickOptional<T> = {\n [P in keyof T as undefined extends T[P] ? P : never]: T[P];\n};\n\ntype PickNotOptional<T> = {\n [P in keyof T as undefined extends T[P] ? never : P]: T[P];\n};\n\nexport type OptionalToNullable<T> = {\n [K in keyof PickOptional<T>]-?: Exclude<T[K], undefined> | null;\n} & {\n [K in keyof PickNotOptional<T>]: T[K];\n};\n\nexport function zodCreateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n } as const;\n}\n\nexport function zodUpdateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n persistentId: true,\n } as const;\n}\n","import { ZodType, z } from \"zod\";\n\n/**\n * Allows both null and undefined as input values in addition to the actual value,\n * but coerces them both to undefined.\n */\nexport function nullishToOptional<T>(type: ZodType<T>) {\n return type.nullish().transform(t => t ?? undefined);\n}\n","import { z } from \"zod\";\nimport { ColorValue } from \"./color\";\nimport { PageBlockCalloutType, PageBlockText } from \"./documentation-block-v1\";\nimport { Size } from \"../primitives\";\n\n//\n// Enums\n//\n\nexport const PageBlockLinkType = z.enum([\"DocumentationItem\", \"PageHeading\", \"Url\"]);\nexport const PageBlockImageType = z.enum([\"Upload\", \"Asset\", \"FigmaFrame\"]);\nexport const PageBlockImageAlignment = z.enum([\"Left\", \"Center\", \"Stretch\"]);\n\nexport type PageBlockLinkType = z.infer<typeof PageBlockLinkType>;\nexport type PageBlockImageType = z.infer<typeof PageBlockImageType>;\nexport type PageBlockImageAlignment = z.infer<typeof PageBlockImageAlignment>;\n\n//\n// Definitions\n//\n\nexport const PageBlockAppearanceV2 = z.object({\n itemBackgroundColor: ColorValue,\n});\n\nexport const PageBlockItemUntypedPropertyValue = z\n .object({\n value: z.any(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockItemRichTextPropertyValue = z.object({\n value: PageBlockText,\n calloutType: PageBlockCalloutType.optional(),\n});\n\nexport const PageBlockItemEmbedPropertyValue = z.object({\n value: z.string().optional(),\n caption: z.string().optional(),\n height: z.number().optional(),\n});\n\nexport const PageBlockItemMultiRichTextPropertyValue = z.object({\n value: PageBlockText.array(),\n});\n\nexport const PageBlockItemTextPropertyValue = z.object({\n value: z.string(),\n calloutType: PageBlockCalloutType.optional(),\n});\n\nexport const PageBlockItemImageReference = z.object({\n type: PageBlockImageType,\n url: z.string(),\n assetId: z.string().optional(),\n size: Size.optional(),\n figmaFile: z\n .object({\n sourceId: z.string(),\n frameId: z.string(),\n })\n .optional(),\n});\n\nexport const PageBlockItemImageValue = z.object({\n alt: z.string().optional(),\n caption: z.string().optional(),\n alignment: PageBlockImageAlignment.optional(),\n value: PageBlockItemImageReference.optional(),\n});\n\nexport const PageBlockLinkV2 = z.object({\n type: PageBlockLinkType,\n documentationItemId: z.string().optional(),\n pageHeadingId: z.string().optional(),\n url: z.string().optional(),\n openInNewTab: z.boolean().optional(),\n});\n\nexport const PageBlockItemV2 = z.object({\n id: z.string(),\n linksTo: PageBlockLinkV2.optional(),\n props: z.record(PageBlockItemUntypedPropertyValue),\n});\n\nexport const PageBlockDataV2 = z.object({\n packageId: z.string(),\n variantId: z.string().optional(),\n indentLevel: z.number(),\n appearance: PageBlockAppearanceV2.optional(),\n items: z.array(PageBlockItemV2),\n});\n\nexport type PageBlockAppearanceV2 = z.infer<typeof PageBlockAppearanceV2>;\nexport type PageBlockItemUntypedPropertyValue = z.infer<typeof PageBlockItemUntypedPropertyValue>;\nexport type PageBlockItemRichTextPropertyValue = z.infer<typeof PageBlockItemRichTextPropertyValue>;\nexport type PageBlockItemMultiRichTextPropertyValue = z.infer<typeof PageBlockItemMultiRichTextPropertyValue>;\nexport type PageBlockItemTextPropertyValue = z.infer<typeof PageBlockItemTextPropertyValue>;\nexport type PageBlockItemEmbedPropertyValue = z.infer<typeof PageBlockItemEmbedPropertyValue>;\nexport type PageBlockItemImageValue = z.infer<typeof PageBlockItemImageValue>;\nexport type PageBlockItemImageReference = z.infer<typeof PageBlockItemImageReference>;\n\nexport type PageBlockLinkV2 = z.infer<typeof PageBlockLinkV2>;\nexport type PageBlockItemV2 = z.infer<typeof PageBlockItemV2>;\nexport type PageBlockDataV2 = z.infer<typeof PageBlockDataV2>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { PageBlockV1 } from \"./documentation-block-v1\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV1 = z.object({\n blocks: z.array(PageBlockV1),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV1 = z.object({\n value: DocumentationPageDataV1,\n});\n","import { z } from \"zod\";\n\nexport const DocumentationItemConfiguration = z.object({\n showSidebar: z.boolean(),\n header: z.any(),\n});\n\nexport type DocumentationItemConfiguration = z.infer<typeof DocumentationItemConfiguration>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV2 = z.object({\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV2 = z.object({\n value: DocumentationPageDataV2,\n});\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DurationUnit = z.enum([\"Ms\"]);\n\nexport const DurationValue = z.object({\n unit: DurationUnit,\n measure: z.number(),\n});\n\nexport const DurationTokenData = tokenAliasOrValue(DurationValue);\n\nexport type DurationUnit = z.infer<typeof DurationUnit>;\nexport type DurationValue = z.infer<typeof DurationValue>;\nexport type DurationTokenData = z.infer<typeof DurationTokenData>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { Size, SizeOrUndefined } from \"../primitives/size\";\n\nexport const FigmaFileStructureNodeType = z.enum([\"DOCUMENT\", \"CANVAS\", \"FRAME\", \"COMPONENT\", \"COMPONENT_SET\"]);\n\nexport const FigmaFileStructureNodeBase = z.object({\n id: z.string(),\n name: z.string(),\n type: FigmaFileStructureNodeType,\n size: SizeOrUndefined,\n parentComponentSetId: z.string().optional(),\n});\n\nexport const FigmaFileStructureNode: z.ZodType<FigmaFileStructureNode, ZodTypeDef, FigmaFileStructureNodeBaseInput> =\n FigmaFileStructureNodeBase.extend({\n children: z.lazy(() => FigmaFileStructureNode.array()),\n });\n\ntype FigmaFileStructureNodeBaseInput = z.input<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNodeBaseInput[];\n};\n\nexport const FigmaFileStructureStatistics = z.object({\n frames: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n components: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n componentSets: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n});\n\nexport const FigmaFileStructureElementData = z.object({\n value: z.object({\n structure: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport type FigmaFileStructureNodeBase = z.infer<typeof FigmaFileStructureNodeBase>;\nexport type FigmaFileStructureNodeType = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureNode = z.infer<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNode[];\n};\nexport type FigmaFileStructureStatistics = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureElementData = z.infer<typeof FigmaFileStructureElementData>;\n\nexport function figmaFileStructureToMap(root: FigmaFileStructureNode): Map<string, FigmaFileStructureNode> {\n const map = new Map<string, FigmaFileStructureNode>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(node: FigmaFileStructureNode, map: Map<string, FigmaFileStructureNode>) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const FigmaNodeReferenceData = z.object({\n structureElementId: z.string(),\n nodeId: z.string(),\n fileId: z.string().optional(),\n valid: z.boolean(),\n assetId: z.string().optional(),\n assetScale: z.number().optional(),\n assetWidth: z.number().optional(),\n assetHeight: z.number().optional(),\n assetUrl: z.string().optional(),\n});\n\nexport const FigmaNodeReferenceElementData = z.object({\n value: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReferenceData = z.infer<typeof FigmaNodeReferenceData>;\nexport type FigmaNodeReferenceElementData = z.infer<typeof FigmaNodeReferenceElementData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontFamilyValue = z.string();\nexport const FontFamilyTokenData = tokenAliasOrValue(FontFamilyValue);\n\nexport type FontFamilyValue = z.infer<typeof FontFamilyValue>;\nexport type FontFamilyTokenData = z.infer<typeof FontFamilyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontSizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const FontSizeValue = z.object({\n unit: FontSizeUnit,\n measure: z.number(),\n});\n\nexport const FontSizeTokenData = tokenAliasOrValue(FontSizeValue);\n\nexport type FontSizeUnit = z.infer<typeof FontSizeUnit>;\nexport type FontSizeValue = z.infer<typeof FontSizeValue>;\nexport type FontSizeTokenData = z.infer<typeof FontSizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontWeightValue = z.string();\nexport const FontWeightTokenData = tokenAliasOrValue(FontWeightValue);\n\nexport type FontWeightValue = z.infer<typeof FontWeightValue>;\nexport type FontWeightTokenData = z.infer<typeof FontWeightTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { Point2D } from \"../primitives\";\n\nexport const GradientType = z.enum([\"Linear\", \"Radial\", \"Angular\"]);\n\nexport const GradientStop = z.object({\n position: z.number(),\n color: ColorTokenData,\n});\n\nexport const GradientLayerValue = z.object({\n from: Point2D,\n to: Point2D,\n type: GradientType,\n aspectRatio: nullishToOptional(z.number()), // z.number(),\n stops: z.array(GradientStop).min(2),\n});\n\nexport const GradientLayerData = tokenAliasOrValue(GradientLayerValue);\n\nexport const GradientTokenValue = z.array(GradientLayerData);\nexport const GradientTokenData = tokenAliasOrValue(GradientTokenValue);\n\nexport type GradientType = z.infer<typeof GradientType>;\nexport type GradientStop = z.infer<typeof GradientStop>;\nexport type GradientLayerValue = z.infer<typeof GradientLayerValue>;\nexport type GradientLayerData = z.infer<typeof GradientLayerData>;\nexport type GradientTokenValue = z.infer<typeof GradientTokenValue>;\nexport type GradientTokenData = z.infer<typeof GradientTokenData>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\n\nexport const DocumentationGroupBehavior = z.enum([\"Group\", \"Tabs\"]);\n\nexport const ElementGroupData = z.object({\n behavior: nullishToOptional(DocumentationGroupBehavior.optional()),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const ElementGroupElementData = z.object({\n value: ElementGroupData.optional(),\n});\n\nexport type DocumentationGroupBehavior = z.infer<typeof DocumentationGroupBehavior>;\nexport type ElementGroupData = z.infer<typeof ElementGroupData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LetterSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const LetterSpacingValue = z.object({\n unit: LetterSpacingUnit,\n measure: z.number(),\n});\n\nexport const LetterSpacingTokenData = tokenAliasOrValue(LetterSpacingValue);\n\nexport type LetterSpacingUnit = z.infer<typeof LetterSpacingUnit>;\nexport type LetterSpacingValue = z.infer<typeof LetterSpacingValue>;\nexport type LetterSpacingTokenData = z.infer<typeof LetterSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LineHeightUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\", \"Raw\"]);\n\nexport const LineHeightValue = z.object({\n unit: LineHeightUnit,\n measure: z.number(),\n});\n\nexport const LineHeightTokenData = tokenAliasOrValue(LineHeightValue);\n\nexport type LineHeightUnit = z.infer<typeof LineHeightUnit>;\nexport type LineHeightValue = z.infer<typeof LineHeightValue>;\nexport type LineHeightTokenData = z.infer<typeof LineHeightTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphIndentUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphIndentValue = z.object({\n unit: ParagraphIndentUnit,\n measure: z.number(),\n});\n\nexport const ParagraphIndentTokenData = tokenAliasOrValue(ParagraphIndentValue);\n\nexport type ParagraphIndentUnit = z.infer<typeof ParagraphIndentUnit>;\nexport type ParagraphIndentValue = z.infer<typeof ParagraphIndentValue>;\nexport type ParagraphIndentTokenData = z.infer<typeof ParagraphIndentTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphSpacingValue = z.object({\n unit: ParagraphSpacingUnit,\n measure: z.number(),\n});\n\nexport const ParagraphSpacingTokenData = tokenAliasOrValue(ParagraphSpacingValue);\n\nexport type ParagraphSpacingUnit = z.infer<typeof ParagraphSpacingUnit>;\nexport type ParagraphSpacingValue = z.infer<typeof ParagraphSpacingValue>;\nexport type ParagraphSpacingTokenData = z.infer<typeof ParagraphSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ProductCopyValue = z.string();\nexport const ProductCopyTokenData = tokenAliasOrValue(ProductCopyValue);\n\nexport type ProductCopyValue = z.infer<typeof ProductCopyValue>;\nexport type ProductCopyTokenData = z.infer<typeof ProductCopyTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { OpacityTokenData } from \"./opacity\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ShadowType = z.enum([\"Drop\", \"Inner\"]);\n\nexport const ShadowLayerValue = z.object({\n color: ColorTokenData,\n x: z.number(),\n y: z.number(),\n radius: z.number(),\n spread: z.number(),\n opacity: OpacityTokenData,\n type: ShadowType,\n});\n\nconst ShadowTokenDataBase = tokenAliasOrValue(ShadowLayerValue);\nexport const ShadowTokenData = tokenAliasOrValue(z.array(ShadowTokenDataBase));\n\nexport type ShadowType = z.infer<typeof ShadowType>;\nexport type ShadowLayerValue = z.infer<typeof ShadowLayerValue>;\nexport type ShadowTokenData = z.infer<typeof ShadowTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SizeValue = z.object({\n unit: SizeUnit,\n measure: z.number(),\n});\n\nexport const SizeTokenData = tokenAliasOrValue(SizeValue);\n\nexport type SizeUnit = z.infer<typeof SizeUnit>;\nexport type SizeValue = z.infer<typeof SizeValue>;\nexport type SizeTokenData = z.infer<typeof SizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SpaceUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SpaceValue = z.object({\n unit: SpaceUnit,\n measure: z.number(),\n});\n\nexport const SpaceTokenData = tokenAliasOrValue(SpaceValue);\n\nexport type SpaceUnit = z.infer<typeof SpaceUnit>;\nexport type SpaceValue = z.infer<typeof SpaceValue>;\nexport type SpaceTokenData = z.infer<typeof SpaceTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const StringValue = z.string();\nexport const StringTokenData = tokenAliasOrValue(StringValue);\n\nexport type StringValue = z.infer<typeof StringValue>;\nexport type StringTokenData = z.infer<typeof StringTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextCase = z.enum([\"Original\", \"Upper\", \"Lower\", \"Camel\", \"SmallCaps\"]);\nexport const TextCaseValue = TextCase;\nexport const TextCaseTokenData = tokenAliasOrValue(TextCaseValue);\n\nexport type TextCase = z.infer<typeof TextCase>;\nexport type TextCaseValue = z.infer<typeof TextCaseValue>;\nexport type TextCaseTokenData = z.infer<typeof TextCaseTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextDecoration = z.enum([\"None\", \"Underline\", \"Strikethrough\"]);\nexport const TextDecorationValue = TextDecoration;\nexport const TextDecorationTokenData = tokenAliasOrValue(TextDecorationValue);\n\nexport type TextDecoration = z.infer<typeof TextDecoration>;\nexport type TextDecorationValue = z.infer<typeof TextDecorationValue>;\nexport type TextDecorationTokenData = z.infer<typeof TextDecorationTokenData>;\n","import { z } from \"zod\";\nimport { FontSizeTokenData } from \"./font-size\";\nimport { FontFamilyTokenData } from \"./font-family\";\nimport { FontWeightTokenData } from \"./font-weight\";\nimport { TextDecorationTokenData } from \"./text-decoration\";\nimport { TextCaseTokenData } from \"./text-case\";\nimport { LetterSpacingTokenData } from \"./letter-spacing\";\nimport { LineHeightTokenData } from \"./line-height\";\nimport { ParagraphIndentTokenData } from \"./paragraph-indent\";\nimport { ParagraphSpacingTokenData } from \"./paragraph-spacing\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TypographyValue = z.object({\n fontSize: FontSizeTokenData,\n fontFamily: FontFamilyTokenData,\n fontWeight: FontWeightTokenData,\n textDecoration: TextDecorationTokenData,\n textCase: TextCaseTokenData,\n letterSpacing: LetterSpacingTokenData.optional(),\n lineHeight: LineHeightTokenData.optional(),\n paragraphIndent: ParagraphIndentTokenData.optional(),\n paragraphSpacing: ParagraphSpacingTokenData.optional(),\n});\n\nexport const TypographyTokenData = tokenAliasOrValue(TypographyValue);\n\nexport type TypographyValue = z.infer<typeof TypographyValue>;\nexport type TypographyTokenData = z.infer<typeof TypographyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const Visibility = z.enum([\"Hidden\", \"Visible\"]);\nexport const VisibilityValue = Visibility;\nexport const VisibilityTokenData = tokenAliasOrValue(VisibilityValue);\n\nexport type Visibility = z.infer<typeof Visibility>;\nexport type VisibilityValue = z.infer<typeof VisibilityValue>;\nexport type VisibilityTokenData = z.infer<typeof VisibilityTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ZIndexUnit = z.enum([\"Raw\"]);\n\nexport const ZIndexValue = z.object({\n unit: ZIndexUnit,\n measure: z.number(),\n});\n\nexport const ZIndexTokenData = tokenAliasOrValue(ZIndexValue);\n\nexport type ZIndexUnit = z.infer<typeof ZIndexUnit>;\nexport type ZIndexValue = z.infer<typeof ZIndexValue>;\nexport type ZIndexTokenData = z.infer<typeof ZIndexTokenData>;\n","import { z } from \"zod\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const DesignElementOrigin = z.object({\n id: z.string(),\n sourceId: z.string(),\n name: z.string(),\n});\n\nexport const DesignElementBase = z.object({\n id: z.string(),\n persistentId: z.string(),\n meta: ObjectMeta,\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignElementImportedBase = DesignElementBase.extend({\n origin: DesignElementOrigin,\n});\n\nexport const DesignElementGroupablePart = z.object({\n parentPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElementGroupableBase = DesignElementBase.extend(DesignElementGroupablePart.shape);\n\nexport const DesignElementGroupableRequiredPart = DesignElementGroupablePart.extend({\n parentPersistentId: z.string(),\n});\n\nexport const DesignElementBrandedPart = z.object({\n brandPersistentId: z.string(),\n});\n\nexport const DesignElementSlugPart = z.object({\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n});\n\nexport type DesignElementOrigin = z.infer<typeof DesignElementOrigin>;\nexport type DesignElementBase = z.infer<typeof DesignElementBase>;\nexport type DesignElementGroupablePart = z.infer<typeof DesignElementGroupablePart>;\nexport type DesignElementGroupableBase = z.infer<typeof DesignElementGroupableBase>;\nexport type DesignElementGroupableRequiredPart = z.infer<typeof DesignElementGroupableRequiredPart>;\nexport type DesignElementBrandedPart = z.infer<typeof DesignElementBrandedPart>;\nexport type DesignElementSlugPart = z.infer<typeof DesignElementSlugPart>;\n","import { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\n\nexport const ComponentOriginPart = z.object({\n nodeId: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n});\n\nconst ComponentAsset = z.object({\n assetId: z.string(),\n assetPath: z.string(),\n});\n\nexport const ComponentOrigin = DesignElementOrigin.extend(ComponentOriginPart.shape);\n\nexport const Component = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: ComponentOrigin.optional(),\n thumbnail: ComponentAsset,\n svg: ComponentAsset.optional(),\n isAsset: z.boolean(),\n });\n\nexport type ComponentAsset = z.infer<typeof ComponentAsset>;\nexport type Component = z.infer<typeof Component>;\nexport type ComponentOrigin = z.infer<typeof ComponentOrigin>;\nexport type ImportedComponent = OmitStrict<Component, \"origin\"> & { origin: ComponentOrigin };\n\nexport function isImportedComponent(component: Component): component is ImportedComponent {\n return !!component.origin;\n}\n\nexport type CreateComponent = DbCreateInputOmit<Component>;\nexport type UpdateComponent = OmitStrict<DbUpdate<Component>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ComponentDiff = {\n toCreate: CreateComponent[];\n toUpdate: UpdateComponent[];\n toDelete: Component[\"id\"][];\n};\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DocumentationPageDataV1 } from \"./data\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const DocumentationPageV1 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV1,\n });\n\nexport type DocumentationPageV1 = z.infer<typeof DocumentationPageV1>;\n\nexport type CreateDocumentationPageV1 = DbCreateInputOmit<DocumentationPageV1>;\nexport type UpdateDocumentationPageV1 = OmitStrict<DbUpdate<DocumentationPageV1>, \"designSystemVersionId\">;\n\nexport const DocumentationPageDTOV1 = DocumentationPageV1.omit({\n data: true,\n meta: true,\n parentPersistentId: true,\n sortOrder: true,\n})\n .extend(DocumentationPageV1.shape.data.shape)\n .extend({\n title: z.string(),\n path: z.string(),\n });\n\nexport type DocumentationPageDTOV1 = z.infer<typeof DocumentationPageDTOV1>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DocumentationPageDataV2 } from \"./data/documentation-page-v2\";\n\nexport const DocumentationPageV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV2,\n });\n\nexport type DocumentationPageV2 = z.infer<typeof DocumentationPageV2>;\n\nexport type CreateDocumentationPageV2 = DbCreateInputOmit<DocumentationPageV2>;\nexport type UpdateDocumentationPageV2 = OmitStrict<DbUpdate<DocumentationPageV2>, \"designSystemVersionId\">;\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaFileStructureNode, FigmaFileStructureStatistics } from \"./data/figma-file-structure\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaFileStructureOrigin = z.object({\n sourceId: z.string(),\n fileId: z.string().optional(),\n});\n\nexport const FigmaFileStructureData = z.object({\n rootNode: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n});\n\nexport const FigmaFileStructure = DesignElementBase.extend({\n origin: FigmaFileStructureOrigin,\n data: FigmaFileStructureData,\n});\n\nexport type FigmaFileStructureOrigin = z.infer<typeof FigmaFileStructureOrigin>;\nexport type FigmaFileStructureData = z.infer<typeof FigmaFileStructureData>;\nexport type FigmaFileStructure = z.infer<typeof FigmaFileStructure>;\n\nexport type CreateFigmaFileStructure = DbCreateInputOmit<FigmaFileStructure>;\nexport type UpdateFigmaFileStructure = OmitStrict<DbUpdate<FigmaFileStructure>, \"designSystemVersionId\">;\n\nexport type FigmaFileStructureDiff = {\n toCreate: CreateFigmaFileStructure[];\n toUpdate: UpdateFigmaFileStructure[];\n};\n\nexport function traverseStructure(node: FigmaFileStructureNode, action: (node: FigmaFileStructureNode) => void) {\n action(node);\n\n for (const child of node.children) {\n traverseStructure(child, action);\n }\n}\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaNodeReferenceData } from \"./data/figma-node-reference\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaNodeReference = DesignElementBase.extend({\n data: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReference = z.infer<typeof FigmaNodeReference>;\n\nexport type CreateFigmaNodeReference = DbCreateInputOmit<FigmaNodeReference>;\nexport type UpdateFigmaNodeReference = OmitStrict<DbUpdate<FigmaNodeReference>, \"designSystemVersionId\">;\n\nexport type FigmaNodeReferenceDiff = {\n toUpdate: UpdateFigmaNodeReference[];\n};\n","import { DesignElementType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart, DesignElementGroupablePart, DesignElementSlugPart } from \"./base\";\nimport { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../helpers\";\nimport { DocumentationGroupBehavior, ElementGroupData } from \"./data\";\nimport { DocumentationItemConfiguration } from \"./data\";\nexport const ElementGroup = DesignElementBase.extend(DesignElementGroupablePart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend(DesignElementBrandedPart.partial().shape)\n .extend({\n shortPersistentId: z.string().optional(),\n childType: DesignElementType,\n data: ElementGroupData.optional(),\n });\n\nexport const BrandedElementGroup = ElementGroup.extend(DesignElementBrandedPart.shape);\n\nexport type ElementGroup = z.infer<typeof ElementGroup>;\nexport type BrandedElementGroup = z.infer<typeof BrandedElementGroup>;\n\nexport type CreateElementGroup = OmitStrict<DbCreateInputOmit<ElementGroup>, \"parentPersistentId\"> & {\n parentPersistentId: string;\n};\n\nexport type UpdateElementGroup = DbUpdate<\n OmitStrict<ElementGroup, \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"parentPersistentId\"> & {\n parentPersistentId: string;\n }\n>;\n\nexport type ElementGroupsDiff = {\n toCreate: CreateElementGroup[];\n toUpdate: UpdateElementGroup[];\n toDelete: ElementGroup[\"id\"][];\n};\n\n//\n// DTO\n//\n\nexport const DocumentationGroupDTO = ElementGroup.omit({\n sortOrder: true,\n parentPersistentId: true,\n brandPersistentId: true,\n meta: true,\n childType: true,\n data: true,\n shortPersistentId: true,\n}).extend({\n title: z.string(),\n isRoot: z.boolean(),\n childrenIds: z.array(z.string()),\n groupBehavior: DocumentationGroupBehavior,\n configuration: DocumentationItemConfiguration,\n shortPersistentId: z.string(),\n});\n\nexport type DocumentationGroupDTO = z.infer<typeof DocumentationGroupDTO>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart } from \"./base\";\nimport { PageBlockDataV2 } from \"./data\";\n\n//\n// Element\n//\n\nexport const PageBlockV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape).extend({\n data: PageBlockDataV2,\n});\n\nexport type PageBlockV2 = z.infer<typeof PageBlockV2>;\n\n//\n// Editor Model\n//\n\nexport const PageBlockEditorModelV2 = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModelV2 = z.infer<typeof PageBlockEditorModelV2>;\n","import { z } from \"zod\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"./tokens\";\nimport { DesignTokenType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideOriginPart = DesignTokenOriginPart;\nexport const ThemeOverrideOrigin = DesignTokenOrigin;\n\nexport const ThemeOverride = DesignTokenTypedData.and(\n z.object({\n tokenPersistentId: z.string(),\n origin: ThemeOverrideOrigin.optional()\n .nullable()\n .transform(v => v ?? undefined),\n })\n);\n\nexport type ThemeOverride = z.infer<typeof ThemeOverride>;\nexport type ThemeOverrideOfType<T extends DesignTokenType> = Extract<ThemeOverride, { type: T }>;\n\n//\n// Theme data\n//\n\nexport const ThemeElementData = z.object({\n value: z.object({\n overrides: z.array(ThemeOverride),\n }),\n});\n\nexport type ThemeElementData = z.infer<typeof ThemeElementData>;\n\n//\n// Theme\n//\n\nexport const ThemeOriginPart = z.object({});\n\nexport const ThemeOriginObject = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport const ThemeOriginSource = z.object({\n sourceId: z.string(),\n sourceObjects: z.array(ThemeOriginObject),\n});\n\nexport const ThemeOrigin = z.object({\n sources: z.array(ThemeOriginSource),\n});\n\nexport const Theme = DesignElementBase.extend(DesignElementBrandedPart.shape).extend({\n origin: ThemeOrigin.optional(),\n overrides: z.array(ThemeOverride),\n});\n\nexport type Theme = z.infer<typeof Theme>;\nexport type ThemeOrigin = z.infer<typeof ThemeOrigin>;\nexport type ThemeOriginSource = z.infer<typeof ThemeOriginSource>;\nexport type ThemeOriginObject = z.infer<typeof ThemeOriginObject>;\n\nexport type CreateTheme = DbCreateInputOmit<Theme>;\nexport type UpdateTheme = OmitStrict<DbUpdate<Theme>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ThemeDiff = {\n toCreate: CreateTheme[];\n toUpdate: UpdateTheme[];\n};\n","import { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\nimport { DbUpdate, OmitStrict, zodCreateInputOmit, zodUpdateInputOmit } from \"../../helpers\";\nimport { DesignTokenType } from \"./raw-element\";\nimport {\n TextCaseTokenData,\n FontWeightTokenData,\n LetterSpacingTokenData,\n LineHeightTokenData,\n ParagraphSpacingTokenData,\n StringTokenData,\n TextDecorationTokenData,\n BorderRadiusTokenData,\n BorderWidthTokenData,\n BorderTokenData,\n ProductCopyTokenData,\n FontFamilyTokenData,\n FontSizeTokenData,\n DimensionTokenData,\n TypographyTokenData,\n ShadowTokenData,\n OpacityTokenData,\n GradientTokenData,\n ColorTokenData,\n BlurTokenData,\n DurationTokenData,\n ZIndexTokenData,\n VisibilityTokenData,\n SpaceTokenData,\n SizeTokenData,\n} from \"./data\";\n\n//\n// Base\n//\n\nexport const DesignTokenOriginPart = z.object({\n referenceOriginId: z.string().optional(),\n referencePersistentId: z.string().optional(),\n});\n\nexport const DesignTokenOrigin = DesignElementOrigin.extend(DesignTokenOriginPart.shape);\n\nconst DesignTokenBase = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: DesignTokenOrigin.optional(),\n });\n\nconst CreateDesignTokenBase = DesignTokenBase.omit(zodCreateInputOmit());\nconst UpdateDesignTokenBase = DesignTokenBase.omit({\n ...zodUpdateInputOmit(),\n brandPersistentId: true,\n designSystemVersionId: true,\n});\n\n//\n// Per type\n//\n\nconst BlurTokenTypedData = z.object({\n type: z.literal(\"Blur\"),\n data: BlurTokenData,\n});\n\nconst ColorTokenTypedData = z.object({\n type: z.literal(\"Color\"),\n data: ColorTokenData,\n});\n\nconst GradientTokenTypedData = z.object({\n type: z.literal(\"Gradient\"),\n data: GradientTokenData,\n});\n\nconst OpacityTokenTypedData = z.object({\n type: z.literal(\"Opacity\"),\n data: OpacityTokenData,\n});\n\nconst ShadowTokenTypedData = z.object({\n type: z.literal(\"Shadow\"),\n data: ShadowTokenData,\n});\n\nconst TypographyTokenTypedData = z.object({\n type: z.literal(\"Typography\"),\n data: TypographyTokenData,\n});\n\nconst StringTokenTypedData = z.object({\n type: z.literal(\"String\"),\n data: StringTokenData,\n});\n\nconst DimensionTokenTypedData = z.object({\n type: z.literal(\"Dimension\"),\n data: DimensionTokenData,\n});\n\nconst FontSizeTokenTypedData = z.object({\n type: z.literal(\"FontSize\"),\n data: FontSizeTokenData,\n});\n\nconst FontFamilyTokenTypedData = z.object({\n type: z.literal(\"FontFamily\"),\n data: FontFamilyTokenData,\n});\n\nconst FontWeightTokenTypedData = z.object({\n type: z.literal(\"FontWeight\"),\n data: FontWeightTokenData,\n});\n\nconst LetterSpacingTokenTypedData = z.object({\n type: z.literal(\"LetterSpacing\"),\n data: LetterSpacingTokenData,\n});\n\nconst LineHeightTokenTypedData = z.object({\n type: z.literal(\"LineHeight\"),\n data: LineHeightTokenData,\n});\n\nconst ParagraphSpacingTokenTypedData = z.object({\n type: z.literal(\"ParagraphSpacing\"),\n data: ParagraphSpacingTokenData,\n});\n\nconst TextCaseTokenTypedData = z.object({\n type: z.literal(\"TextCase\"),\n data: TextCaseTokenData,\n});\n\nconst TextDecorationTokenTypedData = z.object({\n type: z.literal(\"TextDecoration\"),\n data: TextDecorationTokenData,\n});\n\nconst BorderRadiusTokenTypedData = z.object({\n type: z.literal(\"BorderRadius\"),\n data: BorderRadiusTokenData,\n});\n\nconst BorderWidthTokenTypedData = z.object({\n type: z.literal(\"BorderWidth\"),\n data: BorderWidthTokenData,\n});\n\nconst BorderTypedData = z.object({\n type: z.literal(\"Border\"),\n data: BorderTokenData,\n});\n\nconst ProductCopyTypedData = z.object({\n type: z.literal(\"ProductCopy\"),\n data: ProductCopyTokenData,\n});\n\nconst SizeTypedData = z.object({\n type: z.literal(\"Size\"),\n data: SizeTokenData,\n});\n\nconst SpaceTypedData = z.object({\n type: z.literal(\"Space\"),\n data: SpaceTokenData,\n});\n\nconst VisibilityTypedData = z.object({\n type: z.literal(\"Visibility\"),\n data: VisibilityTokenData,\n});\n\nconst ZIndexTypedData = z.object({\n type: z.literal(\"ZIndex\"),\n data: ZIndexTokenData,\n});\n\nconst DurationTypedData = z.object({\n type: z.literal(\"Duration\"),\n data: DurationTokenData,\n});\n\nconst FontTypedData = z.object({\n type: z.literal(\"Font\"),\n data: z.record(z.any()),\n});\n\n//\n// Global types\n//\n\nexport const DesignTokenTypedData = z.discriminatedUnion(\"type\", [\n BlurTokenTypedData,\n BorderRadiusTokenTypedData,\n BorderWidthTokenTypedData,\n BorderTypedData,\n ColorTokenTypedData,\n\n DimensionTokenTypedData,\n DurationTypedData,\n FontSizeTokenTypedData,\n FontFamilyTokenTypedData,\n FontWeightTokenTypedData,\n\n GradientTokenTypedData,\n LetterSpacingTokenTypedData,\n LineHeightTokenTypedData,\n OpacityTokenTypedData,\n ParagraphSpacingTokenTypedData,\n\n ProductCopyTypedData,\n ShadowTokenTypedData,\n SizeTypedData,\n SpaceTypedData,\n StringTokenTypedData,\n\n TextCaseTokenTypedData,\n TextDecorationTokenTypedData,\n TypographyTokenTypedData,\n VisibilityTypedData,\n ZIndexTypedData,\n FontTypedData,\n]);\n\nexport type DesignTokenOriginPart = z.infer<typeof DesignTokenOriginPart>;\nexport type DesignTokenOrigin = z.infer<typeof DesignTokenOrigin>;\n\nexport type DesignTokenBase = z.infer<typeof DesignTokenBase>;\n\nexport const DesignToken = DesignTokenTypedData.and(DesignTokenBase);\nexport const CreateDesignToken = DesignTokenTypedData.and(CreateDesignTokenBase);\n\nexport type DesignTokenTypedData = z.infer<typeof DesignTokenTypedData>;\nexport type DesignTokenTypedDataOfType<T extends DesignTokenType> = Extract<DesignTokenTypedData, { type: T }>;\n\nexport type DesignToken = z.infer<typeof DesignToken>;\nexport type ImportedDesignToken = OmitStrict<DesignToken, \"origin\"> & { origin: DesignTokenOrigin };\n\nexport type DesignTokenOfType<T extends DesignTokenType> = Extract<DesignToken, { type: T }>;\nexport type ImportedDesignTokenOfType<T extends DesignTokenType> = Extract<ImportedDesignToken, { type: T }>;\n\nexport type CreateDesignToken = z.infer<typeof CreateDesignToken>;\nexport type UpdateDesignToken = OmitStrict<DbUpdate<DesignToken>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type DesignTokensDiff = {\n toCreate: CreateDesignToken[];\n toUpdate: UpdateDesignToken[];\n};\n\n//\n// Utilities\n//\n\nexport function extractTokenTypedData<T extends DesignTokenType, I extends DesignTokenTypedDataOfType<T>>(\n source: I\n): DesignTokenTypedDataOfType<T> {\n return {\n type: source.type,\n data: source.data,\n } as DesignTokenTypedDataOfType<T>;\n}\n\nexport function isImportedDesignToken<T extends DesignTokenType>(\n designToken: DesignTokenOfType<T>\n): designToken is ImportedDesignTokenOfType<T> {\n return !!designToken.origin;\n}\n\nexport function isDesignTokenOfType<T extends DesignTokenType>(\n designToken: DesignToken,\n type: T\n): designToken is DesignTokenOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignToken) => designToken is DesignTokenOfType<T> {\n return (designToken): designToken is DesignTokenOfType<T> => isDesignTokenOfType(designToken, type);\n}\n","import { z } from \"zod\";\n\nexport const FigmaFileDownloadScope = z.object({\n styles: z.boolean(),\n components: z.boolean(),\n currentVersion: z.literal(\"__latest__\").nullable(),\n publishedVersion: z.string().nullable(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport const FigmaFileAccessData = z.object({\n accessToken: z.string(),\n});\n\nexport type FigmaFileDownloadScope = z.infer<typeof FigmaFileDownloadScope>;\nexport type FigmaFileAccessData = z.infer<typeof FigmaFileAccessData>;\n","import { z } from \"zod\";\nimport { DataSourceFigmaImportMetadata, DataSourceFigmaRemote } from \"../../data-sources\";\nimport { FigmaFileAccessData, FigmaFileDownloadScope } from \"./figma-files\";\n\n//\n// Importer payload\n//\n\nexport const ImportFunctionInput = z.object({\n importJobId: z.string(),\n importContextId: z.string(),\n designSystemId: z.string().optional(),\n});\n\nexport type ImportFunctionInput = z.infer<typeof ImportFunctionInput>;\n\n//\n// Base context\n//\n\nexport const ImportedFigmaSourceData = z.object({\n sourceId: z.string(),\n figmaRemote: DataSourceFigmaRemote,\n});\n\nexport const FigmaImportBaseContext = z.object({\n designSystemId: z.string(),\n\n /**\n * Data required for accessing Figma files. This should contain access data for all file ids\n * mentioned in the `importedSourceDataBySourceId`\n *\n * fileId: file data\n */\n fileAccessByFileId: z.record(FigmaFileAccessData),\n\n /**\n * Figma source data for which import was requested\n *\n * sourceId: source data\n */\n importedSourceDataBySourceId: z.record(ImportedFigmaSourceData),\n});\n\nexport type ImportedFigmaSourceData = z.infer<typeof ImportedFigmaSourceData>;\nexport type FigmaImportBaseContext = z.infer<typeof FigmaImportBaseContext>;\n\n//\n// Context with file download scope\n//\n\nexport const ChangedImportedFigmaSourceData = ImportedFigmaSourceData.extend({\n importMetadata: DataSourceFigmaImportMetadata,\n});\n\nexport const FigmaImportContextWithDownloadScopes = FigmaImportBaseContext.extend({\n /**\n * Describes what to download from each file, this should contain all file id mentioned in\n * importMetadataBySourceId.\n *\n * File id -> file download scope\n */\n fileDownloadScopesByFileId: z.record(FigmaFileDownloadScope),\n\n /**\n * Sources filtered down to the ones that have changed since last import and therefore need to be\n * imported again.\n *\n * Source id -> import metadata\n */\n changedImportedSourceDataBySourceId: z.record(ChangedImportedFigmaSourceData),\n});\n\nexport type ChangedImportedFigmaSourceData = z.infer<typeof ChangedImportedFigmaSourceData>;\nexport type FigmaImportContextWithDownloadScopes = z.infer<typeof FigmaImportContextWithDownloadScopes>;\n","import { z } from \"zod\";\nimport { AssetImportModelInput, ComponentImportModel, ComponentImportModelInput } from \"../component\";\nimport { ThemeImportModel, ThemeImportModelInput, ThemeUpdateImportModel, ThemeUpdateImportModelInput } from \"../theme\";\nimport { DesignTokenImportModel, DesignTokenImportModelInput } from \"../tokens\";\nimport { FigmaFileStructureImportModel, FigmaFileStructureImportModelInput } from \"../figma-frames\";\nimport { DataSourceImportModel } from \"../data-source\";\n\n//\n// Collections\n//\n\nexport const ImportModelInputCollection = z.object({\n source: DataSourceImportModel,\n tokens: z.array(DesignTokenImportModelInput).default([]),\n components: z.array(ComponentImportModelInput).default([]),\n assets: z.array(AssetImportModelInput).default([]),\n themeUpdates: z.array(ThemeUpdateImportModelInput).default([]),\n themes: z.array(ThemeImportModelInput).default([]),\n figmaFileStructure: FigmaFileStructureImportModelInput.optional(),\n});\n\nexport const ImportModelCollection = z.object({\n sources: z.array(DataSourceImportModel),\n tokens: z.array(DesignTokenImportModel).default([]),\n components: z.array(ComponentImportModel).default([]),\n themeUpdates: z.array(ThemeUpdateImportModel).default([]),\n themes: z.array(ThemeImportModel).default([]),\n figmaFileStructures: z.array(FigmaFileStructureImportModel),\n});\n\nexport type ImportModelCollection = z.infer<typeof ImportModelCollection>;\nexport type ImportModelInputCollection = z.infer<typeof ImportModelInputCollection>;\n\nexport function addImportModelCollections(\n lhs: ImportModelCollection,\n rhs: ImportModelCollection\n): ImportModelCollection {\n return {\n sources: [...lhs.sources, ...rhs.sources],\n tokens: [...lhs.tokens, ...rhs.tokens],\n components: [...lhs.components, ...rhs.components],\n themeUpdates: [...lhs.themeUpdates, ...rhs.themeUpdates],\n themes: [...lhs.themes, ...rhs.themes],\n figmaFileStructures: [...lhs.figmaFileStructures, ...rhs.figmaFileStructures],\n };\n}\n","import { z } from \"zod\";\nimport { AssetScope } from \"../assets\";\n\n//\n// Abstract\n//\n\nexport const ImageImportModelType = z.enum([\"Url\", \"FigmaRender\"]);\nexport type ImageImportModelType = z.infer<typeof ImageImportModelType>;\n\nconst ImageImportModelBase = z.object({\n scope: AssetScope,\n});\n\n//\n// Url\n//\n\nexport const UrlImageImportModel = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.Url),\n url: z.string(),\n originKey: z.string(),\n extension: z.enum([\"png\", \"svg\", \"jpg\"]),\n});\n\nexport type UrlImageImportModel = z.infer<typeof UrlImageImportModel>;\n\n//\n// Figma Render\n//\n\nexport const FigmaRenderFormat = z.enum([\"Svg\", \"Png\"]);\n\nconst FigmaRenderBase = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.FigmaRender),\n fileId: z.string(),\n fileVersionId: z.string().optional(),\n nodeId: z.string(),\n originKey: z.string(),\n});\n\nexport const FigmaPngRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Png),\n scale: z.number(),\n});\n\nexport const FigmaSvgRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Svg),\n});\n\nexport const FigmaRenderImportModel = z.discriminatedUnion(\"format\", [\n FigmaPngRenderImportModel,\n FigmaSvgRenderImportModel,\n]);\n\n//\n// Union\n//\n\n// Unfortunately discriminated union doesn't support inserting another discriminated union\nexport const ImageImportModel = z.union([UrlImageImportModel, FigmaRenderImportModel]);\n\n//\n// Types\n//\n\nexport type FigmaRenderFormat = z.infer<typeof FigmaRenderFormat>;\nexport type FigmaRenderBase = z.infer<typeof FigmaRenderBase>;\nexport type FigmaPngRenderImportModel = z.infer<typeof FigmaPngRenderImportModel>;\nexport type FigmaSvgRenderImportModel = z.infer<typeof FigmaSvgRenderImportModel>;\nexport type FigmaRenderImportModel = z.infer<typeof FigmaRenderImportModel>;\nexport type ImageImportModel = z.infer<typeof ImageImportModel>;\n","import { FigmaSvgRenderImportModel, ImageImportModel } from \"./image\";\nimport { ComponentOrigin, ComponentOriginPart } from \"../elements\";\nimport { z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Import model\n//\n\nconst ComponentImportModelPart = z.object({\n thumbnail: ImageImportModel,\n});\n\nexport const ComponentImportModel = ImportModelBase.extend(ComponentImportModelPart.shape).extend({\n isAsset: z.boolean(),\n svg: FigmaSvgRenderImportModel.optional(),\n origin: ComponentOrigin,\n});\n\nexport type ComponentImportModel = z.infer<typeof ComponentImportModel>;\n\n//\n// Import model input\n//\n\nexport const ComponentImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n originMetadata: ComponentOriginPart,\n});\n\nexport const AssetImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n svg: FigmaSvgRenderImportModel,\n originMetadata: ComponentOriginPart,\n});\n\nexport type ComponentImportModelInput = z.infer<typeof ComponentImportModelInput>;\nexport type AssetImportModelInput = z.infer<typeof AssetImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignElementOrigin } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const ImportModelBase = z.object({\n id: z.string(),\n meta: ObjectMeta,\n origin: DesignElementOrigin,\n brandPersistentId: z.string(),\n sortOrder: z.number(),\n});\n\nexport type ImportModelBase = z.infer<typeof ImportModelBase>;\n\nexport const ImportModelInputBase = ImportModelBase.omit({\n brandPersistentId: true,\n origin: true,\n sortOrder: true,\n}).extend({\n originId: z.string(),\n originMetadata: z.record(z.any()),\n});\n\nexport type ImportModelInputBase = z.infer<typeof ImportModelInputBase>;\n","import { z } from \"zod\";\nimport { DesignTokenTypedData } from \"../elements\";\nimport { DesignTokenType } from \"../elements\";\nimport { ThemeOriginObject, ThemeOriginSource, ThemeOverrideOrigin, ThemeOverrideOriginPart } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideImportModelBase = DesignTokenTypedData.and(\n z.object({\n id: z.string(),\n meta: ObjectMeta,\n })\n);\n\nexport const ThemeOverrideImportModel = ThemeOverrideImportModelBase.and(\n z.object({\n origin: ThemeOverrideOrigin,\n })\n);\n\nexport const ThemeOverrideImportModelInput = ThemeOverrideImportModelBase.and(\n z.object({\n originId: z.string(),\n originMetadata: ThemeOverrideOriginPart,\n })\n);\n\nexport type ThemeOverrideImportModel = z.infer<typeof ThemeOverrideImportModel>;\nexport type ThemeOverrideImportModelOfType<T extends DesignTokenType> = Extract<ThemeOverrideImportModel, { type: T }>;\n\nexport type ThemeOverrideImportModelInput = z.infer<typeof ThemeOverrideImportModelInput>;\nexport type ThemeOverrideImportModelInputOfType<T extends DesignTokenType> = Extract<\n ThemeOverrideImportModelInput,\n { type: T }\n>;\n\n//\n// Themes\n//\n\nexport const ThemeImportModel = z.object({\n meta: ObjectMeta,\n brandPersistentId: z.string(),\n originSource: ThemeOriginSource,\n overrides: z.array(ThemeOverrideImportModel),\n sortOrder: z.number(),\n});\n\nexport const ThemeImportModelInput = z.object({\n meta: ObjectMeta,\n originObjects: z.array(ThemeOriginObject),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeImportModel = z.infer<typeof ThemeImportModel>;\nexport type ThemeImportModelInput = z.infer<typeof ThemeImportModelInput>;\n\n//\n// Theme Update\n//\n\nexport const ThemeUpdateImportModel = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModel),\n});\n\nexport const ThemeUpdateImportModelInput = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeUpdateImportModel = z.infer<typeof ThemeUpdateImportModel>;\nexport type ThemeUpdateImportModelInput = z.infer<typeof ThemeUpdateImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"../elements\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Base\n//\n\nconst DesignTokenImportModelPart = z.object({\n collection: z.string().optional(),\n});\n\nexport const DesignTokenImportModelBase = ImportModelBase.extend(DesignTokenImportModelPart.shape).extend({\n origin: DesignTokenOrigin,\n});\n\nexport const DesignTokenImportModelInputBase = ImportModelInputBase.extend(DesignTokenImportModelPart.shape).extend({\n originMetadata: DesignTokenOriginPart,\n});\n\n//\n// Import models\n//\n\nexport const DesignTokenImportModel = DesignTokenTypedData.and(DesignTokenImportModelBase);\nexport const DesignTokenImportModelInput = DesignTokenTypedData.and(DesignTokenImportModelInputBase);\n\nexport type DesignTokenImportModelInputBase = z.infer<typeof DesignTokenImportModelInputBase>;\n\nexport type DesignTokenImportModel = z.infer<typeof DesignTokenImportModel>;\nexport type DesignTokenImportModelOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport type DesignTokenImportModelInput = z.infer<typeof DesignTokenImportModelInput>;\nexport type DesignTokenImportModelInputOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport function isDesignTokenImportModelOfType<T extends DesignTokenType>(\n designToken: DesignTokenImportModel,\n type: T\n): designToken is DesignTokenImportModelOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenImportModelTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignTokenImportModel) => designToken is DesignTokenImportModelOfType<T> {\n return (designToken): designToken is DesignTokenImportModelOfType<T> =>\n isDesignTokenImportModelOfType(designToken, type);\n}\n","import { ZodType, ZodTypeDef, z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\nimport { FigmaFileStructureOrigin } from \"../elements\";\nimport { FigmaFileStructureNodeBase, FigmaFileStructureStatistics } from \"../elements\";\nimport { FigmaPngRenderImportModel } from \"./image\";\n\n//\n// Nodes Import Model\n//\n\nconst FigmaFileStructureNodeImportModelBase = FigmaFileStructureNodeBase.extend({\n image: FigmaPngRenderImportModel,\n});\n\nexport const FigmaFileStructureNodeImportModel: z.ZodType<\n FigmaFileStructureNodeImportModel,\n ZodTypeDef,\n FigmaFileStructureNodeImportModelBaseInput\n> = FigmaFileStructureNodeImportModelBase.extend({\n children: z.lazy(() => FigmaFileStructureNodeImportModel.array()),\n});\n\ntype FigmaFileStructureNodeImportModelBaseInput = z.input<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModelBaseInput[];\n};\n\nexport type FigmaFileStructureNodeImportModel = z.infer<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModel[];\n};\n\n//\n// Structure Import Model\n//\n\nconst FigmaFileStructureImportModelPart = z.object({\n data: z.object({\n rootNode: FigmaFileStructureNodeImportModel,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport const FigmaFileStructureImportModel = ImportModelBase.extend(FigmaFileStructureImportModelPart.shape).extend({\n origin: FigmaFileStructureOrigin,\n});\n\nexport type FigmaFileStructureImportModel = z.infer<typeof FigmaFileStructureImportModel>;\n\n//\n// Import model input\n//\n\nexport const FigmaFileStructureImportModelInput = ImportModelInputBase.extend(\n FigmaFileStructureImportModelPart.shape\n).extend({\n fileVersionId: z.string(),\n});\n\nexport type FigmaFileStructureImportModelInput = z.infer<typeof FigmaFileStructureImportModelInput>;\n\nexport function figmaFileStructureImportModelToMap(\n root: FigmaFileStructureNodeImportModel\n): Map<string, FigmaFileStructureNodeImportModel> {\n const map = new Map<string, FigmaFileStructureNodeImportModel>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(\n node: FigmaFileStructureNodeImportModel,\n map: Map<string, FigmaFileStructureNodeImportModel>\n) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const DataSourceImportModel = z.object({\n id: z.string(),\n fileName: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n});\n\nexport type DataSourceImportModel = z.infer<typeof DataSourceImportModel>;\n","import { z } from \"zod\";\n\nexport const ImportWarningType = z.enum([\n \"NoVersionFound\",\n \"UnsupportedFill\",\n \"UnsupportedStroke\",\n \"UnsupportedEffect\",\n \"NoPublishedElements\",\n \"NoPublishedStyles\",\n \"NoPublishedComponents\",\n \"NoPublishedAssets\",\n \"StyleNotApplied\",\n \"ComponentHasNoThumbnail\",\n \"DuplicateImportedStyleId\",\n \"DuplicateImportedStylePath\",\n]);\n\nexport const ImportWarning = z.object({\n warningType: ImportWarningType,\n componentId: z.string().optional(),\n componentName: z.string().optional(),\n styleId: z.string().optional(),\n styleName: z.string().optional(),\n unsupportedStyleValueType: z.string().optional(),\n});\n\nexport type ImportWarningType = z.infer<typeof ImportWarningType>;\nexport type ImportWarning = z.infer<typeof ImportWarning>;\n","import { z } from \"zod\";\n\nexport const PageBlockDefinitionAppearance = z.object({\n isBordered: z.boolean().optional(),\n hasBackground: z.boolean().optional(),\n isEditorPresentationDifferent: z.boolean().optional(),\n});\n\nexport type PageBlockDefinitionAppearance = z.infer<typeof PageBlockDefinitionAppearance>;\n","import { z } from \"zod\";\nimport { AssetValue } from \"../../assets/asset-value\";\nimport { PageBlockDefinitionItem } from \"./item\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport const PageBlockCategory = z.enum([\n \"Text\",\n \"Layout\",\n \"Media\",\n \"Embed\",\n \"Figma\",\n \"Code\",\n \"Guidelines\",\n \"Tokens\",\n \"Components\",\n \"Assets\",\n \"Data\",\n \"Other\",\n]);\n\nexport const PageBlockBehaviorDataType = z.enum([\"Item\", \"Token\", \"Asset\", \"Component\", \"FigmaFrame\"]);\nexport const PageBlockBehaviorSelectionType = z.enum([\"Entity\", \"Group\", \"EntityAndGroup\"]);\n\nexport type PageBlockCategory = z.infer<typeof PageBlockCategory>;\nexport type PageBlockBehaviorDataType = z.infer<typeof PageBlockBehaviorDataType>;\nexport type PageBlockBehaviorSelectionType = z.infer<typeof PageBlockBehaviorSelectionType>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionBehavior = z.object({\n dataType: PageBlockBehaviorDataType,\n items: z\n .object({\n numberOfItems: z.number(),\n allowLinks: z.boolean(),\n })\n .optional(),\n entities: z\n .object({\n selectionType: PageBlockBehaviorSelectionType,\n maxSelected: z.number(),\n })\n .optional(),\n});\n\nexport const PageBlockDefinitionOnboarding = z.object({\n helpText: z.string(),\n documentationLink: z.string().optional(),\n});\n\nexport const PageBlockDefinition = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n category: PageBlockCategory,\n icon: AssetValue.optional(),\n documentationLink: z.string().optional(),\n searchKeywords: z.array(z.string()).optional(),\n item: PageBlockDefinitionItem,\n behavior: PageBlockDefinitionBehavior,\n editorOptions: z.object({\n onboarding: PageBlockDefinitionOnboarding.optional(),\n }),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionBehavior = z.infer<typeof PageBlockDefinitionBehavior>;\nexport type PageBlockDefinitionOnboarding = z.infer<typeof PageBlockDefinitionOnboarding>;\nexport type PageBlockDefinition = z.infer<typeof PageBlockDefinition>;\n","import { z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\nimport { PageBlockDefinitionVariant } from \"./variant\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionPropertyType = z.enum([\n \"RichText\",\n \"MultiRichText\",\n \"Text\",\n \"Boolean\",\n \"Number\",\n \"SingleSelect\",\n \"MultiSelect\",\n \"Image\",\n \"Token\",\n \"TokenType\",\n \"TokenProperty\",\n \"Component\",\n \"ComponentProperty\",\n \"Asset\",\n \"AssetProperty\",\n \"EmbedURL\",\n \"URL\",\n \"Markdown\",\n \"Code\",\n \"CodeSandbox\",\n \"Table\",\n \"Divider\",\n \"Storybook\",\n \"Color\",\n]);\n\nexport const PageBlockDefinitionRichTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Quote\",\n \"Callout\",\n \"Default\",\n]);\n\nexport const PageBlockDefinitionMultiRichTextPropertyStyle = z.enum([\"OL\", \"UL\", \"Default\"]);\n\nexport const PageBlockDefinitionTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Default\",\n \"DefaultBold\",\n \"DefaultSemibold\",\n \"Small\",\n \"SmallBold\",\n \"SmallSemibold\",\n]);\n\nexport const PageBlockDefinitionBooleanPropertyStyle = z.enum([\"SegmentedControl\", \"ToggleButton\", \"Checkbox\"]);\nexport const PageBlockDefinitionSingleSelectPropertyStyle = z.enum([\n \"SegmentedControl\",\n \"ToggleButton\",\n \"Select\",\n \"Checkbox\",\n]);\nexport const PageBlockDefinitionMultiSelectPropertyStyle = z.enum([\"SegmentedControl\", \"Select\", \"Checkbox\"]);\n\nexport type PageBlockDefinitionPropertyType = z.infer<typeof PageBlockDefinitionPropertyType>;\nexport type PageBlockDefinitionRichTextPropertyStyle = z.infer<typeof PageBlockDefinitionRichTextPropertyStyle>;\nexport type PageBlockDefinitionMultiRichTextPropertyStyle = z.infer<\n typeof PageBlockDefinitionMultiRichTextPropertyStyle\n>;\nexport type PageBlockDefinitionTextPropertyStyle = z.infer<typeof PageBlockDefinitionTextPropertyStyle>;\nexport type PageBlockDefinitionBooleanPropertyStyle = z.infer<typeof PageBlockDefinitionBooleanPropertyStyle>;\nexport type PageBlockDefinitionSingleSelectPropertyStyle = z.infer<typeof PageBlockDefinitionSingleSelectPropertyStyle>;\nexport type PageBlockDefinitionMultiSelectPropertyStyle = z.infer<typeof PageBlockDefinitionMultiSelectPropertyStyle>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionPropertyOptions = z\n .object({\n richTextStyle: PageBlockDefinitionRichTextPropertyStyle.optional(),\n multiRichTextStyle: PageBlockDefinitionMultiRichTextPropertyStyle.optional(),\n textStyle: PageBlockDefinitionTextPropertyStyle.optional(),\n placeholder: z.string().optional(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockDefinitionProperty = z.object({\n id: z.string(),\n name: z.string(),\n type: PageBlockDefinitionPropertyType,\n description: z.string().optional(),\n // TODO Docs\n options: PageBlockDefinitionPropertyOptions.optional(),\n variantOptions: z.record(PageBlockDefinitionPropertyOptions).optional(),\n});\n\nexport const PageBlockDefinitionItem = z.object({\n properties: z.array(PageBlockDefinitionProperty),\n appearance: PageBlockDefinitionAppearance.optional(),\n variants: z.array(PageBlockDefinitionVariant),\n defaultVariantKey: z.string(),\n});\n\nexport type PageBlockDefinitionPropertyOptions = z.infer<typeof PageBlockDefinitionPropertyOptions>;\nexport type PageBlockDefinitionProperty = z.infer<typeof PageBlockDefinitionProperty>;\nexport type PageBlockDefinitionItem = z.infer<typeof PageBlockDefinitionItem>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionLayoutType = z.enum([\"Column\", \"Row\"]);\nexport const PageBlockDefinitionLayoutGap = z.enum([\"Small\", \"Medium\", \"Large\", \"None\"]);\nexport const PageBlockDefinitionLayoutAlign = z.enum([\"Start\", \"Center\", \"End\"]);\nexport const PageBlockDefinitionLayoutResizing = z.enum([\"Fill\", \"Hug\"]);\n\nexport type PageBlockDefinitionLayoutType = z.infer<typeof PageBlockDefinitionLayoutType>;\nexport type PageBlockDefinitionLayoutGap = z.infer<typeof PageBlockDefinitionLayoutGap>;\nexport type PageBlockDefinitionLayoutAlign = z.infer<typeof PageBlockDefinitionLayoutAlign>;\nexport type PageBlockDefinitionLayoutResizing = z.infer<typeof PageBlockDefinitionLayoutResizing>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionLayoutBase = z.object({\n type: PageBlockDefinitionLayoutType,\n gap: PageBlockDefinitionLayoutGap.optional(),\n columnAlign: PageBlockDefinitionLayoutAlign.optional(),\n columnResizing: PageBlockDefinitionLayoutResizing.optional(),\n});\n\nexport const PageBlockDefinitionLayout: z.ZodType<PageBlockDefinitionLayout, ZodTypeDef, PageBlockDefinitionLayout> =\n PageBlockDefinitionLayoutBase.extend({\n children: z.lazy(() => z.array(PageBlockDefinitionLayout.or(z.string()))),\n });\n\nexport const PageBlockDefinitionVariant = z.object({\n id: z.string(),\n name: z.string(),\n image: z.string().optional(),\n description: z.string().optional(),\n documentationLink: z.string().optional(),\n layout: PageBlockDefinitionLayout,\n maxColumns: z.number().optional(),\n defaultColumns: z.number().optional(),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionVariant = z.infer<typeof PageBlockDefinitionVariant>;\nexport type PageBlockDefinitionLayout = z.infer<typeof PageBlockDefinitionLayoutBase> & {\n children: (PageBlockDefinitionLayout | string)[];\n};\n","import { z } from \"zod\";\n\nexport const DocumentationPageGroup = z.object({\n type: z.literal(\"ElementGroup\"),\n childType: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPageGroup = z.infer<typeof DocumentationPageGroup>;\n","import { z } from \"zod\";\n\nexport const DocumentationPage = z.object({\n type: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPage = z.infer<typeof DocumentationPage>;\n","import { z } from \"zod\";\nimport { Workspace } from \"../workspace\";\nexport const DesignSystemSwitcher = z.object({\n isEnabled: z.boolean(),\n designSystemIds: z.string(),\n});\n\nexport const DesignSystem = z.object({\n id: z.string(),\n workspaceId: z.string(),\n name: z.string(),\n description: z.string(),\n docExporterId: z.string().nullish(),\n docSlug: z.string(),\n docUserSlug: z.string().nullish(),\n docSlugDeprecated: z.string(),\n isPublic: z.boolean(),\n isMultibrand: z.boolean(),\n docViewUrl: z.string().nullish(),\n basePrefixes: z.array(z.string()),\n designSystemSwitcher: DesignSystemSwitcher.nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignSystemWithWorkspace = z.object({\n designSystem: DesignSystem,\n workspace: Workspace,\n});\n\nexport type DesignSystemSwitcher = z.infer<typeof DesignSystemSwitcher>;\nexport type DesignSystem = z.infer<typeof DesignSystem>;\nexport type DesignSystemWithWorkspace = z.infer<typeof DesignSystemWithWorkspace>;\n","import { z } from \"zod\";\n\nexport const NpmRegistryAuthType = z.enum([\"Basic\", \"Bearer\", \"None\", \"Custom\"]);\nexport const NpmRegistryType = z.enum([\"NPMJS\", \"GitHub\", \"AzureDevOps\", \"Artifactory\", \"Custom\"]);\n\nexport const NpmRegistryBasicAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Basic),\n username: z.string(),\n password: z.string(),\n});\n\nexport const NpmRegistryBearerAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Bearer),\n accessToken: z.string(),\n});\n\nexport const NpmRegistryNoAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.None),\n});\n\nexport const NpmRegistrCustomAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Custom),\n authHeaderName: z.string(),\n authHeaderValue: z.string(),\n});\n\nexport const NpmRegistryAuthConfig = z.discriminatedUnion(\"authType\", [\n NpmRegistryBasicAuthConfig,\n NpmRegistryBearerAuthConfig,\n NpmRegistryNoAuthConfig,\n NpmRegistrCustomAuthConfig,\n]);\n\nconst NpmRegistryConfigBase = z.object({\n registryType: NpmRegistryType,\n enabledScopes: z.array(z.string()),\n customRegistryUrl: z.string().optional(),\n bypassProxy: z.boolean().default(false),\n npmProxyRegistryConfigId: z.string().optional(),\n npmProxyVersion: z.number().optional(),\n});\n\nexport const NpmRegistryConfig = NpmRegistryConfigBase.and(NpmRegistryAuthConfig);\n\nexport type NpmRegistryConfig = z.infer<typeof NpmRegistryConfig>;\n","import { z } from \"zod\";\nexport const SsoProvider = z.object({\n providerId: z.string(),\n defaultAutoInviteValue: z.boolean(),\n autoInviteDomains: z.record(z.string(), z.boolean()),\n skipDocsSupernovaLogin: z.boolean(),\n areInvitesDisabled: z.boolean(),\n isTestMode: z.boolean(),\n emailDomains: z.array(z.string()),\n metadataXml: z.string().nullish(),\n});\n\nexport type SsoProvider = z.infer<typeof SsoProvider>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"./workspace-role\";\n\nexport const MAX_MEMBERS_COUNT = 100;\n\nexport const UserInvite = z.object({\n email: z\n .string()\n .email()\n .trim()\n .transform(value => value.toLowerCase()),\n role: WorkspaceRoleSchema,\n});\n\nexport const UserInvites = z.array(UserInvite).max(MAX_MEMBERS_COUNT);\n\nexport type UserInvite = z.infer<typeof UserInvite>;\nexport type UserInvites = z.infer<typeof UserInvites>;\n","import { z } from \"zod\";\n\nexport const WorkspaceRoleSchema = z.enum([\"Owner\", \"Admin\", \"Creator\", \"Viewer\", \"Billing\", \"Guest\"]);\n\nexport type WorkspaceRole = z.infer<typeof WorkspaceRoleSchema>;\nexport const WorkspaceRole = WorkspaceRoleSchema.enum;\n","import { ProductCodeSchema } from \"../billing\";\nimport { z } from \"zod\";\n\nexport const WorkspaceContext = z.object({\n workspaceId: z.string(),\n product: ProductCodeSchema,\n publicDesignSystem: z.boolean().optional(),\n});\n\nexport type WorkspaceContext = z.infer<typeof WorkspaceContext>;\n","import { z } from \"zod\";\nimport { UserInvites } from \"./user-invite\";\nimport { ProductCodeSchema } from \"../billing\";\nimport { slugRegex } from \"../utils/validation\";\n\nconst WORKSPACE_NAME_MIN_LENGTH: number = 2;\nconst WORKSPACE_NAME_MAX_LENGTH: number = 64;\nexport const HANDLE_MIN_LENGTH = 2;\nexport const HANDLE_MAX_LENGTH = 64;\n\nexport const CreateWorkspaceInput = z.object({\n name: z.string().min(WORKSPACE_NAME_MIN_LENGTH).max(WORKSPACE_NAME_MAX_LENGTH).trim(),\n product: ProductCodeSchema,\n priceId: z.string(),\n billingEmail: z.string().email().optional(),\n handle: z\n .string()\n .regex(slugRegex)\n .min(HANDLE_MIN_LENGTH)\n .max(HANDLE_MAX_LENGTH)\n .refine(value => value?.length > 0)\n .optional(),\n invites: UserInvites.optional(),\n promoCode: z.string().optional(),\n});\n\nexport type CreateWorkspaceInput = z.infer<typeof CreateWorkspaceInput>;\n","// Consists of lowercased letters, digits and hyphens.\n// Can not start or end with hyphen.\n// Warning: does not forbid consecutive hyphens\nexport const slugRegex = /^[a-z0-9][a-z0-9-]*[a-z0-9]$/;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceInvitation = z.object({\n id: z.string(),\n email: z.string().email(),\n createdAt: z.date(),\n resentAt: z.date().nullish(),\n role: z.nativeEnum(WorkspaceRole),\n workspaceId: z.string(),\n invitedBy: z.string(),\n});\n\nexport type WorkspaceInvitation = z.infer<typeof WorkspaceInvitation>;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceMembership = z.object({\n id: z.string(),\n userId: z.string(),\n workspaceId: z.string(),\n workspaceRole: z.nativeEnum(WorkspaceRole),\n});\n\nexport type WorkspaceMembership = z.infer<typeof WorkspaceMembership>;\n","import { z } from \"zod\";\nimport { Subscription } from \"../billing\";\nimport { SsoProvider } from \"./sso-provider\";\nimport { DesignSystem } from \"../dsm\";\nimport { BillingDetails } from \"../billing\";\n\nexport const WorkspaceIpWhitelistEntry = z.object({\n isEnabled: z.boolean(),\n name: z.string(),\n range: z.string(),\n});\n\nexport const WorkspaceIpSettings = z\n .object({\n isEnabledForCloud: z.boolean(),\n isEnabledForDocs: z.boolean(),\n entries: z.array(WorkspaceIpWhitelistEntry),\n })\n .nullish();\n\nexport const WorkspaceProfile = z.object({\n name: z.string(),\n handle: z.string(),\n color: z.string(),\n avatar: z.string().optional(),\n billingDetails: BillingDetails.optional(),\n});\n\nexport const Workspace = z.object({\n id: z.string(),\n profile: WorkspaceProfile,\n subscription: Subscription,\n ipWhitelist: WorkspaceIpSettings,\n sso: SsoProvider.nullish(),\n npmRegistrySettings: z.unknown().optional(),\n designSystems: z.array(DesignSystem).nullish(),\n});\n\nexport const WorkspaceWithDesignSystems = z.object({\n workspace: Workspace,\n designSystems: z.array(DesignSystem),\n});\n\nexport type WorkspaceIpWhitelistEntry = z.infer<typeof WorkspaceIpWhitelistEntry>;\nexport type WorkspaceIpSettings = z.infer<typeof WorkspaceIpSettings>;\nexport type WorkspaceProfile = z.infer<typeof WorkspaceProfile>;\nexport type Workspace = z.infer<typeof Workspace>;\nexport type WorkspaceWithDesignSystems = z.infer<typeof WorkspaceWithDesignSystems>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemCreateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim(),\n});\n\nexport const DesignSystemCreateInput = z.object({\n meta: DesignSystemCreateInputMetadata,\n workspaceId: z.string(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n});\n\nexport type DesignSystemCreateInput = z.infer<typeof DesignSystemCreateInput>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemUpdateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n});\n\nexport const DesignSystemUpdateInput = z.object({\n meta: DesignSystemUpdateInputMetadata.optional(),\n workspaceId: z.string().optional(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n docExporterId: z.string().optional(),\n});\n\nexport type DesignSystemUpdateInput = z.infer<typeof DesignSystemUpdateInput>;\n","import { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../helpers\";\n\nexport const SHORT_PERSISTENT_ID_LENGTH = 8;\n\nexport function tryParseShortPersistentId(url = \"/\") {\n const lastUrlPart = url.split(\"/\").pop() || \"\";\n const shortPersistentId = lastUrlPart.split(\"-\").pop()?.replaceAll(\".html\", \"\") || null;\n\n return shortPersistentId?.length === SHORT_PERSISTENT_ID_LENGTH ? shortPersistentId : null;\n}\n\nexport type PublishedDocPage = {\n id: string;\n publishedDocId: string;\n pageShortPersistentId: string;\n pathV1: string;\n pathV2: string;\n storagePath: string;\n createdAt: Date;\n updatedAt: Date;\n locale: string | undefined;\n};\n\nexport type CreatePublishedDocPage = DbCreateInputOmit<PublishedDocPage>;\nexport type UpdatePublishedDocPage = DbUpdate<OmitStrict<PublishedDocPage, \"pageShortPersistentId\" | \"publishedDocId\">>;\n","import { z } from \"zod\";\n\nexport const publishedDocEnvironments = [\"Live\", \"Preview\"] as const;\nexport const PublishedDocEnvironment = z.enum(publishedDocEnvironments);\n\nexport const PublishedDocsChecksums = z.record(z.string());\n\nexport const PublishedDocRoutingVersion = z.enum([\"1\", \"2\"]);\n\nexport const PublishedDoc = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n lastPublishedAt: z.date(),\n isDefault: z.boolean(),\n isPublic: z.boolean(),\n environment: PublishedDocEnvironment,\n checksums: PublishedDocsChecksums,\n storagePath: z.string(),\n wasMigrated: z.boolean(),\n routingVersion: PublishedDocRoutingVersion,\n usesLocalizations: z.boolean(),\n wasPublishedWithLocalizations: z.boolean(),\n});\n\nexport type PublishedDocEnvironment = z.infer<typeof PublishedDocEnvironment>;\nexport type PublishedDocsChecksums = z.infer<typeof PublishedDocsChecksums>;\nexport type PublishedDocRoutingVersion = z.infer<typeof PublishedDocRoutingVersion>;\nexport type PublishedDoc = z.infer<typeof PublishedDoc>;\n","import { PublishedDocEnvironment } from \"../dsm\";\nimport { z } from \"zod\";\nexport const ExportJobStatus = z.union([\n z.literal(\"Success\"),\n z.literal(\"InProgress\"),\n z.literal(\"Timeout\"),\n z.literal(\"Failed\"),\n]);\n\nexport type ExportJobStatus = z.infer<typeof ExportJobStatus>;\n\nexport const ExportJob = z.object({\n id: z.string(),\n workspaceId: z.string(),\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n status: ExportJobStatus,\n docsUrl: z.string().nullish(),\n scheduleId: z.string().nullish(),\n exporterId: z.string().nullish(),\n createdAt: z.date(),\n environment: PublishedDocEnvironment,\n finishedAt: z.date().nullish(),\n});\n\nexport type ExportJob = z.infer<typeof ExportJob>;\n","import { z } from \"zod\";\n\nexport const ExporterWorkspaceMembershipRole = z.enum([\"Owner\", \"OwnerArchived\", \"User\"]);\nexport type ExporterWorkspaceMembershipRole = z.infer<typeof ExporterWorkspaceMembershipRole>;\n","import { z } from \"zod\";\nimport { ExporterWorkspaceMembershipRole } from \"./exporter-workspace-membership-role\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nexport const ExporterWorkspaceMembership = z.object({\n id: z.string(),\n workspaceId: z.string(),\n exporterId: z.string(),\n role: ExporterWorkspaceMembershipRole,\n});\n\nexport type ExporterWorkspaceMembership = z.infer<typeof ExporterWorkspaceMembership>;\n\nexport type CreateExporterMembership = DbCreateInputOmit<ExporterWorkspaceMembership>;\n","import { z } from \"zod\";\nimport { GitProvider } from \"./git-providers\";\nimport { PulsarContributionBlock, PulsarContributionConfigurationProperty, PulsarContributionVariant } from \"./pulsar\";\nimport { nullishToOptional } from \"../helpers\";\n\nexport const ExporterType = z.enum([\"code\", \"documentation\"]);\nexport const ExporterSource = z.enum([\"git\", \"upload\"]);\nexport const ExporterTag = z.string().regex(/^[0-9a-zA-Z]+(\\s[0-9a-zA-Z]+)*$/);\n\nexport const ExporterDetails = z.object({\n packageId: z.string().max(255),\n version: z.string(),\n description: z.string(),\n author: nullishToOptional(z.string()),\n organization: nullishToOptional(z.string()),\n homepage: nullishToOptional(z.string()),\n readme: nullishToOptional(z.string()),\n tags: z.array(ExporterTag).default([]),\n\n routingVersion: nullishToOptional(z.string()),\n\n iconURL: nullishToOptional(z.string()),\n configurationProperties: z.array(PulsarContributionConfigurationProperty).default([]),\n customBlocks: z.array(PulsarContributionBlock).default([]),\n blockVariants: z.record(z.string(), z.array(PulsarContributionVariant)).default({}),\n\n usesBrands: z.boolean().default(false),\n usesThemes: z.boolean().default(false),\n\n source: ExporterSource,\n\n gitProvider: nullishToOptional(GitProvider),\n gitUrl: nullishToOptional(z.string()),\n gitBranch: nullishToOptional(z.string()),\n gitDirectory: nullishToOptional(z.string()),\n});\n\nexport const Exporter = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n name: z.string(),\n isPrivate: z.boolean(),\n details: ExporterDetails,\n exporterType: ExporterType.default(\"code\"),\n storagePath: z.string().default(\"\"),\n});\n\nexport type ExporterType = z.infer<typeof ExporterType>;\nexport type ExporterSource = z.infer<typeof ExporterSource>;\nexport type ExporterTag = z.infer<typeof ExporterTag>;\nexport type ExporterDetails = z.infer<typeof ExporterDetails>;\nexport type Exporter = z.infer<typeof Exporter>;\n","import { z } from \"zod\";\n\nexport enum GitProviderNames {\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const GitProvider = z.nativeEnum(GitProviderNames);\nexport type GitProvider = z.infer<typeof GitProvider>;\n","import { z } from \"zod\";\n\nexport const PulsarContributionVariant = z.object({\n key: z.string(),\n name: z.string(),\n isDefault: z.boolean().optional(),\n description: z.string().optional(),\n thumbnailURL: z.string().optional(),\n});\nexport type PulsarContributionVariant = z.infer<typeof PulsarContributionVariant>;\n\nexport const PulsarPropertyType = z.enum([\n \"string\",\n \"number\",\n \"boolean\",\n \"image\",\n \"enum\",\n \"color\",\n \"typography\",\n \"component\",\n \"componentProperties\",\n \"tokenProperties\",\n \"tokenType\",\n]);\nexport type PulsarPropertyType = z.infer<typeof PulsarPropertyType>;\n\n// export type PulsarPropertyValueType =\n// | string\n// | number\n// | boolean\n// | PulsarPropertyImageValue\n// | ColorTokenData // TODO: Should we do smth here? Update Pulsar to get value?!\n// | TypographyTokenData;\n\nexport const BasePulsarProperty = z.object({\n label: z.string(),\n key: z.string(),\n description: z.string().optional(),\n type: PulsarPropertyType,\n values: z.array(z.string()).optional(),\n default: z.union([z.string(), z.boolean(), z.number()]).nullish(), // PulsarPropertyValueType //is optional?\n inputType: z.enum([\"code\", \"plain\"]).optional(), //is optional?\n isMultiline: z.boolean().optional(),\n});\nexport type BasePulsarProperty = z.infer<typeof BasePulsarProperty>;\n\nexport const PulsarContributionBlock = z.object({\n title: z.string(),\n key: z.string(),\n category: z.string(),\n description: z.string().optional(),\n iconURL: z.string(),\n mode: z.enum([\"array\", \"block\"]),\n properties: z.array(BasePulsarProperty),\n});\nexport type PulsarContributionBlock = z.infer<typeof PulsarContributionBlock>;\n\nexport const PulsarContributionConfigurationProperty = BasePulsarProperty.extend({ category: z.string() });\nexport type PulsarContributionConfigurationProperty = z.infer<typeof PulsarContributionConfigurationProperty>;\n","import { z } from \"zod\";\n\nexport type CustomDomainState =\n | \"Initial\"\n | \"DomainSetupInProgress\"\n | \"DomainSetupFailed\"\n | \"DomainSetupSuccess\"\n | \"SSLSetupInProgress\"\n | \"SSLSetupFailed\"\n | \"SSLSetupSuccess\";\n\nexport const CustomDomain = z.object({\n id: z.string(),\n designSystemId: z.string(),\n state: z.string(),\n\n supernovaDomain: z.string(),\n customerDomain: z.string().nullish(),\n\n error: z.string().nullish(),\n errorCode: z.string().nullish(),\n});\n\nexport type CustomDomain = z.infer<typeof CustomDomain>;\n","import { z } from \"zod\";\nimport { User } from \"../users\";\n\nexport const NpmProxyToken = z.object({\n access: z.string(),\n expiresAt: z.number(),\n});\n\nexport type NpmProxyToken = z.infer<typeof NpmProxyToken>;\n\nexport const SessionData = z.object({\n returnToUrl: z.string().optional(),\n npmProxyToken: NpmProxyToken.optional(),\n});\n\nexport type SessionData = z.infer<typeof SessionData>;\n\nexport const Session = z.object({\n id: z.string(),\n expiresAt: z.date(),\n userId: z.string().nullable(),\n data: SessionData,\n});\n\nexport type Session = z.infer<typeof Session>;\n\nexport const AuthTokens = z.object({\n access: z.string(),\n refresh: z.string(),\n});\n\nexport type AuthTokens = z.infer<typeof AuthTokens>;\n\nexport const UserSession = z.object({\n session: Session,\n user: User.nullable(),\n});\n\nexport type UserSession = z.infer<typeof UserSession>;\n","import { z } from \"zod\";\n\nexport const IntegrationAuthType = z.union([z.literal(\"OAuth2\"), z.literal(\"PAT\")]);\n\nexport type IntegrationAuthType = z.infer<typeof IntegrationAuthType>;\n\nexport const ExternalServiceType = z.union([\n z.literal(\"figma\"),\n z.literal(\"github\"),\n z.literal(\"azure\"),\n z.literal(\"gitlab\"),\n z.literal(\"bitbucket\"),\n]);\n\nexport type ExternalServiceType = z.infer<typeof ExternalServiceType>;\n\nexport const IntegrationUserInfo = z.object({\n id: z.string(),\n handle: z.string().optional(),\n avatarUrl: z.string().optional(),\n email: z.string().optional(),\n authType: IntegrationAuthType.optional(),\n customUrl: z.string().optional(),\n});\n\nexport type IntegrationUserInfo = z.infer<typeof IntegrationUserInfo>;\n\nexport const UserLinkedIntegrations = z.object({\n figma: IntegrationUserInfo.optional(),\n github: IntegrationUserInfo.array().optional(),\n azure: IntegrationUserInfo.array().optional(),\n gitlab: IntegrationUserInfo.array().optional(),\n bitbucket: IntegrationUserInfo.array().optional(),\n});\n\nexport type UserLinkedIntegrations = z.infer<typeof UserLinkedIntegrations>;\n","import { z } from \"zod\";\n\nexport const UserIdentity = z.object({\n id: z.string(),\n userId: z.string(),\n});\n\nexport type UserIdentity = z.infer<typeof UserIdentity>;\n","import { z } from \"zod\";\n\nexport const UserOnboardingDepartment = z.enum([\"Design\", \"Engineering\", \"Brand\", \"Other\"]);\n\nexport const UserOnboardingJobLevel = z.enum([\"Executive\", \"Manager\", \"IndividualContributor\", \"Other\"]);\n\nexport const UserOnboarding = z.object({\n companyName: z.string().optional(),\n numberOfPeopleInOrg: z.string().optional(),\n numberOfPeopleInDesignTeam: z.string().optional(),\n department: UserOnboardingDepartment.optional(),\n jobTitle: z.string().optional(),\n phase: z.string().optional(),\n jobLevel: UserOnboardingJobLevel.optional(),\n});\n\nexport type UserOnboarding = z.infer<typeof UserOnboarding>;\n\nexport const UserProfile = z.object({\n name: z.string(),\n avatar: z.string().optional(),\n nickname: z.string().optional(),\n onboarding: UserOnboarding.optional(),\n});\n\nexport type UserProfile = z.infer<typeof UserProfile>;\n","import { UserLinkedIntegrations } from \"./linked-integrations\";\nimport { UserProfile } from \"./user-profile\";\nimport { z } from \"zod\";\n\nexport const User = z.object({\n id: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n createdAt: z.date(),\n trialExpiresAt: z.date().optional(),\n profile: UserProfile,\n linkedIntegrations: UserLinkedIntegrations.optional(),\n loggedOutAt: z.date().optional(),\n isProtected: z.boolean(),\n});\n\nexport type User = z.infer<typeof User>;\n","import { z } from \"zod\";\n\nexport const FlaggedFeature = z.enum([\"FigmaImporterV2\"]);\nexport const FeatureFlagMap = z.record(FlaggedFeature, z.boolean());\nexport const FeatureFlag = z.object({\n id: z.string(),\n feature: FlaggedFeature,\n createdAt: z.date(),\n enabled: z.boolean(),\n});\n\nexport type FlaggedFeature = z.infer<typeof FlaggedFeature>;\nexport type FeatureFlagMap = z.infer<typeof FeatureFlagMap>;\nexport type FeatureFlag = z.infer<typeof FeatureFlag>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const ExternalOAuthRequest = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n userId: z.string(),\n state: z.string(),\n createdAt: z.date(),\n});\n\nexport type ExternalOAuthRequest = z.infer<typeof ExternalOAuthRequest>;\n","import { z } from \"zod\";\n\nexport enum OAuthProviderNames {\n Figma = \"figma\",\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const OAuthProviderSchema = z.nativeEnum(OAuthProviderNames);\nexport type OAuthProvider = z.infer<typeof OAuthProviderSchema>;\nexport const OAuthProvider = OAuthProviderSchema.enum;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const IntegrationTokenSchema = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n scope: z.string(),\n userId: z.string(),\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.date(),\n externalUserId: z.string().nullish(),\n});\n\nexport type IntegrationToken = z.infer<typeof IntegrationTokenSchema>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DesignSystemVersionRoom = Entity.extend({\n designSystemVersionId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DesignSystemVersionRoom = z.infer<typeof DesignSystemVersionRoom>;\n\nexport type CreateDesignSystemVersionRoom = DbCreateInputOmit<DesignSystemVersionRoom>;\nexport type UpdateDesignSystemVersionRoom = DbUpdate<DesignSystemVersionRoom>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DocumentationPageRoom = Entity.extend({\n designSystemVersionId: z.string(),\n documentationPageId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DocumentationPageRoom = z.infer<typeof DocumentationPageRoom>;\n\nexport type CreateDocumentationPageRoom = DbCreateInputOmit<DocumentationPageRoom>;\nexport type UpdateDocumentationPageRoom = DbUpdate<DocumentationPageRoom>;\n","import { z } from \"zod\";\n\nconst AnyRecord = z.record(z.any());\n\nconst NpmPackageVersionDist = AnyRecord.and(\n z.object({\n tarball: z.string(),\n })\n);\n\nconst NpmPackageVersion = AnyRecord.and(\n z.object({\n dist: NpmPackageVersionDist,\n })\n);\n\nexport const NpmPackage = AnyRecord.and(\n z.object({\n _id: z.string(),\n name: z.string(),\n\n // e.g. \"latest\": \"1.2.3\"\n \"dist-tags\": z.record(z.string(), z.string()),\n\n // \"1.2.3\": {...}\n versions: z.record(NpmPackageVersion),\n })\n);\n\nexport type NpmPackage = z.infer<typeof NpmPackage>;\n","import { z } from \"zod\";\n\nexport const NpmProxyTokenPayload = z.object({\n npmProxyRegistryConfigId: z.string(),\n});\n\nexport type NpmProxyTokenPayload = z.infer<typeof NpmProxyTokenPayload>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"../workspace\";\n\nexport const PersonalAccessToken = z.object({\n id: z.string(),\n userId: z.string(),\n name: z.string(),\n token: z.string(),\n createdAt: z.date(),\n hidden: z.boolean(),\n workspaceId: z.string().optional(),\n workspaceRole: WorkspaceRoleSchema.optional(),\n expireAt: z.date().optional(),\n scope: z.string().optional(),\n});\n\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessToken>;\n","import { z } from \"zod\";\n\nexport const ContentLoadInstruction = z.object({\n from: z.string(),\n to: z.string(),\n authorizationHeaderKvsId: z.string().optional(),\n timeout: z.number().optional(),\n});\n\nexport type ContentLoadInstruction = z.infer<typeof ContentLoadInstruction>;\n\nexport const ContentLoaderPayload = z\n .object({\n type: z.literal(\"Single\"),\n instruction: ContentLoadInstruction,\n })\n .or(\n z.object({\n type: z.literal(\"Multiple\"),\n loadingChunkSize: z.number().optional(),\n instructions: z.array(ContentLoadInstruction),\n })\n )\n .or(\n z.object({\n type: z.literal(\"S3\"),\n location: z.string(),\n })\n );\n\nexport type ContentLoaderPayload = z.infer<typeof ContentLoaderPayload>;\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const GetBlockDefinitionsResponse = z.object({\n definitions: z.array(PageBlockDefinition),\n});\n\nexport type GetBlockDefinitionsResponse = z.infer<typeof GetBlockDefinitionsResponse>;\n","import { PageBlockDataV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const PageBlockEditorModel = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModel = z.infer<typeof PageBlockEditorModel>;\n","import { z } from \"zod\";\nimport { PageBlockEditorModel } from \"./block\";\n\nexport const DocumentationPageEditorModel = z.object({\n blocks: z.array(PageBlockEditorModel),\n});\n\nexport type DocumentationPageEditorModel = z.infer<typeof DocumentationPageEditorModel>;\n","import { Schema } from \"prosemirror-model\";\n\nconst newSchema = {\n nodes: {\n paragraph: {\n name: \"paragraph\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"p\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.rich-text\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n reactComponent: {\n name: \"reactComponent\",\n spec: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n count: {\n default: 0,\n },\n },\n parseDOM: [\n {\n tag: \"react-component\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n count: {\n hasDefault: true,\n default: 0,\n },\n },\n defaultAttrs: {\n count: 0,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableRow: {\n name: \"tableRow\",\n spec: {\n tableRole: \"row\",\n content: \"(tableCell | tableHeader)*\",\n parseDOM: [\n {\n tag: \"tr\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n table: {\n name: \"table\",\n spec: {\n tableRole: \"table\",\n content: \"tableRow+\",\n group: \"defaultTable\",\n isolating: true,\n parseDOM: [\n {\n tag: \"table\",\n },\n ],\n },\n markSet: [],\n groups: [\"defaultTable\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableCell: {\n name: \"tableCell\",\n spec: {\n tableRole: \"cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"td\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableHeader: {\n name: \"tableHeader\",\n spec: {\n tableRole: \"header_cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"th\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableContainer: {\n name: \"tableContainer\",\n spec: {\n content: \"table\",\n group: \"block\",\n atom: true,\n draggable: false,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.table\",\n },\n variantId: {\n default: \"default\",\n },\n hasBorder: {\n default: true,\n },\n },\n parseDOM: [\n {\n tag: \"tableContainer\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.table\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n hasBorder: {\n hasDefault: true,\n default: true,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.table\",\n variantId: \"default\",\n hasBorder: true,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n image: {\n name: \"image\",\n spec: {\n group: \"block\",\n inline: false,\n draggable: true,\n attrs: {\n src: {\n default: null,\n },\n alt: {\n default: null,\n },\n title: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'img[src]:not([src^=\"data:\"])',\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n src: {\n hasDefault: true,\n default: null,\n },\n alt: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n src: null,\n alt: null,\n title: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n codeBlock: {\n name: \"codeBlock\",\n spec: {\n content: \"text*\",\n marks: \"\",\n group: \"block\",\n code: true,\n defining: true,\n attrs: {\n language: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"pre\",\n preserveWhitespace: \"full\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n language: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n language: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n hardBreak: {\n name: \"hardBreak\",\n spec: {\n group: \"inline\",\n inline: true,\n selectable: false,\n parseDOM: [\n {\n tag: \"br\",\n },\n ],\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: false,\n },\n text: {\n name: \"text\",\n spec: {\n group: \"inline\",\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: true,\n },\n heading: {\n name: \"heading\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n level: {\n default: 1,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"h1\",\n attrs: {\n level: 1,\n definitionId: \"io.supernova.block.title1\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h2\",\n attrs: {\n level: 2,\n definitionId: \"io.supernova.block.title2\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h3\",\n attrs: {\n level: 3,\n definitionId: \"io.supernova.block.title3\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h4\",\n attrs: {\n level: 4,\n definitionId: \"io.supernova.block.title4\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h5\",\n attrs: {\n level: 5,\n definitionId: \"io.supernova.block.title5\",\n variantId: \"default\",\n },\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n level: {\n hasDefault: true,\n default: 1,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n level: 1,\n definitionId: null,\n variantId: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n listItem: {\n name: \"listItem\",\n spec: {\n content: \"paragraph (paragraph | list)*\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"li\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n orderedList: {\n name: \"orderedList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n start: {\n default: 1,\n },\n },\n parseDOM: [\n {\n tag: \"ol\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n start: {\n hasDefault: true,\n default: 1,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.ordered-list\",\n variantId: \"default\",\n start: 1,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n bulletList: {\n name: \"bulletList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"ul\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.unordered-list\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n horizontalRule: {\n name: \"horizontalRule\",\n spec: {\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"div.node-horizontalRule\",\n },\n {\n tag: \"hr\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.divider\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n blockquote: {\n name: \"blockquote\",\n spec: {\n content: \"paragraph+\",\n group: \"block\",\n defining: true,\n attrs: {\n definitionId: {\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"blockquote\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n definitionId: \"io.supernova.block.blockquote\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n plainSection: {\n name: \"plainSection\",\n spec: {\n content: \"sectionItem\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section\",\n attrs: {\n \"data-section-type\": \"plain\",\n },\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tabsSection: {\n name: \"tabsSection\",\n spec: {\n content: \"sectionItem+\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"div\",\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItem: {\n name: \"sectionItem\",\n spec: {\n content: \"sectionItemColumn{1, 3}\",\n group: \"sectionItem\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n title: {\n default: \"\",\n },\n },\n parseDOM: [\n {\n tag: \"section-item\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItem\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: \"\",\n },\n },\n defaultAttrs: {\n id: null,\n title: \"\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItemColumn: {\n name: \"sectionItemColumn\",\n spec: {\n content: \"block+\",\n group: \"sectionItemColumn\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section-item-column\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItemColumn\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n doc: {\n name: \"doc\",\n spec: {\n content: \"(block|section)+\",\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n callout: {\n name: \"callout\",\n spec: {\n content: \"inline*\",\n group: \"block topLevel\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n default: \"default\",\n },\n type: {\n default: \"neutral\",\n },\n },\n parseDOM: [\n {\n tag: \"callout\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n type: {\n hasDefault: true,\n default: \"neutral\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.callout\",\n variantId: \"default\",\n type: \"neutral\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n blockNode: {\n name: \"blockNode\",\n spec: {\n group: \"block\",\n atom: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n columns: {\n default: 1,\n },\n items: {\n default: \"[]\",\n },\n },\n parseDOM: [\n {\n tag: \"block-node\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n columns: {\n hasDefault: true,\n default: 1,\n },\n items: {\n hasDefault: true,\n default: \"[]\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: null,\n variantId: null,\n columns: 1,\n items: \"[]\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n },\n marks: {\n link: {\n name: \"link\",\n rank: 0,\n spec: {\n inclusive: true,\n attrs: {\n href: {\n default: null,\n },\n target: {\n default: \"_blank\",\n },\n rel: {\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n default: null,\n },\n itemId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'a[href]:not([href *= \"javascript:\" i])',\n },\n ],\n },\n attrs: {\n href: {\n hasDefault: true,\n default: null,\n },\n target: {\n hasDefault: true,\n default: \"_blank\",\n },\n rel: {\n hasDefault: true,\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n hasDefault: true,\n default: null,\n },\n itemId: {\n hasDefault: true,\n default: null,\n },\n },\n instance: {\n type: \"link\",\n attrs: {\n href: null,\n target: \"_blank\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n itemId: null,\n },\n },\n },\n bold: {\n name: \"bold\",\n rank: 1,\n spec: {\n parseDOM: [\n {\n tag: \"strong\",\n },\n {\n tag: \"b\",\n },\n {\n style: \"font-weight\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"bold\",\n },\n },\n code: {\n name: \"code\",\n rank: 2,\n spec: {\n excludes: \"_\",\n code: true,\n parseDOM: [\n {\n tag: \"code\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"code\",\n },\n },\n italic: {\n name: \"italic\",\n rank: 3,\n spec: {\n parseDOM: [\n {\n tag: \"em\",\n },\n {\n tag: \"i\",\n },\n {\n style: \"font-style=italic\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"italic\",\n },\n },\n strike: {\n name: \"strike\",\n rank: 4,\n spec: {\n parseDOM: [\n {\n tag: \"s\",\n },\n {\n tag: \"del\",\n },\n {\n tag: \"strike\",\n },\n {\n style: \"text-decoration\",\n consuming: false,\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"strike\",\n },\n },\n },\n} as const;\n\nexport const pmSchema = new Schema(newSchema);\n","import { PageBlockEditorModel } from \"./model/block\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionPropertyType,\n PageBlockItemEmbedPropertyValue,\n PageBlockItemMultiRichTextPropertyValue,\n PageBlockItemRichTextPropertyValue,\n PageBlockItemUntypedPropertyValue,\n PageBlockItemV2,\n PageBlockText,\n} from \"@supernova-studio/model\";\n\nexport const BlockParsingUtils = {\n singleBlockItem(block: PageBlockEditorModel) {\n if (!block.data.items.length) throw new Error(`Block ${block.id} has no items`);\n if (block.data.items.length > 1) throw new Error(`Block ${block.id} has more than 1 item`);\n\n return block.data.items[0]!;\n },\n\n richTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemRichTextPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemRichTextPropertyValue.parse(objectValue);\n\n return richText;\n },\n\n multiRichTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemMultiRichTextPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemMultiRichTextPropertyValue.parse(objectValue);\n\n return richText;\n },\n\n embedPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemEmbedPropertyValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const embed = PageBlockItemEmbedPropertyValue.parse(objectValue);\n\n return embed;\n },\n\n objectPropertyValue(item: PageBlockItemV2, propertyKey: string) {\n const value = this.propertyValueOrThrow(item, propertyKey);\n\n if (typeof value !== \"object\") {\n throw new Error(`Value for property ${propertyKey} is expected to be an object, but instead is ${typeof value}`);\n }\n\n return value;\n },\n\n propertyValueOrThrow(item: PageBlockItemV2, propertyKey: string): PageBlockItemUntypedPropertyValue {\n const value = item.props[propertyKey];\n if (!value) throw new Error(`Property ${propertyKey} is not defined on block item`);\n\n return value;\n },\n};\n\nexport const BlockDefinitionUtils = {\n firstRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"RichText\");\n if (property) return property;\n return undefined;\n },\n\n firstMultiRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"MultiRichText\");\n if (property) return property;\n return undefined;\n },\n\n firstTableProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"RichText\");\n if (property) return property;\n return undefined;\n },\n\n firstEmbedProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"EmbedURL\");\n if (property) return property;\n return undefined;\n },\n\n richTextProperty(definition: PageBlockDefinition, propertyKey: string) {\n return this.property(definition, propertyKey, \"RichText\");\n },\n\n property(\n definition: PageBlockDefinition,\n propertyKey: string,\n expectedPropertyType?: PageBlockDefinitionPropertyType\n ) {\n const property = definition.item.properties.find(p => p.id === propertyKey);\n if (!property) {\n throw new Error(`Definition ${definition.id} doesn't contain property ${propertyKey}`);\n }\n\n if (expectedPropertyType && property.type !== expectedPropertyType) {\n throw new Error(\n `Property ${propertyKey} of definition ${definition.id} expected to be ${expectedPropertyType} but was ${property.type}`\n );\n }\n\n return property;\n },\n};\n","import * as Y from \"yjs\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionProperty,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockItemRichTextPropertyValue,\n PageBlockCalloutType,\n PageBlockItemMultiRichTextPropertyValue,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport { ProsemirrorNode, ProsemirrorMark } from \"./prosemirror/types\";\nimport { BlockDefinitionUtils, BlockParsingUtils } from \"./utils\";\nimport { DocumentationPageEditorModel } from \"./model\";\nimport { prosemirrorJSONToYXmlFragment } from \"y-prosemirror\";\nimport { pmSchema } from \"./prosemirror\";\n\n//\n// Types\n//\n\ntype BaseInput = {\n block: PageBlockEditorModel;\n definition: PageBlockDefinition;\n};\n\ntype InputWithProperty = BaseInput & {\n property: PageBlockDefinitionProperty;\n};\n\ntype RichTextInputWithValue = InputWithProperty & {\n richTextPropertyValue: PageBlockItemRichTextPropertyValue;\n};\n\ntype MultiRichTextInputWithValue = InputWithProperty & {\n multiRichTextPropertyValue: PageBlockItemMultiRichTextPropertyValue;\n};\n\n//\n// Implementation\n//\n\nexport function pageToYXmlFragment(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[],\n fragment: Y.XmlFragment\n): Y.XmlFragment {\n const doc = pageToProsemirrorDoc(page, definitions);\n return prosemirrorJSONToYXmlFragment(pmSchema, doc, fragment);\n}\n\nexport function pageToProsemirrorDoc(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[]\n): ProsemirrorNode {\n return {\n type: \"doc\",\n content: page.blocks\n .map(b => {\n const definition = blockDefinitionForBlock(b, definitions);\n return blockToProsemirrorNode(b, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function blockDefinitionForBlock(block: PageBlockEditorModel, definitions: PageBlockDefinition[]) {\n const definition = definitions.find(d => d.id === block.data.packageId);\n if (!definition) throw new Error(`Could not find definition for ${block.id} (${block.data.packageId})`);\n\n return definition;\n}\n\nexport function blockToProsemirrorNode(\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorNode | null {\n // Single rich text\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return serializeAsRichTextBlock({\n block: block,\n definition: definition,\n property: richTextProperty,\n });\n }\n\n // Multi rich text\n const multiRichTextProperty = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n if (multiRichTextProperty) {\n return serializeAsMultiRichTextBlock({\n block: block,\n definition: definition,\n property: multiRichTextProperty,\n });\n }\n\n // Embed\n const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);\n const embedType = serializeEmbedType(block.data.packageId);\n if (embedProperty && embedType) {\n return serializeAsEmbed(\n {\n block: block,\n definition: definition,\n property: embedProperty,\n },\n embedType\n );\n }\n\n // Divider\n if (block.data.packageId === \"io.supernova.block.divider\") {\n return serializeAsDivider({\n block: block,\n definition: definition,\n });\n }\n\n return serializeAsCustomBlock(block, definition);\n}\n\n//\n// Single rich text blocks\n//\n\nfunction serializeAsRichTextBlock(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: richTextProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = BlockParsingUtils.richTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: RichTextInputWithValue = { ...input, richTextPropertyValue: textPropertyValue };\n\n const style = richTextProperty.options?.richTextStyle ?? \"Default\";\n\n switch (style) {\n case \"Callout\":\n return serializeAsCallout(enrichedInput);\n case \"Default\":\n return serializeAsParagraph(enrichedInput);\n\n case \"Quote\":\n return serializeAsBlockquote(enrichedInput);\n\n case \"Title1\":\n case \"Title2\":\n case \"Title3\":\n case \"Title4\":\n case \"Title5\":\n return serializeAsHeading(enrichedInput);\n }\n}\n\nfunction serializeAsParagraph(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"paragraph\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsHeading(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"heading\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n level: richTextHeadingLevel(input.property),\n },\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsBlockquote(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"blockquote\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsCallout(input: RichTextInputWithValue): ProsemirrorNode {\n const calloutType = input.richTextPropertyValue.calloutType ?? \"Info\";\n\n return {\n type: \"callout\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n type: serializeCalloutType(calloutType),\n },\n content: serializeRichText(input.richTextPropertyValue.value),\n };\n}\n\n//\n// Multi rich text blocks\n//\n\nfunction serializeAsMultiRichTextBlock(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: richTextProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = BlockParsingUtils.multiRichTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: MultiRichTextInputWithValue = { ...input, multiRichTextPropertyValue: textPropertyValue };\n\n const style = richTextProperty.options?.multiRichTextStyle ?? \"Default\";\n\n switch (style) {\n case \"Default\":\n return serializeAsMultiParagraph(enrichedInput);\n\n case \"OL\":\n return serializeAsOrderedList(enrichedInput);\n\n case \"UL\":\n return serializeAsUnorderedList(enrichedInput);\n }\n}\n\nfunction serializeAsMultiParagraph(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"bulletlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsOrderedList(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"orderedlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n start: \"1\",\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsUnorderedList(input: MultiRichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"bulletlist\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n },\n content: input.multiRichTextPropertyValue.value.map(serializeAsListItem),\n };\n}\n\nfunction serializeAsListItem(text: PageBlockText): ProsemirrorNode {\n return {\n type: \"listitem\",\n content: [\n {\n type: \"paragraph\",\n content: serializeRichText(text),\n },\n ],\n };\n}\n\n//\n// Embeds\n//\n\nfunction serializeAsEmbed(input: InputWithProperty, embedType: string): ProsemirrorNode {\n const { block, definition, property: embedProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const embedValue = BlockParsingUtils.embedPropertyValue(blockItem, embedProperty.id);\n\n return {\n type: \"embed\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n type: embedType,\n url: embedValue.value,\n height: embedValue.height,\n caption: embedValue.caption,\n },\n };\n}\n\nfunction serializeEmbedType(blockDefinitionId: string): string | undefined {\n switch (blockDefinitionId) {\n case \"io.supernova.block.embed\":\n return \"generic\";\n case \"io.supernova.block.embed-youtube\":\n return \"youtube\";\n case \"io.supernova.block.embed-figma\":\n return \"figma\";\n }\n\n return undefined;\n}\n\n//\n// Divider\n//\n\nfunction serializeAsDivider(input: BaseInput): ProsemirrorNode {\n return {\n type: \"horizontalrule\",\n attrs: serializeBlockNodeAttributes(input),\n };\n}\n\n//\n// Attributes\n//\n\nfunction serializeBlockNodeAttributes(input: BaseInput) {\n const { block } = input;\n\n return {\n id: block.id,\n definitionId: block.data.packageId,\n ...(block.data.variantId && { variantId: block.data.variantId }),\n };\n}\n\nfunction richTextHeadingLevel(property: PageBlockDefinitionProperty): number | undefined {\n const style = property.options?.richTextStyle;\n if (!style) return undefined;\n\n switch (style) {\n case \"Title1\":\n return 1;\n case \"Title2\":\n return 2;\n case \"Title3\":\n return 3;\n case \"Title4\":\n return 4;\n case \"Title5\":\n return 5;\n case \"Callout\":\n case \"Default\":\n case \"Quote\":\n return undefined;\n }\n}\n\nfunction serializeCalloutType(calloutType: PageBlockCalloutType) {\n switch (calloutType) {\n case \"Error\":\n return \"error\";\n case \"Info\":\n return \"neutral\";\n case \"Success\":\n return \"success\";\n case \"Warning\":\n return \"warning\";\n }\n}\n\n//\n// Rich text\n//\n\nfunction serializeRichText(richText: PageBlockText) {\n return richText.spans.map(serializeTextSpan).flat();\n}\n\nfunction serializeTextSpan(span: PageBlockTextSpan): ProsemirrorNode[] {\n const marks = span.attributes.map(serializeTextSpanAttribute);\n\n const textParts = span.text.split(\"\\n\");\n const interspersed: ProsemirrorNode[] = [\n {\n type: \"text\",\n text: textParts[0],\n marks: marks,\n },\n ];\n\n for (let i = 1; i < textParts.length; i++) {\n interspersed.push(\n {\n type: \"hardBreak\",\n },\n {\n type: \"text\",\n text: textParts[i],\n marks: marks,\n }\n );\n }\n\n return interspersed;\n}\n\nfunction serializeTextSpanAttribute(spanAttribute: PageBlockTextSpanAttribute): ProsemirrorMark {\n switch (spanAttribute.type) {\n case \"Bold\":\n return { type: \"bold\", attrs: {} };\n case \"Italic\":\n return { type: \"italic\", attrs: {} };\n case \"Strikethrough\":\n return { type: \"strikethrough\", attrs: {} };\n case \"Code\":\n return { type: \"code\", attrs: {} };\n case \"Link\":\n return {\n type: \"link\",\n attrs: {\n itemId: spanAttribute.documentationItemId,\n href: spanAttribute.link,\n target: spanAttribute.openInNewWindow ? \"_blank\" : \"_self\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n },\n };\n }\n}\n\nexport function serializeAsCustomBlock(block: PageBlockEditorModel, definition: PageBlockDefinition): ProsemirrorNode {\n const items = block.data.items.map(i => {\n return {\n id: i.id,\n props: i.props,\n linksTo: i.linksTo,\n };\n });\n\n return {\n type: \"blockNode\",\n attrs: {\n id: block.id,\n definitionId: block.data.packageId,\n variantId: block.data.variantId,\n items: JSON.stringify(items),\n },\n };\n}\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return !!item;\n}\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\n\nexport function getMockPageBlockDefinitions(): PageBlockDefinition[] {\n // TODO Blocks\n return blocks;\n}\n\nconst blocks: PageBlockDefinition[] = [\n {\n id: \"io.supernova.block.rich-text\",\n name: \"Text\",\n description: \"Plain text\",\n category: \"Text\",\n searchKeywords: [\"paragraph\", \"rich text\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: {\n placeholder: \"Start writing with plain text\",\n richTextStyle: \"Default\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use rich text block to write text and add additional formatting to it.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/text-HxZ9ssJR\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title1\",\n name: \"Title 1\",\n description: \"Main sections within the page\",\n category: \"Text\",\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: { placeholder: \"Title 1\", richTextStyle: \"Title1\" },\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for main sections within the page, introducing broad topics or themes.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title2\",\n name: \"Title 2\",\n description: \"Section subheadings\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 2\", richTextStyle: \"Title2\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for subheadings, indicating major subsections under the main sections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title3\",\n name: \"Title 3\",\n description: \"Further subsections\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 3\", richTextStyle: \"Title3\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for further subsections, detailing specific topics within the major subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title4\",\n name: \"Title 4\",\n description: \"Details in subsections\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 4\", richTextStyle: \"Title4\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for sub-divisions, elaborating on details within the subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.title5\",\n name: \"Title 5\",\n description: \"Nuanced details or sub-points\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"heading\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Title 5\", richTextStyle: \"Title5\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for nuanced details or specific sub-points within sub-divisions.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.ordered-list\",\n name: \"Ordered list\",\n description: \"A list with numbers\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"ol\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n description: undefined,\n options: { multiRichTextStyle: \"OL\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Display a sequence of numbers or letters to indicate order.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.unordered-list\",\n name: \"Unordered list\",\n description: \"A list with bullet points\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"ul\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n description: undefined,\n options: { multiRichTextStyle: \"UL\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"A list of items displayed with bullet points without a specific sequence.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.divider\",\n name: \"Divider\",\n description: \"A section divider\",\n category: \"Layout\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"hr\", \"line\", \"rule\", \"separator\"],\n item: {\n properties: [\n {\n id: \"divider\",\n name: \"Divider\",\n type: \"Divider\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"divider\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"A thematic break or horizontal rule, often used to separate content or define a change in topic.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/divider-tLuxooLH\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.blockquote\",\n name: \"Blockquote\",\n description: \"Display a quotation\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"cite\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { placeholder: \"Empty quote\", richTextStyle: \"Quote\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use a blockquote to set off a quotation or cited content from the main text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/blockquote-zYWAsb6X\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.callout\",\n name: \"Callout\",\n description: \"Highlight a section of text\",\n category: \"Text\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"banner\", \"alert\", \"note\", \"tip\", \"warning\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n description: undefined,\n options: { richTextStyle: \"Callout\" },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"text\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to highlight a section of text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/callout-ZPlZObD1\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.image\",\n name: \"Image\",\n description: \"Display an image or Figma frame\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"image\", \"figma\", \"frame\", \"picture\", \"photo\"],\n item: {\n properties: [\n {\n id: \"image\",\n name: \"Image\",\n type: \"Image\",\n description: undefined,\n options: { allowCaption: true },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"image\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to display an image or Figma frame.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/image-Ue8VdT8B\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.shortcut-links\",\n name: \"Shortcut links\",\n description: \"Link to a page or external URL\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [],\n item: {\n properties: [\n {\n id: \"block.links.property.title\",\n name: \"Title\",\n type: \"Text\",\n description: undefined,\n options: { textStyle: \"Title5\" },\n variantOptions: undefined,\n },\n {\n id: \"block.links.property.description\",\n name: \"Short description\",\n type: \"Text\",\n description: undefined,\n options: { textStyle: \"Default\", color: \"NeutralFaded\" },\n variantOptions: undefined,\n },\n {\n id: \"block.links.property.image\",\n name: \"Image\",\n type: \"Image\",\n description: undefined,\n options: { width: \"Medium\", aspectRatio: \"Landscape\", allowCaption: false },\n variantOptions: {\n iconOnTop: { width: \"Icon\", aspectRatio: \"Square\" },\n iconOnLeft: { width: \"Icon\", aspectRatio: \"Square\" },\n },\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"imageOnTop\",\n name: \"Image on top\",\n image: \"assets/variant-image-on-top.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"imageOnLeft\",\n name: \"Image on left\",\n image: \"assets/variant-image-on-left.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n columnResizing: \"Hug\",\n children: [\"block.links.property.image\"],\n },\n {\n type: \"Column\",\n gap: \"Small\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n },\n ],\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"iconOnTop\",\n name: \"Icon on top\",\n image: \"assets/variant-icon-on-top.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"iconOnLeft\",\n name: \"Icon on left\",\n image: \"assets/variant-icon-on-left.png\",\n description: undefined,\n documentationLink: undefined,\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n columnResizing: \"Hug\",\n children: [\"block.links.property.image\"],\n },\n {\n type: \"Column\",\n gap: \"Small\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n },\n ],\n },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"imageOnTop\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: -1, allowLinks: true },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use link block to create single or multiple links to places in or out of your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/links/shortcuts/general-jVfNifo4\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.color-accessibility-grid\",\n name: \"Accessibility Color Grid\",\n description: \"Visualize accessibility of your color tokens.\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"accessibility\", \"grid\", \"contrast\", \"blind\", \"impairment\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: { allowedTypes: [\"Color\"], allowPropertySelection: false, allowThemeSelection: false },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Group\", maxSelected: 2 },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Visualize accessibility of your colors and compare token groups to one another.\",\n documentationLink: \"https://learn.supernova.io\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed\",\n name: \"Embed\",\n description: \"Embed a generic URL\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"url\", \"iframe\", \"site\", \"import\"],\n item: {\n properties: [\n {\n id: \"embedUrl\",\n name: \"Embed URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: true,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embedUrl\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed any page to your documentation as an iframe.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/embed/public-url-2ZeRQ332\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-youtube\",\n name: \"YouTube\",\n description: \"Embed a Youtube video\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"video\", \"player\", \"upload\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Youtube URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: false,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(youtube.com|youtu.?be)/.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a YouTube video to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/youtube-Gh8VUrSF\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-lottie\",\n name: \"Lottie animation\",\n description: \"Preview a Lottie animation\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"lottie\", \"animation\", \"rive\", \"json\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Lottie URL\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex:\n \"^(https?:\\\\/\\\\/)?([\\\\w\\\\d\\\\-\\\\.]+)\\\\.([\\\\w]+)(\\\\/[\\\\w\\\\d_\\\\-\\\\.\\\\/]*)?(\\\\.json|\\\\.lottie)$\\n\",\n },\n variantOptions: undefined,\n },\n {\n id: \"autoplay\",\n name: \"Autoplay\",\n type: \"Boolean\",\n description: undefined,\n options: { defaultValue: true },\n variantOptions: undefined,\n },\n {\n id: \"loop\",\n name: \"Loop\",\n type: \"Boolean\",\n description: undefined,\n options: { defaultValue: true },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\", \"autoplay\", \"loop\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Lottie animation to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/lottie-preview-7CqFdGv9\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.storybook\",\n name: \"Storybook\",\n description: \"Embed Storybook canvas\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"storybook\", \"story\", \"stories\", \"example\", \"preview\", \"code\", \"react\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Storybook URL\",\n type: \"Storybook\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Storybook story to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/storybook-1EGPhwBl\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.embed-figma\",\n name: \"Figma embed\",\n description: \"Embed a Figma canvas or prototype\",\n category: \"Media\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"embed\", \"figma\", \"design\", \"prototype\", \"canvas\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Figma URl\",\n type: \"EmbedURL\",\n description: undefined,\n options: {\n allowCaption: false,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(figma.com)/.+$\",\n },\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"embed\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Figma canvas or prototype to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/figma/embed-figma-GPNJsT8A\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.markdown\",\n name: \"Markdown\",\n description: \"Render Markdown URL\",\n category: \"Other\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"md\", \"embed\", \"api\", \"table\", \"mdx\"],\n item: {\n properties: [\n {\n id: \"markdownUrl\",\n name: \"Markdown URL\",\n type: \"Markdown\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"markdownUrl\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed and process markdown from URL.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/markdown/general-B8wQVOem\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.table\",\n name: \"Table\",\n description: \"Display a simple table\",\n category: \"Layout\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"grid\", \"data\", \"spreadsheet\", \"api\"],\n item: {\n properties: [\n {\n id: \"table\",\n name: \"Table\",\n type: \"Table\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: undefined,\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"table\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: { numberOfItems: 1, allowLinks: false },\n entities: undefined,\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for displaying data in a tabular format.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/layout/table-R8KGnxej\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-detail\",\n name: \"Token detail\",\n description: \"Show a single design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table Row\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid Item\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack item\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Entity\", maxSelected: 1 },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show a single design token.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-detail-04\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-list\",\n name: \"Token list\",\n description: \"Show a list of design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\", \"accessibility\", \"contrast\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-contrast-grid\",\n name: \"Color contrast grid\",\n image: \"assets/variant-color-contrast-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Entity\", maxSelected: 0 },\n },\n editorOptions: {\n onboarding: {\n helpText:\n \"Show a list of design tokens. You can use this block to create a list of colors, typography, spacing, grid, or any other token type.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-list-06\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"io.supernova.block.token-group\",\n name: \"Token group\",\n description: \"Show a group of design tokens\",\n category: \"Tokens\",\n icon: undefined,\n documentationLink: undefined,\n searchKeywords: [\"color\", \"typography\", \"spacing\", \"grid\", \"material\", \"theme\", \"accessibility\", \"contrast\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n description: undefined,\n options: {},\n variantOptions: undefined,\n },\n ],\n appearance: { isBordered: false, hasBackground: false },\n variants: [\n {\n id: \"table\",\n name: \"Table\",\n image: \"assets/variant-table.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"grid\",\n name: \"Grid\",\n image: \"assets/variant-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-stack\",\n name: \"Color stack\",\n image: \"assets/variant-color-stack.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n {\n id: \"color-contrast-grid\",\n name: \"Color contrast grid\",\n image: \"assets/variant-color-contrast-grid.png\",\n description: undefined,\n documentationLink: undefined,\n layout: { type: \"Column\", children: [\"tokens\"] },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: { isBordered: false, hasBackground: false },\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n items: undefined,\n entities: { selectionType: \"Group\", maxSelected: 1 },\n },\n editorOptions: {\n onboarding: {\n helpText:\n \"Show a group of design tokens. You can use this block to create a list of colors, typography, spacing, grid, or any other token type.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-group-09\",\n },\n },\n appearance: { isBordered: false, hasBackground: false },\n },\n];\n","import * as Y from \"yjs\";\nimport { ProsemirrorNode, ProsemirrorMark } from \"./prosemirror/types\";\nimport {\n PageBlockDefinition,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockDefinitionProperty,\n PageBlockCalloutType,\n PageBlockItemRichTextPropertyValue,\n PageBlockItemMultiRichTextPropertyValue,\n PageBlockItemEmbedPropertyValue,\n PageBlockItemV2,\n PageBlockItemTextPropertyValue,\n PageBlockItemUntypedPropertyValue,\n PageBlockItemImageValue,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport { DocumentationPageEditorModel } from \"./model/page\";\nimport { BlockDefinitionUtils } from \"./utils\";\nimport { yXmlFragmentToProsemirrorJSON } from \"y-prosemirror\";\n\nexport function yXmlFragmetToPage(\n fragment: Y.XmlFragment,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const prosemirrorJson = yXmlFragmentToProsemirrorJSON(fragment) as ProsemirrorNode;\n return prosemirrorDocToPage(prosemirrorJson, definitions);\n}\n\nexport function prosemirrorDocToPage(\n prosemirrorDoc: ProsemirrorNode,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const definitionsById = mapByUnique(definitions, d => d.id);\n\n return {\n blocks: (prosemirrorDoc.content ?? [])\n .map(prosemirrorNode => {\n const definitionId = prosemirrorNode.attrs?.definitionId;\n if (!definitionId) throw new Error(`Node is missing defintion id`);\n if (typeof definitionId !== \"string\")\n throw new Error(`Definition id is ${typeof definitionId}, has to be string`);\n\n const definition = definitionsById.get(definitionId);\n if (!definition) throw new Error(`Definition by id ${definitionId} doesn't exist`);\n\n return prosemirrorNodeToBlock(prosemirrorNode, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function prosemirrorNodeToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return parseAsRichText(prosemirrorNode, definition, richTextProperty);\n }\n\n const multiRichTextProperty = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n if (multiRichTextProperty) {\n return parseAsMultiRichText(prosemirrorNode, definition, multiRichTextProperty);\n }\n\n const embedProperty = BlockDefinitionUtils.firstEmbedProperty(definition);\n if (prosemirrorNode.type === \"embed\" && embedProperty) {\n return parseAsEmbed(prosemirrorNode, definition, embedProperty);\n }\n\n if (definition.id === \"io.supernova.block.divider\") {\n return parseAsDivider(prosemirrorNode, definition);\n }\n\n return parseAsCustomBlock(prosemirrorNode, definition);\n}\n\n//\n// Single rich text\n//\n\nfunction parseAsRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n const calloutType = parseCalloutType(parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"type\"));\n\n return {\n // TODO Artem: indent\n id: id,\n\n ...(variantId && { variantId: variantId }),\n\n data: {\n packageId: definition.id,\n indentLevel: 0,\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n // Required\n value: parseRichText(prosemirrorNode.content ?? []),\n\n // Optional\n ...(calloutType && { calloutType: calloutType }),\n } satisfies PageBlockItemRichTextPropertyValue,\n },\n },\n ],\n },\n };\n}\n\nfunction parseCalloutType(prosemirrorCalloutType: string | undefined): PageBlockCalloutType | undefined {\n if (!prosemirrorCalloutType) return undefined;\n\n switch (prosemirrorCalloutType) {\n case \"error\":\n return \"Error\";\n case \"neutral\":\n return \"Info\";\n case \"success\":\n return \"Success\";\n case \"warning\":\n return \"Warning\";\n }\n}\n\n//\n// Multi rich text\n//\n\nfunction parseAsMultiRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n) {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n return {\n // TODO Artem: indent\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n // Required\n value: (prosemirrorNode.content ?? [])\n .map(listItem => {\n if (listItem.type !== \"listitem\") return null;\n if (!listItem.content?.length) return parseRichText([]);\n\n const paragraph = listItem.content[0];\n if (paragraph.type !== \"paragraph\") return parseRichText([]);\n\n return parseRichText(paragraph.content ?? []);\n })\n .filter(nonNullFilter),\n } satisfies PageBlockItemMultiRichTextPropertyValue,\n },\n },\n ],\n },\n };\n}\n\n//\n// Rich text\n//\n\nfunction parseRichText(spans: ProsemirrorNode[]): PageBlockText {\n return {\n spans: spans.map(parseRichTextSpan).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextSpan(span: ProsemirrorNode): PageBlockTextSpan | null {\n if (span.type !== \"text\" || !span.text) return null;\n\n const marks = span.marks ?? [];\n\n return {\n text: span.text,\n attributes: marks.map(parseRichTextAttribute).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextAttribute(mark: ProsemirrorMark): PageBlockTextSpanAttribute | null {\n switch (mark.type) {\n case \"bold\":\n return { type: \"Bold\" };\n case \"italic\":\n return { type: \"Italic\" };\n case \"strikethrough\":\n return { type: \"Strikethrough\" };\n case \"code\":\n return { type: \"Code\" };\n case \"link\":\n const itemId = mark.attrs?.itemId;\n const href = mark.attrs?.href;\n\n return {\n type: \"Link\",\n openInNewWindow: mark.attrs?.target !== \"_self\",\n documentationItemId: itemId,\n link: href,\n };\n }\n\n return null;\n}\n\n//\n// Embed\n//\n\nfunction parseAsEmbed(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n const url = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"url\");\n const caption = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"caption\");\n const height = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"height\");\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n value: url,\n caption: caption,\n height: height,\n } as PageBlockItemEmbedPropertyValue,\n },\n },\n ],\n },\n };\n}\n\n//\n// Divider\n//\n\nfunction parseAsDivider(prosemirrorNode: ProsemirrorNode, definition: PageBlockDefinition): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [{ id: id, props: {} }],\n },\n };\n}\n\n//\n// Custom block\n//\n\nfunction parseAsCustomBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n const itemsString = parseProsemirrorBlockAttribute(prosemirrorNode, \"items\");\n const itemsJson = JSON.parse(itemsString);\n if (!Array.isArray(itemsJson)) {\n console.error(\"Block `items` property must be a json array\");\n return null;\n }\n\n const parsedItems = itemsJson.map(i => parseItem(i, definition));\n\n return {\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: parsedItems,\n },\n };\n}\n\nfunction parseItem(rawItem: unknown, definition: PageBlockDefinition): PageBlockItemV2 | null {\n const parsedItem = PageBlockItemV2.safeParse(rawItem);\n if (!parsedItem.success) {\n return null;\n }\n\n const sanitizedProps: Record<string, PageBlockItemUntypedPropertyValue> = {};\n\n for (const property of definition.item.properties) {\n const value = parsedItem.data.props[property.id];\n if (!value) {\n return null;\n }\n\n // Validate\n switch (property.type) {\n case \"Text\":\n PageBlockItemTextPropertyValue.parse(value);\n break;\n\n case \"EmbedURL\":\n PageBlockItemEmbedPropertyValue.parse(value);\n break;\n\n case \"Image\":\n PageBlockItemImageValue.parse(value);\n break;\n\n default:\n return null;\n }\n\n sanitizedProps[property.id] = value;\n }\n\n return {\n id: parsedItem.data.id,\n linksTo: parsedItem.data.linksTo,\n props: sanitizedProps,\n };\n}\n\n//\n// Attributes\n//\n\nfunction parseProsemirrorBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n const attributeValue = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, attributeName); //prosemirrorNode.attrs?.[attributeName];\n if (!attributeValue) {\n throw new Error(`Attribute ${attributeName} was not defined`);\n }\n\n return attributeValue;\n}\n\nfunction parseProsemirrorOptionalBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n return prosemirrorNode.attrs?.[attributeName] ?? undefined;\n}\n\n//\n// Utils\n//\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return item !== null;\n}\n\nfunction mapByUnique<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V> {\n const result = new Map<K, V>();\n for (const item of items) {\n result.set(keyFn(item), item);\n }\n return result;\n}\n"]}
|