@orangelogic/design-system 2.113.0 → 2.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/library/chunks/asset.CtPQLZOf.js +607 -0
  2. package/library/chunks/{button.DIvU_uFU.js → button.DwJEeW2t.js} +1 -1
  3. package/library/chunks/{color-swatch-group.DV5uB8OC.js → color-swatch-group.DjjSIHSV.js} +7 -7
  4. package/library/chunks/{color-swatch.BoUZGGs4.js → color-swatch.DVzEaNeL.js} +1 -1
  5. package/library/chunks/{confirm-popover.DS9HIy3c.js → confirm-popover.BifwpSuf.js} +3 -3
  6. package/library/chunks/{dialog.DyT-Nai2.js → dialog.BYCWepBc.js} +2 -2
  7. package/library/chunks/{document-viewer.AiKX3RO6.js → document-viewer.BIC9iYpZ.js} +1237 -1233
  8. package/library/chunks/{dot-pagination.CKbL6eN_.js → dot-pagination.C4l5vKor.js} +1 -1
  9. package/library/chunks/{endpoints.DBlquU2-.js → endpoints.CDX5PgQz.js} +251 -251
  10. package/library/chunks/{file-on-demand.h8tCgq51.js → file-on-demand.AwMj4AfO.js} +246 -227
  11. package/library/chunks/{folder-select.eoufobYO.js → folder-select.8xNjeJfp.js} +5 -5
  12. package/library/chunks/{header.BUp3_oeJ.js → header.Cf9ujCpg.js} +3 -3
  13. package/library/chunks/{i18n.C21qyGi6.js → i18n.CH-wak_P.js} +3 -1
  14. package/library/chunks/{icon-button.DxkJ-cp-.js → icon-button.CQiBjznj.js} +1 -1
  15. package/library/chunks/{iframe.CwxozWMt.js → iframe.BQPVygBJ.js} +1 -1
  16. package/library/chunks/{image.B-YcKRop.js → image.cT-FziNS.js} +1 -1
  17. package/library/chunks/{input.DdeXWD_F.js → input.CH4lKxPM.js} +1 -1
  18. package/library/chunks/{list-editor.Qx2ecTcL.js → list-editor.7zNWfBuW.js} +13 -13
  19. package/library/chunks/{option.CcGRV3jj.js → option.Bvh35v8S.js} +10 -10
  20. package/library/chunks/{pagination.CgAt4Keg.js → pagination.zQ2FFtxB.js} +5 -5
  21. package/library/chunks/{tab-group.hfUY7YE7.js → tab-group.DvMX02hY.js} +3 -3
  22. package/library/chunks/{table.CP3oGDY1.js → table.BvbReIZh.js} +46 -45
  23. package/library/chunks/{time.BiQnh9wt.js → time.BSmpFe2G.js} +2 -2
  24. package/library/chunks/{tree.YxFs3Tke.js → tree.Btf2Q4YZ.js} +10 -7
  25. package/library/chunks/waveform.1U9U_0rd.js +60 -0
  26. package/library/components/alert.js +2 -2
  27. package/library/components/asset-link-format.js +6 -6
  28. package/library/components/atoms.js +129 -131
  29. package/library/components/audio.js +132 -183
  30. package/library/components/border-input-group.js +2 -2
  31. package/library/components/breadcrumb.js +1 -1
  32. package/library/components/button.js +2 -2
  33. package/library/components/color-picker.js +3 -3
  34. package/library/components/color-swatch-group.js +4 -4
  35. package/library/components/color-swatch.js +2 -2
  36. package/library/components/confirm-popover.js +4 -4
  37. package/library/components/copy-button.js +1 -1
  38. package/library/components/corner-position-input-group.js +3 -3
  39. package/library/components/date-calendar.js +1 -1
  40. package/library/components/details.js +1 -1
  41. package/library/components/dialog.js +3 -3
  42. package/library/components/divider.js +15 -15
  43. package/library/components/document-viewer.js +3 -3
  44. package/library/components/dot-pagination.js +2 -2
  45. package/library/components/drawer.js +2 -2
  46. package/library/components/dropdown.js +2 -2
  47. package/library/components/dynamic-select.js +4 -4
  48. package/library/components/e-chart.js +1 -1
  49. package/library/components/element-clamp.js +2 -2
  50. package/library/components/file-on-demand.js +10 -10
  51. package/library/components/folder-select.js +5 -5
  52. package/library/components/format-bytes.js +1 -1
  53. package/library/components/format-date.js +1 -1
  54. package/library/components/format-number.js +1 -1
  55. package/library/components/format-time.js +2 -2
  56. package/library/components/header.js +2 -2
  57. package/library/components/icon-button.js +2 -2
  58. package/library/components/iframe.js +2 -2
  59. package/library/components/image-comparer.js +1 -1
  60. package/library/components/image.js +2 -2
  61. package/library/components/input.js +2 -2
  62. package/library/components/line-clamp.js +1 -1
  63. package/library/components/list-editor.js +7 -7
  64. package/library/components/masonry.js +2 -2
  65. package/library/components/menu-item.js +1 -1
  66. package/library/components/menu.js +3 -3
  67. package/library/components/molecules.js +4 -4
  68. package/library/components/option.js +2 -2
  69. package/library/components/organisms.js +2 -2
  70. package/library/components/padding-input-group.js +1 -1
  71. package/library/components/pagination.js +6 -6
  72. package/library/components/popup.js +1 -1
  73. package/library/components/position-picker.js +1 -1
  74. package/library/components/progress-bar.js +1 -1
  75. package/library/components/progress-ring.js +1 -1
  76. package/library/components/radio-button.js +10 -10
  77. package/library/components/radio-card.js +6 -6
  78. package/library/components/radio.js +2 -2
  79. package/library/components/range.js +1 -1
  80. package/library/components/rating.js +1 -1
  81. package/library/components/relative-time.js +1 -1
  82. package/library/components/resize-observer.js +3 -3
  83. package/library/components/select.js +7 -7
  84. package/library/components/shadow-input-group.js +1 -1
  85. package/library/components/share-option-list.js +10 -10
  86. package/library/components/sidebar.js +1 -1
  87. package/library/components/size-input-group.js +3 -3
  88. package/library/components/spinner.js +1 -1
  89. package/library/components/split-panel.js +1 -1
  90. package/library/components/tab-group.js +4 -4
  91. package/library/components/tab.js +2 -2
  92. package/library/components/table.js +10 -10
  93. package/library/components/tag.js +2 -2
  94. package/library/components/tooltip.js +1 -1
  95. package/library/components/tree-item.js +2 -2
  96. package/library/components/tree.js +2 -2
  97. package/library/components/typeface.js +2 -2
  98. package/library/components/types.js +33324 -32768
  99. package/library/components/video.js +2 -2
  100. package/library/package.json +1 -1
  101. package/library/packages/atoms/src/components/audio/audio.d.ts +36 -28
  102. package/library/packages/atoms/src/components/divider/divider.d.ts +1 -1
  103. package/library/packages/atoms/src/components/option/option.d.ts +1 -1
  104. package/library/packages/atoms/src/components/radio/radio.d.ts +1 -1
  105. package/library/packages/atoms/src/components/radio-button/radio-button.d.ts +1 -1
  106. package/library/packages/atoms/src/components/radio-card/radio-card.d.ts +1 -1
  107. package/library/packages/atoms/src/components/tree/tree.d.ts +1 -0
  108. package/library/packages/atoms/src/index.d.ts +0 -1
  109. package/library/packages/events/src/cx-facet-change.d.ts +16 -0
  110. package/library/packages/events/src/cx-faceted-filter-change.d.ts +6 -1
  111. package/library/packages/events/src/events.d.ts +1 -0
  112. package/library/packages/{atoms/src/components → molecules/src}/faceted-filter/components/facet/facet.d.ts +9 -9
  113. package/library/packages/molecules/src/faceted-filter/components/facet/facet.styles.d.ts +2 -0
  114. package/library/packages/molecules/src/faceted-filter/components/facet-date-picker/facet-date-picker.d.ts +43 -0
  115. package/library/packages/molecules/src/faceted-filter/components/facet-date-range/facet-date-range.d.ts +51 -0
  116. package/library/packages/molecules/src/faceted-filter/facet-adapters.d.ts +12 -0
  117. package/library/packages/{atoms/src/components → molecules/src}/faceted-filter/faceted-filter.d.ts +25 -14
  118. package/library/packages/molecules/src/faceted-filter/faceted-filter.styles.d.ts +2 -0
  119. package/library/packages/molecules/src/icon-picker/icon-picker.d.ts +1 -1
  120. package/library/packages/molecules/src/index.d.ts +4 -0
  121. package/library/packages/molecules/src/share-option-list/share-option-list.d.ts +1 -1
  122. package/library/packages/organisms/src/asset-transformation-dialog/asset-transformation-dialog.d.ts +1 -1
  123. package/library/packages/organisms/src/carousel/carousel.d.ts +1 -0
  124. package/library/packages/organisms/src/content-builder/components/gallery-config/gallery-config.d.ts +1 -0
  125. package/library/packages/organisms/src/content-builder/components/page-picker/page-picker.d.ts +1 -0
  126. package/library/packages/organisms/src/content-builder/configs/audio.d.ts +1 -1
  127. package/library/packages/organisms/src/content-builder/configs-controller.d.ts +2 -2
  128. package/library/packages/organisms/src/file-on-demand/components/file-on-demand-pinned-status.ts/file-on-demand-pinned-status.d.ts +2 -0
  129. package/library/packages/organisms/src/file-on-demand/file-on-demand.d.ts +1 -0
  130. package/library/packages/services/src/api/asset/asset.d.ts +3 -1
  131. package/library/packages/services/src/api/endpoints.d.ts +2 -0
  132. package/library/packages/tools/src/fetch-asset/fetch-asset.d.ts +6 -0
  133. package/library/packages/tools/src/fetch-image/fetch-image.d.ts +11 -4
  134. package/library/packages/types/src/faceted-filter.d.ts +71 -2
  135. package/library/packages/utils/src/custom-element/i18n.d.ts +3 -1
  136. package/library/packages/utils/src/image/index.d.ts +1 -0
  137. package/library/packages/utils/src/image/waveform.d.ts +29 -0
  138. package/library/react-web-component.d.ts +440 -317
  139. package/library/utils.js +174 -171
  140. package/package.json +1 -1
  141. package/library/chunks/asset.HL1qMnhg.js +0 -458
  142. package/library/chunks/wavesurfer.esm.Cwi1pz64.js +0 -1276
  143. package/library/components/faceted-filter.d.ts +0 -3
  144. package/library/components/faceted-filter.js +0 -295
  145. /package/library/packages/{atoms/src/components/faceted-filter/components/facet/facet.styles.d.ts → molecules/src/faceted-filter/components/facet-date-picker/facet-date-picker.styles.d.ts} +0 -0
  146. /package/library/packages/{atoms/src/components/faceted-filter/faceted-filter.styles.d.ts → molecules/src/faceted-filter/components/facet-date-range/facet-date-range.styles.d.ts} +0 -0
