@orangelogic/design-system 2.142.0 → 2.144.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 (233) hide show
  1. package/library/assets/validation.worker-D3_lxKZ_.js +1 -0
  2. package/library/chunks/{AxisLabelRadial.C4AH2ZWx.js → AxisLabelRadial.BVjTmOAK.js} +1 -1
  3. package/library/chunks/{BaseColumnSeries.BV8sY1Da.js → BaseColumnSeries.CBs_QAAc.js} +1 -1
  4. package/library/chunks/{CandlestickSeries.C8BE8OT-.js → CandlestickSeries.Cx0wpT9T.js} +2 -2
  5. package/library/chunks/{Circle.BaJWdg6Z.js → Circle.CPg-MUlK.js} +1 -1
  6. package/library/chunks/{ColumnSeries.BGUw3nLY.js → ColumnSeries.CGSxIqPG.js} +2 -2
  7. package/library/chunks/{EditableAxisLabel.CsgqEVmA.js → EditableAxisLabel.BE0SAubP.js} +2 -2
  8. package/library/chunks/{EditableLabel.gd9mjKfA.js → EditableLabel.L5NEdtkw.js} +1 -1
  9. package/library/chunks/{Gradient.Sa3COx_2.js → Gradient.oQ6wJQll.js} +1 -1
  10. package/library/chunks/{LinearGradient.BM0pPmvI.js → LinearGradient.CEimwU0Q.js} +2 -2
  11. package/library/chunks/{Picture.DVyGQOmS.js → Picture.BfLKhIYn.js} +1 -1
  12. package/library/chunks/{Polygon.Du2DRvxU.js → Polygon.iNK22k_h.js} +1 -1
  13. package/library/chunks/{ProgressPie.D3FRfVo5.js → ProgressPie.Bcqzaeqx.js} +5 -5
  14. package/library/chunks/{RadialLabel.Dgipjivh.js → RadialLabel.a3toiXax.js} +1 -1
  15. package/library/chunks/{Scrollbar.BDbLJ_xZ.js → Scrollbar.CAoY7xcW.js} +1 -1
  16. package/library/chunks/{Slice.BIXpM75a.js → Slice.DLvisUPP.js} +1 -1
  17. package/library/chunks/{Slider.BZNFS2HS.js → Slider.syeHIyBN.js} +1 -1
  18. package/library/chunks/{SpriteResizer.awVrrc-n.js → SpriteResizer.BDWAslnu.js} +1 -1
  19. package/library/chunks/{Triangle.DW7bUiPK.js → Triangle.adLo6odq.js} +1 -1
  20. package/library/chunks/{ZoomTools.CSBkRpSo.js → ZoomTools.4NFU6RVT.js} +1 -1
  21. package/library/chunks/{_baseIteratee.DpzDid58.js → _baseIteratee.CzjK3VFY.js} +12 -12
  22. package/library/chunks/{_baseUniq.HFKneygy.js → _baseUniq.CoXu-orP.js} +1 -1
  23. package/library/chunks/_baseXor.DRclcoaa.js +116 -0
  24. package/library/chunks/{am-chart.sBfZlJdc.js → am-chart.Bf-o9SaR.js} +252 -252
  25. package/library/chunks/{animation.hpY88RxG.js → animation.BSFdTpqz.js} +1 -1
  26. package/library/chunks/{asset-link-format.Du63EIst.js → asset-link-format.D6XVEha7.js} +12 -12
  27. package/library/chunks/{button.C6-GrLyD.js → button.Bx7AnUu4.js} +4 -4
  28. package/library/chunks/button.styles.svc2lIwC.js +5 -0
  29. package/library/chunks/{capitalize.i-sHIcnm.js → capitalize.DKzUtjlF.js} +1 -1
  30. package/library/chunks/{checkbox.i5dgRvaf.js → checkbox.aQnF4Zc3.js} +2 -2
  31. package/library/chunks/{color-swatch-group.BqJHjmG5.js → color-swatch-group.DORzYTrn.js} +5555 -4103
  32. package/library/chunks/{color-swatch.DimFgBSf.js → color-swatch.Pczcitrc.js} +34 -34
  33. package/library/chunks/{colorPicker.r8zsh6Oj.js → colorPicker.fDJa_Rz5.js} +5 -5
  34. package/library/chunks/{confirm-popover.CTdjw4Mi.js → confirm-popover.DLb5agj9.js} +4 -4
  35. package/library/chunks/{content-builder.BGzxZUgi.js → content-builder.DZRw6hpX.js} +14 -12
  36. package/library/chunks/dialog.B1uHEUsi.js +1820 -0
  37. package/library/chunks/{document-viewer.DQXvmHvo.js → document-viewer.PHoFv8xz.js} +1461 -1415
  38. package/library/chunks/{dot-pagination.CoG0XmAq.js → dot-pagination.171qk-p2.js} +2 -2
  39. package/library/chunks/{endpoints.ASL1clzd.js → endpoints.Bn_YviaU.js} +1 -1
  40. package/library/chunks/{exporting.B3VErmmW.js → exporting.Co0vJIff.js} +2 -2
  41. package/library/chunks/{flow.gWPD-GN_.js → flow.0ah2v6L5.js} +5 -5
  42. package/library/chunks/{folder-select.BudMvcEM.js → folder-select.COFTAu2f.js} +7 -7
  43. package/library/chunks/{gantt.D_6T9w75.js → gantt.CPSE8Grs.js} +8 -8
  44. package/library/chunks/{header.zCbb-t6m.js → header.DP4ZGEwN.js} +35 -35
  45. package/library/chunks/{hierarchy.BeJLXp9N.js → hierarchy.Dlq2MwWz.js} +5 -5
  46. package/library/chunks/{hub-connection.Dri0ZNfh.js → hub-connection.CIUZJBdQ.js} +1 -1
  47. package/library/chunks/{i18n.DeUAP8n2.js → i18n.DYXys45m.js} +17 -3
  48. package/library/chunks/{icon-button.LhIEmHNF.js → icon-button.B0L-_zT9.js} +2 -2
  49. package/library/chunks/{icon.DnBh6-56.js → icon.CsF1BoUl.js} +1 -1
  50. package/library/chunks/{iframe.c0IPEUiJ.js → iframe._3_Z5IJc.js} +7 -7
  51. package/library/chunks/{image.B3vsXGrN.js → image.DVbY2O89.js} +3 -3
  52. package/library/chunks/{index.CnBD7_1u.js → index.q6xCNzcK.js} +17 -17
  53. package/library/chunks/{input.ClJ4MEsk.js → input.CSI9KLz7.js} +3 -3
  54. package/library/chunks/{json.BTCD_bjV.js → json.lgvYjT5K.js} +3 -3
  55. package/library/chunks/{map.HWubaOh9.js → map.Cz4qZnZB.js} +2 -2
  56. package/library/chunks/{option.n6PDuSs1.js → option.BweUpygr.js} +4 -4
  57. package/library/chunks/{pagination.CNeaChqP.js → pagination.CyY982g0.js} +7 -7
  58. package/library/chunks/{percent.0CeOGNP1.js → percent.TSAQO6y8.js} +3 -3
  59. package/library/chunks/{radar.CDUzjkcg.js → radar.mnUjkEJF.js} +4 -4
  60. package/library/chunks/{sliceGrouper.nPe6eWIh.js → sliceGrouper.B9Hml2R8.js} +1 -1
  61. package/library/chunks/{stock.CmWtnkxv.js → stock.CSGPjDQK.js} +9 -9
  62. package/library/chunks/{tab-group.COQGzlw4.js → tab-group.BJImZf-n.js} +4 -4
  63. package/library/chunks/{timeline.DDCHQ84a.js → timeline.CzbNFkA3.js} +5 -5
  64. package/library/chunks/{toString.CAY8lys2.js → toString.bJgZMf_C.js} +1 -1
  65. package/library/chunks/{toast.Bz-j7zP2.js → toast.NfNkPs5d.js} +4 -4
  66. package/library/chunks/{tree.DeIv5gWv.js → tree.CvxvKWUm.js} +176 -159
  67. package/library/chunks/typography.IqHbnd3C.js +52 -0
  68. package/library/chunks/{venn.BZgn9wxo.js → venn.Cq0RJAER.js} +1 -1
  69. package/library/chunks/{watch.CThbualB.js → watch.K-dbDP6P.js} +111 -110
  70. package/library/chunks/{wc.BUEDSaz-.js → wc.Cae1yJ4l.js} +1 -1
  71. package/library/chunks/{xy.Wbux-yPv.js → xy.CseMLD2I.js} +10 -10
  72. package/library/components/alert.js +3 -3
  73. package/library/components/am-chart.js +2 -2
  74. package/library/components/animated-image.js +2 -2
  75. package/library/components/animation.js +2 -2
  76. package/library/components/array-line-clamp.js +1 -1
  77. package/library/components/asset-link-format.js +5 -5
  78. package/library/components/atoms.js +21 -21
  79. package/library/components/audio.js +4 -4
  80. package/library/components/avatar.js +2 -2
  81. package/library/components/border-input-group.js +2 -2
  82. package/library/components/breadcrumb-item.js +1 -1
  83. package/library/components/breadcrumb.js +2 -2
  84. package/library/components/button.js +5 -5
  85. package/library/components/checkbox.js +3 -3
  86. package/library/components/color-picker.js +5 -5
  87. package/library/components/color-swatch-group.js +7 -7
  88. package/library/components/color-swatch.js +4 -4
  89. package/library/components/confirm-popover.js +5 -5
  90. package/library/components/copy-button.js +3 -3
  91. package/library/components/corner-position-input-group.js +3 -3
  92. package/library/components/date-calendar.js +1 -1
  93. package/library/components/details.js +32 -32
  94. package/library/components/dialog.js +5 -6
  95. package/library/components/diff.js +1 -1
  96. package/library/components/divider.js +1 -1
  97. package/library/components/document-viewer.js +5 -5
  98. package/library/components/dot-pagination.js +3 -3
  99. package/library/components/drawer.js +4 -4
  100. package/library/components/dropdown.js +3 -3
  101. package/library/components/dynamic-select.js +7 -7
  102. package/library/components/e-chart.js +2 -2
  103. package/library/components/element-clamp.js +3 -3
  104. package/library/components/file-on-demand.js +1872 -36
  105. package/library/components/folder-select.js +7 -7
  106. package/library/components/format-bytes.js +1 -1
  107. package/library/components/format-date.js +1 -1
  108. package/library/components/format-number.js +1 -1
  109. package/library/components/format-time.js +2 -2
  110. package/library/components/grid-item.js +1 -1
  111. package/library/components/header.js +3 -3
  112. package/library/components/hub-connection.js +2 -2
  113. package/library/components/icon-button.js +3 -3
  114. package/library/components/icon.js +2 -2
  115. package/library/components/iframe.js +3 -3
  116. package/library/components/image-comparer.js +3 -3
  117. package/library/components/image.js +4 -4
  118. package/library/components/include.js +1 -1
  119. package/library/components/input.js +4 -4
  120. package/library/components/line-clamp.js +1 -1
  121. package/library/components/markdown.js +1 -1
  122. package/library/components/masonry.js +3 -3
  123. package/library/components/menu-item.js +3 -3
  124. package/library/components/menu.js +1 -1
  125. package/library/components/molecules.js +3 -3
  126. package/library/components/mutation-observer.js +1 -1
  127. package/library/components/option.js +4 -4
  128. package/library/components/organisms.js +6 -6
  129. package/library/components/padding-input-group.js +1 -1
  130. package/library/components/pagination.js +8 -8
  131. package/library/components/popup.js +1 -1
  132. package/library/components/position-picker.js +1 -1
  133. package/library/components/progress-bar.js +1 -1
  134. package/library/components/progress-ring.js +1 -1
  135. package/library/components/qr-code.js +1 -1
  136. package/library/components/radio-button.js +2 -2
  137. package/library/components/radio-card.js +1 -1
  138. package/library/components/radio-group.js +1 -1
  139. package/library/components/radio.js +2 -2
  140. package/library/components/range.js +2 -2
  141. package/library/components/rating.js +3 -3
  142. package/library/components/relative-time.js +1 -1
  143. package/library/components/resize-observer.js +1 -1
  144. package/library/components/select.js +5 -5
  145. package/library/components/shadow-input-group.js +1 -1
  146. package/library/components/share-option-list.js +4 -4
  147. package/library/components/sidebar.js +3 -3
  148. package/library/components/size-input-group.js +4 -4
  149. package/library/components/spinner.js +1 -1
  150. package/library/components/split-panel.js +2 -2
  151. package/library/components/step.js +1 -1
  152. package/library/components/stepper-wizard.js +1 -1
  153. package/library/components/stepper.js +1 -1
  154. package/library/components/switch.js +2 -2
  155. package/library/components/tab-group.js +5 -5
  156. package/library/components/tab-panel.js +1 -1
  157. package/library/components/tab.js +6 -6
  158. package/library/components/tag.js +2 -2
  159. package/library/components/textarea.js +1 -1
  160. package/library/components/timecode.js +2 -2
  161. package/library/components/tooltip.js +3 -3
  162. package/library/components/tree-item.js +5 -5
  163. package/library/components/tree.js +3 -3
  164. package/library/components/typeface.js +9 -9
  165. package/library/components/types.js +27448 -27787
  166. package/library/components/typography.js +1 -1
  167. package/library/components/video.js +3 -3
  168. package/library/css/ol-base.css +3 -3
  169. package/library/package.json +1 -1
  170. package/library/packages/atoms/src/components/header/header.d.ts +1 -1
  171. package/library/packages/atoms/src/components/tree/tree.d.ts +13 -0
  172. package/library/packages/events/src/cx-board-change.d.ts +12 -0
  173. package/library/packages/events/src/cx-board-selected-change.d.ts +10 -0
  174. package/library/packages/events/src/cx-font-picker-change.d.ts +9 -0
  175. package/library/packages/events/src/cx-multi-select-change.d.ts +11 -0
  176. package/library/packages/events/src/cx-multi-select-configure.d.ts +8 -0
  177. package/library/packages/events/src/cx-table-column-editor-apply.d.ts +8 -0
  178. package/library/packages/events/src/cx-table-column-editor-cancel.d.ts +6 -0
  179. package/library/packages/events/src/cx-table-column-visibility-change.d.ts +9 -0
  180. package/library/packages/events/src/cx-table-columns-change.d.ts +8 -0
  181. package/library/packages/events/src/cx-table-edit-columns.d.ts +8 -0
  182. package/library/packages/events/src/cx-table-header-menu-close.d.ts +6 -0
  183. package/library/packages/events/src/cx-table-header-menu-select.d.ts +11 -0
  184. package/library/packages/events/src/events.d.ts +12 -0
  185. package/library/packages/hybrid/book-reader/src/react/constant.d.ts +1 -0
  186. package/library/packages/hybrid/book-reader/src/react/hooks/useBookEvents.d.ts +1 -1
  187. package/library/packages/hybrid/book-reader/src/react/hooks/useRestoreFocusOnClose.d.ts +8 -0
  188. package/library/packages/hybrid/table-core/src/table/components/index.d.ts +2 -0
  189. package/library/packages/hybrid/table-core/src/table/components/table-column-editor/table-column-editor.d.ts +45 -0
  190. package/library/packages/hybrid/table-core/src/table/components/table-column-editor/table-column-editor.styles.d.ts +2 -0
  191. package/library/packages/hybrid/table-core/src/table/components/table-header-menu/table-header-menu.d.ts +55 -0
  192. package/library/packages/hybrid/table-core/src/table/components/table-header-menu/table-header-menu.styles.d.ts +2 -0
  193. package/library/packages/hybrid/table-core/src/table/controllers/filter-controller.d.ts +10 -0
  194. package/library/packages/hybrid/table-core/src/table/controllers/select-all-controller.d.ts +12 -0
  195. package/library/packages/hybrid/table-core/src/table/table.d.ts +54 -1
  196. package/library/packages/molecules/src/font-picker/font-picker.d.ts +74 -0
  197. package/library/packages/molecules/src/font-picker/font-picker.styles.d.ts +2 -0
  198. package/library/packages/molecules/src/index.d.ts +1 -0
  199. package/library/packages/molecules/src/multi-select/components/board/board.d.ts +39 -14
  200. package/library/packages/molecules/src/multi-select/components/board-list-item/board-list-item.d.ts +1 -10
  201. package/library/packages/molecules/src/multi-select/multi-select.d.ts +7 -15
  202. package/library/packages/organisms/src/content-builder/components/config-form/config-form-controller.d.ts +2 -0
  203. package/library/packages/organisms/src/content-builder/components/config-form/config-form.d.ts +2 -1
  204. package/library/packages/organisms/src/content-builder/components/config-manager/config-manager.d.ts +5 -0
  205. package/library/packages/organisms/src/content-builder/configs/accordion.d.ts +2 -2
  206. package/library/packages/organisms/src/content-builder/configs/button.d.ts +2 -2
  207. package/library/packages/organisms/src/content-builder/configs/color-swatches.d.ts +3 -2
  208. package/library/packages/organisms/src/content-builder/configs/font-kit.d.ts +2 -2
  209. package/library/packages/organisms/src/content-builder/configs/header.d.ts +4 -4
  210. package/library/packages/organisms/src/content-builder/configs/text.d.ts +2 -2
  211. package/library/packages/organisms/src/content-builder/configs-controller.d.ts +4 -2
  212. package/library/packages/organisms/src/content-builder/content-builder.d.ts +6 -0
  213. package/library/packages/organisms/src/content-builder/content-builder.utils.d.ts +26 -0
  214. package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/components/rte-bubble-menu/rte-bubble-menu.d.ts +1 -1
  215. package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/constant.d.ts +2 -2
  216. package/library/packages/organisms/src/content-builder/styleController.d.ts +21 -2
  217. package/library/packages/services/src/api/endpoints.d.ts +1 -0
  218. package/library/packages/services/src/api/teamspace/teamspace.d.ts +2 -0
  219. package/library/packages/types/src/content-builder.d.ts +14 -1
  220. package/library/packages/types/src/font-picker.d.ts +21 -0
  221. package/library/packages/types/src/table-column-editor.d.ts +12 -0
  222. package/library/packages/types/src/table.d.ts +14 -0
  223. package/library/packages/utils/src/custom-element/i18n.d.ts +14 -0
  224. package/library/packages/utils/src/font/font.d.ts +16 -0
  225. package/library/react-web-component.d.ts +71 -5
  226. package/library/utils.js +258 -242
  227. package/package.json +1 -1
  228. package/library/assets/validation.worker-Dc_pkZlD.js +0 -1
  229. package/library/chunks/button.styles.Cz4EELcL.js +0 -5
  230. package/library/chunks/dialog.C79Kd2S4.js +0 -379
  231. package/library/chunks/file-on-demand.Bve3SdQJ.js +0 -1985
  232. package/library/chunks/overlayscrollbars.BMav4RQ4.js +0 -1445
  233. package/library/chunks/typography.DJC_UXgs.js +0 -52
