draft-ole 0.9.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.
- package/LICENSE +21 -0
- package/README.ja.md +134 -0
- package/README.md +128 -0
- package/dist/chunk-5BNNDTRT.js +95 -0
- package/dist/chunk-5BNNDTRT.js.map +1 -0
- package/dist/chunk-STLTIBMA.js +7658 -0
- package/dist/chunk-STLTIBMA.js.map +1 -0
- package/dist/chunk-YK4Y4ENL.js +389 -0
- package/dist/chunk-YK4Y4ENL.js.map +1 -0
- package/dist/entries/app.cjs +7337 -0
- package/dist/entries/app.cjs.map +1 -0
- package/dist/entries/app.d.cts +115 -0
- package/dist/entries/app.d.ts +115 -0
- package/dist/entries/app.js +10 -0
- package/dist/entries/app.js.map +1 -0
- package/dist/entries/page.cjs +7558 -0
- package/dist/entries/page.cjs.map +1 -0
- package/dist/entries/page.d.cts +2 -0
- package/dist/entries/page.d.ts +2 -0
- package/dist/entries/page.js +30 -0
- package/dist/entries/page.js.map +1 -0
- package/dist/index.cjs +10524 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4700 -0
- package/dist/index.d.ts +4700 -0
- package/dist/index.js +2573 -0
- package/dist/index.js.map +1 -0
- package/dist/page-DylNkWXm.d.ts +366 -0
- package/dist/page-h3DPzs8l.d.cts +366 -0
- package/dist/transformer/call-detector.d.ts +38 -0
- package/dist/transformer/call-detector.d.ts.map +1 -0
- package/dist/transformer/call-detector.js +151 -0
- package/dist/transformer/call-detector.js.map +1 -0
- package/dist/transformer/command-injector.d.ts +27 -0
- package/dist/transformer/command-injector.d.ts.map +1 -0
- package/dist/transformer/command-injector.js +111 -0
- package/dist/transformer/command-injector.js.map +1 -0
- package/dist/transformer/diagnostic-reporter.d.ts +81 -0
- package/dist/transformer/diagnostic-reporter.d.ts.map +1 -0
- package/dist/transformer/diagnostic-reporter.js +330 -0
- package/dist/transformer/diagnostic-reporter.js.map +1 -0
- package/dist/transformer/each-scope-branch.d.ts +28 -0
- package/dist/transformer/each-scope-branch.d.ts.map +1 -0
- package/dist/transformer/each-scope-branch.js +95 -0
- package/dist/transformer/each-scope-branch.js.map +1 -0
- package/dist/transformer/each-state-rewriter.d.ts +117 -0
- package/dist/transformer/each-state-rewriter.d.ts.map +1 -0
- package/dist/transformer/each-state-rewriter.js +393 -0
- package/dist/transformer/each-state-rewriter.js.map +1 -0
- package/dist/transformer/format-diagnostics.d.ts +27 -0
- package/dist/transformer/format-diagnostics.d.ts.map +1 -0
- package/dist/transformer/format-diagnostics.js +50 -0
- package/dist/transformer/format-diagnostics.js.map +1 -0
- package/dist/transformer/handler-ir-extractor.d.ts +71 -0
- package/dist/transformer/handler-ir-extractor.d.ts.map +1 -0
- package/dist/transformer/handler-ir-extractor.js +171 -0
- package/dist/transformer/handler-ir-extractor.js.map +1 -0
- package/dist/transformer/handler-serializer.d.ts +56 -0
- package/dist/transformer/handler-serializer.d.ts.map +1 -0
- package/dist/transformer/handler-serializer.js +315 -0
- package/dist/transformer/handler-serializer.js.map +1 -0
- package/dist/transformer/helper-context-resolver.d.ts +180 -0
- package/dist/transformer/helper-context-resolver.d.ts.map +1 -0
- package/dist/transformer/helper-context-resolver.js +376 -0
- package/dist/transformer/helper-context-resolver.js.map +1 -0
- package/dist/transformer/helper-decl-utils.d.ts +28 -0
- package/dist/transformer/helper-decl-utils.d.ts.map +1 -0
- package/dist/transformer/helper-decl-utils.js +92 -0
- package/dist/transformer/helper-decl-utils.js.map +1 -0
- package/dist/transformer/identifier-collector.d.ts +28 -0
- package/dist/transformer/identifier-collector.d.ts.map +1 -0
- package/dist/transformer/identifier-collector.js +184 -0
- package/dist/transformer/identifier-collector.js.map +1 -0
- package/dist/transformer/index.d.ts +56 -0
- package/dist/transformer/index.d.ts.map +1 -0
- package/dist/transformer/index.js +333 -0
- package/dist/transformer/index.js.map +1 -0
- package/dist/transformer/inline-recovery.d.ts +109 -0
- package/dist/transformer/inline-recovery.d.ts.map +1 -0
- package/dist/transformer/inline-recovery.js +369 -0
- package/dist/transformer/inline-recovery.js.map +1 -0
- package/dist/transformer/label-injector.d.ts +105 -0
- package/dist/transformer/label-injector.d.ts.map +1 -0
- package/dist/transformer/label-injector.js +221 -0
- package/dist/transformer/label-injector.js.map +1 -0
- package/dist/transformer/package.json +3 -0
- package/dist/transformer/per-call-context.d.ts +95 -0
- package/dist/transformer/per-call-context.d.ts.map +1 -0
- package/dist/transformer/per-call-context.js +3 -0
- package/dist/transformer/per-call-context.js.map +1 -0
- package/dist/transformer/state-id-fallback.d.ts +85 -0
- package/dist/transformer/state-id-fallback.d.ts.map +1 -0
- package/dist/transformer/state-id-fallback.js +132 -0
- package/dist/transformer/state-id-fallback.js.map +1 -0
- package/dist/transformer/state-id-resolver.d.ts +104 -0
- package/dist/transformer/state-id-resolver.d.ts.map +1 -0
- package/dist/transformer/state-id-resolver.js +222 -0
- package/dist/transformer/state-id-resolver.js.map +1 -0
- package/dist/transformer/theme-class-detector.d.ts +47 -0
- package/dist/transformer/theme-class-detector.d.ts.map +1 -0
- package/dist/transformer/theme-class-detector.js +242 -0
- package/dist/transformer/theme-class-detector.js.map +1 -0
- package/dist/transformer/varname-resolver.d.ts +53 -0
- package/dist/transformer/varname-resolver.d.ts.map +1 -0
- package/dist/transformer/varname-resolver.js +231 -0
- package/dist/transformer/varname-resolver.js.map +1 -0
- package/dist/transformer/whitelist-registry.d.ts +68 -0
- package/dist/transformer/whitelist-registry.d.ts.map +1 -0
- package/dist/transformer/whitelist-registry.js +122 -0
- package/dist/transformer/whitelist-registry.js.map +1 -0
- package/dist/transformer/whitelist-validator.d.ts +59 -0
- package/dist/transformer/whitelist-validator.d.ts.map +1 -0
- package/dist/transformer/whitelist-validator.js +493 -0
- package/dist/transformer/whitelist-validator.js.map +1 -0
- package/dist/types-BXV3vhHS.d.cts +4590 -0
- package/dist/types-BXV3vhHS.d.ts +4590 -0
- package/package.json +121 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/html/attributes/attribute-builder-base.ts","../src/html/attributes/attribute-builder-form.ts","../src/html/attributes/attribute-builder-media.ts","../src/css/manager/default-css-manager.ts","../src/css/style/color/css-color-name.ts","../src/css/style/color/css-color.ts","../src/css/layout/lazy-layout/lazy-layout-manager.ts","../src/css/variables/style-template-label.ts","../src/css/variables/global-css.ts","../src/css/variables/style-template.ts","../src/css/variables/css-shared-style.ts","../src/css/variables/unified-theme.ts","../src/css/variables/css-theme.ts","../src/css/variables/global-dsl.ts","../src/css/css.ts","../src/html/protocols/jquery-method-type.ts","../src/js/js-template.ts","../src/js/vanilla/emit-handler.ts","../src/css/variables/tag-dsl.generated.ts","../src/css/variables/css-namespace.ts"],"sourcesContent":["/**\n * Task 6.1: BaseAttributeBuilder\n *\n * BaseAttributeBuilder: 共通属性(id, title, lang, role, tabindex, hidden, custom, ARIA)の設定と\n * class追加の4パターン(可変長引数、配列、条件付き、辞書Toggle形式)を提供する。\n *\n * Requirements: 7.1, 7.2\n */\nimport type { AriaAttributeKey, KeyValueAttributeKey } from './attribute-keys.js';\nimport { HtmlAttribute } from './html-attribute.js';\nimport type { AttributeBuilderProtocol } from '../protocols/attribute-builder-protocol.js';\n\n/**\n * Base attribute builder providing common HTML attributes and fluent API.\n *\n * @remarks\n * This class implements {@link AttributeBuilderProtocol} and provides:\n * - Common attributes (id, title, lang, role, tabindex, hidden)\n * - ARIA attributes (aria-label, aria-hidden, aria-expanded)\n * - Custom data-* attributes\n * - Four class management patterns (variadic, array, conditional, toggle)\n * - Automatic class name normalization and deduplication\n *\n * Class names are accumulated internally and merged into a single normalized\n * class attribute when {@link build} is called.\n *\n * @example\n * Basic usage\n * ```typescript\n * const attrs = new BaseAttributeBuilder()\n * .setId('main-content')\n * .addClass('container', 'mx-auto')\n * .setAriaLabel('Main content area')\n * .build();\n * ```\n *\n * @example\n * Conditional classes\n * ```typescript\n * const isActive = true;\n * const attrs = new BaseAttributeBuilder()\n * .addClass('btn')\n * .addClassWhen('btn-active', isActive)\n * .addClassesToggle({\n * 'btn-primary': isPrimary,\n * 'btn-disabled': isDisabled\n * })\n * .build();\n * ```\n *\n * @example\n * Custom data attributes\n * ```typescript\n * const attrs = new BaseAttributeBuilder()\n * .setCustomAttribute('theme', 'dark')\n * .setCustomAttribute('user-id', '12345')\n * .build();\n * // Produces: data-theme=\"dark\" data-user-id=\"12345\"\n * ```\n */\nexport class BaseAttributeBuilder implements AttributeBuilderProtocol {\n /** Accumulated attributes (excluding class, which is handled separately) */\n protected _attributes: HtmlAttribute[] = [];\n\n /** Accumulated class names (deduplicated and normalized on build) */\n protected _classNames: string[] = [];\n\n // ── Key-Value Helper ──\n\n /**\n * Adds a key-value HTML attribute.\n *\n * @param key - The attribute name\n * @param value - The attribute value\n * @returns This builder for method chaining\n *\n * @remarks\n * This helper centralizes the keyValue attribute creation pattern.\n * Subclasses may also use this helper for their own key-value attributes.\n */\n protected addKeyValue(key: KeyValueAttributeKey | AriaAttributeKey, value: string | number): this {\n this._attributes.push(HtmlAttribute.keyValue(key, String(value)));\n return this;\n }\n\n // ── Common Attributes ──\n\n /**\n * Sets the id attribute.\n *\n * @param id - The element ID\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setId('main-content');\n * // Produces: id=\"main-content\"\n * ```\n */\n setId(id: string): this {\n return this.addKeyValue('id', id);\n }\n\n /**\n * Sets the title attribute (tooltip text).\n *\n * @param title - The tooltip text\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setTitle('Click to expand');\n * // Produces: title=\"Click to expand\"\n * ```\n */\n setTitle(title: string): this {\n return this.addKeyValue('title', title);\n }\n\n /**\n * Sets the lang attribute (language code).\n *\n * @param lang - The language code (e.g., 'en', 'ja', 'fr')\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setLang('ja');\n * // Produces: lang=\"ja\"\n * ```\n */\n setLang(lang: string): this {\n return this.addKeyValue('lang', lang);\n }\n\n /**\n * Sets the role attribute (ARIA role).\n *\n * @param role - The ARIA role (e.g., 'button', 'navigation')\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setRole('navigation');\n * // Produces: role=\"navigation\"\n * ```\n */\n setRole(role: string): this {\n return this.addKeyValue('role', role);\n }\n\n /**\n * Sets the tabindex attribute.\n *\n * @param index - The tab order index (-1 for programmatically focusable, 0 for natural order)\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setTabindex(0); // Natural tab order\n * builder.setTabindex(-1); // Programmatically focusable only\n * ```\n */\n setTabindex(index: number): this {\n return this.addKeyValue('tabindex', index);\n }\n\n /**\n * Sets the hidden boolean attribute.\n *\n * @param hidden - If true, adds the hidden attribute\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setHidden(true); // Produces: hidden\n * builder.setHidden(false); // No attribute added\n * ```\n */\n setHidden(hidden: boolean): this {\n if (hidden) {\n this._attributes.push(HtmlAttribute.boolean('hidden'));\n }\n return this;\n }\n\n // ── Custom Attributes ──\n\n /**\n * Sets a custom data-* attribute.\n *\n * @param name - The data attribute name (without 'data-' prefix)\n * @param value - The attribute value\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setCustomAttribute('theme', 'dark');\n * // Produces: data-theme=\"dark\"\n *\n * builder.setCustomAttribute('user-id', '12345');\n * // Produces: data-user-id=\"12345\"\n * ```\n */\n setCustomAttribute(name: string, value: string): this {\n this._attributes.push(HtmlAttribute.custom(name, value));\n return this;\n }\n\n // ── ARIA Attributes ──\n\n /**\n * Sets the aria-label attribute.\n *\n * @param label - The accessible label text\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setAriaLabel('Close dialog');\n * // Produces: aria-label=\"Close dialog\"\n * ```\n */\n setAriaLabel(label: string): this {\n this._attributes.push(HtmlAttribute.ariaLabel(label));\n return this;\n }\n\n /**\n * Sets the aria-hidden attribute.\n *\n * @param hidden - Whether the element should be hidden from assistive technologies\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setAriaHidden(true);\n * // Produces: aria-hidden=\"true\"\n * ```\n */\n setAriaHidden(hidden: boolean): this {\n this._attributes.push(HtmlAttribute.ariaHidden(hidden));\n return this;\n }\n\n /**\n * Sets the aria-expanded attribute.\n *\n * @param expanded - Whether the element is currently expanded\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setAriaExpanded(false);\n * // Produces: aria-expanded=\"false\"\n * ```\n */\n setAriaExpanded(expanded: boolean): this {\n this._attributes.push(HtmlAttribute.ariaExpanded(expanded));\n return this;\n }\n\n // ── Class Management (4 Patterns) ──\n\n /**\n * Adds one or more class names (variadic pattern).\n *\n * @param classNames - One or more class name strings\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.addClass('btn', 'btn-primary', 'btn-large');\n * // Accumulates: ['btn', 'btn-primary', 'btn-large']\n * ```\n */\n addClass(...classNames: string[]): this {\n this._classNames.push(...classNames);\n return this;\n }\n\n /**\n * Adds class names from an array (array pattern).\n *\n * @param classNames - Array of class name strings\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * const classes = ['container', 'mx-auto', 'px-4'];\n * builder.addClasses(classes);\n * ```\n */\n addClasses(classNames: string[]): this {\n this._classNames.push(...classNames);\n return this;\n }\n\n /**\n * Conditionally adds a class name (conditional pattern).\n *\n * @param className - The class name to add\n * @param condition - Only adds the class if this is true\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * const isActive = true;\n * builder.addClassWhen('active', isActive); // Adds 'active'\n * builder.addClassWhen('disabled', false); // Doesn't add\n * ```\n */\n addClassWhen(className: string, condition: boolean): this {\n if (condition) {\n this._classNames.push(className);\n }\n return this;\n }\n\n /**\n * Adds classes from a toggle map (toggle pattern).\n *\n * @param classMap - Object mapping class names to boolean flags\n * @returns This builder for method chaining\n *\n * @remarks\n * Only class names with `true` values are added.\n *\n * @example\n * ```typescript\n * builder.addClassesToggle({\n * 'btn-primary': isPrimary,\n * 'btn-disabled': isDisabled,\n * 'btn-large': isLarge\n * });\n * // Adds only classes where the value is true\n * ```\n */\n addClassesToggle(classMap: Record<string, boolean>): this {\n for (const [name, enabled] of Object.entries(classMap)) {\n if (enabled) {\n this._classNames.push(name);\n }\n }\n return this;\n }\n\n // ── Build ──\n\n /**\n * Builds and returns the accumulated attribute array.\n *\n * @returns Array of HtmlAttribute instances\n *\n * @remarks\n * If any class names were added, they are normalized (trimmed, deduplicated)\n * and merged into a single class attribute using {@link normalizeClassNames}.\n *\n * @example\n * ```typescript\n * const attrs = new BaseAttributeBuilder()\n * .setId('main')\n * .addClass('btn', 'btn-primary', 'btn')\n * .build();\n * // Returns: [\n * // HtmlAttribute { key: 'id', ... },\n * // HtmlAttribute { key: 'class', value: 'btn btn-primary' }\n * // ]\n * ```\n */\n build(): HtmlAttribute[] {\n const result = [...this._attributes];\n\n if (this._classNames.length > 0) {\n // HtmlAttribute.className calls normalizeClassNames internally\n // to deduplicate, trim, and remove empty strings\n result.push(HtmlAttribute.className(...this._classNames));\n }\n\n return result;\n }\n}\n","/**\n * Task 6.2: Form-related AttributeBuilders\n *\n * 専用属性ビルダー(フォーム系):\n * - FormAttributeBuilder: action, method, enctype\n * - InputAttributeBuilder: type, placeholder, required, pattern, minLength, maxLength\n * - ButtonAttributeBuilder: buttonType\n *\n * Requirements: 7.3, 7.4, 7.6\n */\nimport type { InputType, ButtonType } from './attribute-keys.js';\nimport { HtmlAttribute } from './html-attribute.js';\nimport { BaseAttributeBuilder } from './attribute-builder-base.js';\n\n// ============================================================\n// FormAttributeBuilder (Task 6.2, Req 7.3)\n// ============================================================\n\n/**\n * Specialized attribute builder for HTML form elements.\n *\n * @remarks\n * Extends {@link BaseAttributeBuilder} with form-specific attributes:\n * - action - Form submission URL\n * - method - HTTP method (GET or POST)\n * - enctype - Form data encoding type\n *\n * All common attributes from the base builder are also available.\n *\n * @example\n * ```typescript\n * const formAttrs = new FormAttributeBuilder()\n * .setAction('/api/submit')\n * .setMethod('post')\n * .setEnctype('multipart/form-data')\n * .setId('contact-form')\n * .addClass('form', 'form-vertical')\n * .build();\n * ```\n *\n * @see {@link BaseAttributeBuilder} for common attribute methods\n */\nexport class FormAttributeBuilder extends BaseAttributeBuilder {\n /**\n * Sets the action attribute (form submission URL).\n *\n * @param action - The URL where the form data will be sent\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setAction('/api/submit');\n * // Produces: action=\"/api/submit\"\n * ```\n */\n setAction(action: string): this {\n return this.addKeyValue('action', action);\n }\n\n /**\n * Sets the method attribute (HTTP method).\n *\n * @param method - The HTTP method ('get' or 'post')\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setMethod('post');\n * // Produces: method=\"post\"\n * ```\n */\n setMethod(method: 'get' | 'post'): this {\n return this.addKeyValue('method', method);\n }\n\n /**\n * Sets the enctype attribute (encoding type).\n *\n * @param enctype - The encoding type (e.g., 'multipart/form-data', 'application/x-www-form-urlencoded')\n * @returns This builder for method chaining\n *\n * @remarks\n * Common values:\n * - 'application/x-www-form-urlencoded' (default)\n * - 'multipart/form-data' (for file uploads)\n * - 'text/plain'\n *\n * @example\n * ```typescript\n * builder.setEnctype('multipart/form-data');\n * // Produces: enctype=\"multipart/form-data\"\n * ```\n */\n setEnctype(enctype: string): this {\n return this.addKeyValue('enctype', enctype);\n }\n}\n\n// ============================================================\n// InputAttributeBuilder (Task 6.2, Req 7.4)\n// ============================================================\n\n/**\n * Specialized attribute builder for HTML input elements.\n *\n * @remarks\n * Extends {@link BaseAttributeBuilder} with input-specific attributes:\n * - type - Input type (text, email, password, etc.)\n * - placeholder - Placeholder text\n * - required - Required field flag\n * - pattern - Validation pattern (regex)\n * - minlength/maxlength - Length constraints\n *\n * All common attributes from the base builder are also available.\n *\n * @example\n * ```typescript\n * const emailInput = new InputAttributeBuilder()\n * .setInputType('email')\n * .setPlaceholder('Enter your email')\n * .setRequired(true)\n * .setId('email-field')\n * .addClass('input', 'input-primary')\n * .build();\n * ```\n *\n * @example\n * Password input with validation\n * ```typescript\n * const passwordInput = new InputAttributeBuilder()\n * .setInputType('password')\n * .setPlaceholder('Enter password')\n * .setRequired(true)\n * .setMinLength(8)\n * .setPattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d).+$')\n * .build();\n * ```\n *\n * @see {@link BaseAttributeBuilder} for common attribute methods\n * @see {@link InputType} for all valid input types\n */\nexport class InputAttributeBuilder extends BaseAttributeBuilder {\n /**\n * Sets the type attribute for the input element.\n *\n * @param type - A valid HTML input type\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setInputType('email'); // Produces: type=\"email\"\n * builder.setInputType('password'); // Produces: type=\"password\"\n * builder.setInputType('checkbox'); // Produces: type=\"checkbox\"\n * ```\n *\n * @see {@link InputType} for all valid types\n */\n setInputType(type: InputType): this {\n this._attributes.push(HtmlAttribute.inputType(type));\n return this;\n }\n\n /**\n * Sets the placeholder attribute.\n *\n * @param placeholder - The placeholder text\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setPlaceholder('Enter your email address');\n * // Produces: placeholder=\"Enter your email address\"\n * ```\n */\n setPlaceholder(placeholder: string): this {\n return this.addKeyValue('placeholder', placeholder);\n }\n\n /**\n * Sets the required boolean attribute.\n *\n * @param required - If true, adds the required attribute\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setRequired(true); // Produces: required\n * builder.setRequired(false); // No attribute added\n * ```\n */\n setRequired(required: boolean): this {\n if (required) {\n this._attributes.push(HtmlAttribute.boolean('required'));\n }\n return this;\n }\n\n /**\n * Sets the pattern attribute (validation regex).\n *\n * @param pattern - A regular expression pattern for validation\n * @returns This builder for method chaining\n *\n * @remarks\n * The pattern is matched against the entire input value (implicit ^ and $).\n *\n * @example\n * ```typescript\n * // Require at least one uppercase, one lowercase, one digit\n * builder.setPattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d).{8,}$');\n *\n * // Require specific format\n * builder.setPattern('[0-9]{3}-[0-9]{4}'); // Matches: 123-4567\n * ```\n */\n setPattern(pattern: string): this {\n return this.addKeyValue('pattern', pattern);\n }\n\n /**\n * Sets the minlength attribute.\n *\n * @param length - Minimum number of characters required\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setMinLength(8);\n * // Produces: minlength=\"8\"\n * ```\n */\n setMinLength(length: number): this {\n return this.addKeyValue('minlength', length);\n }\n\n /**\n * Sets the maxlength attribute.\n *\n * @param length - Maximum number of characters allowed\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setMaxLength(100);\n * // Produces: maxlength=\"100\"\n * ```\n */\n setMaxLength(length: number): this {\n return this.addKeyValue('maxlength', length);\n }\n}\n\n// ============================================================\n// ButtonAttributeBuilder (Task 6.2, Req 7.6)\n// ============================================================\n\n/**\n * Specialized attribute builder for HTML button elements.\n *\n * @remarks\n * Extends {@link BaseAttributeBuilder} with button-specific attributes:\n * - type - Button type (submit, reset, or button)\n *\n * All common attributes from the base builder are also available.\n *\n * @example\n * Submit button\n * ```typescript\n * const submitAttrs = new ButtonAttributeBuilder()\n * .setButtonType('submit')\n * .setId('submit-btn')\n * .addClass('btn', 'btn-primary')\n * .build();\n * ```\n *\n * @example\n * Custom button with ARIA\n * ```typescript\n * const closeAttrs = new ButtonAttributeBuilder()\n * .setButtonType('button')\n * .setAriaLabel('Close dialog')\n * .addClass('btn-close')\n * .build();\n * ```\n *\n * @see {@link BaseAttributeBuilder} for common attribute methods\n * @see {@link ButtonType} for all valid button types\n */\nexport class ButtonAttributeBuilder extends BaseAttributeBuilder {\n /**\n * Sets the type attribute for the button element.\n *\n * @param type - The button type ('submit', 'reset', or 'button')\n * @returns This builder for method chaining\n *\n * @remarks\n * - 'submit' - Submits the form (default if inside a form)\n * - 'reset' - Resets form fields to their initial values\n * - 'button' - No default behavior (use for custom JavaScript)\n *\n * @example\n * ```typescript\n * builder.setButtonType('submit');\n * // Produces: type=\"submit\"\n *\n * builder.setButtonType('button');\n * // Produces: type=\"button\"\n * // Good for buttons that trigger JavaScript, not form submission\n * ```\n *\n * @see {@link ButtonType} for all valid types\n */\n setButtonType(type: ButtonType): this {\n this._attributes.push(HtmlAttribute.buttonType(type));\n return this;\n }\n}\n","/**\n * Task 6.2: Media-related AttributeBuilders\n *\n * 専用属性ビルダー(メディア・リンク系):\n * - ImageAttributeBuilder: src, alt, width, height, loading\n * - LinkAttributeBuilder: href, rel, type, media\n *\n * Requirements: 7.5\n */\nimport { BaseAttributeBuilder } from './attribute-builder-base.js';\n\n// ============================================================\n// ImageAttributeBuilder (Task 6.2, Req 7.5)\n// ============================================================\n\n/**\n * Specialized attribute builder for HTML img elements.\n *\n * @remarks\n * Extends {@link BaseAttributeBuilder} with image-specific attributes:\n * - src - Image source URL\n * - alt - Alternative text for accessibility\n * - width/height - Image dimensions\n * - loading - Lazy loading strategy\n *\n * All common attributes from the base builder are also available.\n *\n * @example\n * ```typescript\n * const imgAttrs = new ImageAttributeBuilder()\n * .setSrc('/images/hero.jpg')\n * .setAlt('Hero banner image')\n * .setWidth(800)\n * .setHeight(600)\n * .setLoading('lazy')\n * .addClass('img-responsive')\n * .build();\n * ```\n *\n * @see {@link BaseAttributeBuilder} for common attribute methods\n */\nexport class ImageAttributeBuilder extends BaseAttributeBuilder {\n /**\n * Sets the src attribute (image source URL).\n *\n * @param src - The URL of the image\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setSrc('/images/logo.png');\n * // Produces: src=\"/images/logo.png\"\n *\n * builder.setSrc('https://example.com/photo.jpg');\n * // Produces: src=\"https://example.com/photo.jpg\"\n * ```\n */\n setSrc(src: string): this {\n return this.addKeyValue('src', src);\n }\n\n /**\n * Sets the alt attribute (alternative text).\n *\n * @param alt - Descriptive text for the image (important for accessibility)\n * @returns This builder for method chaining\n *\n * @remarks\n * The alt attribute is crucial for accessibility. It should:\n * - Describe the image content for screen readers\n * - Be empty (\"\") for decorative images\n * - Not include \"image of\" or \"picture of\"\n *\n * @example\n * ```typescript\n * builder.setAlt('Company logo');\n * // Produces: alt=\"Company logo\"\n *\n * builder.setAlt(''); // Decorative image\n * // Produces: alt=\"\"\n * ```\n */\n setAlt(alt: string): this {\n return this.addKeyValue('alt', alt);\n }\n\n /**\n * Sets the width attribute.\n *\n * @param width - Image width in pixels (number or string)\n * @returns This builder for method chaining\n *\n * @remarks\n * Setting explicit width and height helps prevent layout shift during page load.\n *\n * @example\n * ```typescript\n * builder.setWidth(800); // Produces: width=\"800\"\n * builder.setWidth('100%'); // Produces: width=\"100%\"\n * ```\n */\n setWidth(width: number | string): this {\n return this.addKeyValue('width', width);\n }\n\n /**\n * Sets the height attribute.\n *\n * @param height - Image height in pixels (number or string)\n * @returns This builder for method chaining\n *\n * @remarks\n * Setting explicit width and height helps prevent layout shift during page load.\n *\n * @example\n * ```typescript\n * builder.setHeight(600); // Produces: height=\"600\"\n * builder.setHeight('auto'); // Produces: height=\"auto\"\n * ```\n */\n setHeight(height: number | string): this {\n return this.addKeyValue('height', height);\n }\n\n /**\n * Sets the loading attribute (lazy loading strategy).\n *\n * @param loading - Loading strategy ('lazy' or 'eager')\n * @returns This builder for method chaining\n *\n * @remarks\n * - 'lazy' - Defer loading until the image is near the viewport (improves performance)\n * - 'eager' - Load immediately (default browser behavior)\n *\n * @example\n * ```typescript\n * builder.setLoading('lazy');\n * // Produces: loading=\"lazy\"\n * // Good for below-the-fold images\n *\n * builder.setLoading('eager');\n * // Produces: loading=\"eager\"\n * // Good for above-the-fold images\n * ```\n */\n setLoading(loading: 'lazy' | 'eager'): this {\n return this.addKeyValue('loading', loading);\n }\n}\n\n// ============================================================\n// LinkAttributeBuilder (Task 6.2, Req 7.5)\n// ============================================================\n\n/**\n * Specialized attribute builder for HTML link and anchor (a) elements.\n *\n * @remarks\n * Extends {@link BaseAttributeBuilder} with link-specific attributes:\n * - href - Link destination URL\n * - rel - Relationship between current document and linked resource\n * - type - MIME type of linked resource\n * - media - Media query for when the link applies\n *\n * All common attributes from the base builder are also available.\n *\n * @example\n * Link element (stylesheet)\n * ```typescript\n * const stylesheetAttrs = new LinkAttributeBuilder()\n * .setHref('/styles/main.css')\n * .setRel('stylesheet')\n * .setType('text/css')\n * .build();\n * ```\n *\n * @example\n * Anchor element (hyperlink)\n * ```typescript\n * const linkAttrs = new LinkAttributeBuilder()\n * .setHref('https://example.com')\n * .setRel('noopener noreferrer')\n * .setId('external-link')\n * .addClass('link', 'link-external')\n * .build();\n * ```\n *\n * @see {@link BaseAttributeBuilder} for common attribute methods\n */\nexport class LinkAttributeBuilder extends BaseAttributeBuilder {\n /**\n * Sets the href attribute (link destination).\n *\n * @param href - The URL of the linked resource\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setHref('/about');\n * // Produces: href=\"/about\"\n *\n * builder.setHref('https://example.com');\n * // Produces: href=\"https://example.com\"\n *\n * builder.setHref('#section-2');\n * // Produces: href=\"#section-2\"\n * ```\n */\n setHref(href: string): this {\n return this.addKeyValue('href', href);\n }\n\n /**\n * Sets the rel attribute (relationship).\n *\n * @param rel - The relationship type(s) (space-separated)\n * @returns This builder for method chaining\n *\n * @remarks\n * Common values:\n * - 'stylesheet' - CSS stylesheet\n * - 'icon' - Favicon\n * - 'noopener' - Prevents window.opener access (security)\n * - 'noreferrer' - Prevents referer header\n * - 'nofollow' - Search engine hint\n *\n * @example\n * ```typescript\n * builder.setRel('stylesheet');\n * // Produces: rel=\"stylesheet\"\n *\n * builder.setRel('noopener noreferrer');\n * // Produces: rel=\"noopener noreferrer\"\n * ```\n */\n setRel(rel: string): this {\n return this.addKeyValue('rel', rel);\n }\n\n /**\n * Sets the type attribute (MIME type).\n *\n * @param type - The MIME type of the linked resource\n * @returns This builder for method chaining\n *\n * @example\n * ```typescript\n * builder.setType('text/css');\n * // Produces: type=\"text/css\"\n *\n * builder.setType('application/rss+xml');\n * // Produces: type=\"application/rss+xml\"\n * ```\n */\n setType(type: string): this {\n return this.addKeyValue('type', type);\n }\n\n /**\n * Sets the media attribute (media query).\n *\n * @param media - CSS media query for when the link applies\n * @returns This builder for method chaining\n *\n * @remarks\n * Used primarily with `<link>` elements to conditionally load resources.\n *\n * @example\n * ```typescript\n * builder.setMedia('screen and (min-width: 768px)');\n * // Produces: media=\"screen and (min-width: 768px)\"\n *\n * builder.setMedia('print');\n * // Produces: media=\"print\"\n * ```\n */\n setMedia(media: string): this {\n return this.addKeyValue('media', media);\n }\n}\n","/**\n * デフォルトCSS管理クラス(no-op実装)\n *\n * {@link CssManagerInstance} のデフォルト実装で、すべてのメソッドが\n * 空文字列または空操作を返す。CSS が設定されていない {@link HtmlTag} に\n * 注入され、Null Objectパターンとして機能する。\n *\n * ## 用途\n *\n * - CSS未設定のタグに対する安全なデフォルト実装\n * - CSS機能を使用しない場合のオーバーヘッド削減\n * - Null Objectパターンによる条件分岐の削減\n *\n * @example\n * ```ts\n * const tag = new HtmlTag('div');\n * // tag.css は内部的に DefaultCssManager のインスタンス\n *\n * tag.css.render(); // → ''\n * tag.css.renderCss(); // → ''\n * tag.css.layout.render(); // → ''\n * ```\n *\n * @see {@link CssManagerInstance}\n * @see {@link CssManager}\n */\nimport type { CssManagerInstance } from '../../html/protocols/css-manager-instance-type.js';\nimport type { CssPositionMakerType } from '../layout/position-maker/css-position-maker-type.js';\nimport type { CssStyleManagerType } from '../style/css-style-manager-type.js';\nimport type { LazyLayoutRegister } from '../layout/lazy-layout/registered-item.js';\nimport type { CssPlaceDescription } from '../layout/css-place-description.js';\nimport type { CssLayoutBuilder } from '../layout/css-layout-builder.js';\nimport type { HlUnit } from '../../utils/unit-style.js';\n\n/**\n * no-op CssPositionMakerType 実装\n * @internal\n */\nconst noopLayout: CssPositionMakerType = {\n tagPath: '',\n get description(): CssPlaceDescription { return {}; },\n updateLLRegister(_register: LazyLayoutRegister | undefined): void { /* no-op */ },\n getLLRegister(): LazyLayoutRegister | undefined { return undefined; },\n placeAbsoluteWith(_closure: (builder: CssLayoutBuilder) => void): void { /* no-op */ },\n placeRelativeWith(_closure: (builder: CssLayoutBuilder) => void): void { /* no-op */ },\n placeStaticWith(_closure: (builder: CssLayoutBuilder) => void): void { /* no-op */ },\n placeFixedWith(_closure: (builder: CssLayoutBuilder) => void): void { /* no-op */ },\n render(): string { return ''; },\n};\n\n/**\n * no-op CssStyleManagerType 実装\n * @internal\n */\nconst noopStyleManager: CssStyleManagerType = {\n get style(): { render(): string } { return { render() { return ''; } }; },\n getFontSizeUnit(): HlUnit | undefined { return undefined; },\n render(): string { return ''; },\n};\n\nexport class DefaultCssManager implements CssManagerInstance {\n /** タグの階層パス(常に空文字列) */\n tagPath = '';\n\n /** no-opレイアウトマネージャー */\n readonly layout: CssPositionMakerType = noopLayout;\n\n /** no-opスタイルマネージャー */\n readonly styleManager: CssStyleManagerType = noopStyleManager;\n\n /**\n * タグパスを更新する(no-op)\n * @param newPath - 新しいタグパス\n */\n updateTagPath(newPath: string): void {\n this.tagPath = newPath;\n }\n\n /**\n * 遅延レイアウトレジスタを更新する(no-op)\n * @param _register - 遅延レイアウトレジスタ\n */\n updateLazyLayoutRegister(_register: LazyLayoutRegister | undefined): void {\n /* no-op */\n }\n\n /**\n * CSS文字列をレンダリングする(常に空文字列を返す)\n * @returns 空文字列\n */\n render(): string {\n return '';\n }\n\n /**\n * スコープドCSS文字列をレンダリングする(常に空文字列を返す)\n * @returns 空文字列\n */\n renderCss(): string {\n return '';\n }\n\n /**\n * @media ルールを追加する(no-op)\n * @param _breakpointPx - ブレークポイント(px 値)\n * @param _props - 追加するCSSプロパティのマップ\n */\n addMediaRule(_breakpointPx: number, _props: Record<string, string>): void {\n /* no-op */\n }\n}\n","/**\n * CSS標準色名定数\n *\n * 主要なCSS色名とCSS特殊キーワードを型安全に定義する。\n * {@link CSSColor.named}() メソッドで使用される。\n *\n * ## カテゴリ\n *\n * - **基本色**: black, white, red, green, blue, yellow, cyan, magenta, orange, pink, purple, brown\n * - **グレー系**: gray, grey, darkGray, lightGray, dimGray, silver\n * - **拡張色**: navy, teal, maroon, olive, lime, aqua, fuchsia, coral, salmon, gold, indigo, violet, crimson, turquoise\n * - **CSS特殊キーワード**: transparent, currentColor\n *\n * @example\n * ```ts\n * // 基本的な使用\n * CSSColorName.red // → \"red\"\n * CSSColorName.transparent // → \"transparent\"\n *\n * // CSSColorと組み合わせて使用\n * const color = CSSColor.named(CSSColorName.blue);\n * console.log(color.toString()); // → \"blue\"\n *\n * // プロパティクラスでの使用\n * const font = new CSSFont();\n * font.setColorValue(CSSColor.named(CSSColorName.red));\n * ```\n *\n * @see {@link CSSColor}\n * @see {@link CSSColorNameValue}\n */\nexport const CSSColorName = {\n // 基本色\n black: 'black',\n white: 'white',\n red: 'red',\n green: 'green',\n blue: 'blue',\n yellow: 'yellow',\n cyan: 'cyan',\n magenta: 'magenta',\n orange: 'orange',\n pink: 'pink',\n purple: 'purple',\n brown: 'brown',\n\n // グレー系\n gray: 'gray',\n grey: 'grey',\n darkGray: 'darkgray',\n darkGrey: 'darkgrey',\n lightGray: 'lightgray',\n lightGrey: 'lightgrey',\n dimGray: 'dimgray',\n dimGrey: 'dimgrey',\n silver: 'silver',\n\n // 拡張色\n navy: 'navy',\n teal: 'teal',\n maroon: 'maroon',\n olive: 'olive',\n lime: 'lime',\n aqua: 'aqua',\n fuchsia: 'fuchsia',\n coral: 'coral',\n salmon: 'salmon',\n gold: 'gold',\n indigo: 'indigo',\n violet: 'violet',\n crimson: 'crimson',\n turquoise: 'turquoise',\n\n // CSS特殊キーワード\n transparent: 'transparent',\n currentColor: 'currentColor',\n inherit: 'inherit',\n} as const;\n\n/**\n * CSSColorName の値の型(ユニオン型)\n */\nexport type CSSColorNameValue =\n (typeof CSSColorName)[keyof typeof CSSColorName];\n\n/**\n * CSSColorName の全値をセットとして保持(isColorName 判定用)\n */\nexport const CSS_COLOR_NAME_VALUES: ReadonlySet<string> = new Set(\n Object.values(CSSColorName),\n);\n","/**\n * CSS色値オブジェクト\n *\n * HEX、RGB、RGBA、CSS色名、任意のCSS色文字列を統一的に扱える\n * イミュータブルな値オブジェクト。型安全なファクトリメソッドと\n * 検証メソッドを提供する。\n *\n * ## サポートする色形式\n *\n * - **HEX**: `#RGB`, `#RRGGBB`, `#RRGGBBAA`\n * - **RGB**: `rgb(r, g, b)`\n * - **RGBA**: `rgba(r, g, b, a)`\n * - **色名**: CSS標準色名({@link CSSColorName})\n * - **その他**: `hsl()`, `var()`, `currentColor` など\n *\n * @example\n * ```ts\n * // HEX形式\n * const hex = CSSColor.hex('#ff0000');\n * console.log(hex.toString()); // → \"#ff0000\"\n * console.log(hex.isHex()); // → true\n *\n * // RGB形式\n * const rgb = CSSColor.rgb(255, 0, 0);\n * console.log(rgb.toString()); // → \"rgb(255, 0, 0)\"\n * console.log(rgb.isRgb()); // → true\n *\n * // RGBA形式\n * const rgba = CSSColor.rgba(255, 0, 0, 0.5);\n * console.log(rgba.toString()); // → \"rgba(255, 0, 0, 0.5)\"\n *\n * // CSS色名\n * const named = CSSColor.named('red');\n * console.log(named.toString()); // → \"red\"\n * console.log(named.isColorName()); // → true\n *\n * // 任意のCSS色文字列\n * const custom = CSSColor.raw('hsl(0, 100%, 50%)');\n * console.log(custom.toString()); // → \"hsl(0, 100%, 50%)\"\n *\n * // CSSプロパティクラスでの使用\n * const font = new CSSFont();\n * font.setColorValue(CSSColor.hex('#333'));\n * ```\n *\n * @see {@link CSSColorName}\n * @see {@link CSSColorNameValue}\n */\nimport {\n type CSSColorNameValue,\n CSS_COLOR_NAME_VALUES,\n} from './css-color-name.js';\n\n/**\n * HEX色値パターン\n * @internal\n */\nconst HEX_PATTERN = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;\n\n/**\n * rgb() 関数パターン\n * @internal\n */\nconst RGB_PATTERN = /^rgb\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*\\)$/;\n\n/**\n * rgba() 関数パターン\n * @internal\n */\nconst RGBA_PATTERN =\n /^rgba\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*[\\d.]+\\s*\\)$/;\n\nexport class CSSColor {\n private readonly value: string;\n\n /**\n * @internal\n * コンストラクタはプライベート。ファクトリメソッドを使用すること。\n */\n private constructor(value: string) {\n this.value = value;\n }\n\n // ── ファクトリメソッド ──\n\n /**\n * HEX値から CSSColor を生成する\n *\n * @param value - HEX色値('#RGB', '#RRGGBB', '#RRGGBBAA' 形式)\n * @returns CSSColor インスタンス\n *\n * @example\n * ```ts\n * CSSColor.hex('#f00'); // → \"#f00\" (短縮形)\n * CSSColor.hex('#ff0000'); // → \"#ff0000\"\n * CSSColor.hex('#ff0000ff'); // → \"#ff0000ff\" (アルファ付き)\n * ```\n */\n static hex(value: string): CSSColor {\n return new CSSColor(value);\n }\n\n /**\n * RGB値から CSSColor を生成する\n *\n * @param r - Red (0-255)\n * @param g - Green (0-255)\n * @param b - Blue (0-255)\n * @returns CSSColor インスタンス\n *\n * @example\n * ```ts\n * CSSColor.rgb(255, 0, 0); // → \"rgb(255, 0, 0)\"\n * ```\n */\n static rgb(r: number, g: number, b: number): CSSColor {\n return new CSSColor(`rgb(${r}, ${g}, ${b})`);\n }\n\n /**\n * RGBA値から CSSColor を生成する\n *\n * @param r - Red (0-255)\n * @param g - Green (0-255)\n * @param b - Blue (0-255)\n * @param a - Alpha (0-1)\n * @returns CSSColor インスタンス\n *\n * @example\n * ```ts\n * CSSColor.rgba(255, 0, 0, 0.5); // → \"rgba(255, 0, 0, 0.5)\"\n * ```\n */\n static rgba(r: number, g: number, b: number, a: number): CSSColor {\n return new CSSColor(`rgba(${r}, ${g}, ${b}, ${a})`);\n }\n\n /**\n * CSS標準色名から CSSColor を生成する\n *\n * @param name - CSS標準色名({@link CSSColorNameValue})\n * @returns CSSColor インスタンス\n *\n * @example\n * ```ts\n * CSSColor.named('red');\n * CSSColor.named('transparent');\n * CSSColor.named('currentColor');\n * ```\n */\n static named(name: CSSColorNameValue): CSSColor {\n return new CSSColor(name);\n }\n\n /**\n * 任意のCSS色文字列から CSSColor を生成する\n *\n * hsl(), var(), カスタムプロパティなど、任意のCSS色表現に対応。\n *\n * @param value - 任意のCSS色文字列\n * @returns CSSColor インスタンス\n *\n * @example\n * ```ts\n * CSSColor.raw('hsl(0, 100%, 50%)');\n * CSSColor.raw('var(--primary-color)');\n * CSSColor.raw('currentColor');\n * ```\n */\n static raw(value: string): CSSColor {\n return new CSSColor(value);\n }\n\n // ── 検証メソッド ──\n\n /**\n * 値が HEX 形式かどうかを判定する\n *\n * @returns HEX形式の場合 true\n */\n isHex(): boolean {\n return HEX_PATTERN.test(this.value);\n }\n\n /**\n * 値が rgb() 形式かどうかを判定する\n *\n * @returns rgb() 形式の場合 true\n */\n isRgb(): boolean {\n return RGB_PATTERN.test(this.value);\n }\n\n /**\n * 値が rgba() 形式かどうかを判定する\n *\n * @returns rgba() 形式の場合 true\n */\n isRgba(): boolean {\n return RGBA_PATTERN.test(this.value);\n }\n\n /**\n * 値が CSS 標準色名かどうかを判定する\n *\n * @returns CSS標準色名の場合 true\n */\n isColorName(): boolean {\n return CSS_COLOR_NAME_VALUES.has(this.value);\n }\n\n // ── CSS 文字列出力 ──\n\n /**\n * CSS色値の文字列表現を返す\n *\n * @returns CSS色値文字列\n */\n toString(): string {\n return this.value;\n }\n}\n","/**\n * 遅延レイアウト解決管理クラス\n *\n * 要素間の位置関係を登録し、依存関係のある配置計算を遅延評価で解決する。\n * 循環依存を検出し、エラーをスローすることで無限ループを防止する。\n *\n * ## 主な機能\n *\n * - **レイアウトアイテムの登録**: 要素間の位置関係を記述\n * - **遅延評価**: 依存関係を持つ配置値の段階的な解決\n * - **循環依存検出**: Set による訪問済みパスの追跡\n * - **CSS出力**: 解決済みレイアウトのCSS文字列生成\n *\n * ## 使用例\n *\n * @example\n * ```ts\n * const manager = new LazyLayoutManager();\n *\n * // 要素Aの配置を登録\n * manager.registerItem({\n * relationShip: 'absolute',\n * baseTagPath: 'html>body>div.a',\n * basePosition: 'left',\n * targetTagPath: undefined,\n * targetPosition: 'none',\n * value: { value: 0, unit: 'px' }\n * });\n *\n * // 要素Bの配置を要素Aに依存させる\n * manager.registerItem({\n * relationShip: 'absolute',\n * baseTagPath: 'html>body>div.b',\n * basePosition: 'left',\n * targetTagPath: 'html>body>div.a', // 要素Aを参照\n * targetPosition: 'left',\n * value: undefined // 遅延評価で解決される\n * });\n *\n * // すべての遅延レイアウトを解決\n * manager.resolveAllLayout();\n *\n * // 要素Bのレイアウトを出力\n * console.log(manager.renderItemsBy('html>body>div.b'));\n * // → \"left: 0px;\"\n * ```\n *\n * @see {@link LazyLayoutRegister}\n * @see {@link LayoutRegisteredItem}\n * @see {@link CssPositionMaker}\n */\nimport type { LazyLayoutRegister, LayoutRegisteredItem } from './registered-item.js';\nimport type { HlUnit, RelationShip } from '../../../utils/unit-style.js';\nimport { hlUnitToCssString } from '../../../utils/unit-style.js';\nimport type { Positioning } from '../positioning.js';\n\nexport class LazyLayoutManager implements LazyLayoutRegister {\n private items: LayoutRegisteredItem[] = [];\n\n /**\n * レイアウトアイテムを登録する\n *\n * @param item - 登録するレイアウトアイテム\n */\n registerItem(item: LayoutRegisteredItem): void {\n this.items.push(item);\n }\n\n /**\n * 指定されたタグパスの position 値を取得する\n *\n * @param tagPath - タグの階層パス\n * @returns position 値('static' | 'relative' | 'absolute' | 'fixed')、または undefined\n */\n getRelationShip(tagPath: string): RelationShip | undefined {\n const found = this.getItemsBy(tagPath);\n return found.length > 0 ? found[0]?.relationShip : undefined;\n }\n\n /**\n * すべての遅延レイアウトを解決する\n *\n * 未解決の値(value が undefined)を持つアイテムを検索し、\n * 依存関係を辿って値を解決する。循環依存が検出された場合は Error をスローする。\n *\n * @throws {Error} 循環依存が検出された場合\n */\n resolveAllLayout(): void {\n for (let i = 0; i < this.items.length; i++) {\n const current = this.items[i];\n if (current === undefined) continue;\n\n if (current.value === undefined) {\n const resolvedValue = this.getValue(current.basePosition, current.targetTagPath, new Set<string>());\n if (resolvedValue !== undefined) {\n this.items[i] = {\n relationShip: current.relationShip,\n baseTagPath: current.baseTagPath,\n basePosition: current.basePosition,\n targetTagPath: current.targetTagPath,\n targetPosition: current.targetPosition,\n value: resolvedValue,\n };\n }\n }\n }\n }\n\n /**\n * 指定されたタグパスのレイアウトアイテムをCSS文字列として出力する\n *\n * position プロパティは出力されない(個別要素用)。\n *\n * @param tagPath - タグの階層パス\n * @returns CSS文字列(アイテムがない場合は空文字列)\n */\n renderItemsBy(tagPath: string): string {\n const items = this.getItemsBy(tagPath);\n return this.renderLayoutByRegisteredItem(items, false);\n }\n\n /**\n * すべてのレイアウトアイテムをCSS文字列として出力する\n *\n * position プロパティを含む完全なCSS出力(static 以外)。\n *\n * @returns CSS文字列(アイテムがない場合は空文字列)\n */\n renderAllItems(): string {\n return this.renderLayoutByRegisteredItem(this.items, true);\n }\n\n // ── Private ──\n\n private getItemsBy(tagPath: string): LayoutRegisteredItem[] {\n return this.items.filter(item => item.baseTagPath === tagPath);\n }\n\n private getValue(\n needPosition: Positioning,\n targetPath: string | undefined,\n visitedPaths: Set<string>,\n ): HlUnit | undefined {\n // 1. targetPath が存在するか\n if (targetPath === undefined) return undefined;\n\n // 2. 循環依存チェック\n if (visitedPaths.has(targetPath)) {\n throw new Error(`Circular dependency detected: ${targetPath}`);\n }\n\n // 3. targetPath を持つアイテムを探す\n const targetItems = this.getItemsBy(targetPath);\n if (targetItems.length === 0) return undefined;\n\n // 4. 同じポジションのアイテムを探す\n const matchingItems = targetItems.filter(item => item.basePosition === needPosition);\n if (matchingItems.length === 0) return undefined;\n\n const matchedItem = matchingItems[0];\n if (matchedItem === undefined) return undefined;\n\n // 5. 値が設定されているか\n if (matchedItem.value !== undefined) {\n return matchedItem.value;\n }\n\n // 6. 値がない場合、さらに参照先を辿る\n const newVisitedPaths = new Set(visitedPaths);\n newVisitedPaths.add(targetPath);\n return this.getValue(needPosition, matchedItem.targetTagPath, newVisitedPaths);\n }\n\n private renderLayoutByRegisteredItem(\n items: LayoutRegisteredItem[],\n includePosition: boolean,\n ): string {\n const entries: string[] = [];\n let relationShipAdded = false;\n\n for (const item of items) {\n // 値が未解決のアイテムはスキップ\n if (item.value === undefined) continue;\n\n // position プロパティ(renderAllItems のみ、static 以外)\n if (includePosition && !relationShipAdded && item.relationShip !== 'static') {\n entries.push(`position: ${item.relationShip}`);\n relationShipAdded = true;\n }\n\n // 位置プロパティ(none はスキップ)\n if (item.basePosition !== 'none') {\n entries.push(`${item.basePosition}: ${hlUnitToCssString(item.value)}`);\n }\n }\n\n if (entries.length === 0) return '';\n return entries.join(';\\n') + ';';\n }\n}\n","/**\n * StyleTemplate デバッグ変数名ラベル付けランタイムヘルパー\n *\n * ビルド時トランスフォーマー(AST変換)が `createStyle(...)` 呼び出しを\n * `__draftole_label__(createStyle(...), '<varName>')` の形にラップするために\n * 使用するランタイム関数。\n *\n * - 渡された値が `StyleTemplate` らしき形状(`_kind === 'styleTemplate'` かつ\n * `bodyHash` プロパティを持つ)であれば、`debugVarName` を付与した\n * `Object.freeze` 済みコピーを返す。元の `StyleTemplate` は frozen のため\n * ミューテートしない。\n * - それ以外の値(プリミティブ、関数、StyleTemplate 以外のオブジェクトなど)は\n * そのまま返す(防御的 no-op)。\n *\n * 型シグネチャは `<T>(value: T, debugVarName: string): T` で、型システム上は\n * identity(透過)として振る舞う。これにより、ラップ前後で型が変化せず、\n * 既存のコード補完・型推論に影響を与えない。\n *\n * @module css/variables/style-template-label\n */\n\n/**\n * StyleTemplate に `debugVarName` を付与するビルド時トランスフォーマー用ラッパー。\n * StyleTemplate 以外の入力に対しては型透過な identity として動作する。\n *\n * @typeParam T - 入力値の型(出力もそのまま `T`)\n * @param value - ラップ対象の値(通常は `createStyle(...)` の戻り値)\n * @param debugVarName - 付与するデバッグ用変数名(ビルド時に AST から抽出)\n * @returns StyleTemplate ならば `debugVarName` を付与した frozen コピー、\n * それ以外は `value` をそのまま返す\n */\nexport function __draftole_label__<T>(value: T, debugVarName: string): T {\n if (\n typeof value === 'object' &&\n value !== null &&\n (value as { _kind?: unknown })._kind === 'styleTemplate' &&\n 'bodyHash' in (value as object)\n ) {\n return Object.freeze({ ...(value as object), debugVarName }) as unknown as T;\n }\n return value;\n}\n","/**\n * GlobalCss branded type と内部ヘルパ\n *\n * `GlobalCss` は string の subtype として branded nominal 型を提供する。\n * 外部コードが生 string を `GlobalCss` として渡すことをコンパイル時に阻止する。\n *\n * 内部 `brand()` がこのモジュールにおける唯一のキャスト発生点。\n * DSL 関数群(global-dsl.ts)はこのモジュールの内部 API を通じてのみ GlobalCss を生成する。\n */\n\nimport { sanitizeCssValue } from '../utils/css-sanitizer.js';\n\n/**\n * GlobalCss branded type。\n * `string & { readonly __globalCss: unique symbol }` により、\n * 生 string との代入非互換性を型システムで保証する。\n *\n * @example\n * ```typescript\n * // コンパイルエラー(生 string は渡せない)\n * const css: GlobalCss = \"body { color: red; }\"; // Error!\n *\n * // 正しい使い方(DSL 経由)\n * import { rule } from './global-dsl.js';\n * const css: GlobalCss = rule(\"body\", { color: \"red\" });\n * ```\n */\nexport type GlobalCss = string & { readonly __globalCss: unique symbol };\n\n/**\n * 内部用キャスト関数。モジュール外には export しない。\n * DSL 関数が組み立てた CSS 文字列を GlobalCss として返すための唯一の経路。\n *\n * @param rendered - 完成形の CSS 文字列\n * @returns GlobalCss 型にキャストされた同一文字列(実行時は no-op)\n */\nexport function brand(rendered: string): GlobalCss {\n return rendered as unknown as GlobalCss;\n}\n\n/**\n * camelCase または PascalCase の CSS プロパティ名を kebab-case に変換する。\n * CSS カスタムプロパティ(`--` 始まり)はそのまま返す。\n *\n * @example\n * toKebabCase(\"boxSizing\") // → \"box-sizing\"\n * toKebabCase(\"fontSize\") // → \"font-size\"\n * toKebabCase(\"--myVar\") // → \"--my-var\" (大文字変換のみ)\n *\n * @param camel - 変換元のプロパティ名\n * @returns kebab-case に変換されたプロパティ名\n */\nexport function toKebabCase(camel: string): string {\n return camel.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n}\n\n/**\n * プロパティオブジェクトを CSS 宣言行(インデント付き)に整形する。\n * 各値は `sanitizeCssValue` でサニタイズされ、危険な値は除外される。\n * 各行は 2スペースインデント付きで改行区切り。\n *\n * @example\n * renderProperties({ boxSizing: \"border-box\", color: \"red\" })\n * // → \" box-sizing: border-box;\\n color: red;\"\n *\n * @param properties - CSS プロパティの key-value オブジェクト\n * @returns インデント付き CSS 宣言行(複数行は改行区切り)\n */\nexport function renderProperties(properties: Record<string, string>): string {\n const lines: string[] = [];\n for (const [key, value] of Object.entries(properties)) {\n const safe = sanitizeCssValue(value);\n if (safe === '') continue;\n const kebab = toKebabCase(key);\n lines.push(` ${kebab}: ${safe};`);\n }\n return lines.join('\\n');\n}\n\n/**\n * セレクタと本体から CSS ブロック文字列を生成する。\n *\n * @example\n * wrapBlock(\":root\", \" --bg: #000;\")\n * // → \":root {\\n --bg: #000;\\n}\"\n *\n * wrapBlock(\"body\", \" color: red;\\n margin: 0;\")\n * // → \"body {\\n color: red;\\n margin: 0;\\n}\"\n *\n * @param selector - CSS セレクタ文字列\n * @param body - インデント済みの CSS 宣言行\n * @returns 完成形の CSS ブロック文字列\n */\nexport function wrapBlock(selector: string, body: string): string {\n return `${selector} {\\n${body}\\n}`;\n}\n","/**\n * StyleTemplate 型と bodyHash ユーティリティ\n *\n * `createStyle({...})`(無名形)および `createStyle(\"name\", {...})`(名前あり形)\n * の戻り値の中間表現として使用する不変データ構造。\n *\n * `bodyHash` は `(properties, selectors)` の JSON 正規化(キーソート)文字列に対し\n * 既存の djb2 ハッシュを適用した値であり、tagPath と組み合わせることで\n * 同一構造パスでも別 styleTemplate なら別クラス名を導出する衝突回避に使用する。\n *\n * Requirements: 1.1, 1.2, 2.1, 2.4\n *\n * @module css/variables/style-template\n */\nimport { djb2Hash } from '../utils/scoped-css-generator.js';\nimport type { StyleSelectors } from './css-shared-style.js';\n\n/**\n * StyleTemplate オブジェクト。\n *\n * 名前あり/なしの両 `createStyle` 戻り値を統一する中間表現。\n * 生成後は freeze され、外部からの変更は受け付けない。\n *\n * - `hasExplicitName === true` ⇔ `name !== undefined`\n * - `bodyHash` は `(properties, selectors)` の決定的ハッシュ\n */\nexport interface StyleTemplate {\n readonly _kind: 'styleTemplate';\n readonly hasExplicitName: boolean;\n readonly name?: string;\n readonly properties: Readonly<Record<string, string>>;\n readonly selectors?: Readonly<StyleSelectors>;\n readonly bodyHash: string;\n readonly debugVarName?: string;\n}\n\n/**\n * `createStyleTemplate` の入力。\n *\n * - `name` を指定すると `hasExplicitName=true` となる\n * - `selectors` は省略可能\n */\nexport interface CreateStyleTemplateInput {\n /** 明示クラス名(省略時は無名形) */\n readonly name?: string;\n /** CSSプロパティ(camelCase または kebab-case) */\n readonly properties: Record<string, string>;\n /** 疑似/複合/子孫セレクタ群 */\n readonly selectors?: StyleSelectors;\n}\n\n/**\n * オブジェクトを「キーソートされたJSON文字列」に正規化する。\n *\n * - 入力が plain object のとき、キー昇順で再構築する(再帰)\n * - 配列・プリミティブ・null はそのまま `JSON.stringify` で出力\n *\n * これにより、キー順序の差を無視した安定なハッシュ入力を作る。\n *\n * @internal\n */\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') {\n return JSON.stringify(value) ?? 'null';\n }\n if (Array.isArray(value)) {\n return `[${value.map(v => stableStringify(v)).join(',')}]`;\n }\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj).sort();\n const entries = keys.map(k => `${JSON.stringify(k)}:${stableStringify(obj[k])}`);\n return `{${entries.join(',')}}`;\n}\n\n/**\n * `(properties, selectors)` から決定的な `bodyHash` を計算する。\n *\n * `properties` と `selectors` を `{ properties, selectors }` の単一オブジェクトに\n * まとめてキーソート JSON 化し、その文字列に djb2 ハッシュを適用する。\n *\n * `selectors` が省略された場合は `null` として正規化される(undefined と null の\n * 区別を持たないことで「未指定 vs 空オブジェクト」の差は出るが、未指定同士は同値)。\n *\n * @internal\n */\nfunction computeBodyHash(\n properties: Record<string, string>,\n selectors: StyleSelectors | undefined,\n): string {\n const normalized = stableStringify({\n properties,\n selectors: selectors ?? null,\n });\n return djb2Hash(normalized);\n}\n\n/**\n * `properties` を浅くスナップショットし freeze した不変オブジェクトを返す。\n * @internal\n */\nfunction freezeProperties(\n properties: Record<string, string>,\n): Readonly<Record<string, string>> {\n const snapshot: Record<string, string> = {};\n for (const key of Object.keys(properties)) {\n const value = properties[key];\n if (value !== undefined) {\n snapshot[key] = value;\n }\n }\n return Object.freeze(snapshot);\n}\n\n/**\n * `selectors` を再帰的にスナップショットし freeze した不変オブジェクトを返す。\n * @internal\n */\nfunction freezeSelectors(\n selectors: StyleSelectors,\n): Readonly<StyleSelectors> {\n const snapshot: StyleSelectors = {};\n for (const key of Object.keys(selectors)) {\n const inner = selectors[key];\n if (inner !== undefined) {\n snapshot[key] = freezeProperties(inner) as Record<string, string>;\n }\n }\n return Object.freeze(snapshot);\n}\n\n/**\n * 不変な `StyleTemplate` オブジェクトを生成するファクトリ関数。\n *\n * - `name` 指定時は `hasExplicitName=true` の名前あり形\n * - `name` 省略時は `hasExplicitName=false` の無名形\n * - `bodyHash` は `(properties, selectors)` から決定的に算出される\n * - 戻り値および内部の `properties` / `selectors` は freeze される\n *\n * @example\n * ```ts\n * const tpl = createStyleTemplate({ properties: { display: 'flex' } });\n * tpl.hasExplicitName; // false\n * tpl.bodyHash; // 例: 'a1b2c3d4'\n * ```\n */\nexport function createStyleTemplate(\n input: CreateStyleTemplateInput,\n): StyleTemplate {\n const { name, properties, selectors } = input;\n const frozenProperties = freezeProperties(properties);\n const frozenSelectors =\n selectors !== undefined ? freezeSelectors(selectors) : undefined;\n const bodyHash = computeBodyHash(properties, selectors);\n\n const template: StyleTemplate = {\n _kind: 'styleTemplate',\n hasExplicitName: name !== undefined,\n ...(name !== undefined ? { name } : {}),\n properties: frozenProperties,\n ...(frozenSelectors !== undefined ? { selectors: frozenSelectors } : {}),\n bodyHash,\n };\n\n return Object.freeze(template);\n}\n","/**\n * CSS共有スタイル定義\n *\n * createStyle() でクラスベースのCSSルールを定義し、\n * 複数要素に同じスタイルを適用する。\n * 疑似セレクタ(:hover, :focus, :active)もサポート。\n * SwiftUI の ViewModifier に相当。\n *\n * @example\n * ```typescript\n * import { Root } from '../html/elements/root.js';\n * const btn = createStyle('btn', {\n * padding: '10px 12px',\n * cursor: 'pointer',\n * }, {\n * hover: { background: 'rgba(255,255,255,0.10)' },\n * });\n *\n * const root = new Root({ css: [btn.css] });\n * // → .btn { padding: 10px 12px; cursor: pointer; }\n * // → .btn:hover { background: rgba(255,255,255,0.10); }\n * ```\n */\n\nimport { sanitizeCssValue } from '../utils/css-sanitizer.js';\nimport {\n createStyleTemplate,\n type StyleTemplate,\n} from './style-template.js';\n\n/**\n * Converts a camelCase property name to kebab-case.\n * @internal\n */\nfunction toKebabCase(str: string): string {\n return str.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);\n}\n\n/**\n * Renders a CSS properties object into indented CSS body lines.\n * Dangerous values (url(javascript:), expression()) are excluded.\n * @internal\n */\nfunction renderCssBody(properties: Record<string, string>): string {\n return Object.entries(properties)\n .filter(([, v]) => sanitizeCssValue(v) !== '')\n .map(([k, v]) => ` ${toKebabCase(k)}: ${sanitizeCssValue(v)};`)\n .join('\\n');\n}\n\n/**\n * Known pseudo-selector names (for IDE autocomplete).\n * @internal\n */\nconst PSEUDO_SELECTORS = new Set([\n 'hover', 'focus', 'active', 'visited', 'disabled',\n 'first-child', 'last-child', 'focus-within', 'focus-visible',\n]);\n\n/**\n * Style selector definitions.\n *\n * Key formats:\n * - `hover`, `focus`, etc. → pseudo selector (`.name:hover`)\n * - `&.modifier` → compound selector (`.name.modifier`)\n * - ` .child` → descendant selector (`.name .child`)\n * - `&.state .child` → compound + descendant (`.name.state .child`)\n */\nexport type StyleSelectors = {\n [key: string]: Record<string, string>;\n};\n\n/**\n * Represents a shared CSS style that can be applied to multiple elements.\n */\nexport interface SharedStyle {\n /** The CSS class name. */\n readonly className: string;\n /** The complete CSS rule block(s) including pseudo-selectors. */\n readonly css: string;\n /**\n * Internal `StyleTemplate` representation.\n *\n * Maintained for the new colocated-style pipeline (Req 2.1, 2.2, 2.4, 2.5).\n * 既存の `className` / `css` / `toString()` 経路は従来どおり機能するため、\n * 旧 API 利用者は `_template` を意識する必要はない。\n *\n * @internal\n */\n readonly _template: StyleTemplate;\n /** Returns the class name (for template literal usage). */\n toString(): string;\n}\n\n/**\n * Resolves a selector key to a full CSS selector.\n * @internal\n */\nfunction resolveSelector(name: string, key: string): string {\n // Pseudo selector: hover → .name:hover\n if (PSEUDO_SELECTORS.has(key)) {\n return `.${name}:${key}`;\n }\n // Compound selector: &.primary → .name.primary\n if (key.startsWith('&')) {\n return `.${name}${key.slice(1)}`;\n }\n // Descendant selector: \" .text\" → .name .text\n if (key.startsWith(' ')) {\n return `.${name}${key}`;\n }\n // Fallback: treat as pseudo\n return `.${name}:${key}`;\n}\n\n/**\n * Creates a shared CSS style with a named class.\n *\n * @param name - The CSS class name\n * @param properties - CSS properties as key-value pairs (camelCase or kebab-case)\n * @param selectors - Optional selectors: pseudo (:hover), compound (&.primary), descendant ( .text)\n * @returns A SharedStyle object with className, css, and toString()\n *\n * @example\n * ```typescript\n * const btn = createStyle('btn', { padding: '10px' }, {\n * hover: { background: '...' }, // → .btn:hover\n * '&.primary': { borderColor: '...' }, // → .btn.primary\n * ' .icon': { width: '16px' }, // → .btn .icon\n * '&.done .text': { textDecoration: '...' }, // → .btn.done .text\n * });\n * ```\n */\n/**\n * 既存の名前あり `createStyle(name, properties, selectors?)` 実装。\n *\n * 戻り値の `className` / `css` / `toString()` はリファクタ前と同等。\n * 加えて、内部表現として `_template: StyleTemplate` を保持する(Req 2.1, 2.2)。\n *\n * @internal\n */\nexport function createStyleNamed(\n name: string,\n properties: Record<string, string>,\n selectors?: StyleSelectors,\n): SharedStyle {\n const parts: string[] = [];\n\n // Base rule\n const entries = Object.entries(properties);\n if (entries.length > 0) {\n parts.push(`.${name} {\\n${renderCssBody(properties)}\\n}`);\n }\n\n // Additional selector rules\n if (selectors) {\n for (const [key, props] of Object.entries(selectors)) {\n if (props && Object.keys(props).length > 0) {\n const selector = resolveSelector(name, key);\n parts.push(`${selector} {\\n${renderCssBody(props)}\\n}`);\n }\n }\n }\n\n const template = createStyleTemplate({\n name,\n properties,\n ...(selectors !== undefined ? { selectors } : {}),\n });\n\n return {\n className: name,\n css: parts.join('\\n'),\n _template: template,\n toString() { return name; },\n };\n}\n\n/**\n * 名前あり形:`createStyle(\"name\", {...}, selectors?)` → `SharedStyle`\n *\n * 既存仕様どおり、明示クラス名をベースとした `SharedStyle` を返す。\n * 戻り値は内部に `_template: StyleTemplate` を保持し、後続の colocated-style\n * パイプライン(Req 1, 3)から再利用される。\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は `css.class` を使うこと。\n * 本関数は `css.class` 実装の薄いエイリアス基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function createStyle(\n name: string,\n properties: Record<string, string>,\n selectors?: StyleSelectors,\n): SharedStyle;\n/**\n * 無名形:`createStyle({...}, selectors?)` → `StyleTemplate`\n *\n * 明示クラス名を持たない StyleTemplate を返す(Req 2.1, 2.4)。\n * クラス名は後続のレンダー段階で構造パスから決定的に導出される。\n */\nexport function createStyle(\n properties: Record<string, string>,\n selectors?: StyleSelectors,\n): StyleTemplate;\nexport function createStyle(\n arg1: string | Record<string, string>,\n arg2?: Record<string, string> | StyleSelectors,\n arg3?: StyleSelectors,\n): SharedStyle | StyleTemplate {\n if (typeof arg1 === 'string') {\n // 名前あり形\n const properties = (arg2 ?? {}) as Record<string, string>;\n return createStyleNamed(arg1, properties, arg3);\n }\n // 無名形:第1引数が properties、第2引数が selectors\n const properties = arg1;\n const selectors = arg2 as StyleSelectors | undefined;\n return createStyleTemplate({\n properties,\n ...(selectors !== undefined ? { selectors } : {}),\n });\n}\n","/**\n * 統合 createTheme 実装本体\n *\n * フラット入力(string か `Record<string, string>` 値)を受け取り、\n * エントリ単位で値型から「トークン」「クラス」を自動判別する。\n * トークンは `:root` ブロック + `var(--name)` プロキシとして、\n * クラスは `SharedStyle` プロキシとして公開し、`theme.css` で全 CSS を結合した\n * 単一の `GlobalCss` を返す。\n *\n * グローバルルール(`*`、HTMLタグセレクタ)は本ファイルでは扱わず、\n * 既存 `sel.*` 名前空間で担当する(責任分担)。\n *\n * @module css/variables/unified-theme\n */\n\nimport { sanitizeCssValue } from '../utils/css-sanitizer.js';\nimport { type GlobalCss, brand } from './global-css.js';\nimport {\n createStyleNamed,\n type SharedStyle,\n type StyleSelectors,\n} from './css-shared-style.js';\nimport { createStyleTemplate, type StyleTemplate } from './style-template.js';\nimport type { Theme } from './css-theme.js';\n\n// ────────────────────────────────────────────────────────────────────────────\n// Public Types\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * 統合 `createTheme` のフラット入力型。\n * 各エントリの値は string(トークン)または `Record<string, string>`(クラス)。\n */\nexport type UnifiedThemeInput = Record<string, string | Record<string, string>>;\n\n/**\n * 統合 `createTheme` の戻り値型。\n *\n * 入力 `T` の各キーは値型に応じて以下のように振り分けられる:\n * - `T[K]` が string → `string`(`var(--K)` 参照)\n * - `T[K]` が `Record<string, string>` → `SharedStyle`\n *\n * 加えて全 CSS を結合した `css: GlobalCss` を持つ。\n */\nexport type UnifiedTheme<T extends UnifiedThemeInput> = {\n readonly [K in keyof T as T[K] extends string ? K : never]: string;\n} & {\n readonly [K in keyof T as T[K] extends Record<string, string> ? K : never]: SharedStyle;\n} & {\n readonly css: GlobalCss;\n readonly class: ThemeClassMethod;\n};\n\n/**\n * `theme.class` メソッドの呼び出しシグネチャ。\n *\n * - 無名形(properties のみ) → `StyleTemplate`\n * - 無名形 + selectors → `StyleTemplate`\n * - 明示名形(name + properties + selectors?) → `SharedStyle`\n */\nexport type ThemeClassMethod = {\n (properties: Record<string, string>): StyleTemplate;\n (properties: Record<string, string>, selectors: StyleSelectors): StyleTemplate;\n (name: string, properties: Record<string, string>, selectors?: StyleSelectors): SharedStyle;\n};\n\n// ────────────────────────────────────────────────────────────────────────────\n// CssKeywordSet\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * トークン参照解決時に「CSS キーワードはトークン名と一致しても置換しない」\n * ための除外リスト。\n *\n * CSS-wide キーワード + 一般的なプロパティ値キーワード + CSS 名前付きカラー。\n */\nexport const CSS_KEYWORDS: ReadonlySet<string> = new Set<string>([\n // CSS-wide keywords\n 'inherit', 'initial', 'unset', 'revert', 'revert-layer',\n // generic\n 'auto', 'none', 'normal', 'currentcolor', 'transparent',\n // display\n 'block', 'inline', 'inline-block', 'flex', 'inline-flex', 'grid', 'inline-grid',\n 'contents', 'flow-root', 'list-item', 'table', 'table-row', 'table-cell',\n // visibility\n 'visible', 'hidden', 'collapse',\n // position\n 'static', 'relative', 'absolute', 'fixed', 'sticky',\n // font weight / style\n 'bold', 'bolder', 'lighter', 'italic', 'oblique',\n // text\n 'left', 'right', 'center', 'justify', 'start', 'end',\n // border style\n 'solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset',\n // cursor\n 'pointer', 'default', 'crosshair', 'text', 'wait', 'help', 'move', 'not-allowed', 'grab', 'grabbing',\n // overflow\n 'scroll', 'clip',\n // flex / align\n 'stretch', 'baseline', 'space-between', 'space-around', 'space-evenly',\n 'flex-start', 'flex-end',\n // box-sizing\n 'content-box', 'border-box',\n // CSS named colors (subset commonly used)\n 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque',\n 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood', 'cadetblue',\n 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan',\n 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey',\n 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred',\n 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey',\n 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey',\n 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro',\n 'ghostwhite', 'gold', 'goldenrod', 'gray', 'green', 'greenyellow', 'grey',\n 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender',\n 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan',\n 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink',\n 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey',\n 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon',\n 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',\n 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred',\n 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'navy',\n 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid', 'palegoldenrod',\n 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru',\n 'pink', 'plum', 'powderblue', 'purple', 'rebeccapurple', 'red', 'rosybrown',\n 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna',\n 'silver', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen',\n 'steelblue', 'tan', 'teal', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat',\n 'white', 'whitesmoke', 'yellow', 'yellowgreen',\n]);\n\n// ────────────────────────────────────────────────────────────────────────────\n// Contextual keyword resolver (property-aware)\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Color 系 CSS プロパティ名集合。\n * これらのプロパティでは「カラー値として無効な keyword」を token 解決の阻害要因から\n * 除外する(COLOR_KEYWORDS を使う)。\n */\nexport const COLOR_PROPERTIES: ReadonlySet<string> = new Set<string>([\n 'color',\n 'background', 'background-color',\n 'border-color',\n 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color',\n 'outline-color',\n 'text-decoration-color',\n 'caret-color',\n 'fill', 'stroke',\n]);\n\n/**\n * Color プロパティでは「カラー値として無効」と判定する keyword 集合。\n *\n * `inherit` / `initial` / `unset` / `revert` / `none` / `transparent` / `currentcolor` /\n * named colors は color プロパティでも有効なので含めない。\n */\nexport const NON_COLOR_KEYWORDS: ReadonlySet<string> = new Set<string>([\n // cursor 専用\n 'text', 'pointer', 'default', 'crosshair', 'wait', 'help', 'move',\n 'not-allowed', 'grab', 'grabbing',\n // display\n 'block', 'inline', 'inline-block', 'flex', 'inline-flex', 'grid', 'inline-grid',\n 'contents', 'flow-root', 'list-item', 'table', 'table-row', 'table-cell',\n // visibility\n 'visible', 'hidden', 'collapse',\n // position\n 'static', 'relative', 'absolute', 'fixed', 'sticky',\n // overflow\n 'scroll', 'clip',\n // flex / align\n 'stretch', 'baseline', 'space-between', 'space-around', 'space-evenly',\n 'flex-start', 'flex-end',\n // box-sizing\n 'content-box', 'border-box',\n // font-weight / style\n 'bold', 'bolder', 'lighter', 'italic', 'oblique',\n // text-align\n 'left', 'right', 'center', 'justify', 'start', 'end',\n // border-style\n 'solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset',\n // generic non-color\n 'auto', 'normal',\n]);\n\n/**\n * Color プロパティ用 keyword 集合(CSS_KEYWORDS から NON_COLOR_KEYWORDS を除いたもの)。\n */\nexport const COLOR_KEYWORDS: ReadonlySet<string> = new Set<string>(\n Array.from(CSS_KEYWORDS).filter((k) => !NON_COLOR_KEYWORDS.has(k)),\n);\n\n/**\n * CSS プロパティ名から、そのプロパティで「CSS keyword と見なすべき値」の集合を返す関数型。\n *\n * - Color 系プロパティ: `COLOR_KEYWORDS`(cursor 用 `text` 等を除外)\n * - それ以外: `CSS_KEYWORDS`(既存挙動)\n *\n * 戻り値は identity-stable で、同じ propName に対し常に同じ参照を返す。\n */\nexport type CssKeywordResolver = (propName: string) => ReadonlySet<string>;\n\n/**\n * `propName` を CSS プロパティ名として正規化(lowercase)し、適切な keyword 集合を返す。\n */\nexport function getKeywordsForProperty(propName: string): ReadonlySet<string> {\n const normalized = propName.toLowerCase();\n if (COLOR_PROPERTIES.has(normalized)) {\n return COLOR_KEYWORDS;\n }\n return CSS_KEYWORDS;\n}\n\n/**\n * デフォルト keyword resolver。`getKeywordsForProperty` を直接指す。\n */\nexport const defaultKeywordResolver: CssKeywordResolver = getKeywordsForProperty;\n\n// ────────────────────────────────────────────────────────────────────────────\n// EntryClassifier\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * エントリ分類結果(discriminated union)。\n * `kind` で `value` の型が narrow される。\n */\nexport type ClassifiedEntry =\n | { kind: 'token'; key: string; value: string }\n | { kind: 'class'; key: string; value: Record<string, string> };\n\n/**\n * `(key, value)` を `'token'` / `'class'` に分類する純粋関数。\n *\n * - `typeof value === 'string'` → `'token'`\n * - plain object → `'class'`\n */\nexport function classifyEntry(\n key: string,\n value: string | Record<string, string>,\n): ClassifiedEntry {\n if (typeof value === 'string') {\n return { kind: 'token', key, value };\n }\n return { kind: 'class', key, value };\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// TokenAccumulator\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * トークン(string 値エントリ)を集約し、`:root` ブロック・`var()` プロキシ・\n * トークン名集合を提供するビルダ。\n */\nexport class TokenAccumulator {\n private readonly entries = new Map<string, string>();\n\n add(name: string, rawValue: string): void {\n const safe = sanitizeCssValue(rawValue);\n if (safe === '') return;\n this.entries.set(name, safe);\n }\n\n buildRootCss(): GlobalCss | undefined {\n if (this.entries.size === 0) return undefined;\n const lines: string[] = [];\n for (const [k, v] of this.entries) {\n lines.push(` --${k}: ${v};`);\n }\n return brand(`:root {\\n${lines.join('\\n')}\\n}`);\n }\n\n buildProxy(): Record<string, string> {\n const proxy: Record<string, string> = {};\n for (const k of this.entries.keys()) {\n proxy[k] = `var(--${k})`;\n }\n return proxy;\n }\n\n getNameSet(): ReadonlySet<string> {\n return new Set(this.entries.keys());\n }\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// TokenRefResolver\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * プロパティ値文字列がトークン名と完全一致し、かつ CSS キーワードでない場合のみ\n * `var(--name)` に置換する純粋関数。\n *\n * - 値に空白・括弧・カンマを含む場合は元値そのまま\n * - 値が CSS キーワードと一致する場合は元値そのまま(CSS キーワード優先)\n * - トークン名集合に存在しない場合は元値そのまま\n */\nexport function resolveTokenRefs(\n properties: Record<string, string>,\n tokenNames: ReadonlySet<string>,\n keywordResolver: CssKeywordResolver,\n): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [k, v] of Object.entries(properties)) {\n out[k] = resolveValue(k, v, tokenNames, keywordResolver);\n }\n return out;\n}\n\nfunction resolveValue(\n propName: string,\n value: string,\n tokenNames: ReadonlySet<string>,\n keywordResolver: CssKeywordResolver,\n): string {\n // 複合値は対象外\n if (/[\\s(),]/.test(value)) return value;\n // プロパティ別 CSS キーワード優先(color 系では NON_COLOR_KEYWORDS を除外した集合)\n const keywords = keywordResolver(propName);\n if (keywords.has(value)) return value;\n // トークン名一致 → var() に置換\n if (tokenNames.has(value)) return `var(--${value})`;\n return value;\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// ClassAccumulator\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * クラス(object 値エントリ)を集約し、`SharedStyle` プロキシと\n * `GlobalCss[]` ブロック群を挿入順で生成するビルダ。\n *\n * トークン名コンテキストは `setTokenContext` で受け取り、`add` 時に\n * `resolveTokenRefs` で値を解決した上で `createStyleNamed` に委譲する。\n * サニタイズは `createStyleNamed` 内で行うため二重適用しない。\n */\nexport class ClassAccumulator {\n private readonly entries = new Map<string, SharedStyle>();\n private tokenNames: ReadonlySet<string> = new Set();\n private keywordResolver: CssKeywordResolver = defaultKeywordResolver;\n\n setTokenContext(tokenNames: ReadonlySet<string>, keywordResolver: CssKeywordResolver): void {\n this.tokenNames = tokenNames;\n this.keywordResolver = keywordResolver;\n }\n\n add(name: string, properties: Record<string, string>): void {\n const resolved = resolveTokenRefs(properties, this.tokenNames, this.keywordResolver);\n const style = createStyleNamed(name, resolved);\n this.entries.set(name, style);\n }\n\n buildProxy(): Record<string, SharedStyle> {\n const proxy: Record<string, SharedStyle> = {};\n for (const [k, v] of this.entries) {\n proxy[k] = v;\n }\n return proxy;\n }\n\n buildCssBlocks(): GlobalCss[] {\n const blocks: GlobalCss[] = [];\n for (const style of this.entries.values()) {\n if (style.css !== '') blocks.push(brand(style.css));\n }\n return blocks;\n }\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// CssCombiner\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * tokens → classes の決定的順序で結合し、空セクションをスキップして\n * 単一 `GlobalCss` を返す純粋関数。\n */\nexport function combineCss(parts: {\n tokensCss?: GlobalCss | undefined;\n classesCss: GlobalCss[];\n}): GlobalCss {\n const sections: string[] = [];\n if (parts.tokensCss !== undefined && parts.tokensCss !== '') {\n sections.push(parts.tokensCss);\n }\n for (const block of parts.classesCss) {\n if (block !== '') sections.push(block);\n }\n return brand(sections.join('\\n\\n'));\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// ThemeClass helper\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * selectors 内の各 properties に `resolveTokenRefs` を適用する。\n *\n * `theme.class(props, selectors)` の selectors 経路で token 解決の対称性を保つため、\n * 各 selector ブロックの properties にも token 解決を適用する。\n */\nfunction resolveSelectorsTokens(\n selectors: StyleSelectors,\n tokenNames: ReadonlySet<string>,\n keywordResolver: CssKeywordResolver,\n): StyleSelectors {\n const out: StyleSelectors = {};\n for (const [k, props] of Object.entries(selectors)) {\n if (props !== undefined) {\n out[k] = resolveTokenRefs(props, tokenNames, keywordResolver);\n }\n }\n return out;\n}\n\n/**\n * `tokenNames` と `cssKeywords` を closure に握り、入力に応じて\n * `StyleTemplate`(無名形)か `SharedStyle`(明示名形)を返す純粋関数を構築する。\n *\n * - 第 1 引数が `string` → 明示名形:`createStyleNamed` を呼ぶ\n * - 第 1 引数が plain object → 無名形:`createStyleTemplate` を呼ぶ\n *\n * sanitize は `createStyleNamed` / `createStyleTemplate` 内に委譲し、二重適用しない。\n */\nexport function buildThemeClass(\n tokenNames: ReadonlySet<string>,\n keywordResolver: CssKeywordResolver,\n): ThemeClassMethod {\n function impl(\n arg1: string | Record<string, string>,\n arg2?: Record<string, string> | StyleSelectors,\n arg3?: StyleSelectors,\n ): SharedStyle | StyleTemplate {\n if (typeof arg1 === 'string') {\n const name = arg1;\n const properties = (arg2 as Record<string, string> | undefined) ?? {};\n const selectors = arg3;\n const resolvedProps = resolveTokenRefs(properties, tokenNames, keywordResolver);\n const resolvedSelectors =\n selectors !== undefined\n ? resolveSelectorsTokens(selectors, tokenNames, keywordResolver)\n : undefined;\n return createStyleNamed(name, resolvedProps, resolvedSelectors);\n }\n const properties = arg1;\n const selectors = arg2 as StyleSelectors | undefined;\n const resolvedProps = resolveTokenRefs(properties, tokenNames, keywordResolver);\n const resolvedSelectors =\n selectors !== undefined\n ? resolveSelectorsTokens(selectors, tokenNames, keywordResolver)\n : undefined;\n return createStyleTemplate({\n properties: resolvedProps,\n ...(resolvedSelectors !== undefined ? { selectors: resolvedSelectors } : {}),\n });\n }\n return impl as ThemeClassMethod;\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// Orchestrator: buildUnifiedTheme\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * 統合 `createTheme` のオーケストレータ。\n *\n * Pass 1: 全エントリを `classifyEntry` で分類し、トークンを `TokenAccumulator` に\n * 先行収集する。クラスエントリは原値のまま保留。\n * Pass 2: 確定したトークン名コンテキストで `ClassAccumulator` がクラスを処理。\n * 最後に `CssCombiner` で tokens → classes 順に結合する。\n *\n * 戻り値は `Object.freeze` で凍結された `UnifiedTheme<T>` 互換オブジェクト。\n */\nexport function buildUnifiedTheme<T extends UnifiedThemeInput>(input: T): UnifiedTheme<T> {\n const tokenAcc = new TokenAccumulator();\n const classAcc = new ClassAccumulator();\n\n // Pass 1: classify and accumulate tokens; defer class entries\n const deferredClasses: { key: string; value: Record<string, string> }[] = [];\n for (const [key, value] of Object.entries(input)) {\n const entry = classifyEntry(key, value);\n if (entry.kind === 'token') {\n tokenAcc.add(entry.key, entry.value);\n } else {\n deferredClasses.push({ key: entry.key, value: entry.value });\n }\n }\n\n // Pass 2: process classes with token context\n classAcc.setTokenContext(tokenAcc.getNameSet(), defaultKeywordResolver);\n for (const { key, value } of deferredClasses) {\n classAcc.add(key, value);\n }\n\n // Build proxy\n const tokenProxy = tokenAcc.buildProxy();\n const classProxy = classAcc.buildProxy();\n\n const result: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(tokenProxy)) result[k] = v;\n for (const [k, v] of Object.entries(classProxy)) result[k] = v;\n\n const tokensCss = tokenAcc.buildRootCss();\n const classesCss = classAcc.buildCssBlocks();\n const css = combineCss({ tokensCss, classesCss });\n\n Object.defineProperty(result, 'css', {\n value: css,\n enumerable: false,\n writable: false,\n });\n\n const themeClass = buildThemeClass(tokenAcc.getNameSet(), defaultKeywordResolver);\n Object.defineProperty(result, 'class', {\n value: themeClass,\n enumerable: false,\n writable: false,\n });\n\n return Object.freeze(result) as UnifiedTheme<T>;\n}\n\n// Re-export `Theme` for convenience (used by the public `createTheme` overload)\nexport type { Theme };\n","/**\n * CSS変数テーマ定義(統合 createTheme の公開シグネチャ)\n *\n * 型安全な CSS Custom Properties(CSS変数)と再利用可能なクラスを\n * 1つのフラットオブジェクトで定義する。値の型から自動的に\n * 「トークン」「クラス」が判別される。\n *\n * 実装本体は `unified-theme.ts` の `buildUnifiedTheme` に委譲する。\n *\n * クラス名は HTML タグ名と同名でも CSS セレクタとしては衝突しない\n * (`.ul` は `ul` セレクタとは別物)。グローバルルール(`*`、HTMLタグセレクタ)\n * は `sel.*` 名前空間を利用すること。\n *\n * @example\n * ```typescript\n * // 既存形式(全 string 値)\n * const theme = createTheme({ bg: '#0b1220', accent: '#7c5cff' });\n * theme.bg // → 'var(--bg)'\n * theme.css // → ':root { --bg: #0b1220; --accent: #7c5cff; }'\n *\n * // 統合形式(混在入力)\n * const t = createTheme({\n * bg: '#000',\n * card: { background: 'bg', padding: '12px' },\n * });\n * t.bg // → 'var(--bg)'\n * t.card // → SharedStyle\n * t.css // → ':root { ... }\\n\\n.card { background: var(--bg); padding: 12px; }'\n * ```\n */\n\nimport type { GlobalCss } from './global-css.js';\nimport {\n buildUnifiedTheme,\n type UnifiedTheme,\n type UnifiedThemeInput,\n} from './unified-theme.js';\n\n/**\n * Theme type: each key maps to its var(--key) reference,\n * plus a .css property for the :root block.\n *\n * 既存形式(全 string 入力)の戻り値型として維持。\n */\nexport type Theme<T extends Record<string, string>> = {\n readonly [K in keyof T]: string;\n} & {\n /** The :root { ... } CSS block with all variable definitions. */\n readonly css: GlobalCss;\n};\n\n/**\n * 既存形式:全エントリの値が string の入力。`Theme<T>` を返す(後方互換)。\n *\n * 全 string の場合に優先解決させるため、より具体的なこのシグネチャを先に宣言する。\n *\n * @example\n * ```typescript\n * const theme = createTheme({ bg: '#000', text: '#fff' });\n * theme.bg // → 'var(--bg)'\n * theme.css // → ':root {\\n --bg: #000;\\n --text: #fff;\\n}'\n * ```\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は `css.theme` を使うこと。\n * 本関数は `css.theme` 実装の薄いエイリアス基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function createTheme<T extends Record<string, string>>(vars: T): Theme<T>;\n/**\n * 統合 createTheme:混在入力(string + Record<string, string>)。\n *\n * 値の型から「トークン」「クラス」を自動判別し、`UnifiedTheme<T>` を返す。\n * クラス内のプロパティ値が同一呼び出しで定義されたトークン名と完全一致し、\n * かつ CSS キーワード(`auto`、`red` 等)でない場合は `var(--name)` に解決される。\n */\nexport function createTheme<T extends UnifiedThemeInput>(input: T): UnifiedTheme<T>;\nexport function createTheme(input: UnifiedThemeInput): unknown {\n return buildUnifiedTheme(input);\n}\n","/**\n * Global CSS DSL — セレクタ系・at-rule 系ファクトリ関数\n *\n * `root` / `all` / `tag` / `rule` / `media` / `keyframes` の 6関数を提供する。\n * 各関数は内部ヘルパを経由して `GlobalCss` branded type を生成する。\n * `brand()` の呼び出しは `selectorRule` / at-rule 各生成箇所に限定し、キャスト漏れを防ぐ。\n *\n * @module global-dsl\n */\n\nimport { type GlobalCss, brand, renderProperties, wrapBlock } from './global-css.js';\n\ntype Properties = Record<string, string>;\n\n/**\n * 共通セレクタルール生成ヘルパ。\n * セレクタと style object から CSS ブロックを組み立て、`GlobalCss` として返す唯一の経路。\n */\nfunction selectorRule(selector: string, properties: Properties): GlobalCss {\n return brand(wrapBlock(selector, renderProperties(properties)));\n}\n\n/**\n * `:root { ... }` ブロックを生成する。\n * CSS カスタムプロパティ(CSS 変数)の定義に用いる。\n *\n * @example\n * root({ '--bg': '#0b1220', '--fg': '#fff' })\n * // → \":root {\\n --bg: #0b1220;\\n --fg: #fff;\\n}\"\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は `css.theme` の token エントリ、\n * または最終手段として `css.raw` を使うこと。本関数は `sel.root` の実装基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function root(properties: Properties): GlobalCss {\n return selectorRule(':root', properties);\n}\n\n/**\n * `* { ... }` ブロックを生成する。\n * 全要素へのリセットスタイル等に用いる。\n *\n * @example\n * all({ boxSizing: 'border-box' })\n * // → \"* {\\n box-sizing: border-box;\\n}\"\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は `css.reset` を使うこと\n * (最終手段として `css.raw`)。本関数は `sel.all` の実装基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function all(properties: Properties): GlobalCss {\n return selectorRule('*', properties);\n}\n\n/**\n * HTML タグセレクタブロックを生成する。\n * `name` は `HTMLElementTagNameMap` のキーに対してリテラル補完が効き、\n * かつ任意の文字列も受け付ける(`string & {}` パターン)。\n *\n * @example\n * tag('ul', { listStyle: 'none', margin: '0' })\n * // → \"ul {\\n list-style: none;\\n margin: 0;\\n}\"\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと(最終手段として `css.raw`)。\n * 本関数は `sel.tag` および per-tag shortcuts(`tag-dsl.generated.ts`)の実装基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function tag(\n name: keyof HTMLElementTagNameMap | (string & {}),\n properties: Properties,\n): GlobalCss {\n return selectorRule(name, properties);\n}\n\n/**\n * 任意セレクタブロックを生成する(脱出ハッチ)。\n * 疑似クラス・疑似要素・複合セレクタなど、専用関数では表現できないセレクタに使用する。\n * セレクタ文字列の構文検証は行わない(ランタイム no-op)。\n *\n * @example\n * rule('.foo:hover', { color: 'red' })\n * // → \".foo:hover {\\n color: red;\\n}\"\n */\n/**\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は `css.raw` または要素単位クラス合成\n * (`css.class`)を使うこと。本関数は `sel.rule` の実装基盤として内部実装で継続使用される。\n * 詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport function rule(selector: string, properties: Properties): GlobalCss {\n return selectorRule(selector, properties);\n}\n\n/**\n * `@media (query) { ... }` ブロックを生成する。\n * 各 `GlobalCss` のすべての行に2スペースのインデントを付与し、\n * ルール間は空行(`\\n\\n`)で区切る。\n *\n * @example\n * media(\"(min-width: 768px)\", [tag(\"body\", { fontSize: \"18px\" })])\n * // → \"@media (min-width: 768px) {\\n body {\\n font-size: 18px;\\n }\\n}\"\n *\n * @param query - メディアクエリ文字列(括弧付き or なし)\n * @param rules - 内包する GlobalCss ルール配列\n */\nexport function media(query: string, rules: readonly GlobalCss[]): GlobalCss {\n const indented = rules\n .map((r) =>\n r\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n'),\n )\n .join('\\n\\n');\n return brand(`@media ${query} {\\n${indented}\\n}`);\n}\n\n/**\n * フレームキーセレクタ型。`from` / `to` または `${number}%` を受け付ける。\n */\ntype KeyframeSelector = 'from' | 'to' | `${number}%`;\n\n/**\n * `@keyframes name { ... }` ブロックを生成する。\n * 各フレームの宣言を `renderProperties` で整形し、2スペースインデント付きブロックで展開する。\n *\n * @example\n * keyframes(\"fadeIn\", { from: { opacity: \"0\" }, to: { opacity: \"1\" } })\n * // → \"@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\"\n *\n * @param name - アニメーション名\n * @param frames - フレームキーと CSS プロパティのマップ\n */\nexport function keyframes(\n name: string,\n frames: Partial<Record<KeyframeSelector, Properties>>,\n): GlobalCss {\n const blocks = (Object.entries(frames) as [KeyframeSelector, Properties][]).map(\n ([key, props]) => {\n const body = renderProperties(props)\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n');\n return ` ${key} {\\n${body}\\n }`;\n },\n );\n return brand(`@keyframes ${name} {\\n${blocks.join('\\n')}\\n}`);\n}\n","/**\n * `css` ネームスペース — CSS 関連 API の単一エントリポイント。\n *\n * 既存の `createTheme` / `createStyle` / `sel.media` / `sel.keyframes` への\n * 薄いエイリアスと、新規 `theme.variant` / `reset` / `raw` を集約する。\n *\n * @module css/css\n */\n\nimport { sanitizeCssValue } from './utils/css-sanitizer.js';\nimport {\n type GlobalCss,\n brand,\n renderProperties,\n wrapBlock,\n} from './variables/global-css.js';\nimport { createTheme } from './variables/css-theme.js';\nimport type { Theme } from './variables/css-theme.js';\nimport {\n createStyle,\n type SharedStyle,\n type StyleSelectors,\n} from './variables/css-shared-style.js';\nimport type { StyleTemplate } from './variables/style-template.js';\nimport type {\n UnifiedTheme,\n UnifiedThemeInput,\n} from './variables/unified-theme.js';\nimport { media as selMedia, keyframes as selKeyframes } from './variables/global-dsl.js';\n\n// ────────────────────────────────────────────────────────────────────────────\n// css.raw — escape hatch\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * 生 CSS 文字列を `GlobalCss` ブランド型にラップする escape hatch。\n *\n * 他 `css.*` で書けない場合の **最終手段**。サニタイズや検証は行わず、\n * 入力文字列の安全性はユーザの責任に委ねる。\n *\n * @param cssString - 任意の CSS 文字列(そのまま `GlobalCss` として返る)\n */\nexport function cssRaw(cssString: string): GlobalCss {\n return brand(cssString);\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// css.reset — リセット CSS\n// ────────────────────────────────────────────────────────────────────────────\n\nconst DEFAULT_RESET: GlobalCss = brand(\n '* {\\n box-sizing: border-box;\\n}\\n\\nbody {\\n margin: 0;\\n}',\n);\n\nfunction isStyleTemplate(v: unknown): v is StyleTemplate {\n return (\n typeof v === 'object' &&\n v !== null &&\n (v as { _kind?: unknown })._kind === 'styleTemplate'\n );\n}\n\nfunction isSharedStyle(v: unknown): v is SharedStyle {\n return (\n typeof v === 'object' &&\n v !== null &&\n typeof (v as { className?: unknown }).className === 'string' &&\n typeof (v as { css?: unknown }).css === 'string'\n );\n}\n\n/**\n * リセット CSS を生成する。\n *\n * - 引数なし → デフォルト(`* { box-sizing: border-box; }` + `body { margin: 0; }`)\n * - `Record<string, string>` → `* { <props> }`\n * - `SharedStyle` / `StyleTemplate` → `properties` を抽出し `* { <props> }`\n *\n * 値は `sanitizeCssValue` でサニタイズされる。\n */\nexport function cssReset(): GlobalCss;\nexport function cssReset(properties: Record<string, string>): GlobalCss;\nexport function cssReset(style: SharedStyle | StyleTemplate): GlobalCss;\nexport function cssReset(\n arg?: Record<string, string> | SharedStyle | StyleTemplate,\n): GlobalCss {\n if (arg === undefined) return DEFAULT_RESET;\n let properties: Record<string, string>;\n if (isSharedStyle(arg)) {\n properties = { ...arg._template.properties };\n } else if (isStyleTemplate(arg)) {\n properties = { ...arg.properties };\n } else {\n properties = arg;\n }\n return brand(wrapBlock('*', renderProperties(properties)));\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// css.theme.variant — トークン属性スコープ上書き\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * 入力 `T` から token キー(値が string であるキー)のみを抽出する補助型。\n */\nexport type TokenKeysOf<T> = {\n [K in keyof T as T[K] extends string ? K : never]: string;\n};\n\nfunction variant<T extends UnifiedThemeInput>(\n _theme: UnifiedTheme<T>,\n selector: string,\n overrides: Partial<TokenKeysOf<T>>,\n): GlobalCss {\n const lines: string[] = [];\n for (const [key, rawValue] of Object.entries(overrides)) {\n if (typeof rawValue !== 'string') continue;\n const safe = sanitizeCssValue(rawValue);\n if (safe === '') continue;\n lines.push(` --${key}: ${safe};`);\n }\n return brand(wrapBlock(selector, lines.join('\\n')));\n}\n\n// ────────────────────────────────────────────────────────────────────────────\n// css.theme — 既存 createTheme の薄いエイリアス + .variant\n// ────────────────────────────────────────────────────────────────────────────\n\ninterface CssThemeFn {\n <T extends Record<string, string>>(vars: T): Theme<T>;\n <T extends UnifiedThemeInput>(input: T): UnifiedTheme<T>;\n variant: <T extends UnifiedThemeInput>(\n theme: UnifiedTheme<T>,\n selector: string,\n overrides: Partial<TokenKeysOf<T>>,\n ) => GlobalCss;\n}\n\nfunction cssThemeImpl(input: UnifiedThemeInput): unknown {\n return createTheme(input as UnifiedThemeInput);\n}\n\nconst cssTheme = Object.assign(cssThemeImpl as CssThemeFn, { variant });\n\n// ────────────────────────────────────────────────────────────────────────────\n// css.class — 既存 createStyle の薄いエイリアス(オーバーロード)\n// ────────────────────────────────────────────────────────────────────────────\n\ninterface CssClassFn {\n (\n name: string,\n properties: Record<string, string>,\n selectors?: StyleSelectors,\n ): SharedStyle;\n (\n properties: Record<string, string>,\n selectors?: StyleSelectors,\n ): StyleTemplate;\n}\n\nconst cssClass = ((\n arg1: string | Record<string, string>,\n arg2?: Record<string, string> | StyleSelectors,\n arg3?: StyleSelectors,\n) => {\n if (typeof arg1 === 'string') {\n return createStyle(arg1, (arg2 ?? {}) as Record<string, string>, arg3);\n }\n return createStyle(arg1, arg2 as StyleSelectors | undefined);\n}) as CssClassFn;\n\n// ────────────────────────────────────────────────────────────────────────────\n// css namespace\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * CSS 関連 API を集約した単一ネームスペース。\n *\n * - `css.theme(input)` — トークン + クラス定義(既存 `createTheme` のエイリアス)\n * - `css.theme.variant(theme, selector, overrides)` — トークン属性スコープ上書き\n * - `css.class(name?, properties, selectors?)` — 名前あり/無名クラス(既存 `createStyle`)\n * - `css.reset(input?)` — リセット CSS\n * - `css.media(query, rules)` — `@media` ブロック(既存 `sel.media`)\n * - `css.keyframes(name, frames)` — `@keyframes` ブロック(既存 `sel.keyframes`)\n * - `css.raw(cssString)` — 生 CSS の escape hatch\n */\nexport const css = {\n theme: cssTheme,\n class: cssClass,\n reset: cssReset,\n media: selMedia,\n keyframes: selKeyframes,\n raw: cssRaw,\n} as const;\n","/**\n * jQuery method types supported by DraftOle\n *\n * 依存方向: html/protocols/ が定義を所有し、js/ が実装する。\n */\n\nexport type JQueryMethodType =\n | 'css'\n | 'height'\n | 'on'\n | 'text'\n | 'html'\n | 'addClass'\n | 'removeClass'\n | 'toggleClass';\n\nexport const JQUERY_METHOD_TYPES: readonly JQueryMethodType[] = [\n 'css',\n 'height',\n 'on',\n 'text',\n 'html',\n 'addClass',\n 'removeClass',\n 'toggleClass',\n] as const;\n","/**\n * jsTemplate: HTMLTagProtocol ツリーから DOM 生成 JavaScript コードを生成する\n *\n * param() でマーカーオブジェクトを作成し、jsTemplate() でタグツリーを走査して\n * document.createElement / appendChild を使った JS 関数コードを出力する。\n */\nimport type { HTMLTagProtocol } from '../html/protocols/html-tag-protocol.js';\nimport type { HtmlAttributeShape } from '../html/protocols/html-tag-protocol.js';\nimport { TextType } from '../html/elements/text-type.js';\nimport type { JsParam } from './js-param.js';\nimport { decodeJsParamSentinel } from './js-param.js';\n\n// JsParam, isJsParam, param は js-param.ts から再エクスポート\nexport type { JsParam } from './js-param.js';\nexport { isJsParam, encodeJsParam, decodeJsParamSentinel, JSPARAM_SENTINEL_PREFIX } from './js-param.js';\n\n// ============================================================\n// param() ファクトリ関数\n// ============================================================\n\n/**\n * JsParam マーカーオブジェクトを作成する。\n *\n * jsTemplate() に渡すタグツリー内の属性値として使用することで、\n * 生成される JS コード内で文字列リテラルではなく変数参照になる。\n *\n * @param name - JS 関数の引数名\n * @returns JsParam マーカーオブジェクト\n *\n * @example\n * ```typescript\n * const result = jsTemplate('createLabel', ['text'],\n * span({ textContent: param('text') })\n * );\n * result.render();\n * // → \"el0.textContent = text;\" (クォートなし)\n * ```\n */\nexport function param(name: string): JsParam {\n return { __jsParam: true, name };\n}\n\n// ============================================================\n// DOM プロパティマッピング\n// ============================================================\n\n/**\n * HTML 属性キー → DOM プロパティ名のマッピング。\n * このマップにある属性は el.propName = value の形式で出力される。\n * マップにない属性は el.setAttribute(\"key\", \"value\") にフォールバックする。\n */\nconst DOM_PROPERTY_MAP: Readonly<Record<string, string>> = {\n 'className': 'className',\n 'class': 'className',\n 'textContent': 'textContent',\n 'id': 'id',\n 'type': 'type',\n 'value': 'value',\n 'href': 'href',\n 'src': 'src',\n 'alt': 'alt',\n 'title': 'title',\n 'placeholder': 'placeholder',\n 'name': 'name',\n 'disabled': 'disabled',\n 'checked': 'checked',\n 'selected': 'selected',\n 'readonly': 'readOnly',\n 'hidden': 'hidden',\n};\n\n// ============================================================\n// JsTemplateResult — render() インターフェース\n// ============================================================\n\n/**\n * jsTemplate() の戻り値。name・params・render() を持つ。\n */\nexport interface JsTemplateResult {\n /** 生成する JS 関数名 */\n readonly name: string;\n /** JS 関数の引数名リスト */\n readonly params: readonly string[];\n /** JS コード文字列を生成する */\n render(): string;\n}\n\n// ============================================================\n// 内部ユーティリティ\n// ============================================================\n\n/**\n * 属性の文字列値を JS コード用に整形する。\n * sentinel (JsParam) → 変数参照(クォートなし)\n * 通常文字列 → \"value\"(JSON エンコード済みダブルクォート)\n */\nfunction renderAttrValue(raw: string): string {\n const paramName = decodeJsParamSentinel(raw);\n if (paramName !== null) {\n return paramName; // 変数参照(クォートなし)\n }\n return JSON.stringify(raw); // \"value\"\n}\n\n/**\n * HtmlAttributeShape から JS コードの行を生成する。\n */\nfunction attrToJsLines(varName: string, attr: HtmlAttributeShape): string[] {\n const key = attr.key;\n const attrValue = attr.attributeValue;\n\n // boolean 属性 → el.propName = true\n if (attrValue.type === 'boolean') {\n const prop = DOM_PROPERTY_MAP[key] ?? key;\n return [`${varName}.${prop} = true;`];\n }\n\n // custom (data-*) → setAttribute(\"data-name\", value)\n if (attrValue.type === 'custom') {\n const dataKey = `data-${attrValue.name}`;\n const rawValue = attrValue.value;\n const paramName = decodeJsParamSentinel(rawValue);\n if (paramName !== null) {\n return [`${varName}.setAttribute(\"${dataKey}\", ${paramName});`];\n }\n return [`${varName}.setAttribute(\"${dataKey}\", ${JSON.stringify(rawValue)});`];\n }\n\n // keyValue\n if (attrValue.type === 'keyValue') {\n const rawValue = attrValue.value;\n\n // class → className DOM プロパティ\n if (key === 'class') {\n return [`${varName}.className = ${renderAttrValue(rawValue)};`];\n }\n\n // DOM プロパティにマッピングされるキー\n const domProp = DOM_PROPERTY_MAP[key];\n if (domProp !== undefined) {\n return [`${varName}.${domProp} = ${renderAttrValue(rawValue)};`];\n }\n\n // aria-* / その他 → setAttribute\n const paramName = decodeJsParamSentinel(rawValue);\n if (paramName !== null) {\n return [`${varName}.setAttribute(\"${key}\", ${paramName});`];\n }\n return [`${varName}.setAttribute(\"${key}\", ${JSON.stringify(rawValue)});`];\n }\n\n return [];\n}\n\n/**\n * タグツリーを再帰的に走査して JS コード行を生成する。\n *\n * @param node - 現在のノード\n * @param counter - 変数カウンタ(共有オブジェクト、インクリメントしながら使う)\n * @param lines - 出力行リスト(破壊的追加)\n * @param refs - jsName → 変数名のマップ(破壊的追加)\n * @returns このノードに割り当てた変数名\n */\nfunction walkNode(\n node: HTMLTagProtocol,\n counter: { value: number },\n lines: string[],\n refs: Record<string, string>,\n): string {\n // jsName (data-jsname カスタム属性) を検出して変数名を決定する\n const jsNameAttr = node.attributes.find(\n a => a.attributeValue.type === 'custom' && a.attributeValue.name === 'jsname',\n );\n let varName: string;\n if (jsNameAttr && jsNameAttr.attributeValue.type === 'custom') {\n varName = jsNameAttr.attributeValue.value;\n refs[varName] = varName;\n } else {\n varName = `el${counter.value++}`;\n }\n\n const tagType = node.tagType;\n\n // createElement\n lines.push(`const ${varName} = document.createElement(\"${tagType}\");`);\n\n // 属性の出力(data-jsname はスキップする)\n for (const attr of node.attributes) {\n // data-jsname は jsTemplate のメタデータのため JS 出力には含めない\n if (attr.attributeValue.type === 'custom' && attr.attributeValue.name === 'jsname') continue;\n const attrLines = attrToJsLines(varName, attr);\n for (const line of attrLines) {\n lines.push(line);\n }\n }\n\n // 子要素の出力\n for (const child of node.children) {\n if (child instanceof TextType) {\n // テキストノード → textContent として設定\n const content = child.content;\n const paramName = decodeJsParamSentinel(content);\n if (paramName !== null) {\n lines.push(`${varName}.textContent = ${paramName};`);\n } else {\n lines.push(`${varName}.textContent = ${JSON.stringify(content)};`);\n }\n } else {\n // 要素ノード → 再帰してから appendChild\n const childVar = walkNode(child, counter, lines, refs);\n lines.push(`${varName}.appendChild(${childVar});`);\n }\n }\n\n return varName;\n}\n\n// ============================================================\n// jsTemplate\n// ============================================================\n\n/**\n * HTMLTagProtocol タグツリーから DOM 生成 JS 関数を生成する。\n *\n * @param name - 生成する JS 関数名\n * @param params - 関数引数名のリスト\n * @param rootElement - DraftOle タグツリーのルート要素\n * @param afterCreate - オプション。{ jsName: varName } のマップを受け取り\n * return 文の直前に挿入する生 JS コードを返すコールバック\n * @returns render() メソッドを持つ JsTemplateResult\n *\n * @example\n * ```typescript\n * const result = jsTemplate('createBox', [], div({ className: 'box' }));\n * console.log(result.render());\n * // function createBox() {\n * // const el0 = document.createElement(\"div\");\n * // el0.className = \"box\";\n * // return el0;\n * // }\n * ```\n */\nexport function jsTemplate(\n name: string,\n params: string[],\n rootElement: HTMLTagProtocol,\n afterCreate?: (refs: Record<string, string>) => string,\n): JsTemplateResult {\n return {\n name,\n params: [...params],\n render(): string {\n const bodyLines: string[] = [];\n const counter = { value: 0 };\n const refs: Record<string, string> = {};\n const rootVarName = walkNode(rootElement, counter, bodyLines, refs);\n\n const paramsStr = params.join(', ');\n const indented = bodyLines.map(l => ` ${l}`).join('\\n');\n\n const parts: string[] = [\n `function ${name}(${paramsStr}) {`,\n indented,\n ];\n\n // afterCreate コールバックの出力を return 前に挿入する\n if (afterCreate) {\n const afterCode = afterCreate(refs);\n if (afterCode.trim().length > 0) {\n const afterLines = afterCode\n .split('\\n')\n .filter(l => l.trim().length > 0)\n .map(l => ` ${l}`)\n .join('\\n');\n parts.push(afterLines);\n }\n }\n\n parts.push(` return ${rootVarName};`);\n parts.push('}');\n\n return parts.join('\\n');\n },\n };\n}\n","import type { ScriptScope } from './script-scope.js';\n\n/**\n * トランスフォーマーなし環境でイベントハンドラを定義するユーティリティ。\n *\n * `.on()` に渡すハンドラの定形パターンをライブラリ側で吸収する。\n * トランスフォーマー使用時は不要(自動変換される)。\n *\n * @example\n * button.on('click', emitHandler(`__draftole__.state('${id}').set([])`))\n */\nexport function emitHandler(\n code: string,\n params: readonly string[] = [],\n): ((s: ScriptScope) => void) & { _draftoleEmitted: true } {\n return Object.assign(\n (s: ScriptScope) => {\n s._emitHandlerBody(code, params);\n },\n { _draftoleEmitted: true as const },\n );\n}\n","/**\n * tag-dsl.generated.ts\n *\n * ⚠️ このファイルは自動生成です。直接編集しないでください。\n * 再生成: node --experimental-strip-types scripts/gen-tag-dsl.ts\n *\n * HTML タグセレクタ用グローバル CSS DSL ショートカット関数。\n * 各関数は `tag(tagName, props)` の薄いラッパーであり、\n * 戻り値は `GlobalCss` branded type です。\n * ルートレベルのグローバル CSS 定義のみに使用してください。\n */\n\nimport type { GlobalCss } from './global-css.js';\nimport { tag } from './global-dsl.js';\n\ntype Properties = Record<string, string>;\n\n/**\n * `a { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagA = (properties: Properties): GlobalCss => tag('a', properties);\n\n/**\n * `abbr { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagAbbr = (properties: Properties): GlobalCss => tag('abbr', properties);\n\n/**\n * `address { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagAddress = (properties: Properties): GlobalCss => tag('address', properties);\n\n/**\n * `area { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagArea = (properties: Properties): GlobalCss => tag('area', properties);\n\n/**\n * `article { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagArticle = (properties: Properties): GlobalCss => tag('article', properties);\n\n/**\n * `aside { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagAside = (properties: Properties): GlobalCss => tag('aside', properties);\n\n/**\n * `audio { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagAudio = (properties: Properties): GlobalCss => tag('audio', properties);\n\n/**\n * `b { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagB = (properties: Properties): GlobalCss => tag('b', properties);\n\n/**\n * `base { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBase = (properties: Properties): GlobalCss => tag('base', properties);\n\n/**\n * `bdi { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBdi = (properties: Properties): GlobalCss => tag('bdi', properties);\n\n/**\n * `bdo { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBdo = (properties: Properties): GlobalCss => tag('bdo', properties);\n\n/**\n * `blockquote { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBlockquote = (properties: Properties): GlobalCss => tag('blockquote', properties);\n\n/**\n * `body { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBody = (properties: Properties): GlobalCss => tag('body', properties);\n\n/**\n * `br { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagBr = (properties: Properties): GlobalCss => tag('br', properties);\n\n/**\n * `button { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagButton = (properties: Properties): GlobalCss => tag('button', properties);\n\n/**\n * `canvas { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagCanvas = (properties: Properties): GlobalCss => tag('canvas', properties);\n\n/**\n * `caption { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagCaption = (properties: Properties): GlobalCss => tag('caption', properties);\n\n/**\n * `cite { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagCite = (properties: Properties): GlobalCss => tag('cite', properties);\n\n/**\n * `code { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagCode = (properties: Properties): GlobalCss => tag('code', properties);\n\n/**\n * `col { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagCol = (properties: Properties): GlobalCss => tag('col', properties);\n\n/**\n * `colgroup { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagColgroup = (properties: Properties): GlobalCss => tag('colgroup', properties);\n\n/**\n * `data { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagData = (properties: Properties): GlobalCss => tag('data', properties);\n\n/**\n * `datalist { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDatalist = (properties: Properties): GlobalCss => tag('datalist', properties);\n\n/**\n * `dd { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDd = (properties: Properties): GlobalCss => tag('dd', properties);\n\n/**\n * `del { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDel = (properties: Properties): GlobalCss => tag('del', properties);\n\n/**\n * `details { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDetails = (properties: Properties): GlobalCss => tag('details', properties);\n\n/**\n * `dfn { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDfn = (properties: Properties): GlobalCss => tag('dfn', properties);\n\n/**\n * `dialog { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDialog = (properties: Properties): GlobalCss => tag('dialog', properties);\n\n/**\n * `div { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDiv = (properties: Properties): GlobalCss => tag('div', properties);\n\n/**\n * `dl { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDl = (properties: Properties): GlobalCss => tag('dl', properties);\n\n/**\n * `dt { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagDt = (properties: Properties): GlobalCss => tag('dt', properties);\n\n/**\n * `em { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagEm = (properties: Properties): GlobalCss => tag('em', properties);\n\n/**\n * `embed { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagEmbed = (properties: Properties): GlobalCss => tag('embed', properties);\n\n/**\n * `fieldset { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagFieldset = (properties: Properties): GlobalCss => tag('fieldset', properties);\n\n/**\n * `figcaption { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagFigcaption = (properties: Properties): GlobalCss => tag('figcaption', properties);\n\n/**\n * `figure { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagFigure = (properties: Properties): GlobalCss => tag('figure', properties);\n\n/**\n * `footer { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagFooter = (properties: Properties): GlobalCss => tag('footer', properties);\n\n/**\n * `form { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagForm = (properties: Properties): GlobalCss => tag('form', properties);\n\n/**\n * `h1 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH1 = (properties: Properties): GlobalCss => tag('h1', properties);\n\n/**\n * `h2 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH2 = (properties: Properties): GlobalCss => tag('h2', properties);\n\n/**\n * `h3 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH3 = (properties: Properties): GlobalCss => tag('h3', properties);\n\n/**\n * `h4 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH4 = (properties: Properties): GlobalCss => tag('h4', properties);\n\n/**\n * `h5 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH5 = (properties: Properties): GlobalCss => tag('h5', properties);\n\n/**\n * `h6 { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagH6 = (properties: Properties): GlobalCss => tag('h6', properties);\n\n/**\n * `head { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagHead = (properties: Properties): GlobalCss => tag('head', properties);\n\n/**\n * `header { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagHeader = (properties: Properties): GlobalCss => tag('header', properties);\n\n/**\n * `hgroup { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagHgroup = (properties: Properties): GlobalCss => tag('hgroup', properties);\n\n/**\n * `hr { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagHr = (properties: Properties): GlobalCss => tag('hr', properties);\n\n/**\n * `html { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagHtml = (properties: Properties): GlobalCss => tag('html', properties);\n\n/**\n * `i { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagI = (properties: Properties): GlobalCss => tag('i', properties);\n\n/**\n * `iframe { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagIframe = (properties: Properties): GlobalCss => tag('iframe', properties);\n\n/**\n * `img { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagImg = (properties: Properties): GlobalCss => tag('img', properties);\n\n/**\n * `input { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagInput = (properties: Properties): GlobalCss => tag('input', properties);\n\n/**\n * `ins { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagIns = (properties: Properties): GlobalCss => tag('ins', properties);\n\n/**\n * `kbd { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagKbd = (properties: Properties): GlobalCss => tag('kbd', properties);\n\n/**\n * `label { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagLabel = (properties: Properties): GlobalCss => tag('label', properties);\n\n/**\n * `legend { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagLegend = (properties: Properties): GlobalCss => tag('legend', properties);\n\n/**\n * `li { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagLi = (properties: Properties): GlobalCss => tag('li', properties);\n\n/**\n * `link { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagLink = (properties: Properties): GlobalCss => tag('link', properties);\n\n/**\n * `main { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMain = (properties: Properties): GlobalCss => tag('main', properties);\n\n/**\n * `map { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMap = (properties: Properties): GlobalCss => tag('map', properties);\n\n/**\n * `mark { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMark = (properties: Properties): GlobalCss => tag('mark', properties);\n\n/**\n * `menu { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMenu = (properties: Properties): GlobalCss => tag('menu', properties);\n\n/**\n * `meta { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMeta = (properties: Properties): GlobalCss => tag('meta', properties);\n\n/**\n * `meter { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagMeter = (properties: Properties): GlobalCss => tag('meter', properties);\n\n/**\n * `nav { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagNav = (properties: Properties): GlobalCss => tag('nav', properties);\n\n/**\n * `noscript { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagNoscript = (properties: Properties): GlobalCss => tag('noscript', properties);\n\n/**\n * `object { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagObject = (properties: Properties): GlobalCss => tag('object', properties);\n\n/**\n * `ol { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagOl = (properties: Properties): GlobalCss => tag('ol', properties);\n\n/**\n * `optgroup { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagOptgroup = (properties: Properties): GlobalCss => tag('optgroup', properties);\n\n/**\n * `option { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagOption = (properties: Properties): GlobalCss => tag('option', properties);\n\n/**\n * `output { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagOutput = (properties: Properties): GlobalCss => tag('output', properties);\n\n/**\n * `p { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagP = (properties: Properties): GlobalCss => tag('p', properties);\n\n/**\n * `picture { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagPicture = (properties: Properties): GlobalCss => tag('picture', properties);\n\n/**\n * `pre { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagPre = (properties: Properties): GlobalCss => tag('pre', properties);\n\n/**\n * `progress { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagProgress = (properties: Properties): GlobalCss => tag('progress', properties);\n\n/**\n * `q { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagQ = (properties: Properties): GlobalCss => tag('q', properties);\n\n/**\n * `rp { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagRp = (properties: Properties): GlobalCss => tag('rp', properties);\n\n/**\n * `rt { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagRt = (properties: Properties): GlobalCss => tag('rt', properties);\n\n/**\n * `ruby { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagRuby = (properties: Properties): GlobalCss => tag('ruby', properties);\n\n/**\n * `s { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagS = (properties: Properties): GlobalCss => tag('s', properties);\n\n/**\n * `samp { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSamp = (properties: Properties): GlobalCss => tag('samp', properties);\n\n/**\n * `script { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagScript = (properties: Properties): GlobalCss => tag('script', properties);\n\n/**\n * `search { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSearch = (properties: Properties): GlobalCss => tag('search', properties);\n\n/**\n * `section { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSection = (properties: Properties): GlobalCss => tag('section', properties);\n\n/**\n * `select { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSelect = (properties: Properties): GlobalCss => tag('select', properties);\n\n/**\n * `slot { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSlot = (properties: Properties): GlobalCss => tag('slot', properties);\n\n/**\n * `small { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSmall = (properties: Properties): GlobalCss => tag('small', properties);\n\n/**\n * `source { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSource = (properties: Properties): GlobalCss => tag('source', properties);\n\n/**\n * `span { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSpan = (properties: Properties): GlobalCss => tag('span', properties);\n\n/**\n * `strong { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagStrong = (properties: Properties): GlobalCss => tag('strong', properties);\n\n/**\n * `style { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagStyle = (properties: Properties): GlobalCss => tag('style', properties);\n\n/**\n * `sub { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSub = (properties: Properties): GlobalCss => tag('sub', properties);\n\n/**\n * `summary { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSummary = (properties: Properties): GlobalCss => tag('summary', properties);\n\n/**\n * `sup { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagSup = (properties: Properties): GlobalCss => tag('sup', properties);\n\n/**\n * `table { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTable = (properties: Properties): GlobalCss => tag('table', properties);\n\n/**\n * `tbody { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTbody = (properties: Properties): GlobalCss => tag('tbody', properties);\n\n/**\n * `td { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTd = (properties: Properties): GlobalCss => tag('td', properties);\n\n/**\n * `template { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTemplate = (properties: Properties): GlobalCss => tag('template', properties);\n\n/**\n * `textarea { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTextarea = (properties: Properties): GlobalCss => tag('textarea', properties);\n\n/**\n * `tfoot { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTfoot = (properties: Properties): GlobalCss => tag('tfoot', properties);\n\n/**\n * `th { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTh = (properties: Properties): GlobalCss => tag('th', properties);\n\n/**\n * `thead { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagThead = (properties: Properties): GlobalCss => tag('thead', properties);\n\n/**\n * `time { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTime = (properties: Properties): GlobalCss => tag('time', properties);\n\n/**\n * `title { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTitle = (properties: Properties): GlobalCss => tag('title', properties);\n\n/**\n * `tr { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTr = (properties: Properties): GlobalCss => tag('tr', properties);\n\n/**\n * `track { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagTrack = (properties: Properties): GlobalCss => tag('track', properties);\n\n/**\n * `u { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagU = (properties: Properties): GlobalCss => tag('u', properties);\n\n/**\n * `ul { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagUl = (properties: Properties): GlobalCss => tag('ul', properties);\n\n/**\n * `var { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagVar = (properties: Properties): GlobalCss => tag('var', properties);\n\n/**\n * `video { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagVideo = (properties: Properties): GlobalCss => tag('video', properties);\n\n/**\n * `wbr { ... }` グローバル CSS ブロックを生成する。\n *\n * @internal 公開 API ではない(1.0.0 で公開面から除去済み)。利用者は要素単位クラス合成\n * (`css.class` + `el.<tag>({ css: ... })`)を使うこと。本関数は `sel.tag<TagName>` の実装基盤として\n * 内部実装で継続使用される。詳細は [docs/deprecation-policy.md](../../../docs/deprecation-policy.md) 参照。\n */\nexport const tagWbr = (properties: Properties): GlobalCss => tag('wbr', properties);\n","/**\n * `sel` ネームスペース — グローバル CSS DSL の集約。\n *\n * 個別関数(`sel.all` / `sel.tag<TagName>` / `sel.rule`)には `@deprecated` JSDoc を\n * 元定義側で付与しているため、利用箇所では IDE でヒントが表示される。\n * `sel.media` / `sel.keyframes` は at-rule のため `@deprecated` を付けない。\n */\nimport { all, keyframes, media, root, rule, tag } from './global-dsl.js';\nimport * as tagShortcuts from './tag-dsl.generated.js';\n\nexport const sel = {\n root,\n all,\n tag,\n rule,\n media,\n keyframes,\n ...tagShortcuts,\n} as const;\n"],"mappings":"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","names":["title","label","media","b","a","i","body","input","toKebabCase","properties","properties","selectors","resolvedProps","resolvedSelectors","input","css","input","body","input","a","code","s"]}
|