@@ -1,13 +1,13 @@
1
1
  import { _ as Bd, a as Sa, b as Be, c as Je } from "../chunks/inheritsLoose.BuSn_CvZ.js";
2
2
  import { c as ps, a as Bn } from "../chunks/_commonjsHelpers.DQNKXVTB.js";
3
3
  import { r as Sb } from "../chunks/___vite-browser-external_commonjs-proxy.C2tf3HsQ.js";
4
- import { C as Cb } from "../chunks/image.B-YcKRop.js";
4
+ import { C as Cb } from "../chunks/image.cT-FziNS.js";
5
5
  import Mb from "./resize-observer.js";
6
6
  import { r as Db, R as Pb, a as Rp, b as Lb } from "../chunks/resizable-component.styles.DpK0TTP5.js";
7
7
  import { c as Rb } from "../chunks/component.styles.CRO4Odto.js";
8
8
  import { b as Ib } from "../chunks/debounce.CIEhztrj.js";
9
9
  import { c as Ob } from "../chunks/custom-element.L4WJXn1j.js";
10
- import { L as kb } from "../chunks/i18n.C21qyGi6.js";
10
+ import { L as kb } from "../chunks/i18n.CH-wak_P.js";
11
11
  import { w as gn } from "../chunks/watch.CThbualB.js";