@@ -7,18 +7,6 @@ import { BoardItem } from '../../../../../types/src/board';
7
7
  import { default as Sortable } from 'sortablejs';
8
8
  import { default as CxBoardListItem } from '../board-list-item/board-list-item';
9
9
 
10
- export type CxBoardChangeEvent = CustomEvent<Record<PropertyKey, unknown>>;
11
- export type CxBoardSelectedChangeEvent = CustomEvent<Record<PropertyKey, unknown>>;
12
- export type CxBoardItemAddedEvent = CustomEvent<Record<PropertyKey, unknown>>;
13
- export type CxBoardItemRemovedEvent = CustomEvent<Record<PropertyKey, unknown>>;
14
- declare global {
15
- interface GlobalEventHandlersEventMap {
16
- 'cx-board-change': CxBoardChangeEvent;
17
- 'cx-board-item-added': CxBoardItemAddedEvent;
18
- 'cx-board-item-removed': CxBoardItemRemovedEvent;
19
- 'cx-board-selected-change': CxBoardSelectedChangeEvent;
20
- }
21
- }
22
10
  /**
23
11
  * @summary Board is a list of items that can be reordered by dragging and dropping them.
24
12
  *
@@ -80,12 +68,17 @@ export default class CxBoard extends CortexElement {
80
68
  get selectedCount(): number;
81
69
  get isAllSelected(): boolean;
82
70
  get isPartiallySelected(): boolean;
71
+ /**
72
+ * Rows counted toward "select all" (excludes synthetic group headers, disabled, and
73
+ * ignored-type items). `ignoreTypes` only gates this bulk select-all set — an ignored-type
74
+ * item can still be selected individually via click, keyboard, or shift-range.
75
+ */
76
+ get selectableItems(): BoardItem[];
83
77
  constructor();
84
78
  private resetSelectedItems;
85
79
  /** Handles the update of items in the board. */
86
80
  private handleUpdateEvent;
87
81
  private handleSelectedChange;
88
- private handleItemConfigure;
89
82
  private handleListScroll;
90
83
  private handleSearchChange;
91
84
  private handleSearchClear;
@@ -98,12 +91,44 @@ export default class CxBoard extends CortexElement {
98
91
  handleDefaultSelect(item: CxBoardListItem): void;
99
92
  handleShiftSelect(item: CxBoardListItem): void;
100
93
  handleSelect(evt: MouseEvent): void;
94
+ /**
95
+ * Whether a row is a real, individually-selectable item (not a synthetic group header, not
96
+ * disabled). Deliberately excludes the `ignoreTypes` check — an ignored type only opts an
97
+ * item out of the "select all" bulk set (see `selectableItems`), not out of individual
98
+ * click/keyboard/shift selection.
99
+ */
100
+ private isSelectableItem;
101
+ /**
102
+ * Selects only `boardItem`, deselecting all others (or deselects everything if it was already
103
+ * the sole selection) — the same single-item selection behavior as a plain (non-modifier,
104
+ * non-checkbox) click, reused by the row's `Enter`/`Space` keyboard handler.
105
+ */
106
+ private selectSingleItem;
107
+ private handleItemKeydown;
101
108
  handleStart(evt: Sortable.SortableEvent): void;
102
109
  handleUpdate(evt: Sortable.SortableEvent): void;
110
+ /**
111
+ * Keeps disabled (`readonly`) rows fixed relative to each other when other rows are reordered.
112
+ * `readonly` on `draggable` only stops a disabled row from being dragged itself — Sortable can
113
+ * still drop an enabled row before/between disabled rows, which would indirectly move the
114
+ * disabled item and break the not-movable contract (and the frozen-column prefix). Only allow a
115
+ * drop next to a readonly row when it lands immediately after the last readonly row in a
116
+ * contiguous readonly block; reject every other position touching a readonly row.
117
+ */
118
+ handleMove(evt: Sortable.MoveEvent): boolean | undefined;
103
119
  deselectAll(force?: boolean): void;
104
120
  selectAll(): void;
105
121
  handleSelectAll(): void;
106
- onAllChanged(): void;
122
+ private handleSelectAllKeydown;
123
+ /** Index in `this.items` immediately after the last real (non-header) visible row. */
124
+ private indexAfterLastVisibleRealItem;
125
+ /**
126
+ * Maps a drop position expressed as an index into the (filtered/grouped) visible list to an
127
+ * insertion index within the full `this.items` array. Group headers are skipped forward to the
128
+ * nearest real item; a drop at or past the end resolves to immediately after the last visible
129
+ * real item.
130
+ */
131
+ private resolveRealInsertIndex;
107
132
  private initSortable;
108
133
  /** Initializes the sortable functionality for the list element. */
109
134
  runFirstUpdated(): void;
@@ -5,16 +5,6 @@ import { default as CxTooltip } from '../../../../../atoms/src/components/toolti
5
5
  import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
6
6
  import { TemplateResult } from 'lit';
7
7
 
8
- export type CxMultiSelectConfigureEvent = CustomEvent<Record<PropertyKey, string>>;
9
- export type CxBoardItemLabelClickEvent = CustomEvent<Record<PropertyKey, string>>;
10
- export type CxBoardItemCheckboxClickEvent = CustomEvent<Record<PropertyKey, string>>;
11
- declare global {
12
- interface GlobalEventHandlersEventMap {
13
- 'cx-board-item-checkbox-click': CxBoardItemCheckboxClickEvent;
14
- 'cx-board-item-label-click': CxBoardItemLabelClickEvent;
15
- 'cx-multi-select-configure': CxMultiSelectConfigureEvent;
16
- }
17
- }
18
8
  export default class CxBoardListItem extends CortexElement {
19
9
  static readonly styles: import('lit').CSSResult[];
20
10
  static readonly dependencies: {
@@ -23,6 +13,7 @@ export default class CxBoardListItem extends CortexElement {
23
13
  'cx-line-clamp': typeof CxLineClamp;
24
14
  'cx-tooltip': typeof CxTooltip;
25
15
  };
16
+ private readonly localize;
26
17
  configButton: CxIconButton;
27
18
  textElement: HTMLElement;
28
19
  tooltipElement: CxTooltip;
@@ -2,20 +2,14 @@ import { default as CxIconButton } from '../../../atoms/src/components/icon-butt
2
2
  import { default as CxTooltip } from '../../../atoms/src/components/tooltip/tooltip.ts';
3
3
  import { default as CortexElement } from '../../../base/src/cortex-element.ts';
4
4
  import { ColumnData } from '../../../types/src/multi-select';
5
- import { TemplateResult } from 'lit';
5
+ import { PropertyValues, TemplateResult } from 'lit';
6
6
  import { default as CxBoard } from './components/board/board';
7
7
 
8
- export type CxMultiSelectChangeEvent = CustomEvent<Record<PropertyKey, never>>;
9
- declare global {
10
- interface GlobalEventHandlersEventMap {
11
- 'cx-multi-select-change': CxMultiSelectChangeEvent;
12
- }
13
- }
14
8
  /**
15
9
  * @summary Multi-select allows the user to select multiple items from a list. The items can be moved between two columns. The user can move items between the columns by dragging and dropping them.
16
10
  * @element cx-multi-select
17
11
  *
18
- * @event {{ items: BoardItem[], name: string }} cx-multi-select-change - Emitted when the list items change.
12
+ * @event {{ id: string; items: BoardItem[] }} cx-multi-select-change - Emitted when the list items change.
19
13
  *
20
14
  * @typedef BoardItem - {
21
15
  * group: string;
@@ -51,6 +45,9 @@ export default class CxMultiSelect extends CortexElement {
51
45
  private itemMap;
52
46
  selectedItems: Record<string, string[]>;
53
47
  private initialSecondColumnItems;
48
+ private hasCapturedSecondColumnBaseline;
49
+ private board1Data;
50
+ private board2Data;
54
51
  get firstColumnItemIds(): string[];
55
52
  get secondColumnItemIds(): string[];
56
53
  /**
@@ -69,17 +66,12 @@ export default class CxMultiSelect extends CortexElement {
69
66
  private handleMoveItems;
70
67
  private handleMoveItemsRight;
71
68
  private handleMoveItemsLeft;
72
- onDataChange(): void;
73
- runFirstUpdated(): void;
74
- private moveSelectedItemRight;
75
- private moveSelectedItemLeft;
69
+ onSecondColumnDataChange(): void;
70
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
76
71
  render(): TemplateResult;
77
72
  }
78
73
  declare global {
79
74
  interface HTMLElementTagNameMap {
80
75
  'cx-multi-select': CxMultiSelect;
81
76
  }
82
- interface GlobalEventHandlersEventMap {
83
- 'cx-multi-select-change': CxMultiSelectChangeEvent;
84
- }
85
77
  }
@@ -8,6 +8,8 @@ export declare class ConfigFormController implements ReactiveController {
8
8
  private readonly localize;
9
9
  private apiSearchAssets;
10
10
  private readonly pendingGalleryPickerSaves;
11
+ private readonly fontFamiliesCache;
12
+ private readonly pendingFontFamilyFetches;
11
13
  constructor(host: ReactiveControllerHost & CxConfigForm);
12
14
  hostConnected(): void;
13
15
  /**
@@ -27,7 +27,7 @@ import { default as CxTooltip } from '../../../../../atoms/src/components/toolti
27
27
  import { default as CxTypography } from '../../../../../atoms/src/components/typography/typography.ts';
28
28
  import { default as CxVisuallyHidden } from '../../../../../atoms/src/components/visually-hidden/visually-hidden.ts';
29
29
  import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
30
- import { CxIconPicker } from '../../../../../molecules/src/index.ts';
30
+ import { CxFontPicker, CxIconPicker } from '../../../../../molecules/src/index.ts';
31
31
  import { default as CxAssetFormatPicker } from '../../../../../molecules/src/asset-format-picker/asset-format-picker.ts';
32
32
  import { default as CxAssetPicker } from '../../../../../molecules/src/asset-picker/asset-picker.ts';
33
33
  import { default as CxBicolorPicker } from '../../../../../molecules/src/bicolor-picker/bicolor-picker.ts';
@@ -97,6 +97,7 @@ export default class CxConfigForm extends CortexElement {
97
97
  'cx-dropdown': typeof CxDropdown;
98
98
  'cx-dynamic-select': typeof CxDynamicSelect;
99
99
  'cx-folder-picker': typeof CxFolderPicker;
100
+ 'cx-font-picker': typeof CxFontPicker;
100
101
  'cx-gallery-picker': typeof CxGalleryPicker;
101
102
  'cx-grid': typeof CxGrid;
102
103
  'cx-grid-item': typeof CxGridItem;
@@ -61,6 +61,11 @@ export default class CxConfigManager extends CortexElement {
61
61
  * @default false
62
62
  */
63
63
  enableAssetFormatControls: boolean;
64
+ /**
65
+ * Exposes the font family / style / weight pickers in the block config sidebar.
66
+ * @default false
67
+ */
68
+ enableFontFamilyControls: boolean;
64
69
  /**
65
70
  * Root folder ids the folder-picker controls are restricted to (forwarded to
66
71
  * cx-config-form). Sourced from the space's configured root folders.
@@ -1,4 +1,4 @@
1
- import { PropertyConfig } from '../../../../types/src/content-builder';
1
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
2
2
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
3
3
 
4
4
  type Attributes = {
@@ -8,7 +8,7 @@ type Attributes = {
8
8
  'multi-language': boolean;
9
9
  };
10
10
  declare const _default: {
11
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attributes>>;
11
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attributes>>;
12
12
  defaultValue: Attributes;
13
13
  stylable: string[];
14
14
  };
@@ -1,5 +1,5 @@
1
1
  import { ButtonSize, ButtonWidthType } from '../../../../types/src/button';
2
- import { PropertyConfig } from '../../../../types/src/content-builder';
2
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
3
3
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
4
4
  import { default as CxSbButton } from '../blocks/button/button';
5
5
 
@@ -29,7 +29,7 @@ type Attributes = {
29
29
  'width-type': ButtonWidthType;
30
30
  };
31
31
  declare const _default: {
32
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attributes>>;
32
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attributes>>;
33
33
  defaultValue: Partial<Attributes>;
34
34
  stylable: string[];
35
35
  };
@@ -1,9 +1,10 @@
1
1
  import { CxColorSwatchGroupVariant } from '../../../../types/src/color-swatch-group';
2
- import { PropertyConfig } from '../../../../types/src/content-builder';
2
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
3
3
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
4
4
 
5
5
  type Attribute = {
6
6
  'can-copy': boolean;
7
+ 'can-custom-shadow-and-border-radius': boolean;
7
8
  data: string;
8
9
  'max-col': string;
9
10
  'multi-language': boolean;
@@ -11,7 +12,7 @@ type Attribute = {
11
12
  variant: CxColorSwatchGroupVariant;
12
13
  };
13
14
  declare const _default: {
14
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attribute>>;
15
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attribute>>;
15
16
  defaultValue: Attribute;
16
17
  stylable: string[];
17
18
  };
@@ -1,4 +1,4 @@
1
- import { PropertyConfig } from '../../../../types/src/content-builder';
1
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
2
2
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
3
3
  import { default as CxFontKit } from '../blocks/font-kit/font-kit';
4
4
 
@@ -19,7 +19,7 @@ type Attributes = {
19
19
  variant: CxFontKit['variant'];
20
20
  };
21
21
  declare const _default: {
22
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attributes>>;
22
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attributes>>;
23
23
  defaultValue: Partial<Attributes>;
24
24
  stylable: string[];
25
25
  };
@@ -1,4 +1,4 @@
1
- import { PropertyConfig } from '../../../../types/src/content-builder';
1
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
2
2
  import { Alignment, Variant } from '../../../../types/src/header';
3
3
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
4
4
 
@@ -7,13 +7,13 @@ type Attribute = {
7
7
  'custom-line-height': boolean;
8
8
  'data-constraints': boolean;
9
9
  'disabled-copy-button': boolean;
10
- 'font-size'?: string;
10
+ 'font-size': string;
11
11
  'has-anchor-link': boolean;
12
- role?: string;
12
+ role: string;
13
13
  variant: Variant;
14
14
  };
15
15
  declare const _default: {
16
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attribute>>;
16
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attribute>>;
17
17
  defaultValue: Attribute;
18
18
  stylable: string[];
19
19
  };
@@ -1,11 +1,11 @@
1
- import { PropertyConfig } from '../../../../types/src/content-builder';
1
+ import { ConfigsOptions, PropertyConfig } from '../../../../types/src/content-builder';
2
2
  import { LocalizeController } from '../../../../utils/src/custom-element/i18n';
3
3
 
4
4
  type Attribute = {
5
5
  'data-constraints': boolean;
6
6
  };
7
7
  declare const _default: {
8
- configs: (localize: LocalizeController) => Array<PropertyConfig<Attribute>>;
8
+ configs: (localize: LocalizeController, options?: ConfigsOptions) => Array<PropertyConfig<Attribute>>;
9
9
  defaultValue: Attribute;
10
10
  stylable: string[];
11
11
  };
@@ -86,6 +86,7 @@ export default class ConfigsController {
86
86
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
87
87
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
88
88
  'can-copy': boolean;
89
+ 'can-custom-shadow-and-border-radius': boolean;
89
90
  data: string;
90
91
  'max-col': string;
91
92
  'multi-language': boolean;
@@ -225,9 +226,9 @@ export default class ConfigsController {
225
226
  'custom-line-height': boolean;
226
227
  'data-constraints': boolean;
227
228
  'disabled-copy-button': boolean;
228
- 'font-size'?: string;
229
+ 'font-size': string;
229
230
  'has-anchor-link': boolean;
230
- role?: string;
231
+ role: string;
231
232
  variant: import('../../../types/src/header').Variant;
232
233
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
233
234
  name: string;
@@ -426,6 +427,7 @@ export default class ConfigsController {
426
427
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
427
428
  }> | {
428
429
  'can-copy': boolean;
430
+ 'can-custom-shadow-and-border-radius': boolean;
429
431
  data: string;
430
432
  'max-col': string;
431
433
  'multi-language': boolean;
@@ -105,6 +105,12 @@ export default class CxContentBuilder extends CortexElement {
105
105
  * @default false
106
106
  */
107
107
  enableAssetFormatControls: boolean;
108
+ /**
109
+ * Set `enable-font-family-controls` to expose the font family / style / weight
110
+ * pickers (and their font-size controls) in the block config sidebar.
111
+ * @default false
112
+ */
113
+ enableFontFamilyControls: boolean;
108
114
  /**
109
115
  * Root folder ids that the folder-picker controls in the block config are
110
116
  * restricted to.
@@ -1,5 +1,31 @@
1
1
  import { BlockType, PropertyConfig } from '../../../types/src/content-builder';
2
+ import { FontTypeface } from '../../../types/src/font-picker';
2
3
 
4
+ export type FontPickerKeys = {
5
+ familyKey: string;
6
+ styleKey: string;
7
+ weightKey?: string;
8
+ };
9
+ type FontPickerStoredValues = {
10
+ family: string;
11
+ style: string;
12
+ weight: string;
13
+ };
3
14
  export declare function getTemplateClass(templateId: string): string;
4
15
  export declare function getContentConfigs(traits: PropertyConfig[], adHocProperties: string[]): string[];
5
16
  export declare function getLimitedBlocks(blockType: BlockType): BlockType[];
17
+ export declare function getFontPickerControlValues({ blockAttributes, keys, typefaces, }: {
18
+ blockAttributes: Record<string, unknown>;
19
+ keys: FontPickerKeys;
20
+ typefaces: FontTypeface[];
21
+ }): {
22
+ familyValue: string;
23
+ styleValue: string;
24
+ };
25
+ export declare function getFontPickerAttributeValues({ clearDefaultFamily, familyValue, styleValue, typefaces, }: {
26
+ clearDefaultFamily?: boolean;
27
+ familyValue: string;
28
+ styleValue: string;
29
+ typefaces: FontTypeface[];
30
+ }): FontPickerStoredValues;
31
+ export {};
@@ -161,7 +161,7 @@ export default class CxRTEBubbleMenu extends CortexElement {
161
161
  depth: number;
162
162
  node: import('prosemirror-model').Node;
163
163
  } | null | undefined;
164
- renderIconButton(icon: string, label?: string, onClick?: () => void, isActive?: () => boolean | undefined, isDisabled?: () => boolean | undefined, useIconScr?: boolean): TemplateResult<1>;
164
+ renderIconButton(icon: string, label?: string, onClick?: () => void, isActive?: () => boolean | undefined, isDisabled?: () => boolean | undefined, useIconScr?: boolean, buttonClass?: string): TemplateResult<1>;
165
165
  renderDropdown(value: string, tooltip: string, options: string[] | Array<{
166
166
  label: string;
167
167
  renderer?: TemplateResult;
@@ -36,8 +36,8 @@ export declare const TABLE_BUBBLE_STRUCTURE_ICONS: {
36
36
  readonly addColumnBefore: "add_column_left";
37
37
  readonly addRowAfter: "add_row_below";
38
38
  readonly addRowBefore: "add_row_above";
39
- readonly deleteColumn: "vertical_split";
40
- readonly deleteRow: "horizontal_split";
39
+ readonly deleteColumn: "variable_remove";
40
+ readonly deleteRow: "variable_remove";
41
41
  readonly deleteTable: "grid_off";
42
42
  readonly tableProperties: "border_all";
43
43
  };
@@ -1,3 +1,5 @@
1
+ import { PropertyConfig } from '../../../types/src/content-builder';
2
+ import { FontTypeface } from '../../../types/src/font-picker';
1
3
  import { LocalizeController } from '../../../utils/src/custom-element/i18n';
2
4
  import { STYLE_CONTROL } from './content-builder-constants';
3
5
 
@@ -70,9 +72,9 @@ export default class StyleController {
70
72
  value: unknown;
71
73
  }) => Record<string, any>) | undefined;
72
74
  checkedValue?: string | boolean;
73
- children?: import('../../../types/src/content-builder').PropertyConfig[];
75
+ children?: PropertyConfig[];
74
76
  clearable?: boolean;
75
- controlType: "asset-transformation" | "bicolor-picker" | "border-input-group" | "button-group" | "checkbox" | "checkbox-group" | "color-swatch-picker" | "corner-position-input-group" | "dam-custom-toolbar-buttons" | "download-format-picker" | "file" | "folder-picker" | "gallery-picker" | "group" | "group-heading" | "icon-picker" | "image-picker" | "info-text" | "input" | "list-editor" | "all-picker" | "other-picker" | "padding-input-group" | "page-picker" | "placeholder" | "position-picker" | "radio-card-group" | "radio-group" | "select" | "shadow-input-group" | "size-input-group" | "switch" | "table" | "text" | "audio-picker" | "asset-format-picker" | "video-picker";
77
+ controlType: "asset-transformation" | "bicolor-picker" | "border-input-group" | "button-group" | "checkbox" | "checkbox-group" | "color-swatch-picker" | "corner-position-input-group" | "dam-custom-toolbar-buttons" | "download-format-picker" | "file" | "folder-picker" | "gallery-picker" | "group" | "group-heading" | "icon-picker" | "image-picker" | "info-text" | "input" | "list-editor" | "all-picker" | "other-picker" | "padding-input-group" | "page-picker" | "placeholder" | "position-picker" | "radio-card-group" | "radio-group" | "select" | "shadow-input-group" | "size-input-group" | "switch" | "table" | "text" | "audio-picker" | "asset-format-picker" | "font-picker" | "video-picker";
76
78
  cornerStyleKey?: {
77
79
  offsetX: string;
78
80
  offsetY: string;
@@ -91,6 +93,12 @@ export default class StyleController {
91
93
  useFullPath?: boolean;
92
94
  variant?: import('../../../types/src/folder-select').FolderSelectVariant;
93
95
  };
96
+ fontPickerConfigs?: {
97
+ api: () => Promise<FontTypeface[]>;
98
+ familyKey: string;
99
+ styleKey: string;
100
+ weightKey?: string;
101
+ };
94
102
  galleryPickerConfigs?: {
95
103
  dialog: import('../../../types/src/content-builder').DialogType;
96
104
  formatKey?: string;
@@ -159,4 +167,15 @@ export default class StyleController {
159
167
  useSearchTerm?: boolean;
160
168
  width?: ((record: Record<string, unknown>) => string | number) | string | number;
161
169
  };
170
+ /**
171
+ * Builds the controls for a font picker.
172
+ */
173
+ getFontPickerControls<T = Record<string, any>>({ api, familyKey, styleKey, type, weightKey, ...control }: Omit<Partial<PropertyConfig<T>>, 'api' | 'controlType' | 'fontPickerConfigs'> & {
174
+ api: () => Promise<FontTypeface[]>;
175
+ familyKey: string;
176
+ id: string;
177
+ name: string;
178
+ styleKey: string;
179
+ weightKey?: string;
180
+ }): Array<PropertyConfig<T>>;
162
181
  }
@@ -3,6 +3,7 @@ export declare const AVAILABLE_PROXIES_API_ENDPOINT = "webapi/extensibility/inte
3
3
  export declare const ALL_FORMAT_CODES_API_ENDPOINT = "webapi/extensibility/integrations/gab/assetbrowser/getallformatcodes_428H";
4
4
  export declare const IMAGE_PASTE_FOLDER_API_ENDPOINT = "webapi/objectmanagement/singleobjecttools/profile/getimagepastefolder_42JL";
5
5
  export declare enum TEAMSPACE_API_ENDPOINT {
6
+ GET_FONT_FAMILIES = "webapi/objectmanagement/teamspaces/getfontfamilies_42L7_v1",
6
7
  GET_PAGES_AND_LINKS = "webapi/objectmanagement/teamspaces/pagesandlinks_412Y_v1",
7
8
  GET_SPACE_FONT_FAMILY = "webapi/objectmanagement/teamspaces/getspacefonts_41I6_v1",
8
9
  GET_SPACE_LIST = "webapi/objectmanagement/teamspaces/getteamspaces_41I3_v1",
@@ -1,8 +1,10 @@
1
1
  import { TeamSpace, TeamSpaceFontFamily } from '../../../../types/src/content-builder';
2
+ import { FontTypeface } from '../../../../types/src/font-picker';
2
3
  import { GetPagesAndLinksResponse, GetUserRoleResponse } from './teamspace.types';
3
4
 
4
5
  export declare function apiGetTeamSpaceRoles(): Promise<GetUserRoleResponse>;
5
6
  export declare function apiGetTeamSpaceFontFamily(): Promise<TeamSpaceFontFamily | undefined>;
7
+ export declare function apiGetFontFamilies(): Promise<FontTypeface[]>;
6
8
  export declare function apiGetTeamSpaceSpaceList({ searchTerm, }: {
7
9
  searchTerm?: string;
8
10
  }): Promise<TeamSpace[]>;
@@ -3,8 +3,10 @@ import { TemplateResult } from 'lit';
3
3
  import { StyleInfo } from 'lit/directives/style-map';
4
4
  import { DownloadDocType } from './download-format-picker';
5
5
  import { FolderSelectApi, FolderSelectVariant } from './folder-select';
6
+ import { FontTypeface } from './font-picker';
6
7
  import { TableSelectColumn } from './table-select';
7
8
 
9
+ export declare const SPACE_DEFAULT_FONT_FAMILY = "space-default";
8
10
  export declare enum DeviceType {
9
11
  Desktop = "desktop",
10
12
  Mobile = "mobile",
@@ -78,7 +80,7 @@ export type PropertyConfig<T = Record<string, any>> = Omit<TraitProperties, 'opt
78
80
  checkedValue?: string | boolean;
79
81
  children?: PropertyConfig[];
80
82
  clearable?: boolean;
81
- controlType: 'asset-transformation' | 'bicolor-picker' | 'border-input-group' | 'button-group' | 'checkbox' | 'checkbox-group' | 'color-swatch-picker' | 'corner-position-input-group' | 'dam-custom-toolbar-buttons' | 'download-format-picker' | 'file' | 'folder-picker' | 'gallery-picker' | 'group' | 'group-heading' | 'icon-picker' | 'image-picker' | 'info-text' | 'input' | 'list-editor' | 'all-picker' | 'other-picker' | 'padding-input-group' | 'page-picker' | 'placeholder' | 'position-picker' | 'radio-card-group' | 'radio-group' | 'select' | 'shadow-input-group' | 'size-input-group' | 'switch' | 'table' | 'text' | 'audio-picker' | 'asset-format-picker' | 'video-picker';
83
+ controlType: 'asset-transformation' | 'bicolor-picker' | 'border-input-group' | 'button-group' | 'checkbox' | 'checkbox-group' | 'color-swatch-picker' | 'corner-position-input-group' | 'dam-custom-toolbar-buttons' | 'download-format-picker' | 'file' | 'folder-picker' | 'gallery-picker' | 'group' | 'group-heading' | 'icon-picker' | 'image-picker' | 'info-text' | 'input' | 'list-editor' | 'all-picker' | 'other-picker' | 'padding-input-group' | 'page-picker' | 'placeholder' | 'position-picker' | 'radio-card-group' | 'radio-group' | 'select' | 'shadow-input-group' | 'size-input-group' | 'switch' | 'table' | 'text' | 'audio-picker' | 'asset-format-picker' | 'font-picker' | 'video-picker';
82
84
  cornerStyleKey?: {
83
85
  offsetX: string;
84
86
  offsetY: string;
@@ -97,6 +99,16 @@ export type PropertyConfig<T = Record<string, any>> = Omit<TraitProperties, 'opt
97
99
  useFullPath?: boolean;
98
100
  variant?: FolderSelectVariant;
99
101
  };
102
+ fontPickerConfigs?: {
103
+ /** Callback to fetch the available font families. */
104
+ api: () => Promise<FontTypeface[]>;
105
+ /** Block-attribute key that stores the selected font family value. */
106
+ familyKey: string;
107
+ /** Block-attribute key that stores the selected font style value. */
108
+ styleKey: string;
109
+ /** Block-attribute key that stores the selected font weight value. */
110
+ weightKey?: string;
111
+ };
100
112
  galleryPickerConfigs?: {
101
113
  dialog: DialogType;
102
114
  /** The block-attribute key for the format used to resolve records' src URLs after picking. */
@@ -333,4 +345,5 @@ export declare enum DataSourceId {
333
345
  }
334
346
  export type ConfigsOptions = {
335
347
  enableAssetFormatControls?: boolean;
348
+ enableFontFamilyControls?: boolean;
336
349
  };
@@ -0,0 +1,21 @@
1
+ export declare enum FontPickerLayout {
2
+ Labeled = "labeled",
3
+ Stacked = "stacked"
4
+ }
5
+ export interface FontFamily {
6
+ fontStyle?: string;
7
+ fontWeight?: number;
8
+ name: string;
9
+ /** CSS font-family value applied when this family is selected. Derived from name if omitted. */
10
+ value?: string;
11
+ }
12
+ export interface FontTypeface {
13
+ families: FontFamily[];
14
+ typeface: string;
15
+ /** CSS-safe identifier with no spaces. Derived from typeface if omitted. */
16
+ value?: string;
17
+ }
18
+ export interface FontTypefaceGroup {
19
+ label: string;
20
+ typefaces: FontTypeface[];
21
+ }
@@ -0,0 +1,12 @@
1
+ /** One column presented in the "Edit columns" bulk editor, in current render order. */
2
+ export interface TableColumnEditorEntry {
3
+ field: string;
4
+ frozen: boolean;
5
+ title: string;
6
+ visible: boolean;
7
+ }
8
+ /** Board identifiers used by the two-list column editor's cx-multi-select. */
9
+ export declare enum TableColumnEditorBoardId {
10
+ Available = "available",
11
+ Visible = "visible"
12
+ }
@@ -50,6 +50,11 @@ export declare enum TableDataFormat {
50
50
  Json = "json",
51
51
  Xml = "xml"
52
52
  }
53
+ /** Actions offered by the column-header right-click context menu. */
54
+ export declare enum TableHeaderMenuAction {
55
+ EditColumns = "edit-columns",
56
+ HideColumn = "hide-column"
57
+ }
53
58
  /**
54
59
  * Tabulator Interface
55
60
  */
@@ -2656,10 +2661,19 @@ export interface StringValidatorParameters {
2656
2661
  /**
2657
2662
  * Range constraints accepted by the `date` validator. `starts` / `ends` are
2658
2663
  * inclusive bounds as ISO date strings (or anything `Date.parse` understands).
2664
+ *
2665
+ * `format` additionally requires the input string to match a specific date
2666
+ * shape before it is parsed, using token placeholders: `YYYY` (4-digit year),
2667
+ * `MM` (2-digit month), `DD` (2-digit day), `HH` (2-digit hour, 24h), `mm`
2668
+ * (2-digit minute), `ss` (2-digit second). Any other character in `format`
2669
+ * (e.g. `/`, `-`, `.`, ` `) is treated as a literal separator. Example:
2670
+ * `'MM/DD/YYYY'` accepts `'02/29/2024'` but rejects `'2024-02-29'` or
2671
+ * `'13/01/2024'` (invalid month).
2659
2672
  */
2660
2673
  export interface DateValidatorParameters {
2661
2674
  starts?: string;
2662
2675
  ends?: string;
2676
+ format?: string;
2663
2677
  }
2664
2678
  export interface Validator {
2665
2679
  type: StandardValidatorType | ((cell: ICellComponent, value: any, parameters?: any) => boolean);