@wirechunk/cli 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/main.js +17 -37
  2. package/package.json +1 -1
package/build/main.js CHANGED
@@ -4132,10 +4132,6 @@ const permissionSiteCreate = {
4132
4132
  object: "Site",
4133
4133
  action: "create"
4134
4134
  };
4135
- const permissionTemplateCreate = {
4136
- object: "Template",
4137
- action: "create"
4138
- };
4139
4135
  const permissionUserCreate = {
4140
4136
  object: "User",
4141
4137
  action: "create"
@@ -4204,29 +4200,9 @@ const permissionTemplateEdit = {
4204
4200
  object: "Template",
4205
4201
  action: "edit"
4206
4202
  };
4207
- const permissionUserEditEmail = {
4208
- object: "User",
4209
- action: "editEmail"
4210
- };
4211
- const permissionUserEditOrg = {
4212
- object: "User",
4213
- action: "editOrg"
4214
- };
4215
- const permissionUserEditStatus = {
4216
- object: "User",
4217
- action: "editStatus"
4218
- };
4219
- const permissionUserEditRole = {
4203
+ const permissionUserEdit = {
4220
4204
  object: "User",
4221
- action: "editRole"
4222
- };
4223
- const permissionUserEditProfile = {
4224
- object: "User",
4225
- action: "editProfile"
4226
- };
4227
- const permissionUserEditCustomFields = {
4228
- object: "User",
4229
- action: "editCustomFields"
4205
+ action: "edit"
4230
4206
  };
4231
4207
  const permissionFormTemplateSync = {
4232
4208
  object: "FormTemplate",
@@ -4263,7 +4239,6 @@ const allPermissions = [
4263
4239
  permissionExtensionCreateVersion,
4264
4240
  permissionExtensionEdit,
4265
4241
  permissionExtensionView,
4266
- permissionTemplateCreate,
4267
4242
  permissionComponentEdit,
4268
4243
  permissionCourseEdit,
4269
4244
  permissionCustomComponentEdit,
@@ -4282,12 +4257,7 @@ const allPermissions = [
4282
4257
  permissionTemplateEdit,
4283
4258
  permissionTemplateView,
4284
4259
  permissionUserCreate,
4285
- permissionUserEditEmail,
4286
- permissionUserEditOrg,
4287
- permissionUserEditStatus,
4288
- permissionUserEditRole,
4289
- permissionUserEditProfile,
4290
- permissionUserEditCustomFields,
4260
+ permissionUserEdit,
4291
4261
  permissionFormTemplateSync,
4292
4262
  permissionPageTemplateSync,
4293
4263
  permissionPlatformEdit,
@@ -26874,7 +26844,7 @@ WIRECHUNK_PLATFORM_ID=${result2.platformId}
26874
26844
  }
26875
26845
  };
26876
26846
  const type$c = "array";
26877
- 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},"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},"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. When \\"Button\\", renders a Button component with asChild prop and a Link inside.","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},"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"},"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},"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":{"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"]}]}`);
26878
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"]}]}}`);
26879
26849
  const $id$c = "/designer/components.json";
26880
26850
  const componentsSchema = {
@@ -26884,7 +26854,7 @@ const componentsSchema = {
26884
26854
  $id: $id$c
26885
26855
  };
26886
26856
  const type$b = "array";
26887
- 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"]}]},"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"},"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. When \\"Button\\", renders a Button component with asChild prop and a Link inside.","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"]},"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"},"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"]}]},"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"]},{"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"]}]}`);
26888
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"] } };
26889
26859
  const strippedComponentsSchema = {
26890
26860
  type: type$b,
@@ -65935,6 +65905,7 @@ const sentinelToTarget = new Map(
65935
65905
  ch
65936
65906
  ])
65937
65907
  );
