{"version":3,"sources":["../src/index.ts","../src/components/generateInternalId.ts","../src/components/box.ts","../src/components/column.ts","../src/components/row.ts","../src/components/field.ts","../src/components/number-field.ts","../src/components/fragment.ts","../src/components/image.ts","../src/components/progress.ts","../src/components/iframe.ts","../src/components/video.ts","../src/components/video-stories.ts","../src/components/text.ts","../src/components/checkbox.ts","../src/components/textarea.ts","../src/components/button.ts","../src/components/select.ts","../src/components/link.ts","../src/components/accordion.ts","../src/components/accordion-item.ts","../src/components/accordion-content.ts","../src/components/accordion.header.ts","../src/components/toast-root.ts","../src/components/toast-title.ts","../src/components/toast-description.ts","../src/components/popover-root.ts","../src/components/popover-button.ts","../src/components/popover-content.ts","../src/components/icon.ts","../src/components/markdown.ts","../src/components/side-scroll.ts","../src/components/table-root.ts","../src/components/table-header.ts","../src/components/table-body.ts","../src/components/table-row.ts","../src/components/table-cell.ts","../src/components/table-column-header-cell.ts","../src/components/table-row-header-cell.ts","../src/components/svg-root.ts","../src/components/svg-circle.ts","../src/components/svg-path.ts","../src/components/svg-g.ts","../src/components/svg-rect.ts","../src/components/svg-line.ts","../src/components/svg-ellipse.ts","../src/components/svg-polygon.ts","../src/components/svg-polyline.ts","../src/components/svg-text.ts","../src/components/svg-tspan.ts","../src/components/svg-defs.ts","../src/components/svg-stop.ts","../src/components/svg-linear-gradient.ts","../src/components/svg-radial-gradient.ts","../src/components/svg-mask.ts","../src/components/svg-clip-path.ts","../src/components/svg-use.ts","../src/components/svg-symbol.ts","../src/components/svg-pattern.ts","../src/components/svg-filter.ts","../src/components/svg-fe-gaussian-blur.ts","../src/components/svg-fe-offset.ts","../src/components/svg-fe-merge.ts","../src/components/svg-fe-merge-node.ts","../src/components/form-root.ts","../src/components/form-field.ts","../src/components/form-field-error.ts","../src/components/form-select.ts","../src/components/form-checkbox.ts","../src/components/form-radio.ts","../src/components/form-resetter.ts","../src/components/form-submitter.ts","../src/components/form-success.ts","../src/components/form-failure.ts","../src/components/form-sending.ts","../src/styles/ThemeColor.ts","../src/styles/StyleSheet.ts","../src/styles/theme.ts","../src/styles/minify.ts","../src/styles/shortid.ts","../src/styles/keyframes.ts","../src/styles/styled.ts"],"sourcesContent":["export * from \"./components/box\";\nexport * from \"./components/column\";\nexport * from \"./components/row\";\nexport * from \"./components/field\";\nexport * from \"./components/number-field\";\nexport * from \"./components/fragment\";\nexport * from \"./components/image\";\nexport * from \"./components/progress\";\nexport * from \"./components/iframe\";\nexport * from \"./components/video\";\nexport * from \"./components/video-stories\";\nexport * from \"./components/text\";\nexport * from \"./components/checkbox\";\nexport * from \"./components/textarea\";\nexport * from \"./components/button\";\nexport * from \"./components/select\";\nexport * from \"./components/link\";\nexport * from \"./components/accordion\";\nexport * from \"./components/accordion-item\";\nexport * from \"./components/accordion-content\";\nexport * from \"./components/accordion.header\";\nexport * from \"./components/toast-root\";\nexport * from \"./components/toast-title\";\nexport * from \"./components/toast-description\";\nexport * from \"./components/popover-root\";\nexport * from \"./components/popover-button\";\nexport * from \"./components/popover-content\";\nexport * from \"./components/icon\";\nexport * from \"./components/markdown\";\nexport * from \"./components/side-scroll\";\nexport * from \"./components/table-root\";\nexport * from \"./components/table-header\";\nexport * from \"./components/table-body\";\nexport * from \"./components/table-row\";\nexport * from \"./components/table-cell\";\nexport * from \"./components/table-column-header-cell\";\nexport * from \"./components/table-row-header-cell\";\nexport * from \"./components/svg-root\";\nexport * from \"./components/svg-circle\";\nexport * from \"./components/svg-path\";\nexport * from \"./components/svg-g\";\nexport * from \"./components/svg-rect\";\nexport * from \"./components/svg-line\";\nexport * from \"./components/svg-ellipse\";\nexport * from \"./components/svg-polygon\";\nexport * from \"./components/svg-polyline\";\nexport * from \"./components/svg-text\";\nexport * from \"./components/svg-tspan\";\nexport * from \"./components/svg-defs\";\nexport * from \"./components/svg-stop\";\nexport * from \"./components/svg-linear-gradient\";\nexport * from \"./components/svg-radial-gradient\";\nexport * from \"./components/svg-mask\";\nexport * from \"./components/svg-clip-path\";\nexport * from \"./components/svg-use\";\nexport * from \"./components/svg-symbol\";\nexport * from \"./components/svg-pattern\";\nexport * from \"./components/svg-filter\";\nexport * from \"./components/svg-fe-gaussian-blur\";\nexport * from \"./components/svg-fe-offset\";\nexport * from \"./components/svg-fe-merge\";\nexport * from \"./components/svg-fe-merge-node\";\nexport * from \"./components/form-root\";\nexport * from \"./components/form-field\";\nexport * from \"./components/form-field-error\";\nexport * from \"./components/form-select\";\nexport * from \"./components/form-checkbox\";\nexport * from \"./components/form-radio\";\nexport * from \"./components/form-resetter\";\nexport * from \"./components/form-submitter\";\nexport * from \"./components/form-success\";\nexport * from \"./components/form-failure\";\nexport * from \"./components/form-sending\";\nexport * from \"./styles/StyleSheet\";\nexport * from \"./styles/theme\";\nexport * from \"./styles/styled\";\nexport { keyframes } from \"./styles/keyframes\";\n","type Props = Record<string, unknown>;\n\nconst memo = new WeakMap<object, string>();\n\n/**\n * Serialize the props in a stable way, ignoring functions.\n */\nfunction stableStringify(value: unknown): string {\n\treturn JSON.stringify(value, (key, val) => {\n\t\tif (key === \"children\" && typeof val !== \"string\") return \"[children]\";\n\t\tif (typeof val === \"function\") {\n\t\t\tif (memo.has(val)) return memo.get(val);\n\n\t\t\tconst fnid = `[${val.toString()}]`;\n\n\t\t\tmemo.set(val, fnid);\n\n\t\t\treturn fnid;\n\t\t}\n\t\treturn val;\n\t});\n}\n\n/**\n * djb2 hash function (32 bits, returning base36 for reduced size).\n */\nfunction djb2Hash(str: string): string {\n\tlet hash = 5381;\n\tfor (let i = 0; i < str.length; i++) {\n\t\thash = (hash * 33) ^ str.charCodeAt(i);\n\t}\n\treturn (hash >>> 0).toString(36); // eg: \"1v3tuh\"\n}\n\nfunction createId(type: string, hash: string) {\n\treturn `${type}-${self.__APP_DATA__.id}-${hash}`;\n}\n\n/**\n * Regular expression to validate the internal ID format: {type}-{appId}-{hash}\n * - type: component type (letters, numbers, underscore, hyphen)\n * - appId: application ID (alphanumeric)\n * - hash: base36 hash (letters and numbers)\n */\nfunction createInternalIdRegex(appId: string): RegExp {\n\t// Escape special regex characters in appId\n\tconst escapedAppId = appId.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\treturn new RegExp(`^[a-zA-Z0-9_-]+-${escapedAppId}-[a-z0-9]+$`);\n}\n\nfunction isValidInternalId(id: unknown): id is string {\n\tif (typeof id !== \"string\" || id === \"\") return false;\n\n\tconst regex = createInternalIdRegex(self.__APP_DATA__.id);\n\treturn regex.test(id);\n}\n\n/**\n * Generate a stable ID for a component based on the type and props.\n */\nexport function generateInternalId(type: string, props: Props): string {\n\tif (isValidInternalId(props.__internalId)) return props.__internalId;\n\n\tconst cached = memo.get(props);\n\tif (cached) return createId(type, cached);\n\n\tconst key = stableStringify(props);\n\tconst hash = djb2Hash(key);\n\tmemo.set(props, hash);\n\n\treturn createId(type, hash);\n}\n","import type {\n\tNubeComponentBox,\n\tNubeComponentBoxProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `box` component.\n *\n * A `box` is a flexible container that can be used for layout purposes.\n * It supports properties like width, height, padding, margin, and flex-based alignment.\n *\n * @param props - The properties for configuring the box component.\n * @returns A `NubeComponentBox` object representing the box component.\n */\nexport const box = (props: NubeComponentBoxProps): NubeComponentBox => ({\n\ttype: \"box\",\n\t...props,\n\t__internalId: generateInternalId(\"box\", props),\n});\n","import type {\n\tNubeComponentColumn,\n\tNubeComponentColumnProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `column` component.\n *\n * A `column` is a flexible column container that can be used for structuring layouts.\n * It inherits most properties from `box`, except for the `direction` property.\n *\n * @param props - The properties for configuring the column component.\n * @returns A `NubeComponentColumn` object representing the column component.\n */\nexport const column = (\n\tprops: NubeComponentColumnProps,\n): NubeComponentColumn => ({\n\ttype: \"col\",\n\t...props,\n\t__internalId: generateInternalId(\"col\", props),\n});\n","import type {\n\tNubeComponentRow,\n\tNubeComponentRowProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `row` component.\n *\n * A `row` is a flexible container used for structuring layouts in a horizontal direction.\n * It inherits most properties from `box`, except for the `direction` property.\n *\n * @param props - The properties for configuring the row component.\n * @returns A `NubeComponentRow` object representing the row component.\n */\nexport const row = (props: NubeComponentRowProps): NubeComponentRow => ({\n\ttype: \"row\",\n\t...props,\n\t__internalId: generateInternalId(\"row\", props),\n});\n","import type {\n\tNubeComponentField,\n\tNubeComponentFieldProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `field` component.\n *\n * A `field` represents an input element in a form, such as text fields, dropdowns, or checkboxes.\n * It supports properties like `name`, `label`, and event handlers (`onChange`, `onBlur`, `onFocus`).\n *\n * @param props - The properties for configuring the field component.\n * @returns A `NubeComponentField` object representing the form field.\n */\nexport const field = (props: NubeComponentFieldProps): NubeComponentField => ({\n\ttype: \"field\",\n\t...props,\n\t__internalId: generateInternalId(\"field\", props),\n});\n","import type {\n\tNubeComponentNumberField,\n\tNubeComponentNumberFieldProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `numberfield` component.\n *\n * A `numberfield` represents a numeric input element with increment/decrement buttons.\n * It supports properties like `name`, `label`, `min`, `max`, `step`, and event handlers.\n *\n * @param props - The properties for configuring the numberfield component.\n * @returns A `NubeComponentNumberField` object representing the numeric form field.\n */\nexport const numberfield = (\n\tprops: NubeComponentNumberFieldProps,\n): NubeComponentNumberField => ({\n\ttype: \"numberfield\",\n\t...props,\n\t__internalId: generateInternalId(\"numberfield\", props),\n});\n","import type {\n\tNubeComponentFragment,\n\tNubeComponentFragmentProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `fragment` component.\n *\n * A `fragment` is a logical grouping element that allows multiple children\n * to be wrapped without introducing an additional DOM node.\n *\n * @param props - The properties for configuring the fragment component.\n * @returns A `NubeComponentFragment` object representing the fragment.\n */\nexport const fragment = (\n\tprops: NubeComponentFragmentProps,\n): NubeComponentFragment => ({\n\ttype: \"fragment\",\n\t...props,\n\t__internalId: generateInternalId(\"fragment\", props),\n});\n","import type {\n\tNubeComponentImage,\n\tNubeComponentImageProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * @deprecated This component has been deprecated since version `0.8.0`. Please use the `image` component instead.\n */\nexport const img = (props: NubeComponentImageProps): NubeComponentImage => ({\n\ttype: \"img\",\n\t...props,\n\t__internalId: generateInternalId(\"img\", props),\n});\n\n/**\n * Creates an `image` (image) component.\n *\n * The `image` component is used to display images. It supports properties such as\n * `src`, `alt`, `width`, `height`, and responsive `sources` for different screen sizes.\n *\n * @param props - The properties for configuring the image component.\n * @returns A `NubeComponentImage` object representing the image component.\n */\nexport const image = (props: NubeComponentImageProps): NubeComponentImage => ({\n\ttype: \"img\",\n\t...props,\n\t__internalId: generateInternalId(\"img\", props),\n});\n","import type {\n\tNubeComponentProgress,\n\tNubeComponentProgressProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `progress` component.\n *\n * A `progress` represents a completion progress of a task. It supports properties such as `value` and `max`\n * to define the progress range and current state. When no value is provided, the progress bar\n * displays in an indeterminate state.\n *\n * @param props - The properties for configuring the progress component.\n * @returns A `NubeComponentProgress` object representing the progress component.\n */\nexport const progress = (\n\tprops: NubeComponentProgressProps,\n): NubeComponentProgress => ({\n\ttype: \"progress\",\n\t...props,\n\t__internalId: generateInternalId(\"progress\", props),\n});\n","import type {\n\tNubeComponentIframe,\n\tNubeComponentIframeProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `iframe` component.\n *\n * Embeds external content. Supports `src`, `width`, `height`, `sandbox`, `style`,\n * `onMessage` (runtime receives child messages), and `autoresize` (host resizes the iframe\n * when the child posts `{ type: \"resize\", height?, width? }`).\n *\n * @param props - The properties for configuring the iframe component.\n * @returns A `NubeComponentIframe` object representing the iframe component.\n */\nexport const iframe = (\n\tprops: NubeComponentIframeProps,\n): NubeComponentIframe => ({\n\ttype: \"iframe\",\n\t...props,\n\t__internalId: generateInternalId(\"iframe\", props),\n});\n","import type {\n\tNubeComponentVideoPlayer,\n\tNubeComponentVideoPlayerProps,\n\tNubeComponentVideoRoot,\n\tNubeComponentVideoRootProps,\n\tNubeComponentVideoYouTube,\n\tNubeComponentVideoYouTubeProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `videoRoot` component.\n *\n * `Video.Root` is the source-agnostic wrapper for a video. It owns\n * layout (`width`, `height`, `style`), shared playback modifiers (`autoplay`,\n * `muted`, `loop`) and the source-agnostic playback event handlers (`onPlay`,\n * `onPause`, `onEnded`, `onProgress`, `onBuffer`). It must contain a\n * `Video.Player` or a `Video.YouTube`, optionally followed by overlay children\n * that render over the video when the fullscreen lightbox is open. Errors are\n * source-specific and belong to each player's own `onError`.\n *\n * @param props - The properties for configuring the video root component.\n * @returns A `NubeComponentVideoRoot` object representing the video root component.\n */\nexport const videoRoot = (\n\tprops: NubeComponentVideoRootProps,\n): NubeComponentVideoRoot => ({\n\ttype: \"videoRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"videoRoot\", props),\n});\n\n/**\n * Creates a `videoPlayer` component.\n *\n * `Video.Player` is a self-hosted video source (MP4, HLS or DASH) rendered by\n * the SDK's bundled player engine. It must be a child of `Video.Root`, which\n * owns the shared playback modifiers and events.\n *\n * @param props - The properties for configuring the video player component.\n * @returns A `NubeComponentVideoPlayer` object representing the video player component.\n */\nexport const videoPlayer = (\n\tprops: NubeComponentVideoPlayerProps,\n): NubeComponentVideoPlayer => ({\n\ttype: \"videoPlayer\",\n\t...props,\n\t__internalId: generateInternalId(\"videoPlayer\", props),\n});\n\n/**\n * Creates a `videoYouTube` component.\n *\n * `Video.YouTube` embeds a YouTube video via the official IFrame Player API.\n * It must be a child of `Video.Root`. No lightbox is available (YouTube ToS\n * prohibits overlaying or cropping the embed).\n *\n * @param props - The properties for configuring the YouTube video component.\n * @returns A `NubeComponentVideoYouTube` object representing the YouTube component.\n */\nexport const videoYouTube = (\n\tprops: NubeComponentVideoYouTubeProps,\n): NubeComponentVideoYouTube => ({\n\ttype: \"videoYouTube\",\n\t...props,\n\t__internalId: generateInternalId(\"videoYouTube\", props),\n});\n","import type {\n\tNubeComponentVideoStories,\n\tNubeComponentVideoStoriesProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `videoStories` component.\n *\n * `VideoStories` is a vertical, stories-style player for a sequence of\n * self-hosted videos (MP4, HLS or DASH). It renders inline as a compact 9:16\n * card; tapping the card expands to a fullscreen overlay. Events (`onOpen`,\n * `onClose`, `onChange`, `onComplete`, `onError`) are observe-only — they\n * never gate playback.\n *\n * @param props - The properties for configuring the video stories component.\n * @returns A `NubeComponentVideoStories` object.\n */\nexport const videoStories = (\n\tprops: NubeComponentVideoStoriesProps,\n): NubeComponentVideoStories => ({\n\ttype: \"videoStories\",\n\t...props,\n\t__internalId: generateInternalId(\"videoStories\", props),\n});\n","import type {\n\tNubeComponentText,\n\tNubeComponentTextProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `txt` (text) component.\n *\n * The `txt` component is used to render text with optional styling.\n * It supports properties such as `color`, `background`, `heading` levels (h1-h6),\n * text formatting `modifiers` (bold, italic, etc.), and inline display.\n *\n * @param props - The properties for configuring the text component.\n * @returns A `NubeComponentTxt` object representing the text component.\n */\nexport const text = (props: NubeComponentTextProps): NubeComponentText => ({\n\ttype: \"txt\",\n\t...props,\n\t__internalId: generateInternalId(\"txt\", props),\n});\n\n/**\n * @deprecated This component has been deprecated since version `0.8.0`. Please use the `text` component instead.\n */\nexport const txt = (props: NubeComponentTextProps): NubeComponentText => ({\n\ttype: \"txt\",\n\t...props,\n\t__internalId: generateInternalId(\"txt\", props),\n});\n","import type {\n\tNubeComponentCheckbox,\n\tNubeComponentCheckboxProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * @deprecated This component has been deprecated since version `0.8.0`. Please use the `checkbox` component instead.\n */\nexport const check = (\n\tprops: NubeComponentCheckboxProps,\n): NubeComponentCheckbox => ({\n\ttype: \"check\",\n\t...props,\n\t__internalId: generateInternalId(\"check\", props),\n});\n\n/**\n * Creates a `checkbox` component.\n *\n * A `checkbox` represents a selectable field that can be toggled between checked and unchecked states.\n * It is typically used to allow users to select one or more options.\n * Supports properties such as `name`, `label`, `checked`, and event handlers (`onChange`).\n *\n * @param props - The properties for configuring the checkbox component.\n * @returns A `NubeComponentCheckbox` object representing the checkbox.\n */\nexport const checkbox = (\n\tprops: NubeComponentCheckboxProps,\n): NubeComponentCheckbox => ({\n\ttype: \"check\",\n\t...props,\n});\n","import type {\n\tNubeComponentTextarea,\n\tNubeComponentTextareaProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * @deprecated This component has been deprecated since version `0.8.0`. Please use the `textarea` component instead.\n */\nexport const txtarea = (\n\tprops: NubeComponentTextareaProps,\n): NubeComponentTextarea => ({\n\ttype: \"txtarea\",\n\t...props,\n\t__internalId: generateInternalId(\"txtarea\", props),\n});\n\n/**\n * Creates a `textarea` component.\n *\n * A `textarea` represents a multi-line text input field that allows users to enter longer texts.\n * It supports properties such as `name`, `value`, and event handlers (`onChange`, `onBlur`, `onFocus`).\n *\n * @param props - The properties for configuring the textarea component.\n * @returns A `NubeComponentTextarea` object representing the textarea component.\n */\nexport const textarea = (\n\tprops: NubeComponentTextareaProps,\n): NubeComponentTextarea => ({\n\ttype: \"txtarea\",\n\t...props,\n\t__internalId: generateInternalId(\"txtarea\", props),\n});\n","import type {\n\tNubeComponentButton,\n\tNubeComponentButtonProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `button` component.\n *\n * A `button` represents a clickable element typically used to trigger an action or submit a form.\n * It supports properties such as `text`, `onClick`, and style configurations.\n *\n * @param props - The properties for configuring the button component.\n * @returns A `NubeComponentButton` object representing the button component.\n */\nexport const button = (\n\tprops: NubeComponentButtonProps,\n): NubeComponentButton => ({\n\ttype: \"button\",\n\t...props,\n\t__internalId: generateInternalId(\"button\", props),\n});\n","import type {\n\tNubeComponentSelect,\n\tNubeComponentSelectProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `select` component.\n *\n * A `select` represents a dropdown menu that allows users to select one option from a list.\n * It supports properties such as `name`, `label`, `options`, and event handlers (`onChange`).\n */\nexport const select = (\n\tprops: NubeComponentSelectProps,\n): NubeComponentSelect => ({\n\ttype: \"select\",\n\t...props,\n\t__internalId: generateInternalId(\"select\", props),\n});\n","import type {\n\tNubeComponentLink,\n\tNubeComponentLinkProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `link` component.\n *\n * The `link` component is used for navigation links. It supports properties such as\n * `href`, `target`, `rel`, `disabled`, `variant`, and `onClick` event handling.\n * Links can be styled with different variants (primary, secondary, transparent)\n * and support both internal and external navigation.\n *\n * @param props - The properties for configuring the link component.\n * @returns A `NubeComponentLink` object representing the link component.\n */\nexport const link = (props: NubeComponentLinkProps): NubeComponentLink => ({\n\ttype: \"link\",\n\t...props,\n\t__internalId: generateInternalId(\"link\", props),\n});\n","import type {\n\tNubeComponentAccordionRoot,\n\tNubeComponentAccordionRootProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `accordion` component.\n *\n * An `accordion` is a vertically stacked list of items that can be expanded or collapsed to reveal their content.\n * It supports properties such as `defaultValue` for controlling which item is expanded by default, and custom styling.\n */\nexport const accordionRoot = (\n\tprops: NubeComponentAccordionRootProps,\n): NubeComponentAccordionRoot => ({\n\ttype: \"accordionRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"accordionRoot\", props),\n});\n","import type {\n\tNubeComponentAccordionItem,\n\tNubeComponentAccordionItemProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `accordion-item` component.\n *\n * An `accordion-item` represents a single item within an accordion.\n * Each item contains a header that can be clicked to show/hide its content.\n * It supports properties such as `title`, `content`, `isExpanded`, and event handlers (`onToggle`).\n */\nexport const accordionItem = (\n\tprops: NubeComponentAccordionItemProps,\n): NubeComponentAccordionItem => ({\n\ttype: \"accordionItem\",\n\t...props,\n\t__internalId: generateInternalId(\"accordionItem\", props),\n});\n","import type {\n\tNubeComponentAccordionContent,\n\tNubeComponentAccordionContentProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `accordion-content` component.\n *\n * An `accordion-content` represents the content of an accordion item.\n * It supports properties such as `children`.\n */\nexport const accordionContent = (\n\tprops: NubeComponentAccordionContentProps,\n): NubeComponentAccordionContent => ({\n\ttype: \"accordionContent\",\n\t...props,\n\t__internalId: generateInternalId(\"accordionContent\", props),\n});\n","import type {\n\tNubeComponentAccordionHeader,\n\tNubeComponentAccordionHeaderProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `accordion-header` component.\n *\n * An `accordion-header` represents the header of an accordion item.\n * It supports properties such as `children`.\n */\nexport const accordionHeader = (\n\tprops: NubeComponentAccordionHeaderProps,\n): NubeComponentAccordionHeader => ({\n\ttype: \"accordionHeader\",\n\t...props,\n\t__internalId: generateInternalId(\"accordionHeader\", props),\n});\n","import type {\n\tNubeComponentToastRoot,\n\tNubeComponentToastRootProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `toast` component.\n *\n * A `toast` is a small notification that appears at the bottom of the screen to inform the user about an action or a message.\n * It supports properties such as `type` for controlling the type of toast, and custom styling.\n */\nexport const toastRoot = (\n\tprops: NubeComponentToastRootProps,\n): NubeComponentToastRoot => ({\n\ttype: \"toastRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"toastRoot\", props),\n});\n","import type {\n\tNubeComponentToastTitle,\n\tNubeComponentToastTitleProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `toast` title component.\n *\n * A `toast` title is a small notification that appears at the bottom of the screen to inform the user about an action or a message.\n * It supports properties such as `children` for the title text, and custom styling.\n */\nexport const toastTitle = (\n\tprops: NubeComponentToastTitleProps,\n): NubeComponentToastTitle => ({\n\ttype: \"toastTitle\",\n\t...props,\n\t__internalId: generateInternalId(\"toastTitle\", props),\n});\n","import type {\n\tNubeComponentToastDescription,\n\tNubeComponentToastDescriptionProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `toast` description component.\n *\n * A `toast` description is a small notification that appears at the bottom of the screen to inform the user about an action or a message.\n * It supports properties such as `children` for the description text, and custom styling.\n */\nexport const toastDescription = (\n\tprops: NubeComponentToastDescriptionProps,\n): NubeComponentToastDescription => ({\n\ttype: \"toastDescription\",\n\t...props,\n\t__internalId: generateInternalId(\"toastDescription\", props),\n});\n","import type {\n\tNubeComponentPopoverRoot,\n\tNubeComponentPopoverRootProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `popover` root component.\n *\n * A `popover` is a floating container whose content becomes visible when its\n * trigger button is clicked. The root acts as the wrapper that holds both the\n * `popover-button` and the `popover-content`.\n * It supports properties such as `defaultOpen` and custom styling.\n */\nexport const popoverRoot = (\n\tprops: NubeComponentPopoverRootProps,\n): NubeComponentPopoverRoot => ({\n\ttype: \"popoverRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"popoverRoot\", props),\n});\n","import type {\n\tNubeComponentPopoverButton,\n\tNubeComponentPopoverButtonProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `popover` button component.\n *\n * A `popover-button` is the trigger that toggles the visibility of the popover\n * content. It inherits the style and props of the `button` component, except\n * for `onClick`, which is managed internally to control the popover.\n */\nexport const popoverButton = (\n\tprops: NubeComponentPopoverButtonProps,\n): NubeComponentPopoverButton => ({\n\ttype: \"popoverButton\",\n\t...props,\n\t__internalId: generateInternalId(\"popoverButton\", props),\n});\n","import type {\n\tNubeComponentPopoverContent,\n\tNubeComponentPopoverContentProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `popover` content component.\n *\n * A `popover-content` holds the floating content that becomes visible when the\n * popover button is clicked. It inherits the style and props of the `box`\n * component and uses theme variables for its default background, border and\n * box shadow.\n */\nexport const popoverContent = (\n\tprops: NubeComponentPopoverContentProps,\n): NubeComponentPopoverContent => ({\n\ttype: \"popoverContent\",\n\t...props,\n\t__internalId: generateInternalId(\"popoverContent\", props),\n});\n","import type {\n\tNubeComponentIcon,\n\tNubeComponentIconProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `icon` component.\n *\n * @param props - The properties for configuring the icon component.\n * @returns A `NubeComponentIcon` object representing the icon.\n */\nexport const icon = (props: NubeComponentIconProps): NubeComponentIcon => ({\n\ttype: \"icon\",\n\t...props,\n\t__internalId: generateInternalId(\"icon\", props),\n});\n","import type {\n\tNubeComponentMarkdown,\n\tNubeComponentMarkdownProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `markdown` component.\n *\n * The `markdown` component is used to render markdown content.\n * It supports properties such as `content` for the markdown string.\n *\n * @param props - The properties for configuring the markdown component.\n * @returns A `NubeComponentMarkdown` object representing the markdown component.\n */\nexport const markdown = (\n\tprops: NubeComponentMarkdownProps,\n): NubeComponentMarkdown => ({\n\ttype: \"markdown\",\n\t...props,\n\t__internalId: generateInternalId(\"markdown\", props),\n});\n","import type {\n\tNubeComponentSideScroll,\n\tNubeComponentSideScrollProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `sidescroll` component.\n *\n * A `sidescroll` is a horizontal scrolling container that allows users to scroll through content\n * that extends beyond the container's visible width. It supports customizable gap between items\n * and can optionally hide the scrollbar for a cleaner appearance.\n *\n * @param props - The properties for configuring the sidescroll component.\n * @returns A `NubeComponentSideScroll` object representing the sidescroll component.\n */\nexport const sideScroll = (\n\tprops: NubeComponentSideScrollProps,\n): NubeComponentSideScroll => ({\n\ttype: \"sidescroll\",\n\t...props,\n\t__internalId: generateInternalId(\"sidescroll\", props),\n});\n","import type {\n\tNubeComponentTableDataRow,\n\tNubeComponentTableRoot,\n\tNubeComponentTableRootProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` root component.\n *\n * A `table` root is the wrapper that groups the header and the body of a table.\n * It supports properties such as `size`, `variant`, `layout` and custom styling.\n *\n * The table can also be declared from raw data through `data` and `columns`.\n * When both are provided, `children` is ignored and the header and the body\n * are rendered from the data. The `key` of each column is restricted to the\n * keys present in the rows of `data`.\n */\nexport const tableRoot = <T extends NubeComponentTableDataRow>(\n\tprops: NubeComponentTableRootProps<T>,\n): NubeComponentTableRoot<T> => {\n\tconst isDataDriven = !!props.data && !!props.columns;\n\tconst { children, ...rest } = props;\n\n\treturn {\n\t\ttype: \"tableRoot\",\n\t\t...(isDataDriven ? rest : props),\n\t\t__internalId: generateInternalId(\"tableRoot\", props),\n\t};\n};\n","import type {\n\tNubeComponentTableHeader,\n\tNubeComponentTableHeaderProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` header component.\n *\n * A `table` header groups the rows that contain the column headings of a table.\n * It expects `tableRow` components as children.\n */\nexport const tableHeader = (\n\tprops: NubeComponentTableHeaderProps,\n): NubeComponentTableHeader => ({\n\ttype: \"tableHeader\",\n\t...props,\n\t__internalId: generateInternalId(\"tableHeader\", props),\n});\n","import type {\n\tNubeComponentTableBody,\n\tNubeComponentTableBodyProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` body component.\n *\n * A `table` body groups the rows that contain the data of a table.\n * It expects `tableRow` components as children.\n */\nexport const tableBody = (\n\tprops: NubeComponentTableBodyProps,\n): NubeComponentTableBody => ({\n\ttype: \"tableBody\",\n\t...props,\n\t__internalId: generateInternalId(\"tableBody\", props),\n});\n","import type {\n\tNubeComponentTableRow,\n\tNubeComponentTableRowProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` row component.\n *\n * A `table` row groups the cells of a single row of a table.\n * It supports the `align` property to control the vertical alignment of its cells.\n */\nexport const tableRow = (\n\tprops: NubeComponentTableRowProps,\n): NubeComponentTableRow => ({\n\ttype: \"tableRow\",\n\t...props,\n\t__internalId: generateInternalId(\"tableRow\", props),\n});\n","import type {\n\tNubeComponentTableCell,\n\tNubeComponentTableCellProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` cell component.\n *\n * A `table` cell is a basic data cell of a table.\n * It supports properties such as `justify`, `width`, `minWidth`, `maxWidth`,\n * `colSpan`, `rowSpan` and custom styling.\n */\nexport const tableCell = (\n\tprops: NubeComponentTableCellProps,\n): NubeComponentTableCell => ({\n\ttype: \"tableCell\",\n\t...props,\n\t__internalId: generateInternalId(\"tableCell\", props),\n});\n","import type {\n\tNubeComponentTableColumnHeaderCell,\n\tNubeComponentTableColumnHeaderCellProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` column header cell component.\n *\n * A `table` column header cell is the heading of a column of a table and\n * should be placed inside a row of a `tableHeader`.\n * It supports the same properties as a `tableCell`.\n */\nexport const tableColumnHeaderCell = (\n\tprops: NubeComponentTableColumnHeaderCellProps,\n): NubeComponentTableColumnHeaderCell => ({\n\ttype: \"tableColumnHeaderCell\",\n\t...props,\n\t__internalId: generateInternalId(\"tableColumnHeaderCell\", props),\n});\n","import type {\n\tNubeComponentTableRowHeaderCell,\n\tNubeComponentTableRowHeaderCellProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `table` row header cell component.\n *\n * A `table` row header cell is the heading of a row of a table and is\n * usually the first cell of a row of a `tableBody`.\n * It supports the same properties as a `tableCell`.\n */\nexport const tableRowHeaderCell = (\n\tprops: NubeComponentTableRowHeaderCellProps,\n): NubeComponentTableRowHeaderCell => ({\n\ttype: \"tableRowHeaderCell\",\n\t...props,\n\t__internalId: generateInternalId(\"tableRowHeaderCell\", props),\n});\n","import type {\n\tNubeComponentSvg,\n\tNubeComponentSvgProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates an `svgRoot` component.\n *\n * An `svgRoot` is the root container for SVG graphics, defining the coordinate system\n * and viewport for all child SVG elements. It supports properties like width, height,\n * viewBox, and preserveAspectRatio.\n *\n * @param props - The properties for configuring the svgRoot component.\n * @returns A `NubeComponentSvg` object representing the svgRoot component.\n */\nexport const svgRoot = (props: NubeComponentSvgProps): NubeComponentSvg => ({\n\ttype: \"svgRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"svgRoot\", props),\n});\n","import type {\n\tNubeComponentCircle,\n\tNubeComponentCircleProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgCircle` component.\n *\n * A `svgCircle` is used for drawing circles in SVG graphics. It supports properties\n * like center coordinates (cx, cy), radius (r), fill, stroke, and various stroke\n * styling options.\n *\n * @param props - The properties for configuring the svgCircle component.\n * @returns A `NubeComponentCircle` object representing the svgCircle component.\n */\nexport const svgCircle = (\n\tprops: NubeComponentCircleProps,\n): NubeComponentCircle => ({\n\ttype: \"svgCircle\",\n\t...props,\n\t__internalId: generateInternalId(\"svgCircle\", props),\n});\n","import type {\n\tNubeComponentPath,\n\tNubeComponentPathProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgPath` component.\n *\n * A `svgPath` is used for drawing custom paths in SVG graphics using path commands.\n * It supports properties like path data (d), fill, stroke, and various styling options\n * for creating complex shapes and curves.\n *\n * @param props - The properties for configuring the svgPath component.\n * @returns A `NubeComponentPath` object representing the svgPath component.\n */\nexport const svgPath = (props: NubeComponentPathProps): NubeComponentPath => ({\n\ttype: \"svgPath\",\n\t...props,\n\t__internalId: generateInternalId(\"svgPath\", props),\n});\n","import type {\n\tNubeComponentG,\n\tNubeComponentGProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgG` component.\n *\n * A `svgG` is used for grouping SVG elements together. It can contain other SVG\n * elements as children and supports properties like transform and opacity that\n * apply to all child elements.\n *\n * @param props - The properties for configuring the svgG component.\n * @returns A `NubeComponentG` object representing the svgG component.\n */\nexport const svgG = (props: NubeComponentGProps): NubeComponentG => ({\n\ttype: \"svgG\",\n\t...props,\n\t__internalId: generateInternalId(\"svgG\", props),\n});\n","import type {\n\tNubeComponentRect,\n\tNubeComponentRectProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgRect` component.\n *\n * A `svgRect` is used for drawing rectangles in SVG graphics. It supports properties\n * like position (x, y), size (width, height), corner radius (rx, ry), fill, stroke,\n * and various styling options.\n *\n * @param props - The properties for configuring the svgRect component.\n * @returns A `NubeComponentRect` object representing the svgRect component.\n */\nexport const svgRect = (props: NubeComponentRectProps): NubeComponentRect => ({\n\ttype: \"svgRect\",\n\t...props,\n\t__internalId: generateInternalId(\"svgRect\", props),\n});\n","import type {\n\tNubeComponentLine,\n\tNubeComponentLineProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgLine` component.\n *\n * A `svgLine` is used for drawing straight lines in SVG graphics. It supports\n * properties like start point (x1, y1), end point (x2, y2), stroke, strokeWidth,\n * and various stroke styling options.\n *\n * @param props - The properties for configuring the svgLine component.\n * @returns A `NubeComponentLine` object representing the svgLine component.\n */\nexport const svgLine = (props: NubeComponentLineProps): NubeComponentLine => ({\n\ttype: \"svgLine\",\n\t...props,\n\t__internalId: generateInternalId(\"svgLine\", props),\n});\n","import type {\n\tNubeComponentEllipse,\n\tNubeComponentEllipseProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgEllipse` component.\n *\n * A `svgEllipse` is used for drawing ellipses in SVG graphics. It supports properties\n * like center coordinates (cx, cy), radius (rx, ry), fill, stroke, and various\n * styling options for creating oval shapes.\n *\n * @param props - The properties for configuring the svgEllipse component.\n * @returns A `NubeComponentEllipse` object representing the svgEllipse component.\n */\nexport const svgEllipse = (\n\tprops: NubeComponentEllipseProps,\n): NubeComponentEllipse => ({\n\ttype: \"svgEllipse\",\n\t...props,\n\t__internalId: generateInternalId(\"svgEllipse\", props),\n});\n","import type {\n\tNubeComponentPolygon,\n\tNubeComponentPolygonProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgPolygon` component.\n *\n * A `svgPolygon` is used for drawing closed polygons in SVG graphics. It supports\n * properties like points (defining the polygon vertices), fill, stroke, and various\n * styling options for creating multi-sided shapes.\n *\n * @param props - The properties for configuring the svgPolygon component.\n * @returns A `NubeComponentPolygon` object representing the svgPolygon component.\n */\nexport const svgPolygon = (\n\tprops: NubeComponentPolygonProps,\n): NubeComponentPolygon => ({\n\ttype: \"svgPolygon\",\n\t...props,\n\t__internalId: generateInternalId(\"svgPolygon\", props),\n});\n","import type {\n\tNubeComponentPolyline,\n\tNubeComponentPolylineProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgPolyline` component.\n *\n * A `svgPolyline` is used for drawing open polylines in SVG graphics. It supports\n * properties like points (defining the line segments), fill, stroke, and various\n * styling options for creating connected line segments.\n *\n * @param props - The properties for configuring the svgPolyline component.\n * @returns A `NubeComponentPolyline` object representing the svgPolyline component.\n */\nexport const svgPolyline = (\n\tprops: NubeComponentPolylineProps,\n): NubeComponentPolyline => ({\n\ttype: \"svgPolyline\",\n\t...props,\n\t__internalId: generateInternalId(\"svgPolyline\", props),\n});\n","import type {\n\tNubeComponentSvgText,\n\tNubeComponentSvgTextProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgText` component.\n *\n * A `svgText` is used for rendering text in SVG graphics. It supports properties\n * like position (x, y), font styling (fontSize, fontFamily, fontWeight), text\n * alignment, fill, stroke, and various styling options for text rendering.\n *\n * @param props - The properties for configuring the svgText component.\n * @returns A `NubeComponentSvgText` object representing the svgText component.\n */\nexport const svgText = (\n\tprops: NubeComponentSvgTextProps,\n): NubeComponentSvgText => ({\n\ttype: \"svgText\",\n\t...props,\n\t__internalId: generateInternalId(\"svgText\", props),\n});\n","import type {\n\tNubeComponentTSpan,\n\tNubeComponentTSpanProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgTspan` component.\n *\n * A `svgTspan` is used for styling portions of text within SVG text elements.\n * It supports properties like position (x, y), font styling, fill, stroke, and\n * various styling options for text spans within SVG text.\n *\n * @param props - The properties for configuring the svgTspan component.\n * @returns A `NubeComponentTSpan` object representing the svgTspan component.\n */\nexport const svgTspan = (\n\tprops: NubeComponentTSpanProps,\n): NubeComponentTSpan => ({\n\ttype: \"svgTspan\",\n\t...props,\n\t__internalId: generateInternalId(\"svgTspan\", props),\n});\n","import type {\n\tNubeComponentDefs,\n\tNubeComponentDefsProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgDefs` component.\n *\n * A `svgDefs` is used for defining reusable SVG elements like gradients, patterns,\n * filters, and other definitions. It can contain child elements that define\n * reusable graphics objects.\n *\n * @param props - The properties for configuring the svgDefs component.\n * @returns A `NubeComponentDefs` object representing the svgDefs component.\n */\nexport const svgDefs = (props: NubeComponentDefsProps): NubeComponentDefs => ({\n\ttype: \"svgDefs\",\n\t...props,\n\t__internalId: generateInternalId(\"svgDefs\", props),\n});\n","import type {\n\tNubeComponentStop,\n\tNubeComponentStopProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgStop` component.\n *\n * A `svgStop` is used within gradient definitions to specify color stops. It supports\n * properties like offset (position in the gradient), stopColor, and stopOpacity\n * for defining gradient color transitions.\n *\n * @param props - The properties for configuring the svgStop component.\n * @returns A `NubeComponentStop` object representing the svgStop component.\n */\nexport const svgStop = (props: NubeComponentStopProps): NubeComponentStop => ({\n\ttype: \"svgStop\",\n\t...props,\n\t__internalId: generateInternalId(\"svgStop\", props),\n});\n","import type {\n\tNubeComponentLinearGradient,\n\tNubeComponentLinearGradientProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgLinearGradient` component.\n *\n * A `svgLinearGradient` is used for defining linear gradients in SVG graphics.\n * It supports properties like gradient direction (x1, y1, x2, y2), gradientUnits,\n * and can contain stop elements to define color transitions.\n *\n * @param props - The properties for configuring the svgLinearGradient component.\n * @returns A `NubeComponentLinearGradient` object representing the svgLinearGradient component.\n */\nexport const svgLinearGradient = (\n\tprops: NubeComponentLinearGradientProps,\n): NubeComponentLinearGradient => ({\n\ttype: \"svgLinearGradient\",\n\t...props,\n\t__internalId: generateInternalId(\"svgLinearGradient\", props),\n});\n","import type {\n\tNubeComponentRadialGradient,\n\tNubeComponentRadialGradientProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgRadialGradient` component.\n *\n * A `svgRadialGradient` is used for defining radial gradients in SVG graphics.\n * It supports properties like center (cx, cy), radius (r), focal point (fx, fy),\n * gradientUnits, and can contain stop elements to define color transitions.\n *\n * @param props - The properties for configuring the svgRadialGradient component.\n * @returns A `NubeComponentRadialGradient` object representing the svgRadialGradient component.\n */\nexport const svgRadialGradient = (\n\tprops: NubeComponentRadialGradientProps,\n): NubeComponentRadialGradient => ({\n\ttype: \"svgRadialGradient\",\n\t...props,\n\t__internalId: generateInternalId(\"svgRadialGradient\", props),\n});\n","import type {\n\tNubeComponentMask,\n\tNubeComponentMaskProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgMask` component.\n *\n * A `svgMask` is used for defining masks in SVG graphics that control the opacity\n * of other elements. It supports properties like position (x, y), size (width, height),\n * maskUnits, and can contain child elements that define the mask content.\n *\n * @param props - The properties for configuring the svgMask component.\n * @returns A `NubeComponentMask` object representing the svgMask component.\n */\nexport const svgMask = (props: NubeComponentMaskProps): NubeComponentMask => ({\n\ttype: \"svgMask\",\n\t...props,\n\t__internalId: generateInternalId(\"svgMask\", props),\n});\n","import type {\n\tNubeComponentClipPath,\n\tNubeComponentClipPathProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgClipPath` component.\n *\n * A `svgClipPath` is used for defining clipping paths in SVG graphics that restrict\n * the rendering area of other elements. It supports properties like clipPathUnits\n * and can contain child elements that define the clipping shape.\n *\n * @param props - The properties for configuring the svgClipPath component.\n * @returns A `NubeComponentClipPath` object representing the svgClipPath component.\n */\nexport const svgClipPath = (\n\tprops: NubeComponentClipPathProps,\n): NubeComponentClipPath => ({\n\ttype: \"svgClipPath\",\n\t...props,\n\t__internalId: generateInternalId(\"svgClipPath\", props),\n});\n","import type {\n\tNubeComponentUse,\n\tNubeComponentUseProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgUse` component.\n *\n * A `svgUse` is used for referencing and reusing other SVG elements. It supports\n * properties like href (reference to the element), position (x, y), size (width, height),\n * and transform for positioning and scaling the referenced element.\n *\n * @param props - The properties for configuring the svgUse component.\n * @returns A `NubeComponentUse` object representing the svgUse component.\n */\nexport const svgUse = (props: NubeComponentUseProps): NubeComponentUse => ({\n\ttype: \"svgUse\",\n\t...props,\n\t__internalId: generateInternalId(\"svgUse\", props),\n});\n","import type {\n\tNubeComponentSymbol,\n\tNubeComponentSymbolProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgSymbol` component.\n *\n * A `svgSymbol` is used for defining reusable symbols in SVG graphics. It supports\n * properties like viewBox, preserveAspectRatio, and can contain child elements\n * that define the symbol content for later reuse with the use element.\n *\n * @param props - The properties for configuring the svgSymbol component.\n * @returns A `NubeComponentSymbol` object representing the svgSymbol component.\n */\nexport const svgSymbol = (\n\tprops: NubeComponentSymbolProps,\n): NubeComponentSymbol => ({\n\ttype: \"svgSymbol\",\n\t...props,\n\t__internalId: generateInternalId(\"svgSymbol\", props),\n});\n","import type {\n\tNubeComponentPattern,\n\tNubeComponentPatternProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgPattern` component.\n *\n * A `svgPattern` is used for defining repeating patterns in SVG graphics. It supports\n * properties like position (x, y), size (width, height), patternUnits, viewBox,\n * and can contain child elements that define the pattern content.\n *\n * @param props - The properties for configuring the svgPattern component.\n * @returns A `NubeComponentPattern` object representing the svgPattern component.\n */\nexport const svgPattern = (\n\tprops: NubeComponentPatternProps,\n): NubeComponentPattern => ({\n\ttype: \"svgPattern\",\n\t...props,\n\t__internalId: generateInternalId(\"svgPattern\", props),\n});\n","import type {\n\tNubeComponentFilter,\n\tNubeComponentFilterProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgFilter` component.\n *\n * A `svgFilter` is used for defining filter effects in SVG graphics. It supports\n * properties like position (x, y), size (width, height), filterUnits, primitiveUnits,\n * and can contain filter primitive elements that define the filter operations.\n *\n * @param props - The properties for configuring the svgFilter component.\n * @returns A `NubeComponentFilter` object representing the svgFilter component.\n */\nexport const svgFilter = (\n\tprops: NubeComponentFilterProps,\n): NubeComponentFilter => ({\n\ttype: \"svgFilter\",\n\t...props,\n\t__internalId: generateInternalId(\"svgFilter\", props),\n});\n","import type {\n\tNubeComponentFeGaussianBlur,\n\tNubeComponentFeGaussianBlurProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgFeGaussianBlur` component.\n *\n * A `svgFeGaussianBlur` is a filter primitive that applies a Gaussian blur effect\n * to SVG graphics. It supports properties like stdDeviation (blur amount) and\n * edgeMode for handling edge pixels during blurring.\n *\n * @param props - The properties for configuring the svgFeGaussianBlur component.\n * @returns A `NubeComponentFeGaussianBlur` object representing the svgFeGaussianBlur component.\n */\nexport const svgFeGaussianBlur = (\n\tprops: NubeComponentFeGaussianBlurProps,\n): NubeComponentFeGaussianBlur => ({\n\ttype: \"svgFeGaussianBlur\",\n\t...props,\n\t__internalId: generateInternalId(\"svgFeGaussianBlur\", props),\n});\n","import type {\n\tNubeComponentFeOffset,\n\tNubeComponentFeOffsetProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgFeOffset` component.\n *\n * A `svgFeOffset` is a filter primitive that offsets the input image by a specified\n * amount. It supports properties like dx, dy (offset distances) and in (input source)\n * for creating shadow and displacement effects.\n *\n * @param props - The properties for configuring the svgFeOffset component.\n * @returns A `NubeComponentFeOffset` object representing the svgFeOffset component.\n */\nexport const svgFeOffset = (\n\tprops: NubeComponentFeOffsetProps,\n): NubeComponentFeOffset => ({\n\ttype: \"svgFeOffset\",\n\t...props,\n\t__internalId: generateInternalId(\"svgFeOffset\", props),\n});\n","import type {\n\tNubeComponentFeMerge,\n\tNubeComponentFeMergeProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgFeMerge` component.\n *\n * A `svgFeMerge` is a filter primitive that merges multiple input images together.\n * It can contain feMergeNode elements that specify the input sources to be merged\n * in order, creating composite effects from multiple filter operations.\n *\n * @param props - The properties for configuring the svgFeMerge component.\n * @returns A `NubeComponentFeMerge` object representing the svgFeMerge component.\n */\nexport const svgFeMerge = (\n\tprops: NubeComponentFeMergeProps,\n): NubeComponentFeMerge => ({\n\ttype: \"svgFeMerge\",\n\t...props,\n\t__internalId: generateInternalId(\"svgFeMerge\", props),\n});\n","import type {\n\tNubeComponentFeMergeNode,\n\tNubeComponentFeMergeNodeProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `svgFeMergeNode` component.\n *\n * A `svgFeMergeNode` is used within feMerge elements to specify input sources\n * for merging operations. It supports the in property to reference the input\n * source that should be included in the merge operation.\n *\n * @param props - The properties for configuring the svgFeMergeNode component.\n * @returns A `NubeComponentFeMergeNode` object representing the svgFeMergeNode component.\n */\nexport const svgFeMergeNode = (\n\tprops: NubeComponentFeMergeNodeProps,\n): NubeComponentFeMergeNode => ({\n\ttype: \"svgFeMergeNode\",\n\t...props,\n\t__internalId: generateInternalId(\"svgFeMergeNode\", props),\n});\n","import type {\n\tNubeComponentFormRoot,\n\tNubeComponentFormRootProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formRoot` component.\n *\n * A `formRoot` declares a native HTML form whose submission is executed on\n * the main thread. On submit the host adapter builds a `FormData` from the\n * descendant `formField` inputs, performs `fetch(target, { method, body })`,\n * and dispatches the outcome back to the worker through the optional\n * `onSuccess` / `onFail` callbacks.\n *\n * @param props - The properties for configuring the formRoot component.\n * @returns A `NubeComponentFormRoot` object representing the form container.\n */\nexport const formRoot = (\n\tprops: NubeComponentFormRootProps,\n): NubeComponentFormRoot => ({\n\ttype: \"formRoot\",\n\t...props,\n\t__internalId: generateInternalId(\"formRoot\", props),\n});\n","import type {\n\tNubeComponentFormField,\n\tNubeComponentFormFieldProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formField` component.\n *\n * A `formField` is the declarative counterpart of an HTML `<input>` bound to\n * the surrounding `formRoot`. It supports the native Constraint Validation\n * API attributes (`required`, `minLength`, `maxLength`, `pattern`) and an\n * extra `maxSize` for `inputType: \"file\"` that the adapter maps to\n * `rangeOverflow`.\n *\n * @param props - The properties for configuring the formField component.\n * @returns A `NubeComponentFormField` object representing the form input.\n */\nexport const formField = (\n\tprops: NubeComponentFormFieldProps,\n): NubeComponentFormField => ({\n\ttype: \"formField\",\n\t...props,\n\t__internalId: generateInternalId(\"formField\", props),\n});\n","import type {\n\tNubeComponentFormFieldError,\n\tNubeComponentFormFieldErrorProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formFieldError` component.\n *\n * A `formFieldError` is an inline validation message associated with a\n * single `formField`. It must be a direct child of `formField`. The error\n * remains in the DOM at all times and its visibility is controlled via CSS\n * using the parent's `data-validity-state` / `data-validity-error`\n * attributes.\n *\n * @param props - The properties for configuring the formFieldError component.\n * @returns A `NubeComponentFormFieldError` object representing the message.\n */\nexport const formFieldError = (\n\tprops: NubeComponentFormFieldErrorProps,\n): NubeComponentFormFieldError => ({\n\ttype: \"formFieldError\",\n\t...props,\n\t__internalId: generateInternalId(\"formFieldError\", props),\n});\n","import type {\n\tNubeComponentFormSelect,\n\tNubeComponentFormSelectProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formSelect` component.\n *\n * A `formSelect` is the dropdown counterpart of `formField`, bound to the\n * surrounding `formRoot`. It mirrors the public `select` props but adds\n * Form-driven validation (data-validity-state, blur-triggered pristine\n * transition, force-validation on submit).\n *\n * @param props - The properties for configuring the formSelect component.\n * @returns A `NubeComponentFormSelect` object representing the select.\n */\nexport const formSelect = (\n\tprops: NubeComponentFormSelectProps,\n): NubeComponentFormSelect => ({\n\ttype: \"formSelect\",\n\t...props,\n\t__internalId: generateInternalId(\"formSelect\", props),\n});\n","import type {\n\tNubeComponentFormCheckbox,\n\tNubeComponentFormCheckboxProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formCheckbox` component.\n *\n * A `formCheckbox` is a single checkbox bound to the surrounding `formRoot`.\n * It mirrors the public `checkbox` props but adds Form-driven validation\n * (`required` is mapped to the native `valueMissing` validity key).\n *\n * @param props - The properties for configuring the formCheckbox component.\n * @returns A `NubeComponentFormCheckbox` object representing the checkbox.\n */\nexport const formCheckbox = (\n\tprops: NubeComponentFormCheckboxProps,\n): NubeComponentFormCheckbox => ({\n\ttype: \"formCheckbox\",\n\t...props,\n\t__internalId: generateInternalId(\"formCheckbox\", props),\n});\n","import type {\n\tNubeComponentFormRadio,\n\tNubeComponentFormRadioProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formRadio` component.\n *\n * A `formRadio` renders a group of radio inputs bound to the surrounding\n * `formRoot`. It mirrors the public `select` props shape (a list of\n * `{ label, value }` options + an optional default `value`) but renders as\n * a radio group and adds Form-driven validation (`required` is mapped to\n * the native `valueMissing` validity key when no option is selected).\n *\n * @param props - The properties for configuring the formRadio component.\n * @returns A `NubeComponentFormRadio` object representing the radio group.\n */\nexport const formRadio = (\n\tprops: NubeComponentFormRadioProps,\n): NubeComponentFormRadio => ({\n\ttype: \"formRadio\",\n\t...props,\n\t__internalId: generateInternalId(\"formRadio\", props),\n});\n","import type {\n\tNubeComponentFormResetter,\n\tNubeComponentFormResetterProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formResetter` component.\n *\n * A `formResetter` is equivalent to `<button type=\"reset\">` and clears every\n * descendant form field back to its initial value when clicked. The reset\n * is handled by the surrounding `formRoot` listening to the native form\n * `reset` event — no worker round-trip is required.\n *\n * @param props - The properties for configuring the formResetter component.\n * @returns A `NubeComponentFormResetter` object representing the button.\n */\nexport const formResetter = (\n\tprops: NubeComponentFormResetterProps,\n): NubeComponentFormResetter => ({\n\ttype: \"formResetter\",\n\t...props,\n\t__internalId: generateInternalId(\"formResetter\", props),\n});\n","import type {\n\tNubeComponentFormSubmitter,\n\tNubeComponentFormSubmitterProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formSubmitter` component.\n *\n * A `formSubmitter` is equivalent to `<button type=\"submit\">` and triggers\n * the submission of the surrounding `formRoot`. Children render as the\n * button label.\n *\n * @param props - The properties for configuring the formSubmitter component.\n * @returns A `NubeComponentFormSubmitter` object representing the button.\n */\nexport const formSubmitter = (\n\tprops: NubeComponentFormSubmitterProps,\n): NubeComponentFormSubmitter => ({\n\ttype: \"formSubmitter\",\n\t...props,\n\t__internalId: generateInternalId(\"formSubmitter\", props),\n});\n","import type {\n\tNubeComponentFormSuccess,\n\tNubeComponentFormSuccessProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formSuccess` component.\n *\n * Conditional container rendered by `formRoot` when the submit fetch\n * resolves with `ok: true`. While shown, the regular form children are\n * unmounted; only this block and its descendants are visible. A\n * `formResetter` placed inside returns the form to the `idle` state.\n *\n * @param props - The properties for configuring the formSuccess component.\n * @returns A `NubeComponentFormSuccess` object.\n */\nexport const formSuccess = (\n\tprops: NubeComponentFormSuccessProps,\n): NubeComponentFormSuccess => ({\n\ttype: \"formSuccess\",\n\t...props,\n\t__internalId: generateInternalId(\"formSuccess\", props),\n});\n","import type {\n\tNubeComponentFormFailure,\n\tNubeComponentFormFailureProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formFailure` component.\n *\n * Conditional container rendered by `formRoot` when the submit fetch\n * rejects or the response is not `ok`. Mount/unmount semantics mirror\n * `formSuccess`.\n *\n * @param props - The properties for configuring the formFailure component.\n * @returns A `NubeComponentFormFailure` object.\n */\nexport const formFailure = (\n\tprops: NubeComponentFormFailureProps,\n): NubeComponentFormFailure => ({\n\ttype: \"formFailure\",\n\t...props,\n\t__internalId: generateInternalId(\"formFailure\", props),\n});\n","import type {\n\tNubeComponentFormSending,\n\tNubeComponentFormSendingProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"./generateInternalId\";\n\n/**\n * Creates a `formSending` component.\n *\n * Conditional container rendered by `formRoot` while the submit fetch\n * is in flight. Typically used for loaders / skeletons.\n *\n * @param props - The properties for configuring the formSending component.\n * @returns A `NubeComponentFormSending` object.\n */\nexport const formSending = (\n\tprops: NubeComponentFormSendingProps,\n): NubeComponentFormSending => ({\n\ttype: \"formSending\",\n\t...props,\n\t__internalId: generateInternalId(\"formSending\", props),\n});\n","import type {\n\tThemeColorInterface,\n\tThemeColorOpacityRange,\n} from \"@tiendanube/nube-sdk-types\";\n\nexport class ThemeColor implements ThemeColorInterface {\n\tconstructor(private readonly token: string) {}\n\n\topacity(opacity: ThemeColorOpacityRange) {\n\t\treturn `var(--${this.token}-opacity-${opacity.toString().padStart(2, \"0\")})`;\n\t}\n\n\ttoValue(): string {\n\t\treturn `var(--${this.token})`;\n\t}\n\n\ttoString() {\n\t\treturn this.toValue();\n\t}\n}\n","import type { NubeComponentStyle } from \"@tiendanube/nube-sdk-types\";\nimport { ThemeColor } from \"./ThemeColor\";\n\nfunction parseValue(value: unknown): unknown {\n\tif (value instanceof ThemeColor) {\n\t\treturn value.toValue();\n\t}\n\treturn value;\n}\n\nfunction parseStyleObject(\n\tstyle: Record<string, unknown>,\n): Record<string, unknown> {\n\tconst parsed: Record<string, unknown> = {};\n\tfor (const key in style) {\n\t\tconst val = style[key];\n\t\tif (\n\t\t\tval &&\n\t\t\ttypeof val === \"object\" &&\n\t\t\t!Array.isArray(val) &&\n\t\t\t!(val instanceof ThemeColor) &&\n\t\t\tObject.prototype.hasOwnProperty.call(val, \"toString\")\n\t\t) {\n\t\t\tparsed[key] = parseStyleObject(val as Record<string, unknown>);\n\t\t} else {\n\t\t\tparsed[key] = parseValue(val);\n\t\t}\n\t}\n\treturn parsed;\n}\n\nexport const StyleSheet = {\n\tcreate<T extends { [key: string]: NubeComponentStyle }>(styles: T): T {\n\t\tconst parsedStyles: Record<string, unknown> = {};\n\t\tfor (const key in styles) {\n\t\t\tparsedStyles[key] = parseStyleObject(\n\t\t\t\tstyles[key] as Record<string, unknown>,\n\t\t\t);\n\t\t}\n\t\treturn parsedStyles as T;\n\t},\n} as const;\n","import type {\n\tThemeCSSValue,\n\tThemeColorOpacityValue,\n\tThemeColorValue,\n} from \"@tiendanube/nube-sdk-types\";\nimport { ThemeColor } from \"./ThemeColor\";\n\nexport const theme = {\n\tcolor: {\n\t\taccent: new ThemeColor(\"accent-color\"),\n\t\tmain: {\n\t\t\tforeground: new ThemeColor(\"main-foreground\"),\n\t\t\tbackground: new ThemeColor(\"main-background\"),\n\t\t},\n\t\t/**\n\t\t * Checkout exposes these tokens with a leading underscore (`--_success`),\n\t\t * while the storefront exposes them without it (`--success`). Declaring the\n\t\t * underscore-free name as the `var()` fallback keeps a single theme object\n\t\t * working in both environments.\n\t\t */\n\t\tsuccess: {\n\t\t\tlight: \"var(--_success-light, var(--success-light))\",\n\t\t\tmedium: \"var(--_success, var(--success))\",\n\t\t\tdark: \"var(--_success-dark, var(--success-dark))\",\n\t\t},\n\t\twarning: {\n\t\t\tlight: \"var(--_warning-light, var(--warning-light))\",\n\t\t\tmedium: \"var(--_warning, var(--warning))\",\n\t\t\tdark: \"var(--_warning-dark, var(--warning-dark))\",\n\t\t},\n\t\tdanger: {\n\t\t\tlight: \"var(--_danger-light, var(--danger-light))\",\n\t\t\tmedium: \"var(--_danger, var(--danger))\",\n\t\t\tdark: \"var(--_danger-dark, var(--danger-dark))\",\n\t\t},\n\t\tinfo: {\n\t\t\tlight: \"var(--_info-light, var(--info-light))\",\n\t\t\tmedium: \"var(--_info, var(--info))\",\n\t\t\tdark: \"var(--_info-dark, var(--info-dark))\",\n\t\t},\n\t\tneutral: {\n\t\t\tlight: \"var(--_neutral-light, var(--neutral-light))\",\n\t\t\tmedium: \"var(--_neutral, var(--neutral))\",\n\t\t\tdark: \"var(--_neutral-dark, var(--neutral-dark))\",\n\t\t},\n\t\ttext: {\n\t\t\thigh: \"var(--text-foreground-high)\",\n\t\t\tmedium: \"var(--text-foreground-medium)\",\n\t\t\tlow: \"var(--text-foreground-low)\",\n\t\t},\n\t},\n\ttypography: {\n\t\t/**\n\t\t * Same underscore fallback as the semantic colors above: Checkout exposes\n\t\t * these tokens as `--_*`, the storefront without the underscore.\n\t\t */\n\t\tbody: {\n\t\t\tfont: \"var(--_body-font, var(--body-font))\",\n\t\t\tfontSize: \"var(--_body-font-size, var(--body-font-size))\",\n\t\t\tlineHeight: \"var(--_body-font-leading, var(--body-font-leading))\",\n\t\t},\n\t\txl: {\n\t\t\tfontSize: \"var(--_font-xl, var(--font-xl))\",\n\t\t\tlineHeight: \"var(--_font-xl-leading, var(--font-xl-leading))\",\n\t\t},\n\t\tlg: {\n\t\t\tfontSize: \"var(--_font-lg, var(--font-lg))\",\n\t\t\tlineHeight: \"var(--_font-lg-leading, var(--font-lg-leading))\",\n\t\t},\n\t\tbase: {\n\t\t\tfontSize: \"var(--_font-base, var(--font-base))\",\n\t\t\tlineHeight: \"var(--_font-base-leading, var(--font-base-leading))\",\n\t\t},\n\t\tmd: {\n\t\t\tfontSize: \"var(--_font-md, var(--font-md))\",\n\t\t\tlineHeight: \"var(--_font-md-leading, var(--font-md-leading))\",\n\t\t},\n\t\tsm: {\n\t\t\tfontSize: \"var(--_font-sm, var(--font-sm))\",\n\t\t\tlineHeight: \"var(--_font-sm-leading, var(--font-sm-leading))\",\n\t\t},\n\t\txs: {\n\t\t\tfontSize: \"var(--_font-xs, var(--font-xs))\",\n\t\t\tlineHeight: \"var(--_font-xs-leading, var(--font-xs-leading))\",\n\t\t},\n\t},\n\tborder: {\n\t\tcolor: \"var(--border-color)\",\n\t\tradius: \"var(--border-radius)\",\n\t},\n\tbox: {\n\t\tborder: {\n\t\t\tcolor: \"var(--box-border-color)\",\n\t\t\tradius: \"var(--box-border-radius)\",\n\t\t},\n\t},\n\tinput: {\n\t\tborder: {\n\t\t\tcolor: \"var(--input-border-color)\",\n\t\t},\n\t},\n\tbutton: {\n\t\tforeground: \"var(--button-foreground)\",\n\t\tbackground: \"var(--button-background)\",\n\t\t/**\n\t\t * @deprecated Use button.border.color instead.\n\t\t */\n\t\tborderColor: \"var(--button-border-color)\",\n\t\t/**\n\t\t * @deprecated Use button.border.radius instead.\n\t\t */\n\t\tborderRadius: \"var(--button-border-radius)\",\n\t\t/**\n\t\t * @deprecated Use button.border.width instead.\n\t\t */\n\t\tborderWidth: \"var(--button-border-width)\",\n\t\tborder: {\n\t\t\tcolor: \"var(--button-border-color)\",\n\t\t\tradius: \"var(--button-border-radius)\",\n\t\t\twidth: \"var(--button-border-width)\",\n\t\t},\n\t},\n\tlabel: {\n\t\tforeground: \"var(--label-foreground)\",\n\t\tbackground: \"var(--label-background)\",\n\t},\n\theader: {\n\t\tforeground: \"var(--header-foreground)\",\n\t\tbackground: \"var(--header-background)\",\n\t\tlogo: {\n\t\t\tmaxWidth: \"var(--header-logo-max-width)\",\n\t\t\tmaxHeight: \"var(--header-logo-max-height)\",\n\t\t\tfont: \"var(--header-logo-font)\",\n\t\t\tfontSize: \"var(--header-logo-font-size)\",\n\t\t\tfontWeight: \"var(--header-logo-font-weight)\",\n\t\t\ttextTransform: \"var(--header-logo-text-transform)\",\n\t\t\tletterSpacing: \"var(--header-logo-letter-spacing)\",\n\t\t},\n\t},\n\tfooter: {\n\t\tforeground: \"var(--footer-foreground)\",\n\t\tbackground: \"var(--footer-background)\",\n\t},\n\theading: {\n\t\tfont: \"var(--heading-font)\",\n\t\tfontWeight: \"var(--heading-font-weight)\",\n\t\ttextTransform: \"var(--heading-text-transform)\",\n\t\tletterSpacing: \"var(--heading-letter-spacing)\",\n\t},\n} as const;\n\nexport type Theme = typeof theme;\n\n// Re-export types from the types package for backward compatibility\nexport type { ThemeColorValue, ThemeColorOpacityValue, ThemeCSSValue };\n","/**\n * Minifies an inline CSS string by removing line breaks and unnecessary spaces.\n */\nexport function minify(css: string): string {\n\treturn css\n\t\t.replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\") // remove comments\n\t\t.replace(/\\s*([\\{\\}:;,])\\s*/g, \"$1\") // remove spaces around { } : ; ,\n\t\t.replace(/\\s+/g, \" \") // collapse multiple spaces into one\n\t\t.replace(/;\\}/g, \"}\") // remove ; before }\n\t\t.replace(/\\n/g, \"\") // remove break lines\n\t\t.trim();\n}\n","/**\n * Generates a short random ID.\n * @param length - The length of the ID.\n * @returns A short random ID.\n */\nexport function shortid(length = 8): string {\n\tconst chars =\n\t\t\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n\tconst array = new Uint8Array(length);\n\tcrypto.getRandomValues(array);\n\treturn Array.from(array, (byte) => chars[byte % chars.length]).join(\"\");\n}\n","import { minify } from \"./minify\";\nimport { shortid } from \"./shortid\";\n\nexport type KeyframesObject = {\n\tname: string;\n\tcss: string;\n\ttoString(): string;\n};\n\n/**\n * Generates a unique name and returns a keyframes object that can be interpolated in template literals.\n */\nexport function keyframes(\n\tstrings: TemplateStringsArray,\n\t...exprs: unknown[]\n): KeyframesObject {\n\tconst rawCSS = String.raw({ raw: strings }, ...exprs);\n\tconst css = minify(rawCSS);\n\tconst id = `kf-${shortid()}`;\n\n\treturn {\n\t\tname: id,\n\t\tcss: `@keyframes ${id}{${css}}`,\n\t\ttoString() {\n\t\t\treturn id;\n\t\t},\n\t};\n}\n\n/**\n * Type guard to check if an object is a keyframes object.\n * @param value - The object to check.\n * @returns True if the object is a keyframes object, false otherwise.\n */\nexport function isKeyframesObject(value: unknown): value is KeyframesObject {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"css\" in value &&\n\t\t\"name\" in value &&\n\t\t\"toString\" in value &&\n\t\ttypeof (value as KeyframesObject).toString === \"function\"\n\t);\n}\n","import type {\n\tNubeComponent,\n\tNubeComponentProps,\n} from \"@tiendanube/nube-sdk-types\";\nimport { generateInternalId } from \"../components/generateInternalId\";\nimport { isKeyframesObject } from \"./keyframes\";\nimport { minify } from \"./minify\";\n\n/**\n * Type for functions that create Nube components.\n * This is used to ensure type safety when creating styled components.\n */\ntype NubeComponentFunction<Props = NubeComponentProps> = (\n\tprops: Props,\n) => NubeComponent;\n\n/**\n * `styled` allows declarative styling with CSS-in-JS.\n * The CSS is inserted directly into the `styled` prop as a string literal.\n */\nexport function styled<Props extends NubeComponentProps>(\n\tbaseComponent: NubeComponentFunction<Props>,\n) {\n\treturn (strings: TemplateStringsArray, ...exprs: unknown[]) => {\n\t\tconst StyledComponent: NubeComponentFunction<Props> = (props) => {\n\t\t\tlet rawCSS = \"\";\n\t\t\tconst animation: string[] = [];\n\n\t\t\tfor (let i = 0; i < strings.length; i++) {\n\t\t\t\tconst currentString = strings[i] ?? \"\";\n\t\t\t\tconst expr = exprs[i];\n\n\t\t\t\tif (isKeyframesObject(expr)) {\n\t\t\t\t\tanimation.push(expr.css);\n\t\t\t\t\trawCSS += `${currentString}${expr.name} `;\n\t\t\t\t} else {\n\t\t\t\t\tconst value = expr === null || expr === undefined ? \"\" : String(expr);\n\t\t\t\t\trawCSS += `${currentString}${value}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst minifiedCSS = minify(`${animation.join(\"\")}${rawCSS}`);\n\n\t\t\tconst componentType = baseComponent.name || \"component\";\n\n\t\t\tconst internalId = generateInternalId(componentType, {\n\t\t\t\t...props,\n\t\t\t\t__styledCSS: minifiedCSS,\n\t\t\t});\n\n\t\t\t// Create the base component with pre-generated ID\n\t\t\tconst component = baseComponent({ ...props, __internalId: internalId });\n\n\t\t\tif (typeof component === \"string\") return component;\n\n\t\t\t// Apply the styled CSS\n\t\t\tcomponent.styled = `${component.styled || \"\"}${minifiedCSS}`;\n\n\t\t\treturn component;\n\t\t};\n\n\t\treturn StyledComponent as typeof baseComponent;\n\t};\n}\n"],"mappings":"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","names":[]}