12
12
  import { i as Bb, x as Kc } from "../chunks/lit-element.jLBm65_O.js";
13
13
  import { n as ki } from "../chunks/lib-cortex-element.CVMmyPMC.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.113.0",
4
+ "version": "2.115.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -4,20 +4,23 @@ import { CSSResultGroup } from 'lit';
4
4
  import { default as CxIconButton } from '../icon-button/icon-button';
5
5
  import { default as CxTypography } from '../typography/typography';
6
6
 
7
- /** A [lightColor, darkColor] tuple used for theme-aware waveform coloring. */
8
- type WaveColorPair = [string, string];
9
7
  /**
10
- * @summary Audio player with waveform visualization.
8
+ * @summary Audio player with server-rendered waveform visualization.
9
+ *
10
+ * @description Set `src` for the audio file and `waveform-src` for a server-rendered waveform PNG.
11
+ * The PNG is analyzed via canvas pixel sampling and rendered as a themeable SVG. A native `<audio>`
12
+ * element handles playback. Wave color and background are fully CSS-controllable.
11
13
  *
12
14
  * @event cx-play - Emitted when playback starts.
13
15
  * @event cx-pause - Emitted when playback pauses.
14
- * @event {{ currentTime: number }} cx-time-update - Emitted while the playback position changes.
16
+ * @event {{ time: number }} cx-time-update - Emitted while the playback position changes.
15
17
  * @event cx-ended - Emitted when playback reaches the end.
16
- * @event {{ error: Error }} cx-error - Emitted when the audio fails to load.
18
+ * @event cx-error - Emitted when the audio or waveform image fails to load.
17
19
  *
18
20
  * @csspart base - The main container.
19
21
  * @csspart player - Row containing play button and waveform.
20
- * @csspart waveform - WaveSurfer waveform container.
22
+ * @csspart waveform - Placeholder container shown while the waveform is loading.
23
+ * @csspart waveform-svg - SVG waveform element (once waveform-src is loaded).
21
24
  * @csspart footer - Time and filename row.
22
25
  * @csspart time - Current time / duration display.
23
26
  * @csspart filename - Audio filename label.
@@ -27,8 +30,10 @@ type WaveColorPair = [string, string];
27
30
  * @cssproperty [--height=auto] - Component height.
28
31
  * @cssproperty [--border=0px] - Border.
29
32
  * @cssproperty [--border-radius=0px] - Border radius.
30
- * @cssproperty [--background-color=white] - Background color.
31
- * @cssproperty --waves-color - Waveform bar color. Default: blue.
33
+ * @cssproperty [--background-color=transparent] - Background color.
34
+ * @cssproperty --waves-color - Waveform fill color. Default: `--cx-color-primary`.
35
+ * @cssproperty --played-color - Overlay color for the played portion. Default: `--cx-color-primary-700`.
36
+ * @cssproperty [--playhead-color=var(--cx-color-neutral-0)] - Color of the thin playhead line tracking current position.
32
37
  * @cssproperty --text-color - Time/icon color. Default: dark.
33
38
  * @cssproperty --margin-top - Top margin.
34
39
  * @cssproperty --margin-right - Right margin.
@@ -42,9 +47,9 @@ export default class CxAudio extends ResizableElement {
42
47
  'cx-typography': typeof CxTypography;
43
48
  };
44
49
  readonly localize: LocalizeController;
45
- private readonly waveformContainerAsync;
46
- private waveSurfer;
47
50
  private srcLoadVersion;
51
+ private extractWaveformPeaks;
52
+ private readonly audioEl;
48
53
  /**
49
54
  * The URL of the audio file to load.
50
55
  */
@@ -62,39 +67,42 @@ export default class CxAudio extends ResizableElement {
62
67
  */
63
68
  loop: boolean;
64
69
  /**
65
- * CSS color for the waveform bars. Accepts a plain CSS color or `light-dark(lightColor, darkColor)`
66
- * for theme-aware coloring. Defaults to `--cx-color-primary` if not set or if the value is invalid.
70
+ * URL of a server-rendered waveform PNG. The image is analyzed via canvas pixel sampling
71
+ * and rendered as a themeable SVG. Wave color and background are CSS-controllable via
72
+ * `--waves-color` and `--background-color`.
67
73
  */
68
- waveColor: WaveColorPair;
74
+ waveformSrc: string;
69
75
  /** Whether the audio is currently playing. */
70
76
  private isPlaying;
71
77
  /** Whether the audio has finished loading and is ready for playback. */
72
78
  private isLoaded;
73
- /** Whether an error occurred while loading the audio. */
79
+ /** Whether an error occurred while loading the audio or waveform image. */
74
80
  private isError;
75
81
  /** Current playback position in seconds. */
76
82
  private currentTimeSeconds;
77
83
  /** Total duration in seconds. */
78
84
  private durationSeconds;
79
- constructor();
85
+ /** SVG path data extracted from the waveform PNG. */
86
+ private waveformPath;
87
+ /** viewBox width matching the number of samples extracted from the waveform image. */
88
+ private waveformViewBoxWidth;
89
+ /** Fraction of the audio that has been played, 0–1, for the progress overlay. */
90
+ private playedFraction;
91
+ /** Effective audio src bound to the <audio> element; set after waveform loads, cleared on cleanUp. */
92
+ private audioSrc;
80
93
  runConnectedCallback(): void;
81
94
  disconnectedCallback(): void;
82
95
  handleSrcChange(): Promise<void>;
83
96
  protected applySrc(src: string): Promise<void>;
84
- handleWaveColorThemeChange(): Promise<void>;
85
97
  updated(changedProps: Map<string, unknown>): void;
86
- private onWaveSurferReady;
87
- private onWaveSurferPlay;
88
- private onWaveSurferPause;
89
- private onWaveSurferTimeUpdate;
90
- private onWaveSurferFinish;
91
- private onWaveSurferError;
92
- private resolveColorValue;
93
- private computeCursorColor;
94
- private setupColors;
95
- private setupWaveSurfer;
96
- private attachWaveSurferEvents;
97
98
  private cleanUp;
99
+ private setupPngWaveform;
100
+ private handleAudioPlay;
101
+ private handleAudioPause;
102
+ private handleAudioTimeUpdate;
103
+ private handleAudioDurationChange;
104
+ private handleAudioEnded;
105
+ private handleAudioError;
98
106
  private handleSizeChange;
99
107
  /** Starts audio playback. */
100
108
  play(): void;
@@ -103,6 +111,7 @@ export default class CxAudio extends ResizableElement {
103
111
  /** Toggles between play and pause. */
104
112
  togglePlay(): void;
105
113
  private formatTime;
114
+ private handleWaveformClick;
106
115
  private handlePlayButtonKeyDown;
107
116
  render(): import('lit').TemplateResult<1>;
108
117
  }
@@ -111,4 +120,3 @@ declare global {
111
120
  'cx-audio': CxAudio;
112
121
  }
113
122
  }
