@wirechunk/cli 0.3.0 → 0.3.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.
Files changed (2) hide show
  1. package/build/main.js +13 -12
  2. package/package.json +1 -1
package/build/main.js CHANGED
@@ -26844,7 +26844,7 @@ WIRECHUNK_PLATFORM_ID=${result2.platformId}
26844
26844
  }
26845
26845
  };
26846
26846
  const type$c = "array";
26847
- const items$2 = /* @__PURE__ */ JSON.parse(`{"anyOf":[{"title":"BoxComponent","description":"An element for wrapping children elements.","type":"object","properties":{"type":{"const":"Box"},"elementId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The HTML tag to use for the element. Defaults to div.","type":"string","enum":["article","aside","blockquote","code","div","fieldset","footer","h1","h2","h3","h4","h5","h6","header","label","legend","li","main","nav","ol","p","pre","section","span","ul"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ButtonComponent","type":"object","properties":{"type":{"const":"Button"},"id":{"type":"string","minLength":1},"onClick":{"description":"Defaults to submitForm.","anyOf":[{"type":"object","properties":{"type":{"const":"emitEvent"},"eventType":{"description":"A string representing a custom event type, to reference in other components that listen for events.","type":"string"}},"required":["type","eventType"]},{"type":"object","properties":{"type":{"type":"string","enum":["goBack","goBackFormStep","removeRepeatingGroupInputItem","resetForm","submitForm"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["decrementQueryParameter","incrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CalendlyEmbedComponent","description":"An embedded Calendly scheduling widget.","type":"object","properties":{"type":{"const":"CalendlyEmbed"},"id":{"type":"string","minLength":1},"queryParameters":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"parameter":{"type":"string"},"value":{"$ref":"#/$defs/componentStringValueSource"}},"required":["id","parameter","value"]}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"url":{"$ref":"#/$defs/componentStringValueSource"}},"additionalProperties":false,"required":["type","id"]},{"title":"CheckboxGroupInputComponent","description":"A group of checkboxes for selecting one or more options, represented as an array of strings in form data.","type":"object","properties":{"type":{"const":"CheckboxGroupInput"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a checkbox icon, and its children are rendered inside a label that refers to the checkbox input element. For cards, there is default styling with each item's border color indicating whether it is checked. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"id":{"type":"string","minLength":1},"itemsContainerStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"showIndicators":{"description":"Whether to show indicators for each item. Applies only if displayType is indicators. Defaults to true.","type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"CheckboxGroupInputItemComponent","description":"A checkbox item within a checkbox group input.","type":"object","properties":{"type":{"const":"CheckboxGroupInputItem"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CheckboxInputComponent","description":"A standalone checkbox. Represented as either a boolean or a string in form data. If value is set to a string and is not an empty string, it is used as the value for the input when the box is checked. Otherwise, a boolean is set as the value when the box is checked or unchecked.","type":"object","properties":{"type":{"const":"CheckboxInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"CollapsiblePanelComponent","description":"A panel that can be collapsed or expanded.","type":"object","properties":{"type":{"const":"CollapsiblePanel"},"header":{"description":"The text displayed in the clickable header.","type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"triggerButtonStyles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CompletableVideoInputComponent","type":"object","properties":{"type":{"const":"CompletableVideoInput"},"collapseCompleted":{"description":"By default, collapseCompleted is false.","type":"boolean"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"initiallyCollapsed":{"description":"Default initialCollapsed is false.","type":"boolean"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"showHeader":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"type":"string"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"ConditionalLogicComponent","type":"object","properties":{"type":{"const":"ConditionalLogic"},"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CourseComponent","type":"object","properties":{"type":{"const":"Course"},"courseId":{"description":"If set, a Course is used instead of the legacy Plan.","type":"string"},"emptyNotesMessage":{"type":"string"},"enableNotes":{"type":"boolean"},"id":{"type":"string","minLength":1},"planId":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"CurrentYearComponent","description":"Displays the current year.","type":"object","properties":{"type":{"const":"CurrentYear"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"CustomComponentComponent","description":"A custom component (a saved fragment of components).","type":"object","properties":{"type":{"const":"CustomComponent"},"customComponentId":{"description":"The ID of the custom component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","customComponentId","id"]},{"title":"DashboardComponent","description":"A dashboard layout with a header, sidebar, and main content area.","type":"object","properties":{"type":{"const":"Dashboard"},"collapseSidebarOnPaths":{"description":"An array of path patterns as globs. If set, the sidebar will automatically be collapsed on matching paths.","type":"array","items":{"type":"string"}},"extraNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"id":{"type":"string","minLength":1},"mainNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"DateInputComponent","type":"object","properties":{"type":{"const":"DateInput"},"clearable":{"type":"boolean"},"dayPlaceholder":{"type":"string"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maximumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"minimumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"monthPlaceholder":{"type":"string"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"style":{"type":"string","enum":["Calendar","3Fields"]},"styles":{"$ref":"#/$defs/componentStyleRules"},"yearPlaceholder":{"type":"string"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"DialogComponent","type":"object","properties":{"type":{"const":"Dialog"},"closeOnBackdropClick":{"description":"Whether the dialog can be closed by clicking the backdrop. Defaults to true.","type":"boolean"},"hideTriggers":{"description":"A list of events that will trigger the dialog to be hidden.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"id":{"type":"string","minLength":1},"showTriggers":{"description":"A list of events that will trigger the dialog to be shown.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"DocumentComponent","description":"A component that displays a document that can be downloaded.","type":"object","properties":{"type":{"const":"Document"},"documentId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"DropdownInputComponent","type":"object","properties":{"type":{"const":"DropdownInput"},"clearable":{"description":"Clearable is ignored if the input is required. When the input is not required, it may or may not be clearable. The default is false.","type":"boolean"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"options":{"description":"The options to show. Each option's value is both the label displayed and the value.","type":"array","items":{"type":"object","properties":{"key":{"type":"number"},"value":{"type":"string"}},"required":["key","value"]}},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name","options"]},{"title":"FormComponent","type":"object","properties":{"type":{"const":"Form"},"formId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"FormStepComponent","description":"Represents the current step in a multi-step form.","type":"object","properties":{"type":{"const":"FormStep"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"GooglePlaceInputComponent","description":"A map with a search field that lets you select a Place in Google Maps.","type":"object","properties":{"type":{"const":"GooglePlaceInput"},"id":{"type":"string","minLength":1},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","name"]},{"title":"HeaderComponent","description":"A header component with navigation items and a slot for other components. Children components must have either the LeftContent or RightContent slot property set to be rendered. No default styling is applied to children. Notice that children for either the left or right need to be enabled explicitly on mobile screens (up to 767px wide) with the showLeftContentOnMobile or showRightContentOnMobile properties. The navAlign property specifies the alignment of the navigation items element: if Center, then the nav is centered; if Left, then the nav is on the left but immediately to the right of the children with the LeftContent slot, if any; if Right, then the nav is on the right but immediately to the left of the children with the RightContent slot, if any.","type":"object","properties":{"type":{"const":"Header"},"contentMaxWidth":{"$ref":"#/$defs/componentWidth"},"id":{"type":"string","minLength":1},"navAlign":{"$ref":"#/$defs/componentAlign"},"navItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"showLeftContentOnMobile":{"description":"If true, the left content is shown on mobile. Defaults to false.","type":"boolean"},"showRightContentOnMobile":{"description":"If true, the right content is shown on mobile. Defaults to false.","type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"sticky":{"description":"If true, the header is sticky upon scrolling. Defaults to false.","type":"boolean"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"HelpTicketsPortalComponent","description":"A portal for help tickets.","type":"object","properties":{"type":{"const":"HelpTicketsPortal"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"HTMLComponent","description":"A component that renders raw HTML.","type":"object","properties":{"type":{"const":"HTML"},"html":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"IconComponent","type":"object","properties":{"type":{"const":"Icon"},"alt":{"description":"The alternative text for the icon. This should be provided only for icons that serve some purpose on their own other than decoration. Decorative icons should omit alt text to avoid unnecessary screen reader announcements.","type":"string"},"ariaHidden":{"description":"If true, the icon is hidden from the accessibility tree. This should be set to true for purely decorative icons.","type":"boolean"},"icon":{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"MaterialSymbols"},"value":{"type":"object","properties":{"fill":{"description":"If true, the icon's filled variant is used. Defaults to false.","type":"boolean"},"name":{"description":"The name of the icon. Must be one of the defined Material Symbols.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"opticalSize":{"description":"The optical size of the icon, for optimizing the appearance at different sizes. For icons rendered at 34px width or smaller, use 20. For icons rendered at bigger than 34px width, use 48. This is also the default width and height of the icon in pixels. Can be used together with CSS width and height properties. Defaults to 20.","type":"number","enum":[20,48]},"style":{"description":"The style of the icon. The outlined style is a sort of hybrid of rounded and sharp, and depending on the icon it may look exactly the same as either the rounded or sharp style. Defaults to outlined.","type":"string","enum":["outlined","rounded","sharp"]},"weight":{"description":"The weight of the icon. Similar to font-weight in that 200 is lighter and 600 is heavier. Defaults to 400.","type":"number","enum":[200,400,600]}}}},"required":["type"]}]}},"required":["type"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ImageComponent","description":"A component that displays an image.","type":"object","properties":{"type":{"const":"Image"},"alt":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageFeaturedImage","SiteLogo"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"description":"Optional ID of a specific variant to use. Should not be set together with variantIds. If not provided and variantIds is also not provided or is empty, the image is rendered with a srcset including all variants by default.","type":"string"},"variantIds":{"description":"Optional IDs of specific variants to use in the srcset attribute. Should not be set together with variantId.","type":"array","items":{"type":"string"}}},"required":["type"]}]},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"LessonNotesFieldComponent","description":"A text field for users to save notes related to a lesson (for courses).","type":"object","properties":{"type":{"const":"LessonNotesField"},"id":{"type":"string","minLength":1},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label"]},{"title":"LinkComponent","description":"A link.","type":"object","properties":{"type":{"const":"Link"},"id":{"type":"string","minLength":1},"linkStyle":{"description":"Controls the visual style of the link.","type":"string","enum":["Text","Button"]},"protocol":{"description":"Adds the specified protocol prefix to the href attribute's value.","type":"string","enum":["mailto","tel","sms"]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"target":{"type":"string","enum":["_blank","_self","_parent","_top"]},"to":{"description":"The URL that the link points to. A router link will be rendered for a path without a host (using the History API). A regular link will be rendered for a full URL.","anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"enum":["IncrementQueryParameter","DecrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"MapComponent","description":"A component that displays a map. The focus property is the place to display. It can be the name of a location (the way it appears on Google Maps), an address, or a place ID with the prefix 'place_id:'.","type":"object","properties":{"type":{"const":"Map"},"focus":{"$ref":"#/$defs/componentNullableStringValueSource"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"MoveUserPlanComponent","description":"A component for a user to move between sequence stages.","type":"object","properties":{"type":{"const":"MoveUserPlan"},"id":{"type":"string","minLength":1},"nextButtonLabel":{"type":"string"},"previousButtonLabel":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"MultiOrgViewComponent","description":"A view for viewing all the orgs under a subscription, including all the users of each org and their training progress.","type":"object","properties":{"type":{"const":"MultiOrgView"},"id":{"type":"string","minLength":1},"orgLabelPlural":{"type":"string"},"orgLabelSingular":{"type":"string"},"showManageOrgs":{"type":"boolean"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressSequenceIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","id"]},{"title":"MultipleChoiceInputComponent","type":"object","properties":{"type":{"const":"MultipleChoiceInput"},"answerIndex":{"type":"number"},"choices":{"type":"array","items":{"type":"string"}},"id":{"type":"string","minLength":1},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"MultiSelectInputComponent","type":"object","properties":{"type":{"const":"MultiSelectInput"},"answerIndices":{"type":"array","items":{"type":"number"}},"choices":{"type":"array","items":{"type":"string"}},"id":{"type":"string","minLength":1},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"NumberInputComponent","type":"object","properties":{"type":{"const":"NumberInput"},"format":{"type":"string","enum":["Number","Currency","Integer"]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxDecimalDigits":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"OrderFormComponent","description":"An order form for checking out for a subscription.","type":"object","properties":{"type":{"const":"OrderForm"},"checkoutOptions":{"description":"The products to display in the form. Each product may optionally have a condition that needs to evaluate to true for the product to be displayed.","type":"array","items":{"type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"subscriptionPlanId":{"type":"string"}},"required":["subscriptionPlanId"]}},"enablePhoneNumber":{"description":"Whether to enable a phone number input field. Defaults to true.","type":"boolean"},"enablePromoCode":{"description":"Whether to enable a promo code input field. If set to Stripe, only Stripe promo codes are allowed. If set to Custom, only custom promo codes are allowed. Defaults to none.","type":"string","enum":["Stripe","Custom"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgBillingSettingsComponent","description":"Org billing settings dashboard.","type":"object","properties":{"type":{"const":"OrgBillingSettings"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgSitePagesComponent","description":"Shows the pages of an org site and allows authorized users to activate and edit pages.","type":"object","properties":{"type":{"const":"OrgSitePages"},"defaultPageTemplatePreviewImageUrl":{"type":"string"},"id":{"type":"string","minLength":1},"pageTemplates":{"type":"object","properties":{"filter":{"type":"string","enum":["include","exclude"]},"ids":{"type":"array","items":{"type":"string"}}},"required":["filter","ids"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgSiteReviewsComponent","description":"Organization site reviews component.","type":"object","properties":{"type":{"const":"OrgSiteReviews"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrganizationTeamComponent","description":"Organization team/members dashboard.","type":"object","properties":{"type":{"const":"OrganizationTeam"},"defaultRole":{"description":"The default role to assign to new members when adding them.","type":"string"},"id":{"type":"string","minLength":1},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","id"]},{"title":"PageComponent","description":"Represents the current page when rendered inside a layout.","type":"object","properties":{"type":{"const":"Page"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"PlainTextComponent","type":"object","properties":{"type":{"const":"PlainText"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The HTML tag to use for the element. Defaults to span.","type":"string","enum":["code","div","h1","h2","h3","h4","h5","h6","label","legend","li","p","span"]},"text":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]}},"additionalProperties":false,"required":["type","id"]},{"title":"PopoverComponent","type":"object","properties":{"type":{"const":"Popover"},"hideTriggers":{"description":"A list of events that will trigger the popover to be hidden.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"id":{"type":"string","minLength":1},"showTriggers":{"description":"A list of events that will trigger the popover to be shown.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ProductItemGuardComponent","description":"Ensures that a user is signed in and belongs to an org that has access to the specified product item in an active subscription. Otherwise, the component shows a default message, a custom children, or nothing, depending on how it is configured. The styling applies only to the default message.","type":"object","properties":{"type":{"const":"ProductItemGuard"},"accessDeniedMode":{"description":"The default accessDeniedMode is DefaultMessage. A custom message is defined through children with an AccessDenied slot key.","type":"string","enum":["CustomMessage","DefaultMessage","Empty"]},"id":{"type":"string","minLength":1},"productItem":{"description":"The product item to require. If not set, this component does not require anything and displays its children.","type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ProvidePropsComponent","type":"object","properties":{"type":{"const":"ProvideProps"},"id":{"type":"string","minLength":1},"props":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"name":{"description":"The name of the prop to provide.","type":"string"},"source":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Number"},"value":{"type":"number"}},"required":["type","value"]},{"type":"object","properties":{"type":{"const":"String"},"value":{"type":"string"}},"required":["type","value"]}]}},"required":["type","value"]},{"description":"The output is a function of the input using one of the built-in format functions.","type":"object","properties":{"type":{"const":"Transform"},"format":{"type":"string","enum":["Phone number (###) ###-####","Phone number ###-###-####","U.S. State abbreviation spelled out"]},"inputPropName":{"description":"Used only in transform mode.","type":"string"}},"required":["type"]},{"description":"Produce the output prop from the LiquidJS template.","type":"object","properties":{"type":{"const":"Template"},"template":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"CustomField"},"fieldName":{"type":"string"},"object":{"description":"The object from which to read the specified field. For a page template being previewed, when the object is 'Page' the custom fields are taken instead from the page template.","type":"string","enum":["Site","Page","User"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["id","name","source"]}},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"QueryComponent","description":"A component that queries data and provides it as props to its children. Supports pagination and provides metadata about the query results.","type":"object","properties":{"type":{"const":"Query"},"id":{"type":"string","minLength":1},"pageLimitSource":{"description":"The source of the page limit. Defaults to a Direct value of 20.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"number"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]}]},"pageNumberSource":{"description":"The source of the page number. Defaults to QueryParameter 'page'. Pagination is 1-based (i.e., the first page is page 1).","anyOf":[{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"props":{"description":"Configuration for the props that will be provided to children components.","type":"object","properties":{"items":{"description":"The prop name for the array of items returned by the query. Defaults to 'items'.","type":"string"},"currentPage":{"description":"The prop name for the current page number. Defaults to 'currentPage'.","type":"string"},"hasNextPage":{"description":"The prop name for whether there is a next page. Defaults to 'hasNextPage'.","type":"string"},"hasPreviousPage":{"description":"The prop name for whether there is a previous page. Defaults to 'hasPreviousPage'.","type":"string"},"pageLimit":{"description":"The prop name for the actual number of items per page (returned by the server). Defaults to 'pageLimit'.","type":"string"},"totalItemsCount":{"description":"The prop name for the total number of items matching the filter. Defaults to 'totalItemsCount'.","type":"string"},"totalPagesCount":{"description":"The prop name for the total number of pages. Defaults to 'totalPagesCount'.","type":"string"}}},"slot":{"$ref":"#/$defs/componentSlot"},"source":{"description":"The data source configuration for the query.","anyOf":[{"description":"Fetch pages matching a set of filter conditions. Only published pages are included. Each element will be an object with the following properties: 'id', 'path', 'title', 'publishedAt', 'props'. The 'props' property will be the parsed page props.","type":"object","properties":{"type":{"const":"Pages"},"filter":{"description":"The filter to apply to select pages.","type":"object","properties":{"pathPrefix":{"description":"The path prefix to require for pages. Defaults to all paths.","type":"string"},"props":{"description":"A set of props to filter by. The prop values must be strings.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]}}}}},"required":["type"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RadioGroupInputComponent","type":"object","properties":{"type":{"const":"RadioGroupInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a bubble icon, and its children are rendered inside a label that refers to the radio input element. For cards, there is default styling with each item's border color indicating whether it is the one selected. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"id":{"type":"string","minLength":1},"itemsContainerStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"RadioGroupInputItemComponent","description":"A radio item within a radio group input.","type":"object","properties":{"type":{"const":"RadioGroupInputItem"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RemoteComponentComponent","description":"A component that dynamically loads a remote React component with custom code from an extension.","type":"object","properties":{"type":{"const":"RemoteComponent"},"componentName":{"description":"The name of the component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"extensionName":{"description":"The name of the extension that contains the remote component.","type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","componentName","extensionName","id"]},{"title":"RepeaterComponent","description":"A component that repeats a set of children for each item of an array or property of an object. Children are rendered with a prop for the current item. The key prop is the index for array items and the property name for objects. There is no wrapping element for children.","type":"object","properties":{"type":{"const":"Repeater"},"id":{"type":"string","minLength":1},"itemPropName":{"description":"The name of the prop for the current item. This is the array element for an array source, or the value of a property for an object source. Defaults to 'item'.","type":"string"},"keyPropName":{"description":"The name of the prop for the index or key of the current item. Defaults to 'key'.","type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"source":{"description":"The data to iterate over. Needs to evaluate to an array or an object.","anyOf":[{"description":"Use a prop as the data source.","type":"object","properties":{"type":{"const":"Prop"},"name":{"description":"The name of the prop providing the array or object.","type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RepeatingGroupInputComponent","description":"An input component that can include multiple input components and other components, allowing an array of records to be entered.","type":"object","properties":{"type":{"const":"RepeatingGroupInput"},"id":{"type":"string","minLength":1},"name":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","name"]},{"title":"RequestPasswordResetComponent","description":"A component to request password reset.","type":"object","properties":{"type":{"const":"RequestPasswordReset"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ResetPasswordComponent","description":"A component to reset a password.","type":"object","properties":{"type":{"const":"ResetPassword"},"id":{"type":"string","minLength":1},"mode":{"type":"string","enum":["create","reset"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ReviewComponent","description":"Displays a review form with 1-5 stars and redirects to the configured Google Place if the user clicks 5 stars.","type":"object","properties":{"type":{"const":"Review"},"googlePlace":{"$ref":"#/$defs/componentNullableStringValueSource"},"id":{"type":"string","minLength":1},"reviewFieldPlaceholder":{"type":"string"},"selectStarsLabel":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"SignInGuardComponent","type":"object","properties":{"type":{"const":"SignInGuard"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"SiteLogoComponent","description":"A component that displays the site logo.","type":"object","properties":{"type":{"const":"SiteLogo"},"alt":{"description":"Alternative text for the logo, defaults to the site name","type":"string"},"fallbackSiteName":{"description":"Whether to display the site name if the logo is not available","type":"boolean"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"SitePrivacyPolicyComponent","description":"A component that displays the site privacy policy.","type":"object","properties":{"type":{"const":"SitePrivacyPolicy"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"SiteTermsOfUseComponent","description":"A component that displays the site terms of use.","type":"object","properties":{"type":{"const":"SiteTermsOfUse"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageComponent","description":"A stage in a sequence.","type":"object","properties":{"type":{"const":"Stage"},"enableWrappedStageBody":{"description":"Whether to enable the wrapped stage body","type":"boolean"},"id":{"type":"string","minLength":1},"sequenceId":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageBodyComponent","description":"The body of a stage in a sequence.","type":"object","properties":{"type":{"const":"StageBody"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageNameComponent","description":"A component that displays the name of a stage.","type":"object","properties":{"type":{"const":"StageName"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"TextComponent","description":"A component that displays rich text. The content property should be an object with a delta property set to a Quill Delta object.","type":"object","properties":{"type":{"const":"Text"},"content":{"$ref":"#/$defs/richText"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"TextInputComponent","type":"object","properties":{"type":{"const":"TextInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"format":{"description":"Validation format for the input","type":"string","enum":["None","Email","Phone","Url"]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"TextareaInputComponent","type":"object","properties":{"type":{"const":"TextareaInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"ThemeComponent","type":"object","properties":{"type":{"const":"Theme"},"appearance":{"type":"string","enum":["light","dark","inherit"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"TypeformComponent","description":"A component that embeds a Typeform.","type":"object","properties":{"type":{"const":"Typeform"},"formId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"UserProfileComponent","description":"A component that displays a user profile.","type":"object","properties":{"type":{"const":"UserProfile"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"VerifiedEmailAddressGuardComponent","description":"Requires that a user be signed in and have a verified email address. Otherwise displays either a message that you need to be signed in or a message and a button to send a verification email.","type":"object","properties":{"type":{"const":"VerifiedEmailAddressGuard"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"VerifyEmailAddressComponent","description":"Reads a URL query parameter that contains a unique token for verifying a user’s email address and makes an API request to mark the email address as verified. If the token is valid, it displays a message that the email address has been verified. Otherwise, it displays an error message. In either case, at the bottom it displays a 'Go to {siteName}' link that navigates to the home page.","type":"object","properties":{"type":{"const":"VerifyEmailAddress"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"VideoComponent","description":"A component that displays a video.","type":"object","properties":{"type":{"const":"Video"},"autoPlay":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"controls":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"id":{"type":"string","minLength":1},"loop":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"muted":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"playsInline":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"poster":{"description":"The URL of an image to display while the video is loading. Applicable only when tag is 'video'.","$ref":"#/$defs/componentStringValueSource"},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"$ref":"#/$defs/componentStringValueSource"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The way to render the video. Defaults to iframe.","type":"string","enum":["iframe","video"]}},"additionalProperties":false,"required":["type","id"]},{"title":"ViewPlanStagesButtonComponent","description":"A button that opens a dialog that displays the stages of a sequence and allows the user to move to another stage.","type":"object","properties":{"type":{"const":"ViewPlanStagesButton"},"dialogHeader":{"type":"string"},"id":{"type":"string","minLength":1},"label":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"slot":{"$ref":"#/$defs/componentSlot"},"stageNameTableHeader":{"type":"string"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label"]},{"title":"WidthContainerComponent","description":"A div element that sets the max-width property to a specified width (defaults to 1200px). The default alignment is Center. An additional div is rendered to wrap the children to set alignment. That inner div (the direct parent element of children) cannot be styled. Only the WidthContainerComponent's outer element gets the styles, if any.","type":"object","properties":{"type":{"const":"WidthContainer"},"align":{"$ref":"#/$defs/componentAlign"},"elementId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"width":{"$ref":"#/$defs/componentWidth"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]}]}`);
26847
+ const items$2 = /* @__PURE__ */ JSON.parse(`{"anyOf":[{"title":"BoxComponent","description":"An element for wrapping children elements.","type":"object","properties":{"type":{"const":"Box"},"elementId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The HTML tag to use for the element. Defaults to div.","type":"string","enum":["article","aside","blockquote","code","div","fieldset","footer","h1","h2","h3","h4","h5","h6","header","label","legend","li","main","nav","ol","p","pre","section","span","ul"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ButtonComponent","type":"object","properties":{"type":{"const":"Button"},"id":{"type":"string","minLength":1},"onClick":{"description":"Defaults to submitForm.","anyOf":[{"type":"object","properties":{"type":{"const":"emitEvent"},"eventType":{"description":"A string representing a custom event type, to reference in other components that listen for events.","type":"string"}},"required":["type","eventType"]},{"type":"object","properties":{"type":{"type":"string","enum":["goBack","goBackFormStep","removeRepeatingGroupInputItem","resetForm","submitForm"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["decrementQueryParameter","incrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CalendlyEmbedComponent","description":"An embedded Calendly scheduling widget.","type":"object","properties":{"type":{"const":"CalendlyEmbed"},"id":{"type":"string","minLength":1},"queryParameters":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"parameter":{"type":"string"},"value":{"$ref":"#/$defs/componentStringValueSource"}},"required":["id","parameter","value"]}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"url":{"$ref":"#/$defs/componentStringValueSource"}},"additionalProperties":false,"required":["type","id"]},{"title":"CheckboxGroupInputComponent","description":"A group of checkboxes for selecting one or more options, represented as an array of strings in form data.","type":"object","properties":{"type":{"const":"CheckboxGroupInput"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a checkbox icon, and its children are rendered inside a label that refers to the checkbox input element. For cards, there is default styling with each item's border color indicating whether it is checked. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"id":{"type":"string","minLength":1},"itemsContainerStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"showIndicators":{"description":"Whether to show indicators for each item. Applies only if displayType is indicators. Defaults to true.","type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"CheckboxGroupInputItemComponent","description":"A checkbox item within a checkbox group input.","type":"object","properties":{"type":{"const":"CheckboxGroupInputItem"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CheckboxInputComponent","description":"A standalone checkbox. Represented as either a boolean or a string in form data. If value is set to a string and is not an empty string, it is used as the value for the input when the box is checked. Otherwise, a boolean is set as the value when the box is checked or unchecked.","type":"object","properties":{"type":{"const":"CheckboxInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"CollapsiblePanelComponent","description":"A panel that can be collapsed or expanded.","type":"object","properties":{"type":{"const":"CollapsiblePanel"},"header":{"description":"The text displayed in the clickable header.","type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"triggerButtonStyles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CompletableVideoInputComponent","type":"object","properties":{"type":{"const":"CompletableVideoInput"},"collapseCompleted":{"description":"By default, collapseCompleted is false.","type":"boolean"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"id":{"type":"string","minLength":1},"initiallyCollapsed":{"description":"Default initialCollapsed is false.","type":"boolean"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"showHeader":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"type":"string"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"ConditionalLogicComponent","type":"object","properties":{"type":{"const":"ConditionalLogic"},"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"CourseComponent","type":"object","properties":{"type":{"const":"Course"},"courseId":{"description":"If set, a Course is used instead of the legacy Plan.","type":"string"},"emptyNotesMessage":{"type":"string"},"enableNotes":{"type":"boolean"},"id":{"type":"string","minLength":1},"planId":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"CurrentYearComponent","description":"Displays the current year.","type":"object","properties":{"type":{"const":"CurrentYear"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"CustomComponentComponent","description":"A custom component (a saved fragment of components).","type":"object","properties":{"type":{"const":"CustomComponent"},"customComponentId":{"description":"The ID of the custom component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","customComponentId","id"]},{"title":"DashboardComponent","description":"A dashboard layout with a header, sidebar, and main content area.","type":"object","properties":{"type":{"const":"Dashboard"},"collapseSidebarOnPaths":{"description":"An array of path patterns as globs. If set, the sidebar will automatically be collapsed on matching paths.","type":"array","items":{"type":"string"}},"extraNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"id":{"type":"string","minLength":1},"mainNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"DateInputComponent","type":"object","properties":{"type":{"const":"DateInput"},"clearable":{"type":"boolean"},"dayPlaceholder":{"type":"string"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maximumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"minimumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"monthPlaceholder":{"type":"string"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"style":{"type":"string","enum":["Calendar","3Fields"]},"styles":{"$ref":"#/$defs/componentStyleRules"},"yearPlaceholder":{"type":"string"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"DialogComponent","type":"object","properties":{"type":{"const":"Dialog"},"closeOnBackdropClick":{"description":"Whether the dialog can be closed by clicking the backdrop. Defaults to true.","type":"boolean"},"hideTriggers":{"description":"A list of events that will trigger the dialog to be hidden.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"id":{"type":"string","minLength":1},"showTriggers":{"description":"A list of events that will trigger the dialog to be shown.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"DocumentComponent","description":"A component that displays a document that can be downloaded.","type":"object","properties":{"type":{"const":"Document"},"documentId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"DropdownInputComponent","type":"object","properties":{"type":{"const":"DropdownInput"},"clearable":{"description":"Clearable is ignored if the input is required. When the input is not required, it may or may not be clearable. The default is false.","type":"boolean"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"options":{"description":"The options to show. Each option's value is both the label displayed and the value.","type":"array","items":{"type":"object","properties":{"key":{"type":"number"},"value":{"type":"string"}},"required":["key","value"]}},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name","options"]},{"title":"FormComponent","type":"object","properties":{"type":{"const":"Form"},"formId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"FormStepComponent","description":"Represents the current step in a multi-step form.","type":"object","properties":{"type":{"const":"FormStep"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"GooglePlaceInputComponent","description":"A map with a search field that lets you select a Place in Google Maps.","type":"object","properties":{"type":{"const":"GooglePlaceInput"},"id":{"type":"string","minLength":1},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","name"]},{"title":"HeaderComponent","description":"A header component with navigation items and a slot for other components. Children components must have either the LeftContent or RightContent slot property set to be rendered. No default styling is applied to children. Notice that children for either the left or right need to be enabled explicitly on mobile screens (up to 767px wide) with the showLeftContentOnMobile or showRightContentOnMobile properties. The navAlign property specifies the alignment of the navigation items element: if Center, then the nav is centered; if Left, then the nav is on the left but immediately to the right of the children with the LeftContent slot, if any; if Right, then the nav is on the right but immediately to the left of the children with the RightContent slot, if any.","type":"object","properties":{"type":{"const":"Header"},"contentMaxWidth":{"$ref":"#/$defs/componentWidth"},"id":{"type":"string","minLength":1},"navAlign":{"$ref":"#/$defs/componentAlign"},"navItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"showLeftContentOnMobile":{"description":"If true, the left content is shown on mobile. Defaults to false.","type":"boolean"},"showRightContentOnMobile":{"description":"If true, the right content is shown on mobile. Defaults to false.","type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"sticky":{"description":"If true, the header is sticky upon scrolling. Defaults to false.","type":"boolean"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"HelpTicketsPortalComponent","description":"A portal for help tickets.","type":"object","properties":{"type":{"const":"HelpTicketsPortal"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"HTMLComponent","description":"A component that renders raw HTML.","type":"object","properties":{"type":{"const":"HTML"},"html":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"IconComponent","type":"object","properties":{"type":{"const":"Icon"},"alt":{"description":"The alternative text for the icon. This should be provided only for icons that serve some purpose on their own other than decoration. Decorative icons should omit alt text to avoid unnecessary screen reader announcements.","type":"string"},"ariaHidden":{"description":"If true, the icon is hidden from the accessibility tree. This should be set to true for purely decorative icons.","type":"boolean"},"icon":{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"MaterialSymbols"},"value":{"type":"object","properties":{"fill":{"description":"If true, the icon's filled variant is used. Defaults to false.","type":"boolean"},"name":{"description":"The name of the icon. Must be one of the defined Material Symbols.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"opticalSize":{"description":"The optical size of the icon, for optimizing the appearance at different sizes. For icons rendered at 34px width or smaller, use 20. For icons rendered at bigger than 34px width, use 48. This is also the default width and height of the icon in pixels. Can be used together with CSS width and height properties. Defaults to 20.","type":"number","enum":[20,48]},"style":{"description":"The style of the icon. The outlined style is a sort of hybrid of rounded and sharp, and depending on the icon it may look exactly the same as either the rounded or sharp style. Defaults to outlined.","type":"string","enum":["outlined","rounded","sharp"]},"weight":{"description":"The weight of the icon. Similar to font-weight in that 200 is lighter and 600 is heavier. Defaults to 400.","type":"number","enum":[200,400,600]}}}},"required":["type"]}]}},"required":["type"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ImageCarouselComponent","description":"A component that displays an infinite scrolling carousel of images.","type":"object","properties":{"type":{"const":"ImageCarousel"},"animationSpeed":{"description":"The speed of the scrolling animation. Defaults to Medium.","type":"string","enum":["Slow","Medium","Fast"]},"gapPx":{"description":"The gap between images in pixels. Defaults to 48.","type":"number"},"id":{"type":"string","minLength":1},"images":{"description":"The images to display in the carousel.","type":"array","items":{"type":"object","properties":{"alt":{"type":"string"},"id":{"description":"A random unique string for identification.","type":"string"},"src":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"type":"string"}},"required":["type","assetId","variantId"]}]}},"required":["id"]}},"imageWidthPx":{"description":"The width of each image in pixels. Defaults to 240.","type":"number"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ImageComponent","description":"A component that displays an image.","type":"object","properties":{"type":{"const":"Image"},"alt":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PageFeaturedImage","SiteLogo"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"type":"string"}},"required":["type","assetId","variantId"]}]},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"LessonNotesFieldComponent","description":"A text field for users to save notes related to a lesson (for courses).","type":"object","properties":{"type":{"const":"LessonNotesField"},"id":{"type":"string","minLength":1},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label"]},{"title":"LinkComponent","description":"A link.","type":"object","properties":{"type":{"const":"Link"},"id":{"type":"string","minLength":1},"linkStyle":{"description":"Controls the visual style of the link.","type":"string","enum":["Text","Button"]},"protocol":{"description":"Adds the specified protocol prefix to the href attribute's value.","type":"string","enum":["mailto","tel","sms"]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"target":{"type":"string","enum":["_blank","_self","_parent","_top"]},"to":{"description":"The URL that the link points to. A router link will be rendered for a path without a host (using the History API). A regular link will be rendered for a full URL.","anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"enum":["IncrementQueryParameter","DecrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"MapComponent","description":"A component that displays a map. The focus property is the place to display. It can be the name of a location (the way it appears on Google Maps), an address, or a place ID with the prefix 'place_id:'.","type":"object","properties":{"type":{"const":"Map"},"focus":{"$ref":"#/$defs/componentNullableStringValueSource"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"MoveUserPlanComponent","description":"A component for a user to move between sequence stages.","type":"object","properties":{"type":{"const":"MoveUserPlan"},"id":{"type":"string","minLength":1},"nextButtonLabel":{"type":"string"},"previousButtonLabel":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"MultiOrgViewComponent","description":"A view for viewing all the orgs under a subscription, including all the users of each org and their training progress.","type":"object","properties":{"type":{"const":"MultiOrgView"},"id":{"type":"string","minLength":1},"orgLabelPlural":{"type":"string"},"orgLabelSingular":{"type":"string"},"productIds":{"type":"array","items":{"type":"string"}},"showManageOrgs":{"type":"boolean"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressSequenceIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","id"]},{"title":"MultipleChoiceInputComponent","type":"object","properties":{"type":{"const":"MultipleChoiceInput"},"answerIndex":{"type":"number"},"choices":{"type":"array","items":{"type":"string"}},"id":{"type":"string","minLength":1},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"MultiSelectInputComponent","type":"object","properties":{"type":{"const":"MultiSelectInput"},"answerIndices":{"type":"array","items":{"type":"number"}},"choices":{"type":"array","items":{"type":"string"}},"id":{"type":"string","minLength":1},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"NumberInputComponent","type":"object","properties":{"type":{"const":"NumberInput"},"format":{"type":"string","enum":["Number","Currency","Integer"]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxDecimalDigits":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"OrderFormComponent","description":"An order form for checking out for a subscription.","type":"object","properties":{"type":{"const":"OrderForm"},"checkoutOptions":{"description":"The products to display in the form. Each product may optionally have a condition that needs to evaluate to true for the product to be displayed.","type":"array","items":{"type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"subscriptionPlanId":{"type":"string"}},"required":["subscriptionPlanId"]}},"enablePhoneNumber":{"description":"Whether to enable a phone number input field. Defaults to true.","type":"boolean"},"enablePromoCode":{"description":"Whether to enable a promo code input field. If set to Stripe, only Stripe promo codes are allowed. If set to Custom, only custom promo codes are allowed. Defaults to none.","type":"string","enum":["Stripe","Custom"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgBillingSettingsComponent","description":"Org billing settings dashboard.","type":"object","properties":{"type":{"const":"OrgBillingSettings"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgSitePagesComponent","description":"Shows the pages of an org site and allows authorized users to activate and edit pages.","type":"object","properties":{"type":{"const":"OrgSitePages"},"defaultPageTemplatePreviewImageUrl":{"type":"string"},"id":{"type":"string","minLength":1},"pageTemplates":{"type":"object","properties":{"filter":{"type":"string","enum":["include","exclude"]},"ids":{"type":"array","items":{"type":"string"}}},"required":["filter","ids"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrgSiteReviewsComponent","description":"Organization site reviews component.","type":"object","properties":{"type":{"const":"OrgSiteReviews"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"OrganizationTeamComponent","description":"Organization team/members dashboard.","type":"object","properties":{"type":{"const":"OrganizationTeam"},"defaultRole":{"description":"The default role to assign to new members when adding them.","type":"string"},"id":{"type":"string","minLength":1},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type","id"]},{"title":"PageComponent","description":"Represents the current page when rendered inside a layout.","type":"object","properties":{"type":{"const":"Page"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"PlainTextComponent","type":"object","properties":{"type":{"const":"PlainText"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The HTML tag to use for the element. Defaults to span.","type":"string","enum":["code","div","h1","h2","h3","h4","h5","h6","label","legend","li","p","span"]},"text":{"anyOf":[{"$ref":"#/$defs/componentStringValueSource"},{"type":"object","properties":{"type":{"type":"string","enum":["PagePublishedAt","PageTitle","SiteName"]}},"required":["type"]}]}},"additionalProperties":false,"required":["type","id"]},{"title":"PopoverComponent","type":"object","properties":{"type":{"const":"Popover"},"hideTriggers":{"description":"A list of events that will trigger the popover to be hidden.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"id":{"type":"string","minLength":1},"showTriggers":{"description":"A list of events that will trigger the popover to be shown.","type":"array","items":{"$ref":"#/$defs/componentTrigger"}},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ProductItemGuardComponent","description":"Ensures that a user is signed in and belongs to an org that has access to the specified product item in an active subscription. Otherwise, the component shows a default message, a custom children, or nothing, depending on how it is configured. The styling applies only to the default message.","type":"object","properties":{"type":{"const":"ProductItemGuard"},"accessDeniedMode":{"description":"The default accessDeniedMode is DefaultMessage. A custom message is defined through children with an AccessDenied slot key.","type":"string","enum":["CustomMessage","DefaultMessage","Empty"]},"id":{"type":"string","minLength":1},"productItem":{"description":"The product item to require. If not set, this component does not require anything and displays its children.","type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"ProvidePropsComponent","type":"object","properties":{"type":{"const":"ProvideProps"},"id":{"type":"string","minLength":1},"props":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"name":{"description":"The name of the prop to provide.","type":"string"},"source":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Number"},"value":{"type":"number"}},"required":["type","value"]},{"type":"object","properties":{"type":{"const":"String"},"value":{"type":"string"}},"required":["type","value"]}]}},"required":["type","value"]},{"description":"The output is a function of the input using one of the built-in format functions.","type":"object","properties":{"type":{"const":"Transform"},"format":{"type":"string","enum":["Phone number (###) ###-####","Phone number ###-###-####","U.S. State abbreviation spelled out"]},"inputPropName":{"description":"Used only in transform mode.","type":"string"}},"required":["type"]},{"description":"Produce the output prop from the LiquidJS template.","type":"object","properties":{"type":{"const":"Template"},"template":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"CustomField"},"fieldName":{"type":"string"},"object":{"description":"The object from which to read the specified field. For a page template being previewed, when the object is 'Page' the custom fields are taken instead from the page template.","type":"string","enum":["Site","Page","User"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["id","name","source"]}},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"QueryComponent","description":"A component that queries data and provides it as props to its children. Supports pagination and provides metadata about the query results.","type":"object","properties":{"type":{"const":"Query"},"id":{"type":"string","minLength":1},"pageLimitSource":{"description":"The source of the page limit. Defaults to a Direct value of 20.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"number"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]}]},"pageNumberSource":{"description":"The source of the page number. Defaults to QueryParameter 'page'. Pagination is 1-based (i.e., the first page is page 1).","anyOf":[{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"props":{"description":"Configuration for the props that will be provided to children components.","type":"object","properties":{"items":{"description":"The prop name for the array of items returned by the query. Defaults to 'items'.","type":"string"},"currentPage":{"description":"The prop name for the current page number. Defaults to 'currentPage'.","type":"string"},"hasNextPage":{"description":"The prop name for whether there is a next page. Defaults to 'hasNextPage'.","type":"string"},"hasPreviousPage":{"description":"The prop name for whether there is a previous page. Defaults to 'hasPreviousPage'.","type":"string"},"pageLimit":{"description":"The prop name for the actual number of items per page (returned by the server). Defaults to 'pageLimit'.","type":"string"},"totalItemsCount":{"description":"The prop name for the total number of items matching the filter. Defaults to 'totalItemsCount'.","type":"string"},"totalPagesCount":{"description":"The prop name for the total number of pages. Defaults to 'totalPagesCount'.","type":"string"}}},"slot":{"$ref":"#/$defs/componentSlot"},"source":{"description":"The data source configuration for the query.","anyOf":[{"description":"Fetch pages matching a set of filter conditions. Only published pages are included. Each element will be an object with the following properties: 'id', 'path', 'title', 'publishedAt', 'props'. The 'props' property will be the parsed page props.","type":"object","properties":{"type":{"const":"Pages"},"filter":{"description":"The filter to apply to select pages.","type":"object","properties":{"pathPrefix":{"description":"The path prefix to require for pages. Defaults to all paths.","type":"string"},"props":{"description":"Filters to apply based on page props. Multiple filters are combined with AND logic.","type":"array","items":{"type":"object","properties":{"operator":{"description":"The comparison operator. Defaults to 'Equals'. 'Contains' and 'StartsWith' are only valid for string values.","enum":["Equals","NotEquals","Contains","StartsWith","Exists","NotExists"]},"path":{"description":"The dot-notation path to the prop (e.g., 'category' or 'author.name').","type":"string"},"value":{"description":"The value to compare against. Required for Equals, NotEquals, Contains, and StartsWith operators. Ignored for Exists and NotExists.","type":"object","properties":{"type":{"const":"Direct"},"value":{"oneOf":[{"type":"string"},{"type":"boolean"}]}},"required":["type","value"]}},"required":["operator","path","value"]}}}}},"required":["type"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RadioGroupInputComponent","type":"object","properties":{"type":{"const":"RadioGroupInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a bubble icon, and its children are rendered inside a label that refers to the radio input element. For cards, there is default styling with each item's border color indicating whether it is the one selected. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"id":{"type":"string","minLength":1},"itemsContainerStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"RadioGroupInputItemComponent","description":"A radio item within a radio group input.","type":"object","properties":{"type":{"const":"RadioGroupInputItem"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"value":{"$ref":"#/$defs/componentStringValueSource"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RemoteComponentComponent","description":"A component that dynamically loads a remote React component with custom code from an extension.","type":"object","properties":{"type":{"const":"RemoteComponent"},"componentName":{"description":"The name of the component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"extensionName":{"description":"The name of the extension that contains the remote component.","type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","componentName","extensionName","id"]},{"title":"RepeaterComponent","description":"A component that repeats a set of children for each item of an array or property of an object. Children are rendered with a prop for the current item. The key prop is the index for array items and the property name for objects. There is no wrapping element for children.","type":"object","properties":{"type":{"const":"Repeater"},"id":{"type":"string","minLength":1},"itemPropName":{"description":"The name of the prop for the current item. This is the array element for an array source, or the value of a property for an object source. Defaults to 'item'.","type":"string"},"keyPropName":{"description":"The name of the prop for the index or key of the current item. Defaults to 'key'.","type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"source":{"description":"The data to iterate over. Needs to evaluate to an array or an object.","anyOf":[{"description":"Use a prop as the data source.","type":"object","properties":{"type":{"const":"Prop"},"name":{"description":"The name of the prop providing the array or object.","type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"RepeatingGroupInputComponent","description":"An input component that can include multiple input components and other components, allowing an array of records to be entered.","type":"object","properties":{"type":{"const":"RepeatingGroupInput"},"id":{"type":"string","minLength":1},"name":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id","name"]},{"title":"RequestPasswordResetComponent","description":"A component to request password reset.","type":"object","properties":{"type":{"const":"RequestPasswordReset"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ResetPasswordComponent","description":"A component to reset a password.","type":"object","properties":{"type":{"const":"ResetPassword"},"id":{"type":"string","minLength":1},"mode":{"type":"string","enum":["create","reset"]},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"ReviewComponent","description":"Displays a review form with 1-5 stars and redirects to the configured Google Place if the user clicks 5 stars.","type":"object","properties":{"type":{"const":"Review"},"googlePlace":{"$ref":"#/$defs/componentNullableStringValueSource"},"id":{"type":"string","minLength":1},"reviewFieldPlaceholder":{"type":"string"},"selectStarsLabel":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"SignInGuardComponent","type":"object","properties":{"type":{"const":"SignInGuard"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"SiteLogoComponent","description":"A component that displays the site logo.","type":"object","properties":{"type":{"const":"SiteLogo"},"alt":{"description":"Alternative text for the logo, defaults to the site name","type":"string"},"fallbackSiteName":{"description":"Whether to display the site name if the logo is not available","type":"boolean"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"SitePrivacyPolicyComponent","description":"A component that displays the site privacy policy.","type":"object","properties":{"type":{"const":"SitePrivacyPolicy"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"SiteTermsOfUseComponent","description":"A component that displays the site terms of use.","type":"object","properties":{"type":{"const":"SiteTermsOfUse"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageComponent","description":"A stage in a sequence.","type":"object","properties":{"type":{"const":"Stage"},"enableWrappedStageBody":{"description":"Whether to enable the wrapped stage body","type":"boolean"},"id":{"type":"string","minLength":1},"sequenceId":{"type":"string"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageBodyComponent","description":"The body of a stage in a sequence.","type":"object","properties":{"type":{"const":"StageBody"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"StageNameComponent","description":"A component that displays the name of a stage.","type":"object","properties":{"type":{"const":"StageName"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"TextComponent","description":"A component that displays rich text. The content property should be an object with a delta property set to a Quill Delta object.","type":"object","properties":{"type":{"const":"Text"},"content":{"$ref":"#/$defs/richText"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"}},"additionalProperties":false,"required":["type","id"]},{"title":"TextInputComponent","type":"object","properties":{"type":{"const":"TextInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"format":{"description":"Validation format for the input","type":"string","enum":["None","Email","Phone","Url"]},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"TextareaInputComponent","type":"object","properties":{"type":{"const":"TextareaInput"},"defaultValue":{"$ref":"#/$defs/componentStringValueSource"},"id":{"type":"string","minLength":1},"inputElementStyles":{"$ref":"#/$defs/componentStyleRules"},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label","name"]},{"title":"ThemeComponent","type":"object","properties":{"type":{"const":"Theme"},"appearance":{"type":"string","enum":["light","dark","inherit"]},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"TypeformComponent","description":"A component that embeds a Typeform.","type":"object","properties":{"type":{"const":"Typeform"},"formId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"UserProfileComponent","description":"A component that displays a user profile.","type":"object","properties":{"type":{"const":"UserProfile"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"VerifiedEmailAddressGuardComponent","description":"Requires that a user be signed in and have a verified email address. Otherwise displays either a message that you need to be signed in or a message and a button to send a verification email.","type":"object","properties":{"type":{"const":"VerifiedEmailAddressGuard"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]},{"title":"VerifyEmailAddressComponent","description":"Reads a URL query parameter that contains a unique token for verifying a user’s email address and makes an API request to mark the email address as verified. If the token is valid, it displays a message that the email address has been verified. Otherwise, it displays an error message. In either case, at the bottom it displays a 'Go to {siteName}' link that navigates to the home page.","type":"object","properties":{"type":{"const":"VerifyEmailAddress"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id"]},{"title":"VideoComponent","description":"A component that displays a video.","type":"object","properties":{"type":{"const":"Video"},"autoPlay":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"controls":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"id":{"type":"string","minLength":1},"loop":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"muted":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"playsInline":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"poster":{"description":"The URL of an image to display while the video is loading. Applicable only when tag is 'video'.","$ref":"#/$defs/componentStringValueSource"},"slot":{"$ref":"#/$defs/componentSlot"},"src":{"$ref":"#/$defs/componentStringValueSource"},"styles":{"$ref":"#/$defs/componentStyleRules"},"tag":{"description":"The way to render the video. Defaults to iframe.","type":"string","enum":["iframe","video"]}},"additionalProperties":false,"required":["type","id"]},{"title":"ViewPlanStagesButtonComponent","description":"A button that opens a dialog that displays the stages of a sequence and allows the user to move to another stage.","type":"object","properties":{"type":{"const":"ViewPlanStagesButton"},"dialogHeader":{"type":"string"},"id":{"type":"string","minLength":1},"label":{"$ref":"#/$defs/componentStringValueSource"},"labelStyles":{"$ref":"#/$defs/componentStyleRules"},"slot":{"$ref":"#/$defs/componentSlot"},"stageNameTableHeader":{"type":"string"},"styles":{"$ref":"#/$defs/componentStyleRules"}},"additionalProperties":false,"required":["type","id","label"]},{"title":"WidthContainerComponent","description":"A div element that sets the max-width property to a specified width (defaults to 1200px). The default alignment is Center. An additional div is rendered to wrap the children to set alignment. That inner div (the direct parent element of children) cannot be styled. Only the WidthContainerComponent's outer element gets the styles, if any.","type":"object","properties":{"type":{"const":"WidthContainer"},"align":{"$ref":"#/$defs/componentAlign"},"elementId":{"type":"string"},"id":{"type":"string","minLength":1},"slot":{"$ref":"#/$defs/componentSlot"},"styles":{"$ref":"#/$defs/componentStyleRules"},"width":{"$ref":"#/$defs/componentWidth"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","id"]}]}`);
26848
26848
  const $defs$6 = /* @__PURE__ */ JSON.parse(`{"componentAlign":{"type":"string","enum":["Center","Left","Right"]},"componentNavItem":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"label":{"description":"The text to display in the nav item.","type":"string"},"openInNewTab":{"type":"boolean"},"productItem":{"description":"If set, then only signed in users with access to the specified product item will see this nav item.","type":["string","null"]},"roles":{"description":"If set and not empty, then only signed in users with one of the specified roles will see this nav item.","type":"array","items":{"type":"string"}},"subItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItemLeaf"}},"url":{"description":"The URL to navigate to when the nav item is clicked. Can be an absolute path. Can also be an anchor link (e.g., #pricing).","type":"string"}},"required":["id","label"]},"componentNavItemLeaf":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"label":{"description":"The text to display in the nav item.","type":"string"},"openInNewTab":{"type":"boolean"},"productItem":{"description":"If set, then only signed in users with access to the specified product item will see this nav item.","type":["string","null"]},"roles":{"description":"If set and not empty, then only signed in users with one of the specified roles will see this nav item.","type":"array","items":{"type":"string"}},"url":{"description":"The URL to navigate to when the nav item is clicked. Can be an absolute path. Can also be an anchor link (e.g., #pricing).","type":"string"}},"required":["id","label","url"]},"componentNullableStringValueSource":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":["string","null"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"componentSlot":{"type":"string","enum":["True","False","AccessAllowed","AccessDenied","LeftContent","RightContent"]},"componentStringValueSource":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"componentStyleRules":{"type":"array","items":{"type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"declarations":{"description":"A list of declarations. Each property must be either a CSS property or a custom property.","type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"property":{"type":"string"},"value":{"type":"string"}},"required":["id","property","value"]}},"id":{"type":"string"},"minWidth":{"description":"Optional min-width media query for this rule. If not set, the rule applies to all widths.","type":"string","enum":["sm","md","lg","xl","xxl"]},"states":{"description":"Optional pseudo-classes for this rule to apply to. Multiple classes are combined (e.g., ':hover:last-child').","type":"array","items":{"type":"string","enum":["active","disabled","first-child","focus","focus-visible","focus-within","hover","last-child","only-child"]}}},"required":["declarations","id"]}},"componentTrigger":{"description":"A specification for an event that will trigger some action. The condition property is an expression that, if set, needs to evaluate to true for the trigger to apply.","type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"eventType":{"description":"The expected event type for the trigger to apply.","type":"string"},"id":{"description":"A random unique string for identification.","type":"string"}},"required":["eventType","id"]},"componentWidth":{"type":"string","enum":["400px","500px","600px","800px","1000px","1200px","1400px","1600px"]},"contextData":{"title":"ContextData","type":"object","additionalProperties":{"$ref":"#/$defs/contextDataDataValue"}},"contextDataDataTableRow":{"type":"object","properties":{"data":{"$ref":"#/$defs/contextData"},"id":{"type":"string"}},"required":["data","id"]},"contextDataDataValue":{"anyOf":[{"type":"boolean"},{"type":"string"},{"type":"number"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/contextDataDataTableRow"}},{"$ref":"#/$defs/contextDataUploadedFile"},{"type":"array","items":{"type":"string"}}]},"contextDataUploadedFile":{"type":"object","properties":{"fileId":{"type":"string"}},"required":["fileId"]},"expression":{"title":"Expression","anyOf":[{"$ref":"#/$defs/expressionArrayExpression"},{"$ref":"#/$defs/expressionBooleanExpression"},{"$ref":"#/$defs/expressionNumberExpression"},{"$ref":"#/$defs/expressionStringExpression"}]},"expressionAll":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"all"}},"required":["arrayExpression","condition","operator"]},"expressionArrayExpression":{"anyOf":[{"$ref":"#/$defs/expressionArrayLiteral"},{"$ref":"#/$defs/expressionFilter"},{"$ref":"#/$defs/expressionMap"},{"$ref":"#/$defs/expressionUserProductItems"},{"$ref":"#/$defs/expressionDynamicValue"}]},"expressionArrayIncludes":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"operator":{"const":"arrayIncludes"},"value":{"$ref":"#/$defs/expression"}},"required":["arrayExpression","operator","value"]},"expressionArrayLiteral":{"type":"object","properties":{"operator":{"const":"arrayLiteral"},"value":{"type":"array","items":{"$ref":"#/$defs/expression"}}},"required":["operator","value"]},"expressionBooleanExpression":{"anyOf":[{"$ref":"#/$defs/expressionAll"},{"$ref":"#/$defs/expressionArrayIncludes"},{"$ref":"#/$defs/expressionBoth"},{"$ref":"#/$defs/expressionBooleanLiteral"},{"$ref":"#/$defs/expressionEither"},{"$ref":"#/$defs/expressionEquals"},{"$ref":"#/$defs/expressionExists"},{"$ref":"#/$defs/expressionGreaterThan"},{"$ref":"#/$defs/expressionNot"},{"$ref":"#/$defs/expressionSome"},{"$ref":"#/$defs/expressionDynamicValue"}]},"expressionBooleanLiteral":{"type":"object","properties":{"operator":{"const":"booleanLiteral"},"value":{"type":"boolean"}},"required":["operator","value"]},"expressionBoth":{"type":"object","properties":{"left":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"both"},"right":{"$ref":"#/$defs/expressionBooleanExpression"}},"required":["left","operator","right"]},"expressionCurrentTime":{"description":"A timestamp in milliseconds since epoch.","type":"object","properties":{"operator":{"const":"currentTime"}},"required":["operator"]},"expressionDataValue":{"description":"Access a value from the data object. The source of the data depends on the context. For example, in a form the data object is the form data and the name is the name of the input component.","type":"object","properties":{"name":{"type":"string"},"operator":{"const":"dataValue"}},"required":["name","operator"]},"expressionDynamicValue":{"anyOf":[{"$ref":"#/$defs/expressionDataValue"},{"$ref":"#/$defs/expressionProp"}]},"expressionEither":{"type":"object","properties":{"left":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"either"},"right":{"$ref":"#/$defs/expressionBooleanExpression"}},"required":["left","operator","right"]},"expressionEquals":{"type":"object","properties":{"left":{"$ref":"#/$defs/expression"},"operator":{"const":"equals"},"right":{"$ref":"#/$defs/expression"}},"required":["left","operator","right"]},"expressionEventType":{"description":"Access the type set on an event. Applicable only in contexts where the expression deals with an event.","type":"object","properties":{"operator":{"const":"eventType"}},"required":["operator"]},"expressionExists":{"type":"object","properties":{"expression":{"$ref":"#/$defs/expression"},"operator":{"const":"exists"}},"required":["expression","operator"]},"expressionFilter":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"filterExpression":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"filter"}},"required":["arrayExpression","filterExpression","operator"]},"expressionGreaterThan":{"type":"object","properties":{"left":{"$ref":"#/$defs/expressionNumberExpression"},"operator":{"const":"greaterThan"},"right":{"$ref":"#/$defs/expressionNumberExpression"}},"required":["left","operator","right"]},"expressionLength":{"type":"object","properties":{"operator":{"const":"length"},"value":{"anyOf":[{"$ref":"#/$defs/expressionArrayExpression"},{"$ref":"#/$defs/expressionStringExpression"}]}},"required":["operator","value"]},"expressionMap":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"mapExpression":{"$ref":"#/$defs/expression"},"operator":{"const":"map"}},"required":["arrayExpression","mapExpression","operator"]},"expressionNot":{"type":"object","properties":{"expression":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"not"}},"required":["expression","operator"]},"expressionNumberExpression":{"anyOf":[{"$ref":"#/$defs/expressionCurrentTime"},{"$ref":"#/$defs/expressionLength"},{"$ref":"#/$defs/expressionNumberLiteral"},{"$ref":"#/$defs/expressionSum"},{"$ref":"#/$defs/expressionSumArray"},{"$ref":"#/$defs/expressionTimeLiteral"},{"$ref":"#/$defs/expressionDynamicValue"}]},"expressionNumberLiteral":{"type":"object","properties":{"operator":{"const":"numberLiteral"},"value":{"type":"number"}},"required":["operator","value"]},"expressionProp":{"description":"Access a value from props. Applicable only in contexts where the expression deals with props.","type":"object","properties":{"name":{"type":"string"},"operator":{"const":"prop"}},"required":["name","operator"]},"expressionSome":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"condition":{"$ref":"#/$defs/expressionBooleanExpression"},"operator":{"const":"some"}},"required":["arrayExpression","condition","operator"]},"expressionStringExpression":{"anyOf":[{"$ref":"#/$defs/expressionEventType"},{"$ref":"#/$defs/expressionStringLiteral"},{"$ref":"#/$defs/expressionUserRole"},{"$ref":"#/$defs/expressionDynamicValue"}]},"expressionStringLiteral":{"type":"object","properties":{"operator":{"const":"stringLiteral"},"value":{"type":"string"}},"required":["operator","value"]},"expressionSum":{"type":"object","properties":{"left":{"$ref":"#/$defs/expressionNumberExpression"},"operator":{"const":"sum"},"right":{"$ref":"#/$defs/expressionNumberExpression"}},"required":["left","operator","right"]},"expressionSumArray":{"type":"object","properties":{"arrayExpression":{"$ref":"#/$defs/expressionArrayExpression"},"operator":{"const":"sumArray"}},"required":["arrayExpression","operator"]},"expressionTimeLiteral":{"description":"A timestamp in milliseconds since epoch.","type":"object","properties":{"operator":{"const":"timeLiteral"},"value":{"type":"number"}},"required":["operator","value"]},"expressionUserProductItems":{"type":"object","properties":{"operator":{"const":"userProductItems"}},"required":["operator"]},"expressionUserRole":{"type":"object","properties":{"operator":{"const":"userRole"}},"required":["operator"]},"richText":{"title":"RichText","oneOf":[{"title":"Delta","type":"object","properties":{"delta":{"type":"object","properties":{"ops":{"type":"array","items":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true},"insert":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]}},"required":["insert"]}}},"required":["ops"]}},"required":["delta"]}]}}`);
