@dataworkz/crystal 0.1.0-beta.0 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +31 -13
  2. package/README.md +6 -0
  3. package/fesm2022/dataworkz-crystal-icons.mjs +31 -321
  4. package/fesm2022/dataworkz-crystal-icons.mjs.map +1 -1
  5. package/fesm2022/dataworkz-crystal-markdown.mjs +1 -1
  6. package/fesm2022/dataworkz-crystal-markdown.mjs.map +1 -1
  7. package/fesm2022/dataworkz-crystal-primeng.mjs +3 -3
  8. package/fesm2022/dataworkz-crystal-primeng.mjs.map +1 -1
  9. package/fesm2022/dataworkz-crystal.mjs +99 -70
  10. package/fesm2022/dataworkz-crystal.mjs.map +1 -1
  11. package/icons/index.d.ts +30 -96
  12. package/icons/svg/files/csv.svg +0 -1
  13. package/icons/svg/files/generic.svg +0 -1
  14. package/icons/svg/files/multimedia.svg +0 -1
  15. package/icons/svg/glyphs/agentBuilder.svg +1 -1
  16. package/icons/svg/glyphs/notesPad.svg +1 -1
  17. package/icons/svg/glyphs/panelCollapse.svg +1 -1
  18. package/icons/svg/glyphs/panelExpand.svg +1 -1
  19. package/icons/svg/glyphs/play.svg +1 -1
  20. package/icons/svg/glyphs/robot.svg +1 -1
  21. package/icons/svg/glyphs/sidebarCollapse.svg +1 -1
  22. package/icons/svg/glyphs/sidebarExpand.svg +1 -1
  23. package/icons/svg/glyphs/tagFilled.svg +1 -1
  24. package/icons/svg/glyphs/testShield.svg +1 -1
  25. package/icons/svg/storage/generic.svg +0 -1
  26. package/icons/svg/storage/legacy/microsoft-mail.svg +0 -1
  27. package/icons/svg/storage/local/microsoft-mail.svg +0 -1
  28. package/index.d.ts +86 -47
  29. package/package.json +1 -1
  30. package/primeng/index.d.ts +3 -3
  31. package/styles/base.css +4 -4
  32. package/styles/components/content.css +0 -102
  33. package/styles/components/data.css +1 -1
  34. package/styles/components/surface.css +2 -2
  35. package/styles/components/toast.css +1 -1
  36. package/styles/crystal-no-fonts.css +1 -2
  37. package/styles/tokens/primitives.css +1 -3
  38. package/styles/tokens/semantic-dark.css +1 -1
@@ -254,7 +254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
254
254
 
255
255
  /*
256
256
  * @dataworkz/crystal/markdown — <dw-code-block> and <dw-markdown>, names unchanged.
257
- * A separate entry point only so apps without markdown don't need ngx-markdown installed (MIGRATION-PLAN §3.1).
257
+ * A separate entry point only so apps without markdown don't need ngx-markdown installed.
258
258
  */
259
259
 
260
260
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dataworkz-crystal-markdown.mjs","sources":["../../../../packages/crystal/markdown/src/internal/markdown-color.util.ts","../../../../packages/crystal/markdown/src/code-block/dw-code-block.component.ts","../../../../packages/crystal/markdown/src/index.ts","../../../../packages/crystal/markdown/src/dataworkz-crystal-markdown.ts"],"sourcesContent":["const COLOR_VALUE_PATTERN =\n /^(#[0-9a-fA-F]{3,8}|rgba?\\([\\d\\s.,%]+\\)|hsla?\\([\\d\\s.,%]+\\)|[a-zA-Z]+)$/;\n\nfunction sanitizeSpanTag(tag: string): string {\n const styleMatch = tag.match(/\\sstyle\\s*=\\s*[\"']([^\"']*)[\"']/i);\n if (!styleMatch) {\n return '<span>';\n }\n\n const styleValue = styleMatch[1] || '';\n const colorMatch = styleValue.match(/(?:^|;)\\s*color\\s*:\\s*([^;]+)\\s*(?:;|$)/i);\n const colorValue = (colorMatch?.[1] || '').trim();\n if (!colorValue || !COLOR_VALUE_PATTERN.test(colorValue)) {\n return '<span>';\n }\n\n return `<span style=\"color:${colorValue}\">`;\n}\n\nfunction decodeHtmlEntities(input: string): string {\n return String(input || '')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\'/g, \"'\")\n .replace(/\\\\\\//g, '/')\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\u([0-9a-fA-F]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16)))\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>')\n .replace(/&quot;/gi, '\"')\n .replace(/&#39;/gi, \"'\")\n .replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))\n .replace(/&#(\\d+);/g, (_, decimal) => String.fromCharCode(parseInt(decimal, 10)))\n .replace(/&amp;/gi, '&');\n}\n\nfunction normalizeEscapedPayload(input: string): string {\n let text = String(input || '');\n const hasEscapedUnicode = /\\\\u[0-9A-Fa-f]{4}/.test(text);\n const hasOverEscapedUnicode = /\\\\{2,}u[0-9A-Fa-f]{4}/.test(text);\n const hasEscapedSlash = /\\\\\\//.test(text);\n const hasTrailingLineSlash = /\\\\$/m.test(text);\n const hasEscapedControlCharsOnly = text.indexOf('\\n') === -1 && /\\\\[nrt]/.test(text);\n\n const shouldNormalize =\n hasEscapedUnicode ||\n hasOverEscapedUnicode ||\n hasEscapedSlash ||\n hasTrailingLineSlash ||\n hasEscapedControlCharsOnly;\n\n if (!shouldNormalize) {\n return text;\n }\n\n // Collapse over-escaped unicode markers before applying escape decoding.\n text = text.replace(/\\\\{2,}(u[0-9A-Fa-f]{4})/g, '\\\\$1');\n\n try {\n const escaped = text\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\t/g, '\\\\t');\n text = JSON.parse(`\"${escaped}\"`) as string;\n } catch {\n // fallback handled below\n }\n\n return text\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\\\//g, '/')\n .replace(/\\\\u([0-9A-Fa-f]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16)))\n .replace(/\\\\$/gm, '');\n}\n\nfunction closeBrokenSpanTags(input: string): string {\n return String(input || '')\n .split('\\n')\n .map((line) => {\n const openTags = (line.match(/<span\\b[^>]*>/gi) || []).length;\n const closeTags = (line.match(/<\\/span>/gi) || []).length;\n if (openTags > closeTags) {\n return `${line}${'</span>'.repeat(openTags - closeTags)}`;\n }\n return line;\n })\n .join('\\n');\n}\n\nexport function normalizeExtractedMarkdownText(input: string): string {\n return closeBrokenSpanTags(decodeHtmlEntities(normalizeEscapedPayload(input)));\n}\n\nexport function sanitizeMarkdownWithColorSpans(input: string): string {\n // Normalize extracted payload forms (\\u, <\\/span>, &lt;...&gt;, broken spans)\n // before allow-list sanitization of <span style=\"color:...\"> tags.\n const source = normalizeExtractedMarkdownText(String(input || ''));\n const replacements: string[] = [];\n\n const withSpanTokens = source\n .replace(/<span\\b[^>]*>/gi, (match) => {\n const token = `__DW_SPAN_OPEN_${replacements.length}__`;\n replacements.push(sanitizeSpanTag(match));\n return token;\n })\n .replace(/<\\/span>/gi, () => {\n const token = `__DW_SPAN_CLOSE_${replacements.length}__`;\n replacements.push('</span>');\n return token;\n });\n\n const escaped = withSpanTokens.replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n return replacements.reduce((acc, replacement, index) => {\n const openToken = `__DW_SPAN_OPEN_${index}__`;\n const closeToken = `__DW_SPAN_CLOSE_${index}__`;\n if (acc.includes(openToken)) {\n return acc.replace(openToken, replacement);\n }\n if (acc.includes(closeToken)) {\n return acc.replace(closeToken, replacement);\n }\n return acc;\n }, escaped);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MarkdownComponent } from 'ngx-markdown';\nimport { DwCopyButtonComponent } from '@dataworkz/crystal';\nimport { sanitizeMarkdownWithColorSpans } from '../internal/markdown-color.util';\n\n/** Pretty-prints JSON values / JSON strings; returns other text unchanged. */\nexport function formatCode(value: unknown, json = false): string {\n if (value === null || value === undefined) {\n return '';\n }\n if (typeof value !== 'string') {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n }\n if (!json) {\n return value;\n }\n try {\n return JSON.stringify(JSON.parse(value), null, 2);\n } catch {\n return value; // invalid JSON → raw text\n }\n}\n\n/**\n * Read-only code / JSON block with optional title, copy button, wrapping\n * and max height. For editing use the Monaco `app-json-editor`.\n *\n * ```html\n * <dw-code-block [value]=\"toolCall.arguments\" [json]=\"true\" title=\"Arguments\" maxHeight=\"240px\" />\n * <dw-code-block [value]=\"logText\" [wrap]=\"true\" [copy]=\"false\" />\n * ```\n */\n@Component({\n selector: 'dw-code-block',\n standalone: true,\n imports: [DwCopyButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'dw-code-block-host', '[attr.title]': 'null' },\n template: `\n @if (title() || copy()) {\n <div class=\"dw-code-block__bar\">\n <span class=\"dw-label-caps\">{{ title() }}</span>\n @if (copy() && text()) {\n <dw-copy-button [text]=\"text()\" [ariaLabel]=\"'Copy ' + (title() || 'code')\" />\n }\n </div>\n }\n <pre\n class=\"dw-code-block\"\n [class.dw-code-block--wrap]=\"wrap()\"\n [style.max-height]=\"maxHeight()\"\n [attr.data-language]=\"language()\"\n tabindex=\"0\"\n ><code>{{ text() || placeholder() }}</code></pre>\n `,\n})\nexport class DwCodeBlockComponent {\n readonly value = input<unknown>('');\n /** Treat string values as JSON and pretty-print them (raw fallback when invalid). */\n readonly json = input<boolean>(false);\n readonly language = input<string>('');\n readonly title = input<string>('');\n readonly copy = input<boolean>(true);\n readonly wrap = input<boolean>(false);\n readonly maxHeight = input<string | null>(null);\n readonly placeholder = input<string>('—');\n\n readonly text = computed(() => formatCode(this.value(), this.json()));\n}\n\n/**\n * Rendered markdown with the design-system prose styles.\n *\n * ```html\n * <dw-markdown [data]=\"answer\" />\n * <dw-markdown [data]=\"extracted\" [allowColorSpans]=\"true\" [compact]=\"true\" placeholder=\"No content to preview\" />\n * ```\n * `allowColorSpans` keeps `<span style=\"color:…\">` from extracted documents\n * (sanitised by markdown-color.util) and disables the default sanitizer.\n */\n@Component({\n selector: 'dw-markdown',\n standalone: true,\n imports: [MarkdownComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'compact() ? \"dw-prose dw-prose--compact\" : \"dw-prose\"' },\n template: `\n @if (content()) {\n <markdown [data]=\"content()\" [disableSanitizer]=\"allowColorSpans()\" />\n } @else if (placeholder()) {\n <p class=\"dw-meta\">{{ placeholder() }}</p>\n }\n `,\n})\nexport class DwMarkdownComponent {\n readonly data = input<string | null | undefined>('');\n readonly allowColorSpans = input<boolean>(false);\n readonly compact = input<boolean>(false);\n readonly placeholder = input<string>('');\n\n readonly content = computed(() => {\n const raw = this.data() ?? '';\n return this.allowColorSpans() ? sanitizeMarkdownWithColorSpans(raw) : raw;\n });\n}\n","/*\n * @dataworkz/crystal/markdown — <dw-code-block> and <dw-markdown>, names unchanged.\n * A separate entry point only so apps without markdown don't need ngx-markdown installed (MIGRATION-PLAN §3.1).\n */\nexport * from './code-block/dw-code-block.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataworkz-crystal-markdown.mjs","sources":["../../../../packages/crystal/markdown/src/internal/markdown-color.util.ts","../../../../packages/crystal/markdown/src/code-block/dw-code-block.component.ts","../../../../packages/crystal/markdown/src/index.ts","../../../../packages/crystal/markdown/src/dataworkz-crystal-markdown.ts"],"sourcesContent":["const COLOR_VALUE_PATTERN =\n /^(#[0-9a-fA-F]{3,8}|rgba?\\([\\d\\s.,%]+\\)|hsla?\\([\\d\\s.,%]+\\)|[a-zA-Z]+)$/;\n\nfunction sanitizeSpanTag(tag: string): string {\n const styleMatch = tag.match(/\\sstyle\\s*=\\s*[\"']([^\"']*)[\"']/i);\n if (!styleMatch) {\n return '<span>';\n }\n\n const styleValue = styleMatch[1] || '';\n const colorMatch = styleValue.match(/(?:^|;)\\s*color\\s*:\\s*([^;]+)\\s*(?:;|$)/i);\n const colorValue = (colorMatch?.[1] || '').trim();\n if (!colorValue || !COLOR_VALUE_PATTERN.test(colorValue)) {\n return '<span>';\n }\n\n return `<span style=\"color:${colorValue}\">`;\n}\n\nfunction decodeHtmlEntities(input: string): string {\n return String(input || '')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\'/g, \"'\")\n .replace(/\\\\\\//g, '/')\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\u([0-9a-fA-F]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16)))\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>')\n .replace(/&quot;/gi, '\"')\n .replace(/&#39;/gi, \"'\")\n .replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))\n .replace(/&#(\\d+);/g, (_, decimal) => String.fromCharCode(parseInt(decimal, 10)))\n .replace(/&amp;/gi, '&');\n}\n\nfunction normalizeEscapedPayload(input: string): string {\n let text = String(input || '');\n const hasEscapedUnicode = /\\\\u[0-9A-Fa-f]{4}/.test(text);\n const hasOverEscapedUnicode = /\\\\{2,}u[0-9A-Fa-f]{4}/.test(text);\n const hasEscapedSlash = /\\\\\\//.test(text);\n const hasTrailingLineSlash = /\\\\$/m.test(text);\n const hasEscapedControlCharsOnly = text.indexOf('\\n') === -1 && /\\\\[nrt]/.test(text);\n\n const shouldNormalize =\n hasEscapedUnicode ||\n hasOverEscapedUnicode ||\n hasEscapedSlash ||\n hasTrailingLineSlash ||\n hasEscapedControlCharsOnly;\n\n if (!shouldNormalize) {\n return text;\n }\n\n // Collapse over-escaped unicode markers before applying escape decoding.\n text = text.replace(/\\\\{2,}(u[0-9A-Fa-f]{4})/g, '\\\\$1');\n\n try {\n const escaped = text\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\t/g, '\\\\t');\n text = JSON.parse(`\"${escaped}\"`) as string;\n } catch {\n // fallback handled below\n }\n\n return text\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\\\//g, '/')\n .replace(/\\\\u([0-9A-Fa-f]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16)))\n .replace(/\\\\$/gm, '');\n}\n\nfunction closeBrokenSpanTags(input: string): string {\n return String(input || '')\n .split('\\n')\n .map((line) => {\n const openTags = (line.match(/<span\\b[^>]*>/gi) || []).length;\n const closeTags = (line.match(/<\\/span>/gi) || []).length;\n if (openTags > closeTags) {\n return `${line}${'</span>'.repeat(openTags - closeTags)}`;\n }\n return line;\n })\n .join('\\n');\n}\n\nexport function normalizeExtractedMarkdownText(input: string): string {\n return closeBrokenSpanTags(decodeHtmlEntities(normalizeEscapedPayload(input)));\n}\n\nexport function sanitizeMarkdownWithColorSpans(input: string): string {\n // Normalize extracted payload forms (\\u, <\\/span>, &lt;...&gt;, broken spans)\n // before allow-list sanitization of <span style=\"color:...\"> tags.\n const source = normalizeExtractedMarkdownText(String(input || ''));\n const replacements: string[] = [];\n\n const withSpanTokens = source\n .replace(/<span\\b[^>]*>/gi, (match) => {\n const token = `__DW_SPAN_OPEN_${replacements.length}__`;\n replacements.push(sanitizeSpanTag(match));\n return token;\n })\n .replace(/<\\/span>/gi, () => {\n const token = `__DW_SPAN_CLOSE_${replacements.length}__`;\n replacements.push('</span>');\n return token;\n });\n\n const escaped = withSpanTokens.replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n return replacements.reduce((acc, replacement, index) => {\n const openToken = `__DW_SPAN_OPEN_${index}__`;\n const closeToken = `__DW_SPAN_CLOSE_${index}__`;\n if (acc.includes(openToken)) {\n return acc.replace(openToken, replacement);\n }\n if (acc.includes(closeToken)) {\n return acc.replace(closeToken, replacement);\n }\n return acc;\n }, escaped);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MarkdownComponent } from 'ngx-markdown';\nimport { DwCopyButtonComponent } from '@dataworkz/crystal';\nimport { sanitizeMarkdownWithColorSpans } from '../internal/markdown-color.util';\n\n/** Pretty-prints JSON values / JSON strings; returns other text unchanged. */\nexport function formatCode(value: unknown, json = false): string {\n if (value === null || value === undefined) {\n return '';\n }\n if (typeof value !== 'string') {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n }\n if (!json) {\n return value;\n }\n try {\n return JSON.stringify(JSON.parse(value), null, 2);\n } catch {\n return value; // invalid JSON → raw text\n }\n}\n\n/**\n * Read-only code / JSON block with optional title, copy button, wrapping\n * and max height. For editing use the Monaco `app-json-editor`.\n *\n * ```html\n * <dw-code-block [value]=\"toolCall.arguments\" [json]=\"true\" title=\"Arguments\" maxHeight=\"240px\" />\n * <dw-code-block [value]=\"logText\" [wrap]=\"true\" [copy]=\"false\" />\n * ```\n */\n@Component({\n selector: 'dw-code-block',\n standalone: true,\n imports: [DwCopyButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'dw-code-block-host', '[attr.title]': 'null' },\n template: `\n @if (title() || copy()) {\n <div class=\"dw-code-block__bar\">\n <span class=\"dw-label-caps\">{{ title() }}</span>\n @if (copy() && text()) {\n <dw-copy-button [text]=\"text()\" [ariaLabel]=\"'Copy ' + (title() || 'code')\" />\n }\n </div>\n }\n <pre\n class=\"dw-code-block\"\n [class.dw-code-block--wrap]=\"wrap()\"\n [style.max-height]=\"maxHeight()\"\n [attr.data-language]=\"language()\"\n tabindex=\"0\"\n ><code>{{ text() || placeholder() }}</code></pre>\n `,\n})\nexport class DwCodeBlockComponent {\n readonly value = input<unknown>('');\n /** Treat string values as JSON and pretty-print them (raw fallback when invalid). */\n readonly json = input<boolean>(false);\n readonly language = input<string>('');\n readonly title = input<string>('');\n readonly copy = input<boolean>(true);\n readonly wrap = input<boolean>(false);\n readonly maxHeight = input<string | null>(null);\n readonly placeholder = input<string>('—');\n\n readonly text = computed(() => formatCode(this.value(), this.json()));\n}\n\n/**\n * Rendered markdown with the design-system prose styles.\n *\n * ```html\n * <dw-markdown [data]=\"answer\" />\n * <dw-markdown [data]=\"extracted\" [allowColorSpans]=\"true\" [compact]=\"true\" placeholder=\"No content to preview\" />\n * ```\n * `allowColorSpans` keeps `<span style=\"color:…\">` from extracted documents\n * (sanitised by markdown-color.util) and disables the default sanitizer.\n */\n@Component({\n selector: 'dw-markdown',\n standalone: true,\n imports: [MarkdownComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'compact() ? \"dw-prose dw-prose--compact\" : \"dw-prose\"' },\n template: `\n @if (content()) {\n <markdown [data]=\"content()\" [disableSanitizer]=\"allowColorSpans()\" />\n } @else if (placeholder()) {\n <p class=\"dw-meta\">{{ placeholder() }}</p>\n }\n `,\n})\nexport class DwMarkdownComponent {\n readonly data = input<string | null | undefined>('');\n readonly allowColorSpans = input<boolean>(false);\n readonly compact = input<boolean>(false);\n readonly placeholder = input<string>('');\n\n readonly content = computed(() => {\n const raw = this.data() ?? '';\n return this.allowColorSpans() ? sanitizeMarkdownWithColorSpans(raw) : raw;\n });\n}\n","/*\n * @dataworkz/crystal/markdown — <dw-code-block> and <dw-markdown>, names unchanged.\n * A separate entry point only so apps without markdown don't need ngx-markdown installed.\n */\nexport * from './code-block/dw-code-block.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { providePrimeNG } from 'primeng/config';
4
4
 
5
5
  /**
6
6
  * Azure Electric primary ramp. Same hex values as `--dw-primary-*` in
7
- * src/styles/tokens/primitives.css — PrimeNG needs literal hex for the
7
+ * tokens/primitives.css — PrimeNG needs literal hex for the
8
8
  * primitive ramp because it derives other tokens from it at build time.
9
9
  */
10
10
  const AZURE_PRIMARY_RAMP = {
@@ -27,8 +27,8 @@ const bothSchemes = (scheme) => ({ light: scheme, dark: scheme });
27
27
  const dw = (token) => `var(--dw-${token})`;
28
28
  /**
29
29
  * PrimeNG color scheme, used for both light and dark. Every value points at a
30
- * design-system CSS variable, so PrimeNG follows src/styles/tokens/semantic.css
31
- * and semantic-dark.css: switching theme re-points the variables, the preset
30
+ * design-system CSS variable, so PrimeNG follows the semantic tokens (tokens/semantic.css
31
+ * and semantic-dark.css): switching theme re-points the variables, the preset
32
32
  * never changes. (The surface ramp is the raw neutral scale, light → dark,
33
33
  * which is the order Aura's own light and dark schemes expect.)
34
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dataworkz-crystal-primeng.mjs","sources":["../../../../packages/crystal/primeng/src/dw-preset.ts","../../../../packages/crystal/primeng/src/provide-crystal-primeng.ts","../../../../packages/crystal/primeng/src/index.ts","../../../../packages/crystal/primeng/src/dataworkz-crystal-primeng.ts"],"sourcesContent":["import Aura from '@primeng/themes/aura';\nimport { definePreset } from '@primeng/themes';\n\n/**\n * Azure Electric primary ramp. Same hex values as `--dw-primary-*` in\n * src/styles/tokens/primitives.css — PrimeNG needs literal hex for the\n * primitive ramp because it derives other tokens from it at build time.\n */\nexport const AZURE_PRIMARY_RAMP = {\n 50: '#ecf3ff',\n 100: '#d6e5ff',\n 200: '#b0ccff',\n 300: '#82abff',\n 400: '#4d84ff',\n 500: '#2463f5',\n 600: '#144ce6',\n 700: '#113dc2',\n 800: '#16359b',\n 900: '#19327b',\n 950: '#101d49',\n} as const;\n\nconst primaryRefs = Object.fromEntries(\n Object.keys(AZURE_PRIMARY_RAMP).map((step) => [step, `{blue.${step}}`]),\n) as Record<keyof typeof AZURE_PRIMARY_RAMP, string>;\n\n/** The same (variable-driven) component tokens for light and dark. */\nconst bothSchemes = <T>(scheme: T): { light: T; dark: T } => ({ light: scheme, dark: scheme });\n\n/** Shorthand for a design-system CSS variable reference. */\nconst dw = (token: string): string => `var(--dw-${token})`;\n\n/**\n * PrimeNG color scheme, used for both light and dark. Every value points at a\n * design-system CSS variable, so PrimeNG follows src/styles/tokens/semantic.css\n * and semantic-dark.css: switching theme re-points the variables, the preset\n * never changes. (The surface ramp is the raw neutral scale, light → dark,\n * which is the order Aura's own light and dark schemes expect.)\n */\nexport const DW_COLOR_SCHEME = {\n surface: {\n 0: dw('neutral-0'),\n 50: dw('neutral-50'),\n 100: dw('neutral-100'),\n 200: dw('neutral-200'),\n 300: dw('neutral-300'),\n 400: dw('neutral-400'),\n 500: dw('neutral-500'),\n 600: dw('neutral-600'),\n 700: dw('neutral-700'),\n 800: dw('neutral-800'),\n 900: dw('neutral-900'),\n 950: dw('neutral-950'),\n },\n primary: {\n color: dw('accent'),\n contrastColor: dw('text-inverse'),\n hoverColor: dw('accent-hover'),\n activeColor: dw('accent-active'),\n },\n highlight: {\n background: dw('accent-tint'),\n focusBackground: dw('accent-tint-strong'),\n color: dw('accent-text'),\n focusColor: dw('accent-text'),\n },\n mask: {\n background: dw('scrim'),\n color: dw('border'),\n },\n formField: {\n background: dw('surface'),\n disabledBackground: dw('surface-disabled'),\n filledBackground: dw('surface-section'),\n filledHoverBackground: dw('surface-section'),\n filledFocusBackground: dw('surface-section'),\n borderColor: dw('border-strong'),\n hoverBorderColor: dw('border-hover'),\n focusBorderColor: dw('focus-border'),\n invalidBorderColor: dw('danger-solid'),\n color: dw('text'),\n disabledColor: dw('text-muted'),\n placeholderColor: dw('text-muted'),\n invalidPlaceholderColor: dw('status-danger-fg'),\n floatLabelColor: dw('text-secondary'),\n floatLabelFocusColor: dw('accent'),\n floatLabelActiveColor: dw('text-secondary'),\n floatLabelInvalidColor: dw('status-danger-fg'),\n iconColor: dw('text-muted'),\n shadow: dw('shadow-xs'),\n },\n text: {\n color: dw('text'),\n hoverColor: dw('text-strong'),\n mutedColor: dw('text-secondary'),\n hoverMutedColor: dw('text'),\n },\n content: {\n background: dw('surface'),\n hoverBackground: dw('surface-hover'),\n borderColor: dw('border'),\n color: dw('text'),\n hoverColor: dw('text-strong'),\n },\n overlay: {\n select: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n popover: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n modal: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n },\n list: {\n option: {\n focusBackground: dw('surface-hover'),\n selectedBackground: dw('surface-selected'),\n selectedFocusBackground: dw('accent-tint-strong'),\n color: dw('text'),\n focusColor: dw('text-strong'),\n selectedColor: dw('accent-text'),\n selectedFocusColor: dw('accent-text'),\n icon: { color: dw('text-muted'), focusColor: dw('text-secondary') },\n },\n optionGroup: { background: 'transparent', color: dw('text-secondary') },\n },\n navigation: {\n item: {\n focusBackground: dw('surface-hover'),\n activeBackground: dw('surface-selected'),\n color: dw('text'),\n focusColor: dw('text-strong'),\n activeColor: dw('accent-text'),\n icon: { color: dw('text-muted'), focusColor: dw('text-secondary'), activeColor: dw('accent') },\n },\n submenuLabel: { background: 'transparent', color: dw('text-secondary') },\n submenuIcon: { color: dw('text-muted'), focusColor: dw('text-secondary'), activeColor: dw('accent') },\n },\n};\n\n/**\n * Overrides layered on top of Aura. Aura's `blue` primitive is replaced with\n * the Azure ramp so every `{primary.*}` resolves to Azure; semantic and\n * component tokens are bound to the `--dw-*` CSS variables.\n */\nexport const DW_PRESET_OVERRIDES = {\n primitive: {\n blue: { ...AZURE_PRIMARY_RAMP },\n },\n semantic: {\n primary: primaryRefs,\n transitionDuration: dw('dur-micro'),\n disabledOpacity: '0.6',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: dw('focus-ring'),\n },\n formField: {\n paddingX: '0.75rem',\n // Large (default) fields: 7px + 20px line + 7px + 1px borders = 36px (--dw-size-control-lg)\n paddingY: '0.4375rem',\n // pSize=\"small\": as tall as a small dw-button (28px), with its 12px text\n sm: { fontSize: dw('font-size-12'), paddingX: '0.625rem', paddingY: '0.3125rem' },\n borderRadius: dw('radius-control'),\n // Focused fields (inputs, search, selects): just a focus-blue border, no glow — the\n // 1px border plus a 0.5px inset line reads as 1.5px without shifting the content\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: dw('focus-border-ring'),\n },\n },\n list: {\n option: { borderRadius: dw('radius-sm') },\n },\n content: {\n borderRadius: dw('radius-card'),\n },\n navigation: {\n item: { borderRadius: dw('radius-sm') },\n },\n overlay: {\n select: { borderRadius: dw('radius-overlay'), shadow: dw('shadow-popover') },\n popover: { borderRadius: dw('radius-overlay'), padding: '0.75rem', shadow: dw('shadow-popover') },\n modal: { borderRadius: dw('radius-modal'), padding: '1.25rem', shadow: dw('shadow-modal') },\n navigation: { shadow: dw('shadow-menu') },\n },\n colorScheme: {\n light: DW_COLOR_SCHEME,\n dark: DW_COLOR_SCHEME,\n },\n },\n components: {\n button: {\n root: {\n borderRadius: dw('radius-control'),\n label: { fontWeight: '500' },\n },\n },\n datatable: {\n headerCell: {\n padding: '0.625rem 0.75rem',\n background: dw('surface-section'),\n color: dw('text-label'),\n // Sorted column looks like any other header; only the sort arrow marks it\n selectedBackground: dw('surface-section'),\n selectedColor: dw('text-label'),\n },\n bodyCell: { padding: '0.625rem 0.75rem' },\n colorScheme: bothSchemes({\n root: { borderColor: dw('border') },\n row: { stripedBackground: dw('surface-hover') },\n }),\n },\n // Compact, right-aligned bar: 28px buttons, a little room above and more below so it\n // doesn't sit on the bottom edge of the table's card\n paginator: {\n root: { padding: '0.25rem 0.75rem 0.5rem', gap: '0.125rem' },\n navButton: { width: '1.75rem', height: '1.75rem', borderRadius: dw('radius-control') },\n },\n dialog: {\n title: { fontSize: dw('font-size-16'), fontWeight: '600' },\n },\n drawer: {\n title: { fontSize: dw('font-size-16'), fontWeight: '600' },\n },\n tooltip: {\n colorScheme: bothSchemes({\n root: { background: dw('surface-inverse'), color: dw('text-inverse') },\n }),\n },\n tabs: {\n tab: { padding: '0.625rem 1rem', fontWeight: '500' },\n },\n toggleswitch: {\n colorScheme: bothSchemes({\n root: {\n checkedBackground: dw('accent'),\n checkedHoverBackground: dw('accent-hover'),\n },\n }),\n },\n skeleton: {\n colorScheme: bothSchemes({\n root: { background: dw('skeleton-base'), animationBackground: dw('skeleton-shine') },\n }),\n },\n },\n};\n\n/** Dataworkz PrimeNG preset: Aura retargeted to the design system. */\nexport const DwPreset = definePreset(Aura, DW_PRESET_OVERRIDES);\n","import { EnvironmentProviders } from '@angular/core';\nimport { PrimeNGConfigType, providePrimeNG } from 'primeng/config';\nimport { DwPreset } from './dw-preset';\n\n/** PrimeNG's dark mode follows the attribute ThemeService (and provideCrystal()) put on <html>. */\nexport const DW_DARK_MODE_SELECTOR = '[data-theme=\"dark\"]';\n\n/**\n * PrimeNG with the Dataworkz preset, dark mode on `[data-theme=\"dark\"]`. Pass app-specific PrimeNG settings\n * (ripple, zIndex, translation…) as `config`; its `theme.options` are merged over crystal's.\n *\n * ```ts\n * providers: [provideCrystal(), provideCrystalPrimeNG({ ripple: false })]\n * ```\n */\nexport function provideCrystalPrimeNG(config: PrimeNGConfigType = {}): EnvironmentProviders {\n const theme = typeof config.theme === 'object' ? config.theme : {};\n return providePrimeNG({\n ...config,\n theme: {\n preset: DwPreset,\n ...theme,\n options: { darkModeSelector: DW_DARK_MODE_SELECTOR, ...(theme.options ?? {}) },\n },\n });\n}\n","/*\n * @dataworkz/crystal/primeng — the Dataworkz PrimeNG preset and provideCrystalPrimeNG().\n * Needs the optional peer @primeng/themes.\n */\nexport * from './dw-preset';\nexport * from './provide-crystal-primeng';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AACI,MAAM,kBAAkB,GAAG;AAChC,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;;AAGhB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC,CACrB;AAEpD;AACA,MAAM,WAAW,GAAG,CAAI,MAAS,MAA6B,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE9F;AACA,MAAM,EAAE,GAAG,CAAC,KAAa,KAAa,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA,CAAG;AAE1D;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAE;AACP,QAAA,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;AAClB,QAAA,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC;AACpB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACvB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;AACnB,QAAA,aAAa,EAAE,EAAE,CAAC,cAAc,CAAC;AACjC,QAAA,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC;AAC9B,QAAA,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC;AACjC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAA,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAAC;AACzC,QAAA,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;AACxB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC9B,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;AACvB,QAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;AACpB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC;AACzB,QAAA,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC1C,QAAA,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACvC,QAAA,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AAC5C,QAAA,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AAC5C,QAAA,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC;AAChC,QAAA,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAAC;AACpC,QAAA,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAAC;AACpC,QAAA,kBAAkB,EAAE,EAAE,CAAC,cAAc,CAAC;AACtC,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC;AAC/B,QAAA,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC;AAClC,QAAA,uBAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC/C,QAAA,eAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC;AACrC,QAAA,oBAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC;AAClC,QAAA,qBAAqB,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAC3C,QAAA,sBAAsB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC9C,QAAA,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC;AAC3B,QAAA,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAA,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAChC,QAAA,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC;AAC5B,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC;AACzB,QAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,QAAA,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC;AACzB,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC9B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;QACnF,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;QACpF,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;AACnF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE;AACN,YAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,YAAA,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC1C,YAAA,uBAAuB,EAAE,EAAE,CAAC,oBAAoB,CAAC;AACjD,YAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,YAAA,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC;AAChC,YAAA,kBAAkB,EAAE,EAAE,CAAC,aAAa,CAAC;AACrC,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACpE,SAAA;AACD,QAAA,WAAW,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACxE,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,YAAA,gBAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AACxC,YAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,YAAA,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;AAC/F,SAAA;AACD,QAAA,YAAY,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;QACxE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;AACtG,KAAA;;AAGH;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;AACjC,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,EAAE,GAAG,kBAAkB,EAAE;AAChC,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,kBAAkB,EAAE,EAAE,CAAC,WAAW,CAAC;AACnC,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,SAAS,EAAE;AACT,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC;AACzB,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,QAAQ,EAAE,SAAS;;AAEnB,YAAA,QAAQ,EAAE,WAAW;;AAErB,YAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;AACjF,YAAA,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC;;;AAGlC,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC;AAChC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC;AAChC,SAAA;AACD,QAAA,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AAC5E,YAAA,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACjG,YAAA,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;YAC3F,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE;AAC1C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,IAAI,EAAE,eAAe;AACtB,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAClC,gBAAA,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;AAC7B,aAAA;AACF,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACjC,gBAAA,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC;;AAEvB,gBAAA,kBAAkB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACzC,gBAAA,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC;AAChC,aAAA;AACD,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;YACzC,WAAW,EAAE,WAAW,CAAC;gBACvB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;gBACnC,GAAG,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;aAChD,CAAC;AACH,SAAA;;;AAGD,QAAA,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,UAAU,EAAE;AAC5D,YAAA,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACvF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;AAC3D,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;AAC3D,SAAA;AACD,QAAA,OAAO,EAAE;YACP,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;aACvE,CAAC;AACH,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE;AACrD,SAAA;AACD,QAAA,YAAY,EAAE;YACZ,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAC;AAC/B,oBAAA,sBAAsB,EAAE,EAAE,CAAC,cAAc,CAAC;AAC3C,iBAAA;aACF,CAAC;AACH,SAAA;AACD,QAAA,QAAQ,EAAE;YACR,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;aACrF,CAAC;AACH,SAAA;AACF,KAAA;;AAGH;AACO,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,mBAAmB;;ACxP9D;AACO,MAAM,qBAAqB,GAAG;AAErC;;;;;;;AAOG;AACG,SAAU,qBAAqB,CAAC,MAAA,GAA4B,EAAE,EAAA;AAClE,IAAA,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE;AAClE,IAAA,OAAO,cAAc,CAAC;AACpB,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;AAC/E,SAAA;AACF,KAAA,CAAC;AACJ;;ACzBA;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"dataworkz-crystal-primeng.mjs","sources":["../../../../packages/crystal/primeng/src/dw-preset.ts","../../../../packages/crystal/primeng/src/provide-crystal-primeng.ts","../../../../packages/crystal/primeng/src/index.ts","../../../../packages/crystal/primeng/src/dataworkz-crystal-primeng.ts"],"sourcesContent":["import Aura from '@primeng/themes/aura';\nimport { definePreset } from '@primeng/themes';\n\n/**\n * Azure Electric primary ramp. Same hex values as `--dw-primary-*` in\n * tokens/primitives.css — PrimeNG needs literal hex for the\n * primitive ramp because it derives other tokens from it at build time.\n */\nexport const AZURE_PRIMARY_RAMP = {\n 50: '#ecf3ff',\n 100: '#d6e5ff',\n 200: '#b0ccff',\n 300: '#82abff',\n 400: '#4d84ff',\n 500: '#2463f5',\n 600: '#144ce6',\n 700: '#113dc2',\n 800: '#16359b',\n 900: '#19327b',\n 950: '#101d49',\n} as const;\n\nconst primaryRefs = Object.fromEntries(\n Object.keys(AZURE_PRIMARY_RAMP).map((step) => [step, `{blue.${step}}`]),\n) as Record<keyof typeof AZURE_PRIMARY_RAMP, string>;\n\n/** The same (variable-driven) component tokens for light and dark. */\nconst bothSchemes = <T>(scheme: T): { light: T; dark: T } => ({ light: scheme, dark: scheme });\n\n/** Shorthand for a design-system CSS variable reference. */\nconst dw = (token: string): string => `var(--dw-${token})`;\n\n/**\n * PrimeNG color scheme, used for both light and dark. Every value points at a\n * design-system CSS variable, so PrimeNG follows the semantic tokens (tokens/semantic.css\n * and semantic-dark.css): switching theme re-points the variables, the preset\n * never changes. (The surface ramp is the raw neutral scale, light → dark,\n * which is the order Aura's own light and dark schemes expect.)\n */\nexport const DW_COLOR_SCHEME = {\n surface: {\n 0: dw('neutral-0'),\n 50: dw('neutral-50'),\n 100: dw('neutral-100'),\n 200: dw('neutral-200'),\n 300: dw('neutral-300'),\n 400: dw('neutral-400'),\n 500: dw('neutral-500'),\n 600: dw('neutral-600'),\n 700: dw('neutral-700'),\n 800: dw('neutral-800'),\n 900: dw('neutral-900'),\n 950: dw('neutral-950'),\n },\n primary: {\n color: dw('accent'),\n contrastColor: dw('text-inverse'),\n hoverColor: dw('accent-hover'),\n activeColor: dw('accent-active'),\n },\n highlight: {\n background: dw('accent-tint'),\n focusBackground: dw('accent-tint-strong'),\n color: dw('accent-text'),\n focusColor: dw('accent-text'),\n },\n mask: {\n background: dw('scrim'),\n color: dw('border'),\n },\n formField: {\n background: dw('surface'),\n disabledBackground: dw('surface-disabled'),\n filledBackground: dw('surface-section'),\n filledHoverBackground: dw('surface-section'),\n filledFocusBackground: dw('surface-section'),\n borderColor: dw('border-strong'),\n hoverBorderColor: dw('border-hover'),\n focusBorderColor: dw('focus-border'),\n invalidBorderColor: dw('danger-solid'),\n color: dw('text'),\n disabledColor: dw('text-muted'),\n placeholderColor: dw('text-muted'),\n invalidPlaceholderColor: dw('status-danger-fg'),\n floatLabelColor: dw('text-secondary'),\n floatLabelFocusColor: dw('accent'),\n floatLabelActiveColor: dw('text-secondary'),\n floatLabelInvalidColor: dw('status-danger-fg'),\n iconColor: dw('text-muted'),\n shadow: dw('shadow-xs'),\n },\n text: {\n color: dw('text'),\n hoverColor: dw('text-strong'),\n mutedColor: dw('text-secondary'),\n hoverMutedColor: dw('text'),\n },\n content: {\n background: dw('surface'),\n hoverBackground: dw('surface-hover'),\n borderColor: dw('border'),\n color: dw('text'),\n hoverColor: dw('text-strong'),\n },\n overlay: {\n select: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n popover: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n modal: { background: dw('surface'), borderColor: dw('border'), color: dw('text') },\n },\n list: {\n option: {\n focusBackground: dw('surface-hover'),\n selectedBackground: dw('surface-selected'),\n selectedFocusBackground: dw('accent-tint-strong'),\n color: dw('text'),\n focusColor: dw('text-strong'),\n selectedColor: dw('accent-text'),\n selectedFocusColor: dw('accent-text'),\n icon: { color: dw('text-muted'), focusColor: dw('text-secondary') },\n },\n optionGroup: { background: 'transparent', color: dw('text-secondary') },\n },\n navigation: {\n item: {\n focusBackground: dw('surface-hover'),\n activeBackground: dw('surface-selected'),\n color: dw('text'),\n focusColor: dw('text-strong'),\n activeColor: dw('accent-text'),\n icon: { color: dw('text-muted'), focusColor: dw('text-secondary'), activeColor: dw('accent') },\n },\n submenuLabel: { background: 'transparent', color: dw('text-secondary') },\n submenuIcon: { color: dw('text-muted'), focusColor: dw('text-secondary'), activeColor: dw('accent') },\n },\n};\n\n/**\n * Overrides layered on top of Aura. Aura's `blue` primitive is replaced with\n * the Azure ramp so every `{primary.*}` resolves to Azure; semantic and\n * component tokens are bound to the `--dw-*` CSS variables.\n */\nexport const DW_PRESET_OVERRIDES = {\n primitive: {\n blue: { ...AZURE_PRIMARY_RAMP },\n },\n semantic: {\n primary: primaryRefs,\n transitionDuration: dw('dur-micro'),\n disabledOpacity: '0.6',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: dw('focus-ring'),\n },\n formField: {\n paddingX: '0.75rem',\n // Large (default) fields: 7px + 20px line + 7px + 1px borders = 36px (--dw-size-control-lg)\n paddingY: '0.4375rem',\n // pSize=\"small\": as tall as a small dw-button (28px), with its 12px text\n sm: { fontSize: dw('font-size-12'), paddingX: '0.625rem', paddingY: '0.3125rem' },\n borderRadius: dw('radius-control'),\n // Focused fields (inputs, search, selects): just a focus-blue border, no glow — the\n // 1px border plus a 0.5px inset line reads as 1.5px without shifting the content\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: dw('focus-border-ring'),\n },\n },\n list: {\n option: { borderRadius: dw('radius-sm') },\n },\n content: {\n borderRadius: dw('radius-card'),\n },\n navigation: {\n item: { borderRadius: dw('radius-sm') },\n },\n overlay: {\n select: { borderRadius: dw('radius-overlay'), shadow: dw('shadow-popover') },\n popover: { borderRadius: dw('radius-overlay'), padding: '0.75rem', shadow: dw('shadow-popover') },\n modal: { borderRadius: dw('radius-modal'), padding: '1.25rem', shadow: dw('shadow-modal') },\n navigation: { shadow: dw('shadow-menu') },\n },\n colorScheme: {\n light: DW_COLOR_SCHEME,\n dark: DW_COLOR_SCHEME,\n },\n },\n components: {\n button: {\n root: {\n borderRadius: dw('radius-control'),\n label: { fontWeight: '500' },\n },\n },\n datatable: {\n headerCell: {\n padding: '0.625rem 0.75rem',\n background: dw('surface-section'),\n color: dw('text-label'),\n // Sorted column looks like any other header; only the sort arrow marks it\n selectedBackground: dw('surface-section'),\n selectedColor: dw('text-label'),\n },\n bodyCell: { padding: '0.625rem 0.75rem' },\n colorScheme: bothSchemes({\n root: { borderColor: dw('border') },\n row: { stripedBackground: dw('surface-hover') },\n }),\n },\n // Compact, right-aligned bar: 28px buttons, a little room above and more below so it\n // doesn't sit on the bottom edge of the table's card\n paginator: {\n root: { padding: '0.25rem 0.75rem 0.5rem', gap: '0.125rem' },\n navButton: { width: '1.75rem', height: '1.75rem', borderRadius: dw('radius-control') },\n },\n dialog: {\n title: { fontSize: dw('font-size-16'), fontWeight: '600' },\n },\n drawer: {\n title: { fontSize: dw('font-size-16'), fontWeight: '600' },\n },\n tooltip: {\n colorScheme: bothSchemes({\n root: { background: dw('surface-inverse'), color: dw('text-inverse') },\n }),\n },\n tabs: {\n tab: { padding: '0.625rem 1rem', fontWeight: '500' },\n },\n toggleswitch: {\n colorScheme: bothSchemes({\n root: {\n checkedBackground: dw('accent'),\n checkedHoverBackground: dw('accent-hover'),\n },\n }),\n },\n skeleton: {\n colorScheme: bothSchemes({\n root: { background: dw('skeleton-base'), animationBackground: dw('skeleton-shine') },\n }),\n },\n },\n};\n\n/** Dataworkz PrimeNG preset: Aura retargeted to the design system. */\nexport const DwPreset = definePreset(Aura, DW_PRESET_OVERRIDES);\n","import { EnvironmentProviders } from '@angular/core';\nimport { PrimeNGConfigType, providePrimeNG } from 'primeng/config';\nimport { DwPreset } from './dw-preset';\n\n/** PrimeNG's dark mode follows the attribute ThemeService (and provideCrystal()) put on <html>. */\nexport const DW_DARK_MODE_SELECTOR = '[data-theme=\"dark\"]';\n\n/**\n * PrimeNG with the Dataworkz preset, dark mode on `[data-theme=\"dark\"]`. Pass app-specific PrimeNG settings\n * (ripple, zIndex, translation…) as `config`; its `theme.options` are merged over crystal's.\n *\n * ```ts\n * providers: [provideCrystal(), provideCrystalPrimeNG({ ripple: false })]\n * ```\n */\nexport function provideCrystalPrimeNG(config: PrimeNGConfigType = {}): EnvironmentProviders {\n const theme = typeof config.theme === 'object' ? config.theme : {};\n return providePrimeNG({\n ...config,\n theme: {\n preset: DwPreset,\n ...theme,\n options: { darkModeSelector: DW_DARK_MODE_SELECTOR, ...(theme.options ?? {}) },\n },\n });\n}\n","/*\n * @dataworkz/crystal/primeng — the Dataworkz PrimeNG preset and provideCrystalPrimeNG().\n * Needs the optional peer @primeng/themes.\n */\nexport * from './dw-preset';\nexport * from './provide-crystal-primeng';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AACI,MAAM,kBAAkB,GAAG;AAChC,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;;AAGhB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC,CACrB;AAEpD;AACA,MAAM,WAAW,GAAG,CAAI,MAAS,MAA6B,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE9F;AACA,MAAM,EAAE,GAAG,CAAC,KAAa,KAAa,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA,CAAG;AAE1D;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAE;AACP,QAAA,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;AAClB,QAAA,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC;AACpB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACtB,QAAA,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC;AACvB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;AACnB,QAAA,aAAa,EAAE,EAAE,CAAC,cAAc,CAAC;AACjC,QAAA,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC;AAC9B,QAAA,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC;AACjC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAA,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAAC;AACzC,QAAA,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;AACxB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC9B,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;AACvB,QAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;AACpB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC;AACzB,QAAA,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC1C,QAAA,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACvC,QAAA,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AAC5C,QAAA,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AAC5C,QAAA,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC;AAChC,QAAA,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAAC;AACpC,QAAA,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAAC;AACpC,QAAA,kBAAkB,EAAE,EAAE,CAAC,cAAc,CAAC;AACtC,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC;AAC/B,QAAA,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC;AAClC,QAAA,uBAAuB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC/C,QAAA,eAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC;AACrC,QAAA,oBAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC;AAClC,QAAA,qBAAqB,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAC3C,QAAA,sBAAsB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC9C,QAAA,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC;AAC3B,QAAA,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC;AACxB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAA,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAChC,QAAA,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC;AAC5B,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC;AACzB,QAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,QAAA,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC;AACzB,QAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,QAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC9B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;QACnF,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;QACpF,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;AACnF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE;AACN,YAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,YAAA,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AAC1C,YAAA,uBAAuB,EAAE,EAAE,CAAC,oBAAoB,CAAC;AACjD,YAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,YAAA,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC;AAChC,YAAA,kBAAkB,EAAE,EAAE,CAAC,aAAa,CAAC;AACrC,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACpE,SAAA;AACD,QAAA,WAAW,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACxE,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;AACpC,YAAA,gBAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AACxC,YAAA,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAC7B,YAAA,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;AAC/F,SAAA;AACD,QAAA,YAAY,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;QACxE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;AACtG,KAAA;;AAGH;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;AACjC,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,EAAE,GAAG,kBAAkB,EAAE;AAChC,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,kBAAkB,EAAE,EAAE,CAAC,WAAW,CAAC;AACnC,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,SAAS,EAAE;AACT,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC;AACzB,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,QAAQ,EAAE,SAAS;;AAEnB,YAAA,QAAQ,EAAE,WAAW;;AAErB,YAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;AACjF,YAAA,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC;;;AAGlC,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC;AAChC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC;AAChC,SAAA;AACD,QAAA,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AAC5E,YAAA,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACjG,YAAA,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;YAC3F,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE;AAC1C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,IAAI,EAAE,eAAe;AACtB,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC;AAClC,gBAAA,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;AAC7B,aAAA;AACF,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACjC,gBAAA,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC;;AAEvB,gBAAA,kBAAkB,EAAE,EAAE,CAAC,iBAAiB,CAAC;AACzC,gBAAA,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC;AAChC,aAAA;AACD,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;YACzC,WAAW,EAAE,WAAW,CAAC;gBACvB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;gBACnC,GAAG,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;aAChD,CAAC;AACH,SAAA;;;AAGD,QAAA,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,UAAU,EAAE;AAC5D,YAAA,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;AACvF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;AAC3D,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;AAC3D,SAAA;AACD,QAAA,OAAO,EAAE;YACP,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;aACvE,CAAC;AACH,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE;AACrD,SAAA;AACD,QAAA,YAAY,EAAE;YACZ,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAC;AAC/B,oBAAA,sBAAsB,EAAE,EAAE,CAAC,cAAc,CAAC;AAC3C,iBAAA;aACF,CAAC;AACH,SAAA;AACD,QAAA,QAAQ,EAAE;YACR,WAAW,EAAE,WAAW,CAAC;AACvB,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE;aACrF,CAAC;AACH,SAAA;AACF,KAAA;;AAGH;AACO,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,mBAAmB;;ACxP9D;AACO,MAAM,qBAAqB,GAAG;AAErC;;;;;;;AAOG;AACG,SAAU,qBAAqB,CAAC,MAAA,GAA4B,EAAE,EAAA;AAClE,IAAA,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE;AAClE,IAAA,OAAO,cAAc,CAAC;AACpB,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;AAC/E,SAAA;AACF,KAAA,CAAC;AACJ;;ACzBA;;;AAGG;;ACHH;;AAEG;;;;"}