114
- export {};
@@ -24,7 +24,7 @@ export default class CxDivider extends CortexElement {
24
24
  * Applies component's padding over the spacing custom property.
25
25
  */
26
26
  usePadding: boolean;
27
- connectedCallback(): void;
27
+ runFirstUpdated(): void;
28
28
  /**
29
29
  * Applies the direction of the divider
30
30
  */
@@ -51,7 +51,7 @@ export default class CxOption extends CortexElement {
51
51
  showCheck: boolean;
52
52
  /** Check icon placement */
53
53
  checkPlacement: CheckPlacement;
54
- connectedCallback(): void;
54
+ runFirstUpdated(): void;
55
55
  private handleDefaultSlotChange;
56
56
  private handleMouseEnter;
57
57
  private handleMouseLeave;
@@ -40,7 +40,7 @@ export default class CxRadio extends CortexElement {
40
40
  /** Specifies the radius of the checked icon. */
41
41
  checkedIconRadius: number;
42
42
  constructor();
43
- connectedCallback(): void;
43
+ runFirstUpdated(): void;
44
44
  private handleBlur;
45
45
  private handleClick;
46
46
  private handleFocus;
@@ -51,7 +51,7 @@ export default class CxRadioButton extends CortexElement {
51
51
  pill: boolean;
52
52
  /** The radio button's label. */
53
53
  label: string;
54
- connectedCallback(): void;
54
+ runFirstUpdated(): void;
55
55
  private handleBlur;
56
56
  private handleClick;
57
57
  private handleFocus;
@@ -52,7 +52,7 @@ export default class CxRadioCard extends CortexElement {
52
52
  */
53
53
  disabledLineClamp: boolean;
54
54
  constructor();
55
- connectedCallback(): void;
55
+ runFirstUpdated(): void;
56
56
  private handleBlur;
57
57
  private handleClick;
58
58
  private handleFocus;
@@ -88,6 +88,7 @@ export default class CxTree extends CortexElement {
88
88
  private readonly localize;
89
89
  private sortableInstance;
90
90
  constructor();
91
+ runFirstUpdated(): void;
91
92
  runConnectedCallback(): void;
92
93
  disconnectedCallback(): void;
93
94
  /**
@@ -25,7 +25,6 @@ export { default as CxDrawer } from './components/drawer/drawer';
25
25
  export { default as CxDropdown } from './components/dropdown/dropdown';
26
26
  export { default as CxEChart } from './components/e-chart/e-chart';
27
27
  export { default as CxElementClamp } from './components/element-clamp/element-clamp';
28
- export { default as CxFacetedFilter } from './components/faceted-filter/faceted-filter';
29
28
  export { default as CxFormatBytes } from './components/format-bytes/format-bytes';
30
29
  export { default as CxFormatDate } from './components/format-date/format-date';
31
30
  export { default as CxFormatNumber } from './components/format-number/format-number';
@@ -0,0 +1,16 @@
1
+ import { DateRangeValue } from '../../types/src/faceted-filter';
2
+
3
+ /**
4
+ * Internal (non-composed) event emitted by date facet adapters
5
+ * (`cx-facet-date-picker`, `cx-facet-date-range`) up to `cx-faceted-filter`.
6
+ * `range` is `null` when the facet's selection has been cleared.
7
+ */
8
+ export type CxFacetChangeEvent = CustomEvent<{
9
+ field: string;
10
+ range: DateRangeValue | null;
11
+ }>;
12
+ declare global {
13
+ interface GlobalEventHandlersEventMap {
14
+ 'cx-facet-change': CxFacetChangeEvent;
15
+ }
16
+ }
@@ -1,5 +1,10 @@
1
+ import { SelectedDateRanges, SelectedFacets } from '../../types/src/faceted-filter';
2
+
1
3
  export type CxFacetedFilterChangeEvent = CustomEvent<{
2
- selection: Record<string, string[]>;
4
+ /** Date-facet selections (date-picker + date-range) keyed by facetFieldName. */
5
+ dateRanges?: SelectedDateRanges;
6
+ /** Checkbox-facet selections keyed by facetFieldName. */
7
+ selection: SelectedFacets;
3
8
  }>;
4
9
  declare global {
5
10
  interface GlobalEventHandlersEventMap {
@@ -70,6 +70,7 @@ export * from './cx-enter';
70
70
  export * from './cx-error';
71
71
  export * from './cx-expand';
72
72
  export * from './cx-export-settings';
73
+ export * from './cx-facet-change';
73
74
  export * from './cx-faceted-filter-change';
74
75
  export * from './cx-file-on-demand-load-more';
75
76
  export * from './cx-file-on-demand-pin';
@@ -1,12 +1,12 @@
1
- import { default as CxButton } from '../../../button/button.ts';
2
- import { default as CxDetails } from '../../../details/details.ts';
3
- import { default as CxIcon } from '../../../icon/icon.ts';
4
- import { default as CxSpace } from '../../../space/space.ts';
5
- import { default as CxSpinner } from '../../../spinner/spinner.ts';
6
- import { default as CxTree } from '../../../tree/tree.ts';
7
- import { default as CxTreeItem } from '../../../tree-item/tree-item.ts';
8
- import { default as CortexElement } from '../../../../../../base/src/cortex-element.ts';
9
- import { FacetSelectionMode, FacetValue } from '../../../../../../types/src/faceted-filter';
1
+ import { default as CxButton } from '../../../../../atoms/src/components/button/button.ts';
2
+ import { default as CxDetails } from '../../../../../atoms/src/components/details/details.ts';
3
+ import { default as CxIcon } from '../../../../../atoms/src/components/icon/icon.ts';
4
+ import { default as CxSpace } from '../../../../../atoms/src/components/space/space.ts';
5
+ import { default as CxSpinner } from '../../../../../atoms/src/components/spinner/spinner.ts';
6
+ import { default as CxTree } from '../../../../../atoms/src/components/tree/tree.ts';
7
+ import { default as CxTreeItem } from '../../../../../atoms/src/components/tree-item/tree-item.ts';
8
+ import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
9
+ import { FacetSelectionMode, FacetValue } from '../../../../../types/src/faceted-filter';
10
10
  import { CSSResultGroup } from 'lit';
11
11
 
12
12
  /**
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -0,0 +1,43 @@
1
+ import { default as CxDetails } from '../../../../../atoms/src/components/details/details.ts';
2
+ import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
3
+ import { default as CxInputDatePicker } from '../../../input-date-picker/input-date-picker.ts';
4
+ import { CSSResultGroup } from 'lit';
5
+
6
+ /**
7
+ * @summary Internal single-date facet adapter for `cx-faceted-filter`. Renders a
8
+ * collapsible section (matching the checkbox facet) wrapping `cx-input-date-picker`,
9
+ * and normalizes its `cx-change` into the shared `cx-facet-change` event (an `=`
10
+ * filter on the chosen day).
11
+ *
12
+ * @event {{ field: string; range: DateRangeValue | null }} cx-facet-change - Fired
13
+ * when a date is committed (`range.type` is `date-picker`) or cleared (`range` is `null`).
14
+ */
15
+ export default class CxFacetDatePicker extends CortexElement {
16
+ static readonly styles: CSSResultGroup;
17
+ static readonly dependencies: {
18
+ 'cx-details': typeof CxDetails;
19
+ 'cx-input-date-picker': typeof CxInputDatePicker;
20
+ };
21
+ /** Field name used as the filter key in the emitted event. */
22
+ field: string;
23
+ /** Human-readable label shown in the collapsible header. */
24
+ displayName: string;
25
+ /** Currently selected date in `YYYY-MM-DD`. */
26
+ value: string;
27
+ /** Currently selected time in 24-hour `HH:mm:ss`. */
28
+ fromTime: string;
29
+ /** Shows the hour/minute/second selects. */
30
+ showTime: boolean;
31
+ /** Minimum selectable date in `YYYY-MM-DD`. */
32
+ min: string;
33
+ /** Maximum selectable date in `YYYY-MM-DD`. */
34
+ max: string;
35
+ private handleChange;
36
+ private emitFacetChange;
37
+ render(): import('lit').TemplateResult<1>;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ 'cx-facet-date-picker': CxFacetDatePicker;
42
+ }
43
+ }
@@ -0,0 +1,51 @@
1
+ import { default as CxDetails } from '../../../../../atoms/src/components/details/details.ts';
2
+ import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
3
+ import { default as CxInputDateRangePicker } from '../../../input-date-range-picker/input-date-range-picker.ts';
4
+ import { CSSResultGroup } from 'lit';
5
+
6
+ /**
7
+ * @summary Internal date-range facet adapter for `cx-faceted-filter`. Renders a
8
+ * collapsible section (matching the checkbox facet) wrapping `cx-input-date-range-picker`,
9
+ * and normalizes its `cx-change` into the shared `cx-facet-change` event. The event fires
10
+ * only once **both** the from and to dates are set, so incomplete edits keep the prior filter.
11
+ *
12
+ * @event {{ field: string; range: DateRangeValue | null }} cx-facet-change - Fired
13
+ * when both range ends are committed (`range.type` is `date-range`).
14
+ */
15
+ export default class CxFacetDateRange extends CortexElement {
16
+ static readonly styles: CSSResultGroup;
17
+ static readonly dependencies: {
18
+ 'cx-details': typeof CxDetails;
19
+ 'cx-input-date-range-picker': typeof CxInputDateRangePicker;
20
+ };
21
+ /** Field name used as the filter key in the emitted event. */
22
+ field: string;
23
+ /** Human-readable label shown in the collapsible header. */
24
+ displayName: string;
25
+ /** The from date in `YYYY-MM-DD`. */
26
+ fromDate: string;
27
+ /** The to date in `YYYY-MM-DD`. */
28
+ toDate: string;
29
+ /** The from time in 24-hour `HH:mm:ss`. */
30
+ fromTime: string;
31
+ /** The to time in 24-hour `HH:mm:ss`. */
32
+ toTime: string;
33
+ /** Shows the hour/minute/second selects on both pickers. */
34
+ showTime: boolean;
35
+ /** Shows the preset selector (Today, Last 7 days, …). */
36
+ showPreset: boolean;
37
+ /** Selected preset key. Controlled so clearing resets the inner picker's preset. */
38
+ preset: string;
39
+ /** Minimum selectable date in `YYYY-MM-DD`. */
40
+ min: string;
41
+ /** Maximum selectable date in `YYYY-MM-DD`. */
42
+ max: string;
43
+ private handleChange;
44
+ private emitFacetChange;
45
+ render(): import('lit').TemplateResult<1>;
46
+ }
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'cx-facet-date-range': CxFacetDateRange;
50
+ }
51
+ }
@@ -0,0 +1,12 @@
1
+ import { Facet, FacetRenderContext, FacetType } from '../../../types/src/faceted-filter';
2
+ import { TemplateResult } from 'lit';
3
+
4
+ /** Per-facet data the orchestrator hands each adapter so its render stays pure. */
5
+ type FacetRenderer = (facet: Facet, ctx: FacetRenderContext) => TemplateResult;
6
+ /**
7
+ * Adapter registry: maps a {@link FacetType} to the template that renders it.
8
+ * Add a new facet type by adding one entry here — the orchestrator dispatches
9
+ * through this map and never branches on type itself.
10
+ */
11
+ export declare const FACET_ADAPTERS: Record<FacetType, FacetRenderer>;
12
+ export {};
@@ -1,17 +1,16 @@
1
- import { default as CxBadge } from '../badge/badge.ts';
2
- import { default as CxButton } from '../button/button.ts';
3
- import { default as CxDetails } from '../details/details.ts';
4
- import { default as CxDropdown } from '../dropdown/dropdown.ts';
5
- import { default as CxIcon } from '../icon/icon.ts';
6
- import { default as CxIconButton } from '../icon-button/icon-button.ts';
7
- import { default as CxSpace } from '../space/space.ts';
8
- import { default as CxSpinner } from '../spinner/spinner.ts';
9
- import { default as CxTag } from '../tag/tag.ts';
10
- import { default as CxTooltip } from '../tooltip/tooltip.ts';
11
- import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
12
- import { Facet, FacetDetails, FacetSelectionMode, SelectedFacets } from '../../../../types/src/faceted-filter';
1
+ import { default as CxBadge } from '../../../atoms/src/components/badge/badge.ts';
2
+ import { default as CxButton } from '../../../atoms/src/components/button/button.ts';
3
+ import { default as CxDetails } from '../../../atoms/src/components/details/details.ts';
4
+ import { default as CxDropdown } from '../../../atoms/src/components/dropdown/dropdown.ts';
5
+ import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
6
+ import { default as CxIconButton } from '../../../atoms/src/components/icon-button/icon-button.ts';
7
+ import { default as CxSpace } from '../../../atoms/src/components/space/space.ts';
8
+ import { default as CxSpinner } from '../../../atoms/src/components/spinner/spinner.ts';
9
+ import { default as CxTag } from '../../../atoms/src/components/tag/tag.ts';
10
+ import { default as CxTooltip } from '../../../atoms/src/components/tooltip/tooltip.ts';
11
+ import { default as CortexElement } from '../../../base/src/cortex-element.ts';
12
+ import { Facet, FacetDetails, FacetSelectionMode, SelectedDateRanges, SelectedFacets } from '../../../types/src/faceted-filter';
13
13
  import { CSSResultGroup } from 'lit';
14
- import { default as CxFacetedFilterFacet } from './components/facet/facet';
15
14
 
16
15
  /**
17
16
  * @summary Filter icon button that opens a dropdown panel with collapsible facet groups.
@@ -27,7 +26,6 @@ export default class CxFacetedFilter extends CortexElement {
27
26
  'cx-button': typeof CxButton;
28
27
  'cx-details': typeof CxDetails;
29
28
  'cx-dropdown': typeof CxDropdown;
30
- 'cx-faceted-filter-facet': typeof CxFacetedFilterFacet;
31
29
  'cx-icon': typeof CxIcon;
32
30
  'cx-icon-button': typeof CxIconButton;
33
31
  'cx-space': typeof CxSpace;
@@ -36,12 +34,15 @@ export default class CxFacetedFilter extends CortexElement {
36
34
  'cx-tooltip': typeof CxTooltip;
37
35
  };
38
36
  private readonly localize;
37
+ private readonly shadowRootAutoloader;
39
38
  /** Active facets with their metadata and available option values. */
40
39
  facets: Facet[];
41
40
  /** Ordered list of facets to display. Controls which facets render and in what order. */
42
41
  availableFacets: FacetDetails[];
43
42
  /** Currently selected filter values. See `SelectedFacets` type. Can be set to reset selection. */
44
43
  selectedFacets: SelectedFacets;
44
+ /** Currently selected date facet values (date-picker + date-range). Can be set to reset selection. */
45
+ selectedDateRanges: SelectedDateRanges;
45
46
  /** Default selection mode for all facets. Per-facet selection in FacetDetails takes precedence. */
46
47
  selection: FacetSelectionMode;
47
48
  /** Whether the current selection is being applied by the consumer. */
@@ -50,17 +51,27 @@ export default class CxFacetedFilter extends CortexElement {
50
51
  private appliedFiltersCount;
51
52
  /** Internal selection state maintained by the component. */
52
53
  private internalSelection;
54
+ /** Internal date facet selection state maintained by the component. */
55
+ private internalDateRanges;
53
56
  /** Maps facetFieldName → (value → displayValue) for rendering applied-filter tags. */
54
57
  private mappedDisplayNames;
55
58
  handleFacetsChange(): void;
56
59
  handleSelectedFacetsChange(): void;
60
+ handleSelectedDateRangesChange(): void;
57
61
  handleInternalSelectionChange(): void;
58
62
  private updateAppliedFiltersCount;
59
63
  private getFacetSelectionMode;
64
+ private buildRenderContext;
60
65
  private handleSelectionChange;
66
+ private handleFacetChange;
61
67
  private handleRemove;
62
68
  private handleClearAllClick;
69
+ private emitChange;
63
70
  private renderAppliedFilters;
71
+ private getDateFacetLabel;
72
+ private formatDateRangeDisplay;
73
+ private renderDateTags;
74
+ private renderSelectionCheckboxTags;
64
75
  private renderFooter;
65
76
  render(): import('lit').TemplateResult<1>;
66
77
  }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -80,7 +80,7 @@ export default class CxIconPicker extends CortexElement {
80
80
  * When true, renders a cx-bicolor-picker below the icon selector.
81
81
  * @default false
82
82
  */
83
- showColorPicker: boolean;
83
+ canPickColor: boolean;
84
84
  /**
85
85
  * Color value in light-dark() CSS format, managed by the embedded bicolor picker.
86
86
  * Only relevant when show-bicolor-picker is true.
@@ -14,6 +14,10 @@ export { default as CxDocsExample } from './docs-example/docs-example';
14
14
  export { default as CxDownloadFormatPicker } from './download-format-picker/download-format-picker';
15
15
  export { default as CxDynamicSelect } from './dynamic-select/dynamic-select';
16
16
  export { default as CxEstimatedReadingTime } from './estimated-reading-time/estimated-reading-time';
17
+ export { default as CxFacetDatePicker } from './faceted-filter/components/facet-date-picker/facet-date-picker';
18
+ export { default as CxFacetDateRange } from './faceted-filter/components/facet-date-range/facet-date-range';
19
+ export { default as CxFacetedFilter } from './faceted-filter/faceted-filter';
20
+ export { default as CxFacetedFilterFacet } from './faceted-filter/components/facet/facet';
17
21
  export { default as CxFolderSelect } from './folder-select/folder-select';
18
22
  export { default as CxGalleryItem } from './gallery-item/gallery-item';
19
23
  export { default as CxGraphView } from './graph-view/graph-view';
@@ -56,7 +56,7 @@ export default class CxShareOptionList extends CortexElement {
56
56
  private pendingSlideChange;
57
57
  private slideObserver;
58
58
  private slidesCache;
59
- runConnectedCallback(): void;
59
+ runFirstUpdated(): void;
60
60
  connectedUpdatedCallback(): void;
61
61
  disconnectedCallback(): void;
62
62
  protected willUpdate(changedProperties: PropertyValueMap<CxShareOptionList> | Map<PropertyKey, unknown>): void;
@@ -84,7 +84,7 @@ export default class CxAssetTransformationDialog extends CortexElement {
84
84
  * announce the correct role/state rather than the custom-element host. */
85
85
  private updateAccessibleTrigger;
86
86
  /** Fetches the asset and its available proxies when the dialog opens.
87
- * Guards on `result.id` because `fetchAssetByID` returns `{}` on network error. */
87
+ * Guards on `result.id` because `fetchAssetByIDViaContentSdk` returns `{}` on network error. */
88
88
  private handleDialogShow;
89
89
  private handleTriggerClick;
90
90
  private handleTriggerKeyDown;
@@ -259,6 +259,7 @@ export default class CxCarousel extends CortexElement {
259
259
  get canDeleteCarouselItem(): boolean;
260
260
  constructor();
261
261
  connectedUpdatedCallback(): void;
262
+ runFirstUpdated(): void;
262
263
  runConnectedCallback(): void;
263
264
  disconnectedCallback(): void;
264
265
  protected willUpdate(changedProperties: PropertyValueMap<CxCarousel> | Map<PropertyKey, unknown>): void;
@@ -80,6 +80,7 @@ export default class CxGalleryConfig extends CortexElement {
80
80
  get galleryPickerDialogTitle(): string;
81
81
  constructor();
82
82
  private apiGetTeamSpaceSpaceList;
83
+ private apiGetAssets;
83
84
  private apiGetPagesAndLinks;
84
85
  fetchSelectedPage(): Promise<void>;
85
86
  /**
@@ -23,6 +23,7 @@ export default class CxPagePicker extends CortexElement {
23
23
  'cx-typography': typeof CxTypography;
24
24
  };
25
25
  private readonly localize;
26
+ private apiGetAssets;
26
27
  dialog: CxDialog;
27
28
  selectEl: CxFolderSelect;
28
29
  /**
@@ -15,7 +15,7 @@ type Attribute = {
15
15
  'resize-direction': CxSbAudio['resizeDirection'];
16
16
  src: CxSbAudio['src'];
17
17
  'version-label'?: string;
18
- 'wave-color': string;
18
+ 'waveform-src'?: string;
19
19
  width: string;
20
20
  };
21
21
  declare const _default: {
@@ -21,7 +21,7 @@ export default class ConfigsController {
21
21
  'resize-direction': import('./blocks/audio/audio').default["resizeDirection"];
22
22
  src: import('./blocks/audio/audio').default["src"];
23
23
  'version-label'?: string;
24
- 'wave-color': string;
24
+ 'waveform-src'?: string;
25
25
  width: string;
26
26
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
27
27
  'asset-button-type': import('./blocks/button/button').default["assetType"];
@@ -311,7 +311,7 @@ export default class ConfigsController {
311
311
  'resize-direction': import('./blocks/audio/audio').default["resizeDirection"];
312
312
  src: import('./blocks/audio/audio').default["src"];
313
313
  'version-label'?: string;
314
- 'wave-color': string;
314
+ 'waveform-src'?: string;
315
315
  width: string;
316
316
  }> | Partial<{
317
317
  'asset-button-type': import('./blocks/button/button').default["assetType"];
@@ -27,10 +27,12 @@ export default class CxFileOnDemandPinnedStatus extends CortexElement {
27
27
  isFolder: boolean;
28
28
  childrenCount: number;
29
29
  assetsCount: number;
30
+ uploadErrorMessage: string;
30
31
  get cachedSize(): number;
31
32
  get percentage(): number;
32
33
  createRenderRoot(): this;
33
34
  private renderFolderSuccessText;
35
+ private renderFileSuccessText;
34
36
  private renderSuccess;
35
37
  private renderFailed;
36
38
  private renderCanceled;
@@ -244,6 +244,7 @@ export default class CxFileOnDemand extends CortexElement {
244
244
  private handleProxyChange;
245
245
  private handleCacheSizeKeydown;
246
246
  private handleCacheSizeChange;
247
+ private formatCacheUsage;
247
248
  private handleCacheLocationClick;
248
249
  handleCacheLocationChange(): Promise<void>;
249
250
  renderAdvancedSettings(): TemplateResult;
@@ -1,4 +1,4 @@
1
- import { GetAllFormatCodesResponse, GetAssetsInFolderRequest, GetAssetsInFolderResponse, GetAssetsRequest, GetAssetsResponse, GetAvailableProxiesResponse, GetCropZoneSuggestionRequest, GetCropZoneSuggestionResponse, GetTransformAssetLinkResponse, SearchAssetsParams, SearchAssetsResponse } from './asset.types';
1
+ import { GetAllFormatCodesResponse, GetAssetsInFolderRequest, GetAssetsInFolderResponse, GetAssetsRequest, GetAssetsResponse, GetAvailableProxiesResponse, GetCropZoneSuggestionRequest, GetCropZoneSuggestionResponse, GetFolderContentRequest, GetTransformAssetLinkResponse, SearchAssetsParams, SearchAssetsResponse } from './asset.types';
2
2
 
3
3
  export declare const DEFAULT_VIEW_SIZE = "CoreField.LargeSizePreview";
4
4
  export declare const FIELD_CORTEX_PATH = "Document.CortexPath";
@@ -38,7 +38,9 @@ export declare function apiGetTransformAssetLink({ assetId, extension, format, s
38
38
  useSession?: string;
39
39
  }): Promise<GetTransformAssetLinkResponse | null>;
40
40
  export declare function apiGetAssets({ extraFields, getPermanentAssetsPaths, recordIds, securityByPassToken, token, }: GetAssetsRequest): Promise<GetAssetsResponse>;
41
+ export declare function apiGetAssetsViaContentSdk({ extraFields, recordIds, }: GetAssetsRequest): Promise<GetAssetsResponse>;
41
42
  export declare function apiGetAssetsInFolder({ countPerPage, directParentFolderIdentifier, extraFields, getPermanentAssetsPaths, limitedDocTypes, pageNumber, parentFolderIdentifier, searchTerm, securityByPassToken, sortOrder, token, }: GetAssetsInFolderRequest): Promise<GetAssetsInFolderResponse>;
43
+ export declare function apiGetAssetsInFolderViaContentSdk({ extraFields, folderId, limit, limitedDocTypes, searchTerm, seeThrough, selectedFacets, sortOrder, start, }: GetFolderContentRequest): Promise<GetAssetsInFolderResponse>;
42
44
  export declare function apiGetCropFocusMode({ autoCropMode, cropHeight, cropWidth, imageUrl, useSession, }: GetCropZoneSuggestionRequest): Promise<GetCropZoneSuggestionResponse | null>;
43
45
  export declare function apiGetAvailableProxies({ assetRecordId, siteUrl, token, useSession, }: {
44
46
  assetRecordId: string;