@orangelogic/design-system 3.20.0 → 3.22.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 (246) hide show
  1. package/library/chunks/{_baseXor.DixEm6JQ.js → _baseXor.BCxbgizO.js} +2 -2
  2. package/library/chunks/{asset-link-format.BnE0FbUH.js → asset-link-format.B5E00Je6.js} +656 -629
  3. package/library/chunks/{button.D1YIxtv-.js → button.cbDkxJHn.js} +3 -3
  4. package/library/chunks/button.styles.D3GdfF7I.js +5 -0
  5. package/library/chunks/{color-swatch-group.GEu5gVrg.js → color-swatch-group.BxmlqPZe.js} +3354 -2925
  6. package/library/chunks/color.CIHdfM_a.js +187 -0
  7. package/library/chunks/{confirm-popover.CJXyEa5A.js → confirm-popover.Dvgoz-oA.js} +4 -4
  8. package/library/chunks/content-builder.CBBdfVOl.js +55 -0
  9. package/library/chunks/{dialog.BbQ4Du0M.js → dialog.BvSMV36r.js} +2 -2
  10. package/library/chunks/{document-viewer.Bkf3JbWk.js → document-viewer.Dm9pcb0o.js} +11 -10
  11. package/library/chunks/{dom.DL-cNKsj.js → dom.D0lSUoEI.js} +1 -1
  12. package/library/chunks/{dot-pagination.CJRAtM51.js → dot-pagination.CukHxNBk.js} +1 -1
  13. package/library/chunks/{folder-select.D8_6pC8Y.js → folder-select.BQqwlVaD.js} +5 -5
  14. package/library/chunks/form-control.styles.CHC7Q08Q.js +5 -0
  15. package/library/chunks/{form.DN2v7-DH.js → form.LpappO1d.js} +1 -1
  16. package/library/chunks/{header.BioJzPlg.js → header.2RH_nPmz.js} +132 -90
  17. package/library/chunks/{i18n.rtxrs1c1.js → i18n.BSPmBQ73.js} +94 -12
  18. package/library/chunks/{icon-button.CbUddcgI.js → icon-button.DV5Fks8j.js} +1 -1
  19. package/library/chunks/{iframe.y7iCAVZP.js → iframe.ddX2kGu3.js} +1 -1
  20. package/library/chunks/{image.A2hE1WoV.js → image.BM7bPTub.js} +407 -276
  21. package/library/chunks/index.SMjV3S2z.js +1130 -0
  22. package/library/chunks/{input.D1FFprPl.js → input.7pumTpdu.js} +3 -3
  23. package/library/chunks/{markdown.Dd_GFJK8.js → markdown.LHSzm035.js} +3 -3
  24. package/library/chunks/{menu-item.0TbnDEDp.js → menu-item.DsJZ7i0J.js} +1 -1
  25. package/library/chunks/{option.CyorNG0S.js → option.C5f7yDqN.js} +1 -1
  26. package/library/chunks/{pagination.D0BeaEIi.js → pagination.CMwpX60h.js} +36 -32
  27. package/library/chunks/{position-picker.DjnhxIKF.js → position-picker.qkbJlboF.js} +12 -0
  28. package/library/chunks/{resizable-component.styles.CAfXABBc.js → resizable-component.styles.kMFDlGgv.js} +2 -2
  29. package/library/chunks/responsive.BmBJSzC4.js +17 -0
  30. package/library/chunks/{string.Demn8Xmk.js → string.CfI2ejyR.js} +3 -3
  31. package/library/chunks/{tab-group.C98CWzEH.js → tab-group.D_QAkP8s.js} +312 -310
  32. package/library/chunks/toast.D3AW3RWv.js +94 -0
  33. package/library/chunks/transformation.BwQ_H-4q.js +351 -0
  34. package/library/chunks/{tree.DB-QLic1.js → tree.BHrf5WIc.js} +1 -1
  35. package/library/chunks/{types.DrJgdbwu.js → types.BDM-NtAR.js} +58295 -35623
  36. package/library/chunks/typography.BLYdTF0n.js +102 -0
  37. package/library/components/alert.js +2 -2
  38. package/library/components/asset-link-format.js +6 -6
  39. package/library/components/atoms.js +161 -159
  40. package/library/components/audio.js +4 -4
  41. package/library/components/bicolor-picker.js +2 -2
  42. package/library/components/border-input-group.js +2 -2
  43. package/library/components/box.d.ts +3 -0
  44. package/library/components/box.js +22 -0
  45. package/library/components/breadcrumb.js +1 -1
  46. package/library/components/button.js +4 -4
  47. package/library/components/card.js +7 -7
  48. package/library/components/checkbox.js +2 -2
  49. package/library/components/color-picker.js +36 -32
  50. package/library/components/color-swatch-group.js +8 -7
  51. package/library/components/color-swatch.js +246 -22
  52. package/library/components/confirm-popover.js +5 -5
  53. package/library/components/copy-button.js +2 -2
  54. package/library/components/corner-position-input-group.js +3 -3
  55. package/library/components/date-calendar.js +1 -1
  56. package/library/components/details.js +19 -19
  57. package/library/components/dialog.js +3 -3
  58. package/library/components/diff.js +1 -1
  59. package/library/components/document-viewer.js +5 -5
  60. package/library/components/dot-pagination.js +2 -2
  61. package/library/components/drawer.js +2 -2
  62. package/library/components/dropdown.js +2 -2
  63. package/library/components/dynamic-select.js +95 -92
  64. package/library/components/e-chart.js +1 -1
  65. package/library/components/element-clamp.js +2 -2
  66. package/library/components/file-on-demand.js +12 -12
  67. package/library/components/folder-select.js +5 -5
  68. package/library/components/format-bytes.js +1 -1
  69. package/library/components/format-date.js +1 -1
  70. package/library/components/format-number.js +1 -1
  71. package/library/components/format-time.js +1 -1
  72. package/library/components/header.js +6 -3
  73. package/library/components/icon-button.js +2 -2
  74. package/library/components/iframe.js +2 -2
  75. package/library/components/image-comparer.js +1 -1
  76. package/library/components/image.js +5 -4
  77. package/library/components/input-group.js +1 -1
  78. package/library/components/input.js +4 -4
  79. package/library/components/line-clamp.js +1 -1
  80. package/library/components/markdown.js +4 -4
  81. package/library/components/masonry.js +70 -56
  82. package/library/components/menu-item.js +2 -2
  83. package/library/components/menu.js +2 -2
  84. package/library/components/molecules.js +4 -4
  85. package/library/components/mutation-observer.js +26 -24
  86. package/library/components/option.js +2 -2
  87. package/library/components/organisms.js +2 -2
  88. package/library/components/padding-input-group.js +1 -1
  89. package/library/components/pagination.js +7 -7
  90. package/library/components/popup.js +1 -1
  91. package/library/components/position-picker.js +2 -2
  92. package/library/components/progress-bar.js +1 -1
  93. package/library/components/progress-ring.js +1 -1
  94. package/library/components/radio-button.js +1 -1
  95. package/library/components/radio-card.js +1 -1
  96. package/library/components/radio-group.js +2 -2
  97. package/library/components/range.js +3 -3
  98. package/library/components/rating.js +1 -1
  99. package/library/components/relative-time.js +1 -1
  100. package/library/components/select.js +5 -5
  101. package/library/components/shadow-input-group.js +1 -1
  102. package/library/components/share-option-list.js +3 -3
  103. package/library/components/sidebar.js +1 -1
  104. package/library/components/size-input-group.js +3 -3
  105. package/library/components/spinner.js +1 -1
  106. package/library/components/split-panel.js +1 -1
  107. package/library/components/switch.js +2 -2
  108. package/library/components/tab-group.js +6 -6
  109. package/library/components/tab-panel.js +1 -1
  110. package/library/components/tab.js +16 -16
  111. package/library/components/tag.js +2 -2
  112. package/library/components/textarea.js +2 -2
  113. package/library/components/timecode.js +2 -2
  114. package/library/components/tooltip.js +1 -1
  115. package/library/components/tree-item.js +2 -2
  116. package/library/components/tree.js +2 -2
  117. package/library/components/typeface.js +3 -3
  118. package/library/components/types.js +496 -487
  119. package/library/components/typography.js +3 -2
  120. package/library/components/video.js +5277 -5209
  121. package/library/css/ol-base.css +1 -0
  122. package/library/package.json +1 -1
  123. package/library/packages/atoms/src/components/box/box.d.ts +26 -0
  124. package/library/packages/atoms/src/components/box/box.styles.d.ts +7 -0
  125. package/library/packages/atoms/src/components/button/button.d.ts +4 -0
  126. package/library/packages/atoms/src/components/card/card.d.ts +1 -0
  127. package/library/packages/atoms/src/components/color-picker/color-picker.d.ts +11 -0
  128. package/library/packages/atoms/src/components/copy-button/copy-button.d.ts +1 -0
  129. package/library/packages/atoms/src/components/details/details.d.ts +6 -1
  130. package/library/packages/atoms/src/components/header/header.d.ts +38 -2
  131. package/library/packages/atoms/src/components/image/image.d.ts +30 -0
  132. package/library/packages/atoms/src/components/mutation-observer/mutation-observer.d.ts +1 -1
  133. package/library/packages/atoms/src/components/radio-card/radio-card.d.ts +1 -0
  134. package/library/packages/atoms/src/components/tab/tab.d.ts +17 -0
  135. package/library/packages/atoms/src/components/typography/typography.d.ts +31 -0
  136. package/library/packages/atoms/src/components/video/video.d.ts +24 -0
  137. package/library/packages/atoms/src/index.d.ts +1 -0
  138. package/library/packages/events/src/cx-asset-transformation-dialog-confirm.d.ts +2 -0
  139. package/library/packages/events/src/cx-color-swatch-picker-columns-change.d.ts +15 -0
  140. package/library/packages/events/src/events.d.ts +1 -0
  141. package/library/packages/hybrid/table-core/src/table/components/table-toolbar/table-dropdown-filter.d.ts +2 -0
  142. package/library/packages/hybrid/table-core/src/table/table.d.ts +45 -5
  143. package/library/packages/molecules/src/color-swatch/color-swatch.d.ts +35 -1
  144. package/library/packages/molecules/src/data-tab-group/data-tab-group.d.ts +30 -1
  145. package/library/packages/molecules/src/details-group/details-group.d.ts +105 -3
  146. package/library/packages/molecules/src/dynamic-select/dynamic-select.d.ts +5 -0
  147. package/library/packages/molecules/src/font-picker/font-picker.d.ts +3 -0
  148. package/library/packages/molecules/src/gallery-item/gallery-item.d.ts +10 -0
  149. package/library/packages/molecules/src/icon-picker/icon-picker.d.ts +5 -6
  150. package/library/packages/molecules/src/index.d.ts +0 -1
  151. package/library/packages/molecules/src/masonry/masonry.d.ts +5 -0
  152. package/library/packages/organisms/src/asset-link-format/asset-link-format.d.ts +6 -0
  153. package/library/packages/organisms/src/asset-transformation-dialog/asset-transformation-dialog.d.ts +5 -1
  154. package/library/packages/organisms/src/bento-grid/bento-grid.d.ts +32 -11
  155. package/library/packages/organisms/src/color-swatch-group/color-swatch-group.constants.d.ts +37 -45
  156. package/library/packages/organisms/src/color-swatch-group/color-swatch-group.d.ts +210 -10
  157. package/library/packages/organisms/src/content-builder/blocks/font-kit-advanced/font-kit-advanced.utils.d.ts +85 -0
  158. package/library/packages/organisms/src/content-builder/blocks/image/image.d.ts +32 -9
  159. package/library/packages/organisms/src/content-builder/components/block-picker/block-picker.d.ts +24 -8
  160. package/library/packages/organisms/src/content-builder/components/color-swatch-picker/color-swatch-picker.d.ts +70 -1
  161. package/library/packages/organisms/src/content-builder/components/config-form/config-form-controller.d.ts +1 -22
  162. package/library/packages/organisms/src/content-builder/components/config-manager/config-manager.d.ts +7 -0
  163. package/library/packages/organisms/src/content-builder/components/gallery-config/gallery-config.d.ts +6 -0
  164. package/library/packages/organisms/src/content-builder/components/gallery-picker/gallery-picker.d.ts +1 -0
  165. package/library/packages/organisms/src/content-builder/configs/accordion.d.ts +7 -0
  166. package/library/packages/organisms/src/content-builder/configs/audio.d.ts +1 -0
  167. package/library/packages/organisms/src/content-builder/configs/button.d.ts +2 -1
  168. package/library/packages/organisms/src/content-builder/configs/carousel.d.ts +11 -1
  169. package/library/packages/organisms/src/content-builder/configs/color-swatches.d.ts +19 -1
  170. package/library/packages/organisms/src/content-builder/configs/column-group.d.ts +11 -2
  171. package/library/packages/organisms/src/content-builder/configs/column.d.ts +13 -3
  172. package/library/packages/organisms/src/content-builder/configs/dam-view.d.ts +1 -0
  173. package/library/packages/organisms/src/content-builder/configs/divider.d.ts +1 -0
  174. package/library/packages/organisms/src/content-builder/configs/document-viewer.d.ts +1 -0
  175. package/library/packages/organisms/src/content-builder/configs/font-kit-advanced.d.ts +19 -0
  176. package/library/packages/organisms/src/content-builder/configs/font-kit.d.ts +2 -0
  177. package/library/packages/organisms/src/content-builder/configs/gallery.d.ts +15 -1
  178. package/library/packages/organisms/src/content-builder/configs/header.d.ts +3 -1
  179. package/library/packages/organisms/src/content-builder/configs/image.d.ts +4 -0
  180. package/library/packages/organisms/src/content-builder/configs/index.d.ts +1 -0
  181. package/library/packages/organisms/src/content-builder/configs/search-box.d.ts +5 -1
  182. package/library/packages/organisms/src/content-builder/configs/tab-group.d.ts +7 -4
  183. package/library/packages/organisms/src/content-builder/configs/timeline.d.ts +1 -0
  184. package/library/packages/organisms/src/content-builder/configs/video.d.ts +3 -0
  185. package/library/packages/organisms/src/content-builder/configs-controller.d.ts +168 -13
  186. package/library/packages/organisms/src/content-builder/content-builder-config.d.ts +60 -0
  187. package/library/packages/organisms/src/content-builder/content-builder-constants.d.ts +27 -0
  188. package/library/packages/organisms/src/content-builder/content-builder.d.ts +122 -2
  189. package/library/packages/organisms/src/content-builder/content-builder.sections.utils.d.ts +78 -0
  190. package/library/packages/organisms/src/content-builder/content-builder.utils.d.ts +33 -2
  191. package/library/packages/organisms/src/content-builder/plugins/font-kit-advanced.d.ts +5 -0
  192. package/library/packages/organisms/src/content-builder/plugins/gallery.d.ts +6 -0
  193. package/library/packages/organisms/src/content-builder/plugins/header.d.ts +7 -1
  194. package/library/packages/organisms/src/content-builder/plugins/index.d.ts +2 -1
  195. package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/components/rte-bubble-menu/rte-bubble-menu.d.ts +21 -1
  196. package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/extensions/index.d.ts +2 -0
  197. package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/rte-configs.d.ts +14 -0
  198. package/library/packages/organisms/src/content-builder/plugins/sections/section-fragment-component.d.ts +22 -0
  199. package/library/packages/organisms/src/content-builder/plugins/sections/section-host-mounting.d.ts +15 -0
  200. package/library/packages/organisms/src/content-builder/plugins/sections/sections-canvas-patches.d.ts +20 -0
  201. package/library/packages/organisms/src/content-builder/plugins/sections/sections-plugin.d.ts +7 -0
  202. package/library/packages/organisms/src/content-builder/plugins/toolbar.d.ts +10 -1
  203. package/library/packages/organisms/src/content-builder/plugins/utils/block-width.d.ts +20 -0
  204. package/library/packages/organisms/src/content-builder/styleController.d.ts +11 -5
  205. package/library/packages/organisms/src/content-builder-viewer/content-builder-viewer.d.ts +1 -0
  206. package/library/packages/organisms/src/form/control-renderer/control-renderer.d.ts +176 -0
  207. package/library/packages/organisms/src/form/control-renderer/control-renderer.styles.d.ts +9 -0
  208. package/library/packages/organisms/src/list-editor/list-editor.d.ts +181 -6
  209. package/library/packages/tools/src/fetch-image/fetch-image.d.ts +12 -0
  210. package/library/packages/tools/src/tiptap/extensions/metafield/index.d.ts +12 -0
  211. package/library/packages/tools/src/tiptap/utils/md/schema.d.ts +1 -1
  212. package/library/packages/types/src/asset-link-format.d.ts +0 -1
  213. package/library/packages/types/src/button.d.ts +1 -1
  214. package/library/packages/types/src/color-swatch-group.d.ts +56 -0
  215. package/library/packages/types/src/color-swatch.d.ts +22 -0
  216. package/library/packages/types/src/column.d.ts +13 -0
  217. package/library/packages/types/src/content-builder.d.ts +73 -4
  218. package/library/packages/types/src/details-group.d.ts +80 -0
  219. package/library/packages/types/src/font-kit-advanced.d.ts +28 -0
  220. package/library/packages/types/src/font-kit.d.ts +19 -0
  221. package/library/packages/types/src/font-picker.d.ts +2 -0
  222. package/library/packages/types/src/gallery-item.d.ts +3 -1
  223. package/library/packages/types/src/gallery.d.ts +2 -1
  224. package/library/packages/types/src/index.d.ts +1 -0
  225. package/library/packages/types/src/masonry.d.ts +1 -0
  226. package/library/packages/types/src/position-picker.d.ts +6 -0
  227. package/library/packages/types/src/sb-button.d.ts +7 -0
  228. package/library/packages/types/src/search-box.d.ts +4 -0
  229. package/library/packages/utils/src/color/color.d.ts +27 -3
  230. package/library/packages/utils/src/custom-element/i18n.d.ts +88 -2
  231. package/library/packages/utils/src/font/font.d.ts +12 -0
  232. package/library/packages/utils/src/transformation/transformation.d.ts +11 -3
  233. package/library/react-web-component.d.ts +514 -156
  234. package/library/utils.js +417 -397
  235. package/package.json +1 -1
  236. package/library/chunks/button.styles.BWgHrfLD.js +0 -5
  237. package/library/chunks/color-swatch.DdsUysbF.js +0 -223
  238. package/library/chunks/color.LzSGBy7o.js +0 -164
  239. package/library/chunks/form-control.styles.CaGWmeAS.js +0 -5
  240. package/library/chunks/index.Ct-dh3Y5.js +0 -20122
  241. package/library/chunks/toast.CGIDPKV8.js +0 -109
  242. package/library/chunks/transformation.OaRYixzE.js +0 -385
  243. package/library/chunks/typography.T72DuoCa.js +0 -52
  244. package/library/packages/molecules/src/search-box/search-box.d.ts +0 -114
  245. package/library/packages/organisms/src/content-builder/plugins/wrapper-container.d.ts +0 -4
  246. /package/library/packages/{molecules/src/search-box/search-box.styles.d.ts → organisms/src/content-builder-viewer/content-builder-viewer.styles.d.ts} +0 -0
@@ -7,7 +7,29 @@ import { TabGroupAlignment, TabGroupHidePanelVariant, TabGroupOverflowVariant }
7
7
  import { CSSResultGroup } from 'lit';
8
8
 
9
9
  /**
10
- * @summary CxDataTabGroup
10
+ * @summary Renders a tab group from a list of items, exposing the tabs' look as CSS custom properties.
11
+ *
12
+ * @slot slot-{id} - The panel content for the item with the matching `id`.
13
+ *
14
+ * @cssproperty [--tab-gap=0px] - The gap between tabs.
15
+ * @cssproperty [--tab-padding=var(--cx-spacing-x-small)] - A tab's padding.
16
+ * @cssproperty [--tab-panel-padding] - The panel's padding.
17
+ * @cssproperty [--tab-border-radius=var(--cx-border-radius-small)] - A tab's border radius.
18
+ * @cssproperty [--tab-color] - A tab's text color.
19
+ * @cssproperty [--tab-hover-color=var(--tab-color)] - A tab's text color on hover.
20
+ * @cssproperty [--tab-active-color=#fff] - A tab's text color when active.
21
+ * @cssproperty [--tab-background-color] - A tab's background color.
22
+ * @cssproperty [--tab-hover-background-color=var(--tab-background-color)] - A tab's background color on hover.
23
+ * @cssproperty [--tab-active-background-color=var(--cx-color-primary)] - A tab's background color when active.
24
+ * @cssproperty [--tab-border=transparent 0px] - A tab's border, as a `<color> <width>` pair.
25
+ * @cssproperty [--tab-hover-border=var(--tab-border)] - A tab's border on hover.
26
+ * @cssproperty [--tab-active-border=var(--tab-border)] - A tab's border when active.
27
+ * @cssproperty [--tab-label-font-family] - The tab label's font family.
28
+ * @cssproperty [--tab-label-font-style] - The tab label's font style.
29
+ * @cssproperty [--tab-label-font-weight] - The tab label's font weight.
30
+ * @cssproperty [--tab-label-font-size=var(--cx-font-size-small)] - The tab label's font size.
31
+ * @cssproperty [--bottom-line=var(--cx-color-neutral-200) 1px] - The line under the tabs, as a `<color> <width>` pair; only drawn when `show-bottom-line` is set.
32
+ * @cssproperty [--min-height=200px] - The height reserved when there are no tabs.
11
33
  */
12
34
  export default class CxDataTabGroup extends CortexElement {
13
35
  static readonly styles: CSSResultGroup;
@@ -26,6 +48,13 @@ export default class CxDataTabGroup extends CortexElement {
26
48
  hidePanelVariant: TabGroupHidePanelVariant;
27
49
  /** Use max panel height. */
28
50
  useMaxPanelHeight: boolean;
51
+ /** Draws the line that separates the tabs from the panel. */
52
+ showBottomLine: boolean;
53
+ /**
54
+ * The tab border sides to draw, as a space-separated list of
55
+ * `top` / `right` / `bottom` / `left` (e.g. `"top bottom"`).
56
+ */
57
+ tabBorderSides: string;
29
58
  multiLanguage: boolean;
30
59
  render(): import('lit').TemplateResult<1>;
31
60
  }
@@ -1,24 +1,126 @@
1
1
  import { default as CxDetails } from '../../../atoms/src/components/details/details.ts';
2
+ import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
2
3
  import { default as CortexElement } from '../../../base/src/cortex-element.ts';
3
4
  import { DetailsItem } from '../../../types/src/details-group';
4
- import { CSSResultGroup } from 'lit';
5
+ import { IconPickerValue } from '../../../types/src/icon-picker';
6
+ import { CSSResultGroup, TemplateResult } from 'lit';
5
7
 
6
8
  /**
7
- * @summary CxDetailsGroup
9
+ * @summary Renders an accordion from a list of items, exposing each section's look as CSS custom properties.
10
+ *
11
+ * @description Every custom property below sets the look of all sections. A single section can
12
+ * override the header colors, border, background image and icons by carrying its own values on
13
+ * the item — see `DetailsItem` — which take effect once that item sets `customStyle`.
14
+ *
15
+ * @slot slot-{id} - The content for the section with the matching `id`.
8
16
  *
9
17
  * @cssproperty --details-background-color - The background color of the details.
18
+ * @cssproperty [--details-background-image=none] - A section's background image, covering the whole section so expanding it reveals more. Set per section from a `background` field on the item.
19
+ * @cssproperty [--details-background-size=cover] - How the section background image fills the section.
20
+ * @cssproperty [--details-background-position=top center] - Which part of the section background image stays in view.
21
+ * @cssproperty [--details-border-radius=var(--header-border-radius)] - A section's corner radius, which its background is clipped to. Follows the header's radius unless set.
22
+ * @cssproperty [--row-gap=var(--cx-spacing-medium)] - The gap between sections.
23
+ * @cssproperty [--header-padding=var(--cx-spacing-small)] - A section header's padding.
24
+ * @cssproperty [--section-body-max-width=100%] - Caps the width of a section's title and icon, centring them, while the header background still spans the section. Accepts px or %, and the `section-body-max-width` attribute sets it. Set it to the width of the section's body content so the two line up — most useful on a full-bleed accordion.
25
+ * @cssproperty [--expand-icon-width=var(--cx-font-size-large)] - The width of a closed section's icon. The height scales with it.
26
+ * @cssproperty [--hover-icon-width=var(--cx-font-size-large)] - The width of the icon shown while hovering a closed section. The height scales with it.
27
+ * @cssproperty [--collapse-icon-width=var(--cx-font-size-large)] - The width of an open section's icon. The height scales with it.
28
+ * @cssproperty [--header-border-radius=var(--cx-border-radius-small)] - A section header's border radius.
29
+ * @cssproperty --header-background-color - A section header's background color.
30
+ * @cssproperty --header-color - A section header's text and icon color.
31
+ * @cssproperty --header-border - A section header's border, as a `<color> <width>` pair.
32
+ * @cssproperty [--header-hover-background-color=var(--header-background-color)] - A closed section header's background color on hover.
33
+ * @cssproperty [--header-hover-color=var(--header-color)] - A closed section header's text and icon color on hover.
34
+ * @cssproperty [--header-hover-border=var(--header-border)] - A closed section header's border on hover.
35
+ * @cssproperty --header-active-background-color - An open section header's background color.
36
+ * @cssproperty --header-active-color - An open section header's text and icon color.
37
+ * @cssproperty --header-active-border - An open section header's border.
38
+ * @cssproperty [--header-font-size=var(--cx-font-size-large)] - A section header's font size.
39
+ * @cssproperty [--header-line-height=1.2] - A section header's line height, as a ratio of its font size.
40
+ * @cssproperty --header-font-family - A section header's font family.
41
+ * @cssproperty --header-font-style - A section header's font style.
42
+ * @cssproperty --header-font-weight - A section header's font weight.
43
+ * @cssproperty --content-padding - A section's content padding.
44
+ * @cssproperty [--content-font-size=var(--cx-font-size-medium)] - A section's content font size.
45
+ * @cssproperty [--empty-height=200px] - The height reserved when there are no sections.
10
46
  */
11
47
  export default class CxDetailsGroup extends CortexElement {
12
48
  static readonly styles: CSSResultGroup;
13
49
  static readonly dependencies: {
14
50
  'cx-details': typeof CxDetails;
51
+ 'cx-icon': typeof CxIcon;
15
52
  };
53
+ /** Attempts per background image, matching `cx-image`'s cap. */
54
+ private static readonly maxBackgroundRetries;
55
+ /**
56
+ * Reads an icon-picker value, stored as JSON. Only an unreadable one (empty or
57
+ * unparseable, as older blocks store it) takes `fallback` — so the empty payload the
58
+ * picker writes when cleared means "no icon", not "use the default".
59
+ */
60
+ private static createIconConverter;
16
61
  private readonly localize;
62
+ /** Background URLs already probed, so a re-render does not start a second attempt. */
63
+ private readonly probedBackgrounds;
64
+ /** How many times each background URL has been retried, against `maxBackgroundRetries`. */
65
+ private readonly backgroundRetryCounts;
66
+ /** Pending retry timers, cleared on disconnect. */
67
+ private readonly backgroundRetryTimers;
17
68
  data: DetailsItem[];
18
69
  defaultOpenIndexes?: number[];
19
70
  multiLanguage: boolean;
71
+ /**
72
+ * Caps the width of every section's title row, in px or %. Sets
73
+ * `--section-body-max-width`, so this is the attribute form of that custom property -
74
+ * which is what the content builder writes - and styling it directly still works.
75
+ */
76
+ sectionBodyMaxWidth: string;
77
+ /** The icon shown on a closed section. */
78
+ expandIcon: IconPickerValue | null;
79
+ /** The icon shown while hovering a closed section. Defaults to the closed icon. */
80
+ hoverIcon: IconPickerValue | null;
81
+ /** The icon shown on an open section. */
82
+ collapseIcon: IconPickerValue | null;
83
+ /** Cache-bust token per URL. Reactive: changing it is what re-points the CSS background. */
84
+ private backgroundRetryTokens;
20
85
  runFirstUpdated(): void;
21
- render(): import('lit').TemplateResult<1>;
86
+ connectedCallback(): void;
87
+ disconnectedCallback(): void;
88
+ /**
89
+ * Probes each background so a failed load can be retried. A CSS background reports no
90
+ * error of its own, so the only way to notice one is to load the same URL separately —
91
+ * normally served from cache.
92
+ */
93
+ handleBackgroundProbes(): void;
94
+ /** Loads a background out of band to see whether it resolves. Once per attempt. */
95
+ private probeBackground;
96
+ /**
97
+ * Re-points the background at a fresh URL after a backoff. Delay and cache-bust mirror
98
+ * `cx-image`: spread the attempts, and bypass an edge caching the failed response.
99
+ */
100
+ private scheduleBackgroundRetry;
101
+ /** Appends the retry cache-bust parameter while an attempt is in flight. */
102
+ private withBackgroundRetryToken;
103
+ /**
104
+ * The URL a background renders from, transformations applied. Shared with the probe so a
105
+ * retry tests what the CSS actually requests.
106
+ */
107
+ private resolveBackgroundSrc;
108
+ /**
109
+ * A section's own icon wins over the group's. Only an unset field inherits — a cleared one
110
+ * is a choice to show nothing.
111
+ */
112
+ private resolveIcon;
113
+ /**
114
+ * Turns a section's overrides into a style map of the CSS custom properties `cx-details`
115
+ * reads. Returns nothing while `customStyle` is off, so the group's look applies.
116
+ */
117
+ private resolveSectionStyle;
118
+ /**
119
+ * Renders the icon, or a hidden node that still fills the slot — `cx-details` falls back to
120
+ * its own chevron on an empty slot, so filling it is what makes "cleared" render nothing.
121
+ */
122
+ private renderIconSlot;
123
+ render(): TemplateResult<1>;
22
124
  }
23
125
  declare global {
24
126
  interface HTMLElementTagNameMap {
@@ -196,6 +196,11 @@ export default class CxDynamicSelect extends CortexElement {
196
196
  * The name of the icon to use for the prefix.
197
197
  */
198
198
  iconName: string;
199
+ /**
200
+ * Image source for the prefix icon, for picked images rather than named
201
+ * icons. Takes effect through cx-icon-button's own `src`.
202
+ */
203
+ iconSrc: string;
199
204
  /**
200
205
  * When set to true, the select will not show the dropdown.
201
206
  */
@@ -58,10 +58,13 @@ export default class CxFontPicker extends CortexElement {
58
58
  private get allTypefaces();
59
59
  private get selectedTypeface();
60
60
  private get availableFamilies();
61
+ /** An upright run then an italic one, each by ascending weight. */
62
+ private get groupedFamilies();
61
63
  private handleFamilyChange;
62
64
  private handleStyleChange;
63
65
  private renderTypefaceOptions;
64
66
  private renderFamilySelect;
67
+ private renderStyleOptions;
65
68
  private renderStyleSelect;
66
69
  render(): TemplateResult;
67
70
  }
@@ -3,6 +3,7 @@ import { default as HighlightableElement } from '../../../base/src/highlightable
3
3
  import { default as CxAssetDataDisplay } from '../asset-data-display/asset-data-display.ts';
4
4
  import { ObjectFit } from '../../../types/src/index.ts';
5
5
  import { GalleryItemContentPosition, GalleryItemContentVariant, GalleryItemShowContentType } from '../../../types/src/gallery-item';
6
+ import { PositionPickerValue } from '../../../types/src/position-picker';
6
7
  import { LocalizeController } from '../../../utils/src/custom-element/i18n';
7
8
  import { CSSResultGroup } from 'lit';
8
9
 
@@ -107,6 +108,15 @@ export default class CxGalleryItem extends HighlightableElement {
107
108
  * The object fit style for the image.
108
109
  */
109
110
  objectFit: ObjectFit;
111
+ /**
112
+ * The focal point used to position the image within its container.
113
+ */
114
+ cropFocus: PositionPickerValue;
115
+ /**
116
+ * The background color shown behind the image, e.g. to fill empty space
117
+ * left by `object-fit: contain`. Accepts any valid CSS color value.
118
+ */
119
+ backgroundColor: string;
110
120
  /**
111
121
  * When true, forwards `no-crossorigin` to the inner `<cx-image>`, disabling CORS mode.
112
122
  * Defaults to false (the image loads with `crossorigin="anonymous"`).
@@ -175,14 +175,13 @@ export default class CxIconPicker extends CortexElement {
175
175
  * re-focuses on a timer), so a focus-driven load would re-fire long after
176
176
  * the dropdown closed.
177
177
  *
178
- * The early return matters too: cx-after-show fires on every open, and
179
- * chaining onto the already-settled promise would land a requestUpdate()
180
- * a microtask into the open sequence, re-rendering the virtualizer while
181
- * cx-select is still animating open with its document mousedown/focusin
182
- * listeners armed — which intermittently closed the dropdown right after
183
- * it appeared.
178
+ * The virtualizer waits for the first catalog request to settle before it
179
+ * mounts. Mounting it with an empty item set can leave its visible range
180
+ * empty until the user scrolls. The open-state guard also prevents a late
181
+ * request from mounting the list after the control has already closed.
184
182
  */
185
183
  private ensureIconsData;
184
+ private showVirtualizerWhenReady;
186
185
  private handleSelectShow;
187
186
  private handleSelectHide;
188
187
  private handleDropdownShow;
@@ -33,7 +33,6 @@ export { default as CxPageOutline } from './page-outline/page-outline';
33
33
  export { default as CxPdfViewerToolbar } from './pdf-viewer-toolbar/pdf-viewer-toolbar';
34
34
  export { default as CxPositionPicker } from './position-picker/position-picker';
35
35
  export { default as CxPublishPage } from './publish-page/publish-page';
36
- export { default as CxSearchBox } from './search-box/search-box';
37
36
  export { default as CxShadowInputGroup } from './shadow-input-group/shadow-input-group';
38
37
  export { default as CxShareOptionList } from './share-option-list/share-option-list';
39
38
  export { default as CxSidebar } from './sidebar/sidebar';
@@ -105,6 +105,11 @@ export default class CxMasonry extends CortexElement {
105
105
  private get itemSizes();
106
106
  handleItemClick(event: MouseEvent, item: MasonryItem): void;
107
107
  handleSortableUpdate(event: Sortable.SortableEvent): void;
108
+ /**
109
+ * An item without an image gets a browser-made drag preview that lands in the
110
+ * viewport corner. Use the item itself as the preview so it follows the cursor.
111
+ */
112
+ handleSetData(dataTransfer: DataTransfer, dragEl: HTMLElement): void;
108
113
  renderActions(item: MasonryItem): import('lit').TemplateResult<1>;
109
114
  renderMasonry(): import('lit').TemplateResult<1>;
110
115
  renderStandard(): import('lit').TemplateResult<1>;
@@ -212,6 +212,7 @@ export default class CxAssetLinkFormat extends CortexElement {
212
212
  /** True when there are transformations beyond the frozen index (i.e. user has added new ones). */
213
213
  private get hasUnfrozenTransformations();
214
214
  private apiGetTransformAssetLink;
215
+ private transformRequest?;
215
216
  private apiGetCropFocusMode;
216
217
  /**
217
218
  * The unit of the last applied crop transformation, for the no-asset case only. Reflects
@@ -327,6 +328,11 @@ export default class CxAssetLinkFormat extends CortexElement {
327
328
  x: number;
328
329
  y: number;
329
330
  };
331
+ /** Captures the current request synchronously; later edits cannot change Save's ratio. */
332
+ getAppliedAspectRatio(): Promise<number | undefined>;
333
+ private get transformRequestOptions();
334
+ private getTransformRequest;
335
+ private requestTransformAsset;
330
336
  setActiveSetting(activeSetting: string): void;
331
337
  private freezeTransformations;
332
338
  private upsertTransformation;
@@ -20,7 +20,7 @@ import { default as CxAssetLinkFormat } from '../asset-link-format/asset-link-fo
20
20
  * `cx-icon-button`. Automatically disabled when `asset-id` is not set.
21
21
  *
22
22
  * @event cx-asset-transformation-dialog-cancel - Emitted when the user closes or cancels the dialog.
23
- * @event {{ detail: { format: string; manualFormat: boolean; transformations: Transformation[] } }} cx-asset-transformation-dialog-confirm - Emitted when the user saves, with the resolved proxy id, whether that id was picked by hand rather than derived from the asset extension, and the transformation array.
23
+ * @event {{ detail: { aspectRatio?: number; format: string; manualFormat: boolean; transformations: Transformation[] } }} cx-asset-transformation-dialog-confirm - Emitted when the user saves, with the applied image ratio, resolved proxy id, whether that id was picked by hand, and the transformation array.
24
24
  * @event cx-asset-transformation-dialog-delete - Emitted when the user resets the format to its default and clears the saved transformations via the reset button.
25
25
  */
26
26
  export default class CxAssetTransformationDialog extends CortexElement {
@@ -91,6 +91,10 @@ export default class CxAssetTransformationDialog extends CortexElement {
91
91
  private proxies;
92
92
  /** False while the authorization check is in flight or after it confirms no access. */
93
93
  private canAccess;
94
+ private saving;
95
+ /** Seeds one editing session; subsequent Apply changes belong to the child. */
96
+ private initialDraft;
97
+ private editSession;
94
98
  /**
95
99
  * Whether the author changed anything away from the block's defaults, which is what the
96
100
  * Reset control acts on.
@@ -42,7 +42,7 @@ export default class CxBentoGrid extends CortexElement {
42
42
  /** Cached viewport height — updated on resize only, not on every scroll. */
43
43
  private _viewportHeight;
44
44
  /** Watches the host element for size changes so the grid reflows when its container resizes. */
45
- private _resizeObserver;
45
+ private resizeObserver;
46
46
  /** Tracks the last emitted range to avoid firing cx-bento-range-change when the range hasn't changed. */
47
47
  private _lastEmittedFirst;
48
48
  private _lastEmittedLast;
@@ -273,6 +273,11 @@ export default class CxBentoGrid extends CortexElement {
273
273
  runConnectedCallback(): void;
274
274
  disconnectedCallback(): void;
275
275
  runFirstUpdated(): void;
276
+ /**
277
+ * ResizeObserver on the container covers both window resize and any container-driven
278
+ * width changes (sidebar toggle, flex layout shifts, etc.).
279
+ */
280
+ private observeContainerResize;
276
281
  /**
277
282
  * Returns the visible viewport height for virtualization.
278
283
  *
@@ -339,8 +344,27 @@ export default class CxBentoGrid extends CortexElement {
339
344
  * instead of stopping it.
340
345
  */
341
346
  private scheduleRowRelease;
342
- /** Clears any pending release and resets the gate back to its initial state. */
347
+ /** Drops the pending release, keeping the rows already released. */
348
+ private cancelRowRelease;
349
+ /**
350
+ * Clears any pending release and resets the gate back to its initial state.
351
+ *
352
+ * Must run BEFORE `computeLayout()` in the same pass: that call ends by arming the
353
+ * next release, and a reset landing after it cancels the arm with nothing left to
354
+ * re-arm, which gates every row for good.
355
+ */
343
356
  private resetRowRelease;
357
+ /**
358
+ * Restarts row gating when the dataset shrinks or is replaced wholesale.
359
+ *
360
+ * Row indices refer to a specific layout, so keeping a release count across a new
361
+ * dataset would let its rows load all at once — the burst this gate exists to prevent.
362
+ * Progress is kept only for an appended page: the new dataset must repeat the previous
363
+ * items, in order, as its prefix, so the already-released rows still hold the same
364
+ * items and the new rows queue behind them. Any other replacement restarts the gate,
365
+ * including a same-length or larger array carrying different items.
366
+ */
367
+ private resetRowReleaseForNewData;
344
368
  /**
345
369
  * Returns the index of the last item whose rowStart is within maxRows.
346
370
  */
@@ -377,21 +401,18 @@ export default class CxBentoGrid extends CortexElement {
377
401
  * idempotent — safe to call again on already-observed elements.
378
402
  */
379
403
  private observeItemContentSlots;
404
+ /**
405
+ * Decides whether this pass restarts row gating, and does so.
406
+ *
407
+ * Must run BEFORE `computeLayout()` — see `resetRowRelease()`.
408
+ */
409
+ private applyRowReleaseResets;
380
410
  willUpdate(changed: PropertyValues): void;
381
411
  /**
382
412
  * Re-syncs row content heights whenever the layout recomputes (containerStyles
383
413
  * changes on every computeLayout() call, including resize-driven reflows) or
384
414
  * the sync-row-content-height flag itself is toggled.
385
415
  */
386
- /**
387
- * Restarts row gating when the dataset shrinks or is replaced wholesale.
388
- *
389
- * Row indices refer to a specific layout, so keeping a release count across a new
390
- * dataset would let its rows load all at once — the burst this gate exists to prevent.
391
- * A dataset that only grew is treated as an appended page: the already-released rows
392
- * still hold the same items, so their progress is kept and the new rows queue behind.
393
- */
394
- handleDataChangeForRowRelease(oldData?: unknown, newData?: unknown): void;
395
416
  handleRowContentHeightSync(): Promise<void>;
396
417
  /**
397
418
  * Get content position based on the size of the item.
@@ -1,60 +1,52 @@
1
1
  import { CellComponent } from '../../../hybrid/table-core/src/index.ts';
2
+ import { ColorSwatchCustomColumn } from '../../../types/src/color-swatch-group';
2
3
  import { LocalizeController } from '../../../utils/src/custom-element/i18n';
3
4
 
4
5
  export declare const MIN_WIDTH_GRID_ITEM = 165;
5
- export declare const validCodes: string[];
6
+ export declare const validCodes: Set<string>;
7
+ export declare const validElements: Set<string>;
6
8
  export declare const columnDefaults: {
7
9
  resizable: boolean;
8
10
  };
9
11
  /**
10
- * A single "Name" column that renders the color swatch and the name together,
11
- * so the "Name" header spans the whole column instead of truncating inside a
12
- * narrow swatch-only column.
12
+ * The column shape this component feeds to `cx-table`. Kept local (rather than
13
+ * Tabulator's full `ColumnDefinition`) because only these fields are used.
14
+ *
15
+ * The definitions below deliberately carry no `width` / `widthGrow` / `minWidth`
16
+ * / `maxWidth`: those belong to the block's per-column Width mode and
17
+ * Constraints settings, and `applyColumnSettings` fills them in. A leftover
18
+ * `widthGrow` here would make "Fill container" columns take unequal shares,
19
+ * since `fitColumns` distributes free space in proportion to it.
13
20
  */
14
- export declare const nameColumn: {
21
+ export type ColorSwatchColumn = {
15
22
  field: string;
16
- formatter: (cell: CellComponent) => HTMLDivElement;
23
+ formatter?: (cell: CellComponent) => HTMLElement | null;
17
24
  headerHozAlign: string;
18
25
  headerSort: boolean;
19
26
  hozAlign: string;
27
+ maxWidth?: number;
28
+ minWidth?: number;
29
+ responsive?: number;
20
30
  title: string;
21
- widthGrow: number;
31
+ width?: number;
32
+ widthGrow?: number;
22
33
  };
23
- export declare const codeColumns: ({
24
- field: string;
25
- headerHozAlign: string;
26
- headerSort: boolean;
27
- hozAlign: string;
28
- minWidth: number;
29
- title: string;
30
- responsive?: undefined;
31
- widthGrow?: undefined;
32
- } | {
33
- field: string;
34
- headerHozAlign: string;
35
- headerSort: boolean;
36
- hozAlign: string;
37
- responsive: number;
38
- title: string;
39
- widthGrow: number;
40
- minWidth?: undefined;
41
- })[];
42
- export declare const copyableCodeColumns: (localize: LocalizeController, palette: string) => ({
43
- field: string;
44
- formatter: (cell: any) => HTMLElement | null;
45
- headerHozAlign: string;
46
- headerSort: boolean;
47
- hozAlign: string;
48
- minWidth: number;
49
- title: string;
50
- widthGrow?: undefined;
51
- } | {
52
- field: string;
53
- formatter: (cell: any) => HTMLElement | null;
54
- headerHozAlign: string;
55
- headerSort: boolean;
56
- hozAlign: string;
57
- title: string;
58
- widthGrow: number;
59
- minWidth?: undefined;
60
- })[];
34
+ /**
35
+ * A single "Name" column that renders the color swatch and the name together,
36
+ * so the "Name" header spans the whole column instead of truncating inside a
37
+ * narrow swatch-only column.
38
+ */
39
+ export declare const nameColumn: ColorSwatchColumn;
40
+ export declare const codeColumns: ColorSwatchColumn[];
41
+ export declare const copyableCodeColumns: (localize: LocalizeController, palette: string) => ColorSwatchColumn[];
42
+ /**
43
+ * The `cx-table` column for one author-declared custom column.
44
+ *
45
+ * Reads a flat field rather than `metadata.<id>`: the component flattens each
46
+ * row first, keeping Tabulator away from nested-path lookups. Font overrides
47
+ * fall back to the block's Content group, so a column created without
48
+ * presentation settings matches the built-in code columns.
49
+ */
50
+ export declare function customColumn(column: ColorSwatchCustomColumn): ColorSwatchColumn;
51
+ /** The flat row key a custom column's value is copied to before rendering. */
52
+ export declare function customColumnField(id: string): string;