65908
+ const asciiPunctuationRegex = /^[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]$/;
65938
65909
  function protectEscapes(input) {
65939
65910
  let out = "";
65940
65911
  for (let i = 0; i < input.length; i++) {
@@ -65947,6 +65918,11 @@ function protectEscapes(input) {
65947
65918
  i += 1;
65948
65919
  continue;
65949
65920
  }
65921
+ if (asciiPunctuationRegex.test(next2)) {
65922
+ out += next2;
65923
+ i += 1;
65924
+ continue;
65925
+ }
65950
65926
  out += ch;
65951
65927
  continue;
65952
65928
  }
@@ -66519,9 +66495,13 @@ const createPage = async (opts, env2) => {
66519
66495
  console.error("Use either --props or --props-file, not both.");
66520
66496
  process.exit(1);
66521
66497
  }
66498
+ if (opts.textContentFile && opts.componentsFile) {
66499
+ console.error("Use either --text-content-file or --components-file, not both.");
66500
+ process.exit(1);
66501
+ }
66522
66502
  const status = opts.status ? parseStatus(opts.status) : void 0;
66523
66503
  const props = opts.props ? readJson(opts.props, "props") : opts.propsFile ? await readJsonFile(resolve$1(process.cwd(), opts.propsFile), "props") : void 0;
66524
- const components = opts.textContentFile ? await buildMarkdownComponents(resolve$1(process.cwd(), opts.textContentFile)) : void 0;
66504
+ const components = opts.textContentFile ? await buildMarkdownComponents(resolve$1(process.cwd(), opts.textContentFile)) : opts.componentsFile ? await readJsonFile(resolve$1(process.cwd(), opts.componentsFile), "components") : void 0;
66525
66505
  const apiToken = requireApiToken(env2);
66526
66506
  const url = `${env2.WIRECHUNK_CORE_SERVER_URL}/api`;
66527
66507
  if (opts.verbose) {
@@ -67229,7 +67209,7 @@ program.command("create-extension-version").description("create an extension ver
67229
67209
  "--config-file <string>",
67230
67210
  "the path to a file to use when creating the extension version, containing environment-style key-value pairs"
67231
67211
  ).action(withOptionsAndEnv(createExtensionVersion));
67232
- program.command("create-page").description("create a page").requiredOption("--site-id <string>", "the ID of the site").requiredOption("--title <string>", "the title of the page").requiredOption("--path <string>", "the path for the page, such as blog/my-post").option("--status <status>", "the page status (Draft, Published, or Archived)").option("--meta-title <string>", "the meta title for the page").option("--meta-description <string>", "the meta description for the page").option("--page-template-id <string>", "the page template ID").option("--props <json>", "JSON object string for page props").option("--props-file <path>", "path to a JSON file for page props").option("--text-content-file <path>", "path to a Markdown file to render as a Text component").action(withOptionsAndEnv(createPage));
67212
+ program.command("create-page").description("create a page").requiredOption("--site-id <string>", "the ID of the site").requiredOption("--title <string>", "the title of the page").requiredOption("--path <string>", "the path for the page, such as blog/my-post").option("--status <status>", "the page status (Draft, Published, or Archived)").option("--meta-title <string>", "the meta title for the page").option("--meta-description <string>", "the meta description for the page").option("--page-template-id <string>", "the page template ID").option("--props <json>", "JSON object string for page props").option("--props-file <path>", "path to a JSON file for page props").option("--text-content-file <path>", "path to a Markdown file to render as a Text component").option("--components-file <path>", "path to a JSON file containing the components array").action(withOptionsAndEnv(createPage));
67233
67213
  program.command("create-user").description("create a user").requiredOption("--email <string>", "the email address of the user").requiredOption("--password <string>", "the password of the user").requiredOption("--first-name <string>", "the first name of the user").requiredOption("--last-name <string>", "the last name of the user").option(
67234
67214
  "--org-id <string>",
67235
67215
  "the ID of the org to which the user belongs, defaults to creating a new org if not specified"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirechunk/cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {