@dataworkz/crystal 0.1.0-beta.0 → 0.1.0-beta.2
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/CHANGELOG.md +41 -13
- package/README.md +6 -0
- package/fesm2022/dataworkz-crystal-icons.mjs +31 -321
- package/fesm2022/dataworkz-crystal-icons.mjs.map +1 -1
- package/fesm2022/dataworkz-crystal-markdown.mjs +1 -1
- package/fesm2022/dataworkz-crystal-markdown.mjs.map +1 -1
- package/fesm2022/dataworkz-crystal-primeng.mjs +23 -4
- package/fesm2022/dataworkz-crystal-primeng.mjs.map +1 -1
- package/fesm2022/dataworkz-crystal.mjs +99 -70
- package/fesm2022/dataworkz-crystal.mjs.map +1 -1
- package/icons/index.d.ts +30 -96
- package/icons/svg/files/csv.svg +0 -1
- package/icons/svg/files/generic.svg +0 -1
- package/icons/svg/files/multimedia.svg +0 -1
- package/icons/svg/glyphs/agentBuilder.svg +1 -1
- package/icons/svg/glyphs/notesPad.svg +1 -1
- package/icons/svg/glyphs/panelCollapse.svg +1 -1
- package/icons/svg/glyphs/panelExpand.svg +1 -1
- package/icons/svg/glyphs/play.svg +1 -1
- package/icons/svg/glyphs/robot.svg +1 -1
- package/icons/svg/glyphs/sidebarCollapse.svg +1 -1
- package/icons/svg/glyphs/sidebarExpand.svg +1 -1
- package/icons/svg/glyphs/tagFilled.svg +1 -1
- package/icons/svg/glyphs/testShield.svg +1 -1
- package/icons/svg/storage/generic.svg +0 -1
- package/icons/svg/storage/legacy/microsoft-mail.svg +0 -1
- package/icons/svg/storage/local/microsoft-mail.svg +0 -1
- package/index.d.ts +86 -47
- package/package.json +1 -1
- package/primeng/index.d.ts +33 -4
- package/styles/base.css +4 -4
- package/styles/components/button.css +3 -0
- package/styles/components/content.css +0 -102
- package/styles/components/data.css +1 -1
- package/styles/components/form.css +3 -2
- package/styles/components/surface.css +2 -2
- package/styles/components/toast.css +1 -1
- package/styles/crystal-no-fonts.css +1 -2
- package/styles/tokens/primitives.css +1 -3
- 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
|
|
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(/</gi, '<')\n .replace(/>/gi, '>')\n .replace(/"/gi, '\"')\n .replace(/'/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(/&/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>, <...>, 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, '<').replace(/>/g, '>');\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":";;;;;AAAA,MAAM,mBAAmB,GACvB,yEAAyE;AAE3E,SAAS,eAAe,CAAC,GAAW,EAAA;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IACtC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,0CAA0C,CAAC;AAC/E,IAAA,MAAM,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;IACjD,IAAI,CAAC,UAAU,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACxD,QAAA,OAAO,QAAQ;IACjB;IAEA,OAAO,CAAA,mBAAA,EAAsB,UAAU,CAAA,EAAA,CAAI;AAC7C;AAEA,SAAS,kBAAkB,CAAC,KAAa,EAAA;AACvC,IAAA,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;AACtB,SAAA,OAAO,CAAC,MAAM,EAAE,GAAG;AACnB,SAAA,OAAO,CAAC,MAAM,EAAE,GAAG;AACnB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;SACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpF,SAAA,OAAO,CAAC,QAAQ,EAAE,GAAG;AACrB,SAAA,OAAO,CAAC,QAAQ,EAAE,GAAG;AACrB,SAAA,OAAO,CAAC,UAAU,EAAE,GAAG;AACvB,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG;SACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACjF,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/E,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AAC5B;AAEA,SAAS,uBAAuB,CAAC,KAAa,EAAA;IAC5C,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;IACxD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IAChE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,IAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAEpF,MAAM,eAAe,GACnB,iBAAiB;QACjB,qBAAqB;QACrB,eAAe;QACf,oBAAoB;AACpB,QAAA,0BAA0B;IAE5B,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;;IAGA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC;AAEvD,IAAA,IAAI;QACF,MAAM,OAAO,GAAG;AACb,aAAA,OAAO,CAAC,KAAK,EAAE,MAAM;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,KAAK;AACnB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK;AACpB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK;AACpB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,CAAG,CAAW;IAC7C;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO;AACJ,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG;SACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpF,SAAA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACzB;AAEA,SAAS,mBAAmB,CAAC,KAAa,EAAA;AACxC,IAAA,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;SACtB,KAAK,CAAC,IAAI;AACV,SAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM;AAC7D,QAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM;AACzD,QAAA,IAAI,QAAQ,GAAG,SAAS,EAAE;AACxB,YAAA,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA,CAAE;QAC3D;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;SACA,IAAI,CAAC,IAAI,CAAC;AACf;AAEM,SAAU,8BAA8B,CAAC,KAAa,EAAA;IAC1D,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF;AAEM,SAAU,8BAA8B,CAAC,KAAa,EAAA;;;IAG1D,MAAM,MAAM,GAAG,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,YAAY,GAAa,EAAE;IAEjC,MAAM,cAAc,GAAG;AACpB,SAAA,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,KAAI;AACpC,QAAA,MAAM,KAAK,GAAG,CAAA,eAAA,EAAkB,YAAY,CAAC,MAAM,IAAI;QACvD,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;AACA,SAAA,OAAO,CAAC,YAAY,EAAE,MAAK;AAC1B,QAAA,MAAM,KAAK,GAAG,CAAA,gBAAA,EAAmB,YAAY,CAAC,MAAM,IAAI;AACxD,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,CAAC;AAEJ,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IAE1E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,KAAI;AACrD,QAAA,MAAM,SAAS,GAAG,CAAA,eAAA,EAAkB,KAAK,IAAI;AAC7C,QAAA,MAAM,UAAU,GAAG,CAAA,gBAAA,EAAmB,KAAK,IAAI;AAC/C,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;QAC5C;AACA,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QAC7C;AACA,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,OAAO,CAAC;AACb;;AC5HA;SACgB,UAAU,CAAC,KAAc,EAAE,IAAI,GAAG,KAAK,EAAA;IACrD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE;IACX;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;IACF;IACA,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD;AAAE,IAAA,MAAM;QACN,OAAO,KAAK,CAAC;IACf;AACF;AAEA;;;;;;;;AAQG;MAyBU,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAU,EAAE,iDAAC;;AAE1B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,oDAAC;AAC5B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,IAAI,GAAG,KAAK,CAAU,IAAI,gDAAC;AAC3B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;AACtC,IAAA,WAAW,GAAG,KAAK,CAAS,GAAG,uDAAC;AAEhC,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,gDAAC;wGAX1D,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBrB;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAnBS,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAqBpB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,EAAE;AAC7D,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACF,iBAAA;;AAeD;;;;;;;;;AASG;MAeU,mBAAmB,CAAA;AACrB,IAAA,IAAI,GAAG,KAAK,CAA4B,EAAE,gDAAC;AAC3C,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,2DAAC;AACvC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAE/B,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,8BAA8B,CAAC,GAAG,CAAC,GAAG,GAAG;AAC3E,IAAA,CAAC,mDAAC;wGATS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,2DAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARpB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATS,iBAAiB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWhB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,uDAAuD,EAAE;AAC5E,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;ACjGD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
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(/</gi, '<')\n .replace(/>/gi, '>')\n .replace(/"/gi, '\"')\n .replace(/'/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(/&/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>, <...>, 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, '<').replace(/>/g, '>');\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":";;;;;AAAA,MAAM,mBAAmB,GACvB,yEAAyE;AAE3E,SAAS,eAAe,CAAC,GAAW,EAAA;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,QAAQ;IACjB;IAEA,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IACtC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,0CAA0C,CAAC;AAC/E,IAAA,MAAM,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;IACjD,IAAI,CAAC,UAAU,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACxD,QAAA,OAAO,QAAQ;IACjB;IAEA,OAAO,CAAA,mBAAA,EAAsB,UAAU,CAAA,EAAA,CAAI;AAC7C;AAEA,SAAS,kBAAkB,CAAC,KAAa,EAAA;AACvC,IAAA,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;AACtB,SAAA,OAAO,CAAC,MAAM,EAAE,GAAG;AACnB,SAAA,OAAO,CAAC,MAAM,EAAE,GAAG;AACnB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;SACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpF,SAAA,OAAO,CAAC,QAAQ,EAAE,GAAG;AACrB,SAAA,OAAO,CAAC,QAAQ,EAAE,GAAG;AACrB,SAAA,OAAO,CAAC,UAAU,EAAE,GAAG;AACvB,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG;SACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACjF,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/E,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AAC5B;AAEA,SAAS,uBAAuB,CAAC,KAAa,EAAA;IAC5C,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;IACxD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IAChE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,IAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAEpF,MAAM,eAAe,GACnB,iBAAiB;QACjB,qBAAqB;QACrB,eAAe;QACf,oBAAoB;AACpB,QAAA,0BAA0B;IAE5B,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;;IAGA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC;AAEvD,IAAA,IAAI;QACF,MAAM,OAAO,GAAG;AACb,aAAA,OAAO,CAAC,KAAK,EAAE,MAAM;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,KAAK;AACnB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK;AACpB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK;AACpB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,CAAG,CAAW;IAC7C;AAAE,IAAA,MAAM;;IAER;AAEA,IAAA,OAAO;AACJ,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,MAAM,EAAE,IAAI;AACpB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG;SACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpF,SAAA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACzB;AAEA,SAAS,mBAAmB,CAAC,KAAa,EAAA;AACxC,IAAA,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;SACtB,KAAK,CAAC,IAAI;AACV,SAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM;AAC7D,QAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM;AACzD,QAAA,IAAI,QAAQ,GAAG,SAAS,EAAE;AACxB,YAAA,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA,CAAE;QAC3D;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;SACA,IAAI,CAAC,IAAI,CAAC;AACf;AAEM,SAAU,8BAA8B,CAAC,KAAa,EAAA;IAC1D,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF;AAEM,SAAU,8BAA8B,CAAC,KAAa,EAAA;;;IAG1D,MAAM,MAAM,GAAG,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,YAAY,GAAa,EAAE;IAEjC,MAAM,cAAc,GAAG;AACpB,SAAA,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,KAAI;AACpC,QAAA,MAAM,KAAK,GAAG,CAAA,eAAA,EAAkB,YAAY,CAAC,MAAM,IAAI;QACvD,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;AACA,SAAA,OAAO,CAAC,YAAY,EAAE,MAAK;AAC1B,QAAA,MAAM,KAAK,GAAG,CAAA,gBAAA,EAAmB,YAAY,CAAC,MAAM,IAAI;AACxD,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,CAAC;AAEJ,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IAE1E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,KAAI;AACrD,QAAA,MAAM,SAAS,GAAG,CAAA,eAAA,EAAkB,KAAK,IAAI;AAC7C,QAAA,MAAM,UAAU,GAAG,CAAA,gBAAA,EAAmB,KAAK,IAAI;AAC/C,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;QAC5C;AACA,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QAC7C;AACA,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,OAAO,CAAC;AACb;;AC5HA;SACgB,UAAU,CAAC,KAAc,EAAE,IAAI,GAAG,KAAK,EAAA;IACrD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE;IACX;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;IACF;IACA,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD;AAAE,IAAA,MAAM;QACN,OAAO,KAAK,CAAC;IACf;AACF;AAEA;;;;;;;;AAQG;MAyBU,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAU,EAAE,iDAAC;;AAE1B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,oDAAC;AAC5B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,IAAI,GAAG,KAAK,CAAU,IAAI,gDAAC;AAC3B,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;AACtC,IAAA,WAAW,GAAG,KAAK,CAAS,GAAG,uDAAC;AAEhC,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,gDAAC;wGAX1D,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBrB;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAnBS,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAqBpB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,EAAE;AAC7D,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACF,iBAAA;;AAeD;;;;;;;;;AASG;MAeU,mBAAmB,CAAA;AACrB,IAAA,IAAI,GAAG,KAAK,CAA4B,EAAE,gDAAC;AAC3C,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,2DAAC;AACvC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAE/B,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,8BAA8B,CAAC,GAAG,CAAC,GAAG,GAAG;AAC3E,IAAA,CAAC,mDAAC;wGATS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,2DAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARpB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATS,iBAAiB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWhB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,uDAAuD,EAAE;AAC5E,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;ACjGD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -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
|
-
*
|
|
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
|
|
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
|
*/
|
|
@@ -247,6 +247,18 @@ const DwPreset = definePreset(Aura, DW_PRESET_OVERRIDES);
|
|
|
247
247
|
|
|
248
248
|
/** PrimeNG's dark mode follows the attribute ThemeService (and provideCrystal()) put on <html>. */
|
|
249
249
|
const DW_DARK_MODE_SELECTOR = '[data-theme="dark"]';
|
|
250
|
+
/** Panel class that sizes a select's option list for a small trigger (components/form.css). */
|
|
251
|
+
const DW_SELECT_PANEL_SM = 'dw-select-panel--sm';
|
|
252
|
+
/** The small-panel class for an overlay whose select is `size="small"`, wherever the list is appended. */
|
|
253
|
+
const smallPanel = ({ instance }) => instance?.size?.() === 'small' ? { class: DW_SELECT_PANEL_SM } : {};
|
|
254
|
+
/**
|
|
255
|
+
* Crystal's pass-through defaults: a small `p-select` / `p-multiselect` gets small options even when its list is
|
|
256
|
+
* appended to <body> (where CSS can't see the trigger).
|
|
257
|
+
*/
|
|
258
|
+
const DW_PRIMENG_PT = {
|
|
259
|
+
select: { overlay: smallPanel },
|
|
260
|
+
multiselect: { overlay: smallPanel },
|
|
261
|
+
};
|
|
250
262
|
/**
|
|
251
263
|
* PrimeNG with the Dataworkz preset, dark mode on `[data-theme="dark"]`. Pass app-specific PrimeNG settings
|
|
252
264
|
* (ripple, zIndex, translation…) as `config`; its `theme.options` are merged over crystal's.
|
|
@@ -257,8 +269,15 @@ const DW_DARK_MODE_SELECTOR = '[data-theme="dark"]';
|
|
|
257
269
|
*/
|
|
258
270
|
function provideCrystalPrimeNG(config = {}) {
|
|
259
271
|
const theme = typeof config.theme === 'object' ? config.theme : {};
|
|
272
|
+
const pt = (config.pt ?? {});
|
|
260
273
|
return providePrimeNG({
|
|
261
274
|
...config,
|
|
275
|
+
// An app's own pass-through settings are merged over crystal's, section by section.
|
|
276
|
+
pt: {
|
|
277
|
+
...pt,
|
|
278
|
+
select: { ...DW_PRIMENG_PT.select, ...pt['select'] },
|
|
279
|
+
multiselect: { ...DW_PRIMENG_PT.multiselect, ...pt['multiselect'] },
|
|
280
|
+
},
|
|
262
281
|
theme: {
|
|
263
282
|
preset: DwPreset,
|
|
264
283
|
...theme,
|
|
@@ -276,5 +295,5 @@ function provideCrystalPrimeNG(config = {}) {
|
|
|
276
295
|
* Generated bundle index. Do not edit.
|
|
277
296
|
*/
|
|
278
297
|
|
|
279
|
-
export { AZURE_PRIMARY_RAMP, DW_COLOR_SCHEME, DW_DARK_MODE_SELECTOR, DW_PRESET_OVERRIDES, DwPreset, provideCrystalPrimeNG };
|
|
298
|
+
export { AZURE_PRIMARY_RAMP, DW_COLOR_SCHEME, DW_DARK_MODE_SELECTOR, DW_PRESET_OVERRIDES, DW_PRIMENG_PT, DW_SELECT_PANEL_SM, DwPreset, provideCrystalPrimeNG };
|
|
280
299
|
//# sourceMappingURL=dataworkz-crystal-primeng.mjs.map
|
|
@@ -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":"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"}
|
|
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/** Panel class that sizes a select's option list for a small trigger (components/form.css). */\nexport const DW_SELECT_PANEL_SM = 'dw-select-panel--sm';\n\ntype SizedInstance = { size?: () => string | null | undefined };\n\n/** The small-panel class for an overlay whose select is `size=\"small\"`, wherever the list is appended. */\nconst smallPanel = ({ instance }: { instance?: SizedInstance }) =>\n instance?.size?.() === 'small' ? { class: DW_SELECT_PANEL_SM } : {};\n\n/**\n * Crystal's pass-through defaults: a small `p-select` / `p-multiselect` gets small options even when its list is\n * appended to <body> (where CSS can't see the trigger).\n */\nexport const DW_PRIMENG_PT = {\n select: { overlay: smallPanel },\n multiselect: { overlay: smallPanel },\n} as const;\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 const pt = (config.pt ?? {}) as Record<string, Record<string, unknown> | undefined>;\n return providePrimeNG({\n ...config,\n // An app's own pass-through settings are merged over crystal's, section by section.\n pt: {\n ...pt,\n select: { ...DW_PRIMENG_PT.select, ...pt['select'] },\n multiselect: { ...DW_PRIMENG_PT.multiselect, ...pt['multiselect'] },\n } as PrimeNGConfigType['pt'],\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":"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"}
|