@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
@@ -1,6 +1,6 @@
1
1
  import "../chunks/lib-cortex-element.CVMmyPMC.js";
2
2
  import "../chunks/component.styles.CRO4Odto.js";
3
- import { C as a } from "../chunks/typography.DJC_UXgs.js";
3
+ import { C as a } from "../chunks/typography.IqHbnd3C.js";
4
4
  import "../chunks/custom-element.L4WJXn1j.js";
5
5
  import "../chunks/lit-element.jLBm65_O.js";
6
6
  export {
@@ -1,14 +1,14 @@
1
1
  import { _ as kd, 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.B3vsXGrN.js";
4
+ import { C as Cb } from "../chunks/image.DVbY2O89.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.CAfXABBc.js";
7
7
  import { c as Rb } from "../chunks/component.styles.CRO4Odto.js";
8
8
  import { b as Ib } from "../chunks/browser.BHOCIF_A.js";
9
9
  import { c as Ob } from "../chunks/custom-element.L4WJXn1j.js";
10
- import { L as kb } from "../chunks/i18n.DeUAP8n2.js";
11
- import { w as Ki } from "../chunks/watch.CThbualB.js";
10
+ import { L as kb } from "../chunks/i18n.DYXys45m.js";
11
+ import { w as Ki } from "../chunks/watch.K-dbDP6P.js";
12
12
  import { i as Bb, x as Qc } from "../chunks/lit-element.jLBm65_O.js";
13
13
  import { n as Ri } from "../chunks/lib-cortex-element.CVMmyPMC.js";
14
14
  import { r as yn } from "../chunks/state.CSDxrqLd.js";
@@ -82,9 +82,9 @@
82
82
  */
83
83
 
84
84
  /* Buttons */
85
- --cx-button-border-radius-large : var(--cx-border-radius-medium);
86
- --cx-button-border-radius-medium : var(--cx-border-radius-medium);
87
- --cx-button-border-radius-small : var(--cx-border-radius-medium);
85
+ --cx-button-border-radius-large : var(--cx-border-radius-large);
86
+ --cx-button-border-radius-medium : var(--cx-border-radius-large);
87
+ --cx-button-border-radius-small : var(--cx-border-radius-large);
88
88
  --cx-button-font-size-large : var(--cx-font-size-medium);
89
89
  --cx-button-font-size-medium : var(--cx-font-size-small);
90
90
  --cx-button-font-size-small : var(--cx-font-size-x-small);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.142.0",
4
+ "version": "2.144.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -71,7 +71,7 @@ export default class CxHeader extends CortexElement {
71
71
  addSlotElement(): void;
72
72
  handleHeadingChange(): void;
73
73
  private handleCopyButtonClick;
74
- renderHeading(content: TemplateResult): TemplateResult;
74
+ renderHeading(): TemplateResult;
75
75
  render(): TemplateResult;
76
76
  }
77
77
  declare global {
@@ -114,6 +114,19 @@ export default class CxTree extends CortexElement {
114
114
  private handleKeyDown;
115
115
  private handleClick;
116
116
  handleMouseDown(event: MouseEvent): void;
117
+ /**
118
+ * A `mousedown` whose real, non-retargeted origin (`composedPath()[0]`) is
119
+ * the tree host itself is only reachable by clicking the host's own
120
+ * scrollbar/gutter — shadow content otherwise fills the box, so a content
121
+ * click's real origin is always a descendant. The browser's default action
122
+ * for that mousedown focuses the host, and since the host is itself the
123
+ * scrollable element (`overflow: auto`), focusing it resets its own
124
+ * scrollTop natively — before any of our JS runs, so `preventScroll` on a
125
+ * later `this.focusItem(...)` call can't undo it. Cancel that default
126
+ * action outright; it doesn't affect the scrollbar's own drag/track
127
+ * behavior, only whether the mousedown also focuses the element.
128
+ */
129
+ private handleHostMouseDown;
117
130
  private handleFocusOut;
118
131
  private handleFocusIn;
119
132
  private expandToItem;
@@ -0,0 +1,12 @@
1
+ export type CxBoardChangeEvent = CustomEvent<{
2
+ id: string;
3
+ isMultiDrag?: boolean;
4
+ items: string[];
5
+ newIndex?: number;
6
+ type: string;
7
+ }>;
8
+ declare global {
9
+ interface GlobalEventHandlersEventMap {
10
+ 'cx-board-change': CxBoardChangeEvent;
11
+ }
12
+ }
@@ -0,0 +1,10 @@
1
+ export type CxBoardSelectedChangeEvent = CustomEvent<{
2
+ id: string;
3
+ items: string[];
4
+ type?: string;
5
+ }>;
6
+ declare global {
7
+ interface GlobalEventHandlersEventMap {
8
+ 'cx-board-selected-change': CxBoardSelectedChangeEvent;
9
+ }
10
+ }
@@ -0,0 +1,9 @@
1
+ export type CxFontPickerChangeEvent = CustomEvent<{
2
+ family: string;
3
+ style: string;
4
+ }>;
5
+ declare global {
6
+ interface GlobalEventHandlersEventMap {
7
+ 'cx-font-picker-change': CxFontPickerChangeEvent;
8
+ }
9
+ }
@@ -0,0 +1,11 @@
1
+ import { BoardItem } from '../../types/src/board';
2
+
3
+ export type CxMultiSelectChangeEvent = CustomEvent<{
4
+ id: string;
5
+ items: BoardItem[];
6
+ }>;
7
+ declare global {
8
+ interface GlobalEventHandlersEventMap {
9
+ 'cx-multi-select-change': CxMultiSelectChangeEvent;
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ export type CxMultiSelectConfigureEvent = CustomEvent<{
2
+ id: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ 'cx-multi-select-configure': CxMultiSelectConfigureEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type CxTableColumnEditorApplyEvent = CustomEvent<{
2
+ visibleFields: string[];
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ 'cx-table-column-editor-apply': CxTableColumnEditorApplyEvent;
7
+ }
8
+ }
@@ -0,0 +1,6 @@
1
+ export type CxTableColumnEditorCancelEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ 'cx-table-column-editor-cancel': CxTableColumnEditorCancelEvent;
5
+ }
6
+ }
@@ -0,0 +1,9 @@
1
+ export type CxTableColumnVisibilityChangeEvent = CustomEvent<{
2
+ field: string;
3
+ visible: boolean;
4
+ }>;
5
+ declare global {
6
+ interface GlobalEventHandlersEventMap {
7
+ 'cx-table-column-visibility-change': CxTableColumnVisibilityChangeEvent;
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ export type CxTableColumnsChangeEvent = CustomEvent<{
2
+ visibleFields: string[];
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ 'cx-table-columns-change': CxTableColumnsChangeEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type CxTableEditColumnsEvent = CustomEvent<{
2
+ field: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ 'cx-table-edit-columns': CxTableEditColumnsEvent;
7
+ }
8
+ }
@@ -0,0 +1,6 @@
1
+ export type CxTableHeaderMenuCloseEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ 'cx-table-header-menu-close': CxTableHeaderMenuCloseEvent;
5
+ }
6
+ }
@@ -0,0 +1,11 @@
1
+ import { TableHeaderMenuAction } from '../../types/src/table';
2
+
3
+ export type CxTableHeaderMenuSelectEvent = CustomEvent<{
4
+ action: TableHeaderMenuAction;
5
+ field: string;
6
+ }>;
7
+ declare global {
8
+ interface GlobalEventHandlersEventMap {
9
+ 'cx-table-header-menu-select': CxTableHeaderMenuSelectEvent;
10
+ }
11
+ }
@@ -23,6 +23,8 @@ export * from './cx-bento-range-change';
23
23
  export * from './cx-bento-resize';
24
24
  export * from './cx-bicolor-picker-change';
25
25
  export * from './cx-blur';
26
+ export * from './cx-board-change';
27
+ export * from './cx-board-selected-change';
26
28
  export * from './cx-book-reader-event';
27
29
  export * from './cx-border-input-group-change';
28
30
  export * from './cx-cancel';
@@ -83,6 +85,7 @@ export * from './cx-focus';
83
85
  export * from './cx-folder-select-children-loaded';
84
86
  export * from './cx-folder-select-search-term-change';
85
87
  export * from './cx-folder-select-selection-seeded';
88
+ export * from './cx-font-picker-change';
86
89
  export * from './cx-gallery-chunk-request';
87
90
  export * from './cx-gallery-config-save';
88
91
  export * from './cx-gallery-item-click';
@@ -122,6 +125,8 @@ export * from './cx-marker-create';
122
125
  export * from './cx-marker-delete';
123
126
  export * from './cx-masonry-select';
124
127
  export * from './cx-mount-request-asset';
128
+ export * from './cx-multi-select-change';
129
+ export * from './cx-multi-select-configure';
125
130
  export * from './cx-mutation';
126
131
  export * from './cx-open-cache-location';
127
132
  export * from './cx-open-drive';
@@ -189,10 +194,17 @@ export * from './cx-swatch-add';
189
194
  export * from './cx-tab-hide';
190
195
  export * from './cx-tab-show';
191
196
  export * from './cx-table-advanced-search-click';
197
+ export * from './cx-table-column-editor-apply';
198
+ export * from './cx-table-column-editor-cancel';
199
+ export * from './cx-table-column-visibility-change';
200
+ export * from './cx-table-columns-change';
192
201
  export * from './cx-table-data-load';
193
202
  export * from './cx-table-dropdown-filter-change';
203
+ export * from './cx-table-edit-columns';
194
204
  export * from './cx-table-export';
195
205
  export * from './cx-table-group-by-change';
206
+ export * from './cx-table-header-menu-close';
207
+ export * from './cx-table-header-menu-select';
196
208
  export * from './cx-table-row-action-click';
197
209
  export * from './cx-table-save-search-select';
198
210
  export * from './cx-table-select-all-change';
@@ -60,6 +60,7 @@ export declare const API_ENDPOINT: {
60
60
  SEARCH_TEXT: string;
61
61
  };
62
62
  export declare const MAX_WHEEL_DISTANCE = 50;
63
+ export declare const ARROW_KEY_SCROLL_STEP = 80;
63
64
  export declare const PASSWORD_REASON: {
64
65
  INCORRECT_PASSWORD: number;
65
66
  NEED_PASSWORD: number;
@@ -9,5 +9,5 @@ type ShortcutCallback = {
9
9
  onZoomOut: () => void;
10
10
  toggleFullscreen: () => void;
11
11
  };
12
- export declare const useBookEvents: (element: HTMLDivElement | null, totalPages: number, { onNextPage, onOpenSearchBox, onPageChange, onPreviousPage, onScaleChange, onScaleOptionChange, onZoomIn, onZoomOut, toggleFullscreen, }: ShortcutCallback) => void;
12
+ export declare const useBookEvents: (element: HTMLDivElement | null, totalPages: number, { onNextPage, onOpenSearchBox, onPageChange, onPreviousPage, onScaleChange, onScaleOptionChange, onZoomIn, onZoomOut, toggleFullscreen, }: ShortcutCallback, scrollElement?: HTMLElement | null) => void;
13
13
  export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns a ref for the control that opened a panel/menu (e.g. the search or sidebar toggle).
3
+ * When `open` flips from true to false (the panel just closed), focus is returned to that control
4
+ * so keyboard users keep their place instead of losing focus to the body
5
+ * (WCAG 2.4.3 Focus Order / 2.4.7 Focus Visible).
6
+ */
7
+ export declare const useRestoreFocusOnClose: <T extends HTMLElement>(open: boolean) => import('react').RefObject<T | null>;
8
+ export default useRestoreFocusOnClose;
@@ -1,3 +1,5 @@
1
+ export { default as CxTableColumnEditor } from './table-column-editor/table-column-editor';
1
2
  export { default as CxTableFooter } from './table-footer/table-footer';
3
+ export { default as CxTableHeaderMenu } from './table-header-menu/table-header-menu';
2
4
  export { default as CxTableRowActions } from './table-row-actions/table-row-actions';
3
5
  export { default as CxTableToolbar } from './table-toolbar/table-toolbar';
@@ -0,0 +1,45 @@
1
+ import { default as CxButton } from '../../../../../../atoms/src/components/button/button.ts';
2
+ import { default as CxDialog } from '../../../../../../atoms/src/components/dialog/dialog.ts';
3
+ import { default as CortexElement } from '../../../../../../base/src/cortex-element.ts';
4
+ import { default as CxMultiSelect } from '../../../../../../molecules/src/multi-select/multi-select.ts';
5
+ import { TableColumnEditorEntry } from '../../../../../../types/src/table-column-editor';
6
+ import { CSSResultGroup } from 'lit';
7
+
8
+ /**
9
+ * @summary Bulk "Edit columns" editor for `cx-table`. Opens a modal dialog containing a
10
+ * `cx-multi-select`: left list is available (hidden) columns, right list is visible columns,
11
+ * reorderable via drag. Frozen columns are shown locked and pinned first in the visible list.
12
+ *
13
+ * @event {{ visibleFields: string[] }} cx-table-column-editor-apply - Emitted when the user confirms a new visible column set/order.
14
+ * @event cx-table-column-editor-cancel - Emitted when the user dismisses the editor without applying.
15
+ */
16
+ export default class CxTableColumnEditor extends CortexElement {
17
+ static readonly styles: CSSResultGroup;
18
+ static readonly dependencies: {
19
+ 'cx-button': typeof CxButton;
20
+ 'cx-dialog': typeof CxDialog;
21
+ 'cx-multi-select': typeof CxMultiSelect;
22
+ };
23
+ private readonly localize;
24
+ private readonly dialogEl;
25
+ /** Whether the editor dialog is open. */
26
+ open: boolean;
27
+ /** Snapshot of columns (in current render order) to edit. Set by `cx-table`. */
28
+ entries: TableColumnEditorEntry[];
29
+ private firstColumnData;
30
+ private secondColumnData;
31
+ /** Current order of the visible ("selected") board, including frozen fields. */
32
+ private visibleFields;
33
+ private get canApply();
34
+ handleEntriesChange(): void;
35
+ private handleMultiSelectChange;
36
+ private handleApply;
37
+ private handleCancel;
38
+ private handleDialogRequestClose;
39
+ render(): import('lit').TemplateResult<1>;
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ 'cx-table-column-editor': CxTableColumnEditor;
44
+ }
45
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -0,0 +1,55 @@
1
+ import { default as CxIcon } from '../../../../../../atoms/src/components/icon/icon.ts';
2
+ import { default as CxMenu } from '../../../../../../atoms/src/components/menu/menu.ts';
3
+ import { default as CxMenuItem } from '../../../../../../atoms/src/components/menu-item/menu-item.ts';
4
+ import { default as CxPopup } from '../../../../../../atoms/src/components/popup/popup.ts';
5
+ import { default as CortexElement } from '../../../../../../base/src/cortex-element.ts';
6
+ import { CSSResultGroup } from 'lit';
7
+
8
+ /**
9
+ * @summary Right-click context menu for `cx-table` column headers, offering "Edit columns" (extension point) and
10
+ * "Hide column" actions.
11
+ *
12
+ * @description Anchored to the cursor position via a `VirtualElement`. Dismisses on outside click, a second
13
+ * right-click outside the menu, or `Escape`.
14
+ *
15
+ * @event {{ action: TableHeaderMenuAction, field: string }} cx-table-header-menu-select - Emitted when a menu item is selected.
16
+ * @event cx-table-header-menu-close - Emitted when the menu should be closed (outside interaction or Escape).
17
+ */
18
+ export default class CxTableHeaderMenu extends CortexElement {
19
+ static readonly styles: CSSResultGroup;
20
+ static readonly dependencies: {
21
+ 'cx-icon': typeof CxIcon;
22
+ 'cx-menu': typeof CxMenu;
23
+ 'cx-menu-item': typeof CxMenuItem;
24
+ 'cx-popup': typeof CxPopup;
25
+ };
26
+ private readonly localize;
27
+ private readonly virtualAnchor;
28
+ private readonly firstMenuItem;
29
+ /** Whether the menu is open. */
30
+ open: boolean;
31
+ /** The cursor's x position (viewport coordinates) the menu is anchored to. */
32
+ pointX: number;
33
+ /** The cursor's y position (viewport coordinates) the menu is anchored to. */
34
+ pointY: number;
35
+ /** The field of the column the menu was opened for. */
36
+ field: string;
37
+ /** Disables the "Hide column" item, e.g. when only one visible data column remains. */
38
+ hideDisabled: boolean;
39
+ constructor();
40
+ connectedCallback(): void;
41
+ disconnectedCallback(): void;
42
+ handleOpenChange(): void;
43
+ private handlePopupOpened;
44
+ private removeDocumentListeners;
45
+ private handleDocumentMouseDown;
46
+ private handleDocumentKeyDown;
47
+ private emitClose;
48
+ private handleMenuSelect;
49
+ render(): import('lit').TemplateResult<1>;
50
+ }
51
+ declare global {
52
+ interface HTMLElementTagNameMap {
53
+ 'cx-table-header-menu': CxTableHeaderMenu;
54
+ }
55
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -20,10 +20,20 @@ export declare class FilterController implements ReactiveController {
20
20
  private readonly host;
21
21
  private readonly filters;
22
22
  private isConnected;
23
+ /**
24
+ * The filter set last pushed to Tabulator. Used to skip redundant `setFilter`
25
+ * calls: in remote filter mode every `setFilter` forces a server reload
26
+ * (`userSetFilter` → `refreshFilter` → `reloadData`), so re-applying an
27
+ * identical set — the empty no-op on `tableBuilt`, or the repeated sync calls
28
+ * fired during build — causes a duplicate fetch and a visible re-render.
29
+ * Compared with lodash `isEqual` (deep) rather than a serialized key.
30
+ */
31
+ private lastAppliedFilters;
23
32
  constructor(host: ReactiveControllerHost & CxTable);
24
33
  hostConnected(): void;
25
34
  hostDisconnected(): void;
26
35
  hostUpdated(): void;
36
+ resetAppliedFilterBaseline(): void;
27
37
  /**
28
38
  * Set filters for a specific source, replacing any existing filters for that source.
29
39
  * @param source - The filter source identifier
@@ -49,6 +49,18 @@ export declare class SelectAllController implements ReactiveController {
49
49
  private handleDataLoading;
50
50
  private handleRowSelectionChanged;
51
51
  private handleDataLoaded;
52
+ /**
53
+ * Row count for select-all mode. With remote pagination only the current page
54
+ * is in memory, so the count is derived from the server total:
55
+ * `totalCount − explicitly-deselected`. When the full dataset is in memory
56
+ * (local, or ajax without pagination), it is the number of rows actually
57
+ * selected (`fallbackSelectedCount`), which naturally excludes
58
+ * disabled/non-selectable rows since those are never selected.
59
+ *
60
+ * Also falls back to `fallbackSelectedCount` when the server total has not
61
+ * loaded yet (`remoteTotalCount === 0`), so the count never goes negative.
62
+ */
63
+ private getSelectAllCount;
52
64
  private clearTabulatorSelection;
53
65
  private purgeStaleSelectedRows;
54
66
  private findDisabledFn;
@@ -14,7 +14,7 @@ import { DateFilterCompareFormat, HoverMenuOptions, HttpMethod, PaginationPlacem
14
14
  import { SavedSearchItem, TableDropdownFilterData, TableGroupByOption } from '../../../../types/src/table-toolbar';
15
15
  import { CSSResultGroup, TemplateResult } from 'lit';
16
16
  import { RowComponent, TabulatorFull as Tabulator } from '../tabulator-tables';
17
- import { CxTableFooter, CxTableRowActions, CxTableToolbar } from './components';
17
+ import { CxTableColumnEditor, CxTableFooter, CxTableHeaderMenu, CxTableRowActions, CxTableToolbar } from './components';
18
18
 
19
19
  /**
20
20
  * @summary Tables are used to display data in a structured format.
@@ -71,6 +71,8 @@ import { CxTableFooter, CxTableRowActions, CxTableToolbar } from './components';
71
71
  * @event {{ url: string, format: string, rowCount: number }} cx-table-data-load - Emitted when data is successfully loaded from dataUrl.
72
72
  * @event {{ url: string, error: unknown }} cx-table-data-load-error - Emitted when fetching or parsing data from dataUrl fails.
73
73
  * @event {{ invalidCellCount: number, invalidCells: ICellComponent[] }} cx-table-validation-change - Emitted when the set of cells failing column `validator` rules changes (edit, load validation, or programmatic validate).
74
+ * @event {{ field: string, visible: boolean }} cx-table-column-visibility-change - Emitted after a column's visibility changes via the header right-click "Hide column" action.
75
+ * @event {{ field: string }} cx-table-edit-columns - Emitted when "Edit columns" is chosen from the header right-click menu. Extension point for a future manage-columns panel; no built-in panel is shown.
74
76
  */
75
77
  export default class CxTable extends CortexElement {
76
78
  #private;
@@ -87,7 +89,9 @@ export default class CxTable extends CortexElement {
87
89
  'cx-select': typeof CxSelect;
88
90
  'cx-space': typeof CxSpace;
89
91
  'cx-spinner': typeof CxSpinner;
92
+ 'cx-table-column-editor': typeof CxTableColumnEditor;
90
93
  'cx-table-footer': typeof CxTableFooter;
94
+ 'cx-table-header-menu': typeof CxTableHeaderMenu;
91
95
  'cx-table-row-actions': typeof CxTableRowActions;
92
96
  'cx-table-toolbar': typeof CxTableToolbar;
93
97
  'cx-tooltip': typeof CxTooltip;
@@ -213,6 +217,11 @@ export default class CxTable extends CortexElement {
213
217
  * The columnDefaults option allows you to set default configs for all columns in the table.
214
218
  */
215
219
  columnDefaults: Partial<ColumnDefinition>;
220
+ /**
221
+ * Enables the right-click context menu on column headers, offering "Edit columns" and "Hide column" actions.
222
+ * Disabled by default.
223
+ */
224
+ headerContextMenu: boolean;
216
225
  /**
217
226
  * Whether to display a search box
218
227
  */
@@ -798,10 +807,36 @@ export default class CxTable extends CortexElement {
798
807
  private dataUrlRequestId;
799
808
  /** True when facets are available — either from facet-config or from an AJAX response. Controls toolbar visibility. */
800
809
  hasFacets: boolean;
810
+ /** Whether the column-header right-click context menu is open. */
811
+ private headerMenuOpen;
812
+ /** The field of the column the header context menu was opened for. */
813
+ private headerMenuField;
814
+ /** The cursor's x position (viewport coordinates) the header context menu is anchored to. */
815
+ private headerMenuPointX;
816
+ /** The cursor's y position (viewport coordinates) the header context menu is anchored to. */
817
+ private headerMenuPointY;
818
+ /** Whether "Hide column" is disabled because hiding it would leave no visible data columns. */
819
+ private headerMenuHideDisabled;
820
+ /** Whether the bulk "Edit columns" editor dialog is open. */
821
+ private columnEditorOpen;
822
+ /** Snapshot of columns (in current render order) handed to the editor when it opens. */
823
+ private columnEditorEntries;
801
824
  get initialized(): boolean | undefined;
802
825
  get searchValue(): string;
803
826
  get isBottomPlacement(): boolean;
804
827
  get showPaginationFooter(): boolean;
828
+ /**
829
+ * Whether data is loaded per page from the server, so only the current page's
830
+ * rows are in memory. True only when pagination is on AND the data source is
831
+ * remote — an `ajaxURL` (which forces the internal pagination mode to remote)
832
+ * or an explicit `paginationMode="remote"`. With pagination off, an ajax table
833
+ * still fetches the full dataset in one request, so this is false.
834
+ *
835
+ * Note: do not rely on `this.paginationMode` alone — the Ajax module forces the
836
+ * internal Tabulator option to remote without updating this Lit property, so
837
+ * the `ajaxURL` term is what catches the ajax case.
838
+ */
839
+ get isRemotePagination(): boolean;
805
840
  /**
806
841
  * Whether pagination alone should render the toolbar. A top-placed paginator
807
842
  * sits in the toolbar header row, and by default the empty header row is
@@ -827,6 +862,7 @@ export default class CxTable extends CortexElement {
827
862
  constructor();
828
863
  connectedCallback(): void;
829
864
  runFirstUpdated(): void;
865
+ private initTableWhenSized;
830
866
  /**
831
867
  * All logic that needs to run when the table is built should be placed here.
832
868
  */
@@ -899,6 +935,23 @@ export default class CxTable extends CortexElement {
899
935
  private handleTabulatorAjaxResponse;
900
936
  private renderToolbar;
901
937
  private renderPaginationFooter;
938
+ /** Opens the column-header right-click context menu, anchored to the cursor position. */
939
+ private handleHeaderContextMenu;
940
+ private handleHeaderMenuSelect;
941
+ private handleHeaderMenuClose;
942
+ private handleColumnEditorApply;
943
+ private handleColumnEditorCancel;
944
+ /** Counts visible data columns (columns with a `field`) to decide whether "Hide column" should be disabled. */
945
+ private getVisibleDataColumnCount;
946
+ /** Builds the "Edit columns" editor model from current data columns, in current render order. */
947
+ private getColumnEditorModel;
948
+ /**
949
+ * Applies the "Edit columns" editor result: shows/hides non-frozen data columns to match
950
+ * `orderedVisibleFields`, reorders them to match, then emits the public change event. Frozen
951
+ * columns are never hidden or moved — they stay pinned, matching the engine's own
952
+ * MoveColumns guard against dragging frozen columns.
953
+ */
954
+ applyColumnEditor(orderedVisibleFields: string[]): void;
902
955
  render(): TemplateResult;
903
956
  }
904
957
  declare global {
@@ -0,0 +1,74 @@
1
+ import { default as CxDivider } from '../../../atoms/src/components/divider/divider.ts';
2
+ import { default as CxGrid } from '../../../atoms/src/components/grid/grid.ts';
3
+ import { default as CxGridItem } from '../../../atoms/src/components/grid-item/grid-item.ts';
4
+ import { default as CxMenuLabel } from '../../../atoms/src/components/menu-label/menu-label.ts';
5
+ import { default as CxOption } from '../../../atoms/src/components/option/option.ts';
6
+ import { default as CxSelect } from '../../../atoms/src/components/select/select.ts';
7
+ import { default as CxSpace } from '../../../atoms/src/components/space/space.ts';
8
+ import { default as CxTypography } from '../../../atoms/src/components/typography/typography.ts';
9
+ import { default as CortexElement } from '../../../base/src/cortex-element.ts';
10
+ import { FontPickerLayout, FontTypeface, FontTypefaceGroup } from '../../../types/src/font-picker';
11
+ import { CSSResultGroup, TemplateResult } from 'lit';
12
+
13
+ /**
14
+ * @summary A picker that allows selecting a typeface and its font family variant.
15
+ *
16
+ * @event {{ family: string; style: string }} cx-font-picker-change - Emitted when the selected typeface or font family changes.
17
+ *
18
+ * @csspart base - The component's base wrapper.
19
+ * @csspart family - The typeface select.
20
+ * @csspart style - The font-family select.
21
+ *
22
+ */
23
+ export default class CxFontPicker extends CortexElement {
24
+ static readonly styles: CSSResultGroup;
25
+ private readonly localize;
26
+ static readonly dependencies: {
27
+ 'cx-divider': typeof CxDivider;
28
+ 'cx-grid': typeof CxGrid;
29
+ 'cx-grid-item': typeof CxGridItem;
30
+ 'cx-menu-label': typeof CxMenuLabel;
31
+ 'cx-option': typeof CxOption;
32
+ 'cx-select': typeof CxSelect;
33
+ 'cx-space': typeof CxSpace;
34
+ 'cx-typography': typeof CxTypography;
35
+ };
36
+ /** The list of available typefaces, each containing font family variants. */
37
+ fontTypefaces: FontTypeface[];
38
+ /** The list of typeface groups, each with a label and typefaces. Takes precedence over fontTypefaces when non-empty. */
39
+ fontTypefaceGroups: FontTypefaceGroup[];
40
+ /** The selected typeface value. */
41
+ familyValue: string;
42
+ /** The selected font family value. Empty string means no family selected. */
43
+ styleValue: string;
44
+ /** Controls how the two selects are arranged. */
45
+ layout: FontPickerLayout;
46
+ /** Label text for the typeface select. */
47
+ labelFamily: string;
48
+ /** Label text for the font family select. */
49
+ labelStyle: string;
50
+ /** Marks both selects as required for form validation. */
51
+ required: boolean;
52
+ /**
53
+ * Single normalized representation of the input: an ungrouped `fontTypefaces`
54
+ * list becomes one unlabeled group, so the template has a single render path.
55
+ * Grouped input (`fontTypefaceGroups`) takes precedence when provided.
56
+ */
57
+ private get typefaceGroups();
58
+ private get allTypefaces();
59
+ private get selectedTypeface();
60
+ private get availableFamilies();
61
+ /** Whether the selected typeface exposes any style/variant options. */
62
+ private get hasStyleOptions();
63
+ private handleFamilyChange;
64
+ private handleStyleChange;
65
+ private renderTypefaceOptions;
66
+ private renderFamilySelect;
67
+ private renderStyleSelect;
68
+ render(): TemplateResult;
69
+ }
70
+ declare global {
71
+ interface HTMLElementTagNameMap {
72
+ 'cx-font-picker': CxFontPicker;
73
+ }
74
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -20,6 +20,7 @@ export { default as CxFacetDateRange } from './faceted-filter/components/facet-d
20
20
  export { default as CxFacetedFilter } from './faceted-filter/faceted-filter';
21
21
  export { default as CxFacetedFilterFacet } from './faceted-filter/components/facet/facet';
22
22
  export { default as CxFolderSelect } from './folder-select/folder-select';
23
+ export { default as CxFontPicker } from './font-picker/font-picker';
23
24
  export { default as CxGalleryItem } from './gallery-item/gallery-item';
24
25
  export { default as CxGraphView } from './graph-view/graph-view';
25
26
  export { default as CxIconPicker } from './icon-picker/icon-picker';