@dataworkz/crystal 0.1.0-beta.1 → 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 CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to this package. Versions follow [semver](https://semver.org); betas may still change the API.
4
4
 
5
+ ## 0.1.0-beta.2 — 2026-11-04
6
+
7
+ ### Fixed
8
+ - Small selects get small options wherever their list is appended: `provideCrystalPrimeNG()` now adds
9
+ `dw-select-panel--sm` to the overlay of every `p-select` / `p-multiselect` with `size="small"`, through PrimeNG's
10
+ pass-through (`DW_PRIMENG_PT`, exported). Lists appended to `<body>` used to keep the 14px rows; screens no longer
11
+ set the class by hand. An app's own `pt` settings are merged over crystal's.
12
+ - A selected `dw-icon-button` with `variant="danger"` stays danger red instead of switching to the accent (e.g. a
13
+ "not helpful" rating). Every other variant's selected state is unchanged.
14
+
5
15
  ## 0.1.0-beta.1 — 2026-11-04
6
16
 
7
17
  The package is now product-neutral: no app type ids, app-only CSS or app validator messages ship in it. An app maps
@@ -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 * 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":"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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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"}