@orangelogic/design-system 4.2.0 → 4.3.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.
- package/library/chunks/{_baseXor.DixEm6JQ.js → _baseXor.BCxbgizO.js} +2 -2
- package/library/chunks/{asset-link-format.CVwjA_yf.js → asset-link-format.C5Ue4EGP.js} +37 -36
- package/library/chunks/{button.D1YIxtv-.js → button.DbAUlIXG.js} +3 -3
- package/library/chunks/button.styles.D3GdfF7I.js +5 -0
- package/library/chunks/{color-swatch-group.BPXiMxjh.js → color-swatch-group.B10yWbVM.js} +3279 -2903
- package/library/chunks/color.CIHdfM_a.js +187 -0
- package/library/chunks/{confirm-popover.CJXyEa5A.js → confirm-popover.Cd4HM5-B.js} +4 -4
- package/library/chunks/content-builder.CBBdfVOl.js +55 -0
- package/library/chunks/{dialog.BbQ4Du0M.js → dialog.CXphbq8N.js} +2 -2
- package/library/chunks/{document-viewer.DtBW-p7z.js → document-viewer.B_ESlazf.js} +10 -9
- package/library/chunks/{dom.DL-cNKsj.js → dom.D0lSUoEI.js} +1 -1
- package/library/chunks/{dot-pagination.CJRAtM51.js → dot-pagination.CzT-MZmt.js} +1 -1
- package/library/chunks/{folder-select.BAPsI-gg.js → folder-select.BWeanVkA.js} +5 -5
- package/library/chunks/form-control.styles.CHC7Q08Q.js +5 -0
- package/library/chunks/{form.DN2v7-DH.js → form.LpappO1d.js} +1 -1
- package/library/chunks/{header.BioJzPlg.js → header.Dy57RuQW.js} +132 -90
- package/library/chunks/{i18n.rtxrs1c1.js → i18n.Q5_2aVLU.js} +93 -12
- package/library/chunks/{icon-button.CbUddcgI.js → icon-button.BjAbCuH8.js} +1 -1
- package/library/chunks/{iframe.y7iCAVZP.js → iframe.CdktjPCB.js} +1 -1
- package/library/chunks/{image.A2hE1WoV.js → image.CCo__54F.js} +322 -222
- package/library/chunks/index.DiZGZkHv.js +1126 -0
- package/library/chunks/{input.D1FFprPl.js → input.ftEf4GS6.js} +3 -3
- package/library/chunks/{markdown.Dd_GFJK8.js → markdown.RljldBNb.js} +3 -3
- package/library/chunks/{menu-item.CbqZ66to.js → menu-item.BNs1Ji48.js} +1 -1
- package/library/chunks/{option.CkhHTlpl.js → option.C8IEnv5Q.js} +1 -1
- package/library/chunks/{pagination.BlQRt932.js → pagination.Bke9vgl4.js} +6 -6
- package/library/chunks/{position-picker.DjnhxIKF.js → position-picker.qkbJlboF.js} +12 -0
- package/library/chunks/responsive.BmBJSzC4.js +17 -0
- package/library/chunks/{string.Demn8Xmk.js → string.CfI2ejyR.js} +3 -3
- package/library/chunks/{tab-group.CQfcMVEw.js → tab-group.DZ32f41G.js} +312 -310
- package/library/chunks/toast.D3AW3RWv.js +94 -0
- package/library/chunks/transformation.Dm-pK2ft.js +352 -0
- package/library/chunks/{tree.B7IKBX3n.js → tree.Umn7TAkc.js} +1 -1
- package/library/chunks/{types.MwUT4xFk.js → types.BW36Gr9c.js} +77051 -54471
- package/library/chunks/typography.BLYdTF0n.js +102 -0
- package/library/components/alert.js +2 -2
- package/library/components/asset-link-format.js +6 -6
- package/library/components/atoms.js +161 -159
- package/library/components/audio.js +3 -3
- package/library/components/bicolor-picker.js +2 -2
- package/library/components/border-input-group.js +2 -2
- package/library/components/box.d.ts +3 -0
- package/library/components/box.js +22 -0
- package/library/components/breadcrumb.js +1 -1
- package/library/components/button.js +4 -4
- package/library/components/card.js +7 -7
- package/library/components/checkbox.js +2 -2
- package/library/components/color-picker.js +36 -32
- package/library/components/color-swatch-group.js +8 -7
- package/library/components/color-swatch.js +246 -22
- package/library/components/confirm-popover.js +5 -5
- package/library/components/copy-button.js +2 -2
- package/library/components/corner-position-input-group.js +3 -3
- package/library/components/date-calendar.js +1 -1
- package/library/components/details.js +19 -19
- package/library/components/dialog.js +3 -3
- package/library/components/diff.js +1 -1
- package/library/components/document-viewer.js +4 -4
- package/library/components/dot-pagination.js +2 -2
- package/library/components/drawer.js +2 -2
- package/library/components/dropdown.js +2 -2
- package/library/components/dynamic-select.js +95 -92
- package/library/components/e-chart.js +1 -1
- package/library/components/element-clamp.js +2 -2
- package/library/components/file-on-demand.js +12 -12
- package/library/components/folder-select.js +5 -5
- package/library/components/format-bytes.js +1 -1
- package/library/components/format-date.js +1 -1
- package/library/components/format-number.js +1 -1
- package/library/components/format-time.js +1 -1
- package/library/components/header.js +6 -3
- package/library/components/icon-button.js +2 -2
- package/library/components/iframe.js +2 -2
- package/library/components/image-comparer.js +1 -1
- package/library/components/image.js +4 -3
- package/library/components/input-group.js +1 -1
- package/library/components/input.js +4 -4
- package/library/components/line-clamp.js +1 -1
- package/library/components/markdown.js +4 -4
- package/library/components/masonry.js +70 -56
- package/library/components/menu-item.js +2 -2
- package/library/components/menu.js +2 -2
- package/library/components/molecules.js +4 -4
- package/library/components/mutation-observer.js +25 -23
- package/library/components/option.js +2 -2
- package/library/components/organisms.js +2 -2
- package/library/components/padding-input-group.js +1 -1
- package/library/components/pagination.js +7 -7
- package/library/components/popup.js +1 -1
- package/library/components/position-picker.js +2 -2
- package/library/components/progress-bar.js +1 -1
- package/library/components/progress-ring.js +1 -1
- package/library/components/radio-button.js +1 -1
- package/library/components/radio-card.js +1 -1
- package/library/components/radio-group.js +2 -2
- package/library/components/range.js +3 -3
- package/library/components/rating.js +1 -1
- package/library/components/relative-time.js +1 -1
- package/library/components/select.js +5 -5
- package/library/components/shadow-input-group.js +1 -1
- package/library/components/share-option-list.js +3 -3
- package/library/components/sidebar.js +1 -1
- package/library/components/size-input-group.js +3 -3
- package/library/components/spinner.js +1 -1
- package/library/components/split-panel.js +1 -1
- package/library/components/switch.js +2 -2
- package/library/components/tab-group.js +6 -6
- package/library/components/tab-panel.js +1 -1
- package/library/components/tab.js +16 -16
- package/library/components/tag.js +2 -2
- package/library/components/textarea.js +2 -2
- package/library/components/timecode.js +2 -2
- package/library/components/tooltip.js +1 -1
- package/library/components/tree-item.js +2 -2
- package/library/components/tree.js +2 -2
- package/library/components/typeface.js +3 -3
- package/library/components/types.js +496 -487
- package/library/components/typography.js +3 -2
- package/library/components/video.js +4231 -4210
- package/library/css/ol-base.css +1 -0
- package/library/package.json +1 -1
- package/library/packages/atoms/src/components/box/box.d.ts +26 -0
- package/library/packages/atoms/src/components/box/box.styles.d.ts +7 -0
- package/library/packages/atoms/src/components/button/button.d.ts +4 -0
- package/library/packages/atoms/src/components/card/card.d.ts +1 -0
- package/library/packages/atoms/src/components/color-picker/color-picker.d.ts +11 -0
- package/library/packages/atoms/src/components/copy-button/copy-button.d.ts +1 -0
- package/library/packages/atoms/src/components/details/details.d.ts +6 -1
- package/library/packages/atoms/src/components/header/header.d.ts +38 -2
- package/library/packages/atoms/src/components/image/image.d.ts +14 -0
- package/library/packages/atoms/src/components/mutation-observer/mutation-observer.d.ts +1 -1
- package/library/packages/atoms/src/components/radio-card/radio-card.d.ts +1 -0
- package/library/packages/atoms/src/components/tab/tab.d.ts +17 -0
- package/library/packages/atoms/src/components/typography/typography.d.ts +31 -0
- package/library/packages/atoms/src/components/video/video.d.ts +18 -0
- package/library/packages/atoms/src/index.d.ts +1 -0
- package/library/packages/events/src/cx-color-swatch-picker-columns-change.d.ts +15 -0
- package/library/packages/events/src/events.d.ts +1 -0
- package/library/packages/hybrid/table-core/src/table/table.d.ts +10 -1
- package/library/packages/molecules/src/color-swatch/color-swatch.d.ts +35 -1
- package/library/packages/molecules/src/data-tab-group/data-tab-group.d.ts +30 -1
- package/library/packages/molecules/src/details-group/details-group.d.ts +105 -3
- package/library/packages/molecules/src/dynamic-select/dynamic-select.d.ts +5 -0
- package/library/packages/molecules/src/font-picker/font-picker.d.ts +3 -0
- package/library/packages/molecules/src/gallery-item/gallery-item.d.ts +10 -0
- package/library/packages/molecules/src/index.d.ts +0 -1
- package/library/packages/molecules/src/masonry/masonry.d.ts +5 -0
- package/library/packages/organisms/src/color-swatch-group/color-swatch-group.constants.d.ts +37 -45
- package/library/packages/organisms/src/color-swatch-group/color-swatch-group.d.ts +210 -10
- package/library/packages/organisms/src/content-builder/blocks/font-kit-advanced/font-kit-advanced.utils.d.ts +85 -0
- package/library/packages/organisms/src/content-builder/blocks/image/image.d.ts +22 -6
- package/library/packages/organisms/src/content-builder/components/block-picker/block-picker.d.ts +24 -8
- package/library/packages/organisms/src/content-builder/components/color-swatch-picker/color-swatch-picker.d.ts +70 -1
- package/library/packages/organisms/src/content-builder/components/config-form/config-form-controller.d.ts +1 -22
- package/library/packages/organisms/src/content-builder/components/config-manager/config-manager.d.ts +7 -0
- package/library/packages/organisms/src/content-builder/components/gallery-config/gallery-config.d.ts +6 -0
- package/library/packages/organisms/src/content-builder/components/gallery-picker/gallery-picker.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/accordion.d.ts +7 -0
- package/library/packages/organisms/src/content-builder/configs/audio.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/button.d.ts +2 -1
- package/library/packages/organisms/src/content-builder/configs/carousel.d.ts +11 -1
- package/library/packages/organisms/src/content-builder/configs/color-swatches.d.ts +19 -1
- package/library/packages/organisms/src/content-builder/configs/column-group.d.ts +11 -2
- package/library/packages/organisms/src/content-builder/configs/column.d.ts +13 -3
- package/library/packages/organisms/src/content-builder/configs/dam-view.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/divider.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/document-viewer.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/font-kit-advanced.d.ts +19 -0
- package/library/packages/organisms/src/content-builder/configs/font-kit.d.ts +2 -0
- package/library/packages/organisms/src/content-builder/configs/gallery.d.ts +15 -1
- package/library/packages/organisms/src/content-builder/configs/header.d.ts +2 -0
- package/library/packages/organisms/src/content-builder/configs/image.d.ts +2 -0
- package/library/packages/organisms/src/content-builder/configs/index.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/search-box.d.ts +5 -1
- package/library/packages/organisms/src/content-builder/configs/tab-group.d.ts +7 -4
- package/library/packages/organisms/src/content-builder/configs/timeline.d.ts +1 -0
- package/library/packages/organisms/src/content-builder/configs/video.d.ts +3 -0
- package/library/packages/organisms/src/content-builder/configs-controller.d.ts +155 -13
- package/library/packages/organisms/src/content-builder/content-builder-config.d.ts +60 -0
- package/library/packages/organisms/src/content-builder/content-builder-constants.d.ts +27 -0
- package/library/packages/organisms/src/content-builder/content-builder.d.ts +122 -2
- package/library/packages/organisms/src/content-builder/content-builder.sections.utils.d.ts +78 -0
- package/library/packages/organisms/src/content-builder/content-builder.utils.d.ts +33 -2
- package/library/packages/organisms/src/content-builder/plugins/font-kit-advanced.d.ts +5 -0
- package/library/packages/organisms/src/content-builder/plugins/gallery.d.ts +6 -0
- package/library/packages/organisms/src/content-builder/plugins/header.d.ts +7 -1
- package/library/packages/organisms/src/content-builder/plugins/index.d.ts +2 -1
- package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/components/rte-bubble-menu/rte-bubble-menu.d.ts +21 -1
- package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/extensions/index.d.ts +2 -0
- package/library/packages/organisms/src/content-builder/plugins/rich-text-editor/rte-configs.d.ts +14 -0
- package/library/packages/organisms/src/content-builder/plugins/sections/section-fragment-component.d.ts +22 -0
- package/library/packages/organisms/src/content-builder/plugins/sections/section-host-mounting.d.ts +15 -0
- package/library/packages/organisms/src/content-builder/plugins/sections/sections-canvas-patches.d.ts +20 -0
- package/library/packages/organisms/src/content-builder/plugins/sections/sections-plugin.d.ts +7 -0
- package/library/packages/organisms/src/content-builder/plugins/toolbar.d.ts +10 -1
- package/library/packages/organisms/src/content-builder/plugins/utils/block-width.d.ts +20 -0
- package/library/packages/organisms/src/content-builder/styleController.d.ts +9 -5
- package/library/packages/organisms/src/content-builder-viewer/content-builder-viewer.d.ts +1 -0
- package/library/packages/organisms/src/form/control-renderer/control-renderer.d.ts +170 -0
- package/library/packages/organisms/src/form/control-renderer/control-renderer.styles.d.ts +9 -0
- package/library/packages/organisms/src/list-editor/list-editor.d.ts +181 -6
- package/library/packages/tools/src/tiptap/extensions/metafield/index.d.ts +12 -0
- package/library/packages/tools/src/tiptap/utils/md/schema.d.ts +1 -1
- package/library/packages/types/src/asset-link-format.d.ts +0 -1
- package/library/packages/types/src/button.d.ts +1 -1
- package/library/packages/types/src/color-swatch-group.d.ts +56 -0
- package/library/packages/types/src/color-swatch.d.ts +22 -0
- package/library/packages/types/src/column.d.ts +13 -0
- package/library/packages/types/src/content-builder.d.ts +69 -4
- package/library/packages/types/src/details-group.d.ts +80 -0
- package/library/packages/types/src/font-kit-advanced.d.ts +28 -0
- package/library/packages/types/src/font-kit.d.ts +19 -0
- package/library/packages/types/src/font-picker.d.ts +2 -0
- package/library/packages/types/src/gallery-item.d.ts +3 -1
- package/library/packages/types/src/gallery.d.ts +2 -1
- package/library/packages/types/src/index.d.ts +1 -0
- package/library/packages/types/src/masonry.d.ts +1 -0
- package/library/packages/types/src/position-picker.d.ts +6 -0
- package/library/packages/types/src/sb-button.d.ts +7 -0
- package/library/packages/types/src/search-box.d.ts +4 -0
- package/library/packages/utils/src/color/color.d.ts +27 -3
- package/library/packages/utils/src/custom-element/i18n.d.ts +85 -0
- package/library/packages/utils/src/font/font.d.ts +12 -0
- package/library/packages/utils/src/transformation/transformation.d.ts +11 -3
- package/library/react-web-component.d.ts +510 -156
- package/library/utils.js +415 -395
- package/package.json +1 -1
- package/library/chunks/button.styles.BWgHrfLD.js +0 -5
- package/library/chunks/color-swatch.DdsUysbF.js +0 -223
- package/library/chunks/color.LzSGBy7o.js +0 -164
- package/library/chunks/form-control.styles.CaGWmeAS.js +0 -5
- package/library/chunks/index.BO_sT6SH.js +0 -20123
- package/library/chunks/toast.BOkYwUIj.js +0 -109
- package/library/chunks/transformation.B8m0Nbao.js +0 -384
- package/library/chunks/typography.T72DuoCa.js +0 -52
- package/library/packages/molecules/src/search-box/search-box.d.ts +0 -114
- package/library/packages/organisms/src/content-builder/plugins/wrapper-container.d.ts +0 -15
- /package/library/packages/{molecules/src/search-box/search-box.styles.d.ts → organisms/src/content-builder-viewer/content-builder-viewer.styles.d.ts} +0 -0
|
@@ -1,24 +1,126 @@
|
|
|
1
1
|
import { default as CxDetails } from '../../../atoms/src/components/details/details.ts';
|
|
2
|
+
import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
|
|
2
3
|
import { default as CortexElement } from '../../../base/src/cortex-element.ts';
|
|
3
4
|
import { DetailsItem } from '../../../types/src/details-group';
|
|
4
|
-
import {
|
|
5
|
+
import { IconPickerValue } from '../../../types/src/icon-picker';
|
|
6
|
+
import { CSSResultGroup, TemplateResult } from 'lit';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
|
-
* @summary
|
|
9
|
+
* @summary Renders an accordion from a list of items, exposing each section's look as CSS custom properties.
|
|
10
|
+
*
|
|
11
|
+
* @description Every custom property below sets the look of all sections. A single section can
|
|
12
|
+
* override the header colors, border, background image and icons by carrying its own values on
|
|
13
|
+
* the item — see `DetailsItem` — which take effect once that item sets `customStyle`.
|
|
14
|
+
*
|
|
15
|
+
* @slot slot-{id} - The content for the section with the matching `id`.
|
|
8
16
|
*
|
|
9
17
|
* @cssproperty --details-background-color - The background color of the details.
|
|
18
|
+
* @cssproperty [--details-background-image=none] - A section's background image, covering the whole section so expanding it reveals more. Set per section from a `background` field on the item.
|
|
19
|
+
* @cssproperty [--details-background-size=cover] - How the section background image fills the section.
|
|
20
|
+
* @cssproperty [--details-background-position=top center] - Which part of the section background image stays in view.
|
|
21
|
+
* @cssproperty [--details-border-radius=var(--header-border-radius)] - A section's corner radius, which its background is clipped to. Follows the header's radius unless set.
|
|
22
|
+
* @cssproperty [--row-gap=var(--cx-spacing-medium)] - The gap between sections.
|
|
23
|
+
* @cssproperty [--header-padding=var(--cx-spacing-small)] - A section header's padding.
|
|
24
|
+
* @cssproperty [--section-body-max-width=100%] - Caps the width of a section's title and icon, centring them, while the header background still spans the section. Accepts px or %, and the `section-body-max-width` attribute sets it. Set it to the width of the section's body content so the two line up — most useful on a full-bleed accordion.
|
|
25
|
+
* @cssproperty [--expand-icon-width=var(--cx-font-size-large)] - The width of a closed section's icon. The height scales with it.
|
|
26
|
+
* @cssproperty [--hover-icon-width=var(--cx-font-size-large)] - The width of the icon shown while hovering a closed section. The height scales with it.
|
|
27
|
+
* @cssproperty [--collapse-icon-width=var(--cx-font-size-large)] - The width of an open section's icon. The height scales with it.
|
|
28
|
+
* @cssproperty [--header-border-radius=var(--cx-border-radius-small)] - A section header's border radius.
|
|
29
|
+
* @cssproperty --header-background-color - A section header's background color.
|
|
30
|
+
* @cssproperty --header-color - A section header's text and icon color.
|
|
31
|
+
* @cssproperty --header-border - A section header's border, as a `<color> <width>` pair.
|
|
32
|
+
* @cssproperty [--header-hover-background-color=var(--header-background-color)] - A closed section header's background color on hover.
|
|
33
|
+
* @cssproperty [--header-hover-color=var(--header-color)] - A closed section header's text and icon color on hover.
|
|
34
|
+
* @cssproperty [--header-hover-border=var(--header-border)] - A closed section header's border on hover.
|
|
35
|
+
* @cssproperty --header-active-background-color - An open section header's background color.
|
|
36
|
+
* @cssproperty --header-active-color - An open section header's text and icon color.
|
|
37
|
+
* @cssproperty --header-active-border - An open section header's border.
|
|
38
|
+
* @cssproperty [--header-font-size=var(--cx-font-size-large)] - A section header's font size.
|
|
39
|
+
* @cssproperty [--header-line-height=1.2] - A section header's line height, as a ratio of its font size.
|
|
40
|
+
* @cssproperty --header-font-family - A section header's font family.
|
|
41
|
+
* @cssproperty --header-font-style - A section header's font style.
|
|
42
|
+
* @cssproperty --header-font-weight - A section header's font weight.
|
|
43
|
+
* @cssproperty --content-padding - A section's content padding.
|
|
44
|
+
* @cssproperty [--content-font-size=var(--cx-font-size-medium)] - A section's content font size.
|
|
45
|
+
* @cssproperty [--empty-height=200px] - The height reserved when there are no sections.
|
|
10
46
|
*/
|
|
11
47
|
export default class CxDetailsGroup extends CortexElement {
|
|
12
48
|
static readonly styles: CSSResultGroup;
|
|
13
49
|
static readonly dependencies: {
|
|
14
50
|
'cx-details': typeof CxDetails;
|
|
51
|
+
'cx-icon': typeof CxIcon;
|
|
15
52
|
};
|
|
53
|
+
/** Attempts per background image, matching `cx-image`'s cap. */
|
|
54
|
+
private static readonly maxBackgroundRetries;
|
|
55
|
+
/**
|
|
56
|
+
* Reads an icon-picker value, stored as JSON. Only an unreadable one (empty or
|
|
57
|
+
* unparseable, as older blocks store it) takes `fallback` — so the empty payload the
|
|
58
|
+
* picker writes when cleared means "no icon", not "use the default".
|
|
59
|
+
*/
|
|
60
|
+
private static createIconConverter;
|
|
16
61
|
private readonly localize;
|
|
62
|
+
/** Background URLs already probed, so a re-render does not start a second attempt. */
|
|
63
|
+
private readonly probedBackgrounds;
|
|
64
|
+
/** How many times each background URL has been retried, against `maxBackgroundRetries`. */
|
|
65
|
+
private readonly backgroundRetryCounts;
|
|
66
|
+
/** Pending retry timers, cleared on disconnect. */
|
|
67
|
+
private readonly backgroundRetryTimers;
|
|
17
68
|
data: DetailsItem[];
|
|
18
69
|
defaultOpenIndexes?: number[];
|
|
19
70
|
multiLanguage: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Caps the width of every section's title row, in px or %. Sets
|
|
73
|
+
* `--section-body-max-width`, so this is the attribute form of that custom property -
|
|
74
|
+
* which is what the content builder writes - and styling it directly still works.
|
|
75
|
+
*/
|
|
76
|
+
sectionBodyMaxWidth: string;
|
|
77
|
+
/** The icon shown on a closed section. */
|
|
78
|
+
expandIcon: IconPickerValue | null;
|
|
79
|
+
/** The icon shown while hovering a closed section. Defaults to the closed icon. */
|
|
80
|
+
hoverIcon: IconPickerValue | null;
|
|
81
|
+
/** The icon shown on an open section. */
|
|
82
|
+
collapseIcon: IconPickerValue | null;
|
|
83
|
+
/** Cache-bust token per URL. Reactive: changing it is what re-points the CSS background. */
|
|
84
|
+
private backgroundRetryTokens;
|
|
20
85
|
runFirstUpdated(): void;
|
|
21
|
-
|
|
86
|
+
connectedCallback(): void;
|
|
87
|
+
disconnectedCallback(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Probes each background so a failed load can be retried. A CSS background reports no
|
|
90
|
+
* error of its own, so the only way to notice one is to load the same URL separately —
|
|
91
|
+
* normally served from cache.
|
|
92
|
+
*/
|
|
93
|
+
handleBackgroundProbes(): void;
|
|
94
|
+
/** Loads a background out of band to see whether it resolves. Once per attempt. */
|
|
95
|
+
private probeBackground;
|
|
96
|
+
/**
|
|
97
|
+
* Re-points the background at a fresh URL after a backoff. Delay and cache-bust mirror
|
|
98
|
+
* `cx-image`: spread the attempts, and bypass an edge caching the failed response.
|
|
99
|
+
*/
|
|
100
|
+
private scheduleBackgroundRetry;
|
|
101
|
+
/** Appends the retry cache-bust parameter while an attempt is in flight. */
|
|
102
|
+
private withBackgroundRetryToken;
|
|
103
|
+
/**
|
|
104
|
+
* The URL a background renders from, transformations applied. Shared with the probe so a
|
|
105
|
+
* retry tests what the CSS actually requests.
|
|
106
|
+
*/
|
|
107
|
+
private resolveBackgroundSrc;
|
|
108
|
+
/**
|
|
109
|
+
* A section's own icon wins over the group's. Only an unset field inherits — a cleared one
|
|
110
|
+
* is a choice to show nothing.
|
|
111
|
+
*/
|
|
112
|
+
private resolveIcon;
|
|
113
|
+
/**
|
|
114
|
+
* Turns a section's overrides into a style map of the CSS custom properties `cx-details`
|
|
115
|
+
* reads. Returns nothing while `customStyle` is off, so the group's look applies.
|
|
116
|
+
*/
|
|
117
|
+
private resolveSectionStyle;
|
|
118
|
+
/**
|
|
119
|
+
* Renders the icon, or a hidden node that still fills the slot — `cx-details` falls back to
|
|
120
|
+
* its own chevron on an empty slot, so filling it is what makes "cleared" render nothing.
|
|
121
|
+
*/
|
|
122
|
+
private renderIconSlot;
|
|
123
|
+
render(): TemplateResult<1>;
|
|
22
124
|
}
|
|
23
125
|
declare global {
|
|
24
126
|
interface HTMLElementTagNameMap {
|
|
@@ -196,6 +196,11 @@ export default class CxDynamicSelect extends CortexElement {
|
|
|
196
196
|
* The name of the icon to use for the prefix.
|
|
197
197
|
*/
|
|
198
198
|
iconName: string;
|
|
199
|
+
/**
|
|
200
|
+
* Image source for the prefix icon, for picked images rather than named
|
|
201
|
+
* icons. Takes effect through cx-icon-button's own `src`.
|
|
202
|
+
*/
|
|
203
|
+
iconSrc: string;
|
|
199
204
|
/**
|
|
200
205
|
* When set to true, the select will not show the dropdown.
|
|
201
206
|
*/
|
|
@@ -58,10 +58,13 @@ export default class CxFontPicker extends CortexElement {
|
|
|
58
58
|
private get allTypefaces();
|
|
59
59
|
private get selectedTypeface();
|
|
60
60
|
private get availableFamilies();
|
|
61
|
+
/** An upright run then an italic one, each by ascending weight. */
|
|
62
|
+
private get groupedFamilies();
|
|
61
63
|
private handleFamilyChange;
|
|
62
64
|
private handleStyleChange;
|
|
63
65
|
private renderTypefaceOptions;
|
|
64
66
|
private renderFamilySelect;
|
|
67
|
+
private renderStyleOptions;
|
|
65
68
|
private renderStyleSelect;
|
|
66
69
|
render(): TemplateResult;
|
|
67
70
|
}
|
|
@@ -3,6 +3,7 @@ import { default as HighlightableElement } from '../../../base/src/highlightable
|
|
|
3
3
|
import { default as CxAssetDataDisplay } from '../asset-data-display/asset-data-display.ts';
|
|
4
4
|
import { ObjectFit } from '../../../types/src/index.ts';
|
|
5
5
|
import { GalleryItemContentPosition, GalleryItemContentVariant, GalleryItemShowContentType } from '../../../types/src/gallery-item';
|
|
6
|
+
import { PositionPickerValue } from '../../../types/src/position-picker';
|
|
6
7
|
import { LocalizeController } from '../../../utils/src/custom-element/i18n';
|
|
7
8
|
import { CSSResultGroup } from 'lit';
|
|
8
9
|
|
|
@@ -107,6 +108,15 @@ export default class CxGalleryItem extends HighlightableElement {
|
|
|
107
108
|
* The object fit style for the image.
|
|
108
109
|
*/
|
|
109
110
|
objectFit: ObjectFit;
|
|
111
|
+
/**
|
|
112
|
+
* The focal point used to position the image within its container.
|
|
113
|
+
*/
|
|
114
|
+
cropFocus: PositionPickerValue;
|
|
115
|
+
/**
|
|
116
|
+
* The background color shown behind the image, e.g. to fill empty space
|
|
117
|
+
* left by `object-fit: contain`. Accepts any valid CSS color value.
|
|
118
|
+
*/
|
|
119
|
+
backgroundColor: string;
|
|
110
120
|
/**
|
|
111
121
|
* When true, forwards `no-crossorigin` to the inner `<cx-image>`, disabling CORS mode.
|
|
112
122
|
* Defaults to false (the image loads with `crossorigin="anonymous"`).
|
|
@@ -33,7 +33,6 @@ export { default as CxPageOutline } from './page-outline/page-outline';
|
|
|
33
33
|
export { default as CxPdfViewerToolbar } from './pdf-viewer-toolbar/pdf-viewer-toolbar';
|
|
34
34
|
export { default as CxPositionPicker } from './position-picker/position-picker';
|
|
35
35
|
export { default as CxPublishPage } from './publish-page/publish-page';
|
|
36
|
-
export { default as CxSearchBox } from './search-box/search-box';
|
|
37
36
|
export { default as CxShadowInputGroup } from './shadow-input-group/shadow-input-group';
|
|
38
37
|
export { default as CxShareOptionList } from './share-option-list/share-option-list';
|
|
39
38
|
export { default as CxSidebar } from './sidebar/sidebar';
|
|
@@ -105,6 +105,11 @@ export default class CxMasonry extends CortexElement {
|
|
|
105
105
|
private get itemSizes();
|
|
106
106
|
handleItemClick(event: MouseEvent, item: MasonryItem): void;
|
|
107
107
|
handleSortableUpdate(event: Sortable.SortableEvent): void;
|
|
108
|
+
/**
|
|
109
|
+
* An item without an image gets a browser-made drag preview that lands in the
|
|
110
|
+
* viewport corner. Use the item itself as the preview so it follows the cursor.
|
|
111
|
+
*/
|
|
112
|
+
handleSetData(dataTransfer: DataTransfer, dragEl: HTMLElement): void;
|
|
108
113
|
renderActions(item: MasonryItem): import('lit').TemplateResult<1>;
|
|
109
114
|
renderMasonry(): import('lit').TemplateResult<1>;
|
|
110
115
|
renderStandard(): import('lit').TemplateResult<1>;
|
|
@@ -1,60 +1,52 @@
|
|
|
1
1
|
import { CellComponent } from '../../../hybrid/table-core/src/index.ts';
|
|
2
|
+
import { ColorSwatchCustomColumn } from '../../../types/src/color-swatch-group';
|
|
2
3
|
import { LocalizeController } from '../../../utils/src/custom-element/i18n';
|
|
3
4
|
|
|
4
5
|
export declare const MIN_WIDTH_GRID_ITEM = 165;
|
|
5
|
-
export declare const validCodes: string
|
|
6
|
+
export declare const validCodes: Set<string>;
|
|
7
|
+
export declare const validElements: Set<string>;
|
|
6
8
|
export declare const columnDefaults: {
|
|
7
9
|
resizable: boolean;
|
|
8
10
|
};
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* The column shape this component feeds to `cx-table`. Kept local (rather than
|
|
13
|
+
* Tabulator's full `ColumnDefinition`) because only these fields are used.
|
|
14
|
+
*
|
|
15
|
+
* The definitions below deliberately carry no `width` / `widthGrow` / `minWidth`
|
|
16
|
+
* / `maxWidth`: those belong to the block's per-column Width mode and
|
|
17
|
+
* Constraints settings, and `applyColumnSettings` fills them in. A leftover
|
|
18
|
+
* `widthGrow` here would make "Fill container" columns take unequal shares,
|
|
19
|
+
* since `fitColumns` distributes free space in proportion to it.
|
|
13
20
|
*/
|
|
14
|
-
export
|
|
21
|
+
export type ColorSwatchColumn = {
|
|
15
22
|
field: string;
|
|
16
|
-
formatter
|
|
23
|
+
formatter?: (cell: CellComponent) => HTMLElement | null;
|
|
17
24
|
headerHozAlign: string;
|
|
18
25
|
headerSort: boolean;
|
|
19
26
|
hozAlign: string;
|
|
27
|
+
maxWidth?: number;
|
|
28
|
+
minWidth?: number;
|
|
29
|
+
responsive?: number;
|
|
20
30
|
title: string;
|
|
21
|
-
|
|
31
|
+
width?: number;
|
|
32
|
+
widthGrow?: number;
|
|
22
33
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
export declare const copyableCodeColumns: (localize: LocalizeController, palette: string) => ({
|
|
43
|
-
field: string;
|
|
44
|
-
formatter: (cell: any) => HTMLElement | null;
|
|
45
|
-
headerHozAlign: string;
|
|
46
|
-
headerSort: boolean;
|
|
47
|
-
hozAlign: string;
|
|
48
|
-
minWidth: number;
|
|
49
|
-
title: string;
|
|
50
|
-
widthGrow?: undefined;
|
|
51
|
-
} | {
|
|
52
|
-
field: string;
|
|
53
|
-
formatter: (cell: any) => HTMLElement | null;
|
|
54
|
-
headerHozAlign: string;
|
|
55
|
-
headerSort: boolean;
|
|
56
|
-
hozAlign: string;
|
|
57
|
-
title: string;
|
|
58
|
-
widthGrow: number;
|
|
59
|
-
minWidth?: undefined;
|
|
60
|
-
})[];
|
|
34
|
+
/**
|
|
35
|
+
* A single "Name" column that renders the color swatch and the name together,
|
|
36
|
+
* so the "Name" header spans the whole column instead of truncating inside a
|
|
37
|
+
* narrow swatch-only column.
|
|
38
|
+
*/
|
|
39
|
+
export declare const nameColumn: ColorSwatchColumn;
|
|
40
|
+
export declare const codeColumns: ColorSwatchColumn[];
|
|
41
|
+
export declare const copyableCodeColumns: (localize: LocalizeController, palette: string) => ColorSwatchColumn[];
|
|
42
|
+
/**
|
|
43
|
+
* The `cx-table` column for one author-declared custom column.
|
|
44
|
+
*
|
|
45
|
+
* Reads a flat field rather than `metadata.<id>`: the component flattens each
|
|
46
|
+
* row first, keeping Tabulator away from nested-path lookups. Font overrides
|
|
47
|
+
* fall back to the block's Content group, so a column created without
|
|
48
|
+
* presentation settings matches the built-in code columns.
|
|
49
|
+
*/
|
|
50
|
+
export declare function customColumn(column: ColorSwatchCustomColumn): ColorSwatchColumn;
|
|
51
|
+
/** The flat row key a custom column's value is copied to before rendering. */
|
|
52
|
+
export declare function customColumnField(id: string): string;
|
|
@@ -3,21 +3,56 @@ import { default as CxTypography } from '../../../atoms/src/components/typograph
|
|
|
3
3
|
import { default as CortexElement } from '../../../base/src/cortex-element.ts';
|
|
4
4
|
import { default as CxColorSwatch } from '../../../molecules/src/color-swatch/color-swatch.ts';
|
|
5
5
|
import { default as CxTable } from '../../../hybrid/table-core/src/index.ts';
|
|
6
|
-
import { ColorSwatchData } from '../../../types/src/color-swatch';
|
|
7
|
-
import { CxColorSwatchGroupVariant } from '../../../types/src/color-swatch-group';
|
|
8
|
-
import { CSSResultGroup } from 'lit';
|
|
6
|
+
import { ColorSwatchData, CxColorSwatchCodeAlignment, CxColorSwatchCodeSeparator, CxColorSwatchHexFormat } from '../../../types/src/color-swatch';
|
|
7
|
+
import { ColorSwatchCustomColumn, CxColorSwatchGroupColumnAlignment, CxColorSwatchGroupColumnWidthMode, CxColorSwatchGroupElement, CxColorSwatchGroupVariant } from '../../../types/src/color-swatch-group';
|
|
8
|
+
import { CSSResultGroup, PropertyValues } from 'lit';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @summary Color Swatch Group is used to display a group of color swatches.
|
|
12
12
|
*
|
|
13
13
|
* @cssproperty [--padding=0] - Padding of the container
|
|
14
|
-
* @cssproperty [--grid-gap=var(--cx-spacing-medium)] - Gap size for Grid variant
|
|
15
|
-
* @cssproperty [--
|
|
14
|
+
* @cssproperty [--grid-gap=var(--cx-spacing-medium)] - Gap size for Grid variant, used as the fallback for both axes below
|
|
15
|
+
* @cssproperty [--grid-column-gap=var(--grid-gap)] - Horizontal gap between cards in the Grid variant
|
|
16
|
+
* @cssproperty [--grid-row-gap=var(--grid-gap)] - Vertical gap between cards in the Grid variant
|
|
17
|
+
* @cssproperty [--swatch-min-height=50px] - Minimum height of a Grid variant card
|
|
18
|
+
* @cssproperty [--swatch-border=light-dark(transparent, transparent) 0px] - Border of a Grid variant card
|
|
19
|
+
* @cssproperty [--swatch-border-radius=var(--cx-border-radius-x-large)] - Corner radius of a Grid variant card
|
|
20
|
+
* @cssproperty [--swatch-box-shadow=0px 0px 0px 0px light-dark(transparent, transparent)] - Shadow of a Grid variant card
|
|
21
|
+
* @cssproperty [--swatch-content-justify=space-between] - Vertical alignment of the content inside a Grid variant card
|
|
22
|
+
* @cssproperty [--swatch-content-margin=var(--cx-spacing-medium)] - Padding around the content inside a Grid variant card
|
|
23
|
+
* @cssproperty [--swatch-group-horizontal-gap=-100px] - Gap size for Circle variant (horizontal) (use negative value for overlapping)
|
|
24
|
+
* @cssproperty [--swatch-circle-size=350px] - Size of a Circle variant swatch
|
|
25
|
+
* @cssproperty [--swatch-circle-border-radius=1000px] - Corner radius of a Circle variant swatch
|
|
26
|
+
* @cssproperty [--swatch-circle-content-align=center] - Horizontal alignment of the content inside a Circle variant swatch
|
|
27
|
+
* @cssproperty [--swatch-circle-content-justify=center] - Vertical alignment of the content inside a Circle variant swatch
|
|
28
|
+
* @cssproperty [--swatch-circle-content-margin=0px] - Margin around the content inside a Circle variant swatch
|
|
16
29
|
* @cssproperty [--swatch-group-vertical-gap=-50px] - Gap size for Circle variant (vertical) (use negative value for overlapping)
|
|
17
|
-
* @cssproperty --swatch-font-family - Font family for swatch names/keys/values and, in table mode, the
|
|
18
|
-
* @cssproperty [--swatch-font-style=normal] - Font style for swatch names/keys/values and, in table mode, the
|
|
19
|
-
* @cssproperty --swatch-font-weight - Font weight for swatch names/keys/values and, in table mode, the
|
|
20
|
-
* @cssproperty [--swatch-font-size=var(--cx-font-size-
|
|
30
|
+
* @cssproperty --swatch-font-family - Font family for swatch names/keys/values and, in table mode, the cell content
|
|
31
|
+
* @cssproperty [--swatch-font-style=normal] - Font style for swatch names/keys/values and, in table mode, the cell content
|
|
32
|
+
* @cssproperty --swatch-font-weight - Font weight for swatch names/keys/values and, in table mode, the cell content
|
|
33
|
+
* @cssproperty [--swatch-font-size=var(--cx-font-size-large)] - Font size for swatch names/keys/values and, in table mode, the cell content
|
|
34
|
+
* @cssproperty [--swatch-text-color=light-dark(#000000, #ffffff)] - Text color of the table cell content (Table variant only; grid/circle swatches derive their text color from the swatch color)
|
|
35
|
+
* @cssproperty [--table-width=100%] - Width of the tables in the Table variant
|
|
36
|
+
* @cssproperty --row-padding - Padding shorthand for table rows. Split into the four longhands below by the block settings
|
|
37
|
+
* @cssproperty [--row-padding-top=var(--cx-spacing-2x-small)] - Top padding of table rows
|
|
38
|
+
* @cssproperty [--row-padding-right=var(--cx-spacing-2x-small)] - Right padding of table rows
|
|
39
|
+
* @cssproperty [--row-padding-bottom=var(--cx-spacing-2x-small)] - Bottom padding of table rows
|
|
40
|
+
* @cssproperty [--row-padding-left=var(--cx-spacing-2x-small)] - Left padding of table rows, also used as the column-title padding so titles line up with their cells
|
|
41
|
+
* @cssproperty [--name-swatch-width=64px] - Width of the color chip inside the Name cell (Table variant)
|
|
42
|
+
* @cssproperty [--name-swatch-height=32px] - Height of the color chip inside the Name cell (Table variant)
|
|
43
|
+
* @cssproperty [--name-swatch-border-radius=0] - Corner radius of the color chip inside the Name cell (Table variant)
|
|
44
|
+
* @cssproperty [--table-row-gap=0] - Vertical space between table rows
|
|
45
|
+
* @cssproperty [--table-column-gap=0px] - Horizontal space between table columns
|
|
46
|
+
* @cssproperty --palette-title-font-family - Font family of the palette titles (Table variant)
|
|
47
|
+
* @cssproperty --palette-title-font-style - Font style of the palette titles (Table variant)
|
|
48
|
+
* @cssproperty --palette-title-font-weight - Font weight of the palette titles (Table variant)
|
|
49
|
+
* @cssproperty [--palette-title-font-size=var(--cx-font-size-x-large)] - Font size of the palette titles (Table variant)
|
|
50
|
+
* @cssproperty [--palette-title-color=light-dark(#000000, #ffffff)] - Text color of the palette titles (Table variant)
|
|
51
|
+
* @cssproperty --column-title-font-family - Font family of the column titles (Table variant)
|
|
52
|
+
* @cssproperty --column-title-font-style - Font style of the column titles (Table variant)
|
|
53
|
+
* @cssproperty --column-title-font-weight - Font weight of the column titles (Table variant)
|
|
54
|
+
* @cssproperty [--column-title-font-size=var(--cx-font-size-large)] - Font size of the column titles (Table variant)
|
|
55
|
+
* @cssproperty [--column-title-color=light-dark(#000000, #ffffff)] - Text color of the column titles (Table variant)
|
|
21
56
|
*
|
|
22
57
|
* @csspart base - The component's base wrapper.
|
|
23
58
|
*
|
|
@@ -45,6 +80,10 @@ export default class CxColorSwatchGroup extends CortexElement {
|
|
|
45
80
|
*/
|
|
46
81
|
containerEl: HTMLDivElement;
|
|
47
82
|
tableEls: NodeListOf<CxTable>;
|
|
83
|
+
/**
|
|
84
|
+
* Off-screen element used to size "Hug contents" columns from the data.
|
|
85
|
+
*/
|
|
86
|
+
private readonly measureEl?;
|
|
48
87
|
/**
|
|
49
88
|
* Color swatch group variant
|
|
50
89
|
*/
|
|
@@ -67,6 +106,70 @@ export default class CxColorSwatchGroup extends CortexElement {
|
|
|
67
106
|
*/
|
|
68
107
|
showCodes: string[];
|
|
69
108
|
multiLanguage: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Whether a code's label and value share a line or stack on separate lines
|
|
111
|
+
*/
|
|
112
|
+
codeAlignment: CxColorSwatchCodeAlignment;
|
|
113
|
+
/**
|
|
114
|
+
* Separator between the numeric parts of the RGB and CMYK codes
|
|
115
|
+
*/
|
|
116
|
+
codeSeparator: CxColorSwatchCodeSeparator;
|
|
117
|
+
/**
|
|
118
|
+
* Which prefix the HEX code carries: `#`, `0x`, or none
|
|
119
|
+
*/
|
|
120
|
+
hexFormat: CxColorSwatchHexFormat;
|
|
121
|
+
/**
|
|
122
|
+
* Optional table chrome to render (palette name, column titles, separator
|
|
123
|
+
* line). Table variant only; anything omitted from the list is hidden.
|
|
124
|
+
*/
|
|
125
|
+
showElements: CxColorSwatchGroupElement[];
|
|
126
|
+
/**
|
|
127
|
+
* Whether the name column shares the table's free space or hugs its content
|
|
128
|
+
*/
|
|
129
|
+
nameColumnWidthMode: CxColorSwatchGroupColumnWidthMode;
|
|
130
|
+
/**
|
|
131
|
+
* Applies the name column's min/max width constraints
|
|
132
|
+
*/
|
|
133
|
+
nameColumnConstraints: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Minimum width (px) of the name column, applied while `name-column-constraints` is set
|
|
136
|
+
*/
|
|
137
|
+
nameColumnMinWidth?: number;
|
|
138
|
+
/**
|
|
139
|
+
* Maximum width (px) of the name column, applied while `name-column-constraints` is set
|
|
140
|
+
*/
|
|
141
|
+
nameColumnMaxWidth?: number;
|
|
142
|
+
/**
|
|
143
|
+
* Horizontal alignment of the name column. Unset keeps the built-in default.
|
|
144
|
+
*/
|
|
145
|
+
nameColumnAlignment?: CxColorSwatchGroupColumnAlignment;
|
|
146
|
+
/**
|
|
147
|
+
* Whether the code columns share the table's free space or hug their content
|
|
148
|
+
*/
|
|
149
|
+
codeColumnWidthMode: CxColorSwatchGroupColumnWidthMode;
|
|
150
|
+
/**
|
|
151
|
+
* Applies the code columns' min/max width constraints
|
|
152
|
+
*/
|
|
153
|
+
codeColumnConstraints: boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Minimum width (px) of each code column, applied while `code-column-constraints` is set
|
|
156
|
+
*/
|
|
157
|
+
codeColumnMinWidth?: number;
|
|
158
|
+
/**
|
|
159
|
+
* Maximum width (px) of each code column, applied while `code-column-constraints` is set
|
|
160
|
+
*/
|
|
161
|
+
codeColumnMaxWidth?: number;
|
|
162
|
+
/**
|
|
163
|
+
* Horizontal alignment of the code columns. Unset keeps the built-in default.
|
|
164
|
+
*/
|
|
165
|
+
codeColumnAlignment?: CxColorSwatchGroupColumnAlignment;
|
|
166
|
+
/**
|
|
167
|
+
* Extra table columns, after the code columns. Each color holds its value in
|
|
168
|
+
* `metadata[column.id]`. Table variant only.
|
|
169
|
+
*/
|
|
170
|
+
customColumns: ColorSwatchCustomColumn[];
|
|
171
|
+
/** Paints the Grid variant's cards as one color ramp across the row. */
|
|
172
|
+
gradientEffect: boolean;
|
|
70
173
|
/**
|
|
71
174
|
* Breakpoints for responsive design
|
|
72
175
|
*/
|
|
@@ -79,12 +182,30 @@ export default class CxColorSwatchGroup extends CortexElement {
|
|
|
79
182
|
* Current total grid column
|
|
80
183
|
*/
|
|
81
184
|
private currentCol;
|
|
185
|
+
/**
|
|
186
|
+
* `showElements` indexed for lookup: the template asks about each element
|
|
187
|
+
* once per render, so it is scanned once here instead.
|
|
188
|
+
*/
|
|
189
|
+
private visibleElements;
|
|
190
|
+
/**
|
|
191
|
+
* Measured content width per field, used by columns set to "Hug contents".
|
|
192
|
+
*
|
|
193
|
+
* Only hugging fields are carried: a column set to fill never reads this, so
|
|
194
|
+
* measuring it would cost a layout pass for a width nothing applies.
|
|
195
|
+
*
|
|
196
|
+
* cx-table cannot supply this: its fit-content layouts (`fitData*`) size a
|
|
197
|
+
* column to its *header title* only — `Column.fitToData()` measures cells that
|
|
198
|
+
* have already collapsed inside the flex row — and they are table-wide, so
|
|
199
|
+
* they cannot be mixed with a column that fills. Measuring from the data here
|
|
200
|
+
* keeps hug honest, per column, and free of any feedback loop.
|
|
201
|
+
*/
|
|
202
|
+
private hugWidths;
|
|
82
203
|
private isFocused;
|
|
83
204
|
canFocusContainer: boolean;
|
|
84
205
|
isContainerFocused: boolean;
|
|
85
206
|
constructor();
|
|
86
207
|
runFirstUpdated(): void;
|
|
87
|
-
|
|
208
|
+
connectedCallback(): void;
|
|
88
209
|
disconnectedCallback(): void;
|
|
89
210
|
private handleWindowResize;
|
|
90
211
|
/**
|
|
@@ -94,14 +215,93 @@ export default class CxColorSwatchGroup extends CortexElement {
|
|
|
94
215
|
private handleKeyDown;
|
|
95
216
|
private handleFocusIn;
|
|
96
217
|
private handleFocusOut;
|
|
218
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
219
|
+
/**
|
|
220
|
+
* Re-measure after every render rather than from a `@watch`: the fonts and row
|
|
221
|
+
* paddings that decide a hug width arrive as CSS custom properties, which
|
|
222
|
+
* never appear in Lit's changed properties. Assigning only on a real change
|
|
223
|
+
* keeps the extra render from looping.
|
|
224
|
+
*/
|
|
225
|
+
private syncHugWidths;
|
|
226
|
+
/** Whether a built-in column's shared width mode is "Hug contents". */
|
|
227
|
+
private hugsBuiltInColumn;
|
|
228
|
+
/**
|
|
229
|
+
* Widest rendered width per field, measured off-screen from the data: the
|
|
230
|
+
* column title in the header font, and every cell value in the content font,
|
|
231
|
+
* each inside a box that mirrors the real cell's padding and column gap.
|
|
232
|
+
*
|
|
233
|
+
* Skips columns set to fill: one hugging column used to drag every other
|
|
234
|
+
* column through a full measurement pass whose width nothing then read.
|
|
235
|
+
*/
|
|
236
|
+
private measureHugWidths;
|
|
237
|
+
/**
|
|
238
|
+
* Lays one string out in the probe and returns its width. `inlineStyles`
|
|
239
|
+
* carries a custom column's own font, which no class can express.
|
|
240
|
+
*/
|
|
241
|
+
private measureProbe;
|
|
242
|
+
/** Widest of the title and every stored value for a built-in column. */
|
|
243
|
+
private measureBuiltInColumn;
|
|
244
|
+
/**
|
|
245
|
+
* Widest of the title and every stored metadata value for a custom column.
|
|
246
|
+
* The title uses the shared column-title font: a column's own font styles its
|
|
247
|
+
* cells, not its header.
|
|
248
|
+
*/
|
|
249
|
+
private measureCustomColumn;
|
|
250
|
+
/**
|
|
251
|
+
* A zero measurement means nothing was laid out (the block is hidden, or this
|
|
252
|
+
* is the render that created the probe). Leaving the field out keeps the
|
|
253
|
+
* column flexible for now instead of pinning it to a bogus width; the next
|
|
254
|
+
* render measures again.
|
|
255
|
+
*/
|
|
256
|
+
private recordHugWidth;
|
|
257
|
+
/**
|
|
258
|
+
* The card at `index`'s slice of one ramp spanning the whole row.
|
|
259
|
+
*
|
|
260
|
+
* The ramp belongs to the row, not to each card: first color on the row's
|
|
261
|
+
* left edge, last on its right, the rest spread evenly between. A card
|
|
262
|
+
* reports the ramp at its own two edges plus any color falling inside it, so
|
|
263
|
+
* two cards at a seam sample the same position and agree on the color there.
|
|
264
|
+
*
|
|
265
|
+
* Anchoring colors to card centers instead leaves the halves before the first
|
|
266
|
+
* and after the last color flat, so the band stops short of the block's edges.
|
|
267
|
+
*/
|
|
268
|
+
private gradientStopsFor;
|
|
269
|
+
/**
|
|
270
|
+
* The ramp's color at `position`, a fraction of the row. Both cards at a seam
|
|
271
|
+
* pass the same fraction, so they get the same string and the seam cannot show.
|
|
272
|
+
*/
|
|
273
|
+
private sampleGradient;
|
|
274
|
+
/**
|
|
275
|
+
* Copies a color's metadata onto flat row keys so the table reads plain
|
|
276
|
+
* fields instead of a nested path. Columns with no value still get a key,
|
|
277
|
+
* which keeps the cell empty instead of showing the previous row's data.
|
|
278
|
+
*/
|
|
279
|
+
private flattenMetadata;
|
|
280
|
+
/**
|
|
281
|
+
* Renders one stored code the way it is displayed. Used for the table cells,
|
|
282
|
+
* the text their copy buttons put on the clipboard, and the hug measurement,
|
|
283
|
+
* so all three stay in step.
|
|
284
|
+
*/
|
|
285
|
+
private formatCode;
|
|
286
|
+
/**
|
|
287
|
+
* Overlay the block's width/constraint/alignment settings onto one of the
|
|
288
|
+
* built-in column definitions.
|
|
289
|
+
*/
|
|
290
|
+
private applyColumnSettings;
|
|
97
291
|
/**
|
|
98
292
|
* Filter out the columns that are not in the showCodes
|
|
99
293
|
*/
|
|
100
294
|
private getTableColumns;
|
|
295
|
+
/**
|
|
296
|
+
* Every input that feeds `getTableColumns`. Used as the `guard` dependency
|
|
297
|
+
* list so the cached table template is rebuilt whenever one of them changes.
|
|
298
|
+
*/
|
|
299
|
+
private get columnGuardDependencies();
|
|
101
300
|
/**
|
|
102
301
|
* Categorize the color swatches by palette
|
|
103
302
|
*/
|
|
104
303
|
private categorizeByPalette;
|
|
304
|
+
handleShowElementsChange(): void;
|
|
105
305
|
handleIsFocusedChange(): void;
|
|
106
306
|
/**
|
|
107
307
|
* Get current direction of the color swatch group
|