26849
26849
  const $id$c = "/designer/components.json";
26850
26850
  const componentsSchema = {
@@ -26854,7 +26854,7 @@ const componentsSchema = {
26854
26854
  $id: $id$c
26855
26855
  };
26856
26856
  const type$b = "array";
26857
- const items$1 = /* @__PURE__ */ JSON.parse(`{"anyOf":[{"description":"An element for wrapping children elements.","type":"object","properties":{"type":{"const":"Box"},"elementId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The HTML tag to use for the element. Defaults to div.","type":"string","enum":["article","aside","blockquote","code","div","fieldset","footer","h1","h2","h3","h4","h5","h6","header","label","legend","li","main","nav","ol","p","pre","section","span","ul"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Button"},"onClick":{"description":"Defaults to submitForm.","anyOf":[{"type":"object","properties":{"type":{"const":"emitEvent"},"eventType":{"description":"A string representing a custom event type, to reference in other components that listen for events.","type":"string"}},"required":["type","eventType"]},{"type":"object","properties":{"type":{"type":"string","enum":["goBack","goBackFormStep","removeRepeatingGroupInputItem","resetForm","submitForm"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["decrementQueryParameter","incrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"An embedded Calendly scheduling widget.","type":"object","properties":{"type":{"const":"CalendlyEmbed"},"queryParameters":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"parameter":{"type":"string"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["id","parameter","value"]}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"url":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"additionalProperties":false,"required":["type"]},{"description":"A group of checkboxes for selecting one or more options, represented as an array of strings in form data.","type":"object","properties":{"type":{"const":"CheckboxGroupInput"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a checkbox icon, and its children are rendered inside a label that refers to the checkbox input element. For cards, there is default styling with each item's border color indicating whether it is checked. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"itemsContainerStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"showIndicators":{"description":"Whether to show indicators for each item. Applies only if displayType is indicators. Defaults to true.","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A checkbox item within a checkbox group input.","type":"object","properties":{"type":{"const":"CheckboxGroupInputItem"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A standalone checkbox. Represented as either a boolean or a string in form data. If value is set to a string and is not an empty string, it is used as the value for the input when the box is checked. Otherwise, a boolean is set as the value when the box is checked or unchecked.","type":"object","properties":{"type":{"const":"CheckboxInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A panel that can be collapsed or expanded.","type":"object","properties":{"type":{"const":"CollapsiblePanel"},"header":{"description":"The text displayed in the clickable header.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"triggerButtonStyles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"CompletableVideoInput"},"collapseCompleted":{"description":"By default, collapseCompleted is false.","type":"boolean"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"initiallyCollapsed":{"description":"Default initialCollapsed is false.","type":"boolean"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"showHeader":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"src":{"type":"string"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"ConditionalLogic"},"condition":{"$ref":"#/$defs/expressionBoolean"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Course"},"courseId":{"description":"If set, a Course is used instead of the legacy Plan.","type":"string"},"emptyNotesMessage":{"type":"string"},"enableNotes":{"type":"boolean"},"planId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Displays the current year.","type":"object","properties":{"type":{"const":"CurrentYear"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A custom component (a saved fragment of components).","type":"object","properties":{"type":{"const":"CustomComponent"},"customComponentId":{"description":"The ID of the custom component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type","customComponentId"]},{"description":"A dashboard layout with a header, sidebar, and main content area.","type":"object","properties":{"type":{"const":"Dashboard"},"collapseSidebarOnPaths":{"description":"An array of path patterns as globs. If set, the sidebar will automatically be collapsed on matching paths.","type":"array","items":{"type":"string"}},"extraNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"mainNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"DateInput"},"clearable":{"type":"boolean"},"dayPlaceholder":{"type":"string"},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maximumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"minimumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"monthPlaceholder":{"type":"string"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"style":{"type":"string","enum":["Calendar","3Fields"]},"styles":{"$ref":"#/$defs/styles"},"yearPlaceholder":{"type":"string"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"Dialog"},"closeOnBackdropClick":{"description":"Whether the dialog can be closed by clicking the backdrop. Defaults to true.","type":"boolean"},"hideTriggers":{"description":"A list of events that will trigger the dialog to be hidden.","type":"array","items":{"$ref":"#/$defs/trigger"}},"showTriggers":{"description":"A list of events that will trigger the dialog to be shown.","type":"array","items":{"$ref":"#/$defs/trigger"}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a document that can be downloaded.","type":"object","properties":{"type":{"const":"Document"},"documentId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"DropdownInput"},"clearable":{"description":"Clearable is ignored if the input is required. When the input is not required, it may or may not be clearable. The default is false.","type":"boolean"},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"options":{"description":"The options to show. Each string is both the label displayed and the value.","type":"array","items":{"type":"string"}},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name","options"]},{"type":"object","properties":{"type":{"const":"Form"},"formId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Represents the current step in a multi-step form.","type":"object","properties":{"type":{"const":"FormStep"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A map with a search field that lets you select a Place in Google Maps.","type":"object","properties":{"type":{"const":"GooglePlaceInput"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","name"]},{"description":"A header component with navigation items and a slot for other components. Children components must have either the LeftContent or RightContent slot property set to be rendered. No default styling is applied to children. Notice that children for either the left or right need to be enabled explicitly on mobile screens (up to 767px wide) with the showLeftContentOnMobile or showRightContentOnMobile properties. The navAlign property specifies the alignment of the navigation items element: if Center, then the nav is centered; if Left, then the nav is on the left but immediately to the right of the children with the LeftContent slot, if any; if Right, then the nav is on the right but immediately to the left of the children with the RightContent slot, if any.","type":"object","properties":{"type":{"const":"Header"},"contentMaxWidth":{"$ref":"#/$defs/width"},"navAlign":{"$ref":"#/$defs/align"},"navItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"showLeftContentOnMobile":{"description":"If true, the left content is shown on mobile. Defaults to false.","type":"boolean"},"showRightContentOnMobile":{"description":"If true, the right content is shown on mobile. Defaults to false.","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"sticky":{"description":"If true, the header is sticky upon scrolling. Defaults to false.","type":"boolean"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A portal for help tickets.","type":"object","properties":{"type":{"const":"HelpTicketsPortal"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that renders raw HTML.","type":"object","properties":{"type":{"const":"HTML"},"html":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Icon"},"alt":{"description":"The alternative text for the icon. This should be provided only for icons that serve some purpose on their own other than decoration. Decorative icons should omit alt text to avoid unnecessary screen reader announcements.","type":"string"},"ariaHidden":{"description":"If true, the icon is hidden from the accessibility tree. This should be set to true for purely decorative icons.","type":"boolean"},"icon":{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"MaterialSymbols"},"value":{"type":"object","properties":{"fill":{"description":"If true, the icon's filled variant is used. Defaults to false.","type":"boolean"},"name":{"description":"The name of the icon. Must be one of the defined Material Symbols.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"opticalSize":{"description":"The optical size of the icon, for optimizing the appearance at different sizes. For icons rendered at 34px width or smaller, use 20. For icons rendered at bigger than 34px width, use 48. This is also the default width and height of the icon in pixels. Can be used together with CSS width and height properties. Defaults to 20.","type":"number","enum":[20,48]},"style":{"description":"The style of the icon. The outlined style is a sort of hybrid of rounded and sharp, and depending on the icon it may look exactly the same as either the rounded or sharp style. Defaults to outlined.","type":"string","enum":["outlined","rounded","sharp"]},"weight":{"description":"The weight of the icon. Similar to font-weight in that 200 is lighter and 600 is heavier. Defaults to 400.","type":"number","enum":[200,400,600]}}}},"required":["type"]}]}},"required":["type"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays an image.","type":"object","properties":{"type":{"const":"Image"},"alt":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"src":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageFeaturedImage","SiteLogo"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"description":"Optional ID of a specific variant to use. Should not be set together with variantIds. If not provided and variantIds is also not provided or is empty, the image is rendered with a srcset including all variants by default.","type":"string"},"variantIds":{"description":"Optional IDs of specific variants to use in the srcset attribute. Should not be set together with variantId.","type":"array","items":{"type":"string"}}},"required":["type"]}]},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A text field for users to save notes related to a lesson (for courses).","type":"object","properties":{"type":{"const":"LessonNotesField"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label"]},{"description":"A link.","type":"object","properties":{"type":{"const":"Link"},"linkStyle":{"description":"Controls the visual style of the link.","type":"string","enum":["Text","Button"]},"protocol":{"description":"Adds the specified protocol prefix to the href attribute's value.","type":"string","enum":["mailto","tel","sms"]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"target":{"type":"string","enum":["_blank","_self","_parent","_top"]},"to":{"description":"The URL that the link points to. A router link will be rendered for a path without a host (using the History API). A regular link will be rendered for a full URL.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"enum":["IncrementQueryParameter","DecrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a map. The focus property is the place to display. It can be the name of a location (the way it appears on Google Maps), an address, or a place ID with the prefix 'place_id:'.","type":"object","properties":{"type":{"const":"Map"},"focus":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":["string","null"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component for a user to move between sequence stages.","type":"object","properties":{"type":{"const":"MoveUserPlan"},"nextButtonLabel":{"type":"string"},"previousButtonLabel":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A view for viewing all the orgs under a subscription, including all the users of each org and their training progress.","type":"object","properties":{"type":{"const":"MultiOrgView"},"orgLabelPlural":{"type":"string"},"orgLabelSingular":{"type":"string"},"showManageOrgs":{"type":"boolean"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressSequenceIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"MultipleChoiceInput"},"answerIndex":{"type":"number"},"choices":{"type":"array","items":{"type":"string"}},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"MultiSelectInput"},"answerIndices":{"type":"array","items":{"type":"number"}},"choices":{"type":"array","items":{"type":"string"}},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"NumberInput"},"format":{"type":"string","enum":["Number","Currency","Integer"]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxDecimalDigits":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"An order form for checking out for a subscription.","type":"object","properties":{"type":{"const":"OrderForm"},"checkoutOptions":{"description":"The products to display in the form. Each product may optionally have a condition that needs to evaluate to true for the product to be displayed.","type":"array","items":{"type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBoolean"},"subscriptionPlanId":{"type":"string"}},"required":["subscriptionPlanId"]}},"enablePhoneNumber":{"description":"Whether to enable a phone number input field. Defaults to true.","type":"boolean"},"enablePromoCode":{"description":"Whether to enable a promo code input field. If set to Stripe, only Stripe promo codes are allowed. If set to Custom, only custom promo codes are allowed. Defaults to none.","type":"string","enum":["Stripe","Custom"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Org billing settings dashboard.","type":"object","properties":{"type":{"const":"OrgBillingSettings"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Shows the pages of an org site and allows authorized users to activate and edit pages.","type":"object","properties":{"type":{"const":"OrgSitePages"},"defaultPageTemplatePreviewImageUrl":{"type":"string"},"pageTemplates":{"type":"object","properties":{"filter":{"type":"string","enum":["include","exclude"]},"ids":{"type":"array","items":{"type":"string"}}},"required":["filter","ids"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Organization site reviews component.","type":"object","properties":{"type":{"const":"OrgSiteReviews"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Organization team/members dashboard.","type":"object","properties":{"type":{"const":"OrganizationTeam"},"defaultRole":{"description":"The default role to assign to new members when adding them.","type":"string"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type"]},{"description":"Represents the current page when rendered inside a layout.","type":"object","properties":{"type":{"const":"Page"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"PlainText"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The HTML tag to use for the element. Defaults to span.","type":"string","enum":["code","div","h1","h2","h3","h4","h5","h6","label","legend","li","p","span"]},"text":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Popover"},"hideTriggers":{"description":"A list of events that will trigger the popover to be hidden.","type":"array","items":{"$ref":"#/$defs/trigger"}},"showTriggers":{"description":"A list of events that will trigger the popover to be shown.","type":"array","items":{"$ref":"#/$defs/trigger"}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"Ensures that a user is signed in and belongs to an org that has access to the specified product item in an active subscription. Otherwise, the component shows a default message, a custom children, or nothing, depending on how it is configured. The styling applies only to the default message.","type":"object","properties":{"type":{"const":"ProductItemGuard"},"accessDeniedMode":{"description":"The default accessDeniedMode is DefaultMessage. A custom message is defined through children with an AccessDenied slot key.","type":"string","enum":["CustomMessage","DefaultMessage","Empty"]},"productItem":{"description":"The product item to require. If not set, this component does not require anything and displays its children.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"ProvideProps"},"props":{"type":"array","items":{"type":"object","properties":{"name":{"description":"The name of the prop to provide.","type":"string"},"source":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Number"},"value":{"type":"number"}},"required":["type","value"]},{"type":"object","properties":{"type":{"const":"String"},"value":{"type":"string"}},"required":["type","value"]}]}},"required":["type","value"]},{"description":"The output is a function of the input using one of the built-in format functions.","type":"object","properties":{"type":{"const":"Transform"},"format":{"type":"string","enum":["Phone number (###) ###-####","Phone number ###-###-####","U.S. State abbreviation spelled out"]},"inputPropName":{"description":"Used only in transform mode.","type":"string"}},"required":["type"]},{"description":"Produce the output prop from the LiquidJS template.","type":"object","properties":{"type":{"const":"Template"},"template":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"CustomField"},"fieldName":{"type":"string"},"object":{"description":"The object from which to read the specified field. For a page template being previewed, when the object is 'Page' the custom fields are taken instead from the page template.","type":"string","enum":["Site","Page","User"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["name","source"]}},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that queries data and provides it as props to its children. Supports pagination and provides metadata about the query results.","type":"object","properties":{"type":{"const":"Query"},"pageLimitSource":{"description":"The source of the page limit. Defaults to a Direct value of 20.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"number"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]}]},"pageNumberSource":{"description":"The source of the page number. Defaults to QueryParameter 'page'. Pagination is 1-based (i.e., the first page is page 1).","anyOf":[{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"props":{"description":"Configuration for the props that will be provided to children components.","type":"object","properties":{"items":{"description":"The prop name for the array of items returned by the query. Defaults to 'items'.","type":"string"},"currentPage":{"description":"The prop name for the current page number. Defaults to 'currentPage'.","type":"string"},"hasNextPage":{"description":"The prop name for whether there is a next page. Defaults to 'hasNextPage'.","type":"string"},"hasPreviousPage":{"description":"The prop name for whether there is a previous page. Defaults to 'hasPreviousPage'.","type":"string"},"pageLimit":{"description":"The prop name for the actual number of items per page (returned by the server). Defaults to 'pageLimit'.","type":"string"},"totalItemsCount":{"description":"The prop name for the total number of items matching the filter. Defaults to 'totalItemsCount'.","type":"string"},"totalPagesCount":{"description":"The prop name for the total number of pages. Defaults to 'totalPagesCount'.","type":"string"}}},"slot":{"$ref":"#/$defs/slot"},"source":{"description":"The data source configuration for the query.","anyOf":[{"description":"Fetch pages matching a set of filter conditions. Only published pages are included. Each element will be an object with the following properties: 'id', 'path', 'title', 'publishedAt', 'props'. The 'props' property will be the parsed page props.","type":"object","properties":{"type":{"const":"Pages"},"filter":{"description":"The filter to apply to select pages.","type":"object","properties":{"pathPrefix":{"description":"The path prefix to require for pages. Defaults to all paths.","type":"string"},"props":{"description":"A set of props to filter by. The prop values must be strings.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]}}}}},"required":["type"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"RadioGroupInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a bubble icon, and its children are rendered inside a label that refers to the radio input element. For cards, there is default styling with each item's border color indicating whether it is the one selected. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"itemsContainerStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A radio item within a radio group input.","type":"object","properties":{"type":{"const":"RadioGroupInputItem"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that dynamically loads a remote React component with custom code from an extension.","type":"object","properties":{"type":{"const":"RemoteComponent"},"componentName":{"description":"The name of the component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"extensionName":{"description":"The name of the extension that contains the remote component.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","componentName","extensionName"]},{"description":"A component that repeats a set of children for each item of an array or property of an object. Children are rendered with a prop for the current item. The key prop is the index for array items and the property name for objects. There is no wrapping element for children.","type":"object","properties":{"type":{"const":"Repeater"},"itemPropName":{"description":"The name of the prop for the current item. This is the array element for an array source, or the value of a property for an object source. Defaults to 'item'.","type":"string"},"keyPropName":{"description":"The name of the prop for the index or key of the current item. Defaults to 'key'.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"source":{"description":"The data to iterate over. Needs to evaluate to an array or an object.","anyOf":[{"description":"Use a prop as the data source.","type":"object","properties":{"type":{"const":"Prop"},"name":{"description":"The name of the prop providing the array or object.","type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"An input component that can include multiple input components and other components, allowing an array of records to be entered.","type":"object","properties":{"type":{"const":"RepeatingGroupInput"},"name":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","name"]},{"description":"A component to request password reset.","type":"object","properties":{"type":{"const":"RequestPasswordReset"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component to reset a password.","type":"object","properties":{"type":{"const":"ResetPassword"},"mode":{"type":"string","enum":["create","reset"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Displays a review form with 1-5 stars and redirects to the configured Google Place if the user clicks 5 stars.","type":"object","properties":{"type":{"const":"Review"},"googlePlace":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":["string","null"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"reviewFieldPlaceholder":{"type":"string"},"selectStarsLabel":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"SignInGuard"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site logo.","type":"object","properties":{"type":{"const":"SiteLogo"},"alt":{"description":"Alternative text for the logo, defaults to the site name","type":"string"},"fallbackSiteName":{"description":"Whether to display the site name if the logo is not available","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site privacy policy.","type":"object","properties":{"type":{"const":"SitePrivacyPolicy"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site terms of use.","type":"object","properties":{"type":{"const":"SiteTermsOfUse"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A stage in a sequence.","type":"object","properties":{"type":{"const":"Stage"},"enableWrappedStageBody":{"description":"Whether to enable the wrapped stage body","type":"boolean"},"sequenceId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"The body of a stage in a sequence.","type":"object","properties":{"type":{"const":"StageBody"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the name of a stage.","type":"object","properties":{"type":{"const":"StageName"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays rich text. The content property should be an object with a delta property set to a Quill Delta object.","type":"object","properties":{"type":{"const":"Text"},"content":{"title":"RichText","anyOf":[{"title":"Delta","type":"object","properties":{"delta":{"type":"object","properties":{"ops":{"type":"array","items":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true},"insert":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]}},"required":["insert"]}}},"required":["ops"]}},"required":["delta"]}]},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"TextInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"format":{"description":"Validation format for the input","type":"string","enum":["None","Email","Phone","Url"]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"TextareaInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"Theme"},"appearance":{"type":"string","enum":["light","dark","inherit"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that embeds a Typeform.","type":"object","properties":{"type":{"const":"Typeform"},"formId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a user profile.","type":"object","properties":{"type":{"const":"UserProfile"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Requires that a user be signed in and have a verified email address. Otherwise displays either a message that you need to be signed in or a message and a button to send a verification email.","type":"object","properties":{"type":{"const":"VerifiedEmailAddressGuard"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"Reads a URL query parameter that contains a unique token for verifying a user’s email address and makes an API request to mark the email address as verified. If the token is valid, it displays a message that the email address has been verified. Otherwise, it displays an error message. In either case, at the bottom it displays a 'Go to {siteName}' link that navigates to the home page.","type":"object","properties":{"type":{"const":"VerifyEmailAddress"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a video.","type":"object","properties":{"type":{"const":"Video"},"autoPlay":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"controls":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"loop":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"muted":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"playsInline":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"poster":{"description":"The URL of an image to display while the video is loading. Applicable only when tag is 'video'.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"src":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The way to render the video. Defaults to iframe.","type":"string","enum":["iframe","video"]}},"additionalProperties":false,"required":["type"]},{"description":"A button that opens a dialog that displays the stages of a sequence and allows the user to move to another stage.","type":"object","properties":{"type":{"const":"ViewPlanStagesButton"},"dialogHeader":{"type":"string"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageTitle","SiteName"]}},"required":["type"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"slot":{"$ref":"#/$defs/slot"},"stageNameTableHeader":{"type":"string"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label"]},{"description":"A div element that sets the max-width property to a specified width (defaults to 1200px). The default alignment is Center. An additional div is rendered to wrap the children to set alignment. That inner div (the direct parent element of children) cannot be styled. Only the WidthContainerComponent's outer element gets the styles, if any.","type":"object","properties":{"type":{"const":"WidthContainer"},"align":{"$ref":"#/$defs/align"},"elementId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"width":{"$ref":"#/$defs/width"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]}]}`);
26857
+ const items$1 = /* @__PURE__ */ JSON.parse(`{"anyOf":[{"description":"An element for wrapping children elements.","type":"object","properties":{"type":{"const":"Box"},"elementId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The HTML tag to use for the element. Defaults to div.","type":"string","enum":["article","aside","blockquote","code","div","fieldset","footer","h1","h2","h3","h4","h5","h6","header","label","legend","li","main","nav","ol","p","pre","section","span","ul"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Button"},"onClick":{"description":"Defaults to submitForm.","anyOf":[{"type":"object","properties":{"type":{"const":"emitEvent"},"eventType":{"description":"A string representing a custom event type, to reference in other components that listen for events.","type":"string"}},"required":["type","eventType"]},{"type":"object","properties":{"type":{"type":"string","enum":["goBack","goBackFormStep","removeRepeatingGroupInputItem","resetForm","submitForm"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["decrementQueryParameter","incrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"An embedded Calendly scheduling widget.","type":"object","properties":{"type":{"const":"CalendlyEmbed"},"queryParameters":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A random unique string for identification.","type":"string"},"parameter":{"type":"string"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["id","parameter","value"]}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"url":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"additionalProperties":false,"required":["type"]},{"description":"A group of checkboxes for selecting one or more options, represented as an array of strings in form data.","type":"object","properties":{"type":{"const":"CheckboxGroupInput"},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a checkbox icon, and its children are rendered inside a label that refers to the checkbox input element. For cards, there is default styling with each item's border color indicating whether it is checked. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"itemsContainerStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"showIndicators":{"description":"Whether to show indicators for each item. Applies only if displayType is indicators. Defaults to true.","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A checkbox item within a checkbox group input.","type":"object","properties":{"type":{"const":"CheckboxGroupInputItem"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A standalone checkbox. Represented as either a boolean or a string in form data. If value is set to a string and is not an empty string, it is used as the value for the input when the box is checked. Otherwise, a boolean is set as the value when the box is checked or unchecked.","type":"object","properties":{"type":{"const":"CheckboxInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A panel that can be collapsed or expanded.","type":"object","properties":{"type":{"const":"CollapsiblePanel"},"header":{"description":"The text displayed in the clickable header.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"triggerButtonStyles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"CompletableVideoInput"},"collapseCompleted":{"description":"By default, collapseCompleted is false.","type":"boolean"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"boolean"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"initiallyCollapsed":{"description":"Default initialCollapsed is false.","type":"boolean"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"showHeader":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"src":{"type":"string"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"ConditionalLogic"},"condition":{"$ref":"#/$defs/expressionBoolean"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Course"},"courseId":{"description":"If set, a Course is used instead of the legacy Plan.","type":"string"},"emptyNotesMessage":{"type":"string"},"enableNotes":{"type":"boolean"},"planId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Displays the current year.","type":"object","properties":{"type":{"const":"CurrentYear"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A custom component (a saved fragment of components).","type":"object","properties":{"type":{"const":"CustomComponent"},"customComponentId":{"description":"The ID of the custom component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type","customComponentId"]},{"description":"A dashboard layout with a header, sidebar, and main content area.","type":"object","properties":{"type":{"const":"Dashboard"},"collapseSidebarOnPaths":{"description":"An array of path patterns as globs. If set, the sidebar will automatically be collapsed on matching paths.","type":"array","items":{"type":"string"}},"extraNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"mainNavItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"DateInput"},"clearable":{"type":"boolean"},"dayPlaceholder":{"type":"string"},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maximumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"minimumDate":{"anyOf":[{"type":"object","properties":{"type":{"const":"today"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"date"},"value":{"type":"string"}},"required":["type","value"]}]},"monthPlaceholder":{"type":"string"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"style":{"type":"string","enum":["Calendar","3Fields"]},"styles":{"$ref":"#/$defs/styles"},"yearPlaceholder":{"type":"string"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"Dialog"},"closeOnBackdropClick":{"description":"Whether the dialog can be closed by clicking the backdrop. Defaults to true.","type":"boolean"},"hideTriggers":{"description":"A list of events that will trigger the dialog to be hidden.","type":"array","items":{"$ref":"#/$defs/trigger"}},"showTriggers":{"description":"A list of events that will trigger the dialog to be shown.","type":"array","items":{"$ref":"#/$defs/trigger"}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a document that can be downloaded.","type":"object","properties":{"type":{"const":"Document"},"documentId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"DropdownInput"},"clearable":{"description":"Clearable is ignored if the input is required. When the input is not required, it may or may not be clearable. The default is false.","type":"boolean"},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"options":{"description":"The options to show. Each string is both the label displayed and the value.","type":"array","items":{"type":"string"}},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name","options"]},{"type":"object","properties":{"type":{"const":"Form"},"formId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Represents the current step in a multi-step form.","type":"object","properties":{"type":{"const":"FormStep"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A map with a search field that lets you select a Place in Google Maps.","type":"object","properties":{"type":{"const":"GooglePlaceInput"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","name"]},{"description":"A header component with navigation items and a slot for other components. Children components must have either the LeftContent or RightContent slot property set to be rendered. No default styling is applied to children. Notice that children for either the left or right need to be enabled explicitly on mobile screens (up to 767px wide) with the showLeftContentOnMobile or showRightContentOnMobile properties. The navAlign property specifies the alignment of the navigation items element: if Center, then the nav is centered; if Left, then the nav is on the left but immediately to the right of the children with the LeftContent slot, if any; if Right, then the nav is on the right but immediately to the left of the children with the RightContent slot, if any.","type":"object","properties":{"type":{"const":"Header"},"contentMaxWidth":{"$ref":"#/$defs/width"},"navAlign":{"$ref":"#/$defs/align"},"navItems":{"type":"array","items":{"$ref":"#/$defs/componentNavItem"}},"showLeftContentOnMobile":{"description":"If true, the left content is shown on mobile. Defaults to false.","type":"boolean"},"showRightContentOnMobile":{"description":"If true, the right content is shown on mobile. Defaults to false.","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"sticky":{"description":"If true, the header is sticky upon scrolling. Defaults to false.","type":"boolean"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A portal for help tickets.","type":"object","properties":{"type":{"const":"HelpTicketsPortal"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that renders raw HTML.","type":"object","properties":{"type":{"const":"HTML"},"html":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Icon"},"alt":{"description":"The alternative text for the icon. This should be provided only for icons that serve some purpose on their own other than decoration. Decorative icons should omit alt text to avoid unnecessary screen reader announcements.","type":"string"},"ariaHidden":{"description":"If true, the icon is hidden from the accessibility tree. This should be set to true for purely decorative icons.","type":"boolean"},"icon":{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"MaterialSymbols"},"value":{"type":"object","properties":{"fill":{"description":"If true, the icon's filled variant is used. Defaults to false.","type":"boolean"},"name":{"description":"The name of the icon. Must be one of the defined Material Symbols.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"opticalSize":{"description":"The optical size of the icon, for optimizing the appearance at different sizes. For icons rendered at 34px width or smaller, use 20. For icons rendered at bigger than 34px width, use 48. This is also the default width and height of the icon in pixels. Can be used together with CSS width and height properties. Defaults to 20.","type":"number","enum":[20,48]},"style":{"description":"The style of the icon. The outlined style is a sort of hybrid of rounded and sharp, and depending on the icon it may look exactly the same as either the rounded or sharp style. Defaults to outlined.","type":"string","enum":["outlined","rounded","sharp"]},"weight":{"description":"The weight of the icon. Similar to font-weight in that 200 is lighter and 600 is heavier. Defaults to 400.","type":"number","enum":[200,400,600]}}}},"required":["type"]}]}},"required":["type"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays an infinite scrolling carousel of images.","type":"object","properties":{"type":{"const":"ImageCarousel"},"animationSpeed":{"description":"The speed of the scrolling animation. Defaults to Medium.","type":"string","enum":["Slow","Medium","Fast"]},"gapPx":{"description":"The gap between images in pixels. Defaults to 48.","type":"number"},"images":{"description":"The images to display in the carousel.","type":"array","items":{"type":"object","properties":{"alt":{"type":"string"},"src":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"type":"string"}},"required":["type","assetId","variantId"]}]}},"required":[]}},"imageWidthPx":{"description":"The width of each image in pixels. Defaults to 240.","type":"number"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays an image.","type":"object","properties":{"type":{"const":"Image"},"alt":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"src":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PageFeaturedImage","SiteLogo"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Asset"},"assetId":{"type":"string"},"variantId":{"type":"string"}},"required":["type","assetId","variantId"]}]},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A text field for users to save notes related to a lesson (for courses).","type":"object","properties":{"type":{"const":"LessonNotesField"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label"]},{"description":"A link.","type":"object","properties":{"type":{"const":"Link"},"linkStyle":{"description":"Controls the visual style of the link.","type":"string","enum":["Text","Button"]},"protocol":{"description":"Adds the specified protocol prefix to the href attribute's value.","type":"string","enum":["mailto","tel","sms"]},"size":{"description":"Controls the size of the button. Options are: '1' (12px font size), '2' (default, 14px font size), '3' (16px font size), and '4' (18px font size).","type":"string","enum":["1","2","3","4"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"target":{"type":"string","enum":["_blank","_self","_parent","_top"]},"to":{"description":"The URL that the link points to. A router link will be rendered for a path without a host (using the History API). A regular link will be rendered for a full URL.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"enum":["IncrementQueryParameter","DecrementQueryParameter"]},"defaultValue":{"type":"number"},"parameter":{"type":"string"}},"required":["type","defaultValue","parameter"]}]},"variant":{"description":"Controls the visual style of the button. Options are: 'solid' (default, filled background), 'soft' (lighter background, --accent-a11 text), 'surface' (subtle background, solid border, --accent-a11 text), 'outline' (transparent background, solid border, --accent-a11 text), and 'ghost' (no background, no border, --accent-a11 text, behaves like text in layout with negative margins).","type":"string","enum":["solid","soft","surface","outline","ghost"]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a map. The focus property is the place to display. It can be the name of a location (the way it appears on Google Maps), an address, or a place ID with the prefix 'place_id:'.","type":"object","properties":{"type":{"const":"Map"},"focus":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":["string","null"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component for a user to move between sequence stages.","type":"object","properties":{"type":{"const":"MoveUserPlan"},"nextButtonLabel":{"type":"string"},"previousButtonLabel":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A view for viewing all the orgs under a subscription, including all the users of each org and their training progress.","type":"object","properties":{"type":{"const":"MultiOrgView"},"orgLabelPlural":{"type":"string"},"orgLabelSingular":{"type":"string"},"productIds":{"type":"array","items":{"type":"string"}},"showManageOrgs":{"type":"boolean"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressSequenceIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"MultipleChoiceInput"},"answerIndex":{"type":"number"},"choices":{"type":"array","items":{"type":"string"}},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"MultiSelectInput"},"answerIndices":{"type":"array","items":{"type":"number"}},"choices":{"type":"array","items":{"type":"string"}},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"question":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"NumberInput"},"format":{"type":"string","enum":["Number","Currency","Integer"]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxDecimalDigits":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"An order form for checking out for a subscription.","type":"object","properties":{"type":{"const":"OrderForm"},"checkoutOptions":{"description":"The products to display in the form. Each product may optionally have a condition that needs to evaluate to true for the product to be displayed.","type":"array","items":{"type":"object","properties":{"condition":{"$ref":"#/$defs/expressionBoolean"},"subscriptionPlanId":{"type":"string"}},"required":["subscriptionPlanId"]}},"enablePhoneNumber":{"description":"Whether to enable a phone number input field. Defaults to true.","type":"boolean"},"enablePromoCode":{"description":"Whether to enable a promo code input field. If set to Stripe, only Stripe promo codes are allowed. If set to Custom, only custom promo codes are allowed. Defaults to none.","type":"string","enum":["Stripe","Custom"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Org billing settings dashboard.","type":"object","properties":{"type":{"const":"OrgBillingSettings"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Shows the pages of an org site and allows authorized users to activate and edit pages.","type":"object","properties":{"type":{"const":"OrgSitePages"},"defaultPageTemplatePreviewImageUrl":{"type":"string"},"pageTemplates":{"type":"object","properties":{"filter":{"type":"string","enum":["include","exclude"]},"ids":{"type":"array","items":{"type":"string"}}},"required":["filter","ids"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Organization site reviews component.","type":"object","properties":{"type":{"const":"OrgSiteReviews"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Organization team/members dashboard.","type":"object","properties":{"type":{"const":"OrganizationTeam"},"defaultRole":{"description":"The default role to assign to new members when adding them.","type":"string"},"showUserTrainingProgress":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"userTrainingProgressContentPlanIds":{"type":"array","items":{"type":"string"}},"userTrainingProgressCourseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["type"]},{"description":"Represents the current page when rendered inside a layout.","type":"object","properties":{"type":{"const":"Page"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"PlainText"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The HTML tag to use for the element. Defaults to span.","type":"string","enum":["code","div","h1","h2","h3","h4","h5","h6","label","legend","li","p","span"]},"text":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PagePublishedAt","PageTitle","SiteName"]}},"required":["type"]}]}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"Popover"},"hideTriggers":{"description":"A list of events that will trigger the popover to be hidden.","type":"array","items":{"$ref":"#/$defs/trigger"}},"showTriggers":{"description":"A list of events that will trigger the popover to be shown.","type":"array","items":{"$ref":"#/$defs/trigger"}},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"Ensures that a user is signed in and belongs to an org that has access to the specified product item in an active subscription. Otherwise, the component shows a default message, a custom children, or nothing, depending on how it is configured. The styling applies only to the default message.","type":"object","properties":{"type":{"const":"ProductItemGuard"},"accessDeniedMode":{"description":"The default accessDeniedMode is DefaultMessage. A custom message is defined through children with an AccessDenied slot key.","type":"string","enum":["CustomMessage","DefaultMessage","Empty"]},"productItem":{"description":"The product item to require. If not set, this component does not require anything and displays its children.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"ProvideProps"},"props":{"type":"array","items":{"type":"object","properties":{"name":{"description":"The name of the prop to provide.","type":"string"},"source":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Number"},"value":{"type":"number"}},"required":["type","value"]},{"type":"object","properties":{"type":{"const":"String"},"value":{"type":"string"}},"required":["type","value"]}]}},"required":["type","value"]},{"description":"The output is a function of the input using one of the built-in format functions.","type":"object","properties":{"type":{"const":"Transform"},"format":{"type":"string","enum":["Phone number (###) ###-####","Phone number ###-###-####","U.S. State abbreviation spelled out"]},"inputPropName":{"description":"Used only in transform mode.","type":"string"}},"required":["type"]},{"description":"Produce the output prop from the LiquidJS template.","type":"object","properties":{"type":{"const":"Template"},"template":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"CustomField"},"fieldName":{"type":"string"},"object":{"description":"The object from which to read the specified field. For a page template being previewed, when the object is 'Page' the custom fields are taken instead from the page template.","type":"string","enum":["Site","Page","User"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]}},"required":["name","source"]}},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that queries data and provides it as props to its children. Supports pagination and provides metadata about the query results.","type":"object","properties":{"type":{"const":"Query"},"pageLimitSource":{"description":"The source of the page limit. Defaults to a Direct value of 20.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"number"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]}]},"pageNumberSource":{"description":"The source of the page number. Defaults to QueryParameter 'page'. Pagination is 1-based (i.e., the first page is page 1).","anyOf":[{"type":"object","properties":{"type":{"const":"QueryParameter"},"parameter":{"type":"string"}},"required":["type","parameter"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"props":{"description":"Configuration for the props that will be provided to children components.","type":"object","properties":{"items":{"description":"The prop name for the array of items returned by the query. Defaults to 'items'.","type":"string"},"currentPage":{"description":"The prop name for the current page number. Defaults to 'currentPage'.","type":"string"},"hasNextPage":{"description":"The prop name for whether there is a next page. Defaults to 'hasNextPage'.","type":"string"},"hasPreviousPage":{"description":"The prop name for whether there is a previous page. Defaults to 'hasPreviousPage'.","type":"string"},"pageLimit":{"description":"The prop name for the actual number of items per page (returned by the server). Defaults to 'pageLimit'.","type":"string"},"totalItemsCount":{"description":"The prop name for the total number of items matching the filter. Defaults to 'totalItemsCount'.","type":"string"},"totalPagesCount":{"description":"The prop name for the total number of pages. Defaults to 'totalPagesCount'.","type":"string"}}},"slot":{"$ref":"#/$defs/slot"},"source":{"description":"The data source configuration for the query.","anyOf":[{"description":"Fetch pages matching a set of filter conditions. Only published pages are included. Each element will be an object with the following properties: 'id', 'path', 'title', 'publishedAt', 'props'. The 'props' property will be the parsed page props.","type":"object","properties":{"type":{"const":"Pages"},"filter":{"description":"The filter to apply to select pages.","type":"object","properties":{"pathPrefix":{"description":"The path prefix to require for pages. Defaults to all paths.","type":"string"},"props":{"description":"Filters to apply based on page props. Multiple filters are combined with AND logic.","type":"array","items":{"type":"object","properties":{"operator":{"description":"The comparison operator. Defaults to 'Equals'. 'Contains' and 'StartsWith' are only valid for string values.","enum":["Equals","NotEquals","Contains","StartsWith","Exists","NotExists"]},"path":{"description":"The dot-notation path to the prop (e.g., 'category' or 'author.name').","type":"string"},"value":{"description":"The value to compare against. Required for Equals, NotEquals, Contains, and StartsWith operators. Ignored for Exists and NotExists.","type":"object","properties":{"type":{"const":"Direct"},"value":{"oneOf":[{"type":"string"},{"type":"boolean"}]}},"required":["type","value"]}},"required":["operator","path","value"]}}}}},"required":["type"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"RadioGroupInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"displayType":{"description":"The style to use for items. For indicators, each item is rendered with a bubble icon, and its children are rendered inside a label that refers to the radio input element. For cards, there is default styling with each item's border color indicating whether it is the one selected. Defaults to indicators.","type":"string","enum":["indicators","cards"]},"itemsContainerStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"name":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","label","name"]},{"description":"A radio item within a radio group input.","type":"object","properties":{"type":{"const":"RadioGroupInputItem"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"value":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that dynamically loads a remote React component with custom code from an extension.","type":"object","properties":{"type":{"const":"RemoteComponent"},"componentName":{"description":"The name of the component to display.","type":"string"},"customProps":{"$ref":"#/$defs/contextData"},"extensionName":{"description":"The name of the extension that contains the remote component.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","componentName","extensionName"]},{"description":"A component that repeats a set of children for each item of an array or property of an object. Children are rendered with a prop for the current item. The key prop is the index for array items and the property name for objects. There is no wrapping element for children.","type":"object","properties":{"type":{"const":"Repeater"},"itemPropName":{"description":"The name of the prop for the current item. This is the array element for an array source, or the value of a property for an object source. Defaults to 'item'.","type":"string"},"keyPropName":{"description":"The name of the prop for the index or key of the current item. Defaults to 'key'.","type":"string"},"slot":{"$ref":"#/$defs/slot"},"source":{"description":"The data to iterate over. Needs to evaluate to an array or an object.","anyOf":[{"description":"Use a prop as the data source.","type":"object","properties":{"type":{"const":"Prop"},"name":{"description":"The name of the prop providing the array or object.","type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"An input component that can include multiple input components and other components, allowing an array of records to be entered.","type":"object","properties":{"type":{"const":"RepeatingGroupInput"},"name":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type","name"]},{"description":"A component to request password reset.","type":"object","properties":{"type":{"const":"RequestPasswordReset"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component to reset a password.","type":"object","properties":{"type":{"const":"ResetPassword"},"mode":{"type":"string","enum":["create","reset"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Displays a review form with 1-5 stars and redirects to the configured Google Place if the user clicks 5 stars.","type":"object","properties":{"type":{"const":"Review"},"googlePlace":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":["string","null"]}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"reviewFieldPlaceholder":{"type":"string"},"selectStarsLabel":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"SignInGuard"},"slot":{"$ref":"#/$defs/slot"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site logo.","type":"object","properties":{"type":{"const":"SiteLogo"},"alt":{"description":"Alternative text for the logo, defaults to the site name","type":"string"},"fallbackSiteName":{"description":"Whether to display the site name if the logo is not available","type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site privacy policy.","type":"object","properties":{"type":{"const":"SitePrivacyPolicy"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the site terms of use.","type":"object","properties":{"type":{"const":"SiteTermsOfUse"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A stage in a sequence.","type":"object","properties":{"type":{"const":"Stage"},"enableWrappedStageBody":{"description":"Whether to enable the wrapped stage body","type":"boolean"},"sequenceId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"The body of a stage in a sequence.","type":"object","properties":{"type":{"const":"StageBody"},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays the name of a stage.","type":"object","properties":{"type":{"const":"StageName"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays rich text. The content property should be an object with a delta property set to a Quill Delta object.","type":"object","properties":{"type":{"const":"Text"},"content":{"title":"RichText","anyOf":[{"title":"Delta","type":"object","properties":{"delta":{"type":"object","properties":{"ops":{"type":"array","items":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true},"insert":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]}},"required":["insert"]}}},"required":["ops"]}},"required":["delta"]}]},"slot":{"$ref":"#/$defs/slot"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"type":{"const":"TextInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"format":{"description":"Validation format for the input","type":"string","enum":["None","Email","Phone","Url"]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"TextareaInput"},"defaultValue":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"inputElementStyles":{"$ref":"#/$defs/styles"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"maxLength":{"type":"number"},"name":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label","name"]},{"type":"object","properties":{"type":{"const":"Theme"},"appearance":{"type":"string","enum":["light","dark","inherit"]},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"A component that embeds a Typeform.","type":"object","properties":{"type":{"const":"Typeform"},"formId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a user profile.","type":"object","properties":{"type":{"const":"UserProfile"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"Requires that a user be signed in and have a verified email address. Otherwise displays either a message that you need to be signed in or a message and a button to send a verification email.","type":"object","properties":{"type":{"const":"VerifiedEmailAddressGuard"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]},{"description":"Reads a URL query parameter that contains a unique token for verifying a user’s email address and makes an API request to mark the email address as verified. If the token is valid, it displays a message that the email address has been verified. Otherwise, it displays an error message. In either case, at the bottom it displays a 'Go to {siteName}' link that navigates to the home page.","type":"object","properties":{"type":{"const":"VerifyEmailAddress"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type"]},{"description":"A component that displays a video.","type":"object","properties":{"type":{"const":"Video"},"autoPlay":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"controls":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"loop":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"muted":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"playsInline":{"description":"Applicable only when tag is 'video'.","type":"boolean"},"poster":{"description":"The URL of an image to display while the video is loading. Applicable only when tag is 'video'.","anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"slot":{"$ref":"#/$defs/slot"},"src":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"styles":{"$ref":"#/$defs/styles"},"tag":{"description":"The way to render the video. Defaults to iframe.","type":"string","enum":["iframe","video"]}},"additionalProperties":false,"required":["type"]},{"description":"A button that opens a dialog that displays the stages of a sequence and allows the user to move to another stage.","type":"object","properties":{"type":{"const":"ViewPlanStagesButton"},"dialogHeader":{"type":"string"},"label":{"anyOf":[{"type":"object","properties":{"type":{"const":"Direct"},"value":{"type":"string"}},"required":["type"]},{"type":"object","properties":{"type":{"const":"Prop"},"name":{"type":"string"}},"required":["type","name"]}]},"labelStyles":{"$ref":"#/$defs/styles"},"slot":{"$ref":"#/$defs/slot"},"stageNameTableHeader":{"type":"string"},"styles":{"$ref":"#/$defs/styles"}},"additionalProperties":false,"required":["type","label"]},{"description":"A div element that sets the max-width property to a specified width (defaults to 1200px). The default alignment is Center. An additional div is rendered to wrap the children to set alignment. That inner div (the direct parent element of children) cannot be styled. Only the WidthContainerComponent's outer element gets the styles, if any.","type":"object","properties":{"type":{"const":"WidthContainer"},"align":{"$ref":"#/$defs/align"},"elementId":{"type":"string"},"slot":{"$ref":"#/$defs/slot"},"styles":{"$ref":"#/$defs/styles"},"width":{"$ref":"#/$defs/width"},"children":{"$ref":"#"}},"additionalProperties":false,"required":["type"]}]}`);
26858
26858
  const $defs$5 = { "align": { "type": "string", "enum": ["Center", "Left", "Right"] }, "componentNavItem": { "type": "object", "properties": { "label": { "description": "The text to display in the nav item.", "type": "string" }, "openInNewTab": { "type": "boolean" }, "productItem": { "description": "If set, then only signed in users with access to the specified product item will see this nav item.", "type": ["string", "null"] }, "roles": { "description": "If set and not empty, then only signed in users with one of the specified roles will see this nav item.", "type": "array", "items": { "type": "string" } }, "subItems": { "type": "array", "items": { "type": "object", "properties": { "label": { "description": "The text to display in the nav item.", "type": "string" }, "openInNewTab": { "type": "boolean" }, "productItem": { "description": "If set, then only signed in users with access to the specified product item will see this nav item.", "type": ["string", "null"] }, "roles": { "description": "If set and not empty, then only signed in users with one of the specified roles will see this nav item.", "type": "array", "items": { "type": "string" } }, "url": { "description": "The URL to navigate to when the nav item is clicked. Can be an absolute path. Can also be an anchor link (e.g., #pricing).", "type": "string" } }, "required": ["label", "url"] } }, "url": { "description": "The URL to navigate to when the nav item is clicked. Can be an absolute path. Can also be an anchor link (e.g., #pricing).", "type": "string" } }, "required": ["label"] }, "contextData": { "title": "ContextData", "type": "object", "additionalProperties": { "anyOf": [{ "type": "boolean" }, { "type": "string" }, { "type": "number" }, { "type": "null" }, { "type": "array", "items": { "type": "object", "properties": { "data": { "$ref": "#/$defs/contextData" }, "id": { "type": "string" } }, "required": ["data", "id"] } }, { "type": "object", "properties": { "fileId": { "type": "string" } }, "required": ["fileId"] }, { "type": "array", "items": { "type": "string" } }] } }, "expression": { "title": "Expression", "anyOf": [{ "$ref": "#/$defs/expressionArray" }, { "$ref": "#/$defs/expressionBoolean" }, { "$ref": "#/$defs/expressionNumber" }, { "$ref": "#/$defs/expressionString" }] }, "expressionAll": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "condition": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "all" } }, "required": ["arrayExpression", "condition", "operator"] }, "expressionArray": { "anyOf": [{ "$ref": "#/$defs/expressionArrayLiteral" }, { "$ref": "#/$defs/expressionFilter" }, { "$ref": "#/$defs/expressionMap" }, { "$ref": "#/$defs/expressionUserProductItems" }, { "$ref": "#/$defs/expressionDynamicValue" }] }, "expressionArrayIncludes": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "operator": { "const": "arrayIncludes" }, "value": { "$ref": "#/$defs/expression" } }, "required": ["arrayExpression", "operator", "value"] }, "expressionArrayLiteral": { "type": "object", "properties": { "operator": { "const": "arrayLiteral" }, "value": { "type": "array", "items": { "$ref": "#/$defs/expression" } } }, "required": ["operator", "value"] }, "expressionBoolean": { "anyOf": [{ "$ref": "#/$defs/expressionAll" }, { "$ref": "#/$defs/expressionArrayIncludes" }, { "$ref": "#/$defs/expressionBoth" }, { "$ref": "#/$defs/expressionBooleanLiteral" }, { "$ref": "#/$defs/expressionEither" }, { "$ref": "#/$defs/expressionEquals" }, { "$ref": "#/$defs/expressionExists" }, { "$ref": "#/$defs/expressionGreaterThan" }, { "$ref": "#/$defs/expressionNot" }, { "$ref": "#/$defs/expressionSome" }, { "$ref": "#/$defs/expressionDynamicValue" }] }, "expressionBooleanLiteral": { "type": "object", "properties": { "operator": { "const": "booleanLiteral" }, "value": { "type": "boolean" } }, "required": ["operator", "value"] }, "expressionBoth": { "type": "object", "properties": { "left": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "both" }, "right": { "$ref": "#/$defs/expressionBoolean" } }, "required": ["left", "operator", "right"] }, "expressionCurrentTime": { "description": "A timestamp in milliseconds since epoch.", "type": "object", "properties": { "operator": { "const": "currentTime" } }, "required": ["operator"] }, "expressionDataValue": { "description": "Access a value from the data object. The source of the data depends on the context. For example, in a form the data object is the form data and the name is the name of the input component.", "type": "object", "properties": { "name": { "type": "string" }, "operator": { "const": "dataValue" } }, "required": ["name", "operator"] }, "expressionDynamicValue": { "anyOf": [{ "$ref": "#/$defs/expressionDataValue" }, { "$ref": "#/$defs/expressionProp" }] }, "expressionEither": { "type": "object", "properties": { "left": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "either" }, "right": { "$ref": "#/$defs/expressionBoolean" } }, "required": ["left", "operator", "right"] }, "expressionEquals": { "type": "object", "properties": { "left": { "$ref": "#/$defs/expression" }, "operator": { "const": "equals" }, "right": { "$ref": "#/$defs/expression" } }, "required": ["left", "operator", "right"] }, "expressionEventType": { "description": "Access the type set on an event. Applicable only in contexts where the expression deals with an event.", "type": "object", "properties": { "operator": { "const": "eventType" } }, "required": ["operator"] }, "expressionExists": { "type": "object", "properties": { "expression": { "$ref": "#/$defs/expression" }, "operator": { "const": "exists" } }, "required": ["expression", "operator"] }, "expressionFilter": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "filterExpression": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "filter" } }, "required": ["arrayExpression", "filterExpression", "operator"] }, "expressionGreaterThan": { "type": "object", "properties": { "left": { "$ref": "#/$defs/expressionNumber" }, "operator": { "const": "greaterThan" }, "right": { "$ref": "#/$defs/expressionNumber" } }, "required": ["left", "operator", "right"] }, "expressionLength": { "type": "object", "properties": { "operator": { "const": "length" }, "value": { "anyOf": [{ "$ref": "#/$defs/expressionArray" }, { "$ref": "#/$defs/expressionString" }] } }, "required": ["operator", "value"] }, "expressionMap": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "mapExpression": { "$ref": "#/$defs/expression" }, "operator": { "const": "map" } }, "required": ["arrayExpression", "mapExpression", "operator"] }, "expressionNot": { "type": "object", "properties": { "expression": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "not" } }, "required": ["expression", "operator"] }, "expressionNumber": { "anyOf": [{ "$ref": "#/$defs/expressionCurrentTime" }, { "$ref": "#/$defs/expressionLength" }, { "$ref": "#/$defs/expressionNumberLiteral" }, { "$ref": "#/$defs/expressionSum" }, { "$ref": "#/$defs/expressionSumArray" }, { "$ref": "#/$defs/expressionTimeLiteral" }, { "$ref": "#/$defs/expressionDynamicValue" }] }, "expressionNumberLiteral": { "type": "object", "properties": { "operator": { "const": "numberLiteral" }, "value": { "type": "number" } }, "required": ["operator", "value"] }, "expressionProp": { "description": "Access a value from props. Applicable only in contexts where the expression deals with props.", "type": "object", "properties": { "name": { "type": "string" }, "operator": { "const": "prop" } }, "required": ["name", "operator"] }, "expressionSome": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "condition": { "$ref": "#/$defs/expressionBoolean" }, "operator": { "const": "some" } }, "required": ["arrayExpression", "condition", "operator"] }, "expressionString": { "anyOf": [{ "$ref": "#/$defs/expressionEventType" }, { "$ref": "#/$defs/expressionStringLiteral" }, { "$ref": "#/$defs/expressionUserRole" }, { "$ref": "#/$defs/expressionDynamicValue" }] }, "expressionStringLiteral": { "type": "object", "properties": { "operator": { "const": "stringLiteral" }, "value": { "type": "string" } }, "required": ["operator", "value"] }, "expressionSum": { "type": "object", "properties": { "left": { "$ref": "#/$defs/expressionNumber" }, "operator": { "const": "sum" }, "right": { "$ref": "#/$defs/expressionNumber" } }, "required": ["left", "operator", "right"] }, "expressionSumArray": { "type": "object", "properties": { "arrayExpression": { "$ref": "#/$defs/expressionArray" }, "operator": { "const": "sumArray" } }, "required": ["arrayExpression", "operator"] }, "expressionTimeLiteral": { "description": "A timestamp in milliseconds since epoch.", "type": "object", "properties": { "operator": { "const": "timeLiteral" }, "value": { "type": "number" } }, "required": ["operator", "value"] }, "expressionUserProductItems": { "type": "object", "properties": { "operator": { "const": "userProductItems" } }, "required": ["operator"] }, "expressionUserRole": { "type": "object", "properties": { "operator": { "const": "userRole" } }, "required": ["operator"] }, "slot": { "type": "string", "enum": ["True", "False", "AccessAllowed", "AccessDenied", "LeftContent", "RightContent"] }, "styles": { "type": "array", "items": { "type": "object", "properties": { "condition": { "$ref": "#/$defs/expressionBoolean" }, "declarations": { "description": "A list of declarations, each a key-value pair with a colon separating the key and value. The key must be a CSS property or a custom property.", "type": "array", "items": { "type": "string" } }, "minWidth": { "description": "Optional min-width media query for this rule. If not set, the rule applies to all widths.", "type": "string", "enum": ["sm", "md", "lg", "xl", "xxl"] }, "states": { "description": "Optional pseudo-classes for this rule to apply to. Multiple classes are combined (e.g., ':hover:last-child').", "type": "array", "items": { "type": "string", "enum": ["active", "disabled", "first-child", "focus", "focus-visible", "focus-within", "hover", "last-child", "only-child"] } } }, "required": ["declarations"] } }, "trigger": { "description": "A specification for an event that will trigger some action. The condition property is an expression that, if set, needs to evaluate to true for the trigger to apply.", "type": "object", "properties": { "condition": { "$ref": "#/$defs/expressionBoolean" }, "eventType": { "description": "The expected event type for the trigger to apply.", "type": "string" } }, "required": ["eventType"] }, "width": { "type": "string", "enum": ["400px", "500px", "600px", "800px", "1000px", "1200px", "1400px", "1600px"] } };
26859
26859
  const strippedComponentsSchema = {
26860
26860
  type: type$b,
@@ -65713,16 +65713,17 @@ const createExtensionVersion = async (opts, env2) => {
65713
65713
  if (opts.verbose) {
65714
65714
  console.log(`Uploading files at ${cwd}`);
65715
65715
  }
65716
- const finalizePromise = archive.finalize();
65717
- await finalizePromise;
65718
- const uploadResponse = await fetch(signedUrl, {
65719
- method: "PUT",
65720
- headers: {
65721
- "Content-Type": "application/zip"
65722
- },
65723
- duplex: "half",
65724
- body: archive
65725
- });
65716
+ const [uploadResponse] = await Promise.all([
65717
+ fetch(signedUrl, {
65718
+ method: "PUT",
65719
+ headers: {
65720
+ "Content-Type": "application/zip"
65721
+ },
65722
+ duplex: "half",
65723
+ body: archive
65724
+ }),
65725
+ archive.finalize()
65726
+ ]);
65726
65727
  if (uploadResponse.status !== 200) {
65727
65728
  console.error("Failed to upload:", uploadResponse.statusText);
65728
65729
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirechunk/cli",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {